通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc

上传人:laozhun 文档编号:3994412 上传时间:2023-03-30 格式:DOC 页数:65 大小:2.01MB
返回 下载 相关 举报
通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc_第1页
第1页 / 共65页
通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc_第2页
第2页 / 共65页
通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc_第3页
第3页 / 共65页
通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc_第4页
第4页 / 共65页
通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc》由会员分享,可在线阅读,更多相关《通信工程硕士论文H264基本档次熵编码器的FPGA实现.doc(65页珍藏版)》请在三一办公上搜索。

1、硕士研究生学位论文题目:H264基本档次熵编码器的FPGA实现姓 名: 学 号: 院 系: 软件与微电子学院 专 业: 电子与通信工程 研究方向: 集成系统芯片(SOC) 导师姓名: 二00八 年 四 月版权声明任何收存和保管本论文各种版本的单位和个人,未经本论文作者同意,不得将本论文转借他人,亦不得随意复制、抄录、拍照或以任何方式传播。否则,引起有碍作者著作权之问题,将可能承担法律责任。摘 要随着通讯和集成电路行业的发展,视频编码取得了长足的进步,需求的提高推动了技术和产业的进步。从标清到高清,视频质量得到前所未有的提升,同时也对视频编码技术提出很高的挑战,虽然原来的技术也能从事高清编码,但

2、由于其技术的先天不足,需要新的编码标准。H.264集成了许多先进技术,是最新的视频编码标准。本文主要研究H.264的VLC熵编码,论文的主要贡献包括:1对视频编码各种标准做了介绍,包括H.264标准及其特点;2对H.264编码整体结构进行分析,特别是对熵编码算法进行了详细的研究。本文首先介绍H.264熵编码软件算法实现的过程,并分析其特点,然后详细介绍了VLC熵编码核心的两个单元:UVLC和CAVLC,最后着重分析其算法的原理。3对熵编码硬件结构进行设计及模拟依据软件算法,结合硬件的特点,本文提出了熵编码器的硬件结构,详细介绍了核心单元和内部单元的实现方法并进行模拟,并使用Verilog语言设

3、计硬件模型,在MODELSIM环境下验证其结构的正确性。4硬件结构实现硬件实现包括数据处理的逻辑单元和控制数据流的状态机两部分。UVLC单元包括指数哥伦布,码流组合,语法元素寄存器组和状态机,CAVLC包括核心处理单元。设计使用ISE综合并布局布线,最终使用5208slice硬件单元,2674寄存器,速度可以到100Mhz。5搭建硬件验证平台该部分着重介绍硬件平台的设计,包括DSP和FPGA的连接方式和特点,介绍了EMIF总线及其使用的方法。关键字:H.264,熵编码,指数哥伦布,UVLC,CAVLCAbstractWith the development of microelectronic

4、s and communication engineering, the video codec technology has advanced significantly. The improvement promote the progress of industry and technique, form PAL and NTSC to high define standard. The quality of video has leaped than ever before and with it the great challenge of video codec. The pre

5、video standard can perform high define codec, but it is not design for such condition, there need a new one. The specification of the paper1 The overviewIn this part, the paper introduces the foundation of video codec, and then specifies the standard of H.264/AVC.2 the analyze of the algorithmicThe

6、paper bases on the software algorithmic. In the first part, there introduce the software dataflow and analyses its character, and then specify the VLC and CAVLC core union in detail, focus on its principal of algorithmic.3 The hardware structure design and verificationBase on software algorithmic an

7、d the characteristics of hardware, the paper proposes a implementation of the VLC hardware structure, especially the core union and relative inter designs structure. The design is implemented by verilog, and verified in MODELSIM.4 The hardware implementationThe hardware union includes data process a

8、nd control parts, UVLC include exp coulomb, stream combine, syntax element register file and state machine. The CAVLC include core union and state machine.The design is impement by ISE, and it includes 5208 slices and 2674 register, which can reach 100Mhz frequence.5 Hardware platformsIn this part i

9、ntroduces the implementation platform, including the connection of DSP and FPGA, the EMIF bus and is specification.Key Word:H.264, entropy encoder, exp - coulomb encoder, UVLC, CAVLC 目 录摘 要IAbstractII目 录III第一章 绪论11.1视频编码绪论11.2H.264简介31.3 熵编码原理81.4 熵编码器设计分析101.5 本文的组织结构101.6 本章小结10第二章软件算法分析122.1 JM代码

10、简介122.2指数哥伦布编码122.3 CAVLC编码152.4本章小结17第三章 VLC编码器的硬件结构183.1 VLC编码器的系统结构183.2 核心编码单元UVLC203.2.1 UVLC结构223.2.2 UVLC输出码流组合单元243.2.3 语法元素寄存器组223.2.4 状态机工作流程313.3 CAVLC单元结构352.3.1 CAVLC编码流程362.3.2 CAVLC硬件结构403.4 本章小节45第四章 实验数据及实现464.1 试验平台说明464.2 EMIF总线连接及时序47第五章 实验结果及分析515.1 数据提取515.2 时序图说明525.3 实验结果535.

11、5 本章小结54第六章 总结与展望556.1 回顾和总结556.2 下一步工作的展望55参考文献56致谢58第一章 绪论1.1视频编码绪论由于多媒体信号的数据量巨大,为了节省存储空间和传输带宽,需要进行压缩编码。多媒体数据的压缩方法,可以分成三大类,其中熵编码是基础,源编码是重点,而将它们二者相结合的混合编码则是各种编码标准所采用的主要方法。为了节省存储空间和传输带宽,进行实时高品质的多媒体通信,必须对多媒体数据进行压缩编码。多媒体数据和人类的感觉存在着各种冗余,如:空间冗余:图像的相邻像素相关。时间冗余:相邻音频样本/视频帧相关。频率冗余:相邻的频谱值相关,人对高频信号不敏感或者分辨率低。听

12、觉冗余:人耳的低音听阈高、强纯音的频率屏蔽、相邻声音的时域屏蔽。视觉冗余:人眼对亮度变化比对色彩的变化更敏感,对高亮区的量化误差不敏感。针对以上各种情况,可以采用相应的方法去除冗余信息。(信)源编码(source coding)是一类利用信号原数据在时间域和频率域中的相关性和冗余进行压缩的有语义编码。种类繁多,可进一步分为:预测编码:利用先前和现在的数据对在时间或空间上相邻的下面或后来的数据进行预测,从而达到压缩的目的。如DM、ADPCM。变换编码:采用各种数学变换方法,将原时间域或空间域的数据变换到频率域或其他域,利用数据在变换域中的冗余或人类感觉的特征来进行压缩。如DCT、DWT。分层编码

13、:将原数据在时空域或频率域上分成若干子区域,利用人类感觉的特征进行压缩编码,然后再合并。如子采样、子带编码。其他编码:如矢量量化、运动补偿、音感编码。熵编码(entropy encoding)是一类利用数据的统计信息进行压缩的无语义数据流的无损编码。如RLE、LZW、Huffman编码。混合编码(hybrid coding) = 熵编码 + 源编码,大多数压缩标准都采用混合编码的方法进行数据压缩,一般是先利用信源编码进行有损压缩,再利用熵编码做进一步的无损压缩。如H.261、H.263、JPEG、MPEG。视频编码技术基本是由ISO/IEC制定的MPEG-x和ITU-T制定的H.26x两大系列

14、视频编码国际标准的推出。从H.261视频编码建议,到H.262/3、MPEG-1/2/4等都有一个共同的不断追求的目标,即在尽可能低的码率(或存储容量)下获得尽可能好的图像质量。而且,随着市场对图像传输需求的增加,如何适应不同信道传输特性的问题也日益显现出来。于是IEO/IEC和ITU-T两大国际标准化组织联手制定了视频新标准H.264来解决这些问题。H.261是最早出现的视频编码建议,目的是规范ISDN网上的会议电视和可视电话应用中的视频编码技术。它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法。和ISDN信道相匹配,其输出码率是p64kbit/s。p取值

15、较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如 p6),可以传输清晰度较好的会议电视图像。H.263 建议的是低码率图像压缩标准,在技术上是H.261的改进和扩充,支持码率小于64kbit/s的应用。但实质上H.263以及后来的H.263+和H.263+已发展成支持全码率应用的建议,从它支持众多的图像格式这一点就可看出,如Sub-QCIF、QCIF、CIF、4CIF甚至16CIF等格式。MPEG-1标准的码率为1.2Mbit/s左右,可提供30帧CIF(352288)质量的图像,是为CD-ROM光盘的视频存储和播放所制定的。MPEG-l标准视频编码部分的基本算法与H

16、.261/H.263相似,也采用运动补偿的帧间预测、二维DCT、VLC游程编码等措施。此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。在MPEG-1的基础上,MPEG-2标准在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动矢量的精度为半像素;在编码运算中(如运动估计和DCT)区分帧和场;引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。近年推出的MPEG-4标准引入了基于视听对象(AVO:Audio-Visual Object)的编码,大大提高了视频通信的交互能力和编码效率。 MPEG-4中还采用了一些新

17、的技术,如形状编码、自适应DCT、任意形状视频对象编码等。但是MPEG-4的基本视频编码器还是属于和H.263相似的一类混合编码器。总之,H.261建议是视频编码的经典之作,H.263是其发展,并将逐步在实际上取而代之,主要应用于通信方面,但H.263众多的选项往往令使用者无所适从。MPEG系列标准从针对存储媒体的应用发展到适应传输媒体的应用,其核心视频编码的基本框架是和H.261一致的,其中引人注目的MPEG-4的基于对象的编码部分由于尚有技术障碍,目前还难以普遍应用。因此,在此基础上发展起来的新的视频编码建议H.264克服了两者的弱点,在混合编码的框架下引入了新的编码方式,提高了编码效率,

18、面向实际应用。同时,它是两大国际标准化组织的共同制定的,其应用前景应是不言而喻的。Jmg_#F(L_1.2 H.264简介H.264是ITU-T的视频编码专家组(VCEG)和ISO/IEC的活动图像编码专家组(MPEG)的联合视频组(JVT:jointvideoteam)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10部分。H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。JVT(JointVideoTeam,视频联合工作组)于2001年12月在泰国Pattaya成立。它由ITU-T和ISO两个国际标准化组织的有关视频编码的

19、专家联合组成。JVT的工作目标是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性等目标。目前JVT的工作已被ITU-T接纳,新的视频压缩编码标准称为H.264标准,该标准也被ISO接纳,称为AVC(AdvancedVideoCoding)标准,是MPEG-4的第10部分。H.264标准可分为三档:基本档次(其简单版本,应用面广); 主要档次(采用了多项提高图像质量和增加压缩比的技术措施,可用于SDTV、HDTV和DVD等); 扩展档次(可用于各种网络的视频流传输)。 H.264标准压缩系统由视频编码层(VCL)和网络提取层(NetworkAbstractionLay

20、er,NAL)两部分组成。VCL中包括VCL编码器与VCL解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。NAL则用于为VCL提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。包头中包含存储标志和类型标志。存储标志用于指示当前数据不属于被参考的帧。类型标志用于指示图像数据的类型。VCL可以传输按当前的网络情况调整的编码参数。 1.2.1 H.264的特点 H.264和H.261、H.263一样,也是采用DCT变换编码加

21、DPCM的差分编码,即混合编码结构。同时,H.264在混合编码的框架下引入了新的编码方式,提高了编码效率,更贴近实际应用。H.264没有繁琐的选项,而是力求简洁的“回归基本”,它具有比H.263+更好的压缩性能,又具有适应多种信道的能力。H.264的应用目标广泛,可满足各种不同速率、不同场合的视频应用,具有较好的抗误码和抗丢包的处理能力。H.264的基本系统无需使用版权,具有开放的性质,能很好地适应IP和无线网络的使用,这对目前因特网传输多媒体信息、移动网中传输宽带信息等都具有重要意义。在技术上,H.264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的运动估计,基于44块的整数

22、变换、分层的编码语法等。这些措施使得H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50左右的码率。H.264/AVC视频编码标准中,采用了分层处理技术,主要包括两层:视频编码层VCL和网络抽象层NAL。VCL主要研究基于常规的运动补偿、系数变换编码、熵编码等编码技术来提高视频信号编码效率,使用的最基本的表示法是条带(slice)技术,即将一个待处理的图像分割成许多宏块来进行处理.一般而言,VCL主要包括4个重要方面的技术: 1降低对视频帧的处理时间:通过将每个视频帧划分成由点阵组成的块,将对视频帧的处理降到对块的处理。2降低视频帧在空间的冗余量:通过变换、量化和

23、熵编码方式对原始块进行编码。3在有效帧的宏块之间进行时间独立性分析,采用运动估计和补偿技术只对那些在有效帧之间变化的数据进行编码。 4通过对残差块的编码对视频帧中所残存的任何空间冗余进行利用。除了研究提高编码效率和简化语法形式之外,为了实现“网络友好”和无缝传输VCL数据,NAL将VCL从具体的传输层中抽象出来,定义了一个基本的和独立于网络的表示法。网络提取层(NAL) 负责使用下层网络的分段格式来封装数据, 包括组帧、逻辑信道的信令、定时信息的利用或发序列结束信号。视频编码的最后一步是熵编码。其中,基于VLC的熵编码是一个应用最广的方法,它主要应用在对量化变换系数、自适应块变换ABT(ada

24、ptive block transform)、运动向量和其他编码信息的压缩技术中;而基于内容的自适应二进制算术编码主要是使编码和解码两边都能使用所有语法元素(变换系数、运动矢量)的概率模型。尽管H.264编码基本结构与H.261、H.263是类似的,但它在很多环节做了改进,现列举如下。 1.2.2 帧间预测/运动估计(ME) 帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能,除了支持P帧、B帧外,H.264还支持一种新的流间传送帧SP帧,码流中包含SP帧后,能在有类似内容但有不同码率的码流之间快速切

25、换,同时支持随机接入和快速回放模式。1.2.2.1高精度的分数运动估计 H.263中采用了半像素估计,在H.264中则进一步采用1/4像素(亮度)甚至1/8像素(色度)的运动估计。即真正的运动矢量的位移可能是以1/4甚至1/8像素为基本单位的。显然,运动矢量位移的精度越高,则帧间剩余误差越小,传输码率越低,即压缩比越高。在H.264中采用了6阶FIR滤波器的内插获得1/2像素位置的值。当1/2像素值获得后,1/4像素值可通过线性内插获得,对于4:1:1的视频格式,亮度信号的1/4像素精度对应于色度部分的1/8像素的运动矢量,因此需要对色度信号进行1/8像素的内插运算。理论上,如果将运动补偿的精

26、度增加一倍(例如从整像素精度提高到1/2像素精度),可有0.5bit/Sample的编码增益,但实际验证发现在运动矢量精度超过1/8像素后,系统基本上就没有明显增益了,因此,在H.264中,只采用了1/4像素精度的运动矢量模式,而不是采用1/8像素的精度。 1.1.2子宏块划分模式在H.264的预测模式中,一个宏块(MB)可划分成7种不同模式的尺寸,小块模式的运动补偿为运动详细信息的处理提高了性能,减少了方块效应,提高了图像的质量。这种多模式的灵活、细微的宏块划分,更切合图像中的实际运动物体的形状,在每个宏块中可包含有1、2、4、8或16个运动矢量。1.2.2.2多参数帧设计在H.264中,可

27、采用多个参数帧的运动估计,即在编码器的缓存中存有多个刚刚编码好的参数帧,编码器从其中选择一个给出更好的编码效果的作为参数帧,并指出是一帧被用于预测,这样就可获得比只用上一个刚编码好的帧作为预测帧的更好的编码效果,可以改善视频图像质量。这一特性主要应用于以下场合:周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。1.2.3、帧内预测帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测(典型的是根据左上角的宏块,因为此宏块已经被编码处理),然后对

28、预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。H.264提供6种模式进行44像素宏块预测,包括1种直流预测和5种方向预测,相邻块的A到I共9个像素均已经被编码,可以被用以预测,如果我们选择模式4,那么,a、b、c、d4个像素被预测为与E相等的值,e、f、g、h4个像素被预测为与F相等的值,对于图像中含有很少空间信息的平坦区,H.264也支持1616的帧内编码。在H.264中,每个44块中的每个像素都可用17个最接近先前已编码的像素的不同加权和来进行帧内预测。 1.2.4、去块效应滤波器(Deblocking)由于编码是有损的,会引起重构以后块间亮度落差大、图像

29、出现马赛克等现象,影响人的视觉感受。为了消除这种块效应现象,H.264AVC在重构当前帧之前,采用了一个自适应的环路滤波器,能有选择性地对块间信号滤波,平滑块间信号,提高图像质量。重构后的帧更接近原始帧,有利于下一帧的运动补偿和预测,减少预测残差。1.2.5、整数变换和量化1.2.5.1整数变换在变换方面,H.264使用了基于44像素块的类似于DCT的变换,但使用的是以整数为基础的空间变换,不存在反变换因为取舍而存在误差的问题,与浮点运算相比,整数DCT变换会引起一些额外的误差,但因为DCT变换后的量化也存在量化误差,与之相比,整数DCT变换引起的量化误差影响并不大。此外,整数DCT变换还具有

30、减少运算量和复杂度,有利于向定点DSP移植的优点。1.2.5.2量化H.264中可选32种不同的量化步长,这与H.263中有31个量化步长很相似,但是在H.264中,步长是以12.5%的复合率递进的,而不是一个固定常数。在H.264中,变换系数的读出方式也有两种:之字形(Zigzag)扫描和双扫描,大多数情况下使用简单的之字形扫描;双扫描仅用于使用较小量化级的块内,有助于提高编码效率。1.2.6、熵编码视频编码处理的最后一步就是熵编码,在H.264中采用了两种不同的熵编码方法:通用可变长编码(UVLC)和基于文本的自适应二进制算术编码(CABAC)。在H.263等标准中,根据要编码的数据类型如

31、变换系数、运动矢量等,采用不同的VLC码表。H.264中的UVLC码表提供了一个简单的方法,不管符号表述什么类型的数据,都使用统一变字长编码表。其优点是简单;缺点是单一的码表是从概率统计分布模型得出的,没有考虑编码符号间的相关性,在中高码率时效果不是很好。因此,H.264中还提供了可选的CABAC方法。算术编码使编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概率模型。为了提高算术编码的效率,通过内容建模的过程,使基本概率模型能适应随视频帧而改变的统计特性。内容建模提供了编码符号的条件概率估计,利用合适的内容模型,存在于符号间的相关性可以通过选择目前要编码符号邻近的已编码符号的相应概

32、率模型来去除,不同的句法元素通常保持不同的模型。UVLC(Universal Variable Length Coding)/CAVLC(Contextbased Adaptive Variable Length Coding)统一的VLC(即UVLC:UniversalVLC)。UVLC使用一个相同的码表进行编码,而解码器很容易识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。内容自适应二进制算术编码(CABAC:ContextAdaptiveBinaryArithmeticCoding)。其编码性能比UVLC稍好,但复杂度较高。本文在大体介绍了H.264/AVC标准之后,便着重介绍

33、其中的熵编码技术,包括UVLC和CAVLC相结合的VLC编码。1.3 熵编码原理信息熵的概念是香农(Shannon仙农)于1948年在他创建的信息论中引进的,用来度量信息中所含的信息量:其中,H为信息熵(单位为bit),S为信源,pi为符号si在S中出现的概率。按照Shannon提出的信息理论,1948年和1949年分别由Shannon和Fano描述和实现了一种被称之为香农-范诺(Shannon-Fano)算法的编码方法,是一种变码长的符号编码。Shannon-Fano算法采用从上到下的方法进行编码:首先按照符号出现的概率排序,然后从上到下使用递归方法将符号组分成两个部分,使每一部分具有近似相

34、同的频数,在两边分别标记0和1,最后每个符号从顶至底的0/1序列就是它的二进制编码。Huffman(哈夫曼/赫夫曼/霍夫曼)在1952年提出了另一种从下到上的编码方法,是一种统计最优的变码长符号编码,让最频繁出现的符号具有最短的编码。Huffman编码的过程 = 生成一棵二叉树(H树),树中的叶节点为被编码符号及其概率,中间节点为两个概率最小符号(串)的并所构成的符号串及其概率所组成的父节点,根节点为所有符号之串及其概率1。具体编码过程可以用下列步骤实现:(1) 将符号按概率从小到大顺序从左至右排列叶节点(2) 连接两个概率最小的顶层节点来组成一个父节点,并在到左右子节点的两条连线上分别标记0

35、和1(3) 重复步骤2,直到得到根节点,形成一棵二叉树(4) 从根节点开始到相应于每个符号的叶节点的0/1串,就是该符号的二进制编码由于符号按概率大小的排列既可以从左至右、又可以从右至左,而且左右分枝哪个标记为0哪个标记为1是无关紧要的,所以最后的编码结果可能不唯一,但这仅仅是分配的代码不同,而代码的长度是相同的。香农-范诺编码与哈夫曼编码都属于不对称、无损、变码长的熵编码。码长虽然都是可变的,但却都不需要另外附加同步代码(即在译码时分割符号的特殊代码)。如果事先编写出一本解释各种代码意义的“词典”,即码簿(H表),那么就可以根据码簿一个码一个码地依次进行译码,但是有两个问题值得注意:1 没有

36、错误保护功能在译码时,如果码串中有哪怕仅仅是1位出现错误,则不但这个码本身译错,而且后面的码都会跟着错。称这种现象为错误传播,计算机对这种错误也无能为力,不能知道错误出在哪里,更谈不上去纠正它。2 不能随机定位因为是可变长度码,所以很难在压缩文件中直接对指定音频或图像位置的内容进行译码,这就需要在存储代码之前加以考虑。与香农-范诺编码相比,哈夫曼编码方法的编码效率一般会更高一些。尽管存在上面这些问题,但哈夫曼编码还是得到了广泛应用。利用哈夫曼方法进行编解码,在编码时需要计算造H表,存储和传输时需要存储和传输H表,解码时则需要查H表。有时为了加快编码速度、减少存储空间和传输带宽,可以对多媒体数据

37、使用标准的H表,但其压缩率一般比计算造表稍低。如果只关心编码速度、存储空间和传输带宽,可以采用标准H表方法;如果更关心压缩质量和压缩比,则可以自己计算造H表。即使是计算造表,也一般只对高频符号计算编码,而对其他符号则直接编码。这种方法尤其适用于有大量不同的输入符号,但只有少数高频符号的情况。1.4、熵编码器设计分析在H.264/AVC标准的熵编码方法中,比较简单的是对除了量化变换系数外的所有语法元素使用的单一无限扩展(infinite-extent)码字集。它不需要对每个语法元素设计一个变长编码表,只是将其映射到按照统计数据改变的单一码字表中。单一码字集使用 exp-Golomb编码这种固定语

38、法的变长编码。对要传输的量化变换系数则是使用基于内容的变长编码(CAVLC),(此时 entropy_code_mode=0),它是根据已传输的语法元素来改变对不同的语法元素变长编码表的使用。由于变长编码表的设计是基于相应的统计条件,所以其性能要好于使用单一变长编码表。 在CAVLC熵编码方法中,对非零量化系数和系数的大小、位置给以独立编码。经过Zig-Zag扫描后,可以发现系数有如下几个特点2:经常等于1,主要参数值集中在低频部分,高频部分的值比较小,而且高频非零系数通常是一个+1或-1的序列。非0系数的变化有一定的规律性和相关性,零系数的游程编码也具有一定特性。由于这些特点能与CAVLC相

39、适应,所以CAVLC对变换后的系数可以进行较大的压缩。H.264熵编码部分采用了两种核心技术,一种是基于指数哥伦布的变长编码,一种是基于查表的CAVLC编码,对硬件设计而言,变长编码需要逻辑通过运算实现,查表需要通过ROM寻址实现,所以要设计成两个相对独立的单元。1.5、本文组织与结构本文根据H.264变长编码的流程和特点,提出H.264变长编码的实现方法,它包括统一的变长编码(UVLC)和CAVLC两个部分,并针对它们的特点提出硬件的结构,优化编码流程,减少硬件消耗。本设计以JM为参考代码,根据其流程设计出对应的硬件结构,并生成实验数据,与VERILOG的结果比较,使用MODELSIM仿真模

40、型,硬件的结果使用ISE综合,得出最后硬件的代价和性能。1.6 本章小结本章介绍了视频编码基础,详细介绍了H.264技术改进,然后针对和本文相关密切的熵编码原来做进一步介绍,并对熵编码器的设计进行分析,提出将会用的的方法和困难,及其解决方法。第二章 软件算法分析相对H.264其他单元来说,熵编码单元流程复杂,数据相关性很强,要优化硬件结构,必须首先分析软件流程,对其流程进行抽取和简化,将其功能细分,并将软件流程映射到硬件设计单元。2.1 JM代码简介JM代码是H.264的官方测试源码,由德国hhi研究所负责开发。它实现了H.264所有的特性,由于是官方的测试源码,所以学术研究的算法都是在JM基

41、础上实现并和JM进行比较。但其程序结构冗长,只考虑引入各种新特性以提高编码性能,忽视了编码复杂度,其编码复杂度极高。本文参考代码采用JM73,并在该结构上进行了分析引用,归纳分析出其核心部分编码原理。2.2指数哥伦布编码2.2.1指数哥伦布算法的原理指数哥伦布编码是H.264熵编码(EntropyEncoding)的一部分,主要负责宏块层以上大部分语法的编解码,在宏块层中也有用到。它和其它熵编码算法诸如上下文自适应的可变长编码(CAVLC)和基于上下文自适应的算术编码(CABAC)一起把H.264的各种语法元素转换成码流中的比特信息。指数哥伦布算法是一种用于被JVT的H264和中国的音视频编码

42、标准AVS采用的可变长编码算法。常用的可变长编码算法Huffman算法不能直接用于无限字母表的编码,因为Huffman编码需要合并字母表中概率最小的字符,形成Huffman树,从而得到Huffman码。S.W Golomb最早开始对非负整数的无限字母表进行编码的研究工作。他引入了对整数i优化的一类前缀码,i=0并服从概率分布P(i)=(1-q)q是1/2的幂。Galagher和Van voorhis把Golomb的结果进行了推广,使得q可取0q=0。1域为分隔符,此处固定为比特“1”。TAIL域为码尾,表示一个M-bit二进制无符号数。2.2.2指数哥伦布算法分析指数哥伦布编码是一种变长编码算法。变长码采用不同长度比特位的码字来表示数据,对常用的数据采用较短的码字,对不常用的数据采用较长的码字。这样做的好处是提高了存储的效率,降低了传输时对网络带宽的占用。与定长码相比,变长码提高了编码效率,但其码长由其码字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号