CN115152232A - 基于变换的图像编译方法及其装置 - Google Patents

基于变换的图像编译方法及其装置 Download PDF

Info

Publication number
CN115152232A
CN115152232A CN202180015735.XA CN202180015735A CN115152232A CN 115152232 A CN115152232 A CN 115152232A CN 202180015735 A CN202180015735 A CN 202180015735A CN 115152232 A CN115152232 A CN 115152232A
Authority
CN
China
Prior art keywords
transform
lfnst
block
component
current block
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
CN202180015735.XA
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 CN115152232A publication Critical patent/CN115152232A/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/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/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
    • 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/124Quantisation
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/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/186Methods 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 colour or a chrominance component
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • 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

根据本文档的图像解码方法包括导出修改的变换系数的步骤,其中导出修改的变换系数的步骤包括基于当前块的树类型、用于当前块的每个分量的变换系数编译标志、或用于当前块的每个分量的变换跳过标志设置关于是否应用LFNST的LFNST应用变量的步骤,并且能够包括基于LFNST应用变量的值解析LFNST索引的步骤。

Description

基于变换的图像编译方法及其装置
技术领域
本公开总体上涉及图像编译技术,并且更具体地,本公开涉及在图像编译系统中基于变换的图像编译方法及其设备。
背景技术
如今,在各个领域中对诸如4K、8K或更高的超高清(UHD)图像/视频这样的高分辨率和高质量图像/视频的需求已经不断增长。随着图像/视频数据变成更高分辨率和更高质量,与传统图像数据相比,所发送的信息量或比特量增加。因此,当使用诸如传统有线/无线宽带线这样的介质来发送图像数据或者使用现有存储介质来存储图像/视频数据时,其传输成本和存储成本增加。
另外,如今,对于诸如虚拟现实(VR)和人工现实(AR)内容或全息图等这样的沉浸式媒体的兴趣和需求正在增加,并且对具有与诸如游戏图像这样的真实图像不同的图像特征的图像/视频的广播正在增加。
因此,需要有效地压缩并发送或存储以及再现具有如上所述的各种特征的高分辨率和高质量图像/视频的信息的高效图像/视频压缩技术。
发明内容
技术问题
本公开的技术方面是提供一种用于提高图像编译效率的方法和设备。
本公开的另一个技术方面是提供一种用于增加对LFNST索引进行编译的效率的方法和设备。
本公开的又一技术方面是提供一种用于基于关于BDPCM和变换系数的存在的标志信息来增加对LFNST索引进行编译的效率的方法和设备。
技术方案
根据本公开的实施例,提供了一种由解码设备执行的图像解码方法。该方法可以包括导出修改的变换系数,其中导出修改的变换系数可以包括基于当前块的树类型和用于当前块的每个分量的变换系数编译标志或者用于当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量,以及基于LFNST应用变量的值来解析LFNST索引。
基于用于当前块的每个分量的变换系数编译标志为0,LFNST应用变量的值可以被设置为1,其指示LFNST索引被解析。
基于用于当前块的每个分量的变换跳过标志为0,LFNST应用变量的值可以被设置为1,其指示LFNST索引被解析。
当树类型为单树、用于当前块的亮度分量的变换跳过标志为0、当前块的色度分量处于BDPCM模式时,LFNST应用变量的值可以被设置为1,其指示LFNST索引被解析。
用于色度分量的变换系数编译标志可以是0。
用于色度分量的变换跳过标志可以被推断为1。
根据本公开的实施例,提供了一种由编码设备执行的图像编码方法。该方法可以包括通过应用LFNST从变换系数导出修改的变换系数,其中导出该修改的变换系数可以包括基于当前块的树类型和用于当前块的每个分量的变换系数编译标志或者用于当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量,以及基于LFNST应用变量的值来应用LFNST索引。
根据本公开的另一实施例,可以提供一种存储图像数据的数字存储介质,所述图像数据包括编码图像信息和根据由编码设备执行的图像编码方法生成的比特流。
根据本公开的又一实施例,可以提供一种数字存储介质,其存储包括编码图像信息和比特流的图像数据,以使解码设备执行图像解码方法。
有益效果
根据本公开,能够增加整体图像/视频压缩效率。
根据本公开,能够增加对LFNST索引进行编译的效率。
根据本公开,能够基于关于BDPCM和变换系数的存在的标志信息来增加对LFNST索引进行编译的效率。
能够通过本公开的特定示例获得的效果不限于上面列举的效果。例如,可以存在相关领域的普通技术人员能够理解或从本公开中导出的各种技术效果。因此,本公开的特定效果不限于在本公开中显式地描述的效果,并且能够包括能够从本公开的技术特征理解或导出的各种效果。
附图说明
图1示意性地图示本公开适用于的视频/图像编译系统的示例。
图2是示意性地图示能够应用本公开的视频/图像编码设备的配置的图。
图3是示意性地图示能够应用本公开的视频/图像解码设备的配置的图。
图4图示应用本公开的内容流传输系统的结构。
图5示意性地图示根据本文档的实施例的多变换技术。
图6示例性地图示65个预测方向的帧内定向模式。
图7是用于解释根据本公开的实施例的RST的图。
图8是图示根据示例将正向初级变换的输出数据排列成一维矢量的顺序的图。
图9是图示根据示例将正向次级变换的输出数据排列成二维块的顺序的图。
图10是图示根据本文档的实施例的广角帧内预测模式的图。
图11是图示被应用LFNST的块形状的图。
图12是图示根据示例的正向LFNST的输出数据的排列的图。
图13图示根据示例的在对其应用了4×4LFNST的块中的清零。
图14图示根据示例的在对其应用了8×8LFNST的块中的清零。
图15是图示根据本公开的实施例的视频解码设备的操作的流程图。
图16是图示根据本公开的实施例的视频编码设备的操作的流程图。
具体实施方式
尽管本公开可能易于进行各种修改并且包括各种实施例,但是其具体实施例已在附图中通过示例的方式示出,并且现在将对其进行详细描述。然而,这并不旨在将本公开限制于本文公开的具体实施例。本文中使用的术语只是出于描述特定实施例的目的,并不旨在限制本公开的技术思路。除非上下文另外清楚指示,否则单数形式可以包括复数形式。诸如“包括”和“具有”之类的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、组件或其组合,因此不应被理解为预先排除了存在或添加一个或更多个不同特征、数字、步骤、操作、元件、组件或其组合的可能性。
同时,为了方便描述彼此不同的特性功能,独立地例示了本文中描述的附图上的各组件,然而,并不意指各组件由单独的硬件或软件来实现。例如,可以组合这些组件中的任何两个或更多个以形成单个组件,并且任何单个组件可以被划分成多个组件。其中组件被组合和/或划分的实施例将属于本公开的专利权的范围,只要它们不脱离本公开的实质即可。
在下文中,将参考附图更详细地说明本公开的优选实施例。另外,在附图中,相同的附图标号用于相同的组件,并且将省略对相同组件的重复描述。
本文档涉及视频/图像编译。例如,本文档中公开的方法/示例可以涉及VVC(通用视频编译)标准(ITU-T Rec.H.266)、VVC之后的下一代视频/图像编译标准、或其他视频编译相关标准(例如,HEVC(高效视频编译)标准(ITU-T Rec.H.265)、EVC(基本视频编译)标准、AVS2标准等)。
在本文档中,可以提供与视频/图像编译相关的各种实施例,并且除非相反地指定,否则这些实施例可以彼此组合并执行。
在本文档中,视频可以是指一段时间内一系列图像的集合。通常,图片是指表示特定时间区域的图像的单元,而切片(slice)/图块(tile)是构成图片的一部分的单元。切片/图块可以包括一个或更多个编译树单元(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,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收装置)。源装置可以经由数字存储介质或网络以文件或流的形式向接收装置递送编码视频/图像信息或数据。
源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以被称为视频/图像编码设备,并且解码设备可以被称为视频/图像解码设备。发送器可以被包括在编码设备中。接收器可以被包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
视频源可以通过捕获、合成或生成视频/图像的处理来获得视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以被生成相关数据的处理取代。
编码设备可以对输入视频/图像进行编码。编码设备可以执行诸如针对压缩和编译效率的预测、变换和量化这样的一系列过程。编码的数据(编码的视频/图像信息)可以以比特流的形式输出。
发送器可以通过数字存储介质或网络以文件或流的形式将以比特流的形式输出的编码的视频/图像信息或数据发送到接收装置的接收器。数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等这样的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并且将接收/提取的比特流发送到解码设备。
解码设备可以通过执行与编码设备的操作对应的诸如解量化、逆变换、预测等这样的一系列过程来解码视频/图像。
渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
图2是示意性地图示能够应用本公开的视频/图像编码设备的配置的图。在下文中,被称为视频编码设备的术语可以包括图像编码设备。
参考图2,编码设备200可以包括图像分区器210、预测器220、残差处理器230、熵编码器240、加法器250、滤波器260和存储器270。预测器220可以包括帧间预测器221和帧内预测器222。残差处理器230可以包括变换器232、量化器233、解量化器234和逆变换器235。残差处理器230还可以包括减法器231。可以将加法器250称为重构器或重构块生成器。在上面描述的图像分区器210、预测器220、残差处理器230、熵编码器240、加法器250和滤波器260可以由根据实施例的一个或多个硬件组件(例如,编码器芯片组或处理器)配置。此外,存储器270可以包括解码图片缓冲器(DPB)并且可以由数字存储介质配置。硬件组件还可以包括存储器270作为内部/外部组件。
图像分区器210可以将输入到编码设备200的输入图像(或图片或帧)分区成一个或多个处理单元。作为一个示例,可以将处理单元称为编译单元(CU)。在这种情况下,从编译树单元(CTU)或最大编译单元(LCU)开始,可以根据四叉树二叉树三叉树(QTBTTT)结构递归地划分编译单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构来将一个编译单元划分成更深深度的多个编译单元。在这种情况下,例如,可以首先应用四叉树结构并且可以稍后应用二叉树结构和/或三叉树结构。可替选地,可以首先应用二叉树结构。可以基于不进一步划分的最终编译单元来执行根据本公开的编译过程。在这种情况下,可以根据图像特性基于编译效率将最大编译单元直接用作最终编译单元。可替选地,可以按需将编译单元递归地划分成进一步更深深度的编译单元,使得可以将最佳大小的编译单元用作最终编译单元。这里,编译过程可以包括诸如将稍后描述的预测、变换和重构的过程。作为另一示例,处理单元还可以包括预测单元(PU)或变换单元(TU)。在这种情况下,预测单元和变换单元可以从上述最终编译单元分割或分区。预测单元可以是样本预测的单元,并且变换单元可以是用于导出变换系数的单元和/或用于从变换系数导出残差信号的单元。
根据情况,可以使用单元和诸如块、区域等之类的术语来代替彼此。在通常情况下,M×N块可以表示由M列和N行构成的样本或变换系数的集。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可以用作与一个图片(或图像)的像素或像元(pel)相对应的术语。
减法器231从输入图像信号(原始块、原始样本阵列)减去从帧间预测器221或帧内预测器222输出的预测信号(预测块、预测样本阵列)以生成残差信号(残差块、残差样本阵列),并且所生成的残差信号被发送到变换器232。在这种情况下,如所示的,可以将在编码器200中从输入图像信号(原始块、原始样本阵列)减去预测信号(预测块、预测样本阵列)的单元称为减法器231。预测器可以对处理目标块(在下文中,称为“当前块”)执行预测并且可以生成包括用于当前块的预测样本的预测块。预测器可以确定是否在当前块或CU基础上应用帧内预测或帧间预测。如稍后讨论的,在每个预测模式的描述中,预测器可以生成与预测相关的各种信息,诸如预测模式信息,并且将所生成的信息发送到熵编码器240。可以在熵编码器240中对关于预测的信息进行编码并且以比特流的形式输出。
帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的邻近区域中或在远离当前块的遥远区域中。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的细节程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅仅是示例,并且可以取决于配置而使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器221可以基于参考图片上由运动矢量指定的参考块(参考样本阵列)来导出用于当前块的预测块。此时,为了减少在帧间预测模式中发送的运动信息量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本单元来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括关于帧间预测方向的信息(L0预测、L1预测、Bi预测等)。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参考图片中的时间邻近块。包括参考块的参考图片和包括时间邻近块的参考图片可以彼此相同或不同。可以将时间邻近块称为并置参考块、并置CU(colCU)等,并且可以将包括时间邻近块的参考图片称为并置图片(colPic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表并且生成指示哪个候选被用于导出当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式中,与合并模式不同,可以不发送残差信号。在运动信息预测(运动矢量预测,MVP)模式的情况下,可以将邻近块的运动矢量用作运动矢量预测子,并且可以通过用信号发送运动矢量差来指示当前块的运动矢量。
预测器220可以基于各种预测方法来生成预测信号。例如,预测器可以应用帧内预测或帧间预测以用于对一个块进行预测并且还可以同时应用帧内预测和帧间预测。这可以被称为组合帧间和帧内预测(CIIP)。此外,预测器可以基于帧内块复制(IBC)预测模式或调色板模式以便对块执行预测。IBC预测模式或调色板模式可以被用于游戏等中的内容图像/视频编译,诸如屏幕内容编译(SCC)。尽管IBC基本上在当前块中执行预测,但是在当前块内导出参考块的方面可以与帧间预测类似地执行。也就是说,IBC能够使用本公开中描述的帧间预测技术中的至少一个。
通过帧间预测器221和/或帧内预测器222生成的预测信号可以被用于生成重构信号或者生成残差信号。变换器232可以通过对残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、Karhunen-Loève变换(KLT)、基于图的变换(GBT)或条件非线性变换(CNT)中的至少一个。这里,GBT意指当通过图来表示像素之间的关系信息时从图获得的变换。CNT指的是基于使用所有先前重构的像素生成的预测信号所获得的变换。另外,变换过程可以被应用于具有相同大小的正方形像素块或者可以被应用于具有除了正方形块之外的可变大小的块。
量化器233可以量化变换系数并且将量化变换系数发送到熵编码器240,并且熵编码器240可以对量化信号(关于量化变换系数的信息)进行编码并且可以在比特流中输出编码信号。可以将关于量化变换系数的信息称为残差信息。量化器233可以基于系数扫描顺序将块类型量化变换系数重新排列成一维矢量形式,并且基于一维矢量形式的量化变换系数来生成关于量化变换系数的信息。熵编码器240可以执行各种编码方法,诸如例如指数哥伦布(exponential Golomb)、上下文自适应可变长度编译(CAVLC)、上下文自适应二进制算术编译(CABAC)等。熵编码器240可以一起或单独地对除量化变换系数以外的视频/图像重构所必需的信息(例如,语法元素的值等)进行编码。能够以比特流的形式在网络抽象层(NAL)的单元基础上发送或存储编码信息(例如,编码视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)等的各种参数集的信息。此外,视频/图像信息还可以包括一般约束信息。在本公开中,可以在视频/图像信息中包括从编码设备向解码设备发送/用信号发送的信息和/或语法元素。视频/图像信息可以通过上述编码过程来编码并且被包括在比特流中。比特流可以通过网络来发送,或者存储在数字存储介质中。这里,网络可以包括广播网络、通信网络和/或类似物,并且数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。可以将发送从熵编码器240输出的信号的发送器(未示出)和/或存储该信号的存储装置(未示出)配置为编码设备200的内部/外部元件,或者可以将发送器包括在熵编码器240中。
从量化器233输出的量化变换系数可以用于生成预测信号。例如,通过经由解量化器234和逆变换器235对量化变换系数应用解量化和逆变换,可以重构残差信号(残差块或残差样本)。加法器255将重构残差信号加到从帧间预测器221或帧内预测器222输出的预测信号,使得能够生成重构信号(重构图片、重构块、重构样本阵列)。当处理目标块没有残差时,如在应用跳过模式的情况下一样,可以将预测块用作重构块。可以将加法器250称为重构器或重构块生成器。所生成的重构信号可以被用于当前块中的下一处理目标块的帧内预测,并且如稍后描述的,所生成的重构信号可以被用于通过滤波对下一图片进行帧间预测。
同时,在图片编码和/或重构过程中,可以应用亮度映射与色度缩放(LMCS)。
滤波器260可以通过将滤波应用于重构信号来改进主观/客观视频质量。例如,滤波器260可以通过对重构图片应用各种滤波方法来生成修改的重构图片,并且滤波器260可以将修改的重构图片存储在存储器270中,更具体地,在存储器270的DPB中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。如稍后在每种滤波方法的描述中讨论的,滤波器260可以生成与滤波相关的各种信息并且将所生成的信息发送到熵编码器240。关于滤波的信息可以在熵编码器240中被编码并且以比特流的形式输出。
可以将被发送到存储器270的修改的重构图片用作帧间预测器221中的参考图片。在这样做时,编码设备可以避免当应用帧间预测时编码设备200和解码设备中的预测失配,并且还可以改进编译效率。
存储器270DPB可以存储修改的重构图片以便将它用作帧间预测器221中的参考图片。存储器270可以存储从其导出运动信息(或者对其进行编码)的当前图片中的块的运动信息和/或已经(或先前)重构的图片中的块的运动信息。可以将所存储的运动信息发送到帧间预测器221以便被用作邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本并且可以将重构样本发送到帧内预测器222。
图3是示意性地图示能够应用本公开的视频/图像解码设备的配置的图。
参考图3,视频解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350和存储器360。预测器330可以包括帧间预测器331和帧内预测器332。残差处理器320可以包括解量化器321和逆变换器322。在上面描述的熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由根据实施例的一个或多个硬件组件(例如,解码器芯片组或处理器)配置。此外,存储器360可以包括解码图片缓冲器(DPB)并且可以由数字存储介质配置。硬件组件还可以包括存储器360作为内部/外部组件。
当输入包括视频/图像信息的比特流时,解码设备300可以与已经在图2的编码设备中处理视频/图像信息的过程对应地重构图像。例如,解码设备300可以基于与从比特流获得的块分区相关的信息来导出单元/块。解码设备300可以通过使用在编码设备中应用的处理单元来执行解码。因此,解码的处理单元可以是例如编译单元,该编译单元可以从编译树单元或最大编译单元沿着四叉树结构、二叉树结构和/或三叉树结构被分区。可以从编译单元导出一个或多个变换单元。并且,可以通过再现器来再现通过解码设备300解码和输出的重构图像信号。
解码设备300能够以比特流的形式接收从图2的编码设备输出的信号,并且可以通过熵解码器310对所接收到的信号进行解码。例如,熵解码器310可以解析比特流以导出图像重构(或图片重构)所需要的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)等的各种参数集的信息。此外,视频/图像信息还可以包括一般约束信息。解码设备可以进一步基于关于参数集的信息和/或一般约束信息来对图片进行解码。在本公开中,将稍后描述的用信号发送/接收的信息和/或语法元素可以通过解码过程来解码并且从比特流获得。例如,熵解码器310可以基于诸如指数哥伦布编码、CAVLC、CABAC等的编码方法来对比特流中的信息进行解码,并且可以输出图像重构所必需的语法元素的值和有关残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素相对应的bin,使用解码目标语法元素信息以及邻近和解码目标块的解码信息或在前一个步骤中解码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型来预测bin生成概率,并且执行bin的算术解码以生成与每个语法元素值相对应的符号。这里,CABAC熵解码方法可以在确定上下文模型之后使用针对下一符号/bin的上下文模型解码的符号/bin的信息来更新上下文模型。可以将在熵解码器310中解码的信息之中关于预测的信息提供给预测器(帧间预测器332和帧内预测器331),并且可以将已经在熵解码器310中对其执行熵解码的残差值即量化变换系数以及相关参数信息输入到残差处理器320。残差处理器320可以导出残差信号(残差块、残差样本、残差样本阵列)。此外,可以将在熵解码器310中解码的信息之中关于滤波的信息提供给滤波器350。同时,接收从编码设备输出的信号的接收器(未示出)可以进一步将解码设备300配置为内部/外部元件,并且接收器可以是熵解码器310的组件。同时,可以将根据本公开的解码设备称为视频/图像/图片编译设备,并且可以将解码设备分类为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器310,并且样本解码器可以包括解量化器321、逆变换器322、加法器340、滤波器350、存储器360、帧间预测器332和帧内预测器331中的至少一个。
解量化器321可以通过对量化变换系数进行解量化来输出变换系数。解量化器321能够以二维块的形式重新排列量化变换系数。在这种情况下,重新排列过程可以基于在编码设备中执行的系数扫描的次序来执行重新排列。解量化器321可以使用量化参数(例如,量化步长信息)来对量化变换系数执行解量化并且获得变换系数。
逆变换器322通过对变换系数执行逆变换来获得残差信号(残差块、残差样本阵列)。
预测器可以对当前块执行预测并且生成包括当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定是否对当前块应用帧内预测或帧间预测,并且更具体地,预测器可以确定帧内/帧间预测模式。
预测器可以基于各种预测方法来生成预测信号。例如,预测器可以应用帧内预测或帧间预测以用于对一个块进行预测,并且还可以同时应用帧内预测和帧间预测。这可以被称为组合帧间和帧内预测(CIIP)。另外,预测器可以执行帧内块复制(IBC)以用于对块进行预测。帧内块复制可以被用于游戏等中的内容图像/视频编译,诸如屏幕内容编译(SCC)。尽管IBC基本上在当前块中执行预测,但是在当前块内导出参考块的方面可以与帧间预测类似地执行。也就是说,IBC可以使用本公开中描述的帧间预测技术中的至少一个。
帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块的邻近区域中或在远离当前块的遥远区域中。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器332可以基于参考图片上由运动矢量指定的参考块(参考样本阵列)来导出用于当前块的预测块。此时,为了减少在帧间预测模式中发送的运动信息量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本单元预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括关于帧间预测方向的信息(L0预测、L1预测、Bi预测等)。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参考图片中的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表并且基于接收到的候选选择信息来导出当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示用于当前块的帧间预测模式的信息。
加法器340可以通过将所获得的残差信号添加到从预测器330输出的预测信号(预测块、预测样本阵列)来生成重构信号(重构图片、重构块、重构样本阵列)。当处理目标块没有残差时,如在应用跳过模式的情况下一样,可以将预测块用作重构块。
可以将加法器340称为重构器或重构块生成器。所生成的重构信号可以被用于当前块中的下一处理目标块的帧内预测,并且如稍后描述的,所生成的重构信号可以通过滤波来输出或者被用于下一图片的帧间预测。
同时,在图片解码过程中,可以应用亮度映射与色度缩放(LMCS)。
滤波器350可以通过将滤波应用于重构信号来改进主观/客观视频质量。例如,滤波器350可以通过对重构图片应用各种滤波方法来生成修改的重构图片,并且可以将修改的重构图片发送到存储器360中,更具体地,存储器360的DPB中。各种滤波方法可以包括例如解块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。
可以将被存储在存储器360的DPB中的(修改的)重构图片用作帧间预测器332中的参考图片。存储器360可以存储已从其导出(或者解码)运动信息的当前图片中的块的运动信息和/或已经(或先前)重构的图片中的块的运动信息。可以将所存储的运动信息发送到帧间预测器260以便被用作邻近块的运动信息或时间邻近块的运动信息。存储器360可以存储当前图片中的重构块的重构样本并且可以将重构样本发送到帧内预测器331。
在本说明书中,解码设备300的预测器330、解量化器321、逆变换器322和滤波器350中描述的示例可以分别类似地或对应地应用于编码设备200的预测器220、解量化器234、逆变器235和滤波器260。
如上所述,执行预测以便在执行视频编译时提高压缩效率。在这样做时,可以生成包括用于作为编译目标块的当前块的预测样本的预测块。这里,预测块包括空间域(或像素域)中的预测样本。可以在编码设备和解码设备中相同地导出预测块,并且编码设备可以通过向解码设备用信号发送不是原始块它本身的原始样本值而是关于原始块与预测块之间的残差的信息(残差信息)来提高图像编译效率。解码设备可以基于残差信息来导出包括残差样本的残差块,通过将残差块加到预测块来生成包括重构样本的重构块,并且生成包括重构块的重构图片。
可以通过变换和量化过程来生成残差信息。例如,编码设备可以导出原始块与预测块之间的残差块,通过对包括在残差块中的残差样本(残差样本阵列)执行变换过程来导出变换系数,并且通过对变换系数执行量化过程来导出量化变换系数,使得它能够(通过比特流)将相关残差信息用信号发送给解码设备。这里,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核、量化参数等。解码设备可以执行量化/解量化过程并且基于残差信息来导出残差样本(或残差样本块)。解码设备可以基于预测块和残差块来生成重构块。编码设备可以通过对量化变换系数进行解量化/逆变换来导出残差块以供参考以进行下一图片的帧间预测,并且可以基于所导出的残差块来生成重构图片。
图4图示应用本公开的内容流传输系统的结构。
此外,应用本公开的内容流系统可以大致包括编码服务器、流服务器、web服务器、媒体存储、用户设备和多媒体输入装置。
编码服务器用于将从诸如智能电话、相机、摄像机等的多媒体输入装置输入的内容压缩成数字数据以生成比特流,并且向流服务器发送它。作为另一示例,在诸如智能电话、相机、摄像机等的多媒体输入装置直接生成比特流的情况下,可以省略编码服务器。可以通过应用本公开的编码方法或比特流生成方法来生成比特流。并且流服务器可以在发送或接收比特流的过程期间临时存储比特流。
流服务器基于用户的请求通过web服务器向用户设备发送多媒体数据,web服务器用作向用户通知存在什么服务的器具。当用户请求用户想要的服务时,web服务器将请求传送至流服务器,并且流服务器向用户发送多媒体数据。在此而言,内容流系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用于控制内容流系统中的相应设备之间的命令/响应。
流服务器可以从媒体存储装置和/或编码服务器接收内容。例如,在从编码服务器接收内容的情况下,可以实时地接收内容。在这种情况下,为了平稳地提供流服务,流服务器可以存储比特流达预定时间。
例如,用户设备可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航仪、板式PC、平板PC、超级本、可穿戴装置(例如,手表型终端(智能手表)、眼镜型终端(智能眼镜)、头戴式显示器(HMD))、数字TV、台式计算机、数字标牌等。内容流系统中的各个服务器可以作为分布式服务器操作,并且在这种情况下,由各个服务器接收到的数据可以用分布式方式进行处理。
图5示意性地图示根据本公开的实施例的多重变换技术。
参考图5,变换器可以对应于前述图2的编码设备中的变换器,并且逆变换器可以对应于前述图2的编码设备中的逆变换器,或者对应于图3的解码设备中的逆变换器。
变换器可以通过基于残差块中的残差样本(残差样本阵列)执行初级变换来导出(初级)变换系数(S510)。可以将此初级变换称为核心变换。在本文中,初级变换可以基于多重变换选择(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设置给DST-7,并且将值为2的trTypeHor或trTypeVer可以设置给DCT-8。
在这种情况下,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
trTypeVer 0 1 1 2 2
变换器可以基于(初级)变换系数来执行次级变换以导出修改的(次级)变换系数(S520)。初级变换是从空间域到频域的变换,并且次级变换是指使用(初级)变换系数之间存在的相关性来变换成更紧凑的表达式。次级变换可以包括不可分离变换。在这种情况下,可以将次级变换称为不可分离次级变换(NSST)或模式相关不可分离次级变换(MDNSST)。NSST可以表示基于不可分离变换矩阵对通过初级变换导出的(初级)变换系数进行次级变换以为残差信号生成修改的变换系数(或次级变换系数)的变换。这里,可以一次应用变换,而不基于不可分离变换矩阵使垂直变换和水平变换分离(或者对(初级)变换系数独立地应用水平/垂直变换)。换句话说,NSST未被单独地应用于垂直方向和水平方向中的(初级)变换系数,并且可以表示例如通过特定预先确定的方向(例如,行优先方向或列优先方向)来将二维信号(变换系数)重新排列成一维信号并且然后基于不可分离变换矩阵来生成修改的变换系数(或次级变换系数)的变换方法。例如,行优先次序是为了对于MxN块以第1行、第2行、...、第N行的次序按行排列,并且列优先次序是为了对于MxN块以第1列、第2列、...、第M列的次序按行排列。可以将NSST应用于被配置有(初级)变换系数的块(在下文中,称为变换系数块)的左上区域。例如,当变换系数块的宽度W和高度H都是8或更大时,可以对变换系数块的左上8×8区域应用8×8NSST。此外,在变换系数块的宽度(W)和高度(H)都是4或更大的同时,当变换系数块的宽度(W)或高度(H)小于8时,可以对变换系数块的左上min(8,W)×min(8,H)区域应用4×4NSST。然而,实施例不限于此,并且例如,即使满足仅变换系数块的宽度W或高度H为4或更大的条件,也可以将4×4NSST应用于变换系数块的左上端min(8,W)×min(8,H)区域。
具体地,例如,如果使用4×4输入块,则不可分离的次级变换可以如下执行。
4×4输入块X可以表示如下。
[式1]
Figure BDA0003806306420000221
如果X以矢量的形式表示,则矢量
Figure BDA0003806306420000231
可以如下表示。
[式2]
Figure BDA0003806306420000232
在式2中,矢量
Figure BDA0003806306420000233
是通过根据行优先顺序重新排列式1的二维块X而获得的一维矢量。
在这种情况下,可以如下计算不可分离的次级变换。
[式3]
Figure BDA0003806306420000234
在此式中,
Figure BDA0003806306420000235
表示变换系数矢量,而T表示16×16(不可分离的)变换矩阵。
通过前述式3,可以导出16×1变换系数矢量
Figure BDA0003806306420000236
并且可以通过扫描顺序(水平、垂直和对角线等)将矢量
Figure BDA0003806306420000237
重新组织为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)模式。
图6示例性地示出65个预测方向的帧内定向模式。
参考图6,在具有左向上对角线预测方向的帧内预测模式34的基础上,可以将帧内预测模式划分成具有水平方向性的帧内预测模式和具有垂直方向性的帧内预测模式。在图6中,H和V分别表示水平方向性和垂直方向性,并且数字-32至32指示样本网格位置上1/32单位的位移。这些数字可以表示用于模式索引值的偏移。帧内预测模式2至33具有水平方向性,并且帧内预测模式34至66具有垂直方向性。严格地说,帧内预测模式34可以被认为既不是水平的,也不是垂直的,但是在确定次级变换的变换集时可以被分类为属于水平方向性。这是因为输入数据被转置以用于在帧内预测模式34的基础上对称的垂直定向模式,并且用于水平模式的输入数据对齐方法被用于帧内预测模式34。转置输入数据意味着二维MxN块数据的行和列被切换成NxM数据。帧内预测模式18和帧内预测模式50分别可以表示水平帧内预测模式和垂直帧内预测模式,并且可以将帧内预测模式2称为右向上对角线帧内预测模式,因为帧内预测模式2具有左参考像素并且在右向上方向中执行预测。同样地,可以将帧内预测模式34称为右向下对角线帧内预测模式,并且可以将帧内预测模式66称为左向下对角线帧内预测模式。
根据示例,可以映射根据帧内预测模式的四个变换集,例如,如下表所示。
[表2]
predModeIntra lfnstTrSetIdx
predModeIntra<0 1
0<=predModeIntra<=1 0
2<=predModeIntra<=12 1
13<=predModeIntra<=23 2
24<=predModeIntra<=44 3
45<=predModeIntra<=55 2
56<=predModeIntra<=80 1
如表2所示,根据帧内预测模式,四个变换集中的任何一个,即,lfnstTrSetIdx,可以映射到四个索引(即,0至3)中的任何一个。
当确定特定集用于不可分离的变换时,可以通过不可分离的次级变换索引来选择特定集中的k个变换核之一。编码设备可以基于率失真(RD)校验来导出指示特定变换核的不可分离的次级变换索引,并且可以将不可分离的次级变换索引用信号发送给解码设备。解码设备可以基于不可分离的次级变换索引来选择特定集中的k个变换核中的一个。例如,lfnst索引值0可以指代第一不可分离的次级变换核,lfnst索引值1可以指代第二不可分离的次级变换核,lfnst索引值2可以指代第三不可分离的次级变换核。可替选地,lfnst索引值0可以指示第一不可分离的次级变换没有被应用于目标块,并且lfnst索引值1至3可以指示三个变换核。
变换器可以基于所选择的变换核来执行不可分离的次级变换,并且可以获得修改的(次级)变换系数。如上所述,修改的变换系数可以被导出为通过量化器量化的变换系数,并且可以被编码并用信号发送给解码设备,并且被传送到编码设备中的解量化器/逆变换器。
同时,如上所述,如果省略了次级变换,则可以将作为初级(可分离的)变换的输出的(初级)变换系数导出为如上所述通过量化器量化的变换系数,并且可以被编码并用信号发送给解码设备,并传送到编码设备中的解量化器/逆变换器。
逆变换器能够以与在上述变换器中执行一系列过程的次序相反的次序执行一系列过程。逆变换器可以接收(解量化)变换器系数,并且通过执行次级(逆)变换来导出(初级)变换系数(S550),并且可以通过针对(初级)变换系数执行初级(逆)变换来获得残差块(残差样本)(S560)。在这方面,从逆变换器的角度来看,可以将初级变换系数称作修改的变换系数。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
解码设备还可以包括次级逆变换应用确定器(或用于确定是否应用次级逆变换的元件)和次级逆变换确定器(或用于确定次级逆变换的元件)。次级逆变换应用确定器可以确定是否应用次级逆变换。例如,次级逆变换可以是NSST、RST或LFNST,并且次级逆变换应用确定器可以基于通过解析比特流而获得的次级变换标志来确定是否应用次级逆变换。在另一示例中,次级逆变换应用确定器可以基于残差块的变换系数来确定是否应用次级逆变换。
次级逆变换确定器可以确定次级逆变换。在这种情况下,次级逆变换确定器可以基于根据帧内预测模式指定的LFNST(NSST或RST)变换集来确定应用于当前块的次级逆变换。在实施例中,可以取决于初级变换确定方法来确定次级变换确定方法。可以根据帧内预测模式来确定初级变换和次级变换的各种组合。此外,在示例中,次级逆变换确定器可以基于当前块的大小来确定应用次级逆变换的区域。
同时,如上所述,如果省略次级(逆)变换,则可以接收(解量化的)变换系数,可以执行初级(可分离的)逆变换,并且可以获得残差块(残差样本)。如上所述,编码设备和解码设备可以基于残差块和预测块来生成重构块,并且可以基于重构块来生成重构图片。
同时,在本公开中,可以在NSST的概念中应用其中减小了变换矩阵(核)的大小的缩减次级变换(RST),以便减少不可分离的次级变换所需的计算量和存储量。
同时,本公开中描述的变换核、变换矩阵以及构成变换核矩阵的系数,即,核系数或矩阵系数,可以以8比特来表示。这可以是在解码设备和编码设备中实现的条件,并且与现有的9比特或10比特相比,可以减少存储变换核所需的存储量,并且可以合理地适应性能劣化。另外,以8比特表示核矩阵可以允许使用小的乘法器,并且可以更适合于用于最佳软件实现的单指令多数据(SIMD)指令。
在本说明书中,术语“RST”可以是指基于大小根据缩减因子而减小的变换矩阵来对目标块的残差样本执行的变换。在执行缩减变换的情况下,由于变换矩阵的大小的减小,可以减少变换所需的计算量。也就是说,RST可以用于解决在大小大的块的变换或不可分离的变换时发生的计算复杂性问题。
RST可以被称为诸如缩减变换、缩减次级变换、缩小变换、简化变换和简单变换等之类的各种术语,并且RST可以被称为的名称不限于所列示例。可替选地,由于RST主要在变换块中的包括非零系数的低频区域中执行,因此它可以被称为低频不可分离的变换(LFNST)。变换索引可以被称作LFNST索引。
同时,当基于RST来执行次级逆变换时,编码设备200的逆变换器235和解码设备300的逆变换器322可以包括基于变换系数的逆RST来导出修改的变换系数的逆缩减次级变换器,以及基于修改的变换系数的逆初级变换来导出用于目标块的残差样本的逆初级变换器。逆初级变换是指应用于残差的初级变换的逆变换。在本公开中,基于变换来导出变换系数可以是指通过应用变换来导出变换系数。
图7是图示根据本公开的实施例的RST的图。
在本公开中,“目标块”可以指代要编码的当前块,残差块或变换块。
在根据示例的RST中,可以将N维矢量映射到位于另一个空间中的R维矢量,从而可以确定缩减变换矩阵,其中R小于N。N可以是指应用了变换的块的侧边的长度的平方,或与应用了变换的块相对应的变换系数的总数,并且缩减因子可以是指R/N值。缩减因子可以被称为缩减因子、缩小因子、简化因子、简单因子或其他各种术语。此外,R可以被称为缩减系数,但是根据情况,缩减因子可以是指R。此外,根据情况,缩减因子可以是指N/R值。
在示例中,可以通过比特流来用信号发送缩减因子或缩减系数,但是该示例不限于此。例如,可以在编码设备200和解码设备300中的每个中存储用于缩减因子或缩减系数的预定义值,并且在这种情况下,可以不单独地用信号发送缩减因子或缩减系数。
根据示例的缩减变换矩阵的大小可以是小于N×N(常规变换矩阵的大小)的R×N,并且可以如下面的式4所限定。
[式4]
Figure BDA0003806306420000291
图7的(a)中示出的缩减变换块中的矩阵T可以意指式4的矩阵TRxN。如图7的(a)所示,当将缩减变换矩阵TRxN与目标块的残差样本相乘时,可以导出用于目标块的变换系数。
在示例中,如果被应用变换的块的大小是8x8并且R=16(即,R/N=16/64=1/4),则可以将根据图7的(a)的RST表达为如以下式5中所示的矩阵运算。在这种情况下,能够通过缩减因子将存储器和乘法计算缩减到大约1/4。
在本公开中,矩阵运算可以理解为通过将列矢量与设置在列矢量的左侧的矩阵相乘来获得列矢量的运算。
[式5]
Figure BDA0003806306420000301
在式5中,r1至r64可以表示目标块的残差样本,并且具体地可以是通过应用初级变换而生成的变换系数。作为式5的计算的结果,可以导出目标块的变换系数ci,并且导出ci的过程可以如式6所示。
[式6]
Figure BDA0003806306420000302
作为式6的计算的结果,可以导出用于目标块的变换系数c1至cR。也就是说,当R=16时,可以导出用于目标块的变换系数c1至c16。虽然为目标块导出了64(N)个变换系数,但是如果代替RST,应用常规变换(regular transform)并且将64x64(NxN)大小的变换矩阵与64x1(Nx1)大小的残差样本相乘,则因为RST被应用,所以为目标块导出仅16(R)个变换系数。由于用于目标块的变换系数的总数从N减小到R,所以由编码设备200发送到解码设备300的数据量减少,如此能够改进编码设备200与解码设备300之间的传输的效率。
当从变换矩阵的大小的视角考虑时,常规变换矩阵的大小为64×64(N×N),但缩减变换矩阵的大小缩减为16×64(R×N),因此与执行常规变换的情况相比,执行RST的情况下的存储使用率可以减小R/N比率。另外,当与使用常规变换矩阵的情况下的乘法计算的数量N×N相比时,使用缩减变换矩阵可以将乘法计算的数量(R×N)减小R/N比率。
在示例中,编码设备200的变换器232可以通过针对用于目标块的残差样本执行初级变换和基于RST的次级变换来导出用于目标块的变换系数。可以将这些变换系数传递到解码设备300的逆变换器,并且解码设备300的逆变换器322可以基于针对变换系数的逆缩减次级变换(RST)来导出修改的变换系数,并且可以基于针对修改的变换系数的逆初级变换来导出用于目标块的残差样本。
根据示例的逆RST矩阵TNxR的大小是小于常规逆变换矩阵的大小NxN的NxR,并且与式4中所示的缩减变换矩阵TRxN处于转置关系。
图7的(b)中示出的缩减逆变换块中的矩阵Tt可以意指逆RST矩阵TRxN T(上标T意指转置)。当如图7的(b)所示将逆RST矩阵TRxN T与用于目标块的变换系数相乘时,可以导出用于目标块的修改的变换系数或用于当前块的残差样本。可以将逆RST矩阵TRxN T表达为(TRxN)T NxR
更具体地,当逆RST被用作次级逆变换时,当逆RST矩阵TN×R T被乘以目标块的变换系数时,可以导出目标块的修改的变换系数。此外,可以将逆RST用作逆初级变换,并且在这种情况下,当将逆RST矩阵TN×R T与目标块的变换系数相乘时,可以导出目标块的残差样本。
在示例中,如果被应用逆变换的块的大小是8x8并且R=16(即,R/N=16/64=1/4),则可以将根据图7的(b)的RST表达为如以下式7中所示的矩阵运算。
[式7]
Figure BDA0003806306420000321
在式7中,c1至c16可以表示目标块的变换系数。作为式7的计算的结果,可以导出表示目标块的修改的变换系数或目标块的残差样本的rj,并且导出rj的过程可以如式8所示。
[式8]
Figure BDA0003806306420000322
作为式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时,编码设备200的逆变换器235和解码设备300的逆变换器322可以包括用于基于对变换系数的逆RST来导出修改的变换系数的逆缩减次级变换器以及用于基于针对修改的变换系数的逆初级变换来导出用于目标块的残差样本的逆初级变换器。逆初级变换是指应用于残差的初级变换的逆变换。在本公开中,基于变换来导出变换系数可以是指通过应用变换来导出变换系数。
上面描述的非分离变换(LFNST)将如下详细描述。LFNST可以包括由编码设备进行的正向变换和由解码设备进行的逆变换。
编码设备接收在应用初级(核心)变换之后导出的结果(或结果的一部分)作为输入,并且应用正向次级变换(次级变换)。
[式9]
y=GTx
在式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数据适当地排列来构造一维矢量。
图8是图示根据示例将正向初级变换的输出数据排列成一维矢量的顺序的图。图8的(a)和(b)的左图示出用于构建[48x1]矢量的顺序,并且图8的(a)和(b)的右图示出用于构建[16x1]矢量的顺序。在LFNST的情况下,能够通过以与在图8的(a)和(b)中相同的次序依次排列2D数据来获得一维矢量x。
可以根据当前块的帧内预测模式来确定正向初级变换的输出数据的排列方向。例如,在当前块的帧内预测模式相对于对角线方向在水平方向中时,能够以图8的(a)的次序排列正向初级变换的输出数据,并且在当前块的帧内预测模式相对于对角线方向在垂直方向中时,能够以图8的(b)的次序排列正向初级变换的输出数据。
根据示例,可以应用与图8的(a)和(b)的排列次序不同的排列次序,并且为了导出与当应用图8的(a)和(b)的排列次序时相同的结果(y矢量),可以根据排列次序来重新排列矩阵G的列矢量。也就是说,可以重新排列G的列矢量,使得构成x矢量的每个元素总是乘以相同的变换基矢量(transform basis vector)。
由于通过式9导出的输出y是一维矢量,因此当在使用正向次级变换的结果作为输入的过程中(例如,在执行量化或残差编码的过程中)需要二维数据作为输入数据时,式9的输出y矢量需要再次被适当地排列为2D数据。
图9是图示根据示例将正向次级变换的输出数据排列成二维块的顺序的图。
在LFNST的情况下,可以根据预先确定的扫描顺序在2D块中排列输出值。图9的(a)示出当输出y是[16x1]矢量时,输出值根据对角线扫描顺序被排列在2D块的16个位置处。图9的(b)示出当输出y是[8x1]矢量时,输出值根据对角线扫描顺序被排列在2D块的8个位置处,并且剩余8个位置被用零填充。图9的(b)中的X指示它被用零填充。
根据另一示例,由于可以预设在执行量化或残差编译时处理输出矢量y的次序,所以如图9中所示可以不在2D块中排列输出矢量y。然而,在残差编译的情况下,可以按照诸如CG(系数组)的2D块(例如,4x4)单元执行数据编译,并且在这种情况下,如在图9的对角线扫描顺序中一样根据特定次序排列数据。
同时,解码设备可以通过根据用于逆变换的预设扫描顺序来排列通过解量化过程输出的二维数据来配置一维输入矢量y。输入矢量y可以通过下式输出为输出矢量x。
[式10]
x=Gy
在逆LFNST的情况下,可以通过将作为[16×1]矢量或[8×1]矢量的输入矢量y乘以G矩阵来导出输出矢量x。对于逆LFNST,输出矢量x可以是[48×1]矢量或[16×1]矢量。
输出矢量x根据图8所示的次序被排列在二维块中并且被排列为二维数据,并且这个二维数据变成逆初级变换的输入数据(或输入数据的一部分)。
因此,逆次级变换整体上是正向次级变换过程的相反,并且在逆变换的情况下,与在正向方向中不同,首先应用逆次级变换,然后应用逆初级变换。
在逆LFNST中,可以选择8个[48×16]矩阵和8个[16×16]矩阵中的一个作为变换矩阵G。是应用[48×16]矩阵还是应用[16×16]矩阵取决于块的大小和形状。
另外,可以从如上表2所示的四个变换集中导出8个矩阵,并且每个变换集可以由两个矩阵组成。根据帧内预测模式确定在4个变换集之中使用哪个变换集,并且更具体地,基于通过考虑广角帧内预测(WAIP)而扩展的帧内预测模式的值来确定变换集。通过索引信令来导出从构成所选择的变换集的两个矩阵之中选择哪个矩阵。更具体地,0、1和2可以作为发送的索引值,0可以指示不应用LFNST,并且1和2可以指示构成基于帧内预测模式值选择的变换集的两个变换矩阵中的任何一个。
图10是图示根据本发明的实施例的广角帧内预测模式的图。
一般帧内预测模式值可以具有从0到66和81到83的值,并且由于WAIP而扩展的帧内预测模式值可以具有从-14到83的值,如所示的。从81到83的值指示CCLM(交叉分量线性模型)模式,并且从-14到-1的值和从67到80的值指示由于WAIP应用而扩展的帧内预测模式。
当预测当前块的宽度大于高度时,上参考像素通常更靠近待预测块内部的位置。因此,以左下方向预测可能比以右上方向预测更准确。反之,当块的高度大于宽度时,左参考像素一般靠近待预测块内部的位置。因此,以右上方向预测可能比以左下方向预测更准确。因此,对广角帧内预测模式的索引应用重新映射(即,模式索引修改)可能是有利的。
当应用广角帧内预测时,可以用信号发送关于现有帧内预测的信息,并且在解析信息之后,可以将信息重新映射到广角帧内预测模式的索引。因此,用于特定块(例如,特定大小的非正方形块)的帧内预测模式的总数不被改变,并且也就是说,帧内预测模式的总数为67,并且用于特定块的帧内预测模式编译可以不被改变。
同时,如上所述,由变换目标块的大小和形状来确定将[48×16]矩阵和[16×16]矩阵中的哪个变换矩阵应用于LFNST。
图11是图示被应用LFNST的块形状的图。图11的(a)示出4x4块,(b)示出4x8块和8x4块,(c)示出4 x N块或N x 4块,其中N是16或更大,(d)示出8x8块,(e)示出M x N块,其中M≥8,N≥8,并且N>8或M>8。
在图11中,具有粗边框的块指示应用LFNST的区域。对于图11的(a)和(b)的块,LFNST被应用于左上部4x4区域,并且对于图11的(c)的块,LFNST被单独地应用于连续地排列的两个左上4x4区域。在图8的(a)、(b)和(c)中,由于以4x4区域为单位应用LFNST,所以此LFNST将在下文中被称为“4x4 LFNST”。基于用于G的矩阵维度,可以应用[16x16]或[16x8]矩阵。
更具体地,[16x8]矩阵被应用于图11的(a)的4x4块(4x4 TU或4x4 CU)并且[16x16]矩阵被应用于图11的(b)和(c)中的块。这是为了将针对最坏情况的计算复杂度调整为每样本8次乘法。
关于图11的(d)和(e),LFNST被应用于左上8x8区域,并且此LFNST在下文中被称为“8x8 LFNST”。作为相应变换矩阵,可以应用[48x16]矩阵或[48x8]矩阵。在正向LFNST的情况下,由于将[48x1]矢量(式9中的x矢量)作为输入数据被输入,所以左上8x8区域的所有样本值都不被用作正向LFNST的输入值。也就是说,如能够以图8的(a)的左次序或图8的(b)的左次序看到的,可以基于属于剩余3个4x4块的样本来构建[48x1]矢量,同时照原样留下右下4x4块。
[48x8]矩阵可以被应用于图11的(d)中的8×8块(8×8TU或8×8CU),并且[48×16]矩阵可以被应用于图11的(e)中的8×8块。这也是为了将针对最坏情况的计算复杂度调整为每样本8次乘法。
取决于块形状,当对应的正向LFNST(4×4或8×8LFNST)被应用时,生成8或16个输出数据(式9中的Y矢量,[8×1]或[16×1]矢量)。在正向LFNST中,由于矩阵GT的特性,输出数据的数量等于或小于输入数据的数量。
图12是图示根据示例的正向LFNST的输出数据的排列的图,并且示出其中根据块形状来排列正向LFNST的输出数据的块。
图12中所示的块的左上处的阴影区域对应于正向LFNST的输出数据所位于的区域,用0标记的位置指示用值0填充的样本,并且剩余区域表示未通过正向LFNST改变的区域。在未通过LFNST改变的区域中,正向初级变换的输出数据保持不变。
如上所述,由于所应用的变换矩阵的维度根据块的形状而变化,所以输出数据的数目也变化。如图12,正向LFNST的输出数据可能不完全地填满左上4x4块。在图12的(a)和(d)的情况下,[16x8]矩阵和[48x8]矩阵分别被应用于由粗线指示的块或该块内的部分区域,并且生成[8x1]矢量作为正向LFNST的输出。也就是说,根据图9的(b)所示的扫描顺序,可以如图12的(a)和(d)所示的那样填充仅8个输出数据,并且可以在剩余8个位置中填充0。在图11的(d)的应用LFNST的块的情况下,如图12的(d)所示,与左上4x4块相邻的右上和左上中的两个4x4块也被用值0填充。
如上所述,基本上,通过用信号发送LFNST索引,是否应用LFNST和要应用的变换矩阵被指定。如图12所示,当应用LFNST时,由于正向LFNST的输出数据的数目可以等于或小于输入数据的数目,所以如下出现用零值填充的区域。
1)如图12的(a)所示,在左上4x4块中按扫描顺序从第8起的以及后面的位置的样本,即,从第9个到第16个的样本。
2)如图12的(d)和(e)所示,当应用[48x16]矩阵或[48x8]矩阵时,与左上4x4块相邻的两个4x4块或扫描顺序中的第二个和第三个4x4块。
因此,如果通过检查区域1)和2)存在非零数据,则确定未应用LFNST,使得可以省略相应LFNST索引的信令。
根据示例,例如,在VVC标准中采用的LFNST的情况下,由于在残差编译之后执行LFNST索引的信令,因此编码设备可以通过残差编译来知道在TU或CU块内的所有位置是否存在非零数据(有效系数)。因此,编码设备可以基于非零数据的存在来确定是否执行关于LFNST索引的信令,并且解码设备可以确定是否解析LFNST索引。当非零数据不存在于以上1)和2)中指定的区域中时,执行LFNST索引的信令。
同时,对于采用的LFNST,可以应用以下简化方法。
(i)根据示例,正向LFNST的输出数据的数量可以限制为最多16。
在图11的(c)的情况下,4x4 LFNST可以分别应用于与左上相邻的两个4x4区域,并且在这种情况下,最多可以生成32个LFNST输出数据。当正向LFNST的输出数据数量限制为最多16时,在4xN/Nx4(N≥16)块(TU或CU)的情况下,4x4 LFNST仅应用于左上的一个4x4区域,LFNST可以只应用于图11的所有块一次。通过此,可以简化图像编译的实现方式。
(ii)根据示例,可以将清零附加地应用于未应用LFNST的区域。在本文中,清零可能意味着将属于特定区域的所有位置的值填充为0的值。也就是说,清零可以应用于没有由于LFNST而改变,并且保持正向初级变换的结果的区域。如上所述,因为LFNST被划分为4x4LFNST和8x8 LFNST,所以清零可以被划分为如下两种类型((ii)-(A)和(ii)-(B))。
(ii)-(A)当应用4x4LFNST时,可以将未对其应用4x4LFNST的区域清零。图13图示根据示例的在对其应用了4×4LFNST的块中的清零。
如图13中所示,关于应用了4x4 LFNST的块,即,对于图12的(a)、(b)和(c)中的所有块,未应用LFNST的整个区域可以用零填充。
另一方面,图13的(d)示出,当根据一个示例将正向LFNST的输出数据的数量的最大值限制为16时,对未应用4x4 LFNST的剩余块执行清零。
(ii)-(B)当应用8×8LFNST时,可以将未对其应用8×8LFNST的区域清零。图14图示根据示例的在对其应用了8×8LFNST的块中的清零。
如图14所示,关于应用了8×8LFNST的块,即,对于图12的(d)和(e)中的所有块,未应用LFNST的整个区域可以用零填充。
(iii)由于上述(ii)中提出的归零,当应用LFNST时,用零填充的区域可以不同。因此,与图12的LFNST的情况相比,能够根据(ii)中提出的清零在更宽的区域上检查非零数据是否存在。
例如,当应用(ii)-(B)时,在检查图12的(d)和(e)中用零值填充的区域、另外在图14中附加地用0填充的区域是否存在非零数据之后,仅当不存在非零数据时,才能执行用于LFNST索引的信令。
当然,即使应用(ii)中提议的清零,也可以以与现有LFNST索引信令相同的方式检查非零数据是否存在。即,在检查图12中用零填充的块中是否存在非零数据之后,可以应用LFNST索引信令。在这种情况下,编码设备仅执行清零,并且解码设备不假定清零,即,仅检查非零数据是否仅存在于图12中显式标记为0的区域中,可以执行LFNST索引解析。
可以导出其中应用用于LFNST的简化方法((i)、(ii)-(A)、(ii)-(B)、(iii))的组合的各种实施例。当然,上述简化方法的组合不限于以下实施例,并且任何组合都可以应用于LFNST。
实施例
-将正向LFNST的输出数据数量限制为最大16→(i)
-当应用4x4 LFNST时,未对其应用4x4 LFNST的所有区域都清零→(ii)-(A)
-当应用8x8 LFNST时,未对其应用8x8 LFNST的所有区域都清零→(ii)-(B)
-在检查非零数据是否也存在于现有的填充有零值的区域和由于额外的清零((ii)-(A)、(ii)-(B))而填充有零的区域之后,仅在非零数据不存在时才用信号发送LFNST索引→(iii)
在实施例的情况下,当应用LFNST时,能够存在非零输出数据的区域被限制在左上4×4区域的内部。更详细地说,在图13(a)和图14(a)的情况下,扫描顺序中的第8个位置是能够存在非零数据的最后位置。在图13(b)和(c)以及图14(b)的情况下,扫描顺序中的第16个位置(即,左上4×4块的右下边缘的位置)是可能存在0以外的数据的最后位置。
因此,在应用LFNST时,在检查非零数据是否存在于残差编译过程不允许的位置(在超出最后位置的位置处)之后,可以确定是否用信号发送LFNST索引。
在(ii)中提出的清零方法的情况下,由于当应用了初级变换和LFNST这两者时最终生成的数据的数量,所以执行整个变换过程所需的计算量可以降低。也就是说,当LFNST被应用时,由于清零被应用于正向初级变换输出数据存在于未应用LFNST的区域中,因此不需要为在执行正向初级变换期间成为清零的区域生成数据。因此,可以降低生成对应的数据所需的计算量。在(ii)中提出的清零方法的附加效果总结如下。
首先,如上所述,减少执行整个变换过程所需的计算量。
特别地,当应用(ii)-(B)时,最坏情况的计算量被减少,使得变换过程可以被变轻。换句话说,一般来说,需要大量的计算来执行大大小的初级变换。通过应用(ii)-(B),作为执行正向LFNST的结果而导出的数据的数量可以减小到16或更小。另外,随着整个块(TU或CU)的大小增加,减少变换操作的量的效果进一步增加。
第二,可以减少整个变换过程所需的计算量,由此降低执行变换所需的功耗。
第三,减小了变换过程中涉及的延迟。
诸如LFNST之类的次级变换向现有的初级变换添加了计算量,因而增加了执行变换时涉及的总体延迟时间。特别地,在帧内预测的情况下,由于在预测过程中使用相邻块的重构数据,所以在编码期间,由于次级变换导致的延迟的增加导致直到重构的延迟的增加。这可以导致帧内预测编码的总体延迟的增加。
然而,如果应用(ii)中提出的清零,则当应用LFNST时可以极大地减少执行初级变换的延迟时间,保持或减少整个变换的延迟时间,使得可以更简单地实现编码设备。
同时,在传统的帧内预测中,当前要编译的块被视为一个编译单元,并且在不分区的情况下执行编译。然而,帧内子分区(ISP)编译意味着通过在水平方向或垂直方向中划分当前要编译的块来执行帧内预测编译。在这种情况下,可以通过以划分块为单位执行编码/解码来生成重构块,并且重构块可以用作下一个划分块的参考块。根据实施例,在ISP编译中,可以将一个编译块划分为两个或四个子块并进行编译,并且在ISP中,在一个子块中,参考位于相邻的左侧或相邻的上侧的子块的重构像素值执行帧内预测。在下文中,“编译”可以用作包括由编码设备执行的编译和由解码设备执行的解码这两者的概念。
ISP根据块的大小将预测为帧内亮度的块分区为在垂直方向或水平方向中的两个或四个子分区。例如,能够应用ISP的最小块大小为4x8或8x4。如果块大小大于4x8或8x4,则将块分区为四个子分区。
当应用ISP时,子块按照分区类型依次编译,诸如水平或垂直、从左到右、或从上到下,并且可以在对一个子块通过逆变换和帧内预测执行恢复过程之后执行下一个子块的编译。对于最左边或最上面的子块,如在传统的帧内预测方法中那样,参考已经编译的编译块的重构像素。另外,如果前一个子块不与其后面的内部子块的每一侧边相邻,为了导出与相应侧边相邻的参考像素,如在传统的帧内预测方法中,参考已经编译的相邻编译块的重构的像素。
在ISP编译模式中,所有子块可以用相同的帧内预测模式进行编译,并且指示是否使用ISP编译的标志和指示要在哪个方向(水平或垂直)执行分区的标志可以被用信号发送。此时,子块的数量可能会取决于块的形状调整为2个或4个,并且当一个子块的大小(宽x高)小于16时,可以限制为不允许对相应的子块进行分区或者不应用ISP编译本身。
在ISP预测模式的情况下,将一个编译单元划分为两个或四个分区块(即,子块)并进行预测,并且将相同的帧内预测模式应用于划分的两个或四个分区块。
如上所述,在划分方向中,水平方向(当分别具有M和N的水平长度和垂直长度的M×N编译单元在水平方向中进行划分时,如果M×N编译单元被划分为两个,则M×N编译单元被划分为M×(N/2)块,并且如果M×N编译单元被划分为四个块,则M×N编译单元被划分为M×(N/4)块)和垂直方向(当M×N编译单元在垂直方向中进行划分时,如果M×N编译单元被划分为两个,则M×N编译单元被划分为(M/2)×N块,并且如果M×N编译单元被划分为四个,则M×N编译单元被划分为(M/4)×N块)二者都是可能的。当在水平方向中划分M×N编译单元时,按照上下顺序对分区块进行编译,并且当在垂直方向中划分M×N编译单元时,按照左右顺序对分区块进行编译。在水平(垂直)方向划分的情况下,可以参考上(左)分区块的重构像素值来预测当前编译的分区块。
可以对通过ISP预测方法以分区块为单位生成的残差信号应用变换。基于DST-7/DCT-8组合以及现有的DCT-2的多变换选择(MTS)技术可以应用于基于正向的初级变换(核心变换),并且正向低频不可分离的变换(LFNST)可以应用于根据初级变换生成的变换系数以生成最终修改的变换系数。
也就是说,LFNST可以应用于通过应用ISP预测模式划分成的分区块,并且相同的帧内预测模式应用于划分的分区块,如上所述。因此,当选择基于帧内预测模式导出的LFNST集时,所导出的LFNST集可以应用于所有的分区块。也就是说,因为相同的帧内预测模式应用于所有分区块,所以相同的LFNST集可以应用于所有分区块。
同时,根据实施例,LFNST可以仅应用于具有4或更大的水平长度和垂直长度二者的变换块。因此,当根据ISP预测方法的划分的分区块的水平长度或垂直长度小于4时,不应用LFNST并且不用信号发送LFNST索引。此外,当对每个分区块应用LFNST时,可以将相应分区块视为一个变换块。当不应用ISP预测方法时,可以将LFNST应用于编译块。
将详细描述将LFNST应用于每个分区块的方法。
根据实施例,在将正向LFNST应用于各个分区块之后,在按变换系数扫描顺序的左上4×4区域中仅留下最多16个(8个或16个)系数,然后可以应用清零,其中其余的位置和区域全部被填充为0。
可替选地,根据实施例,当分区块的一侧的长度为4时,LFNST仅应用于左上4×4区域,并且当分区块的所有侧的长度(即,宽度和高度)为8或更大时,LFNST可以应用于左上8×8区域内的除了右下4×4区域之外的其余48个系数。
可替选地,根据实施例,为了将最坏情况的计算复杂度调整为每个样本8次乘法,当每个分区块是4×4或8×8时,在应用正向LFNST之后可以仅输出8个变换系数。也就是说,当分区块为4×4时,可以应用8×16矩阵作为变换矩阵,当分区块为8×8时,可以应用8×48矩阵作为变换矩阵。
在当前的VVC标准中,以编译单元为单位执行LFNST索引信令。因此,在ISP预测模式中并且当对所有分区块应用LFNST时,可以将相同的LFNST索引值应用于相应分区块。也就是说,当在编译单元级别发送一次LFNST索引值时,相应LFNST索引可以应用于编译单元中的所有分区块。如上所述,LFNST索引值可以具有0、1和2的值,其中0表示不应用LFNST的情况,并且1和2表示在应用LFNST时存在于一个LFNST集中的两个变换矩阵。
如上所述,LFNST集是由帧内预测模式确定的,并且在ISP预测模式的情况下,因为编译单元中的所有分区块都是在相同的帧内预测模式中预测的,所以分区块可以参考相同的LFNST集。
作为另一示例,LFNST索引信令仍然以编译单元为单位来执行,但是在ISP预测模式的情况下,不确定是否对所有分区块均一地应用LFNST,并且对于每个分区块,可以通过单独的条件来确定是否应用在编译单元级别用信号发送的LFNST索引值以及是否应用LFNST。这里,可以通过比特流以针对每个分区块的标志的形式用信号发送单独的条件,并且当标志值为1时,应用在编译单元级别用信号发送的LFNST索引值,并且当标志值为0时,可以不应用LFNST。
在下文中,将描述在将LFNST应用于ISP模式时保持最坏情况的计算复杂度的方法。
在ISP模式的情况下,为了在应用LFNST时将每个样本(或每个系数,或每个位置)的乘法次数保持在某个值或更少,可以限制LFNST的应用。根据分区块的大小,每样本(或每系数,或每位置)的乘法次数可以通过如下应用LFNST而保持在8或更少。
1.当分区块的水平长度和垂直长度都等于或大于4时,可以应用与当前VVC标准中针对LFNST最坏情况的计算复杂度调整方法相同的方法。
也就是说,当分区块是4x4块时,替代16x16矩阵,在正向方向中,可以应用通过从16x16矩阵中采样上8行获得的8x16矩阵,并且在后向方向中,可以应用通过从16x16矩阵中采样左8列获得的16x8矩阵。另外,当分区块是8x8块时,在正向方向中,替代16x48矩阵,可以应用通过从16x48矩阵中采样上8行获得的8x48矩阵,并且在后向方向中,替代48x16矩阵,可以应用通过从48x16矩阵中采样左8列获得的48x8矩阵。
在4xN或Nx4(N>4)块的情况下,当执行正向变换时,在仅将16x16矩阵应用于左上4x4块后生成的16个系数被排列在左上4x4区域中,并且其他区域可能填充有0值。另外,在执行逆变换时,可以将位于左上4x4块中的16个系数按照扫描顺序排列以配置输入矢量,并且然后通过乘以16x16矩阵可以生成16个输出数据。生成的输出数据可以排列在左上4x4区域中,并且除了左上4x4区域之外的其余区域可以用零填充。
在8xN或Nx8(N>8)块的情况下,当执行正向变换时,仅将16x48矩阵应用于左上8x8块中的ROI区域(从左上8x8块中排除右下4x4块的其余区域)之后生成的16个系数可以排列在左上4x4区域中,并且其他区域可以用0值填充。另外,在执行逆变换时,可以将位于左上4x4块中的16个系数按照扫描顺序排列以配置输入矢量,并且然后通过乘以48x16矩阵可以生成48个输出数据。生成的输出数据可以填充在ROI区域中,并且其他区域可以填充有0值。
作为另一示例,为了将每样本(或每系数、每位置)的乘法的数量保持为某个值或更少,可以将基于ISP编译单元大小而不是ISP分区块的大小的每样本(或每系数、每位置)的乘法的数量保持为8或更少。当在ISP分区块之中只有一个块满足应用LFNST的条件时,可以基于对应的编译单元大小而不是分区块的大小来应用用于LFNST的最坏情况的复杂度计算。例如,一个编译单元(CU)的亮度编译块被划分(或分区)成各自具有4×4大小的四个分区块。并且,在本文中,在四个分区块之中,如果对于两个分区块不存在非零变换系数,则剩余的两个分区块中的每个可以被配置成具有(基于编码器)在其中生成的16个变换系数,而不是8个变换系数。
在下文中,将描述用于在ISP模式的情况下用信号发送LFNST索引的方法。
如上所述,LFNST索引可以具有值0、1、2,其中,0指示不应用LFNST,并且其中,1和2分别指示包括在所选LFNST集中的两个LFNST核矩阵中的每个。基于由LFNST索引选择的LFNST核矩阵来应用LFNST。在当前的VVC标准中,将如下描述根据其发送LFNST的方法。
1.可以针对每个编译单元(CU)发送一次LFNST索引,并且在双树的情况下,可以针对亮度块和色度块中的每个单独地用信号发送LFNST索引。
2.当未用信号发送LFNST索引时,LFNST索引被推断为0,其是默认值。下文将描述LFNST索引值被推断为0的情况。
A.当模式与其中不应用变换的模式(例如,变换跳过、BDPCM、无损编译等)相对应时。
B.当初级变换不是DCT-2(DST7或DCT8)时,即,当水平变换或垂直变换不是DCT-2时。
C.当编译单元的亮度块的水平长度或垂直长度超过可用于变换的最大亮度变换大小时,例如,当可用于变换的最大亮度变换大小等于64时,并且当编译块的亮度块的大小等于128×16时,不能应用LFNST。
在双树中,确定用于亮度分量的编译单元和用于色度分量的编译单元中的每个是否超过最大亮度变换大小。即,检查亮度块是否超过用于变换的最大亮度变换大小,并且检查关于色度块根据颜色格式的相应亮度块的宽度或长度是否超过用于最大变换的最大亮度变换大小。例如,当颜色格式为4:2:0时,相应亮度块的宽度/长度是色度块的两倍,并且相应亮度块的变换大小是色度块的两倍。在另一示例中,当颜色格式为4:4:4时,相应亮度块的宽度/长度和变换大小与色度块的相同。
64长度变换或32长度变换意指分别应用于水平或垂直长度为64或32的变换。并且,“变换大小”可以意指对应长度为64或32。
在单树的情况下,在检查亮度块的水平长度或垂直长度是否超过可用于变换的最大亮度变换块大小之后,当长度超过变换块大小时,可以跳过(或省略)LFNST索引信令。
D.仅当编译单元的水平长度和垂直长度二者等于4或更大时,才可以发送LFNST索引。
在双树的情况下,仅当对应分量(即,亮度分量或色度分量)的水平长度和垂直长度二者等于4或更大时,才可以用信号发送LFNST索引。
在单树的情况下,当亮度分量的水平长度和垂直长度二者等于4或更大时,可以用信号发送LFNST索引。
E.当最后非零系数位置不是DC位置(块中的左上位置)时,如果块是双树类型亮度块,并且如果最后非零系数位置不是DC位置,则发送LFNST索引。如果块是双树类型色度块,并且如果Cb的最后非零系数位置和Cr的最后非零系数位置中的至少一者不是DC位置,则发送相应LFNST索引。
在单树类型的情况下,对于亮度分量、Cb分量和Cr分量中的任一者,如果对应的最后非零系数位置不是DC位置,则发送LFNST索引。
在本文中,当指示用于一个变换块的变换系数的存在或不存在的编译块标志(CBF)值等于0时,为了确定是否执行LFNST索引信令,不检查用于对应变换块的最后非零系数位置。也就是说,当对应的CBF值等于0时,由于变换未应用于对应块,因此当检查针对LFNST索引信令的条件时,可以不考虑最后非零系数位置。
例如,1)在双树类型和亮度分量的情况下,如果对应的CBF值等于0,则不用信号发送LFNST索引;2)在双树类型和色度分量的情况下,如果Cb的CBF值等于0并且Cr的CBF值等于1,则仅检查Cr的最后非零系数位置的位置以便发送相应LFNST索引;以及3)在单树类型的情况下,仅检查各自具有CBF值为1的亮度分量、Cb分量或Cr分量的最后非零系数位置。
F.当验证变换系数存在于除了LFNST变换系数可以存在的位置之外的位置中时,可以跳过(或省略)LFNST索引信令。在4×4变换块和8×8变换块的情况下,根据VVC标准的变换系数扫描顺序,LFNST变换系数可以存在于从DC位置开始的8个位置中,并且所有剩余位置可以用0填充。另外,在变换块不是4×4变换块和8×8变换块的情况下,根据VVC标准的变换系数扫描顺序,LFNST变换系数可以存在于从DC位置开始的16个位置中,并且所有剩余位置可以用0填充。
因此,在执行残差编译之后,当非零变换系数存在于应仅填充有0值的区域中时,可以跳过(或省略)LFNST索引信令。
此外,ISP模式可以仅应用于亮度块或可以应用于亮度块和色度块二者。如上文所描述,当应用ISP预测时,在将对应的编译单元划分(或分区)为2个或4个分区块之后执行预测,并且变换还可以应用于对应分区块中的每一者。因此,即使当确定用于由编译单元用信号发送LFNST索引的条件时,也应当考虑可以将LFNST应用于相应分区块中的每个。另外,当ISP预测模式仅应用于特定分量(例如,亮度块)时,应该基于编译单元被划分成仅针对对应的分量的分区块的事实而用信号发送LFNST索引。下文将描述可用于ISP模式的LFNST索引信令方法。
1.可以针对每个编译单元(CU)发送一次LFNST索引,并且在双树的情况下,可以针对亮度块和色度块中的每个单独地用信号发送LFNST索引。
2.当未用信号发送LFNST索引时,LFNST索引被推断为0,其是默认值。下文将描述LFNST索引值被推断为0的情况。
A.当模式与其中不应用变换的模式(例如,变换跳过、BDPCM、无损编译等)相对应时。
B.当编译单元的亮度块的水平长度或垂直长度超过可用于变换的最大亮度变换大小时,例如,当可用于变换的最大亮度变换大小等于64时,并且当编译块的亮度块的大小等于128×16时,不能应用LFNST。
可以基于分区块而不是编译单元的大小来确定是否执行用信号发送LFNST索引。也就是说,当对应亮度块的分区块的水平长度或垂直长度超过可用于变换的最大亮度变换大小时,可以跳过(或省略)LFNST索引信令,并且可以将LFNST索引值推断为0。
在双树中,确定用于亮度分量的编译单元或分区块和用于色度分量的编译单元或分区块中的每个是否超过最大变换块大小。即,当用于亮度的编译单元或分区块的宽度和长度中的每个与最大亮度变换大小进行比较并且甚至其中之一大于最大亮度变换大小时,不应用LFNST。在用于色度的编译单元或分区块中,将根据颜色格式的相应亮度块的宽度/长度与用于最大变换的最大亮度变换大小进行比较。例如,当颜色格式为4:2:0时,相应亮度块的宽度/长度是色度块的2倍,并且相应亮度块的最大变换大小是色度块的最大变换大小的2倍。在另一示例中,当颜色格式为4:4:4时,相应亮度块的宽度/长度和变换大小与色度块的宽度/长度和变换大小相同。
在单树的情况下,在检查亮度块(编译单元或分区块)的水平长度或垂直长度是否超过可用于变换的最大亮度变换块大小之后,当长度超过变换块大小时,可以跳过(或省略)LFNST索引信令。
C.如果应用包括在当前VVC标准中的LFNST,则仅当分区块的水平长度和垂直长度都等于4或更大时,才可以发送LFNST索引。
除了包括在当前VVC标准中的LFNST之外,如果应用用针对2×M(1×M)或M×2(M×1)块的LFNST,则可以仅在分区块大小等于或大于2×M(1×M)或M×2(M×1)块的情况下发送LFNST索引。在本文中,当P×Q块等于或大于R×S块时,这意指P≥R且Q≥S。
总之,可以仅针对分区块大小等于或大于可以应用LFNST的最小大小的情况来发送LFNST索引。在双树的情况下,可以仅在亮度分量或色度分量的分区块的大小等于或大于可以应用LFNST的最小大小的情况下用信号发送LFNST索引。在单树的情况下,可以仅在亮度分量的分区块的大小等于或大于可以应用LFNST的最小大小的情况下用信号发送LFNST索引。
在本说明书中,当M×N块等于或大于K×L块时,这意指M等于或大于K且N等于或大于L。当M×N块大于K×L块时,这意指M等于或大于K且N等于或大于L,同时M大于K或N大于L。当M×N块小于或等于K×L块时,这意指M小于或等于K且N小于或等于L。并且,当M×N块小于K×L块时,这意指M小于或等于K且N小于或等于L,同时M小于K或N小于L。
D.当最后非零系数位置不是DC位置(块中的左上位置)时,如果块是双树类型亮度块并且甚至针对所有分区块之一的相应最后非零系数位置不是DC位置,则可以发送LFNST索引。如果块是双树类型色度块并且甚至用于Cb的所有分区块的最后非零系数位置(当不对色度分量应用ISP模式时,假设分区块的数目等于1)和用于Cr的所有分区块的最后非零系数位置(当不对色度分量应用ISP模式时,假设分区块的数目等于1)之一不是DC位置,则可以发送相应LFNST索引。
在单树类型的情况下,对于亮度分量、Cb分量和Cr分量中的任意一者,如果甚至所有分区块中的一个的对应的最后非零系数位置也不是DC位置,则可以发送LFNST索引。
在此,当指示每个分区块的变换系数的存在或不存在的编译块标志(CBF)值等于0时,为了确定是否执行LFNST索引信令,不检查相应分区块的最后非零系数位置。也就是说,当对应的CBF值等于0时,由于变换未应用于对应块,因此当检查针对LFNST索引信令的条件时,不考虑相应分区块的最后非零系数位置。
例如,1)在双树类型和亮度分量的情况下,如果用于每个分区块的相应CBF值等于0,则当确定是否执行用信号发送LFNST索引时排除分区块;2)在双树类型和色度分量的情况下,如果用于Cb的CBF值等于0并且用于Cr的CBF值等于1,则仅检查用于Cr的最后非零系数位置,以便确定是否执行用信号发送相应LFNST索引;以及3)在单树类型的情况下,通过仅检查针对亮度分量、Cb分量或Cr分量的所有分区块的用于具有CBF值为1的块的最后非零系数位置,可以确定是否执行用信号发送LFNST索引。
在ISP模式的情况下,图像信息可以被配置成使得不检查最后非零系数位置,并且下面将描述对应的实施例。
i.在ISP模式的情况下,跳过对亮度块和色度块这两者的最后非零系数位置的检查,并且可以授权LFNST索引信令。也就是说,即使针对所有分区块的最后非零系数位置是DC位置或相应CBF值是0,也可以允许LFNST索引信令。
ii.在ISP模式的情况下,仅跳过对亮度块的最后非零系数位置的检查,并且对于色度块,可以执行根据上述方法的最后非零系数位置的检查。例如,在双树类型和亮度块的情况下,不执行最后非零系数位置的检查,并且可以授权LFNST索引信令。并且,在双树类型和色度块的情况下,根据上述方法检查与最后非零系数位置相对应的DC位置的存在或不存在,以便确定是否执行相应LFNST索引的信令。
iii.在ISP模式和单树类型的情况下,可以应用方法编号i和方法编号ii。也就是说,在将方法编号i应用于ISP模式和单树类型的情况下,可以跳过对亮度块和色度块二者的最后非零系数位置的检查,并且可以授权LFNST索引信令。可替选地,通过应用方法数量ii,可以跳过对亮度分量的分区块的最后非零系数位置的检查,并且可以根据上述方法执行对色度分量的分区块的最后非零系数位置的检查(当ISP模式未应用于色度分量时,可以给出分区块的数量等于1),以便于确定是否执行用信号发送相应LFNST索引。
E.例如,当验证变换系数存在于除了即使对于所有分区块中的一个分区块也可能存在LFNST变换系数的位置之外的位置中时,可以跳过(或省略)LFNST索引信令。
例如,在4×4分区块和8×8分区块的情况下,根据VVC标准的变换系数扫描顺序,LFNST变换系数可以存在于从DC位置开始的8个位置中,并且所有剩余位置可以用0填充。另外,在分区块等于或大于4×4的情况下,并且在分区块不是4×4分区块和8×8分区块的情况下,根据VVC标准的变换系数扫描顺序,LFNST变换系数可以存在于从DC位置开始的16个位置中,并且所有剩余位置可以用0填充。
因此,在执行残差编译之后,当非零变换系数存在于应仅填充有0值的区域中时,可以跳过(或省略)LFNST索引信令。
同时,在ISP模式的情况下,在当前VVC标准中,通过独立地(或单独地)参考水平方向和垂直方向的长度条件,应用DST-7而不是DCT-2,而不执行针对MTS索引的信令。取决于水平或垂直长度是否等于或大于4且小于或等于16,确定初级变换核。因此,在ISP模式的情况下,并且当可以应用LFNST时,可以如下文所描述的来配置以下变换组合。
1.对于LFNST索引为0的情况(包括LFNST索引被推断为0的情况),可以遵循用于确定与包括在当前VVC标准中的ISP模式相对应的初级变换的条件。也就是说,通过独立地(或单独地)检查是否满足水平方向和垂直方向的长度条件(即,长度等于或大于4且小于或等于16的条件),如果满足长度条件,则将DST-7而不是DCT-2应用于初级变换。并且,如果不满足长度条件,则可以应用DCT-2。
2.对于LFNST索引大于0的情况,以下两种配置对于初级变换可以是可能的。
A.DCT-2可以应用于水平方向和垂直方向二者。
B.可以遵循用于确定与包括在当前VVC标准中的ISP模式对应的初级变换的条件。也就是说,通过独立地(或单独地)检查是否满足水平方向和垂直方向的长度条件(即,长度等于或大于4且小于或等于16的条件),如果满足长度条件,则应用DST-7而不是DCT-2。并且,如果不满足长度条件,则可以应用DCT-2。
在ISP模式的情况下,图像信息可以被配置成使得可以针对每个分区块发送LFNST索引,而不是针对每个编译单元发送。在这种情况下,上述LFNST索引信令方法假设在通过其发送LFNST索引的单元内仅存在一个分区块,并且可以确定是否执行用信号发送LFNST索引。
根据一个实施例,可以使用块差分脉码调制或基于块的增量脉码调制(BDPCM)方案。BDPCM也可以称为基于量化残差块的增量脉码调制(RDPCM)。
当通过应用BDPCM来预测块时,重构样本被用于逐线预测块的行或列。这里,使用的参考像素可以是未过滤的样本。BDPCM方向可以指示是否使用垂直方向或水平方向预测。预测误差在空间域中被量化,并且通过将解量化的预测误差添加到预测来重构像素。作为此BDPCM的替代方案,可以提出量化的残差域BDPCM,其中预测方向或信令可以与应用于空间域的BDPCM中的相同。即,如在增量脉码调制(DPCM)中那样,可以通过量化的残差域BDPCM来累积量化系数本身,在其之后可以通过解量化来重构残差。因此,量化的残差域BDPCM可以在残差编译阶段中应用DPCM的意义上使用。本公开中使用的量化的残差域指示基于预测导出的残差在没有变换的情况下被量化,并且指的是用于量化的残差样本的域。
根据示例,是否应用基于块的增量脉码调制(BDPCM)模式可以在如表3所示的编译单元的语法表中被用信号发送。
[表3]
Figure BDA0003806306420000591
Figure BDA0003806306420000601
在表3中,intra_bdpcm_luma_flag是指示BDPCM是否应用于编译单元的亮度分量的标志,并且intra_bdpcm_chroma_flag是指示BDPCM是否应用于编译单元的色度分量的标志。标志值为1指示应用BDPCM,并且标志值为0指示不应用BDPCM。变量BdpcmFlag[x][y][cIdx]的值根据intra_bdpcm_luma_flag和intra_bdpcm_chroma_flag的值被确定,如表4所示。
[表4]
Figure BDA0003806306420000611
在表4的BdpcmFlag[x][y][cIdx]中,x的值是基于亮度图片的左上水平坐标(x坐标)位置的x坐标(水平像素位置)值作为参考(设置为0),并且x坐标从左到右增加。在表4的BdpcmFlag[x][y][cIdx]中,y的值是基于亮度图片的左上垂直坐标(y坐标)位置的y坐标(垂直像素位置)值作为参考(设置为0),并且y坐标从上到下增加。
在表4的BdpcmFlag[x][y][cIdx]中,cIdx的值指示颜色分量(Y、Cb或Cr),0指示亮度分量,并且1和2指示色度分量(1用于Cb,并且2用于Cr)。在表4中,即使cIdx的值是色度分量而不是0,x坐标和y坐标也是基于亮度图片来表达的。例如,当色度分量的水平分辨率比亮度分量的水平分辨率低两倍时(例如,当用于图片的颜色格式为4:2:0或4:2:2时),用于色度图片的实际x坐标值是基于亮度图片的相应坐标的一半。
在表4中,cbWidth和cbHeight分别指示基于亮度分量的编译块的宽度和长度。类似地,当色度分量的水平(垂直)分辨率比亮度分量低两倍时,相应色度编译块的实际宽度(长度)为亮度编译块的一半。
在表4中,x0和y0分别指示当亮度图片的左上位置被设置为0时亮度编译块中的左上位置的x坐标值和y坐标值。这里,当转换为亮度分量时,色度编译块对应于并置的亮度位置。
如表4所示,因为用于两个色度分量(Cb和Cr)的所有BdpcmFlag[x][y][cIdx]值都设置为intra_bdpcm_chroma_flag,当intra_bdpcm_chroma_flag的值为1时,BDPCM可以应用于当前编译的编译单元的两个色度分量(Cb和Cr)这两者。
如表5所示,当BDPCM被应用于每个分量时,用于该分量的变换跳过标志(transform_skip_flag)的值被推断为1。
[表5]
Figure BDA0003806306420000621
Figure BDA0003806306420000631
在表5中,transform_skip_flag[x0][y0][cIdx]是指示编译块是否用变换跳过编译的标志。标志值为1指示变换跳过被应用,并且标志值为0指示不应用变换跳过。这里,x0、y0、cIdx的含义也在表5中被指定,并且参考表4进行了描述。
在表5中,当BdpcmFlag[x0][y0][cIdx]的值为1时,transform_skip_flag[x0][y0][cIdx]被推断为1(即,当BPPCM被应用于由cIdx指定的分量时,用于分量的变换跳过标志被设置为1),并且如表4所示,因为用于两个色度分量(Cb和Cr)的所有BdpcmFlag[x0][y0][cIdx]值都设置为intra_bdpcm_chroma_flag,对于将BDPCM应用于色度分量的情况,用于两个色度分量的transform_skip_flag[x0][y0][cIdx]值被相等地设置为1。
表6是用于变换单元的语法表,其示出了transform_skip_flag[x0][y0][cIdx]的信令或解析以及用于每个颜色分量的变换块的编译块标志(CBF)值。
[表6]
Figure BDA0003806306420000641
Figure BDA0003806306420000651
在表6中,当用信号发送作为用于亮度分量的CBF的tu_y_coded_flag[x0][y0](或者能够表达为tu_cbf_luma[x0][y0])和作为用于色度分量的CBF的tu_cb_coded_flag[xC][yC](用于Cb分量的CBF或者tu_cbf_cb[xC][yC])和tu_cr_coded_flag[xC][yC](用于Cr分量的CBF或者tu_cbf_cr[xC][yC])时,不检查是否BDPCM被应用于每个分量。即,不检查BdpcmFlag[x][y][cIdx]的值。
这里,编译块标志(CBF)指示变换块中是否存在变换系数,其中值1指示存在变换系数,并且值0指示不存在变换系数。因此,即使将BDPCM应用于每个分量,相应的CBF值也可以为0。
根据BDPCM操作方法,通过根据所选方向(VVC中的水平或垂直方向,由表4中的用于亮度分量的intra_bdpcm_luma_dir_flag指定,并由色度分量的intra_bdpm_chroma_dir_flag指定)累积以用于每个位置的变换系数形式发送的值来重构残差信号。这里,CBF值为0可以被认为在操作方面与在没有残差信号的一般帧内预测方法中的相同。
然而,当CBF值为0时,就RD成本而言,用信号发送intra_bdpcm_luma_flag、intra_bdpcm_luma_dir_flag、intra_bdpcm_chroma_flag和intra_bdpcm_chroma_dir_flag的BDPCM模式可以比帧内预测编译更有利。因此,当CBF值为0时,可能在BDPCM模式中执行编译,并且因此即使在BDPCM模式中也可以存在CBF值为0的情况。
LFNST索引(lfnst_idx)可以在表3的编译单元中用信号发送,并且如表3所示,LFNST索引可以仅在变量lfnstNotTsFlag的值为1时用信号发送。在表3中,当用于多个分量的变换跳过标志中的任何一个为1时,lfnstNotTsFlag的值被设置为1。也就是说,只有当属于当前编译单元的所有分量的所有变换跳过标志值都为0时,变量lfnstNotTsFlag才可以被设置为1。
如表3所示,在单树中,只有当用于亮度分量和色度分量这两者的变换跳过标志均为0时,lfnstNotTsFlag的值才可以为1,在亮度分离树(DUAL_TREE_LUMA)中,当只有用于亮度分量的变换跳过标志为0时,变量lfnstNotTsFlag的值可以为1,并且在色度分离树(DUAL_TREE_CHROMA)中,仅当在用于Cb分量和Cr分量的所有变换跳过标志都是0时,变量lfnstNotTsFlag的值可以是1。
如上所述,当BDPCM模式被应用于分量并且CBF值为0时,用于该分量的变换跳过标志可以被推断为1。然而,因为对于该分量不存在变换系数,所以分量与变换过程无关。该分量与变换过程无关,并且因此需要与LFNST索引的信令无关。然而,在这种情况下,在表3中,因为用于该分量的变换跳过标志被推断为1并且因此lfnstNotTsFlag的值被设置为0,所以LFNST索引不被用信号发送。为了具体说明,可以例示以下情况。
1.在色度分离树中,如果与表3不同,针对Cb分量和Cr分量中的每个,存在指示是否BDPCM被应用的单独标志(例如,如果存在intra_bdpcm_cb_flag和intra_bdpcm_cr_flag而不是表3中的intra_bdpcm_chroma_flag),则当BDPCM被应用于Cb分量或Cr分量并且用于相应变换块的CBF值为0时,用于Cb分量或Cr分量的变换跳过标志也为1,并且因此表3中的lfnstNotTsFlag的值为0。因此,LFNST索引不被用信号发送。
然而,当BDPCM被应用于Cr分量或Cb分量,用于剩余分量的CBF值不为0,并且用于剩余分量的变换跳过标志的值为0时,LFNST可以被应用于剩余分量,并且因此允许用信号发送LFNST索引是可取的。
然而,如表3所示,如果指示BDPCM是否应用于Cb分量和Cr分量的标志与intra_bdpcm_chroma_flag相同,则当intra_bdpcm_chroma_flag为1时,BDPCM同时被应用于Cb分量和Cr分量。因此,BDPCM应用于Cr分量或Cb分量、用于剩余分量的CBF值不为0、并且用于剩余分量的变换跳过标志值为0的情况不会发生,并且LFNST索引不被用信号发送。
2.在单树中,当BDPCM被应用于Y、Cb和Cr的任一分量并且用于相应变换块的CBF值为0时,用于该分量的变换跳过标志值也为1,并且因此lfnstNotTsFlag的值为0。
然而,当用于剩余两个分量中任何一个分量的CBF值不为0并且用于分量的变换跳过标志值为0时,LFNST可以被应用于分量,并且因此允许用信号发送LFNST索引是可取的。
如表3所示,假定BDPCM是否应用于亮度分量(Y)由intra_luma_bdpcm_flag确定(当intra_luma_bdpcm_flag的值为1时,应用BDPCM,并且当intra_luma_bdpcm_flag的值为0时,BDPCM不被应用)并且BDPCM是否被应用于两个色度分量(Cb和Cr)由intra_chroma_bdpcm_flag确定(当intra_chroma_bdpcm_flag的值为1时,应用BDPCM,并且当intra_chroma_bdpcm_flag的值为0时,不应用BDPCM)。
在这种情况下,当在单树中执行编译时,(1)在将BDPCM应用于亮度分量,相应CBF值为0,并且剩余两个色度分量中的任何一个的相应CBF值不为0,并且用于分量的变换跳过标志值为0的情况下,可以将LFNST应用于色度分量。然而,当BDPCM应用于亮度分量并且相应CBF值为0时,在当前VVC标准中只有用于两个色度分量的所有变换跳过标志值都为0时,才能用信号发送LFNST索引,并且为此,BDPCM无法被应用于两个色度分量。另外,在当前的VVC标准中,因为LFNST仅被应用于单树中的亮度分量,所以在单树中执行编译时,LFNST不被应用于色度分量。
(2)在单树中编译的不同情况下,其中BDPCM被应用于两个色度分量并且用于两个色度分量的CBF值为0,当用于亮度分量的CBF值不为0并且其变换跳过标志值为0时,LFNST可以被应用于亮度分量。即,即使不对亮度分量应用变换跳过、对两个色度分量应用BDPCM、并且色度分量的所有CBF值都是0,也可以用信号发送用于亮度分量的LFNST索引。
因此,当表3中的变量lfnstNotTsFlag被设置为如表7和表8中所示时,可以在两种情况((1)和(2))中用信号发送LFNST索引。
[表7]
Figure BDA0003806306420000691
[表8]
Figure BDA0003806306420000692
如表7和表8所示,当用于分量的CBF值为0时,用于该分量的变换跳过标志值即使是任何值也无关紧要,并且因此无助于将lfnstNotTsFlag的值改变为0。
换言之,当用于属于编译单元的所有分量的CBF值为0或者其变换跳过标志值为0时,lfnstNotTsFlag的值可以被设置为1。
在表7中,取决于单树、亮度分离树和色度分离树,配置检查条件的不同分量。即,针对单树中的Y/Cb/Cr,针对亮度分离树中的仅Y,并且针对色度分离树中的Cb和Cr,检查CBF值或变换跳过标志值,并且针对表8中的所有分量进行检查。
在表8中,假定对于与当前编译单元不相关联的分量,CBF或变换跳过标志被推断为0。即,在亮度分离树中,tu_cb_coded_flag[x0][y0]或者transform_skip_flag[x0][y0][1]需要被推断为0,并且tu_cr_coded_flag[x0][y0]或者transform_skip_flag[x0][y0][2]需要被推断为0。在色度分离树中,tu_y_coded_flag[x0][y0]或transform_skip_flag[x0][y0][0]需要被推断为0。
在当前的VVC标准中,LFNST可以被应用于对其应用ISP模式的编译块。当应用ISP模式并因此将Y分量的编译块分割成N(N=2或4)个分区块时,每个分区块都具有CBF值。即,针对每个分区块用信号发送tu_y_coded_flag。
在当前VVC标准中应用ISP模式时,保证分区块中的至少一个具有的CBF为1,并且具有CBF为1的分区块之一不一定需要是编译顺序中的第一分区块。
当应用ISP时,因为表7和表8中的x0和y0是编译单元的x坐标和y坐标,所以表7和表8中的tu_y_coded_flag[x0][y0]是用于第一分区块的CBF。
因此,当应用ISP模式时,不可能仅通过表7和表8中的条件“!tu_y_coded_flag[x0][y0]”来检查变换系数是否存在于亮度编译块中。
根据示例,当应用ISP模式时,表7和表8可以分别描述为表9和表10,以反映无法清楚地检查变换系数是否存在于亮度编译块的情况。在表9和表10中,条件“IntraSubPartitionsSplitType==ISP_NO_SPLIT”指示不应用ISP模式的情况。
[表9]
Figure BDA0003806306420000701
[表10]
Figure BDA0003806306420000711
然而,因为在当前VVC标准中应用ISP模式时不能应用变换跳过,所以除非满足条件“transform_skip_flag[x0][y0][0]==0”,否则不应用ISP模式。
当在逻辑上满足表7的条件“!tu_y_coded_flag[x0][y0]||transform_skip_flag[x0]][y0][0]==0”中的“!tu_y_coded_flag[x0][y0]”和“transform_skip_flag[x0][y0][0]==0”中的唯一一个时,条件为真,并且因此只有在不满足“transform_skip_flag[x0][y0][0]==0”时检查“!tu_y_coded_flag[x0][y0]”才有意义。
然而,如上所述,当“transform_skip_flag[x0][y0][0]==0”不被满足时,可以肯定的是不应用ISP模式,并且因此当检查“!tu_y_coded_flag[x0][y0]”时不需要考虑是否应用了ISP模式。因此,表7和表8被认为仍然有效。
根据示例,在当前VVC中,LFNST 1)可以在亮度分离树中应用,2)可以在色度分离树中应用,以及3)可以仅应用于单树中的亮度分量。如上所述,因为对应用了BDPCM并且CBF为0的分量不应用变换,所以可以认为该分量与LFNST无关。
在亮度分离树或单树中,当BDPCM被应用于亮度分量并且CBF为0时,LFNST根本不被应用,并且因此不需要检查用于亮度分量的CBF值。因此,在亮度分离树和单树中,在不检查用于亮度分量的CBF值的情况下可以如表11或表12所示导出lfnstNotTsFlag。
[表11]
Figure BDA0003806306420000721
[表12]
Figure BDA0003806306420000722
当应用表11或表12时,在应用BDPCM和LFNST的所有情况下的操作描述如下。
1.BDPCM不被应用于亮度并且BDPCM不被应用于色度:执行与当前VVC标准,即表3中相同的操作。
2.BDPCM应用于亮度并且BDPCM不应用于色度
2-1)亮度分离树:执行与当前VVC标准,即表3中相同的操作。即,在用于亮度分量的CBF为0和用于亮度分量的CBF为1的两种情况下,LFNST索引被推断为0而无需被用信号发送。
2-2)色度分离树:执行与当前VVC标准,即表3中相同的操作。
2-3)单树:执行与当前VVC标准,即表3中相同的操作,因为表12中不检查用于亮度分量的CBF。
3.BDPCM不应用于亮度并且BDPCM应用于色度
3-1)亮度分离树:执行与当前VVC标准,即表3中相同的操作。
3-2)色度分离树:当用于Cb分量和Cr分量两者的CBF值为0时,LFNST索引被推断为0而无需被用信号发送,并且因此执行与当前VVC标准,即表3中相同的操作。
3-3)单树:即使用于Cb分量和Cr分量的CBF值为0,BDPCM也不应用于亮度分量,并且因此能够应用LFNST。因此,可以用信号发送LFNST索引。然而,在当前的VVC标准中,在这种情况下不应用LFNST。
4.BDPCM应用于亮度并且BDPCM应用于色度:因为BDPCM应用于亮度分量,相应变换跳过标志为1,并且lfnstNotTsFlag的值为0,并且因此不用信号发送LFNST索引。最终,执行与当前VVC标准,即表3中相同的操作。
如上面所提及的,根据当前的VVC标准,在亮度分离树和单树中,LFNST可以仅应用于亮度分量。在亮度分离树中,当用于亮度分量的CBF值为0时,变量LfnstDcOnly的值在表3中保持为1,并且因此LFNST索引被推断为0而无需被用信号发送。
然而,在单树中,即使用于亮度分量的CBF值为0,当LfnstDcOnly的值被色度分量更新为0(在执行相应的残差编译,并且因此最后非零变换系数存在于DC位置之外时,LfnstDcOnly的值被更新为0),并且当相对于色度分量满足用于LFNST的清零条件并且因此LfnstZeroOutSigCoeffFlag的值保持为0(作为变换系数仅存在于其中当应用正向LFNST时变换系数能够存在的区域中的情况,在变换块的大小是4×4和8×8的情况下,根据正向扫描顺序,变换系数可以存在于从DC位置到第八位置的位置处,并且在其他情况下,变换系数可以存在于TB的左上4×4区域。这里,DC位置指的是变换块的左上位置)时,可以用信号发送LFNST索引。
因此,在当前的VVC标准中,在单树中,即使用信号发送LFNST索引,用于亮度分量的CBF值为0,并且结果LFNST不应用于任何分量,并且因此LFNST索引可以被冗余地用信号发送。
通过如表13中所示修改表3中设置的变量lfnstNotTsFlag的值,LFNST索引可以被配置为在单树中用于亮度分量的CBF值为0时被推断为0而无需被用信号发送。
这里,表13中的条件“IntraSubPartitionsSplitType!=ISP_NO_SPLIT”指示ISP模式被应用。如上所述,当ISP模式被应用时,用于至少一个分区块的CBF不为0,并且按照编译顺序,tu_y_coded_flag[x0][y0]仅是用于第一分区块的CBF,并且因此仅在条件“IntraSubPartitionsSplitType!=ISP_NO_SPLIT”独立分离并且未应用ISP模式时检查tu_y_coded_flag[x0][y0]。
[表13]
Figure BDA0003806306420000741
如表7至表10所示,当即使在应用BDPCM且CBF值为0时也允许用信号发送LFNST索引时(即,在这种情况下被视为未应用变换的变换块),变量lfnstNotTsFlag可以被设置为如表14所示。
[表14]
Figure BDA0003806306420000751
当应用表14时,1)在亮度分离树中,仅在用于亮度分量的CBF值为1时用信号发送LFNST索引,与表3中相同,并且2)在色度分离树中,如当表7至表12所示,用于色度分量(Cb和Cr)的所有CBF值都为0时,不用信号发送LFNST索引,例如,当应用BDPCM并且用于Cb分量和Cr分量的所有CBF值时为0。此外,3)在单树中,当用于亮度分量的CBF值为1时用信号发送LFNST索引并且3-1)变换跳过不应用于Cb分量和Cr分量这两者或3-2)当BDPCM应用于色度分量时,用于Cb分量和Cr分量的所有CBF值为0。
在下文中,将描述当应用BDPCM模式时用于变换块的CBF值被推断为1并且照原样使用现有LFNST索引信令方法的实施例。
当每个颜色分量在BDPCM模式中被编译时,表3中提出的LFNST索引信令方法,即用于变量lfnstNotTsFlag的现有设置,可以通过推断用于分量的CBF值为1来照原样使用。根据本实施例,用于表6的变换单元的语法表可以被改变,如表15所示。
[表15]
Figure BDA0003806306420000761
Figure BDA0003806306420000771
如表3所示,因为ISP和BDPCM是互斥的,即,只有在intra_bdpcm_luma_flag为0时才可以解析intra_subpartitions_mode_flag[x0][y0],因此当BDPCM被启用时ISP不被启用,并且当ISP被启用时BDPCM不被启用。在表15中,条件“IntraSubPartitionsSplitType!=ISP_NO_SPLIT”指示ISP模式被应用,并且条件!BdpcmFlag[x0][y0][0]可以被表达为如表16中所示。
[表16]
Figure BDA0003806306420000772
除了表15之外,当应用BDPCM时相应的CBF值被推断为1的内容可以反映在CBF的规范文本中(表17)。
[表17]
Figure BDA0003806306420000781
当BDPCM被应用于当前编译的编译单元的色度时,联合Cb-Cr可以照原样启用或者可以被禁用。在表15中,用信号发送作为指示是否启用联合Cb-Cr的语法元素的tu_joint_cbcr_residual_flag[xC][yC]。
如表17所示,当BDPCM应用于色度分量时(即,当BdpcmFlag[x0][y0][1]和BdpcmFlag[x0][y0][2]都是1时),如果用于Cb分量和Cr分量的CBF值被推断为1,仅当tu_cb_coded_flag[xC][yC]和tu_cr_coded_flag[xC][yC]都是1时,才可以应用联合Cb-Cr。表18示出与联合Cb-Cr操作相关的规范文本。
[表18]
Figure BDA0003806306420000791
Figure BDA0003806306420000801
Figure BDA0003806306420000802
Figure BDA0003806306420000811
如表18所示,当应用联合Cb-Cr模式时,用于色度分量之一的变换系数被用信号发送并被编译,即,由表18中的codedCIdx指定的分量被编译。codedCIdx可以具有1或2的值,其中1指示Cb分量并且2指示Cr分量。这里,用于其他分量的残差数据被确定为编译分量的残差数据的值乘以cSign的值,并且然后向右移位1或不移位。
当BDPCM应用于色度分量时,因为TuCResMode[x0][y0]的值被确定为2,如表18所示,其他分量的残差数据被确定为没有向右移位1的值(resSamples[x][y]=cSign*res[x][y])并且基于语法元素ph_joint_cbcr_sign_flag将cSign的值确定为(1-2*ph_joint_cbcr_sign_flag)。
此外,如表19中所示,当BDPCM不应用于色度分量时,可以不应用联合Cb-Cr模式。在表19中,仅改变表15中的信令tu_joint_cbcr_residual_flag[xC][yC]的一部分。即,当BDPCM不应用于色度分量时,联合Cb-Cr模式被限制为不被应用。
[表19]
Figure BDA0003806306420000821
使用变量BdpcmFlag[x0][y0][1]和变量BdpcmFlag[x0][y0][2]变量,以与表19中相同的方式操作的语法信息可以被配置,如表20中所示。
[表20]
Figure BDA0003806306420000822
根据示例,当应用BDPCM模式时,可以指配比特流一致性约束以将用于相应变换块的CBF值作为1用信号发送。
当应用BDPCM模式并且CBF值为0时,相应分量的变换跳过标志被推断为1。在这种情况下,即使分量由于不存在变换系数而与变换过程无关,变换跳过标志被推断为1,并且因此不用信号发送LFNST索引。为了防止这个问题,当应用BDPCM模式时,可以指配比特流一致性约束以将相应变换块的CBF值作为1用信号发送。
表21示出比特流一致性约束被添加到用于每个CBF的语义中。
[表21]
Figure BDA0003806306420000831
提供以下附图以描述本公开的具体示例。由于为图示提供附图中所示的用于装置的特定术语或用于信号/消息/字段的特定术语,因此本公开的技术特征不限于以下附图中使用的特定术语。
图15是图示根据本公开的实施例的视频解码设备的操作的流程图。
图15中公开的每个过程基于参考图5至图14描述的一些细节。因此,与参考图3和图5至图14描述的那些重叠的具体细节的描述将被省略或将被示意性地进行。
根据实施例的解码设备300可以从比特流接收残差信息(S1510)。
具体地,解码设备300可以从比特流解码关于用于当前块的量化变换系数的信息,并且可以基于关于用于当前块的量化变换系数的信息来导出用于目标块的量化变换系数。关于用于目标块的量化变换系数的信息可以被包括在序列参数集(SPS)或切片报头中,并且可以包括关于是否应用RST的信息、关于缩减因子的信息、关于用于应用RST的最小变换大小的信息、关于用于应用RST的最大变换大小的信息、逆RST大小、以及关于指示在变换集中包括的任何一个变换核矩阵的变换索引的信息中的至少一个。
解码设备可以进一步接收关于用于当前块的帧内预测模式的信息和关于是否将ISP应用于当前块的信息。解码设备可以接收并且解析指示是否应用ISP编译或应用ISP模式的标志信息,从而导出当前块是否被分割成预定数量的子分区变换块。这里,当前块可以是编译块。此外,解码设备可以通过指示当前块被分割的方向的标志信息来导出分割的子分区块的大小和数量。
根据示例,可以通过比特流接收LFNST索引。LFNST索引是用于当LFNST被应用作为逆次级不可分离变换时指定LFNST矩阵的值,并且可以具有范围从0到2的值。例如,LFNST索引值0可以指示没有对当前块应用LFNST,LFNST索引值1可以指示第一LFNST矩阵,并且LFNST索引值2可以指示第二LFNST矩阵。
关于ISP和LFNST索引的信息可以在编译单元级别中被接收。
解码设备300可以通过基于残差信息执行解量化来导出用于当前块的变换系数(S1520)。
这里,当前块可以是变换块,其是变换单元,并且在当前块的树类型为单树时,当前块可以包括用于亮度分量的变换块、用于第一色度分量的变换块、以及用于第二色度分量的变换块。在当前块的树类型为双树亮度时,当前块可以包括用于亮度分量的变换块,并且在当前块的树类型为双树色度时,当前块可以包括用于第一色度分量的变换块和用于第二色度分量的变换块。
导出的变换系数可以根据反向对角扫描顺序被排列在4×4块单元中,并且4×4块中的变换系数也可以根据反向对角扫描顺序被排列。也就是说,解量化的变换系数可以根据在视频编解码器中应用的反向扫描顺序被排列,诸如在VVC或HEVC中。
解码设备可以基于当前块的树类型和用于当前块的每个分量的变换系数编译标志或用于当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量(S1530)。
LFNST应用变量可以是标志变量,例如,lfnstNotTsFlag,并且lfnstNotTsFlag可以基于当前块的树类型和用于当前块的每个分量的变换系数编译标志或用于当前块的每个分量的变换跳过标志被导出。LFNST应用变量等于1指示LFNST适用,并且LFNST应用变量等于0指示没有LFNST适用。也就是说,当LFNST应用变量为1时,可以解析LFNST索引,并且当LFNST应用变量为0时,可以不解析LFNST索引。
变换系数编译标志指的是指示是否存在用于变换块的变换系数的CBF,其中当CBF等于1时,其指示存在用于变换块的变换系数,可以执行变换过程,并且当CBF等于0时,不执行任何变换过程。
根据示例,可以基于用于当前块的所有分量的变换系数编译标志为0,将LFNST应用变量的值导出为1。在这种情况下,将LFNST应用变量的值设置为1,但是当CBF为0时,不执行实际的变换过程并且不导入残差编译,并且因此后述的变量LfnstDcOnly不更新为0。即,在用于当前块的所有分量的变换系数编译标志为0时,不应用LFNST。
根据示例,可以基于用于当前块的所有分量的变换跳过标志为0,将LFNST应用变量的值设置为1。也就是说,当变换跳过不被应用于当前块的所有分量时,可以应用LFNST。
根据示例,在当前块的树类型是单树时,BDPCM模式可以应用于亮度分量和色度分量中的每个。也就是说,BDPCM模式可以应用于亮度分量并且可以不应用于色度分量。相反,BDPCM模式可以被应用于色度分量,并且可以不被应用于亮度分量。
根据当前标准,在单树中,LFNST可以仅应用于亮度分量而不应用于色度分量。这里,对于亮度分量,不应用BDPCM模式并且存在变换系数,并且因此可以执行变换(即,在BDPCM模式不被应用于亮度分量,CBF不为0,并且变换跳过标志不为0的情况下),并且存在BDPCM模式适用于色度分量的情况。当应用BDPCM模式时,变换跳过标志被推断为1。
传统上,当导出LFNST应用变量时,如果块中包括的任何一个分量的变换跳过标志为1,则LFNST应用变量被设置为0并且因此不解析LFNST索引。也就是说,在单树类型的情况下,即使LFNST适用于亮度分量,由于应用了BDPCM模式的色度分量,所以LFNST应用变量被设置为0(因为当应用BDPCM模式时变换跳过标志被推断为1)。
根据示例,当BDPCM模式被应用于特定块时,可以存在CBF为0的情况,并且因此可以利用这种情况解决上述问题。通过将CBF为0的条件添加到用于导出LFNST应用变量的条件,即使BDPCM模式被应用于色度分量,解码设备也可以将LFNST应用于亮度分量。
解码设备可以将用于导出LFNST应用变量的条件设置为“(treeType==DUAL_TREE_CHROMA||(!tu_y_coded_flag[x0][y0]||transform_skip_flag[x0][y0][0]==0))&&(treeType==DUAL_TREE_LUMA||((!tu_cb_coded_flag[x0][y0]||transform_skip_flag[x0][y0][1]==0)&&(!tu_cr_coded_flag[x0][y0]||transform_skip_flag[x0][y0][2]==0)))”。
根据条件,因为当前块的树类型是单树(“treeType==DUAL_TREE_CHROMA”不被满足,并且因此条件“(!tu_y_coded_flag[x0][y0]||transform_skip_flag[x0][y0][0]==0)”被检查)并且用于亮度分量的变换跳过标志为0,因此满足条件“transform_skip_flag[x0][y0][0]==0”。
此外,当BDPCM模式被应用于当前块的色度分量并且变换系数编译标志为0时,条件((!tu_cb_coded_flag[x0][y0]||transform_skip_flag[x0][y0][1]==0)&&(!tu_cr_coded_flag[x0][y0]||transform_skip_flag[x0][y0][2]==0)))被满足。也就是说,即使BDPCM模式被应用于色度分量并且因此变换跳过标志被推断为1,根据变换系数编译标志条件,LFNST应用变量的值也可以被设置为1,其指示LFNST索引能够被解析。
如上所述,通过改变用于设置LFNST应用变量的条件,能够解决当BDPCM模式应用于任何一个变换块时在不管CBF值的情况下LFNST都不应用于所有变换块的问题。此外,在检查用于确定是否解析LFNST索引的条件时,针对每个颜色分量一起检查变换跳过标志和CBF值。因此,当CBF值为0时,即使颜色分量中的任意一个处于BDPCM模式中,用于不同分量的LFNST索引的解析也不受影响。
解码设备可以基于LFNST应用变量的值来解析LFNST索引(S1540)。
解码设备可以基于LFNST应用变量的值为1来解析LFNST索引,并且可以导出除了LFNST应用变量之外的各种变量以解析LFNST索引。
例如,解码设备可以导出指示有效系数是否存在于当前块中除了DC分量的位置之外的位置处的第一变量(变量LfnstDcOnly)和指示是否变换系数存在于当前块的除了左上第一区域以外的第二区域中的第二变量(变量LfnstZeroOutSigCoeffFlag)。进一步地,解码装置可以基于当前块的树类型和大小来确定是否应用LFNST,即,是否解析LFNST索引。
第一变量和第二变量初始地被设置为1,其中,当有效系数存在于当前块中的DC分量的位置之外的位置处时,第一变量可以被更新为0,并且当变换系数存在于第二区域中时,第二变量可以被更新为0。
当第一变量被更新为0并且第二变量保持为1时,可以将LFNST应用于当前块。
对于帧内子分区(ISP)模式适用的亮度分量,可以解析LFNST索引而不导出变量LfnstDcOnly。
具体地,在应用ISP模式并且用于亮度分量的变换跳过标志(即,transform_skip_flag[x0][y0][0])为0的情况下,在当前块的树类型为单树或用于亮度的双树时,可以用信号发送LFNST索引,而不管变量LfnstDcOnly的值如何。
然而,对于未应用ISP模式的色度分量,可以根据用于色度分量Cb的变换跳过标志transform_skip_flag[x0][y0][1]的值和用于色度分量Cr的变换跳过标志transform_skip_flag[x0][y0][2]的值,将变量LfnstDcOnly的值设定为0。也就是说,当transform_skip_flag[x0][y0][cIdx]中的cIdx的值为1时,仅当transform_skip_flag[x0][y0][1]的值为0时,可以将变量LfnstDcOnly的值设置为0,并且当cIdx的值为2时,仅当transform_skip_flag[x0][y0][2]的值为0时,可以将变量LfnstDcOnly的值设置为0。当变量LfnstDcOnly的值为0时,解码设备可以解析LFNST索引,并且否则,可以将LFNST索引推断为0而无需被用信号发送。
第二变量可以是变量LfnstZeroOutSigCoeffFlag,其可以指示当应用LFNST时执行清零。第二变量可以被初始地设置为1,并且当有效系数存在于第二区域中时可以被改变为0。
当存在最后非零系数的子块的索引大于0并且变换块的宽度和高度都等于或大于4时,或者当存在最后非零系数的子块中的最后非零系数的位置大于7并且变换块的大小为4×4或8×8时,可以将变量LfnstZeroOutSigCoeffFlag导出为0。子块是指在残差编译中被用作编译单元的4×4块,并且可以被称为系数组(CG)。子块索引0是指左上4×4子块。
也就是说,当在除了其中在变换块中可以存在LFNST变换系数的左上区域之外的区域中导出非零系数,或者对于4×4块或8×8块在除了扫描顺序的第八位置之外的位置处存在非零系数时,变量LfnstZeroOutSigCoeffFlag被设置为0。
解码设备可以基于从关于帧内预测模式的信息导出的帧内预测模式来确定包括LFNST矩阵的LFNST集,并且可以基于LFNST集和LFNST索引来选择多个LFNST矩阵中的任何一个。
在此,相同的LFNST集和相同的LFNST索引可以被应用于当前块被划分成的子分区变换块。也就是说,由于相同的帧内预测模式被应用于子分区变换块,因此基于帧内预测模式确定的LFNST集也可以等同地应用于所有子分区变换块。另外,由于在编译单元级别中用信号发送LFNST索引,因此可以将相同的LFNST矩阵应用于当前块被划分成的子分区变换块。
如上所述,可以根据用于待变换的变换块的帧内预测模式来确定变换集,并且可以基于在由LFNST索引指示的变换集中包括的变换核矩阵(即,LFNST矩阵中的任何一个)来执行逆LFNST。应用于逆LFNST的矩阵可以被称为逆LFNST矩阵或LFNST矩阵,并且被称为任何术语,只要矩阵是用于正向LFNST的矩阵的转置。
在示例中,逆LFNST矩阵可以是非正方形矩阵,其中,列数小于行数。
解码设备可以基于LFNST索引和用于LFNST的LFNST矩阵,即,通过应用LFNST,从变换系数导出修改的变换系数(S1550)。
LFNST是一种不可分离变换,其中变换被应用于系数而不在特定方向中分离系数,这与垂直或水平分离要变换的系数并对其进行变换的初级变换不同。此不可分离变换可以是仅对低频区域而不是块的整个区域应用正向变换的低频不可分离变换。
解码设备可以基于修改的变换系数的初级逆变换来导出用于当前块的残差样本(S1560)。
这里,作为初级逆变换,可以使用一般的可分离变换,或者可以使用前述的MTS。
随后,解码设备300可以基于用于当前块的残差样本和用于当前块的预测样本来生成重构样本(S1570)。
提供以下附图以描述本公开的具体示例。因为在附图中图示的装置的特定术语或信号/消息/字段的特定术语是为了说明而提供的,所以本公开的技术特征不限于以下附图中使用的特定术语。
图16是图示根据本公开的实施例的视频编码设备的操作的流程图。
在图16中公开的每个过程基于参考图4至图14描述的一些细节。因此,与参考图2和图4至图14描述的那些重叠的具体细节的描述将被省略或将被示意性地进行。
根据实施例的编码设备200可以基于应用于当前块的帧内预测模式来导出用于当前块的预测样本(S1610)。
当ISP被应用于当前块时,编码设备可以通过每个子分区变换块来执行预测。
编码设备可以确定是否将ISP编译或者ISP模式应用于当前块,即,编译块,并且可以确定其中当前块被分割的方向,并且可以根据确定结果来导出分割的子块的大小和数量。
相同的帧内预测模式可以应用于当前块被分割成的子分区变换块,并且编码设备可以导出用于每个子分区变换块的预测样本。即,编码设备根据子分区变换块的分割形式,依次执行帧内预测,例如,水平或垂直,或从左到右或从上到下。对于最左边或最上面的子块,如在传统的帧内预测方法中,参考已经编译的编译块的重构像素。进一步地,对于与先前子分区变换块不相邻的后续内部子分区变换块的每个边,为了导出与该侧相邻的参考像素,如在传统的帧内预测方法中参考已经编译的相邻编译块的重构像素。
编码设备200可以基于预测样本来导出用于当前块的残差样本(S1620)。
编码设备200可以通过将LFNST或MTS中的至少一个应用于残差样本来导出用于当前块的变换系数,并且可以根据预先确定的扫描顺序来排列变换系数。
编码设备可以基于残差样本上的诸如初级变换和/或次级变换的变换过程来导出用于当前块的变换系数,并且在当前块的树类型是单树并且当前块是亮度分量时可以应用LFNST,并且在当前块的树类型是单树并且当前块是色度分量时可以不应用LFNST。
编码设备可以基于残差样本的初级变换来导出用于当前块的变换系数(S1630)。
初级变换可以通过多个变换核被执行,如在MTS中,在这种情况下,可以基于帧内预测模式来选择变换核。
编码设备200可以基于当前块的树类型和用于当前块的每个分量的变换系数编译标志或用于当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量(S1640)。
LFNST应用变量可以是标志变量,例如,lfnstNotTsFlag,并且lfnstNotTsFlag可以基于当前块的树类型和用于当前块的每个分量的变换系数编译标志或用于当前块的每个分量的变换跳过标志被导出。LFNST应用变量等于1指示LFNST适用,并且LFNST应用变量等于0指示没有LFNST适用。也就是说,当LFNST应用变量为1时,可以应用LFNST,并且当LFNST应用变量为0时,可以不应用LFNST。
变换系数编译标志指的是指示是否存在用于变换块的变换系数的CBF,其中当CBF等于1时,其指示存在用于变换块的变换系数,可以执行变换过程,并且当CBF等于0时,不执行任何变换过程。
根据示例,可以基于用于当前块的所有分量的变换系数编译标志为0,将LFNST应用变量的值导出为1。在这种情况下,设置LFNST应用变量的值为1,但是当CBF为0时,不执行实际的变换过程,并且也不将后述的变量LfnstDcOnly更新为0。即,在用于当前块的所有分量的变换系数编译标志为0时,不应用LFNST。
根据示例,可以基于用于当前块的所有分量的变换跳过标志为0,将LFNST应用变量的值设置为1。也就是说,当变换跳过不被应用于当前块的所有分量时,可以应用LFNST。
根据示例,在当前块的树类型是单树时,BDPCM模式可以被应用于亮度分量和色度分量中的每个。也就是说,BDPCM模式可以被应用于亮度分量并且可以不被应用于色度分量。相反,BDPCM模式可以被应用于色度分量,并且可以不被应用于亮度分量。
根据当前标准,在单树中,LFNST可以仅应用于亮度分量而不应用于色度分量。这里,对于亮度分量,不应用BDPCM模式并且存在变换系数,并且因此可以执行变换(即,在BDPCM模式不被应用于亮度分量,CBF不为0,并且变换跳过标志不为0的情况下),并且存在BDPCM模式适用于色度分量的情况。当应用BDPCM模式时,变换跳过标志被推断为1。
传统上,当导出LFNST应用变量时,如果块中包括的任何一个分量的变换跳过标志为1,则LFNST应用变量被设置为0,并且因此不解析LFNST索引。也就是说,即使LFNST适用于亮度分量,由于应用了BDPCM模式的色度分量,所以LFNST应用变量被设置为0(因为当应用BDPCM模式时,变换跳过标志被推断为1)。
根据示例,当BDPCM模式被应用于特定块时,可能存在CBF为0的情况,并且因此可以利用这种情况解决上述问题。通过将CBF为0的条件添加到用于导出LFNST应用变量的条件,即使BDPCM模式被应用于色度分量,编码设备也可以将LFNST应用于亮度分量。
编码设备可以将用于导出LFNST应用变量的条件设置为“(treeType==DUAL_TREE_CHROMA||(!tu_y_coded_flag[x0][y0]||transform_skip_flag[x0][y0][0]==0))&&(treeType==DUAL_TREE_LUMA||((!tu_cb_coded_flag[x0][y0]||transform_skip_flag[x0][y0][1]==0)&&(!tu_cr_coded_flag[x0][y0]||transform_skip_flag[x0][y0][2]==0)))”。
根据条件,因为当前块的树类型是单树(“treeType==DUAL_TREE_CHROMA”不被满足,并且因此条件“(!tu_y_coded_flag[x0][y0]||transform_skip_flag[x0][y0][0]==0)”被检查)并且用于亮度分量的变换跳过标志为0,所以满足条件“transform_skip_flag[x0][y0][0]==0”。
此外,当BDPCM模式被应用于当前块的色度分量并且变换系数编译标志为0时,条件((!tu_cb_coded_flag[x0][y0]||transform_skip_flag[x0][y0][1]==0)&&(!tu_cr_coded_flag[x0][y0]||transform_skip_flag[x0][y0][2]==0)))被满足。也就是说,即使BDPCM模式应用于色度分量并且因此用于色度分量的变换跳过标志被推断为1,根据变换系数编译标志条件,LFNST应用变量的值也可以被设置为1,这指示LFNST是适用的。
如上所述,通过改变用于设置LFNST应用变量的条件,能够解决当BDPCM模式应用于任何一个变换块时在不管CBF值的情况下LFNST都不应用于所有变换块的问题。此外,在检查用于确定是否解析LFNST索引的条件时,针对每个颜色分量一起检查变换跳过标志和CBF值。因此,当CBF值为0时,即使颜色分量中的任何一个处于BDPCM模式中,用于不同分量的LFNST索引的解析也不受影响。
编码设备200可以通过基于LFNST应用变量的值应用LFNST来导出修改的变换系数(S1650)。
LFNST是不可分离变换,其中,将变换应用于系数而无需在特定方向中分离系数,这不同于垂直或水平地分离待变换的系数并且对其进行变换的初级变换。该不可分离变换可以是将变换仅应用于低频区域而非待变换的整个目标块的低频不可分离变换。
编码设备可以基于LFNST应用变量的值为1将LFNST应用于当前块,并且可以导出除了LFNST应用变量之外的各种变量以应用LFNST。
例如,编码设备可以导出指示有效系数是否存在于当前块中除了DC分量的位置之外的位置处的第一变量(变量LfnstDcOnly)和指示是否变换系数存在于当前块的左上第一区域以外的第二区域中的第二变量(变量LfnstZeroOutSigCoeffFlag)。此外,编码设备可以基于当前块的树类型和大小来确定是否应用LFNST。左上的第一区域表示在4×4变换块和8×8变换块中根据VVC标准中的变换系数扫描顺序从DC位置开始包括8个位置的区域,并且表示在除了4×4变换块和8×8变换块之外的变换块中根据VVC标准中的变换系数扫描顺序从DC位置开始包括16个位置的区域。
第一变量和第二变量初始地被设置为1,其中当有效系数存在于当前块中的DC分量的位置之外的位置处时,第一变量可以被更新为0,并且当变换系数存在于第二区域中时,第二变量可以被更新为0。
当第一变量被更新为0并且第二变量保持为1时,可以将LFNST应用于当前块。
对于帧内子分区(ISP)模式适用的亮度分量,可以应用LFNST而不导出变量LfnstDcOnly。
具体地,在应用ISP模式并且用于亮度分量的变换跳过标志,即,transform_skip_flag[x0][y0][0]为0的情况下,在当前块的树类型为单树或用于亮度的双树时,可以应用LFNST,而不管变量LfnstDcOnly的值如何。
然而,对于未应用ISP模式的色度分量,可以根据用于色度分量Cb的变换跳过标志transform_skip_flag[x0][y0][1]的值和用于色度分量Cr的变换跳过标志transform_skip_flag[x0][y0][2]的值,将变量LfnstDcOnly的值设定为0。也就是说,当transform_skip_flag[x0][y0][cIdx]中的cIdx的值为1时,仅当transform_skip_flag[x0][y0][1]的值为0时,可以将变量LfnstDcOnly的值设置为0,并且当cIdx的值为2时,仅当transform_skip_flag[x0][y0][2]的值为0时,可以将变量LfnstDcOnly的值设置为0。当变量LfnstDcOnly的值为0时,编码设备可以应用LFNST,并且否则,编码设备可以不应用LFNST。
第二变量可以是变量LfnstZeroOutSigCoeffFlag,其可以指示在应用LFNST时执行清零。第二变量可以被初始地设置为1,并且当第二区域存在有效系数时可以被改变为0。
当存在最后非零系数的子块的索引大于0并且变换块的宽度和高度都等于或大于4或当在存在最后非零系数的子块中的最后非零系数的位置大于7并且变换块的大小为4x4或8x8时,变量LfnstZeroOutSigCoeffFlag可以被导出为0。子块是指在残差编译中用作编译单元的4x4块并且可以被称为系数组(CG)。子块索引0指的是左上的4x4子块。
即,当在除了左上区域以外的区域中导出非零系数时,在该左上区域中LFNST变换系数可以存在于变换块中,或者对于4×4块或8×8块在除了扫描顺序的第八位置之外的位置处存在非零系数时,变量LfnstZeroOutSigCoeffFlag被设置为0。
编码设备可以基于从关于帧内预测模式的信息导出的帧内预测模式来确定包括LFNST矩阵的LFNST集,并且可以选择多个LFNST矩阵中的任何一个。
在此,相同的LFNST集和相同的LFNST索引可以被应用于当前块被划分成的子分区变换块。也就是说,由于将相同的帧内预测模式应用于子分区变换块,因此基于帧内预测模式确定的LFNST集也可以等同地应用于所有子分区变换块。另外,由于在编译单元级别中用信号发送LFNST索引,因此可以将相同的LFNST矩阵应用于当前块被划分成的子分区变换块。
如上所述,可以根据用于待变换的变换块的帧内预测模式来确定变换集,并且可以基于在LFNST变换集中包括的变换核矩阵(即,LFNST矩阵中的任何一个)来执行LFNST。应用于LFNST的矩阵可以被称为LFNST矩阵并且被称为任何术语,只要矩阵是用于逆LFNST的矩阵的转置。
在示例中,LFNST矩阵可以是行数小于列数的非正方形矩阵。
当LFNST索引大于0并且当前块的树类型是双树色度时,LFNST适用于当前块,并且因此编码设备可以将标志的值编码为1,使得缩放列表不应用于色度分量。该标志可以是属于诸如序列参数集(SPS)的高级语法元素集的标志。
根据示例,当LFNST索引大于0并且当前块的树类型为双树亮度时,LFNST可应用于当前块,并且因此编码设备可以将该标志的值编码为1,使得缩放列表不应用于亮度分量。
编码设备可以通过基于用于当前块的修改的变换系数执行量化来导出残差信息,并且可以对残差信息和LFNST索引进行编码和输出(S1660)。
编码设备可以生成包括关于量化的变换系数的信息的残差信息。残差信息可以包括前述的变换相关信息/语法元素。编码设备可以对包括残差信息的图像/视频信息进行编码,并且能够以比特流的形式输出图像/视频信息。
具体地,编码设备200可以生成关于量化的变换系数的信息并且可以对关于生成的变换系数的量化的信息进行编码。
根据本实施例的LFNST索引的语法元素可以指示是否应用(逆)LFNST和LFNST集中包括的LFNST矩阵中的任何一个,并且当LFNST集包括两个变换核矩阵时,LFNST索引的语法元素可以具有三个值。
根据示例,在当前块的分割的树结构是双树类型时,可以针对亮度块和色度块中的每个对LFNST索引进行编码。
根据实施例,变换索引的语法元素的值可以包括:0,其指示没有(逆)LFNST被应用于当前块;1,其指示LFNST矩阵之中的第一LFNST矩阵;以及2,其指示LFNST矩阵之中的第二LFNST矩阵。
在本公开中,可以省略量化/解量化和/或变换/逆变换中的至少一个。当省略量化/解量化时,量化的变换系数可以被称为变换系数。当省略变换/逆变换时,变换系数可以被称为系数或残差系数,或者为了表达的一致性,可以仍然被称为变换系数。
此外,在本公开中,量化的变换系数和变换系数分别可以被称为变换系数和缩放的变换系数。在这种情况下,残差信息可以包括关于变换系数的信息,并且可以通过残差编译语法来用信号发送关于变换系数的信息。可以基于残差信息(或关于变换系数的信息)来导出变换系数,并且可以通过变换系数的逆变换(缩放)来导出缩放的变换系数。可以基于缩放的变换系数的逆变换(变换)来导出残差样本。也可以在本公开的其他部分中应用/表达这些细节。
在上述实施例中,借助于一系列步骤或框来基于流程图说明方法,但是本公开不限于步骤的顺序,并且可以在与上述顺序或步骤不同的顺序或步骤中或与另一步骤同时地执行某个步骤。此外,本领域的普通技术人员可以理解,流程图所示的步骤不是排他性的,并且在不影响本公开的范围的情况下,可以并入另一步骤或者移除流程图的一个或更多个步骤。
可以将根据本公开的上述方法实现为软件形式,并且根据本公开的编码设备和/或解码设备可以被包括在诸如TV、计算机、智能电话、机顶盒、显示装置等的用于图像处理的装置中。
当本公开中的实施例由软件具体实现时,可以将上述方法具体体现为用于执行上述功能的模块(过程、功能等)。模块可以被存储在存储器中并且可以由处理器执行。存储器可以在处理器内部或外部并且能够以各种公知方式连接到处理器。处理器可以包括专用集成电路(ASIC)、其他芯片组、逻辑电路和/或数据处理器件。存储器可以包括只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器、存储器卡、存储介质和/或其他存储器件。也就是说,可以在处理器、微处理器、控制器或芯片上具体实现和执行本公开中描述的实施例。例如,可以在计算机、处理器、微处理器、控制器或芯片上具体实现和执行每个附图所示的功能单元。
此外,应用本公开的解码设备和编码设备可以被包括在多媒体广播收发器、移动通信终端、家庭影院视频装置、数字影院视频装置、监视相机、视频聊天装置、诸如视频通信的实时通信装置、移动流传输装置、存储介质、摄像机、视频点播(VoD)服务提供装置、过顶(OTT)视频装置、因特网流传输服务提供装置、三维(3D)视频装置、视频电话视频装置和医疗视频装置,并且可以用于处理视频信号或数据信号。例如,过顶(OTT)视频装置可以包括游戏机、蓝光播放器、因特网接入TV、家庭影院系统、智能电话、平板PC、数字视频记录机(DVR)等。
另外,应用本公开的处理方法能够以由计算机执行的程序的形式产生,并且被存储在计算机可读记录介质中。具有根据本公开的数据结构的多媒体数据也可以被存储在计算机可读记录介质中。计算机可读记录介质包括其中存储有计算机可读数据的所有种类的存储装置和分布式存储装置。计算机可读记录介质可以包括例如蓝光光盘(BD)、通用串行总线(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置。此外,计算机可读记录介质包括以载波(例如,通过因特网的传输)的形式具体体现的介质。另外,通过编码方法生成的比特流可以被存储在计算机可读记录介质中或者通过有线或无线通信网络被发送。附加地,本公开的实施例可以通过程序代码被具体体现为计算机程序产品,并且可以通过本公开的实施例在计算机上执行程序代码。程序代码可以被存储在计算机可读载体上。

Claims (13)

1.一种由解码设备执行的图像解码方法,所述方法包括:
从比特流接收残差信息;
通过基于所述残差信息执行解量化,导出用于当前块的变换系数;以及
通过将LFNST应用于所述变换系数,导出修改的变换系数,
其中,导出所述修改的变换系数包括基于所述当前块的树类型和用于所述当前块的每个分量的变换系数编译标志或用于所述当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量,以及
基于所述LFNST应用变量的值,解析LFNST索引。
2.根据权利要求1所述的图像解码方法,其中,基于用于所述当前块的每个分量的所述变换系数编译标志为0,所述LFNST应用变量的值被设置为1,其指示所述LFNST索引被解析。
3.根据权利要求1所述的图像解码方法,其中,基于用于所述当前块的每个分量的所述变换跳过标志为0,所述LFNST应用变量的值被设置为1,其指示所述LFNST索引被解析。
4.根据权利要求1所述的图像解码方法,其中,当所述树类型为单树、用于所述当前块的亮度分量的所述变换跳过标志为0、所述当前块的色度分量处于BDPCM模式时,所述LFNST应用变量的值被设置为1,其指示所述LFNST索引被解析。
5.根据权利要求4所述的图像解码方法,其中,用于色度分量的所述变换系数编译标志为0。
6.根据权利要求5所述的图像解码方法,其中,用于所述色度分量的所述变换跳过标志被推断为1。
7.一种由图像编码设备执行的图像编码方法,所述方法包括:
导出用于当前块的预测样本;
基于所述预测样本,导出用于所述当前块的残差样本;
基于所述残差样本的初级变换,导出用于所述当前块的变换系数;以及
通过应用LFNST,从所述变换系数导出修改的变换系数,
其中,导出所述修改的变换系数包括基于所述当前块的树类型和用于所述当前块的每个分量的变换系数编译标志或用于所述当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量,以及
基于所述LFNST应用变量的值,应用LFNST索引。
8.根据权利要求7所述的图像编码方法,其中,基于用于所述当前块的每个分量的所述变换系数编译标志为0,所述LFNST应用变量的值被设置为1,其指示所述LFNST可应用。
9.根据权利要求7所述的图像编码方法,其中,基于用于所述当前块的每个分量的所述变换跳过标志为0,所述LFNST应用变量的值被设置为1,其指示所述LFNST可应用。
10.根据权利要求8所述的图像编码方法,其中,当所述树类型为单树、用于所述当前块的亮度分量的所述变换跳过标志为0、所述当前块的色度分量处于BDPCM模式时,所述LFNST应用变量的值被设置为1,其指示所述LFNST可应用。
11.根据权利要求10所述的图像编码方法,其中,用于色度分量的所述变换系数编译标志为0。
12.根据权利要求11所述的图像编码方法,其中,用于所述色度分量的所述变换跳过标志被推断为1。
13.一种存储指示信息以使图像解码方法被执行的计算机可读数字存储介质,所述图像解码方法包括:
从比特流接收残差信息;
通过基于所述残差信息执行解量化,导出用于当前块的变换系数;以及
通过将LFNST应用于所述变换系数,导出修改的变换系数,
其中,导出所述修改的变换系数包括基于所述当前块的树类型和用于所述当前块的每个分量的变换系数编译标志或用于所述当前块的每个分量的变换跳过标志来设置关于是否应用LFNST的LFNST应用变量,以及
基于所述LFNST应用变量的值,解析LFNST索引。
CN202180015735.XA 2020-02-21 2021-02-22 基于变换的图像编译方法及其装置 Pending CN115152232A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202062980082P 2020-02-21 2020-02-21
US62/980,082 2020-02-21
US202062992098P 2020-03-19 2020-03-19
US62/992,098 2020-03-19
US202063001456P 2020-03-29 2020-03-29
US63/001,456 2020-03-29
PCT/KR2021/002182 WO2021167421A1 (ko) 2020-02-21 2021-02-22 변환에 기반한 영상 코딩 방법 및 그 장치

Publications (1)

Publication Number Publication Date
CN115152232A true CN115152232A (zh) 2022-10-04

Family

ID=77391592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180015735.XA Pending CN115152232A (zh) 2020-02-21 2021-02-22 基于变换的图像编译方法及其装置

Country Status (6)

Country Link
US (2) US11812059B2 (zh)
EP (1) EP4109902A4 (zh)
JP (2) JP7431995B2 (zh)
KR (1) KR20220127937A (zh)
CN (1) CN115152232A (zh)
WO (1) WO2021167421A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021169994A1 (en) * 2020-02-25 2021-09-02 Mediatek Inc. Methods and apparatus for secondary transform signaling in video coding
US20230052538A1 (en) * 2021-08-13 2023-02-16 Meta Platforms, Inc. Systems and methods for determining token rates within a rate-distortion optimization hardware pipeline

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013107027A1 (en) * 2012-01-19 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of cbf coding in hevc
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US9332257B2 (en) * 2012-10-01 2016-05-03 Qualcomm Incorporated Coded black flag coding for 4:2:2 sample format in video coding
KR102524628B1 (ko) * 2018-01-05 2023-04-21 에스케이텔레콤 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
US10972758B2 (en) * 2018-04-02 2021-04-06 Qualcomm Incorporated Multi-type-tree framework for transform in video coding
US11356702B2 (en) * 2018-06-06 2022-06-07 Lg Electronics Inc. Method for performing transform index coding on basis of intra prediction mode, and device therefor
US11218728B2 (en) * 2019-06-04 2022-01-04 Tencent America LLC Method and apparatus for video coding
CA3161641C (en) 2019-11-13 2023-12-19 Lg Electronics Inc. Transform-based image coding method and device therefor
CN114830655B (zh) * 2019-12-12 2023-08-18 寰发股份有限公司 视频编解码的方法与装置

Also Published As

Publication number Publication date
EP4109902A4 (en) 2023-03-22
JP2023514613A (ja) 2023-04-06
US20240007674A1 (en) 2024-01-04
EP4109902A1 (en) 2022-12-28
JP2024036479A (ja) 2024-03-15
KR20220127937A (ko) 2022-09-20
WO2021167421A1 (ko) 2021-08-26
JP7431995B2 (ja) 2024-02-15
US11812059B2 (en) 2023-11-07
US20220400286A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
JP7436645B2 (ja) 変換に基づく映像コーディング方法及びその装置
CN113273214A (zh) 基于二次变换的图像编码方法及其装置
CN114846798A (zh) 用于基于变换的图像编码的方法及其设备
CN114982239A (zh) 基于变换的图像编码方法及其装置
CN115152232A (zh) 基于变换的图像编译方法及其装置
CN114930847A (zh) 基于变换的图像编码方法及其装置
CN114946189A (zh) 基于变换的图像编码方法及其装置
CN114651446A (zh) 基于变换的图像编译方法及其装置
CN114667735A (zh) 基于变换的图像编译方法及其设备
CN114586353A (zh) 基于变换的图像编码方法及装置
CN114747220A (zh) 基于变换的图像编码方法及其设备
CN114009023A (zh) 基于变换的图像编码方法及其装置
KR102482781B1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
CN114731439A (zh) 基于变换的图像编译方法及其装置
CN114930848A (zh) 基于变换的图像编码方法及其设备
CN114930845A (zh) 基于变换的图像编码方法及其装置
CN114731434A (zh) 基于变换的图像编码方法及其装置
CN114930846A (zh) 基于变换的图像编码方法及其装置
CN114342393A (zh) 基于变换的图像编译方法及其设备
CN114762342A (zh) 基于变换的图像编码方法及其装置
CN114762343A (zh) 基于变换的图像编码方法及其装置
CN114342409A (zh) 基于变换的图像编译方法及其设备
JP7458489B2 (ja) 変換に基づく画像コーディング方法及びその装置
CN114930849A (zh) 基于变换的图像编译方法及其装置
CN114747222A (zh) 基于变换的图像编译方法及其装置

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