CN114930827A - 使用无损颜色变换的图像编码/解码方法和装置及比特流发送方法 - Google Patents

使用无损颜色变换的图像编码/解码方法和装置及比特流发送方法 Download PDF

Info

Publication number
CN114930827A
CN114930827A CN202080092618.9A CN202080092618A CN114930827A CN 114930827 A CN114930827 A CN 114930827A CN 202080092618 A CN202080092618 A CN 202080092618A CN 114930827 A CN114930827 A CN 114930827A
Authority
CN
China
Prior art keywords
value
act
residual
prediction
chroma
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
CN202080092618.9A
Other languages
English (en)
Inventor
赵杰
金昇焕
M·萨勒海法尔
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 CN114930827A publication Critical patent/CN114930827A/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

提供了图像编码/解码方法和装置。根据本公开的由所述图像解码装置执行的图像解码方法可以包括以下步骤:确定当前块的残差样本;以及基于是否应用了颜色空间变换来重置所述残差样本的值。可以基于色度残差样本值的半值来执行重置残差块的值的步骤。

Description

使用无损颜色变换的图像编码/解码方法和装置及比特流发 送方法
技术领域
本公开涉及图像编码/解码方法和装置。更具体地,本公开涉及使用颜色变换的图像编码/解码方法和装置以及用于发送由本公开的图像编码方法/装置生成的比特流的方法。
背景技术
最近,各个领域对高分辨率和高质量图像,例如高清(HD)图像和超高清(UHD)图像的需求正在增加。随着图像数据的分辨率和质量的改进,与现有图像数据相比,传输的信息量或比特量相对增加。传输信息量或比特量的增加导致传输成本和存储成本的增加。
因此,需要高效的图像压缩技术来有效地传输、存储和再现关于高分辨率和高质量图像的信息。
发明内容
技术问题
本公开的目的是提供一种具有改进的编码/解码效率的图像编码/解码方法和设备。
另外,本公开旨在提供用于通过执行无损颜色变换来提高编码/解码效率的图像编码/解码方法和装置。
另外,本公开旨在提供用于发送由根据本公开的图像编码方法或装置生成的比特流的方法。
另外,本公开旨在提供其中存储有由根据本公开的图像编码方法或装置生成的比特流的记录介质。
此外,本公开旨在提供其中存储有由根据本公开的图像解码装置接收、解码并用于重构图片的比特流的记录介质。
本领域的技术人员将理解,在本公开中将实现的技术目标不限于以上提到的技术目标,并且将从以下描述中清楚地理解本文中未描述的其他技术目标。
技术方案
根据本公开的一方面,提供了一种由图像解码装置执行的图像解码方法,该方法包括以下步骤:确定当前块的残差样本;以及基于是否应用了颜色空间变换来重置所述残差样本的值。这里,可以基于色度残差样本值的半值来执行残差样本的值的重置。
另外,根据本公开的另一方面,提供了一种包括存储器和至少一个处理器的图像解码装置,其中,所述至少一个处理器被配置为:确定当前块的残差样本,并且基于是否应用了颜色空间变换来重置所述残差样本的值。这里,所述处理器可以被配置为基于色度残差样本值的半值来重置所述残差样本的值。
另外,根据本公开的另一方面,提供了一种由图像编码装置执行的图像编码方法,该方法包括以下步骤:确定当前块的残差样本;以及基于是否应用了颜色空间变换来重置所述残差样本的值。这里,可以基于色度残差样本值的半值来执行残差样本的值的重置。
另外,根据本公开的另一方面,提供了用于发送由本公开的图像编码装置或图像编码方法生成的比特流的发送方法。
另外,根据本公开的另一方面,提供了在其中存储由本公开的图像编码方法或图像编码装置生成的比特流的计算机可读记录介质。
以上关于本公开的简要概述的特征仅仅是本公开的以下详细描述的示例性方面,并不限制本公开的范围。
有益效果
根据本公开,能够提供一种具有改进的编码/解码效率的图像编码/解码方法和设备。
另外,根据本公开,可以提供能够通过执行无损颜色变换来提高编码/解码效率的图像编码/解码方法和装置。
另外,根据本公开,可以提供用于发送由根据本公开的图像编码方法或装置生成的比特流的方法。
另外,根据本公开,可以提供其中存储有由根据本公开的图像编码方法或装置生成的比特流的记录介质。
另外,根据本公开,可以提供其中存储有由根据本公开的图像解码装置接收、解码并用于重构图片的比特流的记录介质。
本领域的技术人员将理解,通过本公开可以实现的效果不限于上文已经具体描述的内容,并且将从以下描述中更清楚地理解本公开的其它优点。
附图说明
图1是示意性地示出本公开的实施方式适用于的视频编码系统的视图。
图2是示意性地示出本公开的实施方式适用于的图像编码装置的视图。
图3是示意性地示出本公开的实施方式适用于的图像解码装置的视图。
图4是示出根据实施方式的图像的分割结构的视图。
图5是示出根据多类型树结构的块的分割类型的实施方式的视图。
图6是示出了根据本公开的具有嵌套式多类型树的四叉树结构的块切分信息的信令机制的视图。
图7是示出了CTU被分割为多个CU的实施方式的视图。
图8是示出了根据实施方式的邻近参考样本的视图。
图9和图10是示出了根据实施方式的帧内预测的视图。
图11是示出了根据实施方式的使用帧间预测的编码方法的视图。
图12是示出了根据实施方式的使用帧间预测的解码方法的视图。
图13是示出了用于对一个语法元素进行编码的根据实施方式的CABAC的框图的视图。
图14至图17是示出了根据实施方式的熵编码和解码的视图。
图18和图19是示出了根据实施方式的图片解码和编码过程的示例的视图。
图20是示出了根据实施方式的编码图像的层级结构的视图。
图21是示出了应用ACT的解码处理的实施方式的视图。
图22是示出了其中发信号通知与ACT相关的语法元素的序列参数集语法表的实施方式的视图。
图23至图29是连续示出了其中发信号通知与ACT相关的语法元素的编码基础的语法表的实施方式的视图。
图30是示出了根据实施方式的编码树语法的视图。
图31是示出了根据实施方式的BDPCM的残差样本的编码方法的视图。
图32是示出了根据实施方式的通过执行BDPCM而生成的修改后的量化残差块的视图。
图33是示出了根据实施方式的通过在图像编码装置中应用BDPCM来对当前块进行编码的过程的流程图。
图34是示出了根据实施方式的通过在图像解码装置中应用BDPCM来重构当前块的过程的流程图。
图35至图37是示意性示出了用于发信号通知关于BDPCM的信息的语法的视图。
图38至图53是示出了根据本公开的各个实施方式的用于发信号通知ACT语法元素的语法表的视图。
图54和图55是示出了根据实施方式的图像解码方法的视图。
图56和图57是示出了根据实施方式的图像编码方法的视图。
图58是示出了适用本公开的实施方式的内容流传输系统的视图。
具体实施方式
以下,将结合附图对本公开的实施方式进行详细描述,以易于本领域技术人员实施。然而,本公开可以以各种不同的形式实施,并且不限于这里描述的实施方式。
在描述本公开时,如果确定相关已知功能或构造的详细描述使本公开的范围不必要地含糊不清,则将省略其详细描述。在附图中,省略了与本公开的描述无关的部分,并且相似的附图标记被赋予相似的部分。
在本公开中,当一个组件“连接”、“耦合”或“链接”到另一个组件时,它不仅可以包括直接连接关系,还可以包括中间组件存在的间接连接关系。另外,当一个组件“包括”或“具有”其它组件时,除非另有说明,否则是指还可以包括其它组件,而不是排除其它组件。
在本公开中,术语第一、第二等仅用于将一个组件与其它组件区分开的目的,并且不限制组件的顺序或重要性,除非另有说明。相应地,在本公开的范围内,一个实施方式中的第一组件在另一个实施方式中可以被称为第二组件,类似地,一个实施方式中的第二组件在另一个实施方式中可以被称为第一组件。
在本公开中,相互区分的组件旨在清楚地描述每个特征,并不意味着组件必须分开。即,多个组件可以集成在一个硬件或软件单元中实现,或者一个组件可以在多个硬件或软件单元中分布和实现。因此,即使没有特别说明,这些组件集成或分布式的实施方式也包括在本公开的范围内。
在本公开中,各个实施方式中所描述的组件并不一定是必不可少的组件,一些组件可以是可选的组件。因此,由实施方式中描述的组件的子集组成的实施方式也包括在本公开的范围内。此外,除了在各种实施方式中描述的组件之外还包括其它组件的实施方式包括在本公开的范围内。
本公开涉及图像的编码和解码,除非在本公开中重新定义,否则本公开中使用的术语可以具有本公开所属技术领域中常用的一般含义。
在本公开中,“视频”可以意指根据时间推移的一系列图像的集合。“图片”通常意指表示特定时间段中的一个图像的基础,并且切片/图块是编码时构成图片的一部分的编码基础。一个图片可以由一个或更多个切片/图块构成。另外,切片/图块可以包括一个或更多个编码树单元(CTU)。一个图片可以由一个或更多个切片/图块构成。一个图片可以由一个或更多个图块组构成。一个图块组可以包括一个或更多个图块。砖块(brick)可以是指图片中的图块内的CTU行的四边形区域。一个图块可以包括一个或更多个砖块。砖块可以是指图块内的CTU行的四边形区域。一个图块可以被分割成多个砖块,并且每个砖块可以包括属于图块的一个或更多个CTU行。没有被分割成多个砖块的图块也可以被当作砖块处理。
在本公开中,“像素”或“像元(pel)”可以意指构成一个图片(或图像)的最小单元。此外,“样本”可以用作对应于像素的术语。一个样本一般可以表示像素或像素的值,也可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。
在本公开中,“单元”可以表示图像处理的基本单元。单元可以包括图片的特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,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可以被包括在解码设备12中。渲染器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熵解码方法可以接收与比特流中每个语法元素对应的bin,使用解码目标语法元素信息、邻近块和解码目标块的解码信息或前一阶段解码的符号/bin的信息来确定上下文模型,根据确定的上下文模型通过预测bin的出现概率来对bin执行算术解码,并且生成与每个语法元素的值对应的符号。在这种情况下,CABAC熵解码方法可以在确定上下文模型后,通过将解码的符号/bin的信息用于下一个符号/bin的上下文模型来更新上下文模型。由熵解码器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的比率在水平方向上划分。如图5所示,通过水平三叉划分,可以生成高度为当前CU的高度的1/4并且宽度与当前CU相同的两个CU以及高度为当前CU的高度的一半并且宽度与当前CU相同的一个CU。
图6是示出了根据本公开的具有嵌套式多类型树的四叉树结构的块分割信息的信令机制的视图。
这里,CTU被当作四叉树的根节点来处理,并首次被分割成四叉树结构。发信号通知指示是否针对当前CU(四叉树的节点(QT_node)或CTU)执行四叉树切分的信息(例如,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方法。
编码设备中的基于帧内预测和帧内预测单元的块重构过程可以示意性包括例如下述的下文。可以由编码设备的帧内预测单元185执行步骤S8910。步骤S920可以由残差处理器执行,该残差处理器包括从编码设备的减法器115、变换器120、量化器130、反量化器140和逆变换器150的组中选择的至少一个。具体地,可以由编码设备的减法器115执行步骤S920。在步骤S930中,可以由帧内预测单元185推导预测信息,并且可以由熵编码器190对预测信息进行编码。在步骤S930中,可以由残差处理器推导残差信息,并且可以由熵编码器190对残差信息进行编码。残差信息是关于残差样本的信息。残差信息可以包括关于残差样本的量化变换系数的信息。如上所述,可以通过编码设备的变换器120将残差样本推导为变换系数,并且可以通过量化器130将变换系数推导为量化变换系数。可以由熵编码器190通过残差编码过程对关于量化变换系数的信息进行编码。
在步骤S910中,编码设备可以对当前块执行帧内预测。编码设备推导当前块的帧内预测模式/类型,推导当前块的邻近参考样本,并基于帧内预测模式/类型和邻近参考样本来生成当前块中的预测样本。这里,确定帧内预测模式/类型、推导邻近参考样本和生成预测样本的过程可以同时执行,或者任一个过程可以在其他过程之前执行。例如,虽然未示出,但编码设备的帧内预测单元185可以包括帧内预测模式/类型确定单元、参考样本推导单元和预测样本推导单元。帧内预测模式/类型确定单元可以确定当前块的帧内预测模式/类型,参考样本推导单元可以推导当前块的邻近参考样本,并且预测样本推导单元可以推导当前块的预测样本。此外,当执行稍后将描述的预测样本滤波过程时,帧内预测单元185还可以包括预测样本滤波器。编码设备可以确定多种帧内预测模式/类型当中的应用于当前块的模式/类型。编码设备可以比较帧内预测模式/类型的RD成本,并确定当前块的最佳帧内预测模式/类型。
此外,编码设备可以执行预测样本滤波过程。预测样本滤波可以称为后滤波。通过预测样本滤波过程,预测样本中的一些或全部可以被滤波。在某些情况下,可以省略预测样本滤波过程。
在步骤S920中,编码设备可以基于(滤波后的)残差样本来生成当前块的残差样本。编码设备可以基于相位来比较当前块的原始样本中的预测样本,并可以推导残差样本。
在步骤S930中,编码设备可以对包括关于帧内预测的信息(预测信息)和关于残差样本的残差信息的图像信息进行编码。预测信息可以包括帧内预测模式信息和帧内预测类型信息。编码设备可以以比特流的形式输出编码后的图像信息。输出的比特流可以通过存储介质或网络被发送到解码设备。
残差信息可以包括稍后将描述的残差编码语法。编码设备可以通过对残差样本进行变换/量化来推导量化变换系数。残差信息可以包括关于量化变换系数的信息。
此外,如上所述,编码设备可以生成重构图片(包括重构样本和重构块)。为此目的,编码设备可以对量化变换系数执行反量化/逆变换并推导(修改后的)残差样本。在残差样本的变换/量化之后执行反量化/逆变换的原因是为了推导与由如上所述的解码设备推导出的残差样本相同的残差样本。编码设备可以基于预测样本和(修改后的)残差样本来生成包括当前块的重构样本的重构块。基于重构块,可以生成当前图片的重构图片。如上所述,还可以向重构图片应用环路滤波过程。
解码设备中的基于帧内预测和帧内预测单元的视频/图像解码过程可以示意性包括例如下述的下文。解码设备可以执行与由编码设备执行的操作对应的操作。
可以由解码设备的帧内预测单元265执行步骤S1010至S1030。可以由解码设备的熵解码器210从比特流获得步骤S1010中的预测信息和步骤S1040中的残差信息。包括解码设备的反量化器220或逆变换器230或这二者的残差处理器可以基于残差信息来推导当前块的残差样本。具体地,残差处理器的反量化器220可以基于以残差信息为基础推导出的量化变换系数来执行反量化,并可以推导变换系数。残差处理器的逆变换器230可以对变换系数执行逆变换,并可以推导当前块的残差样本。可以由解码设备的加法器235或重构器来执行步骤S1050。
具体地,在步骤S1010中,解码设备可以基于接收到的预测信息(帧内预测模式/类型信息)来推导当前块的帧内预测模式/类型。在步骤S1020中,解码设备可以推导当前块的邻近参考样本。在步骤S1030中,解码设备可以基于帧内预测模式/类型和邻近参考样本来生成当前块中的预测样本。在这种情况下,解码设备可以执行预测样本滤波过程。预测样本滤波可以称为后滤波。通过预测样本滤波过程,预测样本中的一些或全部可以被滤波。在某些情况下,可以省略预测样本滤波过程。
解码设备可以基于接收到的残差信息来生成当前块的残差样本。在步骤S1040中,解码设备可以基于预测样本和残差样本来生成当前块的重构样本,并可以推导包括重构样本的重构块。基于重构块,可以生成当前图片的重构图片。如上所述,还可以向重构图片应用环路滤波过程。
这里,虽然未示出,但解码设备的帧内预测单元265可以包括帧内预测模式/类型确定单元、参考样本推导单元和预测样本推导单元。帧内预测模式/类型确定单元可以基于从熵解码器210获得的帧内预测模式/类型信息来确定当前块的帧内预测模式/类型。参考样本推导单元可以推导当前块的邻近参考样本。预测样本推导单元可以推导当前块的预测样本。此外,当执行上述的预测样本滤波过程时,帧内预测单元265还可以包括预测样本滤波器。
帧内预测模式信息可以包括例如指示是对当前块应用最可能模式(MPM)还是应用其余模式的标志信息(例如,intra_luma_mpm_flag)。当对当前块应用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标志。
帧内预测模式信息和/或帧内预测类型信息可以通过本文献中描述的编码方法来编码/解码。例如,可以基于截断(莱斯)二进制代码通过熵编码(例如,CABAC、CAVLC)对帧内预测模式信息和/或帧内预测类型信息进行编码/解码。
对帧间预测的概述
下文中,将描述在参考图2和图3的对编码和解码的描述中的帧间预测方法的详细描述。在解码装置的情况下,可以执行基于帧间预测的视频/图像解码方法,并且解码装置中的帧间预测单元可以根据以下描述来操作。在编码装置的情况下,可以执行基于帧间预测的视频/图像编码方法,并且编码装置中的帧间预测单元可以根据以下描述来操作。另外,根据以下描述编码的数据可以以比特流的形式存储。
编码装置/解码装置的预测单元可以通过基于每个块执行帧间预测来推导预测样本。帧间预测可以是指由取决于除了当前图片之外的图片的数据元素(例如,样本值或运动信息)的方法推导出的预测。当对当前块应用帧间预测时,可以基于参考图片索引所指示的参考图片上的运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块(预测样本阵列)。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息相关性以每个块、子块或样本为基础来预测当前块的运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测类型(L0预测、L1预测、Bi预测等)信息。当应用帧间预测时,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片与包括时间邻近块的参考图片可以相同或不同。时间邻近块可以被称为并置参考块或并置CU(colCU)。包括时间邻近块的参考图片可以被称为并置图片(colPic)。例如,可以基于当前块的邻近块来构造运动信息候选列表。可以发信号通知指示选择(使用)哪个候选来推导当前块的运动向量和/或参考图片索引的标志或索引信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,当前块的运动信息可以与所选择的邻近块的运动信息相同。在跳过模式的情况下,与合并模式不同,可以不发送残差信号。在运动信息预测(运动向量预测(MVP))模式的情况下,所选择的邻近块的运动向量可以被用作运动向量预测子,并且可以发信号通知运动向量差。在这种情况下,可以使用运动向量预测子与运动向量差之和来推导当前块的运动向量。
根据帧间预测类型(L0预测、L1预测、Bi预测等),运动信息可以包括L0运动信息和/或L1运动信息。L0方向上的运动向量可以被称为L0运动向量或MVL0,并且L1方向上的运动向量可以被称为L1运动向量或MVL1。基于L0运动向量的预测可以被称为L0预测。基于L1运动向量的预测可以被称为L1预测。基于L0运动向量和L1运动向量二者的预测可以被称为双向预测。这里,L0运动向量可以是指与参考图片列表L0(L0)关联的运动向量,并且L1运动向量可以是指与参考图片列表L1(L1)关联的运动向量。参考图片列表L0可以包括在输出顺序方面在当前图片之前的图片作为参考图片。参考图片列表L1可以包括在输出顺序方面在当前图片之后的图片。之前的图片可以被称为正向(参考)图片,并且之后的图片可以被称为后向(参考)图片。参考图片列表L0还可以包括在输出顺序方面在当前图片之后的图片作为参考图片。在这种情况下,在参考图片列表L0内,可以首先为之前的图片编索引,接下来可以为之后的图片编索引。参考图片列表L1还可以包括在输出顺序方面在当前图片之前的图片作为参考图片。在这种情况下,在参考图片列表1内,可以首先为之后的图片编索引,接下来可以为之前的图片编索引。这里,输出顺序可以对应于图片顺序计数(POC)顺序。
编码装置中的基于帧间预测和帧间预测单元的视频/图像编码过程可以示意性包括例如下述的下文。将参考图11对此进行描述。在步骤S1110中,编码装置可以对当前块执行帧间预测。编码装置可以推导当前块的帧间预测模式和运动信息,并可以生成当前块的预测样本。这里,确定帧内预测模式、推导运动信息和生成预测样本的过程可以同时执行,或者任一个过程可以在其它过程之前执行。例如,编码装置的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元。预测模式确定单元可以确定当前块的预测模式。运动信息推导单元可以推导当前块的运动信息。预测样本推导单元可以推导当前块的预测样本。例如,编码装置的帧间预测单元可以通过运动估计针对与当前块相似的块搜索参考图片的预定区域(搜索区域),并可以推导与当前块的差异最小或者小于或等于预定标准的参考块。基于此,可以推导指示参考块所位于的参考图片的参考图片索引,并且可以基于参考块与当前块之间的位置差异来推导运动向量。编码装置可以确定各种预测模式当中的应用于当前块的模式。编码装置可以比较各种预测模式的RD成本,并可以确定当前块的最佳预测模式。
例如,当对当前块应用跳过模式或合并模式时,编码装置可以构造稍后描述的合并候选列表,并可以推导合并候选列表中所包括的合并候选所指示的参考块当中的与当前块的差异最小或者小于或等于预定标准的参考块。在这种情况下,可以选择与推导出的参考块关联的合并候选,并且可以生成并向解码装置发信号通知指示所选择的合并候选的合并索引信息。可以使用所选择的合并候选的运动信息来推导当前块的运动信息。
作为另一示例,当对当前块应用(A)MVP模式时,编码装置可以构造稍后描述的(A)MVP候选列表,并可以使用在(A)MVP候选列表中所包括的mvp候选当中选择的mvp候选的运动向量作为当前块的运动向量预测子(mvp)。在这种情况下,例如,可以使用指示通过上述运动估计而推导出的参考块的运动向量作为当前块的运动向量。在mvp候选当中,具有与当前块的运动向量的差异最小的运动向量的mvp候选可以是所选择的mvp候选。可以推导作为通过从当前块的运动向量中减去mvp而获得的差值的运动向量差(MVD)。在这种情况下,可以将关于MVD的信息发信号通知给解码装置。另外,当应用(A)MVP模式时,参考图片索引的值可以被构造为参考图片索引信息并可被单独发信号通知给解码装置。
在步骤S1120中,编码装置可以基于预测样本来推导残差样本。编码装置可以比较当前块的预测样本与原始样本以推导残差样本。
在步骤S1130中,编码装置可以对包括预测信息和残差信息的图像信息进行编码。编码装置可以以比特流的形式输出编码后的图像信息。预测信息是与预测过程相关的信息项,并可以包括预测模式信息(例如,跳过标志、合并标志或模式索引)和关于运动信息的信息。关于运动信息的信息可以包括作为推导运动向量的信息的候选选择信息(例如,合并索引、mvp标志或mvp索引)。另外,关于运动信息的信息可以包括上述关于MVD的信息和/或参考图片索引信息。另外,关于运动信息的信息可以包括指示是应用L0预测、L1预测还是双向预测的信息。残差信息是关于残差样本的信息。残差信息可以包括关于残差样本的量化变换系数的信息。
输出比特流可以被存储在(数字)存储介质中并被发送到解码装置,或者可以通过网络被发送到解码装置。
此外,如上所述,编码装置可以基于参考样本和残差样本来生成重构图片(包括重构样本和重构块)。这是为了由编码装置推导与解码装置中执行的预测结果相同的预测结果,并且据此,能提高编码效率。因此,编码装置可以将重构图片(或重构样本、重构块)存储在存储器中,并可以将用作帧间预测的参考图片。如上所述,还可以向重构图片应用环路滤波过程。
解码装置中的基于帧间预测和帧间预测单元的视频/图像解码过程可以示意性包括例如下述的下文。
解码装置可以执行与由编码装置执行的操作对应的操作。解码装置可以基于接收到的预测信息对当前块执行预测,并可以推导预测样本。
具体地,在步骤S1210中,解码装置可以基于接收到的预测信息来确定当前块的预测模式。解码装置可以基于预测信息中的预测模式信息来确定对当前块应用哪种帧间预测模式。
例如,基于合并标志,可以确定是向当前块应用合并模式还是确定(A)MVP模式。另选地,可以基于模式索引来选择各种帧间预测模式候选中的一个。帧间预测模式候选可以包括跳过模式、合并模式和/或(A)MVP模式,或者可以包括稍后描述的各种帧间预测模式。
在步骤S1220中,解码装置可以基于所确定的帧间预测模式来推导当前块的运动信息。例如,当对当前块应用跳过模式或合并模式时,解码装置可以构造稍后描述的合并候选列表,并可以从合并候选列表中所包括的合并候选当中选择一个合并候选。可以基于上述选择信息(合并索引)来执行选择。可以使用所选择的合并候选的运动信息来推导当前块的运动信息。所选择的合并候选的运动信息可以被用作当前块的运动信息。
作为另一示例,当对当前块应用(A)MVP模式时,解码装置可以构造稍后描述的(A)MVP候选列表,并可以使用在(A)MVP候选列表中所包括的mvp候选当中选择的mvp候选的运动向量作为当前块的运动向量预测子(mvp)。可以基于上述选择信息(mvp标志或mvp索引)来执行选择。在这种情况下,可以基于关于MVD的信息来推导当前块的MVD,并且可以基于当前块的mvp和MVD来推导当前块的运动向量。另外,可以基于参考图片索引信息来推导当前块的参考图片索引。与当前块相关的参考图片列表中的参考图片索引所指示的图片可以被推导为当前块的帧间预测所参考的参考图片。
此外,如稍后将描述的,可以在没有构造候选列表的情况下推导当前块的运动信息。在这种情况下,可以根据在稍后描述的预测模式中描述的过程来推导当前块的运动信息。在这种情况下,可以省略如上所述的候选列表配置。
在步骤S1230中,解码装置可以基于当前块的运动信息来生成当前块的预测样本。在这种情况下,可以基于当前块的参考图片索引来推导参考图片,并且可以使用由当前块的运动向量在参考图片上指示的参考块的样本来推导当前块的预测样本。在这种情况下,如稍后描述的,在某些情况下,可以对当前块的所有或一些预测样本进一步执行预测样本滤波过程。
例如,解码装置的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元。预测模式确定单元可以基于接收到的预测模式信息来确定当前块的预测模式。运动信息推导单元可以基于接收到的关于运动信息的信息来推导当前块的运动信息(运动向量和/或参考图片索引)。预测样本推导单元可以推导当前块的预测样本。
在步骤S1240中,解码装置可以基于接收到的残差信息来生成当前块的残差样本。在步骤S1250中,解码装置可以基于预测样本和残差样本来生成当前块的重构样本,并可以基于此来生成重构图片。此后,如上所述,可以进一步对重构图片应用环路滤波过程。
如上所述,帧间预测过程可以包括确定帧间预测模式、根据所确定的预测模式来推导运动信息以及基于推导出的运动信息来执行预测(生成预测样本)的步骤。帧间预测过程可以在如上所述的编码装置和解码装置中执行。
量化/反量化
如上所述,编码设备的量化器可以通过对变换系数应用量化来推导量化变换系数。编码设备的反量化器或解码设备的反量化器可以通过对量化变换系数应用反量化来推导变换系数。
在视频/静止图像的编码和解码中,可以改变量化比,并且可以使用改变后的量化比来调整压缩比。从实现的角度来看,考虑到复杂度,可以使用量化参数(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)来发信号通知是否省略变换/逆变换。
可以基于变换核来执行变换/逆变换。例如,可以应用用于执行变换/逆变换的多变换选择(MTS)方案。在这种情况下,可以选择多变换核集中的一些并将其应用于当前块。变换核可以被称为诸如变换矩阵、变换类型等这样的各种术语。例如,变换核集可以是指垂直方向转换核(垂直变换核)与水平方向转换核(水平变换核)的组合。
可以以每个CU或TU为基础来执行变换/逆变换。即,可以对CU中的残差样本或TU中的残差样本应用变换/逆变换。CU大小和TU大小可以相同,或者在CU区域中可以存在多个TU。此外,CU大小通常可以是指亮度分量(样本)CB大小。TU大小通常可以是指亮度分量(样本)TB大小。可以根据按照颜色格式的分量比(色度格式,例如,4:4:4、4:2:2、4:2:0等)基于亮度分量(样本)CB或TB大小来推导色度分量(样本)CB或TB大小。可以基于maxTbSize来推导TU大小。例如,当CU大小大于maxTbSize时,可以从CU推导具有maxTbSize的多个TU(TB),并且可以以每个TU(TB)为基础执行变换/逆变换。在确定是否应用诸如ISP这样的各种帧内预测类型时可以考虑maxTbSize。关于maxTbSize的信息可以是预先确定的。另选地,关于maxTbSize的信息可以由编码设备生成和编码,并被发信号通知给编码设备。
熵编码
如以上参考图2描述的,视频/图像信息中的一些或全部可以由熵编码器190熵编码。参考图3描述的视频/图像信息中的一些或全部可以由熵解码器310熵解码。在这种情况下,可以以每个语法元素为基础对视频/图像信息进行编码/解码。在本文献中,对信息的编码/解码可以包括通过本段落中描述的方法进行的编码/解码。
图13示出了用于对一个语法元素进行编码的CABAC的框图。在CABAC的编码处理中,首先,当输入信号是非二进制值的语法元素时,通过二进制化将输入信号变换为二进制值。当输入信号已经是二进制值时,输入信号绕过二进制化。这里,构成二进制值的每个二进制数0或1可以被称为bin。例如,二进制化后的二进制串(bin串)为110,1、1和0中的每一个被称为一个bin。一个语法元素的bin可以是指语法元素的值。
二进制化的bin可以被输入到常规编码引擎或旁路编码引擎。常规编码引擎可以将应用概率值的上下文模型指派给对应的bin,并基于所指派的上下文模型对bin进行编码。在对每个bin执行编码之后,常规编码引擎可以更新bin的概率模型。以这种方式编码的bin可以被称为上下文编码的bin。旁路编码引擎可以省略用于估计输入bin的概率的过程以及用于在编码之后更新应用于bin的概率模型的过程。在旁路编码引擎的情况下,通过应用均匀概率分布(例如,50:50)而不是指派上下文来对输入bin进行编码,由此提高编码率。以这种方式编码的bin可以被称为旁路bin。可以针对每个待上下文编码(常规编码)的bin指派和更新上下文模型,并且可以基于ctxidx或ctxInc来指示上下文模型。可以基于ctxInc来推导ctxidx。具体地,例如,指示用于常规编码的bin中的每一个的上下文模型的上下文索引(ctxidx)可以被推导为上下文索引增量(ctxInc)与上下文索引偏移(ctxIdxOffset)之和。这里,可以推导因bin而异的ctxInc。ctxIdxOffset可以由ctxIdx的最低值表示。ctxIdx的最低值可以被称为ctxIdx的初始值(initValue)。ctxIdxOffset是通常用于与其它语法元素的上下文模型区分开的值,并且一个语法元素的上下文模型可以基于ctxinc来区分/推导。
在熵编码过程中,确定是通过常规编码引擎执行编码还是通过旁路编码引擎执行编码,并且可以切换编码路径。熵解码可以以倒序执行与熵编码相同的处理。
例如,可以如图14和图15中地执行上述的熵编码。参照图14和图15,编码设备(熵编码器)可以对图像/视频信息执行熵编码过程。图像/视频信息可以包括分割相关信息、预测相关信息(例如,帧间/帧内预测分类信息、帧内预测模式信息和帧间预测模式信息)、残差信息和环路滤波相关信息,或者可以包括与其相关的各种语法元素。熵编码可以以每个语法元素为基础来执行。图14的S1410至S1420可以由上述图2的编码设备的熵编码器190执行。
在步骤S1410中,编码设备可以对目标语法元素执行二进制化。这里,二进制化可以基于诸如截断莱斯二进制化处理或固定长度二进制化处理这样的各种二进制化方法,并且用于目标语法元素的二进制化方法可以是预定义的。二进制化过程可以由熵编码器190中的二进制化单元191执行。
在步骤S1420中,编码设备可以对目标语法元素执行熵编码。编码设备可以基于诸如上下文自适应算术编码(CABAC)或上下文自适应可变长度编码(CAVLC)这样的熵编码方案来对目标语法元素的bin串执行基于常规编码(基于上下文)或基于旁路编码的编码。输出可以被包括在比特流中。熵编码过程可以由熵编码器190中的熵编码处理器192执行。如上所述,比特流可以通过(数字)存储介质或网络被发送到解码设备。
参照图16和图17,解码设备(熵解码器)可以对编码后的图像/视频信息进行解码。图像/视频信息可以包括分割相关信息、预测相关信息(例如,帧间/帧内预测分类信息、帧内预测模式信息和帧间预测模式信息)、残差信息和环路滤波相关信息,或者可以包括与其相关的各种语法元素。熵编码可以以每个语法元素为基础来执行。步骤S1610至S1620可以由上述图3的解码设备的熵解码器210执行。
在步骤S1610中,解码设备可以对目标语法元素执行二进制化。这里,二进制化可以基于诸如截断莱斯二进制化处理和固定长度二进制化处理这样的各种二进制化方法,并且用于目标语法元素的二进制化方法可以被预定义。解码设备可以通过二进制化过程推导目标语法元素的可用值的可用bin串(bin串候选)。二进制化过程可以由熵解码器210中的二进制化单元211执行。
在步骤S1620中,解码设备可以对目标语法元素执行熵解码。解码设备从比特流中的输入比特依次解码和解析目标语法元素的每个bin,并可以将推导出的bin串与语法元素的可用bin串进行比较。当推导出的bin串与可用bin串中的一个相同时,与bin串对应的值可以被推导为语法元素的值。如若不然,则进一步解析比特流中的下一个比特,并且再次执行上述过程。通过该处理,不使用比特流中的特定信息(特定语法元素)的开始比特或结束比特,但使用可变长度的比特来发信号通知信息。据此,针对低值指派相对较少的比特,由此提高了总体编码效率。
解码设备可以基于诸如CABAC或CAVLC这样的熵编码方案来对比特流中的bin串中的每个bin执行基于上下文或基于旁路的解码。熵解码过程可以由熵解码器210中的熵解码处理器212执行。比特流可以包括用于如上所述的图像/视频解码的各种类型的信息。如上所述,比特流可以通过(数字)存储介质或网络被发送到解码设备。
在本文献中,可以使用包括语法元素的表(语法表)来表示从编码设备到解码设备的信息的信令。本文献中使用的包括语法元素的表中的语法元素的顺序可以是指比特流中的语法元素的解析顺序。编码设备可以构造和编码语法表,以便由解码设备按解析顺序对语法元素进行解析。解码设备可以按解析顺序从比特流中解析和解码语法表的语法元素,并因此可以获得语法元素的值。
一般图像/视频编码过程
在图像/视频编码中,构成图像/视频的图像可以根据序列中的解码顺序被编码/解码。与解码图片的输出顺序对应的图片顺序可以被设置为不同于解码顺序,并且基础此,当执行帧间预测时,可以执行正向预测以及后向预测。
图18示出了适用本文献的实施方式的示意性图片解码过程的示例。在图18中,步骤S1810可以由以上参考图3描述的解码设备的熵解码器210执行。步骤S1820可以由包括帧内预测单元265和帧间预测单元260的预测单元来执行。步骤S1830可以由包括反量化器220和逆变换器230的残差处理器来执行。步骤S1840可以由加法器235执行。步骤S1850可以由滤波器240执行。步骤S1810可以包括本文献中描述的信息解码过程。步骤S1820可以包括本文献中描述的帧间/帧内预测过程。步骤S1830可以包括本文献中描述的残差处理过程。步骤S1840可以包括本文献中描述的块/图片重构过程。步骤S1850可以包括本文献中描述的环路滤波过程。
参考图18,图片解码过程可以示意性包括如以上参考图3描述的在步骤S1810中(通过解码)从比特流获取图像/视频信息的过程、在步骤S1820至S1840中的图片重构过程以及在步骤S1850中用于重构图片的环路滤波过程。可以基于通过本文献中描述的步骤S1820中的帧间/帧内预测获得的预测样本和残差样本以及步骤S1830(量化变换系数的反量化和逆变换)处理中的残差处理来执行图片重构过程。对于通过图片重构过程生成的重构图片,可以通过环路滤波过程来生成修改后的重构图片。修改后的重构图片可以作为解码图片输出,并可以被存储在解码设备的存储器250或解码图片缓冲器中,以便稍后在解码图片时用作帧间预测过程中的参考图片。在某些情况下,可以省略环路滤波过程。在这种情况下,重构图片可以作为解码图片输出,并可以被存储在解码设备的存储器250或解码图片缓冲器中,以便稍后在解码图片时用作帧间预测过程中的参考图片。如上所述,步骤S1850中的环路滤波过程可以包括去块滤波过程、采样自适应偏移(SAO)过程、自适应环路滤波器(ALF)过程和/或双向滤波器过程。可以省略其中的一些或全部。另外,可以依次应用去块滤波过程、采样自适应偏移(SAO)过程、自适应环路滤波(ALF)过程和双向滤波过程中的一个或一些,或者可以依次应用它们中的全部。例如,可以对重构图片应用去块滤波过程,然后可以执行SAO过程。另选地,例如,可以对重构图片应用去块滤波过程,然后可以执行ALF过程。这可以以与编码设备中的方式相同的方式执行。
图19示出了适用本文献的实施方式的示意性图片编码过程的示例。在图19中,步骤S1910可以由包括以上参考图2描述的编码设备的帧内预测单元185或帧间预测单元180的预测单元来执行。步骤S1920可以由包括变换器120和/或量化器130的残差处理器来执行。步骤S1930可以由熵编码器190执行。步骤S1910可以包括本文献中描述的帧间/帧内预测过程。步骤S1920可以包括本文献中描述的残差处理过程。步骤S1930可以包括本文献中描述的信息编码过程。
参照图19,图片编码过程可以示意性包括如以上参考图2描述的对用于图片重构的信息(例如,预测信息、残差信息和分割信息)进行编码并将信息以比特流的形式输出的过程、生成当前图片的重构图片的过程和对重构图片应用环路滤波的过程(可选的)。编码设备可以通过反量化器140和逆变换器150从量化变换系数推导(修改后的)残差样本,并可以基于作为S1910的输出的预测样本和(修改后的)残差样本来生成重构图片。所生成的重构图片可以与由上述解码设备生成的重构图片相同。可以对重构图片执行环路滤波过程,以生成修改后的重构图片。修改后的重构图片可以被存储在解码图片缓冲器或存储器170中。与解码设备中的情况类似,修改后的重构图片可以稍后在对图像进行编码时用作帧间预测过程中的参考图片。如上所述,在某些情况下,可以省略环路滤波过程中的一些或全部。当执行环路滤波过程时,(环路)滤波相关信息(参数)可以被熵编码器190编码并以比特流的形式输出。解码设备可以以与编码设备相同的方式基于滤波相关信息来执行环路滤波过程。
通过该环路滤波过程,可以减少在图像/视频编码期间产生的诸如块伪影(和振铃伪影这样的噪声,并且可以改善主观/客观视觉质量。另外,编码设备和解码设备二者都执行环路滤波过程,使得编码设备和解码设备可以推导出相同的预测结果,可以增加图片编码的可靠性,并且可以减少为了图片编码而发送的数据量。
如上所述,可以在解码设备以及编码设备中执行图片重构过程。可以基于以每个块为基础的帧内预测/帧间预测来生成重构块,并且可以生成包括重构块的重构图片。当当前图片/切片/图块组是I图片/切片/图块组时,可以仅基于帧内预测来重构当前图片/切片/图块组中所包括的块。此外,当当前图片/切片/图块组是P或B图片/切片/图块组时,可以基于帧内预测或帧间预测来重构当前图片/切片/图块组中所包括的块。在这种情况下,可以对当前图片/切片/图块组中的一些块应用帧间预测,并且可以对其余一些块应用帧内预测。图片的颜色分量可以包括亮度分量和色度分量。除非在本文献中明确限制,否则本文献中提出的方法和实施方式可以应用于亮度分量和色度分量。
编码层级和结构的示例
根据本文献的编码视频/图像可以根据例如稍后将描述的编码层级和结构来处理。
图20是示出了编码图像的层级结构的视图。编码图像可以被划分为操纵图像的解码处理及其自身的视频编码层(VCL,视频编码层级)、用于发送和存储编码信息的子系统以及存在于VCL和子系统之间并负责网络适配功能的网络抽象层(NAL,网络抽象层级)。
在VCL中,可以生成包括压缩图像数据(切片数据)的VCL数据。另选地,可以生成包括诸如图片参数集(PPS)、序列参数集(SPS)和视频参数集(VPS)这样的信息的参数集或图像解码处理额外需要的补充增强信息(SEI)消息。
在NAL中,头信息(NAL单位头)被添加到在VCL中生成的原始字节序列有效载荷(RBSP),使得可以生成NAL单元。这里,RBSP是指在VCL中生成的切片数据、参数集和SEI消息。NAL单元头可以包括根据NAL单元中所包括的RBSP数据指定的NAL单元类型信息。
如图中所示,根据在VCL中生成的RBSP,NAL单元可以划分为VCL NAL单元和非VCLNAL单元。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_unit_type值指定NAL单元类型。
切片头(切片头语法)可以包括共同适用于切片的信息/参数。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颜色空间中被编码。
图21是示出了应用ACT的解码处理的实施方式的视图。在图21的实施方式中,运动补偿预测可以对应于本公开中的帧间预测。
如图21中所示,重构图片(或重构块、重构样本阵列、重构样本、重构信号)可以基于预测输出值和残差输出值来生成。这里,残差输出值可以是逆变换输出值。这里,逆变换可以是正常逆变换。这里,正常逆变换可以是基于MTS的逆变换或逆低频不可分离变换(LFNST)。
这里,预测输出值可以是预测块、预测样本阵列、预测样本或预测信号。残差输出值可以是残差块、残差样本阵列、残差样本或残差信号。
例如,就编码设备而言,可以对基于预测样本推导出的残差样本执行ACT处理。另外,可以提供ACT处理的输出值作为正常变换处理的输入。这里,正常变换处理可以是基于MTS的变换或LFNST。
关于(逆)ACT的信息(参数)可以由编码设备生成和编码,并可以以比特流的形式发送到解码设备。
解码设备可以获得、解析和解码(逆)ACT相关信息(参数),并且可以基于(逆)ACT相关信息(参数)来执行逆ACT。
基于逆ACT,可以推导(修改后的)残差样本(或残差块)。例如,可以通过对量化(变换)系数应用反量化来推导(变换)系数。另外,可以通过对(变换)系数执行逆变换来推导残差样本。另外,可以通过对残差样本应用逆ACT来获得(修改后的)残差样本。稍后,将详细地描述关于(逆)ACT的信息(参数)。
在实施方式中,在HEVC中使用的核变换函数可以被用作颜色空间变换的核变换函数(变换核)。例如,可以使用如下式中所示的用于正向转换和后向转换的矩阵。
[式1]
Figure BDA0003739322980000391
[式2]
Figure BDA0003739322980000392
这里,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可以被禁用。
图22是示出了其中发信号通知与ACT相关的语法元素的序列参数集语法表的实施方式的视图。
图23至图29是连续示出了其中发信号通知与ACT相关的语法元素的编码基础的语法表的实施方式的视图。
如图22中所示,作为指示在解码处理中ACT是否被启用的ACT启用标志,可以使用sps_act_enabled_flag 2210。
sps_act_enabled_flag的第一值(例如,0)可以指示不使用ACT,并且指示是否在编码基础中应用ACT的标志cu_act_enabled_flag 2310、2910未在针对编码基础的语法中提供。
sps_act_enabled_flag的第二值(例如,1)可以指示可以使用ACT,并且cu_act_enabled_flag可以在针对编码基础的语法中提供。
当在比特流中未获得sps_act_enabled_flag时,sps_act_enabled_flag的值可以被推导为第一值(例如,0)。
另外,如图23中所示,作为指示是否在YCgCo颜色空间中对当前编码基础的残差进行编码的ACT标志,可以使用cu_act_enabled_flag 2310、2910。
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的值。变量CuQgTopLeftX和CuQgTopLeftY可以被定义为如图30中所示的编码树语法中的预定值。
这里,当前量化组可以是编码树块内的四边形区域,并可以共享相同的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可以通过将预定常数(例如,6)乘以指示亮度或色度样本的比特深度的语法元素(例如,sps_bitdepth)的值来计算。可以如下式中所示地推导亮度量化参数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时(例如,当不跳过当前变换块的变换时),可以如下式中所示地进行推导。这里,transform_skip_flag的第一值(例如,0)可以指示由另一语法元素确定是否省略变换。transform_skip_flag的第二值(例如,1)可以指示变换省略(例如,跳过)。
[式12]
qP=qP-(cu_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_flag
这里,QpPrimeTsMin可以指示当应用变换跳过模式时所允许的最小量化参数值。这可以被确定为预定常数,或者可以从与其相关的比特流的语法元素推导。
这里,后缀Y、Cb和Cr可以表示RGB颜色模型中的G、B和R颜色分量或YCgCo颜色模型中的Y、Cg和Co颜色分量。
对块差分脉冲编码调制(BDPCM)的概述
根据实施方式的图像编码设备和图像解码设备可以执行残差信号的差分编码。例如,图像编码设备可以通过从当前块的残差信号中减去预测信号来对残差信号进行编码,并且图像解码设备可以通过将当前块的残差信号与预测信号相加来对残差信号进行解码。根据实施方式的图像编码设备和图像解码设备可以通过应用下述的BDPCM来执行残差信号的差分编码。
根据本公开的BDPCM可以在量化残差域中执行。量化残差域可以包括量化残差信号(或量化残差系数),并且当应用BDPCM时,可以跳过量化残差信号的变换。例如,当应用BDPCM时,可以跳过残差信号的变换,并且可以执行量化。另选地,量化残差域可以包括量化变换系数。
在应用BDPCM的实施方式中,图像编码设备可以推导在帧内预测模式中预测的当前块的残差块并对残差块进行量化,由此推导残差块。当针对当前块执行残差信号的差分编码模式时,图像编码设备可以针对残差块执行差分编码,以推导修改后的残差块。另外,图像编码设备可以对指定残差信号和修改后的残差块的差分编码模式的差分编码模式信息进行编码,由此生成比特流。
更具体地,当对当前块应用BDPCM时,可以通过帧内预测来生成包括当前块的预测样本的预测块(预测块)。在这种情况下,用于执行帧内预测的帧内预测模式可以通过比特流发信号通知,并可以基于下述BDPCM的预测方向来推导。另外,在这种情况下,帧内预测模式可以被确定为垂直预测方向模式或水平预测方向模式中的一种。例如,当BDPCM的预测方向为水平方向时,帧内预测模式可以被确定为水平预测方向模式,并且可以通过水平方向的帧内预测来生成当前块的预测块。另选地,当BDPCM的预测方向为垂直方向时,帧内预测模式可以被确定为垂直预测方向模式,并且可以通过垂直方向的帧内预测来生成当前块的预测块。当应用水平方向的帧内预测时,与当前块的左侧相邻的像素的值可以被确定为当前块的对应行中所包括的样本的预测样本值。当应用垂直方向的帧内预测时,与当前块的顶部相邻的像素的值可以被确定为当前块的对应行中所包括的样本的预测样本值。当对当前块应用BDPCM时,可以在图像编码设备和图像解码设备中同等地执行生成当前块的预测块的方法。
当对当前块应用BDPCM时,图像编码设备可以通过从当前块中减去预测样本来生成包括当前块的残差样本的残差块。图像编码设备可以对残差块进行量化,然后对量化残差样本和量化残差样本的预测子之间的差值(或增量)进行编码。图像解码设备可以通过基于预测子和从比特流重构的差值获得当前块的量化残差样本来生成当前块的量化残差块。此后,图像解码设备可以对量化残差块进行反量化,然后将其添加到预测块,由此重构当前块。
图31是例示了根据本公开的BDPCM的残差样本的编码方法的视图。图31的残差块可以通过在图像编码设备中从当前块中减去预测块来生成。图31的量化残差块可以通过由图像编码设备对残差块进行量化来生成。在图31中,ri,j指定当前块中的(i,j)坐标的残差样本的值。当当前块的大小为M×N时,值i可以是从0至M-1,包括端值。另外,值j可以是从0至N-1,包括端值。例如,残差可以是指原始块与预测块之间的差值。例如,ri,j可以通过从当前块中的(i,j)坐标的原始样本的值减去预测样本的值来推导。例如,ri,j可以是使用来自顶部或左侧边界样本的未滤波的样本执行水平帧内预测或垂直帧内预测之后的预测残差。在水平帧内预测中,沿着穿过预测块的线复制左侧邻近像素的值。在垂直帧内预测中,顶部邻近行被复制到预测块的各个行。
在图31中,Q(ri,j)是指当前块中的坐标(i,j)的量化残差样本的值。例如,Q(ri,j)可以是指ri,j的量化值。
对图31的量化残差样本执行BDPCM的预测,并且可以生成包括修改后的量化残差样本r’的具有M×N大小的修改后的量化残差块R’。
当BDPCM的预测方向为水平方向时,可以如下式中所示地计算当前块中的坐标(i,j)的修改后的量化残差样本的值r'i,j
[式14]
Figure BDA0003739322980000471
如式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 BDA0003739322980000472
如式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预测。
最后,图像编码设备可以对包括修改后的量化残差样本的修改后的量化残差块进行编码,并可以将所得块发送到所述图像解码设备。这里,如上所述,不执行修改后的量化残差块的变换。
图32是示出了本公开的通过执行BDPCM而生成的修改后的量化残差块的视图。
在图32中,水平BDPCM示出了当BDPCM的预测方向为水平方向时根据式14生成的修改后的量化残差块。另外,垂直BDPCM示出了当BDPCM的预测方向为垂直方向时根据式15生成的修改后的量化残差块。
图33是示出了通过在图像编码设备中应用BDPCM来对当前块进行编码的过程的流程图。
首先,当在步骤S3310中输入作为编码目标块的当前块时,可以在步骤S3320中对当前块执行预测以生成预测块。步骤S3320中的预测块可以是帧内预测块,并且可以如上所述地确定帧内预测模式。基于在步骤S3320中生成的预测块,可以在步骤S3330中生成当前块的残差块。例如,图像编码设备可以通过从当前块(原始样本的值)减去预测块(预测样本的值)来生成残差块(残差样本的值)。例如,通过执行步骤S3330,可以生成图31的残差块。在步骤S3330中生成的残差块上,可以在步骤S3340中执行量化以生成量化残差块,并且可以在步骤S3350中对量化残差块执行BDPCM预测。作为执行步骤S3340的结果生成的量化残差块可以是图31的量化残差块。作为步骤S3350中的BDPCM预测的结果,可以根据预测方向生成图32的修改后的量化残差块。由于已经参考图31至图32描述了步骤S3350中的BDPCM预测,因此将省略对其的详细描述。此后,图像编码设备可以在步骤S3360中对修改后的量化残差块进行编码以生成比特流。这里,可以跳过修改后的量化残差块的变换。
参考图31至图33描述的图像编码设备中的BDPCM操作可以由图像解码设备反向地执行。
图34是示出了通过在图像解码设备中应用BDPCM来重构当前块的过程的流程图。
在步骤S3410中,图像解码设备可以从比特流获得重构当前块所需的信息(图像信息)。重构当前块所需的信息可以包括关于当前块的预测的信息(预测信息)和关于当前块的残差的信息(残差信息)。图像解码设备可以基于关于当前块的信息对当前块执行预测,并可以在步骤S3420中生成预测块。关于当前块的预测可以是帧内预测,并且对其的详细描述与以上参考图33描述的详细描述相同。在图34中,示出了在生成当前块的残差块的步骤S3430至S3450之前执行生成当前块的预测块的步骤S3420。然而,对此没有施加任何限制。在生成当前块的残差块之后,可以生成当前块的预测块。另选地,可以同时生成当前块的残差块和当前块的预测块。
在步骤S3430中,图像解码设备可以通过从比特流解析当前块的残差信息来生成当前块的残差块。在步骤S3430中生成的残差块可以是图32中示出的修改后的量化残差块。
图像解码设备可以通过在步骤S3440中对图32的修改后的量化残差块执行BDPCM预测来生成图31的量化残差块。步骤S3440中的BDPCM预测是用于从图32的修改后的量化残差块生成图31的量化残差块的过程,其对应于由图像编码设备执行的步骤S3350的逆处理。例如,当从比特流获得的差分编码模式信息(例如,bdpcm_flag)指示在应用BDPCM时执行残差系数的差分编码的差分编码模式时,图像解码设备对残差块执行差分编码以推导修改后的残差块。使用待修改的残差系数和预测残差系数,图像解码设备可以修改残差块中的残差系数当中的至少一个待修改的残差系数。可以基于由从比特流获得的差分编码方向信息(例如,bdpcm_dir_flag)指示的预测方向来确定预测残差系数。差分编码方向信息可以指示垂直方向或水平方向。图像解码设备可以将通过将待修改的残差系数与预测残差系数相加而获得的值指派给待修改的残差系数的位置。这里,预测残差系数可以是依据根据预测方向的顺序紧接在待修改的残差系数之前并与其相邻的系数。
下文中,以下将更详细地描述由图像解码设备执行的步骤S3440中的BDPCM预测。解码设备可以通过反向地执行由编码设备执行的计算来计算量化残差样本Q(ri,j)。例如,当BDPCM的预测方向为水平方向时,图像解码设备可以通过使用式16从修改后的量化残差块生成量化残差块。
[式16]
Figure BDA0003739322980000491
如在式16中定义的,可以通过对从坐标(0,j)开始到坐标(i,j)的修改后的量化残差样本的值求和来计算坐标(i,j)的量化残差样本的值Q(ri,j)。
另选地,可以使用式17替代式16来计算坐标(i,j)的量化残差样本的值Q(ri,j)。
[式17]
Figure BDA0003739322980000492
式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(r1,j)。
当BDPCM的预测方向为垂直方向时,图像解码设备可以通过使用式18从修改后的量化残差块生成量化残差块。
[式18]
Figure BDA0003739322980000501
如在式18中定义的,可以通过对从坐标(i,0)开始到坐标(i,j)的修改后的量化残差样本的值求和来计算坐标(i,j)的量化残差样本的值Q(ri,j)。
另选地,可以使用式19替代式18来计算坐标(i,j)的量化残差样本的值Q(ri,j)。
[式19]
Figure BDA0003739322980000502
式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)。
当根据上述方法通过执行步骤S3440来生成由量化残差样本构成的量化残差块时,图像解码设备在步骤S3450中对量化残差块执行反量化,以生成当前块的残差块。当应用BDPCM时,如上所述地跳过当前块的变换。因此,可以跳过反量化残差块的逆变换。
此后,在步骤S3460中,图像解码设备可以基于在步骤S3420中生成的预测块和在步骤S3450中生成的残差块来重构当前块。例如,图像解码设备可以通过将预测块(预测样本的值)与残差块(残差样本的值)相加来重构当前块(重构样本的值)。例如,可以通过将反量化的量化样本Q-1(Q(ri,j))与块内预测值相加来生成重构样本值。指示是否对当前块应用BDPCM的差分编码模式信息可以通过比特流来发信号通知。另外,当对当前块应用BDPCM时,指示BDPCM的预测方向的差分编码方向信息可以通过比特流来发信号通知。当未对当前块应用BDPCM时,差分编码方向信息可不被发信号通知。
图35至图37是示意性示出了用于发信号通知关于BDPCM的信息的语法的视图。
图35是示出了根据用于发信号通知BDPCM信息的实施方式的序列参数集的语法的视图。在实施方式中,具有值0作为时间ID(TemporalId)的至少一个访问单元(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单元可以被设置为具有相同的内容。在图35的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)。
图36是示出了用于发信号通知是否应用对BDPCM的限制的语法的实施方式的视图。在实施方式中,编码/解码处理中的预定限制条件可以使用general_constraint_info()语法来发信号通知。使用图36的语法,可以发信号通知指示上述的sps_bdpcm_enabled_flag的值是否需要设置为0的语法元素no_bdpcm_constraint_flag。例如,no_bdpcm_constraint_flag的第一值(例如,0)可以指示不应用限制。当no_bdpcm_constraint_flag的值为第二值(例如,1)时,sps_bdpcm_enabled_flag的值可以被强制为第一值(例如,0)。
图37是示出了用于针对编码单元发信号通知关于BDPCM的信息的coding_unit()语法的实施方式的视图。如图37中所示,语法元素intra_bdpcm_flag和intra_bdpcm_dir_flag可以使用coding_unit()语法来发信号通知。语法元素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+cbHeight–1,变量BdpcmDir[x][y]的值可以被设置为intra_bdpcm_dir_flag的值。
色度块的帧内预测
当对当前块执行帧内预测时,可以执行当前块的亮度分量块(亮度块)的预测和色度分量块(色度块)的预测。在这种情况下,色度块的帧内预测模式可以与亮度块的帧内预测模式分开设定。
例如,色度块的帧内预测模式可以基于帧内色度预测模式信息来指示,并且帧内色度预测模式信息可以按intra_chroma_pred_mode语法元素的形式用信号通知。例如,帧内色度预测模式信息可以表示平面模式、DC模式、垂直模式、水平模式、推导模式(DM)和交叉分量线性模型(CCLM)模式中的一个。这里,平面模式可以指定帧内预测模式#0,DC模式可以指定帧内预测模式#1,垂直模式可以指定帧内预测模式#26,水平模式可以指定帧内预测模式#10。DM也可以称为直接模式。CCLM也可以称为线性模型(LM)。CLM模式可包括以下中的任一者: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*resCr[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 BDA0003739322980000541
上表示出了色度残差的重构。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更新方法
如上所述,可以执行QP的更新以应用ACT。上述QP的更新有几个问题。例如,当使用上述方法时,不可能针对各个颜色分量设置不同的ACT Qp偏移。另外,推导出的qP值可能具有负值。因此,在下面的实施方式中,描述了一种对基于颜色分量值的ACT QP偏移值推导出的Qp值应用限幅的方法。
在实施方式中,可以如下地推导量化参数qP。
首先,当cIdx具有值0时,可以如下式中所示地推导qP和ACT Qp偏移。
[式24]
qP=Qp'Y
ActQpOffset=5
另选地,当TuCResMode[xTbY][yTbY]具有值2时,可以如下式中所示地推导qP和ACT Qp偏移。
[式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和ACT Qp偏移。
[式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和ACT Qp偏移。
[式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中的参数来发信号通知。
在实施方式中,可以根据图38的语法表发信号通知qp_offset。其语法元素如下。
语法元素pps_act_qp_offsets_present_flag可以指示在PPS中是否存在与ACTQP偏移相关的语法元素。例如,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_plus5s和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值或qP的可用最大值(例如,63)。
在根据以上的实施方式中,可以如下地推导量化参数qP。首先,当cIdx具有值0时,可以如下式中所示地推导qP和ACT Qp偏移。
[式44]
qP=Qp'Y
ActQpOffset=PpsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]具有值2时,可以如下式中所示地推导qP和ACT Qp偏移。
[式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,由此提高了编码效率。图39示出了即使当对色度分量块应用BDPCM时也应用ACT的语法配置的实施方式。如图39中所示,通过去除根据指示是否对当前编码基础应用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二者时,用于发信号通知这一点的语法表可以如图40中所示地修改。因此,如图40的语法表中所示,在对发信号通知与intra_bdpcm_chroma和cclm相关的语法元素的限制当中,可以从语法表中去除根据是否应用ACT来发信号通知语法元素的if(!cu_act_enabled_flag)。
实施方式5:应用包括联合CbCr的灵活ACT Qp的方法
当应用ACT模式时,预测残差可以从一个颜色空间(例如,GBR或YCbCr)变换到YCgCo颜色空间。另外,变换基础的残差可以在YCgCo颜色空间中被编码。作为用于颜色空间变换的ACT核变换(变换核)的实施方式,可以使用如上所述的以下变换核。
[式54]
Figure BDA0003739322980000631
[式55]
Figure BDA0003739322980000632
如上式中所述,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调整。例如,本实施方式可以应用于联合CbCr和ACT变换的一般QP调整控制方法。
各个颜色分量不是被独立地编码,而是被一起编码,使得以上在实施方式3中针对联合CbCr描述的方法可能造成各个颜色分量之间的动态范围变化。
在根据实施方式的编码和解码方法中,ACT QP偏移调整可以被固定为-5,这可以同样应用于Y、Cg和Co。
实施方式中,为了针对各个分量和联合CbCr提供灵活的Qp控制,可以允许针对Y、Cb、Cr和/或联合CbCr使用不同的ACT Qp偏移。可以基于分量索引和/或联合CbCr和/或联合CbCr模式来确定ACT Qp偏移值。
为了指示ACT Qp偏移,可以使用ppsActQpOffsetY、ppsActQpOffsetCb和ppsActQpOffsetCr。另外,ppsActQpOffsetCbCr可以用于具有CBF的联合CbCr模式2的ACTQP偏移,其中所有Cb和Cr分量都具有非零值。这些值(例如,ppsActQpOffsetY、ppsActQpOffsetCb、ppsActQpOffsetCr和ppsActQpOffsetCbCr)可以被预先确定为预定值,或者通过比特流发信号通知。联合CbCr模式的ACT QP偏移可以按另一种方法设置或者被设置为另一值。
在实施方式中,ACT Qp偏移-5、-5和-3可以用于Y、Cb和Cr,并且ACT Qp偏移-4可以用于联合CbCr。
在另一实施方式中,ACT Qp偏移-5、-4和-3可以用于Y、Cb和Cr,并且ACT Qp偏移-3可以用于其中tu_cbf_cb的值不为0的联合CbCr模式。
在又一实施方式中,联合CbCr模式2的ACT QP偏移可以具有其自身的偏移值。对于另一联合CbCr模式,ACT QP偏移可以使用相应分量的偏移。例如,可以如下地确定量化参数qP。首先,当cIdx具有值0时,可以如下式中所示地推导qP和ACT Qp偏移。
[式56]
qP=Qp'Y
ActQpOffset=ppsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]具有值2时,可以如下式中所示地推导qP和ACT Qp偏移。
[式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和ACT Qp偏移。
[式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 1or 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和ACT Qp偏移。
[式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偏移以提供更大灵活性的示例。ACT QP偏移可以通过SPS、PPS、图片头、切片头或其它类型的头集合来发信号通知。联合CbCr的ACT Qp偏移可以被单独发信号通知,或者可以从针对Y、Cb和Cr的ACT Qp偏移推导。
在不失一般性的情况下,图41示出了其中ACT Qp偏移在PPS中发信号通知的语法表的示例。如在图41的实施方式中,对于联合CbCr,可以发信号通知一个ACT Qp偏移。将描述在图41的语法表中指示的语法元素。
语法元素pps_act_qp_offsets_present_flag可以指示在PPS中是否存在与ACTQP偏移相关的语法元素。例如,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_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的第二值(例如,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_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和ACT Qp偏移。
[式77]
qP=Qp'CbCr
ActQpOffset=PpsActQpOffsetCbCr
另选地,当cIdx具有值1时,可以如下式中所示地推导qP和ACT Qp偏移。
[式78]
qP=Qp’Cb
ActQpOffset=PpsActQpOffsetCb
另选地,当cIdx具有值2时,可以如下式中所示地推导qP和ACT Qp偏移。
[式79]
qP=Qp’Cr
ActQpOffset=PpsActQpOffsetCr
在发信号通知ACT Qp偏移的另一实施方式中,可以针对被标识为模式A和模式B的不同联合CbCr模式发信号通知多个ACT QP偏移。
联合CbCr模式A可以是指诸如上述表2的模式1和模式2这样的具有拥有非零值的tu_cbf_cb的联合CbCr模式。联合CbCr模式B可以是指诸如上述表2的模式3这样的具有拥有值0的tu_cbf_cb的联合CbCr模式。在图42中示出了相应变化的语法表。将描述在图42的语法表中指示的语法元素。
当语法元素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偏移的另一实施方式中,如在图43的语法表中,可以仅发信号通知针对Y、Cb和Cr的ACT QP偏移。针对联合CbCr的ACT QP偏移可以从PpsActQpOffsetY、PpsActQpOffsetCb和/或PpsActQpOffsetCr推导。
在实施方式中,针对CbCr的ACT Qp偏移可以被设置为PpsActQpOffsetCb的值。在实施方式中,针对CbCr的ACT Qp偏移在其中tu_cbf_cb具有非零值的联合CbCr模式的情况下可以被设置为与PpsActQpOffsetCb相同的值,或者在其中tu_cbf_cb具有值0的联合CbCr模式的情况下可以被设置为与PpsActQpOffsetCr相同的值。另选地,它可以被相反地设置。
图43是示出其中在PPS中发信号通知ACT Qp偏移的语法表的另一实施方式的视图。根据图43的语法元素的确定,可以如下地确定量化参数qP。首先,当cIdx具有值0时,可以如下式中所示地推导qP和ACT Qp偏移。
[式87]
qP=Qp'Y
ActQpOffset=PpsActQpOffsetY
另选地,当TuCResMode[xTbY][yTbY]具有值2时,可以如下式中所示地推导qP和ACT Qp偏移。
[式88]
qP=Qp'CbCr
ActQpOffset=(cIdx==1)?PpsActQpOffsetCb: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偏移。除了如以上实施方式6中在诸如PPS这样的一个级别发信号通知ACT QP偏移之外,ACT QP偏移可以在更低级别(例如,切片头、图片头、或适于Qp控制的其它类型的头)发信号通知。
下文中,将描述两个实施方式。图44和图45示出其中通过切片头和图片头发信号通知ACT QP偏移的示例。以这种方式,ACT QP偏移可以在多个级别发信号通知。
下文中,将描述图44和图45中示出的语法元素。语法元素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_cbcr_qp_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的ACTQpOffsets和/或联合CbCr的模式来推导这一点的方法。
在图46和图47中示出两个修改的实施方式。图46示出其中在切片头中发信号通知ACT Qp偏移的实施方式。图47示出其中在切片头中发信号通知ACT Qp偏移的另一实施方式。在图47中,可以仅发信号通知针对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的切片级ACT Qp偏移可以被设置为与slice_act_cb_qp_offset相同的值。在另一实施方式中,在具有拥有非零值的tu_cbf_cb的联合CbCr模式的情况下,针对联合CbCr的切片级的ACTQp偏移可以被设置为与slice_act_cb_qp_offset相同的值。另外,在具有拥有值0的tu_cbf_cb的联合CbCr模式的情况下,针对联合CbCr的切片级的ACT Qp偏移可以被设置为与slice_act_cr_qp_offset相同的值。
此外,在另一实施方式中,语法元素可以在切片头或图片头中发信号通知。为了实现这一点,可以如下地执行编码/解码。
-指示在图片头或切片头中是否存在ACT Qp偏移的标志pps_picture_slice_act_qp_offsets_present_flag可以在PPS中发信号通知。
-当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偏移。
图48是示出其中发信号通知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)。
图49是示出用于发信号通知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。
图50是示出用于发信号通知ACT Qp偏移的切片头的语法表的视图。在图50的语法表中,语法元素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_cr_qp_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=PpsActQpOffsetCb+slice_act_Cb_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和ACT Qp偏移。
[式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)可以在参数集(例如,SPS或PPS)内以列表的形式发信号通知ACT Qp偏移的多个集合。列表中的每个集合可以包括针对Y、Cb、Cr和联合CbCr分量的ACT Qp偏移。为了简单起见,可以在与用于发信号通知色度Qp偏移的列表的参数集相同的参数集中发信号通知ACTQp偏移的列表。
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偏移的索引的索引。
在不脱离以上构思的情况下,可以使用发信号通知ACT Qp偏移的列表的语法,如图51中所示。例如,当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]:0slice_act_cr_qp_offset
实施方式9:应用于无损编码和有损编码二者的ACT颜色空间变换方法
可以如下地组织基于上述用于正向转换和后向转换的矩阵的颜色空间之间的变换。
[表3]
Figure BDA0003739322980000801
因为在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)。
在另一实施方式中,ACT QP偏移可以通过上述实施方式6或7中的比特流来发信号通知。
例如,当上述YCgCo-R变换与ACT QP偏移(-5,1,3)一起使用时,观察到在有损编码环境(例如,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 BDA0003739322980000821
例如,可以如下地更新(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的预定标志以指示使用哪种颜色变换。在图52中示出在SPS中发信号通知的语法的示例。将描述图52的语法元素。语法元素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 reversible conversion
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 BDA0003739322980000841
根据上表,使用颜色空间变换的残差更新处理可以使用以下参数作为本处理的输入。-变量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 BDA0003739322980000861
在实施方式中,可以根据图53的语法来使用指示使用哪种ACT变换的标志(例如,actShiftFlag)。在图53的语法表中,语法元素sps_act_shift_flag可以指示在应用ACT时是否应用执行颜色分量移位的步骤。例如,sps_act_shift_flag的第一值(例如,0)可以指示在应用ACT时不应用执行颜色分量移位的步骤。sps_act_shift_flag的第二值(例如,1)可以指示在应用ACT时应用执行颜色分量移位的步骤。变量actShiftFlag可以被设置为sps_act_shift_flag的值。可以如下使用actShiftFlag编写用于在解码装置中实现从YCgCo到GBR的后向转换的伪码。
[表8]
Figure BDA0003739322980000871
编码和解码方法
下文中,将描述根据实施方式的由图像编码装置执行的图像编码方法和由图像解码装置执行的图像解码方法。
首先,将描述解码装置的操作。根据实施方式的图像解码装置可以包括存储器和处理器。解码装置可以根据所述处理器的操作来执行解码。图54示出根据实施方式的解码装置的解码方法。如图54中所示,在步骤S5410中,根据实施方式的解码装置可以确定当前块的残差样本。接下来,在步骤S5420中,解码装置可以基于是否应用颜色空间的变换来重置残差样本的值。这里,颜色空间的变换可以意指上述的颜色空间变换。如上所述,当指示是否应用颜色空间的变换的标志(例如,cu_act_enabled_flag)的值指示应用了颜色空间的变换(例如,cu_act_enabled_flag==1)时,解码装置可以确定应用了颜色空间的变换。
参照图55,将更详细地描述根据实施方式的解码装置确定当前块的残差样本。在步骤S5510中,根据实施方式的解码装置可以基于从比特流获得的预测信息来确定当前块的预测模式。例如,解码装置可以从比特流获得指示当前编码基础的预测模式是帧间模式还是帧内模式的预测模式标志(例如,pred_mode_flag)。当其值为第一值(例如,pred_mode_flag==0)时,当前块的预测模式被确定为帧间模式。当该值为第二值(例如,pred_mode_flag==1)时,当前块的预测模式被确定为帧内模式。
接下来,在步骤S5520中,解码装置可以基于当前块的预测模式来获得指示是否对当前块的残差样本应用颜色空间变换的标志。例如,解码装置可以基于当前块的预测模式是否为帧内预测模式来从比特流中获得cu_act_enabled_flag。例如,当当前块的预测模式为帧内预测模式时,解码装置可以从比特流获得cu_act_enabled_flag。在实施方式中,当当前块的预测模式不是帧内预测模式时,解码装置可以仅对针对当前编码块获得关于变换的信息的情况来从比特流获得cu_act_enabled_flag。例如,仅针对指示是否基于变换树语法(例如,transform_tree())或变换单元语法(例如,transform_unit())来从比特流获得用于变换块的语法元素的标志(例如,cu_coded_flag)的值是预定值(例如,1)的情况,解码装置可以即使在当前块的预测模式不是帧内预测模式时也从比特流获得cu_act_enabled_flag。例如,当可以从比特流获得用于变换单元的语法元素并且当前编码基础的预测模式为帧间预测模式或IBC模式时,解码装置可以从比特流获得cu_act_enabled_flag。
接下来,如在之前实施方式中描述的,解码装置可以在步骤S5530中基于cu_act_enabled_flag的值来确定当前块的量化参数。接下来,在步骤S5540中,解码装置可以基于量化参数来确定当前块的变换系数。接下来,在步骤S5550中,解码装置可以基于变换系数来确定残差样本。
这里,解码装置可以通过对量化参数施加限幅以使得量化参数的值具有预定范围内的值来确定量化参数。这里,预定范围的下限值可以为0。另外,可以基于指示样本的比特深度的语法元素来确定预定范围的上限值。例如,预定范围的上限值可以被确定为63+QpBdOffset。QpBdOffset表示亮度和色度量化参数范围偏移,并可以被预设为预定常数或从比特流获得。例如,QpBdOffset可以通过将预定常数(例如,6)乘以指示亮度或色度样本的比特深度的语法元素(例如,sps_bitdepth)的值来计算。
另外,解码装置可以基于当前块的颜色分量来确定量化参数,可以基于当前块的颜色分量来确定量化参数偏移,然后可以通过使用量化参数偏移来重置量化参数,由此确定量化参数。例如,解码装置可以将量化参数偏移(例如,ActQpOffset)与量化参数(例如,qP)相加,由此重置量化参数。
可以如下地确定量化参数偏移。当对当前块的残差样本应用颜色空间变换并且当前块的颜色分量是亮度分量时,量化参数偏移的值可以被确定为-5。另选地,当对当前块的残差样本应用颜色空间变换并且当前块的颜色分量是色度Cb分量时,量化参数偏移的值可以被确定为1。另选地,当对当前块的残差样本应用颜色空间变换并且当前块的颜色分量是色度Cr分量时,量化参数偏移的值可以被确定为3。
下文中,将详细描述基于是否应用颜色空间的变换来重置残差样本的值的步骤S5420。可以基于色度残差样本值的半值来执行残差样本的值的重置。例如,这可以如上述实施方式9的式109中地执行。例如,可以通过对色度残差样本值应用右移运算来推导色度残差样本值的半值。例如,可以基于色度残差样本值的半值和亮度分量残差样本值来执行残差样本的值的重置。例如,可以基于色度残差样本值的半值与亮度分量残差样本值之和来执行残差样本的值的重置。在实施方式中,可以基于亮度分量残差样本值与色度Cb分量残差样本值的半值之和来执行残差样本的值的重置。
在实施方式中,可以基于色度Cb分量残差的半值与亮度分量残差样本值的相加来重置残差样本的亮度分量残差样本值。这里,可以基于从色度Cb分量残差样本值中减去通过对色度Cb分量残差样本值应用右移运算而获得的值来确定与亮度分量残差样本值相加的色度Cb分量残差样本的半值。
在实施方式中,可以基于从亮度分量残差样本值中减去色度Cb分量残差样本的半值和色度Cr分量残差样本的半值来重置残差样本的色度Cb分量残差样本值。这里,可以基于通过对色度Cb分量残差样本值应用右移运算而获得的值来确定色度Cb分量残差样本的半值。可以基于通过对色度Cr分量残差样本值应用右移运算而获得的值来确定色度Cr分量残差样本的半值。
在实施方式中,可以基于从亮度分量残差样本值中减去色度Cb分量残差样本的半值并加上色度Cr分量残差样本的半值来重置残差样本的色度Cr分量残差样本值。这里,可以基于通过对色度Cb分量残差样本值应用右移运算而获得的值来确定色度Cb分量残差样本的半值。可以基于从色度Cr分量残差样本值中减去通过对色度Cr分量残差样本值应用右移运算而获得的值来确定色度Cr分量残差样本的半值。
下文中,将描述编码装置的操作。根据实施方式的图像编码装置可以包括存储器和处理器。编码装置可以按与解码装置的解码对应的方式根据处理器的操作来执行编码。例如,如图56中所示,编码装置可以在步骤S5610中确定当前块的残差样本。接下来,在步骤S5620中,编码装置可以基于是否应用颜色空间的变换来重置残差样本的值。这里,可以基于色度残差样本值的半值来执行残差样本的值的重置,以便对应于上述解码装置的解码。
参照图57,将更详细地描述编码装置的操作。在步骤S5710中,编码装置可以确定当前块的预测模式。例如,编码装置可以基于编码率将当前块的预测模式确定为帧内、帧间或IBC模式。接下来,在步骤S5720中,编码装置可以基于所确定的预测模式来生成预测块,并可以基于原始图像块与预测块之间的差异来生成残差块,由此确定残差样本。接下来,在步骤S5730中,编码装置可以基于是否应用颜色空间的变换来重置残差样本的值。例如,编码装置可以基于编码率来确定是否应用颜色空间的变换。当应用颜色空间变换时,可以使用在实施方式9和10中描述的变换公式(例如,式107或108)来执行样本的颜色空间变换。例如,为了由上述解码装置执行逆变换,编码装置可以根据与式109的逆对应的公式来执行颜色空间的变换。
接下来,在步骤S5740中,编码装置可以根据是否应用颜色空间变换来确定当前块的量化参数。对应于上述解码装置的操作,编码装置可以基于当前块的颜色分量来确定量化参数,可以基于当前块的颜色分量来确定量化参数偏移,然后可以通过使用量化参数偏移来重置量化参数,由此确定量化参数。例如,编码装置可以将量化参数偏移与量化参数相加,由此重置量化参数。
可以如下地确定量化参数偏移。当对当前块的残差样本应用颜色空间变换并且当前块的颜色分量是亮度分量时,量化参数偏移的值可以被确定为-5。另选地,当对当前块的残差样本应用颜色空间变换并且当前块的颜色分量是色度Cb分量时,量化参数偏移的值可以被确定为1。另选地,当对当前块的残差样本应用颜色空间变换并且当前块的颜色分量是色度Cr分量时,量化参数偏移的值可以被确定为3。
另外,编码装置可以通过对量化参数施加限幅以使得量化参数的值具有预定范围内的值来确定量化参数。这里,预定范围的下限值可以为0。另外,预定范围的上限值可以被设置为预定的上限值。可以基于样本的比特深度来确定该上限值。例如,预定范围的上限值可以被确定为63+QpBdOffset。这里,QpBdOffset表示亮度和色度量化参数范围偏移,并可以被预设为预定常数或从比特流获得。例如,QpBdOffset可以通过将预定常数乘以指示亮度或色度样本的比特深度的语法元素的值来计算。
接下来,在步骤S5750中,编码装置可以基于量化参数来确定当前块的变换系数。接下来,在步骤S5760中,编码装置可以基于当前块的预测模式来对指示是否对当前块的残差样本应用颜色空间变换的信息(例如,cu_act_enabled_flag)进行编码。
应用实施方式
虽然为了描述的清楚起见,上述本公开的示例性方法被表示为一系列操作,但并不旨在限制执行步骤的顺序,并且必要时这些步骤可以同时或以不同的顺序来执行。为了实现根据本发明的方法,所描述的步骤可以进一步包括其它步骤,可以包括除了一些步骤之外的其余步骤,或者可以包括除了一些步骤之外的其它附加步骤。
在本公开中,执行预定操作(步骤)的图像编码设备或图像解码设备可以执行确认相应操作(步骤)的执行条件或情况的操作(步骤)。例如,如果描述了在满足预定条件时执行预定操作,则图像编码设备或图像解码设备可以在确定是否满足预定条件之后执行预定操作。
本公开的各种实施方式不是所有可能组合的列表并且旨在描述本公开的代表性方面,并且在各种实施方式中描述的事项可以独立地或以两个或更多个的组合应用。
本公开的各种实施方式可以以硬件、固件、软件或其组合来实现。在通过硬件实现本公开的情况下,本公开可以通过专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器等来实现。
此外,应用本公开的实施方式的图像解码设备和图像编码设备可以包括在多媒体广播传送和接收装置、移动通信终端、家庭影院视频装置、数字影院视频装置、监控摄像头、视频聊天装置、诸如视频通信的实时通信装置、移动流传输装置、存储介质、摄像机、视频点播(VoD)服务提供装置、OTT视频(over the top video)装置、互联网流传输服务提供装置、三维(3D)视频装置、视频电话视频装置、医疗视频装置等中,并且可用于处理视频信号或数据信号。例如,OTT视频装置可以包括游戏机、蓝光播放器、互联网接入电视、家庭影院系统、智能电话、平板PC、数字录像机(DVR)等。
图58是示出可应用本公开的实施方式的内容流传输系统的视图。
如图58中所示,应用本公开的实施方式的内容流传输系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体存储装置、用户装置和多媒体输入装置。
编码服务器将从诸如智能电话、相机、摄像机等多媒体输入装置输入的内容压缩成数字数据以生成比特流并将该比特流发送到流传输服务器。作为另一示例,当智能电话、相机、摄像机等多媒体输入装置直接生成比特流时,可以省略编码服务器。
比特流可以由应用本公开的实施方式的图像编码方法或图像编码设备产生,并且流传输服务器可以在发送或接收比特流的过程中暂时存储比特流。
流传输服务器基于用户通过网络服务器的请求将多媒体数据发送到用户装置,并且网络服务器用作向用户告知服务的媒介。当用户向网络服务器请求所需的服务时,网络服务器可以将其递送到流传输服务器,并且流传输服务器可以向用户发送多媒体数据。在这种情况下,内容流传输系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流传输系统中的装置之间的命令/响应。
流传输服务器可以从媒体存储装置和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平滑的流服务,流服务器可以在预定时间内存储比特流。
用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航设备、石板PC、平板PC、超级本、可穿戴装置(例如,智能手表、智能眼镜、头戴式显示器)、数字电视、台式计算机、数字标牌等。
内容流传输系统中的各个服务器可以作为分布式服务器运行,在这种情况下,从各个服务器接收的数据可以被分布。
本公开的范围包括用于使根据各种实施方式的方法的操作能够在设备或计算机上执行的软件或机器可执行命令(例如,操作系统、应用、固件、程序等)、具有存储在其上并且可在设备或计算机上执行的此类软件或命令的非暂时性计算机可读介质。
工业实用性
本公开的实施方式可以被用于对图像进行编码或解码。

Claims (15)

1.一种由图像解码装置执行的图像解码方法,该图像解码方法包括以下步骤:
确定当前块的残差样本;以及
基于应用颜色空间变换来重置所述残差样本的值,
其中,基于色度残差样本值的半值来执行所述残差样本的所述值的重置。
2.根据权利要求1所述的图像解码方法,其中,基于对所述色度残差样本值的右移运算来推导所述色度残差样本值的所述半值。
3.根据权利要求1所述的图像解码方法,其中,所述残差样本的值的重置是基于亮度分量残差样本值和所述色度残差样本值的所述半值来执行的。
4.根据权利要求1所述的图像解码方法,其中,所述残差样本的值的重置是基于亮度分量残差样本值与所述色度残差样本值的所述半值之和来执行的。
5.根据权利要求1所述的图像解码方法,其中,所述残差样本的值的重置是基于色度Cb分量残差样本值的半值与亮度分量残差样本值之和来执行的。
6.根据权利要求1所述的图像解码方法,其中,所述残差样本的亮度分量残差样本的值是基于将色度Cb分量残差样本的半值与所述亮度分量残差样本的所述值相加来重置的。
7.根据权利要求6所述的图像解码方法,其中,与所述亮度分量残差样本的所述值相加的所述色度Cb分量残差样本的所述半值是基于从所述色度Cb分量残差样本的值中减去基于对所述色度Cb分量残差样本的所述值的右移运算而获得的值来确定的。
8.根据权利要求1所述的图像解码方法,其中,所述残差样本的色度Cb分量残差样本的值是基于从亮度分量残差样本值中减去所述色度Cb分量残差样本的半值和色度Cr分量残差样本的半值来重置的。
9.根据权利要求8所述的图像解码方法,其中,基于通过对所述色度Cb分量残差样本的所述值应用右移运算而获得的值来确定所述色度Cb分量残差样本的所述半值,并且
基于以对所述色度Cr分量残差样本的值的右移运算为基础获得的值来确定所述色度Cr分量残差样本的所述半值。
10.根据权利要求1所述的图像解码方法,其中,所述残差样本的色度Cr分量残差样本的值是基于从亮度分量残差样本值中减去色度Cb分量残差样本的半值并加上所述色度Cr分量残差样本的半值来重置的。
11.根据权利要求10所述的图像解码方法,其中,所述色度Cb分量残差样本的所述半值是基于以对所述色度Cb分量残差样本的值的右移运算为基础获得的值来确定的,并且
所述色度Cr分量残差样本的所述半值是基于从所述色度Cr分量残差样本的所述值中减去基于对所述色度Cr分量残差样本的所述值的右移运算获得的值来确定的。
12.根据权利要求1所述的图像解码方法,其中,确定所述当前块的所述残差样本包括以下步骤:
基于从比特流获得的预测信息来确定所述当前块的预测模式;
基于所述当前块的所述预测模式,获得针对所述当前块的所述残差样本的所述颜色空间变换的信息;
基于所述信息来确定所述当前块的量化参数;以及
基于所述量化参数来确定所述当前块的变换系数,
其中,所述量化参数的确定是基于对所述量化参数的限幅以使得所述量化参数的值具有预定范围中的值来执行的。
13.一种包括存储器和至少一个处理器的图像解码装置,
其中,所述至少一个处理器被配置为:
确定当前块的残差样本,并且
基于应用颜色空间变换来重置所述残差样本的值,并且
所述处理器被配置为基于色度残差样本值的半值来重置所述残差样本的所述值。
14.一种由图像编码装置执行的图像编码方法,该图像编码方法包括以下步骤:
确定当前块的残差样本;以及
基于应用颜色空间变换来重置所述残差样本的值,
其中,基于色度残差样本值的半值来执行所述残差样本的所述值的重置。
15.一种用于发送由根据权利要求14所述的图像编码方法生成的比特流的方法。
CN202080092618.9A 2019-11-22 2020-11-20 使用无损颜色变换的图像编码/解码方法和装置及比特流发送方法 Pending CN114930827A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962939530P 2019-11-22 2019-11-22
US62/939,530 2019-11-22
PCT/KR2020/016485 WO2021101317A1 (ko) 2019-11-22 2020-11-20 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Publications (1)

Publication Number Publication Date
CN114930827A true CN114930827A (zh) 2022-08-19

Family

ID=75981382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080092618.9A Pending CN114930827A (zh) 2019-11-22 2020-11-20 使用无损颜色变换的图像编码/解码方法和装置及比特流发送方法

Country Status (6)

Country Link
US (2) US11575919B2 (zh)
KR (1) KR20220080738A (zh)
CN (1) CN114930827A (zh)
CA (2) CA3225288A1 (zh)
MX (1) MX2022006190A (zh)
WO (1) WO2021101317A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115004707A (zh) 2019-12-19 2022-09-02 抖音视界(北京)有限公司 自适应颜色变换和量化参数之间的相互作用
JP7436680B2 (ja) * 2020-01-05 2024-02-22 北京字節跳動網絡技術有限公司 映像コーディングのための一般制約情報
CN115176470A (zh) 2020-01-18 2022-10-11 抖音视界有限公司 图像/视频编解码中的自适应颜色变换
CN114450950B (zh) * 2020-04-08 2023-04-18 日本放送协会 编码装置、解码装置及存储介质
US20210400257A1 (en) * 2020-06-18 2021-12-23 Lg Electronics Inc. Image encoding/decoding method and apparatus for signaling high level information for tool control based on colour representation format, and computer-readable recording medium strong bitstream

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9451258B2 (en) * 2012-04-03 2016-09-20 Qualcomm Incorporated Chroma slice-level QP offset and deblocking
DK3047639T3 (en) * 2013-09-20 2018-10-15 Vid Scale Inc Video Codes and Methods to Provide 3D Lookup Table Encoding for Color Game Scalability
MY189001A (en) * 2014-03-04 2022-01-17 Microsoft Technology Licensing Llc Adaptive switching of color spaces, color sampling rates and/or bit depths
US10271052B2 (en) * 2014-03-14 2019-04-23 Qualcomm Incorporated Universal color-space inverse transform coding
US10142642B2 (en) * 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US9838662B2 (en) * 2014-10-10 2017-12-05 Qualcomm Incorporated Harmonization of cross-component prediction and adaptive color transform in video coding
US10623740B2 (en) * 2015-09-23 2020-04-14 Telefonaktiebolaget Lm Ericsson (Publ) Determination of QP values
US11381819B2 (en) * 2019-07-05 2022-07-05 Qualcomm Incorporated Chroma delta quantization parameter (QP) in video coding
WO2021037004A1 (en) * 2019-08-23 2021-03-04 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for performing chroma deblocking for blocks which use joint chroma coding

Also Published As

Publication number Publication date
MX2022006190A (es) 2022-09-07
CA3225288A1 (en) 2021-05-27
US20220345726A1 (en) 2022-10-27
KR20220080738A (ko) 2022-06-14
WO2021101317A1 (ko) 2021-05-27
CA3162583A1 (en) 2021-05-27
US20230137603A1 (en) 2023-05-04
CA3162583C (en) 2024-02-13
US11575919B2 (en) 2023-02-07

Similar Documents

Publication Publication Date Title
CN111684797A (zh) 用于视频译码的调色板译码
US11575919B2 (en) Image encoding/decoding method and device using lossless color transform, and method for transmitting bitstream
CN114556957A (zh) 基于环路内滤波的视频编译设备和方法
US11876967B2 (en) Method and device for encoding/decoding image using color space conversion, and method for transmitting bitstream
CN114424566A (zh) 视频译码中用于联合色度残差模式的量化参数信令
US11997274B2 (en) Image encoding/decoding method and device using adaptive color transform, and method for transmitting bitstream
CN114208199A (zh) 用于视频译码的色度帧内预测单元
US20240015294A1 (en) Image encoding/decoding method and apparatus using adaptive transform, and method for transmitting bitstream
CN114651441A (zh) 使用参考样本滤波的图像编码/解码方法和装置及发送比特流的方法
JP2023112110A (ja) スケーリングリストデータのシグナリングに基づくビデオまたは画像コーディング
CN115552896A (zh) 对矩形切片的大小信息选择性编码的图像编码/解码方法和设备及发送比特流的方法
CN114930821A (zh) 视频编解码中的自适应色彩变换的qp偏移的灵活信令通知
CN115088256A (zh) 选择性地用信号通知滤波可用信息的图像编码/解码方法和装置以及发送比特流的方法
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) 使用加权预测的图像编码/解码方法和装置以及发送比特流的方法
US20240073458A1 (en) Image encoding/decoding method and apparatus for performing in-loop filtering on basis of sub-picture structure, and method for transmitting bitstream
CN114731435A (zh) 用信号通知用于对应用bdpcm的块进行编码的残差编码方法的图像编码/解码方法和设备及发送比特流的方法
CN115176471A (zh) 用于视频编解码的缩放列表信令
CN115176465A (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