视频编解码 — DCT变换和量化
创始人
2024-03-02 00:23:55

目录

视频编码流程

DCT变换

Hadamard变换

量化

H264中的DCT变换和量化

H264各模式的DCT变换和量化过程

1、亮度16x16帧内预测块

2,其它模式亮度块

3,色度块

小结


视频编码流程

DCT变换

        离散余弦变换

        它能将空域信号转换到频率上表示,并能够比较好的去除相关性。

        对于图像来说,空域是平时看到的图像,频率是图像做完DCT变换之后的数据。

        DCT变换是对残差块做的,通常情况下是在4X4的子块上进行变换的

       

二维DCT变换公式如下,f(i,j)是指第(i,j)位置点的信号值,N是采样点的总个数

        计算公式:

F(u,v) = c(u)c(v)\sum_{i=0}^{N-1} \sum_{j=0}^{N-1}F(i,j)cos\begin{bmatrix} \frac{i+0.5\Pi }{N}u \end{bmatrix} cos\begin{bmatrix} \frac{j+0.5\Pi }{N}v \end{bmatrix}

其中 c(u),c(v)=\left\{\begin{matrix} \sqrt{\frac{1}{N}},u,v = 0 \\ \sqrt{\frac{2}{N}},others \end{matrix}\right.

Y = AXA^T

        其中       X为4x4 残差块

                        A矩阵如下

\begin{bmatrix} \frac{1}{2}cos(0) & \frac{1}{2}cos(0) &\frac{1}{2}cos(0) & \frac{1}{2}cos(0) \\ \sqrt{\frac{1}{2}}cos(\frac{\Pi }{8}) & \sqrt{\frac{1}{2}}cos(\frac{3\Pi }{8}) &\sqrt{\frac{1}{2}}cos(\frac{5\Pi }{8}) & \sqrt{\frac{1}{2}}cos(\frac{7\Pi }{8})\\ \sqrt{\frac{1}{2}}cos(\frac{2\Pi }{8}) & \sqrt{\frac{1}{2}}cos(\frac{6\Pi }{8}) &\sqrt{\frac{1}{2}}cos(\frac{10\Pi }{8}) & \sqrt{\frac{1}{2}}cos(\frac{14\Pi }{8})\\ \sqrt{\frac{1}{2}}cos(\frac{3\Pi }{8}) & \sqrt{\frac{1}{2}}cos(\frac{9\Pi }{8}) &\sqrt{\frac{1}{2}}cos(\frac{15\Pi }{8}) & \sqrt{\frac{1}{2}}cos(\frac{21\Pi }{8}) \end{bmatrix}

        cos函数有小数,计算速度慢

Hadamard变换

        一定程度上粗略的代替 DCT 变换,从而用来简化运算。

        计算公式:

                                ​​​​​​​        ​​​​​​​        Y = AXA^T

         

        Y = \begin{bmatrix} 1 & 1 & 1 & 1\\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & -1 \\ -1 & -1 & -1 & -1 \end{bmatrix}X\begin{bmatrix} 1 & 1 & 1 & 1\\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & -1 \\ -1 & -1 & -1 & -1 \end{bmatrix}

        没有浮点运算,计算速度快

量化

        将图像块变换到频域后,AC系数比较多,一般幅值比较小,通过去除一些AC系数,达到压缩的目的。

        量化公式

        z=round(\frac{y}{QStep})

z是量化后的系数;y是变换系数;round函数是四舍五入

QP与QStep之间有转换关系

通常QStep值越大,DC系数和AC系数被量化成0的概率越大,压缩程度越大。

值太大会造成一个个块状效应,严重的时候出现马赛克。

值小的话,压缩程度比较小,图像失真比较小,码流比较大

H264中的DCT变换和量化

H264为了减少这种浮点运算带来的误差,将DCT变换成整数变化,DCT变换中的浮点运算和量化过程合并,这样就只有一次浮点运算过程。

H264的整数变化和量化,公式如下:

Y = AXA^T

Y=\begin{bmatrix} \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} \\ \sqrt{\frac{1}{2}}cos\frac{\Pi }{8} & \sqrt{\frac{1}{2}}cos\frac{3\Pi }{8} & \sqrt{\frac{1}{2}}cos\frac{3\Pi }{8} &\sqrt{\frac{1}{2}}cos\frac{\Pi }{8}\\ \frac{1}{2} & -\frac{1}{2} & -\frac{1}{2} & \frac{1}{2} \\ \sqrt{\frac{1}{2}}cos\frac{3\Pi }{8} & \sqrt{\frac{1}{2}}cos\frac{\Pi }{8} & \sqrt{\frac{1}{2}}cos\frac{\Pi }{8} &\sqrt{\frac{1}{2}}cos\frac{3\Pi }{8}\\ \end{bmatrix}X \begin{bmatrix} \frac{1}{2} & \sqrt{\frac{1}{2}}cos\frac{\Pi }{8} & \frac{1}{2} & \sqrt{\frac{1}{2}}cos\frac{3\Pi }{8}\\ \frac{1}{2} & \sqrt{\frac{1}{2}}cos\frac{3\Pi }{8} & -\frac{1}{2} & -\sqrt{\frac{1}{2}}cos\frac{\Pi }{8} \\ \frac{1}{2} & -\sqrt{\frac{1}{2}}cos\frac{3\Pi }{8} & -\frac{1}{2} & \sqrt{\frac{1}{2}}cos\frac{\Pi }{8} \\ \frac{1}{2} & -\sqrt{\frac{1}{2}}cos\frac{\Pi }{8} & \frac{1}{2} & -\sqrt{\frac{1}{2}}cos\frac{3\Pi }{8} \end{bmatrix}

 将DCT变换一步步修改为整数变换,最后H264的DCT变换变成了整数变换。

Y = \begin{bmatrix} 1 & 1 & 1 & 1\\ 1 & 1 & -1 & -2 \\ 1 & -1 & -1 & -1 \\ 1 & -2 & 2 & -1 \end{bmatrix}X \begin{bmatrix} 1 & 2 & 1 & 1\\ 1 & 1 & -1 & -2 \\ 1 & -1 & -1 & 2 \\ 1 & -2 & 1 & -1 \end{bmatrix}\bigotimes \begin{bmatrix} a^{2} & \frac{ab}{2} & a^{2} & \frac{ab}{2}\\ \frac{ab}{2} & \frac{b^{2}}{4} & \frac{ab}{2} & \frac{b^{2}}{4}\\ a^{2} & \frac{ab}{2}& a^{2}& \frac{ab}{2}\\ \frac{ab}{2} & \frac{b^{2}}{4} & \frac{ab}{2}& \frac{b^{2}}{4} \end{bmatrix}

a = \frac{1}{2},b = \frac{1}{2}cos\frac{\Pi }{8}​​​​​​​

量化

        z=round(\frac{y}{QStep}) 变成        z = round(\frac{\acute{y}}{QStep}PF)

 PF = \left\{\begin{matrix} {a}^2 , (0,0)(2,0)(0,2)(2,2) \\ \frac{​{b}^2}{4}, (1,1)(1,2)(3,1)(3,3) \\ \frac{ab}{2} , others \end{matrix}\right.

H264各模式的DCT变换和量化过程

1、亮度16x16帧内预测块

亮度16x16,首先被划分成16个4x4的小块做整数变化。变化之后将16个4x4小块的DC系数都拿出来,组成4x4的DC块,再对这个4x4的DC进行Hadamard变换。然后,再总体进行量化操作。

2,其它模式亮度块

对于除亮度16x16帧内预测块之外的其它亮度块,都是直接划分成4x4的块进行整数变化,之后再进行量化操作。

3,色度块

对于YUV420图像,色度块大小是8x8,现将8x8色度块划分成4个4x4的小块做整数变换。变换之后将4个小块的DC系数拿出来,组成2x2的DC块,再对这个2x2的DC块进行hadamard变换。最后总体进行量化操作。

小结

        DCT变化主要是将图像从空域转换到频域,并将图像的高频和低频信息分离开来。高频信息数据多,但是幅值比较小,在高频信息量化过程中能够比较容易被量化成0,这样达到压缩的目的。

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...