CN114342393A - 基于变换的图像编译方法及其设备 - Google Patents

基于变换的图像编译方法及其设备 Download PDF

Info

Publication number
CN114342393A
CN114342393A CN202080061900.0A CN202080061900A CN114342393A CN 114342393 A CN114342393 A CN 114342393A CN 202080061900 A CN202080061900 A CN 202080061900A CN 114342393 A CN114342393 A CN 114342393A
Authority
CN
China
Prior art keywords
transform
block
current block
lfnst
region
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
CN202080061900.0A
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.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
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 LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN114342393A publication Critical patent/CN114342393A/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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/18Methods 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 a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

一种根据本文档的图像解码方法可以包括以下步骤:基于残差信息推导当前块中的最终有效系数的位置和用于当前块的变换系数;确定包括最终有效系数的子块的索引是否为0并且子块中的最终有效系数的位置是否大于0;确定在排除当前块的左上端处的第一区域的第二区域中是否存在有效系数;以及当最终有效系数的位置被确定为在索引为0的子块中大于0,并且在第二区域中不存在有效系数时,从比特流解析LFNST索引。

Description

基于变换的图像编译方法及其设备
技术领域
本公开涉及一种图像编译技术,并且更具体地,涉及图像编译系统中的用于基于变换对图像进行编译的方法和设备。
背景技术
如今,在各个领域中对诸如4K、8K或更高的超高清(UHD)图像/视频这样的高分辨率和高质量图像/视频的需求已经不断增长。随着图像/视频数据变成更高分辨率和更高质量,与传统图像数据相比,所发送的信息量或比特量增加。因此,当使用诸如传统有线/无线宽带线这样的介质来发送图像数据或者使用现有存储介质来存储图像/视频数据时,其传输成本和存储成本增加。
另外,如今,对于诸如虚拟现实(VR)和人工现实(AR)内容或全息图等这样的沉浸式媒体的兴趣和需求正在增加,并且对具有与诸如游戏图像这样的真实图像不同的图像特征的图像/视频的广播正在增加。
因此,需要有效地压缩并发送或存储以及再现具有如上所述的各种特征的高分辨率和高质量图像/视频的信息的高效图像/视频压缩技术。
发明内容
技术问题
本公开的技术方面在于提供用于增加图像编译效率的方法和设备。
本公开的另一技术方面在于提供用于增加变换索引编译的效率的方法和设备。
本公开的又一技术方面在于提供使用LFNST的图像编译方法和设备。
本公开的又一技术方面在于提供一种用于在应用LFNST时执行的清零(zero-out)的图像编译方法和设备。
技术方案
根据本公开的实施例,提供了一种由解码装置执行的图像解码方法。该方法可以包括:基于残差信息来推导当前块中的最后有效系数的位置和用于当前块的变换系数;确定是否包括最后有效系数的子块的索引为0并且子块中的最后有效系数的位置大于0;确定在除了当前块的左顶部处的第一区域以外的第二区域中是否存在有效系数;当确定在具有索引0的子块中的最后有效系数的位置大于0并且在第二区域中不存在有效系数时,从比特流解析LFNST索引;以及通过对第一区域中的变换系数应用基于LFNST索引所推导的LFNST矩阵来推导修改的变换系数。
该方法进一步包括:将指示最后有效系数的位置在具有索引0的子块中是否大于0的第一标志信息设置为1;以及当在具有索引0的子块中的最后有效系数的位置大于0时,将第一标志信息改变为0并且解析LFNST索引。
该方法进一步包括:将指示在除了第一区域之外的第二区域中是否存在有效系数的第二标志信息设置为1;以及当在第二区域中不存在有效系数时,使第二标志信息维持为1并且解析LFNST索引。
在当前块中包括最后有效系数的子块的索引大于0并且当前块的宽度和高度是4或更大时,第二标志信息被推导为0,并且当第二标志信息是0时不解析LFNST索引。
在当前块的大小是4x4或8x8并且最后有效系数的位置大于或等于8时,第二标志信息被推导为0,并且当第二标志信息是0时不解析LFNST索引。
根据本公开的另一实施例,提供了一种由编码装置执行的图像编码方法。该方法可以包括:基于用于残差样本的初级变换(primary transform)推导用于当前块的变换系数;基于当前块的左顶部处的第一区域的变换系数和预定LFNST矩阵来推导用于当前块的修改的变换系数;将其中不存在修改的变换系数的当前块的第二区域清零;构建图像信息,使得在当前块中包括最后有效系数的子块的索引是0,子块中的最后有效系数的位置大于0,并且在第二区域中不存在有效系数时,发送指示LFNST矩阵的LFNST索引;以及输出包括通过修改的变换系数和LFNST索引的量化所推导的残差信息的图像信息。
根据本公开的再一实施例,可以提供一种数字存储介质,该数字存储介质存储包括编码图像信息的图像数据和根据由编码装置执行的图像编码方法生成的比特流。
根据本公开的又一实施例,可以提供一种数字存储介质,该数字存储介质存储包括编码图像信息的图像数据和用于使解码装置执行图像解码方法的比特流。
有益效果
根据本公开,可以提高整体图像/视频压缩效率。
根据本公开,可以提高变换索引编译的效率。
本公开的技术方面可以提供一种使用LFNST的图像编译方法和装置。
本公开的技术方面可以提供一种用于在应用LFNST时执行的清零的图像编译方法和装置。
能够通过本公开的特定示例获得的效果不限于上面列举的效果。例如,可以存在相关领域普通技术人员能够根据本公开理解或推导的各种技术效果。因此,本公开的特定效果不限于本公开中显式地描述的那些,并且可以包括能够根据本公开的技术特征理解或推导的各种效果。
附图说明
图1是示意性地图示本公开适用于的视频/图像编码装置的配置的图。
图2是示意性地图示本公开适用于的视频/图像解码装置的配置的图。
图3示意性地图示根据本文档的实施例的多重变换方案。
图4示例性地示出65个预测方向的帧内定向模式。
图5是用于说明根据本文档的实施例的RST的图。
图6是图示根据示例将前向初级变换的输出数据布置成一维矢量的序列的图。
图7是图示根据示例将前向次级变换的输出数据布置成二维矢量的序列的图。
图8是图示根据本文档的实施例的广角帧内预测模式的图。
图9是图示被应用LFNST的块形状的图。
图10是图示根据示例的前向LFNST的输出数据的布置的图。
图11是图示根据示例将用于前向LFNST的输出数据的数目限制为最大值16的图。
图12是图示根据示例的被应用4x4 LFNST的块中的清零(zero-out)的图。
图13是图示根据示例的被应用8x8 LFNST的块中的清零的图。
图14是图示根据另一示例的被应用8x8 LFNST的块中的清零的图。
图15是用于说明根据示例的图像解码方法的流程图。
图16是用于说明根据示例的图像编码方法的流程图。
图17示意性地图示本公开适用于的视频/图像编译系统的示例。
图18图示本公开被应用于的内容流传输系统的结构。
具体实施方式
尽管本公开可能易于进行各种修改并且包括各种实施方式,但是其具体实施方式已在附图中通过示例的方式示出,并且现在将对其进行详细描述。然而,这并不旨在将本公开限制于本文公开的具体实施方式。本文中使用的术语只是出于描述特定实施方式的目的,并不旨在限制本公开的技术思路。除非上下文另外清楚指示,否则单数形式可以包括复数形式。诸如“包括”和“具有”之类的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此不应被理解为预先排除了存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合的可能性。
此外,为了方便描述彼此不同的特性功能,独立地例示了本文中描述的附图上的各组件,然而,并不意指各组件由单独的硬件或软件来实现。例如,可以组合这些组件中的任何两个或更多个以形成单个组件,并且任何单个组件可以被划分成多个组件。其中组件被组合和/或划分的实施方式将属于本公开的专利权的范围,只要它们不脱离本公开的实质即可。
在下文中,将参照附图更详细地说明本公开的优选实施方式。另外,在附图中,相同的附图标号用于相同的组件,并且将省略对相同组件的重复描述。
本文档涉及视频/图像编译。例如,本文档中公开的方法/示例可以涉及VVC(通用视频编译)标准(ITU-T Rec.H.266)、VVC之后的下一代视频/图像编译标准、或其他视频编译相关标准(例如,HEVC(高效视频编译)标准(ITU-T Rec.H.265)、EVC(基本视频编译)标准、AVS2标准等)。
在本文档中,可以提供与视频/图像编译相关的各种实施方式,并且除非相反地指定,否则这些实施方式可以彼此组合并执行。
在本文档中,视频可以是指一段时间内一系列图像的集合。通常,图片是指表示特定时间区域的图像的单元,而条带/贴片是构成图片的一部分的单元。条带/贴片可以包括一个或更多个编译树单元(CTU)。一幅图片可以由一个或更多个条带/贴片组成。一幅图片可以由一个或多个贴片组组成。一个贴片组可以包括一个或更多个贴片。
像素或图元(pel)可以是指构成一幅图片(或图像)的最小单元。另外,“样本”可用作与像素相对应的术语。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。另选地,样本可以意指空间域中的像素值,或者当该像素值被变换为频域时,其可以意指频域中的变换系数。
单元可以表示图像处理的基本单位。单元可以包括特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。根据情况,可以将单元和诸如块、区域等这样的术语互换地使用。在通常情况下,M×N块可以包括由M列和N行组成的样本(或样本阵列)或变换系数的集(或阵列)。
在本文档中,术语“/”和“,”应该被解释为指示“和/或”。例如,表述“A/B”可以意指“A和/或B”。另外,“A、B”可以意指“A和/或B”。另外,“A/B/C”可以意指“A、B和/或C中的至少一个”。另外,“A/B/C”可以意指“A、B和/或C中的至少一个”。
另外,在该文档中,术语“或”应该被解释为指示“和/或”。例如,表述“A或B”可以包括1)仅A、2)仅B和/或3)A和B这二者。换句话说,本文档中的术语“或”应该被解释为指示“附加地或另选地”。
在本公开中,“A和B中的至少一个”可以意指“仅A”、“仅B”或“A和B两者”。此外,在本公开中,表述“A或B中的至少一个”或者“A和/或B中的至少一个”可以被解释为“A和B中的至少一个”。
此外,在本公开中,“A、B和C中的至少一个”可以意指“仅A”、“仅B”、“仅C”或“A、B和C的任何组合”。此外,“A、B或C中的至少一个”或“A、B和/或C中的至少一个”可以意指“A、B和C中的至少一个”。
另外,本公开中使用的括号可以表示“例如”。具体地,当指示为“预测(帧内预测)”时,可以意指“帧内预测”被提出为“预测”的示例。换句话说,本公开的“预测”不限于“帧内预测”,并且“帧内预测”是作为“预测”的示例而提出的。另外,当指示为“预测(即,帧内预测)”时,这也可以意指“帧内预测”被提出为“预测”的示例。
在本公开中的一个附图中单独描述的技术特征可以单独地实现或可以同时实现。
图1是图示可以应用本文档的实施例的视频/图像编码装置的配置的示意图。在下文中,视频编码装置可以包括图像编码装置。
参考图1,编码装置100包括图像分区器110、预测器120、残差处理器130以及熵编码器140、加法器150、滤波器160和存储器170。预测器120可以包括帧间预测器121和帧内预测器122。残差处理器130可以包括变换器132、量化器133、解量化器134和逆变换器135。残差处理器130还可以包括减法器131。可以将加法器150称作重构器或重构块生成器。根据实施例,图像分区器110、预测器120、残差处理器130、熵编码器140、加法器150和滤波器160可以由至少一个硬件组件(例如,编码器芯片组或处理器)配置。另外,存储器170可以包括解码图片缓冲器(DPB)或者可以由数字存储介质配置。硬件组件还可以包括存储器170作为内部/外部组件。
图像分区器110可以将输入到编码装置100的输入图像(或图片或帧)分区成一个或多个处理单元。例如,可以将处理器称作编译单元(CU)。在这种情况下,可以从编译树单元(CTU)或最大编译单元(LCU)根据四叉树二叉树三叉树(QTBTTT)结构递归地对编译单元进行分区。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编译单元分区成更深深度的多个编译单元。在这种情况下,例如,可以首先应用四叉树结构并且可以稍后应用二叉树结构和/或三叉树结构。可替选地,可以首先应用二叉树结构。可以基于不再被分区的最终编译单元来执行根据本文档的编译过程。在这种情况下,可以根据图像特性基于编译效率将最大编译单元用作最终编译单元,或者必要时,可以将编译单元递归地分区成更深的编译单元并且可以将具有最佳大小的编译单元用作最终编译单元。这里,编译过程可以包括预测、变换和重构的过程,将稍后对此进行描述。作为另一示例,处理器还可以包括预测单元(PU)或变换单元(TU)。在这种情况下,可以从前述最终编译单元对预测单元和变换单元进行分割或分区。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
在一些情况下,单元可以与诸如块或区域的术语互换地使用。在一般情况下,M×N块可以表示由M列和N行组成的样本或变换系数的集合。样本可以通常表示像素或像素的值,可以仅表示亮度分量的像素/像素值或者仅表示色度分量的像素/像素值。可以将样本用作与像素或像元(pel)的一个图片(或图像)相对应的术语。
在编码装置100中,从输入图像信号(原始块、原始样本数组)减去从帧间预测器121或帧内预测器122输出的预测信号(预测块、预测样本数组)以生成残差信号(残差块、残差样本数组),并且将所生成的残差信号发送到变换器132。在这种情况下,如所示,可以将编码装置100中用于从输入图像信号(原始块、原始样本数组)减去预测信号(预测块、预测样本数组)的单元称作减法器131。预测器可以对要处理的块(在下文中,称为当前块)执行预测,并且生成包括用于当前块的预测样本的预测块。预测器可以确定在当前块或CU基础上应用帧内预测还是帧间预测。如稍后在每种预测模式的描述中描述的,预测器可以生成与预测相关的各种信息,诸如预测模式信息,并且将所生成的信息发送到熵编码器140。关于预测的信息可以在熵编码器140中被编码并且以比特流的形式输出。
帧内预测器122可以通过参考当前图片中的样本来预测当前块。所参考的样本可以位于当前块的附近或者可以根据预测模式间隔开。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅仅是示例,可以取决于设置而使用更多或更少的定向预测模式。帧内预测器122可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器121可以基于由参考图片上的运动矢量指定的参考块(参考样本数组)来推导当前块的预测块。这里,为了减少在帧间预测模式中发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单位预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参考图片中的时间邻近块。包括参考块的参考图片和包括时间邻近块的参考图片可以是相同或不同的。可以将时间邻近块称作并置参考块、并置CU(colCU)等,并且可以将包括时间邻近块的参考图片称作并置图片(colPic)。例如,帧间预测器121可以基于邻近块构建运动信息候选列表并且生成指示哪个候选被用于推导当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器121可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式中,与合并模式不同,可以不发送残差信号。在运动矢量预测(MVP)模式的情况下,可以将邻近块的运动矢量用作运动矢量预测器并且可以通过用信号通知运动矢量差来指示当前块的运动矢量。
预测器120可以基于下述各种预测方法来生成预测信号。例如,预测器可以不仅应用帧内预测或帧间预测来预测一个块,而且还同时地应用帧内预测和帧间预测。这可以被称作组合帧间和帧内预测(CIIP)。另外,预测器可以基于帧内块复制(IBC)预测模式或用于块的预测的调色板模式。IBC预测模式或调色板模式可以被用于游戏等的内容图像/视频编译,例如屏幕内容编译(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测被执行,因为在当前图片中推导参考块。也就是说,IBC可以使用本文档中描述的帧间预测技术中的至少一个。可以将调色板模式认为是帧内编译或帧内编译的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息用信号通知图片内的样本值。
由预测器(包括帧间预测器121和/或帧内预测器122)生成的预测信号可以用于生成重构信号或者生成残差信号。变换器132可以通过对残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、karhunen-loève变换(KLT)、基于图的变换(GBT)或条件非线性变换(CNT)中的至少一个。这里,GBT意指当像素之间的关系信息由图表示时从图获得的变换。CNT是指基于使用所有先前重构的像素生成的预测信号所生成的变换。另外,变换过程可以被应用于具有相同大小的正方形像素块或者可以被应用于具有可变大小而不是正方形的块。
量化器133可以量化变换系数并且将它们发送到熵编码器140,并且熵编码器140可以对量化信号(关于量化变换系数的信息)进行编码并且输出比特流。可以将关于量化变换系数的信息称为残差信息。量化器133可以基于系数扫描顺序将块类型量化变换系数重新布置成一维矢量形式并且基于一维矢量形式的量化变换系数生成关于量化变换系数的信息。可以生成关于变换系数的信息。熵编码器140可以执行诸如例如指数哥伦布(exponential Golomb)、上下文自适应可变长度编译(CAVLC)、上下文自适应二进制算术编译(CABAC)等的各种编码方法。熵编码器140可以一起或分开地对除了量化变换系数(例如,语法元素的值等)以外的视频/图像重构所必需的信息进行编码。编码信息(例如,编码视频/图像信息)可以被以比特流的形式以NAL(网络抽象层)为单位发送或存储。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)的各种参数集的信息。另外,视频/图像信息还可以包括一般约束信息。在本文档中,从编码装置发送/用信号通知到解码装置的信息和/或语法元素可以被包括在视频/图片信息中。视频/图像信息可以通过上述编码过程来编码并且被包括在比特流中。比特流可以通过网络发送或者可以被存储在数字存储介质中。网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。发送从熵编码器140输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)可以作为编码装置100的内部/外部元件被包括,并且可替选地,发送器可以被包括在熵编码器140中。
从量化器133输出的量化变换系数可以用于生成预测信号。例如,可以通过经由解量化器134和逆变换器135对量化变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。加法器150将重构残差信号加到从帧间预测器121或帧内预测器122输出的预测信号以生成重构信号(重构图像、重构块、重构样本数组)。如果要处理的块没有残差,诸如应用跳过模式的情况,则可以将预测块用作重构块。可以将加法器150称作重构器或重构块生成器。所生成的重构信号可以被用于对当前图片中要处理的下一块进行帧内预测并且可以被用于通过如下所述的滤波对下一图片进行帧间预测。
同时,可以在图片编码和/或重构期间应用具有色度缩放的亮度映射(LMCS)。
滤波器160可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器160可以通过对重构图片应用各种滤波方法来生成修改的重构图片并且将该修改的重构图片存储在存储器170(具体地,存储器170的DPB)中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。滤波器160可以如稍后在每个滤波方法的描述中描述的那样生成与滤波相关的各种信息并且将所生成的信息发送到熵编码器140。与滤波相关的信息可以由熵编码器140编码并且以比特流的形式输出。
可以将发送到存储器170的修改的重构图片用作帧间预测器121中的参考图片。当通过编码装置来应用帧间预测时,可以避免编码装置100与解码装置之间的预测失配并且可以提高编码效率。
存储器170的DPB可以存储修改的重构图片以供用作帧间预测器121中的参考图片。存储器170可以存储从中推导当前图片中的运动信息(或对其进行编码)的块的运动信息和/或图片中已经被重构的块的运动信息。所存储的运动信息可以被发送到帧间预测器121并且用作空间邻近块的运动信息或时间邻近块的运动信息。存储器170可以存储当前图片中的重构块的重构样本并且可以将重构样本传送到帧内预测器122。
图2是图示本文档的实施例可以被应用于的视频/图像解码装置的配置的示意图。
参考图2,解码装置200可以包括熵解码器210、残差处理器220、预测器230、加法器240、滤波器250、存储器260。预测器230可以包括帧间预测器231和帧内预测器232。残差处理器220可以包括解量化器221和逆变换器221。根据实施例,熵解码器210、残差处理器220、预测器230、加法器240和滤波器250可以由硬件组件(例如,解码器芯片组或处理器)配置。另外,存储器260可以包括解码图片缓冲器(DPB)或者可以由数字存储介质配置。硬件组件还可以包括存储器260作为内部/外部组件。
当输入了包括视频/图像信息的比特流时,解码装置200可以重构与在图1的编码装置中处理视频/图像信息的过程相对应的图像。例如,解码装置200可以基于从比特流获得的块分区相关信息来推导单元/块。解码装置200可以使用在编码装置中应用的处理器来执行解码。因此,解码的处理器可以是例如编译单元,并且可以从编译树单元或最大编译单元根据四叉树结构、二叉树结构和/或三叉树结构对编译单元进行分区。可以从编译单元推导一个或多个变换单元。可以通过再现装置来再现通过解码装置200解码和输出的重构图像信号。
解码装置200能够以比特流的形式接收从图1的编码装置输出的信号,并且可以通过熵解码器210对所接收到的信号进行解码。例如,熵解码器210可以解析比特流以推导图像重构(或图片重构)所必需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)的各种参数集的信息。另外,视频/图像信息还可以包括一般约束信息。解码装置还可以基于关于参数集的信息和/或一般约束信息对图片进行解码。在本文档中稍后描述的用信号通知/接收的信息和/或语法元素可以通过解码过程被解码并且从比特流获得。例如,熵解码器210基于诸如指数哥伦布编译(exponential Golomb coding)、CAVLC或CABAC的编译方法对比特流中的信息进行解码,并且输出图像重构所需要的语法元素和用于残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素相对应的bin,使用解码目标语法元素信息、解码目标块的解码信息或前一级中解码的符号/bin的信息来确定上下文模型,并且通过根据所确定的上下文模型预测bin的发生概率来对bin执行算术解码,以及生成与每个语法元素的值相对应的符号。在这种情况下,CABAC熵解码方法可以在确定上下文模型之后通过针对下一符号/bin的上下文模型使用经解码的符号/bin的信息来更新上下文模型。可以将由熵解码器210解码的信息之中与预测相关的信息提供给预测器(帧间预测器232和帧内预测器231),并且可以将在熵解码器210中对其执行熵解码的残差值即量化变换系数和相关参数信息输入到残差处理器220。残差处理器220可以推导残差信号(残差块、残差样本、残差样本数组)。另外,可以将由熵解码器210解码的信息之中关于滤波的信息提供给滤波器250。同时,可以将用于接收从编码装置输出的信号的接收器(未示出)进一步配置为解码装置200的内部/外部元件,或者接收器可以是熵解码器210的组件。同时,可以将根据本文档的解码装置称为视频/图像/图片解码装置,并且可以将解码装置分类为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器210,并且样本解码器可以包括解量化器221、逆变换器222、加法器240、滤波器250、存储器260、帧间预测器232和帧内预测器231中的至少一个。
解量化器221可以将量化的变换系数解量化并且输出变换系数。解量化器221能够以二维块形式的形式重新布置量化变换系数。在这种情况下,可以基于在编码装置中执行的系数扫描顺序执行重新布置。解量化器221可以通过使用量化参数(例如,量化步长信息)来对量化变换系数执行解量化并且获得变换系数。
逆变换器222对变换系数进行逆变换以获得残差信号(残差块、残差样本数组)。
预测器可以对当前块执行预测并且生成包括当前块的预测样本的预测块。预测器可以基于关于从熵解码器210输出的预测的信息来确定是否对当前块应用帧内预测或帧间预测并且可以确定特定帧内/帧间预测模式。
预测器220可以基于下述各种预测方法来生成预测信号。例如,预测器可以不仅应用帧内预测或帧间预测来预测一个块,而且还同时地应用帧内预测和帧间预测。这可以被称作组合帧间和帧内预测(CIIP)。另外,预测器可以基于帧内块复制(IBC)预测模式或用于块的预测的调色板模式。IBC预测模式或调色板模式可以被用于游戏等的内容图像/视频编译,例如屏幕内容编译(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测被执行,因为在当前图片中推导参考块。也就是说,IBC可以使用本文档中描述的帧间预测技术中的至少一个。可以将调色板模式认为是帧内编译或帧内编译的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息用信号通知图片内的样本值。
帧内预测器231可以通过参考当前图片中的样本来预测当前块。参考样本可以位于当前块的附近或者可以根据预测模式间隔开。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。帧内预测器231可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器232可以基于参考图片上的由运动矢量指定的参考块(参考样本数组)来推导用于当前块的预测块。在这种情况下,为了减少在帧间预测模式中发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单位预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参考图片中的时间邻近块。例如,帧间预测器232可以基于邻近块构建运动信息候选列表并且基于所接收到的候选选择信息来推导当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示用于当前块的帧间预测的模式的信息。
加法器240可以通过将所获得的残差信号加到从预测器(包括帧间预测器232和/或帧内预测器231)输出的预测信号(预测块、预测样本数组)来生成重构信号(重构图片、重构块、重构样本数组)。如果要处理的块没有残差,诸如当应用跳过模式时,则可以将预测块用作重构块。
可以将加法器240称作重构器或重构块生成器。所生成的重构信号可以被用于当前图片中要处理的下一块的帧内预测,可以通过如下所述的滤波来输出,或者可以被用于下一图片的帧间预测。
同时,可以在图片解码过程中应用具有色度缩放的亮度映射(LMCS)。
滤波器250可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器250可以通过对重构图片应用各种滤波方法来生成修改的重构图片并且将该修改的重构图片存储在存储器260(具体地,存储器260的DPB)中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。
可以将存储器260的DPB中存储的(修改的)重构图片用作帧间预测器232中的参考图片。存储器260可以存储从其推导(或解码)当前图片中的运动信息的块的运动信息和/或图片中已经被重构的块的运动信息。可以将所存储的运动信息发送到帧间预测器160以便被用作空间邻近块的运动信息或时间邻近块的运动信息。存储器260可以存储当前图片中的重构块的重构样本并且将重构样本发送到帧内预测器231。
在本文档中,在编码装置100的滤波器160、帧间预测器121和帧内预测器122中描述的实施例可以与解码装置200的滤波器250、帧间预测器232和帧内预测器231相同或者分别对应于解码装置200的滤波器250、帧间预测器232和帧内预测器231。
如上所述,在执行视频编译中,执行预测以提高压缩效率。能够通过预测来生成包括用于当前块的预测样本的预测块,即目标编译块。在这种情况下,预测块包括空间域(或像素域)中的预测样本。在编码装置和解码装置中相同地推导预测块。编码装置能够通过向解码装置用信号通知关于在原始块,而不是原始块的原始样本值本身,与预测块之间的残差的信息(残差信息)来提高图像编译效率。解码装置可以基于残差信息推导包括残差样本的残差块,可以通过将残差块和预测块相加来生成包括重构样本的重构图像,并且可以生成包括重构块的重构图片。
可以通过变换和量化过程来生成残差信息。例如,编码装置可以推导原始块与预测块之间的残差块,可以通过对包括在残差块中的残差样本(残差样本数组)执行变换过程来推导变换系数,可以通过对变换系数执行量化过程来推导量化变换系数,并且可以(通过比特流)向解码装置用信号通知相关残差信息。在这种情况下,残差信息可以包括诸如量化变换系数的值信息、位置信息、变换方案、变换核、量化参数的信息。解码装置可以基于残差信息执行解量化/逆变换过程,并且可以推导残差样本(或残差块)。解码装置可以基于预测块和残差块来生成重构图片。此外,编码装置可以通过对量化变换系数进行解量化/逆变换来推导残差块以供参考后续图片的帧间预测,并且可以生成重构图片。
图3示意性地图示根据本公开的实施例的多重变换技术。
参考图3,变换器可以对应于前面图1的编码装置中的变换器,并且逆变换器可以对应于前面图1的编码装置中的逆变换器,或者对应于图2的解码装置中的逆变换器。
变换器可以通过基于残差块中的残差样本(残差样本数组)执行初级变换来推导(初级)变换系数(S310)。可以将此初级变换称为核心变换。在本文中,初级变换可以基于多变换选择(MTS),并且当应用多变换作为初级变换时,可以将它称为多核心变换。
多核心变换可以表示附加地使用离散余弦变换(DCT)类型2和离散正弦变换(DST)类型7、DCT类型8和/或DST类型1进行变换的方法。也就是说,多核心变换可以表示基于从DCT类型2、DST类型7、DCT类型8和DST类型1之中选择的多个变换核将空间域的残差信号(或残差块)变换为频域的变换系数(或初级变换系数)的变换方法。在本文中,从变换器的视角来看初级变换系数可以称为临时变换系数。
换句话说,当应用常规变换方法时,可以通过基于DCT类型2对残差信号(或残差块)应用从空间域到频率域的变换来生成变换系数。与此不同,当应用多核心变换时,可以通过基于DCT类型2、DST类型7、DCT类型8和/或DST类型1对残差信号(或残差块)应用从空间域到频率域的变换来生成变换系数(或初级变换系数)。在本文中,DCT类型2、DST类型7、DCT类型8和DST类型1可以被称为变换类型、变换核或变换核心。可以基于基函数来定义这些DCT/DST变换类型。
当执行多核心变换时,可以从变换核之中选择用于目标块的垂直变换核和水平变换核,可以基于垂直变换核对目标块执行垂直变换,并且可以基于水平变换核对目标块执行水平变换。这里,水平变换可以指示对目标块的水平分量的变换,并且垂直变换可以指示对目标块的垂直分量的变换。可以基于包括残差块的目标(CU或子块)的预测模式和/或变换索引来适应性地确定垂直变换核/水平变换核。
此外,根据示例,如果通过应用MTS来执行初级变换,则可以通过将特定基函数设置为预定值并组合要在垂直变换或水平变换中应用的基函数来设置变换核的映射关系。例如,当水平变换核表示为trTypeHor,并且垂直方向变换核表示为trTypeVer时,可以将值为0的trTypeHor或trTypeVer设置给DCT2,将值为1的trTypeHor或trTypeVer设置给DST7,并且将值为2的trTypeHor或trTypeVer可以设置给DCT8。
在这种情况下,MTS索引信息可以被编码并且发信号通知到解码设备以指示多个变换核集中的任何一个。例如,MTS索引0可以指示trTypeHor和trTypeVer值均为0,MTS索引1可以指示trTypeHor和trTypeVer值均为1,MTS索引2可以指示trTypeHor值为2并且trTypeVer值为1,MTS索引为3可以指示trTypeHor值为1并且trTypeVer值为2,而MTS索引4可以指示trTypeHor和trTypeVer值均为2。
在一个示例中,根据MTS索引信息的变换核集在下表中示出。
[表1]
tu_mts_idx[x0][y0] 0 1 2 3 4
trTypeHor 0 1 2 1 2
teTvpeVer 0 1 1 2 2
变换器可以通过基于(初级)变换系数执行次级变换(secondary transform)来推导修改的(次级)变换系数(S320)。初级变换是从空间域到频域的变换,而次级变换是指通过使用(初级)变换系数之间存在的相关性,变换为更具压缩性的表示。次级变换可以包括不可分离的变换。在这种情况下,次级变换可以称为不可分离的次级变换(NSST)或模式相关的不可分离的次级变换(MDNSST)。不可分离的次级变换可以表示这样的变换,其通过基于不可分离的变换矩阵对通过初级变换推导出的(初级)变换系数进行次级变换来生成针对残差信号的修改的变换系数(或次级变换系数)。此时,垂直变换和水平变换可以不单独应用于(初级)变换系数(或者水平变换和垂直变换可以不独立应用),但是可以基于不可分离变换矩阵一次地应用变换。换句话说,不可分离的次级变换可以表示这样的变换方法,其中,(初级)变换系数的垂直分量和水平分量不分离,并且例如,将二维信号(变换系数)通过某个确定的方向(例如,行第一方向或列第一方向)重新布置为一维信号,然后基于不可分离的变换矩阵生成修改的变换系数(或次级变换系数)。例如,根据行优先顺序,M×N个块以第一行、第二行、…和第N行的顺序设置成排。根据列优先顺序,M×N个块以第一列、第二列、…和第M列的顺序设置成排。不可分离的次级变换可以应用于配置有(初级)变换系数的块(在下文中,可以称为变换系数块)的左顶部区域。例如,如果变换系数块的宽度(W)和高度(H)均等于或大于8,则可以将8×8不可分离的次级变换应用于变换系数块的左顶部8×8区域。此外,如果变换系数块的宽度(W)和高度(H)均等于或大于4,并且变换系数块的宽度(W)或高度(H)小于8,那么可以将4×4不可分离的次级变换应用于变换系数块的左顶部min(8,W)×min(8,H)区域。然而,实施方式不限于此,并且例如,即使仅满足变换系数块的宽度(W)或高度(H)等于或大于4的条件,4×4不可分离的次级变换也可以应用于变换系数块的左顶部min(8,W)×min(8,H)区域。
具体地,例如,如果使用4×4输入块,则不可分离的次级变换可以如下执行。
4×4输入块X可以表示如下。
[式1]
Figure BDA0003527935470000211
如果X以向量的形式表示,则向量
Figure BDA0003527935470000212
可以如下表示。
[式2]
Figure BDA0003527935470000213
在式2中,向量
Figure BDA0003527935470000214
是通过根据行优先顺序重新布置式1的二维块X而获得的一维向量。
在这种情况下,可以如下计算不可分离的次级变换。
[式3]
Figure BDA0003527935470000215
在此式中,
Figure BDA0003527935470000221
表示变换系数向量,而T表示16×16(不可分离的)变换矩阵。
通过前述式3,可以推导16×1变换系数向量
Figure BDA0003527935470000222
并且可以通过扫描顺序(水平、垂直和对角线等)将向量
Figure BDA0003527935470000223
重新组织为4×4块。然而,上述计算是示例,并且超立方体-吉文斯变换(HyGT)等也可以用于不可分离的次级变换的计算,以便降低不可分离的次级变换的计算复杂度。
此外,在不可分离的次级变换中,可以将变换核(或变换核心、变换类型)选择为模式相关。在这种情况下,模式可以包括帧内预测模式和/或帧间预测模式。
如上所述,可以基于以变换系数块的宽度(W)和高度(H)为基础确定的8×8变换或4×4变换来执行不可分离的次级变换。8×8变换是指当W和H二者都等于或大于8时可应用于变换系数块中包含的8×8区域的变换,并且8×8区域可以是变换系数块中的左顶部8×8区域。类似地,4×4变换是指当W和H二者都等于或大于4时可应用于变换系数块中包含的4×4区域的变换,并且4×4区域可以是变换系数块中的左顶部4×4区域。例如,8×8变换核矩阵可以是64×64/16×64矩阵,而4×4变换核矩阵可以是16×16/8×16矩阵。
这里,为了选择模式相关的变换核,可以针对8×8变换和4×4变换二者配置用于不可分离的次级变换的每个变换集二个不可分离的次级变换核,并且可以存在四个变换集。也就是说,可以针对8×8变换配置四个变换集,并且可以针对4×4变换配置四个变换集。在这种情况下,针对8×8变换的四个变换集中的每个变换集可以包括二个8×8变换核,并且针对4×4变换的四个变换集中的每个变换集可以包括二个4×4变换核。
然而,随着变换的大小(即,变换所应用于的区域的大小)可以为例如除了8×8或4×4之外的大小,集的数量可以是n,并且每个集中的变换核的数量可以是k。
变换集可以被称为NSST集或LFNST集。可以例如基于当前块(CU或子块)的帧内预测模式来选择变换集之中的特定集。低频不可分离的变换(LFNST)可以是缩减不可分离的变换的示例,其将稍后描述,并且表示用于低频分量的不可分离的变换。
作为参考,例如,帧内预测模式可以包括两个非定向(或非角度)帧内预测模式和65个定向(或角度)帧内预测模式。非定向帧内预测模式可以包括0号的平面帧内预测模式和1号的DC帧内预测模式,并且定向帧内预测模式可以包括2号至66号的65个帧内预测模式。然而,这是示例,并且即使帧内预测模式的数量不同也可以应用本文档。此外,在一些情况下,还可以使用67号帧内预测模式,并且67号帧内预测模式可以表示线性模型(LM)模式。
图4示意性地示出了65个预测方向的帧内定向模式。
参照图4,基于具有左上对角预测方向的帧内预测模式34,帧内预测模式可以划分为具有水平方向性的帧内预测模式和具有垂直方向性的帧内预测模式。在图4中,H和V分别标示水平方向性和垂直方向性,并且数字-32至32指示样本网格位置上的1/32单位的位移。这些数字可以表示对于模式索引值的偏移。帧内预测模式2至33具有水平方向性,并且帧内预测模式34至66具有垂直方向性。严格地说,帧内预测模式34可以被视为既不是水平的也不是垂直的,但在确定次级变换的变换集时可以被分类为属于水平方向性。这是因为输入数据被转置以用于基于帧内预测模式34对称的垂直定向模式,并且针对水平模式的输入数据对准方法用于帧内预测模式34。对输入数据进行转置意指将二维的M×N块数据的行和列切换成N×M数据。帧内预测模式18和帧内预测模式50可以分别表示水平帧内预测模式和垂直帧内预测模式,并且帧内预测模式2可以被称为右上对角帧内预测模式,因为帧内预测模式2具有左参考像素并且在右上方向中执行预测。类似地,帧内预测模式34可以被称为右下对角帧内预测模式,而帧内预测模式66可以被称为左下对角帧内预测模式。
根据示例,可以映射根据帧内预测模式的四个变换集,例如,如下表所示。
[表2]
lfnstPredModeIntra lfnstTrSetIdx
lfnstPredModeIntra<0 1
0<=lfnstPredModeIntra<=1 0
2<=lfnstPredModeIntra<=12 1
13<=lfnstPredModeIntra<=23 2
24<=lfnstPredModeInntra<=44 3
45<=lfnstPredModeIntra<=55 2
56<=lfnstPredModeIntra<=80 1
81<=lfnstPredModeIntra<=83 0
如表2所示,根据帧内预测模式,四个变换集中的任何一个,即,lfnstTrSetIdx,可以映射到四个索引(即,0至3)中的任何一个。
当确定特定集用于不可分离的变换时,可以通过不可分离的次级变换索引来选择特定集中的k个变换核之一。编码设备可以基于率失真(RD)校验来推导指示特定变换核的不可分离的次级变换索引,并且可以将不可分离的次级变换索引发信号通知给解码设备。解码设备可以基于不可分离的次级变换索引来选择特定集中的k个变换核中的一个。例如,lfnst索引值0可以指代第一不可分离的次级变换核,lfnst索引值1可以指代第二不可分离的次级变换核,lfnst索引值2可以指代第三不可分离的次级变换核。另选地,lfnst索引值0可以指示第一不可分离的次级变换没有被应用于目标块,并且lfnst索引值1至3可以指示三个变换核。
变换器可以基于所选择的变换核来执行不可分离的次级变换,并且可以获得修改的(次级)变换系数。如上所述,修改的变换系数可以被推导为通过量化器量化的变换系数,并且可以被编码并发信号通知给解码设备,并且被传送到编码设备中的解量化器/逆变换器。
此外,如上所述,如果省略了次级变换,则可以将作为初级(可分离的)变换的输出的(初级)变换系数推导为如上所述通过量化器量化的变换系数,并且可以被编码并发信号通知给解码设备,并传送到编码设备中的解量化器/逆变换器。
逆变换器可以与在上述变换器中已经执行的顺序相反的顺序执行一系列过程。逆变换器可以接收(解量化的)变换系数,并且通过执行次级(逆)变换来推导(初级)变换系数(S350),并且可以通过对(初级)变换系数执行初级(逆)变换来获得残差块(残差样本)(S360)。就此而言,从逆变换器的视角来看,初级变换系数可以被称为修改的变换系数。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
解码设备还可以包括次级逆变换应用确定器(或用于确定是否应用次级逆变换的元件)和次级逆变换确定器(或用于确定次级逆变换的元件)。次级逆变换应用确定器可以确定是否应用次级逆变换。例如,次级逆变换可以是NSST、RST或LFNST,并且次级逆变换应用确定器可以基于通过解析比特流而获得的次级变换标志来确定是否应用次级逆变换。在另一示例中,次级逆变换应用确定器可以基于残差块的变换系数来确定是否应用次级逆变换。
次级逆变换确定器可以确定次级逆变换。在这种情况下,次级逆变换确定器可以基于根据帧内预测模式指定的LFNST(NSST或RST)变换集来确定应用于当前块的次级逆变换。在实施方式中,可以取决于初级变换确定方法来确定次级变换确定方法。可以根据帧内预测模式来确定初级变换和次级变换的各种组合。此外,在示例中,次级逆变换确定器可以基于当前块的大小来确定应用次级逆变换的区域。
此外,如上所述,如果省略次级(逆)变换,则可以接收(解量化的)变换系数,可以执行初级(可分离的)逆变换,并且可以获得残差块(残差样本)。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
此外,在本公开中,可以在NSST的概念中应用其中减小了变换矩阵(核)的大小的缩减次级变换(RST),以便减少不可分离的次级变换所需的计算量和存储量。
此外,本公开中描述的变换核、变换矩阵以及构成变换核矩阵的系数,即,核系数或矩阵系数,能够以8比特来表示。这可以是在解码设备和编码设备中实现的条件,并且与现有的9比特或10比特相比,可以减少存储变换核所需的存储量,并且可以合理地适应性能劣化。另外,以8比特表示核矩阵可以允许使用小的乘法器,并且可以更适合于用于最佳软件实现的单指令多数据(SIMD)指令。
在本说明书中,术语“RST”可以是指基于大小根据缩减因子而减小的变换矩阵来对目标块的残差样本执行的变换。在执行缩减变换的情况下,由于变换矩阵的大小的减小,可以减少变换所需的计算量。也就是说,RST可以用于解决在大小大的块的变换或不可分离的变换时发生的计算复杂性问题。
RST可以被称为诸如缩减变换、缩减次级变换、缩小变换、简化变换和简单变换等之类的各种术语,并且RST可以被称为的名称不限于所列示例。另选地,由于RST主要在变换块中的包括非零系数的低频区域中执行,因此它可以被称为低频不可分离的变换(LFNST)。变换索引可以被称作LFNST索引。
同时,当基于RST执行次级逆变换时,编码装置100的逆变换器135和解码装置200的逆变换器222可以包括基于变换系数的逆RST推导修改的变换系数的逆缩减次级变换器,以及基于对修改的变换系数的逆初级变换推导用于目标块的残差样本的逆初级变换器。逆初级变换是指应用于残差的初级变换的逆变换。在本公开中,基于变换推导变换系数可以是指通过应用变换来推导变换系数。
图5是例示根据本公开的实施方式的RST的图。
在本公开中,“目标块”可以指代要编码的当前块,残差块或变换块。
在根据示例的RST中,可以将N维向量映射到位于另一个空间中的R维向量,从而可以确定缩减变换矩阵,其中R小于N。N可以是指应用了变换的块的侧边的长度的平方,或与应用了变换的块相对应的变换系数的总数,并且缩减因子可以是指R/N值。缩减因子可以被称为缩减因子、缩小因子、简化因子、简单因子或其他各种术语。此外,R可以被称为缩减系数,但是根据情况,缩减因子可以是指R。此外,根据情况,缩减因子可以是指N/R值。
在示例中,可以通过比特流来用信号通知缩减因子或缩减系数,但是示例不限于此。例如,可以在编码设备200和解码设备300中的每个中存储针对缩减因子或缩减系数的预定值,并且在这种情况下,可以不单独发信号通知缩减因子或缩减系数。
根据示例的缩减变换矩阵的大小可以是小于N×N(常规变换矩阵的大小)的R×N,并且可以如下面的式4所限定。
[式4]
Figure BDA0003527935470000281
图5(a)中所示的缩减变换块中的矩阵T可以是指式4的矩阵TR×N。如图5(a)所示,当将缩减变换矩阵TR×N乘以用于目标块的残差样本时,可以推导用于当前块的变换系数。
在示例中,如果应用了变换的块的大小是8×8并且R=16(即,R/N=16/64=1/4),则根据图5(a)的RST可以被表示为以下式5所示的矩阵运算。在这种情况下,存储和乘法计算可以通过缩减因子缩减至大约1/4。
在本公开中,矩阵运算可以理解为通过将列向量与设置在列向量的左侧的矩阵相乘来获得列向量的运算。
[式5]
Figure BDA0003527935470000282
在式6中,r1至r64可以表示用于目标块的残差样本,并且具体地可以是通过应用初级变换而生成的变换系数。作为式5的计算的结果,可以推导目标块的变换系数ci,并且推导ci的过程可以如式6所示。
[式6]
Figure BDA0003527935470000291
作为式6的计算的结果,可以推导目标块的变换系数c1至cR。也就是说,当R=16时,可以推导目标块的变换系数c1至c16。如果应用常规变换而不是RST,并将64×64(N×N)大小的变换矩阵与64×1(N×1)大小的残差样本相乘,则因为应用了RST而针对目标块仅推导16(R)个变换系数,尽管针对目标块推导了64(N)个变换系数。由于用于目标块的变换系数的总数从N缩减到R,所以编码设备200向解码设备300发送的数据量减少,因此编码设备200与解码设备300之间的传输效率可以提高。
当从变换矩阵的大小的视角考虑时,常规变换矩阵的大小为64×64(N×N),但缩减变换矩阵的大小缩减为16×64(R×N),因此与执行常规变换的情况相比,执行RST的情况下的存储使用率可以减小R/N比率。另外,当与使用常规变换矩阵的情况下的乘法计算的数量N×N相比时,使用缩减变换矩阵可以将乘法计算的数量(R×N)减小R/N比率。
在示例中,编码装置100的变换器132可以通过对用于目标块的残差样本执行初级变换和基于RST的次级变换来推导用于目标块的变换系数。可以将这些变换系数传送到解码装置200的逆变换器,并且解码装置200的逆变换器222可以基于针对变换系数的逆缩减次级变换(RST)来推导修改的变换系数,并且可以基于针对修改的变换系数的逆初级变换来推导用于目标块的残差样本。
根据示例的逆RST矩阵TN×R的大小为比常规逆变换矩阵N×N的大小小的N×R,并且与式4中所示的缩减变换矩阵TR×N具有转置关系。
图5(b)所示的缩减逆变换块中的矩阵Tt可以是指逆RST矩阵TN×R T(上标T是指转置)。如图5(b)所示,当将逆RST矩阵TN×R T乘以目标块的变换系数时,可以推导目标块的修改的变换系数或目标块的残差样本。逆RST矩阵TR×N T可以表示为(TR×N T)N×R
更具体地,当逆RST被用作次级逆变换时,当逆RST矩阵TN×R T被乘以目标块的变换系数时,可以推导目标块的修改的变换系数。此外,可以将逆RST用作逆初级变换,并且在这种情况下,当将逆RST矩阵TN×R T与目标块的变换系数相乘时,可以推导目标块的残差样本。
在示例中,如果应用逆变换的块的大小是8×8并且R=16(即,R/N=16/64=1/4),则根据图5(b)的RST可以被表示为以下式7所示的矩阵运算。
[式7]
Figure BDA0003527935470000301
在式7中,c1至c16可以表示目标块的变换系数。作为式7的计算的结果,可以推导表示目标块的修改的变换系数或目标块的残差样本的rj,并且推导rj的过程可以如式8所示。
[式8]
Figure BDA0003527935470000311
作为式8的计算的结果,可以推导表示目标块的修改的变换系数或目标块的残差样本的r1至rN。从逆变换矩阵的大小的视角考虑,常规逆变换矩阵的大小为64×64(N×N),但逆缩减变换矩阵的大小缩减为64×16(R×N),因此与执行常规逆变换的情况相比,执行逆RST的情况下的存储使用率可以减小R/N比率。另外,当与使用常规逆变换矩阵的情况下的乘法计算的数量N×N相比时,使用逆缩减变换矩阵可以将乘法计算的数量(N×R)减少R/N比率。
表2所示的变换集配置也可以应用于8×8RST。也就是说,可以根据表2中的变换集来应用8×8RST。由于根据帧内预测模式,一个变换集包括两个或三个变换(核),因此可以将其配置为选择包括在不应用次级变换的情况下在内的至多四个变换中的一个。在不应用次级变换的变换中,可以考虑应用恒等矩阵(identity matrix)。假设分别将索引0、1、2和3分配给四个变换(例如,可以将索引0分配给应用恒等矩阵的情况,即,不应用次级变换的情况),可以针对每个变换系数块发信号通知作为语法元素的变换索引或lfnst索引,由此指定要应用的变换。也就是说,针对左顶部8×8块,通过变换索引,可以指定RST配置中的8×8NSST,或者当应用LFNST时可以指定8×8lfnst。8×8lfnst和8×8RST指代当要变换的目标块的W和H均等于或大于8时可应用于变换系数块中包括的8×8区域的变换,并且8×8区域可以是变换系数块中的左顶部8×8区域。类似地,4×4lfnst和4×4RST指代当目标块的W和H均等于或大于4时可应用于变换系数块中包括的4×4区域的变换,并且4×4区域可以是变换系数块中的左顶部4×4区域。
根据本公开的实施方式,对于编码过程中的变换,可以仅选择48条数据,并且可以向其应用最大16×48变换核矩阵,而不是将16×64变换核矩阵应用于形成8×8区域的64条数据。此处,“最大”意味着m在m×48变换核矩阵中具有最大值16以用于生成m个系数。也就是说,当通过将m×48变换核矩阵(m≤16)应用于8×8区域来执行RST时,输入48条数据,并且生成m个系数。当m是16时,输入48条数据并且生成16个系数。也就是说,假设48条数据形成48×1向量,16×48矩阵和48×1向量依次相乘,由此生成16×1向量。这里,形成8×8区域的48条数据可以被适当地布置,由此形成48×1向量。例如,可以基于构成8×8区域之中的除了右底部4×4区域之外的区域的48条数据来构造48×1向量。这里,当通过应用最大16×48变换核矩阵来执行矩阵运算时,生成16个修改的变换系数,并且可以根据扫描顺序将16个修改的变换系数布置在左顶部4×4区域中,并且可以用零填充右顶部4×4区域和左底部4×4区域。
对于解码过程中的逆变换,可以使用前述变换核矩阵的转置矩阵。也就是说,当在由解码设备执行的逆变换过程中执行逆RST或LFNST时,根据预定布置顺序在一维向量中配置应用逆RST的输入系数数据,并且可以根据预定布置顺序将通过将一维向量与在一维向量左侧的对应的逆RST矩阵相乘而获得的修改的系数向量布置到二维块中。
总之,在变换过程中,当RST或LFNST被应用于8×8区域时,在8×8区域的除了右底部区域之外的左顶部区域、右顶部区域和左底部区域中的48个变换系数与16×48变换核矩阵的矩阵运算。对于矩阵运算,以一维阵列输入48个变换系数。当执行矩阵运算时,推导出16个修改的变换系数,并且可以将修改的变换系数布置于8×8区域的左顶部区域中。
相反,在逆变换过程中,当将逆RST或LFNST应用于8×8区域时,可以根据扫描顺序以一维阵列输入8×8区域中的变换系数之中的对应于8×8区域的左顶部区域的16个变换系数,并且可以经历与48×16变换核矩阵的矩阵运算。也就是说,矩阵运算可以表示为(48×16矩阵)*(16×1变换系数向量)=(48×1修改的变换系数向量)。这里,n×1向量可以被解释为具有与n×1矩阵相同的含义,并且因此可以被表示为n×1列向量。此外,*表示矩阵乘法。当执行矩阵运算时,可以推导出48个修改的变换系数,并且可以将48个修改的变换系数布置在8×8区域中的除了右底部区域之外的左顶部区域、右顶部区域和左底部区域中。
当次级逆变换基于RST时,编码装置100的逆变换器135和解码装置200的逆变换器222可以包括用于基于对变换系数的逆RST推导修改的变换系数的逆缩减次级变换器以及用于基于对修改的变换系数的逆初级变换推导用于目标块的残差样本的逆初级变换器。逆初级变换是指应用于残差的初级变换的逆变换。在本公开中,基于变换推导变换系数可以是指通过应用变换来推导变换系数。
上面描述的不可分离的变换(LFNST)将如下详细描述。LFNST可以包括由编码设备进行的正向变换和由解码设备进行的逆变换。
编码设备接收在应用初级(核心)变换之后推导出的结果(或结果的一部分)作为输入,并且应用正向次级变换(次级变换)。
[式9]
y=CTx
在式9中,x和y分别是次级变换的输入和输出,G是表示次级变换的矩阵,并且变换基向量由列向量组成。在逆LFNST的情况下,当变换矩阵G的维度表示为[行的数量×列的数量]时,在正向LFNST的情况下,矩阵G的转置变成GT的维度。
对于逆LFNST,矩阵G的维度是[48×16]、[48×8]、[16×16]、[16×8],并且[48×8]矩阵和[16×8]矩阵是分别从[48×16]矩阵和[16×16]矩阵的左侧采样的8个变换基向量的部分矩阵。
另一方面,对于正向LFNST,矩阵GT的维度是[16×48]、[8×48]、[16×16]、[8×16],并且[8×48]矩阵和[8×16]矩阵是通过分别从[16×48]矩阵和[16×16]矩阵的上部采样8个变换基向量而获得的部分矩阵。
因此,在正向LFNST的情况下,[48×1]向量或[16×1]向量可以作为输入x,并且[16×1]向量或[8×1]向量可以作为输出y。在视频编译和解码中,正向初级变换的输出是二维(2D)数据,因此为了构造[48×1]向量或[16×1]向量作为输入x,需要通过将作为正向变换的输出的2D数据适当地布置来构造一维向量。
图6是例示根据示例的将正向初级变换的输出数据布置成一维向量的顺序的图。图6的(a)和(b)的左图示出了用于构造[48×1]向量的顺序,并且图6的(a)和(b)的右图示出了用于构造[16×1]向量的顺序。在LFNST的情况下,可以通过将2D数据按与图6的(a)和(b)中相同的次序顺序地布置来获得一维向量x。
可以根据当前块的帧内预测模式确定正向初级变换的输出数据的布置方向。例如,在当前块的帧内预测模式相对于对角线方向处于水平方向时,可以按图6的(a)的次序布置正向初级变换的输出数据,并且在当前块的帧内预测模式相对于对角线方向处于垂直方向时,可以按图6的(b)的次序布置正向初级变换的输出数据。
根据示例,可以应用不同于图6的(a)和(b)的布置次序的布置次序,并且为了推导与应用图6的(a)和(b)的布置次序时相同的结果(y向量),可以根据布置次序重新布置矩阵G的列向量。也就是说,可以重新布置G的列向量,使得构成x向量的每个元素总是乘以相同的变换基向量。
由于通过式9推导的输出y是一维向量,因此当在使用正向次级变换的结果作为输入的过程中(例如,在执行量化或残差编译的过程中)需要二维数据作为输入数据时,式9的输出y向量需要再次被适当地布置为2D数据。
图7是例示根据示例的将正向次级变换的输出数据布置成二维向量的顺序的图。
在LFNST的情况下,输出值可以根据预定扫描次序布置在2D块中。图7的(a)示出了当输出y是[16×1]向量时,根据对角线扫描次序将输出值布置在2D块的16个位置处。图7的(b)示出了当输出y是[8×1]向量时,根据对角线扫描次序将输出值布置在2D块的8个位置处,并且用零填充其余的8个位置。图7的(b)中的X指示它被填充有零。
根据另一示例,由于可以预设在执行量化或残差编译时处理输出向量y的次序,因此输出向量y可以不布置在如图7中所示的2D块中。然而,在残差编译的情况下,可以在2D块(例如,4×4)单元(例如,CG(系数组))中执行数据编译,并且在此情况下,根据如图7的对角线扫描次序中的特定次序来布置数据。
此外,解码设备可以通过根据用于逆变换的预设扫描次序来布置通过解量化过程输出的二维数据来配置一维输入向量y。输入向量y可以通过下式输出为输出向量x。
[式10]
x=Gy
在逆LFNST的情况下,可以通过将作为[16×1]向量或[8×1]向量的输入向量y乘以G矩阵来推导输出向量x。对于逆LFNST,输出向量x可以是[48×1]向量或[16×1]向量。
输出向量x根据图6中所示的次序布置在二维块中,并且被布置为二维数据,并且该二维数据成为逆初级变换的输入数据(或输入数据的一部分)。
因此,逆次级变换整体上是正向次级变换过程的相反,并且在逆变换的情况下,与在正向方向中不同,首先应用逆次级变换,然后应用逆初级变换。
在逆LFNST中,可以选择8个[48×16]矩阵和8个[16×16]矩阵中的一个作为变换矩阵G。是应用[48×16]矩阵还是应用[16×16]矩阵取决于块的大小和形状。
另外,可以从如上表2所示的四个变换集中推导8个矩阵,并且每个变换集可以由两个矩阵组成。根据帧内预测模式确定在4个变换集之中使用哪个变换集,并且更具体地,基于通过考虑广角帧内预测(WAIP)而扩展的帧内预测模式的值来确定变换集。通过索引信令来推导从构成所选择的变换集的两个矩阵之中选择哪个矩阵。更具体地,0、1和2可以作为发送的索引值,0可以指示不应用LFNST,并且1和2可以指示构成基于帧内预测模式值选择的变换集的两个变换矩阵中的任何一个。
图8是例示根据本文档的实施方式的广角帧内预测模式的图。
一般帧内预测模式值可以具有从0到66以及从81到83的值,并且由于WAIP而扩展的帧内预测模式值可以具有所示的从-14到83的值。从81到83的值指示CCLM(跨分量线性模型)模式,并且从-14到-1的值和从67到80的值指示由于WAIP应用而扩展的帧内预测模式。
在当前预测块的宽度大于高度时,上参考像素通常更接近要预测的块内部的位置。因此,在左底部方向中比在右顶部方向中进行预测可以更准确。相反,当块的高度大于宽度时,左参考像素通常更接近要预测的块内部的位置。因此,在右顶部方向中比在左底部方向中进行预测可以更准确。因此,将重映射(即,模式索引修改)应用到广角帧内预测模式的索引可以是有利的。
当应用广角帧内预测时,关于现有帧内预测的信息可以被发信号通知,并且在信息被解析之后,该信息可以被重映射到广角帧内预测模式的索引。因此,可以不改变用于特定块(例如,特定大小的非正方形块)的帧内预测模式的总数量,也就是说,帧内预测模式的总数量是67,并且可以不改变用于特定块的帧内预测模式编译。
下表3示出了通过将帧内预测模式重映射到广角帧内预测模式来推导修改的帧内模式的过程。
[表3]
Figure BDA0003527935470000381
在表3中,扩展的帧内预测模式值最终存储在predModeIntra变量中,并且ISP_NO_SPLIT指示CU块不通过当前在VVC标准中采用的帧内子分区(ISP)技术划分成子分区,并且0、1和2的cIdx变量值分别指示亮度分量、Cb分量和Cr分量的情况。表3所示的log2函数返回基数为2的log值,并且Abs函数返回绝对值。
指示帧内预测模式的变量predModeIntra以及变换块的高度和宽度等用作广角帧内预测模式映射过程的输入值,并且输出值是修改的帧内预测模式predModeIntra。变换块或编译块的高度和宽度可以为用于帧内预测模式的重映射的当前块的高度和宽度。此时,反映宽度与宽度的比率的变量whRatio可以被设置为Abs(Log2(nW/nH))。
对于非正方形块,帧内预测模式可以划分成两种情况并且被修改。
首先,如果条件(1)至(3)全部被满足,(1)当前块的宽度大于高度、(2)在修改之前的帧内预测模式等于或大于2、以及(3)帧内预测模式当变量whRatio大于1时小于被推导为(8+2*whRatio)的值并且当变量whRatio小于或等于1时小于8(predModeIntra小于(whRatio>1)?(8+2*whRatio):8),则帧内预测模式被设置为比predModeIntra大65的值[predModeIntra被设置为等于(predModeIntra+65)]。
如果与以上不同,即,如果条件(1)至(3)被满足,(1)当前块的高度大于宽度、(2)在修改之前的帧内预测模式小于或等于66、以及(3)帧内预测模式当whRatio大于1时大于被推导为(60-2*whRatio)的值并且当whRatio小于或等于1时大于60(predModeIntra大于(whRatio>1)?(60-2*whRatio):60),则帧内预测模式被设置为比predModeIntra小67的值[predModeIntra被设置为等于(predModeIntra-67)]。
上表2示出了如何在LFNST中基于由WAIP扩展的帧内预测模式值选择变换集。如图8所示,模式14到33和模式35到80关于模式34周围的预测方向对称。例如,模式14和模式54关于对应于模式34的方向是对称的。因此,相同的变换集应用于位于相互对称的方向中的模式,并且这种对称性也反映在表2中。
此外,假设模式54的正向LFNST输入数据与模式14的正向LFNST输入数据对称。例如,对于模式14和模式54,根据图6的(a)和图6的(b)所示的布置次序将二维数据重新布置为一维数据。另外,可以看出,图6的(a)和图6的(b)所示的次序的图案关于由模式34指示的方向(对角线方向)是对称的。
此外,如上所述,由变换目标块的大小和形状来确定将[48×16]矩阵和[16×16]矩阵中的哪个变换矩阵应用于LFNST。
图9是例示LFNST被应用于的块形状的图。图9的(a)示出了4×4块,(b)示出了4×8块和8×4块,(c)示出了4×N块或N×4块,其中N为16或更大,(d)示出了8×8块,(e)示出了M×N块,其中M≥8、N≥8并且N>8或M>8。
在图9中,具有厚边界的块指示LFNST被应用到的区域。对于图9(a)和(b)的块,LFNST被应用于左顶部4×4区域,并且对于图9(c)的块,LFNST被单独地应用于被连续地布置的两个左顶部4×4区域。在图9的(a)、(b)和(c)中,由于LFNST以4×4区域为单位应用,所以该LFNST在下文中将被称为“4×4LFNST”。作为对应的变换矩阵,可以基于图9和图10中的G的矩阵维度来应用[16×16]或[16×8]矩阵。
更具体地,[16×8]矩阵被应用到图9的(a)的4×4块(4×4TU或4×4CU),并且[16×16]矩阵被应用到图9的(b)和(c)中的块。这是为了将最坏情况的计算复杂度调整为每个样本8次乘法。
关于图9的(d)和(e),LFNST被应用于左顶部8×8区域,并且该LFNST在下文中被称为“8×8LFNST”。作为对应的变换矩阵,可以应用[48×16]矩阵或[48×8]矩阵。在正向LFNST的情况下,由于[48×1]向量(式9中的X向量)作为输入数据被输入,所以不是左顶部8×8区域的所有样本值都被用作正向LFNST的输入值。也就是说,如可以从图6(a)的左侧次序或图6(b)的左侧次序看出的,可以基于属于在将右底部4×4块原样留下的同时的其余3个4×4块的样本来构造[48×1]向量。
[48×8]矩阵可以应用于图9(d)中的8×8块(8×8TU或8×8CU),并且[48×16]矩阵可以应用于图9(e)中的8×8块。这也是为了将最坏情况的计算复杂度调整为每个样本8次乘法。
取决于块形状,当对应的正向LFNST(4×4或8×8LFNST)被应用时,生成8或16个输出数据(式9中的Y向量,[8×1]或[16×1]向量)。在正向LFNST中,由于矩阵GT的特性,输出数据的数量等于或小于输入数据的数量。
图10是例示根据示例的正向LFNST的输出数据的布置的图,并且示出了其中根据块形状布置正向LFNST的输出数据的块。
在图10所示的块的左顶部的阴影区域对应于正向LFNST的输出数据所位于的区域,用0标记的位置指示填充有0值的样本,并且其余区域表示未被正向LFNST改变的区域。在未被LFNST改变的区域中,正向初级变换的输出数据保持不变。
如上所述,由于所应用的变换矩阵的尺寸根据块的形状而变化,因此输出数据的数量也变化。如图10,正向LFNST的输出数据可能不完全填充左顶部4×4块。在图10的(a)和(d)的情况下,将[16×8]矩阵和A[48×8]矩阵分别应用于由粗线指示的块或块内部的部分区域,并且生成作为正向LFNST的输出的[8×1]向量。也就是说,根据图7的(b)所示的扫描次序,可以仅填充8个输出数据,如图10的(a)和(d)所示,并且可以在其余的8个位置中填充0。在图9(d)的LFNST应用的块的情况下,如图10(d)所示,与左顶部4×4块相邻的右顶部和左底部的两个4×4块也被填充有0值。
如上所述,基本上,通过发信号通知LFNST索引,规定了是否应用LFNST和要应用的变换矩阵。如图10所示,当LFNST被应用时,由于正向LFNST的输出数据的数量可以等于或小于输入数据的数量,所以出现如下填充有零值的区域。
1)如图10的(a)所示,来自左顶部4×4块中的扫描次序上的第八个位置和后面的位置的样本,即,来自第九到第十六的样本。
2)如图10的(d)和(e)中所示,当应用[16×48]矩阵或[8×48]矩阵时,与左顶部4×4块相邻的两个4×4块或者扫描次序上的第二和第三4×4块。
因此,如果通过检查区域1)和2)存在非零数据,则确定未应用LFNST,使得可以省略对应的LFNST索引的信令。
根据示例,例如,在VVC标准中采用的LFNST的情况下,由于在残差编译之后执行LFNST索引的信令,因此编码设备可以通过残差编译来知道在TU或CU块内的所有位置是否存在非零数据(有效系数)。因此,编码设备可以基于非零数据的存在来确定是否执行关于LFNST索引的信令,并且解码设备可以确定是否解析LFNST索引。当非零数据不存在于以上1)和2)中指定的区域中时,执行LFNST索引的信令。
由于截短的一元码被应用为LFNST索引的二值化方法,所以LFNST索引由多达两个bin组成,并且0、10和11分别被指派为用于可能的LFNST索引值0、1和2的二进制码。在当前用于VVC的LFNST的情况下,将基于上下文的CABAC编译应用于第一bin(常规编译),并且将旁通编译应用于第二bin。第一bin的上下文的总数量为2,当(DCT-2,DCT-2)被应用为用于水平和垂直方向的初级变换对并且亮度分量和色度分量以双树类型编译时,一个上下文被分配并且另一上下文应用于其余情况。LFNST索引的编译如下表所示。
[表4]
Figure BDA0003527935470000431
此外,对于采用的LFNST,可以应用以下简化方法。
根据示例,正向LFNST的输出数据的数量可以被限于最大值16。
在图9的(c)的情况下,4×4LFNST可以分别应用于与左顶部相邻的两个4×4区域,并且在这种情况下,可以生成最大32个LFNST输出数据。当正向LFNST的输出数据的数量被限制为最大值16时,在4×N/N×4(N≥16)块(TU或CU)的情况下,4×4LFNST仅应用于左顶部的一个4×4区域,LFNST可以仅应用于图9的所有块一次。通过此,可以简化图像编译的实现方式。
图11示出了根据示例的正向LFNST的输出数据的数量被限制为最大值16。如图11,当LFNST被应用到4×N或N×4块(其中N为16或更大)中的最左顶部的4×4区域时,正向LFNST的输出数据成为16个。
(ii)根据示例,可以附加地清零应用到未应用LFNST的区域。在本文档中,清零可以表示用为0的值填充属于特定区域的所有位置。也就是说,可以将清零应用于由于LFNST而未改变的区域,并且维持正向初级变换的结果。如上所述,由于LFNST被划分为4×4LFNST和8×8LFNST,所以清零可以如下划分为两种类型((ii)-(A)和(ii)-(B))。
(ii)-(A)当应用4×4LFNST时,未应用4×4LFNST的区域可以被清零。图12是例示根据示例的应用4×4LFNST的块中的清零的图。
如图12所示,关于应用了4×4LFNST的块,即,对于图10的(a)、(b)和(c)中的所有块,未应用LFNST的整个区域可以用零填充。
另一方面,图12的(d)示出当正向LFNST的输出数据的数量的最大值被限制为16(如图11所示)时,对未应用4×4LFNST的其余块执行清零。
(ii)-(B)当应用8×8LFNST时,未应用8×8LFNST的区域可以被清零。图13是例示根据示例的应用8×8LFNST的块中的清零的图。
如图13所示,关于应用8×8LFNST的块,即,对于图10的(d)和(e)中的所有块,LFNST未被应用到的整个区域可以用零填充。
(iii)由于以上(ii)中呈现的清零,用零填充的区域可以不与当LFNST被应用时相同。因此,可以根据对比图10的LFNST的情况更宽的区域进行(ii)中提出的清零来检查是否存在非零数据。
例如,当(ii)-(B)被应用时,在检查图10的(d)和(e)中的用零值填充的区域是否存在非零数据之后,另外附加地检查图13中填充有0的区域是否存在非零数据,可以仅当不存在非零数据时执行针对LFNST索引的信令。
当然,即使应用(ii)中提出的清零,也可以与现有LFNST索引信令相同的方式检查非零数据是否存在。也就是说,在检查在图10中用零填充的块中是否存在非零数据之后,可以应用LFNST索引信令。在此情况下,编码设备仅执行清零并且解码设备不假设清零,也就是,仅检查非零数据是否仅存在于图10中明确标记为0的区域中,可以执行LFNST索引解析。
另选地,根据另一示例,可以执行如图14所示的清零。图14是例示根据另一示例的应用8×8LFNST的块中的清零的图。
如图12和图13所示,可以将清零应用于除了应用LFNST的区域之外的所有区域,或者可以将清零仅应用于局部区域,如图14所示。清零仅应用于除了图14的左顶部8×8区域之外的区域,清零可以不应用于左顶部8×8区域内的右底部4×4块。
可以推导出应用LFNST的简化方法((i)、(ii)-(A)、(ii)-(B)、(iii))的组合的各种实施方式。当然,以上简化方法的组合不限于以下实施方式,并且可以将任何组合应用于LFNST。
实施方式
将正向LFNST的输出数据的数量限制为最大值16→(i)
当应用4×4LFNST时,未应用4×4LFNST的所有区域被清零→(ii)-(A)
当应用8×8LFNST时,未应用8×8LFNST的所有区域被清零→(ii)-(B)
在检查非零数据是否也存在于填充有零值的现有区域以及由于附加的清零而填充有零的区域中((ii)-(A)、(ii)-(B))之后,仅在不存在非零数据时发信号通知LFNST索引→(iii)。
在实施方式的情况下,当应用LFNST时,可以存在非零输出数据的区域限于左顶部4×4区域的内部。更详细地,在图12的(a)和图13的(a)的情况下,扫描次序上的第八个位置是其中可以存在非零数据的最后位置。在图12的(b)和(c)以及图13的(b)的情况下,扫描次序上的第十六个位置(即,左顶部4×4块的右底部边缘的位置)是其中可以存在除了0以外的数据的最后位置。
因此,在应用LFNST时,在检查非零数据是否存在于残差编译过程不被允许的位置(在超出最后位置的位置处)之后,可以确定是否发信号通知LFNST索引。
在(ii)中提出的清零方法的情况下,由于当应用了初级变换和LFNST两者时最终生成的数据的数量,所以执行整个变换过程所需的计算量可以降低。也就是说,当LFNST被应用时,由于清零被应用于正向初级变换输出数据存在于未应用LFNST的区域中,因此不需要为在执行正向初级变换期间成为清零的区域生成数据。因此,可以降低生成对应的数据所需的计算量。在(ii)中提出的清零方法的附加效果总结如下。
首先,如上所述,减少执行整个变换过程所需的计算量。
特别地,当应用(ii)-(B)时,最坏情况的计算量被减少,使得变换过程可以被变轻。换句话说,一般来说,需要大量的计算来执行大尺寸的初级变换。通过应用(ii)-(B),作为执行正向LFNST的结果而推导出的数据的数量可以减小到16或更小。另外,随着整个块(TU或CU)的大小增加,减少变换操作的量的效果进一步增加。
第二,可以减少整个变换过程所需的计算量,由此降低执行变换所需的功耗。
第三,减小了变换过程中涉及的延迟。
诸如LFNST之类的次级变换向现有的初级变换添加了计算量,因而增加了执行变换时涉及的总体延迟时间。特别地,在帧内预测的情况下,由于在预测过程中使用相邻块的重构数据,所以在编码期间,由于次级变换导致的延迟的增加导致直到重构的延迟的增加。这可以导致帧内预测编码的总体延迟的增加。
然而,如果应用(ii)中提出的清零,则当应用LFNST时可以极大地减少执行初级变换的延迟时间,保持或减少整个变换的延迟时间,使得可以更简单地实现编码设备。
在下文中,表中示出了反映实施方式的图像解码处理。
[表5]
Figure BDA0003527935470000471
表5示出了通过序列参数集语法发信号通知作为关于变换块的大小的语法信息的sps_log2_max_luma_transform_size_minus5。根据语义,sps_log2_max_luma_transform_size_minus5表示在将最大变换大小取以2为底的对数后减去5得到的值。
可以执行变换的变换块的最小大小(MinTbSizeY)设置为4(MinTbSizeY=1<<MinTbLog2SizeY),并且可以执行变换的变换块的最大大小可以被推导为通过sps_log2_max_luma_transform_size_minus5加5获得的值的2的幂(MaxTbLog2SizeY=sps_log2_max_luma_transform_size_minus5+5,MaxTbSizeY=1<<MaxTbLog2SizeY)。
由于sps_log2_max_luma_transform_size_minus5由1位组成,并且具有值0或1,最大变换块的宽度和高度可以基于表5的sps_log2_max_luma_transform_size_minus5设置为32或64。
此外,根据另一实施方式,可以发信号通知最大变换块的大小的标志信息sps_max_luma_transform_size_64_flag。当sps_max_luma_transform_size_64_flag为1时,变换块的最大大小为64,当sps_max_luma_transform_size_64_flag为0时,变换块的最大大小为32。
[表6]
Figure BDA0003527935470000491
表6示出了在编译单元层级发信号通知的lfnst_idx[x0][y0]语法元素。lfnst_idx[x0][y0]可以指示变换集中所包括的两个变换核矩阵中的任何一个。如果lfnst_idx为0,则它可以指示不应用不可分离的次级变换(即,LFNST)。
为了使lfnst_idx被解码设备解析,需要满足很多条件。首先,变量LfnstDcOnly和变量LfnstZeroOutSigCoeffFlag初始设置为1。在解析变换树的语法(transform_tree(x0,y0,cbWidth,cbHeight,treeType))之后,当设置为1的变量LfnstDcOnly变为0,并且变量LfnstZeroOutSigCoeffFlag的值保持为1时,可以解析lfnst_idx[if(LfnstDcOnly==0&&LfnstZeroOutSigCoeffFlag==1)]。可以通过残差编译语法信息推导变量LfnstDcOnly和变量LfnstZeroOutSigCoeffFlag。
此外,lfnst_idx[x0][y0]可以被编译的最大编译块大小被限制为最大变换大小(Max(cbWidth,cbHeight)<=MaxTbSizeY)。
另外,由于编译块的宽度(cbWidth)和编译块的高度(cbHeight)分别指示亮度分量的编译块的宽度和编译块的高度,在色度分量的情况下,LFNST可以根据图像颜色格式(例如,4:2:0)应用于大小较小的每个块。
具体地,如表6所示,如果目标块的树类型为双树色度,则LFNST可以应用于具有如下大小的色度块:在亮度编译块的大小中除以了指示对于色度块的变量的SubWidthC和SubHeight的大小[lfnstWidth=(treeType==DUAL_TREE_CHROMA)?cbWidth/SubWidthC:cbWidth,lfnstHeight=(treeType==DUAL_TREE_CHROMA)?cbHeight/SubHeightC:cbHeight]。
如果颜色格式为4:2:0,则SubWidthC和SubHeight变为2,因此LFNST可以应用于具有通过将亮度块的宽度和高度除以2得到的宽度和高度的色度块。因此,由于在亮度块的大小等于或小于64×64块时可以应用LFNST,所以在颜色格式为4:2:0时当色度块的大小等于或小于32×32块时,可以应用LFNST。
此外,在本文档中,当块A的水平长度和垂直长度分别为Wa和Ha时,并且当块B的水平长度和垂直长度分别为Wb和Hb时,块A小于块B意味着Wa等于或小于Wb,Ha等于或小于Hb,并且Wa和Wb不相等或Ha和Hb不相等。另外,块A小于或等于块B的意思指示Wa等于或小于Wb并且Ha等于或小于Hb。
综上所述,当目标块的大小等于或小于预设的最大大小时,可以应用LFNST,该最大大小可以应用于亮度块的大小,并且相应地,可以推导出可以应用LFNST的色度块的最大大小。
[表7]
Figure BDA0003527935470000511
表7示出了指示对于变换块是否跳过变换的transform_skip_flag以及作为用于初级变换的变换核索引信息tu_mts_idx[x0][y0]。
如表7所示,为了发信号通知tu_mts_idx[x0][y0],可以存在当前块的预测模式是帧间模式或者当显式地指示MTS是否可以应用于通过帧间预测所生成的残差数据的标志信息sps_explicit_mts_inter_enabled_flag为1时[(CuPredMode[x0][y0]==MODE_INTER&&sps_explicit_mts_inter_enabled_flag)]的情况,或者当前块的预测模式是帧内模式或者当显式地指示MTS是否可以应用于通过帧内预测所生成的残差数据的标志信息sps_explicit_mts_intra_enabled_flag为1时[(CuPredMode[x0][y0]==MODE_INTRA&&sps_explicit_mts_intra_enabled_flag)]的情况。
另外,当满足transform_skip_flag不为0的条件时,可以解析tu_mts_idx[x0][y0]。
此外,根据另一示例,可以在表6的编译单元层级而不是变换单元层级发信号通知tu_mts_idx[x0][y0]。
[表8]
Figure BDA0003527935470000531
Figure BDA0003527935470000541
表8示出了残差编译语法,并且示出推导表6的变量LfnstDcOnly和变量LfnstZeroOutSigCoeffFlag的过程。
基于变换块的大小,可以推导指示子块的高度和宽度的变量log2SbW和变量log2SbH,可以基于变量log2SbW和变量log2SbH设置表示子块中可以存在的系数的数量的numSbCoeff[numSbCoeff=1<<(log2SbW+log2SbH)]。
指示子块内的最后有效系数的位置的变量lastScanPos初始被设置为numSbCoeff,指示存在最后非零系数的子块的变量lastSubBlock初始被设置为“(1<<(log2TbWidth+log2TbHeight–(log2SbW+log2SbH)))–1”。
在与lastSubBlock[lastScanPos--]相对应的子块中进行对角线扫描时,检查最后非零有效系数是否存在于相应位置处。
当在lastSubBlock所指向的子块内直至变量lastScanPos变为0没有发现任何有效系数时,变量lastScanPos再次被设置为numSbCoeff,并且变量lastSubBlock也变为在扫描方向中的下一个子块。
也就是说,随着变量lastScanPos和变量lastSubBlock根据扫描方向而更新,最后非零系数所在的位置被识别。
变量LfnstDcOnly指示非零系数是否存在于对于一个编译单元中的至少一个变换块的不是DC分量的位置处,当非零系数存在于对于一个编译单元中的至少一个变换块的不是DC分量的位置处时,它变为0,并且当非零系数不存在于对于一个编译单元中的至少一个变换块的不是DC分量的位置时,它变为1。在本文档中,DC分量是指相对于2D分量的左顶部位置或(0,0)。
一个编译单元内可以存在若干个变换块。例如,在色度分量的情况下,可以存在针对Cb和Cr的变换块,而在单树类型的情况下,可以存在针对亮度、Cb和Cr的变换块。根据示例,当在构成当前编译块的变换块之中的一个变换块中发现除了DC分量的位置之外的非零系数时,变量LnfstDcOnly值可以被设置为0。
同时,由于如果在变换块中不存在非零系数,则不对相应变换块执行残差编译,所以变量LfnstDcOnly的值未被相应变换块改变。因此,当在变换块中不是DC分量的位置中不存在非零系数时,变量LfnstDcOnly的值未发生改变并且维持先前值。例如,如果编译单元被编译为单树类型并且变量LfnstDcOnly的值由于亮度变换块而被改变为0,则即使仅在Cb/Cr变换块中的DC分量中存在非零系数或者在Cb/Cr变换块中不存在非零系数,变量LfnstDcOnly也保持0值。变量LfnstDcOnly的值初始地被初始化为1,并且如果当前编译单元中的没有分量能够将变量LfnstDcOnly的值更新为0,则它照原样保持1值,并且当变量LfnstDcOnly的值在构成相应编译单元的任何一个处被更新为0时,它最终被维持在0。
如表8所示,当存在最后非零系数的子块的索引为0时[lastSubBlock==0]且子块中的最后非零系数的位置大于0[lastScanPos>0]时,变量LfnstDcOnly可以被推导为0。变量LfnstDcOnly只有在变换块的宽度和高度为4或更大[log2TbWidth>=2&&log2TbHeight>=2]并且没有应用变换跳过[!transform_skip_flag[x0][y0]]时才可以被推导为0。
假设应用了LFNST,在存在最后非零系数的子块的索引大于0且变换块的宽度和高度二者都大于或等于4[(lastSubBlock>0&&log2TbWidth>=2&&log2TbHeight>=2)]的情况下,或者在当存在最后非零系数的子块内的非零系数的最后位置大于7且变换块的大小为4×4或8×8[(lastScanPos>7&&(log2TbWidth==2||log2TbHeight==3)&&log2TbWidth==log2TbHeight)]的情况下,可以指示是否适当地执行了清零的变量LfnstZeroOutSigCoeffFlag被设置为0。
也就是说,变量LfnstZeroOutSigCoeffFlag的第一条件是在变换块中除了可以应用LFNST的左顶部区域以外的区域中推导出非零系数的条件(即,当推导出在除了左顶部子块(4×4)以外的子块中的有效系数时)。当满足第一条件时,用于LFNST的清零的标志变量lfnstZeroOutSigCoeffFlag被设置为0。满足第一条件表示不执行清零,假设应用了LFNST。
变量LfnstZeroOutSigCoeffFlag的第二条件是针对4×4块和8×8块的。当LFNST应用于4×4块和8×8块时,由于可以存在非零系数的最后位置是图11的(a)和(d)所示的第8个位置,如果从0开始时在第7个位置之外存在非零系数,则标志变量lfnstZeroOutSigCoeffFlag被设置为0。满足第二条件还指示在假设应用LFNST时不执行清零。
如此,当标志变量lfnstZeroOutSigCoeffFlag被设置为0时,如表6所示,不发信号通知在编译单元层级发信号通知的lfnst_idx。也就是说,当标志变量lfnstZeroOutSigCoeffFlag被设置为0时,解码设备不解析lfnst_idx。
综上所述,在编译单元层级,变量LfnstDcOnly和变量LfnstZeroOutSigCoeffFlag分别被设置为1,然后在残差编译层级通过表8所示的过程来新推导变量LfnstDcOnly和变量LfnstZeroOutSigCoeffFlag。只有当从残差编译层级推导出的变量LfnstDcOnly为0并且变量LfnstZeroOutSigCoeffFlag为1[if(LfnstDcOnly==0&&LfnstZeroOutSigCoeffFlag==1)时,可以发信号通知lfnst_idx。
[表9]
Figure BDA0003527935470000571
Figure BDA0003527935470000581
Figure BDA0003527935470000591
[表10]
Figure BDA0003527935470000592
Figure BDA0003527935470000601
表9和表10示出了基于从表5推导出的变换块的大小的变量MaxTbSizeY执行帧内预测和帧间预测过程。
根据针对亮度或色度的颜色索引cIdx从反映颜色格式的变量MaxTbSizeY或MaxTbSizeY/SubWidthC推导变换块的最大宽度(maxTbWidth)和最大高度(maxTbHeight)[maxTbWidth=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubWidthC,maxTbHeight=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubHeightC]。
基于以此方式推导的变量maxTbWidth和变量maxTbHeight来设置用于帧间预测和帧内预测的变换块的高度和宽度[newTbW=(nTbW>maxTbWidth)?(nTbW/2):nTbW,newTbH=(nTbH>maxTbHeight)?(nTbH/2):nTbH],可以基于所设置的值执行后续的预测过程。
[表11]
Figure BDA0003527935470000611
Figure BDA0003527935470000621
Figure BDA0003527935470000631
表11示出了由解码设备执行的整体变换过程。
参照表11,指示为了应用LFNST而对其执行矩阵运算的非零变量的大小或数量的变量nonZeroSize被设置为8或16。当变换块的宽度和高度为4或8时,即图10所示的4×4块和8×8块的正向LFNST的输出数据或逆LFNST的输入数据的长度为8。对于所有其他块,正向LFNST的输出数据或逆LFNST的输入数据的长度为16[nonZeroSize=((nTbW==4&&nTbH==4)||(nTbW==8&&nTbH==8))?8:16]。也就是说,当应用正向LFNST时,输出数据的最大数量被限制为16。
该逆LFNST的输入数据可以根据对角线扫描以二维布置[xC=DiagScanOrder[2][2][x][0],yC=DiagScanOrder[2][2][x][1]]。上述部分示出了LFNST简化方法的(i)的解码过程。
如此,由于用于变换块的逆LFNST的输入数据的数量被限制为最大值16,因此LFNST可以应用于4×N块或N×4块中最左顶部的4×4区域,其中N为16或更大,如图11所示,并且结果如图12的(d)所示,可以对未应用4×4LFNST的其余块执行清零。
另一方面,当帧内预测模式大于或等于81时,即,当在色度块的帧内预测期间应用CCLM时,用于推导变换集的帧内预测模式(predModeIntra)可以被设置为对应亮度块的帧内模式(IntraPredModeY[xTbY+nTbW/2][yTbY+nTbH/2])。
此外,指示是否隐式地执行MTS的变量implicitMtsEnabled在其满足在序列参数层级发信号通信的标志信息sps_mts_enabled_flag为1,sps_explicit_mts_intra_enabled_flag为0,帧内预测模式应用于当前块,lfnst_idx为0,且intra_mip_flag为1的条件下,可以被设置为1。
另外,指示其中可以存在输入到逆初级变换的非零变换系数的左上块的宽度和高度的变量nonZeroW和nonZeroH,在lfnst索引不为0且变换块的宽度或宽度为4时,被推导为4,否则被推导为8[nonZeroW=(nTbW==4||nTbH==4)?4:8,nonZeroH=(nTbW==4||nTbH==4)?4:8]。也就是说,在变换块中,在除了被应用lfnst的4×4区域和8×8区域之外的区域中执行清零。该部分示出了用于LFNST简化方法的(ii)的解码过程。
[表12]
Figure BDA0003527935470000651
表12示出了基于用于推导变换核矩阵的输入值和帧内预测模式推导出的LFNST变换集和用于LFNST的变换集。
如表12所示,可以使用指示推导变换核矩阵的变换输出大小的变量nTrS、用于选择LFNST变换集的帧内预测模式信息(predModeIntra)、以及从编译单元发信号通知的LFNST索引作为输入值,来推导变换核矩阵(lowFreqTransMatrix)。
存在四个LFNST变换集,诸如0、1、2、3,并且可以基于帧内预测模式的对称性向位于相互对称方向的模式应用相同的变换集。当帧内预测模式为非定向平面模式或DC模式(0<=predModeIntra<=1)时,则变换集为0,在广角帧内预测模式(predModeIntra<0,56<=predModeIntra<=80)的情况下,变换集为1。
另一方面,如上所述,当CCLM应用于色度块时,用于推导变换集的色度块的帧内预测模式(predModeIntra)可以被设置为对应亮度块的帧内模式(IntraPredModeY[xTbY+nTbW/2][yTbY+nTbH/2])而不是指示CCLM或平面模式的81至83。
因此,在表12的用于变换集选择的帧内预测模式(predModeIntra)中省略了81至83。
此外,下表13示出了分配给上述tu_mts_idx语法元素的bin索引的ctxInc(将ctxInc指派给具有上下文编译bin的语法元素)。
[表13]
Figure BDA0003527935470000661
如表13所示,tu_mts_idx的第一个bin(binIdx=0)的ctxInc为0,第二个bin(binIdx=1)的ctxInc为1,第三个bin(binIdx=2)的ctxInc为2并且第四个bin(binIdx=3)的ctxInc为3。
在常规情况下,根据预定条件从多个ctxInc之中选择任意一个ctxInc,并且在没有伴随特定条件的情况下通过将一个固定ctxInc分配给第一个bin来分配给第一个bin,如上所述,可以增加编译效率。
提供以下附图以描述本公开的具体示例。由于在附图中示出的装置的特定名称或特定信号/消息/字段的名称是为了例示而提供的,所以本公开的技术特征不限于在以下附图中使用的特定名称。
图15是图示根据本公开的实施例的视频解码装置的操作的流程图。
图15所图示的每个操作可以由图2所图示的解码装置200执行。具体地,S1510至S1550可以由图2所图示的熵解码器210执行,S1520可以由图2所图示的解量化器221执行,S1560和S1570可以由图2所图示的逆变换器222执行,并且S1580可以由图2所图示的加法器240执行。根据S1510至S1580的操作基于参考图3至图14在前面解释的细节中的一些。因此,将省略或者将简要地做出与上面参考图2至图14解释的那些重叠的特定细节的描述。
根据实施例的解码装置200接收包括残差信息的比特流,并且可以从比特流中推导关于当前块即要变换的变换块的残差信息,例如,量化变换系数(S1510)。
更具体地,解码装置200可以对来自比特流的关于用于目标块的量化变换系数的信息进行解码并且可以基于关于用于当前块的量化变换系数的信息来推导用于当前块的量化变换系数。关于用于目标块的量化变换系数的信息可以被包括在序列参数集(SPS)或切片报头中,并且可以包括以下各项中的至少一个:关于是否应用缩减变换(RST)的信息、关于简化因子的信息、关于应用缩减变换的最小变换大小的信息、关于应用缩减变换的最大变换大小的信息、缩减逆变换大小、以及关于指示包括在变换集中的变换核矩阵中的任何一个的变换索引的信息。
解码装置200可以基于残差信息来推导在当前块中最后有效系数的位置和用于当前块的变换系数(S1520)。解码装置200可以对当前块的量化变换系数执行解量化以推导变换系数。
可以将推导的变换系数二维地布置在当前块中,并且解码装置可以通过残差编译来推导非零数据,即,关于当前块中的非零有效系数的信息。也就是说,解码装置可以确定当前块中的非零有效系数的最后位置信息。
基于S1520的残差信息推导的变换系数可以是如上所述的解量化变换系数,或者可以是量化变换系数。也就是说,变换系数可以是能够不管变换系数是否被量化都确定它是否是当前块中的非零数据和有效系数的位置的任何数据。
解码装置可以确定包括最后有效系数的子块的索引是否为0并且子块中的最后有效系数的位置是否是0或更大(S1530)。解码装置可以确定在构成编译块的变换块之中的至少一个变换块的除DC区域(DC分量所位于的区域)以外的区域中是否存在有效系数。
在本文档中,根据示例,DC区域可以仅意指相对于DC变换系数的位置,即,仅变换块的左顶部位置。
根据确定,可以推导指示在除了当前块的DC区域以外的区域中是否存在有效系数的第一变量或第一标志信息,并且可以在残差编译过程中推导该第一变量或第一标志信息。在当前块中包括最后有效系数的子块的索引是0并且子块中的最后有效系数的位置大于0时,可以将第一标志信息推导为0,并且如果第一标志信息是0,则能够解析LFNST索引。
第一标志信息可以被初始地设置为1,并且取决于在除了DC区域以外的区域中是否存在有效系数,可以被维持为1或者可以被改变为0。也就是说,指示在具有索引0的子块中的最后有效系数的位置是否大于0的第一标志信息被初始地设置为1,当在具有索引0的子块中的最后有效系数的位置是0或更大时,第一标志信息被改变为0。当第一标志信息被改变为0时,可以解析LFNST索引。
根据示例,可以基于变换块的大小来推导指示子块的高度和宽度的变量log2SbW和变量log2SbH,并且可以基于变量log2SbW和变量log2SbH来设置表示可以存在于子块中的系数的数目的numSbCoeff[numSbCoeff=1<<(log2SbW+log2SbH)]。
指示在子块内的最后有效系数的位置的变量lastScanPos被初始地设置为numSbCoeff,并且指示在其中存在最后非零系数的子块的变量lastSubBlock初始是“(1<<(log2TbWidth+log2TbHeight-(log2SbW+log2SbH)))——设置为1”。
当在与lastSubBlock[lastScanPos--]相对应的子块中在对角线方向中扫描时,检查了在相应位置处是否存在除0以外的最后有效系数。
当在由lastSubBlock指向的子块内在变量lastScanPos变为0之前未找到有效系数时,变量lastScanPos被再次设置为numSbCoeff,并且变量lastSubBlock也被改变为在扫描方向[lastSubBlock--]中的下一子块。
也就是说,随着变量lastScanPos和变量lastSubBlock根据扫描方向被更新,存在最后非零系数的位置被识别。
变量LfnstDcOnly指示在不是一个编译单元中的用于至少一个变换块的DC分量的位置处是否存在非零系数,当在不是一个编译单元中的用于至少一个变换块的DC分量的位置中存在非零系数时,它变为0,并且当在一个编译单元中的用于所有变换块的除DC分量以外的位置处不存在非零系数时,它变为1。
如表8所示,当存在最后非零系数的子块的索引是0[lastSubBlock==0],并且在子块中的最后非零系数的位置大于0[lastScanPos>0]时,可以将变量LfnstDcOnly推导为0。只有当变换块的宽度和高度是4或更大[log2TbWidth>=2&&log2TbHeight>=2],并且未应用变换跳过[!transform_skip_flag[x0][y0]]时,才能够将变量LfnstDcOnly推导为0。
根据示例,解码装置可以确定在除了当前块的左顶部处的第一区域以外的第二区域中是否存在有效系数(S1540)。
解码装置可以将指示在除了第一区域之外的第二区域中是否存在有效系数的第二变量或第二标志信息设置为1,并且当在第二区域中不存在有效系数时,可以将第二标志信息维持为1,并且可以解析LFNST索引。
第二标志信息可以是可以指示当应用LFNST时执行清零的变量LfnstZeroOutSigCoeffFlag。第二标志信息被初始地设置为1,并且当在第二区域中存在有效系数时,可以将第二标志信息改变为0。
当存在最后非零系数的子块的索引大于0并且变换块的宽度和高度都大于4[(lastSubBlock>0&&log2TbWidth>=2&&log2TbHeight>=2)]时,或者当在其中存在最后非零系数的子块内的非零系数的最后位置大于7并且变换块的大小是4x4或8x8[(lastScanPos>7&&(log2TbWidth==2||log2TbHeight==3)&&log2TbWidth==log2TbHeight)]时,能够将变量LfnstZeroOutSigCoeffFlag推导为0。
也就是说,在变换块中,当从除了能够存在LFNST变换系数的左顶部区域以外的区域推导非零系数时,或者对于4x4块和8x8块,当非零系数按扫描顺序存在于第八位置外部时,变量LfnstZeroOutSigCoeffFlag被设置为0。在这种情况下,不解析LFNST索引。
可以基于当前块的大小来推导第一区域。
例如,在当前块的大小是4x4或8x8时,第一区域可以是在扫描方向中从当前块的左顶部到第八个样本位置。
在当前块的大小是4x4或8x8时,由于通过前向LFNST输出8个数据,所以能够在扫描方向中从当前块的左顶部到第八样本位置布置由解码装置接收到的8个变换系数,如在图12(a)和图13(a)中那样。
另外,在当前块的大小不是4x4或8x8时,第一区域可以是当前块的左顶部处的4x4区域。如果当前块的大小不是4x4或8x8,则由于通过前向LFNST输出16个数据,所以由解码装置接收到的16个变换系数可以被布置在当前块的左顶部4x4区域中,如图12(b)至(d)和图13(b)所示的那样。
同时,可以被布置在第一区域中的变换系数可以如图7所示的那样沿着对角线扫描方向被布置。
另外,根据示例,可以存在于被应用LFNST的块中的变换系数的最大数目可以是16。
解码装置可以在确定了在具有索引0的子块中的最后有效系数的位置等于或大于0并且在第二区域中不存在有效系数时,从比特流解析LFNST索引(S1550)。
换句话说,当第一标志信息指示在除DC区域以外的区域中存在有效系数,并且第二标志信息指示在第二区域中不存在有效系数时,解码装置可以从比特流解析LFNST索引。
也就是说,当被设置为1的第一标志信息被改变为0并且第二标志信息被维持为1时,可以解析LFNST索引。换句话说,除了DC区域,在包括DC区域的子块(即,左顶部4x4块)中存在有效系数,并且当通过检查有效系数直到当前块的第二区域不存在有效系数时,可以解析用于LFNST的LFNST索引。
总之,在编译单元级别处,第一标志信息LfnstDcOnly和第二标志信息LfnstZeroOutSigCoeffFlag分别被设置为1,然后在残差编译级别处通过表8所示的过程被重新推导。只有当从残差编译级别推导的变量LfnstDcOnly是0并且变量LfnstZeroOutSigCoeffFlag是1[if(LfnstDcOnly==0&&LfnstZeroOutSigCoeffFlag==1)]时,才可以在编译单元级别处用信号通知lfnst_idx。
如上所述,当由编码装置执行前向LFNST时,除了可能存在LFNST变换系数的区域之外的当前块的剩余区域的清零可以被执行为0。
因此,当在第二区域中存在有效系数时,确信未应用LFNST,所以不用信号通知LFNST索引并且解码装置不解析LFNST索引。
LFNST索引信息作为语法信息被接收,并且语法信息作为包括0和1的二值化bin串被接收。
根据本实施例的LFNST索引的语法元素可以指示是否逆LFNST或者逆不可分离变换被应用以及变换集中包括的变换核矩阵中的任何一个,并且变换集包括两个变换核矩阵。在这种情况下,变换索引的语法元素可以具有三个值。
也就是说,根据实施例,用于LFNST索引的语法元素值可以包括:0,其指示逆LFNST未被应用于目标块的情况;1,其指示变换核矩阵之中的第一变换核矩阵;以及2,其指示变换核矩阵之中的第二变换核矩阵。
当LFNST索引被解析时,解码装置可以将LFNST矩阵应用于第一区域的变换系数以推导修改的变换系数(S1560)。
解码装置200的逆变换器232可以根据应用于当前块的帧内预测模式基于映射关系来确定变换集,并且可以执行逆LFNST,即,基于变换集和用于LFNST索引的语法元素的值的逆不可分离变换。
如上所述,可以根据要变换的变换块的帧内预测模式来确定多个变换集,并且可以基于变换核矩阵(即,在由LFNST索引指示的变换集中包括的LFNST矩阵)中的任何一个来执行逆LFNST。可以将应用于逆LFNST的矩阵称为逆LFNST矩阵或LFNST矩阵,并且此矩阵的名称是无关的,只要它与用于前向LFNST的矩阵具有转置关系即可。
在一个示例中,逆LFNST矩阵可以是其中列数小于行数的非方形矩阵。
同时,可以基于当前块的大小来推导预定数目的修改的变换系数。例如,在当前块的高度和宽度是8或更大时,如在图6左侧所示的那样推导48个修改的变换系数。在当前块的宽度和高度不等于或大于8时,即,在当前块的宽度和高度大于或等于4并且当前块的宽度或高度小于8时,可以如在图6右侧所示的那样推导16个修改的变换系数。
如图6所示,48个修改的变换系数可以被布置在当前块的左顶部8x8区域的左顶部、右顶部和左底部4x4区域中,并且16个修改的变换系数可以被布置在当前块的左顶部4x4区域中。
48个修改的变换系数和16个修改的变换系数可以根据当前块的帧内预测模式被布置在垂直或水平方向中。例如,当帧内预测模式是基于对角线方向(图8中的模式34)的水平方向(图8中的模式2至34)时,修改的变换系数可以被布置在水平方向中,即,在行优先方向中,如图6的(a)所示。当帧内预测模式是基于对角线方向的垂直方向(图8中的模式35至66)时,修改的变换系数可以被布置在垂直方向中,即,在列优先方向中,如图6的(b)所示。
在一个实施例中,S1560可以包括对变换索引进行解码,基于变换索引(即LFNST索引)来确定是否其对应于用于应用逆RST的条件,当满足用于应用逆LFNST的条件时,选择变换核矩阵并且基于所选择的变换核矩阵和/或简化因子将逆LFNST应用于变换系数。在这种情况下,可以基于简化因子确定简化逆变换矩阵的大小。
参考S1560,能够确认基于用于目标块的变换系数的逆LFNST来推导用于目标块的残差样本。关于逆变换矩阵的大小,一般逆变换矩阵的大小是N x N,而逆LFNST矩阵的大小被减小至N x R,从而与执行一般变换时相比,使得在执行逆LFNST时有可能将存储器占用减小了R/N比率。此外,与使用一般逆变换矩阵时的乘法运算次数N x N相比,有可能在使用逆LFNST矩阵时将乘法运算次数减小了R/N比率(至N x R)。另外,由于在应用逆LFNST时需要对仅R个变换系数进行解码,所以与应用需要对N个变换系数进行解码的一般逆变换时相比,可以将用于目标块的变换系数的总数从N减小到R,从而提高解码效率。也就是说,根据S1560,可以通过逆LFNST来提高解码装置200的(逆)变换效率和解码效率。
根据实施例的解码装置200可以基于针对修改的变换系数的逆初级变换来推导用于目标块的残差样本(S1570)。
另一方面,当不应用LFNST时,可以如下在逆变换过程中应用仅基于MTS的初级逆变换过程。也就是说,解码装置可以如在上述实施例中那样确定LFNST是否被应用于当前块,并且当不应用LFNST时,解码装置可以通过初级逆变换从变换系数推导残差样本。
在除了当前块的第一左顶部区域以外的第二区域中存在有效系数时,解码装置可以确定不应用LFNST,并且可以通过初级逆变换从变换系数推导残差样本。
可以将初级逆变换过程称为逆初级变换过程或MTS逆变换过程。还可以在一些情况下省略这样的基于MTS的初级逆变换过程。
另外,可以对逆初级变换应用简化逆变换,或者可以使用常规可分离变换。
根据实施例的解码装置200可以基于当前块的残差样本和当前块的预测样本来生成重构样本(S1580)。
以下附图被提供来描述本公开的特定示例。由于附图中图示的设备的特定名称或特定信号/消息/字段的名称是为了图示而提供的,所以本公开的技术特征不限于以下附图中使用的特定名称。
图16是图示根据本公开的实施例的视频编码装置的操作的流程图。
图16所图示的每个操作可以由图1所图示的编码装置100执行。具体地,S1610可以由图1所图示的预测器120执行,S1620可以由图1所图示的减法器131执行,S1630至S1650可以由图1所图示的变换器132执行,并且S1660和S1670可以由图1所图示的量化器133和熵编码器240执行。根据S1610至S1670的操作基于图3至图14中描述的内容中的一些。因此,将省略或者将简要地做出与上面参考图1和图3至图14说明的那些重叠的特定细节的描述。
根据实施例的编码装置100可以基于应用于当前块的帧内预测模式来推导预测样本(S1610)。
根据实施例的编码装置100可以基于预测样本来推导用于当前块的残差样本(S1620)。
根据实施例的编码装置100可以基于用于残差样本的初级变换来推导用于目标块的变换系数(S1630)。
可以通过多个变换核来执行初级变换,并且在这种情况下,可以基于帧内预测模式来选择变换核。
编码装置100可以确定是否对用于当前块的变换系数执行次级变换或者不可分离变换,具体地为LFNST。
当确定要执行LFNST时,编码装置100可以基于当前块的左顶部处的第一区域的变换系数和预定LFNST矩阵来推导用于当前块的修改的变换系数(S1640)。
编码装置100可以根据应用于当前块的帧内预测模式基于映射关系来确定变换集,并且可以执行LFNST,即,基于变换集中包括的两个LFNST矩阵之一的不可分离变换。
如上所述,可以根据要变换的变换块的帧内预测模式来确定多个变换集。应用于LFNST的矩阵与用于逆LFNST的矩阵具有转置关系。
在一个示例中,LFNST矩阵可以是其中行数小于列数的非方形矩阵。
可以基于当前块的大小来推导第一区域。例如,在当前块的高度和宽度大于或等于8时,第一区域是如在图6的左侧所示的当前块的左顶部处的8x8区域的左顶部、右顶部、左底部的4x4区域。在当前块的高度和宽度不等于或大于8时,第一区域可以是如在图6的右侧所示的当前块的左顶部处的4x4区域。
第一区域的变换系数可以根据当前块的帧内预测模式在垂直或水平方向中被读取并且被一维地布置以用于与LFNST矩阵的乘法运算。
第一区域的48个修改的变换系数或16个修改的变换系数可以根据当前块的帧内预测模式在垂直或水平方向中被读取并且被布置在一个维度中。例如,如果帧内预测模式是基于对角线方向(图8中的模式34)的水平方向(图8中的模式2至34),则变换系数可以被布置在水平方向中,即,在行优先方向中,如图6的(a)所示。当帧内预测模式是基于对角线方向的垂直方向(图8中的模式35至66)时,变换系数可以被布置在垂直方向中,即,在列优先方向中,如图6的(b)所示。
在一个示例中,可以基于简化变换矩阵或变换核矩阵来执行LFNST,并且简化变换矩阵可以是其中行数小于列数的非方形矩阵。
在一个实施例中,S1640可以包括确定是否满足用于应用LFNST的条件,基于该确定来生成并编码LFNST索引,当满足用于应用LFNST的条件时选择变换核矩阵并且基于所选择的变换核矩阵和/或简化因子将LFNST应用于残差样本。在这种情况下,可以基于简化因子来确定简化变换矩阵的大小。
参考S1640,能够确认基于用于残差样本的LFNST来推导用于目标块的变换系数。关于变换核矩阵的大小,一般变换核矩阵的大小是Nx N,而简化变换矩阵的大小被减小至Rx N,从而与执行一般变换时相比,使得在执行RST时有可能将存储器占用减小了R/N比率。此外,与乘法运算次数N x N相比,当使用一般变换核矩阵时,有可能在使用简化变换核矩阵时将乘法运算次数减小了R/N比率(至R x N)。另外,由于应用RST时推导仅R个变换系数,所以与应用推导N个变换系数的一般变换时相比,可以将用于目标块的变换系数的总数从N减小到R,从而减少由编码装置100发送到解码装置200的数据的量。也就是说,根据S1640,可以通过LFNST来提高编码装置100的变换效率和编译效率。
同时,根据示例,编码装置可以将在其中不存在修改的变换系数的当前块的第二区域清零(S1650)。
如图12和图13一样,可以将在其中不存在修改的变换系数的当前块的所有剩余区域视为零。由于清零,执行整个变换过程所需要的计算量被减少,并且对于整个变换过程所需要的计算量被减少,从而减少执行变换所需要的功耗。另外,可以通过减小变换过程中涉及的时延来提高图像编译效率。
另一方面,当不应用LFNST时,可以在如上所述的变换过程中应用仅基于MTS的初级变换过程。也就是说,编码装置可以如在上述实施例中那样确定LFNST是否被应用于当前块,并且当不应用LFNST时,编码装置可以通过初级变换从残差样本推导变换系数。
可以将此初级变换过程称为初级变换过程或MTS变换过程。在一些情况下还可以省略这样的基于MTS的初级变换过程。
根据示例的编码设备可以配置图像信息,使得在当前块中包括最后有效系数的子块的索引是0,子块中的最后有效系数的位置是0或更大,并且在第二区域中不存在有效系数时,指示LFNST矩阵的LFNST索引被解析(S1660)。
也就是说,根据示例的编码装置可以配置图像信息,使得在排除当前块的DC区域的区域中存在有效系数并且上述清零被执行时,指示LFNST矩阵的LFNST索引被解析。
编码装置可以配置图像信息,使得可以通过解码装置来解析表6和表8所示的图像信息。
根据示例,在当前块中包括最后有效系数的子块的索引是0且子块中的最后有效系数的位置大于0时,确定了在除DC区域以外的区域中存在有效系数,并且图像信息能够被配置为使得LFNST索引被发送或用信号通知。在本文档中,扫描顺序中的第一位置可以是0。
另外,根据示例,在当前块中包括最后有效系数的子块的索引大于0并且当前块的宽度和高度是4或更大时,确定了确信不应用LFNST,并且图像信息可以被配置为使得不用信号通知LFNST索引。
另外,根据示例,在当前块的大小是4x4或8x8并且在扫描顺序中的位置的开始是0,最后有效系数的位置大于7时,编码装置可以确定确信不应用LFNST,并且配置图像信息,使得不用信号通知LFNST索引。
也就是说,编码装置能够配置图像信息,使得在解码装置中推导与第一标志信息相对应的变量LfnstDcOnly和与第二标志信息相对应的变量LfnstZeroOutSigCoeffFlag之后,能够根据所推导的变量值来解析LFNST索引。
例如,编码装置将指示最后有效系数的位置在具有索引0的子块中是否大于0的第一标志信息设置为1,当在具有索引0的子块中的最后有效系数的位置大于0时,可以将第一标志信息改变为0。在这种情况下,可以对LFNST索引进行编码。
另外,编码装置将指示在除了第一区域之外的第二区域中是否存在有效系数的第二标志信息设置为1,当在第二区域中不存在有效系数时,可以使第二标志信息维持为1。在这种情况下,可以对LFNST索引进行编码。
另一方面,在当前块中包括最后有效系数的子块的索引大于0并且当前块的宽度和高度是4或更大时,编码装置可以将第二标志信息改变为0,或者在当前块的大小是4x4或8x8并且最后有效系数的位置是8或更大时,编码装置可以将第二标志信息改变为0。在这种情况下,由于图像信息被配置使得不解析LFNST索引,所以LFNST索引未被编码。
根据实施例的编码装置100可以通过基于用于目标块的修改的变换系数执行量化来推导量化变换系数,并且可以对包括关于量化变换系数和LFNST索引的信息的图像信息进行编码和输出(S1670)。
也就是说,编码装置可以生成包括关于量化变换系数的信息的残差信息。残差信息可以包括上述变换相关信息/语法元素。编码装置可以对包括残差信息的图像/视频信息进行编码并且以比特流的形式输出编码图像/视频信息。
更具体地,编码装置100可以生成关于量化变换系数的信息并且对关于所生成的量化变换系数的信息进行编码。
在一个示例中,关于量化变换系数的信息可以包括关于是否应用LFNST的信息、关于简化因子的信息、关于对其应用LFNST的最小变换大小的信息、以及关于对其应用LFNST的最大变换大小的信息中的至少一个。
另外,编码装置100可以在序列参数集级别处对关于最大变换应用块的大小的信息,例如关于变换块大小的语法信息,诸如sps_log2_max_luma_transform_size_minus5,或诸如sps_max_luma_transform_size_64_flag的标志信息,进行编码。
在本公开中,可以省略量化/解量化和/或变换/逆变换中的至少一者。当省略量化/解量化时,可以将量化变换系数称为变换系数。当省略变换/逆变换时,变换系数可以被称为系数或残差系数,或者为了表述一致性仍可以被称为变换系数。
另外,在本公开中,量化变换系数和变换系数可以分别被称为变换系数和缩放变换系数。在此情况下,残差信息可以包括关于变换系数的信息,并且可以通过残差编码语法发信号通知关于变换系数的信息。可以基于残差信息(或关于变换系数的信息)来推导变换系数,并且可以通过变换系数的逆变换(缩放)来推导缩放变换系数。可以基于缩放变换系数的逆变换(变换)来推导残差样本。这些细节也可以在本公开的其他部分中应用/表达。
在上述实施方式中,借助于一系列步骤或方框基于流程图解释了方法,但是本公开不限于步骤的顺序,并且可以按与上述顺序或步骤不同的顺序或步骤来执行某一步骤,或某一步骤与其他步骤并发地执行。此外,本领域普通技术人员可以理解,流程图中所示的步骤不是排它的,并且在不影响本公开的范围的情况下,可以并入另一步骤或者可以删除流程图中的一个或更多个步骤。
根据本公开的上述方法可以被实现为软件形式,并且根据本公开的编码设备和/或解码设备可以被包括在诸如电视、计算机、智能电话、机顶盒和显示装置等之类的用于图像处理的设备中。
当本公开中的实施方式通过软件来实施时,上述方法可以被实施为用于执行上述功能的模块(步骤、功能等)。这些模块可以存储在存储器中并且可以由处理器执行。存储器可以在处理器内部或外部,并且能够以各种众所周知的方式连接到处理器。处理器可以包括专用集成电路(ASIC)、其他芯片组、逻辑电路和/或数据处理装置。存储器可以包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、存储卡、存储介质和/或其他存储装置。也就是说,本公开中描述的实施方式可以在处理器、微处理器、控制器或芯片上实施和执行。例如,每个附图中所示的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实施和执行。
此外,应用本公开的解码设备和编码设备可以包括在多媒体广播收发器、移动通信终端、家庭影院视频装置、数字影院视频装置、监控相机、视频聊天装置、实时通信装置(诸如视频通信)、移动流装置、存储介质、摄像机、视频点播(VoD)服务提供装置、顶置(OTT)视频装置、互联网流服务提供装置、三维(3D)视频装置、视频电话视频装置、和医疗视频装置,并且可以用于处理视频信号或数据信号。例如,顶置(OTT)视频装置可以包括游戏机、蓝光播放器、互联网接入TV、家庭影院系统、智能电话、平板PC、数字视频记录仪(DVR)等。
另外,应用本公开的处理方法能够以由计算机执行的程序的形式来生产,并且可以存储在计算机可读记录介质中。具有根据本公开的数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括存储计算机可读数据的各种存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光盘(BD)、通用串行总线(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,互联网上的传输)形式实施的介质。另外,通过编码方法所生成的比特流可以存储在计算机可读记录介质中,或者通过有线或无线通信网络来传输。另外,本公开的实施方式可以通过程序代码被实施为计算机程序产品,并且程序代码可以按照本公开的实施方式在计算机上执行。程序代码可以存储在计算机可读载体上。
图17示意性地图示本公开适用于的视频/图像编译系统的示例。
参考图17,视频/图像编译系统可以包括第一设备(源设备)和第二设备(接收设备)。源设备可以经由数字存储介质或网络以文件或流的形式向接收设备递送编码视频/图像信息或数据。
源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以被称为视频/图像编码设备,并且解码设备可以被称为视频/图像解码设备。发送器可以被包括在编码设备中。接收器可以被包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
视频源可以通过捕获、合成或生成视频/图像的处理来获得视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以被生成相关数据的处理取代。
编码设备可以对输入视频/图像进行编码。编码设备可以执行诸如针对压缩和编译效率的预测、变换和量化这样的一系列过程。编码后的数据(编码后的视频/图像信息)能够以比特流的形式输出。
发送器可以通过数字存储介质或网络以文件或流的形式将以比特流的形式输出的编码后的视频/图像信息或数据发送到接收装置的接收器。数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等这样的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并且将接收/提取的比特流发送到解码设备。
解码设备可以通过执行与编码设备的操作对应的诸如解量化、逆变换、预测等这样的一系列过程来解码视频/图像。
渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
图18图示本公开被应用于的内容流传输系统的结构。
此外,本公开被应用于的内容流传输系统可以主要包括编码服务器、流传输服务器、web服务器、媒体存储、用户设备和多媒体输入设备。
编码服务器用来将从诸如智能电话、相机、摄像机等的多媒体输入设备输入的内容压缩为数字数据,以生成比特流,并且将其发送到流传输服务器。作为另一示例,在诸如智能电话、相机、摄像机等的多媒体输入设备直接生成比特流的情况下,可以省略编码服务器。可以通过本公开被应用于的编码方法或比特流生成方法来生成比特流。并且流传输服务器可以在发送或接收比特流的过程中暂时存储比特流。
流传输服务器基于用户的请求通过web服务器向用户设备发送多媒体数据,所述web服务器充当向用户通知有什么服务的工具。当用户请求用户想要的服务时,web服务器将请求传送到流传输服务器,并且流传输服务器将多媒体数据发送到用户。在这方面,内容流传输系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用来控制内容流传输系统中的相应设备之间的命令/响应。
流传输服务器可以从媒体存储和/或编码服务器接收内容。例如,在从编码服务器接收到内容的情况下,可以实时地接收内容。在这种情况下,流传输服务器可以将比特流存储达预定时间段以平稳地提供流传输服务。
例如,用户设备可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航、板式PC、平板PC、超极本、可穿戴设备(例如,手表型终端(智能手表)、眼镜型终端(智能眼镜)、头戴式显示器(HMD))、数字TV、台式计算机、数字标牌等。内容流传输系统中的每个服务器可以作为分布式服务器被操作,并且在这种情况下,能够以分布式方式处理由每个服务器接收到的数据。
能够以各种方式组合本文公开的权利要求。例如,能够组合本公开的方法权利要求的技术特征以在装置中被实现或执行,并且能够组合装置权利要求的技术特征以在方法中被实现或执行。此外,能够组合方法权利要求和装置权利要求的技术特征以在装置中被实现或执行,能够组合方法权利要求和装置权利要求的技术特征以在方法中被实现或执行。

Claims (15)

1.一种由解码装置执行的图像解码方法,所述方法包括:
从比特流获得残差信息;
基于所述残差信息来推导在当前块中的最后有效系数的位置和用于所述当前块的变换系数;
确定是否包括所述最后有效系数的子块的索引为0并且在所述子块中的所述最后有效系数的位置大于0;
确定在除了所述当前块的左顶部处的第一区域以外的第二区域中是否存在有效系数;
当确定在具有索引0的所述子块中的所述最后有效系数的位置大于0并且在所述第二区域中不存在所述有效系数时,从所述比特流解析LFNST索引;
通过对所述第一区域中的所述变换系数应用基于所述LFNST索引所推导的LFNST矩阵来推导修改的变换系数;
基于针对所述修改的变换系数的逆初级变换来推导用于所述当前块的残差样本;以及
基于用于所述当前块的所述残差样本来生成重构图片。
2.根据权利要求1所述的图像解码方法,进一步包括:将指示所述最后有效系数的位置在具有索引0的所述子块中是否大于0的第一标志信息设置为1,以及
其中,当具有索引0的所述子块中的所述最后有效系数的位置大于0时,将所述第一标志信息改变为0并且解析所述LFNST索引。
3.根据权利要求1所述的图像解码方法,进一步包括:将指示在除了所述第一区域之外的所述第二区域中是否存在有效系数的第二标志信息设置为1,以及
其中,当所述第二区域中不存在有效系数时,使所述第二标志信息维持为1并且解析所述LFNST索引。
4.根据权利要求3所述的图像解码方法,其中,在所述当前块中包括所述最后有效系数的所述子块的索引大于0并且所述当前块的宽度和高度是4或更大时,所述第二标志信息被推导为0,以及
其中,当所述第二标志信息是0时,不解析所述LFNST索引。
5.根据权利要求3所述的图像解码方法,其中,在所述当前块的大小是4x4或8x8并且所述最后有效系数的位置大于或等于8时,所述第二标志信息被推导为0,以及
其中,当所述第二标志信息是0时,不解析所述LFNST索引。
6.根据权利要求1所述的图像解码方法,其中,基于所述当前块的大小来推导所述第一区域,
其中,在所述当前块的大小是4x4或8x8时,所述第一区域是在扫描方向中从所述当前块的左顶部到第八样本位置,以及
其中,在所述当前块的大小不是4x4或8x8时,所述第一区域是在所述当前块的左顶部处的4x4区域。
7.根据权利要求1所述的图像解码方法,其中,基于所述当前块的大小来推导预定数目的所述修改的变换系数,
其中,在所述当前块的高度和宽度大于或等于8时,48个修改的变换系数被推导,以及
其中,在所述当前块的宽度和高度是4或更大并且所述当前块的宽度或高度小于8时,16个修改的变换系数被推导。
8.根据权利要求4所述的图像解码方法,其中,48个修改的变换系数被布置在所述当前块的左顶部8x8区域之中的左顶部、右顶部和左底部4x4区域中,以及
其中,16个修改的变换系数被布置在所述当前块的所述左顶部4x4区域中。
9.一种由图像编码装置执行的图像编码方法,所述方法包括:
推导用于当前块的预测样本;
基于所述预测样本来推导用于所述当前块的残差样本;
基于用于所述残差样本的初级变换来推导用于所述当前块的变换系数;
基于所述当前块的左顶部处的第一区域的所述变换系数和预定LFNST矩阵来推导用于所述当前块的修改的变换系数;
将其中不存在所述修改的变换系数的所述当前块的第二区域清零;
构建图像信息,使得在所述当前块中包括最后有效系数的子块的索引是0,在所述子块中的所述最后有效系数的位置大于0,并且在所述第二区域中不存在所述有效系数时,发送指示所述LFNST矩阵的LFNST索引,以及
输出所述图像信息,所述图像信息包括通过所述修改的变换系数和所述LFNST索引的量化所推导的残差信息。
10.根据权利要求9所述的图像编码方法,其中,构建图像信息包括:
将指示在具有索引0的所述子块中的所述最后有效系数的位置是否大于0的第一标志信息设置为1;
在具有索引0的所述子块中的所述最后有效系数的位置大于0时,将所述第一标志信息改变为0;以及
对所述LFNST索引进行编码。
11.根据权利要求9所述的图像编码方法,其中,构建图像信息包括:
将指示在排除所述第一区域的所述第二区域中是否存在所述有效系数的第二标志信息设置为1;
当所述第二区域中不存在所述有效系数时,使所述第二标志信息维持为1;以及
对所述LFNST索引进行编码。
12.根据权利要求11所述的图像编码方法,其中,在所述当前块中包括所述最后有效系数的所述子块的索引大于0并且所述当前块的宽度和高度是4或更大时,所述第二标志信息被改变为0,以及
其中,所述图像信息被配置为使得当所述第二标志信息是0时不发送所述LFNST索引。
13.根据权利要求11所述的图像编码方法,其中,在所述当前块的大小是4x4或8x8并且所述最后有效系数的位置大于或等于8时,所述第二标志信息被推导为0,以及
其中,所述图像信息被配置为使得当所述第二标志信息是0时不发送所述LFNST索引。
14.根据权利要求9所述的图像编码方法,其中,基于所述当前块的大小来推导所述第一区域,
其中,在所述当前块的高度和宽度大于或等于8时,所述第一区域是所述当前块的左顶部8x8区域内的左顶部、右顶部和左底部4x4区域,以及
其中,在所述当前块的宽度和高度是4或更大并且所述当前块的宽度或高度小于8时,所述第一区域是所述当前块的所述左顶部4x4区域。
15.一种计算机可读数字存储介质,所述计算机可读数字存储介质存储用于使图像解码方法被执行的指示信息,所述图像解码方法包括:
从比特流获得残差信息;
基于所述残差信息来推导当前块中的最后有效系数的位置和用于所述当前块的变换系数;
确定是否包括所述最后有效系数的子块的索引为0并且在所述子块中的所述最后有效系数的位置大于0;
确定在除了所述当前块的左顶部处的第一区域以外的第二区域中是否存在有效系数;
当确定在具有索引0的所述子块中的所述最后有效系数的位置大于0并且在所述第二区域中不存在所述有效系数时,从所述比特流解析LFNST索引;
通过对所述第一区域中的所述变换系数应用基于所述LFNST索引所推导的LFNST矩阵来推导修改的变换系数;
基于针对所述修改的变换系数的逆初级变换来推导用于所述当前块的残差样本;以及
基于用于所述当前块的所述残差样本来生成重构图片。
CN202080061900.0A 2019-07-12 2020-07-10 基于变换的图像编译方法及其设备 Pending CN114342393A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962873820P 2019-07-12 2019-07-12
US62/873,820 2019-07-12
US201962873897P 2019-07-13 2019-07-13
US62/873,897 2019-07-13
PCT/KR2020/009128 WO2021010680A1 (ko) 2019-07-12 2020-07-10 변환에 기반한 영상 코딩 방법 및 그 장치

Publications (1)

Publication Number Publication Date
CN114342393A true CN114342393A (zh) 2022-04-12

Family

ID=74211127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080061900.0A Pending CN114342393A (zh) 2019-07-12 2020-07-10 基于变换的图像编译方法及其设备

Country Status (4)

Country Link
US (3) US11677985B2 (zh)
KR (1) KR20220024500A (zh)
CN (1) CN114342393A (zh)
WO (1) WO2021010680A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230099292A1 (en) * 2021-09-29 2023-03-30 Malini MANOCHA Detection and management of dysfunctions in subterranean operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104067614A (zh) * 2011-12-28 2014-09-24 夏普株式会社 算术解码装置、图像解码装置以及算术编码装置
WO2018174402A1 (ko) * 2017-03-21 2018-09-27 엘지전자 주식회사 영상 코딩 시스템에서 변환 방법 및 그 장치
US20180302631A1 (en) * 2017-04-14 2018-10-18 Mediatek Inc. Secondary Transform Kernel Size Selection
US20190174132A1 (en) * 2016-08-10 2019-06-06 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
WO2019112071A1 (ko) * 2017-12-04 2019-06-13 엘지전자 주식회사 영상 코딩 시스템에서 크로마 성분의 효율적 변환에 기반한 영상 디코딩 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US9042440B2 (en) * 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
JP2015516745A (ja) 2012-04-13 2015-06-11 キヤノン株式会社 符号化ビデオデータの変換単位のサブセットを符号化及び復号するための方法、装置及びシステム
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US20180115787A1 (en) 2015-04-12 2018-04-26 Lg Electronics Inc. Method for encoding and decoding video signal, and apparatus therefor
US10491922B2 (en) 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
US10674146B2 (en) * 2015-09-30 2020-06-02 Lg Electronics Inc. Method and device for coding residual signal in video coding system
CN115914625A (zh) 2016-08-01 2023-04-04 韩国电子通信研究院 图像编码/解码方法
US11095893B2 (en) 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
US11943476B2 (en) * 2019-04-16 2024-03-26 Hfi Innovation Inc. Methods and apparatuses for coding video data with adaptive secondary transform signaling
CN114223207B (zh) * 2019-04-16 2023-09-22 寰发股份有限公司 用次要变换编解码视讯数据的方法以及装置
US11032572B2 (en) * 2019-05-17 2021-06-08 Qualcomm Incorporated Low-frequency non-separable transform signaling based on zero-out patterns for video coding
US11695960B2 (en) * 2019-06-14 2023-07-04 Qualcomm Incorporated Transform and last significant coefficient position signaling for low-frequency non-separable transform in video coding
EP3790275A4 (en) * 2019-06-25 2022-03-16 Wilus Institute of Standards and Technology Inc. VIDEO SIGNAL PROCESSING METHOD AND APPARATUS USING SECONDARY TRANSFORMATION

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104067614A (zh) * 2011-12-28 2014-09-24 夏普株式会社 算术解码装置、图像解码装置以及算术编码装置
US20190174132A1 (en) * 2016-08-10 2019-06-06 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
WO2018174402A1 (ko) * 2017-03-21 2018-09-27 엘지전자 주식회사 영상 코딩 시스템에서 변환 방법 및 그 장치
US20180302631A1 (en) * 2017-04-14 2018-10-18 Mediatek Inc. Secondary Transform Kernel Size Selection
WO2019112071A1 (ko) * 2017-12-04 2019-06-13 엘지전자 주식회사 영상 코딩 시스템에서 크로마 성분의 효율적 변환에 기반한 영상 디코딩 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MOONMO KOO ET AL: "Non-CE6: LFNST simplification based on the methods proposed in CE6-2.1a", 《JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11》, 12 July 2019 (2019-07-12), pages 3 *
宋锐: "面向高性能视频编码的变换编码技术研究", 《中国优秀硕士论文电子期刊》, 15 November 2017 (2017-11-15) *
张颖等: "基于二次空间变换的快速时空分割", 《中国图象图形学报》, 8 January 2004 (2004-01-08) *

Also Published As

Publication number Publication date
WO2021010680A1 (ko) 2021-01-21
US11677985B2 (en) 2023-06-13
US20230388545A1 (en) 2023-11-30
US20220141491A1 (en) 2022-05-05
US20230078291A1 (en) 2023-03-16
KR20220024500A (ko) 2022-03-03
US11765389B2 (en) 2023-09-19

Similar Documents

Publication Publication Date Title
CN112655216A (zh) 基于变换的图像编码方法及装置
CN114731436A (zh) 基于变换的图像编码方法及其设备
CN114982239A (zh) 基于变换的图像编码方法及其装置
US11882289B2 (en) Transform-based image coding method and device therefor
CN114846798A (zh) 用于基于变换的图像编码的方法及其设备
US20230239563A1 (en) Transform-based image coding method and device therefor
CN115152232A (zh) 基于变换的图像编译方法及其装置
CN114930847A (zh) 基于变换的图像编码方法及其装置
CN114946189A (zh) 基于变换的图像编码方法及其装置
CN114747220A (zh) 基于变换的图像编码方法及其设备
CN114930850A (zh) 基于变换的图像编码方法及其设备
CN114667735A (zh) 基于变换的图像编译方法及其设备
CN113940074A (zh) 基于广角帧内预测和变换的图像编码方法和装置
CN114342393A (zh) 基于变换的图像编译方法及其设备
CN114930845A (zh) 基于变换的图像编码方法及其装置
CN114846799A (zh) 基于变换的图像编码方法及其设备
CN114342409A (zh) 基于变换的图像编译方法及其设备
CN114930846A (zh) 基于变换的图像编码方法及其装置
CN114586353A (zh) 基于变换的图像编码方法及装置
CN114731434A (zh) 基于变换的图像编码方法及其装置
CN114762343A (zh) 基于变换的图像编码方法及其装置
CN114930848A (zh) 基于变换的图像编码方法及其设备
CN114762342A (zh) 基于变换的图像编码方法及其装置
CN114270839B (zh) 基于变换对图像进行编码的方法和设备
US20220217401A1 (en) Transform-based video coding method, and device therefor

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