Digital_Video_Concepts
  • 前言
    • 前言
  • 数字视频简介
    • 数字视频简介
    • 相关概念
    • 视频压缩
    • 权衡分析
    • 新型视频应用
    • 总结
  • 视频压缩技术
    • 数字视频压缩技术
    • 网络限制和压缩
    • 人类视觉系统
      • HVS模型
      • HVS的应用
    • 压缩技术概述
      • 数据结构和概念
      • 色度亚采样
      • 降低冗余
      • 熵编码
    • 压缩技术: 成本-收益分析
      • 变换编码技术
      • 预测编码技术
      • 其他编码技术
      • 率失真理论
    • 总结
  • 视频编码标准
    • 视频编码标准
    • 视频编码的国际标准概述
      • JPEG
      • H.261
      • MPEG-1
      • MPEG-2
      • H.263
      • MPEG-4 (Part 2)
      • AVC
      • HEVC
      • 视频质量的国际标准
    • 其他工业标准概述
      • VC-1
      • VP8
      • VP9
    • 总结
  • 视频质量度量
    • 视频质量指标
    • 压缩损失,伪像,视觉质量
      • 压缩损失:量化噪声
      • 常见的伪影
      • 影响视觉质量的因素
    • 视频质量的评估方法和指标
      • 主观视频质量评估
      • 客观视频质量评估和指标
        • 基于误差灵敏度的方法
        • 峰值信噪比
        • 基于结构相似性的方法
        • 基于信息保真度的方法
        • 时空方法
        • 基于显著性的方法
        • 网络感知方法
        • 基于噪声的质量指标
        • 客观编码效率指标
        • 基于ITU-T标准的客观的质量度量方法
    • 视频质量测量
      • 主观测量
      • 客观测量及其应用
    • 调参
      • 影响视频质量的参数
      • 参数之间的权衡
    • 总结
  • 视频编码性能
    • 视频编码性能
    • CPU速度和限制
    • 提升性能的动机
    • 对性能的考虑
      • 资源利用率最大化
      • 专用资源
      • 调整视频参数
        • 决定编码速度的因素
          • 系统配置
          • 工作负载的性质
          • 编码工具和参数
            • 独立数据单元
            • GOP结构
            • 码率控制
            • 多帧参考
            • 率失真的拉格朗日优化
            • 隔行扫描的帧/场模式
            • 自适应去块滤波器
          • 视频复杂度和格式
          • 基于GPU加速的优化
    • 性能优化方法
      • 算法优化
        • 快速算法
          • 快速变换算法
          • 快速帧内预测算法
          • 快速运动估计算法
          • 快速模式决策算法
          • 快速熵编码算法
        • 并行化方法
          • 数据分区
          • 任务并行化
          • 流水线技术
          • 数据并行化
          • 指令并行化
          • 多线程技术
          • 向量化技术
      • 编译器和代码优化
        • 编译器优化
        • 代码优化
      • 超频
      • 性能瓶颈
    • 性能度量和调整
      • 性能思考
      • 性能指标
      • 性能分析工具
    • 总结
  • 视频应用的耗电量
    • 视频应用的耗电量
    • 功耗及其限制
    • 媒体应用的工作负载
      • 媒体应用用途
    • 面向电量设计
    • 电源管理的思考
      • ACPI和电源管理
      • 操作系统电源管理
        • Linux电源管理
        • Windows电源管理
      • 处理器电源管理
      • Voltage-Frequency曲线
    • 电源优化
      • 架构级别优化
      • 算法级别优化
      • 系统整体级别优化
      • 应用级别优化
    • 电源度量
      • 度量方法论
      • 电源度量的思考
    • 测量电源的工具
      • DC电源测量系统
      • 电源测量的软件工具
    • 总结
  • 低功耗平台上的视频应用的功耗
    • 低功耗平台上的视频应用的功耗
    • 低功耗设备的重要事项
    • 低功耗平台上典型的媒体应用
      • 视频播放
      • 视频录制
      • 视频分发
      • 视频电话(会议)
    • 低功耗系统的状态
      • 简单ACPI模型的缺点
      • 待机状态
      • 低功耗状态的组合
    • 低功耗平台的电源管理
      • 电源管理的专用硬件
      • 显示器电源管理
    • 低功耗平台的思考
      • 软件设计
      • 体系结构的思考
    • 低功耗平台的电量优化
      • 快速执行然后关闭
      • Activity调度
      • 减少唤醒次数
      • 突发模式
      • 完善CPU和GPU的并行化
      • 显存带宽优化
      • 显示功耗优化
      • 存储功耗优化
    • 低功耗的度量
      • 电源的处理器信号
      • 媒体应用的功耗指标
    • 总结
  • 性能,电量以及质量的权衡
    • 性能,电量以及质量的权衡
    • 权衡分析的思考
      • 权衡分析的类型
      • 参数调整的效果
      • 优化策略
    • 权衡性能和功耗
      • Case Study
    • 权衡性能和质量
      • Case Study I
      • Case Study II
    • 权衡功耗和质量
      • Case Study
    • 总结
  • 结语
    • 结语
    • 重点和结论
    • 对未来的思考
Powered by GitBook
On this page
  • 离散余弦变换
  • 量化
  • Walsh-Hadamard和其他的变换

Was this helpful?

  1. 视频压缩技术
  2. 压缩技术: 成本-收益分析

变换编码技术

Previous压缩技术: 成本-收益分析Next预测编码技术

Last updated 5 years ago

Was this helpful?

如前所述,块中的像素彼此相似并且具有空间冗余。 但是,像素数据块没有太多的统计冗余,并且不容易适用于可变长度编码。 变换域中的去相关表示具有更多的统计冗余,并且更适合使用可变长度代码进行压缩。

在变换编码中,通常将大小为N×M的视频帧细分为较小的n×n块,并将可逆线性变换应用于这些块。 该变换通常具有一组完整的正交离散基函数,而其目标是去相关原始信号并在一小组变换系数之间重新分配信号能量。 因此,可以在编码剩余的几个系数之前通过量化过程丢弃许多具有低信号能量的系数。 变换编码的框图如图2-15所示。

图2-15. 传输系统中变换编码的框图

离散余弦变换

离散余弦变换(DCT)根据具有不同频率和幅度的余弦函数之和表示离散数据点的有限序列。 DCT是一种线性,可逆,无损的变换,可以非常有效地将像素块中存在的冗余去相关。 实际上,DCT是可用于此目的的最高效、实用的变换,它接近理论上最理想的Karhunen-Loeve变换(KLT),因为几乎不需要余弦函数来逼近典型信号。 因此,DCT被广泛用于视频和音频压缩技术。 DCT有四种表示形式,其中DCT-II是最常见的形式:

图2-16. 8×8输入块的64个二维DCT基函数

图2-17. 八点DCT的信号流程图,从左到右(以及IDCT从右到左)

可以使用硬件或软件轻松实现DCT。 经过优化的软件实现可以利用多媒体指令集(如MMX或SSE)中可用的单指令多数据(SIMD)并行构造。此外,在基于Intel集成图形处理器的编解码器解决方案中还有专用的硬件引擎。

图2-18给出了一个像素块及其DCT转换系数的示例。

DCT处理之后的转换矩阵为:

图2-18. 一个像素块及其DCT转换版本

量化

图2-19显示了一个示例八阶非线性量化器。在此示例中,(-255,16]之间的x的任何值都映射到-20,类似地(-16,-8]之间的x的任何值都映射到-11,(-8,-4]之间的任何x的值都被映射到-6,依此类推。对于(-255,255)之间的任何输入值,此量化过程仅导致八个非线性重构级别。

量化之后,一个8×8变换数据块通常从64个系数减少到5个到10个系数,通常实现大约6到12倍的数据压缩。但是,请注意,量化是一种有损过程,其中在执行逆运算后无法重新获得被丢弃的高频信息。尽管高频信息通常可以忽略不计,但并非总是如此。因此,变换和量化过程通常会引入质量损失,这通常称为量化噪声。所有国际标准都详细定义了转换和量化过程,并要求符合定义的过程。

在对像素块执行量化的过程中,量化对象(像素块)通常为二维信号(例如图像或视频帧),且像素块是独立变换和量化的,因此在像素块的边界处会产生轮廓效果:块边界变得可见。这中现象通常称为阻塞或阻塞伪影。尽管量化级别越粗糙,数据压缩程度越高,但值得一提的是,信号的量化级别越粗糙,将引入更多的阻塞伪像。

图2-19. 八阶非线性量化器

Walsh-Hadamard和其他的变换

Walsh-Hadamard变换(WHT)是线性,正交和对称变换,通常对2m实数进行运算。 它仅具有适度的去相关能力,但是由于其简单性,它是一种流行的转换。 WHT基函数由+1或-1的值组成,并且可以从正交Hadamard矩阵的行中获取。 可以从相同类型的最小2×2矩阵(即大小为2的离散傅里叶变换(DFT))递归构造正交哈达玛矩阵,如下所示:

Hadamard变换可使用快速算法进行计算,使其适用于许多应用,包括数据压缩,信号处理和数据加密算法。在视频压缩算法中,通常以绝对变换差之和(SATD)的形式使用它,这是一种视频质量度量,用于确定一个像素块是否与另一个像素块匹配。 在各种视频压缩方案中还有其他不常用的变换。其中值得注意的是离散小波变换(DWT),其最简单的形式称为Haar变换(HT)。 HT是基于Haar矩阵的可逆线性变换。可以将其视为一种采样过程,其中Haar矩阵的行充当越来越精细的采样。它提供了一种简单的方法 与非局部WHT相对,分析信号的局部方面非常有效,并且在算法(例如子带编码)中非常有效。 4×4 Haar矩阵的一个示例是:

:K. R. Rao and P. Yip, Discrete Cosine Transform: Algorithms, Advantages, Aapplications (New York: Academic Press, 1990).

:S. Akramullah, I. Ahmad, and M. Liou, “Optimization of H.263 Video Encoding Using a Single Processor Computer: Performance Tradeoffs and Benchmarking,” IEEE Transactions on Circuits and Systems for Video Technology 11, no. 8 (2001): 901–15.

:因为一副图像中直流和低频区占大部分,高频区占小部分。这样,空间域的图像变换到频域或所谓的变换域,会产生相关性很小的一些变换系数,并可对其进行压缩编码,即所谓的变换编码.图像从空域变化到频域后,进行传输够起到压缩的作用

X(k)=∑n=0N−1 x(n) cos[πN(n+12)k] k=0,...,N−1X(k)=\sum_{n=0}^{N-1} \ x(n) \ cos[ \frac{\pi}{N} \left(n + \frac{1}{2}\right)k] \qquad \ k=0,...,N-1X(k)=n=0∑N−1​ x(n) cos[Nπ​(n+21​)k] k=0,...,N−1

这里,XkX_{k}Xk​是变换后的DCT系数,xnx_nxn​是输入信号。 该一维DCT可以一个接一个地在垂直和水平方向上单独使用,以获得二维DCT。 对于图像和视频压缩,DCT通常在8×8像素块上执行。 8×8二维DCT可以表示为:

X(u,v)=14α(u)α(v)∑m=07∑n=07 x(m,n) cos[(2m+1)uπ16)] cos[(2n+1)vπ16)]X(u,v)=\frac{1}{4}\alpha(u)\alpha(v)\sum_{m=0}^7\sum_{n=0}^{7}\ x(m,n) \ cos[\frac{(2m+1)u\pi}{16})] \ cos[\frac{(2n+1)v\pi}{16}) ]X(u,v)=41​α(u)α(v)m=0∑7​n=0∑7​ x(m,n) cos[16(2m+1)uπ​)] cos[16(2n+1)vπ​)]

这里,uuu和vvv是水平和垂直空间频率,0≤u0 \leq u0≤u,v<8v<8v<8; a(k)a(k)a(k)是归一化因子,当k=0k=0k=0时等于1/2,否则等于1。 x(m,n)x(m,n)x(m,n)是 空间位置的像素值(m,n)(m,n)(m,n); X(u,v)X(u,v)X(u,v)是频率坐标(u,v)(u,v)(u,v)的DCT系数。 DCT将8×8的输入值块转换为64个二维DCT基本函数的线性组合,这些线性函数以64种不同的模式表示,如图2-16所示。

尽管该变换是无损的,但是由于计算系统的算术精度的限制,它可能会引入不准确性,从而在进行逆运算时可能无法获得相同的准确输入。 为了处理这种不准确性,标准委员会经常采取诸如定义IEEE标准1180之类的措施,本章稍后将对此进行描述。 图2-17中显示了八点DCT(和逆DCT)的信号流程图,代表一维DCT,其中输入数据集为(u0,...,u7)(u0,...,u7)(u0,...,u7),输出数据集为(v0,...,v7)(v0,...,v7)(v0,...,v7)和(f0,...,f7)(f0,...,f7)(f0,...,f7)是中间结果的基于余弦函数的乘法因子。 文献中有许多快速的DCT算法和实现,因为几乎所有国际标准都采用DCT作为减少空间冗余的选择。

[143148153157159159159159148155157160163160160160154159164167162160160160163165166164164163163163163164165166166159159159165165165165164161161161166166165167166161161161166166165165167162162162]\left[ \begin{matrix} 143 & 148 & 153 & 157 & 159 & 159 & 159 & 159 \\ 148 & 155 & 157 & 160 & 163 & 160 & 160 & 160 \\ 154 & 159 & 164 & 167 & 162 & 160 & 160 & 160 \\ 163 & 165 & 166 & 164 & 164 & 163 & 163 & 163 \\ 163 & 164 & 165 & 166 & 166 & 159 & 159 & 159 \\ 165 & 165 & 165 & 165 & 164 & 161 & 161 & 161 \\ 166 & 166 & 165 & 167 & 166 & 161 & 161 & 161 \\ 166 & 166 & 165 & 165 & 167 & 162 & 162 & 162 \end{matrix} \right]​143148154163163165166166​148155159165164165166166​153157164166165165165165​157160167164166165167165​159163162164166164166167​159160160163159161161162​159160160163159161161162​159160160163159161161162​​
[129−1−12−52−1−21−22−17−6−3−200−1−11−9−110−100−7−1010000001100011010011−1−100−10110−21−3−11100]\left[ \begin{matrix} 129 & -1 & -12 & -5 & 2 & -1 & -2 & 1 \\ -22 & -17 & -6 & -3 & -2 & 0 & 0 & -1 \\ -11 & -9 & -1 & 1 & 0 & -1 & 0 & 0 \\ -7 & -1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\ 1 & 0 & 1 & 0 & 0 & 1 & 1 & -1 \\ -1 & 0 & 0 & -1 & 0 & 1 & 1 & 0 \\ -2 & 1 & -3 & -1 & 1 & 1 & 0 & 0 \end{matrix} \right]​129−22−11−701−1−2​−1−17−9−10001​−12−6−10110−3​−5−31110−1−1​2−2000001​−10−100111​−20000110​1−1001−100​​

由于DCT具有典型的无损特性,因此它本身并不存在压缩。 它仅对输入数据进行解相关。但是,DCT通常后面是量化过程,该过程会利用视频帧中存在的空间冗余来截断变换后的数据块的高频信息。 量化器是一种阶梯函数,可将具有许多值的连续输入信号或离散输入信号映射为较小的有限数量的输出电平。如果xxx是一个 实数标量随机变量,其中p(x)p(x)p(x)是其概率密度函数,量化器将x映射到离散变量x^∈{ri,i=0,1,...,N−1}\hat x \in \{r_{i} ,i =0,1,...,N -1\}x^∈{ri​,i=0,1,...,N−1},其中每个水平rir_{i}ri​被称为a重建水平。映射到特定x的x的值由一组决策级别{di,i=0,...,N−1}\{di,i = 0,...,N-1\}{di,i=0,...,N−1}。根据量化规则,如果x位于间隔(di,di + 1]中,则将其映射(即量化为rir_{i}ri​),该rir_{i}ri​也位于相同的间隔中。给定p(x)p(x)p(x)和给定的优化准则。

H2=12[111−1],and  H2n=[HnHnHn−Hn]H_{2}={1\over \sqrt{2}} \left[ \begin{matrix} 1 & 1 \\ 1 & -1 \end{matrix} \right], and \ \ H_{2n}= \left[ \begin{matrix} H_{n} & H_{n} \\ H_{n} & -H_{n} \end{matrix} \right]H2​=2​1​[11​1−1​],and  H2n​=[Hn​Hn​​Hn​−Hn​​]
H4=[111111−1−11−100001−1]H_{4}= \left[ \begin{matrix} 1 & 1 & 1 & 1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & 0 & 0 \\ 0 & 0 & 1 & -1 \end{matrix} \right]H4​=​1110​11−10​1−101​1−10−1​​