无线应用中典型视频编解码器方案功能分析
无线应用的视频编解码器具有一些不同的功能要求,其视频编解码过程通常包括视频预处理、实际的视频编码与解码以及视频后处理三个阶段,所支持的视频标准、算法和视频结构都具有一些特殊性。本文以OMAP5910为例介绍了无线应用中的视频编码与解码功能,并图解分析了编解码器的结构组成。
无线应用中的视频编解码器需要符合第三代伙伴项目(3GPP)组织规定的多媒体电话低码率编解码器的标准,包括3G TS26.110、3G TS26.111以及3G TR26.911。本文以TI OMAP5910为例分析无线视频编解码器(编码器与解码器)的功能要求,包括为转换到编码器识别的输入格式而对采集数据的预处理,以及为转换到LCD显示屏要求格式的数据后处理。
3GPP规定的基本编解码器要求支持H.263标准,而 MPEG-4简单可视类(Simple Visual Profile)则定义为可选。已实现的视频编解码器支持以下视频格式:SQCIF(128×96)、QCIF(176×144)、简单类1级(Simple Profile Level 1)、CIF(352×288)简单类2级、码率为64kbps的简单类1级和码率为128kbps的简单类2级。
视频编解码器功能
视频编码器要求YUV4:2:0格式的视频输入,因此可能根据应用需要进行视频输入的预处理,即对YUV4:2:2隔行扫描(例如从摄像机)到YUV 4:2:0非隔行扫描转换,仅抽取但不过滤UV分。对视频解码器而言,还需要进行后处理,以将解码的YUV 4:2:0数据转换为RGB进行显示,包括:YUV 4:2:0到RGB转换;16位或12位RGB显示格式;0到90度旋转,实现横向或纵向显示。此外,视频编解码器通常还要求具有以下功能和特性:
支持MPEG-4简单类 0、1 与 2 级;
兼容H.263与 MPEG-4 编解码标准;
MPEG-4视频解码器支持的可选项有:AC/DC预测、可逆可变长度编码(RVLC)、再同步标志(RM)、数据分割(DP)、错误隐藏专利技术、支持每个宏块4个运动矢量(4MV)、自由运动补偿、解码VOS层;
MPEG-4视频编码器选项有:RVLC、RM、DP、支持每个宏块4个运动矢量(4MV)、报头扩展码、支持编码期间码率改变、支持编码期间编码帧率改变、插入或不插入可视对象序列起始码;
支持编码期间序列中插入I帧;
支持编码器自适应帧内刷新(AIR);
支持多编解码器,可用相同代码运行多个编解码器实例。
视频结构
红绿蓝(RGB)是计算机显示的基色,OMAP5910支持的色深可编程至高达每像素16位,即 RGB565(红色5位,绿色6位,蓝色5位)。
在DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案是YCbCr,其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。主要的子采样格式有YCbCr 4:2:0、YCbCr 4:2:2 和 YCbCr 4:4:4。
4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),仅采样奇数扫描线,是便携式视频设备(MPEG-4)以及电视会议(H.263)最常用格式;4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),是DVD、数字电视、HDTV 以及其它消费类视频设备的最常用格式;4:4:4表示全像素点阵(YYYYCbCrCbCrCbCrCbCr),用于高质量视频应用、演播室以及专业视频产品。
在OMAP5910设计中,为显示解码视频,后处理需要计算与YCbCr对应的RGB值。后处理引擎通过以下方程式的计算得出经过伽马校正的RGB信息:
R = Y + 1.371(Cr – 128)
G = Y – 0.698(Cr – 128) – 0.336(Cb – 128)
B = Y + 1.732(Cb – 128)
详细内容请参见测试代码的技术规范(需要签订不泄密协议),该规范论述了MPEG-4编码器与解码器的预处理与后处理的具体实现。
视频编解码器
图1为一个移植到OMAP5910上的视频编码器结构简图,图中主要功能部分的作用分别为:
预处理:如果需要的话,预处理模块可将输入视频格式转换为YUV 4:2:0;
离散余弦变换(DCT):DCT变换对每个输入块进行空间变换,输出一个8x8 水平和垂直频率系数的矩阵;
量化:利用心理视觉(psychovisual)特性来消除无关紧要的DCT系数、高频系数;
逆量化(IQ):通过量化后的DCT乘以量化表计算出逆量化矩阵;
逆离散余弦变换(IDCT):IDCT还原输入块。由于量化的缘故,还原的值与原始数据之间可能会有误差;
运动估计(ME):ME使用搜索位置点较少、像素也较少的方案来生成指示运动影像方向的运动矢量;
运动补偿(MC):运动补偿块通过去除帧间的冗余从而增加压缩比;
可变长度编码(VLC):无损VLC编码通过将出现次数较多的符号用较短代码发送,出现次数较少的代码用较长代码发送,利用这样的方法来降低码率;
速率控制:通过更改量化规则控制码率,例如通过使每个DCT系数采用较少的位来降低码率;
错误隐藏:由TI开发的专利错误隐藏技术。
图2所示为视频解码器,该解码器符合MPEG-4以及H.263标准,能够进行H.263与MPEG-4码流的解码,并且自动检测报头以确定采用何种解码方法(H.263或MPEG-4),阴影部分模块为两种解码器共用部分。图2中部分的功能模块与前面叙述相同,其它功能模块的作用分别为:
解码器 确定码流类型(MPEG-4或H.263);
MPEG-4 RM 有嵌入同步标志的视频流;
MPEG4 DP 有数据分割的视频流;
H263 获得H.263码流并将其输入到适当模块中;
ACDC 仅适用于MPEG-4解码器,预计AC系数;
RVLD 仅适用于MPEG-4解码器,当码流用可逆可变长度技术编码时可实现RVLD;
VLD 适用于H.263与MPEG-4解码器。