📄 encregdrv.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 + -