CN112740681B - 自适应多重变换译码 - Google Patents

自适应多重变换译码 Download PDF

Info

Publication number
CN112740681B
CN112740681B CN201980060824.9A CN201980060824A CN112740681B CN 112740681 B CN112740681 B CN 112740681B CN 201980060824 A CN201980060824 A CN 201980060824A CN 112740681 B CN112740681 B CN 112740681B
Authority
CN
China
Prior art keywords
block
transform
threshold
type
horizontal
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.)
Active
Application number
CN201980060824.9A
Other languages
English (en)
Other versions
CN112740681A (zh
Inventor
V.塞雷金
A.加德
H.E.埃吉尔梅兹
M.卡尔切维茨
A.赛德
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN112740681A publication Critical patent/CN112740681A/zh
Application granted granted Critical
Publication of CN112740681B publication Critical patent/CN112740681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/103Selection of coding mode or of prediction mode
    • 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/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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
    • 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/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/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
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop

Landscapes

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

Abstract

描述了用于改进变换译码的技术。例如,能获得视频数据的经编码块,并且能确定该块的宽度和/或高度。能将该宽度与第一阈值进行比较和/或能将该高度与第二阈值进行比较。能基于将块的宽度与第一阈值和/或将块的高度与第二阈值进行比较来确定针对该块的水平变换和垂直变换。在不对指示水平变换和垂直变换的语法元素进行解码的情况下(例如,语法元素不在由解码设备处理的经编码视频比特流中)确定水平变换和垂直变换。在一些情况下,使用水平和垂直变换来确定残差数据,并且使用残差数据和预测块来确定视频块。

Description

自适应多重变换译码
技术领域
本申请涉及视频译码和压缩。例如,描述了一种用于改进诸如自适应多重变换译码的变换译码的***和方法。
背景技术
很多设备和***允许视频数据被处理和输出以供消费。数字视频数据包括大量数据,以满足消费者和视频提供商的需求。例如,视频数据的消费者期望具有高保真度、分辨率、帧速率等的最高质量的视频。结果,满足这些要求所需的大量视频数据给处理和存储视频数据的通信网络和设备带来了负担。
各种视频译码技术可以被用于压缩视频数据。视频译码是根据一种或者多种视频译码标准执行的。例如,视频译码标准包括高效视频译码(HEVC)、高级视频译码(AVC)、MPEG-2部分2译码(MPEG代表运动图像专家组)、VP9、开放媒体联盟(AOMedia)视频1(AV1)等。视频译码通常利用预测方法(例如,帧间预测、帧内预测等),预测方法对视频图像或者序列中存在的冗余加以利用。视频译码技术的一个重要目标是将视频数据压缩为使用较低比特率的形式,同时避免视频质量的下降或者将视频质量的下降最小化。随着不断发展的视频服务变得可用,需要具有更好译码效率的编码技术。
发明内容
本文描述了用于改进残差变换译码性能的技术和***。通常,视频编码器和/或视频解码器可以执行空域(图片内)预测和/或时域(图片间)预测,以减少或者消除视频序列中固有的冗余。经帧间译码块是根据至少一个运动矢量编码的,该运动矢量指向形成预测块的参考样点的至少一个块。该参考样点的至少一个块来自一个或者多个参考图片。经帧间译码块的残差数据指示来自一个或者多个参考图片的经译码块和预测块之间的差。基于对应于预测方向的帧内译码模式对经帧内译码块进行编码。经帧内译码块的残差数据指示该经译码块和与该经译码块处于同一图片内的预测块之间的差。
来自经帧间译码和/或经帧内译码块的残差数据可以被分成一个或者多个变换单元和/或变换样点块。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而得到残差系数。然后可以对残差系数进行量化。可以使用的变换包括离散正弦变换(DST)和离散余弦变换(DCT)。可以将与变换相对应的变换内核应用于一维(1D)输入数据,并且在一些情况下可以扩展为用于二维(2D)输入数据源。
在一些视频编解码器中(诸如H.264/AVC),默认变换(DCT II型变换)总是基于帧内预测和帧间预测二者被应用于残差。自适应多重变换(AMT)(也被称为增强型多重变换或者EMT)是一种译码方案,其中编码器可以针对预测残差的每个块来选择不同的变换。所选择的变换被作为辅助信息被信令通知(例如,使用的变换索引、标志或者其他信令机制)。在一些AMT设计中,各种AMT变换选项被提供给视频编码器以用于基于每个块的选择(例如,基于率失真度量)。然后,可以由视频编码器在视频比特流中信令通知所选择的变换的索引,该索引可以由视频解码器解码和分析。在通用视频译码(VVC)参考软件中,使用矩阵乘法来实现AMT变换,并且AMT的使用仅限于具有一定宽度和高度(例如,宽度<=32和高度<=32)的块。在这种情况下,使用的AMT矩阵的最大尺寸被限制为32×32(对应于宽度×高度)。设置此限制是为了限制内存和计算复杂性要求。例如,允许在宽度或者高度大于32的块中使用AMT可能会提供额外的译码增益,但可能导致内存和计算复杂性增加。
本文所描述的技术和***可以提高AMT和其他变换方案的性能。在一些示例中,可以显式地信令通知指示AMT是否用于块(例如,译码单元或者其他块)的AMT标志。根据本文提供的一些示例,可以基于块(例如,译码单元、预测单元或者变换单元)的尺寸来限制AMT标志的信令。例如,如果块的宽度和高度满足各种条件之一,则针对该块的AMT的值可以被限制为向解码器指示AMT未被用于该块的值(例如,0或者1),而无需在比特流中信令通知AMT标志。所述的条件可以基于块的尺寸,诸如块的宽度和/或高度。在一个示例中,对于块,值为0的AMT标志向解码器指示AMT未被用于该块,并且因此默认变换将被用于对应于该块的残差数据(例如,一个或者多个变换单元和/或变换块)。在一些情况下,默认变换可以包括DCT II型变换。在这样的示例中,对于块,具有值为1的AMT标志向解码器指示AMT可以被用于该块,并且因此可以使用除了默认变换之外的AMT变换。
还描述了用于在使用隐式信令时改进AMT性能的技术。例如,在使用隐式信令时,在块的经编码视频比特流中不存在AMT标志的信令;而是由解码器隐含地推导(例如,基于块尺寸、译码模式和/或其他信息)针对该块应用的变换。根据本文提供的一些示例,可以基于包括残差数据块的宽度和/或高度或者基于残差数据块(例如,针对该块生成的译码单元、预测单元或者变换单元)的宽度和/或高度,来针对该残差数据限制水平和/或垂直变换。在一个示例中,无需信令通知(例如,在视频比特流中)针对残差数据块(例如,变换单元和/或变换块)要使用的哪个水平变换的任何指示,如果残差数据块的宽度小于阈值宽度,则用于该残差数据块的水平变换内核被限制为(或者固定为)是除了默认变换(例如,AMT变换,诸如DST VII型变换)之外的变换。在这样的示例中,如果残差数据块的宽度大于阈值宽度,则同样无需信令通知针对残差数据块要使用哪个水平变换的任何指示,水平变换内核被限制为(或者固定为)是默认变换(例如,DCT II型变换)。可以定义类似的限制以基于残差数据块的高度指示针对该残差数据块要使用哪个垂直变换。使用基于残差数据块的宽度和/或高度的这种固定变换,解码器可以确定用于该块的变换,而无需在比特流中信令通知信息的开销。
本文中还提供了用于改进变换译码的其他技术。
根据至少一个示例,提供了一种解码视频数据的方法。该方法包括:获得视频数据的经编码块,以及确定块的宽度和块的高度中的至少一个。该方法还包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。该方法还包括基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于该块的水平变换和垂直变换。在不解码指示该水平变换和垂直变换的语法元素的情况下确定该水平变换和垂直变换。该方法还包括基于针对该块所确定的水平变换和垂直变换确定残差数据块。该方法还包括基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在另一个示例中,提供了一种用于解码视频数据的装置,该装置包括被配置为存储视频数据的至少一个经编码块的存储器,以及视频解码器,该视频解码器包括固定功能电路和可编程电路中的至少一个。在一些示例中,视频解码器被配置为获得视频数据的经编码块,并且被配置为确定块的宽度和块的高度中的至少一个。视频解码器还被配置为比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。视频解码器还被配置为基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于该块的水平变换和垂直变换。在不解码指示该水平变换和垂直变换的语法元素的情况下确定该水平变换和垂直变换。视频解码器还被配置为基于针对该块所确定的水平变换和垂直变换确定残差数据块。视频解码器还被配置为基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在另一个示例中,一种计算机可读存储介质存储指令,指令在被执行时使得用于解码视频数据的设备的一个或者多个处理器:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于该块的水平变换和垂直变换,在不解码指示该水平变换和垂直变换的语法元素的情况下确定该水平变换和垂直变换;基于针对该块所确定的水平变换和垂直变换确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在另一个示例中,提供了一种用于解码视频数据的装置。该装置包括:用于获得视频数据的经编码块的部件,以及用于确定块的宽度和块的高度中的至少一个的部件。该装置还包括用于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个的部件。该装置还包括用于基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于该块的水平变换和垂直变换的部件。在不解码指示该水平变换和垂直变换的语法元素的情况下确定该水平变换和垂直变换。该装置还包括用于基于针对该块所确定的水平变换和垂直变换确定残差数据块的部件。该装置还包括用于基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码的部件。
在一些方面,基于比较块的宽度与第一阈值来确定用于块的水平变换。在一些方面,基于比较块的高度与第二阈值来确定用于块的垂直变换。
在一些方面,基于比较块的宽度与第一阈值来确定用于块的水平变换,并且其中,基于比较块的高度与第二阈值来确定用于块的垂直变换。
在一些方面,基于块的宽度针对块的变换单元(TU)限制水平变换。
在一些方面,基于块的高度针对块的变换单元(TU)限制垂直变换。
在一些方面,当块的宽度小于第一阈值时,用于块的水平变换被确定为第一类型的水平变换。在一些方面,当块的宽度大于第一阈值时,用于块的水平变换被确定为第二类型的水平变换。在一些方面,第一类型的水平变换不同于第二类型的水平变换。在一些方面,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且第一类型的水平变换是不同于DCT II型变换的变换。在一些方面,第一类型的水平变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换中的一种。
在一些方面,当块的高度小于第二阈值时,用于块的垂直变换被确定为第一类型的垂直变换。在一些方面,当块的高度大于第二阈值时,用于块的垂直变换被确定为第二类型的垂直变换。在一些方面,第一类型的垂直变换不同于第二类型的垂直变换。在一些方面,第二类型的垂直变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的垂直变换是不同于DCT II型变换的变换。在一些方面,第一类型的垂直变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换中的一种。
在一些方面,块包括译码单元(CU)或者变换单元(TU)。
根据至少一个其他示例,提供了一种编码视频数据的方法。该方法包括:获得视频数据的块,以及确定块的宽度和块的高度中的至少一个。该方法还包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。该方法还包括基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换。该方法还包括在没有指示水平变换和垂直变换的语法元素的情况下,生成经编码的视频比特流。
在另一个示例中,提供了一种用于编码视频数据的装置,该装置包括存储器,其被配置为存储视频数据的至少一个块,以及视频编码器,其包括固定功能电路和可编程电路中的至少一个。在一些示例中,视频编码器被配置为获得视频数据的块,并且被配置为确定块的宽度和块的高度中的至少一个。视频编码器还被配置为比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。视频编码器还被配置为基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换。视频编码器还被配置为在没有指示水平变换和垂直变换的语法元素的情况下,生成经编码的视频比特流。
在另一个示例中,一种计算机可读存储介质存储指令,指令被执行时使得用于解码视频数据的设备的一个或者多个处理器:获得视频数据的块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换;以及在没有指示水平变换和垂直变换的语法元素的情况下,生成经编码的视频比特流。
在另一个示例中,提供了一种用于解码视频数据的装置。该装置包括:用于获得视频数据的块的部件,以及用于确定块的宽度和块的高度中的至少一个的部件。该装置还包括用于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个的部件。该装置还包括用于基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换的部件。该装置还包括在没有指示水平变换和垂直变换的语法元素的情况下,生成经编码的视频比特流的部件。
在一些方面,基于比较块的宽度与第一阈值来确定用于块的水平变换。在一些方面,基于比较块的高度与第二阈值来确定用于块的垂直变换。
在一些方面,基于比较块的宽度与第一阈值来确定用于块的水平变换,并且基于比较块的高度与第二阈值来确定用于块的垂直变换。
在一些方面,基于块的宽度针对块的变换单元(TU)限制水平变换。
在一些方面,基于块的高度针对块的变换单元(TU)限制垂直变换。
在一些方面,当块的宽度小于第一阈值时,用于块的水平变换被确定为第一类型的水平变换。在一些方面,当块的宽度大于第一阈值时,用于块的水平变换被确定为第二类型的水平变换。在一些方面,第一类型的水平变换不同于第二类型的水平变换。在一些方面,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且第一类型的水平变换是不同于DCT II型变换的变换。在一些方面,第一类型的水平变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换中的一种。
在一些方面,当块的高度小于第二阈值时,用于块的垂直变换被确定为第一类型的垂直变换。在一些方面,当块的高度大于第二阈值时,用于块的垂直变换被确定为第二类型的垂直变换。在一些方面,第一类型的垂直变换不同于第二类型的垂直变换。在一些方面,第二类型的垂直变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的垂直变换是不同于DCT II型变换的变换。在一些方面,第一类型的垂直变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换中的一种。
在一些方面,块包括译码单元(CU)或者变换单元(TU)。
在一些方面,以上描述的方法、装置和计算机可读介质能够包括:基于将水平变换和垂直变换应用于残差数据来生成包括一个或者多个变换系数的变换块;并且对该变换块进行编码。
根据至少一个其他示例,提供了一种解码视频数据的方法。该方法包括获得视频数据的经编码块,以及确定块的宽度和块的高度中的至少一个。该方法还包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。该方法还包括:在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;和/或在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换。该方法还包括基于针对该块确定的水平变换和垂直变换来确定残差数据块。该方法还包括基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在另一个示例中,提供了一种用于解码视频数据的装置,该装置包括存储器,其被配置为存储视频数据的至少一个块,以及视频解码器,其包括固定功能电路和可编程电路中的至少一个。在一些示例中,视频编码器被配置为获得视频数据的经编码块,并且被配置为确定块的宽度和块的高度中的至少一个。视频编码器还被配置为比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。视频编码器还被配置为:在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;和/或在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换。视频编码器还被配置为基于针对该块确定的水平变换和垂直变换来确定残差数据块。视频编码器还被配置为基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在另一个示例中,一种计算机可读存储介质存储指令,指令被执行时使得用于解码视频数据的设备的一个或者多个处理器:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;和/或在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换;基于针对该块确定的水平变换和垂直变换来确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在另一个示例中,提供了一种用于解码视频数据的装置。该装置包括用于获得视频数据的经编码块的部件,以及用于确定块的宽度和块的高度中的至少一个的部件。该装置还包括用于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个的部件。该装置还包括用于在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换的部件;用于在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换的部件;用于在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换的部件;和/或用于在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换的部件。该装置还包括用于基于针对该块确定的水平变换和垂直变换来确定残差数据块的部件。该装置还包括用于基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码的部件。
根据至少一个其他示例,提供了一种编码视频数据的方法。该方法包括获得视频数据的块,以及确定块的宽度和块的高度中的至少一个。该方法还包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。该方法还包括:在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;和/或在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换。该方法还包括在没有指示所确定的水平变换和所确定的垂直变换的语法元素的情况下,生成经编码的视频比特流。
在另一个示例中,提供了一种用于编码视频数据的装置,该装置包括存储器,其被配置为存储视频数据的至少一个块,以及视频编码器,其包括固定功能电路和可编程电路中的至少一个。在一些示例中,视频编码器被配置为获得视频数据的块,并且被配置为确定块的宽度和块的高度中的至少一个。视频编码器还被配置为比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。视频编码器还被配置为:在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;和/或在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换。视频编码器还被配置为在没有指示所确定的水平变换和所确定的垂直变换的语法元素的情况下,生成经编码的视频比特流。
在另一个示例,一种计算机可读存储介质存储指令,指令被执行时使得用于编码视频数据的设备的一个或者多个处理器:获得视频数据的块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;和/或在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换;以及在没有指示所确定的水平变换和所确定的垂直变换的语法元素的情况下,生成经编码的视频比特流。
在另一个示例中,提供了一种用于编码视频数据的装置。该装置包括用于获得视频数据的块的部件,以及用于确定块的宽度和块的高度中的至少一个的部件。该装置还包括用于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个的部件。该装置还包括:用于在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换的部件;用于在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换的部件;用于在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换的部件;和/或用于在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换的部件。该装置还包括在没有指示所确定的水平变换和所确定的垂直变换的语法元素的情况下,生成经编码的视频比特流的部件。
上述关于任何方法、装置和计算机可读介质的方面能够被单独使用或者以任何合适的组合来使用。
本发明内容既不旨在识别所要求保护的主题的关键或者必要特征,也不旨在单独用于确定所要求保护的主题的范围。通过参考本专利的整个说明书的适当部分、任何或者所有附图以及每个权利要求,应当理解本主题。
通过参考以下说明书、权利要求书和附图,前述以及其他特征和实施例将变得更加显而易见。
附图说明
下面参照以下附图详细描述各种实施方式的示例:
图1是图示根据一些示例的包括编码设备和解码设备的***的示例的框图;
图2A-图2E是图示根据一些示例的变换类型的示例的表;
图3A和图3B是图示根据一些示例的基于高效视频译码(HEVC)中的残差四叉树的变换方案的示例的概念图。
图4是图示根据一些示例的用于具有自适应变换选择的混合视频编码的***的示例的框图;
图5A和图5B是图示根据一些示例的可分变换实施方案的示例的概念图,其中水平线和垂直线被独立地变换;
图6是图示根据一些示例的变换信令的示例的概念图;
图7是图示根据一些示例的对视频数据进行解码的过程的示例的流程图;
图8是图示根据一些示例的对视频数据进行编码的过程的示例的流程图;
图9是图示根据一些示例的对视频数据进行解码的过程的另一示例的流程图;
图10是图示根据一些示例的对视频数据进行编码的过程的另一示例的流程图;
图11是图示根据一些示例的示例视频编码设备的框图;以及
图12是图示根据一些示例的示例视频解码设备的框图。
具体实施方式
下面提供本公开的一些方面和实施例。对于本领域技术人员显而易见的是,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合地应用。在以下描述中,出于解释说明的目的,阐述了具体细节以便提供对本申请的实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述并不具有限制性的意图。
接下来的描述仅提供示例性实施例,并且无意于限制本公开的范围、适用性或者配置。相反,接下来对示例性实施例的描述将向本领域技术人员提供用于实现示例性实施例的使能描述。应该理解的是,在不脱离所附权利要求中所阐述的本发明的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
视频译码设备实现视频压缩技术以有效地编码和解码视频数据。视频压缩技术可以包括应用不同的预测模式,包括空域预测(例如,帧之内的预测或帧内预测)、时域预测(例如,帧之间的预测或帧间预测)、层间预测(跨视频数据的不同层)和/或其他预测技术,以减少或者消除视频序列中固有的冗余。视频编码器能够将原始视频序列的每个图片划分为多个矩形区域,这些矩形区域被称为视频块或者译码单元(下面将更详细描述)。可以使用特定的预测模式来对这些视频块进行编码。
可以以一种或者多种方式将视频块分成一组或者多组较小的块。块能包括译码树块、预测块、变换块和/或其他合适的块。除非另外指明,否则通常对“块”的引用可以指代这样的视频块(例如,如本领域普通技术人员应该理解的,译码树块、译码块、预测块、变换块或者其他适当的块或者子块)。此外,这些块中的每一个在本文中也可以可互换地称为“单元”(例如,译码树单元(CTU)、译码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可以指示在比特流中编码的译码逻辑单元,而块可以指示过程所针对的视频帧缓冲器的一部分。
针对帧间预测模式,视频编码器可以在位于另一时域位置的帧(或者图片)中搜索与正在被编码的块相似的块,该帧被称为参考帧或者参考图片。视频编码器可以将搜索限制为距离要编码的块一定的空域位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动矢量来定位最佳匹配。针对帧内预测模式,视频编码器可以基于来自同一图片内先前编码的相邻块的数据,使用空域预测技术来形成预测块。
视频编码器可以确定预测误差。例如,可以将预测误差确定为正在被编码的块与预测块中的像素值之间的差。预测误差也可以称为残差。视频编码器还可以使用变换译码(例如,使用离散余弦变换(DCT)的形式、离散正弦变换(DST)的形式,或者其他合适变换)对预测误差应用变换,以生成变换系数。变换之后,视频编码器可以对变换系数进行量化。经量化的变换系数和运动矢量可以使用语法元素来表示,并且与控制信息一起形成视频序列的经译码的表示。在一些情况下,视频编码器可以对语法元素进行熵译码,从而进一步减少其表示所需的比特数量。
视频解码器可以使用以上讨论的语法元素和控制信息来构造用于解码当前帧的预测数据(例如,预测块)。例如,视频解码器可以将预测块和压缩的预测误差相加。视频解码器可以通过使用经量化系数对变换基础函数加权来确定压缩的预测误差。重构帧和原始帧之间的差称为重构误差。
如以下更详细地描述的,本文描述了与改进残差变换译码的性能相关的***、装置、方法(也称为过程)和计算机可读介质,其是现代视频压缩标准的基本要素。在一些示例中,技术被描述为用于改进自适应变换译码方案,诸如自适应多重变换(AMT)译码。例如,描述了对自适应变换施加限制的技术,该自适应变换可以基于与块有关的信息(诸如块的形状和/或尺寸)和/或来自与该块相邻的一个或者多个块(称为相邻块)的信息而用于该块。施加上述限制能引入附加的译码增益。
本文描述的技术得到与其他AMT设计相比需要较少信令开销的自适应变换译码(例如AMT)设计。因为本文所述的自适应变换译码技术具有较少的信令开销,所以设计可以提高译码增益,并且可以在高级视频编解码器的上下文中使用。例如,本文描述的技术可以应用到各种基于块的视频译码技术中的一个或者多个,其中以逐个块为基础重构视频。像素块可以被不同地称为译码树单元(CTU)、最大译码单元(LCU)、预测单元(PU)、变换单元(TU)和/或如本文描述的取决于使用的基于块的视频译码的其他术语。在一些示例中,本文描述的技术可以应用于任何现有视频编解码器(例如,高效视频译码(HEVC)、高级视频译码(AVC)或者其他合适的现有视频编解码器),和/或可以是用于正在开发的任何视频译码标准和/或未来的视频译码标准(诸如,例如通用视频译码(VVC)、联合探索模型(JEM)、VP9、AV1和/或开发中或者将要开发的其他视频译码标准)的有效译码工具。
图1是图示包括编码设备104和解码设备112的***100的示例的框图。编码设备104可以是源设备的一部分,而解码设备112可以是接收设备(也称为客户端设备)的一部分。源设备和/或接收设备可以包括电子设备,诸如移动或者固定电话手机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型计算机或者笔记本计算机、平板计算机、机顶盒、电视、照相机、显示设备、数字媒体播放器、视频游戏机、互联网协议(IP)照相机、包括一个或者多个服务器设备的服务器***(例如,视频流服务器***或者其他合适的服务器***)中的服务器设备、头戴式显示器(HMD)、平视显示器(HUD)、智能眼镜(例如虚拟现实(VR)眼镜、增强现实(AR)眼镜,或者其他智能眼镜)或者任何其他合适的电子设备。
***100的组件可以包括电子电路或者其他电子硬件和/或可以使用电子电路或者其他电子硬件来实现,该电子电路或者其他电子硬件可以包括一个或者多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理器(CPU)和/或其他合适的电子电路)和/或可以包括计算机软件、固件或者其任何组合和/或使用计算机软件、固件或者其任何组合来实现,以执行本文所述的各种操作。
虽然***100被示为包括一些组件,但是本领域的普通技术人员将了解,***100可以包括比图1所示的组件更多或者更少的组件。例如,在一些情况下,***100还可以包括除存储器108和存储器118以外的一个或者多个存储器设备(例如,一个或者多个随机存取存储器(RAM)组件、只读存储器(ROM)组件、高速缓存存储组件、缓冲器组件、数据库组件和/或其他存储设备)、与一个或者多个存储器设备通信和/或电连接到一个或者多个存储器设备的一个或者多个处理设备(例如,一个或者多个CPU、GPU和/或其他处理设备)、用于执行无线通信的一个或者多个无线接口(例如,包括一个或者多个收发机和用于每个无线接口的基带处理器)、用于经由一个或者多个硬接线连接来执行通信的一个或者多个有线接口(例如,诸如通用串行总线(USB)输入的串行接口、照明连接器和/或其他有线接口),和/或图1中未示出的其他组件。
本文描述的译码技术适用于各种多媒体应用中的视频译码,包括流视频传输(例如,通过互联网)、电视广播或者传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码或者其他应用。在一些示例中,***100可以支持单向或者双向视频传输以支持诸如视频会议、视频流、视频播放、视频广播、游戏和/或视频电话之类的应用。
编码设备104(或者编码器)可以用于使用视频译码标准或者协议来对视频数据进行编码以生成经编码的视频比特流。视频译码标准的示例包括ITU-T H.261、ISO/IECMPEG-1视觉、ITU-T H.262或者ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉、ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展,以及高效视频译码(HEVC)或者ITU-T H.265。存在用于多层视频译码的HEVC的各种扩展,包括范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)和可缩放扩展(SHVC)。HEVC及其扩展已经由视频译码联合协作团队(JCT-VC)以及ITU-T视频译码专家组(VCEG)的3D视频译码扩展开发联合协作团队(JCT-3V)和ISO/IEC动态图片专家组(MPEG)开发。
MPEG和ITU-T VCEG还组建了联合探索视频团队(JVET),以探索和开发用于下一代视频译码标准的新视频译码工具,名为通用视频译码(VVC)。参考软件被称为VVC测试模型(VTM)。VVC的目标是在现有HEVC标准的基础上显著提高压缩性能,以帮助部署更高质量的视频服务和新兴应用(诸如360°全方向沉浸式多媒体、高动态范围(HDR)视频等)。VP9和开放媒体联盟(AOMedia)视频1(AV1)是针对其可以应用本文所描述的技术的其他视频译码标准。
可以使用诸如VTM、VVC、HEVC、AVC和/或其扩展的视频编解码器来执行本文描述的许多实施例。但是,本文描述的技术和***也可以适用于其他译码标准,诸如MPEG、联合图像专家组(JPEG)(或者用于静止图像的其他译码标准)、VP9、AV1、及其扩展或者已经可用或者尚未可用或者已开发的其他合适的译码标准。因此,尽管可以参考特定的视频译码标准来描述本文所述的技术和***,但是本领域的普通技术人员将理解,不应将描述解释为仅适用于该特定标准。
参考图1,视频源102可以将视频数据提供给编码设备104。视频源102可以是源设备的一部分,或者可以是源设备以外的设备的一部分。视频源102可以包括视频捕获设备(例如,视频摄像机、拍照电话、视频电话等)、包含存储的视频的视频档案、提供视频数据的视频服务器或者内容提供商、从视频服务器或者内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形***、此类源的组合或者任何其他合适的视频源。
来自视频源102的视频数据可以包括一个或者多个输入图片。图片也可以被称为“帧”。图片或者帧是静止图像,在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不属于视频的一部分的静止图像。在HEVC、VVC和其他视频译码规范中,视频序列可以包含一系列图片。图片可以包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列,SCb是Cb色度通道样点的二维阵列,SCr是Cr色度通道样点的二维阵列。色度通道样点在本文中也可以被称为“色度”样点。在其他情况下,图片可以是单色的,并且可以仅包括亮度样点的阵列。
编码设备104的编码器引擎106(或者编码器)对视频数据进行编码以生成经编码的视频比特流。在一些示例中,经编码的视频比特流(或者“视频比特流”或者“比特流”)是一系列的一个或者多个经译码的视频序列。经译码的视频序列(CVS)包括一系列访问单元(AU),该系列AU以具有基本层中的随机访问点图片并且具有某些特性的AU开始,直到且不包括具有基本层中的随机访问点图片并且具有某些特性的下一个AU。例如,开始CVS的随机访问点图片的某些属性可以包括等于1的随机访问跳过前导(RASL)图片标志(例如,NoRaslOutputFlag)。否则,随机访问点图片(具有RASL标志等于0)不开始CVS。访问单元(AU)包括一个或者多个经译码图片和与共享相同输出时间的经译码图片相对应的控制信息。图片的经译码条带在比特流级别中被封装为称为网络抽象层(NAL)单元的数据单元。例如,HEVC视频比特流可以包括一个或者多个CVS,其包括NAL单元。每个NAL单元具有NAL单元标头。在一个示例中,标头针对H.264/AVC(多层扩展除外)为1个字节,针对HEVC为2个字节。NAL单元标头中的语法元素采用指定的比特,因此对于所有类型的***和传输层(诸如传输流、实时传输(RTP)协议、文件格式等)都是可见的。
HEVC标准中存在两类NAL单元,包括视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括形成经译码的视频比特流的经译码的图片数据。例如,形成经译码视频比特流的比特序列存在于VCL NAL单元中。VCL NAL单元可以包括经译码的图片数据的一个条带或者条带分段(如下所述),并且非VCL NAL单元包括与一个或者多个经译码图片有关的控制信息。在一些情况下,NAL单元可以被称为分组。HEVC AU包括包含经译码的图片数据的VCL NAL单元和对应于经译码图片数据的非VCL NAL单元(如果有)。除其他信息外,非VCLNAL单元还可以包含具有与经编码的视频比特流相关的高级信息的参数集。例如,参数集可以包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。在一些情况下,比特流的每个条带或者其他部分可以引用单个活动的PPS、SPS和/或VPS,以允许解码设备112访问可用于解码比特流的条带或者其他部分的信息。
NAL单元可以包含形成视频数据的经译码表示(例如,经编码额视频比特流、比特流的CVS等)的比特序列,诸如视频中图片的经译码表示。编码器引擎106通过将每个图片分割为多个条带来生成图片的经译码表示。一个条带与其他条带无关,因此可以不依赖来自同一图片内的其他条带的数据而对该条带中的信息进行译码。条带包括包含独立的条带分段的一个或者多个条带分段以及(如果存在的话)取决于先前条带分段的一个或者多个从属条带分段。
在HEVC中,随后将条带分割为亮度样点和色度样点的译码树块(CTB)。亮度样点的CTB和色度样点的一个或者多个CTB、以及用于样点的语法,被称为译码树单元(CTU)。CTU也可以被称为“树块”或者“最大译码单元”(LCU)。CTU是HEVC编码的基本处理单元。CTU可以划分为不同尺寸的多个译码单元(CU)。CU包含亮度和色度样点阵列,该阵列被称为译码块(CB)。
亮度和色度CB可以进一步划分为预测块(PB)。PB是亮度分量或者色度分量的样点块,其使用用于帧间预测或者帧内块复制预测(在可用或者启用时)的相同的运动参数。亮度PB和一个或者多个色度PB以及相关联的语法一起形成预测单元(PU)。针对帧间预测,对于每个PU在比特流中信令通知一组运动参数(例如,一个或者多个运动矢量、参考索引等),并将其用于亮度PB和一个或者多个色度PB的帧间预测。运动参数也可以被称为运动信息。CB也可以被分割为一个或者多个变换块(TB)。TB表示颜色分量的样点的正方形块,在其上应用残差变换(例如,在一些情况下,相同的二维变换)以对预测残差信号进行译码。变换单元(TU)表示亮度和色度样点的TB,以及相对应的语法元素。在下面更详细地描述变换译码。
CU的尺寸对应于译码模式的尺寸并且可以是正方形形状的。例如,CU的尺寸可以是8×8样点、16×16样点、32×32样点、64×64样点,或者达到对应CTU的尺寸的任何其他合适的尺寸。短语“N×N”在本文中用于指代垂直和水平维度方面的视频块的像素维度(例如,8像素×8像素)。块中的像素可以按行和列排列。在一些实施例中,块在水平方向上可以不具有与垂直方向上相同数量的像素。例如,与CU相关联的语法数据可以描述CU到一个或者多个PU的分割。在CU是帧内预测模式编码还是帧间预测模式编码之间,分割模式可以不同。PU可以被分割为非正方形形状。与CU相关联的语法数据还可以描述,例如根据CTU的CU到一个或者多个TU的分割。TU的形状可以是正方形或者非正方形。
根据HEVC标准,可以使用变换单元(TU)来执行变换。针对不同的CU,TU可以改变。可以基于给定CU内的PU的尺寸来确定TU的尺寸。TU的尺寸可以与PU相同或者更小。在一些示例中,可以使用被公知为残差四叉树(RQT)的四叉树结构将对应于CU的残差样点细分成更小的单元。RQT的叶节点可以对应于TU。可以变换与TU相关联的像素差值以产生变换系数。然后可以由编码器引擎106对变换系数进行量化。
一旦视频数据的图片被分割成CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或者预测块以获得残差(如下所述)。针对每个CU,可以使用语法数据在比特流内部信令通知预测模式。预测模式可以包括帧内预测(或者图片内预测)或者帧间预测(或者图片间预测)。帧内预测利用图片内空域相邻样点之间的相关性。例如,使用帧内预测,使用例如用来找到PU的平均值的DC预测、用来使平面适应PU的平面预测、用来从相邻数据进行推断的方向预测、或者任何其他适当类型的预测来从同一图片中的相邻图像数据预测每个PU。帧间预测使用图片之间的时域相关性,以便推导出图像样点块的运动补偿预测。例如,使用帧间预测,使用运动补偿预测从一个或者多个参考图片中的图像数据(以输出顺序在当前图片之前或者之后)预测每个PU。例如,可以在CU级别上做出使用图片间还是图片内预测对图片区域进行译码的决策。
编码器引擎106和解码器引擎116(在下面更详细地描述)可以被配置为根据VVC操作。根据VVC,视频译码器(例如,编码器引擎106和/或解码器引擎116)将图片分割为多个译码树单元(CTU)(其中,亮度样点的CTB和色度样点的一个或者多个CTB连同样点的语法一起被称为CTU)。视频译码器可以根据树结构(诸如四叉树-二叉树(QTBT)结构或者多类型树(MTT)结构)对CTU进行分割。QTBT结构消除了多个分割类型的概念,诸如HEVC的CU、PU和TU之间的区分。QTBT结构包括两个级别,包括根据四叉树分割而分割的第一级别和根据二叉树分割而分割的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在MTT分割结构中,可以使用四叉树分割、二叉树分割以及一个或者多个类型的三叉树分割来对块进行分割。三叉树分割是将块划分为三个子块的分割。在一些示例中,三叉树分割将块分成三个子块,而不通过中心来分割原始块。MTT中的分割类型(例如,四叉树、二叉树和三叉树)可以是对称的或者不对称的。
在一些示例中,视频译码器可以使用单个QTBT或者MTT结构来表示亮度和色度分量中的每一个,而在其他示例中,视频译码器可以使用两个或者多个QTBT或者MTT结构,诸如用于亮度分量的一个QTBT或者MTT结构和用于两个色度分量的另一QTBT或者MTT结构(或者用于相应色度分量的两个QTBT和/或MTT结构)。
视频译码器可以被配置为使用根据HEVC的四叉树分割、QTBT分割、MTT分割或者其他分割结构。为了说明的目的,本文的描述可以指代QTBT分割。然而,应该理解,本公开的技术还可以应用于被配置为使用四叉树分割或者其他类型的分割的视频译码器。
在一些示例中,为图片的一个或者多个条带分配条带类型。条带类型包括帧内译码条带(I条带)、帧间译码P条带和帧间译码B条带。I条带(可独立解码的帧内译码帧)是仅由帧内预测译码的图片的条带,因此是可独立解码的,因为I条带仅需要该帧内的数据来预测条带的任何预测单元或者预测块。P条带(单向预测的帧)是可以用帧内预测和单向帧间预测译码的图片的条带。用帧内预测或者帧间预测对P条带中的每个预测单元或者预测块进行译码。当采用帧间预测时,预测单元或者预测块仅由一个参考图片预测,因此参考样点仅来自一个帧的一个参考区域。B条带(双向预测帧)是可以用帧内预测和帧间预测(例如,双向预测或者单向预测)译码的图片的条带。可以从两个参考图片来双向预测B条带的预测单元或者预测块,其中每个图片贡献一个参考区域,并对两个参考区域的样点集进行加权(例如,具有相等的权重或者具有不同的权重)以产生双向预测块的预测信号。如上所解释说明,一个图片的条带是独立译码的。在一些情况下,图片可以被译码为仅一个条带。
如上所述,图片内预测利用图片内的空域相邻样点之间的相关性。存在多种帧内预测模式(也称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35个模式,包括平面模式、DC模式和33个角度模式(例如,对角帧内预测模式和与对角帧内预测模式相邻的角度模式)。如以下表1所示,对帧内预测的35种模式进行索引。在其他示例中,可以定义更多的帧内模式,包括可能尚未由33个角度模式表示的预测角度。在其他示例中,与角度模式相关联的预测角度可以不同于HEVC中使用的那些预测角度。
帧内预测模式 相关联名称
0 INTRA_PLANAR
1 INTRA_DC
2..34 INTRA_ANGULAR2..INTRA_ANGULAR34
表1-帧内预测模式和相关联名称的规范
图片间预测使用图片之间的时域相关性以便推导出针对图像样点块的运动补偿预测。使用平移运动模型,通过运动矢量(Δx,Δy)指示先前解码的图片(参考图片)中的块的位置,其中Δx指定参考块相对于当前块的位置的水平位移,并且Δy指定参考块相对于当前块的位置的垂直位移。在一些情况下,运动矢量(Δx,Δy)可以是整数样点精度(也被称为整数精度),在这种情况下,运动矢量指向参考帧的整数像素网格(或者整数像素采样网格)。在一些情况下,运动矢量(Δx,Δy)可以是分数样点精度(也称为分数像素精度或者非整数精度),以更准确地捕获基础对象的运动,而不受限于参考帧的整数像素网格。运动矢量的精度可以由运动矢量的量化级别表示。例如,量化级别可以是整数精度(例如1像素)或者分数像素精度(例如1/4像素、1/2像素或者其他子像素值)。当相应的运动矢量具有分数样点精度时,将插值应用于参考图片以得出预测信号。例如,可以对在整数位置处可用的样点进行滤波(例如,使用一个或者多个插值滤波器)以估计分数位置处的值。先前解码的参考图片由到参考图片列表的参考索引(refIdx)指示。运动矢量和参考索引可以被称为运动参数。可以执行两种图片间预测,包括单向预测和双向预测。
在使用双向预测的帧间预测的情况下,两组运动参数(Δx0,Δy0,refIdx0和Δx1,Δy1,refIdx1)被用于生成两个运动补偿的预测(来自同一参考图片或者可能来自不同参考图片)。例如,利用双向预测,每个预测块使用两个运动补偿的预测信号,并生成B预测单元。然后将两个运动补偿的预测组合起来以获得最终的运动补偿的预测。例如,两个运动补偿的预测可以通过平均来组合。在另一个示例中,可以使用加权预测,在这种情况下,可以将不同的权重应用于每个运动补偿的预测。可以在双向预测中使用的参考图片被存储在两个单独的列表中,分别表示为列表0和列表1。可以使用运动估计过程在编码器处推导出运动参数。
在使用单向预测的帧间预测的情况下,一组运动参数(Δx0,Δy0,refIdx0)被用于从参考图片生成运动补偿的预测。例如,利用单向预测,每个预测块使用最多一个运动补偿的预测信号,并生成P预测单元。
PU可以包括与预测过程有关的数据(例如,运动参数或者其他合适的数据)。例如,当使用帧内预测对PU进行编码时,PU可以包括描述用于PU的帧内预测模式的数据。作为另一个示例,当使用帧间预测对PU进行编码时,PU可以包括定义用于PU的运动矢量的数据。定义用于PU的运动矢量的数据可以描述,例如运动矢量的水平分量(Δx)、运动矢量的垂直分量(Δy)、运动矢量的分辨率(例如整数精度、四分之一像素精度或者八分之一像素精度)、运动矢量指向的参考图片、参考索引、运动矢量的参考图片列表(例如,列表0、列表1或者列表C),或者其任意组合。
在使用帧内和/或帧间预测执行预测之后,编码设备104可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算与PU相对应的残差值。残差值可以包括被译码的当前像素块(PU)和用来预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,使用帧间预测或者帧内预测)之后,编码器引擎106可以通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括一组像素差值,其量化当前块的像素值与预测块的像素值之间的差。在一些示例中,可以以二维块格式(例如,像素值的二维矩阵或者阵列)来表示残差块。在这样的示例中,残差块是像素值的二维表示。
使用块变换来变换在执行预测之后可能剩余的任何残差数据,该块变换可以基于离散余弦变换(DCT)、离散正弦变换(DST)、整数变换、小波变换、其他合适的变换函数,或者其任何组合。在一些情况下,可以将一个或者多个块变换(例如,尺寸为32×32、16×16、8×8、4×4或者其他合适尺寸的内核)应用于每个CU中的残差数据。在一些示例中,TU可以用于由编码器引擎106实现的变换和量化过程。具有一个或者多个PU的给定CU也可以包括一个或者多个TU。如下面进一步详细描述的,可以使用块变换将残差值变换为变换系数,然后可以使用TU对残差值进行量化和扫描,以产生用于熵译码的序列化变换系数。
在一些实施例中,在使用CU的PU进行帧内预测或者帧间预测编码之后,编码器引擎106可以计算CU的TU的残差数据。PU可以包括空间域(或者像素域)中的像素数据。如前所述,该残差数据可以对应于未经编码图片的像素和对应于该PU的预测值之间的像素差值。编码器引擎106可以形成一个或者多个TU,该TU包括用于CU(其包括该PU)的残差数据,并且然后可以对该TU进行变换以产生用于CU的变换系数。该TU可以包括在应用块变换之后的变换域中的系数。
编码器引擎106可以执行变换系数的量化。通过对变换系数进行量化以减少用来表示系数的数据量,量化提供进一步的压缩。例如,量化可以减少与一些或者所有系数相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间被舍入为m比特值,其中n大于m。
一旦执行了量化,则经译码的视频比特流包括经量化的变换系数、预测信息(例如,预测模式、运动矢量、块矢量等)、分割信息以及任何其他合适的数据(诸如其他语法数据)。然后,经译码视频比特流的不同元素可以由编码器引擎106进行熵编码。在一些示例中,编码器引擎106可以利用预定义的扫描顺序来扫描经量化的变换系数以产生可以被熵编码的序列化矢量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描经量化的变换系数以形成矢量(例如,一维矢量)之后,编码器引擎106可以对矢量进行熵编码。例如,编码器引擎106可以使用上下文自适应可变长度译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率间隔分割熵译码或者另一种合适的熵编码技术。
编码设备104的输出110可以通过通信链路120将组成经编码的视频比特流数据的NAL单元发送到接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括由无线网络、有线网络或者有线和无线网络的组合提供的信道。无线网络可以包括任何无线接口或者无线接口的组合,并且可以包括任何合适的无线网络(例如,互联网或者其他广域网、基于分组的网络、WiFiTM、射频(RF)、超宽带(UWB)、WiFi-Direct、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆上的以太网、数字信号线(DSL)等)。可以使用各种设备来实现有线和/或无线网络,诸如基站、路由器、接入点、网桥、网关、交换机等。可以根据诸如无线通信协议的通信标准来调制经编码的视频比特流数据,并且将其发送到接收设备。
在一些示例中,编码设备104可以将经编码的视频比特流数据存储在存储器108中。输出110可以从编码器引擎106或者从存储器108取回经编码的视频比特流数据。存储器108可以包括各种分布式或者本地访问的数据存储介质中的任何一种。例如,存储器108可以包括硬盘驱动器、存储盘、闪存、易失性或者非易失性存储器,或者用于存储经编码的视频数据的任何其他合适的数字存储介质。存储器108还可以包括用于存储在帧间预测中使用的参考图片的经解码图片缓冲器(DPB)。在另一示例中,存储器108可以对应于文件服务器或者另一中间存储设备,其可以存储由源设备生成的经编码视频。在这种情况下,包括解码设备112的接收设备可以经由流传输或者下载来从存储设备访问存储的视频数据。文件服务器可以是能够存储经编码的视频数据并将该经编码的视频数据发送到接收设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络连接存储(NAS)设备或者本地磁盘驱动器。接收设备可以通过任何标准数据连接(包括互联网连接)访问经编码的视频数据。这可以包括适合于访问存储在文件服务器上的经编码的视频数据的无线信道(例如Wi-Fi连接)、有线连接(例如DSL、电缆调制解调器等)或者二者的组合。来自存储器108的经编码的视频数据的传输可以是流传输、下载传输或者其组合。
解码设备112的输入114接收经编码的视频比特流数据,并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储器118以稍后由解码器引擎116使用。例如,存储器118可以包括用于存储在帧间预测中使用的参考图片的DPB。包括解码设备112的接收设备可以经由存储器108接收要进行解码的经编码的视频数据。可以根据诸如无线通信协议的通信标准来调制经编码的视频数据,并且将其发送到接收设备。用于发送经编码的视频数据的通信介质可以包括任何无线或者有线通信介质,诸如射频(RF)频谱或者一个或者多个物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或者诸如因特网的全球网络)的一部分。通信介质可以包括路由器、交换机、基站或者有助于从源设备到接收设备的通信的任何其他设备。
解码器引擎116可以通过熵解码(例如,使用熵解码器)并提取构成经编码的视频数据的一个或者多个经译码的视频序列的元素,来对经编码的视频比特流数据进行解码。然后,解码器引擎116可以重新缩放经编码的视频比特流数据并对其执行逆变换。然后,残差数据被传递到解码器引擎116的预测阶段。然后,解码器引擎116预测像素块(例如,PU)。在一些示例中,将预测加到逆变换的输出(残差数据)。
视频解码设备112可以将经解码视频输出到视频目标设备122,其可以包括用于向内容的消费者显示经解码视频数据的显示器或者其他输出设备。在一些方面,视频目标设备122可以是包括解码设备112的接收设备的一部分。在一些方面,视频目标设备122可以是接收设备之外的单独设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112也可以包括实现上述译码技术所必需的其他硬件或者软件,诸如一个或者多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分离逻辑、软件、硬件、固件或者其任意组合。视频编码设备104和视频解码设备112可以被集成为相应设备中的组合的编码器/解码器(编解码器)的一部分。
图1中图示的示例***是可在本文中使用的一个说明性示例。使用本文描述的技术来处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。尽管一般来说,本公开的技术由视频编码设备或者视频解码设备执行,但该技术还可由通常被称为“CODEC”的组合的视频编码器-解码器执行。此外,本公开的技术也可以由视频预处理器执行。源设备和接收设备仅是这样的译码设备的示例,其中,源设备生成经译码的视频数据以传输到接收设备。在一些示例中,源设备和接收设备可以以基本上对称的方式操作,使得每个设备包括视频编码和解码组件。因此,示例***可以支持视频设备之间的单向或者双向视频传输,例如,用于视频流传输、视频播放、视频广播或者视频电话。
对HEVC标准的扩展包括被称为MV-HEVC的多视图视频译码扩展,以及被称为SHVC的可缩放视频译码扩展。MV-HEVC和SHVC扩展共享分层译码的概念,其中在经编码视频比特流中包括不同的层。经译码视频序列中的每一层都由唯一的层标识符(ID)寻址。层ID可以存在于NAL单元的标头中,以识别与NAL单元相关联的层。在MV-HEVC中,不同的层通常表示视频比特流中同一场景的不同视图。在SHVC中,提供了不同的可缩放层,它们以不同的空域分辨率(或者图片分辨率)或者不同的重构保真度(fidelity)表示视频比特流。可缩放层可以包括基础层(层ID=0)和一个或者多个增强层(层ID=1,2,…n)。基础层可以符合HEVC的第一版本的配置文件,并且表示比特流中的最低可用层。与基础层相比,增强层具有提高的空域分辨率、时域分辨率或者帧速率和/或重构保真度(或者质量)。增强层是按层次组织的,可以(也可以不)依赖于较低的层。在一些示例中,可以使用单个标准编解码器对不同的层进行译码(例如,使用HEVC、SHVC或者其他译码标准对所有层进行编码)。在一些示例中,可以使用多标准编解码器对不同的层进行译码。例如,可以使用AVC对基础层进行译码,而可以使用SHVC和/或HEVC标准的MV-HEVC扩展来对一个或者多个增强层进行译码。
如上所述,根据指向形成预测块的参考样点的至少一个块的至少一个运动矢量来对经帧间译码块进行编码。经帧间译码块的残差数据指示经译码块与预测块之间的差。基于对应于预测方向的帧内译码模式对经帧内译码块进行编码。经帧内译码块的残差数据指示经译码块和与该经译码块相同的图片内的预测块之间的差。为了进一步压缩,来自经帧间或者帧内译码块的残差数据(其可以被包括在样点的一个或者多个变换单元(TU)中,该样点包含变换块(TB))可以从像素域被变换到变换域,产生残差系数,然后可以对其进行量化。
可以使用的变换包括离散正弦变换(DST)和离散余弦变换(DCT)。可以将与变换相对应的变换内核应用于一维(1D)输入数据,并且在一些情况下可以扩展到二维(2D)输入数据源。现在将描述DCT和DST变换,以及在HEVC标准中使用的变换方案的概述。关于DCT和DST变换,术语变换指示推导输入信号(例如,视频信号)的替代表示的过程。例如,给定N点矢量x=[x0,x1,...,xN-1]T和一组给定的变换基础矢量{φ01,...,φM-1},x可以使用线性组合φ01,...,φM-1来近似地或者精确地表示,其可以公式化为:
其中,可以是x的近似或者等效,fi=[f1,f2,...,fM-1]是变换系数矢量,φi={φ01,...,φM-1}是变换基础矢量。
在视频译码的场景中,变换系数大致是不相关且稀疏的,例如,仅在几个变换系数上压缩输入矢量x的能量,而其余(例如,大多数)变换系数通常接近0。
给定特定的输入数据,在能量压缩方面的最佳变换是所谓的Karhunen-Loeve变换(KLT),其将输入数据的协方差矩阵的特征矢量用作变换基础矢量。因此,KLT实际上是数据相关的变换,并且没有通用的数学公式。但是,在某些假设下(例如,输入数据形成一阶平稳马尔可夫过程),在文献中已经证明相对应的KLT实际上是单一变换的正弦族的成员,这在以下文档中进行了描述:Jain,A.K.的“A sinusoidal family of unitary transforms(单一变换的正弦族)”,关于模式分析和机器智能的IEEE期刊,第1期,第356页,1979年。单一变换的正弦族指示使用变换基础矢量的变换,其公式化如下:
φm(k)=A·eikθ+B·e-ikθ
其中,e是近似等于2.78128的自然对数的底,A、B和θ通常是复数,并且取决于m的值。
包括离散傅立叶、余弦、正弦和KLT(用于一阶平稳马尔可夫过程)的几种众所周知的变换是该单一变换的正弦族成员。根据S.A.Martucci的“Symmetric convolution andthe discrete sine and cosine transforms(对称卷积以及离散正弦和余弦变换)”,IEEETrans.Sig.Processing SP-42,第1038-1051页(1994),DCT和DST族的完整集合包括基于不同类型,即,不同的A、B和θ的值的16种变换,并且不同类型的DCT和DST的完整定义如下。
在一个说明性示例中,假设将输入N点矢量表示为x=[x0,x1,...,xN-1]T,则通过乘以一个矩阵将该N点矢量变换成表示为y=[y0,y1,...,yN-1]T的另一N点变换系数矢量,其过程可以根据以下变换公式之一进一步说明,其中k的范围为0到N-1(包含端值):
DCT I型(DCT-1):
其中,
DCT II型(DCT-2):
其中,
DCT III型(DCT-3):
其中,
DCT IV型(DCT-4):
DCT V型(DCT-5):
其中,
DCT VI型(DCT-6):
/>
其中,
DCT VII型(DCT-7):
其中,
DCT VIII型(DCT-8):
DST I型(DST-1):
DST II型(DST-2):
其中,
DST III型(DST-3):
其中,
DST IV型(DST-4):
DST V型(DST-5):
DST VI型(DST-6):
DST VII型(DST-7):
DST VIII型(DST-8):
其中,
上面显示的每种变换类型均由变换基础函数的数学公式规定。变换类型和变换尺寸是不同的特征,并且不应混淆。变换类型是指基础函数,而变换尺寸是指的变换的尺寸。例如,无论尺寸N的值是多少(例如4点或者8点),4点DST-VII和8点DST-VII具有相同的变换类型。
在不失一般性的情况下,可以使用以下广义公式表示所有上述变换类型:
其中,T是由一个特定变换(例如,DCT I型~DCT VIII型或者DST I型~DST VIII型)的定义指定的变换矩阵,并且T的行矢量(例如,[Ti,0,Ti,1,Ti,2,…,TiN-1])是第i个变换基础矢量。应用于N点输入矢量的变换被称为N点变换。
还应注意,应用于一维输入数据x的上述变换公式可以如下矩阵乘法形式表示
y=T·x
其中,T指示变换矩阵,x指示输入数据矢量,y指示输出变换系数矢量。变换矩阵也可以被称为变换内核或者简称为内核。
例如,视频编码器可以执行矩阵乘法y=T·x以生成变换系数矢量。视频解码器可以执行逆矩阵乘法以从变换系数矢量生成变换矢量。
上面介绍的变换被应用于一维(1D)输入数据。在一些情况下,变换也可以扩展为用于二维(2D)输入数据源。在一个说明性示例中,X是输入M×N数据阵列。一些对2D输入数据应用变换的方法包括可分2D变换和不可分2D变换。
可分2D变换按顺序地对X的水平和垂直矢量应用1D变换,该变换可以如下公式化:
Y=C·X·RT
其中,C和R分别表示给定的M×M和N×N变换矩阵。
从该公式可以看出,C对X的列矢量应用1D变换,而R对X的行矢量应用1D变换。简单起见,在本文中将C和R表示为左(垂直)和右(水平)变换,其中,C和R变换二者形成变换对。在C等于R并且是正交矩阵时有一些情况。在这种情况下,可分2D变换仅由一个变换矩阵确定。
不可分2D变换首先将X的所有元素重组为单个矢量,即X’,诸如通过执行以下作为示例的数学映射:
X′(i·N+j)=Xi,j
然后针对X’应用1D变换T’,如下所示:
Y=T′·X
其中,T’是(M*N)×(M*N)变换矩阵。
在视频译码中,可分2D变换相比于1D变换通常需要少得多的操作(例如,加法、乘法)计数。
在传统的视频编解码器(诸如H.264/AVC)中,4点和8点DCT II型(也被称为DCT-2)的整数近似值总是被应用到帧内预测残差和帧间预测残差两者。帧内预测残差是指从帧内预测得到的残差数据,而帧间预测残差是指从帧间预测得到的残差数据。为了更好地适应残差样点的各种统计,在新一代视频编解码器(例如HEVC和VVC)中使用了DCT-2以外的更灵活类型的变换。例如,在HEVC中,4点VII型DST(也被称为DST-7)的整数近似值被用于帧内预测残差。理论证明并且同时实验验证了DST-7针对沿着帧内预测方向生成的残差矢量(例如,针对按照水平帧内预测方向生成的行残差矢量)比DCT-2更高效。参见,例如,J.Han、A.Saxena和K.Rose的“Towards jointly optimal spatial prediction and adaptivetransform in video/image coding(在视频/图像译码中共同实现优化的空域预测和自适应变换)”,IEEE国际声学、语音与信号处理会议(ICASSP),2010年3月,726-729页。
在HEVC中,4点DST-7的整数近似仅被应用于4×4亮度帧内预测残差块(例如,TB)。图2A图示了在HEVC中使用的4点(4×4)DST-7变换的示例。在HEVC中,对于不是4×4亮度帧内预测残差块的残差块,可以应用4点、8点、16点和32点DCT II型的整数近似。图2B图示4点DCT II型变换的示例。图2C图示8点DCT II型变换的示例。图2D图示16点DCT II型变换的示例。图2E图示32点DCT II型变换的示例。图2B-图2E图示不同尺寸的DCT II型变换的示例。类似于图2A-图2E,存在不同类型(例如,DST VII型变换)的N点DCT和DST的示例。
为了适应残差块的各种特性,如上所述,在HEVC中应用使用残差四叉树(RQT)的变换译码结构。例如,每个图片被分割为译码树单元(CTU),其以针对特定图块或者条带的光栅扫描顺序被译码。CTU是正方形块,并且表示四叉树(即,译码树)的根。CTU尺寸可以在8×8到64×64亮度样点的范围内,但通常使用64×64。每个CTU可以进一步划分为被称为译码单元(CU)的较小正方形块。在将CTU递归地划分成CU之后,每个CU被进一步分成预测单元(PU)和变换单元(TU)。基于四叉树方案递归地将CU分割成TU,因此,每个CU的残差信号由树结构(即残差四叉树(RQT))译码。如上所述,在一些情况下,TU表示亮度和色度样点的变换块(TB)以及相对应的语法元素。
RQT允许从4×4到32×32亮度样点的TU尺寸。图3A和图3B是图示了CU包括10个TU(用字母a至j标记)的示例的示意图,并且还示出了相对应的块分割。如图所示,RQT的每个节点实际上是变换单元(TU)。可以以深度优先树遍历的顺序来处理各个TU,该顺序在图3B中示出为按字母顺序,并且其可以按照使用深度优先遍历的递归Z-扫描。四叉树方案使得变换能够适应残差信号的变化的空间-频率特性。通常,较大的变换块尺寸(具有较大的空域支持)提供更好的频率分辨率。但是,较小的变换块尺寸(具有较小的空域支持)提供更好的空域分辨率。空域分辨率和频率分辨率两者之间的权衡由编码器模式决策来选择,例如基于率失真优化技术。使用率失真优化技术,编码器可以针对每种译码模式(例如,特定的RQT划分结构)计算译码比特和重构失真(例如,率失真成本)的加权和,并且可以选择具有最小率失真成本的译码模式为最佳模式。
在RQT中定义了三个参数:树的最大深度;最小允许变换尺寸;以及最大允许变换尺寸。最小和最大允许变换尺寸可以在4×4至32×32个样点的范围之内改变,其对应于上面提到的所支持的块变换。RQT的最大允许深度限制了TU的数量。等于零的最大深度意味着,如果每个包括的TB达到最大允许变换尺寸(例如32×32),则CB无法被进一步划分。
参数相互作用并影响RQT结构。在其中根CB尺寸为64×64的一个说明性示例中,最大深度等于零,并且最大变换尺寸等于32×32。在此示例中,CB必须至少被分割一次,因为否则将导致64×64TB,这是不允许的。可以在比特流中(例如,在序列参数集级别或者比特流的其他部分)或者使用任何其他合适的技术(例如,在补充增强信息(SEI)消息中)发送RQT参数(即,最大RQT深度和最小和最大变换尺寸)。关于RQT深度,可以针对帧内和帧间经译码的CU指定不同的值并进行信令通知。
针对帧内预测残差块和帧间预测残差块二者应用四叉树变换。典型地,当前残差四叉树分割的相同尺寸的DCT-2变换被作为默认变换应用于残差块。但是,如果当前残差四叉树块是4×4,并且是通过帧内预测生成的,则应用上面提到的4×4DST-7变换。
在HEVC中,较大尺寸的变换(例如,64×64变换)由于针对相对较小分辨率的视频,可能有限的益处和相对高的复杂性而不被主要采用。
本文描述的技术可应用于任何合适的自适应变换译码方案。图4是图示用于使用自适应变换选择的混合视频编码的***的示例的示意图。例如,针对预测残差的每个块,编码器可以选择不同的变换,并且将变换的选择编码为用于信令通知的辅助信息。实际上,为了降低计算复杂度,可以以可分离的方式(即,水平线和垂直线被单独地变换,如图5A和图5B所示)来计算块变换。
根据HEVC之前的视频译码标准(例如,MPEG-2、AVC等),在垂直和水平方向上仅使用默认(或者固定)可分的DCT-2变换。在HEVC中,除了DCT-2之外,针对4×4块也采用DST-7作为默认(或者固定)可分变换。那些固定变换的自适应扩展已在联合视频专家团队(JVET)的联合实验模型(JEM)中开发并采用,并且被称为自适应多重变换(AMT)或者增强多重变换(EMT)。一些AMT设计提供编码器的五种变换选项以便以每一块为基础来进行选择(例如,针对译码块、预测块或者变换块可以基于率失真度量执行该选择)。然后,由视频编码器利用视频比特流来信令通知所选择的变换索引,该视频比特流可以由视频解码器进行解码和分析。
图6是图示用于AMT设计的信令的示意图,其中,一个比特被用于信令通知默认变换,而两个附加比特(即,总共3个比特)被用于信令通知四个变换。例如,五个变换中,该变换中的一个(默认变换)可以使用0(即1比特)信令通知,而其他四个变换可以使用3比特(例如100、101、110和111)信令通知。例如,其他四个变换可以包括在水平方向和垂直方向上应用的DST-7和DCT-8,在这种情况下的组合的总数为四(在水平和垂直方向上使用DST-7、在水平方向上使用DST-7且在垂直方向上使用DCT-8、在水平方向上使用DCT-8且在垂直方向上使用DST-7,或者在水平和垂直方向上使用DCT-8)。默认变换被选择作为在垂直和水平方向都应用DCT-2的可分2D变换。其余的AMT变换是基于帧内模式信息定义的。能够通过基于预测模式和块尺寸信息二者定义那四个变换的集合来提供扩展。
例如,视频编码器(例如,编码设备104)可以编码并信令通知AMT标志以指示AMT是否应用于CU。在视频解码器(例如,解码设备112)处,是否应用AMT是由视频编码器信令通知的CU级别AMT标志的值控制。例如,在视频解码器处,AMT标志的值控制针对其接收到该标志的CU内的所有变换单元(TU)的AMT应用。视频编码器可以将AMT标志的值设置为等于0,以指示默认变换(例如,DCT-2变换)被应用在CU中以对于该CU的TU相对应的残差信号进行编码。在接收到具有由视频编码器信令通知的等于0的值的AMT标志后,视频解码器可以确定默认变换(例如DCT-2变换)将在垂直和水平方向上应用,以对该标志应用于的CU的所有TU进行解码。针对AMT启用的CU(当针对该CU的AMT标志等于1时)内的每个TU,视频编码器可以编码并信令通知两个附加标志(称为AMT索引),以识别要由视频解码器应用的水平变换和垂直变换。当AMT标志等于1时,视频解码器可以使用关于每个TU接收到的两个附加标志来识别要在对每个TU进行解码中应用的水平和垂直变换。
在VVC参考软件中,使用矩阵乘法来实现除了默认DCT-2变换之外的AMT变换(例如,DCT-8、DST-7等),并且AMT使用被限制于宽度小于或者等于(<=)32且高度小于或者等于(<=)32的块。在这种情况下,使用的AMT矩阵的最大尺寸限制为32×32(对应于宽度×高度)。设置此限制以限制内存和计算复杂性要求。例如,在宽度或者高度大于32的块中使用AMT可能会提供附加的译码增益,但会导致内存增加和计算复杂性增加。
本文描述了通过解决与当前AMT设计相关联的各种问题来改进当前AMT设计的***、装置、方法(也称为过程)和计算机可读介质。例如,AMT设计的一个缺陷是基于上面指出的AMT的使用限制于宽度小于或者等于32且高度小于或者等于32的块的限制,针对宽度小于或者等于(<=)32且高度小于或者等于(<=)32的所有CU信令通知AMT标志。然而,这一限制不考虑AMT标志值对相关信息(诸如块的形状和尺寸以及来自相邻块的信息)的依赖性。如下面更详细地描述的,基于此信息对AMT标志值施加限制可以引入附加的译码增益。AMT标志的信令通知也可以通过基于块的形状和/或尺寸和/或基于来自相邻块的信息引入针对该AMT的熵译码(例如,上下文自适应二进制算术译码(CABAC)、上下文自适应可变长度译码(CAVLC)或者其他熵译码)上下文来改进。
此外,如果针对CU的AMT标志等于1,则可以针对CU中的每个TU的AMT索引信令通知两个附加标志,以指示分别在水平方向和垂直方向上使用哪个AMT变换。类似于上述AMT标志信令中的缺陷,这两个附加标志的信令并没有考虑到AMT索引值对相关信息的依赖,诸如块的形状和尺寸以及来自相邻块的信息。对AMT索引值施加限制和/或基于此信息更改AMT索引的信令能引入附加的译码增益。
除了提高译码增益之外,基于块的形状和尺寸以及在一些情况下来自相邻块的信息来限制AMT标志和/或AMT索引的值可以改进编码器的运行时域,从而通过跳过一些率失真优化检查来降低编码器复杂度。
以下描述了用于改进AMT或者任何其他自适应变换方案的性能的各种技术。可以单独地或者以任何组合来应用本文描述的技术。
在一些示例中,AMT的使用可以被放宽,从而使AMT可以用于宽度小于或者等于32且高度小于或者等于32的那些块之外的块。注意,当前的限制要求块的宽度和高度都小于32的尺寸。根据本文提供的示例,如果块(或者块的子块,诸如PU、TU或者其他块)的宽度小于或者等于表示为Th1的阈值宽度(宽度<=Th1)或者块(或者块的子块)的高度小于或者等于表示为Th2的阈值高度(高度<=Th2),则针对该块(例如,CU)允许AMT的使用。在一个说明性示例中,阈值Th1和Th2可以被设置为32的值(例如,Th1=Th2=32)。然而,本领域的技术人员将了解的是,可以将其他值用于阈值Th1和Th2。
这种限制仅要求块(或者子块)的宽度或者高度小于各自的阈值Th1或者Th2。例如,如果宽度大于Th1(宽度>Th1)并且高度大于Th2(高度>Th2),则AMT是不允许的(在这种情况下,AMT标志被设置为0)。如果宽度小于或者等于(<=)Th1或者高度小于或者等于(<=)Th2,则针对该块信令通知该AMT标志,以指示AMT是否被用于该块。例如,针对CU的值为0的AMT标志向解码器指示AMT未用于该CU,并且因此将默认变换(例如,DCT-2)用于该CU。针对CU的值为1的AMT标志向解码器指示AMT可以用于该CU,因此可以使用默认变换以外的其他变换,诸如DST-7、DCT-8或者默认变换以外的其他AMT变换(例如DCT-2)。
在一些情况下,如果块(或者子块)的宽度小于或者等于(<=)Th1,高度大于(>)Th2,并且针对该块的AMT标志等于1,则仅信令通知一个索引标志以指示水平变换是否来自可用的AMT变换内核(例如DCT-8、DST-7或者其他AMT变换),而基于高度大于Th2,垂直变换固定为默认变换(例如,固定到DCT-2)。在一些情况下,如果宽度大于(>)Th1,高度小于或者等于(<=)Th2,并且针对该块的AMT标志等于1,则仅信令通知一个索引标志以指示垂直变换是否来自可用的变换内核(例如,DCT-8、DST-7或者其他AMT变换),而基于宽度大于Th1,水平变换固定为默认变换(例如,固定到DCT-2)。
通过放宽对哪些块可以对其应用AMT变换的限制,可以增益译码效率。此外,分别基于是否仅宽度或者高度之一小于阈值宽度或者阈值高度(Th1或者Th2)而只允许信令通知一个AMT索引标志,提供了更多的灵活性以允许应用除了默认变换之外的可分离的水平或者垂直AMT变换(例如,当宽度小于或者等于Th1且高度大于Th2时应用除了默认之外的水平AMT变换,或者当高度小于或者等于Th2且宽度大于Th1时应用除了默认之外的垂直AMT变换),而将默认变换(例如DCT-2)应用于另一个方向(例如,当宽度小于或者等于Th1且高度为大于Th2时应用默认垂直变换,或者当高度小于或者等于Th2且宽度大于Th1时应用默认水平变换)。
还描述了用于在使用显式信令时改进AMT性能的技术。显式信令指示可以在比特流中(或者与比特流分开,诸如在SEI消息中)针对块(例如,CU)信令通知AMT标志,以指示是否将AMT用于该块。根据本文提供的示例,可以明确地信令通知AMT标志,但是可以基于块(诸如CU、TU、PU或者其他块)的尺寸来限制AMT标志的信令。例如,如果块(或者该块的子块,诸如PU或者TU)的宽度和高度满足某些条件,则针对该块可能不会信令通知AMT标志,而是可以将AMT标志的值限制为某个值,允许解码器隐式地推导出AMT标志的限制值,而无需信令信息(例如,AMT标志)来确定AMT标志值。尽管下面使用CU作为块的示例来描述显式信令的示例,但是尺寸比较和阈值可以基于其他块(诸如PU、TU或者其他块)的尺寸。
在一个说明性示例中,如果CU的宽度和高度满足CU的宽度小于或者等于(<=)阈值宽度(表示为Th3),并且CU的高度小于或者等于(<=)阈值高度(表示为Th4),则针对CU的AMT标志可以被限制为0的值而无需信令。在一个说明性示例中,Th3和Th4都可以设置为4。如上所述,CU的值为0的AMT标志向解码器指示AMT没有被用于该CU,因此针对该CU将使用默认变换(例如,DCT-2)。CU的值为1的AMT标志向解码器指示AMT可以用于该CU,因此可以使用除了默认变换以外的其他变换,诸如DST-7、DCT-8或者其他AMT变换。在这样的说明性示例中,其中Th3和Th4设置为4,如果CU的宽度尺寸为4×4或者更小,则可将CU的AMT标志限制为0,而无需信令通知,在这种情况下,解码器可以针对4×4CU(或者更小的CU)的AMT标志推导出0的值,而无需编码器针对此类4×4(或者更小的)CU将AMT标志放在比特流中。解码器和/或编码器可以将默认变换(例如,DCT-2)用于4×4CU(以及更小的CU)。在这样的示例中,根据可能在AMT标志上施加的任何其他限制,编码器可以针对大于4×4的任何CU在比特流中包括AMT标志。除了默认变换之外的变换可以被用于大于4×4的任何CU,诸如如DST-7、DCT-8或者其他AMT变换。本领域普通技术人员将了解,阈值Th3和Th4可以设置为任何其他合适的值,并且可以具有相同的值或者可以包括不同的值(例如,Th3=8和Th4=8,Th3=4和Th4=8,或者其他合适的值)。
在另一个说明性示例中,如果CU的宽度和高度满足宽度大于或者等于块的高度第一倍数(表示为Th5)的条件(表示为宽度>=Th5*高度),或者高度大于或者等于块的宽度第二倍数(表示为Th6)的条件(表示为高度>=Th6*宽度),则可以将CU的AMT标志限制为0而无需信令。在一个说明性示例中,Th5和Th6可以设置为8。此条件(宽度>=Th5*高度或者高度>=Th6*宽度)可以用于窄块(高度远大于宽度或者宽度远大于高度)。在将Th5和Th6设置为8的说明性示例中,尺寸为4×32(宽度x高度)的块能够满足高度(32)>=Th6(8)*宽度(4)的条件。针对这样的窄块,变换选择可以是固定的而无需信令(AMT的标志被固定或者限制为0的值,指示默认变换(诸如DCT-2)将被用于该块),因为可能很难找到对块的短边和长边同时有效的变换内核。本领域普通技术人员将了解,倍数Th5和Th6可以设置为任何其他合适的值,并且可以具有相同的值或者可以包括不同的值(例如Th5=2和Th6=2,Th5=2和Th6=3或者其他合适的值)。
在另一个说明性示例中,如果CU的宽度和高度满足宽度小于或者等于(<=)阈值宽度(表示为Th7)或者高度小于或者等于(<=)阈值高度(表示为Th8)的条件,则CU的AMT标志可以被限制为0的值而无需信令通知。在一个说明性示例中,Th7和Th8可以设置为4。在将Th7和Th8设置为4的说明性示例中,如果CU的宽度或者高度尺寸为4或者更小(例如,CU具有4×8、8×4或者其他合适的尺寸),则CU的AMT标志可以被限制为0的值而无需信令通知。在这样的示例中,解码器可以推导出针对4×4CU的值为0,而无需编码器针对该CU将AMT标志放在比特流中。根据这样的示例,根据AMT标志上施加的任何其他限制,编码器可以针对宽度和高度大于4的任何CU在比特流中包括AMT标志。本领域普通技术人员将了解,阈值Th7和Th8可以被设置为任何其他合适的值,并且可以具有相同的值或者可以包括不同的值(例如,Th7=8和Th8=8,Th7=4和Th8=8,或者其他合适的值)。
在一些情况下,代替限制,可以基于上述显式信令条件分配熵译码上下文。例如,代替使用限制和不信令通知AMT标志,编码器可以用视频比特流信令通知AMT标志,但是能够基于上述条件针对该块选择由上下文自适应熵编解码器使用的熵译码上下文(例如,用于CABAC编码器的CABAC上下文或者其他合适的编码上下文)。在一个说明性示例中,第一上下文可以被分配给满足块(例如,CU)的宽度小于或者等于阈值宽度Th3且块的高度小于或者等于阈值高度Th4的条件的块,而第二上下文可以被分配给不满足该条件的块。在另一个说明性示例中,第一上下文可以被分配给满足块(例如,CU)的宽度大于或者等于块的高度的第一倍数Th5(宽度>=Th5*高度)或者块的高度大于或者等于块的宽度的第二倍数Th6(高度>=Th6*宽度)的条件的块,而第二上下文被分配给不满足该条件的块。在另一个示例中,第一上下文可以被分配给满足块(例如,CU)的宽度小于或者等于阈值宽度Th7并且块的高度小于或者等于阈值高度Th8的条件的块,而第二上下文被分配给不满足该条件的块。上下文自适应熵编解码器(例如,CABAC编解码器或者其他合适的熵编解码器)可以使用不同的上下文。
还描述了在使用隐式信令时用于改进AMT性能的技术。当使用隐式信令时,针对块在经编码的视频比特流中不存在AMT标志(例如,指示除了默认变换以外的AMT变换是否可用于CU)或者AMT索引(例如,指示每一TU在水平和垂直方向上使用哪个AMT变换)的信令。而是,由编码器无需测试不同的变换以便选择哪个变换是最佳变换而基于一个或者多个条件推导出用于该块的变换内核,并由解码器无需参考经编码的视频比特流中的任何信令信息而基于相同的一个或者多个条件推导出用于该块的变换内核。
使用隐式信令,可以基于块或者其他块的宽度和高度针对该块(例如,TU、PU、CU或者其他块)限制水平和/或垂直变换。例如,可以基于TU的宽度将用于TU的水平变换限制为某种类型的变换,并且可以基于TU的高度将用于TU的垂直变换限制为某种类型的变换。在另一个示例中,可以基于包括TU的CU的宽度将用于该TU的水平变换限制为某种类型的变换,并且可以基于CU的高度将用于该TU的垂直变换限制为某种类型的变换。使用这种基于限制的隐式信令,可以针对水平方向和垂直方向选择不同变换的混合(例如,用于水平方向的默认变换和用于垂直变换的除了默认变换之外的AMT变换)。虽然下面使用TU作为块的示例来描述隐式信令的示例,其中该块的维度(例如,高度和宽度)与一个或者多个阈值进行比较,但是尺寸比较和阈值可以基于其他块(诸如PU、CU或者其他块)的尺寸。
在一个示例中,如果TU的宽度小于或者等于(<=)阈值宽度(表示为Th9),用于该TU的水平变换内核被固定为(或者限制为)除了默认变换之外的AMT变换(例如,DST-7变换或者DCT-8变换),而无需在视频比特流中包括信令以指示针对该TU使用该变换。在这样的示例中,如果TU的宽度大于(>)阈值宽度Th9,水平变换内核被固定为默认变换(例如,DCT-2),而无需在视频比特流中包括信令以指示针对该TU使用默认变换。
在使用隐式信令的另一示例中,如果TU的高度小于或者等于(<=)阈值高度(表示为Th10),用于该TU的垂直变换内核被固定为(或者限制为)除了默认变换之外的AMT变换(例如,DST-7变换或者DCT-8变换),而无需在视频比特流中包括信令以指示针对该TU使用该变换。在这样的示例中,如果TU的高度大于(>)阈值高度Th10,垂直变换内核被固定为默认变换(例如,DCT-2),而无需在视频比特流中包括信令以指示针对该TU使用默认变换。
在一些实现中,固定的AMT变换内核可以固定为DST-7,固定的默认变换可以固定为DCT-2。普通技术人员将了解到,其他类型的变换内核可以被用于固定的AMT变换和用于固定的默认变换。在一个说明性示例中,Th9和Th10可以设置为4。在Th9和Th10设置为4的说明性示例中,尺寸为4×8(宽度x高度)的TU可以由编码器和解码器处理。编码器和解码器可以基于块的宽度(4)小于或者等于Th9(4)选择除了默认变换之外的AMT变换(例如,DST-7变换)作为用于TU的水平变换。编码器和解码器可以基于块的高度(8)大于Th10(4)选择默认(例如,DCT-2变换)作为用于TU的垂直变换。普通技术人员将了解到,阈值TH9和TH10可以被设置为任何其他合适的值,并且可以具有相同的值或者可以包括不同的值(例如,TH9=8和TH10=8,TH9=4和TH10=8,Th9=8和Th10=4或者其他合适的值)。
在另一说明性示例中,DST-7变换和/或DCT-8变换(例如,DST-7用于水平方向和垂直方向、DCT-8用于水平方向和垂直方向、DST-7用于水平方向并且DCT-8用于垂直方向,或者DCT-8用于水平方向并且DST-7用于垂直方向)可以用于×4和更小的块尺寸,而DCT-2可以用于大于4×4的块尺寸。在另一个说明性示例中,DST-7和/或DCT-8变换(例如,DST-7用于水平方向和垂直方向、DCT-8用于水平方向和垂直方向、DST-7用于水平方向并且DCT-8用于垂直方向,或者DCT-8用于水平方向并且DST-7用于垂直方向)可以用于4×8和更小的块尺寸,而DCT-2变换可以用于大于4×8的块尺寸。
在一些情况下,代替限制,可以基于上述隐式信令条件分配熵译码上下文。例如,可以基于上面提到的条件选择由上下文自适应熵编解码器使用的熵译码上下文(例如,用于CABAC编码器的CABAC上下文或者其他合适的编码上下文)。
在一些实施方式中,在将各种阈值宽度和阈值高度设置为较小值(例如,值为4、值为8或者其他较小值)时在以上提供的显式信令和隐式信令示例中,可以选择除了默认变换之外的AMT变换(例如,DST-7、DCT-8或者其他AMT变换)用于小型块(例如,4×4的块或者基于针对阈值设置的值被认为较小的其他块),并且选择默认变换(例如,DCT-2)用于较大的块(例如,大于4×4块的块、8×8块或者基于针对阈值设置的值的其他小型块),而无需以便解码器进行选择的、视频比特流中的信令通知。这样的解决方案能是有益的,因为DCT-2(作为默认变换的示例)从硬件和软件的角度能比较大的AMT变换(例如,较大的DST-7和DCT-8变换)更高效,而且由于使用较大的AMT变换之一而引入的效率增益可能不足以证明针对较大块使用那些AMT变换是合理的。除了在比特流中移除信令通知AMT标志以及一些情况下信令通知AMT索引的必要性之外,还将较大的AMT变换的使用限制为用于较小的块,能够帮助降低AMT变换引入的复杂性,同时减少比特流中包括的信令开销量,提供了良好的复杂度-效率的折衷。
此外,上述隐式信令技术提供了甚至更高的效率。例如,当使用显式信令时,编码器应用不同的变换并选择提供最佳性能的变换(例如,基于率失真优化)。然后将所选选项作为信令开销(例如,作为AMT标志和/或当CU的AMT标志等于1时作为AMT索引)包括在视频比特流中,以供解码器用来确定要应用的哪个变换。编码器的搜索和选择过程使得编码器的复杂度高于隐式信令所需的复杂度。在上述隐式信令示例中,变换选择是固定的(或者预定义的),以便基于条件选择(由编码器和解码器选择),而无需编码器测试不同的选项并选择性能最佳的变换,从而通过跳过一些率失真优化检查来降低编码器复杂度。所描述的使用固定变换的隐式信令示例的附加优势是不需要开销,从而提供了更高的效率。例如,不需要AMT标志来指示是否可以将AMT用于CU,并且不需要AMT索引来指示要使用哪个AMT变换,因为用于每个TU的变换是预定义的。
图7是图示用于使用本文中所描述的隐式信令技术来对视频数据进行解码的过程700的示例的流程图。过程700可以由视频解码器(诸如图1和/或图12的解码设备112)执行。在一些情况下,当过程700由视频解码器执行时,视频数据可以包括被包括在经编码的视频比特流中的经译码图片或者经译码图片的一部分(例如,一个或者多个块),或者可以包括被包括在经编码视频比特流中的多个经译码图片。
在框702处,过程700包括获得视频数据的块。视频数据的块可以包括译码单元(CU)、变换单元(TU)、预测单元(PU),或者视频数据的其他块。在框704处,过程700包括确定块的宽度和块的高度中的至少一个。例如,过程700可以确定块的宽度、块的高度或者块的宽度和块的高度。在一些情况下,当块是CU时,过程700可以确定CU的宽度、CU的高度或者CU的宽度和CU的高度。在一些情况下,当块是TU时,过程700可以确定TU的宽度、TU的高度或者TU的宽度和TU的高度。
在框706处,过程700包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。在一个说明性示例中,第一阈值可以包括上述阈值宽度Th9,第二阈值可以包括上述阈值高度Th10。
在框708处,过程700包括基于比较块的宽度与第一阈值和块的高度与第二阈值的至少一个,来确定要用于该块的水平变换和垂直变换。无需解码指示水平变换和垂直变换的语法元素,可以确定该水平变换和垂直变换。例如,可以由解码器确定针对该块的水平变换和垂直变换,而无需对识别水平变换和垂直变换的一个或者多个语法元素(例如,AMT标志和/或AMT索引)进行解码。在这样的示例中,可以由编码器针对块确定水平变换和垂直变换,而无需编码器在经编码的视频比特流中包括一个或者多个语法元素以指示所确定的水平变换和垂直变换。
在一些示例中,基于块的宽度来限制用于该块的水平变换。例如,可以基于将块的宽度与第一阈值进行比较来针对块确定水平变换。在一些情况下,如上所述该块是TU,并且基于该TU的宽度限制用于该TU的水平变换。在一些情况下,当块是CU时,基于块的宽度限制用于该TU的水平变换。在一个示例中,当块的宽度小于第一阈值时,用于块的水平变换被确定为第一类型的水平变换。在另一个示例中,当块的宽度大于第一阈值时,用于块的水平变换被确定为第二类型的水平变换。第一类型的水平变换与第二类型的水平变换不同。在一个说明性示例中,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且第一类型的水平变换是与DCT II型变换不同的变换。例如,第一类型的水平变换可以包括除上述DCT II型变换之外的AMT变换之一,诸如离散正弦变换(DST)VII型变换或者DCT VIII型变换。
在一些示例中,基于块的高度来限制用于该块的垂直变换。例如,可以基于将块的高度与第二阈值进行比较来确定用于该块的垂直变换。在一些情况下,如上所述该块是TU,并且基于该TU的高度限制用于该TU的垂直变换。在一些情况下,当块是CU时,基于块的高度限制用于该TU的垂直变换。在一个示例中,当块的高度小于第二阈值时,用于块的垂直变换被确定为第一类型的垂直变换。在另一个示例中,当块的高度大于第二阈值时,用于块的垂直变换被确定为第二类型的垂直变换。第一类型的垂直变换与第二类型的垂直变换不同。在一个说明性示例中,第二类型的垂直变换是DCT II型变换,并且第一类型的垂直变换是与DCT II型变换不同的变换。例如,第一类型的垂直变换可以包括除上述DCT II型变换之外的AMT变换之一,诸如DST VII型变换或者DCT VIII型变换。
在框710处,过程700包括基于针对该块所确定的水平变换和垂直变换来确定残差数据块。例如,水平变换和垂直变换可以包括逆变换,并且逆水平和逆垂直变换可以分别应用于TU(如上所述是在一些示例中获得的块,或者在一些示例中当获得的块是CU时被包括在该块中)以获得残差数据。
在框712处,过程700包括基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。例如,可以通过将残差数据加到预测块上来对视频块进行解码。
参照图7描述的上述示例可以单独使用或者以任意组合使用。
图8是图示使用本文所述的隐式信令技术对视频数据进行编码的过程800的示例的流程图。过程800可以由视频编码器(诸如图1和/或图11的编码设备)执行。在一些情况下,在由视频编码器执行过程800时,视频数据可以包括要被编码在经编码视频比特流中的图片或者图片的一部分(例如,一个或者多个块),或者可以包括要被编码在经编码视频比特流中的多个图片。
在框802处,过程800包括获得视频数据的块。视频数据的块可以包括CU、TU、PU或者视频数据的其他块。在框804处,过程800包括确定块的宽度和块的高度中的至少一个。例如,过程800可以确定块的宽度、块的高度、或者块的宽度和块的高度。在一些情况下,当块是CU时,过程800可以确定CU的宽度、CU的高度、或者CU的宽度和CU的高度。在一些情况下,当块是TU时,过程800可以确定TU的宽度、TU的高度、或者TU的宽度和TU的高度。
在框806处,过程800包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。在一个说明性示例中,第一阈值可以包括上述阈值宽度Th9,第二阈值可以包括上述阈值高度Th10。
在框808处,过程800包括基于比较块的宽度与第一阈值和块的高度与第二阈值的至少一个,来确定要用于该块的水平变换和垂直变换。在框810处,该过程包括在没有指示水平变换和垂直变换的语法元素的情况下生成经编码的视频比特流。由编码器确定用于该块的水平变换和垂直变换,而无需在经编码视频比特流中信令通知一个或者多个语法元素(例如,AMT标志和/或AMT索引),该语法元素识别该水平变换和垂直变换。如以上关于图7所描述的,可以由解码设备执行过程来确定水平变换和垂直变换,而无需对指示该水平变换和垂直变换的一个或者多个语法元素进行解码。
在一些示例中,基于块的宽度来限制用于该块的水平变换。例如,可以基于将块的宽度与第一阈值进行比较来确定用于该块的水平变换。在一些情况下,如上所述的,该块是TU,并且基于该TU的宽度限制用于该TU的水平变换。在一些情况下,当块是CU时,基于块的宽度限制用于该TU的水平变换。在一个示例中,当块的宽度小于第一阈值时,用于该块的水平变换被确定为第一类型的水平变换。在另一个示例中,当块的宽度大于第一阈值时,用于块的水平变换被确定为第二类型的水平变换。第一类型的水平变换与第二类型的水平变换不同。在一个说明性示例中,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且第一类型的水平变换是与DCT II型变换不同的变换。例如,第一类型的水平变换可以包括除上述DCT II型变换之外的AMT变换之一,诸如离散正弦变换(DST)VII型变换或者DCT VIII型变换。
在一些示例中,基于块的高度来限制用于该块的垂直变换。例如,可以基于将块的高度与第二阈值进行比较来针对块确定垂直变换。在一些情况下,如上所述该块是TU,并且基于该TU的高度限制用于该TU的垂直变换。在一些情况下,当块是CU时,基于块的高度限制用于该TU的垂直变换。在一个示例中,当块的高度小于第二阈值时,用于块的垂直变换被确定为第一类型的垂直变换。在另一个示例中,当块的高度大于第二阈值时,用于块的垂直变换被确定为第二类型的垂直变换。第一类型的垂直变换与第二类型的垂直变换不同。在一个说明性示例中,第二类型的垂直变换是DCT II型变换,并且第一类型的垂直变换是与DCTII型变换不同的变换。例如,第一类型的垂直变换可以包括除上述DCT II型变换之外的AMT变换之一,诸如DST VII型变换或者DCT VIII型变换。
在一些示例中,过程800包括基于将水平变换和垂直变换应用于残差数据来生成包括一个或者多个变换系数的变换块。例如,可以将水平变换和垂直变换分别应用于TU(如上所述,在一些示例中是获得的块,或者在一些示例中在所获得的块是CU时被包括在块中),TU包括通过从当前块移除预测块确定的残差数据块。基于将水平变换和垂直变换应用于TU的残差数据,可以生成变换系数并将其包括在变换块中。过程800可以进一步包括对变换块进行编码并且将经编码的变换块包括在经编码视频比特流中。
参照图8描述的上述示例可以单独使用或者以任意组合使用。
图9是图示使用本文所述的显式信令技术对视频数据进行解码的过程900的示例的流程图。过程900可以由视频解码器执行。在一些情况下,当过程900由视频解码器执行时,视频数据可以包括被包括在经编码视频比特流中的经译码图片或者经译码图片的一部分(例如,一个或者多个块),或者可以包括被包括在经编码视频比特流中的多个经译码图片。
在框902处,过程900包括获得视频数据的块。视频数据的块可以包括译码单元(CU)、变换单元(TU)、预测单元(PU)或者视频数据的其他块。在框904处,过程900包括确定块的宽度和块的高度中的至少一个。例如,过程900可以确定块的宽度、块的高度、或者块的宽度和块的高度。在一些情况下,当块是CU时,过程900可以确定CU的宽度、CU的高度、或者CU的宽度和CU的高度。在一些情况下,当块是TU时,过程900可以确定TU的宽度、TU的高度、或者TU的宽度和TU的高度。
在框906处,过程900包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。在框908处,过程900包括确定自适应多重变换(AMT)标志的值是第一值,而无需在经编码视频比特流中信令通知AMT标志。基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个,将AMT标志的值确定为第一值。在一些示例中,AMT标志的第一值指示第一残差变换被用于该块,并且AMT标志的第二值指示第二残差变换被用于该块。
在一些示例中,当满足宽度大于第一阈值和高度大于第二阈值中的至少一个时,AMT标志的值被确定为第一值,而无需在经编码视频比特流中信令通知该AMT标志。在一些情况下,第一阈值是基于块的高度的第一倍数,而第二阈值基于块的宽度的第二倍数。在一个说明性示例中,第一倍数是上述倍数Th5,第二倍数是上述倍数Th6。
在一些示例中,当满足宽度小于第一阈值和高度小于第二阈值中的至少一个时,将AMT标志的值确定为第一值,而无需在经编码视频比特流中信令通知该AMT标志。在一个说明性示例中,第一阈值是上述阈值宽度Th7,第二阈值是上述阈值高度Th8。
在一些示例中,过程900可以包括基于针对该块所确定的水平变换和垂直变换来确定残差数据块。例如,水平变换和垂直变换可以包括逆变换,并且逆水平变换和逆垂直变换可以分别应用于TU(如上所述,在一些示例中是获得的块,或者在一些示例中在获得的块是CU时其被包括在该块中)以获得残差数据。过程900可以进一步包括基于残差数据块和预测块,使用帧内预测或者帧间预测来对视频块进行解码。例如,可以通过将残差数据加到预测块来对视频块进行解码。
参照图9描述的上述示例可以单独使用或者以任意组合使用。
图10是图示使用本文所述的显式信令技术对视频数据进行编码的过程1000的示例的流程图。过程1000可以由视频编码器执行。在一些情况下,当过程1000由视频编码器执行时,视频数据可以包括要被编码在经编码视频比特流中的图片或者图片的一部分(例如,一个或者多个块),或者可以包括要被编码在经编码视频比特流中的多个经图片。
在框1002处,过程1000包括获得视频数据的块。视频数据的块可以包括CU、TU、PU或者视频数据的其他块。在框1004处,过程1000包括确定块的宽度和块的高度中的至少一个。例如,过程1000可以确定块的宽度、块的高度、或者块的宽度和块的高度。在一些情况下,当块是CU时,过程1000可以确定CU的宽度、CU的高度、或者CU的宽度和CU的高度。在一些情况下,当块是TU时,过程1000可以确定TU的宽度、TU的高度、或者TU的宽度和TU的高度。
在框1006处,过程1000包括比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个。在框1008处,过程1000包括基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个,来确定是否在经编码视频比特流中信令通知自适应多多重变换(AMT)标志。
在一些示例中,当满足宽度大于第一阈值和高度大于第二阈值中的至少一个时,确定在经编码视频比特流中不信令通知AMT标志。在一些情况下,第一阈值是基于块的高度的第一倍数,而第二阈值是基于块的宽度的第二倍数。在一个说明性示例中,第一倍数是上述倍数Th5,第二倍数是上述倍数Th6。
在一些示例中,在满足宽度小于第一阈值和高度小于第二阈值中的至少一个时,确定在经编码视频比特流中不信令通知AMT标志。在一个说明性示例中,第一阈值是上述阈值宽度Th7,第二阈值是上述阈值高度Th8。
在一些示例中,过程1000包括基于将水平变换和垂直变换应用于残差数据来生成包括一个或者多个变换系数的变换块。例如,可以将水平变换和垂直变换分别应用于TU(如上所述,在一些示例中是获得的块,或者在一些示例中在所获得的块是CU时被包括在块中),TU包括通过从当前块移除预测块确定的残差数据块。基于将水平变换和垂直变换应用于TU的残差数据,可以生成变换系数并将其包括在变换块中。过程1000可以进一步包括对变换块进行编码并且将经编码变换块包括在经编码视频比特流中。
参照图10描述的上述示例可以单独使用或者以任意组合使用。
在一些示例中,过程700、800、900和1000可以由计算设备或者装置(诸如编码设备104、解码设备112或者任何其他计算设备)执行。在一些情况下,计算设备或者装置可以包括一个或者多个输入设备、一个或者多个输出设备、一个或者多个处理器、一个或者多个微处理器、一个或者多个微型计算机和/或其他组件(多个),其被配置为执行过程700、800、900和1000的步骤。可以在电路中实现计算设备的组件(例如,一个或者多个输入设备、一个或者多个输出设备、一个或者多个处理器、一个或者多个微处理器、一个或者多个微型计算机和/或其他组件)。例如,组件可以包括电子电路或者其他电子硬件和/或可以使用它们来实现,电子电路或者其他电子硬件可以包括一个或者多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路),和/或可以包括计算机软件、固件或者其任何组合和/或使用它们来实现,以执行本文所述的各种操作。计算设备还可以包括显示器(作为输出设备的示例)、被配置为传送和/或接收数据的网络接口、一个或者多个被配置为传送视频数据的接收机、发射机和/或收发机(作为输入设备和/或输出设备的示例)。在一些示例中,网络接口、收发机和/或发射机可以被配置为传送基于互联网协议(IP)的数据或者其他网络数据。
在一些示例中,计算设备或者装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的相机。例如,计算设备可以包括相机设备,其可以包括或者可以不包括视频编解码器。作为另一示例,计算设备可以包括具有相机的移动设备(例如,诸如数字相机、IP相机等的相机设备,包括相机的移动电话或者平板电脑,或者具有相机的其他类型的设备)。在一些示例中,捕获视频数据的相机或者其他捕获设备与计算设备分开,在这种情况下,计算设备接收捕获的视频数据。
过程700、800、900和1000被示为逻辑流程图,其操作表示可以用硬件、计算机指令或者它们的组合来实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或者多个计算机可读存储介质上的计算机可执行指令,计算机可执行指令在由一个或者多个处理器执行时执行所列举的操作。通常,计算机可执行指令包括执行特定功能或者实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被理解为限制性的,而是可以以任何顺序和/或并行地组合任意数量的所描述的操作以实现上述过程。
另外,过程700、800、900和1000可以在配置有可执行指令的一个或者多个计算机***的控制下执行,并且可以被实现为由硬件在一个或者多个处理器上共同执行的代码(例如,可执行指令、一个或者多个计算机程序或者一个或者多个应用程序),或者它们的组合。如上所述,代码可以例如以包括多个可由一个或者多个处理器执行的指令的计算机程序的形式存储在计算机可读或者机器可读存储介质上。计算机可读或者机器可读存储介质可以是非暂时性的。
本文中还提供了用于改进AMT的其他技术。在一些示例中,基于当前TU左侧的相邻TU(被称为左相邻TU)和当前TU上面的相邻TU(被称为上方相邻TU)的经译码块标志(CFB)标志,限制用于当前TU的水平和/或垂直变换。CBF标志指示是否针对整个CU发送至少一个非零变换系数。例如,如果针对左相邻TU的CBF标志为0,则用于当前TU的水平变换是固定的而无需信令通知。在一个说明性示例中,水平变换可以被固定为DST-7。在另一个示例中,如果针对上方相邻TU的CBF标志为0,则用于当前TU的垂直变换是固定的无需信令通知。在一个说明性示例中,垂直变换可以被固定为DST-7。本领域的普通技术人员将了解的是,可以使用其他类型的变换。在一些情况下,替代限制,可以基于建议的规则分配熵译码上下文。
在一些示例中,针对较小的块(例如,4×4块)和/或针对具有较小宽度或者高度的矩形块(例如,4×N块或者N×4块),DST IV型(DST-4)变换可以作为4点变换而用作DST-7的替代方案。类似地,可以将DCT IV型(DCT-4)变换用作DCT-8的替代方案。在一些情况下,这样的技术可以被扩展到具有不同尺寸的块(例如,8×8、8×N等等)。
在一些示例中,垂直和/或水平1D变换也可以基于应用于块的分割类型而固定。分割的示例包括残差块分割,诸如RQT(如上所讨论的)。如果水平和垂直变换都是固定的,则不需要变换信令。在这样的示例中,如果仅一个1D变换是固定的,则使用标志信令通知另一个1D变换。在一些情况下,替代限制,可以基于建议的规则分配熵译码上下文。
在一些示例中,如果变换之后的非零系数的数量小于或者等于阈值数量,则用于TU的AMT索引能是固定的而无需信令通知。在一些情况下,AMT索引可以被固定以使得水平变换和垂直变换都是DST-7。在一个说明性示例中,可以将阈值数量设置为2。本领域的普通技术人员将了解的是,可以使用其他类型的变换和阈值。在一些情况下,替代限制,可以基于建议的规则分配熵译码上下文。
在一些示例中,基于是(CU高度==CU宽度)还是(CU高度<CU宽度)还是(CU高度>CU宽度),不同的熵译码上下文(例如,CABAC上下文)可以被用于信令通知用于CU的AMT标志。
在一些示例中,基于左侧和上方CU的AMT标志,可以将不同的CABAC上下文用于信令通知CU的AMT标志(例如,一个上下文用于以下左侧和上方AMT标志值的每一个:00、01或者10和11)。
在一些示例中,基于是(TU高度==TU宽度)还是(TU高度<CU宽度)还是(TU高度>CU宽度),可以分别将不同的CABAC上下文用于信令通知用于TU的水平AMT变换。可以使用类似的上下文来信令通知用于TU的垂直AMT变换。
在一些示例中,基于相邻TU的CFB标志,可以将不同的CABAC上下文用于信令通知用于TU的水平AMT变换。相邻块可以包括左侧和上方,并且例如,一个上下文用于以下左侧和上方CBF标志的值的每一个:00、01或者10和11。在另一个示例中,上下文可以被定义为相邻CBF标志的总和,诸如如果仅使用左侧和上方的相邻块,则定义为leftCBF+aboveCBF。可以使用类似的上下文来信令通知垂直AMT。基于相邻CBF标志的用于上下文设计的类似方法可以应用于AMT标志信令。
CU的AMT标志的信令可以被改变和/或可以在无需基于其他现有CU相关的信息(诸如预测模式、合并模式、跳过标志、CBF标志、非零变换系数的数量、相邻块的跳过和/或CBF标志等)的信令通知的情况下推导出AMT标志。
用于TU的水平或者垂直AMT索引或者二者的信令可以被改变,或者可以在无需基于其他现有TU相关的信息(诸如预测模式、合并模式、跳过标志、CBF标志、非零变换系数的数量、相邻块的跳过和/或CBF标志等)的信令通知的情况下推导出水平或者垂直AMT索引或者二者。
在一些示例中,取决于块的形状,可以使用上下文来信令通知AMT标志和/或AMT索引。例如,一个上下文可以被分配给矩形块并且另一个上下文可以被分配给正方形块。针对矩形块,针对上下文推导可以附加考虑是高度还是宽度更长。
在一些实施方式中,以上描述的任何技术可以只用于经帧间译码块、只用于经帧内译码块,或者用于经帧间译码块和经帧内译码块二者。
本文讨论的译码技术可以在示例视频编码和解码***(例如,***100)中实现。在一些示例中,***包括源设备,该源设备提供经编码的视频数据,以在稍后由目标设备解码。具体地,源设备经由计算机可读介质将视频数据提供给目标设备。源设备和目标设备可以包括多种设备中的任何一种,包括桌面型计算机、笔记本计算机(即,膝上型计算机)、平板计算机、机顶盒、电话手机(诸如所谓的“智能”电话)、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备和目标设备可以配备用于无线通信。
目标设备可以经由计算机可读介质接收要解码的经编码视频数据。计算机可读介质可以包括能够将经编码视频数据从源设备移动到目标设备的任何类型的介质或者设备。在一个示例中,计算机可读介质可以包括通信介质,以使源设备能够实时地向目标设备直接发送经编码视频数据。经编码视频数据可以根据诸如无线通信协议的通信标准来调制,并且被发送到目标设备。通信介质可以包括任何无线或者有线通信介质,诸如射频(RF)频谱或者一条或者多条物理传输线。通信介质可以形成诸如局域网、广域网或者诸如因特网的全球网络的基于分组的网络的一部分。通信介质可包括路由器、交换机、基站或者可用于帮助从源设备到目标设备的通信的任何其他设备。
在一些示例中,经编码数据可以从输出接口输出到存储设备。类似地,可以通过输入接口从存储设备访问经编码数据。存储设备可以包括多种分布式或者本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或者非易失性存储器,或者用于存储经编码视频数据的任何其他合适的数字存储介质。在进一步的示例中,存储设备可以对应于文件服务器或者可以存储源设备所生成的经编码视频的另一中间存储设备。目标设备可以经由流传输或者下载从存储设备访问存储的视频数据。文件服务器可以是能够存储经编码视频数据并将经编码视频数据发送到目标设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络连接存储(NAS)设备或者本地磁盘驱动器。目标设备可以通过任何标准数据连接(包括因特网连接)访问经编码视频数据。这可以包括适合于访问存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或者二者的组合。来自存储设备的经编码视频数据的传输可以是流传输、下载传输或者其组合。
本公开的技术不必限于无线应用或者设置。该技术可以应用于视频译码,以支持多种多媒体应用中的任何一种,诸如空中电视广播、有线电视传输、***传输、互联网流视频传输(诸如基于HTTP的动态自适应流(DASH)、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码),或者其他应用程序。在一些示例中,***可以被配置为支持单向或者双向视频传输,以支持诸如视频流、视频播放、视频广播和/或视频电话的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目标设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文公开的技术。在其他示例中,源设备和目标设备可以包括其他组件或者布置。例如,源设备可以从外部视频源(诸如外部摄像机)接收视频数据。同样,目标设备可以与外部显示设备交互,而不是包括集成的显示设备。
上面的示例***仅仅是一个示例。用于并行处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。尽管通常,本公开的技术由视频编码设备执行,但是该技术也可以由通常被称为“CODEC”的视频编码器/解码器执行。此外,本公开的技术也可以由视频预处理器执行。源设备和目标设备仅是这样的译码设备的示例,其中,源设备生成经译码视频数据以传输到目标设备。在一些示例中,源设备和目标设备可以以基本上对称的方式操作,使得每个设备包括视频编码和解码组件。因此,示例***可以支持视频设备之间的单向或者双向视频传输,例如,用于视频流、视频播放、视频广播或者视频电话。
视频源可以包括视频捕获设备(诸如视频摄像机)、包含先前捕获的视频的视频档案和/或用于从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源可以生成基于计算机图形的数据作为源视频,或者是实时视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源是视频摄像机,则源设备和目标设备可以形成所谓的相机电话或者视频电话。然而,如上所提到的,本公开中描述的技术通常可以适用于视频译码,并且可以应用于无线和/或有线应用。在每种情况下,捕获的、预捕获的或者计算机生成的视频都可以由视频编码器进行编码。然后由输出接口将经编码视频信息输出到计算机可读介质。
如上所述,计算机可读介质可以包括诸如无线广播或者有线网络传输的暂时性介质,或者诸如硬盘、闪存驱动器、光盘、数字视频盘、蓝光盘或者其他计算机可读介质的存储介质(即,非暂时性存储介质)。在一些示例中,网络服务器(未示出)可以例如经由网络传输从源设备接收经编码视频数据并且将经编码视频数据提供给目标设备。类似地,诸如磁盘冲压设备的介质生产设施的计算设备可以从源设备接收经编码视频数据,并产生包含经编码视频数据的盘。因此,在各种示例中,计算机可读介质可以被理解为包括各种形式的一种或者多种计算机可读介质。
目标设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息,该语法信息也由视频解码器使用,该语法信息包括描述块和其他译码单元(例如,图片组(GOP))的特征和/或过程的语法元素。显示设备向用户显示经解码的视频数据,并且可以包括多种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或者另一类型的显示设备。已经描述了本申请的各种实施例。
分别在图11和图12中示出编码设备104和解码设备112的具体细节。图11是图示可以实现本公开中描述的一种或者多种技术的示例编码设备104的框图。编码设备104可以例如生成本文描述的语法结构(例如,VPS、SPS、PPS或者其他语法元素的语法结构)。编码设备104可以对视频条带内的视频块执行帧内预测和帧间预测译码。如前所述,帧内译码至少部分依赖于空域预测以减少或者移除给定视频帧或者图片内的空域冗余。帧间译码至少部分地依赖于时域预测以减少或者移除视频序列的相邻或者周围帧内的时域冗余。帧内模式(I模式)可以是指几种基于空域的压缩模式中的任何一种。诸如单向预测(P模式)或者双向预测(B模式)的帧间模式可以是指几种基于时域的压缩模式中的任何一种。
编码设备104包括分割单元35、预测处理单元41、滤波器单元63、图片存储器64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。针对视频块重构,编码设备104还包括逆量化单元58、逆变换处理单元60和加法器62。滤波器单元63旨在表示一个或者多个环路滤波器,诸如去方块滤波器、自适应环路滤波器(ALF)和样点自适应偏移(SAO)滤波器。尽管在图1中将滤波器单元63示出为内环路(in loop)滤波器,但是在其他配置中,滤波器单元63可以实现为后环路(post loop)滤波器。后处理设备57可以对由编码设备104生成的经编码视频数据执行附加处理。在一些情况下,本公开的技术可以由编码设备104来实现。然而,在其他情况下,可以由后处理设备57实现本公开的一种或者多种技术。
如图11中所示,编码设备104接收视频数据,并且分割单元35将数据分割为视频块。该分割还可以包括,例如根据LCU和CU的四叉树结构,分割为条带、条带分段、图块(tile)或者其他更大的单元,以及视频块分割。编码设备104通常图示对要编码的视频条带内的视频块进行编码的组件。条带可被划分为多个视频块(并且可能地被划分为被称为图块的视频块的集合)。预测处理单元41可以基于误差结果(例如,译码率和失真程度等)为当前视频块选择多个可能的编码模式之一,诸如多个帧内预测译码模式之一或者多个帧间预测译码模式之一。预测处理单元41可以将所得的经帧内或者帧间译码的块提供给加法器50以生成残差块数据,并且提供给加法器62以重构经编码块以用作参考图片。
预测处理单元41内的帧内预测处理单元46可以相对于与要译码的当前块处于同一帧或者条带中的一个或者多个相邻块执行当前视频块的帧内预测译码,以提供空域压缩。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或者多个参考图片中的一个或者多个预测块执行当前视频块的帧间预测译码,以提供时域压缩。
运动估计单元42可以被配置为根据视频序列的预定模式来确定视频条带的帧间预测模式。预定模式可以将序列中的视频条带指定为P条带、B条带或者广义的P和B条带(GPB)条带。运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而被分开示出。由运动估计单元42执行的运动估计是生成运动矢量的过程,其估计视频块的运动。运动矢量例如可以指示相对于参考图片内的预测块的、当前视频帧或者图片内的视频块的预测单元(PU)的位移。
预测块是在像素差方面被发现与要译码的视频块的PU紧密匹配的块,该像素差可以由绝对差之和(SAD)、平方差之和(SSD)或者其他差异度量确定的。在一些示例中,编码设备104可以计算存储在图片存储器64中的参考图片的子整数像素位置的值。例如,编码设备104可以对四分之一像素位置、八分之一像素位置或者参考图片的其他分数像素位置进行插值。因此,运动估计单元42可以相对于完整像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动矢量。
运动估计单元42通过将PU的位置与参考图片的预测块的位置进行比较来计算经帧间译码的条带中的视频块的PU的运动矢量。可以从第一参考图片列表(列表0)或者第二参考图片列表(列表1)选择参考图片,每个参考图片列表识别存储在图片存储器64中的一个或者多个参考图片。运动估计单元42将计算出的运动矢量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计确定的运动矢量来获取或者生成预测块,可能地执行对子像素精度的插值。在接收到当前视频块的PU的运动矢量时,运动补偿单元44可以在参考图片列表中定位运动矢量指向的预测块。编码设备104通过从正被译码的当前视频块的像素值中减去预测块的像素值形成像素差值,来形成残差视频块。像素差值形成该块的残差数据,并且可以包括亮度差和色度差分量。加法器50表示执行该减法运算的一个或者多个组件。运动补偿单元44还可以生成与视频块和视频条带相关联的语法元素,以供解码设备112在对视频条带的视频块进行解码中使用。
如上所述,帧内预测处理单元46可以对当前块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代。特别地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可以例如在单独的编码遍历期间使用各种帧内预测模式对当前块进行编码,并且帧内预测单元处理46可以从测试的模式中选择合适的帧内预测模式来使用。例如,帧内预测处理单元46可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值,并且可以在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经编码块与被编码以生成经编码块的原始未编码块之间的失真(或者误差)量,以及用于产生该经编码块的比特率(即,比特数)。帧内预测处理单元46可以从各种经编码块的失真和率来计算比率,以确定哪个帧内预测模式展现出针对该块的最佳率失真值。
在任何情况下,在选择用于块的帧内预测模式之后,帧内预测处理单元46可以将指示针对该块的所选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示所选择的帧内预测模式的信息进行编码。编码设备104可以在所发送的比特流中包括用于各种块的编码上下文的配置数据定义以及最可能的帧内预测模式的指示、帧内预测模式索引表和要用于每个上下文的修改后的帧内预测模式索引表。比特流配置数据可以包括多个帧内预测模式索引表和多个修改后的帧内预测模式索引表(也被称为码字映射表)。
在预测处理单元41经由帧间预测或者帧内预测生成用于当前视频块的预测块之后,编码设备104通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或者多个TU中,并且被应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)的变换或者概念上类似的变换将残差视频数据变换成残差变换系数。变换处理单元52可以将残差视频数据从像素域转换到变换域(诸如频域)。
变换处理单元52可以将所得的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程可以减小与一些或者所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括经量化的变换系数的矩阵的扫描。替代地,熵编码单元56可以执行该扫描。
在量化之后,熵编码单元56对经量化的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间划分熵(PIPE)译码或者另一熵编码技术。在由熵编码单元56进行熵编码之后,可以将经编码比特流发送到解码设备112,或者将其存档以供以后由解码设备112传输或者取回。熵编码单元56还可以对用于正在被译码的当前视频条带的运动矢量和其他语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换,以重构像素域中的残差块,以供以后用作参考图片的参考块。运动补偿单元44可以通过将残差块与参考图片列表内的参考图片之一的预测块相加来计算参考块。运动补偿单元44还可以将一个或者多个插值滤波器应用于经重构的残差块以计算在运动估计中使用的子整数像素值。加法器62将经重构的残差块与由运动补偿单元44产生的运动补偿预测块相加,以产生存储在图片存储器64中的参考块。参考块可以由运动估计单元42和运动补偿单元44用作参考块以对随后的视频帧或者图片中的块进行帧间预测。
编码设备104可以执行本文描述的任何技术。已经关于编码设备104总体上描述了本公开的一些技术,但是如上所提到的,本公开的一些技术也可以由后处理设备57实现。
图11的编码设备104表示被配置为执行本文所描述的一种或者多种变换译码技术的视频编码器的示例。编码设备104可以执行本文中描述的任何技术,包括上面关于图8和图10所描述的过程。
图12是图示示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可以执行与关于图11的编码设备104描述的编码遍历大体上互逆的解码遍历。
在解码过程中,解码设备112接收由编码设备104发送的表示经编码视频条带的视频块的经编码视频比特流和关联的语法元素。在一些实施例中,解码设备112可以从编码设备104接收经编码视频比特流。在一些实施例中,解码设备112可以从网络实体79(诸如服务器、媒体感知网络元件(MANE)、视频编辑器/分割器或者其他被配置为实现上述一种或者多种技术的设备)接收经编码视频比特流。网络实体79可以包括也可以不包括编码设备104。在网络实体79将经编码视频比特流发送到解码设备112之前,网络实体79可以实现本公开中描述的某些技术。在一些视频解码***中,网络实体79和解码设备112可以是单独设备的一部分,而在其他情况下,关于网络实体79所描述的功能可以由包括解码设备112的同一设备执行。
解码设备112的熵解码单元80对比特流进行熵解码以生成经量化系数、运动矢量和其他语法元素。熵解码单元80将运动矢量和其他语法元素转发到预测处理单元81。解码设备112可以接收视频条带级别和/或视频块级别的语法元素。熵解码单元80可以处理和解析诸如VPS、SPS和PPS的一个或者多个参数集中的固定长度语法元素和可变长度语法元素二者。
当视频条带被译码为经帧内译码(I)条带时,预测处理单元81的帧内预测处理单元84可以基于信令通知的帧内预测模式和来自当前帧或者图片的先前经解码块的数据,生成当前视频条带的视频块的预测数据。当视频帧被译码为经帧间译码(即,B、P或者GPB)条带时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素产生用于当前视频条带的视频块的预测块。可以从参考图片列表内的参考图片之一产生预测块。解码设备112可以基于存储在图片存储器92中的参考图片,使用默认构造技术来构造参考帧列表(列表0和列表1)。
运动补偿单元82通过解析运动矢量和其他语法元素来确定当前视频条带的视频块的预测信息,并使用该预测信息来产生用于正在解码的当前视频块的预测块。例如,运动补偿单元82可以使用参数集中的一个或者多个语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如帧内或者帧间预测)、帧间预测条带类型(例如,B条带、P条带或者GPB条带)、该条带的一个或者多个参考图片列表的构造信息、该条带的每个经帧间编码视频块的运动矢量、该条带的每个经帧间译码视频块的帧间预测状态,以及用于对当前视频条带中的视频块进行解码的其他信息。
运动补偿单元82还可以基于插值滤波器执行插值。运动补偿单元82可以使用在视频块的编码期间由编码设备104使用的插值滤波器来计算参考块的子整数像素的***值。在这种情况下,运动补偿单元82可以从接收到的语法元素确定由编码设备104使用的插值滤波器,并且可以使用插值滤波器来产生预测块。
逆量化单元86对在比特流中提供的、并由熵解码单元80解码的经量化的变换系数进行逆量化或者去量化。逆量化过程可以包括使用由编码设备104针对视频条带中的每个视频块计算出的量化参数,以确定应该应用的量化程度以及同样地逆量化程度。逆变换处理单元88将逆变换(例如,逆DCT或者其他合适的逆变换)、逆整数变换或者概念上类似的逆变换过程应用于变换系数,以便产生像素域中的残差块。
在运动补偿单元82基于运动矢量和其他语法元素生成用于当前视频块的预测块之后,解码设备112通过将来自逆变换处理单元88的残差块与运动补偿单元82所生成的相对应的预测块相加而形成经解码视频块。加法器90表示执行该加法操作的一个或者多个组件。如果需要,环路滤波器(在译码环路中或者在译码环路之后)也可以用于平滑像素过渡,或者以其他方式提高视频质量。滤波器单元91旨在表示一个或者多个环路滤波器,诸如去方块滤波器、自适应环路滤波器(ALF)和样点自适应偏移(SAO)滤波器。尽管在图12中将滤波器单元91示出为内环路滤波器,但是在其他配置中,滤波器单元91可以被实现为后环路滤波器。然后将给定帧或者图片中的经解码视频块存储在图片存储器92中,图片存储器92存储用于后续运动补偿的参考图片。图片存储器92还存储经解码的视频,以供稍后在显示设备(诸如图1中示出的视频目标设备122)上显示。
图12的解码设备112表示被配置为执行本文描述的一种或者多种变换译码技术的视频解码器的示例。解码设备112可以执行本文中描述的任何技术,包括以上关于图7和图9描述的过程。
在前面的描述中,参考本申请的特定实施例描述了本申请的各方面,但是本领域技术人员将认识到,本申请的主题不限于此。因此,尽管在此已经详细描述了本申请的说明性实施例,但是应当理解,本发明概念可以以其他方式被不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变型,但并不由现有技术限制于此。上述主题的各种特征和方面可以单独或者共同使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以在本文所述之外的任何数量的环境和应用中使用。因此,说明书和附图应被认为是说明性的而不是限制性的。为了解释说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行上述方法。
普通技术人员将了解,本文中所使用的小于(“<”)和大于(“>”)符号或者术语可以在不脱离本说明书的范围的情况下分别用小于或等于(“≤”)和大于或等于(“≥”)符号来替代。
在将组件描述为“被配置为”执行某些操作的情况下,可以例如通过设计电子电路或者其他硬件以执行该操作、通过对可编程电子电路(例如,微处理器或者其他合适的电子电路)进行编程来执行该配置或者其任何组合来实现这种配置。
陈述集合的“至少一个”和/或集合的“一个或者多个”的权利要求语言或者其他语言指示该集合中的一个成员或者集合中的多个成员(以任意组合)满足该权利要求。例如,陈述“A和B中的至少一个”的权利要求语言意为A、B或者A和B。在另一个示例中,陈述“A、B和C中的至少一个”的权利要求语言意为A、B、C或者A和B,或者A和C,或者B和C,或者A和B和C。集合中的“至少一个”和/或集合中的“一个或者多个”的语言不将该集合限制为集合中列出的项目。例如,陈述“A和B中的至少一个”的权利要求语言意为A、B或者A和B,并且可以另外包括未在A和B集合中列出的项目。
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或者其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经在其功能方面总体上描述了各种说明性的组件、块、模块、电路和步骤。将这种功能性实现为硬件还是软件取决于特定的应用程序和施加在整个***上的设计约束。技术人员可以针对每个特定应用以各种方式来实现所描述的功能,但是这种实现决定不应被解释为导致脱离本申请的范围。
本文描述的技术还可以以电子硬件、计算机软件、固件或者其任何组合来实现。可以在诸如通用计算机、无线通信设备手机或者具有包括无线通信设备手机和其他设备中的应用的多种用途的集成电路设备的各种设备中的任何一种中实现这样的技术。描述为模块或者组件的任何特征可以一起在集成逻辑设备中实现,或者可以分别作为分立但可互操作的逻辑设备实现。如果实现在软件中,则该技术可以至少部分地由计算机可读数据存储介质来实现,该计算机可读数据存储介质包括程序代码,程序代码包括在被执行时执行上述一种或者多种方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或者数据存储介质,诸如随机存取存储器(RAM)(诸如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或者光数据存储介质等。另外或者替代地,该技术可以至少部分地由计算机可读通信介质来实现,该计算机可读通信介质以指令或者数据结构的形式携带或者传递程序代码,并且可以由计算机访问、读取和/或执行,诸如传播的信号或者波。
程序代码可以由处理器执行,该处理器可以包括一个或者多个处理器,诸如一个或者多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其他等效的集成或者分立逻辑电路。这样的处理器可以被配置为执行本公开中描述的任何技术。通用处理器可以是微处理器;但是在替代方案中,处理器也可以是任何常规处理器、控制器、微控制器或者状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP内核结合的一个或者多个微处理器,或者任何其他这样的配置。因此,本文所使用的术语“处理器”可以是指任何前述结构、前述结构的任何组合,或者适合于实现本文描述的技术的任何其他结构或者装置。另外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用软件模块或者硬件模块内提供,或者结合在组合的视频编码器-解码器(CODEC)中。
本公开的说明性示例包括:
示例1:一种解码视频数据的方法,包括:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个,来确定要用于块的水平变换和垂直变换,在不解码指示水平变换和垂直变换的语法元素的情况下确定该水平变换和垂直变换;基于所确定的用于该块的水平变换和垂直变换来确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
示例2:一种解码视频数据的方法,包括:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换;基于针对该块确定的水平变换和垂直变换确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
示例3:根据示例1或者2中任何一个的方法,其中,基于比较块的宽度与第一阈值来确定用于该块的水平变换。
示例4:根据示例1至示例3中任何一个的方法,其中,基于比较块的高度与第二阈值来确定用于该块的垂直变换。
示例5:根据示例1至示例4中任何一个的方法,其中,基于比较块的宽度与第一阈值来确定用于该块的水平变换,并且其中,基于比较块的高度与第二阈值来确定用于该块的垂直变换。
示例6:根据示例1至示例5中任何一个的方法,其中,基于块的宽度,限制用于该块的变换单元(TU)的水平变换。
示例7:根据示例1至示例6中任何一个的方法,其中,基于块的高度,限制用于该块的变换单元(TU)的垂直变换。
示例8:根据示例1至示例7中任何一个的方法,其中,块是变换单元(TU),并且其中,基于块的宽度限制用于该块的水平变换。
示例9:根据示例1至示例8中任何一个的方法,其中,块是变换单元(TU),并且其中,基于块的高度限制用于该块的垂直变换。
示例10:根据示例1至示例9中任何一个的方法,其中,在块的宽度小于第一阈值的情况下,将用于块的水平变换确定为第一类型的水平变换,在块的宽度大于第一阈值的情况下,将用于块的水平变换确定为第二类型的水平变换。
示例11:根据示例1至示例10中任何一个的方法,其中,第一类型的水平变换不同于第二类型的水平变换。
示例12:根据示例1至示例11中任何一个的方法,其中,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的水平变换是不同于DCT II型变换的变换。
示例13:根据示例1至示例12中任何一个的方法,其中,第一类型的水平变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例14:根据示例1至示例13中任何一个的方法,其中,在块的高度小于第二阈值的情况下,将用于块的垂直变换确定为第一类型的垂直变换,并且其中,在块的高度大于第二阈值的情况下,将用于块的垂直变换确定为第二类型的垂直变换。
示例15:根据示例1至示例14中任何一个的方法,其中,第一类型的垂直变换不同于第二类型的垂直变换。
示例16:根据示例1至示例15中任何一个的方法,其中,第二类型的垂直变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的垂直变换是不同于DCT II型变换的变换。
示例17:根据示例1至示例16中任何一个的方法,其中,第一类型的垂直变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例18:根据示例1至示例17中任何一个的方法,其中,块包括译码单元(CU)或者变换单元(TU)。
示例19:一种用于解码视频数据的装置,包括存储器,其被配置为存储视频数据的至少一个经编码块,以及视频解码器,其包括固定功能电路和可编程电路中的至少一个,视频解码器被配置为:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换,在不解码指示水平变换和垂直变换的语法元素的情况下确定该水平变换和该垂直变换;基于所确定的用于该块的水平变换和垂直变换来确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
示例20:一种用于解码视频数据的装置,包括存储器,其被配置为存储视频数据的至少一个经编码块,以及视频解码器,其包括固定功能电路和可编程电路中的至少一个,视频解码器被配置为:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换;基于所确定的用于该块的水平变换和垂直变换来确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
示例21:根据示例19或者20中任何一个的装置,其中,基于块的宽度与第一阈值的比较来确定用于该块的水平变换。
示例22:根据示例19至示例21中任何一个的装置,其中,基于块的高度与第二阈值的比较来确定用于该块的垂直变换。
示例23:根据示例19至示例22中任何一个的装置,其中,基于块的宽度与第一阈值的比较来确定用于该块的水平变换,并且其中,基于块的高度与第二阈值的比较来确定用于该块的垂直变换。
示例24:根据示例19至示例23中任何一个的装置,其中,基于块的宽度,限制用于该块的变换单元(TU)的水平变换。
示例25:根据示例19至示例24中任何一个的装置,其中,基于块的高度,限制用于该块的变换单元(TU)的垂直变换。
示例26:根据示例19至示例25中任何一个的装置,其中,块是变换单元(TU),并且其中,基于块的宽度限制用于该块的水平变换。
示例27:根据示例19至示例26中任何一个的装置,其中,块是变换单元(TU),并且其中,基于块的高度限制用于该块的垂直变换。
示例28:根据示例19至示例27中任何一个的装置,其中,在块的宽度小于第一阈值的情况下,将用于块的水平变换确定为第一类型的水平变换,并且其中在块的宽度大于第一阈值的情况下,将用于块的水平变换确定为第二类型的水平变换。
示例29:根据示例19至示例28中任何一个的装置,其中,第一类型的水平变换不同于第二类型的水平变换。
示例30:根据示例19至示例29中任何一个的装置,其中,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的水平变换是不同于DCT II型变换的变换。
示例31:根据示例19至示例29中任何一个的装置,其中,第一类型的水平变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例32:根据示例19至示例31中任何一个的装置,其中,在块的高度小于第二阈值的情况下,将用于块的垂直变换确定为第一类型的垂直变换,并且其中,在块的高度大于第二阈值的情况下,将用于块的垂直变换确定为第二类型的垂直变换。
示例33:根据示例19至示例32中任何一个的装置,其中,第一类型的垂直变换不同于第二类型的垂直变换。
示例34:根据示例19至示例33中任何一个的装置,其中,第二类型的垂直变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的垂直变换是不同于DCT II型变换的变换。
示例35:根据示例19至示例34中任何一个的装置,其中,第一类型的垂直变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例36:根据示例19至示例35中任何一个的装置,其中,块包括译码单元(CU)或者变换单元(TU)。
示例37:根据示例19至示例36中任何一个的装置,还包括显示器,其被配置为显示视频数据。
示例38:根据示例19至示例37中任何一个的装置,其中,该装置包括以下中的一种或者多种:相机、计算机、移动设备、广播接收器设备或者机顶盒。
在一些实现中,上述示例1-18和/或19-38可以使用存储指令的计算机可读存储介质来实现,该指令在被执行时使得用于解码视频数据的设备的一个或者多个处理器执行一些或者全部各种操作。例如,可以提供一种计算机可读存储介质,该计算机可读存储介质存储指令,该指令在被执行时使得用于解码视频数据的设备的一个或者多个处理器:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换,在不解码指示水平变换和垂直变换的语法元素的情况下确定该水平变换和该垂直变换;基于针对该块确定的水平变换和垂直变换确定残差数据块;以及基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码。
在一些实现中,上述示例1-18和/或19-38可以使用包括用于执行一些或者全部各种操作的一个或者多个部件的装置来实现。例如,可以提供一种用于解码视频数据的装置,该装置包括:用于获得视频数据的经编码块的部件;用于确定块的宽度和块的高度中的至少一个的部件;用于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个的部件;用于基于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个来确定要用于块的水平变换和垂直变换的部件,其中,在不解码指示水平变换和垂直变换的语法元素的情况下确定该水平变换和该垂直变换;用于基于针对该块确定的水平变换和垂直变换确定残差数据块的部件;以及用于基于残差数据块和预测块,使用帧内预测或者帧间预测对视频块进行解码的部件。
示例39:一种编码视频数据的方法,包括:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值的至少一个,来确定用于块的水平变换和垂直变换;以及在没有指示水平变换和垂直变换的语法元素的情况下,生成经编码的视频比特流。
示例40:一种编码视频数据的方法,包括:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换;以及在没有指示水平变换和垂直变换的语法元素的情况下生成经编码的视频比特流。
示例41:根据示例39或者40中任何一个的方法,其中,基于比较块的宽度与第一阈值来确定用于该块的水平变换。
示例42:根据示例39至示例41中任何一个的方法,其中,基于比较块的高度与第二阈值来确定用于该块的垂直变换。
示例43:根据示例39至示例42中任何一个的方法,其中,基于比较块的宽度与第一阈值来确定用于该块的水平变换,并且其中,基于比较块的高度与第二阈值来确定用于该块的垂直变换。
示例44:根据示例39至示例43中任何一个的方法,其中,基于块的宽度,限制用于该块的变换单元(TU)的水平变换。
示例45:根据示例39至示例44中任何一个的方法,其中,基于块的高度,限制用于该块的变换单元(TU)的垂直变换。
示例46:根据示例39至示例45中任何一个的方法,其中,块是变换单元(TU),并且其中,基于块的宽度来限制用于该块的水平变换。
示例47:根据示例39至示例46中任何一个的方法,其中,块是变换单元(TU),并且其中,基于块的高度来限制用于该块的垂直变换。
示例48:根据示例39至示例47中任何一个的方法,其中,在块的宽度小于第一阈值的情况下,将用于块的水平变换确定为第一类型的水平变换,并且其中,在块的宽度大于第一阈值的情况下,将用于块的水平变换确定为第二类型的水平变换。
示例49:根据示例39至示例48中任何一个的方法,其中,第一类型的水平变换不同于第二类型的水平变换。
示例50:根据示例39至示例49中任何一个的方法,其中,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的水平变换是不同于DCT II型变换的变换。
示例51:根据示例39至示例50中任何一个的方法,其中,第一类型的水平变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例52:根据示例39至示例51中任何一个的方法,其中,在块的高度小于第二阈值的情况下,将用于块的垂直变换确定为第一类型的垂直变换,并且其中,在块的高度大于第二阈值的情况下,将用于块的垂直变换确定为第二类型的垂直变换。
示例53:根据示例39至示例52中任何一个的方法,其中,第一类型的垂直变换不同于第二类型的垂直变换。
示例54:根据示例39至示例53中任何一个的方法,其中,第二类型的垂直变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的垂直变换是不同于DCT II型变换的变换。
示例55:根据示例39至示例54中任何一个的方法,其中,第一类型的垂直变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例56:根据示例39至示例55中任何一个的方法,其中,块包括译码单元(CU)或者变换单元(TU)。
示例57:根据示例39至示例56中任何一个的方法,还包括:基于对残差数据应用水平变换和垂直变换,生成包括一个或者多个变换系数的变换块;以及对变换块进行编码。
示例58:一种用于编码视频数据的装置,包括存储器,其被配置为存储视频数据的至少一个经编码块,以及视频编码器,其包括固定功能电路和可编程电路中的至少一个,视频编码器被配置为:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值的至少一个,来确定用于块的水平变换和垂直变换;以及在没有指示水平变换和垂直变换的语法元素的情况下生成经编码视频比特流。
示例59:一种用于编码视频数据的装置,包括存储器,其被配置为存储视频数据的至少一个经编码块,以及视频编码器,其包括固定功能电路和可编程电路中的至少一个,视频编码器被配置为:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;在确定块的宽度超过第一阈值的情况下,确定与第一默认水平变换相对应的水平变换;在确定块的宽度不超过第一阈值的情况下,确定与第二默认水平变换相对应的水平变换;在确定块的高度超过第二阈值的情况下,确定与第一默认垂直变换相对应的垂直变换;在确定块的高度不超过第二阈值的情况下,确定与第二默认垂直变换相对应的垂直变换;以及在没有指示水平变换和垂直变换的语法元素的情况下生成经编码的视频比特流。
示例60:根据示例58或者59中任何一个的装置,其中,基于比较块的宽度与第一阈值来确定用于该块的水平变换。
示例61:根据示例58至示例60中任何一个的装置,其中,基于比较块的高度与第二阈值来确定用于该块的垂直变换。
示例62:根据示例58至示例61中任何一个的装置,其中,基于比较块的宽度与第一阈值来确定用于该块的水平变换,并且其中,基于比较块的高度与第二阈值来确定用于该块的垂直变换。
示例63:根据示例58至示例62中任何一个的装置,其中,基于块的宽度,限制用于块的变换单元(TU)的水平变换。
示例64:根据示例58至示例63中任何一个的装置,其中,基于块的高度,限制用于块的变换单元(TU)的垂直变换。
示例65:根据示例58至示例64中任何一个的装置,其中,块是变换单元(TU),并且其中,基于块的宽度限制用于该块的水平变换。
示例66:根据示例58至示例65中任何一个的装置,其中,块是变换单元(TU),并且其中,基于块的高度限制用于该块的垂直变换。
示例67:根据示例58至示例66中任何一个的装置,其中,在块的宽度小于第一阈值的情况下,将用于块的水平变换确定为第一类型的水平变换,并且其中,在块的宽度大于第一阈值的情况下,将用于块的水平变换确定为第二类型的水平变换。
示例68:根据示例58至示例67中任何一个的装置,其中,第一类型的水平变换不同于第二类型的水平变换。
示例69:根据示例58至示例68中任何一个的装置,其中,第二类型的水平变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的水平变换是不同于DCT II型变换的变换。
示例70:根据示例58至示例69中任何一个的装置,其中,第一类型的水平变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例71:根据示例58至示例70中任何一个的装置,其中,在块的高度小于第二阈值的情况下,将用于块的垂直变换确定为第一类型的垂直变换,并且其中,在块的高度大于第二阈值的情况下,将用于块的垂直变换确定为第二类型的垂直变换。
示例72:根据示例58至示例71中任何一个的装置,其中,第一类型的垂直变换不同于第二类型的垂直变换。
示例73:根据示例58至示例72中任何一个的装置,其中,第二类型的垂直变换是离散余弦变换(DCT)II型变换,并且其中,第一类型的垂直变换是不同于DCT II型变换的变换。
示例74:根据示例58至示例73中任何一个的装置,其中,第一类型的垂直变换是离散正弦变换(DST)VII型变换或者DCT VIII型变换之一。
示例75:根据示例58至示例74中任何一个的装置,其中,块包括译码单元(CU)或者变换单元(TU)。
示例76:根据示例58至示例75中任何一个的装置,其中,视频编码器被配置为:基于对残差数据应用水平变换和垂直变换,生成包括一个或者多个变换系数的变换块;以及对变换块进行编码。
示例77:根据示例58至示例76中任何一个的装置,其中,该装置包括以下中的至少一种:相机、计算机、移动设备、广播接收器设备或者机顶盒。
在一些实现中,上述示例39-57和/或58-77可以使用存储指令的计算机可读存储介质来实现,该指令在被执行时使得用于解码视频数据的设备的一个或者多个处理器执行一些或者全部各种操作。例如,可以提供一种计算机可读存储介质,该计算机可读存储介质存储指令,该指令在被执行时的情况下用于编码视频数据的设备的一个或者多个处理器:获得视频数据的经编码块;确定块的宽度和块的高度中的至少一个;比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个;基于比较块的宽度与第一阈值和块的高度与第二阈值的至少一个,来确定用于块的水平变换和垂直变换;以及在没有指示水平变换和垂直变换的语法元素的情况下生成经编码视频比特流。
在一些实现中,上述示例39-57和/或58-77可以使用包括用于执行一些或者全部各种操作的一个或者多个部件的装置来实现。例如,可以提供一种用于编码视频数据的装置,该装置包括:用于获得视频数据的经编码块的部件;用于确定块的宽度和块的高度中的至少一个的部件;用于比较块的宽度与第一阈值和块的高度与第二阈值中的至少一个的部件;用于基于比较块的宽度与第一阈值和块的高度与第二阈值的至少一个,来确定用于块的水平变换和垂直变换的部件;以及用于在没有指示水平变换和垂直变换的语法元素的情况下生成经编码视频比特流的部件。

Claims (61)

1.一种解码视频数据的方法,所述方法包括:
获得所述视频数据的块;
使用帧内预测或帧间预测来确定用于所述块的预测块;
确定所述块的宽度和所述块的高度中的至少一个;
比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个;
基于比较所述块的宽度与所述第一阈值和所述块的高度与所述第二阈值中的至少一个来确定要用于所述块的水平变换和垂直变换,在不解码指示所述水平变换和所述垂直变换的语法元素的情况下确定所述水平变换和所述垂直变换,包括:
基于所述比较指示所述块的宽度小于所述第一阈值,将用于所述块的所述水平变换确定为第一类型的水平变换;
基于所述比较指示所述块的宽度大于所述第一阈值,将用于所述块的所述水平变换确定为第二类型的水平变换;
基于所述比较指示所述块的高度小于所述第二阈值,将用于所述块的所述垂直变换确定为第一类型的垂直变换;以及
基于所述比较指示所述块的高度大于所述第二阈值,将用于所述块的所述垂直变换确定为第二类型的垂直变换;
基于所确定的用于所述块的所述水平变换和所述垂直变换来确定残差数据块;以及
基于所述残差数据块和所述预测块对视频块进行解码。
2.根据权利要求1所述的方法,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换。
3.根据权利要求1所述的方法,其中,基于比较所述块的高度与所述第二阈值来确定用于所述块的所述垂直变换。
4.根据权利要求1所述的方法,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换,并且其中,基于比较所述块的所述高度与所述第二阈值来确定用于所述块的所述垂直变换。
5.根据权利要求1所述的方法,其中,所述块是变换单元TU,并且其中,基于所述块的宽度限制用于所述块的所述水平变换。
6.根据权利要求1所述的方法,其中,所述块是变换单元TU,并且其中,基于所述块的高度限制用于所述块的所述垂直变换。
7.根据权利要求1所述的方法,其中,所述第一类型的水平变换不同于所述第二类型的水平变换。
8.根据权利要求1所述的方法,其中,所述第二类型的水平变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的水平变换是不同于DCT II型变换的变换。
9.根据权利要求8所述的方法,其中,所述第一类型的水平变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
10.根据权利要求1所述的方法,其中,所述第一类型的垂直变换不同于所述第二类型的垂直变换。
11.根据权利要求1所述的方法,其中,所述第二类型的垂直变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的垂直变换是不同于DCTII型变换的变换。
12.根据权利要求11所述的方法,其中,所述第一类型的垂直变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
13.根据权利要求1所述的方法,其中,所述块包括译码单元CU或者变换单元TU。
14.根据权利要求1所述的方法,其中,所述第一阈值和所述第二阈值具有相同值。
15.一种用于解码视频数据的装置,包括:
存储器,被配置为存储所述视频数据的至少一个经编码块;以及
视频解码器,包括固定功能电路和可编程电路中的至少一个,所述视频解码器被配置为:
获得所述视频数据的块;
使用帧内预测或帧间预测来确定用于所述块的预测块;
确定所述块的宽度和所述块的高度中的至少一个;
比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个;
基于比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个来确定要用于所述块的水平变换和垂直变换,在不解码指示所述水平变换和所述垂直变换的语法元素的情况下确定所述水平变换和所述垂直变换,其中为了确定要用于所述块的所述水平变换和所述垂直变换,所述视频解码器进一步被配置为:
基于所述比较指示所述块的宽度小于所述第一阈值,将用于所述块的所述水平变换确定为第一类型的水平变换;
基于所述比较指示所述块的宽度大于所述第一阈值,将用于所述块的所述水平变换确定为第二类型的水平变换;
基于所述比较指示所述块的高度小于所述第二阈值,将用于所述块的所述垂直变换确定为第一类型的垂直变换;以及
基于所述比较指示所述块的高度大于所述第二阈值,将用于所述块的所述垂直变换确定为第二类型的垂直变换;以及
所述视频解码器进一步被配置为:
基于所确定的用于所述块的所述水平变换和所述垂直变换来确定残差数据块;以及
基于所述残差数据块和所述预测块对视频块进行解码。
16.根据权利要求15所述的装置,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换。
17.根据权利要求15所述的装置,其中,基于比较所述块的高度与所述第二阈值来确定用于所述块的所述垂直变换。
18.根据权利要求15所述的装置,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换,并且其中,基于比较所述块的高度与所述第二阈值来确定用于所述块的所述垂直变换。
19.根据权利要求15所述的装置,其中,所述块是变换单元TU,并且其中,基于所述块的宽度限制用于所述块的所述水平变换。
20.根据权利要求15所述的装置,其中,所述块是变换单元TU,并且其中,基于所述块的高度限制用于所述块的所述垂直变换。
21.根据权利要求15所述的装置,其中,所述第一类型的水平变换不同于所述第二类型的水平变换。
22.根据权利要求15所述的装置,其中,所述第二类型的水平变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的水平变换是不同于DCTII型变换的变换。
23.根据权利要求22所述的装置,其中,所述第一类型的水平变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
24.根据权利要求15所述的装置,其中,所述第一类型的垂直变换不同于所述第二类型的垂直变换。
25.根据权利要求15所述的装置,其中,所述第二类型的垂直变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的垂直变换是不同于DCTII型变换的变换。
26.根据权利要求25所述的装置,其中,所述第一类型的垂直变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
27.根据权利要求15所述的装置,其中,所述块包括译码单元CU或者变换单元TU。
28.根据权利要求15所述的装置,还包括显示器,所述显示器被配置为显示所述视频数据。
29.根据权利要求15所述的装置,其中,所述装置包括以下中的一个或多个:相机、计算机、移动设备、广播接收机设备或者机顶盒。
30.根据权利要求15所述的装置,其中,所述第一阈值和所述第二阈值具有相同值。
31.一种编码视频数据的方法,所述方法包括:
获得视频数据的块;
确定所述块的宽度和所述块的高度中的至少一个;
比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个;
基于比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个来确定要用于所述块的水平变换和垂直变换,包括:
基于所述比较指示所述块的宽度小于所述第一阈值,将用于所述块的所述水平变换确定为第一类型的水平变换;
基于所述比较指示所述块的宽度大于所述第一阈值,将用于所述块的所述水平变换确定为第二类型的水平变换;
基于所述比较指示所述块的高度小于所述第二阈值,将用于所述块的所述垂直变换确定为第一类型的垂直变换;以及
基于所述比较指示所述块的高度大于所述第二阈值,将用于所述块的所述垂直变换确定为第二类型的垂直变换;以及
在没有指示所述水平变换和所述垂直变换的语法元素的情况下,生成经编码的视频比特流。
32.根据权利要求31所述的方法,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换。
33.根据权利要求31所述的方法,其中,基于比较所述块的高度与所述第二阈值来确定用于所述块的所述垂直变换。
34.根据权利要求31所述的方法,其中,基于比较所述块的所述宽度与所述第一阈值来确定用于所述块的所述水平变换,并且其中,基于比较所述块的所述高度与所述第二阈值来确定用于所述块的所述垂直变换。
35.根据权利要求31所述的方法,其中,所述块是变换单元TU,并且其中,基于所述块的宽度限制用于所述块的所述水平变换。
36.根据权利要求31所述的方法,其中,所述块是变换单元TU,并且其中,基于所述块的高度限制用于所述块的所述垂直变换。
37.根据权利要求31所述的方法,其中,所述第一类型的水平变换不同于所述第二类型的水平变换。
38.根据权利要求31所述的方法,其中,所述第二类型的水平变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的水平变换是不同于DCTII型变换的变换。
39.根据权利要求38所述的方法,其中,所述第一类型的水平变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
40.根据权利要求31所述的方法,其中,所述第一类型的垂直变换不同于所述第二类型的垂直变换。
41.根据权利要求31所述的方法,其中,所述第二类型的垂直变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的垂直变换是不同于DCTII型变换的变换。
42.根据权利要求41所述的方法,其中,所述第一类型的垂直变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
43.根据权利要求31所述的方法,其中,所述块包括译码单元CU或者变换单元TU。
44.根据权利要求31所述的方法,还包括:
基于将所述水平变换和所述垂直变换应用于残差数据来生成包括一个或者多个变换系数的变换块;以及
对所述变换块进行编码。
45.根据权利要求31所述的方法,其中,所述第一阈值和所述第二阈值具有相同值。
46.一种用于编码视频数据的装置,包括:
存储器,被配置为存储所述视频数据的至少一个块;以及
视频编码器,包括固定功能电路和可编程电路中的至少一个,所述视频编码器被配置为:
获得视频数据的块;
确定所述块的宽度和所述块的高度中的至少一个;
比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个;
基于比较所述块的宽度与第一阈值和所述块的高度与第二阈值中的至少一个来确定要用于所述块的水平变换和垂直变换,其中为了确定要用于所述块的所述水平变换和所述垂直变换,所述视频编码器进一步被配置为:
基于所述比较指示所述块的宽度小于所述第一阈值,将用于所述块的所述水平变换确定为第一类型的水平变换;
基于所述比较指示所述块的宽度大于所述第一阈值,将用于所述块的所述水平变换确定为第二类型的水平变换;
基于所述比较指示所述块的高度小于所述第二阈值,将用于所述块的所述垂直变换确定为第一类型的垂直变换;以及
基于所述比较指示所述块的高度大于所述第二阈值,将用于所述块的所述垂直变换确定为第二类型的垂直变换;以及
所述视频编码器进一步被配置为:
在没有指示所述水平变换和所述垂直变换的语法元素的情况下,生成经编码的视频比特流。
47.根据权利要求46所述的装置,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换。
48.根据权利要求46所述的装置,其中,基于比较所述块的高度与所述第二阈值来确定用于所述块的所述垂直变换。
49.根据权利要求46所述的装置,其中,基于比较所述块的宽度与所述第一阈值来确定用于所述块的所述水平变换,并且其中,基于比较所述块的高度与所述第二阈值来确定用于所述块的所述垂直变换。
50.根据权利要求46所述的装置,其中,所述块是变换单元TU,并且其中,基于所述块的宽度限制用于所述块的所述水平变换。
51.根据权利要求46所述的装置,其中,所述块是变换单元TU,并且其中,基于所述块的高度限制用于所述块的所述垂直变换。
52.根据权利要求46所述的装置,其中,所述第一类型的水平变换不同于所述第二类型的水平变换。
53.根据权利要求46所述的装置,其中,所述第二类型的水平变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的水平变换是不同于DCTII型变换的变换。
54.根据权利要求53所述的装置,其中,所述第一类型的水平变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
55.根据权利要求46所述的装置,其中,所述第一类型的垂直变换不同于所述第二类型的垂直变换。
56.根据权利要求46所述的装置,其中,所述第二类型的垂直变换是离散余弦变换DCTII型变换,并且其中,所述第一类型的垂直变换是不同于DCT II型变换的变换。
57.根据权利要求56所述的装置,其中,所述第一类型的垂直变换是离散正弦变换DSTVII型变换或者DCT VIII型变换中的一种。
58.根据权利要求46所述的装置,其中,所述块包括译码单元CU或者变换单元TU。
59.根据权利要求46所述的装置,其中,所述视频编码器进一步被配置为:
基于将所述水平变换和所述垂直变换应用于残差数据来生成包括一个或者多个变换系数的变换块;以及
对所述变换块进行编码。
60.根据权利要求46所述的装置,其中,所述装置包括以下中的一个或多个:相机、计算机、移动设备、广播接收机设备或者机顶盒。
61.根据权利要求46所述的装置,其中,所述第一阈值和所述第二阈值具有相同值。
CN201980060824.9A 2018-09-24 2019-09-20 自适应多重变换译码 Active CN112740681B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862735847P 2018-09-24 2018-09-24
US62/735,847 2018-09-24
US16/576,677 US11218694B2 (en) 2018-09-24 2019-09-19 Adaptive multiple transform coding
US16/576,677 2019-09-19
PCT/US2019/052293 WO2020068599A1 (en) 2018-09-24 2019-09-20 Adaptive multiple transform coding

Publications (2)

Publication Number Publication Date
CN112740681A CN112740681A (zh) 2021-04-30
CN112740681B true CN112740681B (zh) 2023-11-03

Family

ID=69884780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980060824.9A Active CN112740681B (zh) 2018-09-24 2019-09-20 自适应多重变换译码

Country Status (7)

Country Link
US (1) US11218694B2 (zh)
EP (1) EP3857881A1 (zh)
CN (1) CN112740681B (zh)
AR (1) AR116490A1 (zh)
BR (1) BR112021004492A2 (zh)
SG (1) SG11202101540RA (zh)
WO (1) WO2020068599A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10893286B2 (en) * 2018-10-09 2021-01-12 Tencent America LLC Methods and apparatus for low-complexity MTS
WO2020117011A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 저복잡도를 갖는 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
KR20210098967A (ko) * 2019-01-01 2021-08-11 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
US11943479B2 (en) * 2019-01-01 2024-03-26 Lg Electronics Inc. Method for processing video signal by using transform, and apparatus therefor
US10904563B2 (en) * 2019-01-02 2021-01-26 Tencent America LLC Method and apparatus for improved zero out transform
CA3131288A1 (en) * 2019-03-03 2020-09-10 Huawei Technologies Co., Ltd. An encoder, a decoder, and corresponding methods that are used for transform process
CN113596448A (zh) * 2019-03-09 2021-11-02 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、解码端、编码端和***
CN111669582B (zh) * 2019-03-09 2022-05-20 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、编码端、解码端和***
US11539952B2 (en) 2019-03-12 2022-12-27 Qualcomm Incorporated Implicit transform selection in video coding
CN113940076A (zh) * 2019-06-06 2022-01-14 北京字节跳动网络技术有限公司 应用隐式变换选择
JP7302037B2 (ja) * 2019-06-19 2023-07-03 エルジー エレクトロニクス インコーポレイティド 画像コーディングにおいて変換カーネルセットを表す情報のシグナリング
WO2021025528A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US11432014B2 (en) 2019-10-25 2022-08-30 Qualcomm Incorporated Parametric graph-based separable transforms for video coding
WO2021194797A1 (en) * 2020-03-26 2021-09-30 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
WO2021197445A1 (en) * 2020-04-01 2021-10-07 Beijing Bytedance Network Technology Co., Ltd. Constraints on adaptation parameter set syntax elements
WO2021204136A1 (en) 2020-04-07 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Signaling for inter prediction in high level syntax
CN115668917A (zh) 2020-04-09 2023-01-31 抖音视界有限公司 视频编解码中的去块信令通知
WO2021204251A1 (en) 2020-04-10 2021-10-14 Beijing Bytedance Network Technology Co., Ltd. Use of header syntax elements and adaptation parameter set
WO2021209061A1 (en) 2020-04-17 2021-10-21 Beijing Bytedance Network Technology Co., Ltd. Presence of adaptation parameter set units
EP4128775A4 (en) 2020-04-26 2024-03-27 ByteDance Inc. CONDITIONAL SIGNALING OF SYNTAX ELEMENTS OF A VIDEO CODING
US11575937B2 (en) * 2020-07-24 2023-02-07 Tencent America LLC Methods for efficient application of LGT
US11575941B2 (en) * 2021-03-23 2023-02-07 Tencent America LLC Parallel processing in video coding
WO2023028965A1 (en) * 2021-09-02 2023-03-09 Nvidia Corporation Hardware codec accelerators for high-performance video encoding
WO2023118289A1 (en) * 2021-12-21 2023-06-29 Interdigital Vc Holdings France, Sas Transform coding based on depth or motion information
WO2024011074A1 (en) * 2022-07-04 2024-01-11 Bytedance Inc. Method, apparatus, and medium for video processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011102074A1 (ja) * 2010-02-19 2011-08-25 パナソニック株式会社 画像符号化方法、画像符号化装置及び撮像システム
CN102204251A (zh) * 2008-10-03 2011-09-28 高通股份有限公司 使用大于4×4和8×8的变换的视频译码
WO2018101288A1 (ja) * 2016-12-01 2018-06-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、符号化方法、復号装置および復号方法
CN108141597A (zh) * 2015-09-29 2018-06-08 高通股份有限公司 用于具有重组的视频译码的非可分离二次变换

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100723408B1 (ko) * 2004-07-22 2007-05-30 삼성전자주식회사 컬러영상의 변환/역변환 및 양자화/역양자화 방법 및장치와, 이를 이용한 컬러영상의 부호화/복호화 방법 및장치
KR100927733B1 (ko) * 2006-09-20 2009-11-18 한국전자통신연구원 잔여계수의 상관성에 따라 변환기를 선택적으로 이용한부호화/복호화 장치 및 그 방법
KR101483497B1 (ko) * 2008-09-25 2015-01-20 에스케이텔레콤 주식회사 임펄스 신호를 고려한 영상 부호화/복호화 장치 및 방법
KR101441903B1 (ko) * 2008-10-16 2014-09-24 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9571851B2 (en) * 2009-09-25 2017-02-14 Sk Telecom Co., Ltd. Inter prediction method and apparatus using adjacent pixels, and image encoding/decoding method and apparatus using same
WO2011083573A1 (ja) * 2010-01-07 2011-07-14 株式会社 東芝 動画像符号化装置及び動画像復号化装置
KR101956284B1 (ko) * 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
PL231161B1 (pl) * 2011-10-17 2019-01-31 Kt Corp Sposób dekodowania sygnału wideo
KR102061201B1 (ko) * 2012-04-12 2019-12-31 주식회사 골드피크이노베이션즈 블록 정보에 따른 변환 방법 및 이러한 방법을 사용하는 장치
EP2920962A4 (en) * 2012-11-13 2016-07-20 Intel Corp ADAPTIVE TRANSFORMATION ENCODING OF CONTENT FOR NEXT GENERATION VIDEO
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9794569B2 (en) * 2013-01-30 2017-10-17 Intel Corporation Content adaptive partitioning for prediction and coding for next generation video
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
ES2739668B1 (es) * 2016-03-28 2021-12-03 Kt Corp Metodo y aparato para procesar senales de video
US10887626B2 (en) 2016-05-13 2021-01-05 Sharp Kabushiki Kaisha Image decoding device and image encoding device
US10972733B2 (en) * 2016-07-15 2021-04-06 Qualcomm Incorporated Look-up table for enhanced multiple transform
US10750181B2 (en) 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
RU2748907C1 (ru) 2017-12-15 2021-06-01 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ кодирования изображения на основе неразделимого вторичного преобразования и устройство для него
US10645396B2 (en) * 2018-06-04 2020-05-05 Tencent America LLC Method and apparatus for implicit transform splitting
KR102030384B1 (ko) * 2018-06-19 2019-11-08 광운대학교 산학협력단 잔차 계수 부호화/복호화 방법 및 장치
US10687081B2 (en) * 2018-06-29 2020-06-16 Tencent America LLC Method, apparatus and medium for decoding or encoding
KR20240000610A (ko) * 2019-01-15 2024-01-02 로즈데일 다이나믹스 엘엘씨 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
US20200288130A1 (en) * 2019-03-07 2020-09-10 Qualcomm Incorporated Simplification of sub-block transforms in video coding
US10986334B2 (en) * 2019-03-09 2021-04-20 Tencent America LLC Method and apparatus for video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102204251A (zh) * 2008-10-03 2011-09-28 高通股份有限公司 使用大于4×4和8×8的变换的视频译码
WO2011102074A1 (ja) * 2010-02-19 2011-08-25 パナソニック株式会社 画像符号化方法、画像符号化装置及び撮像システム
CN108141597A (zh) * 2015-09-29 2018-06-08 高通股份有限公司 用于具有重组的视频译码的非可分离二次变换
WO2018101288A1 (ja) * 2016-12-01 2018-06-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、符号化方法、復号装置および復号方法

Also Published As

Publication number Publication date
CN112740681A (zh) 2021-04-30
US11218694B2 (en) 2022-01-04
US20200099924A1 (en) 2020-03-26
AR116490A1 (es) 2021-05-12
EP3857881A1 (en) 2021-08-04
WO2020068599A1 (en) 2020-04-02
BR112021004492A2 (pt) 2021-05-25
SG11202101540RA (en) 2021-04-29

Similar Documents

Publication Publication Date Title
CN112740681B (zh) 自适应多重变换译码
CN112823517B (zh) 基于历史的运动矢量预测子的改进
CN112789863B (zh) 帧内预测方法及设备
CN107431820B (zh) 视频译码中运动向量推导
US10178403B2 (en) Reference picture list construction in intra block copy mode
CN113711595B (zh) 针对帧内预测模式推导的基于块的量化残差域脉冲编解码调制分配
US20140198846A1 (en) Device and method for scalable coding of video information
JP2018526881A (ja) ビデオコーディングにおける双予測を制約する方法およびシステム
US9584808B2 (en) Device and method for scalable coding of video information
CN114982246B (zh) 环路滤波器的自适应舍入
JP6526574B2 (ja) レイヤ間シンタックス予測制御
TW202042552A (zh) 用於照明補償之區塊大小限制
CN112789858A (zh) 帧内预测方法及设备
CN113748675A (zh) 使用改进的基于矩阵的帧内预测编解码模式的视频编解码方法和装置
KR20230150284A (ko) 효율적인 비디오 인코더 아키텍처
TW202031052A (zh) 用於照明補償模式之刪剪
CN111758255A (zh) 用于视频编解码的位置相关空间变化变换
KR20230123949A (ko) 인핸스드 보간 필터들을 사용한 인트라 예측
KR20240087733A (ko) 모션 벡터 (mv) 후보 재정렬
KR20240090151A (ko) 크로스 컴포넌트 샘플 적응적 오프셋(ccsao) 필터를 위한 에지 오프셋
KR20240087746A (ko) 그래디언트의 히스토그램 생성
CN118216139A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40048088

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant