AVS-M实时编码器的设计与实现

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8501

文章摘要:b)条带上层语义 在AVS-M中,有和H.264相对应的序列参数集和图像参数集。另外AVS-M增加了图像头,这使得每帧图像数据的边界清晰明了,方便了解码器的实现。我们在实现AVS-M时,也要相应地加入图像头的支持。 c)帧内预测 在亮度帧内预测中,AVS-M和H.264都有9种模式,但是他们的排列顺序是不相同的,如图1所示。 在实现过程中,我们使用了一个映射表将两种不同的排列顺序联系起来,使得代码的改动达到了最小。当然我们也要按照标准修改帧内预测的细微差别。 另外,AVS-M中只有4x4一种帧内预测模式,而H.264还有16x16和8x8两种模式,所以我们要关掉

AVS-M实时编码器的设计与实现,标签:电子小制作,http://www.88dzw.com

b)条带上层语义

    在AVS-M中,有和H.264相对应的序列参数集和图像参数集。另外AVS-M增加了图像头,这使得每帧图像数据的边界清晰明了,方便了解码器的实现。我们在实现AVS-M时,也要相应地加入图像头的支持。

c)帧内预测

    在亮度帧内预测中,AVS-M和H.264都有9种模式,但是他们的排列顺序是不相同的,如图1所示。

    在实现过程中,我们使用了一个映射表将两种不同的排列顺序联系起来,使得代码的改动达到了最小。当然我们也要按照标准修改帧内预测的细微差别。

    另外,AVS-M中只有4x4一种帧内预测模式,而H.264还有16x16和8x8两种模式,所以我们要关掉两种不用的模式。在色度方面,AVS-M不用基于“平面”的预测,所以也要把它从X264中去掉。最后还要注意,在帧间预测帧(P帧)中如果出现帧内预测宏块,它的相邻帧间预测块的帧内预测模式的预测值在AVS-M中被定义为不可用(-1),而在H.264中被定义为DC预测模式(2)。

d)运动向量预测

    在AVS-M中,当前块的运动向量预测是使用它左下角、上方和右上角的运动向量,而H.264是使用左上角、上方和右上角的运动向量,如图2所示。

    另外,运动向量预测值的计算方法也略有不同。

e)分数像素插值

    在AVS-M和H.264中,半像素精度的样本值都是使用双线性插值的方法,当然它们使用了不同的滤波器。最需要注意的是,在水平和垂直方向都是四分之一精度的样本预测时,AVS-M使用的是“星形”法,而H.264使用的是“菱形”法,如图3所示。

    在AVS-M中,e,g,p和r采用下面公式计算。

e=( F+j+1 ) >> 1


g=( G+j+1 ) >> 1


p=( N+j+1 ) >> 1


r=( O+j+1 ) >> 1

    而在H.264中,e,g,p和r采用下面公式计算。

e=( b+h+1 ) >> 1


g=( b+m+1 ) >> 1


p=( h+t+1 ) >> 1


r=( m+t+1 ) >> 1

f)变换和反变换

    AVS-M和H.264使用了类似的整数DCT变换,需要注意的是色度方面。在AVS-M中,色度使用了和亮度相同的变换方法,而H.264中对色度的DC分量又进行了一次变换。

1.1.2.1 量化和反量化

    AVS-M和H.264使用了类似的量化方法,都是使用了查表、乘法和移位,而避免了除法。需要注意的是AVS-M中要对量度量化参数做一次映射来做为色度的量化参数。

g)变长编码

    AVS-M使用了基于上下文的多阶哥仑布码,而H.264有专门的CAVLC或CABAC编码方式。需要注意的是在AVS-M中对帧内预测增加了一种“直接”模式,即所有4x4块都使用预测模式。所以我们在变长编码时,要先判断“直接”模式是否出现,然后再进行相应的处理。

h)环路滤波

    AVS-M和H.264中都有环路滤波,这可以显著减少块效应,提高视觉质量。它们的具体实现是不同的,总体来说AVS-M要比H.264简化。

i)调试

    在调试过程中,我们使用了比较法。就是从编码器端将每帧的预测值和残差存到一个文件中,然后使用标准的解码器进行解码,并在解码的同时比较预测值和残差,然后确定出错的宏块,进行调试。这样通过比较编码器端的重建图像和解码器端的输出图像,从而保证的编码器的正确性。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《AVS-M实时编码器的设计与实现》相关文章