CN117915091A - 在图像编译系统中使用残差信息的图像解码方法及其装置 - Google Patents

在图像编译系统中使用残差信息的图像解码方法及其装置 Download PDF

Info

Publication number
CN117915091A
CN117915091A CN202410002672.XA CN202410002672A CN117915091A CN 117915091 A CN117915091 A CN 117915091A CN 202410002672 A CN202410002672 A CN 202410002672A CN 117915091 A CN117915091 A CN 117915091A
Authority
CN
China
Prior art keywords
transform
current block
residual
flag
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410002672.XA
Other languages
English (en)
Inventor
崔情娥
林宰显
许镇
柳先美
李翎
崔璋元
金昇焕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Publication of CN117915091A publication Critical patent/CN117915091A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

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

Abstract

本发明涉及在图像编译系统中使用残差信息的图像解码方法及其装置。根据本文档,一种由解码装置执行的图像解码方法包括以下步骤:接收包括当前块的残差信息的比特流;导出关于当前块的当前子块的上下文语法元素的上下文编译bin的特定数目;基于特定数目对残差信息中包括的当前子块的上下文语法元素进行解码;基于解码的上下文语法元素来导出当前子块的变换系数;基于变换系数来导出当前块的残差样本;以及基于残差样本来生成重构图片。

Description

在图像编译系统中使用残差信息的图像解码方法及其装置
本申请是2021年8月6日提交进入中国专利局的国际申请日为2020年1月13日的申请号为202080013196.1(PCT/KR2020/000621)的,发明名称为“在图像编译系统中使用残差信息的图像解码方法及其装置”的专利申请的分案申请。
技术领域
本公开涉及图像编译技术,并且更具体地,涉及用于在图像编译系统中对包括残差的变换系数的语法元素的残差信息进行编译的图像解码方法及其设备。
背景技术
近来,在各种领域中,对诸如HD(高清)图像和UHD(超高清)图像这样的高分辨率、高质量图像的需求正在增长。因为图像数据具有高分辨率和高质量,所以相对于传统图像数据,待传输的信息或比特的量增加。因此,当使用诸如传统有线/无线宽带线路这样的介质发送图像数据或者使用现有存储介质存储图像数据时,其传输成本和存储成本增加。
因此,需要用于有效地发送、存储和再现高分辨率高质量图像的信息的高效图像压缩技术。
发明内容
技术问题
本公开提供了一种用于提高图像编译效率的方法及设备。
本公开还提供了一种用于提高残差编译的效率的方法和设备。
本公开还提供了一种用于在对残差信息进行编码时,在调整关于当前子块的上下文编译bin的数目时确定并调整上下文语法元素的上下文编译bin的数目之和的方法和设备。
技术方案
在一个方面中,提供了一种由解码设备执行的图像解码方法。该方法包括:接收包括当前块的残差信息的比特流;导出关于当前块的当前子块的上下文语法元素的上下文编译bin的特定数目;基于特定数目对残差信息中包括的关于当前子块的上下文语法元素进行解码;基于解码的上下文语法元素来导出当前子块的变换系数;基于变换系数来导出当前块的残差样本;以及基于残差样本来生成重构图片,其中,当在当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到特定数目时,残差信息中包括的特定变换系数的旁路语法元素被解码。
在另一方面中,提供了一种用于执行图像解码的解码设备。该解码设备包括:熵解码器,该熵解码器被配置为接收包括当前块的残差信息的比特流,导出关于当前块的当前子块的上下文语法元素的上下文编译bin的特定数目,基于特定数目对残差信息中包括的关于当前子块的上下文语法元素进行解码,并且基于解码的上下文语法元素来导出当前子块的变换系数;逆变换器,该逆变换器被配置为基于变换系数来导出当前块的残差样本;以及加法器,该加法器被配置为基于当前块的残差样本来生成重构图片,其中,当在当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到特定数目时,残差信息中包括的特定变换系数的旁路语法元素被解码。
在另一方面中,提供了一种由编码设备执行的图像编码方法。该方法包括:导出当前块的残差样本;基于残差样本来导出当前块的当前子块中的变换系数;导出关于当前子块的上下文语法元素的上下文编译bin的特定数目;基于特定数目对上下文语法元素进行编码;以及生成包括当前块的残差信息的比特流,当前块的残差信息包括编码的上下文语法元素,其中,当在当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到特定数目时,残差信息中包括的特定变换系数的旁路语法元素被编码。
在另一方面中,提供了一种视频编码设备。该编码设备包括:减法器,该减法器被配置为导出关于当前块的残差样本;变换器,该变换器被配置为基于残差样本来导出当前块的当前子块中的变换系数;熵编码器,该熵编码器被配置为导出关于当前子块的上下文语法元素的上下文编译bin的特定数目,基于特定数目对上下文语法元素进行编码,并且生成包括当前块的残差信息的比特流,当前块的残差信息包括编码的上下文语法元素,其中,当在当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到特定数目时,残差信息中包括的特定变换系数的旁路语法元素被编码。
有益效果
根据该文档,可以提高整体图像/视频压缩效率。
根据该文档,可以提高残差编译的效率。
根据该文档,可以通过将残差信息中包括的关于当前块中的变换系数的上下文语法元素的上下文编译bin的数目之和限制为预定最大值或更小来减少基于上下文编译的数据。
根据该文档,在调整关于当前子块的上下文编译bin的数目时,不是针对每个上下文语法元素确定编码,而是确定上下文语法元素的上下文编译bin的数目之和,由此可以降低残差编译复杂性并且可以提高整体编译效率。
附图说明
图1简要例示了可应用本文档的实施例的视频/图像编译装置的示例。
图2是例示了可以应用本文档的实施例的视频/图像编码设备的配置的示意图。
图3是例示了可以应用本文档的实施例的视频/图像解码设备的配置的示意图。
图4示例性地示出了用于对语法元素进行编码的上下文自适应二进制算术编码(CABAC)。
图5是示出了4x4块内的示例性变换系数的图。
图6例示了根据本公开的执行用于递送像素域的残差信号的方法的解码设备。
图7a和图7b例示了用于基于当前块的样本的数目来确定是否解析变换跳过标志的实施例和执行该实施例的解码设备。
图8示例性地示出了对其应用了旋转180度的重新布置方法的当前块的残差系数。
图9示例性地示出了对其应用了镜像重新布置方法的当前块的残差系数。
图10示例性地示出了对其应用了翻转重新布置方法的当前块的残差系数。
图11示例性地示出了对其应用了基于距参考样本的距离而区分的层被导出并根据逆光栅顺序在位置中重新布置的实施例的当前块的残差系数。
图12示例性地示出了对其应用了基于距参考样本的距离而区分的层被导出并根据对角线扫描顺序在位置中重新布置的实施例的当前块的残差系数。
图13示例性地示出了对其应用了基于距特定参考样本的距离而区分的层被导出并根据对角线扫描顺序在一位置中重新布置的实施例的当前块的残差系数。
图14a和图14b示出了基于当前块的变换跳过标志来确定是否应用重新布置方法的实施例以及执行该实施例的编码设备和解码设备。
图15示出了基于变换跳过标志来确定对残差信息进行编译的方法的示例。
图16示出了基于集成变换类型信息来确定对残差信息进行编译的方法的示例。
图17示意性地示出了根据本文档的由编码设备进行的图像编码方法。
图18示意性地示出了根据该文档的用于执行图像编码方法的编码设备。
图19示意性地示出了根据该文档的由解码设备进行的图像解码方法。
图20示意性地示出了根据该文档的用于执行图像解码方法的解码设备。
图21例示了应用了本公开的内容流传输系统的结构图。
具体实施方式
本公开可以以各种形式修改,并且将在附图中描述和例示其特定实施方式。然而,实施方式并非旨在限制本公开。在以下描述中使用的术语仅用于描述特定实施方式,并非旨在限制本公开。只要清楚地以不同的方式理解,单数的表达包括复数的表达。诸如“包括”和“具有”之类的术语旨在表示存在以下描述中使用的特征、数目、步骤、操作、元件、组件或其组合,因此应理解的为不排除存在或添加一个或更多个不同的特征、数目、步骤、操作、元件、组件或其组合的可能性。
此外,在本公开中描述的附图中的元件是为了方便地解释不同的特定功能而独立地绘制的,并不意味着这些元件由独立的硬件或独立的软件来体现。例如,可以将元件中的两个或更多个元件组合以形成单个元件,或者可以将一个元件划分为多个元件。其中组合元件和/或划分元件的实施方式属于本公开,而没有脱离本公开的概念。
在下文中,将参照附图详细描述本公开的实施方式。另外,在整个附图中,相似的附图标记用于指示相似的元件,并且将省略对相似元件的相同描述。
图1简要例示了可应用本公开的实施方式的视频/图像编译装置的示例。
参照图1,视频/图像编译系统可以包括第一装置(源装置)和第二装置(接收装置)。源装置可以经由数字存储介质或网络以文件或流的形式向接收装置发送编码视频/图像信息或数据。
源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以称为视频/图像编码设备,并且解码设备可以称为视频/图像解码设备。发送器可以包括在编码设备中。接收器可以包括在解码设备中。渲染器可以包括显示器,并且显示器可以被配置为单独的装置或外部组件。
视频源可以通过捕获、合成或生成视频/图像的处理来获取视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板电脑和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以由生成相关数据的处理代替。
编码设备可以对输入的视频/图像进行编码。编码设备可以执行诸如预测、变换和量化的一系列过程,以实现压缩和编译效率。编码数据(编码视频/图像信息)可以以比特流的形式输出。
发送器可以通过数字存储介质或网络以文件或流的形式向接收装置的接收器发送以比特流形式输出的编码后的图像/图像信息或数据。数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SSD等的各种存储介质。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行发送的元件。接收器可以接收/提取比特流,并向解码设备发送接收到的比特流。
解码设备可以通过执行与编码设备的操作相对应的诸如解量化、逆变换和预测之类的一系列过程,来对视频/图像进行解码。
渲染器可以渲染解码的视频/图像。渲染的视频/图像可以通过显示器显示。
本文档涉及视频/图像编译。例如,本文档中公开的方法/实施方式可以应用于在多功能视频编码(VVC)、EVC(基本视频编码)标准、AOMedia Video 1(AV1)标准、第2代音频视频编码标准(AVS2)或下一代视频/图像编码标准(例如,H.267、或H.268等)中公开的方法。
本文档呈现了视频/图像编译的各种实施方式,并且除非另外提及,否则实施方式可以彼此组合地执行。
在本文档中,视频可以是指一段时间上的一系列图像。图片通常是指在特定时间区域表示一幅图像的单位,而切片(slice)/图块(tile)是在编译中组成图片的一部分的单位。切片/图块可以包括一个或更多个编译树单元(CTU)。一幅图片可以包括一个或更多个切片/图块。一幅图片可以包括一个或更多个图块组。一个图块组可以包括一个或更多个图块。拼块(brick)可以表示图片中图块内CTU行的矩形区域。一个图块可以分区为多个拼块,每个拼块包括图块内的一个或更多个CTU行。没有分区为多个拼块的图块也可以称为拼块。拼块扫描是对其中CTU在拼块的CTU光栅扫描中连续排序的图片进行分区的CTU的特定顺序排序,图块内的拼块在图块的拼块的光栅扫描中是连续排列的,并且图片中的图块在图片的图块的光栅扫描中是连续排序的。图块是图片中特定图块列和特定图块行内的CTU的矩形区域。图块列是高度等于图片的高度并且宽度由图片参数集中的语法元素指定的CTU的矩形区域。图块行是高度由图片参数集中的语法元素指定并且宽度等于图片宽度的CTU的矩形区域。图块扫描是指对其中CTU在图块的CTU光栅扫描中是连续排序的图片进行分区的CTU的特定顺序排序,而图片中的图块在图片的图块的光栅扫描中是连续排序的。切片包括可以唯一地包含在单个NAL单元中的图片的整数个拼块。切片可以包括多个完整的图块,或者仅一个图块的完整拼块的连续序列。图块组和切片在该文档中可以互换使用。例如,在本文档中,图块组/图块组头可以被称为切片/切片头。
像素或像元可以表示组成一幅图片(或图像)的最小单位。另外,“样本”可以用作与像素相对应的术语。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。
单元可以表示图像处理的基本单位。单元可以包括图片的特定区域和与该区域有关的信息中的至少一个。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。在一些情况下,单元可以与诸如块或区域之类的术语互换使用。在一般情况下,M×N块可以包括M列和N行的样本(或样本阵列)或变换系数的集合(或阵列)。
在本文档中,术语“/”和“、”应解释为指示“和/或”。例如,表述“A/B”可以表示“A和/或B”。此外,“A、B”可以表示“A和/或B”。此外,“A/B/C”可以表示“A、B和/或C中的至少一个”。另外,“A/B/C”可以表示“A、B和/或C中的至少一个”。
此外,在本文档中,术语“或”应解释为指示“和/或”。例如,表述“A或B”可包括1)仅A,2)仅B,和/或3)A和B两者。换句话说,本文档中的术语“或”应解释为指示“附加地或另选地。”
图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输出的关于预测的信息来确定向当前块应用帧内预测还是帧间预测,并且可以确定具体的帧内/帧间预测模式。
预测器320可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测。这可以称为帧间和帧内组合预测(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可以存储从中导出(或解码)当前图片中的运动信息的块的运动信息和/或图片中已重构的块的运动信息。所存储的运动信息可以发送给帧间预测器260,以作为空间相邻块的运动信息或时间相邻块的运动信息来利用。存储器360可以存储当前图片中的重构块的重构样本,并且可以将重构样本传送给帧内预测器331。
在本公开中,在编码设备200的滤波器260、帧间预测器221和帧内预测器222中描述的实施方式可以与解码设备300的滤波器350、帧间预测器332和帧内预测器331相同或者分别被应用以对应于解码设备300的滤波器350、帧间预测器332和帧内预测器331。相同的内容也可以应用于帧间预测器332和帧内预测器331。
如上所述,编码设备可以执行各种编码方法,诸如指数哥伦布、上下文自适应变长编码(CAVLC)和上下文自适应二进制算术编码(CABAC)。另外,解码设备可以基于诸如指数哥伦布编码、CAVLC或CABAC的编码方法来对比特流中的信息进行解码,并且输出图像重构所需要的语法元素的值和与残差有关的变换系数的量化值。
例如,可以如下所述执行上述编译方法。
图4示例性地示出了用于对语法元素进行编码的上下文自适应二进制算术编码(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的上下文模型的过程。
如上所述,可以通过变换和量化过程来将残差样本导出为量化变换系数。也可以将量化变换系数称为变换系数。在这种情况下,可以以残差信息的形式用信号通知块中的变换系数。残差信息可以包括残差编译语法。也就是说,编码设备可以用残差信息配置残差编译语法,对其进行编码,并且以比特流的形式输出它,而解码设备可以从比特流中对残差编译语法进行解码并且导出残差(量化)变换系数。残差编译语法可以包括表示是否对所对应的块应用了变换、块中的最后有效变换系数的位置、是否在子块中存在有效变换系数、有效变换系数的大小/符号等的语法元素,如将稍后描述的。
例如,可以基于诸如以下各项的语法元素来对(量化)变换系数(即,残差信息)进行编码和/或解码:transform_skip_flag、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、abs_level_gt1_flag、abs_level_gt3_flag、abs_remainder、coeff_sign_flag、dec_abs_level、mts_idx。可以如下表中所示的那样表示与残差数据编码/解码有关的语法元素。
[表1]
/>
/>
/>
transform_skip_flag指示在相关块中是否跳过变换。transform_skip_flag可以是变换跳过标志的语法元素。相关块可以是编译块(CB)或变换块(TB)。关于变换(及量化)和残差编译过程,可以互换地使用CB和TB。例如,如上所述,对于CB可以导出残差样本,而且可以通过针对残差样本的变换和量化并且通过残差编译过程来导出(量化)变换系数,可以生成并用信号通知有效地指示(量化)变换系数的位置、幅度、符号等的信息(例如,语法元素)。可以将量化变换系数简称为变换系数。通常,当CB不大于最大TB时,CB的大小可以与TB的大小相同,并且在这种情况下,可以将要变换(和量化)并残差编译的目标块称为CB或TB。同时,当CB大于最大TB时,可以将要变换(和量化)并残差编译的目标块称为TB。在下文中,将描述以变换块(TB)为单位用信号通知与残差编译有关的语法元素,但这是示例并且TB可以与编译块(如上所述的CB)互换地使用。
在实施例中,编码设备可以基于语法元素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)和/或特定帧内/帧间预测模式来确定扫描顺序。
此后,编码设备可以将变换块划分成4x4子块,然后对于每个4x4子块使用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=remAbsLevel&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有关的示例。
[表2]
在本文中,|coeff|指示变换系数级别(值)并且也可以被指示为变换系数的AbsLeve1。附加地,可以通过使用作为1比特符号的coeff_sign_flag来对每个系数的符号进行编码。
另外,dec_abs_level可以表示在所对应的扫描位置(n)处用Golomb-Rice码编译的中间值。可以对于满足上表2中公开的条件的扫描位置用信号通知dec_abs_level。在这种情况下,所对应的变换系数的绝对值AbsLevel(即,|coeff|)取决于条件而被导出为0、dec_abs_level+1、dec_abs+level中的一个。
另外,coeff_sign_flag可以指示所对应的扫描位置(n)处的变换系数级别的符号。也就是说,coeff_sign_flag可以指示所对应的扫描位置(n)处的变换系数的符号。
另外,mts_idx可以指示在水平方向和垂直方向上应用于当前变换块中的残差样本的变换核。
图5例示了4x4块内的变换系数的示例。
图5的4x4块例示了量化系数的一个示例。图5中所示的块可以是4x4变换块或8x8、16x16、32x32和64x64变换块的4x4子块。图5的4x4块可以表示亮度块或色度块。
例如,下表示出了图5中例示的逆对角线地扫描的系数的编码结果。
[表3]
scan_pos 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
coefficients 0 0 0 0 1 -1 0 2 0 3 -2 -3 4 6 -7 10
sig_coeff_flag 0 0 0 0 1 1 0 1 0 1 1 1 1 1
abs_level_gt1_flag 0 0 1 1 1 1 1 1
par_level_flag 0 1 0 1 0 0
abs_level_gt3_flag 1 1
abs_remainder 0 1
dec_abs_level 7 10
coeff_sign_flag 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0
在表3中,scan_pos表示根据逆对角线扫描的系数的位置。scan_pos 15可以表示在4x4块中首先扫描的变换系数,即右下角的变换系数,而scan_pos 0可以是最后扫描的变换系数,即左上角的变换系数。同时,在一个实施例中,可以将scan_pos称为扫描位置。例如,可以将scan_pos 0称为扫描位置0。
同时,CABAC提供了高性能但具有吞吐量性能差的缺点。此特性是由CABAC的常规编译引擎所引起的,其中常规编译(即,通过CABAC的常规编译引擎来编码)使用通过对先前bin的编码更新的概率状态和范围从而呈现高数据依赖性以及花费许多时间读取概率区间并且确定当前状态。可以通过限制上下文编译bin的数目来解决CABAC的吞吐量问题。例如,如表1中所示,用于表达sig_coeff_flag、abs_level_gt1_flag和par_level_flag的bin之和可能受到取决于所对应的块的大小的数目的限制。在一个示例中,当所对应的块是4x4大小的块时,可以将sig_coeff_flag、abs_level_gt1_flag和par_level_flag的bin之和限制为28个。另一方面,当所对应的块是2x2大小的块时,可以将sig_coeff_flag、abs_level_gt1_flag和par_level_flag的bin之和限制为6个。remBinsPass1可以表达bin的有限数目。另外,由于所对应的块的大小而导致的数目可以限制abs_level_gt3_flag的上下文编译bin的数目。例如,在4x4大小的块的情况下,可以将abs_level_gt3_flag的bin数目限制为4,而在2x2大小的块的情况下,可以将abs_level_gt3_flag的bin的数目限制为2。remBinsPass2可以表达abs_level_gt3_flag的bin的有限数目。在这种情况下,当编码设备使用所有有限数目的上下文编译bin来对上下文元素进行编译时,可以通过稍后描述的针对系数的二值化方法在不使用CABAC的情况下对剩余系数进行二值化以执行旁路编码。
同时,如上所述,当以语法元素而不是二进制值的形式接收输入信号时,编码设备可以通过二值化将输入信号转换成二进制值。另外,解码设备可以对语法元素进行解码以导出语法元素的二值化值(即,二值化bin)并且对二值化值进行逆二值化以导出语法元素的值。可以使用截断莱斯(TR)二值化过程、k阶Exp-Golomb(EGk)二值化过程或固定长度(FL)二值化过程来执行二值化过程。另外,逆二值化过程可以是指通过执行TR二值化过程、EGk二值化过程或FL二值化过程来导出语法元素的值的过程。
例如,可以执行TR二值化过程如下。
TR二值化过程的输入可以是对TR二值化的请求以及语法元素的cMax和cRiceParam。另外,TR二值化过程的输出可以是针对与bin串相对应的值symbolVal的TR二值化。
具体地,作为一个示例,在存在语法元素的后缀bin串的情况下,语法元素的TRbin串可以是前缀bin串和后缀bin串的级联;在不存在后缀bin串的情况下,语法元素的TRbin串可以是前缀bin串。例如,可以导出前缀bin串如下。
可以导出语法元素的symbolVa1的前缀值以满足以下等式。
[等式6]
prefixVal=symbolVal>>cRiceParam
在等式6中,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串可以给出如下。
[表4]
同时,当prefixVal不小于cMax>>cRiceParam时,前缀bin串可以是长度cMax>>cRiceParam并且其所有bin都为1的比特串。
另外,当cMax大于symbolVal并且cRiceParam大于0时,可以存在TR bin串的后缀bin串。例如,可以如稍后描述的那样导出后缀bin串。
语法元素的symbolVal的后缀值可以通过以下等式来导出。
[等式7]
suffixVal=symbolVal-((prefixVal)<<cRiceParam)
这里,suffixVal可以表示symbolVal的后缀值。
可以基于对于suffixVal的FL二值化过程来导出TR bin串的后缀(即,后缀bin串),其中cMax值是(1<<cRiceParam)-1。
同时,如果输入参数cRiceParam的值为0,则TR二值化可以是精确截断的一元二值化,并且可以使用等于总是被解码的语法元素的最大可能值的cMax值。
另外,例如,可以执行EGk二值化过程如下。通过ue(v)编译的语法元素可以是Exp-Golumb编译的语法元素。
在一个示例中,可以执行0阶Exp-Golomb(EG0)二值化过程如下。
语法元素的解析过程可以通过从比特流的当前位置开始读取比特(包括第一非零比特),并且对诸如0的前导比特的数目进行计数来开始。下表描述了上述过程。
[表5]
另外,变量codeNum可以通过以下等式来导出。
[等式8]
codeNum=2leadingZeroBits-1+read_bits(leadingZeroBits)
这里,通过read_bits(leadingZeroBits)返回的值,即通过read_bits(leadingZeroBits)表示的值,可以被解释为首先记录的最高有效比特的无符号整数的二进制表示。
下表示出了Exp-Golomb码的结构,其中比特串被划分成“前缀”比特和“后缀”比特。
[表6]
“前缀”比特可以是如上所述解析以计算leadingZeroBits的比特并且可以由表6中的比特串的0或1表示。换句话说,上表6中以0或1开始的比特串可以表示前缀比特串。“后缀”比特可以是从codeNum的计算中解析的比特并且可以由上表6中的xi表示。换句话说,上表6中以xi开始的比特串可以表示后缀比特串。这里,i可以是范围从0到LeadZeroBits-1的值。另外,每个xi可以对应于0或1。
下表示出了指配给codeNum的比特串。
[表7]
当语法元素的描述符为ue(v)时,也就是说,当语法元素由ue(v)编译时,语法元素的值可以与codeNum相同。
另外,例如,可以如下执行EGk二值化过程。
EGk二值化过程的输入可以是对EGk二值化的请求。另外,EGk二值化过程的输出可以是针对与bin串相对应的simbolVal的EGk二值化。
可以导出针对symbolVal的EGk二值化过程的比特串如下。
[表8]
参照上表8,可以通过对put(X)的每次调用来将二进制值X添加到bin串的末尾。这里,X可以是0或1。
另外,例如,可以如下执行FL二值化过程。
FL二值化过程的输入可以是对FL二值化的请求和语法元素的cMax。另外,FL二值化过程的输出可以是针对与bin串相对应的symbolVal的FL二值化。
可以使用具有与符号值symbolVal的固定长度相对应的比特的比特串来执行FL二值化。这里,固定长度比特可以是无符号整数比特串。也就是说,符号值symbolVal的比特串可以通过FL二值化来导出,并且比特串的比特长度(即,比特的数目)可以是固定长度。
例如,固定长度可以通过以下等式来导出。
[等式9]
fixedLength=Ceil(Loq2(cMax+1))
对用于FL二值化的bin的索引可以使用在顺序上从最高有效比特到最低有效比特增加的值。例如,与最高有效比特有关的bin索引可以是binIdx=0。
同时,可以执行针对残差信息当中的语法元素abs_remainder的二值化过程如下。
针对abs_remainder和dec_abs_level的二值化过程的输入是对语法元素abs_remainder[n]或语法元素dec_abs_level[n]、颜色分量cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块的宽度的二进制对数的log2TbWidth以及作为变换块的高度的二进制对数的log2TbHeight的二值化的请求。亮度位置(x0,y0)可以基于图片的左上亮度样本来指示当前亮度变换块的左上样本。
针对abs_remainder(或dec_abs_level)的二值化过程的输出可以是abs_remainder(或dec_abs_level)的二值化(即,abs_remainder(或dec_abs_level)的二值化bin串)。可以通过二值化过程来导出abs_remainder(或dec_abs_level)的可用bin串。
abs_remainder(或dec_abs_level)的莱斯参数cRiceParam可以通过使用颜色分量cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)以及作为变换块的高度的二进制对数log2TbHeight作为输入所执行的莱斯参数导出过程来导出。将稍后描述莱斯参数导出过程的详细描述。
另外,例如,可以基于莱斯参数cRiceParam来导出abs_remainder(或dec_abs_level)的cMax。cMax可以通过以下等式来导出。
[等式10]
cMax=(cRiceParam==1?6:7)<<cRiceParam
参照等式10,如果cRiceParam的值为1,则可以将cMax导出为6<<cRiceParam,而如果cRiceParam的值不为1,则可以将cMax导出为7<<cRiceParam。
另一方面,在存在后缀bin串的情况下,abs_remainder(或dec_abs_level)的二值化,即abs_remainder(或dec_abs_level)的bin串,可以是前缀bin串和后缀bin串的级联。另外,在不存在后缀bin串的情况下,abs_remainder(或dec_abs_level)的bin串可以是前缀bin串。
例如,可以如稍后描述的那样导出前缀bin串。
abs_remainder的前缀值prefixVal可以通过以下等式来导出。
[等式11]
prefixVal=Min(cMax,abs_remainder[n])
abs_remainder的bin串的前缀(即,前缀bin串)可以通过对使用cMax和cRiceParam作为输入的prefixVal的TR二值化过程来导出。
如果前缀bin串与所有比特为1并且长度为4的比特串相同,则abs_remainder的bin串的后缀bin串可以存在并且可以如下所述来导出。
abs_remainder的后缀值suffixVal可以通过以下等式来导出。
[等式12]
suffixVal=abs_remainder[n]-cMax
abs_remainder的bin串的后缀bin串可以通过针对suffixVal的EGk二值化过程来导出,其中k被设置为cRiceParam+1。
同时,上述莱斯参数导出过程可以如下。
莱斯参数导出过程的输入是颜色分量索引cIdx、亮度位置(x0,y0)、当前系数扫描位置(xC,yC)、作为变换块的宽度的二进制对数的log2TbWidth以及作为变换块的高度的二进制对数的log2TbHeight。亮度位置(x0,y0)可以指示基于图片的左上亮度样本的当前亮度变换块的左上样本。另外,莱斯参数导出过程的输出可以是莱斯参数cRiceParam。
例如,可以根据下表中所示的伪代码基于给定语法元素sig_coeff_flag[x][y]、分量索引cIdx和左上亮度位置(x0,y0)处的变换块的数组AbsLevel[x][C]来导出变量locSumAbs。
[表9]
可以导出莱斯参数cRiceParam如下。
例如,当locSumAbs小于12时,可以将cRiceParam设置为0。另选地,当不满足上述条件并且locSumAbs小于25时(即,当locSumAbs大于或等于12且小于25时),可以将cRiceParam设置为1。或者,当不满足上述条件时(即,当locSumAbs大于或等于25时),可以将cRiceParam设置为2。
同时,与发送上述语法元素的实施例不同,可以提出用信号通知tu_mts_idx的方法。
具体地,可以将现有的VVC草案3中的用信号通知tu_mts_idx的方法与用信号通知所提出的tu_mts_idx的方法进行比较如下。
[表10]
如表10中所示,根据现有的方案,首先解析当前块的MTS标志,然后解析变换跳过标志,此后可以执行MTS索引编译。这里,可以通过固定长度二值化来执行针对MTS索引的编译,并且MTS索引的固定比特长度可以是2。
另选地,根据所提出的方案,可以在不用单独解析变换跳过标志和MTS标志的情况下对MTS索引进行编译,并且截断一元二值化可以被用于对MTS索引进行编译。这里,MTS索引可以指示是否对当前块的残差信息应用变换,并且可以指示是否应用MTS。也就是说,在所提出的方案中,可以提出将变换跳过标志、MTS标志和MTS索引作为一个语法元素来用信号通知的方案。在所提出的方案中,MTS索引的第一bin可以指示是否对当前块的残差信息应用变换,并且MTS索引的第二bin可以指示是否应用MTS以及应用的变换核。
在所提出的方法中通过MTS索引的值所指示的含义和二值化值可以如下表中所示。
[表11]
例如,当MTS索引的值为0时,MTS索引可以指示对当前块应用变换,不应用MTS,并且水平变换核类型和垂直变换核类型是DCT-2。另外,当MTS索引的值为1时,MTS索引可以指示不对当前块应用变换(即,不应用MTS并且不指示变换核类型)。另外,当MTS索引的值为2时,MTS索引可以指示对当前块应用变换和MTS,并且水平变换核类型和垂直变换核类型是DST-7。另外,当MTS索引的值为3时,MTS索引可以指示对当前块应用变换和MTS,水平变换核类型是DCT-8,并且垂直变换核类型是DST-7。另外,当MTS索引的值为4时,MTS索引可以指示对当前块应用变换和MTS,水平变换核类型是DST-7,垂直变换核类型是DCT-8。另外,当MTS索引的值为5时,MTS索引可以指示对当前块应用变换和MTS,并且水平变换核类型和垂直变换核类型是DCT-8。
另选地,由MTS索引的值所指示的含义和二值化值的另一示例可以如下表所示。
[表12]
例如,当MTS索引的值为0时,MTS索引可以指示不对当前块应用变换(即,不应用MTS并且不指示变换核类型)。另外,当MTS索引的值为1时,MTS索引可以指示对当前块应用变换,不应用MTS,并且水平变换核类型和垂直变换核类型是DCT-2。另外,当MTS索引的值为2时,MTS索引可以指示对当前块应用变换和MTS并且水平变换核类型和垂直变换核类型是DST-7。另外,当MTS索引的值为3时,MTS索引可以指示对当前块应用变换和MTS,水平变换核类型是DCT-8,并且垂直变换核类型是DST-7。另外,当MTS索引的值为4时,MTS索引可以指示对当前块应用变换和MTS,水平变换核类型是DST-7,并且垂直变换核类型是DCT-8。另外,当MTS索引的值为5时,MTS索引可以指示对当前块应用变换和MTS,并且水平变换核类型和垂直变换核类型是DCT-8。
同时,可以不改变上下文模型的数目,并且为tu_mts_idx的每个bin指定上下文索引增量ctxInc的方法可以如下表中所示。
[表13]
另外,该文档提出了一种修改在现有的残差编译方法中的内容(稍后描述)以向残差编译应用表示量化预测残差的变换跳过级别(即,空间域中的残差)的统计和信号特性的方法。
无最后非零变换系数的位置:由于残差信号(即,残差样本)反映空间残差并且在预测之后不通过变换跳过来执行通过变换进行的能量压缩,所以后段零的高概率或在变换块的右下处的无效级别可能不再发生。因此,在这种情况下,可以省略发信号通知关于最后非零变换系数的扫描位置的信息。替代地,要首先编译的第一子块可以是变换块中的右下子块。同时,可以将非零变换系数称为有效系数。
子块CBF:在不存在关于最后非零变换系数的扫描位置的信息的信令的情况下,应用变换跳过,并且具有coded_sub_block_flag的子块的CBF信令应该被修改如下。
由于量化,可能仍在变换块内局部地发生以上提及的非重要级别序列。因此,可以如上所述去除关于最后非零变换系数的扫描位置的信息,并且可以对于所有子块对coded_sub_block_flag进行编译。
另外,用于DC频率位置的子块(左上子块)的coded_sub_block_flag可以指示特殊情况。例如,在VVC草案3中,左上子块的coded_sub_block_flag不被用信号通知并且可以总是被导出为等于1。当最后非零变换系数的扫描位置位于不是左上子块的子块中时,可以指示在DC子块(即,左上子块)外部存在至少一个有效级别。结果,对于DC子块的coded_sub_block_flag被导出为1但是可以包括仅0/非有效级别。如上所述,如果对当前块应用变换跳过并且没有关于最后非零变换系数的扫描位置的信息,则可以用信号通知每个子块的coded_sub_block_flag。这里,除了当除DC子块以外的所有子块的coded_sub_block_flag已经为0时之外,也可以包括DC子块的coded_sub_block_flag。在这种情况下,可以导出DC子块的coded_sub_block_flag等于1(inferDcSbCbf=1)。因此,由于DC子块应该具有至少一个有效级别,所以如果除DC子块中的第一位置(0,0)的sig_coeff_flag以外的所有sig_coeff_flag都是0,则第一位置(0,0)的sig_coeff_flag不被用信号通知并且可以被导出等于1(inferSbDcSigCoeffFlag=1)。
另外,可以改变coded_sub_block_flag的上下文建模。例如,可以通过当前子块的右子块的coded_sub_block_flag和当前子块的下子块的coded_sub_block_flag之和以及coded_sub_block_flag的逻辑分离来计算上下文模型索引。
sig_coeff_flag上下文建模:可以修改sig_coeff_flag上下文建模的局部模板以仅包括当前扫描位置的右位置NB0和下位置NB1。可以将上下文模型偏移导出为有效外围位置的sig_coeff_flag[NB0]+sig_coeff_flag[NB1]的数目。因此,可以消除根据当前变换块的对角线d对不同上下文集的选择。结果,可以设置三个上下文模型和单个上下文模型以对sig_coeff_flag进行编译。
abs_level_gt1_flag和par_level_flag上下文建模:单个上下文模型可以被用于abs_level_gt1_flag和par_level_flag。
abs_remainder编译:变换跳过残差绝对级别的经验分布仍然符合拉普拉斯或几何分布,但是可能存在大于变换系数绝对级别的不稳定性。特别地,对于残差绝对级别在连续实现的窗口内的协方差可能更高。因此,可以修改abs_remainder的二值化和上下文建模如下。
例如,更高的截止值可以被用于abs_remainder的二值化。由此,可以在从使用sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的编译到对于abs_remainder的莱斯码的转换点以及对于每个bin位置的专用上下文模型中,提供更高的压缩效率。如果增加截止值,则可能发生“大于X”的更多标志(例如,abs_level_gt5_flag、abs_level_gt7_flag等)直到达到截止值为止。可以将截止值固定为5(numGtFlags=5)。
另外,可以修改用于莱斯参数导出的模板。也就是说,可以将仅当前扫描位置的右外围位置和下外围位置认为是sig_coeff_flag上下文建模的局部模板。
coeff_sign_flag上下文建模:由于符号序列内的不稳定性并且预测残差常常有偏差,所以即使当全局经验分布几乎均匀分布时,也可以使用上下文模型来对符号相关信息进行编译。单个专用上下文模型可以被用于符号相关信息的编译,并且可以在sig_coeff_flag之后解析符号相关信息并且与所有上下文编译bin一起维护。
上下文编译bin的减少:第一扫描通过(pass)的语法元素(即sig_coeff_flag、abs_level_gt1_flag和par_level_flag)的传输可能不改变。然而,每样本的上下文编译bin(CCB)的最大值的限制可以被去除并且可以被调整为不同的。在CCB>k的情况下,可以通过指定无效模式来导出CCB减少。这里,k可以是正整数。例如,在常规级别编译模式的情况下,k可以是2(k=2)。以上提及的限制可以对应于量化空间的减少。
可以如下表中所示的那样表示与通过应用上述修改而编译的残差数据有关的语法元素。
[表14]
同时,如上表1中所示,根据VVC标准,在对残差信号(即,残差信息)进行编码/解码之前,可以首先发送是否应用所对应的块的变换。也就是说,在解析当前块的残差信息之前,可以首先解析指示是否应用变换的变换跳过标志(即,transform_skip_flag)。可以将变换跳过标志称为变换或非变换标志或变换应用标志。
通过在变换域中表达残差信号之间的相关性,数据被压缩(数据压缩)并递送到解码设备,但是如果残差信号之间的相关性不足,则数据压缩可能不会充分地发生。在这种情况下,可以省略包括复杂计算过程的转换过程并且可以将像素域(空间域)中的残差信号发送到解码设备。由于未应用变换的像素域中的残差信号具有与一般变换域中的残差信号不同的特性(例如,残差信号的分布、每个残差信号的绝对级别等),所以提出了用于向解码设备高效地递送信号的残差信号编码/解码方法。
图6示例性地示出了用于执行所提出的发送像素域的残差信号的方法的解码设备。
可以以变换块为单位发送变换跳过标志。这里,参考上表1,变换跳过标志可以是通过将它限制为特定块大小来解析的。也就是说,参考上表1,可以仅针对块大小等于或小于特定大小的变换块解析变换跳过标志。例如,在当前变换块的大小小于或等于4x4大小时,可以解析当前变换块的变换跳过标志。
在这方面,作为示例,该文档提出了用于确定是否解析变换跳过标志的块的大小被不同地配置的实施例。具体地,Log2TbWidth和log2TbHeight的大小可以由变量wN和hN确定,并且根据现有的方案,wN和hN可以选自下列中的一个。
-wN={2,3,4,5,6}
-hN={2,3,4,5,6}
也就是说,wN可以选自2、3、4、5和6中的一个,并且hN可以选自2、3、4、5和6中的一个。
可以如下表中所示的那样表示根据本实施例的解析变换跳过标志的方法。
[表15]
根据表15中公开的本实施例,当指示当前块(即,当前变换块)的宽度的log2TbWidth等于或小于wN,并且指示当前块的高度的log2TbHeight等于或小于hN时,可以解析当前块的变换跳过标志。可以基于变换跳过标志来确定对当前块的残差信号进行解码的方法。通过所提出的实施例,通过高效地处理具有不同统计特性的信号,可以降低熵解码过程的复杂性并且可以提高编码效率。
另选地,参考上表1,可以提出通过将变换跳过标志限制为特定块大小来解析变换跳过标志但是用于确定是否解析变换跳过标志的条件被定义为块的样本的数目而不是所对应的块的宽度和高度信息的实施例。也就是说,例如,可以提出使用log2TbWidth和log2TbHeight的乘积作为确定是否解析变换跳过标志的语法元素transform_skip_flag的条件的方法。
log2TbWidth和log2TbHeight可以选自下列中的一个。
-log2TbWidth={1,2,3,4,5,6}
-log2TbHeight={1,2,3,4,5,6}
也就是说,log2TbWidth可以选自1、2、3、4、5和6中的一个,并且log2TbHeight可以选自1、2、3、4、5和6中的一个。
图7a和图7b示例性地示出了基于当前块的样本的数目来确定是否解析变换跳过标志的实施例以及执行该实施例的解码设备。
参照图7a,解码设备可以确定在高级语法中是否允许确定是否跳过当前块的变换(S700)。当在高级语法中允许确定是否跳过当前块的变换时,解码设备可以确定语法元素cu_mts_flag的值是否为0(S710)。
当cu_mts_flag的值为0时,解码设备可以确定当前块的log2TbWidth和log2TbHeight的乘积是否等于或小于阈值(S720)。也就是说,解码设备可以确定当前块的样本的数目是否等于或小于阈值。
当log2TbWidth和log2TbHeight的乘积等于或小于阈值时,解码设备可以将变换跳过标志的语法元素transform_skip_flag的值解析为1(S730)。
同时,当不满足步骤S700至S720的条件时,解码设备可以将变换跳过标志的语法元素transform_skip_flag的值导出为0(S740)。
图7b示例性地示出了用于执行通过块中的样本的数目来确定是否对块进行变换的实施例的解码设备。参照图7b,解码设备可以基于在高级语法中是否允许变换跳过、块大小信息以及是否应用MTS来确定是否对于块解析变换跳过标志。
在基于块中的样本的数目来确定是否变换的情况下,与通过块的宽度和高度来控制是否变换相比,可以在变换排除块中包括具有各种形状的块。例如,如果在上述控制是否按块的宽度和高度而变换的实施例中将log2TbWidth和log2TbHeight二者定义为2,则可以在变换排除块中包括仅大小为2x4的块、大小为4x2的块和大小为4x4的块。然而,如果是否变换由样本的数目控制,则也可以包括大小为2x8的块和大小为8x2的块作为变换排除块。
可以基于变换跳过标志来确定对残差信号进行解码的方法。另外,通过经由所提出的实施例高效地处理具有不同统计特性的信号,可以降低熵解码过程中的复杂性并且可以提高编译效率。
例如,可以提出以下考虑到在不对当前块的残差信号应用变换的情况下的统计特性对残差信号进行编码和解码的实施例。
通常,在应用了变换并量化的变换块(即,应用了变换并量化的变换系数)的情况下,能量通过变换而集中在变换块的左上部附近,并且能量级别通过量化在朝向右下部(高频区域)的方向上减小。考虑到前述特性,如图5中所示,已经为了高效的残差编码引入对角线扫描技术。然而,在变换跳过块(即包括不应用变换的残差系数的变换块)的情况下,能量可以均匀地存在于整个块中,而不集中在左上角上,并且级别的大小也是随机的。因此,使用对角线扫描技术来编码可能效率低下。因此,该实施例提出了适合于变换跳过块特性的残差扫描方案。这里,残差系数可以是指变换系数。
另外,作为变换跳过块的另一特征,当应用于当前要编译的变换跳过块的预测模式为帧内预测模式时,残差样本的大小在预测样本与参考样本之间的距离大的右下部的方向上增加。考虑到这些特性,本实施例提出了这样的方法,其中残差信号被重新布置和编码,使得可以从变换块的左上部起扫描它们,而且解码设备解析残差信号并且将它们重新布置回到其原始位置。也就是说,该实施例提出了这样的方法,其中残差信号被重新布置和编码,使得可以从变换块的左上部扫描具有大的大小的残差信号,以及解码设备解析残差信号并且将它们重新布置回到其原始位置。作为类似的效果,可以考虑在残差信号编码和解码步骤中定义新扫描方法的方法。然而,当如在该实施例中提出的方法中一样重新布置残差信号时,可以在没有修改的情况下使用现有的残差编码模块。
当在维持现有的残差编译模块的同时重新布置残差时要考虑的一点是应该从左上区域向右下区域定义扫描顺序。
作为重新布置方法的示例,可以定义使当前块旋转180度的方法。
图8示例性地示出了应用了旋转180度的重新布置方法的当前块的残差系数。
图8中所示的当前块中的数字按光栅扫描顺序指示块中的像素位置。参照图8,可以将左上位置中的残差系数重新布置到右下位置,其是旋转了180度的位置。参照图8,可以通过旋转了180度的重新布置过程来将残差系数重新布置到相对于变换块的中心对称的位置。在重新布置之后,可以应用一般残差系数扫描顺序,并且由于重新布置,可以首先考虑位于右下部处的残差系数,并且由于重新布置,可以稍后扫描位于左上部处的残差系数。
另选地,作为重新布置方法的另一示例,可以定义镜像当前块的方法。同时,可以根据镜像的方向来将该方法划分成反对角线镜像和主对角镜像。
图9示例性地示出了应用了镜像重新布置方法的当前块的残差系数。图9的(a)例示了通过反对角线镜像来重新布置当前块的残差系数的示例,并且图9的(b)例示了通过主对角线镜像来重新布置当前块的残差系数的示例。
参照图9的(a),可以通过反对角线镜像的重新布置过程来将残差系数重新布置到相对于当前块的右向上对角线对称的位置。这里,右向上对角线可以表示穿过当前块的中心的右向上方向上的对角线。例如,可以将左上位置处的残差系数重新布置到右下位置,其是反对角线地镜像的位置。另外,例如,可以将#1残差系数(即,与左上位置的残差系数的右侧相邻的残差系数)重新布置到与右下位置相邻的位置,其是反对角线地镜像的位置。也就是说,在当前块的宽高和高度为4并且当前块的左上样本位置处的x分量和y分量为0时,可以将位置(1,0)处的残差系数重新布置到作为反对角线地镜像的位置的位置(3,3)。
另外,参照图9的(b),可以通过主对角线镜像的重新布置过程来将残差系数重新布置到相对于当前块的左向上对角线对称的位置。这里,左向上对角线可以指示穿过当前块的中心的左向上对角线。例如,可以将右上位置处的残差系数重新布置到左下位置,其是主对角线地镜像的位置。另外,例如,可以将#1残差系数(即,与左上位置中的残差系数的右侧相邻的残差系数)重新布置到与左上位置的下侧相邻的位置,其是主对角线地镜像的位置。也就是说,在当前块的宽度和高度为4并且当前块的左上样本位置的x分量和y分量为0时,可以将位置(1,0)中的残差系数重新布置到(0,1)位置,其是主对角线地镜像的位置。
另选地,作为重新布置方法的另一示例,可以定义使当前块翻转的方法。同时,可以根据用作翻转参考的轴线来单独地定义垂直翻转和水平翻转。
图10示例性地示出了应用翻转重新布置方法的当前块的残差系数。图10的(a)例示了通过垂直翻转来重新布置当前块的残差系数的示例,并且图9的(b)例示了通过水平翻转来重新布置当前块的残差系数的示例。
参照图10的(a),可以通过垂直翻转重新布置过程来将残差系数重新布置到相对于当前块的垂直轴线对称的位置。这里,垂直轴线可以表示穿过当前块的中心的垂直线。例如,可以将左上位置中的残差系数重新布置到右上位置,其是垂直翻转的位置。另外,例如,可以将#1残差系数(即,与左上位置中的残差系数的右侧相邻的残差系数)重新布置到与右上位置的左侧相邻的位置,其是垂直翻转的位置。也就是说,在当前块的宽度和高度为4并且当前块的左上样本位置的x分量和y分量为0时,可以将位置(1,0)中的残差系数重新布置到(2,0)位置,其是垂直翻转的位置。
另外,参照图10的(b),可以通过水平翻转的重新布置过程来将残差系数重新布置到相对于变换块的水平轴线对称的位置。这里,水平轴线可以表示穿过当前块的中心的水平线。例如,可以将右上位置中的残差系数重新布置到右下位置,其是水平翻转的位置。另外,例如,可以将#1残差系数(即,与左上位置中的残差系数的右侧相邻的残差系数)重新布置到与左下位置的右侧相邻的位置,其是水平翻转的位置。也就是说,在当前块的宽度和高度为4并且当前块的左上样本位置的x分量和y分量为0时,可以将位置(1,0)的残差系数重新布置到(1,3)位置,其是水平翻转的位置。
另选地,作为重新布置方法的另一示例,可以提出根据距帧内预测的参考样本的距离来重新布置当前块的残差系数的方法。例如,可以根据参考样本与预测块之间的距离在TU中定义层,并且编码设备可以确定是否在每个层中以横向优先扫描或纵向优先扫描扫描残差系数,并且可以根据扫描顺序按逆光栅顺序(从右向左、自下向上)重新布置残差系数。也就是说,可以基于距参考样本的距离来定义当前块的层,以及编码设备/解码设备可以将每个层中的残差系数的扫描顺序确定为横向优先扫描或纵向优先扫描,并且根据扫描顺序按逆光栅顺序(从右向左、自下向上)重新布置残差系数。同时,解码设备可以通过按逆顺序执行上述重新布置过程来导出现有的残差系数。
图11示例性地示出了应用了上述实施例的当前块的残差系数,其中导出基于距参考样本的距离而划分的层并且根据逆光栅顺序在各位置中重新布置。图11的(a)例示了按横向优先扫描顺序在根据逆光栅顺序的各位置处重新布置每个层中的残差系数的示例,并且图11的(b)例示了按纵向优先扫描顺序在根据逆光栅顺序的各位置处重新布置每个层中的残差系数的示例。
参照图11,当前块的层包括与至少一个参考样本相邻的第一层、距最近的参考样本的距离为1的第二层、距最近的参考样本的距离为2的第三层,以及距最近的参考样本的距离为3的第四层。也就是说,第一层可以包括与至少一个参考样本相邻的残差系数(例如,图11中例示的在重新布置之前的当前块的#0至#4残差系数、#8残差系数和#12残差系数)(换句话说,第一层可以包括距最近的参考样本的距离为1的残差系数),第二层可以包括距最近的参考样本的距离为2的残差系数(例如,图11中例示的在重新布置之前的当前块的#5至#7残差系数、#9残差系数和#13残差系数),第三层可以包括距最近的参考样本的距离为3的残差系数(例如,图11中例示的在重新布置之前的当前块的#10和#11残差系数及#14残差系数),并且第四层可以包括距最近的参考样本的距离为4的残差系数(例如,图11中例示的在重新布置之前的当前块的#15残差系数)。
当如上所述定义当前块的层时,编码设备可以将横向优先扫描和纵向优先扫描中的一个确定为用于当前块的层的扫描方法。
例如,当横向优先扫描被确定为用于当前块的层的扫描方法时,可以如图11的(a)中所示的那样执行残差系数的重新布置。
具体地,编码设备可以按顺序从第一层到第四层扫描,可以在对应层中从左上位置处的残差系数向纵向侧扫描,可以扫描横向侧的所有残差系数,并且可以自上向下扫描纵向侧的剩余残差系数。
例如,第一层中的横向残差系数可以包括#0至#3残差系数,而第一层中的纵向残差系数可以包括#4残差系数、#8残差系数和#12残差系数。编码设备/解码设备可以从左向右按顺序扫描第一层中的横向残差系数(按#1、#2和#3残差系数的顺序扫描),并且此后,编码设备/解码设备可以自上向下按顺序扫描第一层中的纵向残差系数(按#4、#8和#12残差系数的顺序扫描)。接下来,可以扫描第二层。第二层中的横向残差系数可以包括#5至#7残差系数,并且第二层中的纵向残差系数可以包括#9和#13残差系数。编码设备可以从左向右扫描第二层中的横向残差系数(按#5、#6和#7残差系数的顺序扫描),然后自上向下扫描第二层中的横向残差系数(按#9和#13残差系数的顺序扫描)。接下来,可以扫描第三层。第三层中的横向残差系数可以包括#10和#11残差系数,而第三层中的纵向残差系数可以包括#14残差系数。编码设备可以从左向右按顺序扫描第三层中的横向残差系数(按#10和#11残差系数的顺序扫描),然后自上向下扫描第三层中的纵向残差系数(按#14残差系数的顺序扫描)。接下来,可以扫描第四层。第四层中的横向残差系数可以包括#15残差系数。编码设备可以从左向右按顺序扫描第四层中的横向残差系数(扫描#15残差系数)。
此后,参照图11的(a),编码设备可以根据逆光栅顺序(从右向左、自下向上)将残差系数按扫描顺序重新布置在各位置处。残差系数的扫描顺序可以是#0、#1、#2、#3、#4、#8、#12、#5、#6、#7、#9、#13、#10、#11、#14和#15残差系数的顺序。残差系数可以按扫描顺序重新布置到当前块中根据逆光栅顺序的位置。例如,可以将#0残差系数重新布置在右下位置中,可以将#1、#2和#3残差系数重新布置在右下位置的向左方向上,可以将#4、#8、#12和#5残差系数从右向左按顺序重新布置在右下位置的上部行(即,当前块的第三行)中,可以将#6、#7、#9和#13残差系数从右向左按顺序重新布置在当前块的第二行中,并且可以将#10、#11、#14和#15残差系数从右向左按顺序重新布置在当前块的第一行中。
另外,例如,当纵向优先扫描被确定为用于当前块的层的扫描方法时,如图11的(b)中所示的那样执行残差系数的重新布置。
具体地,编码设备可以按顺序从第一层到第四层扫描,可以在对应层中从左上位置处的残差系数向纵向侧扫描,可以扫描纵向侧的所有残差系数,并且可以自上向下扫描纵向侧的剩余残差系数。
例如,第一层中的纵向残差系数可以包括第一层中的#0残差系数、#4残差系数、#8残差系数和#12残差系数,而第一层中的横向残差系数可以包括#1至#3残差系数。编码设备可以自上向下按顺序扫描第一层中的纵向残差系数(按#0、#4、#8和#12残差系数的顺序扫描),并且此后,编码设备可以从左向右扫描第一层中的横向残差系数(按#1、#2和#3残差系数的顺序扫描)。接下来,可以扫描第二层。第二层中的纵向残差系数可以包括#5、#9和#13残差系数,而第二层中的横向残差系数可以包括#6和#7残差系数。编码设备可以自上向下按顺序扫描第二层中的纵向残差系数(按顺序扫描#5、#9和#13残差系数),然后从左向右扫描第二层中的横向残差系数(按#6和#7残差系数的顺序扫描)。接下来,可以扫描第三层。第三层中的纵向残差系数可以包括#10和#14残差系数,而第三层中的横向残差系数可以包括#11残差系数。编码设备可以自上向下扫描第三层中的纵向残差系数(按#10和#14残差系数的顺序扫描),然后从左向右扫描第三层中的横向残差系数(按#11残差系数的顺序扫描)。接下来,可以扫描第四层。第四层中的纵向残差系数可以包括#15残差系数。编码设备可以按#15残差系数的顺序自上向下扫描第四层中的纵向残差系数。
此后,参照图11的(b),编码设备可以根据逆光栅顺序(从右向左、自下向上)将残差系数按扫描顺序重新布置在各位置处。残差系数的扫描顺序可以是#0、#4、#8、#12、#1、#2、#3、#5、#9、#13、#6、#7、#10、#14、#11和#15残差系数的顺序。残差系数可以按扫描顺序重新布置到当前块中根据逆光栅顺序的位置。例如,可以将#0残差系数重新布置在右下位置处,并且可以将#4、#8和#12残差系数重新布置在右下位置的向左方向上,可以将#1、#2、#3和#5残差系数从右向左按顺序重新布置在右下位置的上部行(当前块的第三行)中,可以将#9、#13、#6和#7残差系数从右向左按顺序重新布置在当前块的第二行中,并且可以将#10、#14、#11和#15残差系数从右向左按顺序重新布置在当前块的第一行中。
另选地,可以提出根据距帧内预测的参考样本的距离来重新布置当前块的残差系数的另一实施例。例如,可以根据参考样本与预测块之间的距离在TU中定义层,并且编码设备可以确定是否在每个层中以横向优先扫描或纵向优先扫描扫描残差系数,并且可以根据扫描顺序按对角线扫描顺序重新布置残差系数。也就是说,可以基于距参考样本的距离来定义当前块的层,并且编码设备可以将每个层中的残差系数的扫描顺序确定为横向优先扫描或纵向优先扫描,并且根据扫描顺序将残差系数按对角线扫描顺序重新布置到位置。同时,解码设备可以通过按逆顺序执行上述重新布置过程来导出现有的残差系数。
图12示例性地示出了应用上述实施例的当前块的残差系数,其中导出基于距参考样本的距离而划分的层并且根据对角线扫描顺序在各位置中重新布置。图12的(a)例示了按横向优先扫描顺序在根据对角线扫描顺序的各位置处重新布置每个层中的残差系数的示例,并且图12的(b)例示了按纵向优先扫描顺序在根据对角线扫描顺序的各位置处重新布置每个层中的残差系数的示例。
参照图12,当前块的层包括与至少一个参考样本相邻的第一层、距最近的参考样本的距离为1的第二层、距最近的参考样本的距离为2的第三层,以及距最近的参考样本的距离为3的第四层。也就是说,第一层可以包括与至少一个参考样本相邻的残差系数(例如,图12中例示的在重新布置之前的当前块的#0至#4残差系数、#8残差系数和#12残差系数)(换句话说,第一层可以包括距最近的参考样本的距离为1的残差系数),第二层可以包括距最近的参考样本的距离为2的残差系数(例如,图12中例示的在重新布置之前的当前块的#5至#7残差系数、#9残差系数和#13残差系数),第三层可以包括距最近的参考样本的距离为3的残差系数(例如,图12中例示的在重新布置之前的当前块的#10和#11残差系数及#14残差系数),并且第四层可以包括距最近的参考样本的距离为4的残差系数(例如,图12中例示的在重新布置之前的当前块的#15残差系数)。
当如上所述定义当前块的层时,编码设备可以将横向优先扫描和纵向优先扫描中的一个确定为用于当前块的层的扫描方法。
例如,当横向优先扫描被确定为用于当前块的层的扫描方法时,可以如图12的(a)中所示的那样执行残差系数的重新布置。
具体地,编码设备可以按顺序从第一层到第四层扫描,可以在对应层中从左上位置处的残差系数向纵向侧扫描,可以扫描横向侧的所有残差系数,并且可以自上向下扫描纵向侧的剩余残差系数。
例如,第一层中的横向残差系数可以包括#0至#3残差系数,而第一层中的纵向残差系数可以包括#4残差系数、#8残差系数和#12残差系数。编码设备可以从左向右按顺序扫描第一层中的横向残差系数(按#1、#2和#3残差系数的顺序扫描),并且此后,编码设备/解码设备可以自上向下按顺序扫描第一层中的纵向残差系数(按#4、#8和#12残差系数的顺序扫描)。接下来,可以扫描第二层。第二层中的横向残差系数可以包括#5至#7残差系数,而第二层中的纵向残差系数可以包括#9和#13残差系数。编码设备可以从左向右扫描第二层中的横向残差系数(按#5、#6和#7残差系数的顺序扫描),然后自上向下扫描第二层中的横向残差系数(按#9和#13残差系数的顺序扫描)。接下来,可以扫描第三层。第三层中的横向残差系数可以包括#10和#11残差系数,而第三层中的纵向残差系数可以包括#14残差系数。编码设备可以从左向右按顺序扫描第三层中的横向残差系数(按#10和#11残差系数的顺序扫描),然后自上向下扫描第三层中的纵向残差系数(按#14残差系数的顺序扫描)。接下来,可以扫描第四层。第四层中的横向残差系数可以包括#15残差系数。编码设备可以从左向右按顺序扫描第四层中的横向残差系数(扫描#15残差系数)。
此后,参照图12的(a),编码设备可以根据对角线扫描顺序(从右上向左下、从右下向左上)将残差系数按扫描顺序重新布置在各位置处。残差系数的扫描顺序可以是#0、#1、#2、#3、#4、#8、#12、#5、#6、#7、#9、#13、#10、#11、#14和#15残差系数的顺序。残差系数可以按扫描顺序重新布置到当前块中根据对角线扫描顺序的位置。例如,可以将#0残差系数重新布置在定位于第一右上对角线上的右下位置处,可以将#1和#2残差系数从右上侧向左上侧按顺序重新布置在当前块的第二右上对角线(即,第一右上对角线的左上侧向右上对角线)中,可以将#3、#4和#8残差系数从右上侧向左上侧按顺序重新布置在第三向右上对角线(即,第二右上对角线的左上侧向右上对角线)中,可以将#12、#5、#6和#7残差系数按顺序重新布置在第四向右上对角线(即,第三右上对角线的左上侧向右上对角线)中,可以将#9、#13和#10残差系数从右上侧向左上侧按顺序重新布置在第五向右上对角线(即,第四右上对角线的左上侧向右上对角线)中,可以将#11和#14残差系数从右上侧向左上侧按顺序重新布置在第六向右上对角线(即,第五左上对角线的左上侧向右上对角线)中,并且可以将#15残差系数重新布置在定位于第七向右上对角线(即,第六右上对角线的左上侧向右上对角线)中的左上位置处。
另外,例如,当纵向优先扫描被确定为用于当前块的层的扫描方法时,如图12的(b)中所示的那样执行残差系数的重新布置。
具体地,编码设备可以按顺序从第一层到第四层扫描,可以在对应层中从左上位置处的残差系数向纵向侧扫描,可以扫描纵向侧的所有残差系数,并且可以自上向下扫描纵向侧的剩余残差系数。
例如,第一层中的纵向残差系数可以包括第一层中的#0残差系数、#4残差系数、#8残差系数和#12残差系数,而第一层中的横向残差系数可以包括#1到#3残差系数。编码设备可以自上向下按顺序扫描第一层中的纵向残差系数(按#0、#4、#8和#12残差系数的顺序扫描),并且此后,编码设备可以从左向右扫描第一层中的横向残差系数(按#1、#2和#3残差系数的顺序扫描)。接下来,可以扫描第二层。第二层中的纵向残差系数可以包括#5、#9和#13残差系数,而第二层中的横向残差系数可以包括#6和#7残差系数。编码设备可以自上向下按顺序扫描第二层中的纵向残差系数(按顺序扫描#5、#9和#13残差系数),然后从左向右扫描第二层中的横向残差系数(按#6和#7残差系数的顺序扫描)。接下来,可以扫描第三层。第三层中的纵向残差系数可以包括#10和#14残差系数,而第三层中的横向残差系数可以包括#11残差系数。编码设备可以自上向下扫描第三层中的纵向残差系数(按#10和#14残差系数的顺序扫描),然后从左向右扫描第三层中的横向残差系数(按#11残差系数的顺序扫描)。接下来,可以扫描第四层。第四层中的纵向残差系数可以包括#15残差系数。编码设备可以按#15残差系数的顺序自上向下扫描第四层中的纵向残差系数。
此后,参照图12的(b),编码设备可以根据对角线扫描顺序(从右上向左下、从右下向左上)将残差系数按扫描顺序重新布置在各位置处。残差系数的扫描顺序可以是#0、#4、#8、#12、#1、#2、#3、#5、#9、#13、#6、#7、#10,#14、#11和#15残差系数的顺序。残差系数可以按扫描顺序重新布置到当前块中根据对角线扫描的位置。例如,可以将#0残差系数重新布置在定位于第一右上对角线上的右下位置处,可以将#4和#8残差系数从右上侧向左上侧按顺序重新布置在当前块的第二右上对角线(即,第一右上对角线的左上侧向右上对角线)中,可以将#12、#1和#2残差系数从右上侧向左上侧按顺序重新布置在第三向右上对角线(即,第二右上对角线的左上侧向右上对角线)中,可以将#3、#5、#9和#13残差系数从右上侧向左上侧按顺序重新布置在第四向右上对角线(即,第三右上对角线的左上侧向右上对角线)中,可以将#6、#7和#10残差系数从右上侧向左上侧按顺序重新布置在第五向右上对角线(即,第四右上对角线的左上角侧向右上对角线)中,可以将#14和#11残差系数从右上侧向左上侧按顺序重新布置在第六向右上对角线(即,第五左上对角线的左上侧向右上对角线)中,并且可以将#15残差系数重新布置在定位于第七向右上对角线(即,第六右上对角线的左上侧向右上对角线)中的左上位置处。
另选地,可以提出根据距帧内预测的参考样本的距离来重新布置当前块的残差系数的另一实施例。例如,可以提出将参考样本(左参考样本或上参考样本)设置为参考、基于距所设置的参考样本的距离来定义当前块的层、扫描残差系数并且随后将残差系数按扫描顺序在根据对角线扫描顺序的各位置处重新布置的方法。这里,可以通过纵向优先扫描来扫描基于距左参考样本的距离而定义的层中的残差系数,并且可以用横向优先扫描来扫描基于距上参考样本的距离而定义的层中的残差系数。
图13示例性地示出了应用了上述实施例的当前块的残差系数,其中导出基于距特定参考样本的距离而划分的层并且根据对角线扫描顺序在各位置中重新布置。图13的(a)例示了按横向优先扫描顺序在根据对角线扫描顺序的各位置处重新布置基于距上参考样本的距离而设置的层中的残差系数的示例,并且图13的(b)例示了以纵向优先扫描顺序在根据对角线扫描顺序的各位置处重新布置基于距上参考样本的距离而设置的层中的残差系数的示例。同时,解码设备可以通过按逆顺序执行上述重新布置过程来导出现有的残差系数。
参照图13的(a),当前块的层包括与至少一个上参考样本相邻的第一层、距最近的上参考样本的距离为1的第二层、距最近的上参考样本的距离为2的第三层和距最近的上参考样本的距离为3的第四层。也就是说,第一层可以包括与至少一个上参考样本相邻的残差系数(例如,图13的(a)中例示的在重新布置之前的当前块的#0到#3残差系数)(换句话说,第一层可以包括距最近的上参考样本的距离为1的残差系数),第二层可以包括距最近的上参考样本的距离为2的残差系数(例如,图13的(a)中例示的在重新布置之前的当前块的#4到#7残差系数),第三层可以包括距最近的上参考样本的距离为3的残差系数(例如,图13的(a)中例示的在重新布置之前的当前块的#8和#11残差系数),并且第四层可以包括距最近的上参考样本的距离为4的残差系数(例如,图13的(a)中例示的在重新布置之前的当前块的#15残差系数)。换句话说,可以将第一层导出为当前块的第一行,可以将第二层导出为当前块的第二行,可以将第三层导出为当前块的第三行,并且可以将第四层导出为当前块的第四行。
当如上所述定义当前块的层时,编码设备可以将用于当前块的层的扫描方法确定为横向优先扫描。此后,如图13的(a)中所示,可以执行残差系数的重新布置。
具体地,编码设备可以按顺序从第一层到第四层扫描,并且可以在对应层中从左位置的残差系数向右位置的残差系数扫描。
作为示例,编码设备可以从左向右按顺序扫描第一层中的残差系数(按#0、#1、#2和#3残差系数的顺序扫描)。接下来,可以扫描第二层。编码设备可以从左向右扫描第二层中的残差系数(按#4、#5、#6和#7残差系数的顺序扫描)。接下来,可以扫描第三层。编码设备可以从左向右按顺序扫描第三层中的残差系数(按#8、#9、#10和#11残差系数的顺序扫描)。接下来,可以扫描第四层。编码设备可以从左向右按顺序扫描第四层中的残差系数(扫描#13、#14和#15残差系数)。
此后,参照图13的(a),编码设备可以根据对角线扫描顺序(从右上到左下、从右下到左上)在各位置处按扫描顺序重新布置残差系数)。残差系数的扫描顺序可以是#0、#1、#2、#3、#4、#5、#6、#7、#8、#9、#10、#11、#12、#13、#14和#15残差系数的顺序。残差系数可以按扫描顺序重新布置到当前块中根据对角线扫描顺序的位置。例如,可以将#0残差系数重新布置在定位于第一右上对角线上的右下位置处,可以将#1和#2残差系数从右上侧向左上侧按顺序重新布置在当前块的第二右上对角线(即,第一右上对角线的左上侧向右上对角线)中,可以将#3、#4和#5残差系数从右上侧向左上侧按顺序重新布置在第三向右上对角线(即,第二右上对角线的左上侧向右上对角线)中,可以将#6、#7、#8和#9残差系数从右上侧向左上侧按顺序重新布置在第四向右上对角线(即,第三右上对角线的左上侧向右上对角线)中,可以将#10、#11和#12残差系数从右上侧向左上侧按顺序重新布置在第五向右上对角线(即,第四右上对角线的左上侧向上对角线)中,可以将#13和#14残差系数从右上侧向左上侧按顺序重新布置在第六向右上对角线(即,第五右上对角线的左上侧向右上对角线)中,并且可以将#15残差系数重新布置在定位于第七向右上对角线(即,第六右上对角线的左上侧向右上对角线)中的左上位置处。
另外,参照图13的(b),当前块的层包括与至少一个左参考样本相邻的第一层、距最近的左参考样本的距离为1的第二层、距最近的左参考样本的距离为2的第三层以及距最近的左参考样本的距离为3的第四层。也就是说,第一层可以包括与至少一个左参考样本相邻的残差系数(例如,图13的(b)中例示的在重新布置之前的当前块的#0、#4、#8和#12残差系数)(换句话说,第一层可以包括距最近的左参考样本的距离为1的残差系数),第二层可以包括距最近的左参考样本的距离为2的残差系数(例如,图13的(b)中例示的在重新布置之前的当前块的#1、#5、#9和#13残差系数),第三层可以包括距最近的左参考样本的距离为3的残差系数(例如,图13的(b)中例示的在重新布置之前的当前块的#2、#6、#10和#14残差系数),并且第四层可以包括距最近的左参考样本的距离为4的残差系数(例如,图13的(b)中例示的在重新布置之前的当前块的#3、#7、#11和#15残差系数)。换句话说,可以将第一层导出为当前块的第一列,可以将第二层导出为当前块的第二列,可以将第三层导出为当前块的第三列,并且可以将第四层导出为当前块的第四列。
当如上所述定义当前块的层时,编码设备可以将用于当前块的层的扫描方法确定为纵向优先扫描。此后,如图13的(b)中所示,可以执行残差系数的重新布置。
具体地,编码设备可以按顺序从第一层第四层扫描,并且可以在对应层中从上部位置的残差系数向下侧扫描。
作为示例,编码设备可以自上向下按顺序扫描第一层中的残差系数(按#0、#4、#8和#12残差系数的顺序扫描)。接下来,可以扫描第二层。编码设备可以自上向下扫描第二层中的残差系数(按#1、#5、#9和#13残差系数的顺序扫描)。接下来,可以扫描第三层。编码设备可以自上向下按顺序扫描第三层中的残差系数(按#2、#6、#10和#14残差系数的顺序扫描)。接下来,可以扫描第四层。编码设备可以自上向下按顺序扫描第四层中的残差系数(扫描#3、#7、#11和#15残差系数)。
此后,参照图13的(b),编码设备可以根据对角线扫描顺序(从右上到左下、从右下向左上)在各位置处按扫描顺序重新布置残差系数。残差系数的扫描顺序可以是#0、#4、#8、#12、#1、#5、#9、#13、#2、#6、#10、#14、#3、#7、#11和#15残差系数的顺序。可以按扫描顺序将残差系数重新布置到当前块中根据对角线扫描顺序的位置。例如,可以将#0残差系数重新布置在定位于第一右上对角线上的右下位置处,可以将#4和#8残差系数从右上侧向左上侧按顺序重新布置在当前块的第二右上对角线(即,第一右上对角线的左上侧向右上对角线)中,可以将#12、#1和#5残差系数从右上侧向左上侧按顺序重新布置在第三向右上对角线(即,第二右上对角线的左上侧向右上对角线)中,可以将#9、#13、#2和#6残差系数从右上侧向左上侧按顺序重新布置在第四向右上对角线(即,第三右上对角线的左上侧向右上对角线)中,可以将#10、#14和#3残差系数从右上侧向左上侧按顺序重新布置在第五向右上对角线(即,第四右上对角线的左上侧向右上对角线)中,可以将#7和#11残差系数从右上侧向左上侧按顺序重新布置在第六向右上对角线(即,第五右上对角线的左上侧向右上对角线)中,并且可以将#15残差系数重新布置在定位于第七向右上对角线(即,第六右上对角线的左上侧向右上对角线)中的左上位置处。
同时,例如,可以在不对当前块的残差系数应用变换时执行上述重新布置方法。也就是说,可以基于是否应用残差系数的变换来确定是否应用重新布置方法。换句话说,可以基于当前块的变换跳过标志来确定是否应用重新布置方法。
图14a和图14b示出了基于当前块的变换跳过标志来确定是否应用重新布置方法的实施例以及执行该实施例的编码设备和解码设备。
参照图14a,编码设备和解码设备可以确定当前块的变换跳过标志的值是否为1(S1400)。当变换跳过标志的值为1时,编码设备和解码设备可以对当前块的残差系数执行重新布置方法(S1410)。同时,当变换跳过标志的值不为1时(即,当变换跳过标志的值为0时),编码设备和解码设备可以不对当前块的残差系数执行重新布置方法。变换跳过标志可以指示是否对当前块的残差系数应用于变换。也就是说,变换跳过标志可以指示是否对残差系数应用变换。表示变换跳过标志的语法元素可以是上述transform_skip_flag。
另外,参照图14b,可以示例性地示出基于当前块的变换跳过标志来确定是否应用重新布置方法并且执行对应的操作的编码设备和解码设备。编码设备的残差重新布置单元可以基于当前块的变换跳过标志来确定是否重新布置残差系数,并且当变换跳过标志的值为1时,残差重新布置单元可以重新布置残差系数。编码设备的量化单元和熵编码器可以对重新布置的残差系数进行量化和熵编码以生成残差信息,并且通过比特流来输出编码的残差信息。另外,解码设备的熵解码器可以接收包括当前块的残差信息的比特流并且对残差信息进行解码以导出量化残差系数。此后,解码设备的解量化器可以对量化残差系数进行解量化(即,缩放)以导出残差系数。解码设备的残差重新布置单元可以基于当前块的变换跳过标志来确定是否重新布置残差系数,并且当变换跳过标志的值为1时,残差重新布置单元可以重新布置残差系数。
作为另一示例,可以提出在各种条件下组合地使用上述重新布置方法的方法。
作为示例,可以基于当前块的大小来确定重新布置方法或是否重新布置。这里,当前块的大小可以指示当前块的样本的数目或当前块的宽度和高度。例如,在当前块的样本的数目小于64时,可以应用使当前块的残差系数旋转180度的重新布置方法,而在当前块的样本的数目为64或更多时,可以应用上述镜像当前块的残差系数的重新布置方法。另选地,作为另一示例,在当前块的样本的数目小于64时,可以对当前块的残差系数应用上述重新布置方法中的一种,而在当前块的样本的数目为64或更多时,可能不应用重新布置方法。同时,例如,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志的值为1时,可以基于当前块的大小(样本的数目或宽度和高度)来确定重新布置方法或是否重新布置。
另选地,作为另一示例,可以基于当前块的形状来确定重新布置方法或是否重新布置。例如,在当前块为正方形块时(即,在当前块的宽度和高度相同时),可以应用镜像当前块的残差系数的重新布置方法。在当前块为非正方形块时(即,在当前块的宽度和高度值不同时),可以将上述旋转180度的重新布置方法应用于当前块的残差系数。同时,例如,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件来确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志的值为1时,可以基于当前块的形状来确定重新布置方法或是否重新布置。
另选地,作为另一示例,可以基于当前块的宽度与高度之比来确定重新布置方法或是否重新布置。例如,在当前块的宽度与高度之比为2以上或1/2以下时(即,当通过将当前块的宽度除以高度所获得的值为2以上或1/2以下时),可以将镜像重新布置方法应用于当前块的残差系数,而在当前块的宽度与高度之比小于2且大于1/2时(即,当通过将当前块的宽度除以高度所获得的值小于2且大于1/2时),可以应用上述相对于当前块的残差系数旋转180度的重新布置方法。或者,例如,在当前块的宽度与高度之比为2以上或1/2以下时(即,当通过将当前块的宽度除以高度所获得的值为2以上或1/2以下时),可以将上述镜像重新布置方法应用于当前块的残差系数,而在当前块的宽度与高度之比小于2且大于1/2时(即,当通过将当前块的宽度除以高度所获得的值小于2且1/2时),可以不将上述重新布置方法应用于当前块的残差系数。同时,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志的值为1时,可以基于当前块的宽度与高度之比来确定重新布置方法或是否重新布置。
另选地,作为另一示例,当对当前块应用帧内预测时,可以基于当前块的帧内预测模式来确定重新布置方法或是否重新布置。例如,在当前块的帧内预测模式的预测方向接近水平方向或垂直方向时,左参考样本或上参考样本主要用于预测,使得预测误差集中在一个参考样本方向上,并且因此,可以提出考虑到该特性来确定重新布置方法的实施例。例如,在当前块的帧内预测模式的预测方向为水平方向或者当前块的帧内预测模式为主要使用左参考样本来预测的帧内预测模式时,可以应用上述垂直翻转的重新布置方法,而在当前块的帧内预测模式的预测方向为垂直方向或者当前块的帧内预测模式为主要使用上参考样本来预测的帧内预测模式时,可以应用上述水平翻转的重新布置方法。同时,例如,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志的值为1时,可以基于当前块的帧内预测模式来确定重新布置方法或是否重新布置。
另选地,作为另一示例,可以基于从编码设备发送的比特流中的高级语法来确定重新布置方法或是否重新布置。例如,指示是否重新布置的标志可以通过诸如序列参数集(SPS)或图片参数集(PPS)的高级语法来发送,并且可以基于该标志确定是否在参考高级语法的较低语法中重新布置和重新布置方法。同时,例如,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件来确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志的值为1时,指示是否重新布置的标志可以通过诸如SPS或PPS的高级语法来发送,并且可以基于该标志来确定重新布置方法或是否重新布置。
另选地,作为另一示例,可以基于当前块的预测模式来确定重新布置方法或是否重新布置。例如,可以提出对于相对较少地生成残差信号的帧间预测模式不使用残差重新布置方法并且仅对于通过帧内预测模式预测的块的残差信号使用重新布置方法的实施例。换句话说,当对当前块应用帧间预测时,可以不应用当前块的残差系数的重新布置方法,而当对当前块应用帧内预测时,可以应用当前块的残差系数的重新布置方法。同时,例如,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志的值为1时,可以基于当前块的预测模式来确定重新布置方法或是否重新布置。
另选地,作为另一示例,可以基于是否执行量化来确定重新布置方法或是否重新布置。例如,在不应用量化的无损编译中,可以不执行上述残差重新布置方法,而在应用量化的有损编译中,可以执行上述残差重新布置方法。换句话说,当对当前块的残差系数不应用量化时,可以不将重新布置方法应用于当前块的残差系数,而当对当前块的残差系数应用量化时,可以将重新布置方法应用于当前块的残差系数。同时,例如,只有在当前块的变换跳过标志的值为1时才可以执行上述基于条件确定重新布置方法或是否重新布置的过程。换句话说,在当前块的变换跳过标志为1时,可以基于是否应用量化来确定重新布置方法或是否重新布置。
同时,如上所述,对其不执行变换编码的块,即,包括对其不应用变换的残差系数的变换块,具有与对其执行一般变换编码的块不同的残差信息特性,并且因此,对于对其不执行变换编码的块需要高效的残差数据编码方法。
因此,该文档提出了对关于变换跳过块的残差信息进行编码/解码的实施例。这里,可以以变换块为单位发送指示是否应用变换的变换跳过标志,并且在该文档的实施例中不限制变换块的大小。例如,当变换跳过标志的值为1时,可以执行本文档中提出的对残差信息进行编码/解码的方法。当变换跳过标志的值为0时,可以执行对现有的残差信息(诸如在上述表1中公开的残差信息的语法元素)进行编码/解码的方法。
图15示出了基于变换跳过标志来确定对残差信息进行编译的方法的示例。
参照图15,编码设备可以确定当前块的变换跳过标志的值是否为1(S1500)。
当变换跳过标志的值为1时,编码设备可以重新布置当前块的残差系数(S1510)。这里,作为重新布置残差系数的方法,可以使用上述实施例中的至少一个。另外,例如,可以基于当前块的预测模式是帧间预测模式还是帧内预测模式来确定是否重新布置残差系数。另外,例如,在对当前块执行帧内预测的情况下,可以基于应用于当前块的帧内预测模式或在帧内预测模式下使用的参考样本与当前块之间的距离来选择重新布置残差系数的方法或者确定是否重新布置残差系数。另外,例如,基于当前块的大小(例如,当前块的样本的数目或当前块的宽度和高度)、当前块的形状(例如,当前块是正方形块还是非正方形块)、当前块的水平长度与垂直长度之比和/或是否对当前块应用量化,可以选择重新布置残差系数的方法或者可以确定是否重新布置残差系数。
此后,编码设备可以对指示当前块的最后非零残差系数的位置的信息进行编码(S1520)。指示表示最后非零残差系数的位置的信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。
此后,编码设备可以对当前块的coded_sub_block_flag下面的残差信息即在coded_sub_block_flag之后编码的残差信息进行编码(S1530)。例如,残差信息可以与上表14中所示的语法元素一起编码。
同时,当变换跳过标志的值为0时,编码设备可以如在相关技术的方法中一样对当前块的残差信息进行编码(S1540)。例如,如在相关技术的方案中一样编码的残差信息可以与上表1中公开的语法元素相同。
同时,可以用信号通知上表10中提出的统一变换类型信息。变换类型信息的语法元素可以是tu_mts_idx。在这种情况下,可以基于tu_mts_idx来确定对于残差信息进行编译的方法。通过所提出的实施例,对于对其不执行变换编码的块可以降低对残差信息进行编码的过程的复杂性并且可以提高残差信息的编码效率。
图16示出了基于统一变换类型信息来确定对残差信息进行编译的方法的示例。
参照图16,编码设备可以确定当前块的统一变换类型信息的值是否为1(S1600)。统一变换类型信息的语法元素可以是tu_mts_idx。
当统一变换类型信息的值为1时,编码设备可以重新布置当前块的残差系数(S1610)。这里,作为重新布置残差系数的方法,可以使用上述实施例中的至少一个。另外,例如,可以基于当前块的预测模式是帧间预测模式还是帧内预测模式来确定是否重新布置残差系数。另外,例如,当对当前块执行帧内预测时,可以基于应用于当前块的帧内预测模式或用于帧内预测模式的参考样本与当前块之间的距离来选择用于重新布置残差系数的方法,或者确定是否重新布置残差系数。另外,例如,基于当前块的大小(例如,当前块的样本的数目或当前块的宽度和高度)、当前块的形状(例如,当前块是正方形块还是非正方形块)、当前块的水平长度与垂直长度之比和/或是否应用当前块的量化,可以选择用于重新布置残差系数的方法或者可以确定是否重新布置残差系数。
此后,编码设备可以对指示当前块的最后非零残差系数的位置的信息进行编码(S1620)。指示表示最后非零残差系数的位置的信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。
此后,编码设备可以对当前块的coded_sub_block_flag下面的残差信息即在coded_sub_block_flag之后编码的残差信息进行编码(S1630)。例如,可以像上表14中所示的语法元素那样对残差信息进行编码。
同时,当统一变换类型信息的值为0时,编码设备可以如在相关技术的方法中一样对当前块的残差信息进行编码(S1640)。例如,像在相关技术的方法那样编码的残差信息可以与上表1中公开的语法元素相同。另外,如上表10中公开的,可以省略语法元素transform_skip_flag和/或mts_idx。通过所提出的实施例,对于对其不执行变换编码的块对残差信息进行编码的过程的复杂性可以降低,并且可以提高残差信息的编码效率。
同时,解码设备可以如上所述基于残差信息来导出当前块的残差系数,并且确定是否对当前块应用残差重新布置(残差系数重新布置)。例如,基于如图15或图16中所示的变换跳过标志(即,transform_skip_flag)或统一变换类型信息(即,tu_mts_idx)的值,可以确定是否应用残差重新布置。当对当前块应用残差重新布置时,解码设备可以基于根据上述准则确定的残差重新布置方法来重新布置残差系数,并且基于重新布置的残差系数来导出当前块的残差样本。可以将重新布置的残差系数导出为残差样本,或者可以必要时对重新布置的残差系数应用解量化以导出残差样本。此后,如上所述,可以基于当前块的残差样本和预测样本来生成当前块的重构样本。
同时,如上所述,在针对当前块的残差编译中,当前块的4x4大小子块或2x2子块单元中的主要语法元素可以是sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gtX_flag和abs_remainder。其中,sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag、abs_level_gtX_flag的bin可以是基于常规编译引擎编译的上下文编译bin,而abs_remainder的bin可以是基于旁路编码引擎编译的旁路bin。
上下文编译bin示出了高数据依赖性,因为它是在处理先前bin的同时使用更新的概率状态和范围来编译的。也就是说,在上下文编译bin的情况下,由于可以在执行当前bin的所有编码/解码之后执行下一bin的编码/解码,所以在并行处理方面可能有困难。另外,导出概率区间并且确定当前状态的过程可能花费许多时间。因此,该文档提出了通过减少上下文编译bin的数目并且增加旁路bin的数目来提高CABAC处理效率的实施例。
通过该文档的实施例,可以将用于编译为上下文编译bin的语法元素的编译过程迅速地切换到用于基于旁路编译引擎编译(即编译为旁路bin)的语法元素abs_remainder的编译过程,并且可以减少上下文编译bin的数目。
作为实施例,该文档提出了限制当前子块中用sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag和par_level_flag编译的残差系数的数目的方法。也就是说,本实施例提出了将分配给sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag和par_level_flag的bin的数目限制为最大N的方法。根据该实施例,可以根据扫描顺序对当前子块中的残差系数执行残差编译,并且当用sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag编译的bin的数目即编译的上下文编译bin的数目达到N时,如果在后续残差编码中不对abs_level_gt1_flag进行编译,则也不对abs_level_gtX_flag进行编译并且可以将它切换到针对abs_remainder的编译。可以将N表示为上下文编译bin的最大数目。
例如,在当前子块为4x4大小子块时,可以将N导出为0至64中的一个,而在当前子块为2x2大小子块时,可以将N导出为0至16中的一个。N可以由编码设备选择。另选地,可以根据当前块的大小和/或当前子块在当前块中的位置自适应地确定N。另选地,在当前子块为4x4子块时,可以将N设置为0至64中的任何一个。在当前子块为2x2子块时,可以将N设置为0至16中的任何一个的任何值。
另外,作为实施例,该文档提出了限制当前子块中用abs_level_gtX_flag编译的残差系数的数目的方法。参考上表14,可以在残差编译时为一个残差系数导出最多四个abs_level_gtX_flag。也就是说,在当前子块为4x4子块时,对于当前子块可以对最多64个abs_level_gtX_flag进行编译。在当前子块为2x2子块时,对于当前子块可以对最多16个abs_level_gtX_flag进行编译。
因此,本实施例提出了对当前子块中的残差系数执行残差编译以减少上下文编译bin的数目并且将abs_level_gtX_flag编译为最大N的方法。也就是说,本实施例提出了将为abs_level_gtX_flag分配的bin的数目限制为最大N的方法。可以将N表示为语法元素abs_level_gtX_flag的最大数目。例如,N可以由编码设备选择。另选地,可以根据当前块的大小和/或当前子块在当前块中的位置自适应地确定N。另选地,在当前子块为4x4子块时,可以将N设置为0至64中的任何一个。在当前子块为2x2子块时,可以将N设置为0至16中的任何一个的任何值。根据本实施例,可以根据扫描顺序对当前子块中的残差系数执行残差编译,并且当语法元素abs_level_gtX_flag的数目达到N时,可以此后将残差编译切换到针对abs_remainder的编译。换句话说,可以根据扫描顺序对当前子块中的残差系数执行残差编译,并且当用语法元素abs_level_gtX_flag编译的bin即编译的上下文编译bin的数目达到N时,可以将残差编译切换到针对abs_remainder的编译。
另外,作为实施例,该文档可以提出将限制sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag和par_level_flag的数目之和的上述实施例与限制abs_level_gtX_flag的数目的实施例组合的方法。根据该实施例,可以将当前子块的sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag和par_level_flag的数目之和限制为M,并且可以将abs_level_gtX_flag的数目限制为N。也就是说,本实施例提出了将为sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag和par_level_flag分配的bin之和限制为最大M并且将为abs_level_gtX_flag分配的bin的数目限制为最大N的方法。这里,在当前子块为4x4子块时,可以将M和N各自导出为0至64中的一个。在当前子块为2x2子块时,可以将M和N各自导出为0至16中的一个。
图17示意性地示出了根据本文档的由编码设备进行的图像编码方法。图17中公开的方法可以由图2中公开的编码设备执行。具体地,例如,图17的S1700可以由编码设备的减法器执行,S1710可以由编码设备的变换器和量化器执行,并且S1720至S1740可以由编码设备的熵编码器执行。另外尽管未示出,但是导出预测样本的过程可以由编码设备的预测器执行,并且基于当前块的残差样本和预测样本来导出当前块的重构样本的过程可以由编码设备的加法器执行,以及对关于当前块的预测信息进行编码的过程可以由编码设备的熵编码器执行。
编码设备导出当前块的残差样本(S1700)。编码设备可以确定对当前块执行帧间预测还是帧内预测,并且可以基于RD成本来确定特定帧间预测模式或特定帧内预测模式。根据所确定的模式,编码设备可以导出当前块的预测样本并且可以通过从当前块的原始样本中减去预测样本来导出残差样本。
编码设备基于残差样本来导出当前块的当前子块中的变换系数(S1710)。编码设备可以基于当前块的当前子块中的残差样本来导出变换系数。
例如,编码设备可以确定是否对残差样本应用变换。当对残差样本不应用变换时,编码设备可以将所导出的残差样本导出为变换系数。另外,当对残差样本应用变换时,编码设备可以通过对导出的残差样本执行变换来导出变换系数。可以将变换系数包括在当前块的当前子块中。可以将当前子块称为当前系数组(CG)。另外,当前块的当前子块的大小可以是4x4大小或2x2大小。也就是说,当前块的当前子块可以包括最多16个非零变换系数或最多4个非零变换系数。
同时,编码设备可以生成指示是否应用当前块的变换系数的变换的变换跳过标志并且对其进行编码。比特流可以包括当前块的变换跳过标志。变换跳过标志可以指示是否对当前块的变换系数应用变换。也就是说,变换跳过标志可以指示是否对变换系数应用变换。表示变换跳过标志的语法元素可以是上述transform_skip_flag。
同时,在当前块的变换跳过标志的值为1时,编码设备可以重新布置变换系数。在这种情况下,编码设备可以生成关于重新布置的变换系数的残差信息并且对其进行编码。例如,编码设备可以通过各种重新布置方法来重新布置变换系数。也就是说,编码设备可以通过各种重新布置方法来将变换系数从导出的位置移动到其它位置。
作为示例,编码设备可以通过旋转180度的重新布置方法来重新布置变换系数。具体地,例如,编码设备可以将当前块的变换系数重新布置到相对于当前块的中心对称的位置。
另选地,作为示例,编码设备可以通过反对角线镜像的重新布置方法来重新布置变换系数。具体地,例如,编码设备可以将变换系数重新布置到相对于当前块的右向上对角线对称的位置。这里,右向上对角线可以表示穿过当前块的中心的右向上对角线。
另选地,作为示例,编码设备可以通过主对角线镜像的重新布置方法来重新布置变换系数。具体地,例如,编码设备可以将变换系数重新布置到相对于当前块的向左上对角线对称的位置。这里,向左上对角线可以指示穿过当前块的中心的向左上对角线。
另选地,作为示例,编码设备可以通过垂直翻转的重新布置方法来重新布置变换系数。具体地,例如,编码设备可以将当前块的变换系数重新布置到相对于当前块的垂直轴线对称的位置。这里,垂直轴线可以是穿过当前块的中心的垂直线。
另选地,作为示例,编码设备可以通过水平翻转的重新布置方法来重新布置变换系数。编码设备可以将当前块的变换系数重新布置到相对于当前块的水平轴线对称的位置。这里,水平轴线可以是穿过当前块的中心的水平线。
另选地,作为示例,编码设备可以通过导出基于距当前块的参考样本的距离而区分的层并且根据逆光栅顺序重新布置层的方法来重新布置变换系数。
例如,编码设备可以基于距当前块的参考样本的距离为当前块设置层。这里,参考样本可以包括当前块的上参考样本和左参考样本。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,左参考样本可以是p[-1][0]至p[-1][2N-1]并且上参考样本可以是p[0][-1]至p[2N-1][-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的参考样本的距离为1的位置,第二层可以包括距最近的参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。
此后,编码设备可以按逆光栅顺序扫描变换系数。换句话说,编码设备可以在从右向左和自下向上的方向上扫描当前块的变换系数。接下来,编码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层至第N层的顺序执行变换系数的重新布置。另外,可以在重新布置的层中基于横向优先扫描或纵向优先扫描来重新布置变换系数。
例如,可以将变换系数从右向左优先地重新布置在重新布置的层的左上位置的横向位置处,并且当重新布置的层的左上位置的纵向位置存在时,变换系数可以在重新布置在横向位置处之后被自上向下重新布置在重新布置的层的左上位置的纵向位置处。另选地,例如,可以将变换系数自上向下优先地重新布置在重新布置的层的左上位置的纵向位置处,并且当重新布置的层的左上位置的横向位置存在时,变换系数可以在重新布置在纵向位置处之后被从左向右重新布置在重新布置的层的左上位置的横向位置处。
另选地,作为示例,编码设备可以通过导出基于距当前块的参考样本的距离而区分的层并且根据对角线扫描顺序重新布置层的方法来重新布置变换系数。
例如,编码设备可以基于距当前块的参考样本的距离为当前块设置层。这里,参考样本可以包括当前块的上参考样本和左参考样本。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,左参考样本可以是p[-1][0]至p[-1][2N-1]并且上参考样本可以是p[0][-1]至p[2N-1][-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的参考样本的距离为1的位置,第二层可以包括距最近的参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。
此后,编码设备可以按对角线扫描顺序扫描变换系数。换句话说,编码设备可以在从右上向左下和从右下向左上的方向上扫描当前块的变换系数。接下来,编码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层至第N层的顺序执行变换系数的重新布置。另外,可以在重新布置的层中基于横向优先扫描或纵向优先扫描来重新布置变换系数。
例如,可以将变换系数从右向左优先地重新布置在重新布置的层的左上位置的横向位置处,并且当重新布置的层的左上位置的纵向位置存在时,变换系数可以在重新布置在横向位置处之后被自上向下重新布置在重新布置的层的左上位置的纵向位置处。另选地,例如,可以将变换系数自上向下优先地重新布置在重新布置的层的左上位置的纵向位置处,并且当重新布置的层的左上位置的横向位置存在时,变换系数可以在重新布置在纵向位置处之后被从左向右重新布置在重新布置的层的左上位置的横向位置处。
另选地,例如,编码设备可以基于距当前块的上参考样本的距离为当前块设置层。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,上参考样本可以是p[0][-1]至p[2N-1][-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的参考样本的距离为1的位置,第二层可以包括距最近的参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。换句话说,第一层可以是当前块的第一行,第二层可以是当前块的第二行,并且第N层可以是当前块的第N行。
此后,编码设备可以按对角线扫描顺序扫描变换系数。换句话说,编码设备可以在从右上向左下和从右下向左上的方向上扫描当前块的变换系数。接下来,编码设备可以按扫描顺序重新布置层中的变换系数。这里,可以从第一层到第N层按顺序执行变换系数的重新布置。可以从第一层到第N层执行变换系数的重新布置,并且可以将变换系数从右向左重新布置在重新布置的层的位置处。
另选地,例如,编码设备可以基于距当前块的左参考样本的距离为当前块设置层。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,左参考样本可以是p[-1][0]至p[-1][2N-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的左参考样本的距离为1的位置,第二层可以包括距最近的左参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。换句话说,第一层可以是当前块的第一列,第二层可以是当前块的第二列,并且第N层可以是当前块的第N列。
此后,编码设备可以按对角线扫描顺序扫描变换系数。换句话说,编码设备可以在从右上向左下和从右下向左上的方向上扫描当前块的变换系数。接下来,编码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层至第N层的顺序执行变换系数的重新布置。可以从第一层至第N层按顺序执行变换系数的重新布置,并且可以将变换系数自上向下重新布置在重新布置的层的位置处。
同时,编码设备可以基于各种条件来确定是否重新布置变换系数。另选地,编码设备可以基于各种条件来导出应用于变换系数的重新布置方法。
作为示例,编码设备可以基于当前块的变换跳过标志来确定是否重新布置变换系数。变换跳过标志可以指示是否对变换系数应用变换。例如,当变换跳过标志的值为1时,可以确定要重新布置变换系数。换句话说,当变换跳过标志的值为1时,编码设备可以重新布置变换系数。当变换跳过标志的值为0时,可以确定不要重新布置变换系数。换句话说,当变换跳过标志的值为0时,编码设备可以基于变换系数来生成关于当前块的残差信息并且对其进行编码,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的样本的数目来确定是否重新布置变换系数。例如,在当前块的样本的数目小于特定值时,可以确定要重新布置变换系数。换句话说,在当前块的样本的数目小于特定值时,编码设备可以重新布置变换系数。在当前块的样本的数目大于或等于特定值时,可以确定不要重新布置变换系数。换句话说,在当前块的样本的数目等于或大于特定值时,编码设备可以基于变换系数来生成关于当前块的残差信息并且对其进行编码,而不重新布置变换系数。该特定值可以是64。
另选地,例如,在当前块的样本的数目小于64时,编码设备可以通过使变换系数旋转180度的重新布置方法来重新布置变换系数。在当前块的样本的数目为64或更多时,编码设备可能不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的样本的数目来确定变换系数的重新布置方法。
例如,在当前块的样本的数目小于64时,编码设备可以通过使变换系数旋转180度的重新布置方法来重新布置变换系数,而在当前块的样本的数目为64或更多时,编码设备可以通过镜像变换系数的重新布置方法来重新布置变换系数。另选地,作为另一示例,例如,在当前块的样本的数目小于64时,编码设备可以通过上述重新布置方法中的一种来重新布置变换系数,而在当前块的样本的数目为64或更多时,编码设备可以不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的形状来确定是否重新布置残差系数。例如,在当前块为正方形块时,可以确定要重新布置变换系数。换句话说,在当前块为正方形块时,编码设备可以重新布置变换系数。在当前块为非正方形块时,可以确定不要重新布置变换系数。换句话说,在当前块为非正方形块时,编码设备可以基于变换系数来生成关于当前块的残差信息并且对其进行编码,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的形状来确定变换系数的重新布置方法。例如,在当前块为正方形块时,编码设备可以通过镜像的重新布置方法来重新布置变换系数,而在当前块为非正方形块时,编码设备可以通过使变换系数旋转180度的重新布置方法来重新布置变换系数。
另选地,作为另一示例,可以基于当前块的宽度与高度之比来确定是否重新布置变换系数。例如,在当前块的宽度与高度之比为2以上或1/2以下时(即,当通过将当前块的宽度除以高度所获得的值为2以上或1/2以下时),编码设备可以通过镜像的重新布置方法来重新布置变换系数,而在当前块的宽度与高度之比小于2且大于1/2时(即,当通过将当前块的宽度除以高度所获得的值小于2且大于1/2时),编码设备可以基于变换系数来生成当前块的残差信息并且对其进行编码,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的宽度与高度之比来确定变换系数的重新布置方法。例如,在当前块的宽度与高度之比为2以上或1/2以下时(即,当通过将当前块的宽度除以高度所获得的值为2以上或1/2以下时),编码设备可以通过镜像的重新布置方法来重新布置变换系数,而在当前块的宽度与高度之比小于2且大于1/2时(即,当通过将当前块的宽度除以高度所获得的值小于2且大于1/2时),编码设备可以通过旋转180度的重新布置方法来重新布置变换系数。
另选地,作为另一示例,可以基于当前块的帧内预测模式来确定是否重新布置变换系数。例如,在当前块的帧内预测模式的预测方向为水平方向时或者在当前块的帧内预测模式为主要使用左参考样本来预测的帧内预测模式时,编码设备可以通过垂直翻转的重新布置方法来重新布置变换系数,而在其它情况下,编码设备可以基于变换系数来生成当前块的残差信息并且对其进行编码,而不重新布置变换系数。另选地,例如,在当前块的帧内预测模式的预测方向为垂直方向时或者在当前块的帧内预测模式为主要使用上参考样本来预测的帧内预测模式时,编码设备可以通过垂直翻转的重新布置方法来重新布置变换系数,而在其它情况下,编码设备可以基于变换系数来生成当前块的残差信息并且对其进行编码,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的帧内预测模式来确定变换系数的重新布置方法。例如,在当前块的帧内预测模式的预测方向为水平方向时,或者在当前块的帧内预测模式为主要使用左参考样本来预测的帧内预测模式时,编码设备可以通过垂直翻转的重新布置方法来重新布置变换系数,而在当前块的帧内预测模式的预测方向为垂直方向时,或者在当前块的帧内预测模式为主要使用上参考样本来预测的帧内预测模式时,编码设备可以通过垂直翻转的重新布置方法来重新布置变换系数。
另选地,作为另一示例,可以基于通过高级语法用信号通知的指示是否重新布置变换系数的标志来确定是否重新布置变换系数。例如,编码设备可以通过序列参数集(SPS)或图片参数集(PPS)来用信号通知指示是否重新布置变换系数的标志,并且基于该标志来确定是否重新布置变换系数。
另选地,作为另一示例,可以基于通过高级语法用信号通知的指示变换系数的重新布置方法的信息来确定变换系数的重新布置方法。例如,编码设备可以通过序列参数集(SPS)或图片参数集(PPS)来用信号通知指示变换系数的重新布置方法的信息,并且基于该信息来确定是否重新布置变换系数。
另选地,作为另一示例,可以基于当前块的预测模式来确定是否重新布置变换系数。例如,在当前块的预测模式为帧内预测时,可以确定要重新布置变换系数。换句话说,在当前块的预测模式为帧内预测时,编码设备可以重新布置变换系数。另外,在当前块的预测模式为帧间预测时,可以确定不要重新布置变换系数。换句话说,在当前块的预测模式为帧间预测时,编码设备可以基于变换系数来生成关于当前块的残差信息并且对其进行编码,而不重新布置变换系数。
另选地,作为另一示例,可以基于是否量化变换系数来确定是否重新布置变换系数。例如,当对变换系数应用量化时,可以确定要重新布置变换系数。换句话说,当对变换系数应用量化时,编码设备可以重新布置变换系数。另外,当对变换系数不应用量化时,可以确定不要重新布置变换系数。换句话说,当对变换系数不应用量化时,编码设备可以不重新布置变换系数。
编码设备导出关于当前子块的上下文语法元素的上下文编译bin的特定数目(S1720)。这里,特定数目可以表示上述最大值,并且最大值可以是关于与当前块的当前子块有关的变换系数的上下文语法元素的上下文编译bin的数目之和的最大值。
作为示例,可以以变换块为单位导出最大值。
例如,可以将最大值设置为任意值。在当前子块的大小为4x4大小时,可以将最大值导出为0至64中的一个。在当前子块的大小为2x2大小时,可以将最大值导出为0至16中的一个。例如,可以将最大值设置为4。
另选地,例如,可以基于当前块(或当前块中的当前子块)的大小来导出最大值。在当前块(或当前块中的当前子块)的大小为4x4时,可以将所导出的最大值导出为0至64中的一个,而在当前块(或当前块中的当前子块)的大小为2x2大小时,可以将导出的最大值导出为0至16中的一个。
另选地,例如,可以基于当前块的大小和当前子块的位置来导出最大值。
另外,例如,可以基于指示当前块的最后非零变换系数的位置的位置信息来导出最大值。例如,可以基于位置信息来导出最后非零变换系数的位置,并且可以导出从当前块的扫描顺序上的起始变换系数的位置到最后非零变换系数的位置的长度。可以基于该长度来导出最大值。例如,可以将最大值导出为通过将长度乘以1.75所获得的值。同时,这里,长度可以对应于当前块的样本的数目。也就是说,长度可以是当前块的样本的数目。例如,当在当前块的变换系数的布置中不包括值为0的变换系数时,长度可以是当前块的样本的数目。换句话说,可以基于当前块的样本的数目来导出最大值。例如,可以将最大值导出为通过将当前块的样本的数目乘以1.75所获得的值。
编码设备基于特定数目对上下文语法元素进行编码(S1730)。编码设备可以基于最大值基于上下文来对上下文语法元素进行编码。
例如,编码设备可以基于上下文来对当前块的当前子块的变换系数的上下文语法元素进行编码。上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、关于变换系数的变换系数级别的奇偶性的奇偶性级别标志、以及关于变换系数是否大于第一阈值的第一变换系数级别标志和关于变换系数的变换系数级别是否大于第二阈值的第二变换系数级别标志。这里,有效系数标志可以是sig_coeff_flag,奇偶性级别标志可以是par_level_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且第二变换系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
或者,例如,上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、指示变换系数的符号的符号标志、指示变换系数级别是否大于第一阈值的第一变换系数级别标志、以及关于变换系数的变换系数级别的奇偶性的奇偶性级别标志。这里,有效系数标志可以是sig_coeff_flag,符号标志可以是coeff_sign_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且奇偶性级别标志可以是par_level_flag。
具体地,当在当前子块的变换系数当中的扫描顺序上的变换系数之前的顺序上的变换系数的上下文语法元素的上下文编译bin的数目之和达到最大值(即,大于或等于最大值)时,可以省略变换系数的上下文语法元素的信令和编码(即,可以不用信号通知变换系数的上下文语法元素)并且可以对基于变换系数的旁路而编译的旁路语法元素进行编码。可以基于经基于旁路编译的旁路语法元素来导出变换系数的值。
例如,当在当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到特定数目时,可以对残差信息中包括的特定变换系数的旁路语法元素进行编码。可以省略特定变换系数的上下文语法元素的信令和编码。可以基于旁路语法元素来导出特定变换系数的值。
例如,在当前子块的#0变换系数至#n变换系数的上下文语法元素的上下文编译bin的数目之和达到最大值时,可以省略当前子块的#n+1变换系数的上下文语法元素的信令和编码,并且可以对残差信息中包括的#n+1变换系数的旁路语法元素进行编码。
也就是说,例如,当在当前子块的变换系数当中通过扫描顺序确定的#0变换系数至#n变换系数的有效系数标志、第一变换系数级别标志、奇偶性级别标志和第二变换系数级别标志的上下文编译bin的数目之和达到最大值(即,大于或等于最大值)时,可以省略通过扫描顺序确定的#n+1变换系数的有效系数标志、第一变换系数级别标志、奇偶性级别标志和第二变换系数级别标志,并且可以对#n+1量化变换系数的基于旁路编译的旁路语法元素进行编码。
另选地,例如,当在当前子块的变换系数当中通过扫描顺序确定的#0变换系数至#n变换系数的有效系数标志、符号标志、第一变换系数级别标志和奇偶性级别标志的上下文编译bin之和达到最大值(即,大于或等于最大值)时,可以省略通过扫描顺序确定的#n+1变换系数的有效系数标志、符号标志及第一变换系数级别标志和奇偶性级别标志的信令和编码,并且可以对#n+1量化变换系数的基于旁路编译的旁路语法元素进行编码。
编码设备生成包括关于当前块的残差信息的比特流,关于当前块的残差信息包括编码的上下文语法元素(S1740)。例如,编码设备可以将包括残差信息的图像信息作为比特流输出。
例如,残差信息可以包括诸如以下各项的语法元素:transform_skip_flag、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、abs_level_gt1_flag、abs_level_gtX_flag、abs_remainder、coeff_sign_flag、dec_abs_level和/或mts_idx。
具体地,例如,残差信息可以包括当前块的变换跳过标志。变换跳过标志可以指示是否对当前块的变换系数应用变换。也就是说,变换跳过标志可以指示是否对变换系数应用变换。表示变换跳过标志的语法元素可以是上述transform_skip_flag。
另外,例如,残差信息可以包括指示当前块的变换系数阵列中的最后非零变换系数的位置的位置信息。也就是说,残差信息可以包括指示当前块的扫描顺序上的最后非零变换系数的位置的位置信息。位置信息可以包括指示最后非零系数的列位置的前缀的信息、指示最后非零系数的行位置的前缀的信息、指示最后非零系数的列位置的后缀的信息以及指示最后非零系数的行位置的后缀的信息。位置信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。同时,可以将非零变换系数称为有效系数。
另外,例如,残差信息可以包括当前块的当前子块中的变换系数的上下文语法元素。上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、关于变换系数的变换系数级别的奇偶性的奇偶性级别标志、以及有关变换系数级别是否大于第一阈值的第一变换系数级别标志和有关变换系数的变换系数级别是否大于第二阈值的第二变换系数级别标志。这里,有效系数标志可以是sig_coeff_flag,奇偶性级别标志可以是par_level_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且第二变换系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
另选地,例如,上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、指示变换系数的符号的符号标志、指示变换系数级别是否大于第一阈值的第一变换系数级别标志、以及关于变换系数的变换系数级别的奇偶性的奇偶性级别标志。这里,有效系数标志可以是sig_coeff_flag,符号标志可以是coeff_sign_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且奇偶性级别标志可以是par_level_flag。
另外,例如,残差信息可以包括基于当前块的当前子块中的变换系数的旁路而编译的旁路语法元素。旁路语法元素可以包括关于变换系数的值的系数值相关信息。系数值相关信息可以是abs_remainder和/或dec_abs_level。
同时,比特流可以包括当前块的预测信息。预测信息可以包括关于对当前块执行的帧间预测模式或帧内预测模式的信息。编码设备可以生成当前块的预测信息并且对其进行编码。
同时,可以将比特流通过网络或(数字)存储介质发送到解码设备。这里,网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD和SSD的各种存储介质。
图18示意性地示出了根据该文档的用于执行图像编码方法的编码设备。图17中公开的方法可以由图18中公开的编码设备执行。具体地,例如,图18的编码设备的减法器可以执行图17的S1700,图18的编码设备的变换器和量化器可以执行图17的S1710,图18的编码设备的熵编码器可以执行图17的S1720至S1740。另外,尽管未示出,但是导出预测样本的过程可以由编码设备的预测器执行,基于当前块的残差样本和预测样本来导出当前块的重构样本的过程可以由编码设备的加法器执行,并且对当前块的预测信息进行编码的过程可以由编码设备的熵编码器执行。
图19示意性地示出了根据该文档的由解码设备进行的图像解码方法。图19中公开的方法可以由图3中公开的解码设备执行。具体地,例如,图19的S1900至S1930可以由解码设备的熵解码器执行,S1940可以由解码设备的解量化器和逆变换器执行,并且S1950可以由解码设备的加法器执行。另外,尽管未示出,但是导出预测样本的过程可以由解码设备的预测器执行。
解码设备接收包括当前块的残差信息的比特流(S1900)。解码设备可以通过比特流来接收包括关于当前块的残差信息的图像信息。这里,当前块可以是编译块(CB)或变换块(TB)。残差信息可以包括当前块中的当前子块的语法元素。这里,语法元素可以包括上下文语法元素和旁路元素。也就是说,残差信息可以包括当前子块的上下文语法元素和旁路语法元素。上下文语法元素可以指示基于上下文编译的语法元素,并且旁路语法元素可以指示旁路编译的语法元素(即,基于均匀概率分布编译的语法元素)。
例如,残差信息可以包括诸如以下各项的语法元素:transform_skip_flag、last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix、last_sig_coeff_y_suffix、coded_sub_block_flag、sig_coeff_flag、par_level_flag、abs_level_gt1_flag、abs_level_gtX_flag、abs_remainder、coeff_sign_flag、dec_abs_level和/或mts_idx。
具体地,例如,残差信息可以包括当前块的变换跳过标志。变换跳过标志可以指示是否对当前块的变换系数应用变换。也就是说,变换跳过标志可以指示是否对变换系数应用变换。表示变换跳过标志的语法元素可以是上述transform_skip_flag。
另外,例如,残差信息可以包括指示当前块的变换系数阵列中的最后非零变换系数的位置的位置信息。也就是说,残差信息可以包括指示当前块的扫描顺序中的最后非零变换系数的位置的位置信息。位置信息可以包括指示最后非零系数的列位置的前缀的信息、指示最后非零系数的行位置的前缀的信息、指示最后非零系数的列位置的后缀的信息以及指示最后非零系数的行位置的后缀的信息。位置信息的语法元素可以是last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix和last_sig_coeff_y_suffix。同时,可以将非零变换系数称为有效系数。
另外,例如,残差信息可以包括当前块的当前子块中的变换系数的上下文语法元素。上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、关于变换系数的变换系数级别的奇偶性的奇偶性级别标志、以及有关变换系数级别是否大于第一阈值的第一变换系数级别标志和有关变换系数的变换系数级别是否大于第二阈值的第二变换系数级别标志。这里,有效系数标志可以是sig_coeff_flag,奇偶性级别标志可以是par_level_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且第二变换系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
另选地,例如,上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、指示变换系数的符号的符号标志、指示变换系数级别是否大于第一阈值的第一变换系数级别标志、以及关于变换系数的变换系数级别的奇偶性的奇偶性级别标志。这里,有效系数标志可以是sig_coeff_flag,符号标志可以是coeff_sign_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且奇偶性级别标志可以是par_level_flag。
另外,例如,残差信息可以包括基于当前块的当前子块中的变换系数的旁路而编译的旁路语法元素。旁路语法元素可以包括关于变换系数的值的系数值相关信息。系数值相关信息可以是abs_remainder和/或dec_abs_level。
同时,比特流可以包括当前块的预测信息。预测信息可以包括关于对当前块执行的帧间预测模式或帧内预测模式的信息。解码设备可以基于通过比特流接收的预测信息来对当前块执行帧间预测或帧内预测,并且可以导出当前块的预测样本。
解码设备导出关于当前块的当前子块的上下文语法元素的上下文编译bin的特定数目(S1910)。这里,特定数目可以表示上述最大值。也就是说,最大值可以是关于与当前块的当前子块有关的变换系数的上下文语法元素的上下文编译bin的数目之和的最大值。
作为示例,可以以变换块为单位导出最大值。
例如,可以将最大值设置为任意值。在当前子块的大小为4x4大小时,可以将最大值导出为0至64中的一个。在当前子块的大小为2x2大小时,可以将最大值导出为0至16中的至少一个。例如,可以将最大值设置为4。
另选地,例如,可以基于当前块(或当前块中的当前子块)的大小来导出最大值。在当前块(或当前块中的当前子块)的大小为4x4时,可以将所导出的最大值导出为0至64中的一个,而在当前块(或当前块中的当前子块)的大小为2x2大小时,可以将所导出的最大值导出为0至16中的一个。
另选地,例如,可以基于当前块的大小和当前子块的位置来导出最大值。
另外,例如,可以基于指示当前块的最后非零变换系数的位置的位置信息来导出最大值。例如,可以基于位置信息来导出最后非零变换系数的位置,并且可以导出从当前块的扫描顺序上的起始变换系数的位置到最后非零变换系数的位置的长度。可以基于该长度来导出最大值。例如,可以将最大值导出为通过将长度乘以1.75所获得的值。同时,这里,长度可以对应于当前块的样本的数目。也就是说,长度可以是当前块的样本的数目。例如,当在当前块的变换系数的布置中不包括值为0的变换系数时,长度可以是当前块的样本的数目。换句话说,可以基于当前块的样本的数目来导出最大值。例如,可以将最大值导出为通过将当前块的样本的数目乘以1.75所获得的值。
解码设备基于特定数目对残差信息中包括的当前子块的上下文语法元素进行解码(S1920)。解码设备可以基于最大值基于上下文来对上下文语法元素进行解码。
例如,解码设备可以基于上下文来对当前块的当前子块的变换系数的上下文语法元素进行解码。上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、关于变换系数的变换系数级别的奇偶性的奇偶性级别标志、以及关于变换系数是否大于第一阈值的第一变换系数级别标志和关于变换系数的变换系数级别是否大于第二阈值的第二变换系数级别标志。这里,有效系数标志可以是sig_coeff_flag,奇偶性级别标志可以是par_level_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且第二变换系数级别标志可以是abs_level_gt3_flag或abs_level_gtx_flag。
或者,例如,上下文语法元素可以包括指示变换系数是否为非零变换系数的有效系数标志、指示变换系数的符号的符号标志、指示变换系数级别是否大于第一阈值的第一变换系数级别标志、以及关于变换系数的变换系数级别的奇偶性的奇偶性级别标志。这里,有效系数标志可以是sig_coeff_flag,符号标志可以是coeff_sign_flag,第一变换系数级别标志可以是abs_level_gt1_flag,并且奇偶性级别标志可以是par_level_flag。
具体地,当在当前子块的变换系数当中的扫描顺序上的变换系数之前的顺序上的变换系数的上下文语法元素的上下文编译bin的数目之和达到最大值(即,大于或等于最大值)时,可以省略变换系数的上下文语法元素的信令和解码(即,可以不用信号通知变换系数的上下文语法元素)并且可以对基于变换系数的旁路而编译的旁路语法元素进行解码,并且可以基于解码的旁路语法元素来导出变换系数的值。
例如,当在当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到特定数目时,可以对残差信息中包括的特定变换系数的旁路语法元素进行解码。可以省略特定变换系数的上下文语法元素的信令和解码。可以基于旁路语法元素来导出特定变换系数的值。
例如,在当前子块的#0变换系数至#n变换系数的上下文语法元素的上下文编译bin的数目之和达到最大值时,可以省略当前子块的#n+1变换系数的上下文语法元素的信令和解码,并且可以对残差信息中包括的#n+1变换系数的旁路语法元素进行解码。
也就是说,例如,当在当前子块的变换系数当中通过扫描顺序确定的#0变换系数至#n变换系数的有效系数标志、第一变换系数级别标志、奇偶性级别标志和第二变换系数级别标志的上下文编译bin的数目之和达到最大值(即,大于或等于最大值)时,可以省略通过扫描顺序确定的#n+1变换系数的有效系数标志、第一变换系数级别标志、奇偶性级别标志和第二变换系数级别标志,并且可以对#n+1量化变换系数的基于旁路编译的旁路语法元素进行解码,并且可以基于旁路语法元素的值来导出#n+1量化变换系数的值。
另选地,例如,当在当前子块的变换系数当中通过扫描顺序确定的#0变换系数至#n变换系数的有效系数标志、符号标志、第一变换系数级别标志和奇偶性级别标志的上下文编译bin之和达到最大值(即,大于或等于最大值)时,可以省略通过扫描顺序确定的#n+1变换系数的有效系数标志、符号标志及第一变换系数级别标志和奇偶性级别标志的信令和解码,可以对#n+1量化变换系数的基于旁路编译的旁路语法元素进行解码,并且可以基于元素的值来导出#n+1量化变换系数的值。
解码设备基于解码的上下文语法元素来导出当前子块的变换系数(S1930)。
解码设备可以基于熵解码的变换系数的上下文语法元素的值来导出变换系数的值。另外,残差信息可以包括指示变换系数的符号的符号标志。解码设备可以基于符号标志来导出变换系数的符号。表示符号标志的语法元素可以是coeff_sign_flag。例如,解码设备可以基于变换系数的值和符号来导出变换系数。
解码设备基于变换系数来导出当前块的残差样本(S1940)。例如,解码设备可以基于变换系数来导出当前块的残差样本。也就是说,解码设备可以基于变换系数来导出当前块中的当前子块的残差样本。
例如,在当前块的变换跳过标志的值为1时,解码设备可以基于变换系数来导出当前块的残差样本。例如,在当前块的变换跳过标志的值为1时,解码设备可以对变换系数进行解量化以导出当前块的残差样本。
另选地,例如,在当前块的变换跳过标志的值为1时,解码设备可以重新布置变换系数并且将重新布置的变换系数导出为当前块的残差样本。例如,解码设备可以通过各种重新布置方法来重新布置变换系数。也就是说,解码设备可以通过各种重新布置方法来将变换系数从所导出的位置移动到其它位置。
作为示例,解码设备可以通过旋转180度的重新布置方法来重新布置变换系数。具体地,例如,解码设备可以将当前块的变换系数重新布置到相对于当前块的中心对称的位置。
另选地,作为示例,解码设备可以通过反对角线镜像的重新布置方法来重新布置变换系数。具体地,例如,解码设备可以将变换系数重新布置到相对于当前块的右向上对角线对称的位置。这里,右向上对角线可以表示穿过当前块的中心的右向上对角线。
另选地,作为示例,解码设备可以通过主对角线镜像的重新布置方法来重新布置变换系数。具体地,例如,解码设备可以将变换系数重新布置到相对于当前块的向左上对角线对称的位置。这里,向左上对角线可以指示穿过当前块的中心的向左上对角线。
另选地,作为示例,解码设备可以通过垂直翻转的重新布置方法来重新布置变换系数。具体地,例如,解码设备可以将当前块的变换系数重新布置到相对于当前块的垂直轴线对称的位置。这里,垂直轴线可以是穿过当前块的中心的垂直线。
另选地,作为示例,解码设备可以通过水平翻转的重新布置方法来重新布置变换系数。解码设备可以将当前块的变换系数重新布置到相对于当前块的水平轴线对称的位置。这里,水平轴线可以是穿过当前块的中心的水平线。
另选地,作为示例,解码设备可以通过导出基于距当前块的参考样本的距离而区分的层并且根据逆光栅顺序重新布置层的方法来重新布置变换系数。
例如,解码设备可以基于距当前块的参考样本的距离为当前块设置层。这里,参考样本可以包括当前块的上参考样本和左参考样本。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,左参考样本可以是p[-1][0]至p[-1][2N-1]并且上参考样本可以是p[0][-1]至p[2N-1][-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的参考样本的距离为1的位置,第二层可以包括距最近的参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。
此后,解码设备可以按逆光栅顺序扫描变换系数。换句话说,解码设备可以在从右向左和自下向上的方向上扫描当前块的变换系数。接下来,解码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层到第N层的顺序执行变换系数的重新布置。另外,可以在重新布置的层中基于横向优先扫描或纵向优先扫描来重新布置变换系数。
例如,可以将变换系数从右向左优先地重新布置在重新布置的层的左上位置的横向位置处,并且当重新布置的层的左上位置的纵向位置存在时,变换系数可以在重新布置在横向位置处之后被自上向下重新布置在重新布置的层的左上位置的纵向位置处。另选地,例如,可以将变换系数自上向下优先地重新布置在重新布置的层的左上位置的纵向位置处,并且当重新布置的层的左上位置的横向位置存在时,变换系数可以在重新布置在纵向位置处之后被从左向右重新布置在重新布置的层的左上位置的横向位置处。
另选地,作为示例,解码设备可以通过导出基于距当前块的参考样本的距离而区分的层并且根据对角线扫描顺序重新布置层的方法来重新布置变换系数。
例如,解码设备可以基于距当前块的参考样本的距离为当前块设置层。这里,参考样本可以包括当前块的上参考样本和左参考样本。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,左参考样本可以是p[-1][0]至p[-1][2N-1]并且上参考样本可以是p[0][-1]至p[2N-1][-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的参考样本的距离为1的位置,第二层可以包括距最近的参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。
此后,解码设备可以按对角线扫描顺序扫描变换系数。换句话说,解码设备可以在从右上向左下和从右下向左上的方向上扫描当前块的变换系数。接下来,解码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层到第N层的顺序执行变换系数的重新布置。另外,可以在重新布置的层中基于横向优先扫描或纵向优先扫描来重新布置变换系数。
例如,可以将变换系数从右向左优先地重新布置在重新布置的层的左上位置的横向位置处,并且当重新布置的层的左上位置的纵向位置存在时,变换系数可以在重新布置在横向位置处之后被自上向下重新布置在重新布置的层的左上位置的纵向位置处。另选地,例如,可以将变换系数自上向下优先地重新布置在重新布置的层的左上位置的纵向位置处,并且当重新布置的层的左上位置的横向位置存在时,变换系数可以在重新布置在纵向位置处之后被从左向右重新布置在重新布置的层的左上位置的横向位置处。
另选地,例如,解码设备可以基于距当前块的上参考样本的距离为当前块设置层。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,上参考样本可以是p[0][-1]至p[2N-1][-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的参考样本的距离为1的位置,第二层可以包括距最近的参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。换句话说,第一层可以是当前块的第一行,第二层可以是当前块的第二行,并且第N层可以是当前块的第N行。
此后,解码设备可以按对角线扫描顺序扫描变换系数。换句话说,解码设备可以在从右上向左下和从右下向左上的方向上扫描当前块的变换系数。接下来,解码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层到第N层的顺序执行变换系数的重新布置。可以从第一层到第N层按顺序执行变换系数的重新布置,并且可以将变换系数从右向左重新布置在重新布置的层的位置处。
另选地,例如,解码设备可以基于距当前块的左参考样本的距离为当前块设置层。例如,在当前块的大小为NxN并且当前块的左上样本位置的x分量和y分量为0时,左参考样本可以是p[-1][0]至p[-1][2N-1]。在当前块的大小为NxN时,层可以包括第一层至第N层。第N层可以是最后层,并且N可以等于当前块的宽度或高度的值。例如,第一层可以包括距最近的左参考样本的距离为1的位置,第二层可以包括距最近的左参考样本的距离为2的位置,并且第N层可以包括距最近的参考样本的距离为N的位置。换句话说,第一层可以是当前块的第一列,第二层可以是当前块的第二列,并且第N层可以是当前块的第N列。
此后,解码设备可以按对角线扫描顺序扫描变换系数。换句话说,解码设备可以在从右上向左下和从右下向左上的方向上扫描当前块的变换系数。接下来,解码设备可以按扫描顺序重新布置层中的变换系数。这里,可以按第一层到第N层的顺序执行变换系数的重新布置。可以从第一层到第N层按顺序执行变换系数的重新布置,并且可以将变换系数自上向下重新布置在重新布置的层的位置处。
同时,解码设备可以基于各种条件来确定是否重新布置变换系数。另选地,解码设备可以基于各种条件来导出应用于变换系数的重新布置方法。
作为示例,解码设备可以接收当前块的变换跳过标志并且基于当前块的变换跳过标志来确定是否重新布置变换系数。变换跳过标志可以指示是否对变换系数应用变换。例如,当变换跳过标志的值为1时,可以确定要重新布置变换系数。换句话说,当变换跳过标志的值为1时,解码设备可以重新布置变换系数。当变换跳过标志的值为0时,可以确定不要重新布置变换系数。换句话说,当变换跳过标志的值为0时,解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的样本的数目来确定是否重新布置变换系数。例如,在当前块的样本的数目小于特定值时,可以确定要重新布置变换系数。换句话说,在当前块的样本的数目小于特定值时,解码设备可以重新布置变换系数。在当前块的样本的数目大于或等于特定值时,可以确定不要重新布置变换系数。换句话说,在当前块的样本的数目等于或大于特定值时,解码设备可以基于变换系数来生成关于当前块的残差信息并且对其进行编码,而不重新布置变换系数。该特定值可以是64。
另选地,例如,在当前块的样本的数目小于64时,解码设备可以通过使变换系数旋转180度的重新布置方法来重新布置变换系数。在当前块的样本的数目为64或更多时,解码设备可以不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的样本的数目来确定变换系数的重新布置方法。
例如,在当前块的样本的数目小于64时,解码设备可以通过使变换系数旋转180度的重新布置方法来重新布置变换系数,在当前块的样本的数目为64或更多时,解码设备可以通过镜像变换系数的重新布置方法来重新布置变换系数。另选地,作为另一示例,例如,在当前块的样本的数目小于64时,解码设备可以通过上述重新布置方法中的一种来重新布置变换系数,而在当前块的样本的数目为64或更多时,解码设备可能不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的形状来确定是否重新布置残差系数。例如,在当前块为正方形块时,可以确定要重新布置变换系数。换句话说,在当前块为正方形块时,解码设备可以重新布置变换系数。在当前块为非正方形块时,可以确定不要重新布置变换系数。换句话说,在当前块为非正方形块时,解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的形状来确定变换系数的重新布置方法。例如,在当前块为正方形块时,解码设备可以通过镜像的重新布置方法来重新布置变换系数,而在当前块为非正方形块时,解码设备可以通过使变换系数旋转180度的重新布置方法来重新布置变换系数。
另选地,作为另一示例,可以基于当前块的宽度与高度之比来确定是否重新布置变换系数。例如,在当前块的宽度与高度之比为2以上或1/2以下时(即,当通过将当前块的宽度除以高度所获得的值为2以上或1/2以下时),解码设备可以通过镜像的重新布置方法来重新布置变换系数,而在当前块的宽度与高度之比小于2且大于1/2时(即,当通过将当前块的宽度除以高度所获得的值小于2且大于1/2时),解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的宽度与高度之比来确定变换系数的重新布置方法。例如,在当前块的宽度与高度之比为2以上或1/2以下时(即,当通过将当前块的宽度除以高度所获得的值为2以上或1/2以下时),解码设备可以通过镜像的重新布置方法来重新布置变换系数,而在当前块的宽度与高度之比小于2且大于1/2时(即,当通过将当前块的宽度除以高度所获得的值小于2且大于1/2时),解码设备可以通过旋转180度的重新布置方法来重新布置变换系数。
另选地,作为另一示例,可以基于当前块的帧内预测模式来确定是否重新布置变换系数。例如,在当前块的帧内预测模式的预测方向为水平方向时或者在当前块的帧内预测模式为主要使用左参考样本来预测的帧内预测模式时,解码设备可以通过垂直翻转的重新布置方法来重新布置变换系数,而在其它情况下,解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。另选地,例如,在当前块的帧内预测模式的预测方向为垂直方向时或者在当前块的帧内预测模式为主要使用上参考样本来预测的帧内预测模式时,解码设备可以通过垂直翻转的重新布置方法来重新布置变换系数,而在其它情况下,解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。
另选地,作为另一示例,可以基于当前块的帧内预测模式来确定变换系数的重新布置方法。例如,在当前块的帧内预测模式的预测方向为水平方向时或者在当前块的帧内预测模式为主要使用左参考样本来预测的帧内预测模式时,解码设备可以通过垂直翻转的重新布置方法来重新布置变换系数,而在当前块的帧内预测模式的预测方向为垂直方向时或者在当前块的帧内预测模式为主要使用上参考样本来预测的帧内预测模式时,解码设备可以通过垂直翻转的重新布置方法来重新布置变换系数。
另选地,作为另一示例,可以基于通过高级语法接收的指示是否重新布置变换系数的标志来确定是否重新布置变换系数。例如,解码设备可以通过序列参数集(SPS)或图片参数集(PPS)来接收指示是否重新布置变换系数的标志,并且基于该标志来确定是否重新布置变换系数。
另选地,作为另一示例,可以基于通过高级语法接收的指示变换系数的重新布置方法的信息来确定变换系数的重新布置方法。例如,解码设备可以通过序列参数集(SPS)或图片参数集(PPS)来用信号通知指示变换系数的重新布置方法的信息,并且基于该信息来确定是否重新布置变换系数。
另选地,作为另一示例,可以基于当前块的预测模式来确定是否重新布置变换系数。例如,在当前块的预测模式为帧内预测时,可以确定要重新布置变换系数。换句话说,在当前块的预测模式为帧内预测时,解码设备可以重新布置变换系数。另外,在当前块的预测模式为帧间预测时,可以确定不要重新布置变换系数。换句话说,在当前块的预测模式为帧间预测时,解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。
另选地,作为另一示例,可以基于是否量化变换系数来确定是否重新布置变换系数。例如,当对变换系数应用量化时,可以确定要重新布置变换系数。换句话说,当对变换系数应用量化时,解码设备可以重新布置变换系数。另外,当对变换系数不应用量化时,可以确定不要重新布置变换系数。换句话说,当对变换系数不应用量化时,解码设备可以基于变换系数来导出当前块的残差样本,而不重新布置变换系数。
另选地,例如,在当前块的变换跳过标志的值为0时,解码设备可以对变换系数进行逆变换以导出当前块的残差样本。或者,例如,在当前块的变换跳过标志的值为0时,解码设备可以对变换系数进行解量化并且对解量化系数进行逆变换以导出当前块的残差样本。
解码设备基于残差样本来生成重构图片(S1950)。例如,解码设备可以通过基于通过比特流接收的预测信息对当前块执行帧间预测模式或帧内预测模式来导出预测样本,并且可以通过添加预测样本和残差样本来生成重构图片。例如,预测信息可以包括指示当前块的帧内预测模式的信息。另选地,预测信息可以包括当前块的运动相关信息。
此后,可以必要时对重构图片应用诸如去块滤波、SAO和/或ALF过程的环内滤波过程,以便如上所述改善主观/客观图片质量。
图20示意性地示出了根据该文档的用于执行图像解码方法的解码设备。图19中公开的方法可以由图20中公开的解码设备执行。具体地,例如,图20的解码设备的熵解码器可以执行图19的S1900至S1930,并且图20的解码设备的解量化器和逆变换器可以执行图19的S1940,图20的解码设备的加法器可以执行图19的S1950。另外,尽管未示出,但是通过比特流来获得当前块的预测信息的过程可以由图20的解码设备的熵解码器执行,并且基于预测信息来导出当前块的预测样本的过程可以由图20的解码设备的预测器执行。
根据上述该文档,可以提高残差编译的效率。
另外,根据该文档,可以通过将残差信息中包括的当前块中的变换系数的上下文语法元素的上下文编译bin的数目之和限制为预定最大值或更小来减少基于上下文编译的数据。
另外,根据该文档,在调整关于当前子块的上下文编译bin的数目时,通过上下文语法元素的上下文编译bin的数目之和来确定,而不是针对每个上下文语法元素编译来确定,由此可以降低残差编译复杂性并且可以提高整体编译效率。
在以上实施方式中,基于具有一系列步骤或方框的流程图描述了方法。本公开不限于以上步骤或方框的顺序。一些步骤或方框可以以与上述的其它步骤或方框不同的顺序执行或同时执行。此外,本领域技术人员将理解,流程图中所示的步骤不是排它的,并且可以还包括其它步骤,或者可以在不影响本公开的范围的情况下删除流程图中的一个或更多个步骤。
在本说明书中所描述的实施方式可以通过被实现在处理器、微处理器、控制器或芯片上来执行。例如,每个图中所示的功能单元可以通过被实现在计算机、处理器、微处理器、控制器或芯片上来执行。在这种情况下,用于实现的信息(例如,关于指令的信息)或算法可以存储在数字存储介质中。
另外,应用本公开的解码设备和编码设备可以被包括在如下设备中:多媒体广播发送/接收设备、移动通信终端、家庭影院视频设备、数字影院视频设备、监视相机、视频聊天设备、诸如视频通信的实时通信设备、移动流设备、存储介质、便携式摄像机、VoD服务提供设备、顶置(OTT)视频设备、互联网流服务提供设备、三维(3D)视频设备、电话会议视频设备、运输用户设备(例如,车辆用户设备、飞机用户设备和轮船用户设备)和医疗视频装置;并且应用本公开的解码设备和编码设备可以用于处理视频信号或数据信号。例如,顶置(OTT)视频设备可以包括游戏机、蓝光播放器、互联网接入电视机、家庭影院系统、智能电话、平板电脑、数字视频记录仪(DVR)等。
另外,应用本公开的处理方法可以以计算机执行的程序的形式产生,并且可以存储在计算机可读记录介质中。根据本公开的具有数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括其中存储计算机可读数据的所有类型的存储装置。计算机可读记录介质可以包括例如BD、通用串行总线(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置。另外,计算机可读记录介质包括以载波(例如,经由互联网的传输)形式实现的介质。另外,由编码方法生成的比特流可以存储在计算机可读记录介质中或通过有线/无线通信网络来传输。
另外,本公开的实施方式可以根据程序代码利用计算机程序产品来实现,并且程序代码可以通过本公开的实施方式在计算机中执行。程序代码可以存储在计算机可读载体上。
图21例示了应用了本公开的内容流传输系统的结构图。
应用本文档的实施方式的内容流系统可以主要包括编码服务器、流服务器、网络服务器、媒体储存器、用户装置和多媒体输入装置。
编码服务器将从诸如智能手机、相机或便携式摄像机等的多媒体输入装置输入的内容压缩为数字数据,以生成比特流并将比特流发送到流服务器。作为另一示例,当诸如智能手机、相机或便携式摄像机等的多媒体输入装置直接生成比特流时,可以省略编码服务器。
可以通过应用了本文档的实施方式的编码方法或比特流生成方法来生成比特流,并且流服务器可以在发送或接收比特流的过程中临时存储比特流。
流服务器基于用户请求通过网络服务器向用户装置发送多媒体数据,并且网络服务器用作向用户通知服务的媒介。当用户从网络服务器请求所需的服务时,网络服务器向流服务器递送该请求,并且流服务器向用户发送多媒体数据。在这种情况下,内容流系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流系统内的装置之间的命令/响应。
流服务器可以从媒体储存器和/或编码服务器接收内容。例如,当从编码服务器接收内容时,可以实时接收内容。在这种情况下,为了提供平稳的流服务,流服务器可以将比特流存储预定时间段。
用户装置的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航仪、触屏PC、平板PC、超级本、可穿戴装置(例如,智能手表、智能眼镜和头戴式显示器)、数字TV、台式计算机和数字标牌等。内容流系统内的每个服务器可以作为分布式服务器来操作,在这种情况下,从每个服务器接收的数据可以被分布。

Claims (14)

1.一种由解码装置执行的图像解码方法,包括:
导出用于当前块的上下文语法元素的上下文编译bin的特定数目;
基于所述特定数目对残差信息中包括的当前子块的所述上下文语法元素进行解码;
基于所述解码的上下文语法元素来导出用于所述当前子块的变换系数;
基于所述变换系数来导出用于所述当前块的残差样本;以及
其中,当在所述当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到所述特定数目时,用于所述残差信息中包括的所述特定变换系数的旁路语法元素被解码。
2.根据权利要求1所述的图像解码方法,
其中,用于所述特定变换系数的所述上下文语法元素包括:指示所述特定变换系数是否为非零变换系数的有效系数标志、指示所述特定变换系数的符号的符号标志、用于所述特定变换系数的变换系数级别是否大于第一阈值的第一变换系数级别标志、用于所述变换系数级别的奇偶性的奇偶性级别标志、以及用于所述变换系数级别是否大于第二阈值的第二变换系数级别标志,
其中,对用于所述特定变换系数的所述上下文语法元素的解码被省略,并且
其中,与所述第二变换系数级别标志无关地,对用于所述特定变换系数的所述旁路语法元素进行解码。
3.根据权利要求1所述的图像解码方法,其中,所述上下文语法元素包括:指示变换系数是否为非零变换系数的有效系数标志、用于所述变换系数的变换系数级别的奇偶性的奇偶性级别标志、用于所述变换系数级别是否大于第一阈值的第一变换系数级别标志、以及用于所述变换系数的变换系数级别是否大于第二阈值的第二变换系数级别标志。
4.根据权利要求1所述的图像解码方法,其中,所述上下文语法元素包括:指示变换系数是否为非零变换系数的有效系数标志、指示所述变换系数的符号的符号标志、用于所述变换系数的变换系数级别是否大于第一阈值的第一变换系数级别标志、以及关于所述变换系数级别的奇偶性的奇偶性级别标志。
5.根据权利要求1所述的图像解码方法,其中,基于仅所述解码的旁路语法元素的值来导出所述特定变换系数的值。
6.根据权利要求1所述的图像解码方法,其中
基于所述变换系数来导出用于所述当前块的所述残差样本包括:
当所述变换跳过标志的值为1时,重新布置所述变换系数;以及
基于所述重新布置的变换系数来导出所述残差样本。
7.根据权利要求6所述的图像解码方法,其中,所述重新布置所述变换系数包括:
将所述当前块的变换系数重新布置到基于所述当前块的垂直轴对称的位置。
8.根据权利要求6所述的图像解码方法,其中,所述重新布置所述变换系数包括:
将所述当前块的变换系数重新布置到基于所述当前块的水平轴对称的位置。
9.根据权利要求6所述的图像解码方法,其中,所述重新布置所述变换系数包括:
基于距所述当前块的参考样本的距离,设置用于所述当前块的层;
按对角线扫描顺序扫描所述变换系数;以及
按所述扫描顺序将所述变换系数重新布置在所述层中,
其中,所述参考样本包括所述当前块的上参考样本和左参考样本。
10.一种由编码装置执行的图像编码方法,包括:
导出用于当前块的残差样本;
导出是否对所述当前块应用变换的变换跳过标志;
基于所述残差样本和所述变换跳过标志来导出所述当前块的当前子块中的变换系数;
导出用于所述当前子块的上下文语法元素的上下文编译bin的特定数目;
生成包括所述变换跳过标志和用于包括所述编码的上下文语法元素的所述当前块的残差信息的比特流,其中,所述残差信息是关于变换跳过的残差信息,
其中,当用于在所述当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到所述特定数目时,编码用于所述残差信息中包括的所述特定变换系数的旁路语法元素。
11.根据权利要求10所述的图像编码方法,其中,所述上下文语法元素包括,指示变换系数是否为非零变换系数的有效系数标志、用于所述变换系数的变换系数级别的奇偶性的奇偶性级别标志、关于所述变换系数级别是否大于第一阈值的第一变换系数级别标志、以及关于所述变换系数的变换系数级别是否大于第二阈值的第二变换系数级别标志。
12.根据权利要求10所述的图像编码方法,
其中,用于所述特定变换系数的上下文语法元素包括:指示所述特定变换系数是否为非零变换系数的有效系数标志、指示所述特定变换系数的符号的符号标志、用于所述特定变换系数的变换系数级别是否大于第一阈值的第一变换系数级别标志、用于所述变换系数级别的奇偶性的奇偶性级别标志、以及用于所述变换系数级别是否大于第二阈值的第二变换系数级别标志,
其中,对用于所述特定变换系数的所述上下文语法元素的编码被省略,并且
其中,与所述第二变换系数级别标志无关地,对用于所述特定变换系数的所述旁路语法元素进行解码。
13.一种非暂时性计算机可读存储介质,其存储通过方法生成的视频数据,所述方法包括:
导出用于当前块的残差样本;
导出用于是否对所述当前块应用变换的变换跳过标志;
基于所述残差样本和所述变换跳过标志来导出所述当前块的当前子块中的变换系数;
导出用于所述当前子块的上下文语法元素的上下文编译bin的特定数目;
生成包括所述变换跳过标志和用于包括所述编码的上下文语法元素的所述当前块的残差信息的比特流,其中,所述残差信息是关于变换跳过的残差信息,
其中,当用于在所述当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到所述特定数目时,编码用于所述残差信息中包括的所述特定变换系数的旁路语法元素。
14.一种方法,包括,获得包括变换跳过标志和用于包括编码的上下文语法元素的当前块的残差信息的视频数据,其中,所述视频数据是通过下述操作生成的:导出用于所述当前块的残差样本、导出用于是否对所述当前块应用变换的所述变换跳过标志、基于所述残差样本和所述变换跳过标志来导出所述当前块的当前子块中的变换系数、导出用于所述当前子块的所述上下文语法元素的上下文编译bin的特定数目、以及生成所述视频数据,其中,所述残差信息是关于变换跳过的残差信息;以及
发送所述视频数据,
其中,当用于在所述当前子块的特定变换系数之前导出的变换系数的上下文语法元素的上下文编译bin的数目达到所述特定数目时,编码用于所述残差信息中包括的所述特定变换系数的旁路语法元素。
CN202410002672.XA 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置 Pending CN117915091A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962791747P 2019-01-12 2019-01-12
US62/791,747 2019-01-12
CN202080013196.1A CN113412626B (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
PCT/KR2020/000621 WO2020145795A1 (ko) 2019-01-12 2020-01-13 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080013196.1A Division CN113412626B (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置

Publications (1)

Publication Number Publication Date
CN117915091A true CN117915091A (zh) 2024-04-19

Family

ID=71520296

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202080013196.1A Active CN113412626B (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410001985.3A Pending CN117915089A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410006790.8A Pending CN117939131A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410002459.9A Pending CN117915090A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410002672.XA Pending CN117915091A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN202080013196.1A Active CN113412626B (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410001985.3A Pending CN117915089A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410006790.8A Pending CN117939131A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置
CN202410002459.9A Pending CN117915090A (zh) 2019-01-12 2020-01-13 在图像编译系统中使用残差信息的图像解码方法及其装置

Country Status (6)

Country Link
US (3) US11350101B2 (zh)
EP (1) EP3896977A4 (zh)
KR (2) KR102640142B1 (zh)
CN (5) CN113412626B (zh)
CA (1) CA3126545A1 (zh)
WO (1) WO2020145795A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11595656B2 (en) * 2019-01-25 2023-02-28 Hfi Innovation Inc. Method and apparatus of transform coefficient coding with TB-level constraint
CN113596448A (zh) * 2019-03-09 2021-11-02 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、解码端、编码端和系统
US20240121437A1 (en) * 2022-10-06 2024-04-11 Tencent America LLC Ctu-row based geometric transform
WO2024119419A1 (zh) * 2022-12-07 2024-06-13 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
PL2628299T3 (pl) * 2010-10-14 2019-12-31 Interdigital Vc Holdings, Inc. Sposób i urządzenie do ulepszonego kodowania i dekodowania entropijnego
WO2013069991A1 (ko) * 2011-11-08 2013-05-16 삼성전자 주식회사 비디오의 산술 부호화 방법 및 그 장치, 비디오의 산술 복호화 방법 및 그 장치
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
CN103313048B (zh) * 2012-03-14 2017-12-22 中兴通讯股份有限公司 自适应控制算术编码上下文编码模式bin数量的方法
US9584802B2 (en) * 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US10257520B2 (en) * 2012-06-26 2019-04-09 Velos Media, Llc Modified coding for transform skipping
WO2015057036A1 (ko) * 2013-10-18 2015-04-23 엘지전자 주식회사 멀티-뷰 비디오를 디코딩하는 비디오 디코딩 방법 및 장치
EP3090543A4 (en) * 2013-12-30 2017-08-02 QUALCOMM Incorporated Simplification of delta dc residual coding in 3d video coding
US10750198B2 (en) * 2014-05-22 2020-08-18 Qualcomm Incorporated Maximum palette parameters in palette-based video coding
US10038915B2 (en) * 2014-05-22 2018-07-31 Qualcomm Incorporated Escape sample coding in palette-based video coding
US10609374B2 (en) * 2015-11-22 2020-03-31 Lg Electronics Inc. Method and apparatus for entropy-encoding and entropy-decoding video signal
US11671598B2 (en) * 2019-01-02 2023-06-06 Lg Electronics Inc. Image decoding method and device using residual information in image coding system

Also Published As

Publication number Publication date
CA3126545A1 (en) 2020-07-16
CN113412626A (zh) 2021-09-17
EP3896977A1 (en) 2021-10-20
KR20240028553A (ko) 2024-03-05
US11647202B2 (en) 2023-05-09
US20220264104A1 (en) 2022-08-18
US20210409716A1 (en) 2021-12-30
CN117939131A (zh) 2024-04-26
CN117915089A (zh) 2024-04-19
CN113412626B (zh) 2024-01-23
US11350101B2 (en) 2022-05-31
US20230232010A1 (en) 2023-07-20
KR20210093353A (ko) 2021-07-27
CN117915090A (zh) 2024-04-19
KR102640142B1 (ko) 2024-02-22
EP3896977A4 (en) 2022-03-02
WO2020145795A1 (ko) 2020-07-16

Similar Documents

Publication Publication Date Title
CN111699694B (zh) 使用变换跳过标志的图像编码方法和装置
CN113508587B (zh) 在视频编译系统中使用残差信息的视频解码方法及其设备
US11240533B2 (en) Video decoding method using residual information in video coding system, and apparatus thereof
CN114390282B (zh) 图像解码方法、图像编码方法和数据发送方法
CN113412626B (zh) 在图像编译系统中使用残差信息的图像解码方法及其装置
CN117544790A (zh) 变换系数编码方法及其装置
CN114467310A (zh) 图像编译系统中残差数据编译的图像解码方法及其装置
CN113597770B (zh) 基于变换的图像编译方法及其装置
CN113812156A (zh) 在视频编译系统中使用简化的残差数据编译解码视频的方法及其设备
CN116962692A (zh) 解码和编码设备、存储介质及发送用于图像的数据的设备
CN115349258B (zh) 图像编码系统中用于残差编码的图像解码方法及其设备
CN115336274B (zh) 与残差编码关联的图像解码方法以及用于其的装置
CN115443660B (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