首页 / 专利库 / 多媒体工具与应用 / 视频编码 / 熵编码中的上下文初始化

熵编码中的上下文初始化

阅读:0发布:2020-08-28

专利汇可以提供熵编码中的上下文初始化专利检索,专利查询,专利分析的服务。并且一种用于从数据流中解码视频的 解码器 ,其中,使用语法元素的二元化值来将语法元素编码到数据流中,该解码器包括:熵解码器,配置为根据数据流的先前解码部分,通过在不同上下文之间选择上下文并且更新与不同上下文相关联的概率状态,使用二元熵解码来从数据流中导出二元化值的多个段;解符号化器,配置为对语法元素的二元化值进行解二元化,以获得语法元素的整数值;重构器,配置为使用量化参数,基于语法元素的整数值来重构视频,其中,熵解码器配置为在126个概率状态之间进行区分,并且根据量化参数的线性方程对与不同上下文相关联的概率状态初始化,其中,熵解码器配置为针对不同上下文中的每一个,从相应8比特初始化值的前4个比特部分和后4个比特部分中导出线性方程的斜率和偏移。,下面是熵编码中的上下文初始化专利的具体信息内容。

1.一种从数据流(401)中解码视频的解码器,其中,使用语法元素(327)的二元化值将语法元素编码到数据流(401)中,所述解码器包括:
熵解码器(409),配置为根据数据流(401)的先前解码部分,通过在不同上下文之中选择上下文并且更新与不同上下文相关联的概率状态,使用二元熵解码来从数据流(401)中导出二元化值的多个段(326);
解符号化器(314),配置为对语法元素(327)的二元化值进行解二元化,以获得语法元素的整数值;
重构器(404),配置为使用量化参数,基于语法元素的整数值来重构视频,其中,熵解码器(409)配置为在126个概率状态之间进行区分,并且根据量化参数的线性方程对与不同上下文相关联的概率状态初始化,其中,熵解码器配置为针对不同上下文中的每一个,从相应8比特初始化值的前4个比特部分和后4个比特部分中导出线性方程的斜率和偏移。
2.根据权利要求1所述的解码器,其中,熵解码器(409)配置为使用二元算术解码或二元PIPE解码,从数据流(401)中导出二元化值的多个段(326)。
3.根据权利要求1或2所述的解码器,其中,熵解码器(409)配置为根据以下中的一个或更多个,执行针对当前要导出的段的上下文选择:
当前要导出的段所属的二元化值内当前要导出的段的段位置
语法元素的语法元素类型,该语法元素的整数值是通过对当前要导出的段所属的二元化值解二元化而获得的,以及
先前从数据流(401)导出的一个或更多个段,或者先前解二元化的语法元素的整数值。
4.根据权利要求1所述的解码器,其中,熵解码器(409)配置为针对当前导出的段,通过从126个概率状态内与针对当前导出的段而选择的上下文相关联的当前概率状态过渡到
126个概率状态之中依赖于当前导出的段的新概率状态,来执行概率状态更新。
5.根据权利要求1至4中任一项所述的解码器,其中,熵解码器(409)配置为通过以下操作对当前要导出的段进行二元算术解码:对表示当前概率区间的当前概率区间宽度值进行量化来获得概率区间索引;并且根据与针对当前要导出的段而选择的上下文相关联的当前概率状态,通过使用概率区间索引和概率状态索引对表条目之中的表条目编索引来执行区间再划分,以获得当前概率区间到两个部分区间的再划分。
6.根据权利要求5所述的解码器,其中,熵解码器(409)配置为使用针对当前概率区间宽度值的8比特表示,并且在量化当前概率区间宽度值时获取出所述8比特表示的2个或3个最高有效位。
7.根据权利要求5或6所述的解码器,其中,熵解码器(409)配置为基于来自当前概率区间内部的偏移状态值,在两个部分区间之间进行选择;更新概率区间宽度值和偏移状态值,并且使用所选部分区间推断当前要导出的段的值;并且执行更新的概率区间宽度值和偏移状态值的再归一化,包括从数据流(401)中连续读取比特。
8.根据权利要求1至7中任一项所述的解码器,其中,熵解码器(409)配置为在视频分片的开始处初始化与不同上下文相关联的概率状态。
9.根据权利要求8所述的解码器,其中,熵解码器(409)配置为单独确定每个视频分片的量化参数。
10.根据权利要求1至9中任一项所述的解码器,其中,熵解码器(409)配置为通过以下操作来在视频分片开始处初始化与不同上下文相关联的概率状态:从数据流(401)中读取当前分片的量化参数,并且根据当前分片的量化参数的线性方程,初始化与不同上下文相关联的概率状态,其中熵解码器(409)配置为,针对每个分片,从相同相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
11.根据权利要求1至10中任一项所述的解码器,其中,重构器(404)配置为在基于语法元素的整数值重构视频(405)时,使用量化参数对语法元素包括的变换系数级进行解量化,对解量化的变换系数级执行再变换,以获得预测残差;执行空间和/或时间预测,以获得预测信号;并且将预测残差与预测信号相组合,以重构视频(405)。
12.根据权利要求1至11中任一项所述的解码器,其中,熵解码器(409)配置为针对不同上下文中的每一个,彼此独立地从相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
13.根据权利要求1至12中任一项所述的解码器,其中,熵解码器配置为针对不同上下文中的每一个,通过表查找或使用算术运算,从相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
14.根据权利要求1至12中任一项所述的解码器,其中,熵解码器配置为,针对不同上下文中的每一个,通过将前4个比特部分与第一对参数相乘并偏移来导出线性方程的斜率和偏移,并且通过将后4个比特部分与第二对参数相乘并偏移来导出偏移。
15.一种将视频编码到数据流中的编码器,通过使用语法元素的二元化值将语法元素编码到数据流中,所述编码器包括:
重构器,配置为通过根据量化参数设置语法元素的整数值来表示视频,
符号化器,配置为对语法元素的整数值进行二元化,来获得语法元素的二元化值,熵编码器,配置为根据数据流的先前编码部分,通过在不同上下文之中选择上下文并且更新与不同上下文相关联的概率状态,使用二元熵编码来将二元化值的多个段编码到数据流中;
其中,熵编码器配置为在126个概率状态之间进行区分,并且根据量化参数的线性方程初始化与不同上下文相关联的概率状态,其中,熵编码器配置为针对不同上下文中的每一个,从相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
16.根据权利要求15所述的编码器,其中,熵编码配置为使用二元算术编码或二元PIPE编码将二元化值的多个段编码到数据流中。
17.根据权利要求15或16所述的编码器,其中,熵编码器配置为根据以下中的一个或更多个,执行针对当前要编码的段的上下文选择:
当前要编码的段所属的二元化值内当前要编码的段的段位置,
语法元素的语法元素类型,该语法元素的整数值被二元化为当前要编码的段所属的二元化值,以及
先前编码到数据流中的一个或更多个段,或其二元化值先前已被编码的语法元素的整数值。
18.根据权利要求15至17中任一项所述的编码器,其中,熵解码器配置为针对当前编码的段,通过从126个概率状态内与针对当前编码的段而选择的上下文相关联的当前概率状态过渡到126个概率状态之中依赖于当前导出的段的新概率状态,来执行概率状态更新。
19.根据权利要求15至18中任一项所述的编码器,其中,熵编码器配置为通过以下操作对当前要编码的段进行二元算术编码:对表示当前概率区间的当前概率区间宽度值进行量化来获得概率区间索引;并且根据与针对当前要编码的段而选择的上下文相关联的当前概率状态,通过使用概率区间索引和概率状态索引对表条目之中的表条目编索引来执行区间再划分,以获得当前概率区间到两个部分区间的再划分。
20.根据权利要求19所述的编码器,其中,熵编码器配置为使用针对当前概率区间宽度值的8比特表示,并且在量化当前概率区间宽度值时获取出所述8比特表示的2个或3个最高有效位。
21.根据权利要求19或20所述的编码器,其中,熵编码器配置为基于当前要编码的段的整数值,在两个部分区间之间进行选择;使用所选部分区间更新概率区间宽度值和概率区间偏移,并且执行更新的概率区间宽度值和概率区间偏移的再归一化,包括向数据流连续写入比特。
22.根据权利要求15至21中任一项所述的编码器,其中,熵解码器配置为在视频分片的开始处初始化与不同上下文相关联的概率状态。
23.根据权利要求15至22中任一项所述的编码器,其中,熵编码器配置为在视频分片的开始处初始化与不同上下文相关联的概率状态。
24.根据权利要求15至23中任一项所述的编码器,其中,熵编码器配置为通过以下操作来在视频分片开始处初始化与不同上下文相关联的概率状态:单独设置来自数据流的当前分片的量化参数,并且根据当前分片的量化参数的线性方程,初始化与不同上下文相关联的概率状态,其中熵编码器配置为,针对每个分片,从相同相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
25.根据权利要求15至24中任一项所述的编码器,其中,重构器配置为在设置语法元素的整数值时,执行空间和/或时间预测,以获得预测信号;从预测信号和视频中导出预测残差,执行对预测残差的变换,以获得变换系数级,并且使用量化参数对变换系数级进行量化,以获得语法元素包括的量化变换系数级。
26.根据权利要求15至25中任一项所述的编码器,其中,熵编码器配置为针对不同上下文中的每一个,彼此独立地从相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
27.根据权利要求15至26中任一项所述的编码器,其中,熵编码配置为针对不同上下文中的每一个,通过表查找或使用算术运算,从相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
28.根据权利要求15至27中任一项所述的编码器,其中,熵编码器配置为,针对不同上下文中的每一个,通过将前4个比特部分与第一对参数相乘并偏移来导出线性方程的斜率和偏移,并且通过将后4个比特部分与第二对参数相乘并偏移来导出偏移。
29.一种用于从数据流中解码视频的方法,其中,使用语法元素的二元化值将语法元素编码到数据流中,所述方法包括:
根据数据流的先前解码部分,通过在不同上下文之中选择上下文并且更新与不同上下文相关联的概率状态,使用二元熵解码来从数据流中导出二元化值的多个段;
对语法元素的二元化值进行解二元化,以获得语法元素的整数值;
使用量化参数,基于语法元素的整数值来重构视频,
其中导出二元化值的多个段在126个概率状态之间进行区分,并且所述方法包括:根据量化参数的线性方程对与不同上下文相关联的概率状态初始化,并且针对不同上下文中的每一个,从相应8比特初始化值的前4个比特部分和后4个比特部分中导出线性方程的斜率和偏移。
30.一种将视频编码到数据流中的方法,通过使用语法元素的二元化值将语法元素编码到数据流中,所述方法包括:
通过根据量化参数设置语法元素的整数值来表示视频,
对语法元素的整数值进行二元化,来获得语法元素的二元化值,
根据数据流的先前编码部分,通过在不同上下文之中选择上下文并且更新与不同上下文相关联的概率状态,使用二元熵编码来将二元化值的多个段编码到数据流中;
其中,视频的表示在126个概率状态之间进行区分,并且该方法还包括:根据量化参数的线性方程初始化与不同上下文相关联的概率状态,并且针对不同上下文中的每一个,从相应8比特初始化值的前4个比特部分和后4个比特部分导出线性方程的斜率和偏移。
31.一种具有程序代码的计算机程序,程序代码在计算机上运行时执行根据权利要求
29至30中任一项所述的方法。

说明书全文

熵编码中的上下文初始化

[0001] 本申请是申请日为2012年6月18日、优先权日为2011年6月16日的 中国专利申请CN201280039832.3(“熵编码中的上下文初始化”)的分 案申请。

技术领域

[0002] 本发明涉及用于编码视频数据的熵编码构思。

背景技术

[0003] 本领域中已知许多视频编解码器。通常,这些编解码器为了表示 视频内容而降低了必需的数据量,即,这些编解码器对数据进行压缩。 在熵编码中,主要使用概率估计来编码符号,概率估计尽可能接近地 对应于实际符号统计。可以假定,概率估计将概率值与符号的每个可 能值相关联来进行编码。例如,在二元熵编码的情况下,符号具有二 元属性,并且仅存在这样的两个可能数值。在视频编码的情况下,要 编码的符号属于满足不同任务的不同语法元素以便描述视频内容:存 在运动矢量差值、编码模式、表示预测残差的变换系数级别等。首先, 所有这些语法元素具有不同域的可能值,并且甚至具有在相同域的可 能值上定义的那些可能值,这些可能值很可能在该域的可能值上示出 不同频率直方图。相应地,这些语法元素的符号化/二元化的符号串/ 段(bin)串的符号/段也在符号字母表上
示出了与概率分布有关的不 同统计。相应地,使用上下文自适应熵编码:第一不同上下文具备各 与不同概率估计相关联的每个上下文。相应地,例如,可以灵活地向 不同上下文分配不同语法元素的段。甚至可以使用与视频图像的邻域 部分有关的语法元素的段/符号之
间的空间互相关关系,以便在提供的 多个上下文之中进行选择。通过这种措施,能够将段/符号分类成组, 组的符号统计同样针对不同视频内容而改变。然而,除此之外,与这 些上下文相关联的概率估计在编码期间不断适应于实际符号统计。
[0004] 从以上描述直接可知:仔细设计上下文并且适当地初始化上下文 的概率估计是重要的。例如,如果上下文数目太多,则由于单独上下 文内符号的频率太低,导致概率估计的适应会失败。另一方面,如果 上下文数目太少,则单独上下文内收集的符号实际上具有不同统计, 并且概率估计不能精密地近似相应上下文内所有这些符号的实际符号 统计。
只要关注概率估计的初始化,就可以根据执行某些训练阶段来 获得相同效果,在一些训练阶段内对视频内容进行典型混合以进行编 码,以便研究语法元素的样本统计。在这种情况下,例如在H.264中已 经开发了:H.264的不同上下文部分示出了对量化参数的QP的依赖
性, 其中,编码器选择视频的单独分片。相应地,在H.264中,已经使用量 化参数相关概率估计初始化。具体地,在H.264编解码器针对每个上下 文定义了一对值,即,线性量化参数相关因素(即,斜率)以及偏移 值(即,量化参数无关初始化值)。两个值均以8比特来定义。
[0005] 目前希望进一步提高视频编码的编码效率,并且相应地,期待在 效率方面(即,一方面压缩率与另一方面实现复杂度之间的折衷方面) 进一步提高以上概括的上下文自适应二元熵编码。
[0006] 因此本发明的目的在于提供这种编码构思。
[0007] 通过所附独立权利要求的主题来实现该目的。

发明内容

[0008] 本发明的基本发现由发明人的以下发现产生:上下文自适应二元 熵编码中以上识别斜率和偏移的精度不应当太高,以免其中检查出视 频内容的典型混合的任一序列阶
段,以便为最优值左右的单独上下文 导出斜率和偏移对,事实上,最优值与视频的统计总体的典型值相比 更接近地表示实际上检查到的视频内容混合。相应地,本发明的发明 人
发现,有利地降低提供斜率和偏移值的精度,以初始化上下文的概 率估计。例如,本发明人实现了,该降低不仅引起视频编码器和解码 器上强加的用于存储针对每个上下文的斜率
和偏移对的存储器需求降 低,而且还引起当现场测试编码效率时编码效率的略微增加。
附图说明
[0009] 以下关于附图描述的本申请的优选实施例,在附图中:
[0010] 图1示出了根据实施例的编码器的框图
[0011] 图2a-2c示意性示出了样本阵列(例如,画面)到的不同再划分;
[0012] 图3示出了根据实施例的解码器的框图;
[0013] 图4更详细地示出了根据实施例的编码器的框图;
[0014] 图5更详细地示出了根据实施例的解码器的框图;
[0015] 图6示意性示出了来自空间域的块到频域的变换、生成的变换块 及其再变换;
[0016] 图7示出了根据实施例的编码器的框图;
[0017] 图8示出了根据实施例的适合于解码图8的编码器产生的比特流 的解码器的框图;
[0018] 图9是示出了根据实施例的具有多像素化部分比特流的数据分组 的示意图;
[0019] 图10是示出了根据另一实施例的具有使用固定尺寸区段的备选 分割的数据分组的示意图;
[0020] 图11示出了根据实施例的支持模式切换的解码器;
[0021] 图12示出了根据另一实施例的支持模式切换的解码器;
[0022] 图13示出了根据实施例的适合于图11的解码器的编码器;
[0023] 图14示出了根据实施例的适合于图12的解码器的编码器;
[0024] 图15示出了pStateCtx和fullCtxState/256的映射;
[0025] 图16示出了根据本发明实施例的解码器;以及
[0026] 图17示出了根据本发明实施例的编码器。

具体实施方式

[0027] 应当注意,在附图的描述期间,在这些附图的若干附图中出现的 元件在这些附图的每个附图中用于相同附图标记来指示,并且避免关 于这些元件的功能的重复描述,以免不必要的重复。然而,关于一幅 图提供的功能和描述同样应当应用于其他附图,除非明确指示相反。
[0028] 在以下中,首先,关于图1至17描述一般视频编码构思的实施例。 图1至6涉及在语法级别上操作的视频编解码器的一部分。后续的图8 至17涉及与语法元素流到数据流的转换以及数据流到语法元素流的转 换有关的代码的一部分的实施例。本发明的特定方面和
实施例以关于 图1至17概括的一般构思的可能实施例的形式来描述。
[0029] 图1示出了其中可以实现本申请的方面的编码器10的示例。
[0030] 编码器将信息样本20的阵列编码到数据流中。信息样本阵列可以 表示与例如明亮度值、颜色值、亮度值、色度值等相对应的信息样本。 然而,在样本阵列20是例如光传感器等的时间产生的深度图的情况下, 信息样本也可以是深度值。
[0031] 编码器10是基于块的编码器。即,编码器10以块40为单位将样本 阵列20编码到比特流30中。以块40为单位的编码并不意味着,编码器 10彼此无关地对这些块40进行总体编码。相反,编码器10可以使用先 前编码块的重构,以便对剩余块进行外推或内预测,并且可以使用 块的粒度来设置编码参数,即,设置对与相应块相对应的每个样本阵 列区域的
编码方式。
[0032] 此外,编码器10是变换编码器。即,编码器10通过使用变换对块 40编码,以便将每个块40内的信息样本从空间域传送到频域。可以使 用二维变换,例如,FFT的DCT等。优选地,块40具有方形形状或矩 形形状。
[0033] 图1中示出的样本阵列20到块40的再划分仅用于示意性目的。图1 示出了将样本阵列20再划分成方形或矩形块40的规则二维排列,方形 或矩形块40以非交叠方式彼此邻
接。块40的尺寸可以预定。即,编码 器10可以不将数据流30内与块40的块尺寸有关的信息传送到解码侧。 例如,解码器可以预期预定的块尺寸。
[0034] 然而,多种备选方案是可能的。例如,块可以彼此交叠。然而, 交叠限于以下程度:每个块具有没有与任一邻近块交叠的部分,或者 使得块的每个样本最多与邻近块之中的
一个块交叠,邻近块排列为沿 预定方形与当前块毗邻。后一种情况意味着左手邻域块和右手领域块 可以与当前块交叠,以便完全覆盖当前块,但是它们可以彼此不交叠, 并且这同样适用于垂直和对方向上的邻域。
[0035] 作为另一备选方式,编码器10将样本阵列20再划分成块40可以适 用于样本阵列20的内容,其中将与所使用的再划分有关的再划分信息 经由比特流30传送到解码器。
[0036] 图2a至2c示出了样本阵列20到块40的再划分的不同示例。图2a示 出了样本阵列20不同尺寸的块40的基于四叉树的再划分,其中在40a, 40b,40c和40d处以增加尺寸指示典型块。根据图2a的再划分,首先将 样本阵列20划分成树块40d的规则二维排列,该排列继而具有与其相关 联的单独再划分信息,根据该信息可以基于四叉树或者不根据四叉树 对
特定树块40d进一步进行再划分。根据四叉树结构,示例性地将树块 40d的左侧再划分成较小块。编码器10可以对图2a中以实线和虚线示出 的每个块执行一次二维变换。换言之,编码器10可以以块再划分为单 位对阵列20进行变换。
[0037] 代替基于四叉树的再划分,可以使用更一般的基于多树的再划 分,并且每个分级级别的子节点数目可以在不同分级级别之间不同。
[0038] 图2b示出了再划分的另一示例。根据图2b,首先按照相互毗邻非 交叠方式将样本阵列20划分成以规则二维排列而排列的宏块40b,其 中,每个宏块40b具有与其相关联的再划分信息,根据该再划分信息不 对宏块进行再划分,或者如果进行再划分,则按照规则二维方式将宏 块再划分成同等尺寸的子块,以实现针对不同宏块的不同再划分粒度。 结果
是以不同尺寸的块40对样本阵列20进行再划分,不同尺寸的块40 表示在40a,40b and 
40a’处指示的不同尺寸。如在图2a中,编码器10对 图2b中以实线和虚线示出的每个块执行二维变换。稍后讨论图2c。
[0039] 图3示出了能够对编码器10产生的数据流30进行解码以重构样本 阵列20的重构版本60的解码器50。解码器从数据流30提取针对每个块 40的变换系数块,并且通过对每个变换系数块执行逆变换来重构重构 版本60。
[0040] 编码器10和解码器50可以配置为执行熵编码/解码,以便将与变换 系数块有关的信息插入到数据流中,并且相应地从该数据流中提取该 信息。稍后根据不同实施例描述这方面的细节。应当注意,数据流30 不必包括与针对样本阵列20的所有块40的变换系数块有关的信息。相 反,可以按照另一方式将块40的子集编码到比特流30中。例如,编码 器10可以决定禁止将针对块40的特定块的变换系数块插入到比特流 30,取而代之插入备选编码
参数,备选编码参数使得解码器50能够预 测或另外满足重构版本60中的相应块。例如,编码器10可以执行纹理 分析,以便解码器通过纹理分析在样本阵列20内定位在解码器侧填
充 的块,并且相应地在比特流内指示这些块。
[0041] 如关于以下附图讨论的,变换系数块不必表示样本阵列20的相应 块40的原始信息样本。然而,这样的变换系数块可以表示相应块40的 预测残差的谱域表示。图4示出了针对这种编码器的实施例。图4的编 码器包括变换级100、熵编码器102、逆变换级104、预测器
106以及减 法器108和加法器110。减法器108、变换级100和熵编码器102以所提及 的顺序
串联在图4的编码器的输入112与输出114之间。逆变换级101、 加法器110和预测器106以所提及的顺序连接在变换级100的输出与减 法器108的反相输入之间,其中,预测器106的输
出也连接至加法器110 的另一输入。
[0042] 图4的编码器是基于预测变换的块编码器。即,根据相同样本阵 列20的先前编码和重构的部分或者当前样本阵列20之前或之后的先前 编码和重构的其他样本阵列,来预
测进入输入112的样本阵列20的块。 预测可以由预测器106来执行。减法器108从这样的原
始块中减去预测, 并且变换级100对预测残差执行二维变换。二维变换本身或者变换级 
100内部的后续手段可能导致变换系数块内变换系数的量化。例如,熵 编码器102内的熵编码可以利用在输出114处输出的生成数据流对量化 的变换系数块进行无损编码。逆变换级
104对量化的残差进行重构,加 法器110继而将重构的残差与对应预测相组合,以便获得重构的信息样 本,基于该重构的信息样本预测器106可以预测上述当前编码的预测 块。预测器106可以使用诸如帧内预测模式和帧间预测模式等预测模式 来预测块,并且将预测参数
转发至熵编码器102以插入到数据流中。对 于每个帧间预测块,经由熵编码器114将相应运动数据插入到比特流 中,以使解码层能够重新进行预测。针对画面的预测块的运动数据可 以涉及包括语法元素在内的语法部分,语法元素表示运动矢量差,运 动矢量差相对于例如通过预定方法从邻近已经编码的预测块的运动矢 量导出的运动矢量预测器以不同方式对
当前预定块的运动矢量进行编 码。
[0043] 即,根据图4的实施例,变换系数块表示样本阵列残差的谱表示, 而不是其实际信息样本。即,根据图4的实施例,语法元素序列可以进 入熵编码器102中,以被熵编码到数据流114中。语法元素序列可以包 括针对帧间预测块的运动矢量差语法元素和与指示显著变换系数级别 的位置的显著图有关的语法元素以及对于变换块定义了显著变换系数 级本
身的语法元素。
[0044] 应当注意到,图4的实施例存在多个备选方式,其中,一些备选 方式在合并到图4的描述中的说明书的背景部分内已描述。
[0045] 图5示出了能够对图4的编码器产生的数据流进行解码的解码器。 图5的解码器包括熵解码器150、逆变换级152、加法器154和预测器156。 熵解码器150、逆变换级152和加法器154按照提及的顺序串联在解码器 的输入158与输出160之间。熵解码器150的另一输出
连接至预测器156, 预测器156继而连接在加法器154的输出与加法器154的另一输入之间。 熵解码器150在输入158处从进入图5的解码器的数据流提取变换系数 块,其中,在级152处对变换系数块应用逆变换,以便获得残差信号。 残差信号在加法器154处与来自预测器156的预测相组合,以在输出160 处获得样本阵列的重构版本的重构块。基于重构版本,预测器
156产生 预测,从而在编码器侧重建预测器106执行的预测。为了获得与在编码 器侧处使
用的那些预测相同的预测,预测器156使用熵解码器150还从 输入158处的数据流获得的预
定参数。
[0046] 应当注意,在上述实施例中,执行残差的预测和变换的空间粒度 不必彼此相等。在图2C中示出了这一点。该图示出了针对实线的预测 粒度和虚线的残差粒度的预测块的
再划分。可以看出,通过编码器可 以彼此独立选择再划分。为了更精确,数据流语法可以允许与预测再 划分无关的残差再划分定义。备选地,残差再划分可以是预测再划分 的扩展,使得每个残差块等于或是预测块的适当子集。在图2a和图2b 中示出了这一点,例如,以实线示出了预测粒度并且以虚线示出了残 差粒度。即,在图2a-2c中,具有关联的参考符号的所有块应当是在更 大实线块覆盖虚线块40a时被执行了一次二维变换的残差块,例如应当 是单独被执行了预测参数设置的预测块。
[0047] 以上实施例共同之处在于,(残差或原始)样本的块应当在编码 器侧处变换成变换系数块,变换系数块继而应当在解码器侧输出逆变 换成样本的重构块。在图6中示出了
这一点。图6示出了样本200的块。 在图6的情况下,示例性地,该块200是方形且尺寸4x4样本202。样本 202沿着平方向x和垂直方向y规则排列。通过上述二维变换T,将块 200变换到谱域中,即,变换到变换系数206的块204中,变换块204具 有与块200相同的尺寸。即,变换块204沿着水平方向和垂直方向具有 与块200具有样本相同多个变换系数206。然而,由
于变换T是谱变换, 因此变换块204内变换系数206的位置与空间位置不相对应,而是与块 
200的内容的谱分量相对应。具体地,变换块204的水平轴对应于水平 方向上的谱频率单调增加的轴,而垂直轴对应于垂直方向上的谱频率 单调减小的轴,其中,DC分量变换系数位于块204的角(这里示例性 地,左上角)中,使得对应于水平方向和垂直方向上的最高频率
的变 换系数206位于右下角处。忽略空间方向,特定系数206所属的空间频 率通常从左上
-1
角增加到右下角。通过逆变换T ,变换块204从谱域重 新变换到空间域,使得重新获得块
200的拷贝208。在变换期间尚未引 入量化/损耗的情况下,重构应当是理想的。
[0048] 如上所述,从图6可以看出,块200的较大块尺寸增加了生成谱表 示204的谱分辨率。另一方面,量化噪声趋向于在整个块208上伸展, 并因此块200内陡峭且非常局部化的对象趋向于,由于量化噪声导致再 变换的块相对于原始块200劣化。然而,使用更多块的主要优点在于, 一方面显著(即,非零)(量化的)变换系数的数目(即,级别)与另 一方面非显著变换系数的数目之间的比率与较小块相比在较大块内减 小,从而实现更好的编码效率。
换言之,通常,显著变换系数级别(即, 没有量化为零的变换系数)在变换块204上稀疏地分布。由此,根据以 下更详细描述的实施例,通过显著图在数据流中信号通知显著变换系 数级别的位置。从中分别地,在数据流内传输显著变换系数的值(即, 在变换系数被量化情况下的变换系数级别)。
[0049] 因此上述所有编码器和解码器配置为处理语法元素的特定语法。 即,假定按照指定方式在数据流中顺序地布置上述语法元素(例如, 变换系数级别、与变换块的显著图有
关的语法元素、与帧间预测块有 关的运动数据语法元素等)。这样的指定方式例如在H.264标准或其他 视频编解码器中可以以伪码形式表示。
[0050] 换言之,以上描述主要讨论根据预定语法结构将媒体数据(这里 示例性地,视频数据)转换到语法元素序列,预定语法结构指定特定 语法元素类型、特定语法元素类型的
语义以及特定语法元素类型之间 的顺序。图4和5的熵编码器和熵解码器可以配置为如以
下概述地进行 操作并且结构化。这同样用于执行语法元素序列与数据流(即,符号 或比特流)之间的转换。
[0051] 在图7中示出了根据实施例的熵编码器。编码器无损地将语法元 素301的流转换成两个或更多个部分比特流312的集合。
[0052] 在本发明的优选实施例中,每个语法元素301与一个或更多个类 别(即,语法元素类型)的集合的类别相关联。作为示例,类别可以 规定语法元素的类型。在混合视频编码的情况下,单独类别可以与宏 块编码模式、块编码模式、参考画面索引、运动矢量差、再划分标志、 编码的块标志、量化参数、变换系数级别等相关联。换言之,在诸如 音频、语音、文本、文档或一般数据编码等其他应用领域中,语法元 素的不同类别化是可能的。
[0053] 通常,每个语法元素可以采用有限或可计数的无限值集合的值, 其中,可能语法元素值集合可以针对不同语法元素类型而不同。例如, 存在二元语法元素以及整数值语法元素。
[0054] 为了降低编码和解码算法的复杂度,并且为了允许针对不同语法 元素和语法元素类别的一般编码和解码设计,将语法元素301转换成有 序的二元判定集合,并且然后由
简单的二元编码算法来处理这些二元 判定。因此,二元化器302双向单射地(bijectively)将每个语法元素 301的值映射到段303的序列(或串或词语)上。段303的序列表示有序 二
元判定的集合。每个段303或二元判定可以采用二值集合中的一个 值,例如,值0和1中的一个。二元化方案针对不同语法元素类别而不 同。针对特定语法元素类别的二元化方案可以依赖于针对特定类型的 可能语法元素值集合和/或语法元素的其他属性。
[0055] 表1示出了针对可计数无限集合的三个二元化方案。针对可计数 无限集合的二元化方案也可以应用于语法元素值的有限集合。具体地, 对于语法元素值的较大有限集合,无效率(由于未使用的段序列导致) 可以忽略,但是这种二元化方案的一般性在复杂度和
存储器要求方面 提供了优点。对于语法元素值的较小有限集合,通常优选地(在编码 效率方面)使二元化方案适应可能符号值的数目。
[0056] 表2示出了针对8个值的有限集合的三个示例二元化方案。可以通 过修改一些段序列使得段序列的有限集合表示无冗余的码(并且潜在 地重排序段序列),从针对可计数
无限集合的通用二元化方案导出针对 有限集合的二元化方案。作为示例,通过修改通用一元二元化(参见 表1)的语法元素7的段序列,来创建表2中的截短一元二元化方案。可 以通过修改针对通用顺序0二元化(参见表1)的语法元素7的段序列并 且通过对段序列重排序
(向针对符号7的截短段序列分配符号1),创建 表2中顺序0的截短并重排序的Exp-Golomb
二元化。对于语法元素的有 限集合,如表2的最后一列中示例的,还能够使用非系统/非通用的二 元化方案。
[0057] 表1:针对可计数的无限集合(或较大有限集合)的二元化示例
[0058]
[0059] 表2:针对有限集合的二元化示例
[0060]
[0061] 按照顺序将二元化器302创建的段序列的每个段303馈送到参数 分配器304中。参数分配器向每个段303分配一个或多个参数的集合, 并且输出具有关联的参数305集合的
段。在编码器和解码器处按照正好 相同的方式来确定参数集合。参数集合可以包括以下参数中的一个或 多个:
[0062] 具体地,参数分配器304可以配置为向当前段303分配上下文模 型。例如,参数分配器304可以选择针对当前段303的可用上下文索引 之一。针对当前段303的可用上下文集
合可以依赖于段类型(段类型可 以由语法元素301的类型/类别来定义)、当前段303作为其
中一部分的 二元化值以及二元化值内当前段303的位置。在可用上下文集合中选择 上下
文可以依赖于先前段以及与先前段相关联的语法元素。这些上下 文中的每一个具有与其
相关联的概率模型,即,针对当前段的两个可 能段值之一的概率估计的度量。具体地,概率模型可以是针对当前段 的小概率或大概率段值的概率估计的度量,其中附加地概率模型
由对 估计加以指定的标识符来定义,对于估计两个可能段值表示针对当前 段303的小概
率或大概率段值。在仅一个上下文可用于当前段的情况 下,可以省去上下文选择。如以下更详细概括的,参数分配器304也可 以执行概率模型适应,以便使与多个上下文相关联的
概率模型适应属 于相应上下文的相应段的实际段统计。
[0063] 同样如以下更详细描述的,参数分配器304可以根据被激活的高 效率(HE)模式或低复杂度(LC)模式不同地操作。在两种模式下, 概率模型将当前段303与任一段编码器310相关联,如下所概括的,但 是参数分配器304的操作模式在LC模式下趋向于复杂度较小,然而, 由于参数分配器304将单独段303与单独编码器310相关联以更精确地 适应段统计,因此在高效率模式下提高的编码效率,从而相对于LC模 式优化了熵。
[0064] 将具有关联的从参数分配器304输出的参数305集合的每个段馈 送到段缓冲器选择器306中。段缓冲器选择器306可能基于输入的段值 和关联的参数305修改输入段305的
值,并且将具有可能修改值的输出 段307馈送到两个或更多个段缓冲器308之一中。基于输入段305的值和 /或关联参数305的值确定输出段307要发送到的段缓冲器308。
[0065] 在本发明的优选实施例中,段缓冲器选择器306不修改段值,即, 输出段307始终具有与输入段305相同的值。在本发明的另一实施例中, 段缓冲器选择器306基于输入段值
305和针对当前段的两个可能段值之 一的概率估计的关联度量,确定输出段值307。在本发明的优选实施例 中,如果针对当前段的两个可能段值之一的概率度量小于(或小于等 于)
特定阈值,则将输出段值307设置为等于输入段值305;如果针对 当前段的两个可能段值之一的概率度量大于或等于(或大于)特定阈 值,则修改输出段值307(即,将输出段值307设
置为与输入段值相反)。 在本发明的优选实施例中,如果针对当前段的两个可能段值之一
的概 率度量大于(或大于等于)特定阈值,则将输出段值307设置为等于输 入段值305;如
果针对当前段的两个可能段值之一的概率度量小于等于 (或小于)特定阈值,则修改输出
段值307(即,将输出段值307设置 为与输入段值相反)。在本发明的优选实施例中,阈值的值对应于针对 两个可能段值的估计概率的值0.5。
[0066] 在本发明的另一优选实施例中,段缓冲器选择器306基于输入段 值305和对两个可能段值表示针对当前段的小概率或大概率段值的估 计加以指示的关联标识符,确定输
出段值307。在本发明的优选实施例 中,如果标识符指定两个可能段值中的第一可能段值
表示针对当前段 的小概率(或大概率)段值,则将输出段值307设置为等于输入段值305; 
如果标识符指示两个可能段值中的第二可能段值表示针对当前段的小 概率(或大概率)段
值,则修改输出段值307(即,将输出段值307设 置为与输入段值相反)。
[0067] 在本发明的优选实施例中,段缓冲器选择器306基于针对当前段 的两个可能段值之一的概率估计的关联度量,设置输出段307要发送到 的段缓冲器308。在本发明的优选实施例中,针对两个可能段值之一的 概率估计的度量的可能值集合是有限的,并且段缓冲器选择器306包含 精确地将一个段缓冲器308与针对两个可能段值之一的概率估计的度 量
的每个可能值相关联的表,其中,针对两个可能段值之一的概率估 计的度量的不同值可以与相同段缓冲器308相关联。在本发明的优选实 施例中,将针对两个可能段值之一的概率
估计的度量的可能值范围分 成多个区间,段缓冲器选择器306为两个可能段值之一的概率
估计的当 前度量确定区间索引,并且段缓冲器选择器306包含精确地将一个段缓 冲器308
与针对区间索引的每个可能值相关联的表,其中,针对区间索 引的不同值可以与相同段缓冲器308相关联。在本发明的优选实施例 中,将对于两个可能段值之一的概率估计具有相
反度量(相反度量是 那些表示概率度量P和1-P的度量)针对输入段305馈送到相同段缓冲
器 308中。在本发明的另一优选实施例中,随时间适应针对当前段的两个 可能段值之一的概率估计的度量与特定段缓冲器的关联,以便例如确 保创建的部分比特流具有类似的比
特率。此外在下文中,区间索引页 被称作pipe(pipe)索引,而pipe连同精细索引和对大概率段值加以指 示的标志一起指示实际概率模型,即,概率估计。
[0068] 在本发明的另一优选实施例中,段缓冲器选择器306基于针对当 前段的小概率或大概率段值的概率估计的关联度量,确定将输出段307 发送到的段缓冲器308。在本发明的优选实施例中,针对小概率或大概 率段值的概率估计的度量的可能值集合是有限的,并且段缓冲器选择 器306包含精确地将一个段缓冲器308与针对小概率或大概率段值的概 率
估计的每个可能值相关联的表,其中,针对小概率或大概率段值的 概率估计的度量的每个可能值可以与同样段缓冲器308相关联。在本发 明的另一优选实施例中,将针对小概率或
大概率段值的概率估计的度 量的可能值范围分成多个区间,段缓冲器选择器306为针对小
概率或大 概率段值的概率估计的当前度量确定区间索引,并且段缓冲器选择器 306包含
精确地将一个段缓冲器308与针对区间索引的每个可能值相关 联的表,其中,针对区间索
引的不同值可以与相同段缓冲器308相关联。 在本发明的另一优选实施例中,随时间适应
针对当前段的小概率或大 概率段值的概率估计的度量与特定段缓冲器的关联,以便例如
确保创 建的部分比特流具有类似的比特率。
[0069] 两个或更多个段缓冲器308的每一个正好与一个段编码器310连 接,并且每个段编码器仅与一个段缓冲器308连接。每个段编码器310 从关联的段缓冲器308读取段,并且
将一系列段309转换成码字311,码 字311表示比特序列。段缓冲器308表示先进先出缓冲
器;在较早馈送 到(按照顺序)段缓冲器308的段之前,不对较晚馈送到(按照顺序) 段缓冲器308中的段进行编码。将作为特定段缓冲器308的输出的码字 311写入到特定部分比特流
312中。总体编码算法将语法元素301编码到 两个或更多个部分比特流312中,其中,部分比特流的数目等于段缓冲 器和段编码器的数目。在本发明的优选实施例中,段编码器310将
可变 数目的段309转换成可变数目比特的码字311。本发明的以上和以下概 括的实施例的
一个优点在于,可以并行地进行段编码(例如,针对不 同组概率度量),这减少了针对若干实现方式的处理时间。
[0070] 本发明实施例的另一优点在于,段编码器310进行的段编码可以 针对参数305的不同集合而特殊设计。具体地,可以针对不同组估计的 概率来优化段编码(在编码效率和/或复杂度方面)。在一个方面,这 实现了编码/解码复杂度的降低,并且在另一方面,这实现了编码效率 的提高。在本发明的优选实施例中,段编码器310针对当前段的两个可 能段值
305之一的概率估计,对于不同度量组实现不同编码算法(即, 将段序列映射到码字)。在本发明的另一优选实施例中,段编码器310 针对当前段的小概率或大概率段值的概率估计的
不同度量组,实现不 同编码算法。
[0071] 在本发明的优选实施例中,段编码器310或一个或更多个段编码 器表示将输入段序列309直接映射到码字311的熵编码器。这样的映射 可以有效率地实现,并且不需要复杂的算术编码引擎。将码字逆映射 到段序列(如在解码器中进行的)应当是唯一的,以便保证对输入序 列的理想解码,但是将段序列309映射到码字311不必是唯一的,即, 可以将特定段序列映射到多于一个码字序列。在本发明的优选实施例 中,将输入段序列309映射到码
字310是双向单射的。在本发明的另一 优选实施例中,段编码器310或一个或更多个段编码器表示将可变长度 的输入段序列309直接映射到可变长度码字310的熵编码器。在本发明 
的优选实施例中,输出码字表示无冗余码,例如,一般huffman码或标 准huffman码。
[0072] 在表3中示出了段序列双向单射到无冗余码的两个示例。在本发 明的另一优选实施例中,输出码字表示适合于误差检测和误差恢复的 冗余码。在本发明的另一优选实施例中,输出码字表示适合于对语法 元素进行加密的加密码。
[0073] 表3:段序列与码字之间映射的示例。
[0074]
[0075]
[0076] 在本发明的另一优选实施例中,段编码器310或一个或更多个段 编码器表示将可变长度的输入段序列309直接映射到固定长度码字310 的熵编码器。在本发明的另一优选
实施例中,段编码器310或一个或更 多个段编码器表示可以将固定长度输入段序列309直
接映射到可变长 度码字310的熵编码器。
[0077] 在图8中示出了根据本发明实施例的解码器。解码器基本上执行 编码器的逆操作,使得根据两个或更多个部分比特流324的集合对(先 前编码的)语法元素序列327进行
解码。解码器包括两个不同处理流: 针对数据请求的流,重复编码器的数据流;以及表示编码器数据流的 逆的数据流。在图8的示意中,虚箭头表示数据请求流,而实箭头表示 数据流。解码器的构建块基本上重复编码器的构建块,但是实现逆操 作。
[0078] 由针对被发送到二元化器314的新解码语法元素313的请求触发 语法元素的解码。在本发明的优选实施例中,针对新解码元素313的每 个请求与一个或更多个类别的集
合的类别相关联。与针对语法元素的 请求相关联的类别与编码期间关联于对应语法元素
的类别相同。
[0079] 二元化器314将针对语法元素313的请求映射到针对被发送到参 数分配器316的段的一个或更多个请求。作为二元化器314对被发送到 参数分配器316的段请求的最终响
应,二元化器314从段缓冲器选择器 318接收解码段326。二元化器314将接收到的解码段序列326与针对请 求的语法元素的特定二元化方案相比较,并且如果接收到的解码段序 列
326与语法元素的二元化相匹配,则二元化器使其段缓冲器为空,并 且输出解码语法元素
作为对新解码符号的请求的最终响应。如果已经 接收到的解码段序列与针对请求的语法
元素的二元化方案的任一段序 列不匹配,则二元化器向参数分配器发送另一段请求,直到解码段序 列与针对请求的语法元素的二元化方案的段序列之一匹配为止。对于 针对语法
元素的每个请求,解码器使用用于编码对应语法元素的相同 二元化方案。二元化方案针对不同语法元素类别而不同。针对特定语 法元素的二元化方案可以依赖于可能语法元素值
集合和/或针对特定 类别的语法元素的其他属性。
[0080] 参数分配器316向每个段请求分配一个或更多个参数的集合,并 且向段缓冲器选择器发送具有关联的参数集合的段请求。由参数分配 器分配到请求段的参数集合与编码
期间分配到对应段的参数相同。参 数集合可以包括在图7的编码器描述中提及的一个或更
多个参数。
[0081] 在本发明的优选实施例中,参数分配器316将每个段请求与分配 器314分配的相同参数相关联,即,上下文及其针对当前请求段的两个 可能段值之一的概率估计的关联度量,例如,针对当前请求段的小概 率或大概率段值的概率估计的度量,以及对两个可能段值表示针对当 前请求段的小概率或大概率段值的估计加以指定的标识符。
[0082] 参数分配器316可以基于一个或更多个已编码符号来确定上述概 率度量中的一个或更多个(针对当前请求段的两个可能段值之一的概 率估计的度量、针对当前请求段的
小概率或大概率段值的概率估计的 度量、对两个可能段值表示针对当前请求段的小概率
或大概率段值的 估计加以指定的标识符)。确定特定段请求的概率度量在编码器处重复 
对应段的处理。用于确定概率度量的解码符号可以包括相同符号类别 的一个或更多个已
解码符号、与邻近空间和/或时间位置(关于与针对 语法元素的当前请求相关联的数据集
合)的数据集合(例如,样本的 块或组)相对应的相同符号类别的一个或更多个已解码符
号、或与相 同和/或邻近空间和/或时间位置的数据集合(关于与针对语法元素的 当前请
求相关联的数据集合)相对应的不同符号类别的一个或更多个 已解码符号。
[0083] 将作为参数分配器316输出的具有关联参数集合317的每个段请 求馈送到段缓冲器选择器318中。基于关联的参数集合317,段缓冲器 选择器318向两个或更多个段缓冲器
320之一发送段请求319,并且从所 选段缓冲器320接收解码段325。可以对解码输入段325
进行修改,并且 向二元化器314发送具有可能修改值的解码输出段326,作为对具有关 联
参数集合317的段请求的最终响应。
[0084] 按照编码器侧处将段缓冲器选择器的输出段发送到的段缓冲器 相同的方式,选择将段请求转发到的段缓冲器320。
[0085] 在本发明的优选实施例中,段缓冲器选择器318基于针对当前请 求段的两个可能段值之一的概率估计的关联度量,确定将段请求319 发送到的段缓冲器320。在本发明的优选实施例中,两个可能段值之一 的概率估计的度量的可能值集合是有限的,并且段缓冲器选择器318 包含表,其中精确地将一个段缓冲器320与两个可能段值之一的概率估 计的度
量的每个可能值相关联,其中,两个可能段值之一的概率估计 的度量的不同值可以与相同段缓冲器320相关联。在本发明的优选实施 例中,将两个可能段值之一的概率估计的度量
的可能值范围分成多个 区间,段缓冲器选择器318为两个可能段值之一的概率估计的当前
度 量,确定区间索引,并且段缓冲器选择器318包含精确地将一个段缓冲 器320与区间索
引的每个可能值相关联的表,其中,区间索引的不同值 可以与相同段缓冲器320相关联。在本发明的优选实施例中,将具有两 个可能段值之一的概率估计的相反度量的段请求317
(相反度量是表示 概率估计P和1-P的度量)转发至相同段缓冲器320。在本发明的另一优 
选实施例中,随时间适配针对当前段请求的两个可能段值之一的概率 估计的度量与特定
段缓冲器的关联。
[0086] 在本发明的另一优选实施例中,段缓冲器选择器318基于针对当 前请求段的小概率或大概率段值的概率估计的关联度量,确定将段请 求319发送到的段缓冲器320。在本发明的优选实施例中,小概率或大 概率段值的概率估计的度量的可能值集合是有限的,并且段缓冲器选 择器318包含精确地将一个段缓冲器320与小概率或大概率段值的概率 估计
的每个可能值相关联的表,其中,小概率或大概率段值的概率估 计的不同度量值可以与相同段缓冲器320相关联。在本发明的另一优选 实施例中,将小概率或大概率段值的概率估
计的度量的可能值范围分 成多个区间,段缓冲器选择器318确定小概率或大概率段值的概
率估计 的当前度量的区间索引,并且段缓冲器选择器318包含精确地将一个段 缓冲器320
与区间索引的每个可能值相关联的表,其中,区间索引的不 同值可以与相同段缓冲器320
相关联。在本发明的另一优选实施例中, 随时间适配针对当前段请求的小概率或大概率段值的概率估计的度量 与特定段缓冲器的关联。
[0087] 在从所选段缓冲器320接收解码段325之后,段缓冲器选择器318 可以修改输入段325,并且向二元化器314发送具有可能修改值的输出 段326。段缓冲器选择器318的输入/
输出段映射是编码器侧处段缓冲器 选择器的输入/输出段映射的逆。
[0088] 在本发明的优选实施例中,段缓冲器选择器318不修改段值,即, 输出段326始终具有与输入段325相同的值。在本发明的另一优选实施 例中,段缓冲器选择器318基于输入段值325和针对与段请求317相关联 的当前请求段的两个可能段值之一的概率估计的度
量,确定输出段值 326。在本发明的优选实施例中,如果针对当前段请求的两个可能段值 之一的概率估计的度量小于(或小于或等于)特定阈值,则将输出段 值326设置为等于输入
段值325;如果针对当前段请求的两个可能段值 之一的概率估计的度量大于或等于(或大
于)特定阈值,则修改输出 段值326(即,将其设置为输入段值的相反值)。在本发明的另一优选 实施例中,如果针对当前段请求的两个可能段值之一的概率估计的度 量大于(或大
于或等于)特定阈值,则将输出段值326设置为等于输入 段值325;如果针对当前段值的两
个可能段值之一的概率估计的度量小 于或等于(或小于)特定阈值,则修改输出段值326
(即,将其设置为 输入段值的相反值)。在本发明的优选实施例中,阈值的值对应于两个 可能段值的估计概率的值0.5。
[0089] 在本发明的另一优选实施例中,段缓冲器选择器318基于输入段 值325和对两个可能段值表示针对当前段请求的小概率或大概率段值 的估计加以指定的标识符,确定输
出段值326。在本发明的优选实施例 中,如果标识符指定两个可能段值中的第一可能段值
表示针对当前段 请求的小概率(或大概率)段值,则将输出段值326设置为等于输入段 值
325,如果标识符指定两个可能段值中的第二可能段值表示针对当前 段请求的小概率(或
大概率),则修改输出段值326(即,将其设置为 输入段值的相反值)。
[0090] 如上所述,段缓冲器选择器向两个或更多个段缓冲器320发送段 请求319。段缓冲器20表示先入先出缓冲器,馈有来自所连段解码器322 的解码段序列321。作为对从段缓冲器选择器318向段缓冲器320发送的 段请求320的响应,段缓冲器320去除首先馈送到段缓
冲器320中的内容 的段,并且向段缓冲器选择器318发送该段。较早地去除较早发送到段 
缓冲器320的段,并且向段缓冲器选择器318发送。
[0091] 两个或更多个段缓冲器320中的每一个正好与一个段解码器322 连接,并且每个段解码器仅与一个段缓冲器320连接。每个段解码器322 从分离的部分比特流324读取表示
比特序列的码字323。段解码器将码 字323转换成将发送到所连段缓冲器320的段序列321。
总体解码算法将 两个或更多个比特流324转换成多个解码语法元素,其中部分比特流的 
数目等于段缓冲器和段解码器的数目,并且对语法元素的解码由针对 新语法元素的请求
来触发。在本发明的优选实施例中,段解码器322 将可变数目的比特的码字323转换成可变数目段322的序列。本发明实 施例的一个优点在于,可以(例如,对于不同概率度量组)并行地进 行对来自两个或更多个部分比特流的段的解码,这降低了若干实现方 式的处理时
间。
[0092] 本发明实施例的另一优点在于,由段解码器322进行的段解码可 以针对不同参数集合317而特殊设计。具体地,可以针对不同组估计概 率来优化段编码和解码(在编码效率和/或复杂度方面)。在一个方面, 这相对于具有类似编码效率的现有技术熵编码算法能够实现编码/解 码复杂度的降低。在另一方面,这相对于具有类似编码/解码复杂度的 现有
技术熵编码算法实现了编码效率的提高。在本发明的优选实施例 中,段解码器322针对当
前段请求的两个可能段值317之一的概率估计 的不同度量组,实现不同解码算法(即,将段序列映射到码字)。在本 发明的另一优选实施例中,段解码器322针对当前段请求的小概率或大 概率段值的概率估计的不同度量组,实现不同解码算法。
[0093] 段解码器322进行编码器侧处对应段编码器的逆映射。
[0094] 在本发明的优选实施例中,段解码器322或一个或更多个段解码 器表示将码字323直接映射到段序列321的熵解码器。这样的映射可以 有效率地实现,并且不需要复杂的算术引擎。将码字映射到段序列必 须是唯一的。在本发明的优选实施例中,将码字323映射到段序列321 上是双向单射的。在本发明的另一优选实施例中,段解码器310或一个 或更
多个段解码器表示将可变长度码字323直接映射到可变长度段序 列321的熵解码器。在本
发明的优选实施例中,输入码字表示无冗余码, 例如,一般huffman码或标准huffman码。在表3中示出了针对无冗余码 的双向单射映射的两个示例。
[0095] 在本发明的另一优选实施例中,段解码器322或一个或更多个段 解码器表示将固定长度码字323直接映射到可变长度段序列321的熵解 码器。在本发明的另一优选实施例
中,段解码器322或一个或更多个段 解码器表示将可变长度码字323直接映射到固定长度
段序列321的熵解 码器。
[0096] 因此,图7和8示出了用于编码符号序列3的编码器和用于重构符 号序列的解码器的实施例。编码器包括分配器304,分配器304配置为 向符号序列的每个符号分配多个参数的305。该分配基于符号序列的先 前符号内包含的信息,例如语法元素1的类别至当前符号所属的且根据 语法元素1的语法结构当前期望的表示法(例如,二元化值),继而可 以从先前语法元素1和符号3推断出这种期望。此外,编码器包括多个 熵编码器10,每个熵编码器配置为将转发到相应熵编码器的符号3转换 成相应比特流312,并且包括配置为将每个符
号3转发到多个熵编码器 10中所选的一个熵编码器的选择器306,选择依赖于分配给相应
符号3 的参数305的数目。分配器应当考虑集成到选择器306中,以便获得相 应选择器502。
[0097] 用于重构符号序列的解码器包括:多个熵解码322,每个熵解码 器配置为将相应比特流323转换成符号321;分配器316,配置为向要基 于符号序列的先前重构符号(参见图
8中的326和327)内包含的信息而 重构的符号序列的每个符号分配多个参数317;以及选择
器318,配置 为从多个熵解码器322中所选一个熵解码器中获取要重构的符号序列 的每个
符号,选择依赖于分配到相应符号的参数的数目。分配器316 可以配置为,使得分配到每个符号的参数的数目包括或是相应符号可 以假定可能符号值之中分布概率估计的度量。同
样,分配器316和选择 器318可以考虑集成到一个块(选择器402)。要重构的符号序列可以
是 二元字母表,并且分配器316可以配置为,使得概率分布估计包括针对 二元字母表的两个可能段值的小概率或大概率段值的概率估计的度 量,以及对两个可能段值表示小概率
或大概率段值的估计加以指示的 标识符。分配器316还可以配置为,基于符号序列的先前
重构符号内包 含的信息,在内部向要利用具有与其相关联的相应概率分布估计的每 个上
下文而重构的符号序列315的每个符号分配上下文,并且基于被分 配了相应上下文先前重
构符号的符号值,使针对每个上下文的概率分 布估计适应实际符号统计。上下文可以考虑语法元素所属位置的空间 关系或邻域,例如,在视频或画面编码中,或者甚至在金融应用的表 (table)中。然后,可以基于与分配到(例如通过量化,或者用作至 相应表的索引)相应符号的上下文相关联的概率分布估计、与分配有 相应符号的上下文相关联的概率分布
估计(在以下实施例中,由pipe 索引连同精细索引一起指示)、和多个概率分布估计表示法之一(去掉 精细索引),确定针对每个符号的概率分布估计的度量,以便获得概率 分布估
计的度量(指示部分比特流312的pipe索引)。选择器可以配置 为,使得在多个熵编码器和
多个概率分布估计表示法之间定义双向单 射关联。选择器318可以配置为随时间根据符号
序列的先前重构符号, 按照预定确定方式将量化映射从概率分布估计改变到多个概率分
布估 计表示法。即,选择器318可以改变量化步长,即,映射到与单独熵解 码器双向单射地关联的单独概率索引上的概率分布的区间。多个熵解 码器322继而可以配置为响应于量化
映射的改变,来适应它们将符号转 换成比特流的方式。例如,每个熵解码器322可以针对相应概率分布估 计量化区间内的特定概率分布估计而优化(即,可以针对相应概率分 布估
计量化区间内的特定概率分布估计具有最优压缩率),并且可以改 变码字/符号序列映射,以便在码字/符号序列映射改变时适应相应概 率分布估计量化区间内该特定概率分布估
计的位置,以便优化。选择 器可以配置为改变量化映射,使得减少从多个熵解码器获取符号的速 率分散。对于二元化器314,应当注意如果语法元素已经是二元化值则 省去相同操作。此外,根据解码器322的类型,缓冲器320的存在不是 必要的。此外,缓冲器可以集成在解码器内。
[0098] 有限语法元素序列的终止
[0099] 在本发明的优选实施例中,针对有限语法元素集合进行编码和解 码。通常对特定量数据进行编码,例如,静止图像、视频序列的帧或 场、图像分片、视频序列的帧或场的分片、或连续视频样本集合等。 对于有限语法元素集合,通常在编码器侧创建的部分比特流必须终止, 即必须确保可以对来自发送或存储的部分比特流的所有语法元素进行 解码。
在将最后的段插入到对应段缓冲器308中之后,段编码器310必 须确保将完整的码字写入
到部分比特流312中。如果段编码器310表示 实现了比特序列到码字的直接映射的熵编码
器,则在将最后的段写入 到段缓冲器之后段缓冲器中存储的段序列可以不表示与码字相
关联的 段序列(即,可以表示与码字相关联的两个或更多个段序列的前缀)。 在这种情况
下,与包含段缓冲器中作为前缀的段序列在内的段序列相 关联的任一码字必须写入到部
分比特流中(必须成组写入的段缓冲 器)。这应当通过将具有特定或任意值的段插入到段
缓冲器中直到写入 码字为止来进行。在本发明的优选实施例中,段编码器选择具有最小 
长度的码字之一(除了关联的段序列必须包含段缓冲器中作为前缀的 段序列的属性以
外)。在解码器侧处,段解码器322可以部分比特流中 最后码字所需的段更多的段进行解
码;这些段不由段缓冲器选择器318 请求,并且被丢弃和忽略。通过针对解码语法元素的请求来控制对有 限语法集合的解码;如果没有请求一定量数据的其他语法元素,则解 码终
止。
[0100] 部分比特流的传输和复用
[0101] 可以分开传输由编码器创建的部分比特流312,或者可以将部分 比特流312复用成单个比特流,或者可以在单个比特流中交织部分比特 流的码字。
[0102] 在本发明的实施例中,将一定量数据的每个部分比特流写入到一 个数据分组中。数据量可以是任意语法元素集合,例如,静止画面、 视频序列的帧或场、静止画面的分片、视频序列的帧或场的分片、或 视频样本的帧等。
[0103] 在本发明的另一优选实施例中,一定量数据的两个或更多个部分 比特流或一定量数据的所有部分比特流复用成一个数据分组。在图9 中示出了包含复用的部分比特流的
数据分组的结构。
[0104] 数据分组400包括首部和针对每个部分比特流的数据(针对所考 虑的数据量)的一个分块。数据分组的首部400包含用于将数据分组(的 其余部分)分成比特流数据402的
区段的指示。除了用于分块的指示以 外,首部还可以包含附加信息。在本发明的优选实施例中,用于对数 据分组分块的指示是以比特或字节、或比特的倍数、或字节的倍数为 单位的数据区段的开始位置。在本发明的优选实施例中,将数据区段 的开始位置编码成数据分组的首部中相对于数据分组的开始、或者相 对于首部的结束、或者相对于先前数据分组的开始的绝对值。在本发 明的另一优选实施例中,有差别地对数据区段的开始位置进行编
码, 即,仅对数据区段的实际开始与数据区段开始的预测之间的差值进行 编码。可以基于已知或传输的信息(例如,数据分组的总体大小、首 部的大小、数据分组中数据区段的数
目、在前数据区段的开始位置) 导出预测。在解码器侧处,传输的分块指示用于导出数据区段的开始。 数据区段然后用于部分比特流,并且顺序地将数据区段中包含的数据 馈送到
对应段解码器中。
[0105] 存在用于将部分比特流复用成数据分组的若干备选方案。在图10 中示出了可以减少所需辅助信息的一个备选方案,具体针对部分比特 流的大小非常类似的情况。按照预定方式将数据分组的有效载荷(即, 没有其首部411的数据分组410)分成区段412。作为示
例,可以将数据 分组有效载荷分成相同大小的区段。然后将每个区段与部分比特流或 部
分比特流413的第一部分相关联。如果部分比特流大于关联的数据区 段,则将部分比特流
的剩余部分414放置到其他数据区段结束处的未使 用空间中。这可以按照逆序(从数据区
段的结束开始)插入比特流的 剩余部分的方式来进行,这减少了辅助信息。将部分比特流
的剩余部 分与数据区段相关联,并且当将多于一个剩余部分添加到数据区段时, 在比特
流内部(例如,在数据分组报头中)必须信号通知一个或更多 个剩余部分的开始点。
[0106] 可变长度码字的交织
[0107] 对于一些应用,上述将部分比特流(针对一定量语法元素)复用 成一个数据分组中部分比特流具有以下缺点:一方面,对于较小数据 分组,用于信号通知分块所需的辅助信息的比特数目相对于部分比特 流中的实际数据可以变得显著,这最终降低了编码效率。
另一方面, 复用不适合于需要低延迟的应用(例如,对于视频会议应用)。利用所 描述的复用,编码器在部分比特流已经完整创建之前不能开始传输数 据分组,这是因为预先不知道分块的开始位置。此外,通常,解码器 在开始对数据分组进行解码之前必须等待,直到接收到最后数据区段 的开始为止。对于作为视频会议系统的应用,这些延迟可以合计达到 若
干视频画面(具体地,对于接近传输比特率的比特率,以及对于需 要接近两个画面之间的
时间间隔来编码/解码画面的编码器和解码器) 的系统附加总延迟,这对于这样的应用至
关重要。为了克服特定应用 的缺点,本发明优选实施例的编码器可以配置为,使得将两个或更多 个段编码器产生的码字交织成单个比特流。(当忽略较小缓冲器延迟 时,参见以
下)可以向解码器直接发送具有交织码字的比特流。在解 码器侧处,两个或更多个段解码
器按照解码顺序从比特流直接读取码 字;解码可以开始于第一接收到的比特。此外,不需要附加信息来信 号通知部分比特流的复用(或交织)。可以实现降低解码器复杂度的另 一
方式:段解码器322不从全局比特缓冲器读取可变长度码字,,而是 段解码器322始终从全局比特缓冲器读取固定长度比特序列,并且将这 些固定长度比特序列添加到局部比特缓
冲器,其中,每个段解码器322 与分离的局部比特缓冲器连接。然后从该局部比特缓冲器中读取可变 长度码字。因此,可以并行地进行对可变长度码字的解析,仅必须按 照同步方式进行对固定长度比特序列的访问,但是这种对固定长度比 特序列的访问通常非常快,使得对于一些架构可以降低总体解码复杂 度。发送到特定局部比特缓冲器的段的固定数目可
以针对不同局部比 特缓冲器而不同,并且也可以根据特定参数(如段解码器、段缓冲器 或比特缓冲器中的事件)随时间而变化。然而,特定访问读取的比特 数目不依赖于特定访问
期间读取的实际比特,这是读取可变长度码字 的重要区别之处。读取固定长度比特序列由段缓冲器、段解码器或局 部比特缓冲器中的特定事件触发。作为示例,当在所连比特缓冲器中 出现的比特数目减少到预定阈值以下时,能够请求读取新的固定长度 比特序列,其
中不同阈值用于不同比特缓冲器。在编码器侧处,必须 确保按照相同顺序将固定长度段序列插入到比特流中,其中,在解码 器侧处从比特流中读取固定长度段序列。还能够将固定长度序列的这 种交织与类似于上述方案的低延迟控制相结合。在下文中,描述固定 长度
比特序列交织的优选实施例。对于关于后面的交织方案的进一步 细节,参照WO 2001/
128268 A1。
[0108] 在描述了在前编码用于压缩视频数据的实施例之后,描述用于实 现本发明实施例的又一实施例,在一方面压缩速率与另一方面查找表 和计算开销之间的良好折衷方面
呈现了特别有效率的实现方式。具体 地,以下实施例实现了计算量小的复杂可变长度编码的使用,以便对 单独比特流进行熵编码,并且高效地包含概率估计的部分。在下述实 施例中,符号具有二元属性,并且以下提出的VLC码有效率地包含在 例如[0;0.5]内延伸的RLPS表示的概率估计。
[0109] 具体地,以下概括的实施例描述了分别针对图7至17中的单独熵 编码器310和解码器322的可能实现方式。这些实现方式适合于段编码, 即,二元符号,就像它们出现在图像或视频压缩应用中一样。相应地, 这些实施例也可应用于图像或视频编码,其中,将这样的二元符号分 别拆分成要编码的一个或更多个段流307或要解码的比特流324,其中, 可
以将每个这样的段流视为Bernoulli过程的实现。以下描述的实施例 使用一个或更多个下
述多种所谓的可变到可变码(v2v码)来编码段流。 v2v码可以视为具有相同数目码字的两
个无前缀码(主无前缀码和副无 前缀码)。主无前缀码的每个码字与副无前缀码得一个码
字相关联。根 据以下概括的实施例,至少一些编码器310和解码器322操作如下:为 了编码特定段序列307,只要从缓冲器308读取主无前缀码的码字,就 可以向比特流312写入副无
前缀码的对应码字。使用相同过程来解码这 样的比特流324,但是主无前缀码和副无前缀
码可以互换。即,为了解 码比特流324,只要从相应比特流324读取副无前缀码的码字,就向缓 冲器320写入主无前缀码的对应码字。
[0110] 有利地,下述码不必成为查找表。码以有限状态机的形式可实现。 这里提出的v2v码可以由简单构造规则来实现,使得不需要存储针对码 字的较大表。取而代之,简单算法可以用于执行编码或解码。以下描 述三个构造规则,其中,可以对两个构造规则进行参数化。这些构造 规则包含上述概率区间的不同或者甚至分开部分,并且相应地如果在 一起使用尤其有利,例如所有三个码并行(各自针对编/解码器11和22 中不同的编/解码器),或者三个码中的两个。利用下述构造规则,能 够设计v2v码集合,使得对于具有任意概率p的Bernoulli处理,码之一 在过度码长度方面执行良好。
[0111] 如上所述,可以针对每个流单独地或者以交织方式分别执行流312和324的编码和解码。然而,这不专用于v2v码的当前类别,并因此 在下文中针对三个构造构造中的每一个仅描述对特定码字的编码和解 码。然而,重点在于,与交织解决方案有关的所有以上实施例也可分 别与当前描述的码或编码和解码器310和322相结合。
[0112] 构造规则1:‘一元段pipe’码或编/解码器310和322
[0113] 一元段pipe码(PIPE=概率区间分块熵)是所谓‘段pipe’码的特 殊版本,即,适合于任一单独比特流12和24的编码,二元符号统计的 每个传送数据术语上述概率范围[0;0.5]的特定概率子区间。首先描述 段pipe码的构造。可以根据具有至少三个码字的任一无前缀码来构造 段pipe码。为了形成v2v码,使用无前缀码作为主码和副码,但是副无 前缀码的两个码字可以互换。这意味着除了两个码字以外,将段写入 未改变的比特流。利用该技术,仅需要将一个无前缀码与信息存储在 一起,其中,两个码字互换,并因此降低了存储器消耗。注意,仅不 同长度的码字互换是有意义的,这是由于否则比特流应当具有与段流 相同的长度(忽略在段流结束处出现的效果)。
[0114] 由于这种构造规则,段pipe码的显著属性在于,如果主无前缀码 和副无前缀码互换(当保持码字映射时),生成的v2v码与原始v2v码相 同。因此,编码算法和解码算法对于段pipe码是相同的。
[0115] 一元pipe码根据特殊无前缀码来构造。如下构造该特殊无前缀码。 首先,以′01′,′001′,′0001′,...开始产生包括n个一元码字的无前缀码,直 到产生n个码字为止。n是一元段pipe码的参数。从最长码字,去除结 尾1。这对应于截短的一元码(但是没有码字′
0′)。然后,以′10′,′110′, ′1110′,...开始产生n-1个一元码字,直到产生n-1个码字。从这些码字中 的最长码字,去除结尾0。这两个无前缀码的并集用作输入,以产生一 元段pipe码。互换的两个码字是仅包括0的一个码字和仅包括1的一个 码字。
[0116] n=4的示例:
[0117]
[0118]
[0119] 构造规则2:‘一元至rice’码和一元至rice编/解码器10和22:
[0120] 一元至rice码使用截短一元码作为主码。即,以′1′,′01′,′001′,...开 始产生一元码字,直到产生2n+1个码字,并且从最长码字,去除结尾 1。n是一元至rice码的参数。如下根据主无前缀码的码字构造副无前 缀码。向仅包括0的主码字分配码字‘1’。所有其他码字包括码字‘0’ 与主无前缀码的对应码字的0的数目的比特二元表示的拼接。
[0121] n=3的示例:
[0122]
[0123] 注意,这与将无限一元码映射到具有rice参数2n的rice码相同。
[0124] 构造规则3:‘三段’码
[0125] 如下给出三段码:
[0126]
[0127]
[0128] 具有以下属性:主码(符号序列)具有固定长度(始终为三个段) 并且通过递增1的数目来对码字排序。
[0129] 接着描述三个段码的有效率实现方式。可以按照以下方式实现针 对三段码的编码器和解码器,而无需存储表。
[0130] 在编码器(10中的任一个)中,从段流(即,7)读取三个段。 如果这三个段包含正好一个1,则将码字‘1’写入包括1的位置的二元 表示)的两个段(从右以00开始之前的比特流。如果三个段正好包含 一个0,则将码字‘111’写入包括0的位置的二元表示的两个段(从右 以00开始)之前的比特流。将剩余的码字‘000’和‘111’分别映射 到‘0’和‘11111’。
[0131] 在解码器(22中的任一个),从相应比特流24读取一个段或比特。 如果该段或比特等于‘0’,则将码字‘000’解码到段流21。如果该段 或比特等于‘1’,则从比特流24读取多于两个段。如果这两个比特不 等于‘11’,则这两个比特解译为数目的二元表示,并且将两个0和一 个1解码到比特流,使得1的位置由该数目来确定。如果两个比特等于 ‘11’,则读取多于两个比特,并且解译为数目的二元表示。如果该数 目小于3,则对两个1和一个0解码,并且该数目确定0的位置。如果数 目等于3,则将‘111’解码到段流。
[0132] 接着描述二元段pipe码的有效率实现方式。可以通过使用计数器 来有效率地实现针对二元段pipe码的编码器和解码器。由于段pipe码的 结构,对段pipe码的编码和解码容易实现:
[0133] 在编码器(10中的任一个)中,如果码字的第一段等于‘0’,则 对段进行处理,直到出现‘1’,或者直到读取0(包括码字中的第一个 ‘0’)。如果出现‘1’,则将读取的段写入到为改变的比特流。否则(即, 读取n个0),将n-1个1写入到比特流。如果码字的第一段等于‘1’,则 对段进行处理,直到出现‘0’,或者直到读取n-1个1(包括码字的第 一个‘1’)。如果出现‘0’,将读取的段写入未改变的比特流。否则(即, 读取n-1个1),将n个0写入比特流。
[0134] 在解码器(322中的任一个)中,使用与编码器相同的算法,因 为这与如上所述的段pipe码相同。
[0135] 接着描述一元到rice码的有效率实现方式。如下所述,可以通过 使用计数器来有效率地实现一元到rice码的编码器和解码器。
[0136] 在编码器(310中的任一个)中,从段流(即,7)读取段,直到 出现1,或者直到读取n n2个0为止。对0的数目进行计数。如果所计数目 等于2 ,则将码字‘1’写入到比特流。否则,写入‘0’,后面是用n 个比特写入所计数目的二元表示。
[0137] 在解码器(322中任一个)中,读取一个比特。如果该比特等于 ‘1’,则将2n个0解码到段串。如果该比特等于‘0’,则读取多于n个 比特并且解译为数目的二元表示。将0的数目解码到段流,后面是‘1’。
[0138] 换言之,上述实施例描述了用于编码符号序列303的编码器,该 编码器包括:分配器316,配置为基于符号序列的先前符号内包含的信 息,向符号序列的每个符号分配多个参数305;多个熵编码器310,每 个熵编码器配置为将转发至相应熵编码器310的符号307转换成相应比 特流312;以及选择器306,配置为将每个符号303转发至多个熵编码器 10中所选的一个熵编码器,该选择依赖于分配给相应符号303的参数 305的数目。根据以上概括的实施例,熵编码器的至少第一子集可以是 可变长度编码器,可变长度编码器配置为将符号
307的流内的可变长度 符号序列分别映射到要插入到比特流312中的可变长度码字,其中,第 一子集中的熵编码器310中的每一个使用双向单射映射规则,根据该规 则将具有(2n-
1)≥3个码字的主无前缀码的码字映射到与主无前缀码 相同的副无前缀码的码字,使得将
主无前缀码的仅两个码字映射到副 无前缀码的相同码字,而主无前缀码和副无前缀码的
两个码字具有不 同长度,并且以互换方式映射到彼此,其中,熵编码器可以使用不同 的n,以包含上述概率区间中的区间的不同部分。第一无前缀码可以构 造为,使得第一无前缀码的码字是(a,b)2,(a,a,b)3,...,(a,...,a,b)n, (a,...,a)n,(b,a)2,(b,b,a)3,...,(b,...,b,a)n-1,(b,...,b)n-1,按照互换方式映射 到彼此的两个码字是(a,...,a)n和(b,...,b)n-1,其中,b≠a,并且a,b∈ {0,1}。然而,备选方式是可行的。
[0139] 换言之,熵编码器的第一子集中的每一个可以配置为,将转发至 相应熵编码器的符号转换成相应比特流,检查转发至相应熵编码器的 第一符号,以确定是以下情况(1)还
是情况(2):情况(1)第一符 号等于a∈{0,1},在这种情况下,相应熵编码器配置为检查转发至相 应熵编码器的后续符号以确定是情况(1.1)还是情况(1.2),在情况 (1.1)中,在第一符号之后的后续n-1个符号内出现b,其中b≠a,并 且b∈{0,1},在这种情况下,相应熵编码器配置为将码字写入相应比 特流,该比特流等于:第一符号,后面是转发至相应熵编码器的后续 符号,一直到符号b;在情况(1.2)中,在第一符号之后的后续n-1个 符号内没有出现b,在这种情况下,相应熵编码器配置为将码字写入相 应比特流,该比特流等于
(b,...,b)n-1;情况(2)第一符号等于b,在这 种情况下,相应熵编码器配置为检查转发至相应熵编码器的后续符号 以确定是情况(2.1)还是情况(2.2),在情况(2.1)中,在第一符号 之后的后续n-2个符号内出现a,在这种情况下,相应熵编码器配置为 将码字写入相应比特流,该比特流等于:第一符号,后面是转发至相 应熵编码器的后续符号,一直到符号a,在情况(2.2)中,在第一符 号之后的后续n-2个符号内没有出现a,在这种情况下,相应熵编码器 配置为将码字写入相应比特流,该比特流等于(a,...,a)n。
[0140] 附加或备选地,熵编码器10的第二子集可以是可变长度编码器, 配置为将可变长度符号序列分别映射到固定长度码字,其中第二子集 的熵编码器中的每一个使用双向单
射映射规则,根据该规则,将具有 类型{(a),(ba),(bba),...,(b...ba),(bb...b)}的个2n+1码字的主截断一 元码的码字映射到副无前缀码的码字,其中,b≠a并且a,b∈{0,1}, 使得将主截断一元码的码字(bb...b)映射到副无前缀码的码字(c),并 且将主截断一元码的
所有其他码字{(a),(ba),(bba),...,(b...ba)}映射到 具有(d)作为前缀(其中,c≠d并且c,d∈{0,1}),并且一个n比特 字作为后缀的码字,其中,熵编码器使用不同的n。熵编码器的第二子 集中的每一个可以配置为,使得n比特字是主截断一元码的相应码字中 b的数目
的n比特表示。然而备选方案是可行的。
[0141] 同样,从相应编码器10的操作模式的观点,熵编码器的第二子集 中的每一个可以配置为,将转发至相应熵编码器的符号转换成相应比 特流,对转发至相应熵编码器的符号序列中的b的数目进行计数,直到 出现a或者直到转发至相应熵编码器的符号序列的数目
达到2n为止,其 中,序列的所有2n个符号是b,以及(1)如果b的数目等于2n,则将c 作为副无前缀码的码字写入比特流,其中,c∈{0,1},并且(2)如果 b的数目小于2n,则将副无前缀码的码字写入到相应比特流,其中该码 字具有(d)作为前缀,以及根据b的数目而确定的n比
特字作为后缀, 其中c≠d并且d∈{0,1})。
[0142] 同样附加或备选地,熵编码器10中预定的一个熵编码器可以是可 变长度编码器,配置为将固定长度符号序列分别映射到可变长度码字, 预定熵编码器使用双向单射映射
规则,根据该规则,将主码的长度为3 的23个码字映射到副无前缀码的码字,使得将主码的码字(aaa)3映射到 码字(c)其中,a∈{0,1},c∈{0,1},将具有正好一个b的主码的所 有三个码字映射到具有(d)作为前缀并且2比特码字的第一集合之外 的相应第一2比特字作为
后缀的码字,其中,b≠a并且b∈{0,1},c≠d 并且d∈{0,1},将具有正好一个a的主码的所有三个码字映射到具有 (d)作为前缀、并且不是第一集合元素的第一2比特字和2比特字的
第 二集合之外的第二2比特字的拼接作为后缀的码字,其中将码字(bbb)3映射到具有(d)
作为前缀、并且不是第一集合元素的第一2比特字与 不是第二集合元素的第二2比特字的
拼接作为后缀的码字。正好具有一 个b的主码的码字的第一2比特字可以是b在主码的相应
码字中的位置 的2比特表示,并且正好具有一个a的主码的码字的第二2比特字可以是 a在
主码的相应码字中的位置的2比特表示。然而备选方式是可行的。
[0143] 同样,熵编码器中的预定一个熵编码器可以配置为,将转发至预 定熵编码器的符号转换成相应比特流,检查转发至预定熵编码器的符 号的三元组以确定是以下情况(1)、
情况(2)、情况(3)还是情况(4): 情况(1),三元组包括a,在这种情况下,预定熵编码器配置为向相应 比特流写入码字(c);情况(2),三元组正好包括一个b,在这种情况 下,预定熵编码器配置为向相应比特流写入具有(d)作为前缀、并且 b在三元组中的位置的2比特表示作
为后缀的码字;情况(3),三元组 正好包括一个a,在这种情况下,预定熵编码器配置为向相应比特流写 入具有(d)作为前缀、以及不是第一集合元素的第一2比特字与a在三 元组中
的位置的2比特表示的拼接作为后缀的码字;情况(4),三元组 包括b,在这种情况下,预定熵编码器配置为向相应比特流写入具有(d) 作为前缀、以及不是第一集合元素的第一2比
特字与不是第二集合元素 的第一2比特字的拼接作为后缀的码字。
[0144] 关于解码侧,上述实施例公开了用于重构符号序列326的解码器, 该解码器包括:多个熵解码器322,每个熵解码器配置为将相应比特流 324转换成符号321;分配器316,配置为基于符号序列的先前重构符号 内包含的信息,向符号序列的每个符号326分配多个参
数;以及选择器 318,配置为从多个熵解码器中的所选一个熵解码器中获取要重构的符 号序列的每个符号325,选择依赖于分配到相应符号的参数的数目。根 据上述实施例,熵解码器322的至少第一子集是可变长度解码器,配置 为将可变长度码字分别映射到可变长度符
号序列,其中第一子集的熵 解码器322中的每一个使用双向单射映射规则,根据该规则将
具有 (2n-1)≥3个码字的主无前缀码的码字映射到与主前缀码相同的副无 前缀码的码
字,使得将主无前缀码的仅两个码字映射到副无前缀码的 相同码字,而主无前缀码和副无前缀码的两个码字具有不同长度,并 且以互换方式映射到彼此,其中,熵编码器可以使用不同的n。第一无 前缀码可以构造为,使得第一无前缀码的码字是(a,b)2,(a,a,b)3,..., (a,...,a,b)n,(a,...,a)n,(b,a)2,(b,b,a)3,...,(b,...,b,a)n-1,(b,...,b)n-1,按照互 换方式映射到彼此的两个码字是(a,...,a)n和(b,...,b)n-1,其中,b≠a,并 且a,b∈{0,
1}。然而,备选方式是可行的。
[0145] 熵编码器的第一子集中的每一个可以配置为,在将相应比特流转 换成符号时,检查相应比特流的第一比特,以确定是以下情况(1)还 是情况(2):情况(1)第一比特等于a∈{0,1},在这种情况下,相应 熵解码器配置为检查相应比特流的后续比特以确定是情况
(1.1)还是 情况(1.2),在情况(1.1)中,在第一比特之后的后续n-1个比特内出 现b,其中b≠a,并且b∈{0,1},在这种情况下,相应熵解码器配置为 重构符号序列,该符号序列等于:
第一比特,后面是相应比特流的后 续比特,一直到比特b;在情况(1.2)中,在第一比特之后的后续n-1 个比特内没有出现b,在这种情况下,相应熵解码器配置为重构符号序 列,该符号序列等于(b,...,b)n-1;情况(2),第一比特等于b,在这种 情况下,相应熵解码器配置为检查相应比特流的后续比特以确定是情 况(2.1)还是情况(2.2),在情况(2.1)中,在第一
比特之后的后续 n-2个比特内出现a,在这种情况下,相应熵解码器配置为将重构符号 序
列,该符号序列等于:第一比特,后面是相应比特流的后续比特, 一直到符号a,在情况
(2.2)中,在第一比特之后的后续n-2个比特内 没有出现a,在这种情况下,相应熵解码器配置为重构符号序列,该符 号序列等于(a,...,a)n。
[0146] 附加或备选地,熵解码器322的至少第二子集可以是可变长度解 码器,配置为将固定长度码字分别映射到可变长度符号序列,其中第 二子集的熵解码器中的每一个使用
双向单射映射规则,根据该规则, 将副无前缀码的码字映射到具有类型{(a),(ba),
(bba),...,(b...ba), (bb...b)}的个2n+1码字的主截断一元码的码字,其中,b≠a并且a,b∈ {0,1},使得将副无前缀码的码字(c)映射到主截断一元码的码字 (bb...b),并且将具有(d)作为前缀(其中,c≠d并且c,d∈{0,1}) 和n比特字作为后缀的码字映射到主截断一元码的所有其他码字{(a), (ba),(bba),...,(b...ba)},其中,熵解码器使用不同的n。熵解码器的第 二子集中的每一个可以配置为,使得n比特字是主截断一元码的相应码 字中b
的数目的n比特表示。然而备选方案是可行的。
[0147] 熵解码器的第二子集中的每一个可以是可变长度解码器,配置为 将固定长度码字分别映射到可变长度符号序列,并且配置为,将相应 熵解码器的比特流转换成符号,检查相应比特流的第一比特以确定是 以下情况(1)还是情况(2):情况(1),第一比特等于c,其中,c∈ {0,1},在这种情况下,相应熵解码器配置为重构符号序列,符号序列 等于
(bb...b)2n,b∈{0,1};情况(2),第一比特等于d,其中,c≠d并 且c,d∈{0,1},在这种情况下,相应熵解码器配置为根据相应比特流 中第一比特之后的n个其他比特来确定n比特字,并且从中重构符号序 列,该符号序列具有类型{(a),(ba),(bba),...,(b...ba),
(bb...b)},其中, b≠a并且b∈{0,1},b的数目依赖于一个n比特字。
[0148] 同样附加或备选地,熵解码器322中预定的一个熵解码器可以是 可变长度解码器,配置为将可变长度码字分别映射到固定长度符号序 列,预定熵解码器使用双向单射映射规则,根据该规则,将副无前缀 码的码字映射到主码的长度为3的23个码字,使得将码字(c)映射到 主码的码字(aaa)3,其中,c∈{0,1},a∈{0,1},将具有(d)作为前 缀、以及三个
2比特码字的第一集合之外的相应第一2比特字作为后缀 的码字映射到具有正好一个b的
主码的所有三个码字,其中,c≠d并 且d∈{0,1},b≠a并且b∈{0,1},将具有(d)作为前缀以及不是第一 集合元素的第一2比特字和三个2比特字的第二集合之外的第二2比特 字的
拼接作为后缀的码字映射到具有正好一个a的主码的所有三个码 字,并且将具有(d)作为
前缀以及不是第一集合元素的第一2比特字 与不是第二集合元素的第二2比特字的拼接作
为后缀的码字映射到码 字(bbb)3。正好具有一个b的主码的码字的第一2比特字可以是b在
主码 的相应码字中的位置的2比特表示,并且正好具有一个a的主码的码字 的第二2比特
字可以是a在主码的相应码字中的位置的2比特表示。然而 备选方式是可行的。
[0149] 熵解码器中的预定一个熵解码器可以是可变长度解码器,配置 为,将可变长度码字分别映射到三个符号的符号序列,并且配置为在 将相应熵解码器的比特流转换成符号
时,检查相应比特流的第一比特 以确定以下是情况(1)、情况(2)、还是情况(3):情况(1),相应 比特流的第一比特等于c,其中,c∈{0,1},在这种情况下,预定熵解 码器配置为重构符号序列,该符号序列等于(aaa)3,其中,a∈{0,1}; 情况(2),相应比特流的第一比特等于d,其中,c≠d并且d∈{0,1}, 在这种情况下,预定熵解码器配置为根据相应比特流中第一比特之后 的2个其他比特来确定第一2比特字,并且检查第一2比特,以确定是情 况(2.1)
还是情况(2.2),在情况(2.1)中,第一2比特字不是三个2 比特的第一集合的元素,在这种情况下,预定熵解码器配置为重构符 号序列,该符号序列具有正好一个b,其中,b≠a并且b∈{0,1},其中b 在相应符号序列中的位置依赖于第一2比特字,在情况(2.2)中,第 一2比特字是第一集合的元素,在这种情况下,预定熵解码器配置为根 据相应比特流中两个比特(已经根据该两个比特确定了第一2比特)之 后的2个其他比特来确定第二2比特字,并且检
查第二2比特字来确定是 情况(3.1)还是(3.2),在情况(3.1)中,第二2比特字不是三个2 
比特字的第二集合的元素,在这种情况下,预定熵解码器配置为重构 符号序列,该符号序列具有正好一个a,其中,a在相应符号序列中的 位置依赖于第二2比特字,在情况(3.2)中,第二2比特字是三个2比 特字的第二集合的元素,在这种情况下,预定熵解码器配置为重构等 于(bbb)3的符号序列。
[0150] 现在,在描述了视频编码方案的一般构思之后,关于以上实施例 描述了本发明的实施例。换言之,以下概括的实施例可以通过使用以 上方案来实现,反之亦然,以上编码方案可以使用并利用以下概括的 实施例来实现。
[0151] 在关于图7至9描述的以上实施例中,图1至6的熵编码器和解码器 根据PIPE构思来实现。一个特殊实施例使用算术单概率状态编/解码器 310和322。如下所述,根据备选实施例,实体306-310和对应实体318 至322可以由公共熵编码引擎来代替。例如,算术编码引擎可以仅管理 一个公共状态R和L,并且将所有符号编码到一个公共比特流中,从而 放弃
了本PIPE构思与并行处理有关的有利构思,但是如下所述避免了 对部分比特流进行交织
的必要性。这样,通过更新(表查找)来估计 上下文概率的概率状态的数目可以大于执行概率区间再划分的概率状 态的数目。即,类似于在编索引到表Rtab之前对概率区间宽度值进行 量化,同样可以对概率状态索引进行量化。因此对于作为上下文自适 应二元算术编/解码引擎的熵编/解码器318-322/306-310的实现方式的 示例,可以对针对单个编/解码器
310和322的可能实现方式的以上描述 进行扩展。
[0152] 为了更加精确,根据实施例,附着至参数分配器外部(这里用作 上下文分配器)的熵编码器可以按照以下方式操作:
[0153] 0.分配器304将段值和概率参数一起转发。概率是 pState_current[bin]。
[0154] 1.因此,熵编码引擎接收:1)valLPS、2)段和3)概率分布估 计pState_current[bin]。pState_current[bin]可以具有比Rtab的可区分概 率状态索引的数目更多的状态。
如果是,则例如可以通过忽略m个LSB 来量化pState_current[bin],其中m大于或等于1(优选地,2或3),以 获得p_state,即然后用于访问表Rtab的索引。然而可以省去量化,即, p_state可以是pState_current[bin]。
[0155] 2.然后执行对R的量化(如上所述,针对p_state的所有可区分值 使用/管理的一个R(和具有一个公共比特流的对应L),或者p_state的 每个可区分值的一个R(和每R/L对
的具有关联部分比特流的对应L), 后一种情况对应于每个这样的值具有一个段编码器
310),q_index= Qtab[R>>q](或者一些其他形式的量化)
[0156] 3.然后,执行对RLPS和R的确定:
[0157] RLPS=Rtab[p_state][q_index];Rtab中已存储针对 p[p_state]·Q[q_index]的预先计算值
[0158] R=R-RLPS[即,对R进行初步预更新,如同“段”是MPS]
[0159] 4.计算新的部分区间:
[0160] if(bin=1-valMPS)then
[0161]
[0162]
[0163] 5.再归一化L和R,写入比特,
[0164] 类似地,附着至参数分配器(这里用作上下文分配器)的输出的 熵解码器可以按照以下方式操作:
[0165] 0.分配器304将段值和概率参数一起转发。概率是 pState_current[bin]。
[0166] 1.因此,熵解码引擎接收段请求以及:1)valLPS和2)概率分布 估计pState_current[bin]。pState_current[bin]可以具有比Rtab的可区分 概率状态索引的数目更多
的状态。如果是,则例如可以通过忽略m个 LSB来量化pState_current[bin],其中m大于或等于1(优选地,2或3), 以获得p_state,即然后用于访问表Rtab的索引。然而可以省去量化, 即,p_state可以是pState_current[bin]。
[0167] 2.然后执行对R的量化(如上所述,针对p_state的所有可区分值 使用/管理的一个R(和具有一个公共比特流的对应L),或者p_state的 每个可区分值的一个R(和每R/L对
的具有关联部分比特流的对应L), 后一种情况对应于每个这样的值具有一个段编码器
310),
[0168] q_index=Qtab[R>>q](或者一些其他形式的量化)
[0169] 3.然后,执行对RLPS和R的确定:
[0170] RLPS=Rtab[p_state][q_index];Rtab中已存储针对 p[p_state]·Q[q_index]的预先计算值
[0171] R=R-RLPS[即,对R进行初步预更新,就好像“段”是MPS]
[0172] 4.根据部分区间的位置确定段:
[0173] if(V3R)then
[0174] (将bin(段)解码为LPS;段缓冲器选择器 18通过使用该段信息和valMPS来获得实际段值)
[0175]
[0176]
[0177] else
[0178] (将bin(段)解码为MPS;通过使用该段信息 和valMPS来获得实际段值)
[0179] 5.再归一化R,读出一个比特并更新V,
[0180] 如上所述,分配器4向每个段分配pState_current[bin]。可以基于上 下文选择了进行关联。即,分配器4可以使用上下文索引ctxIdx来选择 上下文,上下文索引ctxIdx继而具有与其相关联的相应pState_current。 可以在每次概率pState_current[bin]已应用于
当前段时执行概率更新。 根据编码比特的值来执行概率pState_current[bin]的更新:
[0181] if(bit=1-valMPS)then
[0182] pState_current←Next_State_LPS[pState_current]
[0183] if(pState_current=0)then valMPS←1-valMPS
[0184] else
[0185] pState_current←Next_State_MPS[pState_current]
[0186] 如果提供多于一个上下文,则逐个上下文地进行适配,即, pState_current[ctxIdx]用于编码并然后使用(分别编码或解码的)当前 段值来更新。
[0187] 如以下更详细概括的,根据当前描述的实施例,可选地编码器和 解码器可以实现为在不同模式(即,低复杂度(LC)模式和高效率(HE) 模式)下操作。在下文中主要关于PIPE编码示出了这一点(然后涉及 LC和HE PIPE模式),但是对复杂度可缩放性细节的描述容易
地转换到 熵编码/解码引擎的其他实现方式,例如,使用一个公共上下文自适应 算术编/
解码器的实施例。
[0188] 根据以下概括的实施例,两个熵编码模式可以共享
[0189] ·相同语法和语义(分别针对语法元素序列301和327)
[0190] ·针对所有语法元素(如当前指定用于CABAC)的相同二元化方 案(即,二元化器可以与激活的模式无关地操作)
[0191] ·使用相同PIPE码(即,段编/解码器可以与激活的模式无关地操 作)
[0192] ·使用8比特概率模型初始化值(而不是当前指定用于CABAC的 16比特初始化值)
[0193] 一般而言,LC-PIPE在处理复杂度(例如为每个段选择PIPE路径 312的复杂度)方面与HE-PIPE不同。
[0194] 例如,LC模式可以在以下约束下操作:对于每个段(binIdx),可 以存在正好一个概率模型,即,一个ctxIdx。即,在LC PIPE中可以不 提供上下文选择/适配。然而,如下进一步概括的,可以使用上下文来 编码特定语法元素(例如,用于残差编码的那些语法元素)。
此外,所 有概率模式可以是非自适应的,即,所有模式可以(根据对分片类型 和分片QP的选择)在具有适当模型概率的每个分片的开始处初始化, 并且在整个分片处理期间保持固
定。例如,可以支持与8个不同PIPE 码310/322相对应的仅8个不同模型概率,以用于上下文建模和编码二 者。可以向概率模型分配用于残差编码的特定语法元素(即,significance_coeff_flag和coeff_abs_level_greaterX(其中,X=1,2))、以 下更详细概括的语义,使得利用相同模型概率对例如4个语法元素的组 (至少)进行编码/解码。与CAVLC相比,LC-PIPE模式粗略地实现了 相同R-D性能和相同吞吐量。
[0195] HE-PIPE可以配置为在构思上类似于H.264的CABAC,不同之处 如下:二元算法编码(BAC)由PIPE编码代替(在LC-PIPE情况下也 如此)。每个概率模型(即,每个ctxIdx)可以由pipeIdx和refineIdx来 表示,其中,值在从0到7范围中的pipeIdx表示8个不同PIPE码的模型 概率。这种改变仅影响状态的内部状态表示,而不影响状态机本身的 行为(即,概率估计)。如以下更详细概括的,概率模型的初始化可以 使用如上所述的8比特初始化值。可以沿着与正向扫描(例如,在显著 图编码中使用的)相同的扫描路径来对语法元素 coeff_
abs_level_greaterX(其中X=1,2),coeff_abs_level_minus3和 coeff_sign_flag(这些
语法元素的语义根据以下讨论变得更清楚)进行 后向扫描。也可以使用于编码coeff_abs_
level_greaterX(其中,X=1,2) 的上下文导出简化。与CABAC相比,所提出的HE-PIPE在以更好的吞 吐量粗略地实现了相同的R-D性能。
[0196] 容易看出,例如可以通过呈现上述上下文自适应二元算术编/解码 引擎来容易地产生上述模型,使得在不同模式下进行相同操作。
[0197] 因此,根据本发明第一方面的实施例,可以如图11所示构造用于 解码数据流的解码器。该解码器用于解码数据流401(例如交织的比特 流340),将诸如视频数据等媒体数据编码到数据流401中。解码器包括: 模式开关400,配置为根据数据流401来激活低复杂度模式或高效率模 式。为此,数据流401可以包括诸如二元语法元素等语法元素,在作为 要激活模式的低复杂度模式的情况下具有二元化值1,并且在作为要激 活的高效率模式的情况
下具有二元化值0。显然,应当切换二元化值和 编码模式之间的关联,并且也应当使用具有多于两个可能值的非二元 语法元素。由于在接收相应语法元素之前两个模式之间的实际
选择尚 不清楚,因此该语法元素可以包含在数据流401的一些前导首部内,例 如,这些前导首部利用固定概率估计或概率模型来编码,或者使用旁 路模式直接写入到数据流401
中。
[0198] 此外,图11的解码器包括多个熵解码器322,每个熵解码器配置 为将数据流401中的码字转换成部分符号序列321。如上所述,解交织 器404可以连接在一方面熵解码器322
的输入与另一方面应用了数据流 401的图11的解码器的输入之间。此外,如上所述,每个熵解码器322 可以与相应概率区间相关联,在熵解码器322处理MPS和LPS而不是绝 对符号值
的情况下,多个熵解码器的概率区间共同包含从0到1或从0 到0.5的整个概率区间。以上已经描述关于该问题的细节。稍后,假定 解码器322的数目是8,其中,向每个解码器分配PIPI索引,但是任一 其他数目也是可行的。此外,针对具有相同概率统计的段(即它们的 段值假定相同概率的1和0)来优化这些解码器之一(在下文中,示例 性地具有pipe_id 0的解码
器)。该解码器仅处理段。相应编码器310同 样操作。甚至可以省去选择器402和502分别进行的依赖于大概率段值 valMPS的任一段操控。换言之,相应部分流的熵已经是最优的。
[0199] 此外,图11的解码器包括:选择器402,配置为从多个熵解码器 322中所选的一个熵解码器获取符号序列326的每个符号。如上所述, 选择器402可以拆分成参数分配器316
和选择器308。解符号化器314配 置为对符号序列326解符号化,以便获得语法元素序列
327。重构器404 配置为基于语法元素序列327来重构媒体数据405。选择器402配置为根 据低复杂度模式和高效率模式中激活的一个模式(如箭头406所指示 的)来执行选择。
[0200] 如上所述,重构器404可以是对语法元素的固定(即,相对于模 式开关400的模式选择是固定的)语法和语义进行操作的基于预测块的 视频解码器的一部分。即,重构器404的构造不受模式可切换性的影响。 为了更精确,由于模式开关400负担的模式可切换性以
及至少与残差数 据有关的功能,重构器404不会增加实现开销,并且预测数据保持相同, 而与开关400选择的模式无关。然而这同样适应于熵解码器322。在两 个模式下重新使用所有这些解码器322,相应地尽管图11的解码器与两 个模式(低复杂度模式和高效率模式)可
兼容,但是不存在附加实现 开销。
[0201] 作为辅助方面,应当注意,图11的解码器不仅能够在一个模式或 另一个模式下对自含数据流进行操作。而且,图11的解码器以及数据 流401应当配置为,使得两个模式之间的切换在一个媒体数据期间(例 如,在视频或一些视频片期间)甚至是可能的,以便例如根据外部或 环境条件(例如,电池状态等)在解码侧处控制编码复杂度,其中使 用从解码器
到编码器的反馈通道,以便相应地环控制模式选择。
[0202] 因此,在选择LC模式或选择HE模式的情况下,图11的解码器在 两种情况下类似地操作。重构器404使用语法元素执行重构,并且通过 处理或遵守一些语法结构预定来请求
预定语法元素的当前语法元素。 解符号化器314请求多个段,以便获得针对重构器404请求的语法元素 的有效二元化。显然,在二元字母表的情况下,解符号化器314执行的 二元化缩减到仅将相应段/符号326传递至重构器404作为当前请求的 二元语法元素。
[0203] 然而,选择器402对模式开关400选择的模式进行单独操作。选择 器402的操作模式在高效率模式的情况下趋向于较高复杂度,并且在低 复杂度模式的情况下趋向于较低
复杂度。此外,以下讨论示出了较低 复杂度模式下选择器402的操作模式也趋向于降低选
择器402在熵解码 器322之间改变选择以从熵解码器322获取连续符号的速率。换言之, 在低复杂度模式下,从多个熵解码器322之中的相同熵解码器获取紧邻 的连续符号的概率增
大。这继而允许从熵解码器322更快速地获取符 号。在高效率模式下,继而选择器402的操作模式趋向于引起熵解码器 322之间的选择,其中,与相应所选熵解码器322相关联的概率间隔更 接近地适合于选择器402当前获取的符号的实际符号统计,从而在根据 高效率模
式产生相应数据流时在编码侧处获得更好的压缩比。
[0204] 例如,可以如下实现选择器402在两个模式下的不同行为。例如, 选择器402可以配置为,针对预定符号,根据激活高效率模式的情况下 符号序列326的先前获取符号并且
独立于激活低复杂度模式的情况下 符号序列的先前获取符号,在多个熵解码器322之间执
行解码。对符号 序列326的先前获取符号可以引起上下文自适应和/或概率自适应。可 以
在低复杂度模式期间在选择器402中关闭两个自适应。
[0205] 根据另一实施例,可以将数据流构造成连续部分,例如,分片、 帧、画面组、帧序列等,并且可以将符号序列的每个符号与多个符号 类型中的相应符号类型相关联。在这种情况下,选择器402可以配置为, 针对当前部分内预定符号类型的符号,根据激活高效率模式的情况下 当前部分内预定符号类型的符号序列的先前获取符号来改变选择,并 且在激活低复杂度模式的情况下省去在当前部分内恒定的选择。即, 可以允许选择器402针对预定
符号类型在熵解码器322之间改变选择, 但是限制这些改变在连续部分之间的过渡之间发
生。通过该措施,在 大部分时间内,在降低编码复杂度的同时将实际符号统计的评价限制 为很小出现。
[0206] 此外,可以将符号序列326的每个符号与多个符号类型中的相应 的一个符号类型相关联,并且选择器402可以配置为,针对预定符号类 型的预定符号,根据符号序列326的先前获取符号选择多个上下文之 一;根据与所选上下文相关联的概率模型来执行在熵解
码器322之间进 行选择,并同时根据在激活高效率模式的情况下的预定符号来更新与 所
选上下文相关联的概率模型;根据符号序列326的先前获取符号执行 选择多个上下文之
一,并根据与所选上下文相关联的概率模型执行在 熵解码器322之间进行选择并同时省去
在激活低复杂度模式的情况下 恒定的与所选上下文相关联的概率模型。即,选择器402可
以在两个模 式下使用与特定语法元素类型有关的上下文自适应,而同时在LC模式 的情况
下抑制概率适配。
[0207] 备选地,选择器402可以相对于HE模式仅降低LC模式的概率适配 的更新速率,而不完全抑制概率适配。
[0208] 此外,如下用其他方式描述可能LCpipe特定方面,即,LC模式方 面。具体地,应当在LC模式下使用非自适应概率模型。非自适应概率 模式可以具有硬编码的概率(即,总体恒定概率),或者其概率仅在整 个分片处理期间保持固定,并因此可以根据分片类型和QP
(即,针对 每个分片在数据流401内信号通知的量化参数)来设置。通过假定分配 到相同上下文的连续段遵循固定概率模型,由于使用相同pipe编码来 进行编码,能够以一个步骤来解码那些段中的若干段,即,使用相同 熵解码器,并且省略每个解码段之后的概率更新。省略概率更新节省 了编码和解码处理期间的操作,因此也引起硬件设计中的复杂度降低 和
显著简化。
[0209] 非自适应约束对于所有或一些所选概率模式是容易的,使得在使 用该模型编码/解码了特定数目的段之后允许概率更新。适当的更新间 隔在能够一次解码多个段的同时
实现了概率适配。
[0210] 在下文中,提供了LCpipe和HEpipe的可能的公共和复杂度可缩放 方面的更详细描述。具体地,在下文中,描述了可以按照相同方式或 复杂度可缩放方式用于LCpipe模式和HEpipe模式的方面。复杂度可缩 放意味着通过去除特定部分或者通过用较低复杂度的
内容代替特定部 分来从HE情况导出LC情况。然而,在进行之前,应当注意,图11的 实施例容易地转变到上述上下文自适应二元算术编/解码实施例:选择 器402和熵解码器322应当
缩合成上下文自适应二元算术解码器,该上 下文自适应算术解码器直接接收数据流401并
且为当前要从数据流导 出的段选择上下文。特别地,这对于上下文自适应和/或概率自适
应是 成立的。在低复杂度模式期间可以关闭或更轻松地设计两个功能/自适 应。
[0211] 例如,在实现图11的实施例时,包括熵解码器322的pipe熵编码级 能够使用8个系统可变到可变码,即,每个熵解码器322能够具有上述 v2v类型。通过限制v2v码的数目来简化使用系统v2v码的PIPE编码构 思。在上下文自适应二元算术解码器的情况下,同样能够
管理针对不 同上下文的相同概率状态,并且使用针对概率再划分的相同或量化版 本。将
CABAC或概率模型状态(即,用于概率更新的状态)映射到PIPE id或概率索引以在Rtab中查
找可以如表A所示。
[0212]
[0213]
[0214] 表A:CABAC状态到PIPE索引的映射
[0215] 该修改的编码方案可以用作复杂度可缩放视频编码方法的基础。 当执行概率模式适配时,选择器402或上下文自适应二元算术解码器相 应地选择PIPE解码器322,即,使用表A中示出的映射例如经由上下文, 基于与当前要解码的符号相关联的概率状态索引
(这里示例性地,从0 变化到62)将要使用的pipe索引和概率索引分别导入到Rtab中;并且 应当例如使用指向在MPS和LPS情况下分别要访问的下个概率状态索 引的特定表行进过渡
值,根据当前解码符号来更新该概率状态索引。 在LC模式的情况下,能够省去后一种更新。
甚至能够在全局固定概率 模型的情况下省去映射。
[0216] 然而,能够使用任意熵编码设置,并且可以通过较小的改变来使 用本文档中的技术。
[0217] 图11的以上描述一般参照语法元素和语义元素类型。在下文中, 描述变换系数级别的复杂度可配置编码。
[0218] 例如,重构器404可以配置为基于语法元素序列的一部分来重构 变换系数级别202的变换块200,而与激活的高效率模式或低复杂度模 式无关,语法元素序列327的一部
分以非交织方式包括:定义了显著图 的显著图语法元素,显著图指示非零变换系数级别在变换块200内的位 置,然后包括(后面是)定义了非零变换系数级别的级别语法元素。 具体地,包括以下元素:结束位置语法元素(last_significant_pos_x, last_significant_
pos_y),指示最后非零变换系数级别在变换块内的位 置;第一语法元素(coeff_
significant_flag)一起定义了显著图并且针 对沿着从变换块(200)内DC位置到最后非零
变换系数级别的位置的 一维路径(274)的每个位置,指示在相应位置处的变换系数级别是
否 是非零;第二语法元素(coeff_abs_greaterl),针对根据第一二元语法 元素定位非零
变换系数级别的一维路径(274)的每个位置,指示在相 应位置处的变换系数级别是否大于
1;以及第三语法元素 (coeff_abs_greater2,coeff_abs_minus3),针对根据第一二元语法元素 定位大于1的变换系数级别的一维路径的每个位置,揭示相应位置处的 相应变换系
数级别超过1的量。
[0219] 结束位置语法元素、第一、第二和第三语法元素之间的顺序对于 高效率模式和低复杂度模式可以相同,并且选择器402可以配置为针对 符号在熵解码器322之间执行选择,解符号化器314有区别地根据激活 的低复杂度模式或高效率模式,从符号获得结束位置语
法元素、第一 语法元素、第二语法元素和/或第三语法元素。
[0220] 具体地,选择器402可以配置为,针对符号序列之中预定符号类 型的符号,根据符号子序列之中预定符号类型的先前获取符号,为预 定符号类型的每个符号选择多个上下文之一,解符号化器314从该符号 子序列获得第一语法元素和第二语法元素;并且以分段
恒定方式执行 选择,使得在激活低复杂度模式的情况下,选择在子序列的连续子部 分上
是恒定的。如上所述,可以用位置的数目或者已经利用当前上下 文编码的相应类型的语法元素的数目来度量子部分,当沿着一维路径 274测量时相应子部分在多个位置上延伸。即,通过基于HE模式下选  定上下文的概率模型,自适应地对二元语法元素coeff_
significant_flag、 coeff_abs_greaterl和coeff_abs_greater2进行上下文编码。还使用概率 适配。在LC模式中,还存在用于每个二元语法元素 coeff_significant_flag、coeff_abs_greater1和coeff_abs_greater2的不同 上下文。然而,对于这些语法元素中的每一
个,上下文对于沿路径274 的第一位置保持静态,仅在至沿路径274下个后面紧邻部分的过渡处改 变上下文。例如,每个部分可以定义为块200的4、8、16个位置长,而 与相应位置是否存在相应语法元素无关。例如,仅显著位置(即, coeff_significant_flag为1的位置)存在coeff_abs_greaterl和 coeff_abs_greater2。备选地,每个部分可以定义为4、8、16个语法元 素长,而与因此生成的相应部分是否在更大数目的块位置上延伸无关。 例如,仅显著位置存在coeff_abs_greaterl和coeff_abs_greater2,并因 此四个语法元素的部分由于
沿路径274的其间位置而各自可以在多于4 个块位置上延伸,对于路径274不传输这样的语
法元素(例如,不传输 coeff_abs_greaterl和coeff_abs_greater2),因为该位置处的相应级别为 零。
[0221] 选择器402可以配置为,针对符号子序列之中预定符号类型的符 号,根据符号序列内预定符号类型的多个先前获取符号(具有预定符 号值并且属于相同子部分)或者符号
序列内预定符号类型的多个先前 获取符号(属于相同子部分),为预定符号类型的每个符
号选择多个上 下文之一,解符号化器从该符号子序列获得第一语法元素和第二语法 元
素。根据以上特定实施例,第一备选方案对于coeff_abs_greaterl是 成立的,第二备选方案对于coeff_abs_greater2是成立的。
[0222] 此外,第三语法元素可以包括整数值语法元素,即 coeff_abs_minus3,第三语法元素对于根据第一二元语法元素定位了多 于一个变换系数级别的一维路径的每个位置,
揭示相应位置处相应变 换系数级别超过1的量,解符号化器314可以配置为使用控制参数
可控 的映射函数来将符号序列字的域映射到整数值语法元素的域,并且如 果激活高效率
模式,则根据先前第三语法元素的整数值语法元素来设 置每个整数值语法元素的控制参
数,并且以分段恒定方式执行设置, 使得在激活低复杂度模式的情况下设置在子序列的连续子部分上恒 定,其中,选择器402可以配置为针对映射到整数值语法元素的符号序 列字的符号,在高效率模式和低复杂度模式二者下选择熵解码器(322) 的中预定的一个,该预
定的一个熵解码器与相等的概率分布相关联。 即,甚至解符号化器可以根据开关40选择的模式(虚线407所示)进行 操作。代替控制参数的分段恒定设置,解符号化器314可以在当前分片 期间保持控制参数恒定,例如,在时间上全局恒定。
[0223] 接着,描述复杂度可缩放上下文建模
[0224] 对用于导出上下文模型索引的上邻域和左邻域的相同语法元素 的评价是公知方法,并且通常在HE情况下使用,例如,用于运动矢量 差语法元素。然而,这种评价需要更多缓冲存储,并且不允许直接编 码语法元素。同样,为了实现较高编码性能,可以评价更多的可用邻 域。
[0225] 在优选实施例中,用于评价邻域方形或矩形块或预测单元的语法 元素的所有上下文建模级固定到一个上下文模型。这相当于禁用上下 文模型选择级的自适应。对于该优选实施例,与CABAC的当前设计相 比,不对二元化之后依赖于段串的段索引的上下文模型
选择进行修改。 在另一优选实施例中,除处理语法元素的固定上下文模型采用邻域评 价
以外,不同段索引的上下文模型也是固定的。注意,描述不包括二 元化和针对运动矢量差和与变换系数级的编码有关的语法元素的上下 文模型选择。
[0226] 在优选实施例中,仅允许评价左邻域。这引起处理链中缓冲器的 减少,因为不再必须存储最后块或编码单元线。在另一优选实施例中, 仅对位于相同编码单元中的邻域进行评价。
[0227] 在优选实施例中,对所有可用邻域进行评价。例如,除了上邻域 和左邻域以外,在可用的情况下可以评价左上、右上和左下邻域。
[0228] 即,图11的选择器402可以配置为,针对与预定媒体数据块有关 的预定符号,在激活高效率模式的情况下使用与更多数目的不同媒体 数据邻域块有关的符号序列的先前获取符号,以便选择多个上下文之 一,并且根据与所选上下文相关联的概率模型在熵解码器
322之间执行 选择。即,邻近块可以是时间和/或空间域的邻域。例如,在图1至3 中,空间邻近块是可见的。然后,选择器402可以响应于模式开关400 的模式选择,与LC模式相比,在HE模式的情况下基于与较高数目的 邻近块有关的先前获取符号或语法元素来执行恒定自适
应,从而降低 上述存储开销。
[0229] 接着,描述根据实施例的运动矢量差的复杂度降低编码。
[0230] 在H.264/AVC视频编解码器标准中,通过信号通知当前宏块的运 动矢量与中间运动矢量预测器的运动矢量之间的差(运动矢量差 -mvd)来传输与宏块相关联的运动矢量。
当CABAC用作熵编码器时, 如下编码mvd。将整数值mvd拆分成绝对值部分和符号部分。使用截 短的一元和三次Exp-Golomb(被称作生成段串的前缀和后缀)的组合 来对绝对值部分
进行二元化。使用上下文模型对截短的一元二元化有 关的段进行编码,而在旁路模式下对与Exp-Golomb有关的二元化值的 段进行编码,即,利用CABAC的固定概率0.5。一元二元化操作如下。 令mvd的绝对整数值为n,则生成的段串包括n个‘1’和一个结尾‘0’。 作为示例,令n=4,则段串为‘11110’。在截短一元码的情况下,存在 限值,并且如果值超过该限值,则段串包括n+1个1。对于mvd的情况, 限值等于9。这意味中,如果编码等于或大于9的绝对
mvd,则生成9 个‘1’,段串包括具有Exp-Golomb二元化的前缀和后缀。如下进行针 对截短一元部分的上下文建模。对于段串的第一段,如果可用则采用 来自上邻域宏块和左邻域宏块的绝对mvd值(如果不可用,则推断该 值为0)。如果沿特定分量(水平或垂直方向)的和大于2,则选择第二 上下文模型,如果绝对值和大于32,则选择第三上下文模型,否则(绝 对值和小于3),则选择第一上下文模型。此外,上下文模型针对每个 分量而不同。对于段串的第二段,使用第四上下文模型,并且第五上 下文模型用于一元部分的剩余段。当绝对mvd等于或大于9时,例如, 截短一元部分的所有段等于‘1’,利用三次Exp-Golomb二元化在旁路 模式下编码绝对mvd值与9之间的差。在最后步骤中,在旁路模式下编 码mvd的符号。
[0231] 在高效率视频编码(HEVC)项目的当前测试模型(MH)中指定 AC作为熵编码器时针对mvd的最新编码技术。在HEVC中,块大小是 可变的,并且运动矢量指定的形状被称作预测单元(PU)。上邻域和 左邻域的PU大小可以具有与当前PU不同的形状和大小。因此,只要 相关,现在将上邻域和左邻域的定义称作当前PU的左上角上邻域和左 邻域。对于编码本身,可以根据实施例仅改变第一段的导出处理。代 替评价来自邻域的MV的绝对值和,可以分别评价每个邻域。如果邻 域的绝对值和可用并大于16,则上下文模型索引可以递增,获得针对 第一段的相同数目的上下文模型,而对剩余绝对值MVD级别和符号的 编码正好与
H.264/AVC相同。
[0232] 在与mvd的编码有关的以上概括技术中,不得不利用上下文模型 对高达9个段进行编码,而同时可以在低复杂度旁路模式在将mvd的剩 余值和符号信息一起编码。本实施
例描述了一种技术,减少了用上下 文模型编码的段的数目,引起旁路数目的增加,并且减少了编码mvd 所需的上下文模型数目。为此,截除的值从9个减少到1或2个。这意味 着,如果使用上下文模型对指定了绝对值mvd是否大于零的第一段进 行编码,或者使用上下文模
型对指定了绝对值mvd是否大于零和1的第 一和第二段进行编码,而同时在旁路模式下和/
或使用LVC码对剩余值 进行编码。使用低复杂度旁路模式对使用VLC码(而并非使用一元或 截短一元码)由二元化产生的所有段。在PIPE的情况下,直接插入或 来自比特流是可能的。
此外,如果需要,可以使用用于导出第一段的 更好上下文模型选择的上邻域和左邻域的定义。
[0233] 在优选实施例中,Exp-Golomb码用于对绝对MVD分两大的剩余 部分进行二元化。为此,Exp-Golomb码的顺序是可变的。如下导出 Exp-Golomb码的顺序。在针对第一段的上下文模型之后,导出并编码 该上下文模型的索引,该索引用作Exp-Golomb二元化部分的顺序。在 该优选实施例中,针对第一段的上下文模型从1变化到3,获得索引0-2, 索引0-2用作Exp-Golomb码的顺序。该优选实施例可以用于HE情况。
[0234] 在编码绝对值MVD时使用2乘5个上下文的以上概括技术的备选 方式中,为了对9个一元码二元化段进行编码,还可以使用14个上下文 模型(每个分量7个上下文)。例如,当如上所述利用4个不同上下文对 一元部分的第一和第二段进行编码时,第五上下文能够用
于第三段, 并且关于第四段能够使用第六上下文,而使用第七上下文对第五到第 九段进
行编码。因此,在这种情况下,甚至需要14个上下文,并且可 以低复杂度旁路模式下仅对剩余值进行编码。减少利用上下文模型编 码的段数目以引起旁路数目增加并且减少编码MVD
所需的上下文模 型数目的技术意在减小截除值,例如,从9到1或2。这意味着,使用上 下文模型仅对指示了绝对值MVD是否大于零的第一段进行编码,并且 应当使用相应上下文模型
对指示了绝对值MVD是否大于零和1的第二 段进行编码,而同时利用VLC码对剩余值进行编
码。使用低复杂度旁 路模式对使用VLC码由二元化产生的所有段进行编码。在PIPE的情况 下,直接插入或来自比特流是可能的。此外,所提出的实施例使用上 邻域和左领域的另一定义,来导出第一段的更好上下文模型选择。除 此之外,对上下文建模进行修改,使得减少第一或第一和第二段所需 的上下文模型数目,从而引起进一步缩减存储器。同样,可以禁用对 邻域(例如,以上邻域)的评价,引起节省了存储邻域的mvd值所需 的线缓冲器/存储
器。最后,以按照允许编码两个分离的前缀段(即, 利用上下文模型编码的段)然后编码旁路段的方式来拆分分量的编码 顺序。
[0235] 在优选实施例中,Exp-Golomb码用于对绝对值mvd分量的剩余部 分进行二元化。为此,Exp-Golomb码的顺序是可变的。可以如下导出 Exp-Golomb码的顺序。在针对第一段的上下文模型之后,导出上下文 模型的索引,该索引用作Exp-Golomb二元化的顺序。在该优选实施例 中,针对第一段的上下文模型从1变化到3,获得索引0-2,索引0-2用 作Exp-
Golomb码的顺序。该优选实施例可以用于HE情况并且上下文 模型的数目减少到6。为了再
次减少上下文模型的数目并因此节省存储 器,在另一优选实施例中水平和垂直分量可以
共享相同上下文模型。 在这种情况下,仅需要3个上下文模型。此外,在本发明的另一实施例 中仅考虑左邻域来进行评价。在该优选实施例中,可以不修改阈值(例 如,仅单个阈值
16获得Exp-Golomb参数0或1,或者单个阈值32获得 Exp-Golomb参数0或2)。该优选实施例
节省了存储mvd所需的线缓冲 器。在另一优选实施例中,修改阈值并且等于2和16。对于该优选实施 例,总共需要3个上下文模型来编码mvd,并且可能的Exp-Golomb参数 从0变化到
2。在另一优选实施例中,该阈值等于16和32。同样,所描 述的实施例适合于HE情况。
[0236] 在本发明的另一优选实施例中,截断值从9减小到2。在该优选实 施例中,使用上下文模型对第一段和第二段进行编码。对第一段的上 下文模型选择可以如在现有技术中
进行,或者按照以上优选实施例中 描述的方式来修改。对于第二段,如在现有技术中选择分离上下文模 型。在另一优选实施例中,通过评价左邻域的mvd来选择针对第二段 的上下文模型。对于这种情况,上下文模型索引与针对第一段的上下 文模型索引相同,而可用上下文模型与针对第一段的上下文模型不同。 总共需要6个上下文模型(注意,分量共享上下文模型)。同样, Exp-Golomb参数可以依赖于所选的第一段上下文模型索引。在本发明 的另一优选实施例中,Exp-Golomb参数依赖于第二段的上下文模型索 引。所描述的本发明实施例可以用于HE情况。
[0237] 在本发明的另一优选实施例中,针对两个段的上下文模型是固定 的,并非通过评价左邻域或上邻域来导出。对于该优选实施例,上下 文模型的总是等于2。在本发明的另一优选实施例中,第一段和第二段 共享相同上下文模型。因此,需要仅一个上下文模型来编码mvd。在 本发明的两个优选实施例中,Exp-Golomb参数可以是固定的,并且等 于1。所描述的本发明优选实施例适合于HE和LC配置二者。
[0238] 在另一优选实施例中,可以独立于第一段的上下文模型索引来导 出Exp-Golomb部分的顺序。在这种情况下,H.264/AVC的一般上下文 模型选择的绝对和用于导出Exp-
Golomb部分的顺序。该优选实施例可 以用于HE情况。
[0239] 在又一优选实施例中,Exp-Golomb码的顺序是固定的并设置为0。 在另一优选实施例中,Exp-Golomb码的顺序是固定的并设置为1。在 优选实施例中,Exp-Golomb码的顺序固定到2。在另一实施例中, Exp-Golomb码的顺序固定到3。在另一实施例中,根据当前PU的形状 和大小来固定Exp-Golomb码的顺序。所提出的优选实施例可以用于LC 情况。注意,随着利用上下文模型编码的段数目减少,考虑固定的 Exp-Golomb部分顺序。
[0240] 在优选实施例中,如下定义邻域。对于以上PU,考虑包括当前PU 的所有PU,并且使用具有最大MV的PU。对于左邻域也可以进行上述。 对包括当前PU的所有PU进行评价,并且使用具有最大MV的PU。在另 一优选实施例中,来自包括当前PU的上边界和左边界的所有PU的平 均绝对运动矢量值用于导出第一段。
[0241] 对于以上提出的优选实施例,能够如下改变编码顺序。必须针对 水平方向和垂直方向逐一地指定mvd(或反之亦然)。因此,必须对两 个段串进行编码。为了最小化用于熵编码引擎的模式切换(即,旁路 模式和正常模式之间的切换)次数,能够在第一步骤针对两个分量对 利用上下文模型编码的段进行编码,随后在第二步骤中对旁路模式编 码的段进行
编码。注意,这仅是一种重新排序。
[0242] 请注意,由一元或截短的一元二元化产生的段也可以由每段索引 一个标志的等同固定长度二元化来表示,该标志指示该值是否大于当 前段索引。作为示例,将针对mvd的截短一元二元化的截除值设置为2, 对于值0、1、2获得码字0、10、11。在具有每段索引一个标志的对应 固定长度二元化中,段索引0(即,第一段)的一个标志指示绝对mvd 值是否大
于0,并且具有段索引1的第二段的一个标志指示绝对mvd值 是否大于1。当第一标志等于1
的情况下仅编码第二标志时,这获得相 同码字0、10、11。
[0243] 接着,描述根据实施例的概率模型内部状态的复杂度可缩放表 示。
[0244] 在HE-PIPE设置中,在利用HE-PIPE设置编码段之后更新概率模 型的内部状态。使用编码段的旧状态和值通过状态过渡表查找来导出 更新的状态。在CABAC的情况下,概率
模型可以采用63种不同状态, 其中,每个状态对应于间隔(0.0,0.5)的模型概率。这种状态中的每 一个用于实现两个模型概率。除了分配到状态的概率以外,也使用1.0 减去该概
率。被称作valMps的标志存储是否使用该概率或1.0减去该概 率的信息。这获得总共126个状态。为了使用这种具有PIPE编码构思 的概率模型,需要将126个状态中的每一个映射到
可能PIPE编码器之 一。在PIPE编码器的当前实现方式中,这通过使用查找表来进行。在 表A中示出了这种映射的示例。
[0245] 在下文中,描述如何表示概率模型的内部状态以免使用查找表将 内部状态转换成PIPE索引的实施例。仅需要一些简单比特掩蔽操作来 从概率模型的内部状态变量中提
取PIPE索引。按照两级方式设计这种 新颖的概率模型内部状态的复杂度可缩放表示。对于强制低复杂度操 作的应用,仅使用第一级。仅描述用于编码或解码关联段的pipe索引 和
标志valMps。在所描述的PIPE熵编码方案中,第一级可以用于在8 个不同模型概率之间进
行区分。因此,第一级应当需要针对pipeIdx的 3个比特,以及针对valMps标志的另一比特。
利用第二级,将第一级的 每个粗概率范围精炼到若干较小区间,较小区间以较高分辨率支持概 率表示。这种更详细的描述实现了概率估计器更精确操作。通常,这 种更详细的描述适合于目的在于高RD性能的编码应用。作为示例,如 下示出了通过使用PIPE的概率模型内部状态的这种复杂度可缩放表 示。
[0246]
[0247] 第一和第二级存储在单个8比特存储器中。需要4个比特来存储第 一级(在最高有效位上用MPS的值定义PIPE索引的索引),另外4个比 特用于存储第二级。为了实现CABAC概率估计器的行为,每个PIPE 索引具有特定数目的允许精细索引,特定数目依赖于在PIPE索引上映 射多少CABAC状态。例如,对于表A中的映射,在表B中示出了每个 PIPE索引的CABAC状态的数目。
[0248]
[0249] 表B:针对表A的示例每个PIPE索引的CABAC状态的数目。
[0250] 在段的编码或解码处理期间,可以通过采用简单比特掩码或比特 移位操作来直接访间PIPE索引和valMps。低复杂度编码处理仅需要第 一级的4个比特,高效率编码处理
可以附加地利用第二级的4个不同来 执行对CABAC概率估计器的概率模型更新。为了执行
该更新,可以设 计状态过渡查找表,具有与原始表相同的状态过渡,但是使用状态的 复杂度可缩放二级表示。原始状态过渡表包括2乘63个元素。对于每个 输入状态,该原始状态过渡表包含两个输出状态。当使用复杂度可缩 放表示时,状态过渡表的大小不超过2乘128个元素,这是可接受的表 大小增加。这种增加依赖于使用多少个比特来表示精细索引并且精确 模仿CABAC概率估计器的行为,需要4个比特。然而,能够使用不同 的概率估计器,可以对缩减的CABAC状态集合进行操作,使得对于每 个pipe索引,允许不多于8个状态。因此,通过适应用于表示精细索引 的比特数目,将存储器消耗与编码处理的给定复杂度级相匹配。
与利 用CABAC的模型概率内部状态(其中,存在64个概率状态索引)相比, 避免使用表查找将模型概率映射到特定PIPE码,并且不需要其他转 换。
[0251] 接着,描述根据实施例的复杂度可缩放上下文模型更新。
[0252] 为了更新上下文模型,可以基于一个或更多个先前编码段来更新 其概率状态索引。在HE-PIPE设置中,在对每个段编码或解码之后进 行该更新。相反,在LC-PIPE设置中,可以不再进行该更新。
[0253] 然而,能够按照复杂度可缩放方式来进行上下文模型的更新。即, 是否更新上下文模型的判定可以基于多个方面。例如,编码器设置仅 对于特定上下文模型(例如,语法元素coeff_significant_flag的上下文 模型)不进行更新,并且对于索引其他上下文模型始
终进行更新。
[0254] 换言之,选择器402能够配置为,对于多个预定符号类型中的每 一个类型的符号,根据与相应预定符号相关联的相应概率模型,在熵 解码器322之间执行选择,使得预定符号类型的数目在低复杂度模式下 低于高效率模式下的预定符号类型的数目。
[0255] 此外,例如用于控制是否更新上下文模型的准则能够是,比特流 分组的大小,目前为止已解码的段数目,或者仅在对上下文模型的特 定固定或可变数目的段进行编码之
后进行更新。
[0256] 利用该判定是否更新上下文模型的方案,可以实现复杂度可缩放 上下文模型更新。允许增大或减小比特流中要更新上下文模型的段的 部分。更新的上下文模型数目越
多,编码效率越好并且计算机复杂度 越高。因此,可以利用所描述的方案来实现复杂度可缩放上下文模型 更新。
[0257] 在优选实施例中,针对除了语法元素coeff_significant_flag、 coeff_abs_greaterl和coeff_abs_greater2以外的所有语法元素的段进行 上下文模型更新。
[0258] 在另一优选实施例中,针对语法元素coeff_significant_flag、 coeff_abs_greaterl和coeff_abs_greater2的段进行上下文模型更新。
[0259] 在另一优选实施例中,当开始对分片进行编码或解码时针对所有 上下文模型进行上下文模型更新。在处理了特定预定数目个变换块之 后,针对所有上下文模型禁用上下文模型更新,直到分片结束为止。
[0260] 例如,选择器402可以配置为,针对预定符号类型的符号,根据 与预定符号类型相关联的概率模型,在熵解码器322之间执行选择,同 时更新或不更新关联概率模型,使得符号序列的学习阶段的长度在低 复杂度模式下比在高效率模式下短,在符号序列的学习阶段,将对预 定符号类型的符号的选择连同更新一起执行。
[0261] 另一优选实施例与先前描述的实施例相同,但是其使用上下文模 型的内部状态的复杂度可缩放表示,使得一个表存储所有上下文模型 的“第一部分”(valMps和
pipeIdx),第二表存储所有上下文模型的“第 二部分”(refineIdx)。此时,如果针对所有上下文模型禁用上下文模 型更新(如在先前优选实施例中所述),则不再需要并且可以丢弃
用于 存储“第二部分”的表。
[0262] 接着,描述根据实施例的针对段序列的上下文模型跟踪
[0263] 在LC-PIPE配置中,将类型coeff_significant_flag、 coeff_abs_greaterl和coeff_abs_greater2的语法元素的段分组到子集 中。对于每个子集,单个上下文模型用于编码其段。在这种情况下, 可以在对该序列的固定数目段进行编码之后进行上下文模型更新。在 下文中这表示为多段更新。然而,该更新可以与仅使用最后编码段和 上下文模型的内部状态的更新不同。例如,对于已编码的每个段,进 行一个上下文模型更新步骤。
[0264] 在下文中,给出了用于对包括8个段的示例子集进行编码的示例。 字母‘b’表示对段的解码,字母‘u’表示上下文模型的更新。在LC-PIPE 情况下,仅进行段解码,而无需进行上下文模型更新:
[0265] b b b b b b b b
[0266] 在HE-PIPE情况下,在对每个段解码之后,进行上下文模型更新:
[0267] b u b u b u b u b u b u b u b u
[0268] 为了一定程度地降低复杂度,可以在段序列之后进行上下文模型 更新(在该示例中,在每4个段之后,进行这4个段的更新):
[0269] b b b b u u u u b b b b u u u u
[0270] 即,选择器402可以配置为,针对预定符号类型的符号,根据与 预定符号类型相关联的概率模型,在熵解码器322之间执行选择,同时 更新或不更新关联概率模型,使得将预定符号类型的符号的选择连同 更新一起执行的频率在低复杂度模式下比在高效率模式下低。
[0271] 在这种情况下,在对4个段解码之后,基于刚刚解码的4个段进行 4个更新步骤。注意可以通过使用查找特殊查找表在一个单个步骤中进 行这四个更新步骤。在四个传统更新步骤之后,该查找表针对4个段与 上下文模型的每种可能内部状态的每种可能组合,存
储生成的新状态。
[0272] 在特定模式下,多段更新用于语法元素coeff_significant_flag。对 于所有其他语法元素的段,不使用上下文模型更新。将在进行多段更 新步骤之前编码的段的数目设置为n。当集合中的段数目不可被n除尽 时,1到n-1个段在最后的多段更新之后保持在子集结束处。数目n可以 是大于1的任一正数。除了针对coeff_significant_flag、coeff_abs_
greaterl和coeff_abs_greater2的任一组合(而不是仅针对 coeff_significant_flag更
新)进行多段更新以外,另一模式能够与先前 模式相同。因此,该模式应当比其他模式更复杂。能够将所有其他语 法元素(其中,不使用多段更新)划分成两个拆开子集,其中,对于 子集中的一个,使用单个段更新,并且对于其他子集码不使用上下文 模型更新。任一可能拆开子集是有效的(包括空子集)。
[0273] 在备选实施例中,多段更新能够基于就在多段更新步骤之前编码 的最后m个段。m可以是小于n的任一自然数。因此,类似于以下进行 解码:
[0274] b b b b u u b b b b u u b b b b u u b b b b...
[0275] 其中n=4,m=2
[0276] 即,选择器402可以配置为,针对预定符号类型的符号,根据与 预定符号类型相关联的概率模型在熵解码器322之间执行选择,同时基 于预定符号类型的m个最新符号每第n预定类型符号更新关联的概率 模型,使得比率n/m在低复杂度模式下比在高效率模式下
高。
[0277] 在另一优选实施例中,对于语法元素coeff_significant_flag,如上 针对HE-PIPE配置所述使用局部模板的上下文建模方案可以用于向语 法元素的段分配上下文模
型。然而,对于这些段而言,不使用上下文 模型更新。
[0278] 此外,选择器402可以配置为,针对预定符号类型的符号,根据 符号序列的先前获取符号的数目,选择多个上下文之一,并且根据与 所选上下文相关联的概率模型在熵解码器322之间执行选择,使得上下 文数目和/或先前获取符号的数目在低复杂度模式下比在高效率模式 下低。
[0279] 使用8比特初始化值的概率模型初始化
[0280] 本节描述了使用所谓的8比特初始化值代替两个8比特值的概率 模型的复杂度可缩放内部状态的初始化处理,如现有技术视频编码标 准H.265/AVC中的情况。该初始化处
理包括两个部分,这两个部分等 同于H.264/AVC的CABAC中用于概率模型的初始化值对。两个部分表 示线性方程的两个参数,以计算概率模型的初始状态,表示来自QP的 特定概率
(例如,以PIPE索引的形式):
[0281] ·第一部分描述了斜率,并且采用内部状态相对于在编码或解码 期间使用的量化参数(QP)的相关性。
[0282] ·第二部分在给定QP和valMps处定义了PIPE索引。
[0283] 两个不同模式可用于使用给定初始化值来初始化概率模型。第一 模式是表示的QP无关初始化。第一模式仅使用针对索引QP的初始化 值的第二部分中定义的PIPE索引和
valMps。这等同于斜率等于0的情 况。第二模式是表示的QP相关初始化,并且附加地使用初始化值的第 一部分的斜率,以改变PIPE索引并且定义精细索引。如下示出了8比 特初始化值的两个部分:
[0284]
[0285] 这两个部分包括两个4比特部分。第一部分包含指向按照数组存 储的16个不同预定斜率中的一个斜率的索引。预定斜率包括7个负斜率 (斜率索引0-6),等于零的一个斜率(斜率索引7)、和8个正斜率(斜 率索引8-15)。表C中描述了这些斜率。
[0286]斜率索引 0 1 2 3 4 5 6 7
斜率值 -239 -143 -85 -51 -31 -19 -11 0
斜率索引 8 9 10 11 12 13 14 15
斜率值 11 19 31 51 85 143 239 399
[0287] 表C:
[0288] 用因子265缩放所有值以免使用浮点运算。第二部分是在概率区 间p=0和p=1之间实现递减valMps=1的概率的PIPE索引。换言之,PIPE 编码器必须以比PIPE编码器n-1高的模型概率操作。对于每个概率模 型,PIPE概率索引是可用的,并且识别概率区间包含针对QP=26概率 为PvalMPs=1的PIPE编码器。
[0289]PIPE概率索引 0 1 2 3 4 5 6 7
PIPE编码器 UR5 UR4 UR3 UR2 TB BP2 BP3 EP
MPS 0 0 0 0 0 0 0 0
PIPE概率索引 8 9 10 11 12 13 14 15
PIPE编码器 EP BP3 BP2 TB UR2 UR3 UR4 UR5
MPS 1 1 1 1 1 1 1 1
[0290] 表D:初始化值的第二部分到PIPE编码器和valMps的映射:UR=一元至rice 码,TB=三段码,BP=段pipe码,EP=相等概率(未编码)
[0291] 需要QP和8比特初始化值通过计算y=m*(QP-QPref)+256*b 形式的简单线性方程来计算概率模型内部状态的初始化。注意m定义 通过使用斜率索引从表C中获取的斜率(8
比特初始化值的第一部分), b表示QPref=26处的PIPE编码器(8比特初始化值的第二部
分:“PIPE 概率索引”)。然后,如果y大于2047,则valMPS是1并且pipeIdx等于 (y-2048)>>8。否则,valMPS是0并且pipeIdx等于(2047-y)>>8。如 果valMPS等于1,则精细索引等于(((2047-y)&255)*numStates)>> 8。在两种情况下,numStates等于pipeIdx的CABAC状
态的数目。
[0292] 以上方案不仅可以与PIPE编码器相结合地使用,也可以与上述 CABAC方案相结合使用。在没有PIPE的情况下,每PIPE Idx的CABAC 状态(即,其间在概率更新时执行状态过渡的概率状态)的数目(即, pState_current[bin]的相应最高有效位)仅是一组参数,该组参数事实 上实现了依赖于QP的CABAC状态的分段线性内插。此外,在参数 numStates针对
所有PIPE Idx使用相同值的情况下实质上禁用该分段线 性内插。例如,对于所有情况将
numStates设置为8获得总共16*8个状 态,对于valMPS等于1将精细索引的计算简化为((y-
2048)&255)>>5, 或对于valMPS等于0简化为((2047-y)&255)>>5。对于这种情况,将使 用using valMPS、PIPE idx和refinement idx的表示映射回到H.264/AVC 的CABAC使用的
表示非常简单。将CABAC状态给定为(PIPE Idx<<3) +refinement Idx。以下关于图16进
一步描述了这方面。
[0293] 除非8比特初始化值的斜率等于零或者除非QP等于26,否则必须 通过采用线性方程和编码或解码处理的QP来计算内部状态。在斜率等 于零或者当前编码处理的QP等于26
的情况下,8比特初始化值的第二 部分可以直接用于初始化概率模型的内部状态。否则,可以进一步利 用生成的内部状态的小数部分,通过特定PIPE编码器的限值直接的线 性内插
来确定高效率编码应用中的精细索引。在本优选实施例中,通 过简单地将小数部分与可用于当前PIPE编码器的精细索引的总数相 乘并且将结果映射到最接近的整数精细索引,来
执行线性内插。
[0294] 概率模型内部状态的初始化处理能够关于PIPE概率索引状态的 数目而变化。具体地,如下能够避免两次出现使用PIPE编码器E1的相 同概率模式,即,使用两个不同PIPE索引在值为1或0的MPS之间区分。 同样,能够在开始解析分片数据期间调用该处理,并且该处理的输入 能够是表E中所示的8比特初始化值,对于每个要初始化的上下文模型 在比特
流内传输该8比特初始化值。
[0295] 表E:概率模型的8比特initValue的设置
[0296]
[0297] 前4个比特定义了斜率索引并且通过掩蔽比特b4-b7来获取。对于 每个斜率索引,在表中指定和显示斜率(m)。
[0298] 表F:slopeIdx的变量m的值
[0299]slopeIdx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
m -239 -143 -85 -51 -31 -19 -11 0 11 19 31 51 85 143 239 399
[0300] 8比特初始化值的比特b0-b3、后4个比特标识probIdx,并且描述 预定QP下的概率。probIdx0指示值为0的最高符号概率,并且相应地, probIdx14指示值为1的最高符号概率。表G针对每个probIdx示出了对 应的pipeCoder及其valMps。
[0301] 表G:初始化值的后4个比特部分到PIPE编码器和valMps的映射: UR=一元至rice码,TB=三段码,BP=段pipe码,EP=相等概率(未编 码)
[0302]probIdx 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
pipeCoder UR5 UR4 UR3 UR2 TBC BP2 BP3 EP BP3 BP2 TBC UR2 UR3 UR4 UR5 valMps 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
[0303] 利用两个值,通过使用类似于y=m*x+256*b的线性方程来进行 内部状态的计算,其中,m表示斜率,x表示当前分片的QP,b从如以 下描述所示的probIdx导出。用因子256来缩放该处理中的所有值,以 免使用浮点运算。该处理的输出(y)表示当前QP下概率模式的
内部 状态并且存储在8比特存储器中。如表G所示,内部状态包括valMPs、 pipeIdx和
refineIdx。
[0304] 表H:概率模型内部状态的设置
[0305]
[0306] 对refineIdx和pipeIdx的分配类似于CABAC概率模型的内部状态 (pStateCtx)并且存在于表H中。
[0307] 表I:pipeIdx、refineIdx和pStateCtx的分配
[0308]
[0309] 在优选实施例中,在QP26处定义probIdx。基于8比特初始化值, 如以下伪码中描述地处理概率模型的内部状态(valMps、pipeIdx和 refineIdx):
[0310]
[0311] 如伪码所示,通过pipeIdx的区间之间的线性内插并且将结果量化 到对应refineIdx来计算refineIdx。偏移指定每个pipeIdx的refineIdx的总  数。将
fullCtxState/256的区间[7,8)分成两半。将区间[7,7.5)映射到pipeIdx=0和valMps=0,并且将区间[7.5,8)映射到pipeIdx=0和 valMps=1。图15示出了导出内部状态的处理并
且显示fullCtxState/256 到pStateCtx的映射。
[0312] 注意,斜率指示probIdx与QP的相关性。如果8比特初始化值的 slopeIdx等于7,则生成的概率模型内部状态对于所有分片QP是相同 的,因此,对内部状态的初始化处理与分片的当前QP无关。
[0313] 即,选择器402可以使用对所使用的量化步长QP加以指示的语法 元素,对要在数据流(例如,整个数据流或下个分片)的后续部分解 码中使用的pipe索引进行初始化,以便使用该语法与元素作为所有将 该部分的数据(例如,其中包含的变换系数级别)量化到对
于两个模 式(LC和HE)公共的表中。诸如表D等表可以包括针对每种符号类型 的pipe索引,相应参考QPref,或者针对每种符号类型的其他数据。根 据当前部分的实际QP,选择器可以使用实际QP和QP本身编索引的相 应表条目a来计算pipe索引值,例如,通过将a与(QP-
QPref)相乘。LC 和HE模式的唯一不同之处在于:与HE模式相比,选择器在LC模式的 情况下仅以较低精度计算结果。例如,选择器可以仅使用计算结果的 整数部分。在HE模式下,较高精度的其余部分(例如,小数部分)用 于选择较低精度或整数部分指示的相应pipe索引的
可用精细索引之 一。在HE模式下使用精细索引(潜在地,在LC模式下也更少),以便 例如通过使用上述表行进来执行概率适配。当离开上限处当前pipe索 引的可用索引时,接着通过最小化精细索引来选择更高pipe索引。当 离开下限处当前pipe索引的可用索引时,接着通过将精细索引最大化 到可用于新pipe索引的最大索引,来选择下个较低pipe索引。pipe索引 连同精细索引引起定义概率状态,但是对于部分流之间的选择,选择 器仅使用pipe索
引。精细索引仅用于更紧密地或者以更细精度跟踪概 率。
[0314] 然而,以上讨论还示出了可以使用如图12所示的解码器与图7-17 的PIPE或CABACA编码构思无关地实现复杂度可缩放性。图12的解码 器用于解码数据流601(数据流
601中编码了媒体数据),并且包括:模 式开关600,配置为根据数据流601激活低复杂度模式或高效率模式; 以及解符号化器602,配置为使用控制参数可控的映射函数,对直接或 通过该熵解码例如从数据流601中获得的符号序列603进行解符号化, 以获得整数值语法
元素604,映射函数用于将符号序列字的于映射的整 数值语法元素的共同域。重构器605配置为基于整数值语法元素来重构 媒体数据606。解符号化器602配置为执行解符号化,使得控制参数在 激活高效率模式的情况下以第一速率根据数据流变化,并且控制参数 恒定而
与数据流无关,或者在激活低复杂度模式的情况下以低于第一 速率的第二速率根据数据
流改变,如箭头607所示。例如,控制参数可 以根据先前解符号化的符号而改变。
[0315] 使用图12的方面来实现以上实施例中的一些。例如,在解符号化 器314中根据407所示的选定模式对序列327内的语法元素 coeff_abs_minus3和MVD进行二元化,并且重构
器605使用这些语法元 素进行重构。显然,容易地图11和12的两个方面可结合,但是图12的 方面也可以与其他编码环境相结合。
[0316] 例如,参见上述运动矢量差编码。解符号化器602可以配置为, 使得映射函数使用截短一元码来在截除值以下的整数值语法元素的域 的第一区间内执行映射,并且在不包括截除值和截除值以上的整数值 语法元素的域的第二区间内,执行针对截除值的截短一
元码形式的前 缀与VLC码字形式的后缀的组合,其中,解码器可以包括:熵解码器 608,配置为通过改变概率估计使用熵解码从数据流601中导出截短一 元码的多个第一段并且使
用恒定相等概率旁路模式导出VLC码字的多 个第二段。在HE模式下,熵编码可以比LC编码
更复杂,如箭头609所 示。即,可以在HE模式下应用并且在LC模式下抑制上下文自适应和/ 或概率适配,或者可以在其他方面缩放复杂度,如以上关于多个实施 例陈述的。
[0317] 在图13中示出了用于将媒体数据编码到数据流中适合图11的解 码器的编码器。该编码器可以包括:插入器500,配置为在数据流501 中信号通知低复杂度模式或高效率模式的激活;构造器504,配置为将 媒体数据505重新编码到语法元素序列506中;符号化器
507,配置为将 语法元素序列506符号化成符号序列508;多个熵编码器310,每个熵编 码器配置为将部分符号序列转换成数据流的码字;以及选择器502,配 置为将符号序列508的每个符号转发到多个熵编码器310中所选的一 个,其中选择器502配置为根据低复杂度模式
和高效率模式中激活的一 个模式(如箭头511所示)执行选择。可选地,提供交织器510用于对 编码器310的码字进行交织。
[0318] 在图14中示出了用于将媒体数据编码到数据流中适合于图12的 解码器的编码器,该编码器包括:插入器700,配置为在数据流701内 信号通知低复杂度模式或高效率模式的激活;构造器704,配置为将媒 体数据705重新编码到包括整数值语法元素的语法元素序列706;以及 符号化器707,配置为使用控制参数可控制的映射函数对整数值语法元 素
进行符号化,映射函数用于将整数值语法元素的域映射到符号序列 字的共同域,其中,符号化器707配置为执行符号化,使得控制参数在 激活高效率模式下以第一速率根据数据流
而变化,并且控制参数恒定 而与数据流无关,或者在激活低复杂度模式的情况下以低于第一速率 的第二速率根据数据流而改变,如箭头708所示。将符号化结果编码到 数据流701
中。
[0319] 同样,应当注意,图14的实施例容易地可转变到上述上下文自适 应二元算术编/解码实施例:选择器509和熵编码器310应当缩合成上下 文自适应二元算术解码器,该上下文自适应算术编码器应当直接输出 数据流401并且为当前要从数据流导出的段选择上下
文。特别地,这对 于上下文自适应和/或概率自适应是成立的。在低复杂度模式期间可以 关闭或更轻松地设计两个功能/自适应。
[0320] 简要地,以上已经注意到,根据备选实施例可以省去关于以上实 施例中的一些说明的模式切换能。为了使得这一点更清楚,参照图 16,图16概述了图16的实施例与以上实施例的区别仅在于去除模式切 换能力情况下的以上描述。此外,以下描述揭示了由以下产生的优点: 使用例如与H.264相比针对斜率和偏移较少的精确参数来初始化上下 文的
概率估计。
[0321] 具体地,图16示出了用于从数据流401中解码视频的解码器,其 中使用语法元素327的二元化将语法元素327编码到数据流401中。重点 应注意,在以上描述中,图1-15提供的整个细节也可转变成图16中所 示的实体,例如,只要涉及解符合化器314、重构器404和熵解码器409 的功能。然而,为了完整起见,以下再次概括这些细节中的一些。
[0322] 解码器包括:熵解码器409,配置为根据数据流401的先前解码部 分,通过在不同上下文之间选择上下文并更新与不同上下文相关联的 概率状态,使用二元熵解码来从数
据流401中导出二元化值的多个段 326。为了更精确,如上所述,熵解码器409可以配置为使用二元熵解 码(例如,上述CABAC方案)或二元PIPE解码,即使用包括若干并行 操作的熵解码器322以及相应选择器/分配器的构造,从数据流410中导 出二元化值的多个段326。只要涉及上下文选择,可以如上概括地实现 上下文选择与数据流401的先前解码部分的相关
性。即,熵解码器可以 配置为根据以下各项执行针对当前要导出的段的上下文选择:当前要 导出的段所属二元化值内当前要导出的段的段位置;语法元素的语法 元素类型,语法
元素的整数值是通过对当前要导出的段所属的二元化 值进行解二元化而获得的;或先前
从数据流401导出的一个或更多个段 或先前解二元化的语法元素的整数值。例如,选择的
上下文在特定语 法元素的二元化值的第一和第二段之间可以不同。此外,可以针对不 同
语法元素类型(例如,变换系数级别、运动矢量差、编码模式参数 等)提供不同组上下文。
[0323] 只要涉及概率状态更新,熵解码器409就可以配置为通过从与针 对126个概率状态内当前导出的段而选择的上下文相关联的当前概率 状态过渡到126个概率状态之间根
据当前导出的段的新概率状态,针对 当前导出的段执行相同操作。如上所述,例如,熵解码器409可以使用 当前状态和当前导出的段值来访问表条目,其中所访问表条目揭示了 新
概率状态。参见以上表,除了以上所列其他步骤0至5以外,熵解码 器参照表查找执行Next_State_LPS和Next_State_MPS。在以上描述中, 概率状态有时表示为pState_current
[bin]。同样如上所述,熵解码器409 可以配置为通过以下操作来对当前要导出的段进行二元算数解码:对 表示当前概率区间的当前概率区间比特值(R)进行量化,以获得概 率区间索引q_index;并且通过使用概率区间索引和概率状态索引p_state在表条目(Rtab)之间给
表条目编索引来执行区间再划分,以 获得将当前概率区间再划分成两个部分区间,概率状态索引依赖于与 针对要导出的段而选择的上下文相关联的当前概率状态。如上所述, 熵
解码器409可愿意使用当前概率区间宽度值R的8比特表示。微粒对 当前概率宽度值进行量
化,例如熵解码器409可以获取出8比特表示两 个或三个最高有效位。
[0324] 熵解码器409然后可以基于来自当前概率区间内部的偏移状态值 在两个部分区间之间执行选择,更新概率区间宽度值和偏移状态值, 并且使用所选部分区间推导当前要导出的段值,并且执行更新概率宽 度值和偏移状态值(即,以上描述中的V)的再归一化,包括从数据 流401中连续读取比特。如上所述,基于偏移状态值V的两个部分区间 之间的选
择可以涉及R与V之间的比较,而概率区间宽度值和偏移状态 值的更新可以依赖于当前要
导出的段值。
[0325] 继续描述图16,解码器还包括:解符号化器314,配置为对语法 元素327的二元化值进行解二元化,以获得语法元素的整数值。图16 的解码器还包括的重构器404然后使用
量化参数QP基于语法元素的整 数值来重构视频405。例如,如上所述,重构器404可以使用量化参数 以预测方式进行操作,以便设置表示预测残差的精度(例如,表示预 测残差的变换版本的变换系数级别)。如上所述,熵解码器409配置为 在126个概率状态之间进行区分。
即,pState_current[bin]与valMPS的 指示(即,0和1之间(即,可能符号状态之间)的MBS指示)相结合 能够假定126个不同状态。熵解码器409根据量化参数的线性方程(即, 根据QP+d的方程)对于不同上下文相关联的概率状态(即,针对不同 可用上下文的pState_
current)初始化。应当注意,pState_current实际 上仅指示LSB的概率。因此,QP+d揭示了即pState_current和valMPS二 者,即两个状态是MSB和LBS的指示。同时QP+d指示特定符号(即, 1或0)的概率,QP+d是否大于63的事实直接指示了0还是1是MSB。熵 解码器126针对每个不同上下文,从相应8比特初始化值的前4个比特部 分和后4个比特部分(即,一方面四个MSB和另一方面较低的四个LSB) 导出线性方程的斜率a偏移b。在这方面,熵解码器409可以配置为在视 频分片开始时对于不同上下文相关联的概率状态进行初始化。例如, 熵解码
器可以配置为针对视频的每个分片单独确定量化参数。即,熵 解码器409可以从数据流401中导出与如何设置针对每个分片的量化参 数有关的信息。然后,使用斜率和偏移,使用相应分片的相应量化参 数,在每个分片的开始处设置概率估计。例如“在分片的开始处”可 以意味着“对要使用任一上下文熵解码的第一段进行提取解码”。具体 地,熵解码器409可以配置为通过从数据流401读取当前分片的量化参 数QP并根据当前分片的量化参数的线
性方程对与不同上下文相关联 的概率状态进行初始化,来在视频分片开始处初始化与不
同上下文相 关联的概率状态,其中,熵解码器可以针对每个分片从相同相应8比特 初始化值的前4个比特部分和后4个比特部分中导出线性方程的斜率和 偏移。即,当量化参数QP在视频分片之间变化时,斜率和偏移对不变。
[0326] 如上所述,重构器404可以以预测方式进行操作。相应地,重构 器404在基于语法元素327的整数值重构视频405时,使用量化参数QP 对语法元素包括的变换系数级别进行
解量化,执行重新变换回到解量 化的变换系数级别以获得预测残差,执行空间和/或时间
预测以获得预 定信号,并且将预测残差和预测信号相组合以重构视频405。
[0327] 为了呈现特定示例,熵解码器409可以配置为,针对不同上下文 中的每一个,例如通过如上所述的表查找或者备选地使用诸如线性运 算等独立算术运算,从彼此独立的前4个比特部分和后4个比特部分中 导出斜率和偏移。即,为了跨过一方面8比特初始化值的两个4比特部 分的4个比特与另一方面126个不同概率状态值之间的间隔,熵解码器 409可以
单独将两个4比特部分代入线性方程。例如,通过计算斜率=m ·p+n将8比特初始化值p的
MSB转换成斜率,并且8比特初始化值q的 四个LSB用于计算偏移,偏移=s·q+t。适当地将
m、n、t和s选为常数。 仅出于完整起见,图17示出了适合于图16的解码器的编码器,其中, 图17的编码器几乎对应于与图11的解码器对应的图16的解码器类似方 式的编码器的其他
实施例的构造,即除了省去模式切换能力并且在更 一般方面(包括PIPE方面或诸如上述
CABAC方面等另一方面)实现熵 编码器513。除此之外,以上关于图16提供的所有描述也同
样可转变到 图17。
[0328] 尽管在装置的上下文中描述了一些方面,然而应清楚,这些方面 也表示对相应方法的描述,其中模块或设备对应于方法步骤或方法步 骤的特征。类似地,在方法步骤的上下文中描述的方面也表示对相应 装置的相应模块或项目或特征的描述。方法步骤的一些
或全部可以由 (利用)硬件装置来执行,例如,微处理器、可编程计算机或电路。 在一些实施例中,最重要的方法步骤中的某一个或更多个可以由这样 的装置来执行。
[0329] 本发明的编码信号可以存储在数字存储介质上或者可以在诸如 无线传输介质或有线传输介质等传输介质(例如,互联网)上传输。
[0330] 根据特定实现方式需求,本发明的实施例可以以硬件或软件来实 现。可以使用数字存储介质来实现,例如,软盘、DVD、蓝光、CD、 ROM、PROM、EPROM、EEPROM或闪存,在所述数字存储介质上 存储有电可读控制信号,所述电可读控制信号与可编程计算机系统协 作
(或能够与之协作),使得执行相应的方法。因此,数字存储介质可 以是计算机可读的。
[0331] 根据本发明的一些实施例包括一种具有电可读控制信号的数据 载体,所述电可读控制信号能够与可编程计算机系统协作使得执行本 文描述的方法之一。
[0332] 通常,本发明的实施例可以被实现为一种具有程序代码的计算机 程序产品,所述程序代码操作用于在所述计算机程序产品运行于计算 机上时执行方法之一。所述程序代
码可以例如存储在机器可读载体上。
[0333] 其他实施例包括存储在机器可读载体上的用于执行本文描述的 方法之一的计算机程序。
[0334] 换言之,本发明方法的实施例因此是具有程序代码的计算机程 序,所述程序代码用于在计算机程序运行于计算机上时执行本文描述 的方法之一。
[0335] 因此,本发明方法的另外的实施例是一种数据载体(或数字存储 介质,或计算机可读介质),包括记录在所述数据载体上的计算机程序, 所述计算机程序用于执行本文描
述的方法之一。所述数据载体、数字 存储介质或记录介质典型地是实体的和/或非暂时性
的。
[0336] 因此本发明方法的另外的实施例是一种表示计算机程序的数据 流或信号序列,所述计算机程序用于执行本文描述的方法之一。数据 流或信号序列可以例如被配置为经
由数据通信连接(例如,经由互联 网)来传送。
[0337] 另外的实施例包括一种处理装置,例如计算机或可编程逻辑器 件,配置为或适于执行本文描述的方法之一。
[0338] 另外的实施例包括一种计算机,所述计算机上安装有用于执行本 文描述的方法之一的计算机程序。
[0339] 根据本发明的另外的实施例包括一种装置或系统,配置为向接收 机(例如,电学地或光学地)传送用于执行本文描述的方法之一的计 算机程序。接收机可以例如是计算
机、移动设备、存储设备等。所述 装置或系统可以例如包括用于向接收机传送计算机程序的文件服务 器。
[0340] 在一些实施例中,可以使用可编程逻辑器件(例如,现场可编程 阵列)来执行本文描述的方法的功能中的一些或全部。在一些实施 例中,现场可编程门阵列可以与微处理器协作以执行本文描述的方法 之一。通常,方法优选地由任意硬件装置来执行。
[0341] 上述实施例仅用于说明本发明的原理。应理解,本领域技术人员 将清楚本文描述的布置和细节的修改和变型。因此,本发明的原理仅 由待审权利要求的范围来限定,而不是由本文中通过描述和说明实施 例来体现的特定细节来限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈