具有增强cabac解码的视频解码器的制造方法

文档序号:7993017阅读:201来源:国知局
具有增强cabac解码的视频解码器的制造方法
【专利摘要】一种解码器接收包含量化系数的比特流并且使用上下文自适应二元算术编码来解码比特流,量化系数表示视频块,视频块表示多个像素。上下文自适应二元算术编码包括至少两个解码模式,第一模式基于以与正被解码的当前语法元素为基础的概率估计来解码比特流,第二模式不基于以与正被解码的当前语法元素为基础的概率估计来解码比特流。如果当前语法元素是帧内编码的,并且使用所述第一模式选择是否使用帧内预测模式列表来解码帧内预测模式,则上下文自适应二元算术编码使用第一模式来解码当前语法元素,其中所述帧内预测模式列表基于先前确定的帧内模式来确定。上下文自适应二元算术编码使用第二模式来解码指示当前块的帧内预测模式的数据。
【专利说明】具有增强CABAC解码的视频解码器【技术领域】
[0001]本发明涉及具有增强的用于编码和/或解码的CABAC的图像解码。
【背景技术】
[0002]现有的视频编码标准(例如,H.264/AVC)通常以增加计算复杂度为代价来提供相对高的编码效率。随着计算机复杂度的增加,编码和/或解码速度趋向减小。同样,对增加较高保真度的期望随时间趋向增加,这趋向于需要越来越大的存储器要求和越来越多的复杂处理。
[0003]参照图1,许多解码器(和编码器)接收(并且编码器提供)针对图像块的编码数据。典型的,将图像划分成块,并且以某种方式(例如,使用离散余弦变换(DCT))来编码每个块,并且提供给解码器。解码器接收编码块,并且以某种方式(例如使用离散余弦逆变换)来解码每个块。
[0004]视频编码标准(例如,MPEG-4部分10 (H.264))对视频数据进行压缩以通过具有有限频率带宽和/或有限存储能力的信道传输。这些视频编码标准包括多个编码级(例如,帧内预测,从空间域变换到频域,量化、熵编码、运动估计和运动补偿),以便更高效地编码和解码帧。许多编码和解码级在计算上过度复杂。
[0005]基于上下文自适应二元算术编码(CABAC)的编码和/或解码技术通常是上下文自适应的,这是指(i)基于先前编码和/或过去解码的符号的值来自适应地对符号编码;以及(?)识别在过去用于适 应而编码和/或解码的符号集合的上下文。过去的符号可以位于空间和/或时间上邻近的块中。在许多情况下,上下文基于邻域块的符号值。
[0006]上下文自适应二元算术编码(CABAC)编码技术包括使用以下级来编码符号。在第一级中,CABAC使用“二兀化器”将输入符号映射到一串二兀符号或“位兀(bin) ”。输入符号可以是非二元定值的符号,该非二元定值的符号在编码成比特之前被二元化或以其他方式转换成一串二元(I或O)符号。可以使用“旁路编码引擎”或“常规编码引擎”将位元编码成比特。
[0007]对于CABAC中的常规编码引擎,在第二级中,选择概率模型。概率模型用于对二元化的输入的一个或多个位元进行算术编码。根据根据随着最新编码的符号而变化的上下文,从可用概率模型列表中选择该模型。概率模型存储作为“I”或“O”的位元的概率。在第三级中,算术编码器根据所选概率模型来编码每个位元。存在与“O”和“I”相对应的每个位元的两个子范围。第四级涉及更新概率模型。基于实际编码的位元值(例如,如果位元值是“1”,则增加“I”的频数)更新所选概率模型。CABAC解码的解码技术与该过程相反。
[0008]对于CABAC中的旁路编码引擎,第二级涉及位元到比特的转换,省略计算成本高的上下文估计和概率更新级。旁路编码引擎假定针对输入位元的固定概率分布。CABAC解码的解码技术与该过程相反。
[0009]CABAC在概念上使用两个步骤来编码符号。在第一步骤中,CABAC执行输入符号到位元的二元化。在第二步骤中,CABAC使用旁路编码引擎或常规编码引擎,执行位元到比特的转换。在比特流中将生成的编码比特值提供给解码器。
[0010]CABAC在概念上使用两个步骤来解码符号。在第一步骤中,CABAC使用旁路解码引擎或常规解码引擎将输入比特转换成位元值。在第二步骤中,CABAC执行解二元化,以恢复传输的位元值的符号值。恢复的符号实际上可以是非二元的。在解码器的其余方面中使用恢复的符号值。

【发明内容】

[0011]技术问题
[0012]如上所述,CABAC的编码和/或解码过程包括至少两个不同的操作模式。在第一模式中,基于实际编码的位元值来更新概率模型,这通常被称作“常规编码模式”。常规编码模式需要完成若干顺序的连续操作,连同关联的计算复杂度和大量时间。在第二模式中,不基于实际编码位元值来更新概率模型,这通常被称作“旁路编码模式”。在第二模式中,不存在用于解码位元的概率模型(除非可能存在固定概率),并且相应地不需要更新概率模型,这降低了系统的计算复杂度。
[0013]问题的解决方式
[0014]本发明的一个方面提供了一种解码视频的解码器,其中:
[0015](a)所述解码器接收表示视频块的比特流,视频块表示多个像素;
[0016](b)所述解码器通过上下文自适应二元算术编码来解码所述比特流;
[0017](C)所述解码器使用至少两个解码模式来解码所述比特流,所述第一模式基于以正被解码的当前语法元素为基础的概率估计来解码所述比特流,所述第二模式不基于以正被解码的所述当前语法元素为基础的概率估计来解码所述比特流;
[0018](d)所述解码器使用所述第一模式来解码数据,该数据指示是否使用帧内预测模式列表来解码帧内预测模式,
[0019](e)所述解码器使用所述第二模式来解码数据,该数据指示当前块的帧内预测模式,其中
[0020]所述帧内预测模式列表是基于先前确定的帧内预测模式来确定的。
[0021]本发明的有利效果
[0022]在考虑结合附图进行的以下本发明详细描述时,将更容易地理解本发明的上述和其他目标、特征和优点。
【专利附图】

【附图说明】
[0023]图1示出了编码器和解码器。
[0024]图2示出了编码器。
[0025]图3示出了解码器。
[0026]图4示出了针对CABAC的上下文解码。
[0027]图5示出了针对CABAC的旁路解码。
[0028]图6示出了具有使用旁路编码模式编码的符号子集以及使用常规编码模式编码的另一符号子集的比特流。
[0029]图7示出了利用旁路解码模式和常规解码模式的解码技术。[0030]图8示出了具有与帧内编码相对应的语法元素类型的块的符号的解码技术。
[0031]图9示出了基于CABAC的编码器。
[0032]图10示出了基于CABAC的解码器。
【具体实施方式】
[0033]参照图2,示例编码器200包括:熵编码模块(可以包括CABAC),从编码器200的若干不同其他方面接收输入。至熵编码模块260的输入之一是来自米样自适应偏移(SAO)模块235的SAO信息。至熵编码模块260的另一输入是来自自适应回路滤波器245的ALF信息。至熵编码模块260的另一输入是来自运动估计/运动补偿(ME/MC)模块230的帧间模式信息。至熵编码模块260的另一输入是来自帧内预测模块270的帧内模式信息。至熵编码模块260的另一输入是来自量化模块310的残差。熵编码模块260提供编码比特流。提供给熵编码模块260的上述信息可以编码在比特流中。SAO模块235向自适应回路滤波器245提供采样,自适应回路滤波器245向参考帧缓冲器220提供恢复的采样225,参考帧缓冲器220向运动估计/运动补偿(ME/MC)模块230提供数据。向SAO模块235提供来自去块滤波器250的去块采样240。由于利用许多编码器,编码器还可以包括帧内预测模块270,在帧内预测模块270中,在帧内预测模块270和ME/MC模块230之间选择预测采样280。减法器290从输入中减去预测的采样280。编码器200还可以包括变换模块300、逆量化模块320、逆变换模块330、和重构模块340。
[0034]参照图3,针对图2的编码器的关联解码器400可以包括:熵解码模块450,可以包括CABAC。熵解码模块450接收编码比特流440并且向解码器400的不同方面提供数据。熵解码模块450可以向巾贞内预测模块460提供巾贞内模式信息455。熵解码模块450可以向MC模块430提供帧间模式信息465。熵解码模块450可以向自适应回路滤波器415提供ALF信息495。熵解码模块450可以向SAO模块410提供SAO信息475。熵解码模块450可以向逆量化模块470提供编码残差485,逆量化模块470向帧内预测模块460和/或去块滤波器500提供数据。采样自适应偏移(SAO)模块410向自适应回路滤波器415提供采样,自适应回路滤波器415向参考帧缓冲器420提供恢复的采样445,参考帧缓冲器420向运动补偿(MC)模块430提供数据。去块滤波器500向SAO模块410提供去块采样510。
[0035]参照图4,示出了当使用CABAC常规解码引擎来解码位元570和使用邻域上下文时选择概率模型的图示。根据解码符号CtxtA572和解码符号CtxtB574确定上下文,其中CtxtA存储在行缓冲器576中。上下文确定用于解码570的概率模型。相反,参照图5,示出了当使用CABAC旁路解码引擎来解码符号580时选择概率模式的图示。所选概率模式不依赖于上下文信息。参照图6,比特流590包括使用旁路编码引擎编码的一组二元化语法元素592,以及使用常规编码引擎编码的一组二元化语法元素594,当使用旁路编码模式时不需要行缓冲器,减少了所需的存储量,不执行概率模型更新,并且增加了 CABAC的吞吐量。
[0036]CABAC基于复杂的潜在编码配置集合来解码视频。例如,编码配置可以包括运动补偿块和帧内预测块。对运动补偿视频块的编码和解码趋于相对复杂,并且通常趋于受益于由CABAC常规编码引擎提供的附加复杂度。除了解码技术以外,一部分复杂度也是存储符号所依赖的信息,并且需要每次编码和/或解码符号时更新概率模型机制。对帧内预测视频块的编码和解码趋于相对不复杂,并且趋于通常较小程度地受益于来自CABAC常规编码引擎提供的附加复杂度。在这种情况下,旁路编码模式趋于减少对附加存储、确定上下文和更新概率模型的需要,而不会显著影响压缩效率。具体地,比特流中的一些符号在二元化之后通常同样可能包含具有O值或I值的位元。此外,同时由于CABAC常规编码引起的上下文适应性,这样的符号不会引起有意义的压缩利益。可以推测这种缺乏有意义的压缩利益可能由于其概率分布的快速波动。
[0037]参照图7,在一个实施例中,可以作为解码器400的熵解码450的一部分而包括的CABAC接收源自比特流600中的比特。如果对编码效率的影响没有证明附加计算复杂度,则对于那些语法元素或属于进行了帧内编码的块610的符号,可以确定特定符号是否适合于使用旁路解码引擎620。如果语法元素或属于帧内编码块610的符号适合于使用旁路解码引擎,则使用旁路解码模式630来解码二元化的符号。如果语法元素或属于帧内编码块610的符号不适合于使用旁路解码引擎,则使用常规解码模式640来解码二元化符号。
[0038]参照图8,CABAC可以接收要从比特流解码的符号570。属于当前块左侧的块的符号574先前已解码,并且针对左侧块的预测模式已确定为Mleft50,其中,预测模式识别使用先前解码数据来预测块内的像素值的方法。类似地,属于当前块上侧的块的符号572先前已解码,并且针对上侧块的预测模式已确定为Mabove652。在多数情况下,在比特流中不明确传输当前块的预测模式,但是如上所述,取而代之基于先前确定的预测模式(例如,Mleft和Mabove)来确定当前块的预测模式。相应地,函数基于Mleft650和Mabove652,使用f(Mleft, Mabove)来产生可能模式列表,可以被称作Mlist = f (Mleft, Mabove)。结果是可能模式列表Mlist656。
[0039]在一个实施例中,由函数产生的可能模式列表Mlist656使用f (Mleft,Mabove) 654来产生最可能模式列表可以包括两个预测模式列表(或另外与单个列表组合),第一列表包括“最可能模式”,第二列表包括“非最可能模式”。系统可以从比特流中选择MPM_FLAG比特655,MPM_FLAG比特655指示使用常规解码引擎657的适合性,并因此语法元素(例如,MPM_FLAG660)指示当前块的预测模式在“最可能模式列表”(典型地,用“ I”信号通知)中还是在“非最可能模式列表”(典型地,用“O”信号通知)中。与针对当前块的MPM_FLAG660的比较可以用于确定适合的预测模式在“最可能模式列表” 662中还是在“非最可能模式列表” 664中。如果针对当前块的MPM_FLAG660指示预测模式在“最可能模式列表”662中,并且如果“最可能模式列表”中仅存在单个预测模式,则这是针对当前块的所选预测模式674。提供所选预测模块674的结果作为所选模式,作为输出。在针对当前块的MPM_FLAG660指示预测模式在“最可能模式列表” 662中,并且如果“最可能模式列表”索引中仅存在两个预测模式,则MPM_INDEX索引670可以用于信号通知所选预测模式674,以在两个预测模式之间进行选择,并且提供所选模式675作为输出。系统可以通过选择MPM_INDEX比特671从比特流中确定MPM_INDEX索引670,MPM_INDEX比特671指示使用旁路解码引擎673的适合性,并因此提供MPM_INDEX索引670。这种在“最可能模式列表” 662的条目之中进行选择的过程可以用向MPM_INDEX索引670分配附加比特来扩展,以在附加的不同模式之间进行区分。
[0040]注意,基于比特流中的过去位元,CABAC可以确定当前位元是“I”还是“O”的概率,在“在最可能列表”与“不在最可能列表内”之间进行选择是对CABAC的编码效率具有最显著影响并相应具有更新概率的有利判定。[0041]如果针对当前块的MPM_FLAG660指示预测模式在“非最可能模式列表” 664中,并且如果“非最可能模式列表” 664中仅存在单个预测模式,则是针对当前块的所选预测模式680。如果针对当前块的MPM_FLAG660指示预测模式在“非最可能模式列表” 664中,并且如果在“非最可能模式列表”索引中仅存在两个预测模式,则REM_INTRA_PRED_MODE索引690可以用于信号通知所选预测模式675,以在两个预测模式之间进行选择,并且提供所选预测模式675作为输出。系统可以通过选择REM_INTRA_PRED_MODE比特691从比特流中确定 REM_INTRA_PRED_MODE 索引 690,REM_INTRA_PRED_MODE 比特 691 指示使用旁路解码引擎693的适合性,并因此提供REM_INTRA_PRED_MODE索引690。如果针对当前块的MPM_FLAG660指示预测模式在“非最可能模式列表” 664中,并且如果在“非最可能模式列表”索引中仅存在四个预测模式,则2比特REM_INTRA_PRED_MODE索引690可以用于信号通知所选预测模式680,以在四个预测模式之间进行选择,并且提供所选模式675作为输出。如果针对当前块的MPM_FLAG660指示预测模式在“非最可能模式列表”中,并且如果在“非最可能模式列表”索引中仅存在八个预测模式,则3比特REM_INTRA_PRED_MODE索引690可以用于信号通知所选预测模式680,以在八个预定模式之间进行选择,并且提供所选模式680作为输出。该从非最可能模式列表中选择模式的过程可以利用向REM_INTRA_PRED_MODE索引分配附加比特来扩展,以在不同的预测模式之间进行区分。
[0042]注意,基于比特流中的过去位元,CABAC可以确定当前位元是“I”还是“O”的概率。如上所述,在“在最可能列表”与“不在最可能列表内”之间的选择是对CABAC的编码效率具有最显著影响并相应具有更新概率的有利判定。然而,在“非最可能模式列表”664内的可能性之间进行选择对CABAC的编码效率的影响有限,并相应地不应更新概率,因此降低了系统的计算复杂度。在多数情况下,分配给不更新的特定二元化符号的概率为50%。
[0043]参照图9,示例基于CABAC的编码器接收语法元素值700,语法元素值700通常是非二元的。二元化器710接收语法元素值700,并且基于语法元素类型720产生二元串730。例如,语法元素类型720可以信号通知与针对当前块的帧内预测模式而导出的索引项相对应的输入值;或者与针对当前块的帧内预测模式而导出的标志相对应的输入值。选择器740基于一个或多个输入选择使用旁路编码引擎750还是常规编码引擎760。至选择器740的输入之一可以包括语法元素类型。至选择器740的另一输入可以包括分片类型770。分片类型770例如可以包括I分片(帧内预测分片)、P分片(前向预测分片)和/或B分片(双向预测分片)。至选择器740的另一输入可以是量化参数780。例如,二元化语法元素值的统计行为可以基于量化参数而改变,量化参数通常与比特流的比特率相关。至选择器740的另一输入可以是来自生成的比特流800的所收集统计790。所收集统计790有助于基于比特进行编码的方式的修改,以进一步提高编码效率。如果选择器740基于一个或多个输入选择旁路编码模式810,则使用旁路编码引擎750来编码二元串730,以产生比特流800。如果选择器740基于一个或多个输入选择常规编码模式820,则将二元串730提供给常规编码引擎760,该引擎是算数编码器。此外,上下文模型器830基于空间和/或时间邻近语法元素840和过去编码的二元符号提供当前概率估计850作为至常规编码引擎的输入。常规编码引擎760产生比特流800。常规编码引擎760的输出用于更新上下文模型器830的概率。选择器740也可以用于指示在比特流800中应当包括哪些编码比特。
[0044]参照图10,基于CABAC的解码器可以接收比特流800。选择器810基于来自比特流800的一个或多个输入,选择使用旁路解码引擎820还是常规解码引擎830。至选择器810的输入之一可以包括语法元素类型720。至选择器810的另一输入可以包括分片类型770。至选择器810的另一输入可以是量化参数780。至选择器810的另一输入可以是所收集统计790。如果选择器810基于一个或多个输入选择旁路解码模式840,则使用旁路解码引擎820来解码比特流800,以产生二元解码比特850。如果选择器810基于一个或多个输入选择常规编码模式860,则向常规解码引擎830提供比特流800,该引擎是算数解码器。此外,上下文模型器870基于空间和/或时间邻近语法元素值880提供当前概率估计875作为至常规解码引擎的输入。常规解码引擎830产生二元解码比特890。常规解码引擎830的输出用于更新上下文模型器870的概率。选择器810也可以用于指示应当向解二元化器900提供哪些二元解码比特850、890。解二元化器900接收二元解码输入和语法元素类型720,并且提供非二元语法元素值910。
[0045]本发明的一个方面提供了一种解码视频的解码器,包括:
[0046](a)解码器接收包含量化系数的比特流,量化系数表示视频块,视频块表示多个像素;
[0047](b)解码器使用上下文自适应二元算术编码来解码比特流;
[0048](C)上下文自适应二元算术编码包括至少两个解码模式,第一模式基于以与正被解码的当前语法元素在空间和时间上邻近的语法元素值为基础的概率估计来解码所述比特流,所述第二模式不基于以与正被解码的当前语法元素以外的语法元素为基础的概率估计来解码所述比特流;
[0049](d)如果当前语法元素是帧内编码的,并且在第一可能模式集合与第二可能模式集合之间进行选择,则上下文自适应二元算术编码使用第一模式来解码当前语法元素,其中第一可能模式集合比第二可能模式集合的可能性高;
[0050](e)如果当前语法元素是帧内编码的并且如果选择第二可能模式集合之一,则上下文自适应二元算术编码使用第二模式来解码当前语法元素。
[0051]根据另一方面,第一模式包括基于解码来更新概率估计。
[0052]根据另一方面,第一可能模式集合包括至少两个模式。
[0053]根据另一方面,第一可能模式集合包括单个模式。
[0054]根据另一方面,第二可能模式集合包括至少两个模式。
[0055]根据另一方面,第二可能模式集合包括单个模式。
[0056]根据另一方面,比特流包括指示在第一可能模式集合与第二可能模式集合之间进行选择的标志。
[0057]根据另一方面,比特流包括指示在多个第一可能模式集合之中进行选择的索引。
[0058]根据另一方面,比特流包括指示在多个第二可能模式集合之中进行选择的索引。
[0059]根据另一方面,在第一可能模式集合与第二可能模式集合之间进行选择还基于语法元素类型。
[0060]根据另一方面,在第一可能模式集合与第二可能模式集合之间进行选择还基于分片类型。
[0061]根据另一方面,在第一可能模式集合与第二可能模式集合之间进行选择还基于量化参数。[0062]根据另一方面,在第一可能模式集合与第二可能模式集合之间进行选择还基于解码比特流的所收集统计。
[0063]上述说明书中已使用的术语和表述在这里用作描述目的而非限制,并且在使用这样的术语和表述时并不意在排除所示意或描述的特征或其一部分的等同物,已经认识到本发明的范围仅由所附权利要求来限定和限制。
【权利要求】
1.一种解码视频的解码器,其中: (a)所述解码器接收表示视频块的比特流,所述视频块表示多个像素; (b)所述解码器解码由上下文自适应二元算术编码的所述比特流; (c)所述解码器使用至少两个解码模式来解码所述比特流,所述第一模式基于以正被解码的当前语法元素为基础的概率估计来解码所述比特流,所述第二模式不基于以正被解码的所述当前语法元素为基础的概率估计来解码所述比特流; (d)所述解码器使用所述第一模式来解码数据,该数据指示是否使用用于解码帧内预测模式的帧内预测模式列表, (e)所述解码器使用所述第二模式来解码数据,该数据指示当前块的帧内预测模式,其中所述帧内预测模式列表是基于先前确定的帧内预测模式来确定的。
2.根据权利要求1所述的解码器,其中,在所述解码器使用所述帧内预测模式列表来解码所述帧内预测模式的情况下,指示当前块的帧内预测模式的所述数据是所述帧内预测模式列表的解码索引。
3.根据权利要求1所述的解码器,其中,在所述解码器不使用所述列表来解码所述帧内预测模式的情况下,对指示当前块的帧内预测模式的所述数据进行解码。
4.根据权利要求1所述的解码器,其中,所述第一模式包括基于所述解码来更新所述概率估计。
5.根据权利要求1所述的解码器,其中,所述帧内预测模式列表包括至少两个模式。
6.根据权利要求1所述的解码器,其中,所述帧内预测模式列表包括单个模式。
7.根据权利要求1所述的解码器,其中,所述比特流包括指示是否使用所述帧内预测模式列表的标志。
8.根据权利要求1所述的解码器,其中,所述比特流包括指示帧内预测模式在所述可能模式列表中的索引。
9.根据权利要求1所述的解码器,其中,在所述帧内预测模式列表之间进行选择还基于语法元素类型。
10.根据权利要求1所述的解码器,其中,在所述帧内预测模式列表之间进行选择还基于分片类型。
11.根据权利要求1所述的解码器,其中,在所述帧内预测模式列表之间进行选择还基于量化参数。
12.根据权利要求1所述的解码器,其中,在所述帧内预测模式列表之间进行选择还基于解码比特流的所收集统计。
【文档编号】H04N19/159GK103959782SQ201280054447
【公开日】2014年7月30日 申请日期:2012年11月7日 优先权日:2011年11月7日
【发明者】基兰·米斯拉, 克里斯多夫·A·西格尔 申请人:夏普株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1