天天看点

视频DCT变换与量化

一、变换域编码——整数DCT

\quad将空间域描述的图像,经过某种变换后得到变换域中的数据,达到改变数据分布形式、减少有效数据量的目的。

\quad变换包含DCT(离散余弦变换)、DST(离散正弦变换)等,这里我们主要讨论DCT。在图像视频压缩中采用的变换都是正交变换,因为正交变换不改变信源熵值,完全可以通过反变换重建原图,且压缩程度高。变换的好处在于使得数据分布发生改变,变换系数向低频方向集中,利于编码。

\quad采用DCT变换的图像、视频压缩基本框架如下:

\quadH.264采用整数DCT变化,主要目的有两个:1. 采用整数,提高运算速度 2. 将归一化和量化整合在一起,减少乘运算。变换方程为F c = C ⋅ f ⋅ C T F_c=C \cdot f \cdot C^TF 

c

​    

 =C⋅f⋅C 

T

 ,,变换矩阵C,第 u 行,第 x 列元素表示为:

在N=4时,即4x4图像块的DCT变换为:

其中,

二、数据扫描

“之”字扫描(Zig-Zag) — 逐行扫描顺序

“之”字扫描(Zig-Zag) — 场扫描顺序

三、量化

\quad量化是指将信号的连续取值(或大量可能的离散取值)映射为有限多个离散值的过程,实现信号取值多对一的映射。在视频/图像编码中,残差信号经过DCT后,变换系数往往具有较大的动态范围,因此对变换系数进行量化可以有效地减小信号取值空间,获得更好的压缩效果。

\quad量化分为两类,如下:

标量量化:无需分析数据统计特性,复杂度低,但平均量化误差大。被主流的图像、视频编码标准所采用;

矢量量化:基于数据统计属性的量化器,平均量化误差低,但不容易实现。

\quad对于位于某个区间的值x,都用一个定值代替。即y = Q ( x ) = y k , x ∈ [ x k , x k + 1 ) y=Q(x)=y_k, x \in [x_k, x_{k+1})y=Q(x)=y 

k

​    

 ,x∈[x 

k

​    

 ,x 

k+1

​    

 )。假定量化的级别,即重建值的个数为L,则表示这些量化索引所用的最多平均比特数为l o g 2 L log_2 Llog 

2

​    

 L。

均匀量化

均匀量化的特点是在整个量化范围内,各个量化间隔都相等;

若信号X的取值范围为[a, b],量化级别为L,则每个量化间隔的大小为Δ = b − a L \Delta = \frac{b-a}{L}Δ= 

L

b−a

​    

均匀量化的量化误差q的取值范围为− Δ / 2 ≤ q ≤ Δ / 2 -\Delta /2 \le q \le \Delta /2−Δ/2≤q≤Δ/2,q在[ − Δ / 2 , Δ / 2 ] [-\Delta /2, \Delta /2][−Δ/2,Δ/2]服从均匀分布,故而量化误差的方差为σ q = 1 Δ ∫ − Δ / 2 Δ / 2 q 2 d q = Δ 2 12 σ_q = \frac{1}{\Delta} \int_{-\Delta /2}^{\Delta /2} q^2 dq=\frac{\Delta ^2}{12}σ 

q

​    

 = 

Δ

1

​    

 ∫ 

−Δ/2

Δ/2

​    

 q 

2

 dq= 

12

Δ 

2

​    

 。

最优量化

————————————————

版权声明:本文为CSDN博主「程勇uestc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_40438165/article/details/89635149