AVS-M 与H.264(Baseline)视频解码器结构的分析

出处:maychang 发布于:2009-12-10 09:58:01

  H.264是JVT组织起草的一个覆盖多种应用和面向多种传输环境的国际标准,它规定了三种档次,基本档次(Baseline profile)、主要档次(Main profile)和扩展档次(Extended profile),其中基本档次利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC),主要用于会议电视、可视电话和无线通信等实时视频通信。

  AVS(Audio video coding)标准是由我国自主制定,拥有自主知识产权的音视频编解码技术标准。AVS-M(Mobile video)是AVS系列标准中的第七部分——移动视频,应用于数字存储媒体、宽带视频业务、远程监控和可视电话等。

  AVS-M和H.264(Baseline)视频解码器在结构上十分相似,但又各有其思想,本文基于JM10.2和WM3.3源代码对两解码器的关键技术作了详细分析。程序中并未单独有H.264(Baseline)的代码,是笔者从JM10.2中抽取出来分析的,下文中H.264均表示从基本档次上考虑。

  两种标准的解码器结构

  AVS-M 和H.264 视频解码器都只需考虑I 帧和P 帧(为了两标准视频解码器更好地比较, 本文对H.264 只考虑帧图像,不考虑场图像)的解码,总体思想是从比特流中解出头信 息,产生预测块,熵解码得到的量化系数经反量化、反变换得到残差块,预测块和残差 块相加后,经过滤波器即可得到重建的图像,其结构框图如图1 所示。

  在实际应用当中,这两种标准设计出来的解码器应用领域有所不同,现就以下几个方面 分析两种标准的差异。

  1 比特流信息

  ①NALU(Network Abstract Layer Unit):两标准中的比特流都是以NAL 为单位,每个 NAL 单元包含一个RBSP,NALU 的头信息定义了RBSP 所属类型。类型一般包括序列参数集(SPS)、图像参数集(PPS)、增强信息(SEI)、条带(Slice)等,其中,SPS 和PPS 属于参数集,两标准采用参数集机制是为了将一些重要的序列、图像参数(解码图像尺 寸、片组数、参考帧数、量化和滤波参数标记等)与其他参数分离,通过解码器先解码 出来。此外,为了增强图像的清晰度,AVS-M 增加了图像头(Picture head)信息。读 取NALU 过程中,每个NALU 前有一个起始码0x000001,为防止内部0x000001 序列竞争, H.264 编码器在一字节前插入一个新的字节——0x03,所以解码器检测到该序列时, 需将0x03 删掉,而AVS-M 只需识别出起始码0x000001。

  ②读取宏块类型(mb type)和宏块编码模板(cbp):编解码图像以宏块划分,一个宏 块由一个16*16 亮度块和相应的一个8*8cb 和一个8*8cr 色度块组成。

  (a) 两标准的帧内、帧间预测时宏块的划分是有区别的。H.264 中,I_slice 亮度块有 Intra_4*4 和Intra_16*16 两种模式,色度块只有8*8 模式;P_slice 宏块分为16*16、 16*8、8*16、8*8、8*4、4*8、4*4 共7 种模式。而AVS-M 中,I_slice 亮度块有I_4*4 和I_Direct 两模式,P_slice 时宏块的划分和H.264 中的划分一致。

  (b) 两标准的宏块cbp 值计算也不相同。H.264 中,Intra_16*16 宏块的亮度(色度) cbp 直接通过读mb type 得到; 非Intra_16*16 宏块的亮度 cbp=coded_block_pattern%16,色度cbp=coded_block_pattern/16 。其中,亮度cbp 4 位有效,每位决定对应宏块的残差系数是否为0;色度cbp 为0 时,对应残差系 数为0,cbp 为1 时,DC 残差系数不为0,AC 系数为0,cbp 为2 时,DC、AC 残差系数 都不为0。AVS-M 中,当宏块类型不是P_skip 时,直接从码流中得到cbp 的索引值,并 以此索引值查表得到codenum 值,再以codenum 查表分别得到帧内/帧间cbp。此cbp 为6 位,每位代表宏块按8*8 划分时是否包含非零系数,当变换系数不为0 时,需进一 步读cbp_4*4 中每位值来判断一个8*8 块中4 个4*4 块的系数是否为0。

  2 帧内预测

  H.264 中Intra_16*16 亮度块和8*8 色度块都有4 种预测模式(垂直、水平、直流、平面), AVS-M 中8*8 色度块只有3 种(垂直、水平、直流),H.264 中Intra_4*4 和AVS-M 中的 4*4 亮度块都有9 种预测模式,但排列顺序不一样。H.264 中的Intra_4*4 和AVS-M 中 的4*4 亮度块的模式可以通过邻块的帧内模式来预测,预测方法不同。H.264 中,当前 亮度块的可能模式由左块(A)、上块(B)中较小的决定,如果相邻块不存在,则A、B 模块的模式置为DC 。而预测模式的选定要看码流中标志信息 prev_intra4*4_pred_mode,该标志为1 时,则用可能模式,该标志不为0 时,还需 看参数rem_intra4*4_pred_mode , 如果它小于可能模式, 则预测模式即为 rem_intra4*4_pred_mode,否则为rem_intra4*4_pred_mode+1。AVS-M 中,左块(A)、 上块(B)的预测模式(若不存在,置为-1)形成表格后,通过查表可获得当前块的可 能模式。对I_Direct, 其预测模式即为可能模式; 对I_4*4 , 需看标志信息 pred_mode_flag,该标志为0 时,预测模式即为可能模式;该标志为1 时,当码流中 读到的intra_luma_pred_mode 小于可能模式,则预测模式为可能模式,否则,预 测模式为intra_luma_pred_mode+1。另外, H.264 中的Intra_16*16 和色度预测模式从码流中读取,AVS-M 的色度预测模式也从码流中读取。

  3 帧间预测

  两标准下亮度块的运动矢量等于预测运动矢量(MVPred)加上比特流中读取到的运动矢 量差(MVD)。由于亮度MV 为1/4 像素,而色度为1/8 像素,因此,色度块的运 动矢量等于亮度块的两倍。AVS-M 和H.264 的当前亮度块E 和邻块A、B、C、D 的空间位 置分别如图2、3 所示。E 的大小可以是16*16、16*8、8*16、8*8、8*4、4*8 或4*4。 显然,AVS-M 中,A 是与E 的左下角样本紧邻的块,B、D 与E 的左上角样本紧邻的块,C 是与E 的右上角样本紧邻的块。H.264 中,A 是与E 的左上角样本紧邻的块,B、D 与E 的左上角样本紧邻的块,C 是与E 的右上角样本紧邻的块。

  4.熵编解码

  H.264 中采用基于上下自适应的可变长编码(CAVLC),其原理: 4*4 块残差数据经整数 变换、量化后非零系数主要集中在低频部分,高频系数大部分是零,且高频位置上非零 系数值大部分是+1 和-1。AVS-M 熵编码也采用变长编码技术,在AVS-M 熵编码过程中, 所有的语法元素和残差数据都是以指数哥伦布码的形式映射成二进制比特流。

  5 环路滤波

  两标准都是采用基于块的残差系数反变换、反量化,量化过程相对粗糙,反量化恢复的变换系数必定带来误差,另一方面,运动补偿块可能来自不同帧位置的内插样本块,将 导致边界不连续,因此,需采用环路滤波来消除块预测误差造成的失真。H.264 中根据 相邻块模式、参考索引、运动矢量和解码块确定滤波强度,滤波强度参数Bs 值为0~4, 对于Bs 为1~3 的采用4抽头滤波器,对于Bs 为4 的采用6 抽头滤波器。H.264 中滤波 器能适应片级、边界级和样点级的需要。而在AVS-M 中根据当前宏块是帧内(帧间)编 码宏块来选择帧内(帧间)滤波器,当满足滤波条件后,采用4抽头滤波器对边界先垂 直后水平滤波。AVS-M 滤波器相对H.264 而言,像素少,强度弱,但在消除方块效应的 同时能大大地减少滤波时间。

  应用前景

  直播卫星电视和高清电视是其中进展快的项目。与整机厂商互动,AVS 标准组可从实 际应用中得到反馈,对标准、实现算法、软件、IP 内核、专用芯片进行及时的修改和改 进,从而真正适应产业的需求。 上广电主持的卫星电视实验系统项目中的AVS 编码器则采用了“转码器+DSP”的实现方 案。该系统高度兼容MPEG-2,这是由于MPEG-2 的节目较多,所以AVS 与它有一个融合- 取代的过程。如加密、用户管理、收费系统、编辑系统等其他配套系统不变。

  总结

  由上分析可知,两种视频解码器结构有很多共同之处。目前,关于H.264 视频解码器的 优化、硬件移植的方法及其应用很多,这些也可被AVS-M 采纳。本文根据优化H.264 的 相关文献中的一些方法对AVS-M 作过软件上的优化。算法上的优化主要包括插值、环路 滤波和熵解码的优化。插值时可以将像素分为内部像素和边界像素,避免重复的判断。 环路滤波时每个4*4 块中的每个点有相同的边界门限,其相应的滤波操作也可以4 次完 成。熵解码时,可通过重新建表减少转化程序。代码上的优化主要包括程序结构优化、 循环展开、数据类型选择和数据的移动等,例如,Decode_one_macroblock 函数中,可 根据宏块类型采用不同的函数来解码,对临时的缓存区可简化。此外,对插值运算(可 转化为矩阵运算)、反量化和反变换等涉及到矩阵运算的函数都可使用MMX/SSE 指令集 优化。

  H.264 是国际通用标准,而AVS-M 是我国自主制定的标准,因而,两标准兼容的视频解 码器的出现是种必然。本课题接下来的工作即是在对已有结构对比分析的基础上结合两 套代码,将两解码器结构相同部分进行复用,不同部分通过开关进行选择,实现对两种 不同格式的码流进行识别并实时解码。

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!