⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encregdrv.h

📁 freescale i.mx31 BSP CE5.0全部源码
💻 H
字号:
/*------------------------------------------------------------------------------
--                                                                            --
--       This software is confidential and proprietary and may be used        --
--        only as expressly authorized by a licensing agreement from          --
--                                                                            --
--                            Hantro Products Oy.                             --
--                                                                            --
--      In the event of publication, the following notice is applicable:      --
--                                                                            --
--                   (C) COPYRIGHT 2003 HANTRO PRODUCTS OY                    --
--                            ALL RIGHTS RESERVED                             --
--                                                                            --
--          The entire notice above must be reproduced on all copies.         --
--                                                                            --
--------------------------------------------------------------------------------
--
--  Abstract : Encoder HW register access functions
--
-------------------------------------------------------------------------------*/

#ifndef __HREGDRV_H__
#define __HREGDRV_H__

#include "basetype.h"

#define IRQ_VLC_BUF_FULL        0x01
#define IRQ_VLC_BUF_OVERFLOW    0x02
#define IRQ_VOP_RDY             0x04
#define IRQ_ERROR_RESPONSE      0x08
#define IRQ_ALL                 0x0F

#define GetEncZeroCount()       GetEncStuffingLim()

/* Write Register 0 */
void SetEncModTimeBase(u32 sec);
void SetEncQP(u32 qp);
void SetEncIntraDcVlcThr(u32 thr);
void SetEncDataPEnable(u32 enable);
void SetEncSVHEnable(u32 enable);
void SetEncGobRows(u32 rows);
void SetEncGobFrmId(u32 id);
void SetEncOutsideVopMvEnable(u32 enable);
void SetEncAcPredEnable(u32 enable);
void SetEncRvlcEnable(u32 enable);
void SetEncRoundingCtrl(u32 roundval);
void SetEncVopType(u32 type);

void SetEncStrmEndianMode(u32 endian);
void SetEncImgEndianMode(u32 endian);

/* Write Register 1 */
void SetEncPreProEnable(u32 enable);
void SetEncOrigRowWidth(u32 width);
void SetEncXFill(u32 xfill);
void SetEncYFill(u32 yfill);
void SetEncMvSadPenalty(u32 penalty);
void SetEncIntraSadPenalty(u32 penalty);
void SetEnc4MvSadPenalty(u32 penalty);

/* Write Register 2 */
void SetEncCamStabEnable(u32 enable);
void SetEncVpEnable(u32 enable);
void SetEncSizeOfVP(u32 size);

/* Write Register 3 */
void SetEncStrmBuf3Lim(u32 offset);
void SetEncStrmBuf1Lim(u32 offset);

/* Write Register 4 */
void SetEncMbsInCol(u32 mbs);
void SetEncMbsInRow(u32 mbs);



void SetEncHWIrqEnable(u32 error_irq, u32 enc_irq);
void SetEncIrqStatClr(u32 mask);
void SetEncStrmStatClr(void);
void SetEncEnable(u32 enable);

/* Write Register 5 */
void SetEncVpSizeBase(u32 bus_address);

/* Write Register 6 */
void SetEncNewLumaBase(u32 bus_address);

/* Write Register 7 */
void SetEncNewChromaUBase(u32 bus_address);

/* Write Register 8 */
void SetEncNewChromaVBase(u32 bus_address);

/* Write Register 9 */
void SetEncVopTimeIncr(u32 vop_time_incr);
void SetEncVopTimeIncrBits(u32 bits);
void SetEncVopHdrLenght(u32 bits);
void SetEncHecEnable(u32 enable);

/* Write Register 10 */
void SetEncVopHdrLastBits(u32 value);

/* Write Register 11 */
void SetEncStrmBuf1Base(u32 bus_address);

/* Write Register 12 */
void SetEncStrmBuf2Base(u32 bus_address);

/* Write Register 13 */
void SetEncStrmBuf3Base(u32 bus_address);

/* Write Register 14 */
void SetEncRefLumBase(u32 bus_address);

/* Write Register 15 */
void SetEncRefChromaBase(u32 bus_address);

/* Write Register 16 */
void SetEncInternalChromaBase(u32 bus_address);

/* Write Register 17 */
void SetEncCirStart(u32 start_nr);
void SetEncCirStep(u32 mbs);

/* Write Register 18 */
void SetEncChkP1MbNr(u32 mb_nr);
void SetEncChkP2MbNr(u32 mb_nr);

/* Write Register 19 */
void SetEncChkP3MbNr(u32 mb_nr);
void SetEncChkP4MbNr(u32 mb_nr);

/* Write Register 20 */
void SetEncChkP5MbNr(u32 mb_nr);
void SetEncChkP6MbNr(u32 mb_nr);

/* Write Register 21 */
void SetEncChkP7MbNr(u32 mb_nr);
void SetEncChkP8MbNr(u32 mb_nr);

/* Write Register 22 */
void SetEncChkP9MbNr(u32 mb_nr);
void SetEncChkP10MbNr(u32 mb_nr);

/* Write Register 23 */
void SetEncChkP1Bits(u32 bits);
void SetEncChkP2Bits(u32 bits);

/* Write Register 24 */
void SetEncChkP3Bits(u32 bits);
void SetEncChkP4Bits(u32 bits);

/* Write Register 25 */
void SetEncChkP5Bits(u32 bits);
void SetEncChkP6Bits(u32 bits);

/* Write Register 26 */
void SetEncChkP7Bits(u32 bits);
void SetEncChkP8Bits(u32 bits);

/* Write Register 27 */
void SetEncChkP9Bits(u32 bits);
void SetEncChkP10Bits(u32 bits);

/* Write Register 28 */
void SetEncBitError1(i32 bytes);
void SetEncBitError2(i32 bytes);

/* Write Register 29 */
void SetEncBitError3(i32 bytes);
void SetEncBitError4(i32 bytes);

/* Write Register 30 */
void SetEncBitError5(i32 bytes);
void SetEncBitError6(i32 bytes);

/* Write Register 31 */
void SetEncDeltaQp1(i32 bytes);
void SetEncDeltaQp2(i32 bytes);
void SetEncDeltaQp3(i32 bytes);
void SetEncDeltaQp4(i32 bytes);
void SetEncDeltaQp5(i32 bytes);
void SetEncDeltaQp6(i32 bytes);
void SetEncDeltaQp7(i32 bytes);

/* Write Register 32 */
void SetEncStuffingLim(u32 bits);

/* Write Register 33 */
void SetEncGobMask(u32 bitmask);

/* Write Register 34 */
/* ID register read-only */

/* Read Register 0 */
u32 GetEncModTimeBase(void);
u32 GetEncQP(void);
u32 GetEncIntraDcVlcThr(void);
u32 GetEncDataPEnable(void);
u32 GetEncSVHEnable(void);
u32 GetEncGobRows(void);
u32 GetEncGobFrmId(void);
u32 GetEncOutsideVopMvEnable(void);
u32 GetEncAcPredEnable(void);
u32 GetEncRvlcEnable(void);
u32 GetEncRoundingCtrl(void);
u32 GetEncVopType(void);
u32 GetEncStrmEndianMode(void);
u32 GetEncImgEndianMode(void);

/* Read Register 1 */
u32 GetEncPreProEnable(void);
u32 GetEncOrigRowWidth(void);

u32 GetEncXFill(void);
u32 GetEncYFill(void);
u32 GetEncMvSadPenalty(void);
u32 GetEncIntraSadPenalty(void);
u32 GetEnc4MvSadPenalty(void);

/* Read Register 2 */
u32 GetEncCamStabEnable(void);
u32 GetEncVpEnable(void);
u32 GetEncSizeOfVP(void);
u32 GetEncCamStabGmvX(void);
u32 GetEncCamStabGmvY(void);

/* Read Register 3 */
u32 GetEncStrmBuf3Lim(void);
u32 GetEncStrmBuf1Lim(void);

/* Read Register 4 */
u32 GetEncVpNr(void);
u32 GetEncMbsInCol(void);
u32 GetEncMbsInRow(void);

u32 GetEncHWIrqEnable(void);
u32 GetEncIrqStat(void);
u32 GetEncStrmStat(void);
u32 GetEncEnaStat(void);


/* Read Register 5 */
u32 GetEncVpSizeBase(void);

/* Read Register 6 */
u32 GetEncNewLumaBase(void);

/* Read Register 7 */
u32 GetEncNewChromaUBase(void);

/* Read Register 8 */
u32 GetEncNewChromaVBase(void);

/* Read Register 9 */
u32 GetEncVopTimeIncr(void);
u32 GetEncVopTimeIncrBits(void);
u32 GetEncVopHdrLenght(void);
u32 GetEncHecEnable(void);

/* Read Register 10 */
u32 GetEncVopHdrLastBits(void);

/* Read Register 11 */
u32 GetEncStrmBuf1Base(void);

/* Read Register 12 */
u32 GetEncStrmBuf2Base(void);

/* Read Register 13 */
u32 GetEncStrmBuf3Base(void);

/* Read Register 14 */
u32 GetEncRefLumBase(void);

/* Read Register 15 */
u32 GetEncRefChromaBase(void);

/* Read Register 16 */
u32 GetEncInternalChromaBase(void);

/* Read Register 17 */
u32 GetEncCirStart(void);
u32 GetEncCirStep(void);

/* Read Register 18 */
u32 GetEncChkP1MbNr(void);
u32 GetEncChkP2MbNr(void);

/* Read Register 19 */
u32 GetEncChkP3MbNr(void);
u32 GetEncChkP4MbNr(void);

/* Read Register 20 */
u32 GetEncChkP5MbNr(void);
u32 GetEncChkP6MbNr(void);

/* Read Register 21 */
u32 GetEncChkP7MbNr(void);
u32 GetEncChkP8MbNr(void);

/* Read Register 22 */
u32 GetEncChkP9MbNr(void);
u32 GetEncChkP10MbNr(void);

/* Read Register 23 */
u32 GetEncChkP1Bits(void);
u32 GetEncChkP2Bits(void);

/* Read Register 24 */
u32 GetEncChkP3Bits(void);
u32 GetEncChkP4Bits(void);

/* Read Register 25 */
u32 GetEncChkP5Bits(void);
u32 GetEncChkP6Bits(void);

/* Read Register 26 */
u32 GetEncChkP7Bits(void);
u32 GetEncChkP8Bits(void);

/* Read Register 27 */
u32 GetEncChkP9Bits(void);
u32 GetEncChkP10Bits(void);

/* Read Register 28 */
i32 GetEncBitError1(void);
i32 GetEncBitError2(void);

/* Read Register 29 */
i32 GetEncBitError3(void);
i32 GetEncBitError4(void);

/* Read Register 30 */
i32 GetEncBitError5(void);
i32 GetEncBitError6(void);

/* Read Register 31 */
i32 GetEncDeltaQp1(void);
i32 GetEncDeltaQp2(void);
i32 GetEncDeltaQp3(void);
i32 GetEncDeltaQp4(void);
i32 GetEncDeltaQp5(void);
i32 GetEncDeltaQp6(void);
i32 GetEncDeltaQp7(void);

/* Read Register 32 */
u32 GetEncStuffingLim(void);
u32 GetEncQpSum(void);

/* Read Register 33 */
u32 GetEncGobMask(void);

/* Read Register 34 */
u32 GetEncId(void);

void EncoderAsicReset(void);

#endif /*__HREGDRV_H__*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -