RDO和SAD、STAD

转载 2015年07月08日 15:52:41

1.率失真优化(Rate D isto r t i on Op t i m ized)策略

是在率失真理论[3 ]的基础上提出的一种代价函数方案,  RDO 的主要思想是, 在计算代价函数时, 同时考虑码率和失真度两方面因素的制约, 在保证低失真度的同时保证低码率, 这样更加有利于视频流的传输。 H. 264在运动搜索、 参考帧择优、 模式决策三个方面运用了不同的RDO 代价函数, 也将非RDO 代价函数列为可选模式, 以满足不同的需要。。 可描述如下: 在保证比特率R 不超过最大比特率R max 的条件下, 使失真D 达到最小, 即m in{D } 限制条件:R ≤R max。

可以通过选择最优的编码参数给出"最好"的图像质量(最低的失真) , 并不超过目标比特率。 在实际中, 用一套编码参数(量化步长、 块模式选择等)对视频序列进行编码, 得到相应的编码比特率 (R ) 和解码图像质量(或失真D ) , 两者结合, 即形成一个R -D 工作点。 用不同套的编码参数重复上述编码过程,获得不同的R - D 工作点,曲线为凸的曲线,横坐标为D,纵坐标为R,曲线为R(D)

2. H.264 帧内预测模式确定过程

H.264 帧内编码中,采用亮度和色度相结合的率失真优化(Rate-Distortion Optimization, RDO)判优准则, RDO 判决准则,通过遍历所有预测模式,寻找率失真代价 RDCost 最小的作为最优预测模式。率失真代价公式为 RDCost=SSD+λ×Rate

其中,SSD 表示当前块与重构块的平方差之和;λ 为量化参数 QP 的函数;Rate 表示熵编码后的码率。 H.264 中确定最优帧内预测模式的过程如下:

(1)确定 Intra_16×16 方式下的最优预测模式:

1)用 4 种预测模式对待编码宏块进行预测;

2)对预测残差宏块进行哈达马变换,并计算编码代价;

3)选择编码代价最小的模式作为 Intra_16×16 方式下的最优预测模式。

(2)结合色度编码,计算待编码宏块在 Intra_16 ×16 方式下的率失真代价 RDCostI16。

(3)确定 Intra_4 ×4 方式下的最优预测模式。 将待编码宏块划分为 16 个 4×4 块分别确定每个 4×4块的最优预测模式:

1)      用 9 种预测模式对 4×4 块进行预测;

2)对预测残差块进行 DCT 变换/量化、反 DCT 变换/反量化,计算编码代价 RDCost;

3)选择 RDCost 最小的模式为当前 4×4 块的最优预测  模式。

(4)结合色度编码,统计待编码宏块在 Intra_4×4 方式下的率失真代价 RDCostI4。

(5)确定最优的帧内预测模式。

比较待编码宏块的 RDCostI16 和 RDCostI4,选择 RDCost小的作为待编码宏块最终的亮度编码方式,该方式对应的预

测模式即最优帧内预测模式。

由上述可知:每一个宏块都要按照 2 种方式进行编码,共需要进行 3 328 次预测、144 次解码/重构以及 68 次 4×4哈达马变换,可见其复杂性是相当高的。

在吸取相关快速算法优点的基础上,本文提出了一种基于绝对残差和(Sum of Absolute Differences, SAD)和变换域中的绝对残差和(Sum of Absolute Transformed Differences, SATD)的快速帧内预测算法来优化 H.264 帧内预测过程,主要思路是:

(1)充分挖掘 Intra_16 ×16 和 Intra_4 ×4 2 种预测方式之间的相关性,用待编码宏块在 Intra_16 ×16 方式下的 SAD 值来衡量宏块的平滑程度,从而判定是否可以不执行 Intra_4×4 方式的预测过程。

(2)根据 SATD 特征对 Intra_4 ×4 方式的预测模式进行筛选,选择出可能性最大的几种模式,排除掉那些可能性小的模式,避免不必要的 RDCost 的计算,从而降低计算复杂度。

3.1   快速算法基本原理

可以用待编码宏块在 Intra_16 ×16 最优模式下的预测残差绝对值之和(最优预测残差的 SAD)衡量宏块是否平滑。 SAD定义为

其中,Orig(x,y)为待编码宏块像素的原始值;Pred(x,y)为待编码宏块像素的预测值;PE(x,y)为待编码宏块的预测残差。 经统计可知,当最优预测残差的 SAD 小于某值 T1 时,表示待编码宏块平滑,可以直接选择 Intra_16 ×16 方式作为待编码宏块最终的亮度编码方式,不必再以 Intra_4 ×4 方式进行预测,从而提前中止模式选择过程。 阈值 T1 的选取很关键,T1 设置越大,预测复杂度越小,但会引起解码图像质量较大的下降和比特率的上升。阈值的选取应该在保证图像质量的前提下尽可能多地降低计算复杂度。同时 T1 依赖于量化参数 QP,随其增加而增加,必须在不同 QP 范围下对 T1 进行调整。 根据实验数据,T1 采用 1 000 时,在 QP 较大的情况下综合效果较好,但随着 QP 的下降,解码图像质量下降较大并且比特率普遍上升较多;T1 采用 500 时,可以改善较小QP 时解码图像质量下降及比特率上升的问题。因此可设置 2个 T1 值,当 QP≤20 时,T1=500;否则 T1=1000。

 3..2  Intra_4 ×4 预测模式的筛选 H.264 帧内编码的压缩率与绝对残差和 SAD 是有很大关系的。如果用某预测模式进行预测时,预测准确,则其 SAD应该很小。根据帕斯维尔定理,预测残差在空域上的总能量与经过正交变换后在频域上的总能量是一致的。因此作为最优的预测模式,其变换域中的绝对残差和 SATD 应该也是很小的。SATD 定义为

其中,T 表示二维正交变换,在这里采用哈达马变换。 与SAD相比, SATD与RDO性能之间具有更强的相关性。由于前面已经采取了对 Intra_4 ×4 方式的预判方法,对解码图像质量及比特率会略有影响,因此为了提高预测准确度,在筛选 Intra_4 ×4预测模式时, 不再采用 SAD而是采用 SATD作为判断准则。 SATD 虽然可以作为选择模式的准则,但是并不是 SATD最小的模式就是性能最好的模式。这里以所有预测模式的SATD 的平均值做为阈值 T2。选择 SATD≤T2 的预测模式为候选模式,只对候选模式计算 RDCost,RDCost 最小的模式即为 Intra_4 ×4 方式下的最优预测模式。

3.2   快速算法流程

该算法流程如下:

(1)确定 Intra_16 ×16 方式下的最优预测模式,步骤同H.264 原算法。

(2)结合色度编码,计算待编码宏块在 Intra_16 ×16 方式下的率失真代价 RDCostI16。

(3)计算最优 Intra_16 × 16 预测模式下待编码宏块的SAD,如果 SAD<T1(QP≤20 时,T1=500;其余,T1=1000),则跳到(6)。

(4)确定 Intra_4 ×4 方式下的最优预测模式。 将待编码宏块划分为 16 个 4 ×4 块,分别确定每个 4 ×4块的最优预测模式:

1)用 9 种预测模式对 4 ×4 块进行预测;

2)分别对每种模式对应的预测残差块进行哈达马变换,并计算变换后的绝对残差和 SATD;

3)计算 SATD 的平均值 SATDaverage;

4)选择满足SATD≤SATDaverage 条件的预测模式为候选模式;

5)分别对每种候选模式对应的预测残差块进行 DCT 变 换/量化、反 DCT 变换/反量化,并计算其编码代价 RDCost;

 6)比较所有候选模式的 RDCost,选择具有最小 RDCost的预测模式为当前 4×4 块的最优预测模式。

(5)结合色度编码,统计待编码宏块在 Intra_4 ×4 方式下的率失真代价 RDCostI4。

(6)确定最优的帧内预测模式,步骤同 H.264 原算法。


openstack安装(el7 + RDO Quickstart)和简单虚拟机创建

使用RDO 安装openstack 比较简单,根据官方教程就可以,我把官方教程简单梳理一下: 1. 安装: 1) 安装centos 7 或者 rhel 7 (需要配置centos yum 源)...
  • hj19870806
  • hj19870806
  • 2015年06月26日 17:39
  • 1798

3D-HEVC帧间预测RDO分析1

帧间编码的率失真优化 帧间预测利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像像素,达到去除空间冗余的目的。   帧间预测采用基于块的运动补偿技术。这些块的大小种类包括了对称和非对称的情...
  • u011403803
  • u011403803
  • 2015年04月23日 11:13
  • 676

OpenStack RDO 部署流程 - 1(自动化部署)

OpenStackRDO部署流程 - 1(自动化部署) 0. 环境: 操作系统:CentOS6.5 amd64 目标系统:OpenStackHavana Release + Open vSwitch ...
  • skywalker_nick
  • skywalker_nick
  • 2014年02月25日 22:10
  • 4139

常用的基于区域的局部匹配准则 SAD、SSD、NCC

SAD、SSD、NCC   2012-06-24 22:07:00|  分类: 默认分类|举报|字号 订阅 常用的基于区域的局部匹配准则主要有图像序列中对应像素...
  • qq_16445683
  • qq_16445683
  • 2014年10月16日 08:55
  • 1850

绝对差的总和(SAD)

绝对差异之和 在数字图像处理中,绝对差的总和(SAD)是图像块之间的相似度的量度。通过取原始块中的每个像素与用于比较的块中的相应像素之间的绝对差来计算。将这些差值相加以创建块相似度的简单度量,差...
  • baidu_35791128
  • baidu_35791128
  • 2017年05月18日 14:41
  • 545

利用rdo,创建openstack多节点环境(controller+compute)

通过rdo 配置计算节点 由于只需要一个简单的环境(一个控制节点,一个计算节点),所以不想用fuel安装,感觉太麻烦了 于是我想用rdo安装两个独立的环境,然后将其中一个改装成计算节点 1. 创...
  • qq_21398167
  • qq_21398167
  • 2016年06月01日 17:01
  • 1958

RDO单机安装Openstack以及lvm卷存储与Vxlan网络配置

from:   http://blog.csdn.net/qinscx/article/details/42065267 2014-12-21 21:55 87人阅读 评论(0) 收藏 举报...
  • qiushanjushi
  • qiushanjushi
  • 2015年01月28日 16:08
  • 2828

视频编码解码中的一些术语

SO   任意条带顺序,条带编码可以不是光栅扫描顺序 BAB   二值Alpha块,用于标示区域的边界 BAP   身体动画参数 块    做变换的宏块区域 8x8 4x4 块匹配   矩形图象区域上...
  • ceasar11
  • ceasar11
  • 2013年06月07日 16:14
  • 1472

三种连接方式:RDO DAO ADO

刚开始学习数据库.对数据库的那几种连接方式有点不太明白.我说说这几天我自己的理解. 三种连接方式:RDO DAO ADO ADO---Active Data Objects,活动数据对象   D...
  • Echo_d
  • Echo_d
  • 2016年05月28日 10:34
  • 739

Ipsec 的SPD和SAD详解

8.6.1 IPSec机制的SPD SPD 的内容用来存放IPSec 的规则,而这些规则用来定义哪些流量需要走IPSec,这个数据库的内容相当多,笔者仅介绍我们需要知道的部分,这些信息有目的端IP、...
  • bytxl
  • bytxl
  • 2015年11月03日 14:03
  • 1610
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RDO和SAD、STAD
举报原因:
原因补充:

(最多只允许输入30个字)