CN115443659A - 与残差编码相关的图像解码方法以及用于其的装置 - Google Patents

与残差编码相关的图像解码方法以及用于其的装置 Download PDF

Info

Publication number
CN115443659A
CN115443659A CN202180029680.8A CN202180029680A CN115443659A CN 115443659 A CN115443659 A CN 115443659A CN 202180029680 A CN202180029680 A CN 202180029680A CN 115443659 A CN115443659 A CN 115443659A
Authority
CN
China
Prior art keywords
flag
residual
transform
transform skip
enabled
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
CN202180029680.8A
Other languages
English (en)
Inventor
崔情娥
柳先美
林宰显
许镇
崔璋元
金昇焕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN115443659A publication Critical patent/CN115443659A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/172Methods 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 picture, frame or field
    • 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/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

Abstract

根据本文献的一种解码装置对图像进行解码的方法包括以下步骤:获取关于当前块的残差信息;基于残差信息来推导当前块的残差样本;以及基于残差样本来生成重构图片。

Description

与残差编码相关的图像解码方法以及用于其的装置
技术领域
本公开涉及图像编码技术,并且更具体地,涉及对表示在图像编码系统中对当前块的残差数据进行编码时是否启用TSRC的标志信息进行编码的图像解码方法以及用于其的设备。
背景技术
近来,在各种领域中,对诸如HD(高清)图像和UHD(超高清)图像这样的高分辨率、高质量图像的需求正在增长。因为图像数据具有高分辨率和高质量,所以相对于传统图像数据,待传输的信息或比特的量增加。因此,当使用诸如传统有线/无线宽带线路这样的介质发送图像数据或者使用现有存储介质存储图像数据时,其传输成本和存储成本增加。
因此,需要用于有效地发送、存储和再现高分辨率高质量图像的信息的高效图像压缩技术。
发明内容
技术问题
本公开提供了用于提高图像编码效率的方法和设备。
本公开还提供了用于提高残差编码效率的方法和设备。
技术方案
根据本公开的实施方式,提供了一种由解码设备执行的图像解码方法。该方法包括以下步骤:获取当前块的残差信息;基于所述残差信息来推导所述当前块的残差样本;以及基于所述残差样本来生成重构图片。
根据本公开的另一实施方式,提供了一种执行图像解码的解码设备。所述解码设备包括:熵解码器,所述熵解码器被配置为获取当前块的残差信息;残差处理器,所述残差处理器被配置为基于所述残差信息来推导所述当前块的残差样本;以及加法器,所述加法器被配置为基于所述残差样本来生成重构图片。
根据本公开的又一实施方式,提供了一种由编码设备执行的视频编码方法。该方法包括以下步骤:推导当前块的残差样本;对所述残差样本的残差信息进行编码;以及生成包括所述残差信息的比特流。
根据本公开的再一实施方式,提供了一种视频编码设备。该编码设备包括:残差处理器,所述残差处理器被配置为推导当前块的残差样本;以及熵编码器,所述熵编码器被配置为对所述残差样本的残差信息进行编码,并生成包括所述残差信息的比特流。
根据本公开的又另一实施方式,提供了一种存储包括使图像解码方法被执行的图像信息的比特流的非暂态计算机可读存储介质。在所述非暂态计算机可读存储介质中,所述图像解码方法包括以下步骤:获取当前块的残差信息;基于所述残差信息来推导所述当前块的残差样本;以及基于所述残差样本来生成重构图片。
技术效果
根据本公开,可以增强残差编码效率。
根据本公开,建立依赖量化启用标志与TSRC启用标志之间的信令关系,并且如果不启用依赖量化,则可以发信号通知TSRC启用标志,并且通过这样,如果不启用TSRC并针对变换跳过块对RRC语法进行编码,则不使用依赖量化,使得提高编码效率,并且可以通过减少被编码的比特的量来提高整体残差编码效率。
根据本公开,建立了变换跳过启用标志与TSRC启用标志之间的信令关系,并且如果启用变换跳过,则可以发信号通知TSRC启用标志,并且通过这样,可以通过被编码的比特的量的减少来提高整体残差编码效率。
附图说明
图1简要例示了适用本公开的实施方式的视频/图像编码装置的示例。
图2是例示了可以应用本公开的实施方式的视频/图像编码设备的配置的示意图。
图3是例示了可以应用本公开的实施方式的视频/图像解码设备的配置的示意图。
图4例示了基于帧间预测的视频/图像编码方法的示例。
图5例示了基于帧间预测的视频/图像解码方法的示例。
图6示意性示出了帧间预测过程。
图7示例性示出了用于对语法元素进行编码的上下文自适应二进制算术编码(CABAC)。
图8是示出了4×4块内的示例性变换系数的示图。
图9示例性例示了在依赖量化中使用的标量量化器。
图10示例性例示了针对依赖量化的状态转变和量化器选择。
图11简要例示了根据本公开的编码设备执行的图像编码方法。
图12简要例示了根据本公开的执行图像编码方法的编码设备。
图13简要例示了根据本公开的解码设备执行的图像解码方法。
图14简要例示了根据本公开的执行图像解码方法的解码设备。
图15例示了应用本公开的内容流传输系统的结构示图。
具体实施方式
本公开可以按各种形式进行修改,并且将在附图中描述和例示其具体实施方式。然而,这些实施方式并不旨在限制本公开。以下描述中使用的术语仅仅用于描述具体实施方式,而不旨在限制本公开。单数的表述包括复数的表述,只要它被清楚不同地读出即可。诸如“包括”和“具有”这样的术语旨在指示存在以下描述中使用的特征、数字、步骤、操作、元件、部件或其组合,因此应该理解,没有排除存在或添加一个或更多个不同特征、数字、步骤、操作、元件、部件或其组合的可能性。
此外,出于方便说明不同特定功能的目的,独立地绘制本公开中描述的图中的元件,这并不意味着这些元件是由独立硬件或独立软件实施的。例如,可以将这些元件中的两个或更多个元件组合,以形成单个元件,或者可以将一个元件分割为多个元件。在不脱离本公开的概念的情况下,其中元件被组合和/或分割的实施方式属于本公开。
下文中,将参考附图来详细地描述本公开的实施方式。另外,在整个附图中,类似的附图标记用于指示类似的元件,并且将省略对类似元件的相同描述。
图1简要例示了可应用本公开的实施方式的视频/图像编码装置的示例。
参照图1,视频/图像编码系统可以包括第一装置(源装置)和第二装置(接收在)。源装置可以经由数字存储介质或网络以文件或流的形式向接收装置发送编码视频/图像信息或数据。
源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以称为视频/图像编码设备,并且解码设备可以称为视频/图像解码设备。发送器可以包括在编码设备中。接收器可以包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部部件。
视频源可以通过捕获、合成或生成视频/图像的处理来获取视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板电脑和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以由生成相关数据的处理代替。
编码设备可以对输入的视频/图像进行编码。编码设备可以执行诸如预测、变换和量化的一系列过程,以实现压缩和编码效率。编码数据(编码视频/图像信息)能够以比特流的形式输出。
发送器可以通过数字存储介质或网络以文件或流的形式向接收装置的接收器发送以比特流形式输出的编码后的图像/图像信息或数据。数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并向解码装置发送接收到的比特流。
解码设备可以通过执行与编码设备的操作相对应的诸如反量化、逆变换和预测之类的一系列过程,来对视频/图像进行解码。
渲染器可以渲染解码后的视频/图像。可以通过显示器显示渲染后的视频/图像。
本公开涉及视频/图像编码。例如,本公开中公开的方法/实施方式可以应用于以通用视频编码(VVC)、EVC(基本视频编码)标准、AOMedia Video 1(AV1)标准、第二代音频视频编码标准(AVS2)或下一代视频/图像编码标准(例如,H.267或H.268等)中公开的方法H.267或H.268等)公开的方法。
本公开提出了视频/图像编码的各种实施方式,并且除非另外提到,否则这些实施方式可以彼此组合地执行。
在本公开中,视频可以是指随时间推移的一系列图像。图片通常是指表示特定时间区域中的一副图像的单元,并且子图片/切片/图块是编码时构成图片的一部分的单元。子图片/切片/图块可以包括一个或更多个编码树单元(CTU)。一个图片可以由一个或更多个子图片/切片/图块组成。一个图片可以由一个或更多个图块组组成。一个图块组可以包括一个或更多个图块。砖块(brick)可以表示图片中的图块内的CTU行的矩形区域。图块可以被分割成多个砖块,砖块中的每一个由图块内的一个或更多个CTU行组成。没有被分割成多个砖块的图块也可以称为砖块。砖块扫描是以下的分割图片的CTU的特定顺序排序:按砖块中的CTU光栅扫描对CTU进行排序,按图块的砖块的光栅扫描对图块内的砖块进行连续排序,并且按图片的图块的光栅扫描对图片中的图块进行连续排序。另外,子图片可以表示图片内的一个或更多个切片的矩形区域。即,子图片包含一齐覆盖图片的矩形区域的一个或更多个切片。图块是图片中的特定图块列和特定图块行内的CTU的矩形区域。图块列是高度等于图片的高度并且宽度由图片参数集中的语法元素指定的CTU的矩形区域。图块行是高度由图片参数集中的语法元素指定并且宽度等于图片宽度的CTU的矩形区域。图块扫描是以下的分割图片的CTU的特定顺序排序:按图块中的CTU光栅扫描对CTU进行连续排序,而按图片的图块的光栅扫描对图片中的图块进行连续排序。切片包括可以被排他性包含在单个NAL单元中的图片的整数个砖块。切片可以由要么多个完整图块组成要么仅一个图块的完整砖块的连续序列组成。在本公开中,可以将图块组与切片互换地使用。例如,在本公开中,图块组/图块组头可以被称为切片/切片头。
像素或画素(pel)可以意指构成一个图片(或图像)的最小单元。另外,“样本”可以被用作与像素对应的术语。样本通常可以表示像素或像素的值,可以仅表示亮度分量的像素/像素值,或仅表示色度分量的像素/像素值。
单元可以表示图像处理的基本单元。单元可以包括图片的特定区域和与该区域相关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。在某些情况下,可以将单元与诸如块或区域这样的术语互换地使用。在通常情况下,M×N块可以包括M列N行的样本(或样本阵列)或变换系数的集合(或阵列)。
在本说明书中,“A或B”可以意指“仅A”、“仅B”或“A和B二者”。换句话说,在本说明书中,“A或B”可以被解释为“A和/或B”。例如,本文中的“A、B或C”意指“仅A”、“仅B”、“仅C”或“A、B和C中的任一个及任何组合”。
在本说明书中使用的斜杠(/)或逗号(,)可以意指“和/或”。例如,“A/B”可以意指“A和/或B”。相应地,“A/B”可以意指“仅A”、“仅B”或“A和B二者”。例如,“A、B、C”可以意指“A、B或C”。
在本说明书中,“A和B中的至少一个”可以意指“仅A”、“仅B”或“A和B二者”。另外,在本说明书中,表述“A或B中的至少一个”或“A和/或B中的至少一个”可以被解释为与“A和B中的至少一个”相同。
另外,在本说明书中,“A、B和C中的至少一个”意指“仅A”、“仅B”、“仅C”或“A、B和C的任何组合”。另外,“A、B或C中的至少一个”或“A、B和/或C中的至少一个”可以意指“A、B和C中的至少一个”。
另外,在本说明书中使用的括号可以意指“例如”。具体地,当指示“预测(帧内预测)”时,“帧内预测”可以被提议作为“预测”的示例。换句话说,本说明书中的“预测”不限于“帧内预测”,并且“帧内预测”可以被提议作为“预测”的示例。另外,即使当指示“预测(即,帧内预测)”时,“帧内预测”可以被提议作为“预测”的示例。
在本说明书中,在一个附图中被单独描述的技术特征可以被单独地实现或可以同时地实现。
创建以下附图以便说明本说明书的具体示例。由于在附图中描述的具体装置的名称或具体信号/消息/字段的名称是以示例的方式提出的,因此本说明书的技术特征不限于在以下附图中使用的具体名称。
图2是例示了可以应用本公开的实施方式的视频/图像编码设备的配置的示意图。下文中,视频编码设备可以包括图像编码设备。
参照图2,编码设备200包括图像分割器210、预测器220、残差处理器230和熵编码器240、加法器250、滤波器260和存储器270。预测器220可以包括帧间预测器221和帧内预测器222。残差处理器230可以包括变换器232、量化器233、反量化器234和逆变换器235。残差处理器230还可以包括减法器231。加法器250可以称为重构器或重构块生成器。根据实施方式,图像分割器210、预测器220、残差处理器230、熵编码器240、加法器250和滤波器260可以由至少一个硬件部件(例如,编码器芯片组或处理器)构成。另外,存储器270可以包括解码图片缓冲器(DPB)或者可以由数字存储介质构成。硬件部件还可以包括作为内部/外部部件的存储器270。
图像分割器210可以将输入到编码设备200的输入图像(或图片或帧)分割到一个或更多个处理器中。例如,处理器可以被称为编码单元(CU)。在这种情况下,可以根据四叉树二叉树三叉树(QTBTTT)结构从编码树单元(CTU)或最大编码单元(LCU)来递归地分割编码单元。例如,一个编码单元可以基于四叉树结构、二叉树结构和/或三元结构而被分割为深度更深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,随后可以应用二叉树结构和/或三元结构。可替选地,可以首先应用二叉树结构。可以基于不再分割的最终编码单元来执行根据本公开的编码过程。在这种情况下,可以根据图像特性基于编码效率将最大编码单元用作最终编码单元,或者如果需要,可以将编码单元递归地分割为深度更深的编码单元并且具有最佳大小的编码单元可以用作最终编码单元。这里,编码过程可以包括预测、变换和重构的过程,这将在后面描述。作为另一示例,处理器还可以包括预测单元(PU)或变换单元(TU)。在这种情况下,可以从上述最终编码单元来分离或分割预测单元和变换单元。预测单元可以是样本预测的单元,并且变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。
在一些情况下,单元可以与诸如块或区域的术语互换使用。在一般情况下,M×N块可以表示由M列和N行组成的样本或变换系数的集合。样本通常可以表示像素或像素值,可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可以用作与像素或画素的一幅图片(或图像)相对应的术语。
在编码设备200中,从输入图像信号(原始块、原始样本阵列)中减去从帧间预测器221或帧内预测器222输出的预测信号(预测块、预测样本阵列),以生成残差信号(残差块、残差样本阵列)并且所生成的残差信号被发送到变换器232。在这种情况下,如图所示,在编码设备200中用于从输入图像信号(原始块、原始样本阵列)减去预测信号(预测块、预测样本阵列)的单元可以称为减法器231。预测器可以对要处理的块(在下文中称为当前块)执行预测,并生成包括当前块的预测样本的预测块。预测器能够以当前块或CU为基础来确定是应用帧内预测还是应用帧间预测。如稍后在每个预测模式的描述中所述,预测器可以生成与预测有关的、诸如预测模式信息之类的各种信息,并向熵编码器240发送所生成的信息。关于预测的信息可以在熵编码器240中编码并以比特流的形式输出。
帧内预测器222可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以位于当前块的附近,或者可以远离当前块。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅是示例,依据设置,可以使用更多或更少的定向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器221可以基于由参照图片上的运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。这里,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参照图片中的时间邻近块。包括参考块的参照图片和包括时间邻近块的参照图片可以相同或不同。时间邻近块可以称为并置参考块、共位CU(colCU)等,并且包括时间邻近块的参照图片可以称为并置图片(colPic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表,并且生成指示使用哪个候选来推导当前块的运动向量和/或参照图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以将邻近块的运动信息用作当前块的运动信息。在跳过模式下,与合并模式不同,可能无法发送残差信号。在运动向量预测(MVP)模式的情况下,可以将邻近块的运动向量用作运动向量预测子,并且可以通过发信号通知运动向量差来指示当前块的运动向量。
预测器220可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测这二者。这可以称为帧间帧内组合预测(CIIP)。另外,预测器可以基于帧内块复制(IBC)预测模式或调色板模式来预测块。IBC预测模式或调色板模式可用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测来执行IBC,因为参考块是在当前图片中推导的。即,IBC可以使用本公开中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。
由预测器(包括帧间预测器221和/或帧内预测器222)生成的预测信号可以用于生成重构信号或生成残差信号。变换器232可以通过向残差信号应用变换技术来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、karhunen-loève变换(KLT)、基于图的变换(GBT)或条件非线性变换(CNT)中的至少一种。这里,GBT表示当像素之间的关系信息由图表示时从图获得的变换。CNT是指基于使用所有先前重构的像素生成的预测信号而生成的变换。另外,变换处理可以应用于具有相同大小的正方形像素块,或者可以应用于具有可变大小而非正方形的块。
量化器233可以对变换系数进行量化,并且将它们发送给熵编码器240,并且熵编码器240可以对量化信号(关于量化变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以称为残差信息。量化器233可以基于系数扫描顺序将块类型量化变换系数重新布置为一维向量形式,并且基于一维向量形式的量化变换系数来生成关于量化变换系数的信息。可以生成关于变换系数的信息。熵编码器240可以执行各种编码方法,诸如,例如指数哥伦布(Golomb)、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。熵编码器240可以对除了量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)一起或分开地进行编码。能够以比特流的形式以NAL(网络抽象层)为单位发送或存储编码信息(例如,编码视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)之类的各种参数集的信息。另外,视频/图像信息还可包括一般约束信息。在本公开中,从编码设备向解码设备发送/发信号通知的信息和/或语法元素可以包括在视频/图片信息中。视频/图像信息可以通过上述编码过程被编码并且被包括在比特流中。比特流可以通过网络发送,或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。可以包括发送从熵编码器240输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)作为编码设备200的内部/外部元件,并且可替选地,发送器可以包括在熵编码器240中。
从量化器233输出的量化变换系数可以用于生成预测信号。例如,可以通过利用反量化器234和逆变换器235对量化变换系数应用反量化和逆变换,来重构残差信号(残差块或残差样本)。加法器250将重构的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加,以生成重构信号(重构图片、重构块、重构样本阵列)。如果要处理的块没有残差(诸如应用了跳过模式的情况),则可以将预测块用作重构块。加法器250可以称为重构器或重构块生成器。所生成的重构信号可以用于在当前图片中要处理的下一块的帧内预测,并且可以通过如下所述的滤波用于下一图片的帧间预测。
此外,在图片编码和/或重构期间,可以应用亮度映射与色度缩放(LMCS)。
滤波器260可以通过对重构信号应用滤波来改善主观/客观图像质量。例如,滤波器260可以通过对重构图片应用各种滤波方法来生成修改后的重构图片,并将修改后的重构图片存储在存储器270(具体地,存储器270的DPB)中。各种滤波方法可包括例如去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。滤波器260可以生成与滤波有关的各种信息,并且将生成的信息发送给熵编码器240,如稍后在各种滤波方法的描述中所述。与滤波有关的信息可以由熵编码器240编码并且以比特流的形式输出。
发送给存储器270的修改后的重构图片可以用作帧间预测器221中的参照图片。当通过编码设备应用帧间预测时,可以避免编码设备200与解码设备之间的预测不匹配,并且可以提高编码效率。
存储器270的DPB可以存储用作帧间预测器221中的参照图片的修改后的重构图片。存储器270可以存储从中推导(或编码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器221,并且用作空间邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器222。
图3是例示了可以应用本公开的实施方式的视频/图像解码设备的配置的示意图。
参照图3,解码设备300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350、存储器360。预测器330可以包括帧间预测器332和帧内预测器331。残差处理器320可以包括反量化器321和逆变换器322。根据实施方式,熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由硬件部件(例如,解码器芯片组或处理器)构成。另外,存储器360可以包括解码图片缓冲器(DPB),或者可以由数字存储介质构成。硬件部件还可以包括存储器360作为内部/外部部件。
当输入包括视频/图像信息的比特流时,解码设备300可以与在图2的编码设备中处理视频/图像信息的处理相对应地重构图像。例如,解码设备300可以基于从比特流获得的块分割相关信息来推导单元/块。解码设备300可以使用在编码设备中应用的处理器来执行解码。因此,解码的处理器可以是例如编码单元,并且可以根据四叉树结构、二叉树结构和/或三叉树结构,从编码树单元或最大编码单元对编码单元进行分割。可以从编码单元推导一个或更多个变换单元。可以通过再现装置来再现通过解码设备300解码并输出的重构图像信号。
解码设备300可以接收以比特流形式从图2的编码设备输出的信号,并且可以通过熵解码器310对接收到的信号进行解码。例如,熵解码器310可以解析比特流,以推导图像重构(或图片重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)之类的各种参数集的信息。另外,视频/图像信息还可以包括一般约束信息。解码设备还可以基于关于参数集的信息和/或一般约束信息来对图片进行解码。本公开中稍后描述的发信号通知的/接收的信息和/或语法元素可以通过解码过程被解码,并从比特流中获取。例如,熵解码器310基于诸如指数哥伦布编码、CAVLC或CABAC之类的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素和残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素相对应的bin,使用解码目标语法元素信息、解码目标块的解码信息或在先前级中解码的符号/bin的信息来确定上下文模型,并通过根据所确定的上下文模型预测bin的出现概率来对该bin进行算术解码,并且生成与每个语法元素的值相对应的符号。在这种情况下,在确定上下文模型之后,CABAC熵解码方法可以通过将经解码的符号/bin的信息用于下一符号/bin的上下文模型来更新上下文模型。由熵解码器310解码的信息之中与预测有关的信息可以提供给预测器(帧间预测器332和帧内预测器331),并且在熵解码器310中对其执行了熵解码的残差值(也就是说,量化变换系数和相关参数信息)可以被输入到残差处理器320。残差处理器320可以推导残差信号(残差块、残差样本、残差样本阵列)。另外,由熵解码器310解码的信息之中关于滤波的信息可以提供给滤波器350。此外,用于接收从编码设备输出的信号的接收器(未示出)可以进一步被配置为解码设备300的内部/外部元件,或者接收器可以是熵解码器310的部件。此外,根据本公开的解码设备可以称为视频/图像/图片解码设备,并且解码设备可以分类为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器310,并且样本解码器可以包括反量化器321、逆变换器322、加法器340、滤波器350、存储器360、帧间预测器332和帧内预测器331中的至少一个。
反量化器321可以对量化变换系数进行反量化并且输出变换系数。反量化器321能够以二维块的形式重新布置量化变换系数。在这种情况下,可以基于在编码设备中执行的系数扫描顺序来执行重新布置。反量化器321可以通过使用量化参数(例如,量化步长信息)对量化变换系数执行反量化,并且获得变换系数。
逆变换器322对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
预测器可以对当前块执行预测,并生成包括当前块的预测样本的预测块。预测器可以基于从熵解码器310输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且可以确定具体的帧内/帧间预测模式。
预测器330可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测。这可以称为帧间和帧内组合预测(CIIP)。另外,预测器可以基于帧内块复制(IBC)预测模式或调色板模式来预测块。IBC预测模式或调色板模式可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测来执行IBC,因为在当前图片中推导参考块。即,IBC可以使用本公开中描述的帧间预测技术中的至少一种。调色板模式可以被视为帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来发信号通知图片内的样本值。
帧内预测器331可以通过参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以位于当前块的附近,或者可以远离当前块。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。
帧间预测器332可以基于参照图片上的由运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中发送的运动信息的量,可以基于邻近块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参照图片索引。运动信息还可包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参照图片中的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表,并基于接收到的候选选择信息来推导当前块的运动向量和/或参照图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。
加法器340可以通过将所获得的残差信号与从预测器(包括帧间预测器332和/或帧内预测器331)输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。如果要处理的块没有残差(例如当应用跳过模式时),则可以将预测块用作重构块。
加法器340可以称为重构器或重构块生成器。所生成的重构信号可以用于当前图片中要处理的下一块的帧内预测,可以通过如下所述的滤波输出,或者可以用于下一图片的帧间预测。
此外,在图片解码过程中可以应用亮度映射与色度缩放(LMCS)。
滤波器350可以通过向重构信号应用滤波来改善主观/客观图像质量。例如,滤波器350可以通过对重构图片应用各种滤波方法来生成修改后的重构图片,并将修改后的重构图片存储在存储器360(具体地,存储器360的DPB)中。各种滤波方法可包括例如去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。
存储器360的DPB中存储的(修改后的)重构图片可以用作帧间预测器332中的参照图片。存储器360可以存储从中推导(或解码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器332,以作为空间邻近块的运动信息或时间邻近块的运动信息来利用。存储器360可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器331。
在本公开中,在编码设备200的滤波器260、帧间预测器221和帧内预测器222中描述的实施方式可以与解码设备300的滤波器350、帧间预测器332和帧内预测器331相同或者分别被应用以对应于解码设备300的滤波器350、帧间预测器332和帧内预测器331。相同的内容也可以应用于帧间预测器332和帧内预测器331。
在本公开中,可以省略量化/逆量化和/或变换/逆变换中的至少一种。当省略量化/逆量化时,量化的变换系数可以被称为变换系数。当省略变换/逆变换时,变换系数可以被称为系数或残差系数,或者为了表达的统一性,仍可以被称为变换系数。
在本公开中,量化变换系数和变换系数可以分别被称为变换系数和缩放变换系数。在这种情况下,残差信息可以包括关于变换系数的信息,并且可以通过残差编码语法发信号通知关于变换系数的信息。可以基于残差信息(或关于变换系数的信息)推导变换系数,并且可以通过对变换系数逆变换(缩放)来推导缩放变换系数。可以基于对缩放变换系数逆变换(变换)来推导残差样本。这也可以在本公开的其他部分中应用/表达。
此外,如上所述,在执行视频编码时,执行预测以提高压缩效率。通过这样,可以生成包括用于当前块的预测样本的预测块,作为待编码的块(即,编码目标块)。在此,预测块包括空间域(或像素域)中的预测样本。在编码设备和解码设备中以相同的方式推导预测块,并且编码设备可以向解码设备发信号通知关于原始块与预测块之间的残差的信息(残差信息),而不是原始块的原始样本值,从而提高图像编码效率。解码设备可以基于残差信息来推导包括残差样本的残差块,将残差块和预测块相加以生成包括重构样本的重构块,并且生成包括重构块的重构图片。
可以通过变换和量化过程来生成残差信息。例如,编码设备可以推导原始块与预测块之间的残差块,可以对包括在残差块中的残差样本(残差样本阵列)执行变换过程来推导变换系数,可以对变换系数执行量化过程来推导量化的变换系数,并且可以将相关残差信息(通过比特流)发信号通知解码设备。在此,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核心和量化参数等的值信息。解码设备可以基于残差信息来执行反量化/逆变换过程并且推导残差样本(或残差块)。解码设备可以基于预测块和残差块来生成重构图片。此外,为用于以后参照图片的帧间预测的参考,编码设备可以反量化/逆变换量化的变换系数以推导残差块,并且基于此来生成重构图片。
帧内预测可以是指用于基于当前块所属的图片(下文中,被称为当前图片)中的参考样本来生成当前块的预测样本的预测。当对当前块应用帧内预测时,可以推导将用于当前块的帧内预测的邻近参考样本。当前块的邻近参考样本可以包括与大小nW×nH的当前块的左边界相邻的样本和与当前块的左下相邻的总共2×nH个样本、与当前块的上边界相邻的样本以及与右上相邻的总共2×nW个样本和与当前块的左上相邻的样本。另选地,当前块的邻近参考样本可以包括多列上邻近样本和多行左邻近样本。另外,当前块的邻近参考样本可以包括与大小nW×nH的当前块的右边界相邻的总共nH个样本、与当前块的下边界相邻的总共nW个样本以及与当前块的右下相邻的样本。
然而,当前块的邻近参考样本中的一些尚未被解码或者可能不可用。在这种情况下,解码器可以通过用可用样本替换不可用样本来构造将要用于预测的邻近参考样本。另选地,可以通过可用样本的内插来配置将要用于预测的邻近参考样本。
当推导邻近参考样本时,(i)可以基于当前块的邻近参考样本的平均或内插来推导预测样本,或(ii)可以基于当前块的邻近参考样本当中的相对于预测样本的特定(预测)方向上存在的参考样本来推导预测样本。情况(i)可以被称为非定向模式或非角度模式,并且情况(ii)可以被称为定向模式或角度模式。
另外,可以通过邻近参考样本当中的基于当前块的预测样本位于当前块的帧内预测模式的预测方向上的第一邻近样本和位于与预测方向相反的方向上的第二邻近样本的内插来生成预测样本。上述情况可以被称为线性内插帧内预测(LIP)。另外,可以使用线性模型(LM)基于亮度样本来生成色度预测样本。这种情况可以被称为LM模式或色度分量LM(CCLM)模式。
另外,基于滤波后的邻近参考样本来推导当前块的临时预测样本,并且还可以通过对临时预测样本和现有的邻近参考样本(即,未滤波的邻近参考样本)当中的根据帧内预测模式推导的至少一个参考样本进行加权求和来推导当前块的预测样本。上述情况可以被称为位置相关帧内预测(PDPC)。
另外,在当前块的多个邻近参考样本行当中选择具有最高预测精度的参考样本行,并且通过使用所选择行中的位于预测方向上的参考样本来推导预测样本。在这种情况下,可以通过向解码设备指示(发信号通知)所使用的参考样本行来执行帧内预测编码。上述情况可以被称为多参考行帧内预测或基于MRL的帧内预测。
另外,当前块可以被划分为垂直或水平子分区并基于相同的帧内预测模式来执行帧内预测,但可以以子分区为单位推导并使用邻近参考样本。即,在这种情况下,针当前块的帧内预测模式被同等地应用于子分区,但在某些情况下,可以通过以子分区为单位推导和使用邻近参考样本来提高帧内预测性能。这种预测方法可以被称为基于帧内子分区(ISP)的帧内预测。
上述帧内预测方法可以被称为帧内预测类型以与帧内预测模式区分开。可以通过诸如帧内预测技术或附加帧内预测模式这样的各种术语来指代帧内预测类型。例如,帧内预测类型(或附加帧内预测模式等)可以包括以上提到的LIP、PDPC、MRL和ISP中的至少一种。排除了诸如LIP、PDPC、MRL和ISP这样的特定帧内预测类型的一般帧内预测方法可以被称为普通帧内预测类型。普通帧内预测类型通常可以在不应用以上特定帧内预测类型时应用,并且可以基于上述帧内预测模式来执行预测。此外,在必要时,可以对推导出的预测样本执行后处理滤波。
具体地,帧内预测处理可以包括帧内预测模式/类型确定步骤、邻近参考样本推导步骤以及基于帧内预测模式/类型的预测样本推导步骤。另外,在必要时,可以对推导出的预测样本执行后滤波步骤。
当应用帧内预测时,可以使用邻近块的帧内预测模式来确定应用于当前块的帧内预测模式。例如,解码装置可以在基于当前块的邻近块(例如,左和/或上邻近块)的帧内预测模式和附加候选模式推导的最可能模式(MPM)列表中选择MPM候选中的一个,或者基于其余的帧内预测模式信息来选择MPM候选(和平面模式)中没有包括的其余帧内预测模式中的一种。MPM列表可以被配置为包括或不包括平面模式作为候选。例如,当MPM列表包括平面模式作为候选时,MPM列表可以具有6个候选,并且当MPM列表不包括平面模式作为候选时,MPM列表可以具有5个候选。当MPM列表不包括平面模式作为候选时,可以发信号通知表示当前块的帧内预测模式是否不是平面模式的非平面标志(例如,intra_luma_not_planar_flag)。例如,可以首先发信号通知MPM标志,并且当MPM标志的值为1时,可以发信号通知MPM索引和非平面标志。另外,当非平面标志的值为1时,可以发信号通知MPM索引。这里,MPM列表被配置为不包括平面模式作为候选的事实在于,平面模式总是被视为MPM,而非平面模式不是MPM,因此,首先发信号通知该标志(非平面标志)以检查它是否是平面模式。
例如,可以基于MPM标志(例如,intra_luma_mpm_flag)来指示应用于当前块的帧内预测模式是在MPM候选(和平面模式)之中还是其余模式。具有值1的MPM标志可以指示当前块的帧内预测模式在MPM候选(和平面模式)内,并且具有值0的MPM标志可以指示当前块的帧内预测模式不在MPM候选(和平面模式)内。具有值0的非平面标志(例如,intra_luma_not_planar_flag)可以指示当前块的帧内预测模式是平面模式,并且具有值1的非平面标志可以指示当前块的帧内预测模式不是平面模式。MPM索引可以以mpm_idx或intra_luma_mpm_idx语法元素的形式被发信号通知,并且其余帧内预测模式信息可以以rem_intra_luma_pred_mode或intra_luma_mpm_remainder语法元素的形式被发信号通知。例如,其余帧内预测模式信息可以指示通过按预测模式编号的次序编索引的所有帧内预测模式当中的MPM候选(和平面模式)中不包括的其余帧内预测模式中的一种。帧内预测模式可以是亮度分量(样本)的帧内预测模式。下文中,帧内预测模式信息可以包括MPM标志(例如,intra_luma_mpm_flag)、非平面标志(例如,intra_luma_not_planar_flag)、MPM索引(例如,mpm_idx或intra_luma_mpm_idx)或其余帧内预测模式信息(rem_intra_luma_pred_mode或intra_luma_mpm_reminder)中的至少一个。在本公开中,可以用诸如MPM候选列表和candModeList这样的各种术语来指代MPM列表。当对当前块应用MIP时,可以发信号通知MIP的单独MPM标志(例如,intra_mip_mpm_flag)、MPM索引(例如,intra_mip_mpm_idx)和其余帧内预测模式信息(例如,intra_mip_mpm_reminder),并且可以不发信号通知非平面标志。
换句话说,通常,当对图像执行块分割时,将要编码的当前块和邻近块具有相似的图像特性。因此,当前块与邻近块具有相同或相似的帧内预测模式的可能性高。因此,编码器可以使用邻近块的帧内预测模式来对当前块的帧内预测模式进行编码。
例如,解码装置/编码装置可以构造当前块的最可能模式(MPM)列表。MPM列表可以被称为MPM候选列表。这里,MPM可以是指在帧内预测模式编码期间考虑到当前块与邻近块之间的相似性来提高编码效率的模式。如上所述,MPM列表可以被构造为包括平面模式,或者可以被构造为不包括平面模式。例如,当MPM列表包括平面模式时,MPM列表中的候选的数目可以为6。并且,当MPM列表不包括平面模式时,MPM列表中的候选的数目可以为5。
编码器/解码器可以构造包括五个或六个MPM的MPM列表。
为了构造MPM列表,可以考虑诸如默认帧内模式、邻近帧内模式和推导出的帧内模式这样的三种类型的模式。
对于邻近帧内模式,可以考虑两个邻近块,即,左邻近块和上邻近块。
如上所述,如果MPM列表被构造为不包括平面模式,则平面模式可以被从列表中排除,并且MPM列表候选的数目可以被设置为五个。
此外,帧内预测模式当中的非定向模式(或非角度模式)可以包括基于当前块的邻近参考样本的平均的DC模式或基于内插的平面模式。
此外,当应用帧间预测时,编码设备/解码设备的预测器可以通过以块为单位执行帧间预测来推导预测样本。当对当前块执行预测时,可以应用帧间预测。即,编码/解码设备的预测器(更具体地,帧间预测器)可以通过以块为单位执行帧间预测来推导预测样本。帧间预测可以表示由取决于除了当前图片之外的图片的数据元素(例如,样本值或运动信息)的方法推导出的预测。当向当前块应用帧间预测时,可以基于参考图片索引所指示的参考图片上的运动向量所指定的参考块(参考样本阵列)来推导当前块的预测块(预测样本阵列)。在这种情况下,为了减少在帧间预测模式下发送的运动信息的量,可以基于邻近块与当前块之间的运动信息的相关性以块、子块或样本为单位来预测当前块的运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测类型(L0预测、L1预测、Bi预测等)信息。在应用帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片和包括时间邻近块的参考图片可以彼此相同或彼此不同。时间邻近块可以被称为诸如并置参考块、并置CU(colCU)等这样的名称,并且包括时间邻近块的参考图片可以被称为并置图片(colPic)。例如,可以基于当前块的邻近块来配置运动信息候选列表,并且为了推导当前块的运动向量和/或参考图片索引,可以发信号通知指示选择(使用)哪个候选的标志或索引信息。可以基于各种预测模式来执行帧间预测,并且例如,在跳过模式和合并模式的情况下,当前块的运动信息可以与所选择的邻近块的运动信息相同。在跳过模式的情况下,可以不像合并模式那样发送残差信号。在运动向量预测(MVP)模式的情况下,所选择的邻近块的运动向量可以被用作运动向量预测子,并且可以发信号通知运动向量差。在这种情况下,可以使用运动向量预测子和运动向量差之和来推导当前块的运动向量。
根据帧间预测类型(L0预测、L1预测、Bi预测等),运动信息可以进一步包括L0运动信息和/或L1运动信息。L0方向运动向量可以被称为L0运动向量或MVL0,以及L1方向运动向量可以被称为L1运动向量或MVL1。基于L0运动向量的预测可以被称为L0预测,基于L1运动向量的预测可以被称为L1预测,以及基于L0运动向量和L1运动向量两者的预测可以被称为双预测(bi-prediction)。在此,L0运动向量可以指示与参照图片列表L0相关联的运动向量,以及L1运动向量可以指示与参照图片列表L1相关联的运动向量。参照图片列表L0可以包括按输出次序在当前图片之前的图片,以及参照图片列表L1可以包括按输出次序在当前图片之后的图片,作为参照图片。先前图片可以被称为前向(参考)图片,并且后续图片可以被称为反向(参考)图片。参照图片列表L0可以进一步包括按输出次序在当前图片之后的图片作为参照图片。在这种情况下,可以首先在参照图片列表L0中对先前图片进行索引,然后可以对后续图片进行索引。参照图片列表L1可以进一步包括按输出次序在当前图片之前的图片作为参照图片。在这种情况下,可以首先在参照图片列表L1中对后续图片进行索引,然后可以对先前图片进行索引。在此,输出次序可以对应于图片顺序计数(POC)次序。
基于帧间预测的视频/图像编码过程可以示意性地包括例如以下内容。
图4例示了基于帧间预测的视频/图像编码方法的示例。
编码设备对当前块执行帧间预测(S400)。编码设备可以推导当前块的帧间预测模式和运动信息,并且生成当前块的预测样本。在此,可以同时执行帧间预测模式确定过程、运动信息推导过程和预测样本的生成过程,并且可以比其他过程更早地执行任何一个过程。例如,编码设备的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元,并且预测模式确定单元可以确定用于当前块的预测模式,运动信息推导单元可以推导当前块的运动信息,以及预测样本推导单元可以推导当前块的预测样本。例如,编码设备的帧间预测单元可以通过运动估计在参照图片的预定区域(搜索区域)中搜索与当前块相似的块,并且推导与当前块的差最小或者等于或小于预定准则的参考块。可以基于此推导来指示参考块所处的参照图片的参照图片索引,并且可以基于参考块与当前块之间的位置差来推导运动向量。编码设备可以确定各种预测模式当中的应用于当前块的模式。编码设备可以比较各种预测模式的RD成本,并且确定当前块的最佳预测模式。
例如,当跳过模式或合并模式被应用于当前块时,编码设备可以配置将在下面描述的合并候选列表,并且推导在由合并候选列表中包括的合并候选指示的参考块之中的、与当前块的差最小或者等于或小于预定标准的参考块。在这种情况下,与推导的参考块相关联的合并候选可以被选择,并且指示选择的合并候选的合并索引信息可以被生成并且被发信号通知解码设备。可以通过使用选择的合并候选的运动信息来推导当前块的运动信息。
作为另一示例,当(A)MVP模式被应用于当前块时,编码设备可以配置将在下文描述的(A)MVP候选列表,并且使用(A)MVP候选列表中包括的运动向量预测子(mvp)候选之中的选择的mvp候选的运动向量作为当前块的mvp。在这种情况下,例如,指示通过运动估计推导的参考块的运动向量可以被用作当前块的运动向量,并且mvp候选之中具有与当前块的运动向量的最小差的运动向量的mvp候选可以成为选择的mvp候选。可以推导运动向量差(MVD),该运动向量差是通过从当前块的运动向量减去mvp而获得的差。在这种情况下,关于MVD的信息可以被发信号通知解码设备。此外,当应用(A)MVP模式时,参照图片索引的值可以被配置为参照图片索引信息并且被单独地发信号通知解码设备。
编码设备可以基于预测样本推导残差样本(S410)。编码设备可以通过比较当前块的原始样本和预测样本来推导残差样本。
编码设备对包括预测信息和残差信息的图像信息进行编码(S420)。编码设备能够以比特流的形式来输出编码的图像信息。预测信息可以包括关于预测模式信息的信息(例如,跳过标志、合并标志或模式索引等)以及关于运动信息的信息,作为与预测过程相关的信息。关于运动信息的信息可以包括候选选择信息(例如,合并索引、mvp标志或mvp索引),该候选选择信息是用于推导运动向量的信息。此外,关于运动信息的信息可以包括关于MVD的信息和/或参照图片索引信息。此外,关于运动信息的信息可以包括指示是否应用L0预测、L1预测或双预测的信息。残差信息是关于残差样本的信息。残差信息可以包括关于用于残差样本的量化变换系数的信息。
输出比特流可以被存储在(数字)存储介质中并传送到解码设备,或者经由网络传送到解码设备。
此外,如上所述,编码设备可以基于参考样本和残差样本来生成重构图片(包括重构样本和重构块)。这是为了推导与由解码设备执行的预测结果相同的预测结果,并且结果,可以提高编码效率。因此,编码设备可以将重构图片(或重构样本或重构块)存储在存储器中,并将重构图片用作参照图片。如上所述,环内滤波处理可以被进一步应用于重构图片。
基于帧间预测的视频/图像解码处理可以示意性地包括例如以下内容。
图5例示了基于帧间预测的视频/图像解码方法的示例。
参照图5,解码设备可以执行与由编码设备执行的操作对应的操作。解码设备可以基于所接收的预测信息对当前块执行预测并推导预测样本。
具体地,解码设备可以基于所接收的预测信息来确定当前块的预测模式(S500)。解码设备可以基于预测信息中的预测模式信息来确定将哪种帧间预测模式应用于当前块。
例如,可以基于合并标志来确定是否合并模式或者(A)MVP模式被应用于当前块。可替选地,可以基于模式索引来选择各种帧间预测模式候选中的一种。帧间预测模式候选可以包括跳过模式、合并模式和/或(A)MVP模式,或者可以包括下文将描述的各种帧间预测模式。
解码设备基于所确定的帧间预测模式来推导当前块的运动信息(S510)。例如,当跳过模式或合并模式被应用于当前块时,解码设备可以配置将在下面描述的合并候选列表,并且在合并候选列表中包括的合并候选当中选择一个合并候选。在此,可以基于选择信息(合并索引)来执行选择。可以通过使用所选择的合并候选的运动信息来推导当前块的运动信息。所选择的合并候选的运动信息可以被用作当前块的运动信息。
作为另一示例,当(A)MVP模式被应用于当前块时,解码设备可以配置将在下文描述的(A)MVP候选列表,并且使用(A)MVP候选列表中包括的运动向量预测子(mvp)候选之中的选择的mvp候选的运动向量作为当前块的mvp。在此,可以基于选择信息(mvp标志或mvp索引)来执行选择。在这种情况下,可以基于关于MVD的信息来推导当前块的MVD,并且可以基于当前块的mvp和MVD来推导当前块的运动向量。此外,可以基于参照图片索引信息来推导当前块的参照图片索引。由用于当前块的参照图片列表中的参照图片索引指示的图片可以被推导为当前块的帧间预测所参考的参照图片。
此外,如下所述,可以在没有候选列表配置的情况下推导当前块的运动信息,并且在这种情况下,可以根据预测模式中公开的过程来推导当前块的运动信息。在这种情况下,可以省略候选列表配置。
解码设备可以基于当前块的运动信息来生成用于当前块的预测样本(S520)。在这种情况下,可以基于当前块的参照图片索引来推导参照图片,并且可以通过使用由参照图片上的当前块的运动向量指示的参考块的样本来推导当前块的预测样本。在这种情况下,在一些情况下,可以进一步执行用于当前块的所有或一些预测样本的预测样本滤波过程。
例如,解码设备的帧间预测单元可以包括预测模式确定单元、运动信息推导单元和预测样本推导单元,并且预测模式确定单元可以基于所接收的预测模式信息来确定用于当前块的预测模式,运动信息推导单元可以基于关于所接收的运动信息的信息来推导当前块的运动信息(运动向量和/或参照图片索引),并且预测样本推导单元可以推导当前块的预测样本。
解码设备基于所接收的残差信息来生成针对当前块的残差样本(S530)。解码设备可以基于预测样本和残差样本来生成用于当前块的重构样本,并且基于所生成的重构样本来生成重构图片(S540)。此后,如上所述,环内滤波过程可以被进一步应用于重构图片。
图6示意性地示出了帧间预测过程。
参照图6,如上所述,帧间预测过程可以包括帧间预测模式确定步骤、根据所确定的预测模式的运动信息推导步骤,以及基于所推导的运动信息的预测处理(预测样本生成)步骤。帧间预测过程可以由如上所述的编码设备和解码设备执行。在本文中,编码设备可以包括编码设备和/或解码设备。
参照图6,编码设备确定当前块的帧间预测模式(S600)。可以将各种帧间预测模式用于图片中的当前块的预测。例如,可以使用各种模式,诸如合并模式、跳过模式、运动向量预测(MVP)模式、仿射模式、子块合并模式、具有MVD的合并(MMVD)模式以及历史运动向量预测(HMVP)模式。解码器侧运动向量细化(DMVR)模式、自适应运动向量分辨率(AMVR)模式、具有CU级权重的双预测(BCW)以及双向光流(BDOF)等可以进一步被用作附加模式。仿射模式也可以被称作仿射运动预测模式。MVP模式也可以被称作高级运动向量预测(AMVP)模式。在本文中,一些模式和/或由一些模式推导的运动信息候选也可以被包括在其他模式中的运动信息相关候选中的一个中。例如,可以将HMVP候选添加到合并/跳过模式的合并候选,或者添加到MVP模式的mvp候选。如果HMVP候选被用作合并模式或跳过模式的运动信息候选,则可以将HMVP候选称作HMVP合并候选。
指示当前块的帧间预测模式的预测模式信息可以从编码设备发信号通知解码设备。在这种情况下,预测模式信息可以被包括在比特流中并由解码设备接收。预测模式信息可以包括指示多个候选模式中的一种的索引信息。可替选地,可以通过标志信息的分层信令来指示帧间预测模式。在这种情况下,预测模式信息可以包括一个或多个标志。例如,可以通过发信号通知跳过标志来指示是否应用跳过模式,在不应用跳过模式时,可以通过发信号通知合并标志来指示是否应用合并模式,以及在不应用合并模式时,指示应用MVP模式或可以进一步发信号通知用于额外区分的标志。仿射模式可以被发信号通知为独立模式,或发信号通知为关于合并模式或MVP模式的从属模式。例如,仿射模式可以包括仿射合并模式和仿射MVP模式。
编码设备推导用于当前块的运动信息(S610)。可以基于帧间预测模式来推导运动信息推导。
编码设备可以使用当前块的运动信息来执行帧间预测。编码设备可以通过运动估计过程来推导用于当前块的最佳运动信息。例如,编码设备可以通过使用用于当前块的原始图片中的原始块,在参照图片中的预定搜索范围内,以分数像素为单位搜索具有高相关性的类似参考块,并且通过所搜索的参考块来推导运动信息。可以根据基于相位的样本值的差来推导块的相似性。例如,可以基于当前块(或当前块的模板)与参考块(或参考块的模板)之间的绝对差的总和(SAD)来计算块的相似性。在这种情况下,可以基于搜索区域中具有最小SAD的参考块来推导运动信息。可以基于帧间预测模式,根据各种方法将推导的运动信息发信号通知解码设备。
编码设备基于用于当前块的运动信息来执行帧间预测(S620)。编码设备可以基于运动信息来推导用于当前块的(一个或多个)预测样本。包括预测样本的当前块可以被称作预测块。
此外,如上所述,编码设备可以执行诸如指数哥伦布(exponential Golomb)、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)的各种编码方法。另外,解码设备可以基于诸如指数哥伦布编码、CAVLC或CABAC的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素的值和与残差相关的变换系数的量化值。
例如,可以如下所述地执行上述的编码方法。
图7示例性示出了用于对语法元素进行编码的上下文自适应二进制算术编码(CABAC)。例如,在CABAC编码处理中,当输入信号是语法元素而非二进制值时,编码设备可以通过对输入信号的值进行二进制化来将输入信号转换为二进制值。另外,当输入信号已经是二进制值时(即,当输入信号的值是二进制值时),可以不执行二进制化,可以将其旁路。这里,构成二进制值的每个二进制数0或1可以被称为bin。例如,如果二进制化后的二进制串为110,则1、1和0中的每一个都可以被称为一个bin。针对一个语法元素的bin可以指示语法元素的值。
此后,语法元素的二进制化的bin可以被输入到常规编码引擎或旁路编码引擎。编码设备的常规编码引擎可以向对应的bin分配反映概率值的上下文模型,并基于所分配的上下文模型对对应bin进行编码。编码设备的常规编码引擎可以在对每个bin执行编码之后更新针对每个bin的上下文模型。如上所述编码的bin可以被称为上下文编码的bin。
此外,当语法元素的二进制化的bin被输入到旁路编码引擎时,它们可以被如下地编码。例如,编码设备的旁路编码引擎省略了估计关于输入bin的概率的过程以及在编码之后更新应用于bin的概率模型的过程。当应用旁路编码时,编码设备可以通过应用均匀概率分布来替代分配上下文模型来对输入bin进行编码,由此提高编码速率。如上所述编码的bin可以被称为旁路bin。
熵解码可以表示以倒序执行与上述熵编码相同的处理的处理。
例如,当基于上下文模型对语法元素进行解码时,解码设备可以通过比特流接收与语法元素对应的bin,使用语法元素和解码目标块或邻近块的解码信息或前一阶段中解码的符号/bin的信息来确定上下文模型,根据所确定的上下文模型预测接收到的bin的出现概率,并且对bin执行算术解码以推导出语法元素的值。此后,可以利用所确定的上下文模型来更新被解码的bin的上下文模型。
此外,例如,当语法元素被旁路解码时,解码设备可以通过比特流接收与语法元素相对应的bin,并通过应用均匀概率分布对输入bin进行解码。在这种情况下,可以省略用于推导语法元素的上下文模型的过程以及在解码之后更新应用于bin的上下文模型的过程。
如上所述,可以通过变换和量化处理将残差样本推导为经量化的变换系数。经量化的变换系数也可以被称为变换系数。在这种情况下,可以以残差信息的形式发信号通知块中的变换系数。残差信息可以包括残差编码语法。也就是说,编码设备可以利用残差信息配置残差编码语法,对其进行编码,并以比特流的形式将其输出,并且解码设备可以从比特流中解码残差编码语法并推导出残差(经量化的)变换系数。残差编码语法可以包括表示是否向对应块应用变换、块中最后的有效变换系数的位置、子块中是否存在有效变换系数、有效变换系数的大小/符号等的语法元素,如随后将描述的。
例如,与残差数据编码/解码相关的语法元素可以如下表中所示地表示。
[表1]
Figure BDA0003890679970000251
Figure BDA0003890679970000261
Figure BDA0003890679970000271
transform_skip_flag指示是否在关联块中跳过了变换。transform_skip_flag可以是变换跳过标志的语法元素。关联块可以是编码块(CB)或变换块(TB)。关于变换(和量化)和残差编码过程,CB和TB可以被可互换地使用。例如,如上所述,可以针对CB推导残差样本,并且可以通过对残差样本的变换和量化来推导(量化)变换系数,并且通过残差编码过程,可以生成和发信号通知高效指示(量化)变换系数的位置、大小、符号等的信息(例如,语法元素)。量化变换系数可以被简称为变换系数。通常,当CB不大于最大TB时,CB的大小可以与TB的大小相同,并且在这种情况下,将被变换(和量化)并被残差编码的目标块可以被称为CB或TB。此外,当CB大于最大TB时,将被变换(和量化)并被残差编码的目标块可以被称为TB。下文中,将描述以变换块(TB)为单位发信号通知与残差编码相关的语法元素,但这是示例,并且如上所述,TB可以与编码块(CB)可互换地使用。
此外,在发信号通知变换跳过标志之后发信号通知的语法元素可以与下表2和/或表3中公开的语法元素相同,并且下面描述关于语法元素的详细描述。
[表2]
Figure BDA0003890679970000281
Figure BDA0003890679970000291
Figure BDA0003890679970000301
Figure BDA0003890679970000311
Figure BDA0003890679970000321
[表3]
Figure BDA0003890679970000331
Figure BDA0003890679970000341
Figure BDA0003890679970000351
根据本实施方式,如表1中所示,可以根据变换跳过标志的语法元素transform_skip_flag的值来划分残差编码。即,基于变换跳过标志的值(基于是否跳过变换),可以将不同的语法元素用于残差编码。没有应用变换跳过时(即,当应用变换时)使用的残差编码可以被称为常规残差编码(RRC),而应用变换跳过时(即,当未应用变换时)使用的残差编码可以被称为变换跳过残差编码(TSRC)。另外,常规残差编码可以被称为一般残差编码。另外,常规残差编码可以被称为常规残差编码语法结构,并且变换跳过残差编码可以被称为变换跳过残差编码语法结构。上表2可以示出当transform_skip_flag的值为0时(即,当应用变换时)的残差编码的语法元素,并且上表3可以示出当transform_skip_flag的值为1时(即,当未应用变换时)的残差编码的语法元素。
具体地,例如,可以解析指示是否跳过变换块的变换的变换跳过标志,并且可以确定变换跳过标志是否为1。如果变换跳过标志的值为0,则如表2中所示,可以解析针对变换块的残差系数的语法元素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gtx_flag、par_level_flag、abs_remainder、coeff_sign_flag和/或dec_abs_level,并且可以基于语法元素来推导残差系数。在这种情况下,语法元素可以被依次解析,并且解析顺序可以改变。另外,abs_level_gtx_flag可以表示abs_level_gt1_flag和/或abs_level_gt3_flag。例如,abs_level_gtx_flag[n][0]可以是第一变换系数级别标志(abs_level_gt1_flag)的示例,并且abs_level_gtx_flag[n][1]可以是第二变换系数级别标志(abs_level_gt3_flag)的示例。
参照上表2,last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_remainder、coeff_sign_flag和/或dec_abs_level可以被编码/解码。此外,sb_coded_flag可以被表示为coded_sub_block_flag。
在实施方式中,编码设备可以基于语法元素last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix对变换块中的最后非零变换系数的(x,y)位置信息进行编码。更具体地,last_sig_coeff_x_prefix表示变换块内的按扫描顺序的最后有效系数的列位置的前缀,last_sig_coeff_y_prefix表示变换块内的按扫描顺序的最后有效系数的行位置的前缀,last_sig_coeff_x_suffix表示变换块内的按扫描顺序的最后有效系数的列位置的后缀,并且last_sig_coeff_y_suffix表示变换块内的按扫描顺序的最后有效系数的行位置的后缀。这里,有效系数可以表示非零系数。另外,扫描顺序可以是直角对角扫描顺序。另选地,扫描顺序可以是水平扫描顺序或垂直扫描顺序。可以基于是否向目标块(CB或包括TB的CB)应用帧内预测/帧间预测和/或特定帧内预测/帧间预测模式来确定扫描顺序。
此后,编码设备可以将变换块划分为4×4子块,然后,使用针对每个4×4子块的1比特语法元素coded_sub_block_flag来指示当前子块中是否存在非零系数。
如果coded_sub_block_flag的值为0,则没有更多的信息要发送,因此,编码设备可以终止对当前子块的编码处理。相反,如果coded_sub_block_flag的值为1,则编码设备可以连续地对sig_coeff_flag执行编码处理。由于包括最后非零系数的子块不需要对coded_sub_block_flag进行编码并且包括变换块的DC信息的子块具有包括非零系数的高概率,因此coded_sub_block_flag可以不被编码并且其值可以被假定为1。
如果coded_sub_block_flag的值为1并因此确定在当前子块中存在非零系数,则编码设备可以根据反向扫描顺序对具有二进制值的sig_coeff_flag进行编码。编码设备可以根据扫描顺序对针对每个变换系数的1比特语法元素sig_coeff_flag进行编码。如果当前扫描位置处的变换系数的值不为0,则sig_coeff_flag的值可以为1。这里,在包括最后非零系数的子块的情况下,sig_coeff_flag不需要针对最后非零系数进行编码,因此可以省略针对子块的编码处理。只有当sig_coeff_flag为1时才可以执行级别信息编码,并且在级别信息编码处理中可以使用四个语法元素。更具体地,每个sig_coeff_flag[xC][yC]可以指示在当前TB中的每个变换系数位置(xC,yC)处的对应变换系数的级别(值)是否为非零。在实施方式中,sig_coeff_flag可以与指示经量化的变换系数是否为非零有效系数的有效系数标志的语法元素的示例相对应。
可以如下式中所示地推导在对sig_coeff_flag进行编码之后剩余的级别值。也就是说,可以从下式推导出指示待编码的级别值的语法元素remAbsLevel。
[式1]
remAbsLevel=|coeff|-1
本文中,coeff意指实际变换系数值。
另外,abs_level_gt1_flag可以指示对应扫描位置(n)的remAbsLevel’是否大于1。例如,当abs_level_gt1_flag的值为0时,对应位置的变换系数的绝对值可以为1。另外,当abs_level_gt1_flag的值为1时,可以如下式中所示地更新指示稍后要编码的级别值的remAbsLevel。
[式2]
remAbsLevel=remAbsLevel-1
另外,可以通过par_level_flag如下式3中一样地对上述式2中描述的remAbsLevel的最小有效系数(LSB)值进行编码。
[式3]
par_level_flag=|coeff|&1
本文中,par_level_flag[n]可以指示在扫描位置(n)处的变换系数级别(值)的奇偶性。
可以如下式中所示一样地更新在执行par_level_flag编码之后要被编码的变换系数级别值remAbsLevel。
[式4]
remAbsLevel=remAbsLevel>>1
abs_level_gt3_flag可以指示对应扫描位置(n)的remAbsLevel’是否大于3。只有在rem_abs_gt3_flag等于1的情况下,才可以执行对abs_remainder的编码。可以用下式如下所示地表示实际的变换系数值coeff与每个语法元素之间的关系。
[式5]
|coeff|=sig-coeff_flag+abs_level_gt1_flag+par_level_flag+2*(abs_level_gt3_flag+abs_remainder)
另外,下表指示与上述式5相关的示例。
[表4]
Figure BDA0003890679970000381
本文中,|coeff|指示变换系数级别(值),并且也可以被指示为变换系数的AbsLevel。另外,可以通过使用作为1位符号的coeff_sign_flag对每个系数的符号进行编码。
另外,如果变换跳过标志的值为1,则如表3中所示,可以解析针对变换块的残差系数的语法元素sb_coded_flag、sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag、par_level_flag和/或abs_remainder,并且可以基于语法元素来推导残差系数。在这种情况下,语法元素可以被依次解析,并且解析顺序可以改变。另外,abs_level_gtx_flag可以表示abs_level_gt1_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag和/或abs_level_gt9_flag。例如,abs_level_gtx_flag[n][j]可以是指示扫描位置n处的变换系数的绝对值或级别(值)是否大于(j<<1)+1的标志。条件(j<<1)+1可以可选地被替换为诸如第一阈值、第二阈值等这样的特定阈值。
此外,CABAC提供高性能,但具有吞吐量性能不良的缺点。这是由CABAC的常规编码引擎引起的。常规编码(即,通过CABAC的常规编码引擎进行的编码)表现出高度的数据依赖性,因为它使用通过对前一bin的编码而更新的概率状态和范围,并且读取概率间隔并确定当前状态可能花费大量时间。CABAC的吞吐量问题可以通过限制上下文编码的bin的数目来解决。例如,如上述表2中所示,用于表示sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的bin的总和可以限于取决于对应块大小的bin的数目。另外,例如,如上述表3中所示,用于表示sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag的bin的总和可以限于取决于对应块大小的bin的数目。例如,如果对应块是4×4大小的块,则sig_coeff_flag、abs_level_gt1_flag,par_level_flag、abs_level_gt3_flag或sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag的bin的总和可以限于32(或例如,28),并且如果对应块是2×2大小的块,则sig_coeff_flag,abs_level_gt1_flag,par_level_flag,abs_level_gt3_flag的bin的总和可以限于8(或例如,7)。Bin的受限数目可以由remBinsPass1或RemCcbs表示。或者,例如,对于更高的CABAC吞吐量,对于包括编码目标CG的块(CB或TB),上下文编码的bin的数目可以受限。换句话说,上下文编码的bin的数目可以以块(CB或TB)为单位来限制。例如,当当前块的大小为16×16时,用于当前块的上下文编码的bin的数目可以限于当前块的像素数目的1.75倍(即,448),而与当前CG无关。
在这种情况下,如果在对上下文元素进行编码时使用数目受限的所有上下文编码的bin,则编码设备可以通过如下所述对系数进行二进制化的方法来对剩余系数进行二进制化,而不是使用上下文编码,并且可以执行旁路编码。换句话说,例如,如果针对4×4 CG编码的上下文编码的bin的数目为32(或例如,28),或者如果针对2×2 CG编码的上下文编码的bin的数目为8(或例如,7),则用上下文编码的bin编码的sig_coeff_flag、abs_level_gt1_flag、par_level_flag、abs_level_gt3_flag可以不再被编码,并且可以被直接编码为dec_abs_level。或者,例如,当针对4×4块编码的上下文编码的bin的数目为整个块的像素数目的1.75倍时,即,当限于28时,作为上下文编码的bin被编码的sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag可以不再被编码,并可以被直接编码为dec_abs_level,如下表5中所示。
[表5]
|coeff[n]| dec_abs_level[n]
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
... ...
可以基于dec_abs_level来推导值|coeff|。在这种情况下,可以如下式中所示地推导变换系数值,即,|coeff|。
[式6]
|coeff|=dec_abs_level
另外,coeff_sign_flag可以指示对应扫描位置n处的变换系数级别的符号。即,coeff_sign_flag可以指示对应扫描位置n处的变换系数的符号。
图8示出了4×4块中的变换系数的示例。
图8的4×4块表示量化系数的示例。图8的块可以是4×4变换块或8×8、16×16、32×32或64×64变换块的4×4子块。图8的4×4块可以表示亮度块或色度块。
此外,如上所述,当输入信号不是二进制值而是语法元素时,编码设备可以通过对输入信号的值进行二进制化来将输入信号变换为二进制值。另外,解码设备可以对语法元素进行解码以推导出语法元素的二进制化值(例如,二进制化的bin),并可以对二进制化值进行去二进制化以推导出语法元素的值。二进制化处理可以作为截断莱斯(TR)二进制化处理、k阶指数哥伦布(EGk)二进制化处理、有限k阶指数哥伦布(有限EGk)、固定长度(FL)二进制化处理等执行。另外,去二进制化处理可以表示基于TR二进制化处理、EGk二进制化处理或FL二进制化处理来执行以推导出语法元素的值的处理。
例如,可以如下地执行TR二进制化处理。
TR二进制化处理的输入可以是针对语法元素的cMax和cRiceParam以及对TR二进制化的请求。另外,TR二进制化处理的输出可以是针对作为与bin串相对应的值的symbolVal的TR二进制化。
具体地,例如,在存在针对语法元素的后缀bin串的情况下,针对语法元素的TRbin串可以是前缀bin串与后缀bin串的串联,并且在不存在后缀bin串的情况下,针对语法元素的TR bin串可以是前缀bin串。例如,可以如下所述地推导前缀bin串。
可以如下式中所示地推导针对语法元素的symbolVal的前缀值。
[式7]
prefixVal=symbolVal>>cRiceParam
在本文中,prefixVal可以表示symbolVal的前缀值。可以如下所述地推导语法元素的TR bin串的前缀(即,前缀bin串)。
例如,如果prefixVal小于cMax>>cRiceParam,则前缀bin串可以是由binIdx编索引的长度为prefixVal 1的比特串。也就是说,如果prefixVal小于cMax>>cRiceParam,则前缀bin串可以是由binIdx指示的比特数为prefixVal+1的比特串。小于prefixVal的binIdx的bin可以等于1。另外,与prefixVal相同的binIdx的bin可以等于0。
例如,通过对prefixVal进行一元二进制化推导出的bin串可以如下表中所示。
[表6]
Figure BDA0003890679970000411
此外,如果prefixVal不小于cMax>>cRiceParam,则前缀bin串可以是长度为cMax>>cRiceParam并且所有比特都为1的比特串。
另外,如果cMax大于symbolVal并且如果cRiceParam大于0,则可以存在TR bin串的bin后缀bin串。例如,可以如下所述地推导后缀bin串。
可以如下式中所示地推导针对语法元素的symbolVal的后缀值。
[式8]
suffixVal=symbolVal-((prefixVal)<<cRiceParam)
本文中,suffixVal可以表示symbolVal的后缀值。
可以基于针对其值cMax为(1<<cRiceParam)-1的suffixVal的FL二进制化处理来推导TR bin串的后缀(即,后缀bin串)的后缀。
此外,如果输入参数(即,cRiceParam)的值为0,则TR二进制化可以是精确地截断的一元二进制化,并可以总是使用与待解码语法元素的可能最大值相同的值cMax。
另外,例如,可以如下地执行EGk二进制化处理。利用ue(v)编码的语法元素可以是经过指数哥伦布编码的语法元素。
例如,可以如下地执行0阶指数哥伦布(EG0)二进制化处理。
针对语法元素的解析处理可以从读取包括从比特流的当前位置开始的第一非零比特的比特并对等于0的前导比特的数量进行计数开始。可以如下表中所示地表示该处理。
[表7]
Figure BDA0003890679970000421
另外,可以如下地推导变量codeNum。
[式9]
codeNum=2leadingZeroBits-1+read-bits(leadingZeroBits)
本文中,从read_bits(leadingZeroBits)返回的值(即,由read_bits(leadingZeroBits)指示的值)可以被解释为首先记录的最高有效比特的无符号整数的二进制表示。
可以如下表中所示地表示其中比特串被划分为“前缀”比特和“后缀”比特的指数哥伦布代码的结构。
[表8]
比特串形式 codeNum的范围
1 0
0 1 x<sub>0</sub> 1..2
0 0 1 x<sub>1</sub> x<sub>0</sub> 3..6
0 0 0 1 x<sub>2</sub> x<sub>1</sub> x<sub>0</sub> 7..14
0 0 0 0 1 x<sub>3</sub> x<sub>2</sub> x<sub>1</sub> x<sub>0</sub> 15..30
0 0 0 0 0 1 x<sub>4</sub> x<sub>3</sub> x<sub>2</sub> x<sub>1</sub> x<sub>0</sub> 31..62
... ...
“前缀”比特可以是如上所述为了计算leadingZeroBits而解析的比特,并可以由表8中的比特串中的0或1来指示。也就是说,上表8中的0或1所指示的比特串可以表示前缀比特串。“后缀”比特可以是在计算codeNum时解析的比特,并可以在上表8中由xi表示。也就是说,上表8中由xi指示的比特串可以表示后缀比特串。这里,i可以是从0至LeadingZeroBits-1的值。另外,每个xi可以等于0或1。
分配给codeNum的比特串可以如下表所示。
[表9]
比特串 codeNum
1 0
0 1 0 1
0 1 1 2
0 0 1 0 0 3
0 0 1 0 1 4
0 0 1 1 0 5
0 0 1 1 1 6
0 0 0 1 0 0 0 7
0 0 0 1 0 0 1 8
0 0 0 1 0 1 0 9
... ...
如果语法元素的描述符是ue(v)(即,如果语法元素是用ue(v)编码的),则语法元素的值可以等于codeNum。
另外,例如,可以如下地执行EGk二进制化处理。
EGk二进制化处理的输入可以是对EGk二进制化的请求。另外,EGk二进制化处理的输出可以是针对symbolVal(即,与bin串对应的值)的EGk二进制化。
可以如下地推导针对symbolVal的EGk二进制化处理的比特串。
[表10]
Figure BDA0003890679970000441
参照上表10,可以通过put(X)的每次调用将二进制值X添加到bin串的末尾。本文中,X可以为0或1。
另外,例如,可以如下地执行有限EGk二进制化处理。
有限EGk二进制化处理的输入可以是对有限EGk二进制化的请求、rice参数ricParam、作为表示最大值的二进制对数的变量的log2TransformRange和作为表示最大前缀扩展长度的变量的maxPreExtLen。另外,有限EGk二进制化处理的输出可以是针对作为与空串对应的值的symbolVal的有限EGk二进制化。
可以如下地推导针对symbolVal的有限EGk二进制化处理的比特串。
[表11]
Figure BDA0003890679970000442
另外,例如,可以如下地执行FL二进制化处理。
FL二进制化处理的输入可以是对针对语法元素的cMax和FL二进制化的请求。另外,FL二进制化处理的输出可以是针对作为与bin串对应的值的symbolVal的FL二进制化。
可以通过使用其比特数具有symbolVal的固定长度的比特串来配置FL二进制化。在本文中,固定长度比特可以是无符号整数比特串。也就是说,可以通过FL二进制化来推导用于作为符号值的symbolVal的比特串,并且比特串的比特长度(即,比特数)可以是固定长度。
例如,可以如下式中所示地推导固定长度。
[式10]
fixedLength=Ceil(Log2(cMax+1))
针对FL二进制化的bin的索引可以是使用从最高有效比特到最低有效比特顺序增加的值的方法。例如,与最高有效比特相关的bin索引可以是binIdx=0。
此外,例如,可以如下执行针对残差信息中的语法元素abs_remainder的二进制化处理。
针对abs_remainder的二进制化处理的输入可以是对语法元素abs_remainder[n]、颜色分量cIdx和亮度位置(x0,y0)的二进制化的请求。亮度位置(x0,y0)可以指示基于图片的左上角亮度样本的当前亮度变换块的左上样本。
针对abs_remainder的二进制化处理的输出可以是abs_remainder的二进制化(即,abs_remainder的二进制化bin串)。可以通过二进制化处理来推导针对abs_remainder可用的比特串。
可以利用通过输入颜色分量cIdx和亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块宽度的二进制对数的log2TbWidth和作为变换块高度的二进制对数的log2TbHeight执行的莱斯参数推导处理来推导针对abs_remainder[n]的莱斯参数cRiceParam。稍后将描述莱斯参数推导处理的详细描述。
另外,例如,可以基于莱斯参数cRiceParam来推导当前要编码的abs_remainder[n]的cMax。可以如下式中所示地推导cMax。
[式11]
cMax=6<<cRiceParam
此外,针对abs_remainder的二进制化(即,用于abs_remainder的bin串)在存在后缀bin串的情况下可以是前缀bin串与后缀bin串的串联。另外,在没有后缀bin串的情况下,用于abs_remainder的bin串可以是前缀bin串。
例如,可以如下所述地推导前缀bin串。
可以如下式中所示地推导abs_remainder[n]的前缀值prefixVal。
[式12]
prefixVal=Min(cMax,abs_remainder[n])
可以通过针对prefixVal的TR二进制化处理来推导abs_remainder[n]的bin串(即,前缀bin串)的前缀,其中,cMax和cRiceParam被用作输入。
如果前缀bin串与所有位都为1并且位长度为6的位串相同,则可能存在abs_remainder[n]的bin串的后缀bin串,并可以如下所述地推导它。
针对dec_abs_level[n]的莱斯参数推导处理可以如下。
莱斯参数推导处理的输入可以是颜色分量索引cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块宽度的二进制对数的log2TbWidth以及作为变换块高度的二进制对数的log2TbHeight。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。另外,莱斯参数推导处理的输出可以是莱斯参数cRiceParam。
例如,可以基于具有给定分量索引cIdx和左上亮度位置(x0,y0)的变换块的阵列AbsLevel[x][y],类似于下表中公开的伪代码地推导变量locSumAbs。
[表12]
Figure BDA0003890679970000461
然后,基于给定的变量locSumAbs,可以如下表中所示地推导出莱斯参数cRiceParam。
[表13]
locSumAbs 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
cRiceParam 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2
locSumAbs 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
cRiceParam 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3
另外,例如,在针对abs_remainder[n]的莱斯参数推导处理中,baseLevel可以被设置为4。
另选地,例如,可以基于是否对当前块应用变换跳过来确定莱斯参数cRiceParam。即,如果没有对包括当前CG的当前TB应用变换,换句话说,如果对包括当前CG的当前TB应用变换跳过,则莱斯参数cRiceParam可以被推导为1。
另外,可以如下式中所示地推导abs_remainder的后缀值suffixVal。
[式13]
suffixVal=abs-remainder[n]-cMax
可以通过针对suffixVal的有限EGk二进制化处理来推导abs_remainder的bin串的后缀bin串,其中,k被设置为cRiceParam+1,riceParam被设置为cRiceParam,并且log2TransformRange被设置为15,并且maxPreExtLen被设置为11。
此外,例如,可以如下执行针对残差信息中的语法元素dec_abs_level的二进制化处理。
针对dec_abs_level的二进制化处理的输入可以是对语法元素dec_abs_level[n]、颜色分量cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块宽度的二进制对数的log2TbWidth以及作为变换块高度的二进制对数的log2TbHeight的二进制化的请求。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。
针对dec_abs_level的二进制化处理的输出可以是dec_abs_level的二进制化(即,dec_abs_level的二进制化bin串)。可以通过二进制化处理来推导dec_abs_level的可用bin串。
可以通过用颜色分量cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块宽度的二进制对数的log2TbWidth和作为变换块高度的二进制对数的log2TbHeight的输入执行的莱斯参数推导处理来推导dec_abs_level[n]的莱斯参数cRiceParam。以下,将详细描述莱斯参数推导处理。
另外,例如,可以基于莱斯参数cRiceParam来推导dec_abs_level[n]的cMax。可以如下表中所示地推导cMax。
[式14]
cMax=6<<cRiceParam
此外,针对dec_abs_level[n]的二进制化(即,用于dec_abs_level[n]的bin串)在存在后缀bin串的情况下可以是前缀bin串与后缀bin串的串联。另外,在没有后缀bin串的情况下,用于dec_abs_level[n]的bin串可以是前缀bin串。
例如,可以如下所述地推导前缀bin串。
可以如下式中所示地推导dec_abs_level[n]的前缀值prefixVal。
[式15]
prefixVal=Min(cMax,dec_abs_level[n])
可以通过针对prefixVal的TR二进制化处理来推导dec_abs_level[n]的bin串(即,前缀bin串)的前缀,其中,cMax和cRiceParam被用作输入。
如果前缀bin串与所有位都为1并且位长度为6的位串相同,则可能存在dec_abs_level[n]的bin串的后缀bin串,并可以如下所述地推导它。
针对dec_abs_level[n]的莱斯参数推导处理可以如下。
莱斯参数推导处理的输入可以是颜色分量索引cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块宽度的二进制对数的log2TbWidth以及作为变换块高度的二进制对数的log2TbHeight。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。另外,莱斯参数推导处理的输出可以是莱斯参数cRiceParam。
例如,可以基于具有给定分量索引cIdx和左上亮度位置(x0,y0)的变换块的阵列AbsLevel[x][y],类似于下表中公开的伪代码地推导变量locSumAbs。
[表14]
Figure BDA0003890679970000491
然后,基于给定的变量locSumAbs,可以如下表中所示地推导出莱斯参数cRiceParam。
[表15]
locSumAbs 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
cRiceParam 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2
locSumAbs 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
cRiceParam 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3
另外,例如,在针对dec_abs_level[n]的莱斯参数推导处理中,baseLevel可以被设置为0,并且可以如下地推导ZeroPos[n]。
[式16]
ZeroPos[n]=(QState<2?1:2)<<cRiceParam
另外,可以如下式中所示地推导dec_abs_level[n]的后缀值suffixVal。
[式17]
suffixVal=dec_abs_level[n]-cMax
可以通过针对suffixVal的有限EGk二进制化处理来推导dec_abs_level[n]的bin串的后缀bin串,其中,k被设置为cRiceParam+1,truncSuffixLen被设置为15,并且maxPreExtLen被设置为11。
此外,RRC和TSRC可以具有以下差异。
-例如,可以如上所述基于locSumAbs、查找表和/或baseLevel(表13和表14)来推导RRC中的语法元素abs_remainder[]和dec_abs_level[]的莱斯参数cRiceParam,但TSRC中的语法元素abs_remainder[]的莱斯参数cRiceParam可以被推导为1。即,例如,当对当前块(例如,当前TB)应用变换跳过时,针对当前块的TSRC的abs_remainder[]的莱斯参数cRiceParam可以被推导为1。
-另外,例如,参照表3和表4,在RRC中,abs_level_gtx_flag[n][0]和/或abs_level_gtx_flag[n][1]可以被发信号通知,但在TSRC中,abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]和abs_level_gtx_flag[n][4]可以被发信号通知。这里,abs_level_gtx_flag[n][0]可以被表示为abs_level_gt1_flag或第一系数级别标志,abs_level_gtx_flag[n][1]可以被表示为abs_level_gt3_flag或第二系数级别标志,abs_level_gtx_flag[n][2]可以被表示为abs_level_gt5_flag或第三系数级别标志,abs_level_gtx_flag[n][3]可以被表示为abs_level_gt7_flag或第四系数级别标志,并且abs_level_gtx_flag[n][4]可以被表示为abs_level_gt9_flag或第五系数级别标志。具体地,第一系数级别标志可以是用于系数级别是否大于第一阈值(例如,1)的标志,第二系数级别标志可以是用于系数级别是否大于第二阈值(例如,3)的标志,第三系数级别标志可以是用于系数级别是否大于第三阈值(例如,5)的标志,第四系数级别标志可以是用于系数级别是否大于第四阈值(例如,7)的标志,第五系数级别标志可以是用于系数级别是否大于第五阈值(例如,9)的标志。如上所述,在TSRC中,与RRC相比,还可以包括abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]和abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]、abs_level_gtx_flag[n][4]。
-另外,例如,在RRC中,语法元素coeff_sign_flag可以被旁路编码,但在TSRC中,语法元素coeff_sign_flag可以被旁路编码或上下文编码。
另外,对于残差样本量化处理,可以提出依赖量化。依赖量化可以表示取决于变换系数的值(变换系数级别的值)的方法,在该方法中,当前变换系数允许的重构值集合按重构顺序在当前变换系数之前。即,例如,可以通过(a)定义具有不同重构级别的两个标量量化器以及(b)定义用于标量量化器之间的转变的处理来实现依赖量化。与现有的独立标量量化相比,依赖量化可以具有所允许的重构向量在N维向量空间中更集中的效果。这里,N可以表示变换块的变换系数的数目。
图9示例性例示了在依赖量化中使用的标量量化器。参照图9,启用的重构级别的位置可以由量化步长△来指定。参照图9,标量量化器可以被表示为Q0和Q1。可以在不从比特流明确发信号通知的情况下推导正使用的标量量化器。例如,正用于当前变换系数的量化器可以通过按编码/重构顺序在当前变换系数之前的变换系数级别的奇偶性来确定。
图10示例性例示了针对依赖量化的状态转变和量化器选择。
参照图10,两个标量量化器Q0与Q1之间的转变可以通过具有四种状态的状态机来实现。这四种状态可以具有四个不同的值(0、1、2和3)。按编码/重构顺序,当前变换系数的状态可以由当前变换系数之前的变换系数级别的奇偶性来确定。
例如,在针对变换块的反量化处理开始的情况下,依赖量化的状态可以被配置为0。此后,可以按扫描顺序(即,与熵解码的顺序相同的顺序)重构变换块的变换系数。例如,在重构当前变换系数之后,如图10中例示的,可以更新依赖量化的状态。按扫描顺序,可以基于更新后的状态来执行对在重构当前变换系数之后重构的变换系数的反量化处理。在图10中,k可以表示变换系数的值,即,变换系数级别值的值。例如,如果在当前状态为0的状态下k(当前变换系数的值)&1为0,则状态可以被更新为0,而如果k&1为1,则状态可以被更新为2。另外,例如,如果在当前状态为1的状态下k&1为0,则状态可以被更新为2,而如果k&1为1,则状态可以被更新为0。另外,例如,如果在当前状态为2的状态下k&1为0,则状态可以被更新为1,而如果k&1为1,则状态可以被更新为3。另外,例如,如果在当前状态为3的状态下k&1为0,则状态可以被更新为3,而如果k&1为1,则状态可以被更新为1。参照图10,如果状态为0或1,则正在反量化处理中使用的标量量化器可以为Q0,并且如果状态为2或3,则正在反量化处理中使用的标量量化器可以为Q1。可以基于变换系数的重构级别的量化参数由针对当前状态的标量量化器对变换系数进行反量化。
此外,本公开提出了与残差数据编码相关的实施方式。在本公开中正说明的实施方式可以被彼此组合。在如上所述的残差数据编码方法中,可以存在常规残差编码(RRC)和变换跳过残差编码(TSRC)。
在如上所述的两种方法之中,可以基于如表1中例示的transform_skip_flag和sh_ts_residual_coding_disabled_flag的值来确定当前块的残差数据编码方法。这里,语法元素sh_ts_residual_coding_disabled_flag可以表示是否启用了TSRC。因此,如果slice_ts_residual_coding_disabled_flag表示即使在transform_skip_flag表示变换跳过的情况下也不启用TSRC,则可以对变换跳过块发信号通知根据RRC的语法元素。即,如果transform_skip_flag的值为0,或者如果slice_ts_residual_coding_disabled_flag的值为1,则可以使用RRC,否则,可以使用TSRC。
尽管在特定应用(例如,无损编码等)中通过使用slice_ts_residual_coding_disabled_flag可以获得高编码效率,但在现有的视频/图像编码标准中,尚未提出对依赖量化和slice_ts_residual_coding_disabled_flag一起使用的情况的限制。即,可以在高级别(例如,序列参数集(SPS)语法/视频参数集(VPS)语法/解码参数集(DPS)语法/图片头语法/切片头语法)或低级别(CU/TU)激活依赖量化,并且如果slice_ts_residual_coding_disabled_flag为1,则取决于RRC中的依赖量化的状态的值可以执行不必要的操作(即,根据依赖量化的操作)从而使编码性能劣化,或者由于编码设备中的错误配置而可能发生编码性能的意外损失。因此,本实施方式提出了用于在slice_ts_residual_coding_disabled_flag=1的情况下配置被一起使用以防止意外编码损失或故障发生的依赖量化和残差编码(即,通过RRC的当前切片中的变换跳过块的残差样本的编码)这两种技术之间的相关性/限制的方案。
作为实施方式,本公开提出了slice_ts_residual_coding_disabled_flag取决于ph_dep_quant_enabled_flag的方法。例如,本实施方式中提出的语法元素可以在下表中。
[表16]
Figure BDA0003890679970000521
根据本实施方式,在ph_dep_quant_enabled_flag的值为0的情况下,可以发信号通知slice_ts_residual_coding_disabled_flag。这里,ph_dep_quant_enabled_flag可以表示是否启用依赖量化。例如,如果ph_dep_quant_enabled_flag的值为1,则这可以表示启用依赖量化,而如果ph_dep_quant_enabled_flag的值为0,则这可以表示未启用依赖量化。
相应地,根据本实施方式,可以仅在未启用依赖量化的情况下发信号通知slice_ts_residual_coding_disabled_flag,并且在启用依赖量化并因此不发信号通知slice_ts_residual_coding_disabled_flag的情况下,可以将slice_ts_residual_coding_disabled_flag推断为0。此外,ph_dep_quant_enabled_flag和slice_ts_residual_coding_disabled_flag可以被发信号通知给图片头语法和/或切片头语法,或者可以被发信号通知给不是图片头语法和切片头语法或处于低级别(CU/TU)的另一高级语法(HLS)(例如,SPS语法/VPS语法/DPS语法)。如果ph_dep_quant_enabled_flag被发信号通知给不包括图片头语法的语法,则其可以被称为另一名称。例如,ph_dep_quant_enabled_flag可以被表示为sh_dep_quant_enabled_flag、sh_dep_quant_used_flag或sps_dep_quant_enabled_flag。
另外,本公开提出了用于在slice_ts_residual_coding_disabled_flag=1的情况下配置依赖量化和残差编码(即,通过RRC的当前切片中的变换跳过块的残差样本的编码)之间的相关性/限制的另一实施方式。例如,本实施方式提出了以下方案:在slice_ts_residual_coding_disabled_flag的值为1的情况下,使依赖量化的状态不用于对变换系数的级别值进行编码,以便防止因在slice_ts_residual_coding_disabled_flag=1的情况下一起使用依赖量化和残差编码(即,通过RRC的当前切片中的变换跳过块的残差样本的编码)而发生意外的编码损失或故障。根据本实施方式的残差编码语法可以如在下表中。
[表17]
Figure BDA0003890679970000541
Figure BDA0003890679970000551
Figure BDA0003890679970000561
Figure BDA0003890679970000571
Figure BDA0003890679970000581
参照如上所述的表17,在ph_dep_quant_enabled_flag的值为1并且slice_ts_residual_coding_disabled_flag的值为0的情况下,可以推导Qstate,并且可以基于Qstate来推导变换系数(变换系数级别)的值。例如,参照表17,变换系数级别TransCoeffLevel[x0][y0][cIdx][xC][yC]可以被推导为(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])。这里,AbsLevel[xC][yC]可以是基于变换系数的语法元素推导的变换系数的绝对值,coeff_sign_flag[n]可以是表示变换系数的符号的符号标志的语法元素,并且(QState>1?1:0)在状态QState的值大于1的情况下(即,状态Qstate的值为2或3的情况下)可以表示1,并且在状态Qstate的值等于或小于1的情况下(即,状态Qstate的值为0或1的情况下)可以表示0。
另外,参照如上所述的表17,如果slice_ts_residual_coding_disabled_flag的值为1,则可以在不使用Qstate的情况下推导变换系数(变换系数级别)的值。例如,参照表17,变换系数级别TransCoeffLevel[x0][y0][cIdx][xC][yC]可以被推导为AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])。这里,AbsLevel[xC][yC]可以是基于变换系数的语法元素推导的变换系数的绝对值,并且coeff_sign_flag[n]可以是表示变换系数的符号的符号标志的语法元素。
另外,根据本实施方式,如果slice_ts_residual_coding_disabled_flag的值为1,则依赖量化的状态可以不用于对变换系数的级别值进行编码,并且也可以不执行状态更新。例如,根据本实施方式的残差编码语法可以如在下表中。
[表18]
Figure BDA0003890679970000591
Figure BDA0003890679970000601
Figure BDA0003890679970000611
Figure BDA0003890679970000621
Figure BDA0003890679970000631
参照如上所述的表18,如果ph_dep_quant_enabled_flag的值为1,并且slice_ts_residual_coding_disabled_flag的值为0,则Qstate可以被更新。例如,如果ph_dep_quant_enabled_flag的值为1,并且slice_ts_residual_coding_disabled_flag的值为0,则QState可以被更新为QStateTransTable[QState][AbsLevelPass1[xC][yC]&1]或QStateTransTable[QState][AbsLevel[xC][yC]&1]。另外,如果slice_ts_residual_coding_disabled_flag的值为1,则可以不执行更新Qstate的处理。
另外,参照如上所述的表18,如果ph_dep_quant_enabled_flag的值为1并且slice_ts_residual_coding_disabled_flag的值为0,则可以基于Qstate来推导变换系数(变换系数级别)的值。例如,参照表18,变换系数级别TransCoeffLevel[x0][y0][cIdx][xC][yC]可以被推导为(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])。这里,AbsLevel[xC][yC]可以是基于变换系数的语法元素推导的变换系数的绝对值,coeff_sign_flag[n]可以是表示变换系数的符号的符号标志的语法元素,并且(QState>1?1:0)在状态QState的值大于1的情况下(即,状态Qstate的值为2或3的情况下)可以表示1,并且在状态Qstate的值等于或小于1的情况下(即,状态Qstate的值为0或1的情况下)可以表示0。
另外,参照如上所述的表18,如果slice_ts_residual_coding_disabled_flag的值为1,则可以在不使用Qstate的情况下推导变换系数(变换系数级别)的值。例如,参照表18,变换系数级别TransCoeffLevel[x0][y0][cIdx][xC][yC]可以被推导为AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])。这里,AbsLevel[xC][yC]可以是基于变换系数的语法元素推导的变换系数的绝对值,并且coeff_sign_flag[n]可以是表示变换系数的符号的符号标志的语法元素。
另外,本公开提出了用于在slice_ts_residual_coding_disabled_flag=1的情况下,配置依赖量化和残差编码(即,通过RRC的当前切片中的变换跳过块的残差样本的编码)之间的相关性/限制的另一实施方式。例如,本实施方式提出了用于根据RRC中的依赖量化的状态或状态更新,在推导变换系数(变换系数级别)的值的处理中使用transform_skip_flag来添加限制的方案。即,本实施方式提出了以下的方案:基于transform_skip_flag,根据RRC中的依赖量化的状态和/或状态更新来使推导变换系数(变换系数级别)的值的处理不被使用。根据本实施方式的残差编码语法可以如在下表中。
[表19]
Figure BDA0003890679970000651
Figure BDA0003890679970000661
Figure BDA0003890679970000671
Figure BDA0003890679970000681
Figure BDA0003890679970000691
参照如上所述的表19,如果ph_dep_quant_enabled_flag的值为1,并且transform_skip_flag的值为0,则Qstate可以被更新。例如,如果ph_dep_quant_enabled_flag的值为1,并且transform_skip_flag的值为0,则QState可以被更新为QStateTransTable[QState][AbsLevelPass1[xC][yC]&1]或QStateTransTable[QState][AbsLevel[xC][yC]&1]。另外,如果transform_skip_flag的值为1,则可以不执行更新Qstate的处理。
另外,参照如上所述的表19,如果ph_dep_quant_enabled_flag的值为1并且transform_skip_flag的值为0,则可以推导Qstate,并且可以基于Qstate来推导变换系数(变换系数级别)的值。例如,参照表19,变换系数级别TransCoeffLevel[x0][y0][cIdx][xC][yC]可以被推导为(2*AbsLevel[xC][yC]-(QState>1?1:0))*(1-2*coeff_sign_flag[n])。这里,AbsLevel[xC][yC]可以是基于变换系数的语法元素推导的变换系数的绝对值,coeff_sign_flag[n]可以是表示变换系数的符号的符号标志的语法元素,并且(QState>1?1:0)在状态QState的值大于1的情况下(即,状态Qstate的值为2或3的情况下)可以表示1,并且在状态Qstate的值等于或小于1的情况下(即,状态Qstate的值为0或1的情况下)可以表示0。
另外,参照如上所述的表19,如果transform_skip_flag的值为1,则可以在不使用Qstate的情况下推导变换系数(变换系数级别)的值。相应地,在对变换跳过块进行根据RRC的残差数据的编码的情况下,可以在不使用Qstate的情况下推导变换系数的值。例如,参照表19,变换系数级别TransCoeffLevel[x0][y0][cIdx][xC][yC]可以被推导为AbsLevel[xC][yC]*(1-2*coeff_sign_flag[n])。这里,AbsLevel[xC][yC]可以是基于变换系数的语法元素推导的变换系数的绝对值,并且coeff_sign_flag[n]可以是表示变换系数的符号的符号标志的语法元素。
另外,本公开提出了与上述语法元素sh_ts_residual_coding_disabled_flag的信令相关的各种实施方式。
例如,如上所述,sh_ts_residual_coding_disabled_flag是定义是否不启用TSRC的语法元素,并且在不使用变换跳过块的情况下,可能不必发信号通知它。即,仅在用于是否使用变换跳过块的语法元素表示使用变换跳过块的情况下,执行sh_ts_residual_coding_disabled_flag的信令才可能是重要的。
相应地,本公开提出了仅在sps_transform_skip_enabled_flag为1的情况下才发信号通知sh_ts_residual_coding_disabled_flag的实施方式。根据本实施方式的语法如在下表中。
[表20]
Figure BDA0003890679970000701
参照表20,如果sps_transform_skip_enabled_flag为1,则可以发信号通知sh_ts_residual_coding_disabled_flag,而如果sps_transform_skip_enabled_flag为0,则可以不发信号通知sh_ts_residual_coding_disabled_flag。这里,例如,sps_transform_skip_enabled_flag可以表示是否使用变换跳过块。即,例如,sps_transform_skip_enabled_flag可以表示是否启用变换跳过。例如,如果sps_transform_skip_enabled_flag的值为1,则sps_transform_skip_enabled_flag可以表示变换跳过标志(transform_skip_flag)可以存在于变换单元语法中,而如果sps_transform_skip_enabled_flag的值为0,则sps_transform_skip_enabled_flag可以表示变换跳过标志不存在于变换单元语法中。此外,如果不发信号通知sh_ts_residual_coding_disabled_flag,则可以推断sh_ts_residual_coding_disabled_flag为0。另外,上述sps_transform_skip_enabled_flag可以在SPS中发信号通知,或者可以在不是SPS的其它高层语法(VPS、PPS、图片头语法和切片头语法)或低层语法(切片数据语法、编码单元语法和变换单元语法)中发信号通知。另外,它可以在slice_ts_residual_coding_disabled_flag之前被发信号通知。
另外,本公开提出了针对sh_ts_residual_coding_disabled_flag的信令组合上述实施方式的实施方式。例如,如在下表中,可以提出用于发信号通知sh_ts_residual_coding_disabled_flag的实施方式。
[表21]
Figure BDA0003890679970000711
参照表21,在sps_transform_skip_enabled_flag为1或ph_dep_quant_enabled_flag为0的情况下,可以发信号通知sh_ts_residual_coding_disabled_flag,否则可以不发信号通知sh_ts_residual_coding_disabled_flag。此外,在不发信号通知sh_ts_residual_coding_disabled_flag的情况下,sh_ts_residual_coding_disabled_flag可以被推断为0。
另外,例如,可以提出如下表中的用于发信号通知sh_ts_residual_coding_disabled_flag的实施方式。
[表22]
Figure BDA0003890679970000721
参照表22,可以将sh_ts_residual_coding_disabled_flag发信号通知给图片头。sh_ts_residual_coding_disabled_flag可以被表示为ph_ts_residual_coding_disabled_flag。另外,参照表22,ph_dep_quant_enabled_flag可以被发信号通知给图片头。
例如,参照表22,在ph_dep_quant_enabled_flag为0并且sps_transform_skip_enabled_flag为1的情况下,可以发信号通知ph_ts_residual_coding_disabled_flag,否则,可以不发信号通知ph_ts_residual_coding_disabled_flag。此外,在不发信号通知ph_ts_residual_coding_disabled_flag的情况下,ph_ts_residual_coding_disabled_flag可以被推断为0。
在本公开的实施方式中描述的关于语法元素的现有视频/图像编码标准中,ph_dep_quant_enabled_flag可以在图片头语法中被发信号通知,并且sh_ts_residual_coding_disabled_flag可以在切片头语法中被发信号通知。关于这一点,本公开提出了用于以相同的高层语法或低层语法发信号通知两个语法元素的实施方式。
例如,可以提出其中ph_dep_quant_enabled_flag和sh_ts_residual_coding_disabled_flag二者在图片头语法中被发信号通知的实施方式。在这种情况下,sh_ts_residual_coding_disabled_flag可以被称为ph_ts_residual_coding_disabled_flag。
另外,例如,可以提出其中ph_dep_quant_enabled_flag和sh_ts_residual_coding_disabled_flag二者都在切片头语法中被发信号通知的实施方式。在这种情况下,ph_dep_quant_enabled_flag可以被称为sh_dep_quant_enabled_flag、sh_dep_quant_used_flag或slice_dep_quant_enabled_flag。
另外,例如,可以提出以下实施方式:ph_dep_quant_enabled_flag和ph_ts_residual_coding_disabled_flag二者都在同一HLS中被发信号通知,但只有在ph_dep_quant_enabled_flag的值为0的情况下才发信号通知ph_ts_residual_coding_disabled_flag。例如,ph_dep_quant_enabled_flag和ph_ts_residual_coding_disabled_flag二者都在图片头语法中发信号通知的示例可以如下表中一样。
[表23]
Figure BDA0003890679970000731
参照表23,ph_dep_quant_enabled_flag可以在图片头语法中发信号通知,并且如果ph_dep_quant_enabled_flag的值为0,则ph_ts_residual_coding_disabled_flag可以在图片头语法中发信号通知,而如果ph_dep_quant_enabled_flag的值为1,则ph_ts_residual_coding_disabled_flag可以不被发信号通知。例如,如果不发信号通知ph_ts_residual_coding_disabled_flag,则ph_ts_residual_coding_disabled_flag可以被推断为0。
此外,上述实施方式是示例,并可以提出以下示例:ph_dep_quant_enabled_flag和ph_ts_residual_coding_disabled_flag在其它高层语法(VPS、SPS、PPS和切片头语法)或低层语法(切片数据语法、编码单元语法和变换单元语法)而非图片头语法中发信号通知。
另外,例如,可以提出以下实施方式:ph_ts_residual_coding_disabled_flag和ph_dep_quant_enabled_flag二者都在同一HLS中发信号通知,但只有在ph_ts_residual_coding_disabled_flag的值为0的情况下,才发信号通知ph_dep_quant_enabled_flag。
[表24]
Figure BDA0003890679970000732
参照表24,ph_ts_residual_coding_disabled_flag可以在图片头语法中发信号通知,并且如果ph_ts_residual_coding_disabled_flag的值为0,则ph_dep_quant_enabled_flag可以在图片头语法中发信号通知,而如果ph_ts_residual_coding_disabled_flag的值为1,则ph_dep_quant_enabled_flag可以不被发信号通知。例如,如果不发信号通知ph_dep_quant_enabled_flag,则ph_dep_quant_enabled_flag可以被推断为0。
此外,上述实施方式是示例,并可以提出以下示例:ph_ts_residual_coding_disabled_flag和ph_dep_quant_enabled_flag在其它高层语法(VPS、SPS、PPS和切片头语法)或低层语法(切片数据语法、编码单元语法和变换单元语法)而非图片头语法中发信号通知。
另外,例如,可以提出将上述实施方式彼此组合的实施方式。例如,可以提出以下实施方式:ph_dep_quant_enabled_flag和ph_ts_residual_coding_disabled_flag二者都在同一HLS中被发信号通知,但只有在ph_dep_quant_enabled_flag的值为0或者sps_transform_skip_enabled_flag的值为1的情况下才发信号通知ph_ts_residual_coding_disabled_flag。
[表25]
Figure BDA0003890679970000741
参照表25,ph_dep_quant_enabled_flag可以在图片头语法中发信号通知,并且在ph_dep_quant_enabled_flag的值为0或者sps_transform_skip_enabled_flag的值为1的情况下,ph_ts_residual_coding_disabled_flag可以在图片头语法中发信号通知,否则,ph_ts_residual_coding_disabled_flag可以不被发信号通知。这里,例如,sps_transform_skip_enabled_flag可以表示是否使用变换跳过块。即,例如,sps_transform_skip_enabled_flag可以表示是否启用变换跳过。例如,如果sps_transform_skip_enabled_flag的值为1,则sps_transform_skip_enabled_flag可以表示变换跳过标志(transform_skip_flag)可以存在于变换单元语法中,而如果sps_transform_skip_enabled_flag的值为0,则sps_transform_skip_enabled_flag可以表示变换跳过标志不存在于变换单元语法中。例如,如果不发信号通知ph_ts_residual_coding_disabled_flag,则ph_ts_residual_coding_disabled_flag可以被推断为0。
另外,例如,可以提出以下实施方式:ph_dep_quant_enabled_flag和ph_ts_residual_coding_disabled_flag二者都在同一HLS(例如,切片头语法等)中被发信号通知,但只有在ph_dep_quant_enabled_flag的值为0并且sps_transform_skip_enabled_flag的值为1的情况下才发信号通知ph_ts_residual_coding_disabled_flag。
[表26]
Figure BDA0003890679970000751
参照表26,ph_dep_quant_enabled_flag可以在图片头语法中发信号通知,并且在ph_dep_quant_enabled_flag的值为0并且sps_transform_skip_enabled_flag的值为1的情况下,ph_ts_residual_coding_disabled_flag可以在图片头语法中发信号通知,否则,ph_ts_residual_coding_disabled_flag可以不被发信号通知。例如,如果不发信号通知ph_ts_residual_coding_disabled_flag,则ph_ts_residual_coding_disabled_flag可以被推断为0。
另外,例如,可以提出以下实施方式:ph_dep_quant_enabled_flag和ph_ts_residual_coding_disabled_flag二者都在同一HLS中被发信号通知,但只有在sps_transform_skip_enabled_flag的值为1的情况下,才发信号通知ph_ts_residual_coding_disabled_flag,并且只有在ph_ts_residual_coding_disabled_flag为0的情况下,才发信号通知ph_dep_quant_enabled_flag。
[表27]
Figure BDA0003890679970000752
参照表27,如果sps_transform_skip_enabled_flag的值为1,则ph_ts_residual_coding_disabled_flag可以在图片头语法中发信号通知,而如果ph_ts_residual_coding_disabled_flag的值为0,则ph_dep_quant_enabled_flag可以在图片头语法中发信号通知。例如,如果sps_transform_skip_enabled_flag的值为0,则ph_ts_residual_coding_disabled_flag可以不被发信号通知。例如,如果不发信号通知ph_ts_residual_coding_disabled_flag,则ph_ts_residual_coding_disabled_flag可以被推断为0。另外,例如,如果ph_ts_residual_coding_disabled_flag的值为1,则ph_dep_quant_enabled_flag可以不被发信号通知。例如,如果不发信号通知ph_dep_quant_enabled_flag,则ph_dep_quant_enabled_flag可以被推断为0。
此外,如上所述,本公开中公开的语法表中的信息(语法元素)可以被包括在图像/视频信息中,由编码设备配置/编码,并以比特流的形式传送到解码设备。解码设备可以解析/解码对应语法表中的信息(语法元素)。解码设备可以基于解码后的信息来执行块/图像/视频重构过程。
图11简要例示了根据本公开的编码设备执行的图像编码方法。图11中公开的方法可以由图2中公开的编码设备执行。具体地,例如,图11中的S1100可以由编码设备的残差处理器执行,并且图11中的S1110至S1120可以由编码设备的熵编码器执行。另外,尽管未例示,但推导预测样本的处理可以由编码设备的预测器执行,基于当前块的残差样本和预测样本生成当前块的重构样本和重构图片的处理可以由编码设备的加法器执行。
编码设备推导当前块的残差样本(S1100)。例如,编码设备可以确定是对当前块执行帧间预测还是帧内预测,并可以基于RD成本来确定特定帧间预测模式或特定帧内预测模式。编码设备可以按照所确定的模式来推导当前块的预测样本,并可以通过从当前块的原始样本减去预测样本来推导当前块的残差样本。
编码设备对残差样本的残差信息进行编码(S1110)。编码设备可以对残差样本的残差信息进行编码。
例如,编码设备可以对用于是否启用变换跳过的变换跳过启用标志进行编码。图像信息可以包括变换跳过启用标志。例如,编码设备可以确定是否对序列中的图片的块启用变换跳过,并可以对用于是否启用变换跳过对变换跳过启用标志进行编码。例如,变换跳过启用标志可以是用于是否启用变换跳过的标志。例如,变换跳过启用标志可以表示是否启用变换跳过。即,例如,变换跳过启用标志可以表示是否对序列中的图片的块启用变换跳过。例如,变换跳过启用标志可以表示是否可以存在变换跳过标志。例如,具有值1的变换跳过启用标志可以表示启用变换跳过,并且具有值0的变换跳过启用标志可以表示不启用变换跳过。即,例如,具有值1的变换跳过启用标志可以表示可以存在变换跳过标志,并且具有值0的变换跳过启用标志可以表示不存在变换跳过标志。另外,例如,变换跳过启用标志可以被发信号通知给序列参数集(SPS)语法。变换跳过启用标志的语法元素可以是上述的sps_transform_skip_enabled_flag。
另外,例如,编码设备可以基于变换跳过启用标志对用于是否启用变换跳过残差编码(TSRC)的TSRC启用标志进行编码。图像信息可以包括TSRC启用标志。
例如,编码设备可以基于变换跳过启用标志对TSRC启用标志进行编码。例如,可以基于具有值1的变换跳过启用标志对TSRC启用标志进行编码。即,例如,如果变换跳过启用标志的值为1(即,如果变换跳过启用标志表示启用变换跳过),则可以对TSRC启用标志进行编码。换句话说,例如,如果变换跳过启用标志的值为1(即,如果变换跳过启用标志表示启用变换跳过),则可以发信号通知TSRC启用标志。另外,例如,如果变换跳过启用标志的值为0,则可以不对TSRC启用标志进行编码。即,例如,如果变换跳过启用标志的值为0,则TSRC启用标志可以不被发信号通知,并且TSRC启用标志的值可以在解码设备中被推导为0。
这里,例如,TSRC启用标志可以是用于是否启用TSRC的标志。即,例如,TSRC启用标志可以是表示是否对切片中的块启用TSRC的标志。例如,具有值1的TSRC启用标志可以表示不启用TSRC,并且具有值0的TSRC启用标志可以表示启用TSRC。另外,例如,TSRC启用标志可以被发信号通知给切片头语法。变换跳过启用标志的语法元素可以是如上所述的sh_ts_residual_coding_disabled_flag。
此外,例如,编码设备可以确定是否针对当前块启用依赖量化,并可以对用于是否启用依赖量化的依赖量化启用标志进行编码。例如,图像信息可以包括依赖量化启用标志。例如,依赖量化启用标志可以是用于是否启用依赖量化的标志,并且可以基于变换跳过启用标志和依赖量化启用标志对TSRC启用标志进行编码。例如,TSRC启用标志可以基于具有值0的依赖量化启用标志和具有值1的变换跳过启用标志来编码。即,例如,在依赖量化启用标志的值为0(即,依赖量化启用标志表示没有启用依赖量化)并且变换跳过启用标志的值为1(即,变换跳过启用标志表示启用变换跳过)的情况下,TSRC启用标志可以被编码(或发信号通知)。另外,例如,如果依赖量化启用标志的值为1,则TSRC启用标志可以不被编码。即,例如,如果依赖量化启用标志的值为1,则TSRC启用标志可以不被发信号通知,并且TSRC启用标志的值可以在解码设备中被推导为0。
这里,例如,依赖量化启用标志可以是用于是否启用依赖量化的标志。即,例如,依赖量化启用标志可以表示是否启用依赖量化。例如,具有值1的依赖量化启用标志可以表示启用依赖量化,并且具有值0的依赖量化启用标志可以表示不启用依赖量化。另外,例如,依赖量化启用标志可以被发信号通知给SPS语法或切片头语法。依赖量化启用标志的语法元素可以是如上所述的sps_dep_quant_enabled_flag。sps_dep_quant_enabled_flag可以被称为sh_dep_quant_enabled_flag、sh_dep_quant_used_flag或ph_dep_quant_enabled_flag。
另外,例如,编码设备可以基于TSRC启用标志来确定当前块的残差编码语法。例如,编码设备可以基于TSRC启用标志来将当前块的残差编码语法确定为常规残差编码(RRC)语法和变换跳过残差编码(TSRC)语法中的一个。RRC语法可以表示根据RRC的语法,并且TSRC语法可以表示根据TSRC的语法。
例如,基于具有值1的TSRC启用标志,当前块的残差编码语法可以被确定为常规残差编码(RRC)语法。在这种情况下,例如,基于具有值1的变换跳过启用标志,可以对用于当前块是否为变换跳过块的变换跳过标志进行编码,并且变换跳过标志的值可以为1。例如,图像信息可以包括当前块的变换跳过标志。变换跳过标志可以表示当前块是否是变换跳过块。即,变换跳过标志可以表示是否已对当前块的变换系数应用变换。表示变换跳过标志的语法元素可以是如上所述的transform_skip_flag。例如,如果变换跳过标志的值为1,则变换跳过标志可以表示尚未对当前块应用变换(即,跳过变换),而如果变换跳过标志的值为0,则变换跳过标志可以表示已对当前块应用变换。例如,如果当前块是变换跳过块,则当前块的变换跳过标志的值可以为1。
另外,例如,基于具有值0的TSRC启用标志,当前块的残差编码语法可以被确定为变换跳过残差编码(TSRC)语法。另外,例如,可以对用于当前块是否是变换跳过块的变换跳过标志进行编码,并且基于具有值1的变换跳过标志和具有值0的TSRC启用标志,当前块的残差编码语法可以被确定为变换跳过残差编码(TSRC)语法。另外,例如,可以对用于当前块是否是变换跳过块的变换跳过标志进行编码,并且基于具有值0的变换跳过标志和具有值0的TSRC启用标志,当前块的残差编码语法可以被确定为常规残差编码(RRC)语法。
此后,例如,编码设备可以对针对当前块确定的残差编码语法的残差信息进行编码。编码设备可以对针对当前块的残差样本确定的残差编码语法的残差信息进行编码。图像信息可以包括残差信息。
例如,编码设备可以基于残差样本来推导当前块的变换系数。例如,编码设备可以确定是否对当前块应用变换。即,编码设备可以确定是否对当前块的残差样本应用变换。编码设备可以考虑编码效率来确定是否对当前块应用变换。例如,编码设备可以确定不对当前块应用变换。没有应用变换的块可以被表示为变换跳过块。即,例如,当前块可以是变换跳过块。
如果没有对当前块应用变换,即,如果没有对残差样本应用变换,则编码设备可以将推导出的残差样本推导为当前变换系数。另外,如果对当前块应用变换,即,如果对残差样本应用变换,则编码设备可以通过对残差样本执行变换来推导变换系数。当前块可以包括多个子块或系数组(CG)。另外,当前块的子块的大小可以为4×4大小或2×2大小。即,当前块的子块可以最多包括16个非零变换系数或4个非零变换系数。这里,当前块可以是编码块(CB)或变换块(TB)。另外,变换系数可以被表示为残差系数。
此外,编码设备可以确定是否对当前块应用依赖量化。例如,如果对当前块应用依赖量化,则编码设备可以通过对变换系数执行依赖量化处理来推导当前块的变换系数。例如,如果对当前块应用依赖量化,则编码设备可以基于按扫描顺序恰好在当前变换系数之前的变换系数的系数级别来更新依赖量化的状态(Qstate),可以基于更新后的状态和当前变换系数的语法元素来推导当前变换系数的系数级别,并可以通过量化推导出的系数级别来推导当前变换系数。例如,可以基于针对更新后的状态的标量量化器中的当前变换系数的重构级别的量化参数来量化当前变换系数。
例如,如果当前块的残差编码语法被确定为RRC语法,则编码设备可以对当前块的RRC语法的残差信息进行编码。例如,RRC语法的残差信息可以包括如上所述的表2中公开的语法元素。
例如,RRC语法的残差信息可以包括当前块的变换系数的语法元素。这里,变换系数可以被表示为残差系数。
例如,语法元素可以包括诸如last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、par_level_flag、abs_level_gtX_flag(例如,abs_level_gtx_flag[n][0]和/或abs_level_gtx_flag[n][1])、abs_remainder、dec_abs_level和/或coeff_sign_flag这样的语法元素。
具体地,例如,语法元素可以包括表示当前块的残差系数阵列中的最后一个非零变换系数的位置的位置信息。即,语法元素可以包括表示按当前块的扫描顺序的最后一个非零变换系数的位置的位置信息。位置信息可以包括表示最后一个非零变换系数的列位置的前缀的信息、表示最后一个非零变换系数的行位置的前缀的信息、表示最后一个非零变换系数的列位置的后缀的信息以及表示最后一个非零变换系数的行位置的后缀的信息。位置信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。此外,非零变换系数可以被称为有效系数。
另外,例如,语法元素可以包括表示当前块的当前子块是否包括非零变换系数的编码子块标志、表示当前块的变换系数是否是非零变换系数的有效系数标志、用于变换系数的系数级别是否大于第一阈值的第一系数级别标志、用于系数级别的奇偶性的奇偶级别标志和/或用于变换系数的系数级别是否大于第二阈值的第二系数级别标志。这里,编码子块标志可以是sb_coded_flag或coded_sub_block_flag,有效系数标志可以是sig_coeff_flag,第一系数级别标志可以是abs_level_gt1_flag或abs_level_gtx_flag,奇偶级别标志可以是par_level_flag,并且第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
另外,例如,语法元素可以包括当前块的变换系数值的系数值相关信息。系数值相关信息可以是abs_remainder和/或dec_abs_level。
另外,例如,语法元素可以包括表示变换系数的符号的符号标志。符号标志可以是coeff_sign_flag。
例如,如果当前块的残差编码语法被确定为TSRC语法,则编码设备可以对当前块的TSRC语法的残差信息进行编码。例如,TSRC语法的残差信息可以包括如上所述的表3中公开的语法元素。
例如,TSRC语法的残差信息可以包括当前块的变换系数的语法元素。这里,变换系数也可以被表示为残差系数。
例如,语法元素可以包括用于变换系数的上下文编码语法元素和/或旁路编码语法元素。语法元素可以包括诸如sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtX_flag(例如,abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]和/或abs_level_gtx_flag[n][4])、abs_remainder和/或coeff_sign_flag这样的语法元素。
例如,变换系数的上下文编码语法元素可以包括表示变换系数是否是非零变换系数的有效系数标志、表示变换系数的符号的符号标志、用于变换系数的系数级别是否大于第一阈值的第一系数级别标志和/或用于变换系数的变换级别的奇偶性的奇偶级别标志。另外,例如,上下文编码语法元素可以包括用于变换系数的系数级别是否大于第二阈值的第二系数级别标志、用于变换系数的系数级别是否大于第三阈值的第三系数级别标志、用于变换系数的系数级别是否大于第四阈值的第四系数级别标志和/或用于变换系数的系数级别是否大于第五阈值的第五系数级别标志。这里,有效系数标志可以是sig_coeff_flag,符号标志可以是ceff_sign_flag,第一系数级别标志可以是abs_level_gt1_flag,并且奇偶级别标志可以是par_level_flag。另外,第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag,第三系数级别标志可以是abs_level_gt5_flag或abs_level_gtx_flag,第四系数级别标志可以是abs_level_gt7_flag或abs_level_gtx_flag,并且第五系数级别标志可以是abs_level_gt9_flag或abs_level_gtx_flag。
另外,例如,变换系数的旁路编码语法元素可以包括变换系数(或系数级别)的值的系数级别信息和/或表示变换系数的符号的符号标志。系数级别信息可以是abs_remainder和/或dec_abs_level,并且符号标志可以是ceff_sign_flag。
编码设备生成包括残差信息的比特流(S1120)。编码设备可以生成包括残差信息的比特流。例如,编码设备可以将包括变换跳过启用标志、TSRC启用标志和残差信息的图像信息作为比特流输出。
此外,图像信息可以包括当前块的预测相关信息。预测相关信息可以包括关于对当前块执行的帧间预测模式或帧内预测模式的预测模式信息。
此外,可以通过网络或(数字)存储介质将比特流发送到解码设备。这里,网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD这样的各种存储介质。
图12简要例示了根据本公开的执行图像编码方法的编码设备。图11中公开的方法可以由图12中公开的编码设备执行。具体地,例如,图12的编码设备的残差处理器可以执行图11中的S1100,并且图12的编码设备的熵编码器可以执行图11中的S1110至S1120。另外,尽管未例示,但推导预测样本的处理可以由编码设备的预测器执行,并且基于当前块的残差样本和预测样本生成当前块的重构样本和重构图片的处理可以由编码设备的加法器执行。
图13简要例示了根据本公开的解码设备执行的图像解码方法。图13中公开的方法可以由图3中公开的解码设备执行。具体地,例如,图13中的S1300可以由解码设备的熵解码器执行,图13中的S1310可以由解码设备的残差处理器执行,并且图13中的S1320可以由解码设备的加法器执行。另外,尽管没有例示,但接收当前块的预测信息的处理可以由解码设备的熵解码器执行,并且推导当前块的预测样本的处理可以由解码设备的预测器执行。
解码设备获得当前块的残差信息(步骤S1300)。解码设备可以通过比特流获得包括当前块的残差信息的图像信息。
残差信息可以包括当前块的变换系数的语法元素。这里,当前块可以是编码块(CB)或变换块(TB)。另外,变换系数也可以被称为残差系数。
例如,解码设备可以获得用于是否启用变换跳过的变换跳过启用标志。解码设备可以通过比特流获得包括变换跳过启用标志的图像信息。图像信息可以包括变换跳过启用标志。例如,变换跳过启用标志可以是用于是否启用变换跳过的标志。例如,变换跳过启用标志可以表示是否启用变换跳过。即,例如,变换跳过启用标志可以表示是否针对序列中的图片的块启用变换跳过。例如,变换跳过启用标志可以表示是否可以存在变换跳过标志。例如,具有值1的变换跳过启用标志可以表示启用变换跳过,并且具有值0的变换跳过启用标志可以表示不启用变换跳过。即,例如,具有值1的变换跳过启用标志可以表示可以存在变换跳过标志,并且具有值0的变换跳过启用标志可以表示不存在变换跳过标志。另外,例如,变换跳过启用标志可以被发信号通知给序列参数集(SPS)语法。变换跳过启用标志的语法元素可以是上述的sps_transform_skip_enabled_flag。
另外,解码设备可以基于变换跳过启用标志来获得用于是否启用变换跳过残差编码(TSRC)的TSRC启用标志。图像信息可以包括TSRC启用标志。
例如,可以基于具有值1的变换跳过启用标志来获得TSRC启用标志。即,例如,如果变换跳过启用标志的值为1(即,如果变换跳过启用标志表示启用变换跳过),则可以获得TSRC启用标志。换句话说,例如,如果变换跳过启用标志的值为1(即,如果变换跳过启用标志表示启用变换跳过),则可以发信号通知TSRC启用标志。另外,例如,如果变换跳过启用标志的值为0,则可以不获得TSRC启用标志,并且TSRC启用标志的值可以被推导为0。即,例如,如果变换跳过启用标志的值为0,则可以不发信号通知TSRC启用标志,并且TSRC启用标志的值可以被推导为0。
这里,例如,TSRC启用标志可以是用于是否启用TSRC的标志。即,例如,TSRC启用标志可以是表示是否对切片中的块启用TSRC的标志。例如,具有值1的TSRC启用标志可以表示不启用TSRC,并且具有值0的TSRC启用标志可以表示启用TSRC。另外,例如,TSRC启用标志可以被发信号通知给切片头语法。变换跳过启用标志的语法元素可以是如上所述的sh_ts_residual_coding_disabled_flag。
此外,例如,解码设备可以获得用于是否启用依赖量化的依赖量化启用标志。例如,图像信息可以包括依赖量化启用标志。例如,依赖量化启用标志可以是用于是否启用依赖量化的标志,并且可以基于变换跳过启用标志和依赖量化启用标志来获得TSRC启用标志。例如,可以基于具有值0的依赖量化启用标志和具有值1的变换跳过启用标志来获得TSRC启用标志。即,例如,在依赖量化启用标志的值为0(即,依赖量化启用标志表示不启用依赖量化)并且变换跳过启用标志的值为1(即,变换跳过启用标志表示启用变换跳过)的情况下,可以获得(或发信号通知)TSRC启用标志。另外,例如,如果依赖量化启用标志的值为1,则可以不获得TSRC启用标志,并且TSRC启用标志的值可以被推导为0。即,例如,如果依赖量化启用标志的值为1,则可以不发信号通知TSRC启用标志,并且TSRC启用标志的值可以被推导为0。
这里,例如,依赖量化启用标志可以是用于是否启用依赖量化的标志。即,例如,依赖量化启用标志可以表示是否启用依赖量化。例如,具有值1的依赖量化启用标志可以表示启用依赖量化,并且具有值0的依赖量化启用标志可以表示不启用依赖量化。另外,例如,依赖量化启用标志可以被发信号通知给SPS语法或切片头语法。依赖量化启用标志的语法元素可以是如上所述的sps_dep_quant_enabled_flag。sps_dep_quant_enabled_flag可以被称为sh_dep_quant_enabled_flag、sh_dep_quant_used_flag或ph_dep_quant_enabled_flag。
另外,例如,解码设备可以获得基于TSRC启用标志推导的当前块的残差编码语法的残差信息。图像信息可以包括残差信息。例如,解码设备可以基于TSRC启用标志来推导当前块的残差编码语法。例如,解码设备可以基于TSRC启用标志来将当前块的残差编码语法推导为常规残差编码(RRC)语法和变换跳过残差编码(TSRC)语法中的一个。RRC语法可以表示根据RRC的语法,并且TSRC语法可以表示根据TSRC的语法。
例如,基于具有值1的TSRC启用标志,当前块的残差编码语法可以被推导为常规残差编码(RRC)语法。在这种情况下,残差信息可以是RRC语法的残差信息。即,解码设备可以获得当前块的RRC语法的残差信息。例如,在当前块是变换跳过块并且TSRC启用标志的值为1的情况下,残差信息可以是常规残差编码(RRC)语法的残差信息。在这种情况下,例如,可以获得用于当前块是否是变换跳过块的变换跳过标志,并且变换跳过标志的值可以为1。例如,图像信息可以包括当前块的变换跳过标志。变换跳过标志可以表示当前块是否是变换跳过块。即,变换跳过标志可以表示是否已对当前块的变换系数应用变换。表示变换跳过标志的语法元素可以是如上所述的transform_skip_flag。例如,如果变换跳过标志的值为1,则变换跳过标志可以表示尚未对当前块应用变换(即,跳过变换),而如果变换跳过标志的值为0,则变换跳过标志可以表示已对当前块应用变换。例如,如果当前块是变换跳过块,则当前块的变换跳过标志的值可以为1。此外,在变换跳过启用标志的值为1的情况下,可以获得变换跳过标志。
例如,RRC语法的残差信息可以包括上述表2中公开的语法元素。例如,RRC语法的残差信息可以包括当前块的变换系数的语法元素。这里,变换系数可以被表示为残差系数。
例如,语法元素可以包括诸如last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、sb_coded_flag、sig_coeff_flag、par_level_flag、abs_level_gtX_flag(例如,abs_level_gtx_flag[n][0]和/或abs_level_gtx_flag[n][1])、abs_remainder、dec_abs_level和/或coeff_sign_flag这样的语法元素。
具体地,例如,语法元素可以包括表示当前块的残差系数阵列中最后一个非零变换系数的位置的位置信息。即,语法元素可以包括表示按当前块的扫描顺序的最后一个非零变换系数的位置的位置信息。位置信息可以包括表示最后一个非零变换系数的列位置的前缀的信息、表示最后一个非零变换系数的行位置的前缀的信息、表示最后一个非零变换系数的列位置的后缀的信息以及表示最后一个非零变换系数的行位置的后缀的信息。位置信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。此外,非零变换系数可以被称为有效系数。
另外,例如,语法元素可以包括表示当前块的当前子块是否包括非零变换系数的编码子块标志、表示当前块的变换系数是否是非零变换系数的有效系数标志、用于变换系数的系数级别是否大于第一阈值的第一系数级别标志、用于系数级别的奇偶性的奇偶级别标志和/或用于变换系数的系数级别是否大于第二阈值的第二系数级别标志。这里,编码子块标志可以是sb_coded_flag或coded_sub_block_flag,有效系数标志可以是sig_coeff_flag,第一系数级别标志可以是abs_level_gt1_flag或abs_level_gtx_flag,奇偶级别标志可以是par_level_flag,并且第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
另外,例如,语法元素可以包括当前块的变换系数值的系数值相关信息。系数值相关信息可以是abs_remainder和/或dec_abs_level。
另外,例如,语法元素可以包括表示变换系数的符号的符号标志。符号标志可以是coeff_sign_flag。
另外,例如,基于具有值0的TSRC启用标志,当前块的残差编码语法可以被推导为变换跳过残差编码(TSRC)语法。在这种情况下,残差信息可以是变换跳过残差编码(TSRC)语法的残差信息。即,解码设备可以获得当前块的TSRC语法的残差信息。另外,例如,可以获得用于当前块是否是变换跳过块的变换跳过标志,并且基于具有值1的变换跳过标志和具有值0的TSRC启用标志,当前块的残差编码语法可以被推导为变换跳过残差编码(TSRC)语法。在这种情况下,残差信息可以是TSRC语法的残差信息。另外,例如,可以获得用于当前块是否是变换跳过块的变换跳过标志,并且基于具有值0的变换跳过标志和具有值0的TSRC启用标志,当前块的残差编码语法可以被推导为常规残差编码(RRC)语法。在这种情况下,残差信息可以是RRC语法的残差信息。
例如,TSRC语法的残差信息可以包括上述表3中公开的语法元素。例如,TSRC语法的残差信息可以包括当前块的变换系数的语法元素。这里,变换系数可以被表示为残差系数。
例如,语法元素可以包括用于变换系数的上下文编码语法元素和/或旁路编码语法元素。语法元素可以包括诸如sig_coeff_flag、coeff_sign_flag、par_level_flag、abs_level_gtX_flag(例如,abs_level_gtx_flag[n][0]、abs_level_gtx_flag[n][1]、abs_level_gtx_flag[n][2]、abs_level_gtx_flag[n][3]和/或abs_level_gtx_flag[n][4])、abs_remainder和/或coeff_sign_flag这样的语法元素。
例如,变换系数的上下文编码语法元素可以包括表示变换系数是否是非零变换系数的有效系数标志、表示变换系数的符号的符号标志、用于变换系数的系数级别是否大于第一阈值的第一系数级别标志和/或用于变换系数的变换级别的奇偶性的奇偶级别标志。另外,例如,上下文编码语法元素可以包括用于变换系数的系数级别是否大于第二阈值的第二系数级别标志、用于变换系数的系数级别是否大于第三阈值的第三系数级别标志、用于变换系数的系数级别是否大于第四阈值的第四系数级别标志和/或用于变换系数的系数级别是否大于第五阈值的第五系数级别标志。这里,有效系数标志可以是sig_coeff_flag,符号标志可以是ceff_sign_flag,第一系数级别标志可以是abs_level_gt1_flag,并且奇偶级别标志可以是par_level_flag。另外,第二系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag,第三系数级别标志可以是abs_level_gt5_flag或abs_level_gtx_flag,第四系数级别标志可以是abs_level_gt7_flag或abs_level_gtx_flag,并且第五系数级别标志可以是abs_level_gt9_flag或abs_level_gtx_flag。
另外,例如,变换系数的旁路编码语法元素可以包括变换系数(或系数级别)的值的系数级别信息和/或表示变换系数的符号的符号标志。系数级别信息可以是abs_remainder和/或dec_abs_level,并且符号标志可以是ceff_sign_flag。
解码设备基于残差信息来推导当前块的残差样本(S1310)。例如,解码设备可以基于残差信息来推导当前块的变换系数,并可以基于变换系数来推导当前块的残差样本。
例如,解码设备可以基于残差信息的语法元素来推导当前块的变换系数。此后,解码设备可以基于变换系数来推导当前块的残差样本。作为示例,如果基于变换跳过标志推导出不对当前块应用变换,即,如果变换跳过标志的值为1,则解码设备可以将变换系数推导为当前块的残差样本。另外,例如,如果基于变换跳过标志推导出不对当前块应用变换,即,如果变换跳过标志的值为1,则解码设备可以通过对变换系数进行反量化来推导当前块的残差样本。另外,例如,如果基于变换跳过标志推导出对当前块应用变换,即,如果变换跳过标志的值为0,则解码设备可以通过执行变换系数的逆变换来推导当前块的残差样本。另外,例如,如果基于变换跳过标志推导出对当前块应用变换,即,如果变换跳过标志的值为0,则解码设备可以通过对变换系数进行反量化并执行反量化后的变换系数的逆变换来推导当前块的残差样本。
此外,在对当前块应用依赖量化的情况下,解码设备可以通过对变换系数执行依赖量化处理来推导当前块的残差样本。例如,在对当前块应用依赖量化的情况下,解码设备可以基于按扫描次序恰好在当前变换系数之前的变换系数的系数级别来更新依赖量化的状态(Qstate),可以基于当前变换系数的语法元素和更新后的状态来推导当前变换系数的系数级别,并可以通过对推导出的系数级别进行反量化来推导残差样本。例如,可以基于更新后的状态的标量量化器中的当前变换系数的重构级别的量化参数来对当前变换系数进行反量化。这里,可以基于当前变换系数的语法元素来推导重构级别。
解码设备基于残差样本来生成重构图片(S1320)。例如,解码设备可以基于残差样本来生成当前块的重构样本和/或重构图片。例如,解码设备可以通过基于通过比特流接收到的预测信息对当前块执行帧间预测模式或帧内预测模式来推导预测样本,并可以通过预测样本与残差样本的彼此相加来生成重构样本。
此后,在需要时,为了增强主观/客观图片质量,可以如上所述对重构图片应用诸如去块滤波、SAO和/或ALF过程这样的环路滤波过程。
图14简要例示了根据本公开的执行图像解码方法的解码设备。图13中公开的方法可以由图14中公开的解码设备执行。具体地,例如,图14的解码设备的熵解码器可以执行图13中的S1300,图14的解码设备的残差处理器可以执行图13中的S1310,并且图14的解码设备的加法器可以执行图13中的S1320。另外,尽管未例示,但接收当前块的预测信息的处理可以由图14的解码设备的熵解码器执行,并且推导当前块的预测样本的处理可以由图14的解码设备的预测器执行。
根据本公开,可以增强残差编码效率。
另外,根据本公开,可以建立依赖量化启用标志与TSRC启用标志之间的信令关系,并且如果不启用依赖量化,则可以发信号通知TSRC启用标志,并且通过这样,如果不启用TSRC并接着针对变换跳过块对RRC语法进行编码,则不使用依赖量化,使得可以提高编码效率,并且可以通过减少被编码的比特的量来提高整体残差编码效率。
另外,根据本公开,可以建立变换跳过启用标志与TSRC启用标志之间的信令关系,并且如果启用变换跳过,则TSRC启用标志可以被发信号通知,并且通过这样,可以通过被编码的比特的量的减少来提高整体残差编码效率。
在以上实施方式中,基于具有一系列步骤或方框的流程图描述了方法。本公开不限于以上步骤或方框的顺序。一些步骤或方框能够以与上述的其他步骤或方框不同的顺序执行或同时执行。此外,本领域技术人员将理解,流程图中所示的步骤不是排它的,并且可以还包括其他步骤,或者可以在不影响本公开的范围的情况下删除流程图中的一个或更多个步骤。
在本说明书中所描述的实施方式可以通过被实现在处理器、微处理器、控制器或芯片上来执行。例如,每个图中所示的功能单元可以通过被实现在计算机、处理器、微处理器、控制器或芯片上来执行。在这种情况下,用于实现的信息(例如,关于指令的信息)或算法可以存储在数字存储介质中。
另外,应用本公开的解码设备和编码设备可以被包括在如下装置中:多媒体广播发送/接收装置、移动通信终端、家庭影院视频装置、数字影院视频装置、监视相机、视频聊天装置、诸如视频通信的实时通信装置、移动流装置、存储介质、便携式摄像机、VoD服务提供装置、过顶(OTT)视频装置、互联网流服务提供装置、三维(3D)视频装置、电话会议视频装置、运输用户装置(例如,车辆用户装置、飞机用户装置和轮船用户装置)和医疗视频设备;并且应用本公开的解码设备和编码设备可以用于处理视频信号或数据信号。例如,过顶(OTT)视频装置可以包括游戏机、蓝光播放器、互联网接入电视机、家庭影院系统、智能电话、平板电脑、数字视频记录仪(DVR)等。
另外,应用本公开的处理方法能够以计算机执行的程序的形式产生,并且可以存储在计算机可读记录介质中。根据本公开的具有数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括其中存储计算机可读数据的所有类型的存储设备。计算机可读记录介质可以包括例如BD、通用串行总线(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储设备。另外,计算机可读记录介质包括以载波(例如,经由互联网的传输)形式实现的介质。另外,由编码方法生成的比特流可以存储在计算机可读记录介质中或通过有线/无线通信网络来传输。
另外,本公开的实施方式可以根据程序代码利用计算机程序产品来实现,并且程序代码可以通过本公开的实施方式在计算机中执行。程序代码可以存储在计算机可读载体上。
图15例示了应用本公开的内容流传输系统的结构示图。
应用本公开的实施方式的内容流传输系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体存储器、用户设备和多媒体输入设备。
编码服务器将从诸如智能手机、相机或便携式摄像机等的多媒体输入设备输入的内容压缩为数字数据,以生成比特流并将比特流发送到流传输服务器。作为另一示例,当诸如智能手机、相机或便携式摄像机等的多媒体输入设备直接生成比特流时,可以省略编码服务器。
可以通过应用了本公开的实施方式的编码方法或比特流生成方法来生成比特流,并且流传输服务器可以在发送或接收比特流的过程中临时存储比特流。
流传输服务器基于用户请求通过网络服务器向用户设备发送多媒体数据,并且网络服务器用作向用户通知服务的媒介。当用户从网络服务器请求所需的服务时,网络服务器向流传输服务器递送该请求,并且流传输服务器向用户发送多媒体数据。在这种情况下,内容流传输系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流传输系统内的设备之间的命令/响应。
流传输服务器可以从媒体存储器和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平稳的流服务,流传输服务器可以将比特流存储预定时间段。
用户设备的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航仪、触屏PC、平板PC、超级本、可穿戴设备(例如,智能手表、智能眼镜和头戴式显示器)、数字TV、台式计算机和数字标牌等。内容流传输系统内的每个服务器可以作为分布式服务器来操作,在这种情况下,从每个服务器接收的数据可以被分布。
本公开中描述的权利要求能够以各种方式组合。例如,可以组合本公开的方法权利要求的技术特征以实现为装置,以及可以组合本公开的装置权利要求的技术特征以实现为方法。此外,可以组合本公开的方法权利要求的技术特征和装置权利要求的技术特征以实施为装置,以及可以组合本公开的方法权利要求的技术特征和装置权利要求的技术特征以实现为方法。

Claims (15)

1.一种由解码设备执行的图像解码方法,该图像解码方法包括以下步骤:
获取当前块的残差信息;
基于所述残差信息来推导所述当前块的残差样本;以及
基于所述残差样本来生成重构图片,
其中,获取所述残差信息的步骤包括以下步骤:
获取用于是否启用变换跳过的变换跳过启用标志;
基于所述变换跳过启用标志来获取用于是否启用变换跳过残差编码TSRC的TSRC启用标志;
获取基于所述TSRC启用标志推导的所述当前块的残差编码语法的残差信息,并且
其中,基于表示启用所述变换跳过的变换跳过启用标志来获取所述TSRC启用标志。
2.根据权利要求1所述的图像解码方法,其中,获取所述残差信息的步骤还包括获取用于是否启用依赖量化的依赖量化启用标志,
其中,基于所述变换跳过启用标志和所述依赖量化启用标志来获取所述TSRC启用标志。
3.根据权利要求2所述的图像解码方法,其中,当所述依赖量化启用标志的值为1时,所述依赖量化启用标志表示启用所述依赖量化,
其中,当所述依赖量化启用标志的值为0时,所述依赖量化启用标志表示不启用所述依赖量化。
4.根据权利要求2所述的图像解码方法,其中,所述依赖量化启用标志被发信号通知给切片头语法。
5.根据权利要求1所述的图像解码方法,其中,当所述变换跳过启用标志的值为1时,所述变换跳过启用标志表示启用所述变换跳过,
其中,当所述变换跳过启用标志的值为0时,所述变换跳过启用标志表示不启用所述变换跳过。
6.根据权利要求5所述的图像解码方法,其中,当所述变换跳过启用标志的值为0时,不获取所述TSRC启用标志,并且
所述TSRC启用标志的值被推导为0。
7.根据权利要求1所述的图像解码方法,其中,当所述TSRC启用标志的值为1时,所述TSRC启用标志表示不启用所述TSRC,
其中,当所述TSRC启用标志的值为0时,所述TSRC启用标志表示启用所述TSRC。
8.根据权利要求7所述的图像解码方法,其中,当所述当前块是变换跳过块并且所述TSRC启用标志的值为1时,所述残差信息是常规残差编码RRC语法的残差信息。
9.根据权利要求8所述的图像解码方法,其中,获取用于是否对所述当前块应用所述变换跳过的变换跳过标志,并且
所述变换跳过标志的值为1。
10.根据权利要求1所述的图像解码方法,其中,所述变换跳过启用标志被发信号通知给序列参数集SPS语法,并且
所述TSRC启用标志被发信号通知给切片头语法。
11.一种由编码设备执行的图像编码方法,该图像编码方法包括以下步骤:
推导当前块的残差样本;
对所述残差样本的残差信息进行编码;以及
生成包括所述残差信息的比特流,
其中,对所述残差信息进行编码的步骤包括以下步骤:
对用于是否启用变换跳过的变换跳过启用标志进行编码;
基于所述变换跳过启用标志来对用于是否启用变换跳过残差编码TSRC的TSRC启用标志进行编码;
基于所述TSRC启用标志来确定所述当前块的残差编码语法;以及
对针对所述当前块确定的所述残差编码语法的残差信息进行编码,
其中,基于所述变换跳过启用标志表示启用所述变换跳过,所述TSRC启用标志被编码。
12.根据权利要求11所述的图像编码方法,其中,当所述变换跳过启用标志的值为1时,所述变换跳过启用标志表示启用所述变换跳过,
其中,当所述变换跳过启用标志的值为0时,所述变换跳过启用标志表示不启用所述变换跳过。
13.根据权利要求12所述的图像编码方法,其中,当所述变换跳过启用标志表示不启用所述变换跳过时,所述TSRC启用标志不被编码。
14.根据权利要求11所述的图像编码方法,其中,当所述当前块是变换跳过块并且所述TSRC启用标志的值为1时,所述残差信息是常规残差编码RRC语法的残差信息。
15.一种存储包括致使解码设备执行图像解码方法的图像信息的比特流的非暂态计算机可读存储介质,该图像解码方法包括以下步骤:
获取当前块的残差信息;
基于所述残差信息来推导所述当前块的残差样本;以及
基于所述残差样本来生成重构图片,
其中,获取所述残差信息的步骤包括以下步骤:
获取用于是否启用变换跳过的变换跳过启用标志;
基于所述变换跳过启用标志来获取用于是否启用变换跳过残差编码TSRC的TSRC启用标志;
获取基于所述TSRC启用标志推导的所述当前块的残差编码语法的残差信息,并且
其中,基于表示启用所述变换跳过的变换跳过启用标志来获取所述TSRC启用标志。
CN202180029680.8A 2020-02-25 2021-02-25 与残差编码相关的图像解码方法以及用于其的装置 Pending CN115443659A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062981474P 2020-02-25 2020-02-25
US62/981,474 2020-02-25
PCT/KR2021/002406 WO2021172910A1 (ko) 2020-02-25 2021-02-25 레지듀얼 코딩과 관련한 영상 디코딩 방법 및 그 장치

Publications (1)

Publication Number Publication Date
CN115443659A true CN115443659A (zh) 2022-12-06

Family

ID=77490109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180029680.8A Pending CN115443659A (zh) 2020-02-25 2021-02-25 与残差编码相关的图像解码方法以及用于其的装置

Country Status (3)

Country Link
US (1) US20230019471A1 (zh)
CN (1) CN115443659A (zh)
WO (1) WO2021172910A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US10742975B2 (en) * 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
KR20230085229A (ko) * 2018-03-29 2023-06-13 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 종속 양자화
CN112655209B (zh) * 2018-07-02 2024-03-29 弗劳恩霍夫应用研究促进协会 对块的变换系数进行解码或编码的装置和方法
US20200014919A1 (en) * 2018-07-05 2020-01-09 Tencent America LLC Methods and apparatus for multiple line intra prediction in video compression
KR20210135331A (ko) * 2019-03-23 2021-11-12 후아웨이 테크놀러지 컴퍼니 리미티드 인코더, 디코더 및 대응하는 인트라 예측을 위한 방법

Also Published As

Publication number Publication date
WO2021172910A1 (ko) 2021-09-02
US20230019471A1 (en) 2023-01-19

Similar Documents

Publication Publication Date Title
CN113455006A (zh) 图像解码方法和装置
CN114391252A (zh) 基于自适应环路滤波器的视频或图像编码
CN114402597A (zh) 应用自适应环路滤波器的视频或图像编码
CN115398909A (zh) 用于残差编码的图像解码方法及其设备
US20230188758A1 (en) Image coding method and device in image coding system
CN114424531A (zh) 基于环路内滤波的视频或图像编码
CN114303373A (zh) 用于残差编译的解码视频的方法及其设备
CN115443660A (zh) 用于解码与符号数据隐藏相关的成像的方法和设备
CN114375578A (zh) 用于残差编码的图像解码方法及其设备
CN114402605A (zh) 图像编码系统中使用残差编码方法的标志的图像解码方法以及用于其的装置
US20220408095A1 (en) Image decoding method and apparatus therefor
US20240031604A1 (en) Image decoding method and apparatus therefor
CN115552910A (zh) 用于残差编码的图像解码方法及其装置
CN114375572A (zh) 视频或图像编译方法及其设备
CN113812156A (zh) 在视频编译系统中使用简化的残差数据编译解码视频的方法及其设备
CN114467301A (zh) 图像解码方法及其设备
CN115336274B (zh) 与残差编码关联的图像解码方法以及用于其的装置
CN115349258B (zh) 图像编码系统中用于残差编码的图像解码方法及其设备
CN114586357B (zh) 视频编码系统中使用简化的残差数据编码的视频解码方法及其设备
US20220377343A1 (en) Method for image decoding for image information coding, and device therefor
US20230164361A1 (en) Image decoding method for coding image information including tsrc available flag, and device therefor
US20230164355A1 (en) Image decoding method and device therefor
US20230019471A1 (en) Image decoding method related to residual coding, and device therefor
CN115428460A (zh) 图像编码系统中残差编码的图像解码方法及用于其的设备
CN115211121A (zh) Ph nal单元编码相关图像解码方法及其装置

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