[0088] 根据现有技术,如果在高级语法中设置的STU大于4X4(即,如果log2TrafoSize> 2 ),则存在以下问题:不能跳过变换的执行。
[0089] 为了解决上述问题,本发明提供了一种方法,其能够基于由编码器确定的最大变 换跳过块尺寸来确定是否要跳过变换并且跳过变换处理,即使由编码器确定的最大变换块 尺寸是变化的也是如此。
[0090] 最大变换块跳过块尺寸用于对其的变换处理可以被跳过的变换块尺寸。最大变换 跳过块尺寸可以使用块尺寸本身来表示或使用以2为底的对数值来表示。例如,如果最大变 换跳过块尺寸是16X16,则可以表示成最大变换跳过块尺寸= 16,或者可以表示成最大变 换跳过块尺寸= l〇g2(16)=4。在本说明书中,为了便于简单描述,实际块尺寸(例如,16X 16或32X32的表述)或实际块尺寸的对数值(例如,4或5的表述,即以2为底16或32的对数 值)可互换地用于描述最大变换跳过块尺寸而无疑问困惑。就是说,为了便于描述,最大变 换块尺寸使用以2为底的对数来指示,并且其值被称为L 〇g2MaxTraf〇SizeSkip。为了便于描 述,这样的描述方法除了描述最大变换跳过块尺寸以外,还可互换地用于以相同的方式来 表示块或变换块的尺寸。
[0091 ]-如果当前块的尺寸等于或小于Log2MaxTrafoSizeSkip值并且在压缩的位流(或 数据)上通过信号传送相应的信息,则编码器确定是否要跳过变换。
[0092]-如果当前块的尺寸等于或小于Log2MaxTrafoSizeSkip值,则解码器从压缩的位 流(或数据)读取指示是否要跳过逆变换的标志。如果标志的值是1,则解码器跳过逆变换的 执行,并且如果标志是0,则解码器执行逆变换(根据对标志的值的定义,与执行变换有关的 0和1的意义可以相反)。
[0093] 图像编码方法
[0094] 图3是示意性地示出根据本发明的实施方式的用于基于最大变换跳过块尺寸来确 定是否要跳过变换并且执行编码的流程图。图3所示的步骤中的每个步骤可以在参照图1所 描述的图像编码装置的相应元件内执行。
[0095] 编码器可以通过对当前编码目标块执行帧内预测或帧间预测来生成预测块,然后 获得与当前编码目标块和预测块之间的差对应的残差信号。在这种情况下,编码器可以基 于变换块单位来执行用于变换残差信号的处理,并且该处理可以根据诸如图3的方法来执 行。
[0096] 首先,在获得残差信号之后执行变换时,编码器将当前变换块的尺寸与最大变换 跳过块尺寸的值进行比较(S310)。最大变换跳过块尺寸的值的传送是通过在与残差编码数 据传送相比的较高层(例如,图片参数集、序列参数集或切片报头)中传递最大变换跳过块 尺寸(Log2MaxTrafoSizeSkip)的值(或能够确定该值的信息)来实现的。最大变换跳过块尺 寸调整可以允许变换跳过的最大TU尺寸。
[0097] 此外,限制Log2MaxTrafoSizeSkip值使得其等于或大于由编码器确定的最小变换 单位(STU)的尺寸,并且如果STU的尺寸大于4 X 4,则基于编码器的确定结果来控制是否要 跳过块变换的执行。例如,如果STU的尺寸是8 X 8,则最大变换跳过块尺寸可以从8 X 8开始 并且可以被设置成高达最大变换块的尺寸(例如,这被假设为32 X 32)(在这种情况下, 1^〇区21^11'^;1;'〇512 6 51^口值可以是3至5)。例如,在这种情况下,用户或编码器可以将 Log2MaxTrafoSizeSkip确定成4。在这种情况下,对于仅针对8 X 8或16 X 16的块尺寸而言, 可以跳过块变换。同样地,对于另一示例,如果STU的尺寸是16 X 16,则最大变换跳过块尺寸 可以从16X16开始并且可以被设置成32 X 32,即最大变换块的尺寸(在这样情况下, Log2MaxTrafoSizeSkip值是4至5)。如果用户或编码器已经设置Log2MaxTrafoSizeSkip = 4,则仅对于16X16的块尺寸而言,可以跳过块变换。
[0098] 如果当前变换块的尺寸小于或等于最大变换跳过块尺寸,则编码器确定是否要跳 过对当前变换块的变换(S320)。在这种情况下,当对当前变换块执行变换时,当前变换块变 成变换块数据。如果跳过变换,则当前变换块可以是指像素域数据。就是说,为了避免术语 的模糊,术语"变换块"用作综合包括两个概念的概念。
[0099] 在这种情况下,可以使用标志以便提供是否要跳过对当前变换块的变换的通知。 此外,可以基于该标志的值来执行变换或跳过变换。如果当前T U尺寸大于 Log2MaxTrafoSizeSkip值,贝lj不通过信号传送提供是否要跳过变换的通知的标志,并且始 终执行变换。
[0?00] 例如,可以使用transform_skip_flag(变换跳过标志),即指示是否要跳过变换的 标志。如果transform_skip_f lag的值为1,则它可以指示已经跳过变换而未对当前变换块 执行变换。如果transform_skip_flag的值是0,则它可以指示已经对当前变换块执行了变 换。
[0101]如果当前变换块的尺寸等于或小于最大变换块跳过块尺寸,则可以基于是否要跳 过对当前变换块的变换的确定结果来对指示是否要跳过变换的标志(例如,transform_ skip_flag)进行编码并且将其传送至解码器。在这种情况下,如果指示是否要跳过变换的 标志(例如,transform_skip_flag)的值为1(S330),则编码器跳过执行对当前变换块的变 换(S340)。否则,编码器对当前变换块执行变换(S345)。
[0102]同时,如果作为在步骤S310处的确定的结果,当前变换块的尺寸大于最大变换跳 过块尺寸,则编码器对当前块执行变换(S345)。在这种情况下,不对指示是否要跳过变换的 标志(例如,transform_skip_flag)进行编码并且不向解码器传送标志信息。
[0103] 位流的配置
[0104] 根据本发明的位流被配置成如下。
[0105] [表 4]
[0106]
[0107] 在这种情况下,编码器需要向解码器通知Log2MaxTrafoSizeSkip信息。用于指示 压缩位流中的指示最大变换跳过块尺寸(或Log2MaxTrafoSizeSkip)的信息的实现方法可 以是各种各样的。
[0108] 第一实现示例是用于指示位流中的不具有任何改变的Log2MaxTrafoSizeSkip值 本身的方法。用于这样的方法的语法信息被称为l〇g2_max_transform_block_size_ 1^3118;1;'〇1'1]1_81^。(1〇82最大变换块尺寸变换跳过)。例如,如果可以允许变换跳过的最大变 换块尺寸是4 X 4,则以2为底的作为变换块一个边的长度的4的对数值是2。因此,第一实现 示例是用于在压缩位流中设置语法元素,即l〇g2_max_transform_block_size_transform_ skip,并且发送2作为语法元素的值的实现方法(方法1)。
[0109] 用于指示在压缩的位流中的指示最大变换跳过块尺寸(或 Log2MaxTrafoSizeSkip)的信息的另一实现方法如下。最大变换跳过块尺寸相对于4 X4变 换块尺寸的相对值可以被表示为以2为底的对数值。该值被称为log2_max_transform_ skip_block_size_minus2(log2最大变换跳过块尺寸减2)。该方面的详细示例如下。如果可 以允许变换跳过的最大变换块尺寸是8 X 8,则其中8和4以2为底数的对数值分别是3和2,并 且3与2之间的差,即3-2,是1。因此,该方法是用于设置压缩位流中的被称为log2_max_ transform_skip_block_size_minus2并且发送1作为语法元素的值的实现方法(方法2)。方 法2是有利的,这是因为log2_max_transform_skip_block_size_minus2值具有不是负数的 属性并且因而在执行编码时可以降低该值被错误设置的可能性。
[0110] 用于指示在压缩的位流中的指示最大变换跳过块尺寸(或 Log2MaxTrafoSizeSkip)的信息的另一实现方法如下。最大变换块尺寸相对于由编码器确 定的指示最小变换块尺寸的值(该值的对数表述被设为Log2MinTrafoSize)的相对值可以 被指示(为了方便起见,这被称为偏移值)。在这种情况下,该偏移值可以被指示而无任何改 变。替选地,该值可以被表示成以2为底的对数值(在位流中指示该值的语法元素被称log2_ max_transform_block_size_transform_skip_minus_min_transform( log2 最大变换块尺 寸变换跳过减最小变换))。这方面的详细示例如下。如果可以允许变换跳过的最大变换块 尺寸是8X8并且由编码器确定的可用最小变换块尺寸是4X4,则以2为底8和4的对数值分 别是3和2,并且3与2之间的差,即3_2,是1。因此,该方法是用于将偏移值(或log2_max_ transform-block_size_transform-skip-minus-min_transform)指亦为 1 的实现方法(方 法3)。如同方法2,由于偏移值(或log2_ _max_transform_block_size_transform_skip_ minus_min_transform)具有不是负数的属性并且因此在执行编码时可以降低该值被错误 地设置的可能性,所以方法3是便利的。
[0111 ] 通过这样的各种实现示例,Log2MaxTrafoSizeSkip信息最终可以被确定为使用通 过压缩数据或位流的相应值传递的信息的下式之一