CN114902665A - 使用自适应变换的图像编码/解码方法和设备以及发送比特流的方法 - Google Patents

使用自适应变换的图像编码/解码方法和设备以及发送比特流的方法 Download PDF

Info

Publication number
CN114902665A
CN114902665A CN202080088773.3A CN202080088773A CN114902665A CN 114902665 A CN114902665 A CN 114902665A CN 202080088773 A CN202080088773 A CN 202080088773A CN 114902665 A CN114902665 A CN 114902665A
Authority
CN
China
Prior art keywords
act
value
offset
current block
quantization parameter
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
CN202080088773.3A
Other languages
English (en)
Inventor
赵杰
金昇焕
亨得利·亨得利
S·帕鲁利
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 CN114902665A publication Critical patent/CN114902665A/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/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/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/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/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

Landscapes

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

Abstract

提供了图像编码/解码方法和设备。根据本公开的由图像解码设备执行的图像解码方法包括以下步骤:通过基于从比特流获得的划分信息划分图像来确定当前块;确定当前块的量化参数;以及基于量化参数确定当前块的变换系数。

Description

使用自适应变换的图像编码/解码方法和设备以及发送比特 流的方法
技术领域
本公开涉及图像编码/解码方法和设备。更具体地,本公开涉及使用自适应变换的图像编码/解码方法和设备,以及发送通过本公开的图像编码方法/设备生成的比特流的方法。
背景技术
最近,各个领域对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求正在增加。随着图像数据的分辨率和质量的提高,与现有图像数据相比,传输的信息量或比特量相对增加。传输信息量或比特量的增加导致传输成本和存储成本的增加。
因此,需要高效的图像压缩技术来有效地传输、存储和再现关于高分辨率和高质量图像的信息。
发明内容
技术问题
本公开的目的是提供一种具有提高的编码/解码效率的图像编码/解码方法和设备。
另外,本公开旨在提供一种用于通过执行自适应变换来提高编码/解码效率的图像编码/解码方法和设备。
另外,本公开旨在提供一种发送通过根据本公开的图像编码方法或设备生成的比特流的方法。
另外,本公开旨在提供一种存储有通过根据本公开的图像编码方法或设备生成的比特流的记录介质。
另外,本公开旨在提供一种存储有由根据本公开的图像解码设备接收、解码并用于重构图像的比特流的记录介质。
本领域技术人员应当理解,本公开要实现的技术目的不限于上述技术目的,并且将从以下描述中清楚地理解本文未描述的其它技术目的。
技术方案
根据本公开的一个方面,提供了一种由图像解码设备执行的图像解码方法,所述方法包括以下步骤:通过基于从比特流获得的划分信息划分图像来确定当前块;确定所述当前块的量化参数;以及基于所述量化参数确定所述当前块的变换系数。所述量化参数的所述确定可以是基于颜色空间变换是否应用于所述当前块的残差样本而执行的,并且所述量化参数的值可以被确定为具有在被设置为从预定上限到预定下限的范围内的值。
另外,根据本公开的方面,提供了一种图像解码设备,所述图像解码设备包括存储器和至少一个处理器,其中,所述至少一个处理器被配置为执行以下操作:通过基于从比特流获得的划分信息划分图像来确定当前块;确定所述当前块的量化参数;以及基于所述量化参数确定所述当前块的变换系数,并且所述处理器被配置为基于颜色空间变换是否应用于所述当前块的残差样本来确定所述量化参数。在本文中,所述量化参数的值可以被确定为在被设置为从预定上限到预定下限的范围内的值。
另外,根据本公开的方面,提供了一种由图像编码设备执行的图像编码方法,所述方法包括以下步骤:通过划分图像确定当前块;确定所述当前块的量化参数;以及基于所述量化参数确定所述当前块的变换系数。在本文中,所述量化参数的所述确定是基于颜色空间变换是否应用于所述当前块的残差样本而确定的,并且所述量化参数的值可以被确定为具有在被设置为从预定上限到预定下限的范围内的值。
另外,根据本公开的另一方面,提供了一种发送通过本公开的图像编码设备或图像编码方法生成的比特流的传输方法。
另外,根据本公开的另一方面,提供了一种存储有通过本公开的图像编码方法或图像编码设备生成的比特流的计算机可读记录介质。
以上关于本公开的简要概述的特征仅仅是本公开的以下详细描述的示例性方面,并不限制本公开的范围。
有益效果
根据本公开,可以提供一种具有提高的编码/解码效率的图像编码/解码方法和设备。
另外,根据本公开,可以提供能够通过执行自适应变换来提高编码/解码效率的图像编码/解码方法和设备。
另外,根据本公开,可以提供一种发送通过根据本公开的图像编码方法或设备生成的比特流的方法。
另外,根据本公开,可以提供一种存储有通过根据本公开的图像编码方法或设备生成的比特流的记录介质。
另外,根据本公开,可以提供一种存储有由根据本公开的图像解码设备接收、解码并用于重构图像的比特流的记录介质。
本领域技术人员应当理解,可以通过本公开实现的效果不限于上文已经具体描述的内容,并且将从以下描述中更清楚地理解本公开的其它优点。
附图说明
图1是示意性地示出本公开的实施方式适用于的视频编码系统的图。
图2是示意性地示出本公开的实施方式适用于的图像编码设备的图。
图3是示意性地示出本公开的实施方式适用于的图像解码设备的图。
图4是示出根据实施方式的图像的分割结构的图。
图5是示出根据多类型树结构的块的分割类型的实施方式的图。
图6是示出根据本公开的具有嵌套多类型树的四叉树的结构中的块划分信息的信令机制的图。
图7是示出将CTU分割成多个CU的实施方式的图。
图8是示出根据实施方式的邻近参考样本的图。
图9和图10是示出根据实施方式的帧内预测的图。
图11是示出根据用于对一个语法元素进行编码的实施方式的CABAC的框图的图。
图12至图15是示出根据实施方式的熵编码和熵解码的图。
图16和图17是示出根据实施方式的图像解码和编码过程的示例的图。
图18是示出根据实施方式的编码图像的层次结构的图。
图19是示出应用了ACT的解码处理的实施方式的图。
图20是示出用信号通知与ACT有关的语法元素的序列参数集语法表的实施方式的图。
图21至图27是依次示出用信号通知与ACT有关的语法元素的编码基础的语法表的实施方式的图。
图28是示出根据实施方式的编码树语法的图。
图29是示出根据实施方式的对BDPCM的残差样本进行编码的方法的图。
图30是示出根据实施方式的通过执行BDPCM而生成的修改量化残差块的图。
图31是示出在根据实施方式的图像编码设备中通过应用BDPCM来对当前块进行编码的过程的流程图。
图32是示出在根据实施方式的图像解码设备中通过应用BDPCM来重构当前块的过程的流程图。
图33至图35是示意性地示出用于在BDPCM上用信号通知信息的语法的图。
图36至图51是示出根据本公开的每个单独实施方式的用于用信号通知ACT语法元素的语法表的图。
图52是示出根据实施方式的图像解码方法的图。
图53是示出根据实施方式的图像编码方法的图。
图54是示出本公开的实施方式适用于的内容流系统的图。
具体实施方式
在下文中,将参照附图对本公开的实施方式进行详细描述,以易于本领域技术人员实施。然而,本公开可以以各种不同的形式实施,并且不限于这里描述的实施方式。
在描述本公开时,如果确定相关已知功能或构造的详细描述使本公开的范围不必要地含糊不清,则将省略其详细描述。在附图中,省略了与本公开的描述无关的部分,并且相似的附图标记被赋予相似的部分。
在本公开中,当一个组件“连接”、“联接”或“链接”到另一个组件时,它不仅可以包括直接连接关系,还可以包括中间组件存在的间接连接关系。另外,当一个组件“包括”或“具有”其它组件时,除非另有说明,否则是指还可以包括其它组件,而不是排除其它组件。
在本公开中,术语第一、第二等仅用于将一个组件与其它组件区分开的目的,并且不限制组件的顺序或重要性,除非另有说明。相应地,在本公开的范围内,一个实施方式中的第一组件在另一个实施方式中可以被称为第二组件,类似地,一个实施方式中的第二组件在另一个实施方式中可以被称为第一组件。
在本公开中,相互区分的组件旨在清楚地描述每个特征,并不意味着组件必须分开。即,多个组件可以在一个硬件或软件单元中集成或实现,或者一个组件可以在多个硬件或软件单元中分布和实现。因此,即使没有特别说明,这些组件集成或组件是分布式的实施方式也包括在本公开的范围内。
在本公开中,各个实施方式中所描述的组件并不一定是必不可少的组件,一些组件可以是可选的组件。因此,由实施方式中描述的组件的子集组成的实施方式也包括在本公开的范围内。另外,除了在各种实施方式中描述的组件之外还包括其它组件的实施方式包括在本公开的范围内。
本公开涉及图像的编码和解码,除非在本公开中重新定义,否则本公开中使用的术语可以具有本公开所属技术领域中常用的一般含义。
在本公开中,“视频”可以指根据时间流逝的系列中的一组图像。“画面”通常指表示特定时间段内的一个图像的基础,而切片/拼块(tile)是在编码中构成画面的一部分的编码基础。一个画面可以由一个或更多个切片/拼块组成。另外,切片/拼块可以包括一个或更多个编码树单元(CTU)。一个画面可以由一个或更多个切片/拼块组成。一个画面可以由一个或更多个拼块组组成。一个拼块组可以包括一个或更多个拼块。图块(brick)可以指画面中的拼块内的CTU行的四边形区域。一个拼块可以包括一个或更多个图块。图块可以指拼块内的CTU行的四边形区域。一个拼块可以被分割成多个图块,并且每个图块可以包括属于一个拼块的一个或更多个CTU行。未分割成多个图块的拼块也可以被视为图块。
在本公开中,“像素”或“像元”可以指构成一个画面(或图像)的最小单元。另外,“样本”可以用作与像素对应的术语。样本通常可以表示像素或像素的值,并且可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。
在本公开中,“单元”可以表示图像处理的基本单元。该单元可以包括画面的特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,Cb、Cr)块。在某些情况下,单元可以与诸如“样本阵列”、“块”或“区域”的术语互换使用。在一般情况下,M×N块可以包括M列N行的样本(或样本阵列)或变换系数的集合(或阵列)。
在本公开中,“当前块”可以指“当前编码块”、“当前编码单元”、“编码目标块”、“解码目标块”或“处理目标块”中的一个。当执行预测时,“当前块”可以指“当前预测块”或“预测目标块”。当执行变换(逆变换)/量化(解量化)时,“当前块”可以指“当前变换块”或“变换目标块”。当执行滤波时,“当前块”可以指“滤波目标块”。
另外,在本公开中,除非明确声明为色度块,否则“当前块”可以指“当前块的亮度块”。“当前块的色度块”可以通过包括对诸如“色度块”或“当前色度块”的色度块的显式描述来表达。
在本公开中,术语“/”和“,”应该解释为指示“和/或”。例如,表述“A/B”和“A,B”可以指“A和/或B”。此外,“A/B/C”和“A,B,C”可以指“A、B和/或C中的至少一个”。
在本公开中,术语“或”应被解释以指示“和/或”。例如,表述“A或B”可以包括1)仅“A”,2)仅“B”,和/或3)“A和B”两者。换言之,在本公开中,术语“或”应被解释以指示“附加地或另选地”。
视频编码系统的概述
图1是示出根据本公开的视频编码系统的图。
根据实施方式的视频编码系统可以包括源装置10和接收装置20。源装置10可以将编码的视频和/或图像信息或数据以文件或流的形式经由数字存储介质或网络递送到接收装置20。
根据实施方式的源装置10可以包括视频源生成器11、编码设备12和发送器13。根据实施方式的接收装置20可以包括接收器21、解码设备12和渲染器23。编码设备12可以称为视频/图像编码设备,解码设备12可以称为视频/图像解码设备。发送器13可以被包括在编码设备12中。接收器21可以被包括在解码设备22中。渲染器23可以包括显示器并且显示器可以被配置为单独的装置或外部组件。
视频源生成器11可以通过捕获、合成或生成视频/图像的处理来获取视频/图像。视频源生成器11可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板计算机和智能电话,并且可以(以电子方式)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以被生成相关数据的处理代替。
编码设备12可以对输入视频/图像进行编码。为了压缩和编码效率,编码设备12可以执行诸如预测、变换和量化的一系列过程。编码设备12可以以比特流的形式输出编码数据(编码视频/图像信息)。
发送器13可以通过数字存储介质或网络以文件或流的形式将以比特流的形式输出的编码视频/图像信息或数据传输到接收装置20的接收器21。数字存储介质可以包括各种存储介质,诸如USB、SD、CD、DVD、蓝光、HDD、SSD等。发送器13可以包括用于通过预定文件格式生成媒体文件的元件并且可以包括用于通过广播/通信网络传输的元件。接收器21可以从存储介质或网络中提取/接收比特流并将比特流传输到解码设备12。
解码设备12可以通过执行与编码设备12的操作相对应的一系列过程,诸如解量化、逆变换和预测来解码视频/图像。
渲染器23可以渲染解码的视频/图像。渲染的视频/图像可以通过显示器显示。
图像编码设备的概述
图2是示意性地示出本公开的实施方式可适用于的图像编码设备的图。
如图2所示,图像编码设备100可以包括图像分割器110、减法器115、变换器120、量化器130、解量化器140、逆变换器150、加法器155、滤波器160、存储器170、帧间预测单元180、帧内预测单元185和熵编码器190。帧间预测单元180和帧内预测单元185可以统称为“预测单元”。变换器120、量化器130、解量化器140和逆变换器150可以被包括在残差处理器中。残差处理器还可以包括减法器115。
在一些实施方式中,配置图像编码设备100的多个组件中的全部或至少一些可以由一个硬件组件(例如,编码器或处理器)来配置。另外,存储器170可以包括解码画面缓冲器(DPB)并且可以由数字存储介质配置。
图像分割器110可以将输入到图像编码设备100的输入图像(或画面或帧)分割成一个或更多个处理单元。例如,处理单元可以称为编码单元(CU)。可以通过根据四叉树二叉树三叉树(QT/BT/TT)结构递归地分割编码树单元(CTU)或最大编码单元(LCU)来获取编码单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编码单元分割为更深深度的多个编码单元。对于编码单元的分割,可以首先应用四叉树结构,然后可以应用二叉树结构和/或三叉树结构。可以基于不再分割的最终编码单元来执行根据本公开的编码过程。可以将最大编码单元用作最终编码单元,也可以将通过分割最大编码单元获取的更深深度的编码单元用作最终编码单元。这里,编码过程可以包括稍后将描述的预测、变换和重构的过程。作为另一个示例,编码过程的处理单元可以是预测单元(PU)或变换单元(TU)。预测单元和变换单元可以从最终编码单元划分或分割。预测单元可以是样本预测单元,变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
预测单元(帧间预测单元180或帧内预测单元185)可以对要处理的块(当前块)执行预测,并且生成包括当前块的预测样本的预测块。预测单元可以在当前块或CU的基础上确定是应用帧内预测还是帧间预测。预测单元可以生成与当前块的预测有关的各种信息,并且将生成的信息传输到熵编码器190。关于预测的信息可以在熵编码器190中被编码并且以比特流的形式输出。
帧内预测单元185可以通过参考当前画面中的样本来预测当前块。根据帧内预测模式和/或帧内预测技术,参考样本可以位于当前块的邻居中或者可以被分开放置。帧内预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅仅是示例,可以根据设置使用更多或更少的定向预测模式。帧内预测单元185可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测单元180可以基于由参考画面上的运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单元来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。包括参考块的参考画面和包括时间邻近块的参考画面可以相同或不同。时间邻近块可以被称为并置参考块、并置CU(colCU)等。包括时间邻近块的参考画面可以被称为并置画面(colPic)。例如,帧间预测单元180可基于邻近块配置运动信息候选列表并生成指示使用哪个候选来推导当前块的运动向量和/或参考画面索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测单元180可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,可以不传输残差信号。在运动向量预测(MVP)模式的情况下,邻近块的运动向量可以用作运动向量预测子,并且当前块的运动向量可以通过编码运动向量差和运动向量预测子的指示符来用信号通知当前块的运动向量。运动向量差可以意指当前块的运动向量与运动向量预测子之间的差。
预测单元可以基于以下描述的各种预测方法和预测技术来生成预测信号。例如,预测单元不仅可以应用帧内预测或帧间预测,还可以同时应用帧内预测和帧间预测,以预测当前块。同时应用帧内预测和帧间预测两者来预测当前块的预测方法可以称为组合帧间和帧内预测(CIIP)。此外,预测单元可以执行帧内块复制(IBC)以预测当前块。帧内块复制可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC是一种在与当前块相隔预定距离的位置处使用当前画面中先前重构的参考块来预测当前画面的方法。当应用IBC时,参考块在当前画面中的位置可以被编码为与预定距离相对应的向量(块向量)。IBC基本上在当前画面中执行预测,但是可以类似于帧间预测来执行,因为在当前画面内推导参考块。即,IBC可以使用本公开中描述的帧间预测技术中的至少一种。
预测单元生成的预测信号可用于生成重构信号或生成残差信号。减法器115可以通过从输入图像信号(原始块或原始样本阵列)中减去从预测单元输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列)。生成的残差信号可以被传输到变换器120。
变换器120可以通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、karhunen-loève变换(KLT)、基于图的变换(GBT)或条件非线性变换(CNT)中的至少一种。这里,GBT是指当像素之间的关系信息由图形表示时从图形获得的变换。CNT是指基于使用所有先前重构的像素生成的预测信号获取的变换。此外,变换处理可以应用于具有相同大小的方形像素块或者可以应用于具有可变大小而不是方形的块。
量化器130可以对变换系数进行量化并且将它们传输到熵编码器190。熵编码器190可以对量化的信号(关于量化的变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以被称为残差信息。量化器130可基于系数扫描顺序将块形式的量化变换系数重新排列为一维向量形式,并基于一维向量形式的量化变换系数生成关于量化变换系数的信息。
熵编码器190可以执行各种编码方法,例如指数哥伦布、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。熵编码器190可以一起或单独地编码量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)。编码的信息(例如,编码的视频/图像信息)可以比特流的形式以网络抽象层(NAL)为单元进行传输或存储。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(APS)、画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)。此外,视频/图像信息还可以包括通用约束信息。本公开中描述的用信号通知的信息、传输的信息和/或语法元素可以通过上述编码过程被编码并且被包括在比特流中。
比特流可以通过网络传输或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,数字存储介质可以包括USB、SD、CD、DVD、蓝光、HDD、SSD等各种存储介质。可以包括传输从熵编码器190输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)作为图像编码设备100的内部/外部元件。另选地,可以提供发送器作为熵编码器190的组件。
从量化器130输出的量化变换系数可用于生成残差信号。例如,可以通过解量化器140和逆变换器150对量化变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。
加法器155将重构残差信号与从帧间预测单元180或帧内预测单元185输出的预测信号相加,以生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差,例如应用跳过模式的情况,则可以将预测块用作重构块。加法器155可以称为重构器或重构块生成器。生成的重构信号可以用于当前画面中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个画面进行帧间预测。
滤波器160可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器160可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器170中,具体地,存储器170的DPB中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波、双边滤波等。滤波器160可以生成与滤波有关的各种信息并将所生成的信息传输到熵编码器190,如稍后在每种滤波方法的描述中所描述的。与滤波相关的信息可以由熵编码器190编码并以比特流的形式输出。
传输到存储器170的修改的重构画面可以用作帧间预测单元180中的参考画面。当通过图像编码设备100应用帧间预测时,可以避免图像编码设备100和图像解码设备之间的预测失配并且可以提高编码效率。
存储器170的DPB可以存储修改的重构画面以用作帧间预测单元180中的参考画面。存储器170可以存储从其中推导(或编码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测单元180并用作空间邻近块的运动信息或时间邻近块的运动信息。存储器170可以存储当前画面中重构块的重构样本并且可以将重构样本传送到帧内预测单元185。
图像解码设备的概述
图3是示意性地示出本公开的实施方式适用于的图像解码设备的图。
如图3所示,图像解码设备200可以包括熵解码器210、解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测单元260和帧内预测单元265。帧间预测单元260和帧内预测单元265可以统称为“预测单元”。解量化器220和逆变换器230可以被包括在残差处理器中。
根据实施方式,配置图像解码设备200的多个组件中的全部或至少一些可以由硬件组件(例如,解码器或处理器)来配置。此外,存储器250可以包括解码画面缓冲器(DPB)或者可以由数字存储介质配置。
已经接收到包括视频/图像信息的比特流的图像解码设备200可以通过执行与由图2的图像编码设备100执行的处理相对应的处理来重构图像。例如,图像解码设备200可以使用在图像编码设备中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编码单元。编码单元可以通过分割编码树单元或最大编码单元来获取。通过图像解码设备200解码和输出的重构图像信号可以通过再现设备(未示出)再现。
图像解码设备200可以接收以比特流的形式从图2的图像编码设备输出的信号。接收到的信号可以通过熵解码器210进行解码。例如,熵解码器210可以解析比特流以推导图像重构(或画面重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(APS)、画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)。此外,视频/图像信息还可以包括通用约束信息。图像解码设备还可以基于关于参数集的信息和/或通用约束信息对画面进行解码。本公开中描述的用信号通知/接收的信息和/或语法元素可以通过解码过程被解码并从比特流中获得。例如,熵解码器210基于诸如指数哥伦布编码、CAVLC或CABAC的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素的值和残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中每个语法元素对应的信元,使用解码目标语法元素信息、邻近块和解码目标块的解码信息或前一阶段解码的符号/信元的信息来确定上下文模型,根据确定的上下文模型通过预测信元的出现概率来对信元执行算术解码,并且生成与每个语法元素的值对应的符号。在这种情况下,CABAC熵解码方法可以在确定上下文模型后,通过将解码的符号/信元的信息用于下一个符号/信元的上下文模型来更新上下文模型。由熵解码器210解码的信息中与预测相关的信息可以被提供给预测单元(帧间预测单元260和帧内预测单元265),并且在熵解码器210中对其执行熵解码的残差值,即,量化变换系数和相关的参数信息可以被输入到解量化器220。另外,可以将熵解码器210解码的信息当中关于滤波的信息提供给滤波器240。此外,用于接收从图像编码设备输出的信号的接收器(未示出)可以进一步被配置为图像解码设备200的内部/外部元件,或者接收器可以是熵解码器210的组件。
此外,根据本公开的图像解码设备可以被称为视频/图像/画面解码设备。图像解码设备可以分为信息解码器(视频/图像/画面信息解码器)和样本解码器(视频/图像/画面样本解码器)。信息解码器可以包括熵解码器210。样本解码器可以包括解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测单元160或帧内预测单元265中的至少一个。
解量化器220可以对量化变换系数进行解量化并输出变换系数。解量化器220可以以二维块的形式重新排列量化变换系数。在这种情况下,可以基于在图像编码设备中执行的系数扫描顺序来执行重新排列。解量化器220可以通过使用量化参数(例如,量化步长信息)对量化变换系数执行解量化并获得变换系数。
逆变换器230可以对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
预测单元可以对当前块执行预测并生成包括当前块的预测样本的预测块。预测单元可以基于从熵解码器210输出的关于预测的信息来确定是将帧内预测还是帧间预测应用于当前块,并且可以确定特定帧内/帧间预测模式(预测技术)。
与在图像编码设备100的预测单元中描述的相同的是,预测单元可以基于稍后描述的各种预测方法(技术)来生成预测信号。
帧内预测单元265可以通过参考当前画面中的样本来预测当前块。帧内预测单元185的描述同样适用于帧内预测单元265。
帧间预测单元260可以基于参考画面上由运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单元来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。例如,帧间预测单元260可以基于邻近块配置运动信息候选列表,并且基于接收到的候选选择信息推导当前块的运动向量和/或参考画面索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示当前块的帧间预测模式的信息。
加法器235可以通过将获得的残差信号与从预测单元(包括帧间预测单元260和/或内预测单元265)输出的预测信号(预测块、预测样本阵列)相加生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差,例如在应用跳过模式的情况下,则可以将预测块用作重构块。加法器155的描述同样适用于加法器235。加法器235可以称为重构器或重构块生成器。生成的重构信号可以用于当前画面中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个画面进行帧间预测。
滤波器240可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器240可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器250中,具体地,存储器250的DPB中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波、双边滤波等。
存储在存储器250的DPB中的(修改的)重构画面可以用作帧间预测单元260中的参考画面。存储器250可以存储从其中推导(或解码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测单元260,以用作空间邻近块的运动信息或时间邻近块的运动信息。存储器250可以存储当前画面中重构块的重构样本并将重构样本传送到帧内预测单元265。
在本公开中,在图像编码设备100的滤波器160、帧间预测单元180和帧内预测单元185中描述的实施方式可以同等地或对应地应用于图像解码设备200的滤波器240、帧间预测单元260和帧内预测单元265。
图像分割的概述
可以基于图像分割结构来执行根据本公开的视频/图像编码方法如下。具体地,可以基于根据图像分割结构而推导的CTU、CU(和/或TU、PU)来执行将稍后描述的预测、残差处理((逆)变换、(解)量化等)、语法元素编码和滤波的过程。可以按块单元对图像进行分割并且可以在编码设备的图像分割器110中执行块分割过程。分割相关信息可以由熵编码器190编码并且以比特流的形式发送到图像解码设备。图像解码设备的熵解码器210可以基于从比特流获得的分割相关信息来推导当前画面的块分割结构,并且基于此,可以执行一系列的过程(例如,预测、残差处理、块/画面重构、环路内滤波等)以进行图像解码。
画面可以被分割成编码树单元(CTU)的序列。图4示出了画面被分割成CTU的示例。CTU可以对应于编码树块(CTB)。另选地,CTU可以包括亮度样本的编码树块和对应色度样本的两个编码树块。例如,对于包含三个样本阵列的画面,CTU可以包括亮度样本的一个N×N块和色度样本的两个对应块。
CTU分割的概述
如上所述,可以通过根据四叉树/二叉树/三叉树(QT/BT/TT)结构递归地对编码树单元(CTU)或最大编码单元(LCU)进行分割来获取编码单元。例如,CTU可以被首先分割成四叉树结构。此后,可以通过多类型树结构对四叉树结构的叶节点进一步进行分割。
根据四叉树的分割意味着当前CU(或CTU)被同等地分割成四个。通过根据四叉树的分割,可以将当前CU分割成具有相同宽度和相同高度的四个CU。在当前CU不再被分割成四叉树结构时,当前CU对应于四叉树结构的叶节点。与四叉树结构的叶节点对应的CU可以不再被分割并且可以被用作上述最终编码单元。另选地,可以通过多类型树结构对与四叉树结构的叶节点对应的CU进一步进行分割。
图5是示出了根据多类型树结构的块的分割类型的图。根据多类型树结构的划分可以包括根据二叉树结构的两种类型的划分和根据三叉树结构的两种类型的划分。
根据二叉树结构的两种类型的划分可以包括垂直二叉划分(SPLIT_BT_VER)和水平二叉划分(SPLIT_BT_HOR)。垂直二叉划分(SPLIT_BT_VER)意味着当前CU被在垂直方向上同等地划分成两个。如图4所示,通过垂直二叉划分,可以生成高度与当前CU相同并且宽度为当前CU的宽度的一半的两个CU。水平二叉划分(SPLIT_BT_HOR)意味着当前CU被在水平方向上同等地划分成两个。如图5所示,通过水平二叉划分,可以生成高度为当前CU的高度的一半并且宽度与当前CU相同的两个CU。
根据三叉数结构的两种类型的划分可以包括垂直三叉划分(SPLIT_TT_VER)和水平三叉划分(SPLIT_TT_HOR)。在垂直三叉划分(SPLIT_TT_VER)中,当前CU被以1:2:1的比率在垂直方向上划分。如图5所示,通过垂直三叉划分,可以生成高度与当前CU相同并且宽度为当前CU的宽度的1/4的两个CU以及高度与当前CU相同并且宽度为当前CU的宽度的一半的一个CU。在水平三叉划分(SPLIT_TT_HOR)中,当前CU被以1:2:1的比率在水平方向上划分。如图4所示,通过水平三叉划分,可以生成高度为当前CU的高度的1/4并且宽度与当前CU相同的两个CU以及高度为当前CU的高度的一半并且宽度与当前CU相同的一个CU。
图6是示出了根据本公开的具有嵌套多类型树的四叉树的结构中的块划分信息的信令机制的图。
这里,CTU被视为四叉树的根节点,并且被首次分割成四叉树结构。用信号通知指示是否关于当前CU(四叉树的CTU或节点(QT_node))执行四叉树划分的信息(例如,qt_split_flag)。例如,当qt_split_flag具有第一值(例如,“1”)时,当前CU可以被四叉树分割。另外,当qt_split_flag具有第二值(例如,“0”)时,当前CU不被四叉树分割,而是变成四叉树的叶节点(QT_leaf_node)。然后可以将每个四叉树叶节点进一步分割成多类型树结构。也就是说,四叉树的叶节点可以变成多类型树的节点(MTT_node)。在多类型树结构中,用信号通知第一标志(例如,Mtt_split_cu_flag)以指示当前节点是否被附加地分割。如果对应节点被附加地分割(例如,如果第一标志为1),则可以用信号通知第二标志(例如,Mtt_split_cu_vertical_flag)以指示划分方向。例如,划分方向在第二标志为1时可以是垂直方向,而在第二标志为0时可以是水平方向。然后,可以用信号通知第三标志(例如,Mtt_split_cu_binary_flag)以指示划分类型是二叉划分类型还是三叉划分类型。例如,划分类型在第三标志为1时可以是二叉划分类型,而在第三标志为0时可以是三叉划分类型。通过二叉划分或三叉划分获取的多类型树的节点可以被进一步分割成多类型树结构。然而,可以不将多类型树的节点分割成四叉树结构。如果第一标志为0,则多类型树的对应节点不再被划分,而是变成多类型树的叶节点(MTT_leaf_node)。与多类型树的叶节点对应的CU可以被用作上述最终编码单元。
基于mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag,可以如下表1所示推导CU的多类型树划分模式(MttSplitMode)。在以下描述中,多树划分模式可以被称为多树划分类型或简称为划分类型。
[表1]
MttSplitMode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag
SPLIT_TT_HOR 0 0
SPLIT_BT_HOR 0 1
SPLIT_TT_VER 1 0
SPLIT_BT_VER 1 1
图7是示出了在应用四叉树之后通过应用多类型树来将CTU分割成多个CU的示例的图。在图7中,粗体块边710表示四叉树分割,而剩余边720表示多类型树分割。CU可以对应于编码块(CB)。在实施方式中,CU可以包括亮度样本的一个编码块以及与亮度样本对应的色度样本的两个编码块。可以基于根据画面/图像的颜色格式(色度格式,例如,4:4:4、4:2:2、4:2:0等)的分量比率基于亮度分量(样本)CB或TB大小来推导色度分量(样本)CB或TB大小。在4:4:4颜色格式的情况下,可以将色度分量CB/TB大小设定为等于亮度分量CB/TB大小。在4:2:2颜色格式的情况下,可以将色度分量CB/TB的宽度设定为亮度分量CB/TB的宽度的一半并且可以将色度分量CB/TB的高度设定为亮度分量CB/TB的高度。在4:2:0颜色格式的情况下,可以将色度分量CB/TB的宽度设定为亮度分量CB/TB的宽度的一半并且可以将色度分量CB/TB的高度设定为亮度分量CB/TB的高度的一半。
在实施方式中,当CTU的大小基于亮度样本单元为128时,CU的大小可以具有从128×128至4×4的大小,其是与CTU相同的大小。在一个实施方式中,在4:2:0颜色格式(或色度格式)的情况下,色度CB大小可以具有从64×64至2×2的大小。
此外,在实施方式中,CU大小和TU大小可以是相同的。另选地,在CU区域中可以有多个TU。TU大小通常表示亮度分量(样本)变换块(TB)大小。
可以基于作为预定值的最大允许TB大小maxTbSize来推导TU大小。例如,当CU大小大于maxTbSize时,可以从CU推导具有maxTbSize的多个TU(TB),并且可以以TU(TB)为单元执行变换/逆变换。例如,最大允许亮度TB大小可以是64×64并且最大允许色度TB大小可以是32×32。如果根据树结构分割的CB的宽度或高度大于最大变换宽度或高度,则CB可以被自动地(或隐式地)分割,直到满足水平和垂直方向上的TB大小极限为止。
另外,例如,当应用帧内预测时,可以以CU(或CB)为单元推导帧内预测模式/类型,并且可以以TU(或TB)为单元执行邻近参考样本推导和预测样本生成过程。在这种情况下,在一个CU(或CB)区域中可以有一个或多个TU(或TB),并且在这种情况下,多个TU或(TB)可以共享相同的帧内预测模式/类型。
此外,对于具有嵌套多类型树的四叉树编码树方案,可以将以下参数作为SPS语法元素从图像编码设备用信号通知给解码设备。例如,用信号通知作为表示四叉树的根节点大小的参数的CTU大小、作为表示最小允许四叉树叶节点大小的参数的MinQTSize、作为表示最大允许二叉树根节点大小的参数的MaxBtSize、作为表示最大允许三叉树根节点大小的参数的MaxTtSize、作为表示从四叉树叶节点起进行多类型树划分的最大允许层次深度的参数的MaxMttDepth、作为表示最小允许二叉树树叶节点大小的参数的MinBtSize、或作为表示最小允许三叉数叶节点大小的参数的MinTtSize中的至少一个。
作为使用4:2:0色度格式的实施方式,可以将CTU大小设定为128×128亮度块以及与这些亮度块对应的两个64×64色度块。在这种情况下,可以将MinOTSize设定为16×16,可以将MaxBtSize设定为128×128,可以将MaxTtSzie设定为64×64,可以将MinBtSize和MinTtSize设定为4×4,并且可以将MaxMttDepth设定为4。四叉树分割可以被应用于CTU以生成四叉树叶节点。四叉树叶节点可以被称作叶QT节点。四叉树叶节点的大小可以从16×16大小(例如,MinOTSize)至128×128大小(例如,CTU大小)。如果叶QT节点是128×128,则它可以不被附加地分割成二叉树/三叉树。这是因为,在这种情况下,即使被分割,它也超过MaxBtsize和MaxTtszie(例如,64×64)。在其它情况下,叶QT节点可以被进一步分割成多类型树。因此,叶QT节点是多类型树的根节点,并且叶QT节点可以具有多类型树深度(mttDepth)0值。如果多类型树深度达到MaxMttdepth(例如4),则可以不考虑进一步分割。如果多类型树节点的宽度等于MinBtSize并且小于或等于2xMinTtSize,则可以不考虑进一步水平分割。如果多类型树节点的高度等于MinBtSize并且小于或等于2xMinTtSize,则可以不考虑进一步垂直分割。当不考虑分割时,图像编码设备可以跳过分割信息的信令。在这种情况下,图像解码设备可以推导具有预定值的分割信息。
此外,一个CTU可以包括亮度样本的编码块(在下文中称为“亮度块”)以及与其对应的色度样本的两个编码块(在下文中称为“色度块”)。上述编码树方案可以被同等地或单独地应用于当前CU的亮度块和色度块。具体地,可以将一个CTU中的亮度块和色度块分割成相同的块树结构,并且在这种情况下,树结构被表示为SINGLE_TREE。另选地,可以将一个CTU中的亮度块和色度块分割成单独的块树结构,并且在这种情况下,可以将树结构表示为DUAL_TREE。也就是说,当CTU被分割成双树时,用于亮度块的块树结构和用于色度块的块树结构可以分别存在。在这种情况下,可以将用于亮度块的块树结构称作DUAL_TREE_LUMA,并且可以将用于色度分量的块树结构称作DUAL_TREE_CHROMA。对于P和B切片/拼块组,可以将一个CTU中的亮度块和色度块限制为具有相同的编码树结构。然而,对于I切片/拼块组,亮度块和色度块可以具有彼此分开的块树结构。如果应用单独的块树结构,则可以基于特定编码树结构来将亮度CTB分割成CU,并且可以基于另一编码树结构来将色度CTB分割成色度CU。也就是说,这意味着应用单独的块树结构的I切片/拼块组中的CU可以包括亮度分量的编码块或两个色度分量的编码块,并且P或B切片/拼块组的CU可以包括三个颜色分量(一个亮度分量和两个色度分量)的块。
尽管已经描述了具有嵌套多类型树的四叉树编码树结构,但是对CU进行分割的结构不限于此。例如,可以将BT结构和TT结构解释为多分割树(MPT)结构中包括的概念,并且可以将CU解释为通过QT结构和MPT结构被分割。在通过QT结构和MPT结构对CU进行分割的示例中,可以用信号通知包括关于QT结构的叶节点被分割成多少块的信息的语法元素(例如MPT_split_type)以及包括关于QT结构的叶节点被分割成垂直方向和水平方向中的哪个的信息的语法元素(例如MPT_split_mode),以确定分割结构。
在另一示例中,可以以与QT结构、BT结构或TT结构不同的方式对CU进行分割。也就是说,与根据QT结构将较低深度的CU分割成较高深度的CU的1/4、根据BT结构将较低深度的CU分割成较高深度的CU的1/2或者根据TT结构将较低深度的CU分割成较高深度的CU的1/4或1/2不同,在一些情况下可以将较低深度的CU分割成较高深度的CU的1/5、1/3、3/8、3/5、2/3或5/8,并且对CU进行分割的方法不限于此。
具有多类型树的四叉树编码块结构可以提供非常灵活的块分割结构。由于多类型树中支持的分割类型,在一些情况下不同的分割图案可以潜在地产生相同的编码块结构。在图像编码设备和解码设备中,通过限制此类冗余分割图案的出现,可以减少分割信息的数据量。
另外,在根据本文件的视频/图像的编码和解码中,图像处理基础可以具有分层结构。一个画面可以被分成一个或更多个拼块、图块、切片和/或拼块组。一个切片可以包括一个或更多个图块。一个图块可以包括拼块内的一个或更多个CTU行。切片可以包括画面的图块,其中,图块的数量是整数。一个拼块组可以包括一个或更多个拼块。一个拼块可以包括一个或更多个CTU。CTU可以被分割成一个或更多个CU。拼块可以是由画面内的多个CTU组成的特定拼块行和特定拼块列组成的四边形区域。拼块组可以根据画面内的拼块栅格扫描包括拼块,其中,拼块的数量是整数。切片报头可以承载适用于对应切片(切片中的块)的信息/参数。当编码设备或解码设备具有多核处理器时,可以并行执行针对拼块、切片、图块和/或拼块组的编码/解码过程。
在本公开中,切片或拼块组的名称或概念可以互换使用。也就是说,拼块组报头可以被称为切片报头。在本文中,切片可以具有包括帧内(I)切片、预测(P)切片和双预测(B)切片的切片类型之一。对于I切片内的块,不使用帧间预测进行预测,并且仅可以使用帧内预测。即使在这种情况下,原始样本值也可以在没有预测的情况下被编码和用信号通知。对于P切片内的块,可以使用帧内预测或帧间预测。当使用帧间预测时,仅可以使用单预测。此外,对于B切片内的块,可以使用帧内预测或帧间预测。当使用帧间预测时,可以使用作为最大范围的双向预测。
根据视频图像的特性(例如,分辨率)或考虑编码效率或并行处理,编码设备可以确定拼块/拼块组、图块、切片以及最大和最小编码单元大小。另外,关于此的信息或用于推导此的信息可以包括在比特流中。
解码设备可以获得指示当前画面的拼块/拼块组、图块、切片或拼块内的CTU是否被分割成多个编码单元的信息。编码设备和解码设备仅在特定条件下用信号通知这种信息,从而提高编码效率。
切片报头(切片报头语法)可以包括公共地适用于切片的信息/参数。APS(APS语法)或PPS(PPS语法)可以包括公共地适用于一个或更多个画面的信息/参数。SPS(SPS语法)可以包括公共地适用于一个或更多个序列的信息/参数。VPS(VPS语法)可以包括公共地适用于多个层的信息/参数。DPS(DPS语法)可以包括公共地适用于整个视频的信息/参数。DPS可以包括与编码视频序列(CVS)的组合有关的信息/参数。
另外,例如,关于拼块/拼块组/图块/切片的分割和配置的信息可以在编码阶段通过高级语法构建,并以比特流的形式发送到解码设备。
帧内预测的概述
在下文中,将详细描述由上述编码设备和解码设备执行的帧内预测。帧内预测可以指基于当前块所属的画面(下文中,当前画面)中的参考样本生成该当前块的预测样本的预测。
这将参照图8进行描述。当对当前块801应用帧内预测时,可以推导出要用于当前块801的帧内预测的邻近参考样本。当前块的邻近参考样本可以包括:包括与大小为nW×nH的当前块的左边界相邻的样本811和邻近左下角的样本812的总共2×nH个样本;包括与当前块的顶部边界相邻的样本821和邻近右上角的样本822的总共2×nW个样本;以及邻近当前块的左上角的一个样本831。另选地,当前块的邻近参考样本可以包括多列顶部邻近样本和多行左侧邻近样本。
另外,当前块的邻近参考样本可以包括:与大小为nW×nH的当前块的右边界相邻的总共nH个样本841;与当前块的底部边界相邻的总共nW个样本851;以及邻近当前块的右下角的一个样本842。
然而,当前块的一些邻近参考样本尚未解码或可能不可用。在这种情况下,解码设备可以通过用可用样本替换不可用样本来构造要用于预测的邻近参考样本。另选地,可以通过可用样本的插值来构造要用于预测的邻近参考样本。
当推导邻近参考样本时,(i)可以基于当前块的邻近参考样本的平均或插值来推导预测样本,或者(ii)可以基于当前块的邻近参考样本当中的相对于预测样本在特定(预测)方向上存在的参考样本来推导预测样本。(i)的情况可以称为非定向模式或非角度模式,(ii)的情况可以称为定向模式或角度模式。另外,可以通过对基于邻近参考样本当中的当前块的预测样本位于当前块的帧内预测模式的预测方向的相反方向的第二邻近样本和第一邻近样本进行插值来生成预测样本。上述情况可以称为线性插值帧内预测(LIP)。另外,可以通过使用线性模型基于亮度样本生成色度预测样本。这种情况可以称为LM模式。另外,可以在经滤波的邻近参考样本的基础上推导出当前块的临时预测样本,并且可以通过对临时预测样本和现有邻近参考样本(即,未滤波的邻近参考样本)当中的根据帧内预测模式推导出的至少一个参考样本进行加权求和来推导出当前块的预测样本。上述情况可以称为位置相关帧内预测(PDPC)。另外,可以在当前块的多个邻近参考样本行中选择具有最高预测精度的参考样本行,以通过使用位于对应行中的预测方向的参考样本推导出预测样本。此时,可以通过将所使用的参考样本行指示(用信号通知)给解码设备来执行帧内预测编码。上述情况可以称为多参考线(MRL)帧内预测或基于MRL的帧内预测。另外,可以将当前块分为垂直或水平子分区,以基于相同的帧内预测模式执行帧内预测,并且可以基于每个子分区推导出邻近参考样本并使用。也就是说,在这种情况下,当前块的帧内预测模式同等地应用于子分区,并且基于每个子分区推导并使用邻近参考样本,从而在某些情况下提高帧内预测性能。这种预测方法可以称为帧内子分区(ISP)或基于ISP的帧内预测。这些帧内预测方法可以称为与帧内预测模式(例如,DC模式、平面模式和定向模式)区分开的帧内预测类型。帧内预测类型可以称为诸如帧内预测方案或附加帧内预测模式的各种术语。例如,帧内预测类型(或附加帧内预测模式)可以包括从上述LIP、PDPC、MRL和ISP的组中选择的至少一种。除了诸如LIP、PDPC、MRL和ISP的特定帧内预测类型之外的一般帧内预测方法可以称为正常帧内预测类型。正常帧内预测类型可以指不应用特定帧内预测类型的情况,并且可以基于上述帧内预测模式执行预测。此外,必要时,可以对推导出的预测样本进行后滤波。
具体地,帧内预测过程可以包括帧内预测模式/类型确定步骤、邻近参考样本推导步骤和基于帧内预测模式/类型的预测样本推导步骤。另外,必要时,可以对推导出的预测样本执行后滤波步骤。
此外,除了上述帧内预测类型之外,还可以使用仿射线性加权帧内预测(ALWIP)。ALWIP可以称为线性加权帧内预测(LWIP),或矩阵加权帧内预测或基于矩阵的帧内预测(MIP)。当MIP应用于当前块时,当前块的预测样本可以通过以下方式推导出:i)使用经过求平均过程的邻近参考样本,ii)执行矩阵向量乘法过程,并且必要时还执行iii)水平/垂直插值过程。MIP的帧内预测模式可以与在LIP、PDPC、MRL、ISP帧内预测或正常帧内预测中使用的帧内预测模式不同。MIP的帧内预测模式可以称为MIP帧内预测模式、MIP预测模式或MIP模式。例如,可以根据MIP的帧内预测模式来设置矩阵向量乘法中使用的不同矩阵和偏移。在本文中,矩阵可以称为(MIP)加权矩阵,偏移可以称为(MIP)偏移向量或(MIP)偏置向量。稍后将描述详细的MIP方法。
编码设备中基于帧内预测和帧内预测单元的块重构过程可以示意性地包括例如以下描述的内容。步骤S910可以由编码设备的帧内预测单元185执行。步骤S920可以由残差处理器执行,该残差处理器包括从编码设备的减法器115、变换器120、量化器130、解量化器140和逆变换器150的组中选择的至少一个。具体地,步骤S920可以由编码设备的减法器115执行。在步骤S930,预测信息可以由帧内预测单元185推导出,并且可以由熵编码器190编码。在步骤S930,残差信息可以由残差处理器推导出,并且可以由熵编码器190编码。残差信息是关于残差样本的信息。残差信息可以包括关于残差样本的量化变换系数的信息。如上所述,可以通过编码设备的变换器120将残差样本推导为变换系数,并且可以通过量化器130将变换系数推导为量化变换系数。关于量化变换系数的信息可以由熵编码器190通过残差编码过程编码。
编码设备可以在步骤S910对当前块执行帧内预测。编码设备推导当前块的帧内预测模式/类型,推导当前块的邻近参考样本,并基于帧内预测模式/类型和邻近参考样本在当前块中生成预测样本。在本文中,帧内预测模式/类型的确定、邻近参考样本的推导以及预测样本的生成过程可以同时执行,或者可以在其它过程之前执行任意一个过程。例如,尽管未示出,但编码设备的帧内预测单元185可以包括帧内预测模式/类型确定单元、参考样本推导单元和预测样本推导单元。帧内预测模式/类型确定单元可以确定当前块的帧内预测模式/类型,参考样本推导单元可以推导当前块的邻近参考样本,并且预测样本推导单元可以推导当前块的预测样本。此外,当执行稍后将描述的预测样本滤波过程时,帧内预测单元185还可以包括预测样本滤波器。编码设备可以确定多个帧内预测模式/类型当中的应用于当前块的模式/类型。编码设备可以比较帧内预测模式/类型的RD成本并确定当前块的最优帧内预测模式/类型。
此外,编码设备可以执行预测样本滤波过程。预测样本滤波可以称为后滤波。通过预测样本滤波过程,可以对部分或全部预测样本进行滤波。在某些情况下,可以省略预测样本滤波过程。
在步骤S920,编码设备可以基于(经滤波的)预测样本生成当前块的残差样本。编码设备可以基于相位比较当前块的原始样本中的预测样本,并且可以推导出残差样本。
在步骤S930,编码设备可以对包括关于帧内预测的信息(预测信息)和关于残差样本的残差信息的图像信息进行编码。预测信息可以包括帧内预测模式信息和帧内预测类型信息。编码设备可以以比特流的形式输出编码图像信息。输出比特流可以通过存储介质或网络传输到解码设备。
残差信息可以包括将在后面描述的残差编码语法。编码设备可以通过对残差样本进行变换/量化来推导量化变换系数。残差信息可以包括关于量化变换系数的信息。
此外,如上所述,编码设备可以生成重构画面(包括重构样本和重构块)。为此,编码设备可以对量化变换系数执行解量化/逆变换并且推导(修改的)残差样本。在残差样本的变换/量化之后执行解量化/逆变换的原因是为了推导与如上所述由解码设备推导出的残差样本相同的残差样本。编码设备可以基于预测样本和(修改的)残差样本来生成包括当前块的重构样本的重构块。基于重构块,可以生成当前画面的重构画面。如上所述,还可以将环路内滤波过程应用于重构画面。
解码设备中的基于帧内预测和帧内预测单元的视频/图像解码过程可以示意性地包括例如以下描述的内容。解码设备可以执行与编码设备执行的操作对应的操作。
步骤S1010到步骤S1030可以由解码设备的帧内预测单元265执行。步骤S1010中的预测信息和步骤S1040中的残差信息可以由解码设备的熵解码器210从比特流中获得。包括解码设备的解量化器220或逆变换器230或两者的残差处理器可以基于残差信息推导当前块的残差样本。具体地,残差处理器的解量化器220可以基于根据残差信息推导出的量化变换系数来执行解量化,并且可以推导变换系数。残差处理器的逆变换器230可以对变换系数执行逆变换并且可以推导当前块的残差样本。步骤S1050可以由解码设备的加法器235或重构器执行。
具体地,解码设备可以在步骤S1010基于接收到的预测信息(帧内预测模式/类型信息)推导当前块的帧内预测模式/类型。解码设备可以在步骤S1020推导当前块的邻近参考样本。在步骤S1030,解码设备可以基于帧内预测模式/类型和邻近参考样本在当前块中生成预测样本。在这种情况下,解码设备可以执行预测样本滤波过程。预测样本滤波可以称为后滤波。通过预测样本滤波过程,可以对部分或全部预测样本进行滤波。在某些情况下,可以省略预测样本滤波过程。
解码设备可以基于接收到的残差信息生成当前块的残差样本。解码设备可以基于预测样本和残差样本生成当前块的重构样本,并且可以在步骤S1040推导包括重构样本的重构块。基于重构块,可以生成当前画面的重构画面。如上所述,还可以将环路内滤波过程应用于重构画面。
在本文中,尽管未示出,但解码设备的帧内预测单元265可以包括帧内预测模式/类型确定单元、参考样本推导单元和预测样本推导单元。帧内预测模式/类型确定单元可以基于从熵解码器210获得的帧内预测模式/类型信息来确定当前块的帧内预测模式/类型。参考样本推导单元可以推导当前块的邻近参考样本。预测样本推导单元可以推导当前块的预测样本。此外,当执行上述预测样本滤波过程时,帧内预测单元265还可以包括预测样本滤波器。
例如,帧内预测模式信息可以包括标志信息(例如,intra_luma_mpm_flag),其指示是将最可能模式(MPM)应用到当前块还是应用剩余模式。当MPM应用于当前块时,预测模式信息还可以包括指示帧内预测模式候选(MPM候选)之一的索引信息(例如,intra_luma_mpm_idx)。帧内预测模式候选(MPM候选)可以被构造为MPM候选列表或MPM列表。另外,当MPM不应用于当前块时,帧内预测模式信息还可以包括指示除了帧内预测模式候选(MPM候选)之外的剩余帧内预测模式之一的剩余模式信息(例如,intra_luma_mpm_remainder)。解码设备可以基于帧内预测模式信息确定当前块的帧内预测模式。可以针对上述MIP构建单独的MPM列表。
另外,帧内预测类型信息可以以各种形式实现。例如,帧内预测类型信息可以包括指示帧内预测类型之一的帧内预测类型索引信息。作为另一示例,帧内预测类型信息可以包括指示MRL是否应用于当前块以及当MRL应用于当前块时使用哪个参考样本行的参考样本行信息(例如,intra_luma_ref_idx)、指示是否将ISP应用于当前块的ISP标志信息(例如,intra_subpartitions_mode_flag)、指示应用ISP时子分区的分区类型的ISP类型信息(例如,intra_subpartitions_split_flag)、指示是否应用PDCP的标志信息或指示是否应用LIP的标志信息中的至少一个。另外,帧内预测类型信息可以包括指示MIP是否应用于当前块的MIP标志。
帧内预测模式信息和/或帧内预测类型信息可以通过本文档中描述的编码方法进行编码/解码。例如,帧内预测模式信息和/或帧内预测类型信息可以基于截断(莱斯(rice))二进制码通过熵编码(例如,CABAC、CAVLC)进行编码/解码。
量化/解量化
如上所述,编码设备的量化器可以通过对变换系数应用量化来推导量化变换系数。编码设备的解量化器或解码设备的解量化器可以通过对量化变换系数应用解量化来推导变换系数。
在视频/静止图像的编码和解码中,可以改变量化比,并且可以使用改变的量化比来调整压缩比。从实现的角度,考虑到复杂度,可以使用量化参数(QP)来代替直接使用量化比。例如,可以使用具有0至63的整数值的量化参数,并且每个量化参数值可以对应于实际的量化比。另外,亮度分量(亮度样本)的量化参数QPY和色度分量(色度样本)的量化参数QPC可以被设置为彼此不同。
在量化处理中,可以输入变换系数C并除以量化比Qstep,并在此基础上获得量化变换系数C’。在这种情况下,考虑到计算复杂度,可以将量化比乘以标度以成为整数形式,并且可以对与标度值对应的值进行移位运算。基于量化比和标度值的乘积,可以推导出量化标度。也就是说,可以根据QP推导出量化标度。量化标度可以应用于变换系数C,并且在此基础上,可以推导出量化变换系数C’。
解量化处理是量化处理的逆处理。量化变换系数C’可以乘以量化比Qstep,在此基础上,可以获得重构变换系数C”。在这种情况下,可以根据量化参数推导出级别标度。可以将级别标度应用于量化变换系数C’,并且在此基础上,可以推导出重构变换系数C”。由于变换和/或量化处理中的损失,重构变换系数C”可以与原始变换系数C略有不同。因此,编码设备可以以与解码设备相同的方式执行解量化。
此外,可以应用根据频率调整量化强度的自适应频率加权量化技术。自适应频率加权量化技术是一种应用随频率变化的量化强度的方法。在自适应频率加权量化中,可以通过使用预定义的量化缩放矩阵来应用随频率变化的量化强度。也就是说,还可以基于量化缩放矩阵执行上述量化/解量化处理。例如,可以根据当前块的大小和/或应用于当前块以生成当前块的残差信号的预测模式是帧间预测还是帧内预测来使用不同的量化缩放矩阵。量化缩放矩阵可以称为量化矩阵或缩放矩阵。量化缩放矩阵可以是预定义的。另外,对于频率自适应缩放,用于量化缩放矩阵的频率特定量化缩放信息可以由编码设备构建/编码,并且可以用信号通知给解码设备。频率特定量化标度信息可以称为量化缩放信息。频率特定量化标度信息可以包括缩放列表数据(scaling_list_data)。可以基于缩放列表数据推导出(修改的)量化缩放矩阵。另外,频率特定量化标度信息可以包括指示是否存在缩放列表数据的存在标志信息。另选地,当缩放列表数据以高级别(例如,SPS)被用信号通知时,还包括指示缩放列表数据是否以较低级别(例如,PPS或拼块组头等)被修改的信息。
变换/逆变换
如上所述,编码设备可以基于通过帧内/帧间/IBC预测而预测出的块(预测样本)推导残差块(残差样本),并且可以通过将变换和量化应用于推导出的残差样本来推导量化变换系数。通过被包括在残差编码语法中,关于量化变换系数的信息(残差信息)可以被编码并以比特流的形式输出。解码设备可以从比特流中获得关于量化变换系数的信息(残差信息),并且可以通过执行解码来推导出量化变换系数。解码设备可以基于量化变换系数通过解量化/逆变换来推导残差样本。如上所述,可以省略量化/解量化或变换/逆变换或两者。在省略变换/逆变换时,变换系数可以称为系数或残差系数,为了表述的一致性,也可以仍称为变换系数。可以基于变换跳过标志(例如,transform_skip_flag)来用信号通知是否省略了变换/逆变换。transform_skip_flag的第一值(例如,0)可以指示是否省略变换是由另一语法元素确定的。transform_skip_flag的第二值(例如,1)可以指示变换省略(例如,跳过)。
可以基于一个或多个变换内核来执行变换/逆变换。例如,可以应用用于执行变换/逆变换的多重变换选择(MTS)方案。在这种情况下,可以选择多个变换内核集中的一些并将其应用于当前块。变换内核可以称为诸如变换矩阵、变换类型等的各种术语。例如,变换内核集可以指垂直方向的变换内核(垂直变换内核)和水平方向的变换内核(水平变换内核)的组合。
可以在每个CU或TU的基础上执行变换/逆变换。也就是说,变换/逆变换可以应用于CU中的残差样本或TU中的残差样本。CU大小和TU大小可以相同,或者多个TU可以存在于CU区域中。此外,CU大小一般可以指亮度分量(样本)CB大小。TU大小通常可以指亮度分量(样本)TB大小。可以基于根据颜色格式(色度格式,例如,4:4:4、4:4:4、4:2:2、4:2:0等)的分量比的亮度分量(样本)CB或TB大小来推导色度分量(样本)CB或TB大小。TU大小可以基于maxTbSize推导。例如,当CU大小大于maxTbSize时,可以从CU推导出具有maxTbSize的多个TU(TB),并且可以在每个TU(TB)的基础上执行变换/逆变换。在确定是否应用各种帧内预测类型(例如,ISP)时可以考虑maxTbSize。可以预先确定关于maxTbSize的信息。另选地,关于maxTbSize的信息可以由编码设备生成和编码,并用信号通知给编码设备。
熵编码
如上面参照图2所述,一些或所有视频/图像信息可以由熵编码器190进行熵编码。参照图3描述的一些或所有视频/图像信息可以由熵解码器310进行熵解码。在这种情况下,视频/图像信息可以在每个语法元素的基础上被编码/解码。在本文档中,信息的编码/解码可以包括通过本段描述的方法进行编码/解码。
图11示出了用于对一个语法元素进行编码的CABAC的框图。在CABAC的编码处理中,首先,当输入信号是语法元素而不是二进制值时,通过二值化将输入信号变换为二进制值。当输入信号已经是二进制值时,输入信号会旁路二值化。在本文中,可以将构成二进制值的各个二进制数0或1称为信元。例如,二值化后的二进制串(信元串)为110,1、1、0中的每一个称为一个信元。一个语法元素的信元可以指代语法元素的值。
经二值化的信元可以被输入到常规编码引擎或旁路编码引擎。常规编码引擎可以指派将概率值应用到对应信元的上下文模型,并且可以基于指派的上下文模型对信元进行编码。在对每个信元进行编码之后,常规编码引擎可以更新信元的概率模型。以这种方式编码的信元可以称为上下文编码信元。旁路编码引擎可以省略用于估计输入信元的概率的过程和用于在编码之后更新应用于信元的概率模型的过程。在旁路编码引擎的情况下,通过应用均匀概率分布(例如,50:50)而不是指派上下文来对输入信元进行编码,从而提高编码率。以这种方式编码的信元可以称为旁路信元。可以针对要被上下文编码(常规编码)的每个信元指派和更新上下文模型,并且可以基于ctxidx或ctxInc来指示上下文模型。ctxidx可以在ctxInc的基础上推导出来。具体地,例如,指示每个常规编码信元的上下文模型的上下文索引(ctxidx)可以推导为上下文索引增量(ctxInc)和上下文索引偏移(ctxIdxOffset)之和。在本文中,可以推导出随信元变化的ctxInc。ctxIdxOffset可以由ctxIdx的最低值表示。ctxIdx的最低值可以称为ctxIdx的初始值(initValue)。ctxIdxOffset是通常用于区别于其它语法元素的上下文模型的值,可以基于ctxinc来区分/推导出一个语法元素的上下文模型。
在熵编码过程中,确定是通过常规编码引擎执行编码还是通过旁路编码引擎执行编码,并且可以切换编码路径。熵解码可以以相反的顺序执行与熵编码相同的处理。
例如,上述熵编码可以如图12和图13中那样执行。参照图12和图13,编码设备(熵编码器)可以对图像/视频信息执行熵编码过程。图像/视频信息可以包括分割相关信息、预测相关信息(例如,帧间/帧内预测分类信息、帧内预测模式信息和帧间预测模式信息)、残差信息和环路内滤波相关信息,或者可以包括与其相关的各种语法元素。可以基于每个语法元素来执行熵编码。图12的步骤S1210至步骤S1220可以由上述图12的编码设备的熵编码器190执行。
编码设备可以在步骤S1210中对目标语法元素执行二值化。在本文中,可以基于诸如截断莱斯二值化处理和固定长度二值化处理的各种二值化方法来进行二值化,并且可以预先定义目标语法元素的二值化方法。二值化处理可以由熵编码器190中的二值化单元191执行。
编码设备可以在步骤S1220中对目标语法元素执行熵编码。编码设备可以基于诸如上下文自适应算术编码(CABAC)或上下文自适应可变长度编码(CAVLC)对目标语法元素的信元串执行基于常规编码(基于上下文)或基于旁路编码的编码。输出可以被包括在比特流中。熵编码过程可以由熵编码器190中的熵编码处理器192执行。如上所述,比特流可以通过(数字)存储介质或网络传输到解码设备。
参照图14和图15,解码设备(熵解码器)可以对编码图像/视频信息进行解码。图像/视频信息可以包括分割相关信息、预测相关信息(例如,帧间/帧内预测分类信息、帧内预测模式信息和帧间预测模式信息)、残差信息和环路内滤波相关信息,或者可以包括与其相关的各种语法元素。可以基于每个语法元素来执行熵编码。步骤S1410至步骤S1420可以由上述图3的解码设备的熵解码器210执行。
解码设备可以在步骤S1410中对目标语法元素执行二值化。在本文中,可以基于诸如截断莱斯二值化处理和固定长度二值化处理的各种二值化方法进行二值化,并且可以预先定义目标语法元素的二值化方法。解码设备可以通过二值化过程推导针对目标语法元素的可用值的可用信元串(信元串候选)。二值化过程可以由熵解码器210中的二值化单元211执行。
解码设备可以在步骤S1420中对目标语法元素执行熵解码。当解码设备从比特流中的输入比特依次解码和解析目标语法元素的每个信元时,并且可以将推导出的信元串与语法元素的可用信元串进行比较。当推导出的信元串与可用的信元串之一相同时,与信元串对应的值可以推导为语法元素的值。如果不是,则进一步解析比特流中的下一比特,并再次执行上述过程。通过该处理,比特流中的特定信息(特定语法元素)的开始比特或结束比特不被使用,而是可变长度比特被用于用信号通知信息。通过这种方式,相对较少的比特被指派低值,从而提高了整体编码效率。
解码设备可以基于诸如CABAC或CAVLC的熵编码方案对来自比特流的信元串中的每个信元执行基于上下文或基于旁路的解码。熵解码过程可以由熵解码器210中的熵解码处理器212执行。比特流可以包括如上所述的用于图像/视频解码的各种类型的信息。如上所述,可以通过(数字)存储介质或网络将比特流传输到解码设备。
在本文档中,包括语法元素的表(语法表)可以用于表示从编码设备到解码设备的信息的信令。包括本文档中使用的语法元素的表中的语法元素的顺序可以指从比特流中解析语法元素的顺序。编码设备可以构造和编码语法表,使得解码设备按照解析顺序解析语法元素。解码设备可以按照解析顺序从比特流中解析和解码语法表的语法元素,从而可以获得语法元素的值。
通用图像/视频编码过程
在图像/视频编码中,构成图像/视频的画面可以根据一系列的解码顺序被编码/解码。与解码画面的输出顺序相对应的画面顺序可以被设置为与解码顺序不同,并且基于此,在执行帧间预测时可以执行前向预测以及后向预测。
图16示出了本文档的实施方式适用于的示意性画面解码过程的示例。在图16中,步骤S1610可以由以上参照图3描述的解码设备的熵解码器210执行。步骤S1620可以由包括帧内预测单元265和帧间预测单元260的预测单元执行。步骤S1630可以由包括解量化器220和逆变换器230的残差处理器执行。步骤S1640可以由加法器235执行。步骤S1650可以由滤波器240执行。步骤S1610可以包括本文档中描述的信息解码过程。步骤S1620可以包括本文档中描述的帧间/帧内预测过程。步骤S1630可以包括本文档中描述的残差处理过程。步骤S1640可以包括本文档中描述的块/画面重构过程。步骤S1650可以包括本文档中描述的环路内滤波过程。
参照图16,画面解码过程可以示意性地包括,如上面参照图3所描述的,步骤S1610中从比特流(通过解码)获取图像/视频信息的过程、步骤S1620至步骤S1640中的画面重构过程以及步骤S1650中重构画面的环路内滤波过程。画面重构过程可以基于通过步骤S1620中的帧间/帧内预测以及本文档中描述的步骤S1630中的残差处理(量化变换系数的解量化和逆变换)处理获得的预测样本和残差样本来执行。对于通过画面重构过程生成的重构画面,可以通过环路内滤波过程生成修改重构画面。修改重构画面可以作为解码画面输出,并且可以存储在解码画面缓冲器或解码设备的存储器250中,以在稍后当画面被解码时用作帧间预测过程中的参考画面。在某些情况下,可以省略环路内滤波过程。在这种情况下,重构画面可以作为解码画面输出,并且可以存储在解码画面缓冲器或解码设备的存储器250中,以在稍后当画面被解码时用作帧间预测过程中的参考画面。如上所述,步骤S1650中的环路内滤波过程可以包括去块滤波过程、样本自适应偏移(SAO)过程、自适应环路滤波器(ALF)过程和/或双边滤波过程。可以省略其中的一些或全部。另外,去块滤波过程、样本自适应偏移(SAO)过程、自适应环路滤波器(ALF)过程和双边滤波器过程中的一个或一些可以依次应用,或者它们全部都可以依次应用。例如,可以将去块滤波过程应用于重构画面,然后可以执行SAO过程。另选地,例如,可以将去块滤波过程应用于重构画面,然后可以执行ALF过程。这可以以与在编码设备中相同的方式来执行。
图17示出了本文档的实施方式适用于的示意性画面编码过程的示例。在图17中,步骤S1710可以由以上参照图2描述的编码设备的包括帧内预测单元185或帧间预测单元180的预测单元执行。步骤S1720可以由包括变换器120和/或量化器130的残差处理器执行。步骤S1730可以由熵编码器190执行。步骤S1710可以包括本文档中描述的帧间/帧内预测过程。步骤S1720可以包括本文档中描述的残差处理过程。步骤S1730可以包括本文档中描述的信息编码过程。
参照图17,画面编码过程可以示意性地包括,如上面参照图2所描述的,用于对用于画面重构的信息(例如,预测信息、残差信息和分割信息)进行编码并以比特流的形式输出信息的过程、用于生成当前画面的重构画面的过程以及用于对重构画面应用环路内滤波的(可选的)过程。编码设备可以通过解量化器140和逆变换器150从量化变换系数推导出(修改的)残差样本,并且可以基于作为在步骤S1710中的输出的预测样本和(修改的)残差样本生成重构画面。生成的重构画面可以与上述解码设备生成的重构画面相同。可以对重构画面执行环路内滤波过程以生成修改重构画面。修改重构画面可以存储在解码画面缓冲器或存储器170中。与解码设备中的情况类似,修改重构画面可以稍后在画面被编码时用作帧间预测过程中的参考画面。如上所述,在某些情况下,可以省略一些或全部的环路内滤波过程。当执行环路内滤波过程时,(环路)滤波相关信息(参数)可以由熵编码器190编码并以比特流的形式输出。解码设备可以以与编码设备相同的方式基于滤波相关信息执行环路内滤波过程。
通过这种环路内滤波过程,可以减少在图像/视频编码期间产生的噪声(例如,块状伪影和振铃伪影),并且可以提高主观/客观的视觉质量。另外,编码设备和解码设备都执行环路内滤波过程,使得编码设备和解码设备可以推导相同的预测结果,可以增加图像编码的可靠性,并且可以减少传输用于画面编码的数据量。
如上所述,可以在解码设备以及编码设备中执行画面重构过程。可以基于根据每个块的帧内预测/帧间预测来生成重构块,并且可以生成包括重构块的重构画面。当当前画面/切片/拼块组是I画面/切片/拼块组时,可以仅基于帧内预测来重构包括在当前画面/切片/拼块组中的块。此外,当当前画面/切片/拼块组是P或B画面/切片/拼块组时,可以基于帧内预测或帧间预测来重构包括在当前画面/切片/拼块组中的块。在这种情况下,可以将帧间预测应用于当前画面/切片/拼块组中的一些块,并且可以将帧内预测应用于一些剩余块。画面的颜色分量可以包括亮度分量和色度分量。除非本文档明确限定,否则本文档提出的方法和实施方式可以应用于亮度分量和色度分量。
编码层次和结构的示例
可以根据例如稍后描述的编码层次和结构来处理根据本文档的编码视频/图像。
图18是示出了编码图像的层次结构的图。编码图像可以分为处置图像及其本身的解码处理的视频编码层(VCL,视频编码层次)、用于传输和存储编码信息的子系统以及存在于VCL与子系统之间并且负责网络自适应功能的网络抽象层(NAL,网络抽象层次)。
在VCL中,可以生成包括压缩图像数据(切片数据)的VCL数据。另选地,可以生成包括诸如画面参数集(PPS)、序列参数集(SPS)和视频参数集(VPS)的信息或图像解码处理另外需要的补充增强信息(SEI)消息的参数集。
在NAL中,将报头信息(NAL单元报头)添加到在VCL中生成的原始字节序列有效载荷(RBSP),从而可以生成NAL单元。在本文中,RBSP指的是在VCL中生成的切片数据、参数集和SEI消息。NAL单元报头可以包括根据包括在NAL单元中的RBSP数据指定的NAL单元类型信息。
如图所示,NAL单元可以根据VCL中生成的RBSP分为VCL NAL单元和非VCL NAL单元。VCL NAL单元可以指包括关于图像的信息(切片数据)的NAL单元。非VCL NAL单元可以指包括解码图像所需的信息(参数集或SEI消息)的NAL单元。
利用根据子系统的数据标准附加的报头信息,可以通过网络传输VCL NAL单元和非VCL NAL单元。例如,可以将NAL单元转换为诸如H.266/VVC文件格式、实时传输协议(RTP)、传输流(TS)的预定标准的数据形式,并且结果数据可以通过各种网络传输。
如上所述,关于NAL单元,可以根据包括在NAL单元中的RBSP数据结构来指定NAL单元类型,并且可以将关于NAL单元类型的信息存储在NAL单元报头中并用信号通知。
例如,根据NAL单元是否包括关于图像的信息(切片数据),粗略分类为VCL NAL单元类型和非VCL NAL单元类型。VCL NAL单元类型可以根据包括在VCL NAL单元中的画面的特征和类型来分类,并且非VCL NAL单元类型可以根据参数集的类型来分类。
下面以根据非VCL NAL单元类型包括的参数集的类型指定的NAL单元类型为例。
-APS(适配参数集)NAL单元:一种包括APS的NAL单元
-DPS(解码参数集)NAL单元:一种包括DPS的NAL单元
-VPS(视频参数集)NAL单元:一种包括VPS的NAL单元
-SPS(序列参数集)NAL单元:一种包括SPS的NAL单元,
-PPS(画面参数集)NAL单元:一种包括PPS的NAL单元
上述NAL单元类型具有针对NAL单元类型的语法信息,并且语法信息可以被存储在NAL单元报头中并被用信号通知。例如,语法信息可以是nal_unit_type,并且NAL单元类型可以由nal_unit_type值指定。
切片报头(切片报头语法)可以包括公共地适用于切片的信息/参数。APS(APS语法)或PPS(PPS语法)可以包括公共地适用于一个或更多个切片或画面的信息/参数。SPS(SPS语法)可以包括公共地适用于一个或更多个序列的信息/参数。VPS(VPS语法)可以包括公共地适用于多个层的信息/参数。DPS(DPS语法)可以包括公共地适用于整个视频的信息/参数。DPS可以包括与编码视频序列(CVS)的级联有关的信息/参数。在本文档中,高级语法(HLS)可以包括从APS语法、PPS语法、SPS语法、VPS语法、DPS语法和切片报头语法的组中选择的至少一种。
在本文档中,由编码设备编码并以比特流的形式用信号通知给解码设备的图像/视频信息可以包括画面内的分割相关信息、帧内/帧间预测信息、残差信息和环路滤波信息以及包括在切片报头中的信息、包括在APS中的信息、包括在PPS中的信息、包括在SPS中的信息和/或包括在VPS中的信息。
自适应颜色变换(ACT)的概述
自适应颜色变换(ACT)是一种颜色空间变换(转换)技术,其用于去除颜色分量之间不必要的交叠,并已在HEVC屏幕内容扩展版本中使用。这也可以应用于VVC。
在HEVC屏幕内容扩展(HEVC SCC扩展)中,ACT已被用于将预测残差从现有颜色空间自适应地转换到YCgCo颜色空间。可以通过针对每个变换基础用信号通知一个ACT标志来可选地选择两个颜色空间之一。
例如,标志的第一值(例如,1)可以指示变换基础的残差被编码在原始颜色空间中。标志的第二值(例如,1)可以指示变换基础的残差被编码在YCgCo颜色空间中。
图19是示出应用了ACT的解码处理的实施方式的图。在图19的实施方式中,运动补偿预测可以对应于本公开中的帧间预测。
如图19所示,可以基于预测输出值和残差输出值生成重构画面(或重构块、重构样本阵列、重构样本、重构信号)。在本文中,残差输出值可以是逆变换输出值。这里,逆变换可以是正常的逆变换。在本文中,正常逆变换可以是基于MTS的逆变换或逆低频不可分离变换(LFNST)。
在本文中,预测输出值可以是预测块、预测样本阵列、预测样本或预测信号。残差输出值可以是残差块、残差样本阵列、残差样本或残差信号。
例如,就编码设备而言,可以对基于预测样本推导出的残差样本执行ACT处理。另外,可以提供ACT处理的输出值作为正常变换处理的输入。在本文中,正常变换处理可以是基于MTS的变换或LFNST。
关于(逆)ACT的信息(参数)可以由编码设备生成和编码,并且可以以比特流的形式发送到解码设备。
解码设备可以获得、解析和解码(逆)ACT相关信息(参数),并且可以基于(逆)ACT相关信息(参数)执行逆ACT。
在逆ACT的基础上,可以推导出(修改)残差样本(或残差块)。例如,可以通过对量化(变换)系数应用解量化来推导出(变换)系数。另外,可以通过对(变换)系数执行逆变换来推导出残差样本。另外,可以通过对残差样本应用逆ACT来获得(修改的)残差样本。关于(逆)ACT的信息(参数)将在后面详细描述。
在实施方式中,HEVC中使用的核心变换函数可以用作颜色空间变换的核心变换函数(变换内核)。例如,可以使用如下式中所示的用于前向变换和后向变换的矩阵。
[式1]
Figure BDA0003703156000000341
[式2]
Figure BDA0003703156000000342
在本文中,C0、C1和C2可以对应于G、B和R。在本文中,G表示绿色分量,B表示蓝色分量,并且R表示红色分量。另外,C0’、C1’和C2’可以对应于Y、Cg和Co。在本文中,Y表示亮度,Cg表示绿色色度,并且Co表示橙色色度分量。
另外,为了补偿颜色变换前后残差的动态范围变化,可以按照(-5,-5,-3)对变换残差应用QP调整。稍后将描述QP调整的细节。
此外,在根据实施方式的编码和解码处理中,当ACT适用时,可以应用以下限制。
-在双树编码/解码的情况下,ACT被停用。例如,ACT可以仅应用于单树编码/解码。
-应用ISP编码和解码时,可以停用ACT。
-对于应用了BDPCM的色度块,可以停用ACT。仅对于应用了BDPCM的亮度块,可以激活ACT。
-当可以应用ACT时,可以停用CCLM。
图20是示出了用信号通知与ACT有关的语法元素的序列参数集语法表的实施方式的图。
图21至图27是依次示出用信号通知与ACT有关的语法元素的编码基础的语法表的实施方式的图。
如图20所示,作为指示在解码处理中是否激活ACT的ACT激活标志,可以使用sps_act_enabled_flag 2010。
sps_act_enabled_flag的第一值(例如,0)可以指示ACT未被使用,并且没有在编码基础的语法中提供指示是否在编码基础中应用ACT的标志cu_act_enabled_flag 2110、2710。
sps_act_enabled_flag的第二值(例如,1)可以指示可以使用ACT,并且可以在编码基础的语法中提供cu_act_enabled_flag。
当在比特流中没有获得sps_act_enabled_flag时,sps_act_enabled_flag的值可以被推导为第一值(例如,0)。
另外,如图21所示,作为指示当前编码基础的残差是否在YCgCo颜色空间中编码的ACT标志,可以使用cu_act_enabled_flag 2110、2710。
cu_act_enabled_flag的第一值(例如,0)可以指示当前编码基础的残差被编码在原始颜色空间中。cu_act_enabled_flag的第二值(例如,1)可以指示当前编码基础的残差被编码在YCgCo颜色空间中。
当比特流中未提供cu_act_enabled_flag时,标志可以被推导为第一值(例如,0)。在本文中,原始颜色空间可以是RGB颜色空间。
使用ACT QP偏移的变换基础的QP推导方法
在实施方式中,在变换系数的缩放处理中,量化参数的推导处理和Qp更新处理可以如下执行。例如,可以使用以下参数来执行量化参数推导处理。
-亮度坐标(xCb,yCb),其指示当前编码块的左上亮度样本相对于当前画面的左上亮度样本的相对坐标,
-变量cbWidth,其指示基于每个亮度样本的当前编码块的宽度,
-变量cbHeight,其指示基于每个亮度样本的当前编码块的高度,
-变量treeType,其指示是使用单树(SINGLE_TREE)还是双树来分割当前编码树节点,并且指示在使用双树时该双树是亮度分量双树(DAUL_TREE_LUMA)还是色度分量双树(DAUL_TREE_CHROMA)
在本处理中,可以推导出亮度量化参数Qp’Y、色度量化参数Qp’Cb、Qp’Cr和Qp’CbCr。
可变亮度位置(xQg,yQg)可以指示与当前画面的左上角样本对应的当前量化组的左上角亮度样本的位置。在本文中,水平位置xQg和垂直位置yQg可以被设置为分别等于变量CuQgTopLeftX和变量CuQgTopLeftY的值。如图28所示,变量CuQgTopLeftX和CuQgTopLeftY可以被定义为编码树语法中的预定值。
在本文中,当前量化组可以是编码树块内的四边形区域,并且可以共享同一qPY_PRED值。其宽度和高度可以等于编码树节点的宽度和高度,在该编码树节点中,左上亮度样本位置被指派给CuQgTopLeftX和CuQgTopLeftY中的每一个。
当treeType是SINGLE_TREE或DUAL_TREE_LUMA时,可以按以下步骤推导出亮度量化参数预测值qPY_PRED
1.可以如下推导出变量qPY_PRED
(条件1)当下列条件中的任何一个为真时,可以将qPY_PRED的值设置为与SliceQpY相同的值(在本文中,SliceQpY指示画面中所有切片的量化参数QpY的初始值,这可以从比特流中获得)。另选地,qPY_PRED的值可以根据解码顺序设置为紧接在前的量化组的最后亮度编码基础的亮度量化参数QpY的值。
-(条件1-1)当当前量化组是切片中的第一量化组时
-(条件1-2)当当前量化组是拼块中的第一量化组时
-(条件1-3)当当前量化组是拼块中CTB行中的第一量化组并且出现预定同步时(例如,当entropy_coding_sync_enabled_flag的值为1时)
2.可以如下推导出变量qPY_A的值。
-(条件2)当以下条件中的至少一个为真时,可以将qPY_A的值设置为qPY_PRED的值。另选地,qPY_A的值可以被设置为包括覆盖亮度样本位置(xQg-1,yQg)的亮度编码块的编码基础的亮度量化参数QpY的值。
-(条件2-1)对于由样本位置(xCb,yCb)标识的块,由样本位置(xQg-1,yQg)标识的块不是可用的邻近块,
-(条件2-2)当包括覆盖亮度样本位置(xQg-1,yQg)的亮度编码块的CTB与包括亮度样本位置(xCb,yCb)处的当前亮度编码块的CTB不同时,例如,当以下所有条件都为真时
-(条件2-2-1)(xQg-1)>>CtbLog2SizeY的值与(xCb)>>CtbLog2SizeY的值不同
-(条件2-2-2)(yQg)>>CtbLog2SizeY的值与(yCb)>>CtbLog2SizeY的值不同
3.可以如下推导出变量qPY_B的值。
-(条件3)当以下条件中的至少一个为真时,可以将qPY_B的值设置为qPY_PRED的值。另选地,qPY_B的值可以被设置为包括覆盖亮度样本位置(xQg,yQg-1)的亮度编码块的编码基础的亮度量化参数QpY的值。
-(条件3-1)对于由样本位置(xCb,yCb)标识的块,由样本位置(xQg,yQg-1)标识的块不是可用的邻近块,
-(条件3-2)当包括覆盖亮度样本位置(xQg,yQg-1)的亮度编码块的CTB与包括亮度样本位置(xCb,yCb)处的当前亮度编码块的CTB不同时,例如,当以下所有条件都为真时
-(条件3-2-1)(xQg)>>CtbLog2SizeY的值与(xCb)>>CtbLog2SizeY的值不同
-(条件3-2-2)(yQg-1)>>CtbLog2SizeY的值与(yCb)>>CtbLog2SizeY的值不同
4.可以如下推导出亮度量化参数预测值qPY_PRED
当以下所有条件都为真时,可以将qPY_PRED设置为包括覆盖亮度样本位置(xQg,yQg-1)的亮度编码块的编码基础的亮度量化参数QpY
-(条件3-1)对于由样本位置(xCb,yCb)标识的块,由样本位置(xQg,yQg-1)标识的块是可用的邻近块
-当当前量化组是拼块中CTB行中的第一量化组时
此外,当所有条件都不成立时,可以如下式所示推导出qPY_PRED
[式3]
qPY_PRED=(qPY_A+qPY_B+1)>>1
变量QpY可以如下式所示推导出。
[式4]
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffset)%(64+QpBdOffset))-QpBdOffset
在本文中,CuQpDeltaVal指示用于编码基础的亮度量化参数与其预测值之间的差。其值可以从比特流中获得。QpBdOffset指示亮度和色度量化参数范围偏移。QpBdOffset可以被预设为预定常数或从比特流中获得。例如,可以通过将预定常数乘以指示亮度或色度样本的比特深度的语法元素的值来计算QpBdOffset。可以如下式所示推导出亮度量化参数Qp’Y
[式5]
Qp’Y=QpY+QpBdOffset
当指示色度阵列的类型的变量ChromaArrayType的值不是第一值(例如,0)并且treeType是SINGLE_TREE或DUAL_TREE_CHROMA时,可以执行以下处理。
-当treeType的值为DUAL_TREE_CHROMA时,变量QpY的值可以被设置为与覆盖亮度样本位置(xCb+cbWidth/2,yCb+cbHeight/2)的亮度编码基础的亮度量化参数QpY相同的值。
-可以如下式推导出变量qPCb、qPCr和qPCbCr
[式6]
qPChroma=Clip3(-QpBdOffset,63,QpY)
qPCb=ChromaQpTable[0][qPChroma]
qPCr=ChromaQpTable[1][qPChroma]
qPCbCr=ChromaQpTable[2][qPChroma]
可以如下式推导出Cb和Cr分量的色度量化参数Qp’Cb和Qp’Cr以及联合Cb-Cr编码的色度量化参数Qp’CbCr
[式7]
Qp’Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset
Qp’Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset
Qp’CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbcr)+QpBdOffset
在上面的式中,pps_cb_qp_offset和pps_cr_qp_offset是用于推导Qp’Cb和Qp’Cr的偏移,并且可以从画面参数集的比特流中获得。slice_cb_qp_offset和slice_cr_qp_offset是用于推导Qp’Cb和Qp’Cr的偏移,并且可以从用于切片报头的比特流中获得。CuQpOffsetCb和CuQpOffsetCr是用于推导Qp’Cb和Qp’Cr的偏移,并且可以从用于变换基础的比特流中获得。
另外,例如,可以使用以下参数来执行变换系数的解量化处理。
-亮度坐标(xTbY,yTbY),其指当前亮度变换块的左上角样本相对于当前画面的左上角亮度样本的相对坐标
-变量nTbW,其指示变换块宽度
-变量nTbH,其指示变换块高度
-变量cIdx,其指示当前块的颜色分量
本处理的输出可以是缩放变换系数的阵列d。在本文中,阵列d的大小可以是(nTbW)×(nTbH)。构成它的各个元素可以标识为d[x][y]。
为此,可以如下推导出量化参数qP。当cIdx的值为0时,可以如下式所示推导出qP。
[式8]
qP=Qp’Y
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示进行推导。
[式9]
qP=Qp’CbCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP。
[式10]
qP=Qp’Cb
另选地,当cIdx的值为2时,可以如下式所示推导出qP。
[式11]
qP=Qp’Cr
之后,可以如下更新量化参数qP。另外,可以如下推导出变量rectNonTsFlag和bdShift。例如,当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时(例如,当不跳过当前变换块的变换时),可以如下式所示进行推导。
[式12]
qP=qP-(eu_act_enabled_flag[xTbY][yTbY]?5:0)
rectNonTsFlag=0
bdShift=10
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时(例如,跳过当前变换块的变换),可以如下式所示进行推导。
[式13]
qP=Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?5:0)
rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1
bdShift=BitDepth+(rectNonTsFlag?1:0)+((Log2(nTbW)+Log2(nTbH))/2)-+pic_dep_quant_enabled_flae
在本文中,QpPrimeTsMin可以指示当应用变换跳过模式时允许的最小量化参数值。这可以被确定为预定常数或者可以从与其相关的比特流的语法元素中推导出。
在本文中,后缀Y、Cb和Cr可以表示RGB颜色模型中的G、B和R颜色分量,或YCgCo颜色模型中的Y、Cg和Co颜色分量。
块差分脉冲编码调制(BDPCM)的概述
根据实施方式的图像编码设备和图像解码设备可以执行残差信号的差分编码。例如,图像编码设备可以通过从当前块的残差信号中减去预测信号来对残差信号进行编码,并且图像解码设备可以通过将预测信号与当前块的残差信号相加来对残差信号进行解码。根据实施方式的图像编码设备和图像解码设备可以通过应用下述BDPCM来执行残差信号的差分编码。
可以在量化残差域中执行根据本公开的BDPCM。量化残差域可以包括量化残差信号(或量化残差系数),并且当应用BDPCM时,可以跳过量化残差信号的变换。例如,当应用BDPCM时,可以跳过残差信号的变换并且可以执行量化。另选地,量化残差域可以包括量化变换系数。
在应用BDPCM的实施方式中,图像编码设备可以推导以帧内预测模式预测的当前块的残差块并且量化残差块,从而推导残差块。当针对当前块执行残差信号的差分编码模式时,图像编码设备可以针对残差块执行差分编码以推导修改的残差块。另外,图像编码设备可以对指定残差信号和修改的残差块的差分编码模式的差分编码模式信息进行编码,从而生成比特流。
更具体地,当BDPCM应用于当前块时,可以通过帧内预测生成包括当前块的预测样本的预测块(预测的块)。在这种情况下,用于执行帧内预测的帧内预测模式可以通过比特流用信号通知并且可以基于下述BDPCM的预测方向来推导。另外,在这种情况下,帧内预测模式可以被确定为垂直预测方向模式或水平预测方向模式之一。例如,当BDPCM的预测方向为水平方向时,可以确定帧内预测模式为水平预测方向模式,并且可以通过水平方向的帧内预测生成当前块的预测块。另选地,当BDPCM的预测方向为垂直方向时,可以确定帧内预测模式为垂直预测方向模式,并且可以通过垂直方向的帧内预测生成当前块的预测块。在应用水平方向的帧内预测时,可以将与当前块的左侧相邻的像素的值确定为包括在当前块的对应行中的样本的预测样本值。当应用垂直方向的帧内预测时,与当前块的顶部相邻的像素的值可以被确定为包括在当前块的对应列中的样本的预测样本值。当将BDPCM应用于当前块时,生成当前块的预测块的方法可以在图像编码设备和图像解码设备中同等地执行。
当将BDPCM应用于当前块时,图像编码设备可以通过从当前块中减去预测样本来生成包括当前块的残差样本的残差块。图像编码设备可以量化残差块,然后对量化残差样本与量化残差样本的预测项之间的差(或增量)进行编码。图像解码设备可以通过基于预测项和从比特流重构的差获得当前块的量化残差样本来生成当前块的量化残差块。之后,图像解码设备可以对量化残差块进行解量化,然后将其添加到预测块,从而重构当前块。
图29是例示了根据本公开的对BDPCM的残差样本进行编码的方法的图。图29的残差块可以通过在图像编码设备中从当前块中减去预测块来生成。图29的量化残差块可以通过由图像编码设备量化残差块来生成。在图29中,ri,j指定当前块中(i,j)坐标的残差样本的值。当前块的大小为M×N时,值i可以是从0至M-1,包括端点。另外,值j可以是从0至N-1,包括端点。例如,残差可以指原始块与预测块之间的差。例如,可以通过从当前块中的(i,j)坐标的原始样本的值中减去预测样本的值来推导出ri,j。例如,ri,j可以是在使用未从顶部或左侧边界样本滤波的样本执行水平帧内预测或垂直帧内预测之后的预测残差。在水平帧内预测中,沿与预测块交叉的线复制左邻近像素的值。在垂直帧内预测中,顶部邻近行被复制到预测块的单独行。
在图29中,Q(ri,j)是指当前块中坐标(i,j)的量化残差样本的值。例如,Q(ri,j)可以指ri,j的量化值。
对图29的量化残差样本上执行BDPCM的预测,并且可以生成具有M×N大小的包括修改的量化残差样本r’的修改的量化残差块R’。
当BDPCM的预测方向是水平方向时,当前块中坐标(i,j)的修改的量化残差样本的值r’i,j可以如下式所示计算。
[式14]
Figure BDA0003703156000000411
如式14所示,当BDPCM的预测方向是水平方向时,量化残差样本的值Q(r0,j)被原样指派给坐标(0,j)的值r’0,j。其它坐标(i,j)的值r’i,j可以推导为坐标(i,j)的量化残差样本的值Q(ri,j)与坐标(i-1,j)的量化残差样本的值Q(ri-1,j)的差值。也就是说,不是对坐标(i,j)的量化残差样本的值Q(ri,j)进行编码,而是将通过使用坐标(i-1,j)的量化残差样本的值Q(ri-1,j)作为预测值计算出的差值推导为修改的量化残差样本值r’i,j,然后对值r’i,j进行编码。
当BDPCM的预测方向是垂直方向时,当前块中坐标(i,j)的修改的量化残差样本的值(r’i,j)可以如下式所示计算。
[式15]
Figure BDA0003703156000000421
如式15所示,当BDPCM的预测方向是垂直方向时,量化残差样本的值Q(ri,0)被原样指派给坐标(i,0)的值r’i,0。其它坐标(i,j)的值r’i,j可以推导为坐标(i,j)的量化残差样本的值Q(ri,j)与坐标(i,j-1)的量化残差样本的值Q(ri,j-1)的差值。也就是说,不是对坐标(i,j)的量化残差样本的值Q(ri,j)进行编码,而是将通过使用坐标(i,j-1)的量化残差样本的值Q(ri,j-1)作为预测值计算出的差值推导为修改的量化残差样本值r’i,j,然后对值r’i,j进行编码。
如上所述,通过使用附近的量化残差样本值作为预测值来修改当前量化残差样本值的处理可以称为BDPCM预测。
最后,图像编码设备可以对包括修改的量化残差样本的修改的量化残差块进行编码,并且可以将得到的块发送到图像解码设备。在本文中,如上所述,不执行修改的量化残差块的变换。
图30是示出通过执行本公开的BDPCM生成的修改的量化残差块的图。
在图30中,水平BDPCM示出了当BDPCM的预测方向是水平方向时根据式14生成的修改的量化残差块。另外,垂直BDPCM示出了当BDPCM的预测方向是垂直方向时根据式15生成的修改的量化残差块。
图31是示出在图像编码设备中通过应用BDPCM对当前块进行编码的步骤的流程图。
首先,当在步骤S3110输入作为编码目标块的当前块时,可以在步骤S3120对当前块执行预测以生成预测块。步骤S3120中的预测块可以是帧内预测块,并且可以如上所述确定帧内预测模式。基于在步骤S3120中生成的预测块,可以在步骤S3130中生成当前块的残差块。例如,图像编码设备可以通过从当前块(原始样本的值)中减去预测块(预测样本的值)来生成残差块(残差样本的值)。例如,通过执行步骤S3130,可以生成图29的残差块。对于在步骤S3130中生成的残差块,可以在步骤S3140中执行量化以生成量化残差块,并且可以在步骤S3150中对量化残差块执行BDPCM预测。作为执行步骤S3140的结果而生成的量化残差块可以是图29的量化残差块。作为步骤S3150中的BDPCM预测的结果,可以根据预测方向生成图30的修改的量化残差块。由于步骤S3150中的BDPCM预测已经参照图29到图30进行了描述,所以将省略其详细描述。之后,图像编码设备可以在步骤S3160中对修改的量化残差块进行编码以生成比特流。在本文中,可以跳过修改的量化残差块的变换。
图像编码设备中的参照图29至图31描述的BDPCM操作可以反过来由图像解码设备执行。
图32是示出在图像解码设备中通过应用BDPCM来重构当前块的过程的流程图。
图像解码设备可以在步骤S3210中从比特流中获得重构当前块所需的信息(图像信息)。重构当前块所需的信息可以包括关于当前块的预测的信息(预测信息)和关于当前块的残差的信息(残差信息)。图像解码设备可以基于关于当前块的信息对当前块执行预测,并且可以在步骤S3220中生成预测块。对当前块的预测可以是帧内预测,其详细描述与上面参照图31描述的相同。在图32中,示出了生成当前块的预测块的步骤S3220在生成当前块的残差块的步骤S3230至步骤S3250之前执行。然而,不对其施加限制。在生成当前块的残差块之后,可以生成当前块的预测块。另选地,可以同时生成当前块的残差块和当前块的预测块。
图像解码设备可以在步骤S3230中通过从比特流中解析当前块的残差信息来生成当前块的残差块。在步骤S3230中生成的残差块可以是图30所示的修改的量化残差块。
图像解码设备可以通过在步骤S3240中对图30的修改的量化残差块执行BDPCM预测来生成图29的量化残差块。步骤S3240中的BDPCM预测是用于根据图30的修改的量化残差块生成图29的量化残差块的过程,其对应于由图像编码设备执行的步骤S3150的逆处理。例如,当从比特流获得的差分编码模式信息(例如,bdpcm_flag)指示应用BDPCM时执行残差系数的差分编码的差分编码模式时,图像解码设备对残差块执行差分编码以推导修改的残差块。使用要修改的残差系数和预测残差系数,图像解码设备可以修改残差块中的残差系数当中的至少一个要修改的残差系数。可以基于从比特流获得的差分编码方向信息(例如,bdpcm_dir_flag)指示的预测方向来确定预测残差系数。差分编码方向信息可以指示垂直方向或水平方向。图像解码设备可以将通过将要修改的残差系数和预测残差系数相加而获得的值指派给要修改的残差系数的位置。在本文中,预测残差系数可以是在根据预测方向的顺序方面紧接在要修改的残差系数之前和与其相邻的系数。
在下文中,将在下面更详细地描述由图像解码设备执行的步骤S3240中的BDPCM预测。解码设备可以通过反向执行由编码设备执行的计算来计算量化残差样本Q(ri,j)。例如,当BDPCM的预测方向是水平方向时,图像解码设备可以通过使用式16从修改的量化残差块生成量化残差块。
[式16]
Figure BDA0003703156000000441
如式16中所定义的,可以通过将从坐标(0,j)开始到坐标(i,j)的修改的量化残差样本的值相加而计算出坐标(i,j)的量化残差样本的值Q(ri,j)。
另选地,使用式17而不是式16,可以计算坐标(i,j)的量化残差样本的值Q(ri,j)。
[式17]
Figure BDA0003703156000000442
式17是对应于式14的逆处理。根据式17,坐标(0,j)的量化残差样本的值Q(r0,j)被推导为坐标(0,j)的修改的量化残差样本的值r’0,j。其它坐标(i,j)的Q(ri,j)被推导为坐标(i,j)的修改的量化残差样本的值r’i,j和坐标(i-1,j)的量化残差样本的值Q(ri-1,j)的和。也就是说,通过将坐标(i-1,j)的量化残差样本的值Q(ri-1,j)作为预测值与差值r’i,j相加,推导出量化残差样本值Q(ri,j)。
当BDPCM的预测方向是垂直方向时,图像解码设备可以通过使用式18从修改的量化残差块生成量化残差块。
[式18]
Figure BDA0003703156000000443
如式18中所定义的,可以通过将从坐标(i,0)开始到坐标(i,j)的修改的量化残差样本的值相加而计算出坐标(i,j)的量化残差样本的值Q(ri,j)。
另选地,使用式19而不是式18,可以计算坐标(i,j)的量化残差样本的值Q(ri,j)。
[式19]
Figure BDA0003703156000000444
式19是对应于式15的逆处理。根据式19,坐标(i,0)的量化残差样本的值Q(ri,0)被推导为坐标(i,0)的修改的量化残差样本的值r’i,0。其它坐标(i,j)的Q(ri,j)被推导为坐标(i,j)的修改的量化残差样本的值r’i,j和坐标(i,j-1)的量化残差样本的值Q(ri,j-1)的和。也就是说,通过将坐标(i,j-1)的量化残差样本的值Q(ri,j-1)作为预测值与差值r’i,j相加,推导出量化残差样本值Q(ri,j)。
当根据上述方法通过执行步骤S3240生成由量化残差样本组成的量化残差块时,图像解码设备在步骤S3250中对量化残差块执行解量化以生成当前块的残差块。当应用BDPCM时,如上所述跳过当前块的变换。因此,可以跳过解量化残差块的逆变换。
之后,图像解码设备可以基于在步骤S3220中生成的预测块和在步骤S3250中生成的残差块,在步骤S3260中重构当前块。例如,图像解码设备可以通过将预测块(预测样本的值)和残差块(残差样本的值)相加来重构当前块(重构样本的值)。例如,可以通过将解量化的量化样本Q-1(Q(ri,j))与块内预测值相加来生成重构样本值。可以通过比特流用信号通知指示BDPCM是否应用于当前块的差分编码模式信息。另外,当BDPCM应用于当前块时,可以通过比特流用信号通知指示BDPCM的预测方向的差分编码方向信息。当BDPCM不应用于当前块时,可以不用信号通知差分编码方向信息。
图33至图35是示意性地示出用于用信号通知关于BDPCM的信息的语法的图。
图33是示出根据用于用信号通知BDPCM信息的实施方式的序列参数集的语法的图。在实施方式中,包括在作为时间ID(TemporalId)的值为0或通过外部手段提供的至少一个接入单元(AU)中的所有SPS RBSP可以被设置为在解码处理中被引用之前使用。另外,包括SPS RBSP的SPS NAL单元可以被设置为具有与参考SPS NAL单元的PPS NAL单元的nuh_layer_id相同的nuh_layer_id。在CVS中,可以将具有特定sps_seq_parameter_set_id值的所有SPS NAL单元设置为具有相同的内容。在图33的seq_parameter_set_rbsp()语法中,公开了上述的sps_transform_skip_enable_flag和稍后描述的sps_bdpcm_enabled_flag。
语法元素sps_bdpcm_enabled_flag可以指示对于帧内编码单元是否在CU语法中提供了intra_bdpcm_flag。例如,sps_bdpcm_enabled_flag的第一值(例如,0)可以指示对于帧内编码单元在CU语法中不提供intra_bdpcm_flag。sps_bdpcm_enabled_flag的第二值(例如,1)可以指示对于帧内编码单元在CU语法中提供了intra_bdpcm_flag。此外,当没有提供sps_bdpcm_enabled_flag时,可以将sps_bdpcm_enabled_flag的值设置为第一值(例如,0)。
图34是示出用信号通知是否应用BDPCM限制的语法的实施方式的图。在实施方式中,可以使用general_constraint_info()语法用信号通知编码/解码处理中的预定限制条件。使用图34的语法,可以用信号通知指示上述sps_bdpcm_enabled_flag的值是否需要被设置为0的语法元素no_bdpcm_constraint_flag。例如,no_bdpcm_constraint_flag的第一值(例如,0)可以指示不应用这种限制。当no_bdpcm_constraint_flag的值为第二值(例如,1)时,sps_bdpcm_enabled_flag的值可以被强制为第一值(例如,0)。
图35是示出用信号通知关于编码单元的BDPCM的信息的编码单元()语法的实施方式的图。如图35所示,可以使用coding_unit()语法用信号通知语法元素intra_bdpcm_flag和intra_bdpcm_dir_flag。语法元素intra_bdpcm_flag可以指示BDPCM是否应用于位于(x0,y0)的当前亮度编码块。
例如,intra_bdpcm_flag的第一值(例如,0)可以指示BDPCM未应用于当前亮度编码块。intra_bdpcm_flag的第二值(例如,1)可以指示将BDPCM应用于当前亮度编码块。通过指示应用BDPCM,intra_bdpcm_flag可以指示是否跳过变换以及是否通过将在后面描述的intra_bdpcm_dir_flag执行帧内亮度预测模式。
此外,关于x=x0..x0+cbWidth-1和y=y0..y0+cbHeight-1,上述变量BdpcmFlag[x][y]的值可以设置为intra_bdpcm_flag的值。
语法元素intra_bdpcm_dir_flag可以指示BDPCM的预测方向。例如,intra_bdpcm_dir_flag的第一值(例如,0)可以指示BDPCM预测方向是水平方向。intra_bdpcm_dir_flag的第二值(例如,1)可以指示BDPCM预测方向是垂直方向。
此外,关于x=x0..x0+cbWidth-1和y=y0..y0+cbHeight-1,变量BdpcmDir[x][y]的值可以设置为intra_bdpcm_dir_flag的值。
色度块的帧内预测
当对当前块执行帧内预测时,可以执行当前块的亮度分量块(亮度块)的预测和色度分量块(色度块)的预测。在这种情况下,色度块的帧内预测模式可以与亮度块的帧内预测模式分开设置。
例如,色度块的帧内预测模式可以基于帧内色度预测模式信息来指示。帧内色度预测模式信息可以以语法元素intra_chroma_pred_mode的形式用信号通知。例如,帧内色度预测模式信息可以指示以下项中的一者:平面模式、DC模式、垂直模式、水平模式、推导模式(DM)和交叉分量线性模型(CCLM)模式。在本文中,平面模式可以指帧内预测模式0,DC模式可以指帧内预测模式1,垂直模式可以指帧内预测模式26,并且水平模式可以指帧内预测模式10。DM也可以称为直接模式。CCLM也可以称为线性模型(LM)。CCLM模式可以包括以下任何一种:L_CCLM、T_CCLM和LT_CCLM。
此外,DM和CCLM是用于通过使用亮度块的信息来预测色度块的相关帧内预测模式。DM可以指与亮度分量的帧内预测模式相同的帧内预测模式被应用为色度分量的帧内预测模式的模式。另外,CCLM可以指如下帧内预测模式,其中在生成色度块的预测块的处理中,对亮度块的重构样本进行子采样,然后,通过将CCLM参数α和β应用于子采样样本而推导出的样本用作色度块的预测样本。
交叉分量线性模型(CCLM)模式的概述
如上所述,CCLM模式可以应用于色度块。CCLM模式是使用亮度块和与该亮度块对应的色度块之间的相关性的帧内预测模式,并且通过基于亮度块的邻近样本和色度块的邻近样本推导线性模型来执行。另外,可以基于推导出的线性模型和亮度块的重构样本来推导出色度块的预测样本。
具体地,当CCLM模式应用于当前色度块时,可以基于用于当前色度块的帧内预测的邻近样本和用于当前亮度块的帧内预测的邻近样本来推导线性模型的参数。例如,CCLM的线性模型可以基于如下式表示。
[式20]
predc(i,j)=α·recL′(i,j)+β
在本文中,predc(i,j)可以指当前CU中的当前色度块的坐标(i,j)的预测样本。recL’(i,j)可以指CU中的当前亮度块的坐标(i,j)的重构样本。例如,recL’(i,j)可以指当前亮度块的下采样重构样本。线性模型系数α和β可以用信号通知,或者可以从邻近样本推导出。
残差的联合编码(联合CbCr)
在根据实施方式的编码/解码处理中,色度残差可以被一起编码/解码。这可以称为残差的联合编码或联合CbCr。是否应用(激活)CbCr的联合编码模式可以通过联合编码模式信令标志tu_joint_cbcr_residual_flag来用信号通知,该标志在变换基础的级别上用信号通知。另外,可以通过色度CBF推导出所选编码模式。当用于变换基础的至少一个色度CBF的值为1时,可以存在标志tu_joint_cbcr_residual_flag。色度QP偏移值指示针对常规色度残差编码模式用信号通知的通用色度QP偏移值与针对CbCr联合编码模式的色度QP偏移值之间的差。色度QP偏移值可以通过PPS或切片报头用信号通知。该QP偏移值可以用于使用联合色度残差编码模式来推导块的色度QP值。
在下表中的作为对应联合色度编码模式的模式2被激活用于变换基础的情况下,在执行变换基础的量化和解码的同时,可以将其色度QP偏移添加到目标亮度推导色度QP(应用的亮度推导色度QP)。
关于下表中的如模式1和模式3的其它模式,可以以针对通用Cb或Cr块获得色度QP的方式推导出色度QP。这种从变换块重构色度残差(resCb和resCr)的处理可以根据下表选择。在当前模式被激活时,用信号通知一个单一联合色度残差块(下表中的resJointC[x][y]),并且可以在考虑信息(例如,tu_cbf_cb、tu_cbf_cr和作为在切片报头中公开的符号值的CSign)的情况下推导出Cb的残差块resCb和Cr的残差块resCr。
在编码设备中,可以如下推导出联合色度分量。根据联合编码方式,可以根据以下顺序生成resJointC{1,2}。在模式2(具有重构Cb=C,Cr=CSign*C的单个残差)的情况下,可以根据下式确定联合残差。
[式21]
resJointC[x][y]=(resCb[x][y]+CSign*resCr[x][y])/2
另选地,在模式1(具有重构Cb=C,Cr=(CSign*C)/2的单个残差)的情况下,可以根据下式确定联合残差。
[式22]
resJointC[x][y]=(4*resCb[x[][y]+2*CSign*resCb[x][y])/5
另选地,在模式3(具有重构Cr=C,Cb=(CSign*C)/2的单个残差)的情况下,可以根据下式确定联合残差。
[式23]
resJointC[x][y]=(4*resCr[x][y]+2*CSign*resCb[x][y])/5
[表2]
Figure BDA0003703156000000491
上表示出了色度残差的重构。CSign指切片标头中指定的符号值+1或-1。resJointC[][]指传输的残差。在该表中,模式指后面将描述的TuCResMode。仅对于I切片,可能支持表中的三种联合色度编码模式。对于P和B切片,可能仅支持模式2。因此,对于P和B切片,仅当色度cbf(例如,tu_cbf_cb和tu_cbf_cr)值都为1时才可以提供语法元素tu_joint_cbcr_residual_flag。此外,在tu_cbf_luma和tu_cbf_cb的上下文建模中,可以去除变换深度。
实施方式1:使用ACT Qp_offset的QP更新方法
如上所述,可以执行用于应用ACT的QP的更新。上述QP的更新有几个问题。例如,当使用上述方法时,不可能针对单个颜色分量设置不同的ACT Qp偏移。此外,推导出的qP值可能具有负值。因此,在以下实施方式中,描述了一种对基于颜色分量值的ACT QP偏移值推导出的Qp值应用修剪(clipping)的方法。
在实施方式中,可以如下推导出量化参数qP。
首先,当cIdx的值为0时,可以如下式所示推导出qP和ACT Qp偏移。
[式24]
qP=Qp’Y
ActQpOffset=5
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式25]
qP=Qp’CbCr
ActQpOffset=5
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式26]
qP=Qp’Cb
ActQpOffset=3
可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式27]
qP=Max(0,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
[式28]
qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
在另一实施方式中,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,如下式所示,可以使用QpPrimeTsMin的值而不是0来修剪qP。
[式29]
qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
此外,在另一实施方式中,量化参数qP可以如下推导出。
首先,当cIdx的值为0时,可以如下式所示推导出qP和ACT Qp偏移。
[式30]
qP=Qp’Y
ActQpOffset=5
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式31]
qP=Qp’CbCr
ActQpOffset=5
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式32]
qP=Qp’Cb
ActQpOffset=5
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式33]
qP=Qp’Cr
ActQpOffset=3
可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式34]
qP=Max(0,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
[式35]
qP=Max(0,Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
在另一实施方式中,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以使用QpPrimeTsMin的值而不是0来修剪qP,如下式所示。
[式36]
qP=Max(QpPrimeTsMin,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
此外,在又一实施方式中,可以如下推导出量化参数qP。
首先,当cIdx的值为0时,可以如下式所示推导出qP和ACT Qp偏移。
[式37]
qP=Qp’Y
ActQpOffset=-5
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式38]
qP=Qp’CbCr
ActQpOffset=-5
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式39]
qP=Qp’Cb
ActQpOffset=-5
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式40]
qP=Qp’Cr
ActQpOffset=-3
可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式41]
qP=Max(0,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
[式42]
qP=Max(0,Max(QpPrimeTsMin,qP)+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
此外,在另一实施方式中,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,如下式所示,可以使用QpPrimeTsMin的值而不是0来修剪qP。
[式43]
qP=Max(QpPrimeTsMin,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
在以上描述中,Y、Cb和Cr可以表示三个颜色分量。例如,在ACT变换中,Y可以对应于C0。Cb可以对应于C1或Cg。另外,Cr可以对应于C2或Co。
另外,三个颜色分量的ACTQpOffset值-5、-5和-3可以用其它值或其它变量替换。
实施方式2:ACT的QP偏移调整的信令
在上述实施方式中,对于Y、Cg和Co分量,ACT QP偏移调整被固定为-5、-5和-3。在本实施方式中,为了向ACT QP调整偏移提供更大的灵活性,将描述用信号通知ACT QP偏移的方法。ACT QP偏移可以作为PPS中的参数来用信号通知。
在实施方式中,qp_offset可以根据图36的语法表用信号通知。其语法元素如下。
语法元素pps_act_qp_offsets_present_flag可以指示与ACT QP偏移有关的语法元素是否存在于PPS中。例如,pps_act_qp_offsets_present_flag可以指示是否将稍后描述的语法元素pps_act_y_qp_offset、pps_act_cb_qp_offset和pps_act_cr_qp_offset作为PPS来用信号通知。
例如,pps_act_qp_offsets_present_flag的第一值(例如,0)可以指示pps_act_y_qp_offset、pps_act_cb_qp_offset和pps_act_cr_qp_offset不是通过PPS语法表用信号通知的。
pps_act_qp_offsets_present_flag的第二值(例如,1)可以指示pps_act_y_qp_offset、pps_act_cb_qp_offset和pps_act_cr_qp_offset是通过PPS语法表用信号通知的。
当没有从比特流提供pps_act_qp_offsets_present_flag时,可以将pps_act_qp_offsets_present_flag推导为第一值(例如,0)。例如,当指示是否应用ACT的标志(例如,在SPS中用信号通知的sps_act_enabled_flag)具有指示不应用ACT的第一值(例如,0)时,可以强制pps_act_qp_offsets_present_flag具有第一值(例如,0)。
当语法元素cu_act_enabled_flag的值是指示ACT被应用于当前编码基础的第二值(例如,1)时,语法元素pps_act_y_qp_offset_plus5、pps_act_cb_qp_offset_plus5和pps_act_cr_qp_offset_plus3可以用于确定分别应用于亮度Cb和Cr分量的量化参数值qP的偏移。当pps_act_y_qp_offset_plus5、pps_act_cb_qp_offset_plus5和pps_act_cr_qp_offset_plus3的值不存在于比特流中时,可以将每个值设置为0。
根据语法元素,变量PpsActQpOffsetY的值可以被确定为pps_act_y_qp_offset_plus5-5。变量PpsActQpOffsetCb的值可以被确定为pps_act_cb_qp_offset_plus5-5。另外,变量PpsActQpOffsetCr的值可以被确定为pps_act_cb_qp_offset_plus3–3。
在本文中,ACT不是正交变换,因此5、5和3可以应用为要减去的恒定偏移值。在实施方式中,对于比特流匹配,PpsActQpOffsetY、PpsActQpOffsetCb和PpsActQpOffsetCr的值可以具有从-12变化到12的值。另外,根据实施方式,除了5、5和3之外,Qp偏移值可以替换为其它常数值并加以使用。
在另一实施方式中,可以使用更灵活的ACT_QP偏移来调整QP。在以下实施方式中,描述的是在比特流中用信号通知ACT QP偏移的示例。因此,ACT QP偏移可以具有更宽的偏移范围。因此,使用ACT QP偏移更新的QP更有可能超出可用范围,因此需要对更新的QP的上限和下限进行修剪(更详细的实施方式将稍后在实施方式6和7中描述)。
指示ACT QP偏移的变量PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr和PpsActQpOffsetCbCr可以是使用通过比特流用信号通知的ACT QP偏移或预设常数推导出的值。对于比特流一致性,PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr和PpsActQpOffsetCbCr可以具有从-12变化到+12的值。
当不使用固定值时,QP偏移的值被用信号通知并且其值具有从-12变化到12的值,除了对推导出的QP值的下限值进行修剪以避免QP具有负值之外,还需要对推导出的QP值的上限值进行修剪。
为了防止qP的值具有负值,可以将qP的最低值强制为0。另选地,可以将qP的最低值设置为由用信号通知的语法元素确定的值。例如,为了在应用变换跳过模式时用信号通知qP的最低值,可以使用指示在应用变换跳过模式时应用的qP的值的语法元素QpPrimeTsMin。qP的最大值可以被限制为qP的可用最大值(例如,63)或根据用信号通知的语法元素确定的最大可用qP值。
在根据上述内容的实施方式中,量化参数qP可以如下推导出。首先,当cIdx的值为0时,如下式所示,可以推导出qP和ACT Qp偏移。
[式44]
qP=Qp’CY
ActQpOffset=PpsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式45]
qP=Qp’CbCr
ActQpOffset=PpsActQpOffsetCbCr
另选地,当cIdx的值为1时,可以如下式中所示推导出qP和ACT Qp偏移。
[式46]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式47]
qP=Qp’Cr
ActQpOffset=PpsActQpOffsetCr
在实施方式中,可以如下更新量化参数qP。当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式48]
qP=Clip3(0,63,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
[式49]
qP=Clip3(0,63,Max(QpPrimeTsMin,qP)-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
在另一实施方式中,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,如下式所示,可以使用QpPrimeTsMin的值而不是0来修剪qP的最低值。
[式50]
可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
qP=Clip3(0,63,qP-(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
qP=Clip3(QpPrimeTsMin,63,qP-cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
在另一实施方式中,量化参数qP可以如下更新。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式51]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,qP可以如下式所示推导出。
[式52]
qP=Clip3(0,63+QpBdOffset,Max(QpPrimeTsMin,qP)+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
在另一实施方式中,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,如下式所示,可以使用QpPrimeTsMin的值而不是0来修剪qP的最低值。
[式53]
可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
实施方式3:当执行色度BDPCM时允许ACT的方法
在实施方式中,当BDPCM应用于亮度分量块时,可以应用ACT来对该块进行编码/解码。然而,当BDPCM应用于色度分量块时,限制ACT不应用于对该块进行编码/解码。
此外,即使将BDPCM应用于色度分量块时,也将ACT应用于该块,从而提高编码效率。图37示出了即使当BDPCM应用于色度分量块时也应用ACT的语法配置的实施方式。如图37所示,通过根据指示是否将ACT应用于当前编码基础的cu_act_enabled_flag的值去除用于获得色度分量的BDPCM语法元素的条件,可以获得其BDPCM语法元素,而不管ACT是否应用于色度分量块,并且可以相应地执行BDCPM编码。
实施方式4:即使在利用CCLM执行编码/解码时也应用ACT的方法
CCLM和ACT二者都旨在去除分量之间不必要的交叠。CCLM与ACT之间有一些交叠的部分,但即使应用了所有这些,也不可能完全去除分量之间的交叠。因此,通过一起应用CCLM和ACT,可以更有效地去除分量之间的交叠。
以下实施方式描述了一起应用CCLM和ACT的实施方式。在执行解码时,解码设备可以首先应用CCLM,再应用ACT。当针对色度分量将ACT应用于BDPCM和CCLM两者时,用于用信号通知这些的语法表可以如图38所示被修改。因此,如图38的语法表所示,在用于用信号通知与intra_bdpcm_chroma和cclm相关的语法元素的限制当中,用于根据是否未应用ACT来用信号通知语法元素的if(!cu_act_enabled_flag)可以从语法表中去除。
实施方式5:应用包括联合CbCr的灵活ACT Qp的方法
当应用ACT模式时,可以将预测残差从一个颜色空间(例如,GBR或YCbCr)转换到YCgCo颜色空间。另外,可以在YCgCo颜色空间中对变换基础的残差进行编码。作为用于颜色空间变换的ACT核变换(变换内核)的实施方式,可以使用如上所述的以下变换内核。
[式54]
Figure BDA0003703156000000571
[式55]
Figure BDA0003703156000000572
如上式所述,C0’、C1’和C2’(在本文中,C0’=Y,C1’=Cg,C2’=Co)变换未进行归一化。例如,L2范数的值不是1。例如,单个分量的变换的L2范数针对C0’和C1’的值可以约为0.6,针对C2’的值可以约为0.7。在本文中,L2范数是作为相应系数的平方和的平方根而得到的值。例如,可以计算C0’=2/4*C0+1/4*C1+1/4*C2。因此,C0’的范数可以计算为(2/4*2/4+1/4*1/4+1/4*1/4)的平方根。因此,这可以计算为6/16的平方根,并且可以计算为具有约0.6的值。
当不应用归一化变换时,单个分量的动态范围是不规则的。另外,这会导致通用视频压缩系统的编码性能下降。
为了补偿残差信号的动态范围,传输用于补偿单个变换分量的动态范围变化的QP偏移值,使得可以执行QP调整。例如,本实施方式可以应用于用于ACT变换以及联合CbCr的通用QP调整控制方法。
单个颜色分量不是单独编码的,而是一起编码的,使得上述实施方式3中针对联合CbCr的方法可以导致单个颜色分量之间的动态范围变化。
在根据实施方式的编码和解码方法中,ACT QP偏移调整可以固定为-5,这可以同等地应用于Y、Cg和Co。
在实施方式中,为了向单个分量和联合CbCr提供灵活的Qp控制,可以允许针对Y、Cb、Cr和/或联合CbCr使用不同的ACT Qp偏移。ACT Qp偏移值可以基于分量索引和/或联合CbCr和/或联合CbCr模式来确定。
为了指示ACT Qp偏移,可以使用ppsActQpOffsetY、ppsActQpOffsetCb和ppsActQpOffsetCr。另外,ppsActQpOffsetCbCr可以用于具有CBF的联合CbCr模式2的ACTQP偏移,其中所有Cb和Cr分量都具有非零值。这些值(例如,ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr和ppsActQpOffsetCbCr)可以预定为预定值,或者通过比特流用信号通知。联合CbCr模式的ACT QP偏移可以以另一方法设置或设置为另一值。
在实施方式中,-5、-5和-3的ACT Qp偏移可以用于Y、Cb和Cr,并且-4的ACT Qp偏移可以用于联合CbCr。
在另一实施方式中,-5、-4和-3的ACT Qp偏移可以用于Y、Cb和Cr,并且-3的ACT Qp偏移可以用于联合CbCr模式,其中tu_cbf_cb的值不为0。
在又一实施方式中,联合CbCr模式2的ACT QP偏移可以具有其自己的偏移值。对于另一联合CbCr模式,ACT QP偏移可以使用对应分量的偏移。例如,可以如下确定量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导出qP和ACT Qp偏移。
[式56]
qP=Qp’Y
ActQpOffset=ppsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式57]
qP=Qp’CbCr
ActQpOffset=ppsActQpOffsetCbCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式58]
qP=Qp’Cb
ActQpOffset=ppsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式59]
qP=Qp’Cr
ActQpOffset=ppsActQpOffsetCr
在实施方式中,可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式60]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,qP可以如下式所示推导出。
[式61]
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
在另一实施方式中,对于具有tu_cbf_cb!=0的联合CbCr模式(例如,在模式1和模式2的情况下),可以使用ppsActQpOffsetCb确定联合CbCr的偏移。另选地,对于具有tu_cbf_cb==0的联合CbCr模式(例如,在模式3的情况下),可以使用ppsActQpOffsetCr确定联合CbCr的偏移。例如,上述实施方式可以如下修改和应用。
可以如下更新量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导qP和ACTQp偏移。
[式62]
qP=Qp’Y
ActQpOffset=ppsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP。
[式63]
qP=Qp’CbCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式64]
qP=Qp’Cb
ActQpOffset=ppsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式65]
qP=Qp’Cr
ActQpOffset=ppsActQpOffsetCr
当cIdx的值不为0且TuCResMode[xTbY][yTbY]的值不为0时,可以根据下面的伪代码确定联合CbCr模式的ACT Qp偏移。
[式66]
if(TuCResMode[xTbY][yTbY]is euqal to 1 or 2)
ActQpOffset=ppsActQpOffsetCb;
else
ActQpOffset=ppsActQpOffsetCr;
在实施方式中,可以如下更新量化参数qP。当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式67]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
[式68]
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
在另一实施方式中,无论联合CbCr模式如何,当分量索引为Y时,使用ppsActQpOffsetY,当分量索引为Cb时,使用ppsActQpOffsetCb,并且当分量索引为Cr时,使用ppsActQpOffsetCr,由此可以推导出qP。例如,可以如下推导出量化参数qP。
首先,当cIdx的值为0时,可以如下式所示推导qP和ACT Qp偏移。
[式69]
qP=Qp’Y
ActQpOffset=ppsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式70]
qP=Qp’CbCr
ActQpOffset=(cIdx==1)?ppsActQpOffsetCb:ppsActQpOffsetCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式71]
qP=Qp’Cb
ActQpOffset=ppsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式72]
qP=Qp’Cr
ActQpOffset=ppsActQpOffsetCr
可以如下更新量化参数qP。
当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示推导出qP。
[式73]
qP=Clip3(0,63+QpBdOffset,qP+(cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0))
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1时,可以如下式所示推导出qP。
[式74]
qP=Clip3(QpPrimeTsMin,63+QpBdOffset,qP+cu_act_enabled_flag[xTbY][yTbY]?ActQpOffset:0)
实施方式6:用信号通知包括联合CbCr的ACT Qp偏移的方法
在下文中,描述的是通过比特流用信号通知ACT QP偏移以提供更多灵活性的示例。可以通过SPS、PPS、画面报头、切片报头或其它类型的报头集来用信号通知ACT QP偏移。联合CbCr的ACT Qp偏移可以单独用信号通知,或者可以从Y、Cb和Cr的ACT QP偏移推导出。
在不失一般性的情况下,图39示出了在PPS中用信号通知ACT Qp偏移的语法表的示例。如在图39的实施方式中,可以针对联合CbCr用信号通知一个ACT Qp偏移。将描述在图39的语法表中指示的语法元素。
语法元素pps_act_qp_offsets_present_flag可以指示与ACT QP偏移有关的语法元素是否存在于PPS中。例如,pps_act_qp_offsets_present_flag可以指示稍后将描述的语法元素pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3和pps_act_cbcr_qp_offset_plusX4是否作为PPS被用信号通知。
例如,pps_act_qp_offsets_present_flag的第一值(例如,0)可以指示没有通过PPS语法表用信号通知pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3和pps_act_cbcr_qp_offset_plusX4。
pps_act_qp_offsets_present_flag的第二值(例如,1)可以指示pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3和pps_act_cbcr_qp_offset_plusX4是通过PPS语法表用信号通知的。
当没有从比特流提供pps_act_qp_offsets_present_flag时,可以将pps_act_qp_offsets_present_flag推导为第一值(例如,0)。例如,当指示是否应用ACT的标志(例如,在SPS中用信号通知的sps_act_enabled_flag)具有指示不应用ACT的第一值(例如,0)时,可以强制pps_act_qp_offsets_present_flag具有第一值(例如,0)。
当语法元素cu_act_enabled_flag的值是指示将ACT应用于当前编码基础的第二值(例如,1)时,语法元素pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3和pps_act_cbcr_qp_offset_plusX4可以分别用于确定应用于亮度分量、Cb分量、Cr分量和联合CbCr分量的量化参数值qP的偏移。当pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3和pps_act_cbcr_qp_offset_plusX4的值不存在于比特流中时,可以将每个值设置为0。
根据语法元素,可以如下式所示确定变量PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr和PpsActQpOffsetCbCr的值。
[式75]
PpsActQpOffsetY=pps_act_y_qp_offset_plusX1-X1
PpsActQpOffsetCb=pps_act_cb_qp_offset_plusX2-X2
PpsActQpOffsetCr=pps_act_cr_qp_offset_plusX3-X3
PpsActQpOffsetCbCr=pps_act_cbcr_qp_offset_plusX4-X4
在本文中,X1、X2、X3和X4可以指示预定的常数值。这些可以是相同的值或不同的值,或者只有一些可以具有相同的值。
在实施方式中,对于比特流匹配,PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr和PpsActQpOffsetCbCr的值可以被限制为具有从-12变化到12的值。
根据变量的确定,可以如下确定量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导qP和ACT Qp偏移。
[式76]
qP=Qp’Y
ActQpOffset=ppsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式77]
qP=Qp’CbCr
ActQpOffset=(cIdx==1)?ppsActQpOffsetCb:ppsActQpOffsetCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式78]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式79]
qO=Qp’Cr
ActQpOffset=PpsActQpOffsetCr
在用信号通知ACT Qp偏移的另一实施方式中,针对被标识为模式A和模式B的不同联合CbCr模式,可以用信号通知多个ACT QP偏移。
联合CbCr模式A可以指包括具有非零值的tu_cbf_cb的联合CbCr模式(例如,上述表2的模式1和模式2)。联合CbCr模式B可以指包括具有值为0的tu_cbf_cb的联合CbCr模式(例如,上述表2的模式3)。在图40中示出相应改变的语法表。将描述在图40的语法表中指示的语法元素
当语法元素cu_act_enabled_flag的值是指示将ACT应用于当前编码基础的第二值(例如,1)时,语法元素pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、pps_act_cbcr_qp_offset_modeA_plusX4和pps_act_cbcr_qp_offset_modeB_plusX5可以分别用于确定应用于亮度分量、Cb分量、Cr分量和联合CbCr分量的量化参数值qP的偏移。当pps_act_y_qp_offset_plusX1、pps_act_cb_qp_offset_plusX2、pps_act_cr_qp_offset_plusX3、pps_act_cbcr_qp_offset_modeA_plusX4和pps_act_cbcr_qp_offset_modeB_plusX5的值不存在于比特流中时,可以将每个值设置为0。
根据语法元素,可以如下式所示确定变量PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、PpsActQpOffsetCbCrModeA和PpsActQpOffsetCbCrModeB的值。
[式80]
PpsActQpOffsetY=pps_act_y_qp_offset_plusX1-X1
PpsActQpOffsetCb=pps_act_cb_qp_offset_plusX2-X2
PpsActQpOffsetCr=pps_act_cr_qp_offset_plusX3-X3
PpsActQpOffsetCbCrModeA=pps_act_cbcr_qp_offset_modeA_plusX4-X4
PpsActQpOffsetCbCrModeB=pps_act_cbcr_qp_offset_modeB_plusX5-X5
在本文中,X1、X2、X3、X4和X5可以指示预定的常数值。这些可能是相同的值或不同的值,或者只有一些可能具有相同的值。在实施方式中,对于比特流匹配,PpsActQpOffsetY、PpsActQpOffsetCb、PpsActQpOffsetCr、PpsActQpOffsetCbCrModeA和PpsActQpOffsetCbCrModeB的值可以被限制为具有从-12变化到12的值。
根据变量的确定,可以如下确定量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导qP和ACT Qp偏移。
[式81]
qP=Qp’Y
ActQpOffset=PpsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP。
[式82]
qP=Qp’CbCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式83]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式84]
qP=Qp’Cr
ActQpOffset=PpsActQpOffsetCr
另外,当cIdx的值不为0并且TuCResMode[xTbY][yTbY]的值不为0时,可以如下式所示推导出ACT Qp偏移。
[式85]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?PpsActQpOffsetCbCrModeA:PpsActQpOffsetCbCrModeB
此外,在另一实施方式中,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导ActQpOffset。
[式86]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PPsQpOffsetCbCrModeA+slice_act_CbCr_qp_offset_ModeA):(PPsQpOffsetCbCrModeB+slice_act_CbCr_qp_offset_ModeB)
在用信号通知ACT Qp偏移的另一实施方式中,如在图41的语法表中那样,可以仅用信号通知Y、Cb和Cr的ACT QP偏移。可以从PpsActQpOffsetY、PpsActQpOffsetCb和/或PpsActQpOffsetCr推导出联合CbCr的ACT QP偏移。
在实施方式中,CbCr的ACT Qp偏移可以设置为PpsActQpOffsetCb的值。在另一实施方式中,CbCr的ACT Qp偏移可以在tu_cbf_cb具有非零值的联合CbCr模式的情况下被设置为与PpsActQpOffsetCb相同的值,或者可以在tu_cbf_cb的值为0的联合CbCr模式的情况下被设置为与PpsActQpOffsetCr相同的值。另选地,可以相反地设置。
图41是示出在PPS中用信号通知ACT Qp偏移的语法表的另一实施方式的图。根据图41的语法元素的确定,可以如下确定量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导出qP和ACT Qp偏移。
[式87]
qP=Qp’Y
ActQpOffset=PpsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导出qP和ACTQp偏移。
[式88]
qP=Qp’CbCr
ActQpOffset=(cIdx==1)?PpsActQpOffset:Cb:PpsActQpOffsetCr
此外,在另一实施方式中,可以如下确定ActQpOffset的值。
[式89]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?PpsActQpOffsetCb:PpsActQpOffsetCr
另选地,当cIdx的值为1时,可以如下式所示推导出qP和ACT Qp偏移。
[式90]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCb
另选地,当cIdx的值为2时,可以如下式所示推导出qP和ACT Qp偏移。
[式91]
qP=Qp’Cr
ActQpOffset=PpsActQpOffsetCr
实施方式7:以多个级别用信号通知ACT Qp偏移
在实施方式中,可以以多个级别用信号通知ACT QP偏移。除了以诸如PPS的一个级别用信号通知ACT QP偏移(如在上面的实施方式6中)之外,可以以较低级别(例如,切片报头、画面报头或适用于Qp控制的其它类型的报头)用信号通知ACT QP偏移。
在下文中,将描述两个实施方式。图42和图43示出了通过切片报头和画面报头用信号通知ACT QP偏移的示例。以这种方式,可以以多个级别用信号通知ACT QP偏移。
在下文中,将描述图42和图43所示的语法元素。语法元素pps_slice_act_qp_offsets_present_flag可以指示将在后面描述的语法元素slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset是否存在于切片报头中。
例如,pps_slice_act_qp_offsets_present_flag的第一值(例如,0)可以指示slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset不存在于切片报头中。
例如,pps_slice_act_qp_offsets_present_flag的第二值(例如,1)可以指示slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset存在于切片报头中。
语法元素slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset可以分别指示亮度分量、Cb分量、Cr分量和联合CbCr分量的量化参数值qP的偏移。slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset的值可以被限制为具有从-12变化到12的值。当slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_offset的值不存在于比特流中时,每个值可以设置为0。PpsActQpOffsetY+slice_act_y_qp_offset、PpsActQpOffsetCb+slice_act_cb_qp_offset、PpsActQpOffsetCr+slice_act_cr_qp_offset和PpsActQpOffsetCbCr+slice_act_cbcr_qp_offset的值也可以限制为具有从-12变化到12的值。
可以应用以PPS级别用信号通知联合CbCr的ACT QP偏移的各种修改实施方式。例如,可以针对联合CbCr用信号通知一个QP偏移,可以针对不同模式的联合CbCr用信号通知多个ACT Qp偏移,或者无需针对联合CbCr用信号通知ACT Qp偏移,可以在执行通过切片报头的信令时应用通过使用Y、Cb和Cr和/或联合CbCr的模式的ACTQpOffsets来推导它的方法。
图44和图45示出了两个修改实施方式。图44示出了在切片报头中用信号通知ACTQp偏移的实施方式。图45示出了在切片报头中用信号通知ACT Qp偏移的另一实施方式。在图45中,可以仅用信号通知Y、Cb和Cr的ACT Qp偏移,并且可以从slice_act_y_qp_offset、slice_act_cb_qp_offset和/或slice_act_cr_qp_offset推导出联合CbCr的切片级别的ACT QP偏移。这可以基于联合CbCr的模式类型来确定。在实施方式中,CbCr的切片级别ACTQp偏移可以被设置为与slice_act_cb_qp_offset相同的值。在另一实施方式中,在包括具有非零值的tu_cbf_cb的联合CbCr模式的情况下,可以将联合CbCr的切片级别的ACT Qp偏移设置为与slice_act_cb_qp_offset相同的值。另外,在包括值为0的tu_cbf_cb的联合CbCr模式的情况下,可以将联合CbCr的切片级别的ACT Qp偏移设置为与slice_act_cr_qp_offset相同的值。
另外,在另一实施方式中,可以在切片报头或画面报头中用信号通知语法元素。为了实现这一点,可以如下执行编码/解码。
-可以在PPS中用信号通知指示ACT Qp偏移是存在于画面报头还是切片报头中的标志pps_picture_slice_act_qp_offsets_present_flag。
-当ACT适用并且pps_picture_slice_act_qp_offsets_present_flag的值是第二值(例如,1)时,在画面报头中用信号通知指示画面报头中是否存在ACT Qp偏移的标志pic_act_qp_offsets_present_flag。在本文中,pic_act_qp_offsets_present_flag的第二值(例如,1)可以指示在画面报头中提供与画面报头相对应的画面的所有切片的ACT Qp偏移。
-pic_act_qp_offsets_present_flag的第一值(例如,0)可以指示在画面报头中未提供与画面报头相对应的画面的所有切片的ACT Qp偏移。例如,当ACT适用并且pps_picture_slice_act_qp_offsets_present_flag的值是第二值(例如,1)并且pic_act_qp_offsets_present_flag的值是第一值(例如,0)时,可以在切片报头中提供切片的ACT Qp偏移。
图46是示出用信号通知pps_pic_slice_act_qp_offsets_present_flag的PPS的语法表的图。语法元素pps_pic_slice_act_qp_offsets_present_flag可以指示是否在画面报头和/或切片报头中提供ACT Qp偏移。例如,pps_pic_slice_act_qp_offsets_present_flag的第一值(例如,0)可以指示在画面报头和切片报头中没有提供ACT Qp偏移。pps_pic_slice_act_qp_offsets_present_flag的第二值(例如,1)可以指示在画面报头或切片报头中提供了ACT Qp偏移。当未在比特流中提供pps_pic_slice_act_qp_offsets_present_flag时,pps_pic_slice_act_qp_offsets_present_flag的值可以被确定为第一值(例如,0)。
图47是示出用于用信号通知ACT Qp偏移的画面报头的语法表的图。语法元素pic_act_qp_offsets_present_flag可以指示是否在画面报头中提供ACT Qp偏移。pic_act_qp_offsets_present_flag的第一值(例如,0)可以指示ACT Qp偏移不是在画面报头中而是在切片报头中提供的。pic_act_qp_offsets_present_flag的第二值(例如,1)可以指示在画面报头中提供了ACT Qp偏移。当未在比特流中提供pic_act_qp_offsets_present_flag的值时,该值可以被确定为0。
图48是示出用于用信号通知ACT Qp偏移的切片报头的语法表的图。在图48的语法表中,语法元素slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset可以指示亮度分量、Cb分量和Cr分量的量化参数值qP的偏移。slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset的值可以具有从-12变化到12的值。另外,PpsActQpOffsetY+slice_act_y_qp_offset、PpsActQpOffsetCb+slice_act_cb_qp_offset以及PpsActQpOffsetCr+slice_act_cr_qp_offset的值也可以具有从-12变化到12的值。
此外,在未在比特流中提供slice_act_y_qp_offset、slice_act_cb_qp_offset、slice_act_cr_qp_offset和slice_act_cbcr_qp_offset的值的情况下,当pps_pic_slice_act_qp_offsets_present_flag的值为第一值(例如,0)时,slice_act_y_qp_offset、slice_act_cb_qp_offset和slice_act_cr_qp_offset的值可以被确定为0。另选地,当pps_pic_slice_act_qp_offsets_present_flag的值是第二值(例如,1)时,slice_act_y_qp_offset、slice_act_cb_qp_offset和slice_act_cb_act_cr_offset的值可以分别确定为与pps_act_y_qp_offset、pps_act_cb_qp_offset和pps_act_cr_qp_offset相同的值。
此外,当在切片报头和画面报头中都存在ACT Qp偏移时,用于推导qP值的最终偏移值可以被确定为通过将在PPS中用信号通知的偏移值与在切片报头或画面报头中用信号通知的偏移值相加而获得的值。
更具体地,在实施方式中,可以如下确定量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导出qP和ACT Qp偏移。
[式92]
qP=Qp’Y
ActQpOffset=PPsQpOffsetY+slice_act_y_qp_offset
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导qP和ACT Qp偏移。
[式93]
qP=Qp’CbCr
ActQpOffset=PPsQpOffsetCbCr+slice_act_CbCr_qp_offset
另选地,当cIdx的值为1时,可以如下式所示推导qP和ACT Qp偏移。
[式94]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCr+slice_act_Cr_qp_offset
另选地,当cIdx的值为2时,可以如下式所示推导qP和ACT Qp偏移。
[式95]
qP=Qp’Cr
ActQpOffset=PpsActQpOffsetCr+slice_act_Cr_qp_offset
在另一实施方式中,当用信号通知联合CbCr的多个ACT Qp偏移时,可以如下确定联合CbCr的ActQpOffset。
首先,当cIdx的值为0时,可以如下式所示推导qP和ACT Qp偏移。
[式96]
qP=Qp’Y
ActQpOffset=PPsQpOffsetY+slice_act_y_qp_offset
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导qP。
[式97]
qP=Qp’CbCr
另选地,当cIdx的值为1时,可以如下式所示推导qP和ACT Qp偏移。
[式98]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCb+slice_act_Cb_qp_offset
另选地,当cIdx的值为2时,可以如下式所示推导qP和ACT Qp偏移。
[式99]
qP=Qp’Cr
ActQpOffset=PpsActQpOffsetCr+slice_act_Cr_qp_offset
另外,当cIdx的值不为0且TuCResMode[xTbY][yTbY]的值不为0时,可以如下式所示推导ACT Qp偏移。
[式100]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PPsQpOffsetCbCrModeA+slice_act_CbCr_qp_offset_ModeA):(PPsQpOffsetCbCrModeB+slice_act_CbCr_qp_offset_ModeB)
在又一实施方式中,当未提供联合CbCr的ACT Qp偏移时,确定Y、Cb和/或Cr分量的ActQpOffset和qP,并且可以如下使用Y、Cb和/或Cr分量的ACT Qp偏移来确定联合CbCr的ActQpOffset。例如,在上述实施方式中,当与式97相关的TuCResMode[xTbY][yTbY]的值为2时,可以如下改变并执行qP的计算步骤。
“另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导qP和ACTQp偏移。
[式101]
qP=Qp’CbCr
ActQpOffset=(cIdx==1])?(PPsQpOffsetCb+slice_act_Cb_qp_offset):(PPsQpOffsetCr+slice_act_Cr_qp_offset)”
此外,在另一实施方式中,可以如下式确定ActQpOffset的值。
[式102]
ActQpOffset=(tu_cbf_cb[xTbY][yTbY])?(PPsQpOffsetCb+slice_act_Cb_qp_offset):(PPsQpOffsetCr+slice_act_Cr_qp_offset)
实施方式8:用信号通知多个ACT Qp偏移集合的方法
在本实施方式中,将描述使用ACT Qp偏移列表的方法。为此,可以执行以下处理。
a)多个ACT Qp偏移集合可以以参数集(例如,SPS或PPS)内的列表的形式用信号通知。列表中的每个集合可以包括Y分量、Cb分量、Cr分量和联合CbCr分量的ACT Qp偏移。为简单起见,ACT Qp偏移列表可以在与用于用信号通知色度Qp偏移列表的参数集相同的参数集中用信号通知。
b)列表中ACT Qp偏移的集合的数量可以与PPS中用信号通知的色度Qp偏移集合的数量相同。
c)作为用于推导每个编码基础的qP的ACT Qp偏移,可以使用属于具有用于编码基础的色度Qp偏移的索引(例如,cu_chroma_qp_offset_idx)的列表的ACT Qp偏移。
d)作为b)和c)的另选实施方式,可以执行以下操作。
-可以用信号通知列表中的ACT Qp偏移的集合的数量。列表中ACT Qp偏移的集合的数量可以与色度Qp偏移集合的数量不同。
-当ACT适用时,可以用信号通知指示用于编码基础的ACT Qp偏移的索引的索引。
在不背离上述概念的情况下,如图49所示,可以使用用于用信号通知ACT Qp偏移列表的语法。例如,当cu_act_enabled_flag的值为1时,pps_act_y_qp_offset、pps_act_cb_qp_offset、pps_act_cr_qp_offset和pps_act_cbcr_qp_offset可以用于确定要分别应用于亮度分量、Cb分量、Cr分量和联合CbCr的量化参数值qP的偏移。
当pps_act_y_qp_offset、pps_act_cb_qp_offset、pps_act_cr_qp_offset和pps_act_cbcr_qp_offset的值不存在时,可以将每个值推导为0。
当cu_act_enabled_flag的值是第二值(例如,1)并且cu_chroma_qp_offset_flag的值是第二值(例如,1)时,act_y_qp_offset_list[i]、act_cb_qp_offset_list[i]、act_cr_qp_offset_list[i]和act_cbcr_qp_offset_list[i]可以用于确定分别应用于亮度分量、Cb分量、Cr分量和联合CbCr分量的量化参数值qP的偏移。当act_y_qp_offset_list[i]、act_cb_qp_offset_list[i]、act_cr_qp_offset_list[i]和act_cbcr_qp_offset_list[i]的值不存在时,每个值可以推导为0。
在本实施方式中,可以如下确定量化参数qP。首先,当cIdx的值为0时,可以如下式所示推导qP和ACT Qp偏移。
[式103]
qP=Qp’Y
ActQpOffset=pps_act_y_qp_offset+(cu_chroma_qp_offset_flag)?act_y_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_y_qp_offset
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示推导qP和ACT Qp偏移。
[式104]
qP=Qp’CbCr
ActQpOffset=pps_act_cbcr_qp_offset+(cu_chroma_qp_offset_flag)?act_cbcr_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_cbcr_qp_offset
另选地,当cIdx的值为1时,可以如下式所示推导qP和ACT Qp偏移。
[式105]
qP=Qp’Cb
ActQpOffset=pps_act_cb_qp_offset+(cu_chroma_qp_offset_flag)?act_cb_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_cb_qp_offset
另选地,当cIdx的值为2时,可以如下式所示推导qP和ACT Qp偏移。
[式106]
qP=Qp’Cr
ActQpOffset=pps_act_cr_qp_offset+(cu_chroma_qp_offset_flag)?act_cr_qp_offset_list[cu_chroma_qp_offset_idx]:0+slice_act_cr_qp_offset
实施方式9:应用于无损编码和有损编码两者的ACT颜色空间变换方法
基于上述用于前向变换和后向变换的矩阵的颜色空间之间的变换可以如下组织。
[表3]
Figure BDA0003703156000000731
由于在Co和Cg的处理中会丢失一些值,因此变换无法重构到原始状态。例如,当将RGB颜色空间的样本值转换为YCgCo颜色空间的样本值并将结果值反向转换回RGB颜色空间的样本值时,原始样本的值并未完全重构。因此,根据表3的变换不能用于无损编码。有必要改进颜色空间变换算法,使得即使在应用无损编码时,在颜色空间变换之后也不会发生样本值的丢失。实施方式9和实施方式10描述了能够应用于无损编码以及有损编码的颜色空间变换算法。
在下面描述的实施方式中,描述了通过使用可逆到原始状态的颜色空间变换来执行ACT的方法,该方法适用于有损编码以及无损编码。这种可逆颜色空间变换可以应用于上述编码和解码方法。也可以针对下面的颜色空间变换调整ACT Qp偏移。根据实施方式的颜色空间变换可以如下式所示来执行。例如,可以根据下式执行从GBR颜色空间到YCgCo颜色空间的前向变换。
[式107]
Co=R-B;
t=B+(Co>>1);
Cg=G-t;
Y=t+(Cg>>1);
另外,可以根据下式执行从YCgCo颜色空间到GBR颜色空间的后向变换。
[式108]
t=Y-(Cg>>1)
G=Cg+t
B=t-(Co>>1)
R=Co+B
根据上式在YCgCo颜色空间与RGB颜色空间之间的变换是可逆到原始状态的。也就是说,根据等式的颜色空间变换支持完美的重构。例如,即使在前向变换之后执行后向变换,也保持样本值。因此,根据等式的颜色空间变换可以称为可逆YCgCo-R颜色变换。在本文中,R可以代表可逆,这意味着实现了对原始状态的重构。与现有变换相比,可以通过将Cg和Co的比特深度增加1来提供YCgCo-R变换。如果满足该条件,则可以使用与上述变换类似的其它类型的可逆变换。
因为如上式所示的变换具有与上述变换不同的范数值,所以可以调整Y、Cg和Co的ACT Qp偏移以补偿由于颜色空间变换引起的动态范围变化。
已经描述了当应用上述变换时,根据实施方式的QCT Qp偏移针对Y、Cg和Co可以具有(-5,-5,-5)的值。然而,当应用根据本实施方式的可逆变换时,作为根据实施方式的QCTQp偏移,可以指定不是(-5,-5,-5)的另一值。例如,作为根据实施方式的QCT Qp偏移,可以使用针对Y、Cg和Co的值(-5,1,3)。
在另一实施方式中,可以如上述实施方式6或实施方式7中那样通过比特流用信号通知ACT QP偏移。
例如,当上述YCgCo-R变换与(-5,1,3)的ACT QP偏移一起使用时,观察到在有损编码环境(例如,QP 22,27,32,37)中不存在编码损失,如下图所示。另外,观察到在应用ACT时,在实现无损编码方面进一步获得了5%的编码性能。
[表4]
序列 Y U V
RGB,TGM 1080p 0.0% 0.2% 0.1%
RGB,TGM 720p 0.2% -0.1% 0.1%
RGB,仿真 -0.1% -0.1% 0.0%
RGB,混合内容 -0.1% 0.0% -0.1%
RGB,相机拍摄内容 -0.3% 0.2% -0.3%
全部(RGB) 0.0% 0.0% 0.0%
用于包括集成ACT矩阵的VVC规范可以描述为下表。
[表5]
Figure BDA0003703156000000751
Figure BDA0003703156000000761
例如,可以如下更新(nTbW)×(nTbH)大小的残差样本阵列rY、rCb和rCr
[式109]
Tmp=rY[x][y]-(rCb[x][y]>>1)
rY[x][y]=tmp+rCb[x][y]
rCb[x][y]=tmp-(rCr[x][y]>>1)
rCr[x][y]=rCb[x][y]+rCr[x][y]
实施方式10:用于基于显式信令执行多个颜色变换的ACT执行方法
在本实施方式中,可以通过ACT执行至少一种颜色变换。可以通过在比特流中用信号通知的标志来确定要执行哪种颜色变换。可以以多个级别(例如,SPS、PPS、画面报头和切片)或可识别的粒度用信号通知标志。
在实施方式中,可以用信号通知预定标志,以指示应用了哪个ACT。例如,当标志的值为1时,可以应用基于可逆颜色变换的ACT。当标志的值为0时,可以应用基于不可逆颜色变换的ACT。
在另一实施方式中,可以用信号通知ACT的预定标志,以指示使用了哪种颜色变换。在图50中示出在SPS中用信号通知的语法的示例。将描述图50的语法元素。语法元素sps_act_reversible_conversion可以指示是否使用不可逆到原始状态的变换式。sps_act_reversible_conversion的第一值(例如,0)可以指示ACT使用不可逆到原始状态的变换式。sps_act_reversible_conversion的第二值(例如,1)可以指示ACT使用可逆到原始状态的变换式。
因此,可以如下式设置指示是否执行有损编码的变量lossyCoding。
[式110]
lossyCoding=(!sps_act_reversible_conversion)
通过使用lossyCoding标志,解码装置在解码处理中执行从YCgCo到GBR的后向变换的伪码可以表示如下。
[式111]
If(sps_act_reversible_conversion==1)
{
//YCgCo-R可逆转换
t=Y-(Cg>>1)
G=Cg+t
B=t-(Co>>1)
R=Co+B
}
else{
t=Y-Cg
G=Y+Cg
B=t-Co
R=t+Co
}
因此,实施方式9的表5中所示的VVC规范可以如下表所示进行修改。
[表6]
Figure BDA0003703156000000771
Figure BDA0003703156000000781
根据上表,使用颜色空间变换的残差更新处理可以使用以下参数作为该处理的输入。-指示块宽度的变量nTbW
-指示块高度的变量nTbH
-由元素rY[x][y]组成的亮度残差样本的(nTbW)×(nTbH)阵列rY
-由元素rCb[x][y]组成的色度残差样本的(nTbW)×(nTbH)阵列rCb
-由元素rCr[x][y]组成的色度残差样本的(nTbW)×(nTbH)阵列rCr
该处理的输出如下。
-亮度残差样本的(nTbW)×(nTbH)大小的更新阵列rY
-色度残差样本的(nTbW)×(nTbH)大小的更新阵列rCb
-色度残差样本的(nTbW)×(nTbH)大小的更新阵列rCr
通过执行该处理,(nTbW)×(nTbH)大小的残差样本阵列rY、rCb和rCr可以如下更新。
首先,当sps_act_reversible_conversion的值是第二值(例如,1)时,(nTbW)×(nTbH)大小的残差样本阵列rY、rCb和rCr可以如下式所示更新。
[式112]
tmp=rY[x][y]-(rCb[x][y]>>1))
rY[x][y]=tmp+rCb[x][y])
rCb[x][y]=tmp-(rCr[x][y]>>1))
rCr[x][y]=rCb[x][y]+rCr[x][y])
否则(例如,当sps_act_reversible_conversion的值是第一值(例如,0)时),(nTbW)×(nTbH)大小的残差样本阵列rY、rCb和rCr可以如下式所示更新。
[式113]
tmp=rY[x][y]-rCb[x][y]
rY[x][y]=rY[x][y]+rCb[x][y]
rCb[x][y]=tmp-rCr[x][y]
rCr[x][y]=tmp+rCr[x][y]
YCgCo向后变换和YCgCo-R向后变换有一些相似之处。在可逆到原始状态的变换中,当Cg和Co被Cg’=Cg<<1和Co’=Co<<1替换时,这可以作为有损向后变换操作。下式示出了其实施方式。
[式114]
t=Y-(Cg’>>1)=Y-Cg
G=Cg’+t=Y+Cg
B=t-(Co’>>1)=t–Co=Y–Cg-Co
R=Co’+B=t+Co=Y–Cg+Co
因此,在另选实施方式中,代替保持两个颜色变换,可以仅使用可逆到原始状态的变换。在有损编码的情况下,Cg和Co分量可以在编码装置的操作中被缩放1/2次,并且可以在解码装置的操作中被缩放两次。这使得即使在支持有损和无损情况时也可以使用一个集成转换。另外,还有一个额外的优势,即,即使在进行有损编码时,比特深度也不会改变。
[表7]
Figure BDA0003703156000000791
在实施方式中,可以根据图51的语法来使用指示使用了哪个ACT变换的标志(例如,actShiftFlag)。在图51的语法表中,语法元素sps_act_shift_flag可以指示在应用ACT的同时是否应用执行颜色分量移位。例如,sps_act_shift_flag的第一值(例如,0)可以指示在应用ACT的同时未应用执行颜色分量移位。sps_act_shift_flag的第二值(例如,1)可以指示在应用ACT的同时应用执行颜色分量移位。变量actShiftFlag可以设置为sps_act_shift_flag的值。在解码装置中实现从YCgCo到GBR的向后变换的伪代码可以使用actShiftFlag来编写,如下所示。
[表8]
Figure BDA0003703156000000801
实施方式11:使用变换类型的推导来执行多个颜色变换的ACT执行方法在实施方式中,可以在执行ACT时使用至少一个颜色变换。另外,可以基于比特流的其它信息推导出使用哪种颜色变换类型。
在实施方式中,可以使用两种类型的ACT变换,包括可逆到原始状态的ACT变换和不可逆到原始状态的ACT变换。ACT变换类型可以由变换类型推导出。例如,如变量tuIsTransformSkip所标识的,当变换类型为变换跳过时,可以使用可逆到原始状态的ACT变换。否则(例如,当变换类型不是变换跳过时),可以使用不可逆到原始状态的ACT变换。可以使用两种类型的伪代码。
[表9]
Figure BDA0003703156000000802
Figure BDA0003703156000000811
[表10]
Figure BDA0003703156000000812
在另一实施方式中,可以基于QP值来确定ACT变换类型。当Qp值小于或等于预定阈值(例如,QpPrimeTsMin)时,可以使用可逆到原始状态的ACT变换。否则(例如,当Qp值超过预定阈值时),可以使用不可逆ACT变换。
实施方式12:使用ACT QP偏移的QP推导方法
本实施方式与上述实施方式1和实施方式2有关。在实施方式1和实施方式2中,已经描述了推导出的Qp’Y、Qp’CbCr、Qp’Cb和Qp’Cr被包括为QP。实施方式1和实施方式2中描述的方法通过使用ACT QP偏移来校正推导出的Qp值,并且应用必要的修剪技术使得用于变换系数缩放的校正QP值不会超出有效范围。
本实施方式描述了一种在用于推导Qp’Y、Qp’CbCr、Qp’Cb和Qp’Cr的QP推导处理中包括ACT QP偏移的方法。QP推导处理已经包括预定修剪步骤,使得推导出的QP值不会超出有效范围。因此,在QP推导处理中包括ACT QP偏移可以避免额外的修剪步骤,简化变换系数缩放处理的整体QP推导步骤并确保最终QP不超出有效范围。
如上述实施方式中所述,ACT QP偏移可以预先指定为常数,或者可以通过比特流用信号通知。在不偏离一致性的情况下,Y、Cb、Cr和CbCr的ACT QP偏移可以在稍后描述的描述中描述为ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr和ppsActQpOffsetCbCr。ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr和ppsActQpOffsetCbCr可以是具有从-M变化到N的值的常数或变量。在本文中,在有损编码的情况下,M和N中的每一个可以被设置为12,并且在实施方式中的无损编码情况下可以被设置为0。另外,至少一个ACT QP偏移可以从另一ACT QP偏移值推导出。例如,ppsActQpOffsetCbCr可以基于联合CbCr模式被设置为与ppsActQpOffsetCb或ppsActQpOffsetCr相同的值。
可以如下所述执行使用ACT QP偏移的QP推导的解码处理。首先,在量化参数推导处理的情况下,以下参数可以用于该处理。
-指示当前编码块的左上亮度样本相对于当前画面的左上亮度样本的相对坐标的亮度坐标(xCb,yCb),
-指示基于每个亮度样本的当前编码块的宽度的变量cbWidth,
-指示基于每个亮度样本的当前编码块的高度的变量cbHeight,
-变量treeType,其指示是使用单树(SINGLE_TREE)还是双树来分割当前编码树节点,并且在使用双树时指示双树是亮度分量双树(DAUL_TREE_LUMA)还是色度分量双树(DAUL_TREE_CHROMA)
在该量化参数推导处理中,可以推导亮度量化参数Qp’Y和色度量化参数Qp’Cb、Qp’Cr和Qp’CbCr
之后,可以如下式所示推导出变量QpY
[式115]
QpY=((qPY_PRED+CuQpDeltaVal+64+2*QpBdOffset)%(64+QpBdOffset))-QpBdOffset
可以如下式所示推导出亮度量化参数Qp’Y
[式116]
actQpOffsetY=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetY:0
Qp’Y=QpY+QpBdOffset+actQpOffsetY
Qp’Y=Clip3(0,63+QpBdOffset,Qp’Y)
当指示色度阵列的类型的变量ChromaArrayType的值不是第一值(例如,0)并且treeType是SINGLE_TREE或DUAL_TREE_CHROMA时,可以执行以下处理。
-当treeType的值为DUAL_TREE_CHROMA时,变量QpY的值可以被设置为与覆盖亮度样本位置(xCb+cbWidth/2,yCb+cbHeight/2)的亮度编码基础的亮度量化参数QpY的值相同的值。
-可以如下式所示推导出变量qPCb、qPCr和qPCbCr
[式117]
qPChroma=Clip3(-QpBdOffset,63,QpY) (1118)
qPCb=ChromaQpTable[0][qPChroma] (1119)
qPCr=ChromaQpTable[1][qPChroma] (1120)
qPCbCr=ChromaQpTable[2][qPChroma] (1121)
-Cb分量和Cr分量的色度量化参数Qp’Cb和Qp’Cr以及联合Cb-Cr编码的色度量化参数Qp’CbCr可以如下式所示推导。
[式118]
actQpOffsetCb=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetCb:0
actQpOffsetCr=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetCr:0
actQpOffsetCbCr=cu_act_enabled_flag[xCb][yCb]?ppsActQpOffsetCbCr:0
Qp’Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb+actQpOffsetCb)+QpBdOffset
Qp’Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr+actQpOffsetCr)+QpBdOffset
Qp’CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr+actQpOffsetCbCr)+QpBdOffset
接下来,可以执行变换系数的解量化处理,并且可以将以下信息用作该处理的输入。
-指当前亮度变换块的左上角样本相对于当前画面的左上角亮度样本的相对坐标的亮度坐标(xTbY,yTbY),
-指示变换块的宽度的变量nTbW,
-指示变换块的高度的变量nTbH,
-指示编码基础的预测模式的变量predMode,
-指示当前块的颜色分量的变量cIdx
变换系数的解量化处理的输出可以是缩放变换系数的阵列d。在本文中,阵列d的大小可以是(nTbW)×(nTbH)。构成它的各个元素可以标识为d[x][y]。
在执行该处理时,可以如下推导量化参数qP。当cIdx的值为0时,可以如下式所示推导qP。
[式119]
qP=Qp’Y
另选地,当TuCResMode[xTbY][yTbY]的值为2时,可以如下式所示进行推导。
[式120]
qP=Qp’CbCr
另选地,当cIdx的值为1时,可以如下式所示推导qP。
[式121]
qP=Qp’Cb
另选地,当cIdx的值为2时,可以如下式所示推导qP。
[式122]
qP=Qp’Cr
可以如下更新量化参数qP。另外,可以如下推导变量rectNonTsFlag和bdShift。当transform_skip_flag[xTbY][yTbY][cIdx]的值为0时,可以如下式所示进行推导。
[式123]
rectNonTsFlag=((((Log2(nTbW)+Log2(nTbH))&1)==1)?1:0
bdShift=BitDepth+rectNonTsFlag+((Log2(nTbW)+Log2(nTbH))/2)-5+pic_dep_quant_enabled_flag
另选地,当transform_skip_flag[xTbY][yTbY][cIdx]的值为1(例如,跳过当前变换块的变换),可以如下式所示进行推导。
[式124]
qP=Max(QpPrimeTsMin,qP)
rectNonTsFlag=0
bdShift=10
编码和解码方法
在下文中,将参照图52和图53描述由图像编码设备执行的图像编码方法和由图像解码设备执行的图像解码方法。
首先,将描述解码设备的操作。根据实施方式的图像解码设备可以包括存储器和处理器。解码设备可以根据处理器的操作进行解码。例如,如图52所示,解码设备可以在步骤S5210中通过基于从比特流获得的分割信息分割图像来确定当前块。接下来,可以在步骤S5220中确定当前块的量化参数。接下来,可以在步骤S5230中基于量化参数来确定当前块的变换系数。在本文中,量化参数可以基于是否将颜色空间变换应用于当前块的残差样本来确定。另外,量化参数的值可以被确定为具有位于被设置为从预定上限到预定下限的范围内的值。例如,量化参数的值可以通过对量化参数执行修剪以具有位于所述范围内的值来确定。量化参数的预定下限值可以是0。另外,量化参数的预定上限值可以基于预定的常数值(例如,63)来确定。另选地,如上所述,可以基于指示亮度和色度量化参数范围偏移的参数(例如,QpBdOffset)来确定。QpBdOffset可以预设为预定常数,或者可以基于在编码处理中确定的语法元素来获得。例如,可以通过将预定常数乘以指示亮度或色度样本的比特深度的语法元素的值来计算QpBdOffset。
可以基于根据当前块的颜色分量确定的量化参数偏移来确定量化参数。例如,可以通过将量化参数偏移添加到基于当前块的颜色分量确定的量化参数来确定量化参数。当颜色空间变换应用于当前块的残差样本,并且当前块的颜色分量为亮度分量时,可以确定量化参数偏移的绝对值为5。另外,当颜色空间变换应用于当前块的残差样本并且当前块的颜色分量为色度Cb分量时,可以确定量化参数偏移的绝对值为1。另外,当颜色空间变换应用于当前块的残差样本并且当前块的颜色分量为色度Cr分量时,量化参数偏移的绝对值可以确定为3。
另外,可以基于当前块的变换系数来确定当前块的残差样本。在本文中,可以基于是否应用颜色空间变换来更新残差样本的值。例如,当应用颜色空间变换时,可以通过利用可逆到原始样本的值的颜色空间变换函数对残差样本执行颜色空间变换来更新残差样本的值。例如,当应用颜色空间变换时,可以基于通过对色度分量残差样本值应用右移操作而获得的样本值来更新残差样本的值。
在下文中,将描述编码设备的操作。根据实施方式的图像编码设备可以包括存储器和处理器。编码设备可以以对应于解码设备的解码的方式根据处理器的操作来执行编码。例如,如图53所示,编码设备可以在步骤S5310中通过划分图像来确定当前块。接下来,编码设备可以在步骤S5320中确定当前块的量化参数。接下来,编码设备可以在步骤S5330中基于量化参数确定当前块的变换系数。在本文中,量化参数的确定可以基于颜色空间变换是否被应用到当前块的残差样本来执行。另外,量化参数的值可以被限制为具有位于被设置为从预定上限到预定下限的范围内的值。
在本文中,编码设备可以对量化参数应用修剪,使得量化参数的值具有位于预定范围内的值。在本文中,预定范围的下限值可以是0。另外,预定范围的上限值可以是亮度和色度量化参数的上限值。可以基于样本的比特深度来确定亮度和色度量化参数的上限值。
此外,为了确定量化参数,编码设备可以基于当前块的颜色分量来确定量化参数,并且可以基于当前块的颜色分量来确定量化参数偏移。另外,编码设备可以通过使用量化参数偏移来重置量化参数,从而确定量化参数。
在本文中,编码设备可以将量化参数偏移添加到量化参数,从而重置量化参数。
在本文中,当颜色空间变换被应用到当前块的残差样本并且当前块的颜色分量是亮度分量时,量化参数偏移的值可以被确定为-5。另外,当颜色空间变换被应用于当前块的残差样本并且当前块的颜色分量是色度Cb分量时,可以确定量化参数偏移的值为1。另外,当颜色空间变换被应用于当前块的残差样本并且当前块的颜色分量是色度Cr分量时,可以确定量化参数偏移的值为3。
此外,基于当前块的变换系数确定当前块的残差样本,并且可以基于是否应用颜色空间变换来更新残差样本的值。当应用颜色空间变换时,可以基于通过对色度分量残差样本值应用右移操作而获得的样本值来更新残差样本的值。
应用实施方式
虽然为了描述的清楚起见,上述本公开的示例性方法被表示为一系列操作,但并不旨在限制执行步骤的顺序,并且必要时这些步骤可以同时或以不同的顺序来执行。为了实现根据本公开的方法,所描述的步骤还可以包括其它步骤,可以包括除了一些步骤之外的其余步骤,或者可以包括除了一些步骤之外的其它附加步骤。
在本公开中,执行预定操作(步骤)的图像编码设备或图像解码设备可以执行确认相应操作(步骤)的执行条件或情况的操作(步骤)。例如,如果描述了在满足预定条件时执行预定操作,则图像编码设备或图像解码设备可以在确定是否满足预定条件之后执行预定操作。
本公开的各种实施方式不是所有可能组合的列表并且旨在描述本公开的代表性方面,并且在各种实施方式中描述的事项可以独立地或以两个或更多个的组合应用。
本公开的各种实施方式可以以硬件、固件、软件或其组合来实现。在通过硬件实现本公开的情况下,本公开可以通过专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器等来实现。
此外,应用本公开的实施方式的图像解码设备和图像编码设备可以包括在多媒体广播传送和接收装置、移动通信终端、家庭影院视频装置、数字影院视频装置、监控摄像头、视频聊天装置、诸如视频通信的实时通信装置、移动流传输装置、存储介质、摄像机、视频点播(VoD)服务提供装置、OTT视频(over the top video)装置、互联网流传输服务提供装置、三维(3D)视频装置、视频电话视频装置、医疗视频装置等中,并且可用于处理视频信号或数据信号。例如,OTT视频装置可以包括游戏机、蓝光播放器、互联网接入电视、家庭影院系统、智能电话、平板PC、数字录像机(DVR)等。
图54是示出可应用本公开的实施方式的内容流系统的图。
如图54中所示,应用本公开的实施方式的内容流系统可以主要包括编码服务器、流服务器、网络服务器、媒体存储装置、用户装置和多媒体输入装置。
编码服务器将从诸如智能电话、相机、摄像机等多媒体输入装置输入的内容压缩成数字数据以生成比特流并将该比特流发送到流服务器。作为另一示例,当智能电话、相机、摄像机等多媒体输入装置直接生成比特流时,可以省略编码服务器。
比特流可以由应用本公开的实施方式的图像编码方法或图像编码设备生成,并且流服务器可以在发送或接收比特流的过程中暂时存储比特流。
流服务器基于用户通过网络服务器的请求将多媒体数据发送到用户装置,并且网络服务器用作向用户告知服务的媒介。当用户向网络服务器请求所需的服务时,网络服务器可以将其递送到流服务器,并且流服务器可以向用户发送多媒体数据。在这种情况下,内容流系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流系统中的装置之间的命令/响应。
流服务器可以从介质存储装置和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平滑的流服务,流服务器可以在预定时间内存储比特流。
用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航设备、石板PC、平板PC、超级本、可穿戴装置(例如,智能手表、智能眼镜、头戴式显示器)、数字电视、台式计算机、数字标牌等。
内容流系统中的每个服务器可以作为分布式服务器运行,在这种情况下,从各个服务器接收的数据可以被分布。
本公开的范围包括用于使根据各种实施方式的方法的操作能够在设备或计算机上执行的软件或机器可执行命令(例如,操作系统、应用、固件、程序等)、具有存储在其上并且可在设备或计算机上执行的此类软件或命令的非暂时性计算机可读介质。
工业适用性
本公开的实施方式可以被用于对图像进行编码或解码。

Claims (15)

1.一种由图像解码设备执行的图像解码方法,所述方法包括以下步骤:
通过基于从比特流获得的划分信息划分图像来确定当前块;
确定所述当前块的量化参数;以及
基于所述量化参数确定所述当前块的变换系数,
其中,所述量化参数的所述确定是基于颜色空间变换是否应用于所述当前块的残差样本来执行的,并且
其中,所述量化参数的值被确定为具有在被设置为从预定上限到预定下限的范围内的值。
2.根据权利要求1所述的方法,其中,所述量化参数的所述值是通过对所述量化参数执行修剪以具有在所述范围内的值来确定的。
3.根据权利要求1所述的方法,其中,所述量化参数的所述预定下限的值为0。
4.根据权利要求1所述的方法,其中,所述量化参数的所述预定上限的值是基于指示样本的比特深度的语法元素来确定的。
5.根据权利要求1所述的方法,其中,所述量化参数是基于量化参数偏移来确定的,所述量化参数偏移是基于所述当前块的颜色分量而确定的。
6.根据权利要求5所述的方法,其中,通过将所述量化参数偏移添加到基于所述当前块的所述颜色分量确定的量化参数来确定所述量化参数。
7.根据权利要求6所述的方法,其中,基于所述当前块的所述颜色分量为亮度分量以及针对所述当前块的所述残差样本的所述颜色空间变换,确定所述量化参数偏移的绝对值为5。
8.根据权利要求6所述的方法,其中,基于所述当前块的所述颜色分量为色度Cb分量以及针对所述当前块的所述残差样本的所述颜色空间变换,确定所述量化参数偏移的绝对值为1。
9.根据权利要求6所述的方法,其中,基于所述当前块的所述颜色分量为色度Cr分量以及针对所述当前块的所述残差样本的所述颜色空间变换,确定所述量化参数偏移的绝对值为3。
10.根据权利要求1所述的方法,其中,所述当前块的所述残差样本是基于所述当前块的所述变换系数确定的,并且
基于是否应用了所述颜色空间变换来更新所述残差样本的值。
11.根据权利要求10所述的方法,其中,基于应用了所述颜色空间变换,通过利用与原始样本的值可逆的颜色空间变换函数来执行所述残差样本的所述颜色空间变换来更新所述残差样本的所述值。
12.根据权利要求10所述的方法,其中,基于应用了所述颜色空间变换,基于通过对色度分量残差样本值应用右移操作而获得的样本值来更新所述残差样本的所述值。
13.一种图像解码设备,所述图像解码设备包括存储器和至少一个处理器,
其中,所述至少一个处理器被配置为执行以下操作:
通过基于从比特流获得的划分信息划分图像来确定当前块,
确定所述当前块的量化参数,并且
基于所述量化参数确定所述当前块的变换系数,
所述处理器被配置为基于颜色空间变换是否应用于所述当前块的残差样本来确定所述量化参数,并且
所述量化参数的值被确定为在被设置为从预定上限到预定下限的范围内的值。
14.一种由图像编码设备执行的图像编码方法,所述方法包括以下步骤:
通过划分图像确定当前块;
确定所述当前块的量化参数;以及
基于所述量化参数确定所述当前块的变换系数,
其中,所述量化参数的所述确定是基于颜色空间变换是否应用于所述当前块的残差样本来确定的,并且
所述量化参数的值被确定为具有在被设置为从预定上限到预定下限的范围内的值。
15.一种发送通过权利要求14所述的图像编码方法生成的比特流的方法。
CN202080088773.3A 2019-10-28 2020-10-28 使用自适应变换的图像编码/解码方法和设备以及发送比特流的方法 Pending CN114902665A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201962927113P 2019-10-28 2019-10-28
US62/927,113 2019-10-28
US201962931786P 2019-11-06 2019-11-06
US62/931,786 2019-11-06
US201962939533P 2019-11-22 2019-11-22
US62/939,533 2019-11-22
US202062957128P 2020-01-04 2020-01-04
US62/957,128 2020-01-04
PCT/KR2020/014845 WO2021086021A1 (ko) 2019-10-28 2020-10-28 적응적 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Publications (1)

Publication Number Publication Date
CN114902665A true CN114902665A (zh) 2022-08-12

Family

ID=75715415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080088773.3A Pending CN114902665A (zh) 2019-10-28 2020-10-28 使用自适应变换的图像编码/解码方法和设备以及发送比特流的方法

Country Status (4)

Country Link
US (2) US11652999B2 (zh)
CN (1) CN114902665A (zh)
AU (2) AU2020376669B2 (zh)
WO (1) WO2021086021A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220337875A1 (en) * 2021-04-16 2022-10-20 Tencent America LLC Low memory design for multiple reference line selection scheme
US20230412816A1 (en) * 2022-06-20 2023-12-21 Tencent America LLC Bilateral matching for compound reference mode

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
EP3386179A1 (en) * 2013-09-20 2018-10-10 VID SCALE, Inc. Systems and methods for providing 3d look-up table coding for color gamut scalability
US11070810B2 (en) * 2014-03-14 2021-07-20 Qualcomm Incorporated Modifying bit depths in color-space transform coding
US10142642B2 (en) * 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US10057578B2 (en) * 2014-10-07 2018-08-21 Qualcomm Incorporated QP derivation and offset for adaptive color transform in video coding
WO2019148977A1 (en) * 2018-02-01 2019-08-08 Mediatek Inc. Methods and apparatuses of video encoding or decoding with adaptive quantization of video data
US11146823B2 (en) * 2019-06-25 2021-10-12 Qualcomm Incorporated Signalling chroma quantization parameter (QP) mapping tables

Also Published As

Publication number Publication date
AU2020376669A1 (en) 2022-06-16
US11652999B2 (en) 2023-05-16
AU2020376669B2 (en) 2024-02-15
US20240015294A1 (en) 2024-01-11
US20220329814A1 (en) 2022-10-13
WO2021086021A1 (ko) 2021-05-06
AU2024201784A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
US11575919B2 (en) Image encoding/decoding method and device using lossless color transform, and method for transmitting bitstream
US11876967B2 (en) Method and device for encoding/decoding image using color space conversion, and method for transmitting bitstream
US11997261B2 (en) Image encoding/decoding method and device for determining division mode on basis of color format, and method for transmitting bitstream
US20240015294A1 (en) Image encoding/decoding method and apparatus using adaptive transform, and method for transmitting bitstream
US20220337814A1 (en) Image encoding/decoding method and device using reference sample filtering, and method for transmitting bitstream
CN114982233A (zh) 用信号通知视频译码中的缩放矩阵
US11997274B2 (en) Image encoding/decoding method and device using adaptive color transform, and method for transmitting bitstream
CN114930821A (zh) 视频编解码中的自适应色彩变换的qp偏移的灵活信令通知
US20220417512A1 (en) Image encoding/decoding method and device, and method for transmitting bitstream
US20220312014A1 (en) Image encoding/decoding method and apparatus for performing residual processing using adaptive transformation, and method of transmitting bitstream
CN114402599A (zh) 用于视频编解码的高级语法中的子图片的信令号
US11695929B2 (en) Image encoding/decoding method and apparatus performing residual processing by using adaptive color space transformation, and method for transmitting bitstream
CN114731442B (zh) 使用加权预测的图像编码/解码方法和装置以及发送比特流的方法
CN114731435A (zh) 用信号通知用于对应用bdpcm的块进行编码的残差编码方法的图像编码/解码方法和设备及发送比特流的方法
CN115176471A (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