CN112106373A - 用于图像编/解码的方法和装置及存储比特流的记录介质 - Google Patents

用于图像编/解码的方法和装置及存储比特流的记录介质 Download PDF

Info

Publication number
CN112106373A
CN112106373A CN201980031926.8A CN201980031926A CN112106373A CN 112106373 A CN112106373 A CN 112106373A CN 201980031926 A CN201980031926 A CN 201980031926A CN 112106373 A CN112106373 A CN 112106373A
Authority
CN
China
Prior art keywords
transform
block
current block
information
residual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980031926.8A
Other languages
English (en)
Inventor
林成昶
姜晶媛
李河贤
李镇浩
金晖容
李英烈
金南煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electronics and Telecommunications Research Institute ETRI
Industry Academy Cooperation Foundation of Sejong University
Original Assignee
Electronics and Telecommunications Research Institute ETRI
Industry Academy Cooperation Foundation of Sejong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Electronics and Telecommunications Research Institute ETRI, Industry Academy Cooperation Foundation of Sejong University filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of CN112106373A publication Critical patent/CN112106373A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及一种用于基于变换的图像编码/解码的方法和装置。根据本发明的一种用于图像解码的方法可包括以下步骤:从多个变换核中选择一个变换核,基于所选的变换核对当前块的残差块执行逆变换,并且基于经过逆变换的残差块重建当前块。

Description

用于图像编/解码的方法和装置及存储比特流的记录介质
技术领域
本发明涉及一种用于对图像进行编码/解码的方法和设备。具体地,本发明涉及一种用于基于变换、混排、重排和翻转对视频图像进行编码/解码的方法和设备。
背景技术
近来,在各种应用领域中对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求已经增加。然而,与传统图像数据相比,更高分辨率和质量的图像数据具有越来越多的数据量。因此,当通过使用诸如传统有线和无线宽带网络的介质来发送图像数据时,或者当通过使用传统存储介质来存储图像数据时,发送和存储的成本增加。为了解决随着图像数据的分辨率和质量的增加而发生的这些问题,对于更高分辨率和更高质量的图像,需要高效的图像编码/解码技术。
图像压缩技术包括各种技术,包括:从当前画面的先前画面或后续画面对包括在当前画面中的像素值进行预测的帧间预测技术;通过使用当前画面中的像素信息来对包括在当前画面中的像素值进行预测的帧内预测技术;用于压缩残差信号的能量的变换和量化技术;将短码分配给具有高出现频率的值并将长码分配给具有低出现频率的值的熵编码技术;等。可通过使用这样的图像压缩技术来有效地压缩图像数据,并且可发送或存储该图像数据。
发明内容
技术问题
本发明的目的是提供一种用于对图像进行编码和解码以提高编码/解码效率的方法和设备。
本发明的另一目的是提供一种用于基于变换、混排、重排和/或翻转对图像进行编码和解码以提高编码/解码效率的方法和设备。
本发明的另一目的是提供一种用于对图像进行编码和解码以提高图像的变换效率的方法和设备。
本发明的另一目的是提供一种存储由本发明的图像编码方法/设备生成的比特流的记录介质。
技术方案
根据本发明的实施例的一种图像解码方法可包括:在多个变换核中选择一个变换核,基于所选的变换核对当前块的残差块执行逆变换,并且基于经过逆变换的残差块重建当前块。
在根据本发明的图像解码方法中,选择变换核的步骤可基于包括在用于用信号发送的比特流中的关于所述变换核的信息来执行。
在根据本发明的图像解码方法中,当当前块是经过帧内预测的块时,选择变换核的步骤可基于残差块的尺寸和形状中的至少一个来执行。
在根据本发明的图像解码方法中,当残差块的水平长度在预定范围内并且所述水平长度不比残差块的垂直长度长时,将被应用于残差块的水平变换的变换核可以是第一变换核,并且当残差块的水平长度不在所述预定范围内或者所述水平长度比所述垂直长度长时,将被应用于残差块的水平变换的变换核可以是第二变换核。
在根据本发明的图像解码方法中,所述预定范围可以是4个样点到16个样点的范围。
在根据本发明的图像解码方法中,第一变换核可以是DST-7,并且第二变换核可以是DCT-2。
在根据本发明的图像解码方法中,当对包括在当前块中的多个子块中的每个子块执行帧内预测时,选择变换核的步骤可基于残差块的尺寸和帧内预测模式中的至少一个来执行。
在根据本发明的图像解码方法中,当当前块是经过帧间预测的块并且仅对通过对当前块进行分区而获得的块中的一个子残差块执行变换时,选择变换核的步骤可基于关于当前块的分区的信息和关于所述子残差块在当前块内的位置的信息来执行。
在根据本发明的图像解码方法中,关于当前块的分区的信息可包括指示分区的方向是垂直分区还是水平分区的分区方向信息和指示分区比率的分区比率信息中的至少一个。
在根据本发明的图像解码方法中,关于当前块的分区的信息和关于所述子残差块的位置的信息可被包括在用于用信号发送的比特流中。
根据本发明的另一实施例的一种图像编码方法可包括:在多个变换核中选择一个变换核;基于所选的变换核对当前块的残差块执行变换;并且基于经过变换的残差块对当前块进行编码。
在根据本发明的图像编码方法中,关于所选的变换核的信息可被包括在用于用信号发送的比特流中。
在根据本发明的图像编码方法中,当当前块是经过帧内预测的块时,选择变换核的步骤可基于残差块的尺寸和形状中的至少一个来执行。
在根据本发明的图像编码方法中,当残差块的水平长度在预定范围内并且所述水平长度不比残差块的垂直长度长时,将被应用于残差块的水平变换的变换核可以是第一变换核,并且当残差块的水平长度不在所述预定范围内或者所述水平长度比所述垂直长度长时,将被应用于残差块的水平变换的变换核可以是第二变换核。
在根据本发明的图像编码方法中,所述预定范围可以是4个样点到16个样点的范围,并且第一变换核可以是DST-7,并且第二变换核可以是DCT-2。
在根据本发明的图像编码方法中,当对包括在当前块中的多个子块中的每个子块执行帧内预测时,选择变换核的步骤可基于残差块的尺寸和帧内预测模式中的至少一个来执行。
在根据本发明的图像编码方法中,当当前块是经过帧间预测的块并且仅对通过对当前块进行分区而获得的块中的一个子残差块执行变换时,选择变换核的步骤可基于关于当前块的分区的信息和关于所述子残差块在当前块内的位置的信息来执行。
在根据本发明的图像编码方法中,关于当前块的分区的信息可包括指示分区的方向是垂直分区还是水平分区的分区方向信息和指示分区比率的分区比率信息中的至少一个。
在根据本发明的图像编码方法中,关于当前块的分区的信息和关于所述子残差块的位置的信息可被包括在用于用信号发送的比特流中。
根据本发明的另一实施例的一种计算机可读记录介质可以是存储由图像解码设备接收并使用以重建包括在图像中的当前块的比特流的计算机可读记录介质,其中,所述比特流包括关于当前块的残差信息,所述残差信息可被重建并被用于生成当前块的残差块,所述残差块可基于在多个变换核中选择的一个变换核被逆变换,并且经过逆变换的残差块可被用于重建当前块。
根据本发明的另一实施例的一种计算机可读记录介质可存储通过根据本发明的图像编码方法生成的比特流。
有益效果
根据本发明,可提供一种用于对图像进行编码和解码以提高编码/解码效率的方法和设备。
此外,根据本发明,可提供一种用于基于变换、混排、重排和/或翻转对图像进行编码和解码以提高编码/解码效率的方法和设备。
此外,根据本发明,可提供一种用于对图像进行编码和解码以提高图像的变换效率的方法和设备。
此外,根据本发明,可提供一种存储由本发明的图像编码/解码方法/设备生成的比特流的记录介质。
附图说明
图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
图2是示出根据应用了本发明的实施例的解码设备的配置的框图。
图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。
图4是示出帧内预测处理的示图。
图5是示出画面间预测处理的实施例的示图。
图6是示出变换和量化处理的示图。
图7是示出根据本发明的DCT-2的频域中的基矢量的示图。
图8是示出根据本发明的DST-7的每个频域中的基矢量的示图。
图9是示出根据在帧间模式下预测的8×8的编码单元(CU)的2N×2N的预测单元(PU)内的位置的平均残差值的分布的示图,其中,“Cactus”序列是通过在低延迟-P配置文件(low delay-P profile)环境中进行测试而获得的。
图10是示出在帧间预测模式(帧间模式)下预测的8×8的编码单元(CU)的2N×2N的预测单元(PU)内的残差信号的分布特征的三维曲线图。
图11是示出根据本发明的编码单元(CU)的2N×2N的预测单元(PU)模式下的残差信号的分布特征的示图。
图12是示出根据本发明的对2N×2N的预测单元(PU)进行混排之前和之后的残差信号的分布特征的示图。
图13是示出根据本发明的子块的4×4残差数据重排的示例的示图。
图14(a)和图14(b)是示出根据预测单元(PU)模式和变换单元(TU)的混排方法的编码单元(CU)的变换单元(TU)分区结构的实施例的示图。
图15是示出根据2N×2N的预测单元(PU)的残差信号的分布执行DCT-2变换和SDST变换的结果的示图。
图16是示出根据本发明的SDST处理的示图。
图17是示出根据本发明的针对经过帧间预测的编码单元(CU)的每个预测单元(PU)分区模式的变换单元(TU)的分区以及残差绝对值的大小的分布特征的示图。
图18是示出根据本发明的实施例的预测单元(PU)内的深度为零的变换单元(TU)的残差信号扫描顺序和重排顺序的示图。
图19是示出根据本发明的通过率失真优化(RDO)的DCT-2或SDST选择编码处理的流程图。
图20是示出根据本发明的选择DCT-2或SDST用于解码的处理的流程图。
图21是示出根据本发明的使用SDST的解码处理的流程图。
图22和图23分别示出在根据本发明的编码器和解码器中被执行残差信号重排(残差重排)的位置。
图24是示出使用根据本发明的SDST方法的解码方法的实施例的示图。
图25是示出使用根据本发明的SDST方法的编码方法的实施例的示图。
图26是示出在翻转之后执行变换的方法中的编码处理的实施例的示图。
图27是示出在逆变换之后执行翻转的方法中的解码处理的实施例的示图。
图28是示出在变换之后执行翻转的方法中的编码处理的实施例的示图。
图29是示出在翻转之后执行逆变换的方法中的解码处理的实施例的示图。
图30是示出在量化之后执行翻转的方法中的编码处理的实施例的示图。
图31是示出在翻转之后执行反量化的方法中的解码处理的实施例的示图。
图32是示出对残差块执行翻转的示图。
图33是示出用于将对尺寸为8×8的残差块执行翻转实现到硬件中的实施例的示图。
图34是示出对残差块执行翻转和变换的示图。
具体实施方式
可对本发明进行各种修改,并且存在本发明的各种实施例,其中,现在将参照附图提供并详细描述本发明的各种实施例的示例。然而,虽然示例性实施例可被解释为包括本发明的技术构思和技术范围中的所有修改、等同或替代,但是本发明不限于此。相似的附图标号指代在各个方面的相同或相似的功能。在附图中,为了清楚起见,元件的形状和尺寸可被夸大。在本发明的以下详细描述中,参照通过说明的方式示出可实践本发明的具体实施例的附图。充分详细地描述这些实施例以使得本领域技术人员能够实现本公开。应理解,本公开的各种实施例虽然不同,但是不必相互排斥。例如,在不脱离本公开的精神和范围的情况下,这里结合一个实施例描述的特定特征、结构和特性可在其他实施例内实现。此外,应理解,在不脱离本公开的精神和范围的情况下,可修改每个公开的实施例内的各个元件的位置或布置。因此,以下详细描述不应被认为是限制意义的,并且本公开的范围仅由适当解释的所附权利要求以及权利要求所要求保护的等同物的全部范围来限定。
在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但是组件不应被解释为限于该术语。该术语仅被用于将一个组件与其它组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可类似地被称为“第一”组件。术语“和/或”包括多个项的组合或多个术语中的任意一个。
将理解,当元件在本说明书中被简单地称为“连接到”或“耦接到”另一元件而非“直接连接到”或“直接耦接到”另一元件时,它可“直接连接到”或“直接耦接到”另一元件,或者在有其它元件介于该元件与另一元件之间的情况下被连接到或耦接到另一元件。相反,应理解,当元件被称为“直接耦接”或“直接连接”到另一元件时,不存在中间元件。
此外,在本发明的实施例中所示的构成部件被独立地示出,以便表示彼此不同的特性功能。因此,这不表示各个构成部件以分离的硬件或软件为构成单元来构成。换句话说,为了方便,各个构成部件包括所列举的构成部件中的每一个。因此,可将各个构成部件中的至少两个构成部件组合以形成一个构成部件,或者可将一个构成部件划分为多个构成部件以执行每个功能。若不脱离本发明的本质,将各个构成部件组合的实施例以及对一个构成部件划分的实施例也被包括在本发明的范围内。
本说明书中使用的术语仅被用于描述特定实施例,而不旨在限制本发明。以单数形式使用的表达涵盖复数形式的表达,除非它在上下文中具有明显不同的含义。在本说明书中,需理解的是,诸如“包括”、“具有”等的术语旨在指示说明书中所公开的特征、数字、步骤、动作、元件、部件或其组合的存在,而不旨在排除可存在或可添加一个或更多个其他特征、数字、步骤、动作、元件、部件或其组合的可能性。换句话说,当特定元件被称为“被包括”时,不排除除了对应元件之外的元件,而是可在本发明的实施例或本发明的范围中包括附加元件。
此外,一些构件可以不是执行本发明的必要功能的不可缺少的构件,而是仅改善其性能的选择性构件。可通过仅包括除了用于改善性能的构件之外的用于实现本发明的本质的不可缺少的构成部件来实现本发明。仅包括除了用于仅改善性能的选择性构件之外的不可缺少的构件的结构也被包括在本发明的范围内。
在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,由于公知的功能或结构可能不必要地使对本发明的理解模糊不清,因此将不详细描述公知的功能或结构。附图中的相同的构成元件由相同的附图标号表示,并且将省略对相同元件的重复描述。
在下文中,图像可表示构成视频的画面,或者可表示视频本身。例如,“图像的编码或解码或者编码和解码两者”可表示“运动画面的编码或解码或者编码和解码两者”,并且可表示“运动画面的多个图像中的一个图像的编码或解码或者编码和解码两者”
在下文中,术语“运动画面”和“视频”可被用作相同的含义并且彼此替换。
在下文中,目标图像可以是作为编码的目标的编码目标图像和/或作为解码的目标的解码目标图像。此外,目标图像可以是输入到编码设备的输入图像以及输入到解码设备的输入图像。这里,目标图像可与当前图像具有相同的含义。
在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且彼此替换。
在下文中,目标块可以是作为编码的目标的编码目标块和/或作为解码的目标的解码目标块。此外,目标块可以是作为当前编码和/或解码的目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且彼此替换。
在下文中,术语“块”和“单元”可被用作相同的含义并且彼此替换。或者,“块”可表示特定单元。
在下文中,术语“区域”和“片段”可被彼此替换。
在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
在实施例中,特定信息、数据、标志、索引、元素和属性等中的每一个可具有值。信息、数据、标志、索引、元素和属性的值等于“0”可表示逻辑假或第一预定义值。换句话说,值“0”、假、逻辑假和第一预定义值可被彼此替换。信息、数据、标志、索引、元素和属性的值等于“1”可表示逻辑真或第二预定义值。换句话说,值“1”、真、逻辑真和第二预定义值可被彼此替换。
当变量i或j被用于表示列、行或索引时,i的值可以是等于或大于0或者等于或大于1的整数。也就是说,列、行、索引等可从0开始计数或者可从1开始计数。
术语的描述
编码器:表示执行编码的设备。即,表示编码设备。
解码器:表示执行解码的设备。即,表示解码设备。
块:是样点的M×N的阵列。这里,M和N可表示正整数,并且块可表示二维形式的样点阵列。块可指代单元。当前块可表示在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
样点:是构成块的基本单元。可根据比特深度(Bd)将样点表示为从0至2Bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
单元:可指编码单元和解码单元。当对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,当在编码或解码期间将单个图像分区为子划分单元时,单元可表示子划分单元。也就是说,可将图像分区为多个单元。当对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为具有比该单元的尺寸小的尺寸的子单元。根据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块以及每个颜色分量块的语法元素。单元可具有各种尺寸和形式,并且特别地,单元的形式可以是诸如正方形形状、矩形形状、梯形形状、三角形形状、五边形形状等的二维几何图形。此外,单元信息可包括指示编码单元、预测单元、变换单元等的单元类型以及单元尺寸、单元深度、单元的编码和解码的顺序等中的至少一个。
编码树单元:被配置有亮度分量Y的单个编码树块以及与色度分量Cb和Cr相关的两个编码树块。此外,编码树单元可表示包括块和每个块的语法元素。可通过使用四叉树分区方法、二叉树分区方法、三叉树分区方法等中的至少一种来对每个编码树单元进行分区,以配置诸如编码单元、预测单元、变换单元等的更低等级的单元。编码树单元可被用作用于指定当对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。这里,四叉树可表示四元树。
当编码块的尺寸落入第一预定范围内时,仅四叉树分区被允许用于该编码块。这里,第一预定范围可由仅可通过四叉树分区而被分区的编码块的最大尺寸和最小尺寸中的至少一个定义。指示允许四叉树分区的编码块的最大/最小尺寸的信息可作为包括在比特流中的数据被用信号发送,并且该信息可以以序列、画面参数、并行块组和条带(片段)中的至少一个为单位被用信号发送。可选地,编码块的最大/最小尺寸可以是在编码器/解码器中预设的固定尺寸。例如,当编码块的尺寸在从64×64至256×256的范围内时,可仅通过四叉树分区来对编码块进行分区。可选地,当编码块的尺寸大于变换块(TB)的最大尺寸时,可仅通过四叉树分区来对编码块进行分区。在这种情况下,将被分区为四块的块可以是编码块或变换块。在这种情况下,指示编码块的四叉树分区的信息(例如,split_flag)可以是指示编码单元是否通过四叉树分区被分区的标志。当编码块的尺寸落入第二预定范围内时,可仅通过二叉树分区或三叉树分区来对编码块进行分区。在这种情况下,以上四叉树分区的描述也可被应用于二叉树分区或三叉树分区。
编码树块:可被用作用于指定Y编码树块、Cb编码树块和Cr编码树块中的任意一个的术语。
邻近块:可表示与当前块相邻的块。与当前块相邻的块可表示与当前块的边界接触的块,或者距当前块位于预定距离内的块。邻近块可表示与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可表示与水平相邻于当前块的邻近块垂直相邻的块,或者与垂直相邻于当前块的邻近块水平相邻的块。
重建的邻近块:可表示与当前块相邻且已经在空间/时间上被编码或解码的邻近块。这里,重建的邻近块可表示重建的邻近单元。重建的空间邻近块可以是当前画面内的且已经通过编码或解码或者编码和解码两者被重建的块。重建的时间邻近块是参考图像内的与当前画面的当前块对应的位置处的块或该块的邻近块。
单元深度:可表示单元的分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元对应。此外,最高节点可具有最小深度值。在这种情况下,最高节点可具有等级0的深度。深度为等级1的节点可表示通过对第一单元进行一次分区而生成的单元。深度为等级2的节点可表示通过对第一单元进行两次分区而生成的单元。深度为等级n的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点和不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,最大等级的预定义值可以是3。根节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表达为树结构时,单元所在的等级可表示单元深度。
比特流:可表示包括编码图像信息的比特流。
参数集:与比特流内的配置中的头信息对应。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括并行块组、条带头和并行块头信息。此外,并行块组可表示包括多个并行块的组并且可与条带具有相同的含义。
解析:可表示通过执行熵解码来确定语法元素的值,或者可表示熵解码本身。
符号:可表示编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可表示熵编码目标或熵解码结果。
预测模式:可以是指示利用帧内预测进行编码/解码的模式或利用帧间预测进行编码/解码的模式的信息。
预测单元:可表示当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区,或者可被分区为多个更低等级的预测单元。多个分区可以是在执行预测或补偿时的基本单元。通过划分预测单元而生成的分区也可以是预测单元。
预测单元分区:可表示通过对预测单元进行分区而获得的形式。
参考画面列表:可表示包括用于画面间预测或运动补偿的一个或更多个参考画面的列表。LC(列表组合)、L0(列表0)、L1(列表1)、L2(列表2)、L3(列表3)等是各种类型的参考画面列表。一个或更多个参考画面列表可被用于画面间预测。
画面间预测指示符:可表示当前块的画面间预测方向(单向预测、双向预测等)。可选地,画面间预测指示符可表示用于生成当前块的预测块的参考画面的数量。另外可选地,画面间预测指示符可表示用于针对当前块执行画面间预测或运动补偿的预测块的数量。
预测列表利用标志:可表示是否使用包括在特定参考画面列表中的至少一个参考图像来生成预测块。可使用预测列表利用标志来推导帧间预测指示符,相反地,可使用帧间预测指示符来推导预测列表利用标志。例如,当预测列表利用标志指示第一值“0”时,这表示不使用对应的参考画面列表中包括的参考画面来生成预测块。当预测列表利用标志指示第二值“1”时,这表示使用对应的参考画面列表中包括的参考画面来生成预测块。
参考画面索引:可表示指示参考画面列表中的特定参考画面的索引。
参考画面:可表示特定块所参考以用于画面间预测或运动补偿的画面。可选地,参考画面可以是包括当前块所参考的用于帧间预测或运动补偿的参考块的画面。在下文中,术语“参考画面”和“参考图像”可被用作相同的含义并且可互换地使用。
运动矢量:是用于画面间预测或运动补偿的二维矢量,并且可表示参考画面与编码/解码目标画面之间的偏移。例如,(mvX,mvY)可表示运动矢量,mvX可表示水平分量,并且mvY可表示垂直分量。
搜索范围:可以是在帧间预测期间执行对运动矢量的搜索的2维区域。例如,搜索范围的尺寸可以是M×N。M和N可分别是正整数。
运动矢量候选:可表示当对运动矢量进行预测时成为预测候选的块或者该块的运动矢量。运动矢量候选可在运动矢量候选列表中被列出。
运动矢量候选列表:可表示使用一个或更多个运动矢量候选配置的列表。
运动矢量候选索引:表示指示运动矢量候选列表中的运动矢量候选的指示符。运动矢量候选索引还被称为运动矢量预测因子的索引。
运动信息:可表示包括参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引中的至少任意一个以及运动矢量、参考画面索引、画面间预测指示符的信息。
合并候选列表:可表示由合并候选组成的列表。
合并候选:可表示空间合并候选、时间合并候选、组合合并候选、组合双预测合并候选、零合并候选等。合并候选可具有画面间预测指示符、针对每个列表的参考画面索引以及诸如运动矢量的运动信息。
合并索引:可表示指示合并候选列表内的合并候选的指示符。合并索引可指示空间上和/或时间上与当前块相邻的重建块中的用于推导合并候选的块。合并索引可指示合并候选所拥有的运动信息中的至少一项。
变换单元:可表示当执行编码/解码(诸如残差信号的变换、逆变换、量化、反量化、变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个更低等级的变换单元。这里,变换/逆变换可包括首次变换/首次逆变换和二次变换/二次逆变换中的至少一个。
缩放:可表示将量化的等级乘以因子的处理。可通过对量化的等级进行缩放来生成变换系数。缩放还可被称为反量化。
量化参数:可表示当在量化期间使用变换系数来生成量化的等级时所使用的值。量化参数还可表示当在反量化期间通过对量化的等级进行缩放来生成变换系数时所使用的值。量化参数可以是映射在量化步长上的值。
增量量化参数:可表示编码/解码目标单元的预测的量化参数与量化参数之间的差值。
扫描:可表示对单元、块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵可被称为扫描,并且将系数的一维矩阵改变为二维矩阵可被称为扫描或逆扫描。
变换系数:可表示在编码器中执行变换之后生成的系数值。变换系数可表示在解码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或者量化的变换系数等级也可落入变换系数的含义内。
量化的等级:可表示通过在编码器中对变换系数或残差信号进行量化而生成的值。可选地,量化的等级可表示作为在解码器中经历反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义内。
非零变换系数:可表示具有除了零之外的值的变换系数或者具有除了零之外的值的变换系数等级或量化的等级。
量化矩阵:可表示在为了提高主观或客观图像质量而执行的量化处理或反量化处理中所使用的矩阵。量化矩阵还可被称为缩放列表。
量化矩阵系数:可表示量化矩阵内的每个元素。量化矩阵系数还可被称为矩阵系数。
默认矩阵:可表示在编码器或解码器中预先定义的预定量化矩阵。
非默认矩阵:可表示未在编码器或解码器中预先定义但由用户用信号发送的量化矩阵。
统计值:针对具有可计算的特定值的变量、编码参数、常数值等中的至少一个的统计值可以是对应特定值的平均值、加权平均值、加权和值、最小值、最大值、最频繁值、中值、插值中的一个或更多个。
图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
编码设备100可通过使用帧内模式或帧间模式或者帧内模式和帧间模式两者来执行输入图像的编码。此外,编码设备100可通过对输入图像进行编码来生成包括经过编码的信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可被切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可被切换到帧间模式。这里,帧内模式可表示帧内预测模式,并且帧间模式可表示帧间预测模式。编码设备100可针对输入图像的输入块生成预测块。此外,编码设备100可在预测块被生成之后使用预测块和输入块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块,或者被称为编码目标块。
当预测模式是帧内模式时,帧内预测单元120可将已被编码/解码且与当前块相邻的块的样点用作参考样点。帧内预测单元120可通过使用参考样点针对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可表示帧内的预测。
当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最佳匹配的区域,并且通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作该区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行针对参考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
运动补偿单元112可通过使用运动矢量针对当前块执行运动补偿来生成预测块。这里,帧间预测可表示帧间的预测或运动补偿。
当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行帧间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(AMVP)模式和当前画面参考模式中的哪一种模式被用于包括在对应编码单元中的预测单元的运动预测和运动补偿。然后,可根据所确定的模式不同地执行帧间预测或运动补偿。
减法器125可通过使用预测块和输入块的残差来生成残差块。残差块可被称为残差信号。残差信号可表示原始信号与预测信号之间的差。此外,残差信号可以是通过对原始信号与预测信号之间的差进行变换或量化或者变换和量化而生成的信号。残差块可以是块单元的残差信号。
变换单元130可通过执行残差块的变换来生成变换系数,并输出所生成的变换系数。这里,变换系数可以是通过执行残差块的变换而生成的系数值。当变换跳过模式被应用时,变换单元130可跳过残差块的变换。
可通过将量化应用于变换系数或残差信号来生成量化的等级。在下文中,量化的等级在实施例中还可被称为变换系数。
量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并输出所生成的量化的等级。这里,量化单元140可通过使用量化矩阵来对变换系数进行量化。
熵编码单元150可通过根据概率分布对由量化单元140计算出的值或对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出所生成的比特流。熵编码单元150可执行对图像的样点信息和用于对图像进行解码的信息的熵编码。例如,用于对图像进行解码的信息可包括语法元素。
当熵编码被应用时,符号被表示为使得将较小数量的比特分配给具有高生成机会的符号并将较大数量的比特分配给具有低生成机会的符号,因此,可减小针对将被编码的符号的比特流的大小。熵编码单元150可使用用于熵编码的编码方法,诸如指数Golomb、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。例如,熵编码单元150可通过使用可变长度编码/码(VLC)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法以及目标符号/二进制位的概率模型,并且通过使用推导出的二值化方法和上下文模型来执行算术编码。
为了对变换系数等级(量化的等级)进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。
编码参数可包括诸如在编码器中被编码并被用信号发送到解码器的语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可表示在对图像进行编码或解码时所需的信息。例如,以下项中的至少一个值或组合形式可被包括在编码参数中:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块形状、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、是否进行三叉树形式的分区、三叉树形式的分区方向(水平方向或垂直方向)、三叉树形式的分区形式(对称分区或非对称分区)、是否进行多类型树形式的分区、多类型树形式的分区方向(水平方向或垂直方向)、多类型树形式的分区形式(对称分区或非对称分区)、多类型树形式的分区树、预测模式(帧内预测或帧间预测)、亮度帧内预测模式/方向、色度帧内预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧内预测模式、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测角度、帧间预测指示符、预测列表利用标志、参考画面列表、参考画面、运动矢量预测因子索引、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并索引、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精度、变换类型、变换尺寸、是否使用初次(首次)变换的信息、是否使用二次变换的信息、初次变换索引、二次变换索引、是否存在残差信号的信息、编码块样式、编码块标志(CBF)、量化参数、量化参数残差、量化矩阵、是否应用帧内环路滤波器、帧内环路滤波器系数、帧内环路滤波器抽头、帧内环路滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环路滤波器、自适应环路滤波器系数、自适应环路滤波器抽头、自适应环路滤波器形状/形式、二值化/逆二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、有效系数标志、最后有效系数标志、针对系数组的单元的编码标志、最后有效系数的位置、针对系数值是否大于1的标志、针对系数值是否大于2的标志、针对系数值是否大于3的标志、关于其余系数值的信息、符号信息、重建的亮度样点、重建的色度样点、残差亮度样点、残差色度样点、亮度变换系数、色度变换系数、量化的亮度等级、量化的色度等级、变换系数等级扫描方法、在解码器侧的运动矢量搜索区域的大小、在解码器侧的运动矢量搜索区域的形状、在解码器侧的运动矢量搜索的次数、关于CTU尺寸的信息、关于最小块尺寸的信息、关于最大块尺寸的信息、关于最大块深度的信息、关于最小块深度的信息、图像显示/输出顺序、条带识别信息、条带类型、条带分区信息、并行块组识别信息、并行块组类型、并行块组分区信息、并行块识别信息、并行块类型、并行块分区信息、画面类型、输入样点的比特深度、重建样点的比特深度、残差样点的比特深度、变换系数的比特深度、量化的等级的比特深度、以及关于亮度信号的信息或关于色度信号的信息。
这里,用信号发送标志或索引可表示对应标志或索引由编码器熵编码并被包括在比特流中,并且可表示对应标志或索引由解码器从比特流熵解码。
当编码设备100通过帧间预测执行编码时,经过编码的当前图像可被用作针对随后被处理的另一图像的参考图像。因此,编码设备100可对经过编码的当前图像进行重建或解码,或者将重建的或经过解码的图像作为参考图像存储在参考画面缓冲器190中。
量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可通过加法器175将经过反量化的系数或经过逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化的系数或经过逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可生成重建块。这里,经过反量化的系数或经过逆变换的系数或者经过反量化和逆变换两者的系数可表示被执行反量化和逆变换中的至少一个的系数,并且可表示重建的残差块。
重建块可通过滤波器单元180。滤波器单元180可将去块滤波器、样点自适应偏移(SAO)和自适应环路滤波器(ALF)中的至少一个应用于重建样点、重建块或重建图像。滤波器单元180可被称为环内滤波器。
去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波器,可基于包括在块中的若干行或列中所包括的样点来确定是否将去块滤波器应用于当前块。当去块滤波器被应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
为了补偿编码误差,可通过使用样点自适应偏移将适当的偏移值与样点值相加。样点自适应偏移可按样点单元校正经过去块的图像与原始图像的偏移。将图像的样点分区为预定数量的区域、确定被应用偏移的区域并将该偏移应用于所确定的区域的方法或者考虑关于每个样点的边缘信息来应用偏移的方法可被使用。
自适应环路滤波器可基于经过滤波的重建图像与原始图像的比较结果来执行滤波。包括在图像中的样点可被分区为预定组,可确定将被应用于每个组的滤波器,并且可针对每个组执行差分滤波。可按编码单元(CU)用信号发送是否应用ALF的信息,并且将被应用于每个块的ALF的形式和系数可变化。
已通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由经过滤波器单元180处理的重建块组成的重建图像。可稍后在帧间预测或运动补偿中使用存储的参考图像。
图2是示出根据实施例的且应用了本发明的解码设备的配置的框图。
解码设备200可以是解码器、视频解码设备或图像解码设备。
参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器225、滤波器单元260和参考画面缓冲器270。
解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成通过解码生成的重建图像或经过解码的图像,并输出重建图像或经过解码的图像。
当在解码时使用的预测模式是帧内模式时,可将切换器切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,可将切换器切换到帧间模式。
解码设备200可通过对输入的比特流进行解码来获得重建的残差块,并生成预测块。当获得重建的残差块和预测块时,解码设备200可通过将重建的残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
熵解码单元210可通过根据概率分布对比特流进行熵解码来生成符号。所生成的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆过程。
为了对变换系数等级(量化的等级)进行解码,熵解码单元210可通过使用变换系数扫描方法将单向矢量形式的系数改变为二维块形式。
量化的等级可在反量化单元220中被反量化,或者可在逆变换单元230中被逆变换。量化的等级可以是反量化或逆变换或者反量化和逆变换两者的结果,并且可被生成为重建的残差块。这里,反量化单元220可将量化矩阵应用于量化的等级。
当帧内模式被使用时,帧内预测单元240可通过针对当前块执行空间预测来生成预测块,其中,所述空间预测使用与解码目标块相邻且已被解码的块的样点值。
当帧间模式被使用时,运动补偿单元250可通过针对当前块执行运动补偿来生成预测块,其中,所述运动补偿使用使用存储在参考画面缓冲器270中的参考图像和运动矢量。
加法器225可通过将重建的残差块与预测块相加来生成重建块。滤波器单元260可将去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个应用于重建块或重建图像。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中,并且在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由经过滤波器单元260处理的重建块组成的重建图像。可稍后在帧间预测或运动补偿中使用存储的参考图像。
图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个更低等级的单元的示例。
为了高效地对图像进行分区,当进行编码和解码时,可使用编码单元(CU)。当对图像进行编码/解码时,编码单元可被用作基本单元。此外,当对图像进行编码/解码时,编码单元可被用作用于将帧内预测模式和帧间预测模式区分开的单元。编码单元可以是用于变换系数的预测、变换、量化、逆变换、反量化或编码/解码处理的基本单元。
参照图3,图像300按最大编码单元(LCU)被顺序地分区,并且LCU单元被确定为分区结构。这里,可以以与编码树单元(CTU)相同的含义使用LCU。单元分区可表示对与该单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者次数和程度两者。可基于树结构将单个单元分区为分层地与深度信息相关联的多个更低等级的单元。换句话说,单元和通过对该单元进行分区而生成的更低等级的单元可分别与节点和该节点的子节点对应。分区出的更低等级的单元中的每一个可具有深度信息。深度信息可以是表示CU的尺寸的信息,并且可被存储在每个CU中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,更低等级的单元的分区信息可包括关于更低等级的单元的尺寸的信息。
分区结构可表示CTU 310内的编码单元(CU)的分布。可根据是否将单个CU分区为多个(等于或大于2的正整数,包括2、4、8、16等)CU来确定这样的分布。通过分区生成的CU的水平尺寸和垂直尺寸可分别是分区之前的CU的水平尺寸和垂直尺寸的一半,或者可根据分区的次数分别具有比分区之前的水平尺寸和垂直尺寸小的尺寸。CU可被递归地分区为多个CU。通过递归分区,与分区之前的CU的高度和宽度中的至少一个相比,分区之后的CU的高度和宽度中的至少一个可减小。可递归地执行CU的分区直到预定义深度或预定义尺寸为止。例如,CTU的深度可以是0,并且最小编码单元(SCU)的深度可以是预定义的最大深度。这里,如上所述,CTU可以是具有最大编码单元尺寸的编码单元,SCU可以是具有最小编码单元尺寸的编码单元。从CTU 310开始分区,随着CU的水平尺寸或垂直尺寸或者水平尺寸和垂直尺寸两者通过分区而减小,CU深度增加1。例如,对于每个深度,未被分区的CU可具有2N×2N的尺寸。此外,在被分区的CU的情况下,尺寸为2N×2N的CU可被分区为尺寸为N×N的四个CU。N的大小可随着深度增加1而减小至一半。
此外,可通过使用CU的分区信息来表示CU是否被分区的信息。分区信息可以是1比特信息。除了SCU之外的所有CU可包括分区信息。例如,当分区信息的值是第一值时,CU可不被分区,当分区信息的值是第二值时,CU可被分区。
参照图3,深度为0的CTU可以是64×64的块。0可以是最小深度。深度为3的SCU可以是8×8的块。3可以是最大深度。32×32的块和16×16的块的CU可分别被表示为深度1和深度2。
例如,当单个编码单元被分区为四个编码单元时,四个分区出的编码单元的水平尺寸和垂直尺寸可以是被分区之前的CU的水平尺寸和垂直尺寸的一半尺寸。在一个实施例中,当尺寸为32×32的编码单元被分区为四个编码单元时,四个分区出的编码单元中的每一个可具有16×16的尺寸。当单个编码单元被分区为四个编码单元时,可称该编码单元可被分区(四叉树分区)为四叉树形式。
例如,当单个编码单元被分区为两个编码单元时,所述两个编码单元的水平尺寸或垂直尺寸可以是被分区之前的编码单元的水平尺寸或垂直尺寸的一半。例如,当在垂直方向上对尺寸为32×32的编码单元进行分区时,分区出的两个编码单元中的每个可具有16×32的尺寸。例如,当尺寸为8×32的编码单元被水平分区为两个子编码单元时,所述两个子编码单元中的每个可具有8×16的尺寸。当单个编码单元被分区为两个编码单元时,可称该编码单元以二叉树形式被分区(二叉树分区)。
例如,当一个编码单元被分区为三个子编码单元时,编码单元的水平尺寸或垂直尺寸可以以1:2:1的比率被分区,从而产生水平尺寸或垂直尺寸的比率为1:2:1的三个子编码单元。例如,当尺寸为16×32的编码单元被水平分区为三个子编码单元时,该三个子编码单元可按照从最上方子编码单元到最下方子编码单元的顺序分别具有16×8、16×16和16×8的尺寸。例如,当尺寸为32×32的编码单元被垂直分区为三个子编码单元时,该三个子编码单元可按照从左侧子编码单元到右侧子编码单元的顺序分别具有8×32、16×32和8×32的尺寸。当一个编码单元被分区为三个子编码单元时,可称该编码单元被三叉树分区或按三叉树分区结构被分区。
在图3中,编码树单元(CTU)320是四叉树分区结构、二叉树分区结构和三叉树分区结构均被应用的CTU的示例。
如上所述,为了对CTU进行分区,可应用四叉树分区结构、二叉树分区结构和三叉树分区结构中的至少一个。可根据预定优先级顺序将各种树分区结构顺序地应用于CTU。例如,四叉树分区结构可优先被应用于CTU。不能再使用四叉树分区结构进行分区的编码单元可与四叉树的叶节点对应。与四叉树的叶节点对应的编码单元可用作二叉树和/或三叉树分区结构的根节点。也就是说,与四叉树的叶节点对应的编码单元可通过二叉树分区结构或三叉树分区结构被进一步分区,或者可不被进一步分区。因此,通过防止由与四叉树的叶节点对应的编码单元的二叉树分区或三叉树分区产生的编码块经历进一步的四叉树分区,可高效地执行块分区和/或用信号发送分区信息的操作。
可使用四分区信息来用信号发送与四叉树的节点对应的编码单元被分区的事实。具有第一值(例如,“1”)的四分区信息可指示当前编码单元按四叉树分区结构被分区。具有第二值(例如,“0”)的四分区信息可指示当前编码单元不按四叉树分区结构被分区。四分区信息可以是具有预定长度(例如,一个比特)的标志。
在二叉树分区与三叉树分区之间可不存在优先级。也就是说,与四叉树的叶节点对应的编码单元可进一步经历二叉树分区和三叉树分区中的任意分区。此外,通过二叉树分区或三叉树分区生成的编码单元可经历进一步的二叉树分区或进一步的三叉树分区,或者可不被进一步分区。
在二叉树分区与三叉树分区之间不存在优先级的树结构被称为多类型树结构。与四叉树的叶节点对应的编码单元可用作多类型树的根节点。可使用多类型树分区指示信息、分区方向信息和分区树信息中的至少一个来用信号发送是否对与多类型树的节点对应的编码单元进行分区。对于与多类型树的节点对应的编码单元的分区,可顺序地用信号发送多类型树分区指示信息、分区方向和分区树信息。
具有第一值(例如,“1”)的多类型树分区指示信息可指示当前编码单元将经历多类型树分区。具有第二值(例如,“0”)的多类型树分区指示信息可指示当前编码单元将不经历多类型树分区。
当按多类型树分区结构对与多类型树的节点对应的编码单元进行分区时,编码单元可进一步包括分区方向信息。分区方向信息可指示当前编码单元针对多类型树分区将在哪个方向上被分区。具有第一值(例如,“1”)的分区方向信息可指示当前编码单元将被垂直分区。具有第二值(例如,“0”)的分区方向信息可指示当前编码单元将被水平分区。
当按多类型树分区结构对与多类型树的节点对应的编码单元进行分区时,当前编码单元可进一步包括分区树信息。分区树信息可指示将被用于多类型树的节点的分区的树分区结构。具有第一值(例如,“1”)的分区树信息可指示当前编码单元将按二叉树分区结构被分区。具有第二值(例如,“0”)的分区树信息可指示当前编码单元将按三叉树分区结构被分区。
分区指示信息、分区树信息和分区方向信息均可以是具有预定长度(例如,一个比特)的标志。
四叉树分区指示信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个可被熵编码/熵解码。对于那些类型的信息的熵编码/熵解码,可使用关于与当前编码单元相邻的邻近编码单元的信息。例如,当前编码单元的左邻近编码单元和/或上邻近编码单元的分区类型(分区或不分区、分区树以及/或者分区方向)与当前编码单元的分区类型相似的可能性较高。因此,可从关于邻近编码单元的信息推导用于对关于当前编码单元的信息进行熵编码/熵解码的上下文信息。关于邻近编码单元的信息可包括四分区信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个。
作为另一示例,在二叉树分区和三叉树分区中,可优先执行二叉树分区。也就是说,当前编码单元可首先经历二叉树分区,然后可将与二叉树的叶节点对应的编码单元设置为用于三叉树分区的根节点。在这种情况下,可不对与三叉树的节点对应的编码单元执行四叉树分区或二叉树分区。
不能按四叉树分区结构、二叉树分区结构和/或三叉树分区结构分区的编码单元成为用于编码、预测和/或变换的基本单元。也就是说,该编码单元不能被进一步分区以进行预测和/或变换。因此,用于将该编码单元分区为预测单元和/或变换单元的分区结构信息和分区信息可不存在于比特流中。
然而,当编码单元(即,用于分区的基本单元)的尺寸大于最大变换块的尺寸时,编码单元可被递归地分区,直到编码单元的尺寸减小到等于或小于最大变换块的尺寸为止。例如,当编码单元的尺寸是64×64时并且当最大变换块的尺寸是32×32时,编码单元可被分区为四个32×32的块以进行变换。例如,当编码单元的尺寸是32×64并且最大变换块的尺寸是32×32时,编码单元可被分区为两个32×32的块以进行变换。在这种情况下,用于变换的编码单元的分区不单独被用信号发送,并且可通过编码单元的水平尺寸或垂直尺寸与最大变换块的水平尺寸或垂直尺寸之间的比较来确定。例如,当编码单元的水平尺寸(宽度)大于最大变换块的水平尺寸(宽度)时,编码单元可被垂直二等分。例如,当编码单元的垂直尺寸(长度)大于最大变换块的垂直尺寸(长度)时,编码单元可被水平二等分。
编码单元的最大尺寸和/或最小尺寸的信息以及变换块的最大尺寸和/或最小尺寸的信息可被用信号发送或者在编码单元的更高等级被确定。所述更高等级可以是例如序列级、画面级、并行块级、并行块组级、条带级等。例如,编码单元的最小尺寸可被确定为4×4。例如,变换块的最大尺寸可被确定为64×64。例如,变换块的最小尺寸可被确定为4×4。
与四叉树的叶节点对应的编码单元的最小尺寸(四叉树最小尺寸)的信息和/或从多类型树的根节点到叶节点的最大深度(多类型树的最大树深度)的信息可被用信号发送或者在编码单元的更高等级被确定。例如,所述更高等级可以是序列级、画面级、条带级、并行块组级、并行块级等。四叉树的最小尺寸的信息和/或多类型树的最大深度的信息可被用信号发送或者针对帧内条带和帧间条带中的每一个被确定。
CTU的尺寸与变换块的最大尺寸之间的差信息可被用信号发送或在编码单元的更高等级被确定。例如,所述更高等级可以是序列级、画面级、条带级、并行块组级、并行块级等。可基于编码树单元的尺寸和所述差信息来确定与二叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为二叉树的最大尺寸)的信息。与三叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为三叉树的最大尺寸)可根据条带的类型而变化。例如,对于帧内条带,三叉树的最大尺寸可以是32×32。例如,对于帧间条带,三叉树的最大尺寸可以是128×128。例如,与二叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为二叉树的最小尺寸)和/或与三叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为三叉树的最小尺寸)可被设置为编码块的最小尺寸。
作为另一示例,二叉树的最大尺寸和/或三叉树的最大尺寸可被用信号发送或在条带级被确定。可选地,二叉树的最小尺寸和/或三叉树的最小尺寸可被用信号发送或在条带级被确定。
根据上述各种块的尺寸和深度信息,四分区信息、多类型树分区指示信息、分区树信息和/或分区方向信息可被包括在比特流中或可不被包括在比特流中。
例如,当编码单元的尺寸不大于四叉树的最小尺寸时,该编码单元不包含四分区信息。因此,可从第二值推导四分区信息。
例如,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)大于二叉树的最大尺寸(水平尺寸和垂直尺寸)和/或三叉树的最大尺寸(水平尺寸和垂直尺寸)时,编码单元可不被二叉树分区或三叉树分区。因此,多类型树分区指示信息可不被用信号发送,但可从第二值被推导出。
可选地,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)与二叉树的最大尺寸(水平尺寸和垂直尺寸)相同并且/或者是三叉树的最大尺寸(水平尺寸和垂直尺寸)的两倍大时,编码单元可不被进一步二叉树分区或三叉树分区。因此,多类型树分区指示信息可不被用信号发送,但可从第二值被推导。这是因为当按二叉树分区结构和/或三叉树分区结构对编码单元进行分区时,生成了小于二叉树的最小尺寸和/或三叉树的最小尺寸的编码单元。
可选地,当与多类型树的节点对应的编码单元的深度等于多类型树的最大深度时,该编码单元可不被进一步二叉树分区和/或三叉树分区。因此,多类型树分区指示信息可不被用信号发送,但可从第二值被推导出。
可选地,仅当针对与多类型树的节点对应的编码单元进行垂直方向二叉树分区、水平方向二叉树分区、垂直方向三叉树分区和水平方向三叉树分区中的至少一个是可能的时,可用信号发送多类型树分区指示信息。否则,编码单元可不被二叉树分区和/或三叉树分区。因此,多类型树分区指示信息可不被用信号发送,但可从第二值被推导出。
可选地,仅当针对与多类型树的节点对应的编码单元进行垂直方向二叉树分区和水平方向二叉树分区两者或者垂直方向三叉树分区和水平方向三叉树分区两者是可能的时,可用信号发送分区方向信息。否则,分区方向信息可不被用信号发送,但可从指示可能的分区方向的值被推导出。
可选地,仅当针对与多类型树的节点对应的编码单元进行垂直方向二叉树分区和垂直方向三叉树分区两者或者水平方向二叉树分区和水平方向三叉树分区两者是可能的时,可用信号发送分区树信息。否则,分区树信息可不被用信号发送,但可从指示可能的分区树结构的值被推导出。
图4是示出帧内预测处理的示图。
图4中的从中心到外部的箭头可表示帧内预测模式的预测方向。
可通过使用当前块的邻近块的参考样点来执行帧内编码和/或帧内解码。邻近块可以是重建的邻近块。例如,可通过使用重建的邻近块中所包括的参考样点的编码参数或值来执行帧内编码和/或帧内解码。
预测块可表示通过执行帧内预测而生成的块。预测块可对应于CU、PU和TU中的至少一个。预测块的单元可具有CU、PU和TU中的一个的尺寸。预测块可以是尺寸为2×2、4×4、16×16、32×32或64×64等的正方形块,或者可以是尺寸为2×8、4×8、2×16、4×16和8×16等的矩形块。
可根据针对当前块的帧内预测模式来执行帧内预测。当前块可具有的帧内预测模式的数量可以是固定值,并且可以是根据预测块的属性而不同地确定的值。例如,预测块的属性可包括预测块的尺寸和预测块的形状等。
帧内预测模式的数量可被固定为N,而不管块尺寸如何。可选地,帧内预测模式的数量可以是3、5、9、17、34、35、36、65或67等。可选地,帧内预测模式的数量可根据块尺寸或颜色分量类型或者块尺寸和颜色分量类型两者而变化。例如,帧内预测模式的数量可根据颜色分量是亮度信号还是色度信号而变化。例如,随着块尺寸变大,帧内预测模式的数量可增加。可选地,亮度分量块的帧内预测模式的数量可大于色度分量块的帧内预测模式的数量。
帧内预测模式可以是非角度模式或角度模式。非角度模式可以是DC模式或平面模式,并且角度模式可以是具有特定方向或角度的预测模式。帧内预测模式可由模式编号、模式值、模式数字、模式角度和模式方向中的至少一个表示。帧内预测模式的数量可以是大于1的M,包括非角度模式和角度模式。
为了对当前块进行帧内预测,可执行确定包括在重建的邻近块中的样点是否可被用作当前块的参考样点的步骤。当不可被用作当前块的参考样点的样点存在时,通过对重建的邻近块中包括的样点中的至少一个样点值进行复制或执行插值或者对重建的邻近块中包括的样点中的至少一个样点值进行复制和执行插值两者而获得的值可被用于替换样点的不可用样点值,因此替换后的样点值被用作当前块的参考样点。
当进行帧内预测时,可基于帧内预测模式和当前块尺寸/形状将滤波器应用于参考样点和预测样点中的至少一个。
在平面模式的情况下,当生成当前块的预测块时,根据预测目标样点在预测块内的位置,可通过使用当前样点的上侧和左侧参考样点以及当前块的右上侧和左下侧参考样点的加权和来生成预测目标样点的样点值。此外,在DC模式的情况下,当生成当前块的预测块时,可使用当前块的上侧和左侧参考样点的平均值。此外,在角度模式的情况下,可通过使用当前块的上侧、左侧、右上侧和/或左下侧参考样点来生成预测块。为了生成预测样点值,可执行实数单位的内插。
可通过对邻近于当前块存在的块的帧内预测模式进行预测来对当前块的帧内预测模式进行熵编码/熵解码。当当前块和邻近块的帧内预测模式相同时,可通过使用预定的标志信息来用信号发送当前块和邻近块的帧内预测模式为相同的信息。此外,可用信号发送多个邻近块的帧内预测模式中的与当前块的帧内预测模式相同的帧内预测模式的指示符信息。当当前块和邻近块的帧内预测模式不同时,可通过基于邻近块的帧内预测模式执行熵编码/熵解码来对当前块的帧内预测模式信息进行熵编码/熵解码。
图5是示出画面间预测处理的实施例的示图。
在图5中,矩形可表示画面。在图5中,箭头表示预测方向。画面可按其编码类型被分类为帧内画面(I画面)、预测画面(P画面)和双预测画面(B画面)。
可通过帧内预测来对I画面进行编码,而不需要画面间预测。可通过使用在针对当前块的一个方向(即,前向或后向)上存在的参考画面进行画面间预测来对P画面进行编码。可通过使用在针对当前块的两个方向(即,前向和后向)上预设的参考画面进行画面间预测来对B画面进行编码。当使用画面间预测时,编码器可执行画面间预测或运动补偿,并且解码器可执行对应的运动补偿。
下面,将详细描述画面间预测的实施例。
可使用参考画面和运动信息来执行画面间预测或运动补偿。
可通过编码设备100和解码设备200中的每一个在画面间预测期间推导当前块的运动信息。可通过使用重建的邻近块的运动信息、同位置块(也称为col块或同位块)和/或与同位块相邻的块的运动信息来推导当前块的运动信息。同位块可表示先前重建的同位置画面(也被称为col画面或同位画面)内的在空间上位于与当前块相同的位置处的块。同位画面可以是参考画面列表中包括的一个或更多个参考画面中的一个画面。
推导当前块的运动信息的方法可根据当前块的预测模式而变化。例如,作为用于画面间预测的预测模式,可存在AMVP模式、合并模式、跳过模式、当前画面参考模式等。合并模式可被称作运动合并模式。
例如,当AMVP被用作预测模式时,重建的邻近块的运动矢量、同位块的运动矢量、与同位块相邻的块的运动矢量和(0,0)运动矢量中的至少一个可被确定为针对当前块的运动矢量候选,并且通过使用运动矢量候选来生成运动矢量候选列表。可通过使用所生成的运动矢量候选列表来推导当前块的运动矢量候选。可基于推导出的运动矢量候选来确定当前块的运动信息。同位置块的运动矢量或与同位置块相邻的块的运动矢量可被称为时间运动矢量候选,并且重建的邻近块的运动矢量可被称为空间运动矢量候选。
编码设备100可计算当前块的运动矢量与运动矢量候选之间的运动矢量差(MVD)并可对运动矢量差(MVD)执行熵编码。此外,编码设备100可对运动矢量候选索引执行熵编码并生成比特流。运动矢量候选索引可指示运动矢量候选列表中包括的运动矢量候选中的最优运动矢量候选。解码设备可对包括在比特流中的运动矢量候选索引执行熵解码,并可通过使用经过熵解码的运动矢量候选索引从包括在运动矢量候选列表中的运动矢量候选中选择解码目标块的运动矢量候选。此外,解码设备200可将经过熵解码的MVD与通过熵解码提取出的运动矢量候选相加,从而推导解码目标块的运动矢量。
比特流可包括指示参考画面的参考画面索引。参考画面索引可由编码设备100熵编码,然后作为比特流被用信号发送到解码设备200。解码设备200可基于推导出的运动矢量和参考画面索引信息生成解码目标块的预测块。
推导当前块的运动信息的方法的另一示例可以是合并模式。合并模式可表示合并多个块的运动的方法。合并模式可表示从邻近块的运动信息推导当前块的运动信息的模式。当应用合并模式时,可使用重建的邻近块的运动信息和/或同位置块的运动信息来生成合并候选列表。运动信息可包括运动矢量、参考画面索引和画面间预测指示符中的至少一个。所述预测指示符可指示单向预测(L0预测或L1预测)或者双向预测(L0预测和L1预测)。
合并候选列表可以是所存储的运动信息的列表。合并候选列表中包括的运动信息可以是零合并候选以及新运动信息中的至少任意一个,其中,所述新运动信息是与当前块相邻的一个邻近块的运动信息(空间合并候选)、当前块的包括在参考画面内的同位置块的运动信息(时间合并候选)和合并候选列表中存在的运动信息的组合。
编码设备100可通过对合并标志和合并索引中的至少一个执行熵编码来生成比特流,并且可将比特流用信号发送到解码设备200。合并标志可以是指示是否针对每个块执行合并模式的信息,并且合并索引可以是指示当前块的邻近块之中的哪个邻近块是合并目标块的信息。例如,当前块的邻近块可包括在当前块左侧的左邻近块、设置在当前块上方的上邻近块以及时间上与当前块相邻的时间邻近块。
跳过模式可以是将邻近块的运动信息按原样应用于当前块的模式。当应用跳过模式时,编码设备100可对哪个块的运动信息将被用作当前块的运动信息的事实的信息执行熵编码以生成比特流,并且可将比特流用信号发送到解码设备200。编码设备100可不将关于运动矢量差信息、编码块标志和变换系数等级中的至少任意一个的语法元素用信号发送到解码设备200。
当前画面参考模式可表示当前块所属的当前画面内的先前重建的区域被用于预测的预测模式。这里,可使用矢量来指定先前重建的区域。可通过使用当前块的参考画面索引来对指示当前块是否将在当前画面参考模式下被编码的信息进行编码。指示当前块是否是在当前画面参考模式下编码的块的标志或索引可被用信号发送,并可基于当前块的参考画面索引被推导出。在当前块在当前画面参考模式下被编码的情况下,当前画面可被添加到针对当前块的参考画面列表以位于参考画面列表中的固定位置或随机位置。所述固定位置可以是例如由参考画面索引0指示的位置或列表中的最后位置。当当前画面被添加到参考画面列表以位于随机位置时,可用信号发送指示该随机位置的参考画面索引。
图6是示出变换和量化处理的示图。
如图6中所示,对残差信号执行变换处理和/或量化处理,以生成量化的等级信号。残差信号是原始块与预测块(即,帧内预测块或帧间预测块)之间的差。预测块是通过帧内预测或帧间预测生成的块。所述变换可以是初次变换、二次变换或者初次变换和二次变换两者。对残差信号的初次变换产生变换系数,并且对变换系数的二次变换产生二次变换系数。
从预先定义的各种变换方案中选择的至少一种方案被用于执行初次变换。例如,所述预定义的变换方案的示例包括离散余弦变换(DCT)、离散正弦变换(DST)和Karhunen-Loève变换(KLT)。通过初次变换生成的变换系数可经历二次变换。可根据当前块和/或当前块的邻近块的编码参数来确定用于初次变换和/或二次变换的变换方案。可选地,可通过用信号发送变换信息来确定变换方案。
由于残差信号通过初次变换和二次变换被量化,因此生成了量化的等级信号(量化系数)。依据块的帧内预测模式或块尺寸/形状,可根据对角线右上扫描、垂直扫描和水平扫描中的至少一个来扫描量化的等级信号。例如,当按照对角线右上扫描来扫描系数时,块形式的系数变为一维矢量形式。除了对角线右上扫描之外,可依据变换块的帧内预测模式和/或尺寸来使用水平地扫描二维块形式的系数的水平扫描或垂直地扫描二维块形式的系数的垂直扫描。扫描的量化等级系数可被熵编码以被插入到比特流中。
解码器对比特流进行熵解码以获得量化等级系数。可通过逆扫描以二维块形式排列量化等级系数。对于逆扫描,可使用对角线右上扫描、垂直扫描和水平扫描中的至少一个。
然后,量化等级系数可被反量化,然后根据需要被二次逆变换,并且最后根据需要被初次逆变换,以生成重建的残差信号。
在下文中,将描述用于通过改进作为视频编码处理之一的变换方法来提高视频压缩效率的方法。更具体地,传统视频编码中的编码示意性地包括:对作为当前原始图像的一部分的原始块进行预测的帧内/帧间预测步骤;针对残差块的变换和量化步骤,其中,所述残差块是预测出的预测块与原始块之间的差;以及熵编码步骤,其中,所述熵编码步骤是一种基于已被执行变换和量化的块的系数的概率并且针对在前面的步骤获得的压缩信息的无损压缩方法。因此,生成作为原始图像的压缩形式的比特流,并将其发送到解码器或存储在记录介质中。下面将在本说明书中描述的混排和离散正弦变换(在下文中称为“SDST”)旨在通过提高变换效率来提高压缩效率。
根据本发明的SDST方法使用离散正弦变换类型-7(在下文中称为“DST-VII”或“DST-7”)来代替作为在视频编码中广泛使用的变换核的离散余弦变换类型-2(在下文中称为“DCT-II”或“DCT-2”),从而更好地反映图像共有的频率特征。
根据本发明的变换方法,与传统视频编码方法相比,即使在相对低的比特率下也可获得高的客观视频质量。
DST-7可被应用于残差块的数据。可基于与残差块对应的预测模式来执行对残差块应用DST-7。例如,它可被应用于在帧间模式下编码的残差块。根据本发明的实施例,可在重排或混排残差块的数据之后应用DST-7。这里,混排可表示对图像数据的重排,并且可等效于残差信号重排或翻转。这里,残差块可与残差、剩余块、剩余信号、残差信号、剩余数据或残差数据具有相同的含义。此外,残差块可与在编码器和解码器中以重建的残差块的形式的重建的残差、重建的剩余块、重建的剩余信号、重建的残差信号、重建的剩余数据或重建的残差数据具有相同的含义。
根据本发明的实施例,SDST可将DST-7用作变换核。这里,SDST的变换核不限于DST-7,并且可以使用各种类型的DST和DCT中的至少一种,诸如离散正弦变换类型-1(DST-1)、离散正弦变换类型-2(DST-2)、离散正弦变换类型-3(DST-3)、……、离散正弦变换类型-n(DST-n)、离散余弦变换类型-1(DCT-1)、离散余弦变换类型-2(DCT-2)、离散余弦变换类型-3(DCT-3)、……、离散余弦变换类型-n(DCT-n)等(这里,n可以是1或更大的正整数)。
下面的方程式1可表示根据本发明的实施例的执行一维DCT-2的方法。这里,N可表示块的尺寸,k可表示频率分量的位置,并且xn可表示空间域中的第n系数的值。
[方程式1]
Figure BDA0002774090280000321
可通过利用以上方程式1对残差块执行水平变换和垂直变换来实现二维域中的DCT-2。
DCT-2变换核可被定义为下面的方程式2。这里,Xk可表示根据频域中的位置的基矢量,并且N可表示频域的大小。
[方程式2]
Figure BDA0002774090280000322
另外,图7是示出根据本发明的DCT-2的频域中的基矢量的示图。图7示出频域中的DCT-2的频率特征。这里,通过DCT-2的X0基矢量计算出的值可表示DC分量。
可在针对尺寸为4×4、8×8、16×16、32×32等的残差块的变换处理中使用DCT-2。
另外,可基于残差块的尺寸、残差块的颜色分量(例如,亮度分量和色度分量)以及与残差块对应的预测模式中的至少一个来选择性地使用DCT-2。例如,当残差块的尺寸为4×4并在帧内模式下被编码,并且残差块的分量为亮度分量时,使用DCT-2。例如,当在帧内模式下编码的残差块的水平长度在预定范围内(例如,等于或大于四个像素并且等于或小于16个像素),并且水平长度不大于垂直长度时,可将第一变换核用于水平变换。否则,可将第二变换核用于水平变换。例如,当在帧内模式下编码的残差块的垂直长度等于或大于四个像素并且等于或小于16个像素,并且垂直长度不大于水平长度时,可将第一变换核用于垂直变换。否则,可将第二变换核用于垂直变换。第一变换核可与第二变换核不同。也就是说,可基于预定条件下的块的形状来隐式地确定针对在帧内模式下编码的块的水平变换方法和垂直变换方法。例如,第一变换核可以是DST-7,并且第二变换核可以是DCT-2。这里,残差块是变换目标,因此它可与变换块具有相同的含义。这里,预测模式可表示帧间预测或帧内预测。此外,在帧内预测的情况下,预测模式表示帧内预测模式或帧内预测方向。
对于如图像的背景一样具有邻近像素之间的变化小的特征的块,通过DCT-2变换核的变换可实现高压缩效率。然而,对于具有复杂图案的区域(诸如纹理图像),它可能不适合作为变换核。这是因为当通过DCT-2对在邻近像素之间具有低相关性的块进行变换时,在频域的高频分量中出现大量变换系数。当在高频域中频繁地生成变换系数时,图像的压缩效率可能降低。为了提高压缩效率,具有较大值的系数需要出现在低频分量附近,并且系数的值需要在高频分量处接近零。
下面的方程式3可表示根据本发明的实施例的执行一维DST-7的方法。这里,N可表示块的尺寸,k可表示频率分量的位置,并且xn可表示空间域中的第n系数的值
[方程式3]
Figure BDA0002774090280000331
可通过利用以上方程式3对残差块执行水平变换和垂直变换来实现二维域中的DST-7。
DST-7变换核可被定义为下面的方程式4。这里,Xk可表示DST-7的第k个基矢量,i可表示频域中的位置,并且N可表示频域的大小。
[方程式4]
Figure BDA0002774090280000332
可在针对尺寸为2×2、4×4、8×8、16×16、32×32、64×64、128×128等中的至少一个的残差块的变换处理中使用DST-7。
另外,DST-7可被应用于矩形块而不是正方形块。例如,DST-7可被应用于矩形块的垂直变换和水平变换中的至少一个,其中,所述矩形块的水平尺寸不同于垂直尺寸,诸如8×4、16×8、32×4、64×16等。当对多种变换方法的选择性应用是可能的时,DCT-2被应用于正方形块的水平变换和垂直变换。当对多种变换方法的选择性应用是不可能的时,DST-7被应用于正方形块的水平变换和垂直变换。
此外,可基于残差块的尺寸、残差块的颜色分量(例如,亮度分量和色度分量)、与残差块对应的预测模式、帧内预测模式(方向)和残差块的形状中的至少一个来选择性地使用DST-7。例如,当残差块的尺寸为4×4并在帧内模式下被编码,并且残差块的分量为亮度分量时,使用DST-7。这里,预测模式可表示帧间预测或帧内预测。此外,在帧内预测的情况下,预测模式表示帧内预测模式或帧内预测方向。例如,对于色度分量,基于块形状的变换方法的选择可能是不可用的。例如,当帧内预测模式是颜色分量之间的预测时,基于块形状的变换方法的选择是不可用的。例如,针对色度分量的变换方法可由通过比特流被用信号发送的信息来指定。当当前块被分区为多个子块并且对子块中的每个子块执行帧内预测时,基于帧内预测模式和/或块尺寸(水平尺寸和/或垂直尺寸)来确定针对当前块的变换方法。例如,当帧内预测模式是非方向的(DC或平面)并且水平长度(垂直长度)在预定范围内时,第一变换核被用于水平变换(垂直变换)。否则,使用第二变换核。第一变换核可不同于第二变换核。例如,第一变换核可以是DST-7,并且第二变换核可以是DCT-2。所述预定范围可在例如从4个像素到16个像素的范围内。当块的尺寸不在所述预定范围内时,相同的核(例如,第二变换核)被用于水平变换和垂直变换。当块的尺寸在所述预定范围内时,不同的变换核被用于彼此相邻的帧内预测模式。例如,当第二变换核和第一变换核分别被用于模式27下的水平变换和垂直变换时,第一变换核和第二变换核分别被用于与模式27相邻的模式26和模式28下的水平变换和垂直变换。
另外,图8是示出根据本发明的DST-7的每个频域中的基矢量的示图。参照图8,DST-7的第一基矢量(x0)为曲线形状。由此,预测出与DCT-2相比,DST-7针对图像中的空间改变较大的块将呈现更高的变换性能。
在经过帧内预测的编码单元(CU)内的4×4的变换单元(TU)的变换中,可使用DST-7。通过反映帧内预测的特征(随着与参考样点的距离增加,误差量增加),可使用具有更高变换效率的DST-7。也就是说,在残差信号量随着与空间域中的块内的位置(0,0)的距离增加而增加的块的情况下,DST-7可被用于有效地对所述块进行压缩。
如上所述,为了提高变换效率,重要的是使用适合于图像的频率特征的变换核。具体地,由于对针对原始块的残差块执行变换,因此可以通过检查CU或PU或TU块内的残差信号的分布特征来感知DST-7和DCT-2的变换效率。
图9是示出根据在帧间模式下预测的8×8的编码单元(CU)的2N×2N的预测单元(PU)内的位置的平均残差值的分布的示图,其中,“Cactus”序列是通过在低延迟-P配置文件(low delay-P profile)环境中进行测试而获得的。
参照图9,图9的左侧示出作为块内的平均残差信号值中的前30%的所标记的相对大的值。右侧示出作为如左侧所示的同一块内的平均残差信号值中的前70%的所标记的相对大的值。
如图9中所示,在帧间模式下预测的8×8的CU的2N×2N的PU内的残差信号的分布具有以下特征:小残差信号值主要集中在块的中心附近,并且残差信号值随着远离块的中心点而增加。也就是说,残差信号值在块边界处较大。如上所述的残差信号的分布特征可以是PU内的残差信号的共同特征,而不管经过帧间预测的CU可具有的CU的尺寸和PU分区模式(2N×2N、2N×N、N×2N、N×N、nR×2N、nL×2N、2N×nU和2N×nD)如何。
图10是示出在帧间预测模式(帧间模式)下预测的8×8的编码单元(CU)的2N×2N的预测单元(PU)内的残差信号的分布特征的三维曲线图。
参照图10,发现具有相对小的值的残差信号以集中的方式分布在块的中心附近,并且更接近块边界的残差信号具有相对较大的值。
基于图9和图10中所示的残差信号的分布特征,当使用DST-7而不是DCT-2时,经过帧间预测的CU的PU内的残差信号的变换更高效。
在下文中,将描述作为将DST-7用作变换核的变换方法之一的SDST。
在下文中,块可表示CU、PU和TU中的一个。
根据本发明的SDST可以以两个步骤执行。第一个步骤是对在帧间模式或帧内模式下预测的CU的PU内的残差信号执行混排。第二个步骤是将DST-7应用于已被执行混排的块内的残差信号。
排列在当前块(例如,CU、PU或TU)内的残差信号可沿第一方向被扫描并且可沿第二方向被重排。也就是说,排列在当前块内的残差信号可沿第一方向被扫描并且可沿第二方向被重排以执行混排。这里,残差信号可表示指示原始信号与预测信号之间的差信号的信号。也就是说,残差信号可表示执行变换和量化中的至少一个之前的信号。可选地,残差信号可表示执行了变换和量化中的至少一个的信号形式。此外,残差信号可表示重建的残差信号。也就是说,残差信号可表示已被执行逆变换和反量化中的至少一个的信号。此外,残差信号可表示执行逆变换和反量化中的至少一个之前的信号。
另外,第一方向(或扫描方向)可以是光栅扫描顺序、右上对角线扫描顺序、水平扫描顺序和垂直扫描顺序中的一个。此外,第一方向可被定义为以下(1)至(10)中的至少一个。
(1)从上方行到下方行进行扫描,并且在一行中从左到右进行扫描
(2)从上方行到下方行进行扫描,并且在一行中从右到左进行扫描
(3)从下方行到上方行进行扫描,并且在一行中从左到右进行扫描
(4)从下方行到上方行进行扫描,并且在一行中从右到左进行扫描
(5)从左侧列到右侧列进行扫描,并且在一列中从上到下进行扫描
(6)从左侧列到右侧列进行扫描,并且在一列中从下到上进行扫描
(7)从右侧列到左侧列进行扫描,并且在一列中从上到下进行扫描
(8)从右侧列到左侧列进行扫描,并且在一列中从下到上进行扫描
(9)以螺旋形状进行扫描:从块的内侧(或外侧)到块的外侧(或内侧)进行扫描,并且以顺时针/逆时针方向进行扫描
(10)对角线扫描:从块内的一个顶点开始,沿左上、右上、左下或右下方向进行对角线扫描
同时,关于第二方向(或重排方向),可选择性地使用(1)至(10)扫描方向中的至少一个。第一方向和第二方向可相同,或者可彼此不同。
可以以当前块为单位执行针对残差信号的扫描和重排处理。
这里,重排可表示在块内沿第一方向扫描的残差信号在相同尺寸的块中沿第二方向被排列。这里,用于沿第一方向进行扫描的块的尺寸可不同于用于沿第二方向进行重排的块的尺寸。
此外,描述了扫描和重排根据第一方向和第二方向被分别执行,但是扫描和重排可作为针对第一方向的一个处理来执行。例如,对于块内的残差信号,可从上方行到下方行执行扫描,并且在一行中从右到左执行扫描,以在块中进行存储(重排)。
另外,可在当前块内的预定单位的子块中执行针对残差信号的扫描和重排处理。这里,子块可以是尺寸等于或小于当前块的块。子块可以是以四叉树形式、二叉树形式等对当前块进行分区而得到的块。
子块单元可具有固定的尺寸和/或形状(例如,4×4、4×8、8×8、……、N×M,其中,N和M是正整数)。此外,可以可变地推导子块单元的尺寸和/或形状。例如,可根据当前块的尺寸、形状和/或预测模式(帧间和帧内)来确定子块单元的尺寸和/或形状。
可根据子块的位置自适应地确定扫描方向和/或重排方向。在这种情况下,不同的扫描方向和/或重排方向可被用于子块,或者当前块的全部子块或一部分子块可使用相同的扫描方向和/或相同的重排方向。
图11是示出根据本发明的编码单元(CU)的2N×2N的预测单元(PU)模式下的残差信号的分布特征的示图。
参照图11,PU按照四叉树结构被分区为四个子块,并且每个子块的箭头方向示出残差信号的分布特征。具体地,每个子块的箭头方向指示残差信号增大的方向。这归因于不管PU分区模式如何PU内的残差信号所共有的分布特征。因此,可执行用于对每个子块的残差信号进行重排的混排操作,以具有适合于DST-7变换的分布特征。
图12是示出根据本发明的对2N×2N的预测单元(PU)进行混排之前和之后的残差信号的分布特征的示图。
参照图12,上方块示出对在帧间模式下预测的8×8的CU的2N×2N的PU内的残差信号进行混排之前的分布。下面的方程式5示出根据图12中的上方块内的每个残差信号的位置的值。
[方程式5]
Figure BDA0002774090280000371
由于在帧间模式下预测的CU的PU内的残差信号的分布特征,具有相对小的值的许多残差信号分布在图12中的上方块内的中心区域中,并且具有较大值的许多残差信号分布为更接近上方块的边界。
图12中的下方块示出执行混排之后的2N×2N的PU内的残差信号的分布特征。这示出已被执行混排的PU的每个子块的残差信号的分布是适合于DST-7的第一基矢量的残差信号的分布。也就是说,由于每个子块内的残差信号随着远离位置(0,0)而具有更大的值,因此当执行变换时,通过DST-7对频率进行变换的变换系数值集中在低频域中。
下面的方程式6表示根据PU内的四个子块中的每个子块的位置来执行混排的方法,其中,所述四个子块从按照四叉树结构对PU进行分区产生。
[方程式6]
Figure BDA0002774090280000381
这里,Wk和Hk分别表示PU中的第k子块(k∈{blk0,blk1,blk2,blk3})的宽度和高度,并且blk0至blk3分别表示从按照四叉树结构对PU进行分区而产生的子块。此外,x和y分别表示子块内的水平位置和垂直位置。如图12中的上方块中所示,执行混排之前的残差信号的位置由a(x,y)、b(x,y)、c(x,y)和d(x,y)指定。如图12中的下方块中所示,通过混排改变的残差信号的位置由a'(x,y)、b'(x,y)、c'(x,y)和d'(x,y)指定。
图13是示出根据本发明的子块的4×4残差数据重排的示例的示图。
参照图13,子块可表示属于8×8的预测块的多个子块中的一个子块。图13的(a)示出重排之前的原始残差数据的位置,并且图13的(b)示出残差数据的重排后的位置。
参照图13的(c),残差数据的值可从位置(0,0)到位置(3,3)逐渐增大。这里,每个子块内的水平和/或垂直一维残差数据可具有图8中所示的基矢量形式的数据分布。
也就是说,关于根据本发明的混排,每个子块的残差数据可被重排,使得残差数据的分布适合于DST-7基矢量的形式。在对每个子块进行混排之后,可将DST-7变换应用于在每个子块单元中重排的数据。
另外,子块可基于TU的深度按照四叉树结构被进一步分区,或者可选择性地经受重排处理。例如,当TU的深度为2时,将属于2N×2N的PU的N×N的子块分区为N/2×N/2的块,并且将重排处理应用于所述N/2×N/2的块中的每一个。这里,可重复地执行基于四叉树的TU分区,直到达到最小TU尺寸为止。
此外,当TU的深度为零时,将DCT-2变换应用于2N×2N的块。这里,可不执行对残差数据的重排。
另外,根据本发明的SDST方法使用PU块内的残差信号的分布特征,因此执行SDST的TU的分区结构可被定义为以基于PU的四叉树结构的分区。
图14(a)和图14(b)是示出根据预测单元(PU)模式和变换单元(TU)的混排方法的编码单元(CU)的变换单元(TU)分区结构的实施例的示图。图14(a)和图14(b)示出针对经过帧间预测的PU的非对称分区模式(2N×nU、2N×nD、nR×2N和nL×2N)中的每一个,根据TU的深度的TU的四叉树分区结构。
参照图14(a)和图14(b),每个块的粗实线表示CU内的PU,细实线表示TU。此外,每个TU内的S0、S1、S2和S3表示在上面的方程式6中定义的TU内的残差信号的混排方法。
同时,在图14(a)和图14(b)中,每个PU的深度为零处的TU的块尺寸与该PU的块尺寸相同(例如,在2N×2N的PU中,深度为零的TU的尺寸可与该PU的尺寸相同)。这里,稍后将参照图18描述针对深度为零的TU内的残差信号的混排。
此外,当CU、PU和TU中的至少一个为矩形形状(例如,2N×nU、2N×nD、nR×2N和nL×2N)时,在残差信号重排之前,CU、PU和TU中的至少一个被分区为N个子块,诸如2个、4个、6个、8个、16个子块等,然后将残差信号重排应用于从分区产生的子块。
此外,当CU、PU和TU中的至少一个为正方形形状(例如,2N×2N和N×N)时,在残差信号重排之前,CU、PU和TU中的至少一个被分区为N个子块,诸如4个、8个、16个子块等,然后将残差信号重排应用于从分区产生的子块。
此外,当TU从对CU或PU的分区产生并且TU具有顶层的深度(未被分区)时,TU被分区为N个子块,诸如2个、4个、6个、8个、16个子块等,然后以从分区产生的子块为单位执行残差信号重排。
在以上示例中,当CU、PU和TU具有不同的形状或不同的尺寸时,执行残差信号重排。然而,当CU、PU和TU中的至少两个具有相同的形状或相同的尺寸时,也可应用残差信号重排。
另外,在图14(a)和图14(b)中,描述了经过帧间预测的PU的非对称分区模式,但是不限于此,对TU的分区和对TU的混排可被应用于PU的对称分区模式(2N×N和N×2N)。
可对已被执行混排的PU内的每个TU执行DST-7变换。这里,当CU、PU和TU具有相同的尺寸和相同的形状时,对一个块执行DST-7变换。
考虑经过帧间预测的PU块的残差信号的分布特征,在混排之后执行DST-7变换而不管CU的尺寸如何,并且该PU分区模式可比执行DCT-2变换更高效。
在变换之后,当许多变换系数分布在低频分量(特别是DC分量)附近时,在i)量化之后能量损失的最小化,以及ii)熵编码处理中比特使用的减少方面,残差信号的分布相比于相反情况具有更高的压缩效率。
图15是示出根据2N×2N的预测单元(PU)的残差信号的分布执行DCT-2变换和SDST变换的结果的示图。
图15的左侧所示的附图示出当CU的PU分区模式是2N×2N时残差信号从中心到边界增大的分布。此外,图15的中间所示的附图示出对PU内的深度为1的TU执行了DCT-2变换的残差信号的分布。图15的右侧所示的附图示出对PU内的深度为1的TU进行混排之后执行了DST-7变换(SDST)的残差信号的分布。
参照图15,与对具有上述残差信号的分布特征的PU的TU执行DCT-2的情况相比,当执行SDST时,更多的系数集中在低频分量附近,并且高频分量上的系数具有更小的值。根据变换特征,发现当对经过帧间预测的PU的残差信号进行变换时,执行SDST相比于执行DCT-2在压缩效率方面更优越。
执行DST-7变换的块的单位是在PU中定义的被执行SDST的TU单元。如参照图14所述,TU可从以四叉树或以二叉树对具有最大深度的PU单元进行分区产生。这表示在混排之后不仅可对正方形块而且可对矩形块执行DST-7变换。
例如,对于经过帧间预测的块,可对与该块具有相同的尺寸的残差块进行解码,或者可对与该块的一部分对应的子残差块进行解码。对此的信息可针对该块被用信号发送,并且该信息可以是例如标志。当与该块具有相同的尺寸的残差块被解码时,通过对比特流中所包含的信息进行解码来确定关于变换核的信息。当与该块的一部分对应的子残差块被解码时,基于用于指定子残差块的类型和/或块内的位置的信息来确定针对子残差块的变换核。例如,关于子残差块的类型和/或块内的位置的信息可被包含在比特流中以用信号发送。这里,当块大于32×32时,不执行基于子残差块的类型和/或块内的位置的变换核的确定。例如,对于大于32×32的块,可应用预定变换核(例如,DCT-2),或者可显式地用信号发送关于变换核的信息。可选地,当块的宽度或高度大于32时,不执行基于子残差块的类型和/或块内的位置的变换核的确定。例如,对于64×8的块,可应用预定变换核(例如,DCT-2),或者可显式地用信号发送关于变换核的信息。
关于子残差块的类型的信息可以是块的分区信息。块的分区信息可以是例如,指示水平分区与垂直分区之中的一个的分区方向信息。可选地,块的分区信息可包含分区比率信息。例如,分区比率可包括1:1、1:3和/或3:1。分区方向信息和分区比率信息可作为分开的语法元素或作为单个语法元素被用信号发送。
关于子残差块的位置的信息可指示块内的位置。例如,当块的分区是垂直分区时,关于位置的信息指示左侧和右侧之中的一个。此外,当块的分区是水平分区时,关于位置的信息指示上方和下方之中的一个。
可基于类型信息和/或位置信息来确定子残差块的变换核。可针对水平变换和垂直变换独立地确定变换核。例如,可基于分区方向确定变换核。例如,在垂直分区的情况下,可将第一变换核应用于垂直变换。在水平分区的情况下,可将第一变换核应用于水平变换。例如,可将第一变换核或第二变换核应用于垂直分区的情况下的水平变换以及水平分区的情况下的垂直变换。例如,在垂直分区的情况下,可将第二变换核应用于左侧位置处的水平变换,并且可将第一变换核应用于右侧位置处的水平变换。此外,在水平分区的情况下,可将第二变换核应用于上方位置处的垂直变换,并且可将第一变换核应用于下方位置处的垂直变换。例如,第一变换核和第二变换核可分别是DST-7和DCT-8。例如,第一变换核和第二变换核可分别是DST-7和DCT-2。然而,不限于此,在说明书中描述的各种变换核之中,任意两种不同的变换核可被用作第一变换核和第二变换核。这里,块可表示CU或TU。此外,子残差块可表示子TU。
图16是示出根据本发明的SDST处理的示图。
在步骤S2110,输入作为变换目标的TU的残差信号。这里,TU可以是从对预测模式是帧间模式的PU进行分区而产生的TU。在步骤S2120,可对作为变换目标的TU执行混排。接下来,在步骤S2130对已被执行混排的TU执行DST-7变换,在步骤S2140执行量化,并且执行一系列后续处理,由此,按照这样的顺序执行SDST处理。
另外,可对预测模式是帧内模式的块执行混排和DST-7变换。
在下文中,作为用于在编码器中实现SDST变换的实施例,将描述i)对经过帧间预测的PU内的全部TU执行SDST的方法,以及ii)通过率失真优化选择性地执行SDST或DCT-2的方法。在下面的方法中,描述经过帧间预测的块,但不限于此,下面的方法可被应用于经过帧内预测的块。
图17是示出根据本发明的针对经过帧间预测的编码单元(CU)的每个预测单元(PU)分区模式的变换单元(TU)的分区以及残差绝对值的大小的分布特征的示图。
参照图17,在帧间预测模式下,TU可从以四叉树或以二叉树对具有高达最大深度的CU进行分区产生,并且可存在PU的总共K种分区模式。这里,K为正整数,并且例如,在图17中K为8。
如以上参照图10所述,根据本发明的SDST使用经过帧间预测的CU内的PU中的残差信号的分布特征。此外,TU可从以四叉树结构或以二叉树结构对PU进行分区产生。也就是说,深度为零的TU可对应于PU,并且深度为1的TU可与通过以四叉树结构或以二叉树结构对PU进行一次分区而获得的每个子块对应。
图17中的每个块示出针对经过帧间预测的CU的每个PU分区模式,TU从按深度2进行分区产生的形式。这里,粗实线可表示PU,细实线可表示TU,并且每个TU的箭头方向可表示TU内的残差信号值增大的方向。每个TU可根据PU内的位置经受以上关于所述混排步骤所描述的混排。
具体地,在深度为零的TU的情况下,除了针对所述混排步骤提出的方法之外,还可以以各种方法执行混排。
所述各种方法中的一种方法是:从PU块的中心位置处的残差信号开始进行扫描并沿块的边界方向以环绕方式对附近的残差信号进行扫描,并且从PU中的位置(0,0)开始按照Z字形扫描顺序对扫描的残差信号进行重排。
图18是示出根据本发明的实施例的预测单元(PU)内的深度为零的变换单元(TU)的残差信号扫描顺序和重排顺序的示图。
图18的(a)和(b)示出针对混排的扫描顺序,图18的(c)示出针对SDST的重排顺序。
可对经受混排的每个TU内的残差信号执行DST-7变换,并且可执行量化、熵编码等。这种混排方法使用根据PU分区模式的TU内的残差信号的分布特征,因此可优化残差信号的分布以提高作为下一步骤的DST-7变换的效率。
在编码器中,可根据图16中所示的SDST处理对经过帧间预测的PU内的全部TU执行SDST。根据经过帧间预测的CU的PU分区模式,可以以与图17中所示的形式相同的形式从PU开始执行TU分区直到深度2。通过使用图17中的TU内的残差信号的分布特征,可对每个TU内的残差信号执行混排。之后,可执行使用DST-7变换核的变换,然后可执行量化、熵编码等。
当重建经过帧间预测的PU内的TU的残差信号时,解码器对经过帧间预测的PU内的每个TU执行DST-7逆变换,并且对重建的残差信号执行逆混排,从而获得重建的残差信号。在这种SDST方法中,SDST被应用于经过帧间预测的PU内的全部TU的变换方法,因此不存在需要进一步用信号发送到解码器的标志或信息。也就是说,可在无需用信号发送SDST方法的情况下执行SDST方法。
另外,即使对经过帧间预测的PU内的全部TU执行SDST,编码器也将以上关于所述混排步骤描述的针对残差信号的重排方法的一部分确定为最佳重排方法,并且可将关于所确定的重排方法的信息用信号发送到解码器。
作为执行SDST的另一实施例,可选择两种或更多种变换方法(例如,DCT-2和SDST)中的至少一种用于应用,以便对PU进行变换。根据这种方法,与对经过帧间预测的PU内的全部TU执行SDST的实施例相比,编码器的计算量可增加。然而,更高效的变换方法是在DCT-2和SDST中选择的,因此可提高压缩效率。
图19是示出根据本发明的通过率失真优化(RDO)的DCT-2或SDST选择编码处理的流程图。
参照图19,在步骤S2410,可输入作为变换目标的TU的残差信号。可将通过在步骤S2420对在帧间模式下预测的PU内的每个TU执行DCT-2而获得的TU的代价与通过在步骤S2430执行混排并在步骤S2440执行DST-7而获得的TU的代价进行比较,从而在步骤S2450确定TU就率失真而言的最佳变换模式(例如,DST-2或SDST)。接下来,根据所确定的变换模式,可在步骤S2460对经过变换的TU执行量化,并且可执行熵编码。
另外,仅当TU满足以下条件中的一个时,选择SDST和DCT-2中的最佳变换模式。
i)TU需要是CU而不管PU分区模式如何,或者需要从以四叉树或以二叉树对CU进行分区产生。
ii)TU需要是根据PU分区模式的PU,或者需要从以四叉树或以二叉树对PU进行分区产生。
iii)不管PU分区模式如何,TU不是从对CU进行分区产生。
条件i)是一种下述方法:在所述方法中对于不管PU分区模式如何都以四叉树或以二叉树被分区的CU,或者对于从分区至CU尺寸而获得的TU,就率失真优化而言将DCT-2或SDST选为变换模式。
条件ii)涉及对经过帧间预测的PU内的全部TU执行SDST的实施例。也就是说,根据PU分区模式,对以四叉树或以二叉树被分区的PU或者对从分区至PU尺寸而获得的TU执行DCT-2和SDST,并且考虑每个代价,确定TU的变换模式。
条件iii)是不管PU分区模式如何,在与TU具有相同的尺寸的CU单元中不对CU或TU进行分区,并且执行DCT-2和SDST以确定TU的变换模式。
在比较特定PU分区模式下的针对深度为零的TU块的率失真代价(RD代价)时,将对深度为零的TU执行SDST的结果的代价与对深度为零的TU执行DCT-2的结果的代价进行比较,并且深度为零的TU的变换模式可被选择。
图20是示出根据本发明的选择DCT-2或SDST用于解码的处理的流程图。
参照图20,在步骤S2510,可针对每个TU参考被用信号发送的SDST标志。这里,SDST标志可以是指示SDST是否被用作变换模式的标志。
当在步骤S2520-是,SDST标志为真时,TU的变换模式被确定为SDST模式。然后,在步骤S2530,对TU内的残差信号执行DST-7逆变换。在步骤S2540,对于已被执行DST-7逆变换的TU内的残差信号,根据PU内的TU的位置来执行使用上述方程式6的逆混排。最后,在步骤S2560获得重建的残差信号。
另外,当在步骤S2520-否,SDST标志不为真时,TU的变换模式被确定为DCT-2模式。然后,在步骤S2550,对TU内的残差信号执行DCT-2逆变换,并且在步骤S2560获得重建的残差信号。
当使用SDST方法时,残差数据被重排。这里,残差数据可表示与经过帧间预测的PU对应的残差数据。使用可分离特性从DST-7推导出的整数变换可被用作SDST方法。
另外,为了选择性地使用DCT-2或DST-7,可用信号发送sdst_flag。以TU为单位执行用信号发送sdst_flag。sdst_flag可指示需要识别是否执行SDST。
图21是示出根据本发明的使用SDST的解码处理的流程图。
参照图21,在步骤S2610,可以以TU为单位对sdst_flag进行熵解码。
首先,当在步骤S2620-是,TU的深度为零时,在步骤S2670和步骤S2680不使用SDST而使用DCT-2来重建TU。这是因为可在TU的深度1与TU的最大深度值之间执行SDST。
此外,虽然在步骤S2620-否,TU的深度不为零,但是当在步骤S2630-是,TU的变换模式是变换跳过模式并且/或者TU的编码块标志(cbf)值为零时,在步骤S2680,在不执行逆变换的情况下重建TU。
另外,当在步骤S2620-否,TU的深度不为零时,并且当在步骤S2630-是,TU的变换模式不是变换跳过模式并且TU的cbf值不为零时,在步骤S2640检查sdst_flag值。
这里,当在步骤S2640-是,sdst_flag值为1时,在步骤S2650执行基于DST-7的逆变换,在步骤S2660对TU的残差数据执行逆混排,并且在步骤S2680重建TU。相反,当在步骤S2640-否,sdst_flag值不为1时,在步骤S2670执行基于DCT-2的逆变换,并且在步骤S2680重建TU。
这里,作为混排或重排的目标的信号可以是逆变换之前的残差信号、反量化之前的残差信号、逆变换之后的残差信号、反量化之后的残差信号、重建的残差信号和重建的块信号中的至少一个。
另外,在图21中,描述了以TU为单位用信号发送sdst_flag,但是可基于TU的变换模式和TU的cbf值中的至少一个选择性地用信号发送sdst_flag。例如,当TU的变换模式是变换跳过模式并且/或者TU的cbf值为零时,不用信号发送sdst_flag。此外,即使当TU的深度为零时,也不用信号发送sdst_flag。
另外,描述了以TU为单位用信号发送sdst_flag,但是sdst_flag可以以预定单位被用信号发送。例如,sdst_flag可以以视频、序列、画面、条带、并行块、编码树单元、编码单元、预测单元和变换单元中的至少一个为单位被用信号发送。
与图20中的SDST标志和图21中的sdst_flag的实施例一样,可以以TU为单位通过n比特标志或索引(n是等于或大于1的正整数)对所选的变换模式信息进行熵编码/熵解码。变换模式信息可指示是否通过DCT-2对TU执行变换、是否通过SDST对TU执行变换、是否通过DST-7对TU执行变换等中的至少一个。
在只有经过帧间预测的PU内的TU的情况下,变换模式信息可在旁路模式下被熵编码/熵解码。此外,在变换跳过模式、残差差分PCM(RDPCM)模式和无损模式中的至少一个的情况下,省略对变换模式信息的熵编码/熵解码,并且不用信号发送变换模式信息。
此外,当块的编码块标志为零时,省略对变换模式信息的熵编码/熵解码,并且不用信号发送变换模式信息。当编码块标志为零时,在解码器中省略逆变换处理。因此,即使当变换模式信息在解码器中不存在时,块的重建也是可行的。
然而,变换模式信息不限于通过标志来表示变换模式,并且可以以预定义表和索引的形式来实现。这里,预定义表可以是定义针对每个索引的可用变换模式的表。
另外,在图19至图21中,描述了对SDST或DCT-2的选择性使用,但是不限于此,可应用DCT-n或DST-n(n是正整数)来代替DCT-2。
此外,可在水平方向和垂直方向上分别执行DCT-2或SDST的变换。可将同一变换模式用于水平方向和垂直方向,或者可使用不同的变换模式。
此外,关于是否将DCT-2用于水平方向和垂直方向、是否使用SDST以及是否使用DST-7的变换模式信息可分别被熵编码/熵解码。变换模式信息可例如作为索引被用信号发送。对于经过帧内预测的块和经过帧间预测的块,由相同索引指示的变换核可以是相同的。
此外,可以以CU、PU、TU和块中的至少一个为单位对变换模式信息进行熵编码/熵解码。
此外,可根据亮度分量或色度分量用信号发送变换模式信息。换句话说,可根据Y分量、Cb分量或Cr分量用信号发送变换模式信息。例如,当用信号发送关于针对Y分量是执行DCT-2还是执行SDST的变换模式信息时,可将针对Y分量用信号发送的变换模式信息用作块的变换模式,而无需用信号发送针对Cb分量和Cr分量中的至少一个分量的任何变换模式信息。
这里,可利用使用上下文模型的算术编码方法来对变换模式信息进行熵编码/熵解码。当以预定义表和索引的形式实现变换模式信息时,利用使用上下文模型的算术编码方法来对多个二进制位中的全部或部分二进制位进行熵编码/熵解码。
此外,可根据块尺寸选择性地对变换模式信息进行熵编码/熵解码。例如,当当前块的尺寸等于或大于64×64时,不对变换模式信息进行熵编码/熵解码。当该尺寸等于或小于32×32时,对变换模式信息进行熵编码/熵解码。
此外,当在当前块内存在非零变换系数或L个量化的等级时,不对变换模式信息进行熵编码/熵解码,并且执行DCT-2、DST-7和SDST方法中的一种方法。这里,不管块内的非零变换系数或量化的等级的位置如何,可不对变换模式信息进行熵编码/熵解码。此外,仅当非零变换系数或量化的等级存在于块内的左上位置时,可不对变换模式信息进行熵编码/熵解码。这里,L可以是包括零的正整数,并且例如,可以是1。
此外,当非零变换系数或者J个或更多个量化的等级存在于当前块内时,对变换模式信息进行熵编码/熵解码。这里,J是正整数。
此外,变换模式信息是根据同位块的变换模式来限定一些变换模式的使用或者同位块的变换模式由很少的比特表示的方法,变换方法的二值化方法可变化。
可基于当前块的预测模式、帧内预测模式、帧间预测模式、TU深度、尺寸和形状中的至少一个来限制性地使用上述SDST。
例如,当在帧间模式下对当前块进行编码时,使用SDST。
可定义允许SDST的最小/最大深度。在这种情况下,当当前块的深度等于或大于最小深度时,使用SDST。可选地,当当前块的深度等于或小于最大深度时,使用SDST。这里,最小/最大深度可以是固定值,或者可基于指示最小/最大深度的信息被可变地确定。指示最小/最大深度的信息可从编码器被用信号发送,并且可基于当前块/邻近块的属性(例如,尺寸、深度和/或形状)从解码器被推导出。
可定义允许SDST的最小/最大尺寸。类似地,当当前块的尺寸等于或大于最小尺寸时,使用SDST。可选地,当当前块的尺寸等于或小于最大尺寸时,使用SDST。这里,最小/最大尺寸可以是固定值,或者可基于指示最小/最大尺寸的信息被可变地确定。指示最小/最大尺寸的信息可从编码器被用信号发送,并且可基于当前块/邻近块的属性(例如,尺寸、深度和/或形状)从解码器被推导出。例如,当当前块是4×4时,DCT-2被用作变换方法,并且不对关于是使用DCT-2还是使用SDST的变换模式信息进行熵编码/熵解码。
可定义允许SDST的块的形状。在这种情况下,当当前块的形状是所定义的块形状时,使用SDST。此外,可定义不允许SDST的块的形状。在这种情况下,当当前块的形状是所定义的块形状时,不使用SDST。允许或不允许SDST的块的形状可以是固定的,并且可从编码器用信号发送关于此的信息。可选地,它可基于当前块/邻近块的属性(例如,尺寸、深度和/或形状)从解码器被推导出。允许或不允许SDST的块的形状可表示例如在M×N的块中M、N和/或M与N之间的比率。
此外,当TU的深度为零时,DCT-2或DST-7被用作变换方法,并且对关于已使用哪种变换方法的变换模式信息进行熵编码/熵解码。当DST-7被用作变换方法时,执行残差信号的重排处理。此外,当TU的深度是1或更大时,DCT-2或SDST被用作变换方法,并且对关于已使用哪种变换方法的变换模式信息进行熵编码/熵解码。
此外,可根据CU和PU的分区形状或者当前块的形状选择性地使用变换方法。
根据实施例,当CU和PU的分区形状或者当前块的形状是2N×2N时,使用DCT-2。对于其余的分区形状和块形状,可选择性地使用DCT-2或SDST。
此外,当CU和PU的分区形状或者当前块的形状是2N×N或N×2N时,使用DCT-2。对于其余的分区形状和块形状,可选择性地使用DCT-2或SDST。
此外,当CU和PU的分区形状或者当前块的形状是nR×2N、nL×2N、2N×nU或2N×nD时,使用DCT-2。对于其余的分区形状和块形状,可选择性地使用DCT-2或SDST。
另外,当以从当前块的分区产生的块为单位执行SDST或DST-7时,可以以从分区产生的块为单位对变换系数(量化的等级)执行扫描和逆扫描。此外,当以从当前块的分区产生的块为单位执行SDST或DST-7时,可以以未被分区的当前块为单位对变换系数(量化的等级)执行扫描和逆扫描。
此外,可根据当前块的帧内预测模式(方向)、当前块的尺寸和当前块的分量(亮度分量或色度分量)中的至少一个来执行使用SDST或DST-7的变换/逆变换。
此外,在使用SDST或DST-7的变换/逆变换中,可使用DST-1来代替DST-7。此外,在使用SDST或DST-7的变换/逆变换中,可使用DCT-4来代替DST-7。
此外,在使用DCT-2的变换/逆变换中,可应用用于SDST或DST-7的残差信号的重排的重排方法。也就是说,即使当使用DCT-2时,也执行残差信号的重排或使用预定角度的残差信号的旋转。
在下文中,将描述针对混排方法和用信号进行发送的方法的各种修改和实施例。
本发明的SDST旨在通过改变变换、混排、重排和/或翻转方法来提高图像压缩效率。通过残差信号的混排来执行DST-7有效地反映了残差信号在PU内的分布特征,因此实现了高压缩效率。
在与所述混排步骤相关的以上描述中,已经描述了残差信号重排方法。在下文中,除了用于残差信号的重排的混排方法之外,还将描述其他实现方法。
下面描述的重排方法可被应用于与上述SDST方法相关的实施例中的至少一个实施例。
为了最小化实现残差信号的重排时的硬件复杂度,可通过水平翻转方法和垂直翻转方法来实现残差信号重排处理。可通过下面的(1)至(4)中所示的翻转来实现残差信号重排方法。下面描述的重排可表示翻转。
(1)r'(x,y)=r(x,y);不翻转
(2)r'(x,y)=r(w-1-x,y);水平翻转
(3)r'(x,y)=r(x,h-1-y);垂直翻转
(4)r'(x,y)=r(w-1-x,h-1-y);水平和垂直翻转
表达式r'(x,y)表示重排之后的残差信号,并且表达式r(x,y)表示重排之前的残差信号。块的宽度和高度分别由w和h表示。残差信号在块内的位置由x和y表示。可以以与所述重排方法相同的处理执行使用翻转的重排方法的逆重排方法。也就是说,可通过再次执行水平翻转将使用水平翻转重排的残差信号重建为原始残差信号排列。由编码器执行的重排方法和由解码器执行的逆重排方法可以是相同的翻转方法。
例如,如下所示,当对已被执行水平翻转的残差块执行水平翻转时,获得执行翻转之前的残差块。
r’(w-1-x,y)=r(w-1-(w-1-x),y)=r(x,y)。
例如,如下所示,当对已被执行垂直翻转的残差块执行垂直翻转时,获得执行翻转之前的残差块。
r’(x,h-1-y)=r(x,h-1-(h-1-y))=r(x,y)。
例如,如下所示,当对已被执行水平和垂直翻转的残差块执行水平和垂直翻转时,获得执行翻转之前的残差块。
r’(w-1-x,h-1-y)=r(w-1-(w-1-x),h-1-(h-1-y))=r(x,y)。
可在不对当前块进行分区的情况下使用基于翻转的残差信号混排/重排方法。也就是说,在SDST方法中,描述了当前块(TU等)被分区为子块并且DST-7被用于每个子块。然而,当使用基于翻转的残差信号混排/重排方法时,不将当前块分区为子块,并且对整个当前块或当前块的一部分执行翻转,然后执行DST-7变换。此外,当使用基于翻转的残差信号混排/重排方法时,不将当前块分区为子块,并且在执行DST-7逆变换之后,对当前块的全部或一部分执行翻转。
可定义能够执行基于翻转的残差信号混排/重排的块的最大尺寸(M×N)和/或最小尺寸(O×P)。这里,该尺寸可包括作为水平尺寸(M或O)的宽度以及作为垂直尺寸(N或P)的高度中的至少一个。M、N、O和P可以是正整数。块的最大尺寸和/或块的最小尺寸可以是在编码器/解码器中的预定义的值,或者可以是从编码器被用信号发送到解码器的信息。
例如,当当前块的尺寸小于能够执行翻转方法的最小尺寸时,不执行翻转和DST-7变换,而仅执行DCT-2变换。这里,可不用信号发送作为指示翻转和DST-7是否被用作变换模式的变换模式信息的SDST标志。
例如,当块的宽度小于能够执行翻转方法的最小宽度并且块的高度大于能够执行翻转方法的最小高度时,仅利用DCT-2执行水平方向上的一维变换。对于垂直方向上的一维变换,在垂直翻转之后使用DST-7来执行一维垂直变换,或者在不进行翻转的情况下使用DST-7来执行一维垂直变换。这里,可仅针对垂直方向上的一维变换用信号发送作为指示翻转是否被用作变换模式的变换模式信息的SDST标志。
例如,当块的高度小于能够执行翻转方法的最小宽度并且块的宽度大于能够执行翻转方法的最小宽度时,对于水平方向上的一维变换,在水平翻转之后使用DST-7来执行一维水平变换,或者在不进行翻转的情况下使用DST-7来执行一维水平变换。仅利用DCT-2执行垂直方向上的一维变换。这里,可仅针对水平方向上的一维变换用信号发送作为指示翻转是否被用作变换模式的变换模式信息的SDST标志。
例如,当当前块的尺寸大于能够执行翻转方法的最大尺寸时,不使用翻转和DST-7变换,而仅使用DCT-2变换。这里,可不用信号发送作为指示翻转和DST-7变换是否被用作变换模式的变换模式信息的SDST标志。
例如,当当前块的尺寸大于能够执行翻转方法的最大尺寸时,仅使用DCT-2变换或DST-7变换。
例如,当能够执行翻转方法的最大尺寸是32×32并且最小尺寸是4×4时,翻转和DST-7变换被用于尺寸为64×64的块,并且仅使用DCT-2变换。这里,对于尺寸为64×64的块,可不用信号发送作为指示翻转和DST-7是否被用作变换模式的变换模式信息的SDST标志。此外,对于尺寸为4×4至32×32的块,可用信号发送作为指示翻转和DST-7是否被用作变换模式的变换模式信息的SDST标志。在这种情况下,不将DST-7变换用于尺寸为64×64的块,因此可节省用于存储尺寸为64×64的块所使用的DST-7变换的存储空间。
例如,当能够执行翻转方法的最大尺寸是32×32并且最小尺寸是4×4时,不仅将翻转方法用于尺寸为64×64的块,还使用DCT-2变换或DST-7变换。
例如,可以以四叉树将尺寸为M×N的正方形块分区为四个子块,并且可使用翻转对子块中的每个子块执行混排/重排方法,然后可执行DST-7变换。这里,可针对子块中的每个子块显式地用信号发送翻转方法。翻转方法可作为两个比特的固定长度码被用信号发送,并且可作为截断一元码被用信号发送。此外,可根据从分区操作产生的每个块使用基于翻转方法的发生概率的二值化方法。这里,M和N可以是正整数,例如,64×64。
例如,可以以四叉树将尺寸为M×N的正方形块分区为四个子块,并且可使用翻转对子块中的每个子块执行混排/重排方法,然后可执行DST-7变换。可隐式地确定针对子块中的每个子块的翻转方法。例如,可针对第一(左上)子块确定水平和垂直翻转,可针对第二(右上)子块确定垂直翻转,可针对第三(左下)子块确定水平翻转,并且可针对第四(右下)子块确定不翻转。如上所述,当隐式地确定翻转方法时,不需要用信号发送翻转方法。这里,M和N可以是正整数,例如,64×64。
例如,可以以二叉树将尺寸为2M×N的矩形块分区为两个M×N的正方形块,并且可使用翻转对所述两个块中的每一个块执行混排/重排方法,然后可执行DST-7变换。这里,可针对子块中的每一个子块显式地用信号发送翻转方法。翻转方法可作为两个比特的固定长度码被用信号发送,并且可作为截断一元码被用信号发送。此外,可根据子块中的每个子块使用基于翻转方法的发生概率的二值化方法。这里,M和N可以是正整数,例如,8×8。
例如,可以以二叉树将尺寸为2M×N的矩形块分区为两个M×N的正方形块,并且可使用翻转对子块中的每个子块执行混排/重排方法,然后可执行DST-7变换。可隐式地确定针对子块中的每个子块的翻转方法。可针对第一(左)子块确定水平翻转,并且可针对第二(右)子块确定不翻转。如上所述,当隐式地确定翻转方法时,不需要用信号发送该翻转方法。这里,M和N可以是正整数,例如,4×4。
例如,可以以二叉树将尺寸为M×2N的矩形块分区为两个M×N的正方形块,并且可使用翻转对子块中的每个子块执行混排/重排方法,然后可执行DST-7变换。可隐式地确定针对子块中的每个子块的翻转方法。可针对第一(上方)子块确定垂直翻转,并且可针对第二(下方)子块确定不翻转。如上所述,当隐式地确定翻转方法时,不需要用信号发送该翻转方法。这里,M和N可以是正整数,例如,4×4。
可以应用以下两种方法中的至少一种:对尺寸为M×N的块执行DCT-2变换/逆变换的方法;以及,以四叉树或以二叉树对块进行分区以生成子块,并且对子块中的每个子块执行翻转,然后执行DST-7变换/逆变换的方法。这里,可根据作为子块的父块的块中的相对位置来不同地执行翻转方法,并且这可被隐式地确定。这里,M和N可以是正整数,并且例如,M和N可以是64。也就是说,尺寸为M×N的块可以是尺寸相对大的块。
在左上子块的情况下,水平和垂直翻转可被确定为针对子块的翻转。
在右上子块的情况下,垂直翻转可被确定为针对子块的翻转。
在左下子块的情况下,水平翻转可被确定为针对子块的翻转。
在右下子块的情况下,可确定不执行针对子块的翻转。
可使用变换模式信息对关于基于翻转的残差信号混排/重排方法的使用的信息(sdst_flag或sdstt_flag)进行熵编码/熵解码。也就是说,通过用信号发送变换模式信息,可在解码器中执行在编码器中执行的相同方法。例如,当指示变换模式信息的标志位具有第一值时,基于翻转和DST-7的残差信号混排/重排方法被用作变换/逆变换方法。当标志位具有第二值时,使用另一变换/逆变换方法。这里,可针对每个块对变换模式信息进行熵编码/熵解码。这里,另一变换/逆变换方法可以是DCT-2变换/逆变换方法。此外,在变换跳过模式、残差差分PCM(RDPCM)模式和无损模式中的一种模式的情况下,省略对变换模式信息的熵编码/熵解码,并且不用信号发送该变换模式信息。
可使用当前块的深度、当前块的尺寸、当前块的形状、邻近块的变换模式信息、当前块的编码块标志以及关于是否使用当前块的变换跳过模式的信息中的至少一个来对变换模式信息进行熵编码/熵解码。例如,当当前块的编码块标志为零时,省略对变换模式信息的熵编码/熵解码,并且不用信号发送该变换模式信息。此外,可在熵编码/熵解码期间根据与当前块相邻的重建块的变换模式信息预测地对变换模式信息进行编码/解码。此外,可基于当前块和邻近块的编码参数中的至少一个来用信号发送变换模式信息。
此外,使用翻转方法信息,可以以标志或索引(flipping_idx)的形式对所述四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的至少一种进行熵编码/熵解码。也就是说,通过用信号发送翻转方法信息,可在解码器中执行在编码器中执行的相同翻转方法。变换模式信息可包括翻转方法信息。
此外,在变换跳过模式、残差差分PCM(RDPCM)模式和无损模式中的一种模式的情况下,省略对翻转方法信息的熵编码/熵解码,并且不用信号发送该翻转方法信息。可使用当前块的深度、当前块的尺寸、当前块的形状、邻近块的翻转方法信息、当前块的编码块标志以及关于是否使用当前块的变换跳过模式的信息中的至少一个来对翻转方法信息进行熵编码/熵解码。例如,当当前块的编码块标志为零时,省略对翻转方法信息的熵编码/熵解码,并且不用信号发送该变换模式信息。此外,可在熵编码/熵解码期间根据与当前块相邻的重建块的翻转方法信息预测地对翻转方法信息进行编码/解码。此外,可基于当前块和邻近块的编码参数中的至少一个来用信号发送翻转方法信息。
此外,残差信号重排方法不限于上述残差信号重排,并且可通过以预定角度旋转块内的残差信号来实现混排。这里,该预定角度可表示0度、90度、180度、-90度、-180度、270度、-270度、45度、-45度、135度、-135度等的角度。这里,关于角度的信息可以以标志或索引的形式被熵编码/熵解码,并且可与用信号发送变换模式信息的方法相似地被执行。
此外,可在熵编码/熵解码期间根据与当前块相邻的重建块的角度信息预测地对角度信息进行编码/解码。当使用角度信息来执行重排时,可以在对当前块进行分区之后执行SDST或DST-7,但是也可以在不对当前块进行分区的情况下以当前块为单位执行SDST或DST-7。
可根据子块的位置不同地确定该预定角度。可以以限制的方式使用通过仅旋转子块中的特定位置处的子块(例如,第一子块)来进行重排的方法。此外,可将使用预定角度的重排应用于整个当前块。这里,作为重排的目标的当前块可以是逆变换之前的残差块、反量化之前的残差块、逆变换之后的残差块、反量化之后的残差块、重建的残差块和重建的块中的至少一个。
另外,为了实现与对残差信号的重排或旋转相同的效果,可重排或旋转用于变换的变换矩阵的系数,并且这可被应用于预先排列的残差信号以便执行变换。也就是说,使用对变换矩阵的重排来执行变换,而非对残差信号进行重排,因此可以实现与对残差信号执行重排和变换的方法相同的效果。这里,可以以与上述残差信号重排方法相同的方式来执行对变换矩阵的系数的重排,并且可以以与用信号发送上述残差信号重排方法所需的信息的方法相同的方式执行用信号发送其所需的信息的方法。
另外,关于混排步骤的上述残差信号重排方法的一部分可被编码器确定为最佳重排方法,并且可将关于所确定的重排方法的信息(翻转方法信息)用信号发送到解码器。例如,当使用四种重排方法时,编码器将关于残差信号重排方法的信息以多达两个比特的方式用信号发送到解码器。
此外,当所使用的重排方法具有不同的发生概率时,使用较少的比特对具有高发生概率的重排方法进行编码,并且使用相对较多的比特对具有低发生概率的重排方法进行编码。例如,按照发生概率减小的顺序排列四种重排方法,并且作为截断一元码(例如,(0,10,110,111)或(1,01,001,000))用信号发送是可行的。
此外,重排方法的发生概率可根据编码参数(诸如当前CU的预测模式、PU的帧内预测模式(方向)、邻近块的运动矢量等)而变化。因此,可根据编码参数不同地使用关于重排方法的信息(翻转方法信息)的编码方法。例如,重排方法的发生概率可根据帧内预测的预测模式而变化。因此,对于每个帧内模式,可将较少的比特分配给具有高发生概率的重排方法,并且可将许多的比特分配给具有低发生概率的重排方法。可选地,根据情况,具有非常低的发生概率的重排方法可不被使用,并且可不被分配任何比特。
可根据当前块的预测模式(帧间模式或帧内模式)、帧内预测模式(包括方向模式和非方向模式)、帧间预测模式、块尺寸、块形状(正方形形状或非正方形形状)、亮度/色度信号、变换模式信息等中的至少一个来构建包括残差信号重排方法中的至少一种方法的重排集。重排可表示翻转。此外,基于当前块和邻近块的编码参数中的至少一个,可构建包括残差信号重排方法中的至少一种方法的重排集。
此外,根据当前块的预测模式、帧内预测模式、帧间预测模式、块尺寸、块形状、亮度/色度信号、变换模式信息等中的至少一个,可选择以下重排集中的至少一个。此外,基于当前块和邻近块的编码参数中的至少一个,可选择重排集中的至少一个。
重排集可包括“不翻转”、“水平翻转”、“垂直翻转”以及“水平和垂直翻转”中的至少一个。重排集的示例如下所示。
1、不翻转
2、水平翻转
3、垂直翻转
4、水平和垂直翻转
5、不翻转、以及水平翻转
6、不翻转、以及垂直翻转
7、不翻转、以及水平和垂直翻转
8、水平翻转、以及垂直翻转
9、水平翻转、以及水平和垂直翻转
10、垂直翻转、以及水平和垂直翻转
11、不翻转、水平翻转、以及垂直翻转
12、不翻转、水平翻转、以及水平和垂直翻转
13、不翻转、垂直翻转、以及水平和垂直翻转
14、水平翻转、垂直翻转、以及水平和垂直翻转
15、不翻转、水平翻转、垂直翻转、以及水平和垂直翻转
基于重排集,残差信号重排方法中的至少一种可被用于当前块的重排。
此外,根据当前块的预测模式、帧内预测模式、帧间预测模式、块尺寸、块形状、亮度/色度信号、变换模式信息、翻转方法信息等中的至少一个,可在重排集中选择残差信号重排方法中的至少一种。此外,基于当前块和邻近块的编码参数中的至少一个,可在重排集中选择残差信号重排方法中的至少一种。
根据当前块的预测模式,可构建至少一个重排集。例如,当当前块的预测模式是帧内预测时,构建多个重排集。当当前块的预测模式是帧间预测时,构建一个重排集。
根据当前块的帧内预测模式,可构建至少一个重排集。例如,当当前块的帧内预测模式是非方向模式时,构建一个重排集。当当前块的帧内预测模式是方向模式时,构建多个重排集。
根据当前块的尺寸,可构建至少一个重排集。例如,当当前块的尺寸大于16×16时,构建一个重排集。当当前块的尺寸等于或小于16×16时,构建多个重排集。
根据当前块的形状,可构建至少一个重排集。例如,当当前块为正方形形状时,构建一个重排集。当当前块为非正方形形状时,构建多个重排集。
根据当前块的亮度/色度信号,可构建至少一个重排集。例如,当当前块是色度信号时,构建一个重排集。当当前块是亮度信号时,构建多个重排集。
此外,基于重排集,针对残差信号重排方法的索引可被熵编码/熵解码。这里,该索引可被熵编码/熵解码为可变长度码或固定长度码。
此外,基于重排集,可执行针对残差信号重排方法的索引的二值化和反二值化。这里,索引可被二值化和反二值化为可变长度码或固定长度码。
此外,重排集在编码器和解码器中可以是表的形式,并且可通过方程式来计算。
此外,可以以具有对称性的方式构建重排集。例如,可以以具有对称性的方式构建针对重排集的表。这里,针对帧内预测模式可以以具有对称性的方式构建该表。
此外,可根据帧内预测模式是否在特定范围中以及帧内预测模式是偶数还是奇数中的至少一个构建重排集。
下表示出根据当前块的预测模式和帧内预测模式(方向)对残差信号重排方法进行编码/解码的方法的示例。
此外,在下表中,可使用翻转方法信息来指示残差信号重排方法中的至少一种的使用。
[表1]
Figure BDA0002774090280000581
在表1中,残差信号重排方法的列(1)至列(4)(诸如针对上述残差信号重排的扫描/重排顺序的索引、针对预定角度值的索引、针对预定翻转方法的索引等)指定残差信号重排方法。在表1中,残差信号重排方法的列中的标记*表示在不用信号发送的情况下隐式地使用对应的重排方法,并且标记-表示在对应情况下不使用对应的重排方法。隐式地使用重排方法的含义可以是在不对针对残差信号重排方法的索引进行熵编码/熵解码的情况下利用变换模式信息(sdst_flag或sdst_flag)使用重排方法。残差信号重排方法的列(1)至列(4)可分别指(1)不翻转、(2)水平翻转、(3)垂直翻转以及(4)水平和垂直翻转。此外,数字0、1、10、11、110、111等可以是用于对残差信号重排方法进行熵编码/熵解码的二值化/反二值化的结果。作为二值化/反二值化方法,可使用固定长度码、截断一元码、一元码等。
如表1中所示,当当前块与预测模式和帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。这里,45度角的对角线方向可表示朝向当前块中的左上位置的方向或者从当前块中的左上位置朝向当前块的方向。
[表2]
Figure BDA0002774090280000591
作为另一示例,如表2中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表3]
Figure BDA0002774090280000592
作为另一示例,如表3中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表4]
Figure BDA0002774090280000593
Figure BDA0002774090280000601
作为另一示例,如表4中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。例如,当当前块在帧内模式下并且帧内预测方向是偶数时,将不翻转、水平翻转以及垂直翻转方法中的至少一种用作残差信号重排方法。此外,当当前块在帧内模式下并且帧内预测方向是奇数时,将不翻转、垂直翻转、水平和垂直翻转方法中的至少一种用作残差信号重排方法。
[表5]
Figure BDA0002774090280000602
作为另一示例,如表5中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表6]
Figure BDA0002774090280000603
作为另一示例,如表6中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表7]
Figure BDA0002774090280000611
作为另一示例,如表7中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表8]
Figure BDA0002774090280000612
作为另一示例,如表8中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表9]
Figure BDA0002774090280000613
Figure BDA0002774090280000621
作为另一示例,如表9中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表10]
Figure BDA0002774090280000622
作为另一示例,如表10中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。这里,135度角的对角线方向可表示朝向当前块中的右上位置的方向或者从当前块中的右上位置朝向当前块的方向。例如,135度角的对角线方向模式的值可以是6。这里,-45度角的对角线方向可表示朝向当前块中的右下位置的方向或者从当前块中的右下位置朝向当前块的方向。例如,-45度角的对角线方向模式的值可以是2。
[表11]
Figure BDA0002774090280000623
Figure BDA0002774090280000631
作为另一示例,如表11中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表12]
Figure BDA0002774090280000632
Figure BDA0002774090280000641
作为另一示例,如表12中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。
[表13]
Figure BDA0002774090280000642
作为另一示例,如表13中所示,当当前块与预测模式中的至少一个以及帧内预测模式(方向)中的至少一个对应时,在编码器和解码器中使用至少一种重排方法。这里,残差信号重排方法可表示变换的类型。例如,当残差信号重排方法是(1)时,水平变换和垂直变换都表示第一变换核。作为另一示例,当残差信号重排方法是(2)时,水平变换和垂直变换分别表示第二变换核和第一变换核。作为另一示例,当残差信号重排方法是(3)时,水平变换和垂直变换分别表示第一变换核和第二变换核。作为另一示例,当残差信号重排方法是(4)时,水平变换和垂直变换分别表示第二变换核和第二变换核。例如,第一变换核可以是DST-7,并且第二变换核可以是DCT-8。当帧内预测模式是平面模式或DC模式时,基于发生的频率使用截断一元码对关于四种重排方法的信息(翻转方法信息)进行熵编码/熵解码。
当帧内预测方向是水平方向或者与水平方向接近的模式时,重排方法(1)和/或重排方法(3)的概率高。在这种情况下,可将一个比特用于所述两种重排方法中的每一种,并且可对关于重排方法的信息进行熵编码/熵解码。这里,接近水平方向的模式的含义可以是特定模式的值在针对水平方向模式的值-K与针对水平方向模式的值+K之间。这里,K可以是整数。例如,当针对水平方向模式的值是18且K是4并且特定模式是20时,该特定模式是与水平方向接近的模式。例如,当针对水平方向模式的值是18且K是4并且特定模式是26时,该特定模式不是与水平方向接近的模式。
当帧内预测方向是垂直方向或与垂直方向接近的模式时,重排方法(1)和/或重排方法(2)的概率高。在这种情况下,可将一个比特用于所述两种方法中的每一种,并且可对关于重排方法的信息进行熵编码/熵解码。这里,与垂直方向接近的模式的含义可以是特定模式的值在针对垂直方向模式的值-K与针对垂直方向模式的值+K之间。这里,K可以是整数。例如,当针对垂直方向模式的值是50且K是2并且特定模式是51时,该特定模式是与垂直方向接近的模式。例如,当针对垂直方向模式的值是50且K是8并且特定模式是20时,该特定模式不是与垂直方向接近的模式。
当帧内预测方向是45度角的对角线方向或者与45度角的对角线方向接近的模式时,与重排方法(1)的概率相比,其他重排方法(2)、(3)和(4)的概率非常低。在这种情况下,仅应用以上方法中的一种,并且可在不用信号发送关于重排方法的信息的情况下隐式地使用该方法。这里,与45度角的对角线方向接近的模式的含义可以是特定模式的值在针对45度角的对角线方向模式的值-K与针对45度角的对角线方向模式的值+K之间。这里,K可以是整数。例如,当45度角的对角线方向模式的值是34且K是2并且特定模式是36时,该特定模式是与45度角的对角线方向模式接近的模式。例如,当45度角的对角线方向模式的值是34且K是8并且特定模式是10时,该特定模式不是与45度角的对角线方向模式接近的模式。
当帧内预测方向是偶数时,仅针对重排方法(1)、(2)和(3)将关于重排方法的信息熵编码/熵解码为截断一元码或一元码。
当帧内预测方向是奇数时,仅针对重排方法(1)、(3)和(4)将关于重排方法的信息熵编码/熵解码为截断一元码或一元码。
对于其它帧内预测方向,重排方法(4)的发生概率可能较低,因此仅针对重排方法(1)、(2)和(3)将关于重排方法的信息熵编码/熵解码为截断一元码或一元码。
在帧间预测的情况下,重排方法(1)至(4)的发生概率可被认为是相等的,并且可将关于重排方法的信息熵编码/熵解码为两个比特的固定长度码。
算术编码/解码可被用于该码。此外,针对该码使用上下文模型的算术编码可不被使用,并且可以在旁路模式下进行熵编码/熵解码。
可在不翻转的情况下针对画面内的区域或CTU、整个画面或者画面组内的当前块执行利用DST-7的变换/逆变换,或者可通过在执行利用DCT-2的变换/逆变换的两种方法中选择一种方法来执行变换/逆变换。在这种情况下,可对指示以当前块为单位使用DST-7还是DCT-2的1比特标志信息(变换模式信息)进行熵编码/熵解码。该方法可被用于距参考样点的距离越长则残差信号的能量越大的情况,或者可被用于降低编码和解码中的计算复杂度。可以以CTU、条带、PPS、SPS或其它特定区域为单位用信号发送关于使用该方法的区域的信息,并且可以以开/关形式用信号发送1比特标志。
对于画面内的区域或CTU、整个画面或者画面组内的当前块,可通过在以下三种方法中选择一种方法来执行变换/逆变换:DCT-2变换/逆变换、不进行翻转的DST-7变换/逆变换以及执行垂直翻转之后进行DST-7变换/逆变换。可使用当前块的附近信息来隐式地选择关于将在所述三种方法中选择哪种方法的信息,并且可通过用信号发送索引(变换模式信息或翻转方法信息)来显式地选择关于将在所述三种方法中选择哪种方法的信息。可以以DCT-2是0、不进行翻转的DST-7是10并且垂直翻转之后进行DST-7是11的方式将索引用信号发送为截断一元码。此外,根据当前块的尺寸和附近信息,DCT-2的二值化和DST-7的二值化可被交换以用信号发送。此外,可以以CU为单位用信号发送二进制数中的第一个二进制数,并且可以以TU或PU为单位用信号发送其余二进制数。可以以CTU、条带、PPS、SPS或其它特定区域为单位用信号发送关于使用该方法的区域的信息,并且可以以开/关形式用信号发送1比特标志。
对于画面内的区域或CTU、整个画面或者画面组内的当前块,可通过在以下四种方法中选择一种方法来执行变换/逆变换:DCT-2变换/逆变换、不进行翻转的DST-7变换/逆变换、执行水平翻转之后进行DST-7变换/逆变换以及执行垂直翻转之后进行DST-7变换/逆变换。可使用当前块的附近信息来隐式地选择关于将在所述四种方法中选择哪种方法的信息并且可通过用信号发送索引(变换模式信息或翻转方法信息)来显式地选择关于将在所述四种方法中选择哪种方法的信息。可以以DCT-2是0,不进行翻转的DST-7是10,水平翻转之后进行DST-7是110并且垂直翻转之后进行DST-7是111的方式将索引用信号发送为截断一元码。此外,根据当前块的尺寸和附近信息,DCT-2的二值化和DST-7的二值化可被交换以用信号发送。此外,可以以CU为单位用信号发送二进制数中的第一个二进制数,并且可以以TU或PU为单位用信号发送其余二进制数。根据帧内预测模式,可仅使用所述四种方法中的一部分方法。例如,当帧内预测模式的值小于对角线预测模式、帧内预测模式是DC模式、或者帧内预测模式是平面模式时,仅使用以下三种方法:DCT-2、不进行翻转的DST-7以及垂直翻转之后进行DST-7。在这种情况下,可以以DCT-2是0,不进行翻转的DST-7是10,并且垂直翻转之后进行DST-7是11的方式用信号发送变换模式信息或翻转方法信息。例如,当帧内预测模式的值大于对角线预测模式的值时,仅使用以下三种方法:DCT-2、不进行翻转的DST-7以及水平翻转之后进行DST-7。在这种情况下,可以以DCT-2是0,不进行翻转的DST-7是10,并且水平翻转之后进行DST-7是11的方式用信号发送变换模式信息或翻转方法信息。可以以CTU、条带、PPS、SPS或其它特定区域为单位用信号发送关于使用该方法的区域的信息,并且可以以开/关形式用信号发送1比特标志。
对于画面内的区域或CTU、整个画面或者画面组内的当前块,可通过在以下五种方法中选择一种方法来执行变换/逆变换:DCT-2变换/逆变换、不进行翻转的DST-7变换/逆变换、执行水平翻转之后进行DST-7变换/逆变换、执行垂直翻转之后进行DST-7变换/逆变换以及执行水平和垂直翻转之后进行DST-7变换/逆变换。可使用当前块的附近信息来隐式地选择关于将在所述五种方法中选择哪种变换的信息,并且可通过用信号发送索引(变换模式信息或翻转方法信息)来显式地选择关于将在所述五种方法中选择哪种变换的信息。可以以DCT-2是0,不进行翻转的DST-7是10,水平翻转之后进行DST-7是110,垂直翻转之后进行DST-7是1110并且水平和垂直翻转之后进行DST-7是1111的方式将索引用信号发送为截断一元码。此外,根据当前块的尺寸和附近信息,DCT-2的二值化和DST-7的二值化可被交换以用信号发送。此外,可以以CU为单位用信号发送二进制数中的第一个二进制数,并且可以以TU或PU为单位用信号发送其余二进制数。此外,可通过在二进制数中将第一个二进制数、第二个二进制数和第三个二进制数区分开来将信息用信号发送为固定长度码。例如,可以以DCT-2是0,不进行翻转的DST-7是000,水平翻转之后进行DST-7是001,垂直翻转之后进行DST-7是010并且水平和垂直翻转之后进行DST-7是011的方式用信号发送变换模式信息或翻转方法信息。此外,根据帧内预测模式,可仅使用所述五种方法中的一部分方法。例如,当帧内预测模式是与水平方向预测模式接近的预测模式时,仅使用以下三种变换方法:DCT-2、不进行翻转的DST-7以及垂直翻转之后进行DST-7。在这种情况下,可以以DCT-2是0,不进行翻转的DST-7是10并且垂直翻转之后进行DST-7是11的方式用信号发送变换模式信息或翻转方法信息。
例如,当帧内预测模式是与垂直方向预测模式接近的预测模式时,仅使用以下三种变换方法:DCT-2、不进行翻转的DST-7以及水平翻转之后进行DST-7。在这种情况下,可以以DCT-2是0,不进行翻转的DST-7是10并且水平翻转之后进行DST-7是11的方式用信号发送变换模式信息或翻转方法信息。
例如,当帧内预测模式是与对角线方向预测模式接近的预测模式时,仅使用以下两种变换方法:DCT-2以及不进行翻转的DST-7。在这种情况下,可以以DCT-2是0并且不进行翻转的DST-7是1的方式用信号发送变换模式信息或翻转方法信息。
例如,在除了上述三种情况之外的情况下,可使用所述五种变换方法的全部:DCT-2、不进行翻转的DST-7、水平翻转之后进行DST-7、垂直翻转之后进行DST-7以及水平和垂直翻转之后进行DST-7。可以以截断一元码方案、固定长度码方案或其它方案来用信号发送变换方法的索引。
例如,当帧内预测模式是非方向模式时,使用所述五种变换方法的全部:DCT-2、不进行翻转的DST-7、水平翻转之后进行DST-7、垂直翻转之后进行DST-7、以及水平和垂直翻转之后进行DST-7。可以以截断一元码方案、固定长度码方案或其它方案来用信号发送变换方法的索引。
例如,当帧内预测模式是奇数模式时,使用以下四种变换方法:DCT-2、不进行翻转的DST-7、垂直翻转之后进行DST-7以及水平和垂直翻转之后进行DST-7。在这种情况下,可以以DCT-2是0,不进行翻转的DST-7是10,垂直翻转之后进行DST-7是110并且水平和垂直翻转之后进行DST-7是111的方式用信号发送变换模式信息或翻转方法信息。
例如,当帧内预测模式是偶数模式时,使用以下四种变换方法:DCT-2、不进行翻转的DST-7、水平翻转之后进行DST-7以及垂直翻转之后进行DST-7。在这种情况下,可以以DCT-2是0,不进行翻转的DST-7是10,水平翻转之后进行DST-7是110并且垂直翻转之后进行DST-7是111的方式用信号发送变换模式信息或翻转方法信息。可以以CTU、条带、PPS、SPS或其它特定区域为单位用信号发送关于使用该方法的区域的信息,并且可以以开/关形式用信号发送1比特标志。
图22和图23分别示出在根据本发明的编码器和解码器中被执行残差信号重排(残差重排)的位置。
参照图22,在编码器中,可在DST-7变换处理之前执行残差信号重排。虽然在图22中未示出,但是在编码器中,可在变换处理与量化处理之间执行残差信号重排,或者可在量化处理之后执行残差信号重排。
参照图23,在解码器中,可在DST-7逆变换处理之后执行残差信号重排。虽然在图23中未示出,但是在解码器中,可在反量化处理与逆变换处理之间执行残差信号重排,或者可在反量化处理之前执行残差信号重排。
上面已经参照图7至图23描述了根据本发明的SDST方法。在下文中,将参照图24和图25详细描述应用了根据本发明的SDST方法的解码方法、编码方法、解码器、编码器和比特流。
图24是示出使用根据本发明的SDST方法的解码方法的实施例的示图。
参照图24,首先,在步骤S2910,可确定当前块的变换模式,并且在步骤S2920,可根据当前块的变换模式对当前块的残差数据执行逆变换。
接下来,在步骤S2930,可根据当前块的变换模式对已被执行逆变换的当前块的残差数据执行重排。
这里,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。
SDST模式可指示在DST-7变换模式下执行逆变换并且对已被执行逆变换的残差数据执行重排的模式。
SDCT模式可指示在DCT-2变换模式下执行逆变换并且对已被执行逆变换的残差数据执行重排的模式。
DST模式可指示在DST-7变换模式下执行逆变换并且不对已被执行逆变换的残差数据执行重排的模式。
DCT模式可指示在DCT-2变换模式下执行逆变换并且不对已被执行逆变换的残差数据执行重排的模式。
因此,仅当当前块的变换模式是SDST和SDCT中的一个时,执行对残差数据的重排。
虽然描述了在针对如上所述的SDST模式和DST模式的DST-7变换模式下执行逆变换,但是可使用基于其它DST(诸如DST-1、DST-2等)的变换模式。
另外,在步骤S2910确定当前块的变换模式的步骤可包括:从比特流获得当前块的变换模式信息;并且基于变换模式信息确定当前块的变换模式。
此外,在步骤S2910确定当前块的变换模式时,可基于当前块的预测模式、当前块的深度信息、当前块的尺寸和当前块的形状中的至少一个来确定当前块的变换模式。
具体地,当当前块的预测模式是帧间预测模式时,SDST和SDCT中的一个被确定为当前块的变换模式。
另外,在步骤S2930对已被执行逆变换的当前块的残差数据进行重排的步骤可包括:按照沿第一方向的顺序对排列在当前块内的已被执行逆变换的残差数据进行扫描;并且按照沿第二方向的顺序对当前块内的沿第一方向扫描的已被执行逆变换的残差数据进行重排。这里,沿第一方向的顺序可以是光栅扫描顺序、右上对角线扫描顺序、水平扫描顺序和垂直扫描顺序中的一个。此外,沿第一方向的顺序可如下被定义。
(1)从上方行到下方行进行扫描,并且在一行中从左到右进行扫描
(2)从上方行到下方行进行扫描,并且在一行中从右到左进行扫描
(3)从下方行到上方行进行扫描,并且在一行中从左到右进行扫描
(4)从下方行到上方行进行扫描,并且在一行中从右到左进行扫描
(5)从左侧列到右侧列进行扫描,并且在一列中从上到下进行扫描
(6)从左侧列到右侧列进行扫描,并且在一列中从下到上进行扫描
(7)从右侧列到左侧列进行扫描,并且在一列中从上到下进行扫描
(8)从右侧列到左侧列进行扫描,并且在一列中从下到上进行扫描
(9)以螺旋形状进行扫描:从块内部(或外部)到块外部(或内部)进行扫描,并且沿顺时针/逆时针方向进行扫描
另外,关于沿第二方向的顺序,可选择性地使用上述方向中的一个。第一方向和第二方向可相同,或者可彼此不同。
此外,在步骤S2930对已被执行逆变换的当前块的残差数据进行重排时,以当前块内的子块为单位执行重排。在这种情况下,可基于子块在当前块内的位置来对残差数据进行重排。由于上面已经在方程式6中详细描述了基于子块的位置的残差数据的重排,因此将省略重复的描述。
此外,在步骤S2930对已被执行逆变换的当前块的残差数据进行重排时,可以以预定义角度对排列在当前块内的已被执行逆变换的残差数据进行旋转以进行重排。
此外,在步骤S2930对已被执行逆变换的当前块的残差数据进行重排时,根据翻转方法,可对排列在当前块内的已被执行逆变换的残差数据执行翻转以进行重排。在这种情况下,在步骤S2910确定当前块的变换模式的步骤可包括:从比特流获得翻转方法信息;并且基于翻转方法信息确定针对当前块的翻转方法。
图25是示出使用根据本发明的SDST方法的编码方法的实施例的示图。
参照图25,在步骤S3010,可确定当前块的变换模式。
接下来,在步骤S3020,可根据当前块的变换模式来对当前块的残差数据进行重排。
接下来,在步骤S3030,可对根据当前块的变换模式重排的当前块的残差数据进行变换。
这里,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。由于已经参照图24描述了SDST、SDCT、DST和DCT模式,因此将省略重复的描述。
另外,仅当当前块的变换模式是SDST和SDCT中的一个时,执行对残差数据的重排。
此外,在步骤S3010确定当前块的变换模式时,可基于当前块的预测模式、当前块的深度信息、当前块的尺寸和当前块的形状中的至少一个来确定当前块的变换模式。
这里,当当前块的预测模式是帧间预测模式时,SDST和SDCT中的一个被确定为当前块的变换模式。
另外,在步骤S3020对当前块的残差数据进行重排的步骤可包括:按照沿第一方向的顺序对排列在当前块内的残差数据进行扫描;并且按照沿第二方向的顺序对当前块内的沿第一方向扫描的残差数据进行重排。
此外,在步骤S3020对当前块的残差数据进行重排时,以当前块内的子块为单位执行重排。
在这种情况下,在步骤S3020对当前块的残差数据进行重排时,可基于子块在当前块内的位置来对残差数据进行重排。
另外,在步骤S3020对当前块的残差数据进行重排时,可以以预定义角度对排列在当前块内的残差数据进行旋转以进行重排。
另外,在步骤S3020对当前块的残差数据进行重排时,根据翻转方法,可对排列在当前块内的残差数据执行翻转以进行重排。
使用根据本发明的SDST方法的图像解码器可包括逆变换模块,其中,所述逆变换模块确定当前块的变换模式,根据当前块的变换模式对当前块的残差数据执行逆变换,并且根据当前块的变换模式对已被执行逆变换的当前块的残差数据进行重排。这里,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。
使用根据本发明的SDST方法的图像解码器可包括逆变换模块,其中,所述逆变换模块确定当前块的变换模式,根据当前块的变换模式对当前块的残差数据进行重排,并且根据当前块的变换模式对重排的当前块的残差数据执行逆变换。这里,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。
使用根据本发明的SDST方法的图像编码器可包括变换模块,其中,所述变换模块确定当前块的变换模式并根据当前块的变换模式对当前块的残差数据进行重排,并且对根据当前块的变换模式重排的当前块的残差数据进行变换。这里,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。
使用根据本发明的SDST方法的图像编码器可包括变换模块,其中,所述变换模块确定当前块的变换模式,根据当前块的变换模式对当前块的残差数据进行变换,并且根据当前块的变换模式对经过变换的当前块的残差数据进行重排。这里,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。
由使用根据本发明的SDST方法的编码方法来生成比特流,其中,所述编码方法包括:确定当前块的变换模式;根据当前块的变换模式对当前块的残差数据进行重排;并且对根据当前块的变换模式被重排的当前块的残差数据进行变换,其中,变换模式可包括混排离散正弦变换(SDST)、混排离散余弦变换(SDCT)、离散正弦变换(DST)和离散余弦变换(DCT)中的至少一个。
图26至图31示出在根据本发明的编码器和解码器中执行翻转方法的位置的示例。
图26是示出在翻转之后执行变换的方法中的编码处理的实施例的示图。
图27是示出在逆变换之后执行翻转的方法中的解码处理的实施例的示图。
参照图26,从针对当前块的原始信号减去帧间预测信号或帧内预测信号以生成残差信号,然后可将DCT-2变换、翻转和DST-7变换中的一个选为变换方法。当变换方法是DCT-2变换时,使用DCT-2变换对残差信号执行变换,从而生成变换系数。当变换方法是翻转和DST-7变换方法时,选择四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的一种以对残差信号执行翻转,然后使用DST-7变换对已被执行翻转的残差信号执行变换,从而生成变换系数。通过对变换系数执行量化,可生成量化的等级。
参照图27,接收量化的等级以执行反量化,从而生成变换系数。可以选择与在编码处理中在DCT-2逆变换或者DST-7逆变换和翻转中选择的方法对应的方法。也就是说,当在编码处理中执行DCT-2变换时,在解码处理中执行DCT-2逆变换。此外,当在编码处理中执行翻转和DST-7变换方法时,在解码处理中执行DST-7逆变换和翻转。当逆变换方法是DCT-2逆变换时,使用DCT-2逆变换对变换系数执行逆变换,从而生成重建的残差信号。当逆变换方法是DST-7逆变换和翻转方法时,使用DST-7逆变换对残差系数执行逆变换以生成重建的残差信号。然后,选择四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的一种来对重建的残差信号执行翻转,从而生成翻转且重建的残差信号。将帧间预测信号或帧内预测信号与重建的残差信号相加或者与翻转且重建的残差信号相加,从而生成重建信号。
图28是示出在变换之后执行翻转的方法中的编码处理的实施例的示图。
图29是示出在翻转之后执行逆变换的方法中的解码处理的实施例的示图。
参照图28,从针对当前块的原始信号减去帧间预测信号或帧内预测信号以生成残差信号,然后可将DCT-2变换、DST-7变换和翻转中的一个选为变换方法。当变换方法是DCT-2变换时,使用DCT-2变换对残差信号执行变换,从而生成变换系数。当变换方法是DST-7变换和翻转方法时,使用DST-7变换对残差信号执行变换。然后,选择四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的一种来对变换系数执行翻转,从而生成已被执行翻转的变换系数。通过对变换系数或对已被执行翻转的变换系数执行量化,可生成量化的等级。当对变换系数执行翻转时,执行对变换系数的重排。执行重排的方法可以是与翻转相同的方法,可以是执行用于使变换基础的零点处的轴旋转的二次变换的方法,可以是交换变换系数的正负符号的方法等。
参照图29,接收量化的等级以执行反量化,从而生成变换系数。可以选择与在编码处理中在DCT-2逆变换或者翻转和DST-7逆变换中选择的方法对应的方法。也就是说,当在编码处理中执行DCT-2变换时,在解码处理中执行DCT-2逆变换。当在编码处理中执行DST-7变换和翻转方法时,在解码处理中执行翻转和DST-7逆变换。当逆变换方法是DCT-2逆变换时,使用DCT-2逆变换对变换系数执行逆变换,从而生成重建的残差信号。当逆变换方法是翻转和DST-7逆变换方法时,选择四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的一种来对变换系数执行翻转。然后,DST-7逆变换被用于对已被执行翻转的变换系数执行逆变换,从而生成重建的残差信号。将帧间预测信号或帧内预测信号与重建的残差信号相加,从而生成重建信号。
图30是示出在量化之后执行翻转的方法中的编码处理的实施例的示图。
图31是示出在翻转之后执行反量化的方法中的解码处理的实施例的示图。
参照图30,从针对当前块的原始信号减去帧间预测信号或帧内预测信号以生成残差信号,然后可将DCT-2变换和DST-7变换中的一个选为变换方法。当变换方法是DCT-2变换时,使用DCT-2变换对残差信号执行变换,从而生成变换系数。当变换方法是DST-7变换时,使用DST-7变换对残差信号执行变换,从而生成变换系数。通过对变换系数执行量化,可生成量化的等级。此外,当变换方法是DST-7变换时,选择四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的一种来对量化的等级执行翻转,从而生成已被执行翻转的量化的等级。此外,当对量化的等级执行翻转时,执行对量化的等级的重排。执行重排的方法可以是与翻转相同的方法,可以是执行用于使变换基础的零点处的轴旋转的二次变换的方法,可以是交换量化的等级的正负符号的方法等。
参照图31,接收量化的等级,并且选择与在编码处理中在DCT-2逆变换和DST-7逆变换中选择的方法对应的逆变换方法。也就是说,当在编码处理中执行DCT-2变换时,在解码处理中执行DCT-2逆变换。此外,当在编码处理中执行DST-7变换时,在解码处理中执行DST-7逆变换。当逆变换方法是DCT-2逆变换时,对量化的等级执行反量化以生成变换系数,然后使用DCT-2逆变换对变换系数执行逆变换,从而生成重建的残差信号。当逆变换方法是DST-7逆变换方法时,选择四种翻转方法(不翻转、水平翻转、垂直翻转以及水平和垂直翻转)中的一种来对量化的等级执行翻转,然后对已被执行翻转的量化的等级执行反量化,从而生成变换系数。使用DST-7逆变换来对变换系数执行逆变换,从而生成重建的残差信号。将帧间预测信号或帧内预测信号与重建的残差信号相加,从而生成重建信号。
另外,可基于从编码器被用信号发送的关于翻转位置的信息来确定在解码器中执行翻转方法的位置。
图32是示出对残差块执行翻转的示图。
参照图32,可对残差块执行“不翻转”、“水平翻转”、“垂直翻转”以及“水平和垂直翻转”中的至少一个。如图32中所示,样点在残差块内的位置可根据翻转类型而变化。
图33是示出用于将对尺寸为8×8的残差块执行翻转实现到硬件中的实施例的示图。
参照图33,在对M×N的残差块的垂直翻转的硬件实现中,通过将用于从残差块存储器读取数据的地址值(addr)改变为M-1-addr来对M×N的块执行垂直翻转。也就是说,作为垂直翻转操作的替代,改变针对M×N的块的存储器行地址以读取残差块内的数据,从而实现垂直翻转。
在对M×N的残差块的水平翻转的硬件实现中,通过按照相反顺序改变残差块存储器中的数据值以进行读取来对M×N的块执行水平翻转。也就是说,作为水平翻转操作的替代,改变读取针对M×N的块的数据值的顺序,从而实现水平翻转。例如,当数据a、b、c、d、e、f、g和h按照a、b、c、d、e、f、g和h的顺序被存储在存储器中时,数据值h、g、f、e、d、c、b和a按照h、g、f、e、d、c、b和a的顺序被读取,从而执行水平翻转。
图34是示出对残差块执行翻转和变换的示图。
参照图34,可对残差块执行“不翻转(No-Flip)”、“水平翻转(H-Flip)”、“垂直翻转(V-Flip)”和“水平和垂直翻转(HV-Flip)”中的至少一个,并且可执行DST-7变换。如图34中所示,样点在残差块内的位置可根据翻转类型而变化,并且可执行DST-7变换。
下面示出使用自适应多重变换(AMT)方法的示例,其中,在所述自适应多重变换(AMT)方法中使用在说明书中使用的变换中的至少一种变换。
可使用在说明书中使用的变换中的至少一种变换来构建AMT集。例如,除了诸如DCT-2、DCT-5、DCT-8、DST-1、DST-7等的变换之外,还可将针对经过帧内编码/解码和帧间编码/解码的每个块的至少一个变换添加到AMT变换集。具体地,针对经过帧间编码/解码的块,可将DST-4和恒等变换添加到AMT变换集,并且针对经过帧内编码/解码的块,可将KLT-1和KLT-2添加到AMT变换集。
与尺寸为诸如4×24和8×48而非2的幂的块对应的变换可被添加。例如,在帧内编码/解码处理中,可如下表14中所示定义皆具有四个变换对的七个变换集。
[表14]
Figure BDA0002774090280000761
Figure BDA0002774090280000771
在表14中,变换对的第一项可指垂直方向上的变换,并且第二项可指水平方向上的变换。可以以基于不同的帧内预测模式和不同的块尺寸指定七个变换集中的每个变换集的方式来定义表14中的变换对集。在表14中,T0到T6可表示与各个块尺寸对应的可用变换对集。例如,T0可被用于2×2的块尺寸,T1可被用于4×4的块尺寸,T2可被用于8×8块尺寸,T3可被用于16×16的块尺寸,T4可被用于32×32的块尺寸,T5可被用于64×64的块尺寸,并且T6可被用于128×128的块尺寸。恒等变换可被应用于尺寸不超过16×16的块。此外,恒等变换可在与水平和垂直帧内预测方向接近的模式下被应用于块。可基于块的尺寸将与水平和/或垂直帧内预测方向接近的模式定义为阈值。例如,当变换索引是3并且块满足以上条件时,应用水平和/或垂直恒等变换。
另外,在帧间编码/解码处理中,可如下表15中所示定义皆具有四个变换对的两个变换集。
[表15]
Figure BDA0002774090280000772
在表15中,T0和T1可表示与块尺寸对应的可用变换对集。例如,在表15中,包括KLT的变换集(即,T1,inter)可被应用于尺寸等于或小于16×16的块,并且T0,inter可被应用于尺寸大于16×16的块。此外,仅使用DCT-2变换步骤和调整步骤来逼近AMT变换的方法可被使用。可使用用于将DCT-2变换变换为与AMT变换相似的形式的块带正交矩阵(block-bandorthogonal matrices)来定义调整步骤。
针对在说明书中使用的AMP的初次变换集可由DCT-2、DCT-8、DST-4、DST-7变换等组成,并且初次变换集可由DCT-8、DST-4、DST-7变换组成。此外,可通过基于DCT-8变换矩阵执行翻转、符号改变等来实现DST-7变换矩阵。
例如,所述变换被用于构建二维变换集(即,水平变换和垂直变换)以在帧间编码/解码处理中使用结果。在帧内编码/解码处理中,可使用如下表16中所示的二维变换集。
[表16]
Figure BDA0002774090280000781
表16示出相对于每个预测模式(predModIdx)和每个变换索引(TrIdx)的针对垂直变换和水平变换的变换集。此外,AMT变换集可被使用DCT-8和DST-7的变换集代替。
此外,当块的水平尺寸或垂直尺寸超过32个像素时,不将AMT变换应用于该块,并且不将AMT变换使用信息(AMT标志)和变换索引信息(AMT索引)中的至少一个用信号发送到解码器。
在说明书中使用的AMT变换集中所包括的DCT-8、DST-1和DCT-5的变换矩阵可被其他变换矩阵代替。可使用翻转的DST-7代替DCT-8。可使用DST-6代替DST-1。可使用DCT-2代替DCT-5。
可如下面的方程式7中所示从DST-7推导翻转的DST-7以及DST-6的变换矩阵。
[方程式7]
翻转的DST-7:
Figure BDA0002774090280000782
DST-6:
Figure BDA0002774090280000783
这里,
Figure BDA0002774090280000784
表示DST-7的N×N变换矩阵中的第k基矢量的第l分量。
此外,包括DCT-8、DST-1和DCT-5的变换矩阵的AMT变换可被应用于亮度分量和色度分量两者。
可基于模式相关变换集以及指示水平变换和垂直变换的被显式地用信号发送的AMT索引来确定针对亮度分量的变换。
在色度分量/帧内模式的情况下,可以以与确定针对亮度分量的变换的方法相同的方式确定变换,变换候选的数量可小于针对亮度分量的变换候选的数量。
在色度分量/帧间模式的情况下,可通过指示AMT索引是否与同位块或亮度分量的默认变换(DCT-2×DCT-2)相同的1比特标志来确定变换。
此外,AMT可在DCT-2、DST-7和翻转的DST-7(FDST-7)中选择水平变换和垂直变换。此外,可定义AMT标志。当AMT标志是0时,它指示DCT-2被用于水平变换和垂直变换两者。当AMT标志是1时,它指示根据该AMT索引使用另一变换。仅当块的宽度和高度都等于或小于64时,允许使用AMT。AMT标志可通过帧内预测模式确定。在偶数帧内预测模式下,AMT标志可被隐式地指定为1。在奇数帧内预测模式下,AMT标志可被隐式地指定为零。此外,在奇数帧内预测模式下,AMT标志可被隐式地指定为1。在偶数帧内预测模式下,AMT标志可被隐式地指定为0。
可使用添加了两个变换DST-7和DCT-8的变换集,并且应用AMT的最大块尺寸可限于32×32的尺寸。具有长度为2N+1的离散傅里叶变换(DFT)的前向N×N DST-7可被实现以获得N×N DST-7。可将2N+1FFT重建为二维FFT。可通过紧接在DST-7计算之前和之后进行符号改变和重排来从DST-7推导DCT-8。因此,可再次使用DST-7来实现DCT-8。
可仅对当前块内的子块执行针对当前块的变换或逆变换。例如,子块可以是当前块中的左上位置处的子块。可独立地确定子块的水平长度和垂直长度。例如,可根据应用于水平变换或逆变换(或者垂直变换或逆变换)的变换核的类型来确定子块的水平长度(或垂直长度)。例如,当应用于水平变换或逆变换的变换核是DCT-2时,水平长度是32个样点。例如,当应用于水平变换或逆变换的变换核不是DCT-2,而是例如,DST-7或DCT-8时,水平长度是16个样点。类似地,例如,当应用于垂直变换或逆变换的变换核是DCT-2时,垂直长度是32个样点。例如,当应用于垂直变换或逆变换的变换核不是DCT-2,而是例如,DST-7或DCT-8时,垂直长度是16个样点。此外,由于子块不能大于当前块,因此当当前块的长度比推导出的子块的长度(例如,32个样点或16个样点)短时,将被执行变换或逆变换的块的长度确定为当前块的长度。可不对当前块内的区域中的未被包括在子块中的样点执行变换或逆变换。该样点的全部样点值可被设置为“0”。这里,子块可包括作为输入信号与预测信号之间的差的残差信号,或者可包括从残差信号的变换产生的变换系数。
在帧内编码/解码和帧间编码/解码处理中,可隐式地确定AMT变换。
亮度分量和色度分量的帧内预测模式相关变换可分别被表示为下表17和表18。
[表17]
Figure BDA0002774090280000801
[表18]
Figure BDA0002774090280000802
Figure BDA0002774090280000811
这里,表17示出针对亮度分量的变换映射表,并且表18示出针对色度分量的变换映射表。此外,位置相关变换可在合并模式下被用于残差信号。合并模式下针对残差信号的变换可根据用于当前块的运动补偿的空间运动矢量预测因子(MVP)候选而变化。
下表19示出MVP位置与变换之间的映射表。
[表19]
MVP位置 水平变换 垂直变换 块尺寸限度
L(左侧) DST-7 DCT-2 宽度<=32&&高度<=32
A(上方) DCT-2 DST-7 宽度<=32&&高度<=32
在表19中,对于左侧MVP候选,DST-7和DCT-2可分别被用作水平变换和垂直变换。此外,对于上方MVP候选,DCT-2和DST-7可分别被用作水平变换和垂直变换。在其它情况下,DCT-2可被用作默认变换。组合了AMT变换使用信息、初次变换以及不可分离二次变换(NSST)使用信息、二次变换的变换使用信息可被熵编码/熵解码。对AMT和NSST的使用可由单个变换索引表示,并且作为对独立地用信号发送初次变换和二次变换的索引的操作的替代,可通过用于用信号发送的一个变换索引来将初次变换和二次变换进行组合。此外,组合的变换索引可被用于亮度分量和色度分量两者。
此外,可从针对每个块的N个预定义变换候选集中选择在本说明书中使用的变换。这里,N可以是正整数。变换候选中的每一个可指定初次水平变换、初次垂直变换以及二次变换(可与恒等变换相同)。变换候选的列表可根据块尺寸和预测模式而变化。所选的变换可如下被用信号发送。当编码块标志是1时,发送指示是否使用候选列表的第一变换的标志。当指示是否使用候选列表的第一变换的标志为0时,应用以下操作:当非零变换系数等级的数量大于阈值时,发送指示使用的变换候选的变换索引;否则,使用列表的第二变换。
此外,仅当作为初次变换的DCT-2被用作默认变换时,使用作为二次变换的NSST。此外,对于水平变换或垂直变换,当宽度或高度分别等于或小于4时,选择DST-7,而无需用信号发送。
此外,当非零变换系数的数量大于阈值时,用信号发送AMT标志。在帧间块的情况下,阈值可被设置为2。在帧内块的情况下,阈值可被设置为0。当非零变换系数的数量大于2时,用信号发送AMT索引。否则,AMT索引被估计为零。在NSST的情况下,对于帧内亮度分量的块,当左上8×8或4×4亮度分量的非零变换系数的数量与左上8×8或4×4色度分量的非零AC系数的数量之和大于2时,用信号发送NSST索引。
对于残差块,当块的宽度等于或小于K时,DST-7而不是DCT-2被用于一维水平变换。当块的高度等于或小于L时,DST-7而不是DCT-2被用于一维垂直变换。此外,即使块的宽度或高度等于或小于K,当帧内预测模式是线性模型(LM)色度模式时,也使用DCT-2。这里,K和L可以是正整数,例如,4。此外,K和L可相同或者可具有不同的值。此外,残差块可以是在帧内模式下编码的块。此外,残差块可以是色度块。
可使用已被执行翻转的变换核或变换矩阵来执行变换/逆变换,而不对残差信号执行翻转方法。这里,已被执行翻转的变换/逆变换核或变换/逆变换矩阵可以是已经经过翻转且在编码器/解码器中预定义的核或矩阵。在这种情况下,由于已被执行翻转的变换/逆变换矩阵被用于执行变换/逆变换,因此可以获得与对残差信号执行翻转相同的效果。这里,翻转可以是不翻转、水平翻转、垂直翻转以及水平和垂直翻转中的至少一个。在这种情况下,可以用信号发送关于是否使用已被执行翻转的变换/逆变换的信息。此外,可针对水平方向上的变换/逆变换以及垂直方向上的变换/逆变换中的每一个用信号发送关于是否使用已被执行翻转的变换/逆变换的信息。
此外,可在编码/解码处理中对变换核或变换矩阵执行翻转以执行变换/逆变换,而不对残差信号执行翻转方法。在这种情况下,由于对变换/逆变换矩阵执行翻转以执行变换/逆变换,因此可以获得与对残差信号执行翻转相同的效果。这里,翻转可以是不翻转、水平翻转、垂直翻转以及水平和垂直翻转中的至少一个。在这种情况下,可用信号发送关于是否对变换/逆变换矩阵执行翻转的信息。此外,可针对水平方向上的变换/逆变换和垂直方向上的变换/逆变换中的每一个用信号发送关于是否对变换/逆变换矩阵执行翻转的信息。
当基于帧内预测模式确定翻转方法并且当前块的两个或更多个帧内预测模式被使用时,在当前块的变换/逆变换之前/之后执行翻转作为针对非方向模式的翻转方法。
此外,当基于帧内预测模式确定翻转方法并且当前块的两个或更多个帧内预测模式被使用时,在当前块的变换/逆变换之前/之后执行翻转作为针对主方向模式的翻转方法。这里,主方向模式可以是垂直模式、水平模式和对角线模式中的至少一个。
当变换的尺寸等于或大于M×N时,将在变换期间或变换之后存在于M/2至M且N/2至N的区域中的全部变换系数设置为值0。这里,M和N可以是正整数,例如,64×64。
为了减少存储器需求,可对执行变换之后生成的变换系数执行K的右移位运算。此外,可对执行水平变换之后生成的临时变换系数执行K的右移位运算。此外,可对在执行垂直变换之后生成的临时变换系数执行K的右移位运算。这里,K是正整数。
为了减少存储器需求,可对执行逆变换之后生成的重建的残差信号执行K的右移位运算。此外,可对执行水平逆变换之后生成的临时变换系数执行K的右移位运算。此外,可对执行垂直逆变换之后生成的临时变换系数执行K的右移位运算。这里,K是正整数。
可对在执行水平方向上的变换/逆变换之前、在执行水平方向上的变换/逆变换之后、在执行垂直方向上的变换/逆变换之前以及在执行垂直方向上的变换/逆变换之后生成的信号中的至少一个执行多种翻转方法中的至少一种。在这种情况下,可以用信号发送在水平方向上的变换/逆变换或在垂直方向上的变换/逆变换中使用的翻转方法信息。
此外,可使用DCT-4代替DST-7。从尺寸为2N的DCT-2变换/逆变换矩阵提取尺寸为2N-1的DCT-4变换/逆变换矩阵以供使用,因此仅将DCT-2变换/逆变换矩阵而不是DCT-4存储在编码器/解码器中,由此减少了编码器/解码器的存储器需求。此外,从尺寸为2N的DCT-2变换/逆变换逻辑利用尺寸为2N-1的DCT-4变换/逆变换逻辑,因此减小了实现编码器/解码器所需的芯片面积。这里,以上示例不仅被应用于DCT-2和DCT-4,并且当在DST变换/逆变换类型中的至少一种类型与DCT变换/逆变换类型中的至少一种类型之间共享的变换矩阵或变换逻辑存在时,应用以上示例。也就是说,可从一个变换/逆变换矩阵或逻辑提取另一变换/逆变换矩阵或逻辑以供使用。此外,在特定变换/逆变换尺寸的情况下,可从一个变换/逆变换矩阵或逻辑提取另一变换/逆变换矩阵或逻辑以供使用。此外,可以以矩阵单位、基矢量单位和矩阵系数单位中的至少一个为单位从一个变换/逆变换矩阵提取另一变换/逆变换矩阵。
此外,当当前块小于M×N的尺寸时,另一变换/逆变换而不是特定变换/逆变换被用于当前块的变换/逆变换。此外,当当前块大于M×N的尺寸时,另一变换/逆变换而不是特定变换/逆变换被用于当前块的变换/逆变换。这里,M和N是正整数。所述特定变换/逆变换和另一变换/逆变换可以是在编码器/解码器中预定义的变换/逆变换。
此外,在本说明书中使用的DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换中的至少一个变换可被基于DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换计算出的变换中的至少一个变换替换。这里,可通过修改DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换矩阵内的系数值来对计算出的变换进行变换计算。此外,DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换矩阵内的系数值可具有整数值。也就是说,DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换可以是整数变换。此外,计算出的变换矩阵内的系数值可具有整数值。也就是说,计算出的变换可以是整数变换。此外,计算出的变换可以是对DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换矩阵内的系数值执行N的左移位运算的结果。这里,N可以是正整数。
DCT-Q和DST-W变换可表示包括DCT-Q和DST-W变换以及DCT-Q和DST-W逆变换。这里,Q和W可具有1或更大的正整数,并且例如,数字1至9可与罗马数字I至IX具有相同的含义。
此外,在本说明书中使用的DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7等的变换不限于此,并且可通过替换DCT-4、DCT-8、DCT-2、DST-4、DST-1、DST-7的变换来使用DCT-Q与DST-W变换之中的至少一个。这里,Q和W可具有1或更大的正整数,并且例如,数字1至9可与罗马数字I至IX具有相同的含义。
此外,在正方形块的情况下,可以以正方形变换形式执行在本说明书中使用的变换。在非正方形块的情况下,可以以非正方形变换形式执行所述变换。在包括正方形块和非正方形块中的至少一个的正方形形状区域的情况下,可以以正方形变换形式对该区域执行变换。在包括正方形块和非正方形块中的至少一个的非正方形形状区域的情况下,可以以非正方形变换形式对该区域执行变换。
此外,在本说明书中,关于重排方法的信息可以是翻转方法信息。
此外,在本说明书中使用的变换可表示变换和逆变换中的至少一个。
可在编码器和解码器中以相同的方式执行上述实施例。
在以上实施例中,关于水平变换和垂直变换的信息可以是从编码器用信号发送到解码器的信息,或者可以是在不用信号发送的情况下在编码器/解码器中根据块的尺寸信息(诸如水平尺寸、垂直尺寸等)以预设方式隐式地确定的信息。
在以上实施例中,当块的水平尺寸或垂直尺寸为1时,它可表示不在对应方向上执行变换。例如,对于16×1的块,它可表示不在垂直方向上执行垂直变换并且在水平方向上执行水平变换。作为另一实例,对于1×32的块,它可表示不在水平方向上执行水平变换并且在垂直方向上执行垂直变换。
可通过使用以上实施例中的至少一个实施例或至少一个实施例的组合来对图像进行编码/解码。
应用以上实施例的顺序在编码器与解码器之间可不同,或者应用以上实施例的顺序在编码器和解码器中可相同。
可对每个亮度信号和色度信号执行以上实施例,或者可对亮度信号和色度信号相同地执行以上实施例。
应用本发明的以上实施例的块形状可具有正方形形状或非正方形形状。
可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的以上实施例。这里,尺寸可被定义为使得以上实施例被应用的最小尺寸或最大尺寸或者最小尺寸和最大尺寸两者,或者可被定义为以上实施例被应用于的固定尺寸。此外,在以上实施例中,可将第一实施例应用于第一尺寸,并且可将第二实施例应用于第二尺寸。换句话说,可根据尺寸组合地应用以上实施例。此外,当尺寸等于或大于最小尺寸且等于或小于最大尺寸时,可应用以上实施例。换句话说,当块尺寸被包括在特定范围内时,可应用以上实施例。
例如,当当前块的尺寸是8×8或更大时,可应用以上实施例。例如,当当前块的尺寸是4×4或更大时,可应用以上实施例。例如,当当前块的尺寸是16×16或更大时,可应用以上实施例。例如,当当前块的尺寸等于或大于16×16且等于或小于64×64时,可应用以上实施例。
可根据时间层来应用本发明的以上实施例。为了识别以上实施例可被应用于的时间层,可用信号发送对应标识符,并且可将以上实施例应用于由对应标识符标识的指定时间层。这里,标识符可被定义为以上实施例可被应用于的最低层或最高层或最低层和最高层两者,或者可被定义为指示该实施例被应用于的特定层。此外,可定义实施例被应用于的固定时间层。
例如,在当前图像的时间层是最低层时,可应用以上实施例。例如,在当前图像的时间层标识符是1时,可应用以上实施例。例如,在当前图像的时间层是最高层时,可应用以上实施例。
可定义本发明的以上实施例被应用于的条带类型或并行块组类型,并且可根据对应的条带类型或对应的并行块组类型来应用以上实施例。
在上述实施例中,基于具有一系列步骤或单元的流程图描述了方法,但是本发明不限于这些步骤的顺序,而是一些步骤可与其他步骤同时执行或以不同的顺序执行。此外,本领域的普通技术人员应该理解,流程图中的步骤并不互相排斥,并且在不影响本发明的范围的情况下,可将其他步骤添加到流程图或者可将步骤中的一些步骤从流程图删除。
实施例包括示例的各个方面。可不描述各个方面的所有可能的组合,但是本领域技术人员将能够认识到不同的组合。因此,本发明可包括权利要求范围内的所有替换、修改和改变。
本发明的实施例可以以程序指令的形式实现,其中,该程序指令可由各种计算机组件执行并且被记录在计算机可读记录介质中。计算机可读记录介质可单独地包括程序指令、数据文件、数据结构等,或者可包括程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可以是为本发明专门设计和构建的,或者对于计算机软件技术领域的普通技术人员是公知的。计算机可读记录介质的示例包括磁记录介质(诸如,硬盘、软盘和磁带)、光学数据存储介质(诸如,CD-ROM或DVD-ROM)、磁光介质(诸如软光盘)以及被专门构造为存储和实现程序指令的硬件装置(诸如,只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。程序指令的示例不仅包括由编译器格式化的机械语言代码,而且包括可由计算机使用解释器来实现的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作或者反之亦可,以进行根据本发明的处理。
尽管已经在特定项目(诸如,详细元件)以及有限的实施例和附图方面描述了本发明,但是它们仅被提供以帮助更全面地理解本发明,并且本发明不限于以上实施例。本发明所属领域的技术人员将理解,可对以上描述进行各种修改和改变。
因此,本发明的精神不应限于上述实施例,并且所附权利要求及其等同物的整个范围将落入本发明的范围和精神内。
工业实用性
本发明可在对图像进行编码/解码时使用。

Claims (20)

1.一种对图像进行解码的方法,所述方法包括:
在多个变换核中选择一个变换核;
基于所选的变换核对当前块的残差块执行逆变换;并且
基于经过逆变换的残差块重建当前块。
2.如权利要求1所述的方法,其中,选择变换核的步骤是基于包括在用于用信号发送的比特流中的关于变换核的信息来执行的。
3.如权利要求1所述的方法,其中,当当前块是经过帧内预测的块时,选择变换核的步骤是基于残差块的尺寸和形状中的至少一个来执行的。
4.如权利要求3所述的方法,其中,当残差块的水平长度在预定范围内并且所述水平长度不比残差块的垂直长度长时,将被应用于残差块的水平变换的变换核是第一变换核,并且
当残差块的水平长度不在所述预定范围内或者所述水平长度比所述垂直长度长时,将被应用于残差块的水平变换的变换核是第二变换核。
5.如权利要求4所述的方法,其中,所述预定范围是4个样点到16个样点的范围。
6.如权利要求4所述的方法,其中,第一变换核是DST-7,并且第二变换核是DCT-2。
7.如权利要求1所述的方法,其中,当对包括在当前块中的多个子块中的每个子块执行帧内预测时,选择变换核的步骤是基于残差块的尺寸和帧内预测模式中的至少一个来执行的。
8.如权利要求1所述的方法,其中,当当前块是经过帧间预测的块并且仅对通过对当前块进行分区而获得的块中的一个子残差块执行变换时,选择变换核的步骤是基于关于当前块的分区的信息和关于所述子残差块在当前块内的位置的信息来执行的。
9.如权利要求8所述的方法,其中,关于当前块的分区的信息包括指示分区的方向是垂直分区还是水平分区的分区方向信息和指示分区比率的分区比率信息中的至少一个。
10.如权利要求8所述的方法,其中,关于当前块的分区的信息和关于所述子残差块的位置的信息被包括在用于用信号发送的比特流中。
11.一种对图像进行编码的方法,所述方法包括:
在多个变换核中选择一个变换核;
基于所选的变换核对当前块的残差块执行变换;并且
基于经过变换的残差块对当前块进行编码。
12.如权利要求11所述的方法,其中,关于所选的变换核的信息被包括在用于用信号发送的比特流中。
13.如权利要求11所述的方法,其中,当当前块是经过帧内预测的块时,选择变换核的步骤是基于残差块的尺寸和形状中的至少一个来执行的。
14.如权利要求13所述的方法,其中,当残差块的水平长度在预定范围内并且所述水平长度不比残差块的垂直长度长时,将被应用于残差块的水平变换的变换核是第一变换核,并且
当残差块的水平长度不在所述预定范围内或者所述水平长度比所述垂直长度长时,将被应用于残差块的水平变换的变换核是第二变换核。
15.如权利要求14所述的方法,其中,所述预定范围是4个样点到16个样点的范围,并且
第一变换核是DST-7,并且第二变换核是DCT-2。
16.如权利要求11所述的方法,其中,当对包括在当前块中的多个子块中的每个子块执行帧内预测时,选择变换核的步骤是基于残差块的尺寸和帧内预测模式中的至少一个来执行的。
17.如权利要求11所述的方法,其中,当当前块是经过帧间预测的块并且仅对通过对当前块进行分区而获得的块中的一个子残差块执行变换时,选择变换核的步骤是基于关于当前块的分区的信息和关于所述子残差块在当前块内的位置的信息来执行的。
18.如权利要求17所述的方法,其中,关于当前块的分区的信息包括指示分区的方向是垂直分区还是水平分区的分区方向信息和指示分区比率的分区比率信息中的至少一个。
19.如权利要求17所述的方法,其中,关于当前块的分区的信息和关于所述子残差块的位置的信息被包括在用于用信号发送的比特流中。
20.一种存储由图像解码设备接收并使用以重建包括在图像中的当前块的比特流的计算机可读记录介质,其中,所述比特流包括关于当前块的残差信息,
其中,所述残差信息被重建并被用于生成当前块的残差块,
所述残差块基于在多个变换核中选择的一个变换核被逆变换,并且
经过逆变换的残差块被用于重建当前块。
CN201980031926.8A 2018-03-28 2019-03-18 用于图像编/解码的方法和装置及存储比特流的记录介质 Pending CN112106373A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR20180036083 2018-03-28
KR10-2018-0036083 2018-03-28
KR20180071610 2018-06-21
KR10-2018-0071610 2018-06-21
PCT/KR2019/003101 WO2019190098A1 (ko) 2018-03-28 2019-03-18 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Publications (1)

Publication Number Publication Date
CN112106373A true CN112106373A (zh) 2020-12-18

Family

ID=68059324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980031926.8A Pending CN112106373A (zh) 2018-03-28 2019-03-18 用于图像编/解码的方法和装置及存储比特流的记录介质

Country Status (3)

Country Link
KR (1) KR20190113591A (zh)
CN (1) CN112106373A (zh)
WO (1) WO2019190098A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113727105A (zh) * 2021-09-08 2021-11-30 北京医百科技有限公司 一种深度图压缩方法、装置、系统及存储介质
WO2022178686A1 (zh) * 2021-02-23 2022-09-01 Oppo广东移动通信有限公司 编解码方法、编解码设备、编解码系统以及计算机可读存储介质
WO2022222985A1 (en) * 2021-04-22 2022-10-27 Beijing Bytedance Network Technology Co., Ltd. Feature based transform selection

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021071342A1 (ko) * 2019-10-11 2021-04-15 한국전자통신연구원 변환 정보 부호화/복호화를 위한 방법, 장치 및 비트스트림 저장 매체
EP4068783A4 (en) * 2019-11-26 2023-12-13 Electronics and Telecommunications Research Institute METHOD AND DEVICE FOR CODING/DECODING IMAGES AND RECORDING MEDIUM WITH RECORDED BIT STREAM
CN114556943A (zh) * 2020-04-03 2022-05-27 Oppo广东移动通信有限公司 变换方法、编码器、解码器以及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016043417A1 (ko) * 2014-09-19 2016-03-24 엘지전자(주) 분리 가능한 변환에 기초하여 적응적으로 비디오 신호를 인코딩 및 디코딩하는 방법 및 장치
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
FR3038196A1 (fr) * 2015-06-29 2016-12-30 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
CN109417636B (zh) * 2016-06-24 2022-04-01 韩国电子通信研究院 用于基于变换的图像编码/解码的方法和设备
KR102321394B1 (ko) * 2016-08-01 2021-11-03 한국전자통신연구원 영상 부호화/복호화 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022178686A1 (zh) * 2021-02-23 2022-09-01 Oppo广东移动通信有限公司 编解码方法、编解码设备、编解码系统以及计算机可读存储介质
WO2022222985A1 (en) * 2021-04-22 2022-10-27 Beijing Bytedance Network Technology Co., Ltd. Feature based transform selection
CN113727105A (zh) * 2021-09-08 2021-11-30 北京医百科技有限公司 一种深度图压缩方法、装置、系统及存储介质
CN113727105B (zh) * 2021-09-08 2022-04-26 北京医百科技有限公司 一种深度图压缩方法、装置、系统及存储介质

Also Published As

Publication number Publication date
KR20190113591A (ko) 2019-10-08
WO2019190098A1 (ko) 2019-10-03

Similar Documents

Publication Publication Date Title
CN109417636B (zh) 用于基于变换的图像编码/解码的方法和设备
KR102481325B1 (ko) 영상 부호화/복호화 방법 및 장치
CN110999293B (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN111837388B (zh) 使用样点滤波的图像编码/解码方法和设备
CN110024399B (zh) 对图像编码/解码的方法和设备及存储比特流的记录介质
CN112106373A (zh) 用于图像编/解码的方法和装置及存储比特流的记录介质
CN112088533A (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
US20220248017A1 (en) Image encoding/decoding method and apparatus, and recording medium storing bitstream
US20220264151A1 (en) Image encoding/decoding method and device using secondary transform, and recording medium storing bitstream
CN111247796B (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN112673629A (zh) 视频编码/解码方法和装置以及用于存储比特流的记录介质
CN114600455A (zh) 图像编码/解码方法和设备以及存储比特流的记录介质
US20230379466A1 (en) Method and apparatus for transform-based image encoding/decoding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination