一种对视频进行解码的方法

申请号 CN201510202243.8 申请日 2013-04-15 公开(公告)号 CN104869424B 公开(公告)日 2017-10-27
申请人 三星电子株式会社; 发明人 金赞烈; 金宰贤; 朴正辉;
摘要 提供了一种变换系数等级的 熵编码 装置和熵解码装置。还提供了一种更新在对变换系数等级的熵编码和熵解码中使用的参数的方法。通过使用参数对指示变换系数等级的语法元素进行二值化。基于将先前变换系数的大小与基于先前参数而获得的预定临界值进行比较的结果,更新或保持所述参数,其中,先前参数在对先前变换系数等级语法元素的反二值化中被使用。预定临界值被设置为具有与先前参数成比例的值,当先前参数被更新时,更新后的参数与先前参数相比具有逐渐增加的值。
权利要求

1.一种对视频进行解码的方法,所述方法包括:
通过基于上下文模型对比特流进行算术解码,来获取与当前变换系数等级语法元素相应的比特串;
通过基于预定值与在当前变换系数之前恢复的先前变换系数的大小的比较更新或保持先前二值化参数,来确定用于当前变换系数等级语法元素的反二值化的当前二值化参数,其中,先前二值化参数用于先前变换系数等级语法元素的反二值化;
通过使用确定的当前二值化参数针对所述比特串的前缀比特串和后缀比特串执行反二值化,来获取当前变换系数等级语法元素;
通过使用当前变换系数等级语法元素来产生当前变换系数的大小,
其中,所述预定值具有(3*(1<其中,当前二值化参数具有等于或小于4的值,
其中,当先前变换系数的值等于或小于所述预定值时,当前二值化参数被确定为是先前二值化参数,
当先前变换系数的值大于所述预定值时,当前二值化参数被确定为是所述更新的值,其中,前缀比特串的二进制值根据第一反二值化方法被获取,后缀比特串的二进制值根据与第一反二值化方法不同的第二反二值化方法被获取。

说明书全文

一种对视频进行解码的方法

[0001] 本申请是申请日为2013年04月15日,申请号为“201380031658.2”,标题为“用于变换系数等级的熵编码和熵解码的参数更新方法以及使用该方法的变换系数等级的熵编码装置和熵解码装置”的发明专利申请的分案申请。

技术领域

[0002] 本申请涉及视频编码和解码,更具体地讲,涉及用于对在变换系数的尺寸信息的熵编码和熵解码中使用的参数进行更新的方法和设备。

背景技术

[0003] 根据图像压缩方法(诸如,MPEG-1、MPEG-2或MPEG-4H.264/MPEG-4高级视频编码(AVC)),将图像划分为具有预定尺寸的多个,随后通过间预测或帧内预测获得多个块的残差数据。通过变换、量化、扫描、游程编码和熵编码来对残差数据进行压缩。在熵编码中,对诸如变换系数或运动矢量的语法元素进行熵编码以输出比特流。在解码器端,从比特流提取语法元素并基于提取出的语法元素执行解码。

发明内容

[0004] 技术问题
[0005] 本发明提供一种更新参数的方法,通过该方法,使在对变换系数的熵编码和熵解码中使用的参数逐渐被改变,同时防止所述参数的骤变。
[0006] 本发明还提供一种对在通过使用二值化方法(诸如Golomb-rice方法或级联码方法)来对诸如变换系数等级的语法元素的二值化中使用的参数进行更新的方法。
[0007] 解决方案
[0008] 根据本发明的实施例,提供了一种逐渐更新在对变换系数等级的二值化中使用的参数的参数更新方法。
[0009] 有益效果
[0010] 根据本发明的实施例,通过逐渐改变在变换系数的等级信息的熵编码中使用的参数,在编码期间产生的比特量可被减少,图像的增益可被增加。附图说明
[0011] 图1是根据本发明的实施例的用于对视频进行编码的设备的框图
[0012] 图2是根据本发明的实施例的用于对视频进行解码的设备的框图;
[0013] 图3是用于描述根据本发明的实施例的编码单元的概念的示图;
[0014] 图4是根据本发明的实施例的基于具有分层结构的编码单元的视频编码器的框图;
[0015] 图5是根据本发明的实施例的基于具有分层结构的编码单元的视频解码器的框图;
[0016] 图6是示出根据本发明的实施例的根据深度的较深层编码单元和分区(partition)的示图;
[0017] 图7是用于描述根据本发明的实施例的编码单元和变换单元之间的关系的示图;
[0018] 图8是用于描述根据本发明的实施例的与编码深度相应的编码单元的编码信息的示图;
[0019] 图9是根据本发明的实施例的根据深度的较深层编码单元的示图;
[0020] 图10至图12是用于描述根据本发明的实施例的编码单元、预测单元和频率变换单元之间的关系的示图;
[0021] 图13是用于描述根据表1的编码模式信息的编码单元、预测单元和变换单元之间的关系的示图;
[0022] 图14是示出根据本发明的实施例的对变换单元中包括的变换系数信息进行熵编码和熵解码的操作的流程图
[0023] 图15示出根据本发明的实施例的被熵编码的变换单元;
[0024] 图16示出根据本发明的实施例的与图15的变换单元相应的有效图;
[0025] 图17示出与图15的4×4变换单元相应的coeff_abs_level_greater1_flag;
[0026] 图18示出与图15的4×4变换单元相应的coeff_abs_level_greater2_flag;
[0027] 图19示出与图15的4×4变换单元相应的coeff_abs_level_remaining;
[0028] 图20示出显示与图15至图19中示出的变换单元相关的语法元素的表;
[0029] 图21示出根据本发明的实施例的被二值化的coeff_abs_level_remaining的另一示例;
[0030] 图22是示出根据本发明的实施例的熵编码设备的结构的框图;
[0031] 图23是示出根据本发明的实施例的二值化设备的结构的框图;
[0032] 图24是示出根据本发明的实施例的对指示变换系数等级的语法元素进行熵编码的方法的流程图;
[0033] 图25是示出根据本发明的实施例的熵解码设备的框图;
[0034] 图26是示出根据本发明的实施例的反二值化设备的结构的框图;
[0035] 图27是示出根据本发明的实施例的对变换系数等级进行熵解码方法的流程图。
[0036] 最佳模式
[0037] 根据本发明的一方面,提供了一种更新用于对变换系数等级进行熵解码的参数的方法,所述方法包括:从比特流解析指示包括在变换单元中的变换系数的大小的变换系数等级语法元素;通过将在当前变换系数之前被恢复的先前变换系数的大小与基于先前参数而获得的预定临界值进行比较,来确定是否更新先前参数,其中,先前参数在对指示先前变换系数的大小的先前变换系数等级语法元素的反二值化中被使用;通过基于确定的结果更新或保持先前参数,来获得在对指示当前变换系数的大小的当前变换系数等级语法元素的反二值化中使用的参数;通过使用获得的参数对当前变换系数等级语法元素进行反二值化来获得当前变换系数的大小,其中,所述预定临界值被设置为具有与先前参数成比例的值,当先前参数被更新时,更新后的参数与先前参数相比具有逐渐增加的值。
[0038] 根据本发明的另一方面,提供了一种用于对变换系数等级进行熵解码的设备,所述设备包括:解析单元,从比特流解析指示包括在变换单元中的变换系数的大小的变换系数等级语法元素;参数确定单元,通过将在当前变换系数之前被恢复的先前变换系数的大小与基于先前参数而获得的预定临界值进行比较,来确定是否更新先前参数,并通过基于确定的结果更新或保持先前参数,来获得在对指示当前变换系数的大小的当前变换系数等级语法元素的反二值化中使用的参数,其中,先前参数在对指示先前变换系数的大小的 先前变换系数等级语法元素的反二值化中被使用;语法元素恢复单元,通过使用获得的参数对当前变换系数等级语法元素进行反二值化来获得当前变换系数的大小,其中,所述预定临界值被设置为具有与先前参数成比例的值,当先前参数被更新时,更新后的参数与先前参数相比具有逐渐增加的值。
[0039] 根据本发明的另一方面,提供了一种更新用于对变换系数等级进行熵编码的参数的方法,所述方法包括:以预定扫描顺序获得指示包括在变换单元中的变换系数的大小的变换系数等级语法元素;通过将在当前变换系数之前被编码的先前变换系数的大小与基于先前参数而获得的预定临界值进行比较,来确定是否更新先前参数,其中,先前参数在对指示先前变换系数的大小的先前变换系数等级语法元素的二值化中被使用;通过基于确定的结果更新或保持先前参数,来获得在对指示当前变换系数的大小的当前变换系数等级语法元素的二值化中使用的参数;通过使用获得的参数对当前变换系数的变换系数等级语法元素进行二值化来输出与当前变换系数的变换系数等级语法元素相应的比特串,其中,所述预定临界值被设置为具有与先前参数成比例的值,当先前参数被更新时,更新后的参数与先前参数相比具有逐渐增加的值。
[0040] 根据本发明的另一方面,一种用于对变换系数等级进行熵编码的设备,所述设备包括:参数确定单元,以预定扫描顺序获得指示包括在变换单元中的变换系数的大小的变换系数等级语法元素,通过将在当前变换系数之前被编码的先前变换系数的大小与基于先前参数而获得的预定临界值进行比较,来确定是否更新先前参数,通过基于确定的结果更新或保持先前参数,来获得在对指示当前变换系数的大小的当前变换系数等级语法元素的二值化中使用的参数,其中,先前参数在对指示先前变换系数的大小的先前变换系数等级语法元素的二值化中被使用;比特串产生单元,通过使用获得的参数对当前变换系数的变换系数等级语法元素进行二值化来输出与当前变换系数的变换系数等级语法元素相应的比特串,其中,所述预定临界值被设置为具有与先前参数成比例的值,当先前参数被更新时,更新后的参数与先前参数相比具有逐渐增加的值。

具体实施方式

[0041] 以下,将参照附图详细描述本发明的实施例。
[0042] 以下,将参照图1至图13描述根据本发明的实施例的用于更新在对变换单元的尺寸信息进行熵编码和解码时使用的参数的方法和设备。另外,将参照图14至图29详细地描述对语法元素进行熵编码和熵解码的方法,其中,通过使用参照图1至图13描述的对视频进行熵编码和解码的方法来获得所述语法元素。当诸如“…中的至少一个”的表达在一列元件之后时,其修饰整列元件而不修饰列出的单个元件。
[0043] 图1是根据本发明的实施例的视频编码设备100的框图。
[0044] 视频编码设备100包括分层编码器110和熵编码器120。
[0045] 分层编码器110以预定数据单元为单位划分被编码的当前画面,以对每个数据单元执行编码。详细地,分层编码器110可基于最大编码单元划分当前画面,其中,最大编码单元是最大尺寸的编码单元。根据本发明的实施例的最大编码单元可以是尺寸为32×32、64×64、128×128、256×256等的数据单元,其中,数据单元的形状是宽度和长度是2的若干次方并大于8的正方形。
[0046] 根据本发明的实施例的编码单元可由最大尺寸和深度来表征。深度表示编码单元在空间上从最大编码单元被划分的次数,并且随着深度加深,根据深度的较深层编码单元可从最大编码单元被划分到最小编码单元。最大编码单元的深度是最高深度,最小编码单元的深度是最低深度。由于与每个深度相应的编码单元的尺寸随着最大编码单元的深度加深而减小,因此与较高深度相应的编码单元可包括与较低深度相应的多个编码单元。
[0047] 如上所述,根据编码单元的最大尺寸将当前画面的图像数据划分为最大编码单元,每个最大编码单元可包括根据深度划分的较深层编码单元。由于根据本发明的实施例的最大编码单元根据深度被划分,因此包括在最大编码单元中的空间域的图像数据可根据深度被分层地分类。
[0048] 可预先确定编码单元的最大深度和最大尺寸,其中,所述最大深度和最大尺寸限制最大编码单元的高度和宽度被分层划分的总次数。
[0049] 分层编码器110对通过根据深度划分最大编码单元的区域而获得的至少一个划分的区域进行编码,并根据所述至少一个划分的区域确定用于输出最终编码的图像数据的深度。换句话说,分层编码器110通过根据当前画面的最大编码单元按照根据深度的较深层编码单元对图像数据进行编码并选择具有最小编码误差的深度,来确定编码深度。确定的编码深度和根据最大编码 单元的编码的图像数据被输出到熵编码器120。
[0050] 基于与等于或低于最大深度的至少一个深度相应的较深层编码单元来对最大编码单元中的图像数据进行编码,并基于每个较深层编码单元来比较对图像数据进行编码的结果。可在比较较深层编码单元的编码误差之后选择具有最小编码误差的深度。可针对每个最大编码单元选择至少一个编码深度。
[0051] 随着编码单元根据深度被分层划分并随着编码单元的数量增加,最大编码单元的尺寸被划分。另外,即使在一个最大编码单元中编码单元相应于同一深度,仍通过单独测量每个编码单元的图像数据的编码误差来确定是否将与同一深度相应的每个编码单元划分到更低深度。因此,即使在图像数据被包括在一个最大编码单元中时,图像数据仍根据深度被划分成区域,并且在所述一个最大编码单元中编码误差也会根据区域而不同,因此编码深度可根据图像数据中的区域而不同。因此,可在一个最大编码单元中确定一个或更多个编码深度,并可根据至少一个编码深度的编码单元来划分最大编码单元的图像数据。
[0052] 因此,分层编码器110可确定包括在最大编码单元中的具有树结构的编码单元。根据本发明的实施例的“具有树结构的编码单元”包括最大编码单元中所包括的所有较深层编码单元中的与被确定为编码深度的深度相应的编码单元。可在最大编码单元的同一区域中根据深度分层地确定具有编码深度的编码单元,并可在不同区域中独立地确定具有编码深度的编码单元。类似地,当前区域中的编码深度可与另一区域中的编码深度独立地被确定。
[0053] 根据本发明的实施例的最大深度是与从最大编码单元到最小编码单元的执行的划分次数相关的索引。根据本发明的实施例的第一最大深度可表示从最大编码单元到最小编码单元的总划分次数。根据本发明的实施例的第二最大深度可表示从最大编码单元到最小编码单元的深度级别的总数。例如,当最大编码单元的深度是0时,最大编码单元被划分一次的编码单元的深度可被设置为1,最大编码单元被划分两次的编码单元的深度可被设置为2。这里,如果最小编码单元是最大编码单元被划分四次的编码单元,则存在深度0、深度1、深度2、深度3、深度4这5个深度级别,因此,第一最大深度可被设置为4,第二最大深度可被设置为5。
[0054] 可根据最大编码单元执行预测编码和变换。还根据最大编码单元,基于根据等于最大深度的深度或小于最大深度的深度的较深层编码单元来执行预 测编码和变换。
[0055] 由于每当最大编码单元根据深度被划分时较深层编码单元的数量增加,因此对随着深度加深而产生的所有较深层编码单元执行包括预测编码和变换的编码。为了便于描述,现在将在最大编码单元中基于当前深度的编码单元来描述预测编码和变换。
[0056] 视频编码设备100可不同地选择用于对图像数据进行编码的数据单元的尺寸或形状。为了对图像数据进行编码,执行诸如预测编码、变换和熵编码的操作,此时,可针对所有操作使用相同的数据单元,或者可针对每个操作使用不同的数据单元。
[0057] 例如,视频编码设备100可不仅选择用于对图像数据进行编码的编码单元,还可选择与该编码单元不同的数据单元以对编码单元中的图像数据执行预测编码。
[0058] 为了在最大编码单元中执行预测编码,可基于与编码深度相应的编码单元(即,基于不再被划分为与更低深度相应的编码单元的编码单元)执行预测编码。在下文中,不再被划分并且成为用于预测编码的基本单元的编码单元现在将被称为“预测单元”。通过划分预测单元而获得的分区可包括预测单元或通过划分预测单元的高度和宽度中的至少一个而获得的数据单元。
[0059] 例如,当2N×2N(其中,N是正整数)的编码单元不再被划分并且成为2N×2N的预测单元时,分区的尺寸可以是2N×2N、2N×N、N×2N或N×N。分区类型的示例包括通过对称地划分预测单元的高度或宽度而获得的对称分区、通过非对称地划分预测单元的高度或宽度(诸如,1:n或n:1)而获得的分区、通过几何地划分预测单元而获得的分区以及具有任意形状的分区。
[0060] 预测单元的预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个。例如,可对2N×2N、2N×N、N×2N或N×N的分区执行帧内模式或帧间模式。另外,可仅对2N×2N的分区执行跳过模式。可独立地对编码单元中的一个预测单元执行编码,从而选择具有最小编码误差的预测模式。
[0061] 视频编码设备100还可不仅基于用于对图像数据进行编码的编码单元对编码单元中的图像数据执行变换,还可基于与编码单元不同的数据单元对编码单元中的图像数据执行变换。
[0062] 为了在编码单元中执行变换,可基于具有小于或等于编码单元的尺寸的数据单元执行变换。例如,用于变换的数据单元可包括用于帧内模式的数据 单元以及用于帧间模式的数据单元。
[0063] 用作变换的基础的数据单元现将被称为“变换单元”。与编码单元类似,编码单元中的变换单元可被递归地划分为更小尺寸的区域,从而变换单元可以以区域为单位被独立确定。因此,可根据具有根据变换深度的树结构的变换单元来划分编码单元中的残差数据。
[0064] 也可在变换单元中设置变换深度,变换深度指示通过划分编码单元的高度和宽度来达到变换单元而执行的划分次数。例如,在2N×2N的当前编码单元中,当变换单元的尺寸是2N×2N时,变换深度可以是0,当变换单元的尺寸是N×N时,变换深度可以是1,当变换单元的尺寸是N/2×N/2时,变换深度可以是2。也就是说,还可根据变换深度设置具有树结构的变换单元。
[0065] 根据与编码深度相应的编码单元的编码信息不仅需要关于编码深度的信息,还需要与预测编码和变换相关的信息。因此,分层编码器110不仅确定具有最小编码误差的编码深度,还可确定预测单元中的分区类型、根据预测单元的预测模式以及用于变换的变换单元的尺寸。
[0066] 稍后将参照图3至图12来对根据本发明的实施例的最大编码单元中的根据树结构的编码单元和确定分区的方法进行详细描述。
[0067] 分层编码器110可通过使用基于拉格朗日乘子(Lagrangian multiplier)的率失真优化,测量根据深度的较深层编码单元的编码误差。
[0068] 熵编码器120在比特流中输出最大编码单元的图像数据以及关于根据编码深度的编码模式的信息,其中,最大编码单元的图像数据基于由分层编码器110确定的至少一个编码深度被编码。编码图像数据可以是图像的残差数据的编码结果。关于根据编码深度的编码模式的信息可包括关于编码深度的信息、关于预测单元中的分区类型的信息、预测模式信息和变换单元的尺寸信息。具体地,如稍后将描述,熵编码器120在对指示变换单元的尺寸的语法元素进行熵编码时,通过使用被逐渐更新的参数,根据比特串对指示变换系数的大小的语法元素进行二值化。稍后将详细描述通过使用熵编码单元120对变换单元进行熵编码的操作。
[0069] 可通过使用根据深度的划分信息来定义关于编码深度的信息,其中,所述根据深度的划分信息指示是否对更低深度而非当前深度的编码单元执行编码。如果当前编码单元的当前深度是编码深度,则当前编码单元中的图像数据被编码和输出,因此划分信息可被定义为不将当前编码单元划分至更低深 度。可选择地,如果当前编码单元的当前深度不是编码深度,则对更低深度的编码单元执行编码,因此,划分信息可被定义为对当前编码单元进行划分以获得更低深度的编码单元。
[0070] 如果当前深度不是编码深度,则对被划分为更低深度的编码单元的编码单元执行编码。由于在当前深度的一个编码单元中存在更低深度的至少一个编码单元,因此对更低深度的每个编码单元重复执行编码,因此,可针对具有同一深度的编码单元递归地执行编码。
[0071] 由于针对一个最大编码单元确定具有树结构的编码单元,并且针对编码深度的编码单元确定关于至少一个编码模式的信息,因此可针对一个最大编码单元确定关于至少一个编码模式的信息。另外,由于根据深度分层地划分图像数据,因此最大编码单元的图像数据的编码深度可根据位置而不同,因此,可针对图像数据设置关于编码深度和编码模式的信息。
[0072] 因此,熵编码器120可将关于相应的编码深度和编码模式的编码信息分配给包括在最大编码单元中的编码单元、预测单元和最小单元中的至少一个。
[0073] 根据本发明的实施例的最小单元是通过将构成最低深度的最小编码单元划分为4份而获得的正方形形状的数据单元。可选择地,最小单元可以是可被包括在最大编码单元中包括的所有编码单元、预测单元、分区单元和变换单元中的最大正方形形状的数据单元。
[0074] 例如,通过熵编码器120输出的编码信息可被分类为根据编码单元的编码信息和根据预测单元的编码信息。根据编码单元的编码信息可包括关于预测模式的信息以及关于分区的尺寸的信息。根据预测单元的编码信息可包括关于帧间模式的估计方向的信息、关于帧间模式的参考图像索引的信息、关于运动矢量的信息、关于帧内模式的色度分量的信息以及关于帧内模式的插值方法的信息。此外,关于根据画面、条带或GOP定义的编码单元的最大尺寸的信息以及关于最大深度的信息可被插入到比特流的头中。
[0075] 在视频编码设备100中,较深层编码单元可以是通过将作为上一层的更高深度的编码单元的高度或宽度划分为2份而获得的编码单元。换句话说,在当前深度的编码单元的尺寸是2N×2N时,更低深度的编码单元的尺寸是N×N。另外,尺寸为2N×2N的当前深度的编码单元可包括最多4个更低深度的编码单元。
[0076] 因此,基于考虑当前画面的特性而确定的最大编码单元的尺寸和最大深 度,视频编码设备100可通过针对每个最大编码单元确定具有最佳形状和最佳尺寸的编码单元,来形成具有树结构的编码单元。另外,由于可通过使用各种预测模式和变换中的任意一种来对每个最大编码单元执行编码,因此可考虑各种图像尺寸的编码单元的特性来确定最佳编码模式。
[0077] 因此,如果按照传统的宏块对具有高分辨率大数据量的图像进行编码,则每个画面的宏块的数量急剧增加。因此,针对每个宏块产生的压缩信息的条数增加,因而难以发送压缩信息并且数据压缩效率下降。然而,通过使用视频编码设备100,因为在考虑图像的特征的同时调整了编码单元,同时,在考虑图像的尺寸的同时增大了编码单元的最大尺寸,所以图像压缩效率可增加。
[0078] 图2是根据本发明的实施例的视频解码设备200的框图。
[0079] 视频解码设备200包括解析器210、熵解码器220和分层解码器230。用于视频解码设备200的各种操作的各种术语(诸如编码单元、深度、预测单元、变换单元以及关于各种编码模式的信息)的定义与参照图1和视频编码设备100所描述的那些术语的定义相同。
[0080] 解析器210接收编码的视频的比特流并对语法元素进行解析。熵解码器220通过对解析后的语法元素执行熵解码来提取指示基于具有树结构的编码单元的编码图像数据的语法元素,并将提取的语法元素输出到分层解码器230。也就是说,熵解码器220对以0和1的比特串的形式接收的语法元素执行熵解码,从而恢复该语法元素。
[0081] 另外,熵解码器220从解析的比特流提取根据每个最大编码单元的具有树结构的编码单元的关于编码深度的信息、编码模式、颜色分量信息和预测模式信息等。提取的关于编码深度和编码模式的信息被输出到分层解码器230。比特流中的图像数据被划分为最大编码单元,从而分层解码器230可针对每个最大编码单元对图像数据进行解码。
[0082] 可针对关于与编码深度相应的至少一个编码单元的信息设置关于根据最大编码单元的编码深度和编码模式的信息,关于编码模式的信息可包括关于与编码深度相应的相应编码单元的分区类型的信息、关于预测模式的信息以及变换单元的尺寸的信息。另外,根据深度的划分信息可被提取作为关于编码深度的信息。
[0083] 由熵解码器220提取的关于根据每个最大编码单元的编码深度和编码模 式的信息是关于这样的编码深度和编码模式的信息,即:所述编码深度和编码模式被确定为当编码器(诸如视频编码设备100)根据每个最大编码单元针对根据深度的每个较深层编码单元重复执行编码时产生最小编码误差。因此,视频解码设备200可通过根据产生最小编码误差的编码深度和编码模式对图像数据进行解码来恢复图像。
[0084] 由于关于编码深度和编码模式的编码信息可被分配给相应的编码单元、预测单元和最小单元中的预定数据单元,因此熵解码器220可提取关于根据预定数据单元的编码深度和编码模式的信息。当关于相应最大编码单元的编码深度和编码模式的信息被分配给每个预定数据单元时,被分配有相同的关于编码深度和编码模式的信息的预定数据单元可被推断为包括在同一最大编码单元中的数据单元。
[0085] 此外,如稍后将描述,熵解码器220通过使用被逐渐更新的参数来对指示变换系数的大小的语法元素进行反二值化。稍后将详细描述通过使用熵解码器220对与指示变换单元的尺寸的语法元素相应的比特串进行反二值化,来获得变换系数的尺寸信息的操作。
[0086] 分层解码器230可通过基于关于根据最大编码单元的编码深度和编码模式的信息,对每个最大编码单元中的图像数据进行解码来恢复当前画面。换句话说,分层解码器230可针对包括在每个最大编码单元中的具有树结构的编码单元中的每个编码单元,基于提取的关于分区类型、预测模式和变换单元的信息对编码的图像数据进行解码。解码处理可包括预测和逆变换,其中,所述预测包括帧内预测和运动补偿
[0087] 分层解码器230可基于关于根据编码深度的编码单元的预测单元的分区类型和预测模式的信息,根据每个编码单元的分区和预测模式执行帧内预测或运动补偿。
[0088] 此外,分层解码器230可基于关于根据编码深度的编码单元的变换单元的尺寸的信息,根据编码单元中的每个变换单元执行逆变换,以便执行根据最大编码单元的逆变换。
[0089] 分层解码器230可通过使用根据深度的划分信息确定当前最大编码单元的至少一个编码深度。如果划分信息指示在当前深度中图像数据不再被划分,则当前深度是编码深度。因此,分层解码器230可通过使用关于预测单元的分区类型、预测模式和变换单元的尺寸的信息,针对当前最大编码单元的图 像数据对当前深度的编码单元进行解码。
[0090] 换句话说,可通过观察为编码单元、预测单元和最小单元中的预定数据单元分配的编码信息集,收集包含编码信息(所述编码信息包括相同的划分信息)的数据单元,收集的数据单元可被认为是将由分层解码器230以相同编码模式解码的一个数据单元。
[0091] 视频解码设备200可获得与在对每个最大编码单元递归地执行编码时产生最小编码误差的至少一个编码单元有关的信息,并且视频解码设备200可使用所述信息来对当前画面进行解码。换句话说,可以对每个最大编码单元中被确定为最佳编码单元的具有树结构的编码单元的编码图像数据进行解码。
[0092] 因此,即使图像数据具有高分辨率和大数据量,也可通过使用编码单元的尺寸和编码模式有效地对所述图像数据进行解码和恢复,其中,通过使用从编码器接收的关于最佳编码模式的信息,根据图像数据的特性来自适应地确定编码单元的尺寸和编码模式。
[0093] 现将参照图3至图13描述根据本发明的实施例的确定具有树结构的编码单元、预测单元和变换单元的方法。
[0094] 图3是用于描述根据本发明的实施例的编码单元的概念的示图。
[0095] 编码单元的尺寸可按照宽度×高度来表示,并可以是64×64、32×32、16×16和8×8。64×64的编码单元可被划分为64×64、64×32、32×64或32×32的分区,32×32的编码单元可被划分为32×32、32×16、16×32或16×16的分区,16×16的编码单元可被划分为16×16、16×8、8×16或8×8的分区,8×8的编码单元可被划分为8×8、8×4、4×8或4×4的分区。
[0096] 关于视频数据310,设置了分辨率是1920×1080,编码单元的最大尺寸是64,并且最大深度是2。关于视频数据320,设置了分辨率是1920×1080,编码单元的最大尺寸是64,并且最大深度是3。关于视频数据330,设置了分辨率是352×288,编码单元的最大尺寸是16,并且最大深度是1。图3中示出的最大深度表示从最大编码单元到最小解码单元的划分总数。
[0097] 如果分辨率高或者数据量大,则编码单元的最大尺寸可以较大以便不仅提高编码效率还精确地地反映图像的特性。因此,分辨率比视频数据330更高的视频数据310和视频数据320的编码单元的最大尺寸可以是64。
[0098] 由于视频数据310的最大深度是2,因此由于通过划分最大编码单元两 次深度被加深到两层,视频数据310的编码单元315可包括长轴尺寸为64的最大编码单元以及长轴尺寸为32和16的编码单元。同时,由于视频数据330的最大深度是1,因此由于通过划分最大编码单元一次深度被加深到一层,视频数据330的编码单元335可包括长轴尺寸为16的最大编码单元以及长轴尺寸为8的编码单元。
[0099] 由于视频数据320的最大深度是3,因此由于通过划分最大编码单元三次深度被加深到3层,视频数据320的编码单元325可包括长轴尺寸为64的最大编码单元以及长轴尺寸为32、16和8的编码单元。随着深度加深,可精确地表示详细的信息。
[0100] 图4是根据本发明的实施例的基于具有分层结构的编码单元的视频编码器400的框图。
[0101] 帧内预测器410针对当前帧405,对帧内模式下的编码单元执行帧内预测,运动估计器420和运动补偿器425通过使用当前帧405和参考帧495,对帧间模式下的编码单元执行帧间估计和运动补偿。
[0102] 从帧内预测器410、运动估计器420和运动补偿器425输出的数据通过变换器430和量化器440被输出为量化后的变换系数。量化后的变换系数通过反量化器460和逆变换器470被恢复为空间域中的数据,并且恢复的空间域中的数据在通过去块单元480和环路滤波单元490被后处理之后被输出为参考帧495。量化的变换系数可通过熵编码器450被输出为比特流455。
[0103] 熵编码单元450对如下的与变换单元的语法元素进行算术编码:诸如,指示非0的变换单元的位置的有效图、指示变换单元是否具有大于1的值的第一临界值标记(coeff_abs_level_greater1_flag)、指示变换单元是否具有大于2的值的第二临界值(coeff_abs_level_greather2_flag)、变换系数的大小信息(coeff_abs_level_remaining),其中,所述大小信息与基于第一临界值和第二临界值确定的基本等级(baseLevel)和实际的变换系数(abscoeff)之间的差相应。
[0104] 为了使视频编码器400被应用到视频编码设备100中,视频编码器400的所有元件(即,帧内预测器410、运动估计器420、运动补偿器425、变换器430、量化器440、熵编码器450、反量化器460、逆变换器470、去块单元480和环路滤波单元490)必需在考虑每个最大编码单元的最大深度的同时,基于具有树结构的多个编码单元中的每个编码单元执行操作。
[0105] 具体地讲,帧内预测器410、运动估计器420和运动补偿器425在考虑当前最大编码单元的最大尺寸和最大深度的同时,确定具有树结构的多个编码单元中的每个编码单元的分区和预测模式,并且变换器430确定具有树结构的多个编码单元中的每个编码单元中的变换单元的尺寸。
[0106] 图5是根据本发明的实施例的基于编码单元的视频解码器500的框图。
[0107] 解析器510从比特流505解析将被解码的编码图像数据以及解码所需的关于编码的信息。编码图像数据通过解码器520和反量化器530被输出为反量化的数据。熵解码器520从比特流获得如下的与变换单元相关的元素并对获得的语法元素进行算术解码以便恢复语法元素:即,指示非0的变换单元的位置的有效图、指示变换单元是否具有大于1的值的第一临界值标记(coeff_abs_level_greater1_flag)、指示变换单元是否具有大于2的值的第二临界值(coeff_abs_level_greather2_flag)、变换系数的大小信息(coeff_abs_level_remaining),其中,所述大小信息与基于第一临界值和第二临界值确定的基本等级(baseLevel)和实际的变换系数(abscoeff)之间的差相应。
[0108] 逆变换器540将反量化的数据恢复为空间域中的图像数据。帧内预测器550针对空间域中的图像数据对帧内模式下的编码单元执行帧内预测,运动补偿器560通过使用参考帧585对帧间模式下的编码单元执行运动补偿。
[0109] 已经过帧内预测器550和运动补偿器560的空间域中的图像数据在通过去块单元570和环路滤波单元580被后处理之后,可被输出为恢复的帧595。另外,经过去块单元570和环路滤波单元580被后处理的图像数据可被输出为参考帧585。
[0110] 为了使图像解码器500被应用到视频解码设备200中,图像解码器500的所有元件(即,解析器510、熵解码器520、反量化器530、逆变换器540、帧内预测器550、运动补偿器560、去块单元570和环路滤波单元580)基于每个最大编码单元的具有树结构的编码单元执行操作。
[0111] 帧内预测器550和运动补偿器560针对具有树结构的每个编码单元确定分区和预测模式,并且逆变换器540必需针对每个编码单元确定变换单元的尺寸。
[0112] 图6是示出根据本发明的实施例的根据深度的较深层编码单元和分区的示图。
[0113] 视频编码设备100和视频解码设备200使用分层的编码单元以考虑图像的特性。编码单元的最大高度、最大宽度和最大深度可根据图像的特性被自适应地确定,或者可由用户不同地设置。根据深度的较深层编码单元的尺寸可根据编码单元的预定最大尺寸被确定。
[0114] 在根据本发明的实施例的编码单元的分层结构600中,编码单元的最大高度和最大宽度都是64,并且最大深度是4。由于深度沿着分层结构600的纵轴加深,因此较深层编码单元的高度和宽度都被划分。另外,作为用于每个较深层编码单元的预测编码的基础的预测单元和分区沿分层结构600的横轴被示出。
[0115] 换句话说,编码单元610是分层结构600中的最大编码单元,其中,深度是0,尺寸(即,高度乘宽度)是64×64。深度沿纵轴加深,并且存在尺寸为32×32且深度为1的编码单元620、尺寸为16×16且深度为2的编码单元630、尺寸为8×8且深度为3的编码单元640以及尺寸为4×4且深度为4的编码单元650。尺寸为4×4且深度为4的编码单元650是最小编码单元。
[0116] 编码单元的预测单元和分区根据每个深度沿横轴排列。换句话说,如果尺寸为64×64且深度为0的编码单元610是预测单元,则该预测单元可被划分为包括在编码单元610中的分区(即,尺寸为64×64的分区610、尺寸为64×32的分区612、尺寸为32×64的分区614、或者尺寸为32×32的分区616)。
[0117] 类似地,尺寸为32×32且深度为1的编码单元620的预测单元可被划分为包括在编码单元620中的分区(即,尺寸为32×32的分区620、尺寸为32×16的分区622、尺寸为16×32的分区624以及尺寸为16×16的分区626)。
[0118] 类似地,尺寸为16×16且深度为2的编码单元630的预测单元可被划分为包括在编码单元630中的分区(即,包括在编码单元630中的尺寸为16×16的分区、尺寸为16×8的分区632、尺寸为8×16的分区634以及尺寸为8×8的分区636)。
[0119] 类似地,尺寸为8×8且深度为3的编码单元640的预测单元可被划分为包括在编码单元640中的分区(即,包括在编码单元640中的尺寸为8×8的分区、尺寸为8×4的分区642、尺寸为4×8的分区644以及尺寸为4×4的分区646)。
[0120] 尺寸为4×4且深度为4的编码单元650是最小编码单元以及最低深度的 编码单元。编码单元650的预测单元仅被分配给尺寸为4×4的分区。
[0121] 为了确定构成最大编码单元610的编码单元的至少一个编码深度,视频编码设备100的分层编码器110对包括在最大编码单元610中的与每个深度相应的编码单元执行编码。
[0122] 随着深度加深,包括相同范围和相同尺寸的数据的根据深度的较深层编码单元的数量增加。例如,需要四个与深度2相应的编码单元以覆盖包括在一个与深度1相应的编码单元中的数据。因此,为了根据深度对相同数据的多个编码结果进行比较,与深度1相应的编码单元以及与深度2相应的四个编码单元都被编码。
[0123] 为了针对多个深度中的当前深度执行编码,通过沿分层结构600的横轴,对与当前深度相应的多个编码单元中的每个预测单元执行编码来针对当前深度选择最小编码误差。可选择地,随着深度沿分层结构600的纵轴加深,可通过针对每个深度执行编码,通过根据深度比较最小编码误差,从而搜索最小编码误差。在最大编码单元610中的具有最小编码误差的深度和分区可被选为最大编码单元610的编码深度和分区类型。
[0124] 图7是用于描述根据本发明的实施例的编码单元710和变换单元720之间的关系的示图。
[0125] 视频编码设备100或视频解码设备200针对每个最大编码单元根据尺寸小于或等于最大编码单元的编码单元来对图像进行编码或解码。可基于不大于相应编码单元的数据单元来选择在编码期间用于变换的变换单元的尺寸。
[0126] 例如,在视频编码设备100或视频解码设备200中,如果编码单元710的尺寸是64×64,则可通过使用尺寸为32×32的变换单元720来执行变换。
[0127] 另外,可通过对小于64×64的尺寸为32×32、16×16、8×8和4×4的每个变换单元执行变换,来对尺寸为64×64的编码单元710的数据进行编码,并且随后可选择具有最小编码误差的变换单元。
[0128] 图8是用于描述根据本发明的实施例的与编码深度相应的编码单元的编码信息的示图。
[0129] 视频编码设备100的输出单元130可对关于分区类型的信息800、关于预测模式的信息810以及关于与编码深度相应的每个编码单元的变换单元的尺寸的信息820进行编码,并将信息800、信息810和信息820作为关于编码模式的信息来发送。
[0130] 信息800指示关于通过划分当前编码单元的预测单元而获得的分区的形状的信息,其中,所述分区是用于对当前编码单元进行预测编码的数据单元。例如,尺寸为2N×2N的当前编码单元CU_0可被划分为如下分区中的任何一个:尺寸为2N×2N的分区802、尺寸为2N×N的分区804、尺寸为N×2N的分区806以及尺寸为N×N的分区808。这里,关于分区类型的信息800被设置为指示尺寸为2N×2N的分区802、尺寸为2N×N的分区804、尺寸为N×2N的分区806以及尺寸为N×N的分区808中的一个。
[0131] 信息810指示每个分区的预测模式。例如,信息810可指示对由信息800指示的分区执行的预测编码的模式(即,帧内模式812、帧间模式814或跳过模式816)。
[0132] 信息820指示当对当前编码单元执行变换时所基于的变换单元。例如,变换单元可以是第一帧内变换单元822、第二帧内变换单元824、第一帧间变换单元826或第二帧内变换单元828。
[0133] 视频解码设备200的图像数据和编码信息提取器210可根据每个较深层编码单元来提取并使用关于编码单元的信息800、关于预测模式的信息810、关于变换单元的尺寸的信息820,以用于解码。
[0134] 图9是根据本发明的实施例的根据深度的较深层编码单元的示图。
[0135] 划分信息可用于指示深度的改变。划分信息指示当前深度的编码单元是否被划分为更低深度的编码单元。
[0136] 用于对深度为0且尺寸为2N_0×2N_0的编码单元900进行预测编码的预测单元910可包括如下分区类型的分区:尺寸为2N_0×2N_0的分区类型912、尺寸为2N_0×N_0的分区类型914、尺寸为N_0×2N_0的分区类型916以及尺寸为N_0×N_0的分区类型918。图9仅示出通过对预测单元910进行对称划分而获得的分区类型912至918,但是分区类型不限于此,并且预测单元910的分区可包括非对称分区、具有预定形状的分区以及具有几何形状的分区。
[0137] 根据每个分区类型对如下分区重复地执行预测编码:尺寸为2N_0×2N_0的一个分区、尺寸为2N_0×N_0的两个分区、尺寸为N_0×2N_0的两个分区以及尺寸为N_0×N_0的四个分区。可对尺寸为2N_0×2N_0、N_0×2N_0、2N_0×N_0以及N_0×N_0的分区执行帧内模式和帧间模式下的预测编码。仅对尺寸为2N_0×2N_0的分区执行跳过模式下的预测编码。
[0138] 如果在尺寸为2N_0×2N_0、2N_0×N_0和N_0×2N_0的分区类型912至分区类型916之一中的编码误差最小,则预测单元910可不被划分为更低深度。
[0139] 如果在尺寸为N_0×N_0的分区类型918中编码误差最小,则在操作920,深度从0改变为1以划分分区类型918,并且对深度为2且尺寸为N_0×N_0的分区类型编码单元重复地执行编码以搜索最小编码误差。
[0140] 用于对深度为1且尺寸为2N_1×2N_1(=N_0×N_0)的(分区类型)编码单元930进行预测编码的预测单元940可包括如下分区类型的分区:尺寸为2N_1×2N_1的分区类型942、尺寸为2N_1×N_1的分区类型944、尺寸为N_1×2N_1的分区类型946以及尺寸为N_1×N_1的分区类型948。
[0141] 如果在尺寸为N_1×N_1的分区类型948中编码误差最小,则在操作950,深度从1改变为2以划分分区类型948,并且对深度为2且尺寸为N_2×N_2的编码单元960重复地执行编码以搜索最小编码误差。
[0142] 当最大深度是d时,根据每个深度的划分操作可被执行直到深度变为d-1时,并且划分信息可被编码直到深度是0至d-2之一。换句话说,当执行编码直到在操作970与深度d-2相应的编码单元被划分之后深度是d-1时,用于对深度为d-1且尺寸为2N_(d-1)×2N_(d-
1)的编码单元980进行预测编码的预测单元990可包括如下分区类型的分区:尺寸为2N_(d-
1)×2N_(d-1)的分区类型992、尺寸为2N_(d-1)×N_(d-1)的分区类型994、尺寸为N_(d-1)×2N_(d-1)的分区类型996以及尺寸为N_(d-1)×N_(d-1)的分区类型998。
[0143] 可对分区类型992至998中的如下分区重复地执行预测编码以搜索具有最小编码误差的分区类型:尺寸为2N_(d-1)×2N_(d-1)的一个分区、尺寸为2N_(d-1)×N_(d-1)的两个分区、尺寸为N_(d-1)×2N_(d-1)的两个分区、尺寸为N_(d-1)×N_(d-1)的四个分区。
[0144] 即使在尺寸为N_(d-1)×N_(d-1)日分区类型998具有最小编码误差时,由于最大深度是d,因此深度为d-1的编码单元CU_(d-1)不再被划分到更低深度,并且构成当前最大编码单元900的编码单元的编码深度被确定为d-1并且当前最大编码单元900的分区类型可被确定为N_(d-1)×N_(d-1)。另外,由于最大深度是d,因此最小编码单元952的划分信息不被设置。
[0145] 数据单元999可以是当前最大编码单元的“最小单元”。根据本发明的实施例的最小单元可以是通过将最小编码单元980划分为4份而获得的矩形数 据单元。通过重复地执行编码,视频编码设备100可通过比较根据编码单元900的多个深度的编码误差来选择具有最小编码误差的深度以确定编码深度,并且将相应分区类型以及预测模式设置为编码深度的编码模式。
[0146] 这样,根据深度的最小编码误差在所有的深度1至d中被比较,并且具有最小编码误差的深度可被确定为编码深度。可对编码深度、预测单元的分区类型以及预测模式进行编码并将其作为关于编码模式的信息发送。另外,由于编码单元从深度0被划分到编码深度,因此仅该编码深度的划分信息被设置为0,除了编码深度之外的深度的划分信息被设置为1。
[0147] 视频解码设备200的熵解码器220可提取并使用关于编码单元900的编码深度和预测单元的信息以对编码单元912进行解码。视频解码设备200可通过使用根据深度的划分信息来将划分信息是0的深度确定为编码深度,并且使用关于相应深度的编码模式的信息用于解码。
[0148] 图10至图12是用于描述根据本发明的实施例的编码单元1010、预测单元1060和变换单元1070之间的关系的示图。
[0149] 编码单元1010是最大编码单元中的与由视频编码设备100确定的编码深度相应的具有树结构的编码单元。预测单元1060是每个编码单元1010的预测单元的分区,变换单元1070是每个编码单元1010的变换单元。
[0150] 当在编码单元1010中最大编码单元的深度是0时,编码单元1012和1054的深度是1,编码单元1014、1016、1018、1028、1050和1052的深度是2,编码单元1020、1022、1024、
1026、1030、1032和1048的深度是3,编码单元1040、1042、1044和1046的深度是4。
[0151] 在预测单元1060中,一些编码单元1014、1016、1022、1032、1048、1050、1052和1054通过划分编码单元而获得。换句话说,编码单元1014、1022、1050和1054中的分区类型的尺寸为2N×N,编码单元1016、1048和1052中的分区类型的尺寸为N×2N,编码单元1032的分区类型的尺寸为N×N。编码单元1010的预测单元和分区小于或等于每个编码单元。
[0152] 以小于编码单元1052的数据单元对变换单元1070中的编码单元1052的图像数据执行变换或逆变换。另外,变换单元1070中的编码单元1014、1016、1022、1032、1048、1050、1052和1054在尺寸和形状上与预测单元1060中的编码单元1014、1016、1022、1032、1048、
1050、1052和1054不同。换句话说,视频编码设备100和视频解码设备200可对相同编码单元中 的数据单元单独地执行帧内预测、运动估计、运动补偿、变换和逆变换。
[0153] 因此,对最大编码单元的每个区域中的具有分层结构的每个编码单元递归地执行编码,以确定最佳编码单元,因此可获得具有递归树结构的编码单元。编码信息可包括关于编码单元的划分信息、关于分区类型的信息、关于预测模式的信息以及关于变换单元的尺寸的信息。
[0154] 表1显示可由视频编码设备100和视频解码设备200设置的编码信息。
[0155] 表1
[0156]
[0157] 视频编码设备100的熵编码器120可输出关于具有树结构的编码单元的编码信息,并且视频解码设备200的熵解码器220可从接收的比特流提取关于具有树结构的编码单元的编码信息。
[0158] 划分信息指示当前编码单元是否被划分为更低深度的编码单元。如果当前深度d的划分信息是0,则当前编码单元不再被划分为更低深度的深度是编码深度,因此可针对编码深度定义关于分区类型、预测模式以及变换单元的尺寸的信息。如果当前编码单元根据划分信息被进一步划分,则对更低深度的四个划分编码单元独立地执行编码。
[0159] 预测模式可以是帧内模式、帧间模式和跳过模式中的一个。可在所有分区类型中定义帧内模式和帧间模式,并且可仅在尺寸为2N×2N的分区类型中定义跳过模式。
[0160] 关于分区类型的信息可指示通过对称地划分预测单元的高度或宽度而获得的尺寸为2N×2N、2N×N、N×2N和N×N的对称分区类型、以及通过非对称地划分预测单元的高度或宽度而获得的尺寸为2N×nU、2N×nD、nL ×2N和nR×2N的非对称分区类型。可通过以1:n和n:1划分预测单元的高度来分别地获得尺寸为2N×nU和2N×nD的非对称分区类型,可通过以1:n和n:1划分预测单元的宽度来分别地获得尺寸为nL×2N和nR×2N的非对称分区类型(其中,n是大于1的整数)。
[0161] 变换单元的尺寸可被设置为帧内模式下的两种类型以及帧间模式下的两种类型。换句话说,如果变换单元的划分信息是0,则变换单元的尺寸可以是作为当前编码单元的尺寸的2N×2N。如果变换单元的划分信息是1,则可通过划分当前编码单元来获得变换单元。
另外,如果尺寸为2N×2N的当前编码单元的分区类型是对称分区类型,则变换单元的尺寸可以是N×N,如果当前编码单元的分区类型是非对称分区类型,则变换单元的尺寸可以是N/2×N/2。
[0162] 关于具有树结构的编码单元的编码信息可包括与编码深度相应的编码单元、预测单元以及最小单元中的至少一个。与编码深度相应的编码单元可包括:包含相同编码信息的预测单元和最小单元中的至少一个。
[0163] 因此,通过对邻近数据单元的编码信息进行比较,来确定邻近数据单元是否被包括在与编码深度相应的相同编码单元中。另外,通过使用数据单元的编码信息来确定与编码深度相应的相应编码单元,因此最大编码单元中的编码深度的分布可被确定。
[0164] 因此,如果基于邻近数据单元的编码信息预测当前编码单元,则与当前编码单元邻近的较深层编码单元中的数据单元的编码信息可被直接参考和使用。
[0165] 可选择地,如果基于邻近数据单元的编码信息来预测当前编码单元,则使用数据单元的编码信息来搜索与当前编码单元邻近的数据单元,并且搜索到的邻近编码单元可被参考以预测当前编码单元。
[0166] 图13是用于描述根据表1的编码模式信息的编码单元、预测单元和变换单元之间的关系的示图。
[0167] 最大编码单元1300包括多个编码深度的编码单元1302、1304、1306、1312、1314、1316和1318。这里,由于编码单元1318是编码深度的编码单元,因此划分信息可被设置为0。
关于尺寸为2N×2N的编码单元1318的分区类型的信息可被设置为以下分区类型之一:尺寸为2N×2N的分区类型1322、尺寸为2N×N的分区类型1324、尺寸为N×2N的分区类型1326、尺 寸为N×N的分区类型1328、尺寸为2N×nU的分区类型1332、尺寸为2N×nD的分区类型1334、尺寸为nL×2N的分区类型1336和尺寸为nR×2N的分区类型1338。
[0168] 当分区类型被设置为对称(即,分区类型1322、1324、1326或1328)时,如果变换单元的划分信息(TU尺寸标记)为0,则设置尺寸为2N×2N的变换单元1342,如果TU尺寸标记为1,则设置尺寸为N×N的变换单元1344。
[0169] 当分区类型被设置为非对称(即,分区类型1332、1334、1336或1338)时,如果TU尺寸标记为0,则设置尺寸为2N×2N的变换单元1352,如果TU尺寸标记为1,则设置尺寸为N/2×N/2的变换单元1354。
[0170] TU尺寸标记可以是一种变换索引的类型;与变换索引相应的变换单元的尺寸可根据编码单元的预测单元类型或编码单元的分区类型而修改
[0171] 当分区类型被设置为对称(即,分区类型1322、1324、1326或1328)时,如果变换单元的TU尺寸标记为0,则设置尺寸为2N×2N的变换单元1342,如果TU尺寸标记为1,则设置尺寸为N×N的变换单元1344。
[0172] 当分区类型被设置为非对称(即,分区类型1332(2N×nU)、1334(2N×nD)、1336(nL×2N)或1338(nR×2N))时,如果TU尺寸标记为0,则设置尺寸为2N×2N的变换单元1352,如果TU尺寸标记为1,则设置尺寸为N/2×N/2的变换单元1354。
[0173] 参照图9,以上描述的TU尺寸标记是具有值0或1的标记,但TU尺寸标记不限于1比特,并且在TU尺寸标记从0增加的同时,变换单元可被分层划分。变换单元划分信息(TU尺寸标记)可被用作变换索引的示例。
[0174] 在这种情况下,当根据实施例的TU尺寸标记与变换单元的最大尺寸和最小尺寸一起被使用时,实际上已使用的变换单元的尺寸可被表示。视频编码设备100可对最大变换单元尺寸信息、最小变换单元尺寸信息和最大变换单元划分信息进行编码。编码的最大变换单元尺寸信息、最小变换单元尺寸信息和最大变换单元划分信息可被插入到序列参数集(SPS)中。视频解码设备200可使用最大变换单元尺寸信息、最小变换单元尺寸信息和最大变换单元划分信息以用于对视频进行解码。
[0175] 例如,(a)如果当前编码单元的尺寸是64×64并且最大变换单元是32×32,则(a-1)如果TU尺寸标记为0,则变换单元的尺寸是32×32;(a-2) 如果TU尺寸标记为1,则变换单元的尺寸是16×16,(a-3)如果TU尺寸标记为2,则变换单元的尺寸是8×8。
[0176] 可选择地,(b)如果当前编码单元的尺寸是32×32并且最小变换单元是32×32,则(b-1)如果TU尺寸标记为0,则变换单元的尺寸是32×32,由于变换单元的尺寸不能够小于32×32,因此TU尺寸标记不再被设置。
[0177] 可选择地,(c)如果当前编码单元的尺寸是64×64并且最大TU尺寸标记为1,则TU尺寸标记可以是0或1,并且不能设置其它TU尺寸标记。
[0178] 因此,当将最大TU尺寸标记定义为“MaxTransformSizeIndex”,将最小TU尺寸定义为“MinTransformSize”,并且将在TU尺寸标记为0的情况下变换单元(即,基本变换单元RootTu)定义为“RootTuSize”时,可通过下面的等式(1)来定义可在当前编码单元中可用的最小变换单元的尺寸“CurrMinTuSize”。
[0179] CurrMinTuSize=max(MinTransformSize,RootTuSize/(2^MaxTransformSizeIndex))……(1)
[0180] 与在当前编码单元中可用的最小变换单元的尺寸“CurrMinTuSize”相比,作为在TU尺寸标记为0时的变换单元的尺寸的基本变换单元尺寸“RootTuSize”可指示可在系统中选择的最大变换单元尺寸。也就是说,根据等式(1),“RootTuSize/(2^MaxTransformSizeIndex)”是通过按照与最大变换单元划分信息相应的划分次数对作为在变换单元划分信息为0时的变换单元的尺寸的“RootTuSize”进行划分而获得的变换单元的尺寸,并且“MinTransformSize”是最小变换单元的尺寸,因此,“RootTuSize/(2^MaxTransformSizeIndex)”和“MinTransformSize”中较小的值可以是作为在当前编码单元中可用的最小变换单元的尺寸的“CurrMinTuSize”。
[0181] 根据本发明的实施例的基本变换单元的尺寸“RootTuSize”可根据预测模式而变化。
[0182] 例如,如果当前预测模式是帧间模式,则可根据以下的等式(2)来确定RootTuSize。在等式(2)中,“MaxTransformSize”表示最大变换单元尺寸,“PUSize”指示当前预测单元尺寸。
[0183] RootTuSize=min(MaxTransformSize,PUSize)……(2)
[0184] 换句话说,如果当前预测模式是帧间模式,则作为TU尺寸标记为0时的变换单元的基本变换单元的尺寸“RootTuSize”可被设置为最大变换单元尺寸和当前预测单元尺寸中较小的值。
[0185] 如果当前分区单元的预测模式是帧内模式,则可通过使用以下的等式(3)来确定“RootTuSize”。“PartitionSize”表示当前分区单元的尺寸。
[0186] RootTuSize=min(MaxTransformSize,PartitionSize)……(3)
[0187] 换句话说,如果当前预测模式是帧内模式,则基本变换单元尺寸“RootTuSize”可被设置为最大变换单元尺寸和当前分区单元尺寸中较小的值。
[0188] 然而,应注意基本变换单元的尺寸“RootTuSize”是示例,并且用于确定当前最大变换单元的因素不限于此,其中,基本变换单元的尺寸“RootTuSize”是根据本发明的实施例的当前最大变换单元尺寸并根据分区单元中的预测模式而变化。
[0189] 以下,将详细描述在图1的视频编码设备100的熵编码器120中的执行的语法元素的熵编码操作以及在图2的视频解码设备200的熵解码器220中执行的语法元素的熵解码操作。
[0190] 如上所述,视频编码设备100和视频解码设备200通过将最大编码单元划分为小于或等于最大编码单元的编码单元,来执行编码和解码。可独立于其它数据单元基于代价确定在预测和变换中使用的预测单元和变换单元。由于可通过对包括在最大编码单元中的具有分层树结构的每个编码单元递归地进行编码,来确定最佳编码单元,因此,可配置具有树结构的数据单元。换句话说,对于每个最大编码单元,可配置具有树结构的编码单元以及均具有树结构的预测单元和变换单元。为了进行解码,需要发送分层信息以及除分层信息以外的用于解码的非分层信息,其中,分层信息是指示具有分层结构的数据单元的结构信息的信息。
[0191] 与分层结构相关的信息是如以上参照图10至图12描述的确定具有树结构的编码单元、具有树结构的预测单元和具有树结构的变换单元所需的信息, 并包括最大编码单元的尺寸、编码深度、预测单元的分区信息、指示编码单元是否被划分的划分标记、变换单元的尺寸信息、以及指示变换单元是否被划分的变换单元划分标记(TU尺寸标记)。除分层结构信息以外的编码信息的示例包括应用于每个预测单元的帧内/帧间预测的预测模式信息、运动矢量信息、预测方向信息、在多个颜色分量被使用的情况下应用于每个数据单元的颜色分量信息、以及变换系数信息。以下,分层信息和额外的分层信息可被称为将被熵编码或熵解码的语法元素。
[0192] 具体地讲,根据本发明的实施例,提供了一种确定用于有效地对变换系数的等级(即,语法元素的尺寸信息)进行熵编码和熵解码的上下文模型的方法。以下,将详细描述确定用于对变换系数的等级进行熵编码和熵解码的上下文模型的方法。
[0193] 图14是示出根据本发明的实施例的对包括在变换单元中的变换系数信息进行熵编码和熵解码的操作的流程图。
[0194] 参照图14,在操作1410,首先对coded_block_flag进行熵编码或熵解码,其中,coded_block_flag指示在包括在当前变换单元中的变换系数之中是否存在非0的变换系数(以下,被称为“有效系数”)。
[0195] 如果coded_block_flag是0,则在当前变换单元中仅存在为0的变换系数,因此,仅值0被熵编码或熵解码为coded_block_flag,变换系数等级信息不被熵编码或熵解码。
[0196] 在操作1420,如果在当前变换单元中存在有效系数,则对指示有效系数的位置的有效图SigMap进行熵编码或熵解码。
[0197] 有效图SigMap可由有效位以及指示最后一个有效系数的位置的预定信息形成。有效位指示根据每个扫描索引的变换系数是有效系数还是0,并可通过significant_coeff_flag[i]来表示。如稍后将描述,以通过划分变换单元而获得的具有预定尺寸的子集为单位设置有效图。因此,significant_coeff_flag[i]指示包括在变换单元中的子集中所包括的变换系数之中的第i扫描索引的变换系数是否为0。
[0198] 根据传统的H.264,额外地对指示每个有效系数是否是最后一个有效系数的标记(End-Of-Block)进行熵编码或熵解码。然而,根据本发明的实施例,对最后一个有效系数本身的位置信息进行熵编码或熵解码。如以上参照图1至图13所述,根据本发明的实施例的变换单元的尺寸不限于4×4,并还可 以是更大的尺寸(诸如,8×8、16×16或32×32)。由于标记(End-Of-Block)的大小增加,因此额外地对指示每个有效系数是否是最后一个有效系数的标记(End-Of-Block)进行熵编码或熵解码是没有效率的。因此,根据本发明的实施例,可对最后一个有效系数的位置信息本身进行熵编码或熵解码。例如,如果最后一个有效系数的位置是(x,y)(其中,x和y是整数),则可对作为指示坐标值(x,y)的语法元素的last_significant_coeff_x和last_significant_coeff_y进行熵编码或熵解码。
[0199] 在操作1430,对指示变换系数的大小的变换系数等级进行熵编码或熵解码。根据传统的H.264/AVC,变换系数的等级信息由作为语法元素的coeff_abs_level_minus1来表示。根据本发明的实施例,变换系数的等级信息可通过coeff_abs_level_greater1_flag、coeff_abs_leve_greater2_flag以及coeff_abs_leve1_remaining来表示,其中,coeff_abs_level_greater1_flag是关于变换系数的绝对值是否大于1的语法元素,coeff_abs_leve_greater2_flag是关于变换系数的绝对值是否大于2的语法元素,coeff_abs_leve1_remaining指示剩余变换系数的大小信息。
[0200] 指示剩余的变换系数的大小信息的语法元素coeff_abs_leve1_remaining具有在变换系数的大小(absCoeff)与基本等级值baseLevel之间的差,其中,通过使用coeff_abs_level_greater1_flag和coeff_abs_leve_greater2_flag确定基本等级值baseLevel。根据等式(baseLevel=1+coeff_abs_level_greather1_flag+coeff_abs_level_greather2_flag)确定基本等级值,并且根据等式(coeff_abs_level_remaining=absCoeff-baseLevel)确定coeff_abs_level_remaining。当coeff_abs_level_greater1_flag和coeff_abs_leve_greater2_flag具有值0或1时,基本等级值baseLevel可具有从1到3的值。因此,coeff_abs_leve1_remaining可从(absCoeff-1)改变到(absCoeff-3)。如上所述,(absCoeff-baseLevel)作为变换系数的大小信息被发送以便减小发送的数据的大小,其中,(absCoeff-baseLevel)是原始变换系数的大小absCoeff与基本等级值baseLevel之间的差。
[0201] 图22是示出根据本发明的实施例的熵编码设备2200的结构的框图。图22的熵编码设备2200与图1的视频编码设备100的熵编码器120相应。
[0202] 参照图22,熵编码设备2200包括二值化器2210、上下文建模器2220和二进制算术编码器2230。此外,二进制算术编码器2230包括常规编码引 擎2232和旁路编码引擎2234。
[0203] 当输入到熵编码设备2100的语法元素不是二进制值时,二值化器2210对语法元素进行二值化从而输出有二进制值0或1构成的二进制位(Bin)串。二进制位表示由0或1构成的流的每个比特,并通过上下文自适应二进制算术编码(CABAC)被编码。如果语法元素是包括相同频率的0和1的数据,则该语法元素被输出到不使用概率的旁路编码引擎2234以被编码。
[0204] 具体地,二值化器2210通过使用参数(cRiceParam)将coeff_abs_leve1_remaining二值化到前缀比特串和后缀比特串,其中,coeff_abs_leve1_remaining是指示变换系数的大小信息的语法元素。稍后将描述通过使用二值化器2210对作为指示变换系数的大小信息的语法元素的coeff_abs_leve1_remaining进行二值化的操作。
[0205] 上下文建模器2220将用于对与语法元素相应的比特串进行编码的概率模型提供给常规编码引擎2232。详细地,上下文建模器2220将用于对当前语法元素的比特串的每个二进制值进行编码的二进制值的概率输出到二进制算术编码器2230。
[0206] 上下文模型是二进制位的概率模型,并包括关于0和1中的哪一个与最大可能的符号(MPS)和最小可能的符号(LPS)相应的信息以及关于MPS概率或LPS概率的信息。
[0207] 常规编码引擎2232基于由上下文建模器2220提供的关于MPS和LPS的信息以及MPS或LPS的概率信息执行关于与语法元素相应的比特串的二进制算术编码。
[0208] 可根据变换系数的二进制位索引预先设置在对作为指示变换系数的大小信息的语法元素的coeff_abs_leve1_remaining进行编码时使用的上下文模型。
[0209] 图23是示出根据本发明的实施例的二值化设备2300的结构的框图。图23的二值化设备2300与图22的二值化器2210相应。
[0210] 参照图23,二值化设备2300包括参数确定单元2310和比特串产生单元2320。
[0211] 参数确定单元2310将在当前变换系数之前被编码的先前变换系数的大小与基于先前参数获得的预定临界值进行比较,从而确定是否更新(renew)先前参数,其中,该先前参数在对指示先前变换系数的大小的先前变换系数等级语法元素的二值化中被使用。此外,参数确定单元2310通过根据确定的 结果更新或保持先前参数来获得将在对指示当前变换系数的大小的变换系数等级语法元素的二值化中使用的参数。
[0212] 详细地,当先前变换系数的大小是cLastAbsCoeff并且先前参数是cLastRiceParam时,参数确定单元2310基于以下算法确定参数cLastRiceParam和coeff_abs_leve1_remaining,其中,cLastRiceParam将在对变换系数等级语法元素的二值化中被使用,coeff_abs_leve1_remaining指示当前变换系数的大小。
[0213] cRiceParam=
[0214] Min(cLastRiceParam+(cLastAbsLevel>(3*(1<
[0216] {
[0217] If cLastAbsCoeff>3*(1<
[0218] cRiceParam=Min(cLastRiceParam+1,4)
[0219] }
[0220] 如在以上算法中所述,参数确定单元2310将基于下面的等式获得的临界值th与cLastRiceParam进行比较:th=3*(1<
[0221] 初始参数被设置为0。当参数(cRiceParam)被更新时,与先前参数(cLastRiceParam)相比,该参数被逐渐增加+1。此外,在确定用于更新参数的条件时使用的临界值th根据参数(cRiceParam)被确定,因此,随着参数(cRiceParam)被更新,临界值th也被逐渐增加。也就是说,临界值th被设置为具有与先前参数(cLastRiceParam)成比例的值,并且当先前参数(cLastRiceParam)被更新时,与先前参数(cLastRiceParam)相比,参数(cRiceParam)具有逐渐增加+1的值。随着参数(cRiceParam)在0到4的范围内被更新,临界值th逐渐增加到3、6、12和24。
[0222] 比特串产生单元2320通过使用参数对变换系数的变换系数等级语法元素(coeff_abs_leve1_remaining)进行二值化,并输出与变换系数的变换系数等级语法元素(coeff_abs_leve1_remaining)相应的比特串。
[0223] 详细地,比特串产生单元2320通过使用获得的参数(cRiceParam)根据下面的等式获得参数cTrMax:cTrMax=4<
[0224] 比特串产生单元2320基于参数cTrMax对变换系数等级语法元素(coeff_abs_level_remaining)的值进行划分,以便获得具有不超过参数cTrMax的值的前缀和指示超过参数cTrMax的部分的后缀。比特串产生单元2320根据下面的等式确定在不超过cTrMax的范围内的前缀:Prefix=Min(cTrMax,coeff_abs_level_remaining)。仅在变换系数等级语法元素(coeff_abs_level_remaining)具有大于cTrMax的值时存在后缀。后缀是与(coeff_abs_level_remaining-cTrMax)相应的值。当变换系数等级语法元素(coeff_abs_level_remaining)不超过cTrMax时,仅存在前缀。例如,当变换系数等级语法元素(coeff_abs_level_remaining)是10并且参数cTrMax是7时,变换系数等级语法元素(coeff_abs_level_remaining)被分类为值为7的前缀和值为3的后缀。可选择地,当变换系数等级语法元素(coeff_abs_level_remaining)是6并且参数cTrMax是7时,变换系数等级语法元素(coeff_abs_level_remaining)被分类为值为6的前缀并不具有后缀。
[0225] 当通过基于参数cTrMax对变换系数等级语法元素(coeff_abs_level_remaining)的值进行划分而确定了前缀和后缀时,比特串产生单元2320通过使用预先设置的预定二值化方法来对前缀和后缀进行二值化,以输出与前缀和后缀相应的比特串。例如,比特串产生单元2320可通过使用截断一元二值化方法来对具有与Min(cTrMax,coeff_abs_level_remaining)相应的值的前缀进行二值化来输出比特串,并可通过使用k阶指数哥伦布(exponential Golomb)方法对具有与(coeff_abs_level_remaining-cTrMax)相应的值的后缀进行二值化来输出比特串。可通过使用通过使用参数确定单元2310确定的参数(cRiceParam)来确定值k。例如,值k可具有值(cRiceParam+1)。
[0226] 根据截断一元二值化方法,如下面的表2所示,可对值为Min(cTrMax,coeff_abs_level_remaining)的前缀进行二值化。
[0227] [表2]
[0228]Min(cTrMax,coeff_abs_level_remaining) 输出比特串
[0229]  0 0
1 10
2 110
3 1110
..... ....
[0230] 比特串产生单元2320可根据参数(cRiceParam)并通过参考预先设置的表来产生与前缀和后缀相应的比特串。根据查找表方法,预先设置的表可以以如下方式被设置:随着参数(cRiceParam)的值增加,与相对大的值相应的比特串的长度被减小。
[0231] 将参照图15至图21详细描述根据本发明的实施例的对与变换单元相关的语法元素进行熵编码的操作。
[0232] 图15示出根据本发明的实施例的熵编码后的变换单元1500。虽然在图15中示出了尺寸为16×16的变换单元1500,但变换单元1500的尺寸不限于示出的尺寸16×16,并还可以是范围在4×4到32×32内的各种尺寸。
[0233] 参照图15,为了对包括在变换单元1500中的变换系数进行熵编码和熵解码,变换单元1500可被划分为更小的变换单元。以下,将描述对与包括在变换单元1500中的4×4变换单元1510相关的语法元素进行熵编码的操作。对与4×4变换单元1510相关的语法元素进行熵编码的该操作还可应用于不同尺寸的变换单元。
[0234] 包括在4×4变换单元1510中的变换系数均具有如图15所示的变换系数(absCoeff)。包括在4×4变换单元1510中的变换系数可根据如图15所示的预定扫描顺序被串行化(serialize)并被顺序地处理。然而,扫描顺序不限于所示,并还可被修改。
[0235] 如上所述,与4×4变换单元1510相关的语法元素的示例是significant_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_leve_greater2_flag、coeff_abs_leve1_remaining,其中,significant_coeff_flag是指示包括在变换单元中的每个变换系数是否是具有非0值的有效变换系数的语法,coeff_abs_level_greater1_flag是指示变换系数的绝对值是否大于1的语法元素,coeff_abs_leve_greater2_flag是指示所述绝对值是否大于2的语法元素,coeff_abs_leve1_remaining是指示剩余变换系数的 大小信息的语法元素。
[0236] 图16示出根据本发明的实施例的与图15的变换单元相应的有效图SigMap 1600。
[0237] 参照图15和图16,设置了有效图SigMap 1600,其中,有效图SigMap 1600对于包括在图15的4×4变换单元1510中的变换系数之中的值不为0的每个有效变换系数,具有值1。通过使用先前设置的上下文模型对有效图SigMap 1600进行熵编码或熵解码。
[0238] 图17示出与图15的4×4变换单元1510相应的coeff_abs_level_greater1_flag 1700。
[0239] 参照图15至图17,设置了coeff_abs_level_greater1_flag 1700,其中,coeff_abs_level_greater1_flag 1700是关于有效图SigMap 1600具有值1的有效变换系数,指示相应有效变换系数是否具有大于1的值的标记。当coeff_abs_level_greater1_flag 1700为1时,这指示相应变换系数是值大于1的变换系数,当coeff_abs_level_greater1_flag 1700为0时,这指示相应变换系数是值为1的变换系数。在图17中,当coeff_abs_level_greater1_flag 1710在值为1的变换系数的位置处时,coeff_abs_level_greater1_flag 
1710的值为0。
[0240] 图18示出与图15的4×4变换单元1510相应的coeff_abs_level_greater2_flag 1800。
[0241] 参照图15至图18,设置了coeff_abs_level_greater2_flag 1800,其中,coeff_abs_level_greater2_flag 1800指示关于coeff_abs_level_greater1_flag 1700被设置为1的变换系数,相应的变换系数是否具有大于2的值。当coeff_abs_level_greater2_flag 1800为1时,这指示相应的变换系数是值大于2的变换系数,当coeff_abs_level_greater2_flag 1800为0时,这指示相应的变换系数是值为2的变换系数。在图18中,当coeff_abs_level_greater2_flag 1810在值为2的变换系数的位置处时,coeff_abs_level_greater2_flag 1810的值为0。
[0242] 图19示出图15的与4×4变换单元1510相应的coeff_abs_level_remaining 1910。
[0243] 参照图15至图19,可通过计算每个变换系数的(absCoeff-baseLevel)来获得coeff_abs_level_remaining 1900,其中,coeff_abs_level_remaining 1900是指示剩余变换系数的大小信息的语法元素。
[0244] 如上所述,作为指示剩余变换系数的大小信息的语法元素的 coeff_abs_level_remaining 1900具有变换系数的大小(absCoeff)与基本等级值baseLevel之间的差,其中,基本等级值baseLevel是通过使用coeff_abs_level_greater1_flag和coeff_abs_leve_greater2_flag来确定的。根据等式(baseLevel=1+coeff_abs_level_greather1_flag+coeff_abs_level_greather2_flag)确定基本等级值baseLevel,并且根据等式(coeff_abs_level_remaining=absCoeff-baseLevel)确定coeff_abs_level_remaining。
[0245] 参数确定单元2310根据示出的扫描顺序读取coeff_abs_level_remaining 1900,以获得变换系数的大小,诸如,“0 3 12 3 3 3 4 4 5 5 8 8”。
[0246] 参数确定单元2310根据扫描顺序来顺序地确定在对每个变换系数的大小信息的二值化中使用的参数(cRiceParam)。首先,初始参数(cRiceParam)被设置为0。根据上述算法,仅在满足条件cLastAbsCoeff>3*(1<3*(1<<1)(即,cLastAbsCoeff>6)的条件时参数(cRiceParam)再次被更新。参照图19,作为倒数第二个变换系数的大小的“8”(1930)大于6,因此,参数(cRiceParam)从
1被更新到2。
[0247] 图20示出显示与图15至图19中示出的变换单元1510、1600、1700、1800和1900相关的语法元素的表。在图20中,GTR1表示coeff_abs_level_greater1_flag,GTR2表示coeff_abs_leve_greater2_flag并且Remaining表示coeff_abs_leve1_remaining。参照图20,指示变换系数等级、coeff_abs_leve1_remaining的语法元素不是二进制值,因此通过使用参数进行二值化。
[0248] 图21示出根据本发明的实施例被二值化的coeff_abs_leve1_remaining的另一示例。
[0249] 如上所述,初始参数(cRiceParam)被设置为0,并且初始参数(cRiceParam)仅在满足cLastAbsCoeff>3*(1<
[0250] 参照图21,在对值为12并第一次大于3的变换系数2110进行处理之后,初始设置的值为0的参数(cRiceParam)增加+1。在值为12的变换系数2110之后,更新后的参数(cRiceParam)被保持,直到大于作为下一临界值的6的变换系数被处理。在值为8(大于作为下一临界值的6)的变换系数2120被处理之后,参数(cRiceParam)增加+1从而值为2。在值为8的变换系数2120之后,更新后的参数(cRiceParam)被保持,直到大于作为下一临界值的12的变换系数被处理。在值为8的变换系数2120之后,在值为13(大于作为下一临界值的12)的变换系数2130被处理之后,参数(cRiceParam)增加+1从而值为3。在值为13的变换系数2130之后,更新后的参数(cRiceParam)被保持,直到大于作为下一临界值的24的变换系数被处理。在值为13的变换系数2130之后,在值为25(大于作为下一临界值的24)的变换系数2140被处理之后,参数(cRiceParam)增加+1从而值为4。在值为25的变换系数2140之后的变换系数的二值化操作中,由于参数(cRiceParam)已达到最大值4,因此参数(cRiceParam)4被使用,并且更新操作不再被执行。
[0251] 如上所述,当在指示当前变换系数的大小的变换系数等级语法元素coeff_abs_level_remaining进行二值化时使用的参数(cRiceParam)通过使用参数确定单元2310被确定时,比特串产生单元2320基于通过使用参数(cRiceParam)确定的参数(cTrMax)来将变换系数等级语法元素coeff_abs_level_remaining分类为前缀和后缀,并通过针对前缀和后缀应用预先设置的二值化方法来对前缀和后缀进行二值化,进而输出与coeff_abs_level_remaining相应的比特串。
[0252] 图24是示出根据本发明的实施例的指示变换系数等级的语法元素的熵 编码方法的流程图。
[0253] 参照图24,在操作2410,参数确定单元2310根据预定扫描顺序获得指示包括在变换单元中的变换系数的大小的变换系数等级语法元素(coeff_abs_level_remaining)。
[0254] 在操作2420,参数确定单元2310将在当前变换系数之前被编码的先前变换系数(cLastAbsCoeff)的大小与基于先前参数(cLastRiceParam)获得的预定临界值进行比较,进而确定是否更新先前参数(cLastRiceParam),其中,先前参数(cLastRiceParam)在对指示先前变换系数(cLastAbsCoeff)的大小的先前变换系数等级语法元素的二值化中被使用。
[0255] 在操作2430,参数确定单元2310基于操作2420的确定的结果更新或保持先前参数,进而获得在对指示当前变换系数的大小的变换系数等级语法元素的二值化中使用的参数。如上所述,参数确定单元2310将基于th=3*(1<
[0256] 在操作2440,比特串产生单元2320通过使用获得的参数(cRiceParam)对变换系数等级语法元素(coeff_abs_level_remaining)进行二值化,进而输出与当前变换系数的变换系数等级语法元素(coeff_abs_level_remaining)相应的比特串。
[0257] 根据上述的根据本发明的实施例的对变换系数等级语法元素进行熵编码的操作,即使在根据预定的扫描顺序处理的变换系数之中存在值突然变大的变换系数,参数也不必突然地修改而可逐渐地增加+1。
[0258] 同时,还可将上述的根据本发明的实施例的更新参数以便对变换系数等级语法元素进行熵编码的操作应用到对除变换系数等级语法元素以外的语法元素的二值化中。
[0259] 根据本发明的实施例的更新参数的操作可应用于在通过使用Golomb-Rice码对其它语法元素进行二值化时使用的参数。另外,根据本发明的实施例的更新参数的方法可应用于更新在通过应用二值化方法(诸如,级联码二值化方法)来对语法元素进行二值化时使用的参数。当级联码被使用时,语法元素被分类为前缀和后缀,根据本发明的实施例的更新参数的方法 可应用于更新预定参数,以用于确定前缀和后缀的目的。类似地,根据本发明的实施例的更新参数的方法可应用于更新在通过如在低复杂度熵编码(LCEC)方法中使用定长码和变长码(VLC)表来对语法元素进行编码时使用的参数。
[0260] 图25是示出根据本发明的实施例的熵解码设备2500的框图。熵解码设备2500与图2的视频解码设备200的熵解码器220相应。熵解码设备2500执行上述的由熵编码设备2000执行的熵编码操作的相反操作。
[0261] 参照图25,熵解码设备2500包括上下文建模器2510、常规解码引擎2520、旁路解码引擎2530和反二值化器2540。
[0262] 将通过使用旁路编码而被编码的语法元素输出到旁路解码器2530以解码,并通过使用常规解码器2520对通过常规编码而被编码的语法元素进行解码。常规解码器2520基于通过使用上下文建模器2510而提供的上下文模型对当前语法元素的二进制值进行算术解码,进而输出比特串。根据变换系数的二进制位索引可预先设置在对指示变换系数的大小信息的语法元素coeff_abs_level_remaining进行算术解码时使用的上下文模型。
[0263] 反二值化器2540再次将通过使用常规解码引擎2520或旁路解码引擎2530算术解码的比特串恢复为语法元素。
[0264] 熵解码设备2500除了对coeff_abs_level_remaining进行算术解码以外,还对与变换单元相关的语法元素(诸如,SigMap、coeff_abs_level_greater1_flag或coeff_abs_leve_greater2_flag)进行算术解码,并进行输出。当恢复了与变换单元相关的语法元素时,基于恢复的语法元素通过使用反量化、逆变换和预测解码来对包括在变换单元中的数据进行解码。
[0265] 图26是示出根据本发明的实施例的反二值化设备2600的结构的框图。图26的反二值化设备2600与图25的反二值化器2540相应。
[0266] 参照图26,反二值化设备2600包括参数确定单元2610和语法元素恢复单元2620。
[0267] 参数确定单元2610将在当前变换系数之前被解码的先前变换系数的大小与基于先前参数而获得的预定临界值进行比较,进而确定是否更新先前参数,其中,先前参数在对指示先前变换系数的大小的先前变换系数等级语法元素的反二值化中被使用。参数确定单元2610基于确定的结果更新或保持先前参数,从而获得在对指示当前变换系数的大小的变换系数等级语法元素进 行反二值化时使用的参数。以与上述的图23的参数确定单元2310相同的方式,参数确定单元2610将基于等式(th=3*(1<
[0268] 语法元素恢复单元2620通过使用获得的参数对与当前变换系数等级语法元素相应的比特串进行反二值化,进而恢复指示当前变换系数的大小的语法元素(coeff_abs_level_remaining)。详细地,语法元素恢复单元2620将比特串分类为前缀比特串和后缀比特串,并通过使用截断一元二值化方法对前缀比特串进行反二值化并通过使用k阶(k是cRiceParam+1)指数哥伦布方法对后缀比特串进行反二值化来恢复语法元素(coeff_abs_level_remaining),其中,前缀比特串相应于通过使用截断一元二值化方法对与Min(cTrMax,coeff_abs_level_remaining)相应的值进行二值化而获得的比特串,后缀比特串相应于通过使用k阶指数哥伦布方法对与(coeff_abs_level_remaining-cTrMax)相应的值进行二值化而获得的比特串。
[0269] 图27是示出根据本发明的实施例的对变换系数等级进行熵解码方法的流程图。
[0270] 参照图27,在操作2710,从比特流解析指示包括在变换单元中的变换系数的大小的变换系数等级语法元素。解析出的变换系数等级语法元素是均由0和1构成的比特串。
[0271] 在操作2720,参数确定单元2610将在当前变换系数之前被恢复的先前变换系数(cLastAbsCoeff)的大小与基于先前参数(cLastRiceParam)获得的预定临界值进行比较,进而确定是否更新先前参数(cLastRiceParam),其中,先前参数(cLastRiceParam)在对指示先前变换系数(cLastAbsCoeff)的大小的先前变换系数等级语法元素的二值化中被使用。
[0272] 在操作2730,参数确定单元2610基于确定的结果更新或保持先前参数(cLastRiceParam),进而获得在对指示当前变换系数的大小的变换系数等级语法元素(coeff_abs_level_remaining)的二值化中使用的参数(cRiceParam)。如上所述,参数确定单元2610将基于等式(th=3*(1<
[0273] 在操作2740,语法元素恢复单元2620通过使用获得的参数对当前变换系数等级语法元素进行反二值化,以获得当前变换系数的大小信息。如上所述,由于coeff_abs_level_remaining=absCoeff-baseLevel,除coeff_abs_level_remaining之外,coeff_abs_level_greater1_flag和coeff_abs_leve_greater2_flag也被恢复,当基本等级值baseLevel根据等式(baseLevel=1+coeff_abs_level_greather1_flag+coeff_abs_level_greather2_flag)被确定时,当前变换系数的大小可根据等式(absCoeff=coeff_abs_level_remaining+baseLevel)被确定。
[0274] 本发明还可被实施为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可存储可随后由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储装置等。计算机可读记录介质还可分布于联网的计算机系统,从而计算机可读代码以分布的方式被存储和执行。
[0275] 尽管已参照本发明的示例性实施例具体示出和描述了本发明,但本领域的普通技术人员将理解,在不脱离由权利要求限定的本发明的精神和范围的情况下可在形式和细节上进行各种改变。因此,本发明的范围不由本发明的详细描述而由权利要求来限定,在所述范围内的所有不同将被解释为包括在本发明中。
QQ群二维码
意见反馈