编码器设备、解码器设备和方法_4

文档序号:9650834阅读:来源:国知局
针对符号21是 cont2+( = 100+)。运使得相应的连续统运算器修正转换符号T' (X)成为公式9所示:
[011 引 1,6,8,21,1,11,20,1,18,2,0,5,17,17,15,9,4,20,17,18,4, 1,17 公式9
[0120] 因此,该流中的串符号总数是23个符号。该23个符号的流具有符号(0到21),可 W例如W巧,6或7)巧巧3*5 = 127到129个比特来传递,其中5-7比特用于传递contl+ =(19+)值,7比特用于传递con。+(= 100+)值,可W通过将5比特用于每个符号值,来表 示22( = 0到19巧0巧1)个不同符号值。还可W例如通过采用化C、行程编码或算术编码, 使用用于参考文献[1引、[16]中描述的编码方法的表传递来压缩该数据,上述文献通过引 用合并于此。
[0121] 可W理解,还可W使用任何赌编码方法来压缩针对SRLE实现方式优化的连续统 运算器之后的符号流S(X)。如果S(X)包含比特值,则仅需要传递第一比特值,如参考文献 [13]中EM那样,或需要传递第一比特值的信息,因为当针对串值使用连续统运算器时已 知其他值逐个改变,从而使得对于连续统类似符号值仅需要传递一个串值,例如,如果S(X) =1,0,1,0,1,0,1,0,1,则对于符号S(X)仅传递第一值1或例如利用编码方法 Range而产生的第一值1的信息,与之一起传递的还有针对串R(X)值的连续统运算器修正R' (X)或T' (X)值。当利用针对SRLE实现方式优化的连续统运算器压缩比特值W外的值 时,已知不会发生S(X)流中有两个类似随后值,但仍不知道下一个值实际是什么。因此,必 须还W某种赌编码方法压缩符号值S(X),并且压缩连续统运算器修正R' (X)或T' (X)值。
[0122] 如上所述,虽然连续统运算器主要在EM或SRLE之后传递串符号,但也可W在压缩 任何符号时使用连续统运算器。当首先利用连续统运算器修改包含很多小值和仅一些高值 的任意符号流时,可W利用或不利用赌编码来高效地编码该符号流。有时,当还存在很多高 和/或中值时,连续统运算器也可能是可采用的适当方法,例如,当符号S(X)值如公式10 所示时:
[0123] 3,1,252,254,2,252,1,1,252,0,254,3,6 (13 个符号) 公式 10
[0124] 于是,连续统运算器修正符号值S' (X)对应于SVT= 3,连续统值contl+( = 3+) 对应于符号=4,cont2+( = 252+)对应于符号=5,如公式11所示:
[0125] 3, 1, 5,0, 5,2, 2, 5,0, 1, 1, 5,0, 0, 5,2, 3, 4,3
[0126] (13+1巧=19个符号)公式11
[0127] 因此,公式10中的原始流包含8比特符号值,即0到254,可W利用13*8 = 104比 特来传递。公式11中的连续统运算器修正流包含19个符号,可W仅通过每符号3比特(0 到5)来传递和通过8+8+19*3 = 16巧7 = 73比特来传递,该结果是可观的压缩,该计算中 的16比特使得最多需要73比特来传递运两个连续统值。
[0128] 当尝试利用使用一个或多个换码符号(码)的方法来压缩相同符号流(即公式 10)时,可得到的数据压缩并不如公式11呈现的成功。符号频率非常类似,一般根本不使用 换码符号(码)。为了使用大量换码符号(码)来传递码表或原始符号,例如当利用换码符 号(码)和具有其本身符号值的其他符号来传递6W上的值时,可W尝试减少码表传递或 减少传递小符号值所需的比特,于是码表或小值本身仅包含从0到6的值和换码符号(码) (=8个不同符号)。在运种情况下,符号的传递使用8 (必须传递值6)+13*3 (用于每个符 号-原始或换码)+5*8 (在换码符号之后的换码值)= 8+39+40 = 87比特。该结果明显好 于不使用一个或多个换码符号(码),但该结果仍旧劣于通过使用连续统运算器修正结果 获得的结果。当流中还存在一些中值时,获得连续统运算器的更多有益结果。
[0129] 下面将描述另一示例。当原始流S(X)如公式12所示时:
[0130] 3,1,252,254,2,252,1,1,252,0,254,3,6,147,149,2,253,148,1,152(20 个符 号)公式12
[0131] 于是,连续统运算器修正符号值s'(X)对应于SVT= 3,连续统值contl+( = 3+) 对应于符号=4,cont2+( = 147+)对应于符号=5,cont3+( = 252+)对应于符号=6,如 公式13所示:
[0132] 3,1,6,0,6,2,2,6,0,1,1,6,0,0,6,2,3,4,3,5,0,5,2,2,6,1, 5,1,1,5,4,2 公式 13
[0133]原始流包含8比特值(0至Ij254),可W利用20*8 = 160比特来传递,连续统运算 器修正流包含32 ( = 20+化4+6)个符号,可W仅通过每符号3比特(0到6)来传递和通过 8+8+8+32*3 = 24+96 = 120比特来传递,最多需要24比特来传递运=个连续统值。
[0134] 关于换码符号(码),当利用至少一个换码符号(码)和具有其本身值的其他符号 来传递6W上的值时,码表或小值仅包含从0到6的值和至少一个换码符号(码)(=8个 不同符号)。在运种情况下,符号的传递使用8 (必须传递值6) +20*3 (用于每个符号-原始 或换码)+10*8 (在换码符号之后的换码值)=8+60+80 = 148比特。该压缩结果仍好于不 使用至少一个换码符号(码),但该结果仍旧劣于通过使用连续统运算器获得的结果。
[0135] 可W理解,有益地,第一连续统值总是限定SVT。因此,取决于原始流中的符号频 率,第一连续统值应当尽可能小。还可W使用其他连续统值来减少传递较大符号值所需的 比特,一般地,所述较大符号值明显高于第一连续统值。所有连续统值都被分配其自身的符 号,有益地,运些符号是SVT+1、SVT+2,等等。如果X表示所使用的连续统值的量,则存在0 到SVT个原始或修正符号和X个连续统值= >即当在连续统运算器之前使用转换时,修正 流中有(SVT+1)巧个不同符号。
[0136] 当然,如果不使用转换,则例如在原始流中不使用0符号,于是符号0可W用于第 一连续统值。在此情况下,连续统运算器实现为其从不为连续统目的之外的目的而产生0 符号,例如,如果连续统值是3 (符号=0),并且串是3,则它不能由符号(0,0)编码,而必须 W符号做编码。在此示例中,可W理解符号做往往比符号(〇,〇)更好编码,但是当例如 contl= 3+(符号=0)和cont2 = 30+(符号=4),并且需要传递串值30时,需要使用符 号(0,0,0,0,0,0,0,0,0,3),不能使用符号(4,0)。
[0137] 通常,当一个或多个第一值在原始数据流中不可用时,最好通过使用已知(例如 对于串是1)偏移值或传递的偏移值来在连续统运算器之前转换符号值。然后,例如,如果 存在从3到200的给定流值,则使用用于SVT符号的顶部的连续统值符号,然后,有益地,对 原始符号采用偏移-3,从而获得值0到197,W提供转换符号。现在,有益地,将SVT选择为 10,将contl值选择为10+,从而对其得到符号11。可W向其他连续统值分配从12到所需任 意多个符号。因此,所有的小值都用于原始或修正符号,连续统值被分配符号SVT+USVT+2, AfrAfr寸寸O
[0138] 还可W理解,利用连续统运算器,必须有至少一个连续统值是W它自身的符号 (例如SVT+1)定义(=SVT+)的,并且在修正符号流中使用至少一次。在修正符号流中还 可W定义和使用多个连续统值(contl,cont2,. . .,contN)。一个原始符号可W呈现为0、 一个或多个连续统值符号和小于等于SVT的一个符号,例如,如果contl= 10+(通过使用 符号11来表示)并且cont2 = 100+(通过使用符号12来表示),并且值(0到10)采用原 始符号(0到10),则例如值7呈现为不具有连续统值符号(7)、值17和107呈现为具有一 个连续统值符号(11,7和12, 7),值27、117和207呈现为具有两个连续统值符号(11,11,7 和12,11,7 ;和12,12, 7),值37,127, 217和307呈现为具有S个连续统值符号(11,11,11, 7和12,11,11,7和12,12,11,7和12,12,12, 7),等等。可W从一个或多个连续统值符号构 造一个原始符号,运些连续统值符号可W彼此相同或不同。对于一个原始符号,还可W有单 独使用的更高连续统值符号,即不使用较低连续统值符号。根据所选连续统值和所选解码 公式,通常可W很自由地改变实际连续统符号的顺序。例如,在前一示例中,当仅使用正连 续统+值时,例如,值217可W表示为12,12,11,7或12,11,12, 7或11,12,12, 7。
[0139] 通过引用合并于此的参考文献[14]中描述的ODelta编码还可W用于改进可获得 的编码结果。一般地,当原始符号是数字或值时,将其用于原始符号,然后可W实现符号之 间的减法或加法计算。
[0140] 可选地,还可W首先将可用符号转换为调色板(palette),换言之,通过查找表 (LUT)来表示可用符号的数字,所述数字也需要被表达或传递,然后,可用如上所述地直接 或利用ODelta编码来使用运些符号。在符号已经是数字或值但数字或值离散分布在整个 对应动态符号范围内的情况下,通过使用表来缩减符号数量可能是非常有益的。
[0141] 当要处理的信息包含多个通道时(例如RGB图像像素),也可W将信息变换为颜 色空间内的不同值,通过使用逆变换可将所述不同值逆变(有时近似逆变即可)回原始值。 运种变换对的一个代表示例是RGB到YUV和YUV到RGB变换,如上所述。一般地,在YUV颜 色空间中,自然图像是可压缩的,如参考文献[12]所述,其通过引用合并于此,因为信息的 主体W及大部分重要信息存在于Y通道中,颜色通道U和V可被下采样例如至YUV420或 YUV422W获得更好的压缩率。在R、G和B通道之间存在很明显的关联,通过执行RGB到YUV 变换来减小该关联。此外,如果其他信息能够减小不同通道的信息直接的关联,则可W使用 所述其他信息。
[0142] 还存在很多不是数值的符号。例如,在利用连续统运算器处理之前,字符需要先变 为数值。一般地,该变换是例如A= 0,B= 1,C= 2,等等,但也可W使用其他变换。例如, 一些语言中不同字符的概率往往可W是非常有用的变换方法,即运些字符可W通过它们的 概率顺序来表示。
[0143] 连续统运算器总是输入具有相同动态范围(例如用于表达符号的比特宽度、字长 度、比特数)的值。此外,连续统运算器通常在处理后返回具有较小动态范围的值,换言之, 在处理后,使用较少比特来表达符号。至少,与原始输入数据相比,结果数据中的不同符号 备选的可能性必须总是更小。
[0144] 使用连续统运算器减小数据大小的一个很好的示例是罗马数字系统。该数字系统 总是很好地限定一个小符号集合,即I= 1,V= 5,X= 10,L= 50,C= 100,D= 500,W 及M= 1000,该小符号集合可W用于表示例如从1到4000的正整数值,可W通过使用比特 标记,W每符号12比特来表示运4000个不同符号。类似地,可W利用每符号3比特来表示 运7个不同罗马数字标记符号,即I= 0、V= 1、X= 2、L= 3、C= 4、D= 5,M= 6。通 常,可W用少于4个罗马数字符号来表示正整数值,因此对于运种特定符号,罗马数字标记 比比特标记更有效率。在使用运种运算器时还有=个大的缺点。首先,不支持零值或在不 使用正负号时不支持负值。其次,如果没有可用的附加信息,例如值之间的空格,没有办法 将正整数值彼此分离开。第S,相关联的"SVT"值太小。SVT值可W被检测到,其他字符可W被检测为其他连续统值。但是,现在SVT值太小,例如当要表达数字8或3333时,所W可 能产生问题。例如,如果有如下正整数:
[0145] 11,9, 33,101,4, 2,1,8, 3,10, 34,68,
[0146] 则存在12个符号-> 12*12比特=144比特或12*7比特=84比特。此外,必须 存在至少101个不同符号W呈现所有值而无需特定分隔符。于是,相应的罗马数字标记可 W呈现为:
[0147]XI,IX,XXXIII,Cl,IV,II,I,VIII,III,X,XXXIV,LXVIII [014引其中存在36个字符+11个分隔符-> 36*3 = 1
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1