您的位置:首页 > 数据库 > Oracle

ORACLE备份策略(ORACLE BACKUP STRATEGY)转帖

2007-04-07 18:27 435 查看
CAVLC
基于上下文自适应的可变长编码

主要用于4×4子块残差数据(经过变换,量化后)的编码。

残差数据经过变换,量化后的数据表现出如下特性:

非零系数主要集中在低频部分,高频部分大部分是0

量化后的数据经过 zig-zag扫描,DC系数附近的非零系数值较大,高频位置上的非零系数大部分是+1和-1

相邻的4×4块的非零系数的数目是相关的

在CAVLC中,上下文模型的选择主要体现在两个方面:

非零系数编码所需表格的选择

拖尾系数后缀长度的更新

具体的编码过程:

对非零系数数目 TotalCoeffs 以及拖尾系数的数目 TrailingOnes进行编码

步骤1约定如下:

非零系数范围0~16,

拖尾系数数目范围0~3.

如果+1,-1的总个数大于3,那么只有最后三个被视为拖尾系数

对这两个元素的编码是通过查表法。共有四个变长表格和1个定长表格可供选择。
其中,定长表格的码字长6比特,高4位表示非零系数个数,低两位表示拖尾系数个数。

为了选择合适的表格,现在定义一个变量NC。

待编码数据为 色度分量的直流系数时 NC= -1

其他情况 NC由下表决定

[align=center] NB[/align][align=center] NA[/align][align=center]NC [/align]
[align=center] X[/align][align=center] X[/align][align=center] (NA+NB)/2[/align]
[align=center] X[/align][align=center] [/align][align=center] NA[/align]
[align=center] [/align][align=center] X[/align][align=center] NB[/align]
[align=center] [/align][align=center] [/align][align=center] 0[/align]
表中变量定义如下:

NA 为待编码块左边的4×4块的非零系数数目

NB为待编码块上边的4×4块的非零系数数目

X 表示与当前待编码块 属于同一个片而且可用

OK,现在NC值已经获得了,下面就可以选择表格了。

[align=center] NC[/align][align=center] 表格[/align]
[align=center] 0<=NC<2[/align][align=center] 变长表格1[/align]
[align=center] 2<=NC<4[/align][align=center] 变长表格2[/align]
[align=center] 4<=NC<8[/align][align=center] 变长表格3[/align]
[align=center] NC=-1[/align][align=center] 变长表格4[/align]
[align=center] NC>=8[/align][align=center] 定长表格[/align]
表格在此就不列出了。

2.对每个拖尾系数的符号进行编码
其中0表示正,1表示负。编码顺序是按照反向扫描顺序,从高频区开始

3.对除拖尾系数外,非零系数的幅值进行编码
4.对最后一个非零系数前零的数目TotalZeros进行编码
例如:一串数 0 0 5 0 3 0 0 0 1 0 0 -1 0 0 0 0
最后一个非零系数是-1,故TotolZeros=2+1+3+2=8

5.对每个非零系数前零的个数RunBefore进行编码
RunBefore在以下两种情况下是不需要编码的:

最后一个非零系数(低频位置上)前零的个数

如果没有剩余的零需要编码,就没有必要再进行RunBefore的编码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: