当前位置:文档之家› 基于Blackfin533的H264解码器的研究和实现

基于Blackfin533的H264解码器的研究和实现

湖南大学

硕士学位论文

基于Blackfin533的H.264解码器的研究和实现

姓名:李炜

申请学位级别:硕士

专业:电路与系统

指导教师:黎福海

20070420

基于Blackfin533的H.264解码器的研究与实现

摘要

近年来,随着因特网在全球范围的日益普及,移动通信的迅猛发展,网络传输以及各种新兴多媒体业务都竟相出现,对视频编解码技术提出了许多新的要求。如何提供更优质的传输质量成为信息科学与技术的研究热点。本论文主要以JM8.6代码为参考,在DSP平台上实现实时H.264的解码器。

论文以ADI公司的ADSP-BF533处理器为核心构建H.264解码器,给出了系统硬件的总体架构,对H.264参考模型JM8.6进行了分析和研究。针对ADSP BF533特点,优化了H.264 Baseline Profile Decoder的算法,编写了链接描述文件,并采用了转换运算方法,对Cache使能进行了优化配置,在PC平台上完成了H.264解码器程序。在此基础上,规范数据类型,修改语法,实现了H.264的解码算法从PC平台到DSP平台的移植。

针对实时应用的要求,本文对解码器的各个组成部分进行了详细的分析,在H.264参考模型JM8.6的基础上给出了H.264解码器的软件汇编级优化方法。在熵解码模块中,针对码表的特性,拆分码表,改变其搜索方式,明显提高了查表的效率,进而提高模块运行速度;对亮度像素内插算法则是进行现场插值,最小化参考帧数据量,从而节约片外存储器的带宽;在去方块滤波算法中,滤波强度函数GetStrength中getNeighbour()被反复调用,通过去除无效判断和冗余代码、优先大概率判断,提高该函数的执行速度。同时,合理安排数据存储空间,也能提高去块效应滤波的速度。

最后,H.264解码器在ADSP-BF533 EZ-KIT LITE开发板上进行了测试。测试数据表明,在输出码率在384-512kbps的情况下,该解码器达到了对CIF(352×288)格式每秒30帧的实时解码效果。

关键词:H.264视频解码器;BF533;去方块滤波算法;熵解码;亮度像素内插算法

硕士学位论文

Abstract

In the recent years, along with Internet in global scope daily popularization, swift and violent development of mobile communication, the network transmission as well as each kind of emerging multimedia service all unexpectedly appears. Many new requests have been set arranged to the encoding and decoding technology of video. How to provide the higher transmission quality become hot spot in information science and the technical research. This paper realizes the real-time decoder of H.264 based on DSP, referring to the JM8.6 code.

At the core to ADSP BF 533 processor produced by ADI Company, paper construct the decoder of the H.264, gives a overall framework of the system hardware. It analyzes the reference pattern of H.264 –JM8.6. According to the characteristic of ADSP BF 533, it optimizes the Algorithm of H.264 Baseline Profile Decoder, prepares link description file, does Optimal allocation to Cache using Conversion operations, and finish the decoder on PC platform. On this basis, it standardizes data type, changes grammars, and realizes the transplantation of H.264 decoder from PC platform to DSP platform.

Against the request of real-time application, the paper analyzes every components of the decoder. It gives the Optimization Software Series of decoder based on reference model JM8.6. In entropy module, resolute code table, changes the way of search, can noticeably improves the efficiency lookup, and then improves the operating speed. Interpolation scene, minimization reference frame data can conserve the bandwidth of memory chip in luma pixel interpolation algorithm. In the deblocking filter algorithm, strength filter function getNeighbour() has been call again. The execution can be improved by removing redundant code and void judgment and big priority probability judgment. Meanwhile, reasonable arrangements for the data storage space can improve the deblocking filter speed.

Finally, the decoder has been tested on the development board ADSP-BF533 EZ-KIT LITE. The test data shows the decoder real-time decoding results of CIF format at the speeding of 30 frames per second has achieved.

Key Words:H.264 video decoder; BF533; Deblocking filter; Entropy decoding;

Luma pixel interpolation algorithm

湖南大学

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

本学位论文属于

1、保密□,在______年解密后适用本授权书。

2、不保密□。

(请在以上相应方框内打“√”)

作者签名:日期:年月日

导师签名:日期:年月日

I

硕士学位论文

第一章 绪论

当今时代,随着信息技术和计算机互联网的飞速发展,多媒体信息己成为人类获取信息的最主要载体,同时也成为电子信息领域技术研究和开发的热点。众所周知,人类获取的信息中70%来自于视觉,视频信息在多媒体信息中占有重要地位;同时视频数据冗余度最大,经压缩处理后的视频质量高低是决定多媒体服务质量的关键因素。因此数字视频技术是多媒体应用的核心技术之一,对视频编码的研究已成为信息技术领域的热门话题。

近年来,视频压缩技术的进展己经进入多媒体革命的前沿,随着计算机和电子通信技术的飞速发展,人们己从单一媒体通信时代跨入了多媒体通信时代。当前如何有效的压缩多媒体信息特别是视频信息使其在网络上实时传输是极富挑战性的前沿课题。应用的需求极大推动着图像压缩编码向更深的方面发展,为了不同的应用需求,出现了多种视频压缩标准,而且在不断的更新和补充。

1.1视频压缩编码技术简介

图像压缩编码是图像通信、数字电视、多媒体技术等发展信息高速公路的核心技术之一。自从1948年Oliver就提出线性PCM编码理论以来,图像压缩编码技术得到了迅速的发展和广泛的应用,并日臻成熟。

1.1.1 视频编码的基本原理

图像压缩编码就是要以尽量少的比特数表征图像,同时保持复原图像的质量,使之符合特定应用场合的要求。图像的数据量因其非常庞大难以传输与存储,极大地制约了图像通信的发展。所以进行图像的压缩编码是势在必行的。

图像压缩编码通常有两个基本原理。一是利用图像信号的统计性质[1],即图像在相邻像素间、相邻行间及相邻帧间均存在较强的相关性,因此可以依据信息论中信息编码的原理,去除冗余度;二是利用人眼的视觉特性来实现图像压缩。人们对高频率的信号成分的视感度低,故在一定程度上压缩高频成分并无太大影响。色度信号的视感度低于亮度信号,故可对色度信号频带在行及帧方向进行压缩。

1.1.2 视频编码的主要方法

视频编码中主要压缩技术有以下几种:

(1) 预测编码

预测编码不是对一个像素直接编码,而是用同一帧(帧内预测编码)或相邻帧(帧间预测编码)中的像素值来进行预测,然后对预测值与实际值的残差进行量化和编码。

(2) 变换编码

变换编码是构成当前主要视频编码标准的另一项最基本技术,用来消除图像的频域

基于Blackfin533的H.264解码器的研究与实现

(变换域)冗余。变换编码可分为正交变换编码,子带编码和小波编码[2][3]。

(3) 统计编码

根据香农信息论的观点,信源冗余度来自信源本身的相关性和信源内部事件概率分布的不均匀性。统计编码主要有基于概率分布特性的霍夫曼编码[4]和算术编码,以及基于相关性的游程长度编码三类。

除以上几种编码方法以外,还有基于模型的编码[5][6]、基于对象的编码[7]、可分级的编码等方法[8],这里不再一一详述。

1.2 视频编码的主要标准

20世纪80年代中后期以来,视频编码技术得到了飞速的发展和广泛的应用,并且日臻成熟,其标志就是几个关于图像编码的国际标准的制定,即国际电信联盟电信标准化部门(ITU-T)关于电视电话/会议电视的视频编码标准H.261,H.263, H.263+,H.263++,H.264,以及国际标准化组织(ISO)和国际电工委员会(IEC)中的运动图像专家组(MPEG)制定的关于活动图像的编码标准MPEG-1, MPEG-2和MPEG-4等。这些标准融合了各种性能优良的编码技术,代表了图像/视频压缩编码技术的发展水平[9]。

1.2.1 ISO/IEC编码标准

1)MPEG-1标准[10]

MPEG-1标准制定于1992年,标准编号ISO/IEC 11172,主要针对1.5Mbps以下数据传输率的数字存储媒质运动图像及其伴音编码的国际标准,它用于在CD-ROM上存储同步和彩色运动视频信号码率为1.5Mb/s。该标准包括MPEG-1视频、音频和系统三部分。

2)MPEG-2标准[11]

MPEG-2标准制定于1994年,标准编号ISO/IEC 13818,该标准最初的目的是在与MPEG-1兼容的基础上实现低码率和多声道扩展,后来为了适应演播电视的要求开始致力于定义一个可以获得更高质量的多声道音频标准。

3)MPEG-4标准[12]

MPEG-4标准于1999年1月正式颁布,标准编号ISO/IEC 14496。后来又出现了第二版和第三版。由于具有基于内容的编码方法及灵活的组合结构,并采用了工具箱的方法,MPEG-4能支持各种各样的新功能,因此应用前景广阔。

1.2.2 ITU-T编码标准

1)H.261标准[13]

ITU-T于1990年公布的H.261标准,即“p×64kb/s视听业务的视频编码器(p=1-30)”,具有覆盖整个ISDN(综合业务数字网)基群信道的功能,适用于会话业务的活动图像编码,广泛应用于会议电视和可视电话。

2)H.263,H.263+,H.263++标准[14]

硕士学位论文

ITU-T于1995年7月推出了低码率视频压缩编码的H.263建议,其技术核心仍为混合编码方法,但借鉴了MPEG-2中的半像素运动估计和运动补偿技术及双向预测技术,可实现比H.261更高的压缩比,从而用于实现低于64kb/s的视频压缩编码。1998年ITU-T推出的H.263+是H.263视频编码标准的第二版,它提供了12个新的可选择模式,进一步提高了压缩编码性能。2000年ITU-T又推出了H.263++,对H.263又做了一些新的扩展,增加了一些新的可选技术,从而更加适应于各种网络环境,并增强差错恢复的能力。

3)H.264标准[15]

H.264标准是由ITU-1的VCEG(Video Coding Experts Group)和ISO/IEC的

MPEG(Motion Picture Experts Group)联合成立的“联合视频组”JVT(Joint Video Team)共同制定的新一代视频编码新标准。2003年3月,公布了标准的最终草案,称作

H.264/AVC 或MPEG-4 Visual Part l0。H.264能提供比MPEG-4和H.263标准更高的压缩性能,使图像的数据量减少50%;对网络传输具有更好的支持,引入面向数据包编码,有利于将数据打包在网络中传输;具有较强的抗误码特性,以适应在噪声干扰大、丢包率高的无线信道中传输;对不同应用的时延要求具有灵活的适应性;编码和解码复杂度具有可扩展性。

1.2.3 AVS编码标准

在数字化音视频产业中,音视频编码压缩技术是整个产业依赖的共性技术,是音视频产业进入数字时代的关键技术,因而成为近20年来数字电视以及整个数字音视频领域国际竞争的热点。直接面向产业的数字音视频编码标准(国际上主要是ISO制定的MPEG 标准)更是热点中的焦点。正是因为其极端重要性,国际上很多企业纷纷将自己的专利技术纳入国际标准,也有部分企业借此而提出了越来越苛刻的专利收费条款。比专利费问题更为严重的是,标准作为产业链的最上游,将直接影响芯片、软件、整机和媒体文化产业运营等整个产业链条[16][17]。

我国政府、产业、科研等领域数年前就己注意到这个问题。2002年6月,在信息产业部支持下,成立了“数字音视频编解码技术标准AVS (Audio Video coding Standard Working Group of China)”工作组(简称AVS工作组),从事制定具有自主知识产权的音视频编码标准。2003年,国家发展和改革委员会批准了《数字音视频编解码技术标准AVS 研究开发与测试验证重大专项》。在国内外上百家企业和科研单位共同参与下,AVS标准制定工作进展顺利,其中最重要的视频编码标准于2000年通过国家广电总局测试,2003年12月19日正式发布AVS标准草案,2006年1月得到信息产业部批准,2月国家标准化管理委员会正式颁布,3月1日起实施。

目前,AVS标准中涉及视频压缩编码的有两个独立的部分:AVS第二部分

(AVS1-P2),主要针对高清晰度数字电视广播和高密度存储媒体应用;AVS第七部分(AVS1-P7),主要针对低码率、低复杂度、较低图像分辨率的移动媒体应用。

基于Blackfin533的H.264解码器的研究与实现

1.3 国内外发展情况

从1995年推出第一个互联网流媒体播放器以来,流媒体应用有了爆炸性增长。据统计,目前互联网每周约有4.5个小时的广播节目,58个美国电视台提供Web广播,39个电视台提供点播服务。有近半数的跨国公司在内部使用流媒体实现Web广播。正如几年前的IP网络和Web技术,流媒体应用正处于持续高速增长时期。

H.264/AVC标准不但具有很多特征和工具以提高编码效率,而且还设计了一些关键技术用来解决视频通信中的传输问题,标准借助于这些关键技术在接收的压缩数据出现错误(或丢失)和面对变化的网络环境的情况下使得播放效果明显高于以往标准。

H.264/AVC支持从低比特率要求的移动或拨号设备到有娱乐质量标准要求的IPTV, HDTV服务等,标准中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输。同时,H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应有线和无线网络的应用。具体的网络适应性包括以下几个方面:

(1)采用分层结构,分为视频编码层(VCL)和网络抽象层(NAL),结构更清晰,提高了网络适应性;

(2)使用参数集,将参数集与编码数据分离;

(3)采用数据分割,使得传输过程中产生的数据错误不会扩大到整个图像,只会在划定的分割内存在,提高了纠错能力;

(4)采用FMO模式,新的差错隐藏纠错技术。

到目前为止,H.264标准定义了四个档次,其中基本档次(Baseline Profile)的目标是使编解码复杂度最小,在大部分网络环境和条件下可以提供高度的鲁棒性和灵活性,主要应用于可视电话、视频会议和无线通信等。

近年来,网络适应性的研究主要体现在两个大的方面,一个是参数集分信道传输,一个是纠错算法的改进。

1.对于不够稳定的IP分组网络和环境恶劣的无线信道,H.264标准建议对参数集的数据采用相对稳定信道传输,保证重要数据的传输质量,而编码数据则可以采用普通信道传输,这其实是一种客户端实现的QoS机制。

2.采用效果更加好的差错隐藏算法可以在传输质量不高的网络中,对丢包和丢块的图像进行错误恢复,提高图像的质量。而对于H.264编解码方面的算法研究近年来层出不穷,主要采用的方式有:改进预测补偿算法、改进自适应变长编码(CAVLC)中的查表算法、以及对程序流程和数据结构上的程序一级的改进。这些都是H.264/AVC标准大范围应用前所需要进行的工作。尤其对于降低编解码程序的算法复杂度、减少计算量方面,将是长期而具有挑战性的工作。

1.4 课题背景

近年来,随着因特网在全球范围的日益普及,移动通信的迅猛发展,网络传输以及

硕士学位论文

各种新兴多媒体业务的出现,如视频会议、可视电话、高清晰度电视、视频点播、视频检索、数字图书馆以及视频监控等,都向视频编解码技术提出了许多新的要求。视频编解码的研究已从面向存储转为面向传输,除了传统的良好压缩性能与重建质量外,实现多分辨率编码、嵌入式编码及抗误码传输,从而能在无线移动环境向用户提供个性化的服务也越来越受到重视。视频编解码技术已经成为当今信息科学与技术的研究热点。

在视频压缩算法领域,MPEG-4已经取得了令人瞩目的成果,占据了多媒体通信终端设备的大部分市场。然而H.264的出现,对MPEG-4的生存构成严重威胁。相对于H.263和MPEG-4视频标准,H.264标准有更高的压缩效率和图像质量。在同等的图像质量条件下,H.264的数据压缩比能比当前DVD系统中使用的MPEG-2高2-3倍,比MPEG-4高1.5-2倍。H.264更高的压缩比和更低的带宽需求,为实时应用(如视频电话)和非实时应用(如存储、广播或者流媒体)提供了一个优良的视频压缩编解码通用工具。

H.264算法非常复杂,如何有效地实现H.264等图像压缩标准是多媒体通信中面临的主要难题之一。在现有的视频编解码系统中,人们一般采用三种方式来实现压缩算法:其一是用纯硬件方式来实现图像的编码解码,即采用专用芯片来完成。此种方式实现的编解码系统实时性好,压缩率高且图像质量好,但是一旦编解码方案固定就无法对其进行升级与更新,并且系统成本很高,难以在市场上推广;其二是用纯软件方式如在通用的PC机上实现编解码算法,此方案实现灵活,算法易更新升级,缺点是很多场合不适合使用PC机作为编解码平台,所以使用范围较为局限;其三是基于通用视频DSP芯片的软件实现,此方案充分利用了DSP的高速信号处理功能,使用软件实现的算法在DSP上运行时,执行时间较短并可以获得较高的压缩性能,功耗较小,同时方案易于升级更新。

ADI公司的Blackfin系列DSP,结合了双MAC、正交RISC微处理指令集和动态电源管理部件,用以实现对处理器电压和频率的实时调整,从而使得DSP的功率消耗和处理性能达到最优,非常适合应用于实时视频编解码器,尤其是对功耗要求严格的嵌入式视频处理的应用场合。ADSP-BF533是其中的一款高性能的处理芯片,本文选择该芯片作为H.264解码器的开发平台。

1.5 主要研究内容

本文主要工作如下:

1)深入分析H.264标准,对H.264标准中采用的新的编解码技术进行总结和分析。

2)对H .264参考模型JM8.6进行分析和研究,针对ADSP--BF533特点,重新改

写H.264 Baseline Profile Decoder的算法。

3)针对ADSP-BF 533芯片系统结构,在BF533平台上实现H.264 Baseline Profile

Decoder的算法,对Baseline Profile Decoder进行系统优化和模块优化,提高了

解码速度,实现了对CIF (352×288)图像序列的实时解码。

论文共分六章,各章的内容安排如下:

基于Blackfin533的H.264解码器的研究与实现

第一章,总体性的概括介绍,说明本文研究内容的现实意义及可行性;

第二章,视频编码及H.264标准,介绍视频编码技术的基本原理和方法,视频编码的国际标准和H.264标准关键技术;

第三章,ADSP-BF533芯片及其开发环境,分析了ADSP-BF533结构特点、指令特点以及Visual DSP++开发环境,给出了系统的硬件架构;

第四章,H.264解码器的实现和优化,介绍了基于ADSP-BF533的H.264 Baseline Profile Decoder的实现和优化方案;解码器具体函数模块的优化,包括去方块滤波、熵解码、亮度像素内插值运算的实现与优化;实验测试数据和分析,给出H.264解码器在ADSP-BF533上的优化结果,并与优化之前的性能进行分析比较。

最后进行了总结和展望,总结了本文所做工作,并探讨了本课题进一步研究的方向。

硕士学位论文

第二章 H.264编码标准

2.1 H.264简介

H.264是由国际电信标准化部门ITU-T 和制定MPEG 的国际标准化组织ISO/国际电工协会IEC 共同制定的一种高压缩比、高图像质量、良好的网络适应性的视频编码国际标准格式。H.264标准制定的目标致力于较高的压缩性能和良好的网络友好性。它吸收了现有视频编码标准的优点,同时提出了许多新的思想和算法,大幅度提高了编码的效率和图像质量。

2.1.1 H.264的基本编码结构

视频的各种应用必须通过各种网络传送,这要求一个好的视频方案能处理各种应用和网络接口。为解决这个问题,H.264标准压缩系统的设计方案包含两个层次[18],视频编码层(VCL ,Video Coding Layer )和网络抽象层(NAL ,Network Abstraction Layer )。视频编码层主要致力于有效的表示视频内容,包括VCL 编码器与VCL 解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。网络抽象层(NAL )格式化VCL 视频表示,提供头部信息,为VCL 提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送。H.264的编码结构如图2.1所示。

图2.1 H.264的编码结构

H.264视频编解码器的基本结构与早期的编码标准相似,都是由运动补偿、变换、量化、熵编码、环路去块效应滤波器等功能单元组成。编码器和解码器的功能组成分成分别如图所示。

编码器采用的仍是变化和预测的混合编码法。

输入的帧或场以宏块为单位被编码器处理。首先,按帧内或帧间预测编码的方法

进行处理。

n F 如果采用帧内预测编码,其预测值(图中用表示)是由当前片中已编码的

参考图像经运动补偿(PRED P MC )后得出的,其中参考图像用1n F ?表示。为了提高预测精度,

从而提高压缩比,实际的参考图像可在过去或未来(指显示次序上)已编码解码重建和 滤波的帧中进行选择。

基于Blackfin533的H.264解码器的研究与实现

预测值和当前块相减后,产生一个残差块,经过块变换、量化后产生一组

量化后的变换系数PRED n D X ,再经统计编码,与解码所需的一些边信息(如预测模式量化参数、运动矢量等)一起组成一个压缩后的码流,经(网络自适应层)供传输和存储用。

NAL 为了提供进一步预测用的参考图像,编码器必须有重建图像的功能。因此必须使用残差图像经反量化、反变换后得到的n D ′与预测值相加,得到P n uF ′(未经滤波的帧)。为了去除编码解码环路中产生的噪,提高参考帧的图像质量,从而提高压缩图像性能,设置了一个环路滤波器,滤波后的输出n F ′即为重建图像,可用作参考图像[19]。

图2.3 解码器框图

解码器的工作过程与编码器正好相反。由编码器的输出一个压缩后的H.264压缩比特流,经统计解码得到量化后的一组变换系数NAL X ,再经过反量化、反变换,得到残差。利用从该比特流中解码出的头信息,解码器就产生一个预测块,它和编码器中的原始是相同的。当该解码器产生的与残差n D ′PRED PRED PRED n D ′相加后,就产生n uF ′,再经过滤波后,最后就得到重建的n F ′,这个n F ′就是最后的解码输出图像[20]。

2.1.2 H.264的标准档次和级别

到目前为止,H.264标准共定义了四个档次(profile ),即基本档次(baseline profile )、主档次(main profile )、扩展档次(extended profile )和高档次(high profile ),代表了针对不同应用的算法集及技术限定。前三个档次于2003年5月推出,高档次则是2004年

图2.2 编码器框图

硕士学位论文

7月新增补的[21]。

其中,baseline profile主要包含了低复杂度、低延时的技术特征,在大部分网络环境和条件下可以提高高度的鲁棒性和灵活性,主要应用于可视电话、视频会议和无线通信等。baseline profile的内容基本都被其它更高级别的profile 所包含。而main profile 是针对更高编码效率的应用,可以应用于广播电视和视频存储。extended profile 的设计主要针对流媒体的应用,所有容错技术、对比特流的灵活访问及切换技术都将包括其中。而high profile则可以应用于数字视频广播(DVB: Digital Video Broadcast)、HD-DVD等。尽管各个档次有所差别,但实际上每个档次都非常灵活,可以支持很广泛的应用。

每个档次支持一组特定的编码功能,H.264标准详细规定了每个档次所采用的编码工具。

1)基本档次

基本档次支持帧内和帧间编码(利用I分片(Slice)和P分片),熵编码采用CA VLC(Context-Adaptive Variable Length Coding),支持一些低时延容错工具,兼具一个低复杂度有效编码工具子集。为了减少误码影响和增强误码恢复的能力,基本档次里支持灵活的宏块组织顺序(FMO),宏块可以灵活的划分为多个片组;片之间是相互独立的可以任意的顺序(ASO)传输到解码端。而且在比特流中片可以使用冗余片方式(RS)传输,这在片数据出错的情况下可用来进行恢复,增强了图象传输的鲁棒性。同时片间的相互独立性抑制了错误的空间传播,因此提高了比特流的容错性。

基本档次的使用无需版权,不必交纳专利费。

2)主档次

主要档次支持隔行视频,采用许多新的编码工具以尽可能提供编码效率,如B帧和CABAC熵编码,但它并不支持FMO,ASO及RS等技术;而且首次将权值预测(WP)方法合并到视频编码标准中。在此框架内提出了适配块划分尺寸的变换(ABT)的概念。此概念是针对帧间编码的,其主要思想是将对预测参差进行变换编码的块尺寸与用来进行运动补偿的块尺寸联系起来。这样就尽可能的利用最大的信号长度进行变换编码。

3)扩展档次

扩展档次不支持隔行视频和CABAC,但增强了可在码流间进行有效切换的模式以及改进的误码恢复功能。其中采用的新的图片类型SP帧用类似于P帧运动补偿预测编码去除时域冗余,与P帧不同的是,SP帧允许相似图片重建即使它们从不同参考帧预测而来。SI帧类似于I帧,和SP帧具有相同的特征。

4)高档次

高档次具有主档次的所有特征,但支持高于8bit/s样值位深(sample bit depth)(10bit/s样值位深和12bit/s样值位深),增加了8×8整型变换、基于感知的量化缩放矩阵以及视频中指定区域的无损压缩等功能。与主档次相比,高档次可以获得更高效的压缩和更高分辨率的重建质量,但实现复杂度不会显著增加。因此,高档次己经引起了包

基于Blackfin533的H.264解码器的研究与实现

括美国ATSC (Advanced Television System Committee)在内的产业界的极大兴趣,极有可能逐步取代主档次。

2.2 H.264的基本档次编码技术

H.264之所以其性能远远优于任何其它标准,主要是因为采用了一系列先进的编码技术,如帧内预测、用整型变换代替常用的DCT变幻,加快了处理速度,同时相应的量化模块也有所改变、高精度运动古迹、自适应变长编码、基于4×4块的解块滤波器平滑块的边缘,提高图像质量等,使得在同样的带宽条件下,H.264视频图像质量超过了以往的任何标准[22][23]:

1)使用1/4或1/8像素精度的运动估计。

2)多帧预测。帧间编码时,可选5个不同的参考帧,提供了更好的纠错性能。

3)帧内预测编码。H.264采用了多种设计合理的帧内预测模式,大大降低了I帧的

编码率。

4)多种宏块划分模式。每个宏块(16×16像素)的亮度分量有多达7种区分方法:

16×16、16×8、8×16、8×8、8×4、4×8、4×4。

5)去块滤波器。H.264定义了自适应去除块效应的滤波器,这可以处理预测环路中

的水平和垂直块边缘,大大减少了方块效应。

6)整数变换。H.264使用了基于4×4像素块的整数变换代替DCT变换。

7)熵编码。H.264中支持两种不同的熵编码方法:基于文本的自适应可变长编码

(CA VLC)和基于文本的自适应二进制算术编码(CABAC)。CA VLC的抗差错

能力比较高,而编码效率比CABAC低;CABAC编码效率高,但需要的计算量

和存储容量更大。

2.2.1 帧间预测

帧间预测编码是利用视频图像帧间的相关性,即时间相关性,来达到图像压缩的目的,广泛用于普通电视、会议电视、视频电话、高清晰度电视的压缩编码。

在图像传输技术中,活动图像特别是电视图像是关注的主要对象。活动图像是由时间上以帧周期为间隔的连续图像帧组成的时间图像序列,它在时间上比在空间上具有更大的相关性。大多数电视图像相邻帧间细节变化是很小的,即视频图像帧间具有很强的相关性,利用帧所具有的相关性的特点进行帧间编码,可获得比帧内编码高得多的压缩比。对于静止图像或活动很慢的图像,可以少传一些帧,如隔帧传输,未传输的帧,利用接收端的帧存储器中前一帧的数据作为该帧数据,对视觉没有什么影响。因为人眼对图像中静止或活动慢的部分,要求有较高的空间分辨率,而对时间分辨率的要求可低些。这种方法叫帧重复方法,广泛应用于视频电话、视频会议系统中,其图像帧速率一般为1-15帧/秒。

采用预测编码的方法消除序列图像在时间上的相关性,即不直接传送当前帧的像素

硕士学位论文

值,而是传送X 和其前一帧或后一帧的对应像素X ′ 之间的差值,这称为帧间预测。当图像中存在着运动物体时,简单的预测不能收到好的效果。如果已经知道了物体运动的方向和速度,可以从小球在k-1帧的位置推算出它在k 帧中的位置,而背景图像(不考虑被遮挡的部分)仍以前一帧的背景代替,将这种考虑了小球位移的k-1帧图像作为k 帧的预测值,就比简单的预测准确得多,从而可以达到更高的数据压缩比。这种预测方法称为具有运动补偿的帧间预测。

具有运动补偿的帧间预测编码是视频压缩的关键技术之一,它包括以下几个步骤:首先,将图像分解成相对静止的背景和若干运动的物体,各个物体可能有不同的位移,但构成每个物体的所有像素的位移相同,通过运动估值得到每个物体的位移矢量;然后,利用位移矢量计算经运动补偿后的预测值;最后对预测误差进行量化、编码、传输,同时将位移矢量和图像分解方式等信息送到接收端[24-27]。

H.264帧间编码与以往标准帧间预测的区别在于块尺寸范围更广(从16×16到4×

4)、亚像素运动矢量的使用(亮度采用1/4像素精度

MV )及多参考帧的运动等等。

mode=1

mode=5mode=6mode=7mode=4

图2.4 H.264中的宏块分裂方式

在H.264的运动预测中,一个宏块(MB )可以按图2.4被分为不同的子块,形成7种不同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动物体的形状,大大提高了运动估计的精确程度。在这种方式下,在每个宏块中可以包含有1、2、4、8或16个运动矢量。

在H.264的运动预测中,采用了多帧参考技术(最后前向和后向各5帧),编解码器可以使用多于一帧的先前帧作为参考帧。多帧参考技术在帧间预测中的运动与当前帧类型有关系,对于P 帧采用前向多帧预测;对于B 帧采用前向、后向、双向和直接多帧预测方法。其中双向多帧预测采用了多帧加权平均算法。采用多帧参考技术后,H.264不仅能够提高编码效率,同时也能实现更好的码流误码恢复,但需要增加额外的时延和存储容量。

在H.264中支持高精度的运动矢量预测,采用插值技术支持1/4、1/8像素精度的运动估计和运动补偿,采用这些技术后大大提高了图像的质量。

基于Blackfin533的H.264解码器的研究与实现

2.2.2 帧内预测

在帧内预测模式中,预测块P 是基于已编码重建块和当前块形成的[28]。对于亮度样值,预测块P 可以有4×4和16×16两种尺寸。对于4×4的亮度块,一共有9种可选的预测模式,独立预测每一个4×4亮度子块,适用于带有大量细节的图像编码。对于16×16的亮度块,有4种选择模式,预测整个16×16亮度块,适用于平坦区域图像编码。色度也有4种预测模式,类似于16×16亮度块预测模式。

图2.5 4×4亮度预测模式

图2.6 16×16帧内预测模式

H.264还提供了一种帧内编码模式I_PCM ,允许编码其直接传输图像样值而无需进行预测和变换。在某些特殊的情况下,例如图像内容异常或采用非常小的量化参数时,这种模式可能比采用通常的帧内预测、变换、量化和熵编码过程更有效率。采用I_PCM 模式可以严格限制一个编码宏块内包括的比特数,而无需考虑解码图像的质量。

2.2.3 整数变化

H.264在进行运动补偿预测或帧内预测之后,对4×4残差数据块使用了类似于4×4离散余弦变换DCT [29] (Discrete Cosine Transform)的整数变换,从时域变换到频域。

其基本的编码特性与4×4点的二维DCT 变换相同,将这种整数变换分解为一维整数变换,先进行行变换,再进行列变化。

硕士学位论文

[]222

2222

2111112112112111211111112122

112112

224

242

22424T

f f f Y C X C E X a b

a b a a a b b a b b a b

a b a a a b

b a b b ???????????????????=?=????????????????????????????????????????????????????????(2.1)

其中,12a =

,b =12d = 与8×8的DCT 变换相比,4×4的整数变换有很多优点,一是减小了方块效应,方块效应是由于变换编码并量化后,造成的图像细节的丢失。而采用更小的4×4点的方块进行变换,使得方块效应更小。二是变换的核心操作没有乘法运算,只有加法和移位,算法简单明了,容易实现。三是运算速度快。四是占用内存小。这样一来提高了运算速度,降低了运算复杂度。

在16×16点Intra 模式下,对于亮度DC 系数,相邻的4×4点像素块先通过核心变换,由于变换后得到DC 系数仍有很大的相关性,再将每个4×4点的DC 系数抽出,采用4×4点哈达马变换进行处理,所得的输出再经过量化得到最终输出的DC 系数块;对于色度DC 系数块,将每个8×8宏块分割成4个4×4点块,每个4×4的点块先进行核心变换进行处理,再将每一个4×4点块的DC 系数取出,采用2×2点哈达马变换进行处理,输出系数再经过量化得到最终输出的DC 系数块。

H.264中新的整数变换方案是一个“分层”式的变换算法,其核心是4×4块的亮度/色度分量整数变换;为了提高压缩比,还对亮度分量DC 系数做4×4块整数变换,针对色度分量DC 系数做2×2块整数变换。

2.2.4 量化

从某种意义上讲,变换是无损的,只是单纯的将信息从空间域转换到一个变换域中使之能够被有效的编码。真正造成图像信息损失的是量化过程。

在图像和视频编码标准中,经变长码解码的系数矩阵通过反量化就能产生重构的整数变换系数。在进行了二维核心变换后,缩放过程是和量化过程相结合的。反量化过程的实质是以量化步长乘以系数矩阵,一般按照如下方式定义量化和反量化过程。

(/)step Z round Y Q = (2.2)

其中,Z 为量化值,为输入系数值,Y step Q 为量化步长。

基于Blackfin533的H.264解码器的研究与实现

Q值,每个宏块的量化步长由量化

H.264中采用分级量化的方法,一共支持52个step

Q就增加一倍。也就是参数QP决定。量化步长基本符合指数关系,每隔6个QP,step

说,QP每增加1,量化步长就增加12.5%。大范围的量化步长使得编码器可以在码率和质量之间进行精度和灵活性的均衡。

PSNR值和QP有近似线性关系。为了避免视觉熵明显的纹理效应,色度分量的QP值大致限定为亮度QP值的80%[30]。

把变换与量化融合在一起,有效的减少了压缩编码的运算量。

2.2.5 重排序

H.264编码在经过系数变换和量化后,要对冗余块进行4×4(或2×2)扫描。

编码时每个已量化的4×4块变换系数按照Zig-Zag的顺序映射成一个包括16个元素的一维数组。在16×16帧内模式编码的宏块中,每个4×4亮度块的DC系数首先以图2.6中的顺序扫描。剩余的15个AC系数从第二个位置开始扫描。类似地,色度的2×2DC系数以光栅顺序首先扫描,剩余的15个AC系数从第二个位置开始扫描。

系数残差块经变换量化后,矩阵右下三角基本为零,采用Zigzag扫描能够最大可能

图2.6 4×4亮度块(帧内模式)的Zig-Zag扫描

2.2.6 熵编码

H.264提供了两种熵编码的方法,即基于上下文的自适应变长编码(CA VLC)和自适应二进制算术编码(CABAC)[31]。

H.264的语法中有一个熵编码模式选项,在分片层以上,对语法元素往往采用定长或变长二进制码进行编码;在分片及其以下,根据熵编码的模式,对语法元素进行基于上下文的自适应变长编码(CA VLC)和自适应二进制算术编码(CABAC)[32][33]。若熵编码模式为0,则对变换和量化后的残差数据块采用基于上下文的自适应变长编码(CA VLC)[34],对其它数据如头信息等,则使用一种单一的变长编码表指数哥伦布码表(Exp-Golomb Code:Exponential Golomb)进行编码。若熵编码模式为1,则采用自适应二进制算术编码(CABAC)对语法元素进行编码。

基于上下文的自适应变长编码(CA VLC)是一种可变长度编码,它根据已编码语法元素的情况动态调整编码中使用的码表,以求达到更高的编码效率。CA VLC是用于对

硕士学位论文

扫描读出的残差块的变换系数进行熵编码,在编码过程中有些语法元素是组合编码的,变换和扫描后的系数的特点可以与CA VLC相适应,所以对变换后的系数可以进行较大的压缩。CA VLC利用相邻块间非零系数的个数相关以及零系数集中在高频段等特性,采用从高频开始的逆向扫描的方式,充分挖掘了数据的统计特性,提高了压缩比。它是一种有序的算法并且计算量不是非常大,因此它的发展具有很大的潜力。

CA VLC编码方法将量化后非零系数的个数(N)与非零系数的大小(L)及其位置分开进行编码,其中包括如下5个编码要素:

1.非零系数个数与连续1(trailing ones)的个数;

2.连续1(trailing ones)系数的符号;

3.其它系数值;

4.最后一个非零系数之前零系数个数;

5.每个非零系数与前一个非零系数之间零系数个数。

前3个要素决定编码系数值的个数与大小,后两个系数决定系数的位置。CA VLC 最大的特点是基于上下文(Congtext-Adaptive)的熵编码方法,第一个要素的编码包括5个码表,码表的选取由左边与上边的4×4块的非零系数的平均值决定。

CA VLC容易实现,计算简单,只需要查一个变长码表就可以,对于比特误码具有很好的鲁棒性。CABAC可以自适应于视频内容的变化,在各种码率和视频内容下都可以获得最优的熵编码,但是运算复杂度高。

2.2.7 去方块滤波

基于块的图像编码在块的边缘精度较低,引起的块间误差大,产生使人敏感的块状视觉效应,也就是所谓的方块效应。

对解码宏块进行滤波是为了降低图像的块效应失真。滤波器可以平滑块的边缘,从而提高解码图像质量。与未经过滤波的图像相比,滤波后的图像更接近于原始图像,所以将滤波后的图像用于后续帧的运动补偿预测可以提高运动补偿的效率。

H.264去块滤波处理是应用于已解码完成的宏块[35][36],是基于4×4块边界的,也就是说对于每一个宏块的16×16亮度分量,需要对其4条水平边界和4条垂直边界进行滤波,而8×8的色度分量则只需要对其2条水平边界和2条垂直边界进行滤波。

在编码环和解码环中使用去块滤波系统主要有两个优点:图像中由于运动补偿、变换及量化产生的虚假边界可以被平滑,降低图像块效应,提高了主观视觉效果;滤波后的帧用与后续帧的运动补偿视觉预测,从而避免了虚假边界积累误差导致的图像质量进一步降低。编码器和解码器均在反变换后进行去块效应滤波。

2.3 H.264的应用前景

在同等的图像质量条件下,H.264的数据压缩比比MPEG-2高2-3倍,比MPEG-4高1.5-2倍。正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带

基于Blackfin533的H.264解码器的研究与实现

宽更少,也更加经济。

H.264不仅比MPEG-4节约了50%的码率,而且对网络传输具有更好的支持功能。它引入了面向IP包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。H.264具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。H.264支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。H.264能适应于不同网络中的视频传输,网络亲和性好。同时H.264的基本系统无需使用版权,具有开放的性质,能很好地适应IP和无线网络的使用,这对互联网传输多媒体信息、移动网传输宽带信息等都具有重要的意义。

不断提高的硬件处理能力和不断优化的软件算法是H.264得以风行的生存基础。

H.264获得优越性能的代价是计算复杂度的大幅增加,例如分层设计、多帧参论、多模式运动估计、改进的帧内预测等,这些都显著提高了预测精度,从而获得比其他标准好得多的压缩性能。

H.264的应用范围是非常广阔的,它可以适用于多种网络,其高效的编码性能可满足多种应用的需求,可满足各种不同速率、不同场合的视频应用,具有较好的抗误码和抗丢包的处理能力。它将主要应用在以下领域:基于电缆、卫星、Modem、DST等信道的广播,视频数据在光学或磁性设备上的存储,基于ISDN、以太网、DSL无线及移动网络的通话服务、视频流服务、彩信服务等,除了以上介绍的应用,基于H.264的平台必定会出现更多新的应用。可以说H.264的应用前景将是非常广阔的。

相关主题
文本预览
相关文档 最新文档