《H264编码器解码器IP使用讲明_.docx》由会员分享,可在线阅读,更多相关《H264编码器解码器IP使用讲明_.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、H264编码器解码器IP使用讲明_H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明H264Lite高清视频编解码(codec)器使用讲明FullyRTLCodeDesignE-mail:yuxiangyangdoczj/doc/91940129bb1aa8114431b90d6c85ec3a87c28b36.Tel:186*QQ:691246122H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明目录1.功能简绍(3)2.IP特色(3)3.应用场景(3)4.本“使用讲明作用(3)5.主要功能(4)5.1.编码器功能(4)5.2.解码器功能(4)6.主要硬件指标(5
2、)6.1.编解码效率单核(5)6.2.面积(5)6.3.编解码带宽需求(5)6.3.1.编码形式带宽需求(5)6.3.2.解码形式带宽需求(5)6.4.综合速度(5)7.设计构造框图(6)8.接口信号时序(7)8.1.寄存器配置接口时序(7)8.2.DMA读写访问时序(7)8.3.中断信号时序(7)9.配置寄存器(8)10.原始帧数据在外部存储器(DDR)的格式(9)11.软件控制流程参考(11)11.1.编码器软件控制流程(11)11.2.H264标准相关寄存器推荐配置编码形式有效(12)11.3.解码器软件控制流程(13)12.设计交付(14)13.FPGA综合结果(14)H264编码器解
3、码器IP使用讲明H264编码器解码器IP使用讲明H264_Lite视频编解码器encoder&decoder由硬件描绘语言verilog实现,此设计经过FPGAEDA工具编译后可集成于可编程逻辑器件(FPGA)平台;可以以使用SynopsysDesignCompiler综合后作为ASIC芯片的IP核使用。该视频编码器输出码流完全符合H.264视频编码标准;解码器能解码H264_Lite本人编码的码流。该设计针对硬件面积,编码帧率,综合频率做了设计构造上的优化。该设计对FPGA实现做了十分的时序优化,在XilinxZynq7020上能够综合到125MHZ,单核就能够实现1080P30fps的FP
4、GA应用场景,双核能够实现1080P60fps的应用场景。2.IP特色编解码帧率高:1080P30理论编解码时钟频率是110MHZ硬件面积小:在zynq7020上,只占55%的逻辑资源延时低:编码器延时在20ms以内误码控制:针对无线传输(如wifi,微波等)等不保证数据完好性的场合,做了特殊处理,如无人机应用码率控制:能够按MB为单位调整QP,码率更平滑超长GOP支持:最大能够256帧才编码一个Iframe,削减码流带宽高峰,仍保持优秀的容错性编码器,解码器集成在一起,分享硬件逻辑,面积更小3.应用场景无人机航拍,图传行车记录仪网络摄像机(IPCamera)4.本“使用讲明作用本讲明书描绘此
5、编码器的用户接口及该设计的使用方法,方便用户的前期评估。H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明5.1.编码器功能H264baselineprofilelevel5Maximalencodeframesize:1920x1080Supportanyframesizethatx/ysizeisintegertimesof161920x1080P30fpsclockfrequency:110MHzLowCPUMIPSrequirement:justconfiguresomeregistersforeachframeI/PframesupportMulti-slicesupp
6、ortMEsearchrange:X-31,32,Y-23,241/4sub-pixelinterpolationsupportMefullsearchalgorithmIntra_16x16predictmodesupportCAVLCentropybitstreamInputsourceisYUV4:2:08bitsresolutionLowlatencyencodingsupport,lessthan5ms5.2.解码器功能能够解码H264_Lite编码的码流。注意:解码器功能不是H.264全标准兼容,只能解码H264_Lite本人编码的码流。H264编码器解码器IP使用讲明H264编码
7、器解码器IP使用讲明6.主要硬件指标6.1.编解码效率单核1080P30fps:110MHZ720P30fps:50MHZ6.2.面积ASIC:About1.3Mgate,includingSRAMareaFPGA:About6.4KSlices(eachslicehas4LUTsand8DFFs)and36BlockRAMsonXilinxZynq7020FPGA6.3.编解码带宽需求6.3.1.编码形式带宽需求Iframe:About1.11.2倍原始帧带宽Pframe:About5.55.8倍原始帧带宽注:不含原始帧写入memory的带宽6.3.2.解码形式带宽需求Iframe:Abou
8、t1.11.2倍原始帧带宽Pframe:About4.24.5倍原始帧带宽6.4.综合速度ASIC:TSMC0.13um:=250MHZXilinxZynq7020:125MHZH264编码器解码器IP使用讲明H264编码器解码器IP使用讲明7.设计构造框图1)axi_lite:这组信号对内部寄存器进行访问。2)clk:core运行的时钟;axi_lite/master_axi_0/master_lite_1都运行在这个时钟域。3)rstn:core的异步复位信号;axi_lite/master_axi_0/master_lite_1也用这个信号进行异步复位。4)axi_master_0/ax
9、i_master_1:访问内存的总线;读取原始图像;读取参考帧图像;写入重建图像;写入编码码流。5)enc_int:core的中断信号,每编码解码一帧,一次中断。能够软件写寄存器“0E清0;在软件启动新的一帧时也会自动清0。H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明8.接口信号时序8.1.寄存器配置接口时序配置寄存器接口:axi_lite,与AXI_Lite协议完全兼容;数据位宽是32bits。每个配置寄存器是16bit位宽,但是占用4Byte的地址空间。详细访问时序,请参考AMBAAXI协议:AMBA?AXIProtocolVersion:2.0“AXI4-Lite章节
10、。8.2.DMA读写访问时序读写图像数据,读写编码码流接口:master_axi_0/master_axi_1,与AXI4协议完全兼容;数据位宽是32bits,最大burst长度是32arlen/awlen最大取值是0x1F。详细访问时序,请参考AMBAAXI协议:AMBA?AXIProtocolVersion:2.0。8.3.中断信号时序enc_int为编解码器中断输出,高电平有效。编解码完成一帧后变成高电平(1b1),等软件往寄存器0E写0x00后,变低电平(1b0)。H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明9.配置寄存器addrbitnameaccessdecri
11、ption000enc_startr/w软件写1开场一帧编码解码;然后软件写0去除这个标志位。15:1NArReserved。011:0enc_typer/w编码解码帧类型。2:Iframe;0:Pframe3:2NArReserved。4enc_moder/w1:编码器形式;0:解码器形式5enc_str_swapr/w0:码流写入DDR时:str31:0;1:码流写入DDR时:str7:0,str15:8,str23:16,str31:24.15:6NArReserved。0215:0enc_frm_widthr/wR/W编码解码图像的x-dir尺寸。例:1080P写:1920.0315:
12、0enc_frm_heightr/w编码解码图像的y-dir尺寸。例:1080P写:1088.注意:图像的x/ysize必须是16的整数倍。047:0enc_qpr/w编码解码帧LumaQP值。15:8enc_ch_qp_offsetr/w编码解码帧ChromaQP相对于LumaQP的偏移。有符号数,取值:-7,7。0515:0enc_frm_numr/w此寄存器用于编码sliceheader的frame_num语法,取值:0,255。0615:0enc_frm_cnt_lsbr/w此寄存器用于编码sliceheader的pic_order_cnt_lsb语法,取值:0,255。0715:0e
13、nc_frm_idridr/w此寄存器用于编码sliceheader的idr_pic_id语法,取值:0,7。0815:0dma_src_baser/w编码原始图像在memory的起始位置,需要1Kbyte对齐的地址,原始帧的实际起始地址是:dma_src_base*1024Byte。0915:0dma_lpf_baser/w编码解码重建图像用作下一帧的参考帧图像在memory的起始位置,需要1Kbyte对齐的地址,重建图像的实际起始地址是:dma_lpf_base*1024Byte。0A15:0dma_ref_baser/w编码解码P帧时,参考帧图像在memory的起始位置,需要1Kbyte
14、对齐的地址,参考帧的实际起始地址是:dma_ref_base*1024Byte。0B15:0dma_str_baser/w编码解码码流在memory的起始位置,需要1Kbyte对齐的地址,码流的实际起始地址是:dma_str_base*1024Byte。0C15:0enc_str_len_lr编码解码码流的长度(byte)低16bits。解码形式时,enc_str_len需要是2的整数倍(对齐到偶数byte长度)。0D15:0enc_str_len_hr编码解码码流的长度(byte)高16bits。0E0enc_intr/w读取中断标志;写1b0去除中断标志。15:1NArReserved。0
15、F15:0enc_versionr版本号,0x0028。测试版为:0x1234。1015:0dec_head_bnumr/w软件解码Header(SPS,PPS,slice_header)用掉的码流的bit数目。H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明10.原始帧数据在外部存储器(DDR)的格式编码器只支持YUV4:2:0,8bits解析度的图像。假如是RGB输入,需要在前面加图像格式转换器,转换为YUV4:2:0的格式。原始帧图像根据光栅扫描的顺序,从左到右,从上到下的存储在连续的空间。图像的每行数据之间没有地址空隙,亮度(Y)数据跟色度数据UV之间没有地址空隙。首先
16、从寄存器“dma_src_base指向的地址开场按行存储亮度数据。UV数据按像素点混合在一起,紧接着色度数据,按行存储。亮度(Y)数据:如下图:亮度数据基地址:dma_src_lu_base=dma_src_base*1024。Y(0,0)存放在:dma_src_lu_base地址Y(0,1)存放在:dma_src_lu_base+1地址Y(0,w-1)存放在:dma_src_lu_base+(enc_frm_width-1)地址Y(1,0)存放在:dma_src_lu_base+enc_frm_width地址H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明色度(UV)数据:如
17、下图:色度数据基地址:dma_src_ch_base=dma_src_base*1024+(enc_frm_width*enc_frm_height)。U(0,0)存放在:dma_src_ch_base地址V(0,0)存放在:dma_src_ch_base+1地址U(0,1)存放在:dma_src_ch_base+2地址V(0,1)存放在:dma_src_ch_base+3地址U(0,w/2-1)存放在:dma_src_ch_base+(enc_frm_width-2)地址V(0,w/2-1)存放在:dma_src_ch_base+(enc_frm_width-1)地址U(1,0)存放在:dm
18、a_src_ch_base+enc_frm_width地址V(1,0)存放在:dma_src_ch_base+enc_frm_width1地址例:以1920x1088的图像为例:1)图像的Y(0,0)点存放在dma_src_base*1024地址;Y(0,1919)存放在dma_src_base*1024+0x77F地址;Y(1,0)存放在dma_src_base*1024+0x780地址;Y(1,1919)存放在dma_src_base*1024+0xEFF地址;Y(1087,0)存放在dma_src_base*1024+0x1FD880地址;Y(1087,1919)存放在dma_src_b
19、ase*1024+0x1FDFFF地址。2)图像的U(0,0)存放在dma_src_base*1024+0x1FE000,V(0,0)存放在dma_src_base*1024+0x1FE001;U(0,1)存放在dma_src_base*1024+0x1FE002,V(0,1)存放在dma_src_base*1024+0x1FE003;U(0,959)存放在dma_src_base*1024+0x1FE77E,V(0,959)存放在dma_src_base*1024+0x1FE77F;U(1,0)存放在dma_src_base*1024+0x1FE800,V(1,0)存放在dma_src_ba
20、se*1024+0x1FE801;U(543,959)存放在dma_src_base*1024+0x2FCFFE,V(543,959)存放在dma_src_base*1024+0x2FCFFF。此页面能否是列表页或首页?未找到适宜正文内容。H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明11.2.H264标准相关寄存器推荐配置编码形式有效enc_frm_idrid:第一个Iframe时,取值为0,以后每编码一个Iframe,值增加1,在07之间循环。enc_frm_num:编码Iframe时,取值为0,以后每编码一帧,值增加1,最大取值255。所以每256帧必须编码一个Ifra
21、me。enc_frm_cnt_lsb:编码Iframe时,取值为0,以后每编码一帧,值增加1,最大取值255。例N此页面能否是列表页或首页?未找到适宜正文内容。H264编码器解码器IP使用讲明H264编码器解码器IP使用讲明12.设计交付1)编码器C语言模型的可执行文件Win32EXE,编码效果评估2)NGC/DCP(Xilinx)orEDIF(Altera)3)RTL代码4)RTL仿真的参考环境,基于Modelsim5)技术支持,协助系统仿真,整合与调试注:能够免费提供C语言模型,评估版的netlistNGCorEDIF跟RTL仿真环境。评估版有如下限制:编码解码QP固定为28;编码时,在图像的中间区域,有一个32x32大小的块固定是黑色的。13.FPGA综合结果H264_LiteArea(XilinxZynq7020)stageDFFsLUTsSlicesBRAMsDSP48sSynthesis31082(33%)23283(44%)38(27%)18(8%)