CN113196780A - 使用多变换核处理视频信号的方法和设备 - Google Patents

使用多变换核处理视频信号的方法和设备 Download PDF

Info

Publication number
CN113196780A
CN113196780A CN202080007132.0A CN202080007132A CN113196780A CN 113196780 A CN113196780 A CN 113196780A CN 202080007132 A CN202080007132 A CN 202080007132A CN 113196780 A CN113196780 A CN 113196780A
Authority
CN
China
Prior art keywords
transform
block
current
flag
isp
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.)
Granted
Application number
CN202080007132.0A
Other languages
English (en)
Other versions
CN113196780B (zh
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.)
Humax Co Ltd
Original Assignee
Humax Co Ltd
Wilus Institute of Standards and Technology 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 Humax Co Ltd, Wilus Institute of Standards and Technology Inc filed Critical Humax Co Ltd
Publication of CN113196780A publication Critical patent/CN113196780A/zh
Application granted granted Critical
Publication of CN113196780B publication Critical patent/CN113196780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/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/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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

公开了一种通过编码或解码视频信号来处理视频信号的方法和设备。具体地,用于处理视频信号的方法包括以下步骤:从视频信号中获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;当ISP模式被应用于当前块时,从视频信号中获得指示当前块的划分方向的ISP划分标志;基于划分方向,将当前块划分为多个变换块;通过对变换块的每一个执行逆变换来生成变换块的残差块;以及基于残差块恢复当前块。

Description

使用多变换核处理视频信号的方法和设备
技术领域
本公开涉及一种用于处理视频信号的方法和装置,并且更具体地,涉及一种用于对视频信号进行编码和解码的视频信号处理方法和装置。
背景技术
压缩编译指代用于通过通信线路发送数字化信息或以适合于存储介质的形式存储信息的一系列信号处理技术。压缩编码的对象包括诸如语音、视频和文本的对象,并且特别地,用于对图像执行压缩编码的技术被称为视频压缩。考虑到空间相关性、时间相关性和随机相关性,通过去除过多的信息来执行对视频信号的压缩编译。然而,随着各种媒体和数据传输媒体的最新发展,需要更有效的视频信号处理方法和装置。
发明内容
技术问题
本公开的目的是提高视频信号的编译效率。具体地,本公开的目的是使用适合于变换块的变换核来提高编译效率。
技术方案
为了解决上述问题,本公开提供如下的视频信号处理设备和视频信号处理方法。
根据本公开的实施例,提供一种用于处理视频信号的方法,其包括以下步骤:从视频信号中获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;如果ISP模式被应用于当前块,则从视频信号中获得指示当前块的划分方向的ISP划分标志;基于划分方向,将当前块划分为多个变换块;通过对变换块的每一个执行逆变换来生成变换块的残差块;以及基于残差块恢复当前块,其中,生成残差块的步骤可以包括以下步骤:与当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在当前变换块的水平方向上应用的水平变换类型;与当前块的帧内预测模式无关地,基于当前变换块的高度,从多个预定义的变换类型当中确定在当前变换块的垂直方向上应用的垂直变换类型;以及使用水平变换类型和垂直变换类型,对当前变换块执行逆变换。
作为实施例,确定水平变换类型的步骤可以包括以下步骤:如果当前变换块的宽度小于第一阈值或大于第二阈值,则确定水平变换类型为第一变换类型;以及如果当前变换块的宽度大于或等于第一阈值并且小于或等于第二阈值,则确定水平变换类型为第二变换类型。
作为实施例,确定垂直变换类型的步骤可以包括以下步骤:如果当前变换块的高度小于第一阈值或大于第二阈值,则确定垂直变换类型为第一变换类型;以及如果当前变换块的高度大于或等于第一阈值并且小于或等于第二阈值,则确定垂直变换类型为第二变换类型。
作为实施例,可以将第一变换类型定义为基于离散余弦变换类型-2(DCT-2)的变换核,并且可以将第二变换类型定义为基于离散正弦变换类型-7(DST-7)的变换核。
作为实施例,可以基于亮度分量的变换块的最小大小,定义第一阈值。
作为实施例,可以基于ISP模式中使用的第二变换类型的最大大小,定义第二阈值。
作为实施例,可以将第一阈值定义为4,并且可以将第二阈值定义为16。
作为实施例,与当前变换块的高度无关地,可以基于当前变换块的宽度,确定水平变换类型,以及与当前变换块的宽度无关地,可以基于当前变换块的高度,确定垂直变换类型。
根据本公开的实施例,提供一种用于处理视频信号的设备,其包括处理器,其中,该处理器被配置为:从视频信号中获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;如果ISP模式被应用于当前块,则从视频信号中获得指示当前块的划分方向的ISP划分标志;基于划分方向,将当前块划分为多个变换块;通过对变换块的每一个执行逆变换来生成变换块的残差块;以及基于残差块重构当前块,其中,处理器被配置为:与当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在当前变换块的水平方向上应用的水平变换类型;与当前块的帧内预测模式无关地,基于当前变换块的高度,从多个预定义的变换类型当中确定在当前变换块的垂直方向上应用的垂直变换类型;以及使用水平变换类型和垂直变换类型,对当前变换块执行逆变换,由此生成残差块。
作为实施例,处理器可以被配置为:如果当前变换块的宽度小于第一阈值或大于第二阈值,则确定水平变换类型为第一变换类型;以及如果当前变换块的宽度大于或等于第一阈值并且小于或等于第二阈值,则确定水平变换类型为第二变换类型。
作为实施例,处理器可以被配置为:如果当前变换块的高度小于第一阈值或大于第二阈值,则确定垂直变换类型为第一变换类型;以及如果当前变换块的高度大于或等于第一阈值并且小于或等于第二阈值,则确定垂直变换类型为第二变换类型。
作为实施例,可以将第一变换类型定义为基于离散余弦变换类型-2(DCT-2)的变换核,并且将第二变换类型定义为基于离散正弦变换类型-7(DST-7)的变换核。
作为实施例,可以基于亮度分量的最小变换块大小,定义第一阈值。
作为实施例,可以基于ISP模式中使用的第二变换类型的最大大小,定义第二阈值。
作为实施例,可以将第一阈值定义为4,并且可以将第二阈值定义为16。
作为实施例,与当前变换块的高度无关,可以基于当前变换块的宽度,确定水平变换类型,以及与当前变换块的宽度无关地,可以基于当前变换块的高度,确定垂直变换类型。
根据本公开的实施例,提供一种用于处理视频信号的方法,其包括以下步骤:编码指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;如果ISP模式被应用于当前块,则编码指示当前块的划分方向的ISP划分标志;基于划分方向,将当前块划分为多个块;通过对所划分的块的残差信号执行变换来生成所划分的块的变换块;以及通过编码变换块来生成比特流,其中,生成变换块的步骤可以包括以下步骤:与当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在当前变换块的水平方向上应用的水平变换类型;与当前块的帧内预测模式无关地,基于当前变换块的高度,从多个预定义的变换类型当中确定在当前变换块的垂直方向上应用的垂直变换类型;以及使用水平变换类型和垂直变换类型,对当前变换块执行变换。
根据本公开的实施例,提供一种非暂时性计算机可执行介质,其存储被配置为由计算设备的一个或多个处理器执行的计算机可执行组件,其中,计算机可执行组件可以被配置为:获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;如果ISP模式被应用于当前块,则获得指示当前块的划分方向的ISP划分标志;基于划分方向,将当前块划分为多个变换块;通过对变换块的每一个执行逆变换来生成变换块的残差块;以及基于残差块重构当前块,其中,计算机可执行组件可以被配置为:与当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在当前变换块的水平方向上应用的水平变换类型;与当前块的帧内预测模式无关地,基于当前变换块的高度,从多个预定义的变换类型当中确定在当前变换块的垂直方向上应用的垂直变换类型;以及使用水平变换类型和垂直变换类型,对当前变换块执行逆变换,由此生成残差块。
根据本公开的实施例,提供了一种用于处理视频信号的方法,其包括以下步骤:获得指示在当前序列中是否仅能够使用预定义的第一变换核的第一语法元素;如果不是在当前序列中仅能够使用第一变换核的情况,则获得指示在当前序列中是否能够使用多变换选择(MTS)模式的第二语法元素,MTS模式指示用于使用多个变换核当中的特定变换核执行变换的模式;基于第一语法元素和第二语法元素,从多个变换核当中确定在当前块的水平和垂直方向上应用的变换核;以及通过使用所确定的变换核,对当前块执行逆变换来获得当前块的残差信号。
作为实施例,在确定变换核的步骤中,如果第一语法元素指示在当前序列中仅能够使用第一变换核,则可以将第一变换核确定为在水平和垂直方向上应用的变换核。
作为实施例,在确定变换核的步骤中,如果第二语法元素指示在当前序列中能够使用MTS模式,则可以获得MTS索引,该MTS索引指示多个变换核当中的在当前块的水平和垂直方向上应用的变换核的组合。
作为实施例,确定变换核的步骤可以包括以下步骤:如果第二语法元素指示在当前序列中能够使用MTS模式,则将指示在当前块中是否能够使用隐式MTS模式的变量推断为0,其中,隐式MTS模式可以表示用于基于变换块的宽度和高度,在多个变换核当中确定在当前块的水平和垂直方向上应用的变换核的组合的模式。
作为实施例,确定变换核的步骤可以包括以下步骤:如果第二语法元素指示在当前序列中不能使用MTS模式,则确定在当前块中是否能够使用隐式MTS模式,其中,隐式MTS模式可以表示用于基于变换块的宽度和高度,在多个变换核当中确定在当前块的水平和垂直方向上应用的变换核的组合的模式。
作为实施例,第一变换核可以被定义为基于DCT-2的变换核。
根据本公开的实施例,提供了一种用于处理视频信号的设备,其包括处理器,其中,该处理器可以被配置为:获得指示在当前序列中是否仅能够使用预定义的第一变换核的第一语法元素;如果不是在当前序列中仅能够使用第一变换核的情况,则获得指示在当前序列中是否能够使用多变换选择(MTS)模式的第二语法元素,MTS模式指示用于使用多个变换核当中的特定变换核执行变换的模式;基于第一语法元素和第二语法元素,从多个变换核当中确定在当前块的水平和垂直方向上应用的变换核;以及通过使用所确定的变换核,对当前块执行逆变换来获得当前块的残差信号。
作为实施例,如果第一语法元素指示在当前序列中仅能够使用第一变换核,则处理器可以将第一变换核确定为在水平和垂直方向上应用的变换核。
作为实施例,如果第二语法元素指示在当前序列中能够使用MTS模式,则处理器可以获得MTS索引,该MTS索引指示多个变换核当中的在当前块的水平和垂直方向上应用的变换核的组合。
作为实施例,如果第二语法元素指示能够在当前序列中使用MTS模式,则处理器可以将指示在当前块中是否能够使用隐式MTS模式的变量推断为0,其中,隐式MTS模式可以表示用于基于变换块的宽度和高度,在多个变换核当中确定在当前块的水平和垂直方向上应用的变换核的组合的模式。
作为实施例,如果第二语法元素指示在当前序列中不能使用MTS模式,则处理器可以确定在当前块中是否能够使用隐式MTS模式,其中,隐式MTS模式可以表示用于基于变换块的宽度和高度,在多个变换核当中确定在当前块的水平和垂直方向上应用的变换核的组合的模式。
作为实施例,第一变换核可以被定义为基于DCT-2的变换核。
根据本公开的实施例,提供了一种用于处理视频信号的方法,其包括以下步骤:编码指示在当前序列中是否仅能够使用预定义的第一变换核的第一语法元素;如果不是在当前序列中仅能够使用第一变换核的情况,则编码指示在当前序列中是否能够使用多变换选择(MTS)模式的第二语法元素,MTS模式指示用于使用多个变换核当中的特定变换核执行变换的模式;基于第一语法元素和第二语法元素,从多个变换核当中确定在当前块的水平和垂直方向上应用的变换核;以及通过使用所确定的变换核,对当前块的残差信号执行变换来获得当前块的变换块。
根据本公开的实施例,提供了一种用于处理视频信号的方法,其包括以下步骤:如果当前块处于帧内预测模式,则识别帧内子划分(ISP)模式是否被应用于当前块,ISP模式指示用于将当前块划分为多个矩形变换块的模式;如果当前块处于帧间预测模式,则识别子块变换(SBT)模式是否被应用于当前块,SBT指示其中仅对从当前块划分的多个子块当中的一些子块执行变换的模式;如果ISP模式不被应用于当前块,并且如果SBT模式不被应用于当前块,则基于当前块的大小信息和最大变换大小,对当前块执行变换树划分;以及通过对基于变换树划分确定的变换单元执行变换,生成变换单元的残差信号。
作为实施例,可以通过对当前块递归地执行水平划分和垂直划分中的至少一个直到当前块的宽度和高度小于或等于最大变换大小来进行变换树划分。
作为实施例,执行变换树划分的步骤可以进一步包括以下步骤:如果SBT模式被应用于当前块,则基于当前块的子块划分信息,对当前块执行变换树划分。
作为实施例,执行变换树划分的步骤可以进一步包括以下步骤:如果ISP模式被应用于当前块,则基于当前块的ISP划分类型,对当前块执行变换树划分。
根据本公开的实施例,提供了一种用于处理视频信号的设备,包括处理器,其中,该处理器可以被配置为:如果当前块处于帧内预测模式,则识别帧内子划分(ISP)模式是否被应用于当前块,ISP模式指示用于将当前块划分为多个矩形变换块的模式;如果当前块处于帧间预测模式,则识别子块变换(SBT)模式是否被应用于当前块,SBT指示其中仅对从当前块划分的多个子块当中的一些子块执行变换的模式;如果ISP模式不被应用于当前块,并且SBT模式不被应用于当前块,则基于当前块的大小信息和最大变换大小,对当前块执行变换树划分;以及通过对基于变换树划分确定的变换单元执行变换,生成变换单元的残差信号。
作为实施例,可以通过对当前块递归地执行水平划分和垂直划分中的至少一个直到当前块的宽度和高度小于或等于最大变换大小来进行变换树划分。
作为实施例,如果SBT模式被应用于当前块,则处理器可以基于当前块的子块划分信息,对当前块执行变换树划分。
作为实施例,如果ISP模式被应用于当前块,则处理器可以基于当前块的ISP划分类型,对当前块执行变换树划分。
根据本公开的实施例,提供了一种用于处理视频信号的方法,其包括以下步骤:如果当前块处于帧内预测模式,则确定帧内子划分(ISP)模式是否被应用于当前块,ISP模式指示用于将当前块划分为多个矩形变换块的模式;如果当前块处于帧间预测模式,则确定子块变换(SBT)模式是否被应用于当前块,SBT指示其中仅对从当前块划分的多个子块当中的一些子块执行变换的模式;如果ISP模式不被应用于当前块,并且SBT模式不被应用于当前块,则基于当前块的大小信息和最大变换大小,对当前块执行变换树划分;以及通过对基于变换树划分确定的变换单元执行变换,生成变换单元的残差信号。
有益效果
根据本公开的实施例,可以提高视频信号的编译效率。另外,根据本公开的实施例,可以选择适合于当前变换块的变换核。
附图说明
图1是根据本发明的实施例的视频信号编码装置的示意性框图。
图2是根据本发明的实施例的视频信号解码装置的示意性框图。
图3示出在图片中编译树单元被划分为编译单元的实施例。
图4示出用于发信号告知四叉树和多类型树的划分的方法的实施例。
图5和图6根据本发明的实施例,更详细地图示帧内预测方法。
图7图示根据本发明的实施例的帧间预测方法。
图8是具体地图示用于通过编码器变换残差信号的方法的图。
图9是具体地图示用于通过编码器和解码器对变换系数进行逆变换来获得残差信号的方法的图。
图10是示出与各个变换类型相对应的基函数的图。
图11是示出用于变换类型DCT-II、DCT-V、DCT-VIII、DST-I和DST-VII的每个索引的信号的大小的图。
图12是示出用于变换类型DST-IV、DCT-IV、DST-VII和DCT-VIII的每个索引的信号的大小的图。
图13是图示根据当前块的预测模式来配置候选变换集的方法的图。
图14示出了根据集索引确定的水平变换核和垂直变换核。
图15是图示根据本发明的实施例的获得与变换相关的信息的方法的图。
图16是图示根据本发明的实施例的基于块的形状选择变换核的方法的图。
图17是图示根据本发明的实施例的发信号告知和确定变换核的方法的图。
图18示出根据本发明的实施例的用于获得与多变换选择和变换跳过有关的信息的语法结构,以及图19是图示根据本发明的实施例的与多变换选择和变换跳过有关的信息的图。
图20是图示根据本发明的实施例的子块变换(SBT)方法的图。
图21是图示根据本发明的实施例的以帧内子划分编码模式划分块的方法的图。
图22是图示根据本发明的实施例,在应用帧内子划分模式的情况下,选择应用于划分的变换单元的变换核的方法的图。
图23和24是图示根据本发明的实施例,在应用SBT的情况下,获得关于变换单元语法结构中是否存在非零变换系数的信息的过程的图。
图25是图示根据本发明的实施例的用于处理与编译单元有关的语法元素的编译单元语法结构的图。
图26是图示根据本发明的实施例的变换树语法结构的图。
图27是图示根据本发明的另一实施例的变换树语法结构的图。
图28是图示根据本发明的另一实施例的变换树语法结构的图。
图29是示出根据本发明的实施例的视频信号处理方法的流程图。
具体实施方式
考虑到本公开中的功能,本说明书中使用的术语可以是当前广泛使用的通用术语,但是可以根据本领域的技术人员的意图、习俗或新技术的出现而改变。另外,在某些情况下,可能存在申请人任意选择的术语,并且在这种情况下,其含义在本公开的相应描述部分中进行了描述。因此,应基于整个说明书中的术语和内容的实质含义来解释本说明书中使用的术语。
在本说明书中,一些术语可以解释如下。在一些情况下,编译可以解释为编码或解码。在本说明书中,通过执行视频信号的编码(编译)来生成视频信号比特流的装置被称为编码装置或编码器,并且执行视频信号比特流的解码(解码)以重构视频信号的装置被称为解码装置或解码器。另外,在本说明书中,视频信号处理装置被用作包括编码器和解码器两者的概念的术语。信息是包括所有值、参数、系数、元素等的术语。在一些情况下,含义被不同地解释,因此本公开不限于此。“单元”被用作指代图像处理的基本单位或图片的特定位置的含义,并且指代包括亮度分量和色度分量两者的图像区域。另外,“块”指代包括亮度分量和色度分量(即,Cb和Cr)当中的特定分量的图像区域。然而,取决于实施例,诸如“单元”、“块”、“划分(partition)”和“区域”的术语可以互换使用。另外,在本说明书中,单元可以用作包括编译单元、预测单元和变换单元的全部的概念。图片指示场或帧,并且根据实施例,这些术语可以互换使用。
图1是根据本发明的实施例的视频信号编码装置的示意性框图。参考图1,本公开的编码装置100包括变换单元110、量化单元115、逆量化单元120、逆变换单元125、滤波单元130、预测单元150和熵编译单元160。
变换单元110通过对残差信号进行变换来获得变换系数的值,该残差信号是输入的视频信号与由预测单元150生成的预测信号之间的差。例如,可以使用离散余弦变换(DCT)、离散正弦变换(DST)或小波变换。DCT和DST通过将输入图片信号分割成多个块来执行变换。在变换中,编译效率可以根据变换区域中的值的分布和特性而变化。量化单元115对从变换单元110输出的变换系数值的值进行量化。
为了改进编译效率,代替照原样对图片信号进行编译的方法,使用一种方法,其使用通过预测单元150已经编码的区域来预测图片,并通过将在原始图片和预测的图片之间的残差值添加到预测的图片来获得重构图片。为了防止编码器和解码器中的不匹配,当在编码器中执行预测时,应该使用可以在解码器中使用的信息。为此,编码器再次执行重构编码的当前块的处理。逆量化单元120对变换系数的值进行逆量化,并且逆变换单元125使用逆量化的变换系数值来重构残差值。同时,滤波单元130执行滤波操作以改善重构图片的质量并改善编译效率。例如,可以包括去块滤波器、样本自适应偏移(SAO)和自适应环路滤波器。滤波后的图片被输出或存储在解码图片缓冲器(DPB)156中,以用作参考图片。
为了提高编译效率,不原样编译图片信号,而是通过使用已编译的区域并且将原始图片和预测图片之间的残差值添加到预测图片来经由预测单元150预测图片,从而获得重构图片的方法。帧内预测单元152在当前图片内执行帧内预测,并且帧间预测单元154通过使用存储在解码图片缓冲器156中的参考图片来预测当前图片。帧内预测单元152从当前图片中的重构区域执行帧内预测,并且将帧内编译信息传送到熵编译单元160。帧间预测单元154可以包括运动估计单元154a和运动补偿单元154b。运动估计单元154a通过参考特定的重构区域来获得当前区域的运动向量值。运动估计单元154a将参考区域的位置信息(参考帧、运动向量等)传递到熵编译单元160,以使得将该位置信息包括在比特流中。运动补偿单元154b通过使用从运动估计单元154a传递的运动向量值来执行帧间运动补偿。
预测单元150包括帧内预测单元152和帧间预测单元154。帧内预测单元152在当前图片内执行帧内预测,并且帧间预测单元154执行帧间预测以通过使用存储在DBP 156中的参考图片来预测当前图片。帧内预测单元152根据当前图片中的重构样本来执行帧内预测,并且将帧内编码信息传送到熵编译单元160。帧内编码信息可以包括帧内预测模式、最可能模式(MPM)标记和MPM索引中的至少一种。帧内编码信息可以包括关于参考样本的信息。帧间预测单元154可以包括运动估计单元154a和运动补偿单元154b。运动估计单元154a通过参考重构参考图片的特定区域来获得当前区域的运动向量值。运动估计单元154a将用于参考区域的运动信息集(参考图片索引、运动向量信息等)传送到熵编译单元160。运动补偿单元154b通过使用从运动估计单元154a传递的运动向量值来执行运动补偿。帧间预测单元154将包括关于参考区域的运动信息的帧间编码信息传送到熵编译单元160。
根据另一实施例,预测单元150可以包括帧内块复制(BC)预测单元(未示出)。帧内BC预测单元基于当前图片中的重构样本来执行帧内BC预测,并将帧内BC编码信息传送到熵编译单元160。帧内BC预测单元参考当前图片中的特定区域,获得指示用于预测当前区域的参考区域的块向量值。帧内BC预测单元可以使用所获得的块向量值来执行帧内BC预测。帧内BC预测单元将帧内BC编码信息传送到熵编译单元160。帧内BC编码信息可以包括块向量信息。
当执行上述图片预测时,变换单元110变换在原始图片和预测图片之间的残差值以获得变换系数值。在这种情况下,可以以图片内的特定块为单位执行变换,并且可以在预设范围内改变特定块的大小。量化单元115对在变换单元110中生成的变换系数值进行量化,并将其发送到熵编译单元160。
熵编译单元160对指示量化的变换系数的信息、帧内编码信息、帧间编码信息等进行熵编译,以生成视频信号比特流。在熵编译单元160中,可以使用可变长度编译(VLC)方案、算术编译方案等。可变长度编译(VLC)方案包括将输入符号变换成连续的码字,并且码字的长度可以是可变的。例如,频繁出现的符号由短码字表示,而由长码字表示很少出现的符号。基于上下文的自适应可变长度编译(CAVLC)方案可以被用作可变长度编译方案。算术编译可以将连续数据符号变换成单个质数,其中,算术编译可以获得表示每个符号所需的最佳比特。基于上下文的自适应二进制算术编译(CABAC)可以被用作算术编译。例如,熵编译单元160可以二值化指示量化的变换系数的信息。熵编译单元160可以通过算术编译二进制信息来生成比特流。
使用网络抽象层(NAL)单元作为基本单位来封装所生成的比特流。NAL单元包括整数个编译的编译树单元。为了在视频解码器中对比特流进行解码,首先,必须将比特流分离成NAL单元,并且然后必须对每个分离的NAL单元进行解码。同时,可以通过诸如图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)等等的高层集合的原始字节序列有效载荷(RBSP)来发送对视频信号比特流进行解码所需的信息。
同时,图1的框图示出根据本发明的实施例的编码装置100,并且分开显示的块在逻辑上区分并示出编码装置100的元件。因此,取决于设备的设计上述编码装置100的元件可以被安装为一个芯片或多个芯片。根据实施例,上述编码装置100的每个元件的操作可以由处理器(未示出)执行。
图2是根据本发明的实施例的视频信号解码装置200的示意性框图。参考图2,本发明的解码装置200包括熵解码单元210、逆量化单元220、逆变换单元225、滤波单元230和预测单元250。
熵解码单元210对视频信号比特流进行熵解码,以提取每个区域的变换系数信息、帧内编码信息、帧间编码信息等。例如,熵解码单元210可以从视频信号比特流中获得用于特定区域的变换系数信息的二值化代码。熵解码单元210通过对二进制码进行逆二进制化来获得量化的变换系数。逆量化单元220对量化的变换系数进行逆量化,并且逆变换单元225通过使用逆量化的变换系数来重构残差值。视频信号处理设备200通过将由逆变换单元225获得的残差值与由预测单元250获得的预测值相加来重构原始像素值。
同时,滤波单元230对图片执行滤波以改善图像质量。这可以包括用于减少块失真的去块滤波器和/或用于去除整个图片的失真的自适应环路滤波器。滤波后的图片被输出或存储在DPB 256中,以用作下一个图片的参考图片。
预测单元250包括帧内预测单元252和帧间预测单元254。预测单元250通过使用通过上述熵解码单元210解码的编码类型、每个区域的变换系数和内/间编码信息来生成预测图片。为了重构其中执行解码的当前块,可以使用当前图片或包括当前块的其他图片的解码区域。在重构中,仅将当前图片,即,仅执行帧内预测或者帧内BC预测的图片(或图块/切片)称为帧帧内图片或I图片(或图块/切片),并且将能够执行所有帧内预测、帧间预测以及帧内BC预测的图片(或图块/切片)称为帧间图片(或图块/切片)。为了预测帧间图片(或图块/切片)当中的每个块的样本值,使用最多一个运动向量和参考图片索引的图片(或者图块/切片)被称为预测图片或P图片(或图块/切片),并且使用最多两个运动向量和参考图片索引的图片(或图块/切片)称为双向预测图片或B图片(或图块/切片)。换句话说,P图片(或图块/切片)使用最多一个运动信息集来预测每个块,并且B图片(或图块/切片)使用最多两个运动信息集来预测每个块。这里,运动信息集包括一个或多个运动向量和一个参考图片索引。
帧内预测单元252使用内编码信息和当前图片中的重构的样本来生成预测块。如上所述,内编码信息可以包括帧内预测模式、最可能模式(MPM)标记和MPM索引中的至少一种。帧内预测单元252通过使用位于当前块的左边和/或上边的重构的样本作为参考样本来预测当前块的样本值。在本公开中,重构的样本、参考样本和当前块的样本可以表示像素。而且,样本值可以表示像素值。
根据实施例,参考样本可以是当前块的相邻块中包括的样本。例如,参考样本可以是与当前块的左边界相邻的样本和/或样本可以是与上边界相邻的样本。而且,参考样本可以是当前块的相邻块的样本当中的位于距当前块的左边界预定距离内的线上的样本和/或位于距当前块的上边界预定距离内的线上的样本。在这种情况下,当前块的相邻块可以包括左(L)块、上(a)块、左下(BL)块、右上(AR)块或左上(AL)块。
帧间预测单元254使用存储在DPB 256中的参考图片和帧间编码信息来生成预测块。帧间编译信息可以包括用于参考块的当前块的运动信息集(参考图片索引、运动向量信息等)。帧间预测可以包括L0预测、L1预测和双向预测。L0预测意指使用L0图片列表中包括的一个参考图片进行预测,而L1预测意指使用L1图片列表中包括的一个参考图片进行预测。为此,可能需要一个运动信息集(例如,运动向量和参考图片索引)。在双向预测方法中,可以使用最多两个参考区域,并且两个参考区域可以存在于同一参考图片中或可以存在于不同图片中。即,在双向预测方法中,可以使用最多两个的运动信息集(例如,运动向量和参考图片索引),并且两个运动向量可以对应于相同的参考图片索引或不同的参考图片索引。在这种情况下,在时间方面,可以在当前图片之前和之后显示(或输出)参考图片。根据实施例,在双向预测方案中使用的两个参考区域可以是分别从图片列表L0和图片列表L1中选择的区域。
帧间预测单元254可以使用运动向量和参考图片索引来获得当前块的参考块。参考块在与参考图片索引相对应的参考图片中。而且,由运动向量指定的块的样本值或其内插值可以用作当前块的预测器。对于具有子像素(sub-pel)单位像素准确度的运动预测,例如,可以使用用于亮度信号的8抽头内插滤波器和用于色度信号的4抽头内插滤波器。然而,以子像素为单位的用于运动预测的内插滤波器不限于此。以这种方式,帧间预测单元254执行运动补偿以根据先前使用运动信息重构的运动图片来预测当前单元的纹理。在这样的情况下,帧间预测单元可以使用运动信息集。
根据另一实施例,预测单元250可以包括帧内BC预测单元(未示出)。帧内BC预测单元可以通过参考将重构样本包括在当前图片中的特定区域来重构当前区域。帧内BC预测单元从熵解码单元210获得当前区域的帧内BC编码信息。帧内BC预测单元获得指示当前图片中的特定区域的当前区域的块向量值。帧内BC预测单元可以通过使用所获得的块向量值来执行帧内BC预测。帧内BC编码信息可以包括块向量信息。
通过将从帧内预测单元252或帧间预测单元254输出的预测值与从逆变换单元225输出的残差值相加生成重构的视频图片。即,视频信号解码装置200使用由预测单元250生成的预测块和从逆变换单元225获得的残差来重构当前块。
同时,图2的框图图示根据本发明的实施例的解码装置200,并且分开显示的块在逻辑上区分并示出解码装置200的元件。因此,取决于设备的设计上述解码装置200的元件可以被安装为一个芯片或多个芯片。根据实施例,上述解码装置200的每个元件的操作可以由处理器(未示出)执行。
图3图示其中在图片中编译树单元(CTU)被分割成编译单元(CU)的实施例。在视频信号的编码过程中,可以将图片分割成一系列编译树单元(CTU)。编译树单元由亮度样本的N×N块和与其相对应的色度样本的两个块组成。编译树单元可以被分割成多个编译单元。编译树单元可以不被分割,并且可以是叶节点。在这种情况下,编译树单元本身可以是编译单元。编译单元指代在上述视频信号的处理过程中,即,帧内/帧间预测、变换、量化和/或熵编译中用于处理图片的基本单元。一个图片中编译单元的大小和形状可能不恒定。编译单元可以具有正方形或矩形形状。矩形编译单元(或矩形块)包括垂直编译单元(或垂直块)和水平编译单元(或水平块)。在本说明书中,垂直块是其高度大于宽度的块,并且水平块是其宽度大于高度的块。此外,在本说明书中,非正方形块可以指代矩形块,但是本公开不限于此。
参考图3,首先将编译树单元分割成四叉树(QT)结构。即,在四叉树结构中具有2NX2N大小的一个节点可以被分割成具有NXN大小的四个节点。在本说明书中,四叉树也可以称为四元树。可以递归地执行四叉树分割,并非所有节点都需要以相同的深度分割。
同时,上述四叉树的叶节点可以进一步被分割成多类型树(MTT)结构。根据本发明的实施例,在多类型树结构中,一个节点可以被分割成水平或垂直划分的二叉或三叉树结构。即,在多类型树结构中,存在四个分割结构,诸如垂直二元分割、水平二元分割、垂直三元分割和水平三元分割。根据本发明的实施例,在每个树结构中,节点的宽度和高度都可以具有2的幂。例如,在二叉树(BT)结构中,2NX2N大小的节点可以通过垂直二元分割被分割成两个NX2N节点,并通过水平二元分割将其分割成两个2NXN节点。另外,在三叉树(TT)结构中,将2NX2N大小的节点通过垂直三元分割被分割成(N/2)X2N、NX2N和(N/2)X2N节点,并通过水平二元分割被分割成2NX(N/2)、2NXN和2NX(N/2)节点。可以递归地执行此多类型树分割。
多类型树的叶节点可以是编译单元。如果未指示用于编译单元的分割或针对最大变换长度该编译单元不大,则无需进一步划分就将编译单元用作预测和变换的单元。另一方面,可以通过诸如PPS、SPS、VPS等的高层集合的RBSP来预定义或发送上述四叉树和多类型树中的以下参数中的至少一个。1)CTU大小:四叉树的根节点大小,2)最小QT大小MinQtSize:允许的最小QT叶节点大小,3)最大BT大小MaxBtSize:允许的最大BT根节点大小,4)最大TT大小MaxTtSize:允许的最大TT根节点大小,5)最大MTT深度MaxMttDepth:从QT的叶节点分割而来的MTT的最大允许深度,6)最小BT大小MinBtSize:允许的最小BT叶节点大小,7)最小TT大小MinTtSize:允许的最小TT叶节点大小。
图4示出用于发信号告知四叉树和多类型树的分割的方法的实施例。可以使用预设标记来发信号告知上述四叉树和多类型树的分割。参考图4,指示是否分割四叉树节点的标记“qt_split_flag”、指示是否分割多类型树节点的标记“mtt_split_flag”、指示多类型树节点的分割方向的标记“mtt_split_vertical_flag”或者指示多类型树节点的分割类型的标记“mtt_split_binary_flag”中的至少一个可以被使用。
根据本发明的实施例,编译树单元是四叉树的根节点,并且可以首先被分割成四叉树结构。在四叉树结构中,为每个节点“QT_node”发信号告知“qt_split_flag”。如果“qt_split_flag”的值为1,则将该节点分割成4个正方形节点,并且如果“qt_split_flag”的值为0,则相应的节点成为四叉树的叶节点“QT_leaf_node”。
每个四叉树叶节点“QT_leaf_node”可以进一步被分割成多类型树结构。在多类型树结构中,为每个节点“MTT_node”发信号告知“mtt_split_flag”。当“mtt_split_flag”的值是1时,相应的节点被分割成多个矩形节点,并且当“mtt_split_flag”的值是0时,相应的节点是多类型树的叶节点“MTT_leaf_node”。当将多类型树节点“MTT_node”分割成多个矩形节点时(即,当“mtt_split_flag”的值是1时),可以附加地发信号告知节点“MTT_node”的“mtt_split_vertical_flag”和“mtt_split_binary_flag”。当“mtt_split_vertical_flag”的值是1时,指示节点“MTT_node”的垂直分割,并且当“mtt_split_vertical_flag”的值是0时,指示节点“MTT_node”的水平分割。另外,当“mtt_split_binary_flag”的值为1时,节点“MTT_node”被分割成2个矩形节点,并且当“mtt_split_binary_flag”的值为0时,节点“MTT_node”被分割成3个矩形节点。
对不再被划分的编译单元(即,编译单元树的叶节点)上执行用于编码的图片预测(运动补偿)。在下文中,用于执行预测的基本单元将被称为“预测单元”或“预测块”。
在下文中,在此使用的术语“单元”可以代替预测单元,该预测单元是用于执行预测的基本单元。然而,本公开不限于此,并且“单元”可以被理解为广泛地涵盖编译单元的概念。
图5和图6更加具体地图示根据本发明的实施例的帧内预测方法。如上所述,帧内预测单元通过使用位于当前块的左边和/或上边的重构的样本作为参考样本来预测当前块的样本值。
首先,图5示出在帧内预测模式中用于当前块的预测的参考样本的实施例。根据实施例,参考样本可以是与当前块的左边界相邻的样本和/或与上边界相邻的样本。如图5中所示,当当前块的大小是WXH并且与当前块相邻的单个参考线的样本被用于帧内预测时,可以使用位于当前块的左边和上边的最大2W+2H+1个相邻样本来配置参考样本。
当尚未重构要用作参考样本的至少一些样本时,帧内预测单元可以通过执行参考样本填充过程来获得参考样本。帧内预测单元可以执行参考样本滤波过程以减少帧内预测中的误差。也就是说,可以对通过参考样本填充过程获得的相邻样本和/或参考样本执行滤波,以便获得滤波的参考样本。帧内预测单元通过使用如上获得的参考样本来预测当前块的样本。帧内预测单元通过使用未滤波的参考样本或滤波的参考样本来预测当前块的样本。在本公开中,相邻样本可以包括至少一条参考线上的样本。例如,相邻样本可以包括在与当前块的边界相邻的线上的相邻样本。
接下来,图6示出用于帧内预测的预测模式的实施例。对于帧内预测,可以发信号告知指示帧内预测方向的帧内预测模式信息。帧内预测模式信息指示被包括在帧内预测模式集中的多个帧内预测模式中的一个。当当前块是帧内预测块时,解码器从比特流接收当前块的帧内预测模式信息。解码器的帧内预测单元基于提取的帧内预测模式信息对当前块执行帧内预测。
根据本公开的实施例,帧内预测模式集可以包括在帧内预测中使用的所有帧内预测模式(例如,总共67个帧内预测模式)。更具体地说,帧内预测模式集可以包括平面模式、DC模式以及多个(例如65个)角度模式(即,定向模式)。可以通过预设索引(即,帧内预测模式索引)来指示每个帧内预测模式。例如,如图6所示,帧内预测模式索引0指示平面模式,而帧内预测模式索引1指示DC模式。此外,帧内预测模式索引2至66可以分别指示不同的角度模式。角度模式分别指示在预设角度范围内彼此不同的角度。例如,角度模式可以指示在顺时针方向的45度和-135度之间的角度范围(即,第一角度范围)内的角度。可以基于12点钟方向来定义角度模式。在这种情况下,帧内预测模式索引2指示水平对角线(HDIA)模式,帧内预测模式索引18指示水平(水平,HOR)模式,帧内预测模式索引34指示对角线(DIA)模式,帧内预测模式索引50指示垂直(VER)模式,而帧内预测模式索引66指示垂直对角线(VDIA)模式。
同时,可以根据当前块的形状来不同地设置预设角度范围。例如,当当前块为矩形块时,可以附加地使用指示在顺时针方向上大于45度或小于-135度的角度的宽角度模式。当当前块是水平块时,角度模式可以指示在顺时针的(45+offset1)度和(-135+offset1)度之间的角度范围(即第二角度范围)内的角度。在这种情况下,可以附加地使用在第一角度范围之外的角度模式67至76。另外,当当前块是垂直块时,角度模式可以指示在顺时针的(45-offset2)度和(-135-offset 2)度之间的角度范围(即,第三角度范围)内的角度。在这种情况下,可以附加地使用在第一角度范围之外的角度模式-10至-1。根据本发明的实施例,可以根据矩形块的宽度和高度之间的比率来不同地确定offset1和offset2的值。另外,offset1和offset2可以为正数。
根据本发明的另一实施例,帧内预测模式集中包括的多个角度模式可以包括基本角度模式和扩展角度模式。在这种情况下,可以基于基本角度模式来确定扩展角度模式。
根据实施例,基本角度模式是与在现有的高效视频编码(HEVC)标准的帧内预测中使用的角度相对应的模式,而扩展角度模式可以是与下一代视频编解码器标准的帧内预测中新添加的角度相对应的模式。更具体地,基本角度模式是与帧内预测模式{2,4,6,…,66}中的任何一个相对应的角度模式,而扩展角度模式是与帧内预测模式{3,5,7,…,65}中的任何一个相对应的角度模式。即,扩展角度模式可以是第一角度范围内的基本角度模式之间的角度模式。因此,可以基于由基本角度模式指示的角度来确定由扩展角度模式指示的角度。
根据另一实施例,基本角度模式可以是与预设第一角度范围内的角度相对应的模式,而扩展角度模式可以是在第一角度范围之外的宽角度模式。即,基本角度模式是与帧内预测模式{2,3,4,…,66}中的任一个相对应的角度模式,而扩展角度模式是与{-10,-9,…,-1}和{67,68,…,76}当中的帧内预测模式中的任一个相对应的角度模式。由扩展角度模式指示的角度可以被确定为与由相应的基本角度模式指示的角度相反的角度。因此,可以基于由基本角度模式指示的角度来确定由扩展角度模式指示的角度。同时,扩展角度模式的数量不限于此,并且可以根据当前块的大小和/或形状来定义附加的扩展角度。例如,扩展角度模式可以被定义为与帧内预测模式{-14,-13,…,-1}和{67,68,…,80}中的任何一个相对应的角度模式。同时,包括在帧内预测模式集中的帧内预测模式的总数可以根据上述基本角度模式和扩展角度模式的配置而变化。
在上述实施例中,可以基于相应的基本角度模式之间的间隔来设置扩展角度模式之间的间隔。例如,可以基于相应的基本角度模式{2,4,6,…,66}之间的间隔来确定扩展角度模式{3,5,7,…,65}之间的间隔。例如,可以基于相应的相对侧基本角度模式{56,57,…,65}之间的间隔来确定扩展角度模式{-10,-9,…,-1}之间的间隔,以及可以基于相应的相对侧基本角度模式{3,4,…,12}之间的间隔来确定扩展角度模式{67,68,…,76}之间的间隔。扩展角度模式之间的角度间隔可以被配置为与相应基本角度模式之间的角度间隔相同。此外,可以将帧内预测模式集中的扩展角度模式的数量配置为小于或等于基本角度模式的数量。
根据本发明的实施例,可以基于基本角度模式来发信号告知扩展角度模式。例如,宽角度模式(即,扩展角度模式)可以代替第一角度范围内的至少一个角度模式(即,基本角度模式)。被代替的基本角度模式可以是与宽角度模式的相对侧相对应的角度模式。即,被代替的基本角度模式是与由宽角度模式表示的角度的相反方向上的角度相对应的角度模式或者与在相反方向上的角度相差预设偏移索引的角度相对应的角度模式。根据本发明的实施例,预设偏移索引为1。与被代替的基本角度模式相对应的帧内预测模式索引可以被映射回宽角度模式以发信号告知该宽角度模式。例如,可以通过帧内预测模式索引{57,58,…,66}来发信号告知宽角度模式{-10,-9,…,-1},以及通过帧内预测模式索引{2,3,…,11}来发信号告知宽角度模式{67,68,…,76}。以这种方式,由于用于基本角度模式的帧内预测模式索引发信号告知扩展角度模式,即使用于每个块的帧内预测的角度模式的配置不同,但也可以将相同的帧内预测模式索引的集合用于发信号告知帧内预测模式。因此,可以最小化由于帧内预测模式配置的改变而引起的信令开销。
同时,可以基于当前块的形状和大小中的至少之一来确定是否使用扩展角度模式。根据实施例,当当前块的大小大于预设大小时,扩展角度模式可以用于当前块的帧内预测,否则,仅基本角度模式可以用于当前块的帧内预测。根据另一实施例,当当前块是除正方形之外的块时,扩展角度模式可以用于当前块的帧内预测,并且当当前块是正方形块时,仅基本角度模式可以用于当前块的帧内预测。
在下文中,参考图7描述根据本公开的实施例的帧间预测方法。在本公开中,帧间预测方法可以包括针对平移运动而优化的通用帧间预测方法和基于仿射模型的帧间预测方法。此外,运动矢量可以包括根据通用帧间预测方法的用于运动补偿的通用运动矢量和用于仿射补偿的控制点运动矢量中的至少之一。
图7图示根据本公开的实施例的帧间预测方法。如上所述,解码器可以参考另一解码图片的重构样本来预测当前块。参考图7,解码器基于当前块701的运动信息集,获取参考图片720内的参考块702。在这种情况下,运动信息集可以包括参考图片索引和运动矢量。参考图片索引指示参考图片列表中的包括用于当前块的帧间预测的参考块的参考图片720。根据实施例,参考图片列表可以包括L0图片列表或L1图片列表中的至少一个。运动矢量指示当前图片710内的当前块701的坐标值与参考图片720内的参考块702的坐标值之间的偏移。解码器基于参考块702的样本值,获取当前块701的预测器,并且使用预测器重构当前块701。
具体地,编码器可以通过在具有较高恢复顺序的图片中搜索与当前块相似的块来获取参考块。例如,编码器可以在预设搜索区域内搜索与当前块具有最小样本值差之和的参考块。在这种情况下,为了测量当前块与参考块的样本之间的相似性,可以使用绝对差之和(SAD)和哈达玛变换差之和(SATD)中的至少之一。在此,SAD可以是通过将两个块中包括的样本值的差的全部绝对值相加而获得的值。此外,SATD可以是通过将通过对两个块中包括的样本值的差的哈达玛变换获取的哈达玛变换系数的所有绝对值相加而获得的值。
同时,可以使用一个或多个参考区域来预测当前块。如上所述,可以使用两个或更多个参考区域,通过成对预测方法来对当前块执行帧间预测。根据实施例,解码器可以基于当前块的两个运动信息集,获取两个参考块。此外,解码器可以基于两个所获取的参考块的样本值,获取当前块的第一预测器和第二预测器。另外,解码器可以使用第一预测器和第二预测器来重构当前块。例如,解码器可以基于第一预测器和第二预测器的每个样本的平均值重构当前块。
如上所述,为了当前块的运动补偿,可以发信号告知一个或多个运动信息集。在这种情况下,可以使用用于多个块中的每个块的运动补偿的运动信息集之间的相似性。例如,可以从用于预测其他重构样本之一的运动信息集中导出用于预测当前块的运动信息集。为此,编码器和解码器可以减少信令开销。
例如,可能存在很可能基于与当前块的运动信息集相同或相似的运动信息集被预测的多个候选块。解码器可以基于多个候选块生成合并候选列表。在此,合并候选列表可以包括与很可能已经基于比当前块更早重构的样本之中与当前块的运动信息集有关的运动信息集预测过的样本相对应的候选。编码器和解码器可以根据预定规则来配置当前块的合并候选列表。在此,分别由编码器和解码器配置的合并候选列表可以是相同的。例如,编码器和解码器可以基于当前块在当前图片中的位置来配置当前块的合并候选列表。稍后将参考图9描述编码器和解码器配置当前块的合并候选列表的方法。在本公开中,特定块的位置指示特定块的左上样本在包括该特定块的图片中的相对位置。
同时,为了提高编译效率,可以使用量化通过对残差信号进行变换获得的变换系数值的方法,并且使用量化的变换系数,而不是原样编译上述残差。如上所述,变换单元可以通过对残差信号进行变换来获得变换系数值。在这种情况下,特定块的残差信号可以分布在当前块的整个区域上。因此,可以通过残差信号的频域转换,将能量集中在低频区域中,从而提高编译效率。在下文中,将详细地描述变换或逆变换残差信号的方法。
图8是具体示出用于通过编码器变换残差信号的方法的图。如上所述,可以将空域中的残差信号变换成频域。编码器可以通过变换所获得的残差信号来获得变换系数。首先,编码器可以获得包括用于当前块的残差信号的至少一个残差块。残差块可以是当前块,也可以是从当前块划分的块之一。在本公开中,残差块可以被称为残差阵列或残差矩阵,其包括当前块的残差样本。在本公开中,残差块可以表示变换单元或具有与变换块相同大小的块。
接下来,编码器可以通过使用变换核来变换残差块。用于变换残差块的变换核可以是具有垂直变换和水平变换的可分离特性的变换核。在这种情况下,可以将用于残差块的变换分别执行为垂直变换和水平变换。例如,编码器可以通过在残差块的垂直方向上应用变换核来执行垂直变换。编码器可以通过在残差块的水平方向上应用变换核来执行水平变换。在本公开中,变换核可以被用作指代用于残差信号的变换的参数集的术语,诸如变换矩阵\变换阵列、变换函数和变换。根据实施例,变换核可以是多个可用核中的任何一个。基于不同变换类型的变换核可以被用于垂直变换和水平变换中的每一个。
编码器可以将从残差块变换的变换块传递到量化单元,并且量化该变换块。变换块可以包括多个变换系数。具体地,变换块可以包括以二维布置的多个变换系数。与残差块的情况一样,变换块的大小可以与当前块或从当前块划分的块的大小相同。传递到量化单元的变换系数可以被表示为量化值。
编码器可以在对变换系数进行量化之前执行其他变换。如图8所示,上述变换方法可以被称为主变换,以及其他变换可以被称为次变换。对于每个残差块,次变换是可选择的。根据实施例,编码器可以通过对仅通过主变换,难以将能量集中在低频区域中的区域执行次变换来提高编译效率。例如,可以将次变换添加到在除了残差值的水平和垂直方向外的方向中,残差值看起来更大的块。与帧间预测块的残差值相比,帧内预测块的残差值在除了水平或垂直方向以外的方向上具有更高的变换概率。因此,编码器可以对帧内预测块的残差信号另外执行次变换。编码器可以省略用于帧间预测块的残差信号的次变换。
作为另一示例,可以根据当前块或残差块的大小来确定是否执行第二变换。另外,取决于当前块或残差块的大小,可以使用具有不同大小的变换核。例如,可以将8X8第二变换应用于其宽度和高度中的较短者大于或等于预定第一长度的块。另外,可以将4X4第二变换应用于宽度和高度中的较短者大于或等于预定第二长度以及小于预定第二长度的块。在这种情况下,预定第一长度可以大于预定第二长度,但是本公开不限于此。另外,与第一变换不同,可以在不将第二变换分为垂直变换和水平变换的情况下执行第二变换。第二变换可以被称为“低频不可分离变换(LFNST)”。
在特定区域中的视频信号的情况下,即使由于亮度的突然改变而执行了频率变换,也不会减少高频带中的能量。因此,可能劣化由于量化而导致的压缩性能。当对残差值很少存在的区域执行变换时,可能会不必要地增加编码时间和解码时间。因此,可以省略对特定区域的残差信号的变换。可以通过与特定区域的变换有关的语法元素来确定是否对特定区域的残差信号执行变换。例如,语法元素可以包括变换跳过信息。变换跳过信息可以是变换跳过标志。如果关于残差块的变换跳过信息指示变换跳过,则不执行对残差块的变换。在这种情况下,编码器可以立即量化未对其执行相应区域的变换的残差信号。可以经由图1的变换单元,执行参考图8描述的编码器的操作。
上述变换相关语法元素可以是从视频信号比特流解析的信息。解码器可以对视频信号比特流进行熵解码,以便获得变换相关语法元素。编码器可以对变换相关语法元素进行熵编译,以便生成视频信号比特流。
图9是具体图示用于通过编码器和解码器,对变换系数进行逆变换来获得残差信号的方法的图。为了便于描述,将描述经由编码器和解码器中的每一个的逆变换单元执行逆变换操作。逆变换单元可以通过对逆量化的变换系数进行逆变换来获得残差信号。首先,逆变换单元可以从区域的变换相关语法元素中检测是否对特定区域执行逆变换。根据实施例,当用于特定变换块的变换相关语法元素指示变换跳过时,可以省略对变换块的变换。在这种情况下,可以省略上述关于变换块的主逆变换和次逆变换。可以将逆量化变换系数用作残差信号。例如,解码器可以通过将逆量化的变换系数用作残差信号来重构当前块。
根据另一实施例,用于特定变换块的变换相关语法元素可以不指示变换跳过。在这种情况下,逆变换单元可以确定是否对次变换执行次逆变换。例如,当变换块是帧内预测块的变换块时,可以对变换块执行次逆变换。可以基于与变换块相对应的帧内预测模式来确定用于变换块的次变换核。作为另一示例,可以基于变换块的大小来确定是否执行次逆变换。可以在逆量化之后并且在主逆变换之前执行次逆变换。
逆变换单元可以对逆量化变换系数或次逆变换的变换系数执行主逆变换。在主逆变换的情况下,与主变换的情况一样,可以单独地执行垂直变换和水平变换。例如,逆变换单元可以通过对变换块执行垂直逆变换和水平逆变换来获得残差块。逆变换单元可以基于用于对变换块进行变换的变换核来对变换块进行逆变换。例如,编码器可以明确地或隐含地发信号告知指示多个可用变换核中,被应用于当前变换块的变换核的信息。解码器可以通过使用指示信号告知的变换核的信息,从多个可用变换核中选择要用于变换块的逆变换的变换核。逆变换单元可以通过使用经由对变换系数进行逆变换而获得的残差信号来重构当前块。
同时,图片的残差信号的分布可以取决于区域而变化。例如,在特定区域中的残差信号的值的分布可以取决于预测方法而不同。在对多个不同的变换区域使用相同的变换核执行变换的情况下,取决于变换区域中的值的分布和特性,编译效率在各个变换区域中可能不同。因此,如果从多个可用的变换核中自适应地选择在特定的变换块的变换中使用的变换核,则可以进一步提高编译效率。即,编码器和解码器可以被配置为在视频信号的变换中,可以进一步使用除了基本变换核之外的变换核。自适应地选择变换核的方法可以被称为“自适应多核变换(AMT)”或“多变换选择(MTS)”。稍后将参考相关附图描述自适应地选择变换核的方法。在本公开中,为了便于描述,将变换和逆变换统称为“变换”。另外,将变换核和逆变换核统称为“变换核”。
在下文中,将参考图10描述能够在视频信号的变换中使用的多个变换核。根据本公开的实施例,变换核可以是基于特定基函数导出的核。可以基于彼此不同的基函数来获得多个不同的变换核。可以基于分别对应于不同变换类型的基函数来获得多个变换核。
图10是示出与各个变换类型相对应的基函数的图。根据实施例,可用于视频残差信号的变换的变换核可以包括基于离散余弦变换类型II的变换核(DCT-II)、基于离散余弦变换类型V(DCT-V)的变换核、基于离散余弦变换类型VIII(DCT-VIII)的变换核、基于离散正弦变换类型I(DST-I)的变换核以及基于离散正弦变换类型VII(DST-VII)的变换核中的至少一个。
参考图10,可以将与上述变换类型DCT-II、DCT-V、DCT-VIII、DST-I和DST-VII相对应的基函数表示为余弦或正弦函数。例如,与DCT-II、DCT-V和DCT-VIII中的每一个相对应的基函数可以是余弦函数,以及与DST-I和DST-VII中的每一个相对应的基函数可以是正弦函数。另外,可以以用于每个频率区间(bin)的基函数的形式来表示与特定变换类型相对应的基函数。例如,基函数Ti(j)可以是与第i个频率区间相对应的基函数。即,值“i”越小,则基函数对应于越低的频率。另外,值“i”越大,则基函数对应于越高的频率。在图10中,“j”可以表示0到N-1之间的整数。
基函数Ti(j)可以表示为指示第i行中的第j个元素的二维矩阵。在这种情况下,基于图9中的变换类型,使用变换核的变换在执行变换时可以具有可分离的特性。即,可以在水平方向和垂直方向上分别执行残差信号的变换。例如,使用变换矩阵T对残差块X的变换可以表示为矩阵计算TXT'。在此,T'表示变换矩阵T的转置矩阵。
通过图10所示的基函数计算出的变换矩阵的值可以是小数,而不是整数。在视频编码设备和解码设备中,很难以硬件实现小数值。因此,从包括小数值的原始变换核近似到整数的变换核可以被用于编码和解码视频信号。可以通过缩放和舍入原始变换核来生成包括整数值的近似变换核。近似变换核中包括的整数值可以在该值能够由预定数量的比特表示的范围内。预定比特数可以是8比特或10比特。根据近似值,可能无法保持DCT和DST的正交特性。但是,由于由此导致的编译效率损失不大,因此在硬件实现方面将变换核近似为整数可能是有利的。
图11是示出用于变换类型DCT-II、DCT-V、DCT-VIII、DST-I和DST-VII的每个索引的信号的大小的图。图11示出了在针对每个频率区间的基函数中,与最低频率区间相对应的基函数的形式。图11示出了在针对每个频率区间的基函数中,与第0个频率区间相对应的基函数。在图11中,横轴表示基函数中的索引j(j=0,1,…,N-1),而纵轴表示信号的大小值。N表示待变换的特定区域中的样本数。
如图11所示,随着索引j的增加,在DST-VII中,信号的大小也趋于增加。因此,与帧内预测块的残差块一样,DST-VII对于当距残差块的左上角的距离在水平和垂直方向上增加时残差信号的大小也增加的残差块的变换可能是有效的。
另一方面,当索引j增加时,在DCT-VIII中,信号大小趋于减小。即,DCT-VIII满足与DST-VII的双重性特征。因此,DCT-VIII对于当距残差块的左上角的距离在水平和垂直方向上增加时残差信号的大小减小的残差块的变换可能是有效的。
在DST-1中,信号的大小趋于随基函数的索引j增加而增加,然后在特定的索引处开始减小。因此,其对于在其中心处具有大的残差信号大小的残差块的变换可能是有效的。
DCT-II的第0个基函数指示DC。因此,其对于其中具有信号大小的均匀分布的残差块的变换可能是有效的。
DCT-V与DCT-II类似,但是在DCT-V中,索引j为0时的信号大小小于索引j不为0时的信号大小。即,如果索引j为1,则信号具有直线弯曲的形式。
同时,在使用如上所述的具有可分离特性的变换核的情况下,可以在其水平和垂直方向上执行残差块的变换。具体地,可以通过两个二维矩阵乘积计算来执行残差块的变换。矩阵乘积计算可以涉及预定的计算量或更多。因此,在使用基于DCT-II的变换核对残差块进行变换的情况下,可以使用蝶形结构或半蝶形结构与半矩阵乘法器的组合的结构来减少计算量。然而,由于其实现复杂度较高,因此在计算量方面可能难以实现DST-VII和DCT-VIII。此外,由于需要将变换核的元素(变换核的矩阵元素)存储在存储器中以进行计算,因此在实现中还必须考虑用于存储核矩阵的存储器容量。因此,可以使用具有与DST-VII和DCT-VIII相似的特性并且相对低的实现复杂度的变换类型。
根据实施例,离散正弦变换类型IV(DST-IV)和离散余弦变换类型IV(DCT-IV)可以分别代替DST-VII和DCT-VIII。
图12是示出用于变换类型DST-IV、DCT-IV、DST-VII和DCT-VIII的每个索引的信号的大小的图。图12(a)示出了对应于DST-IV的基函数和对应于DCT-IV的基函数。可以从用于样本数量2N的DCT-II导出样本数量N的DST-IV和DCT-IV。即,用于样本数量2N的DCT-II的部分蝶形结构包括用于样本数量N的DCT-IV。此外,可以通过对样本数量N由DCT-IV进行逆编译计算并且以相反的顺序排列相应的基函数来实现用于样本数量N的DST-IV。
如图12(b)所示,DST-IV具有类似于DST-VII的信号形式。因此,与帧内预测块的残差块一样,DST-IV对于距残差块的左上角的距离在水平和垂直方向中增加时残差信号的大小也增加的残差块的变换可能是有效的。另外,DCT-IV具有类似于DCT-VIII的信号形式。因此,DCT-IV对于残差信号的大小在特定边界中较大,并且当残差块从相应边界移动到另一边界时,残差信号的大小减小的残差块的变换可能是有效的。
在仅将基于上述任何一种变换类型的变换核用于视频信号的变换的情况下,难以根据残差信号的图样执行自适应变换,该残差信号的图样根据初始信号的特性和预测模式而有所不同。因此,根据本公开的实施例的编码器和解码器可以在残差信号的变换中,使用从多个可用的变换核当中为每个区域选择的变换核来提高编译效率。
在现有的高效视频编码(HEVC)标准中,使用上述变换类型中的基于DCT-II的变换核对残差信号进行变换,并且通过将基于DST-VII的变换核有限地仅用于帧内预测4X4大小的块来进行变换。如上所述,DCT-II可能适合于帧间预测的块的残差信号的变换,但是可能不适合于帧内预测块的残差信号的变换。即,残差块中的残差信号的图样可以取决于预测当前块的方法而变化。
因此,从多个可用的变换核当中选择的至少一个可以用于特定变换块的变换。根据实施例,编码器和解码器可以基于预测当前块的方法,为当前块的至少一个变换区域选择变换核。该方法可以被称为上述“自适应多核变换(AMT)”。如果将根据用于特定区域的预测方法确定的变换核用于相应区域的变换,则与将基于DCT-II的变换核用于所有区域执行变换的情况相比,可以提高编译效率。
图13是图示根据当前块的预测模式来配置候选变换集的方法的图。根据本公开的实施例,编码器和解码器可以基于与当前块相对应的候选变换集来选择用于当前块的至少一个变换区域的变换核。候选变换集可以包括多个候选变换核。另外,取决于当前块的预测模式,候选变换集可以包括彼此不同的候选变换核。
根据实施例,当前块可以是基于多个帧内预测模式中的任何一个而预测的块。在这种情况下,当前块的残差信号的图样可以取决于用于当前块的预测的帧内预测模式而不同。如上所述,帧内预测模式信息可以指示帧内预测方向。因此,取决于由当前块的帧内预测模式信息所指示的预测方向,当前块的残差信号的图样可以不同。取决于预测方向,编码器和解码器可以使用彼此不同的多个候选变换集来提高编译效率。
因此,编码器和解码器可以从与当前块的帧内预测模式相对应的候选变换集中确定要在当前块的变换区域中使用的变换核。例如,可以通过指示包括在候选变换集中的多个候选变换核当中的任何一个的候选索引来发信号告知要在变换区域中使用的变换核。在与当前块的帧内预测模式相对应的候选变换集包括两个候选变换核的情况下,指示在变换区域中使用的变换核的候选索引可以被表示为1比特。
另外,可以在变换区域的垂直方向和水平方向上分别使用彼此不同的候选变换集。由于基于方向性执行预测的帧内预测方法的特性,预测区域中的残差信号的垂直方向图样可能不同于其水平方向图样。因此,可以从分别的候选变换集中获得使用特定帧内预测模式预测的块的垂直变换核和水平变换核。在本公开中,用于特定变换区域中的垂直变换的变换核可以被称为“垂直变换核”。另外,用于特定变换区域中的水平变换的变换核可以被称为“水平变换核”。图13(a)示出了与67个帧内预测模式索引相对应的候选变换集。在图13(a)中,“V”(垂直)指示用于垂直变换核的候选变换集。另外,“H”(水平)表示用于水平变换核的候选变换集。
图13(b)示出了根据候选变换集定义的候选变换核。根据实施例,第一候选变换集(例如,图13(b)中的变换集0)可以包括基于DST-VII的候选变换核和基于DCT-VIII的候选变换核。另外,第二候选变换集(例如,图13(b)中的变换集1)可以包括基于DST-VII的候选变换核和基于DST-I的候选变换核。第三候选变换集(例如,图13(b)的变换集2)可以包括基于DST-VII的候选变换核和基于DCT-V的候选变换核。虽然图13示出了候选变换集包括两个候选变换核,但本公开不限于此。
根据另一实施例,当前块可以是帧间预测块。在这种情况下,可以从预定候选变换集中获得在当前块的变换区域中使用的变换核。例如,预定候选变换集可以是上述多个候选变换集当中的任何一个。图13(c)示出在当前块是帧间预测块的情况下,与当前块相对应的候选变换集。例如,与帧间预测块相对应的预定候选变换集可以包括基于DCT-VIII的候选变换核和基于DST-VII的候选变换核。即,在帧间预测块的变换区域中使用的变换核可以是基于DCT-VIII的候选变换核和基于DST-VII的候选变换核之一。
根据附加的实施例,上述实施例可以被有限地仅应用于亮度分量的变换块。在这种情况下,预定的基本变换核可以用于色度分量的变换块。例如,基本变换核可以是基于DCT-II的变换核。
根据附加的实施例,取决于变换区域中的非零变换系数的数量,编码器可以不发信号告知候选索引。在这种情况下,解码器可以通过将变换区域中的非零变换系数的数量与预定数量进行比较来确定变换核。例如,如果非零变换系数的数量是1或2,则可以不发信号告知候选索引。在这种情况下,逆变换单元可以将预定变换核用于相应区域来执行变换。预定变换核可以是基于DST-VII的变换核。
根据附加的实施例,MTS可以仅应用于亮度分量,而DCT-II变换(诸如HEVC)可以用于色度分量。作为实施例,开启/关闭可以由1比特的标志表示,以便控制编译单元中的MTS,并且如果该标志指示关闭,则可以将作为基本核的DCT-II用作色度分量。另一方面,如果标志指示开启,则可以发信号告知根据预测模式,在预定变换集中使用的变换候选索引,并且解码器可以通过应用与索引相对应的变换核来执行逆变换。因为能够在水平方向和垂直方向上应用不同的变换,所以可以指示使用具有用于每个方向的1比特的总共2比特的变换索引。可替代地,可以使用截断的一元二值化方法来指示变换索引。例如,在DST-VII和DCT-VIII的两个核可用的情况下,可以定义适用于当前块的四个变换核组合,并且可以发信号告知如下。
{水平:DST-VII,垂直:DST-VII},0
{水平:DCT-VIII,垂直:DST-VII},10
{水平:DST-VII,垂直:DCT-VIII},110
{水平:DCT-VIII,垂直:DCT-VIII},111
根据本公开的实施例,由于在MTS中选择组合{水平:DST-VII,垂直:DST-VII}的高统计概率,因此与使用固定长度2比特发信号告知变换核的情况相比,在通过上述截断的一元二值化方法发信号告知变换核的情况下,有望提高编码效率。
图14示出了取决于集索引确定的水平变换核和垂直变换核。根据本公开的实施例,可以发信号告知指示在多个可用的变换核当中,用于特定区域中的残差信号的变换核的信息。在这种情况下,可以与对应于相应区域的预测模式无关地发信号告知指示多个可用变换核当中的任何一个的信息。例如,编码器可以发信号告知指示用于特定区域中的残差信号的变换核的变换核信息。解码器可以使用发信号告知的变换核信息来获得用于相应区域的变换核。在这种情况下,变换核信息可以包括指示相应区域中的水平变换核的信息或指示相应区域中的垂直变换核的信息中的至少一条信息。该方法可以被称为上述“多变换选择(MTS)”。
可以通过指示多个可用变换核的核索引中的任何一个来指示变换核。根据实施例,对应于核索引“0”的变换核可以是基于DCT-II的变换核,对应于核索引“1”的变换核可以是基于DST-VII的变换核,并且对应于核索引“2”的变换核可以是基于DCT-VIII的变换核。
根据实施例,变换核信息可以是指示变换核集的集索引。变换核集可以指示将被用作垂直变换核的变换核和将被用作水平变换核的变换核的组合。另外,集索引可以指示表示水平变换核的核索引和表示垂直变换核的核索引的组合。参考图14(a),如果关于特定区域的变换核信息指示表示第一变换核集的集索引(例如,如果在图14(a)中,tu_mts_idx[x0][y0]为0),则相应区域中的垂直变换核可以是与核索引“0”相对应的变换核。另外,相应区域中的水平变换核可以是与核索引“0”相对应的变换核。
另外,图14(b)示出了与核索引相对应的变换核。参考图14(b),与第一核索引“0”相对应的变换核可以指示基于DCT-II的变换核。另外,与第二核索引“1”相对应的变换核可以指示基于DST-VII的变换核。另外,与第三核索引“2”相对应的变换核可以指示基于DCT-VIII的变换核。
根据附加的实施例,上述实施例可以被有限地仅应用于亮度块。在这种情况下,预定的基本变换核可以被用于色度分量。例如,基本变换核可以是基于DCT-II的变换核。另外,可以以变换块为单位发信号告知上述集索引。
另外,可以通过包括当前块的高级别的报头来发信号告知指示是否发信号告知该集索引的信息。在此,高级别可以指示切片/图块、图片或包括当前块的序列。另外,对于每种预测方法,可以通过单独的标志来发信号告知指示是否发信号告知集索引的信息。例如,在确定块的变换核时,可以分别对帧内预测块和帧间预测块独立地配置指示是否使用集索引的标志。
根据实施例,如果指示是否发信号告知包括变换块的高级别的集索引的信息明确指示不发信号告知集索引,则可以以不同方法确定用于相应变换块的变换核。例如,可以基于从除集索引之外的信息中导出的信息来确定要应用于当前变换块的逆变换的变换核。具体地,解码器可以从关于当前变换块发信号告知的信息中导出指示用于当前变换块的变换核的信息。即,可以隐式地发信号告知要用于该变换块的、指示垂直变换核的信息和指示水平变换核的信息。根据另一实施例,如果指示是否发信号告知包括变换块的高级别的集索引的信息明确指示要发信号告知集索引,则解码器可以基于发信号告知的集索引,获得用于变换块的变换核。
根据附加的实施例,编码器可以取决于变换区域中的非零变换系数的数量来确定是否发信号告知集索引。在这种情况下,解码器可以通过将变换区域中的非零变换系数的数量与预定数量进行比较来确定变换核。例如,如果非零变换系数的数量为2或更小,则可以不发信号告知集索引。在这种情况下,逆变换单元可以将预定变换核用于相应区域来执行变换。预定变换核可以是基于DST-VII的变换核。
图15是图示根据本公开的实施例的获得与变换相关的信息的方法的图。可以对每个变换块(或变换单元)执行当前块的残差信号的变换和变换系数的逆变换。当前块可以包括至少一个变换块。即,变换块可以是当前块本身,或者可以是从当前块划分的块。如果变换块是当前块本身,则变换块的大小可以与当前块的大小相同。根据实施例,可以基于当前块的大小将当前块划分为多个变换块。例如,如果当前块的大小大于最大变换大小,则可以将当前块划分为多个变换块。如果当前块的大小小于或等于最大变换大小,则变换块可以是当前块本身。作为实施例,变换块的大小可以与编译块的大小相同。即,可以将变换块划分为与编译块相同的树结构。然而,如果编译块的大小大于最大变换大小,则当前块可以被划分为具有最大变换大小的多个变换块。
在实施例中,最大变换大小可以是指示一边的长度的值。例如,最大变换大小的长度(或点)可以为64。在这种情况下,如果当前块的大小(宽度×高度)为128×32,则可以将当前块划分为大小为64×32的两个变换块。如果最大变换大小是32,并且如果当前块的大小是32×32,则可能不会从当前块划分变换块,并且可能具有与当前块相同的大小。
如果当前块的宽度和高度均小于或等于最大变换大小,则当前块不被划分为多个变换块。因此,当前块的左上角的坐标和相应变换块的左上角的坐标是相同的。另一方面,如果当前块的宽度和高度中的至少一个大于最大变换大小,则可以将当前块划分为多个变换块。因此,当前块的左上角的坐标可以不同于相应变换块的左上角的坐标。
图15(a)示出了变换单元语法。变换单元语法指示与变换和逆变换有关的过程。变换单元语法接收诸如作为变换块的左上角的坐标(x0,y0)、指示变换块在水平和垂直方向上的大小的tbWidth和tbHeight以及指示树类型的treeType的因子。
根据实施例,与变换有关的信息可以包括指示变换块是否包括至少一个非零变换系数的编译块标志(cbf)信息tu_cbf_luma、tu_cbf_cb和tu_cdf_cr。可以根据变换单元的分量分别获得cbf信息。例如,与变换有关的信息可以包括关于亮度分量的cbf信息tu_cbf_luma[x0][y0]和关于两个色度分量的cbf信息tu_cbf_cb[x0][y0]和tu_cbf_cr[x0][y0]中的至少之一。
根据实施例,如果变换块的cbf信息指示变换块包括至少一个非零变换系数,则可以执行用于相应变换块的逆量化和逆变换。在这种情况下,解码器可以使用与残差编译有关的信息来对量化的变换系数进行逆量化。另外,解码器可以对逆量化的变换系数进行逆变换,从而获得与变换块相对应的残差信号。另一方面,如果相应变换块的cbf信息指示该变换块不包括至少一个非零系数,则解码器可以不对相应的变换块执行逆量化和逆变换。在这种情况下,解码器可以在不对变换块进行逆量化和逆变换处理的情况下获得残差信号。例如,当不存在变换块的cbf信息时,该cbf信息可以被认为是变换块不包括至少一个非零系数。编码器可以通过上述熵编译单元对cbf信息进行熵编译。另外,解码器可以通过上述熵解码单元从比特流中获得cbf信息。
可以执行编码,使得亮度分量的树结构与色度分量的树结构相同或不同。因此,可以基于指示变换块的树类型的信息(treeType)获得cbf信息(S1501)。根据实施例,如果变换块的treeType指示SINGLE_TREE,则用于当前块的亮度分量的变换块的树结构可以与用于当前块的色度分量的变换块的树结构相同。在这种情况下,可以获得关于亮度分量的cbf信息和关于每个色度分量的cbf信息。根据另一实施例,如果变换块的treeType指示DUAL_TREE_LUMA或DUAL_TREE_CHROMA,则当前块的亮度分量和色度分量可能分别被划分为具有彼此不同的结构的变换块。如果变换块的treeType指示DUAL_TREE_LUMA,则这指示当前正在处理的变换块是亮度分量块。因此,可以获得关于亮度分量的cbf信息。另外,如果变换块的treeType信息指示DUAL_TREE_CHROMA,则这指示当前正在处理的变换块是色度分量块。因此,可以获得关于色度分量的cbf信息。
在图15(a)中,tu_cbf_luma[x0][y0]是指示亮度分量变换块是否包括一个或多个非零系数的元素,并且如果该元素为1,则指示相应的变换块中存在非零系数,其中,基于图片的左上亮度分量样本的位置,该块的左上亮度分量样本的位置为(x0,y0)。例如,如果tu_cbf_luma[x0][y0]不存在,则可以将元素推断为0。如果tu_cbf_luma[x0][y0]为0,则表明相应亮度变换块中的所有系数均为0,因此解码器可以重构用于亮度分量的相应的残差信号,而无需额外的解析、逆量化和逆变换。如果tu_cbf_luma[x0][y0]为1,则表明相应亮度变换块中存在一个或多个非零变换系数,因此在residual_coding语法结构中,可能需要与变换系数相关的语法元素的解析和逆量化处理,并且可以通过将逆变换应用于逆量化的系数来重构残差信号。可以使用考虑上下文的CABAC的常规编译引擎来对tu_cbf_luma[x0][y0]进行编码/解码。
tu_cbf_cb[x0][y0]是指示色度分量Cb变换块是否包括一个或多个非零系数的元素,并且如果该元素为1,则指示其中左上位置为(x0,y0)的相应变换块中存在非零系数。例如,如果tu_cbf_cb[x0][y0]不存在,则可以将元素推断为0。如果tu_cbf_cb[x0][y0]为0,则指示相应Cb变换块中的所有系数均为0,因此解码器可以重构用于Cb信号的残差信号,而无需额外的解析、逆量化和逆变换。如果tu_cbf_cb[x0][y0]为1,则指示相应的Cb变换块中存在一个或多个非零变换系数,因此在residual_coding语法结构中,可能需要与变换系数相关的语法元素的解析和逆量化处理,并且可以通过对逆量化的系数应用逆变换来重构残差信号。可以使用考虑上下文的CABAC的常规编译引擎来对tu_cbf_cb[x0][y0]进行编码/解码。
tu_cbf_cr[x0][y0]是指示色度分量Cr变换块是否包括一个或多个非零系数的元素,并且如果该元素为1,则指示其中左上位置为(x0,y0)的变换块中存在非零系数。例如,如果tu_cbf_cr[x0][y0]不存在,则可以将元素推断为0。如果tu_cbf_cr[x0][y0]为0,则指示相应Cr变换块中的所有系数均为0,因此解码器可以重构用于Cr信号的残差信号,而无需额外的解析、逆量化和逆变换处理。如果tu_cbf_cr[x0][y0]为1,则指示相应的Cr变换块中存在一个或多个非零变换系数,因此在residual_coding语法结构中,可能需要与变换系数相关的语法元素的解析和逆量化处理,并且可以通过对逆量化的系数应用逆变换来重构残差信号。可以使用考虑到上下文的CABAC的常规编译引擎来对tu_cbf_cr[x0][y0]进行编码/解码。
接下来,编码器和解码器可以识别用于解析指示在当前变换块中是否使用MTS方法的MTS信息cu_mts_flag的条件(S1502)。在下文中,将描述用于解析cu_mts_flag的条件。首先,可以基于通过当前变换块的高级别报头发信号告知的高级别MTS信息sps_mts_intra_enabled_flag和sps_mts_inter_enabled_flag来确定是否解析cu_mts_flag。高级别MTS信息可以是指示是否能够使用除基本变换核之外的变换核的信息。根据实施例,如果sps_mts_intra_enabled_flag为0,则可以指示不存在与包括在相应SPS中的帧内预测块相对应的cu_mts_flag。在这种情况下,不解析cu_mts_flag。另一方面,如果sps_mts_intra_enabled_flag为1,则可以指示存在与包括在相应SPS中的帧内预测块相对应的cu_mts_flag。在这种情况下,可以发信号告知和解析cu_mts_flag。
类似地,如果sps_mts_inter_enabled_flag为0,则可以指示与包括在相应的SPS中的帧间预测块相对应的cu_mts_flag不存在。在这种情况下,不解析cu_mts_flag。另一方面,如果sps_mts_inter_enabled_flag是1,则可以指示包括在与相应SPS中的帧间预测块相对应的cu_mts_flag存在。在这种情况下,可以发信号告知和解析cu_mts_flag。可以通过诸如序列的报头、图片或切片/图块的高级别语法来发信号告知高级别MTS信息。
另外,cuPredMode[x0][y0]是指示变换块的预测模式的变量,其中,相对于图片的亮度分量的左上角的坐标,左上亮度分量样本的位置为(x0,y0)。如果cuPredMode[x0][y0]为MODE_INTRA,则指示帧内预测被应用于相应块。另外,在MODE_INTER的情况下,这指示帧间预测被应用于相应块。即,在S1502中,(CuPredMode[x0][y0]==MODE_INTRA)&&(sps_mts_intra_enabled_flag)检查在帧内预测被应用于当前变换块的情况下是否能够应用MTS。另外,在S1502中,(CuPredMode[x0][y0]==MODE_INTER)&&(sps_mts_inter_enabled_flag)检查在帧间预测被应用于当前变换块的情况下是否能够应用MTS。
另外,可以基于tu_cbf_luma[x0][y0]来确定是否解析cu_mts_flag。这是由于以下事实:如果tu_cbf_luma[x0][y0]指示相应变换块的亮度分量的所有系数均为0,则不需要执行逆变换。根据附加的实施例,在色度分量的变换中可能仅使用基于DCT-II的变换核。另外,可以基于变换块的高度tbHeight和宽度tbWidth是否小于或等于预定长度来确定是否解析cu_mts_flag。上述条件可以概括如下。
条件i):sps_mts_intra_enabled_flag==1,并且CuPredMode[x0][y0]==MODE_INTRA或sps_mts_inter_enabled_flag==1,并且CuPredMode[x0][y0]==MODE_INTER,
条件ii):tu_cbf_luma[x0][y0]==1
条件iii):treeType!=DUAL_TREE_CHROMA,
条件iv):tbWidth<=32和tbHeight<=32。
如果满足以上所有四个条件,则解码器可以解析cu_mts_flag。另外,编码器可以对cu_mts_flag进行熵编译,然后可以将其发信号告知。如果cu_mts_flag[x0][y0]为1,则可以指示将MTS方法应用于当前变换块。另一方面,如果cu_mts_flag[x0][y0]为0,则可以指示不将MTS方法应用于当前变换块。在这种情况下,可以使用诸如基于DCT-II的变换核的基本核来执行逆变换。如果cu_mts_flag[x0][y0]不存在,则可以将cu_mts_flag[x0][y0]推断为“0”。
根据本公开的实施例,可以通过当前块的高级别报头和变换块的报头阶段性地发信号告知用于变换块的变换的变换核。首先,可以通过高级别报头发信号告知指示是否能够在包括当前块的序列、图片或切片/图块中使用除基本变换核以外的变换核的信息。另外,可以对帧内预测和帧间预测单独地发信号告知相应信息。根据特定实施例,可以通过序列、图片或切片/图块的报头来发信号告知sps_mts_intra_enabled_flag和sps_mts_inter_enabled_flag。sps_mts_intra_enabled_flag可以是指示在帧内预测块的变换中,是否能够使用除基本变换核以外的变换核的信息。另外,sps_mts_inter_enabled_flag可以是指示在帧间预测块的变换中,是否能够使用除基本变换核以外的变换核的信息。基本变换核可以是基于DCT-II的变换核。
即,如果sps_mts_intra_enabled_flag指示不允许使用除基本变换核之外的变换核,并且如果当前块是帧内预测块,则可以不进一步解析与从当前块获得的变换块的变换核有关的信息。在这种情况下,可以基于基本变换核对相应的变换块进行变换。此外,如果sps_mts_inter_enabled_flag指示不允许使用除基本变换核以外的变换核,并且如果当前块是帧间预测块,则可以不进一步解析与从当前块获得的变换块的变换核有关的信息。在这种情况下,可以基于基本变换核对相应的变换块进行变换。
另一方面,如果通过高级别报头发信号告知的信息指示能够使用除基本变换核之外的变换核,则可以通过变换块的报头发信号告知与相应变换块的变换核有关的附加信息。例如,在变换块的变换中,可以通过相应的变换块的报头,发信号告知指示是否要使用除基本变换核之外的变换核的信息。
根据本公开的实施例,可以取决于相应变换块的大小来限制将除基本变换核之外的变换核用于该变换块。例如,如果变换块的大小大于预定大小,则在相应的变换块的变换中可能会限制使用除基本变换核之外的变换核。根据实施例,如果变换块的高度或宽度中的至少一个大于预定长度,则在相应变换块的变换中,可以不允许使用除基本变换核之外的变换核。例如,预定长度可以是32。参考图15(a),如果变换块的宽度为32或更小,并且如果其高度为32或更小,则可以解析通过上述变换块的报头发信号告知的cu_mts_flag[x0][y0]。
如图15(a)所示,如果上述cbf信息指示变换块包括至少一个非零变换系数,则可以执行获得用于相应变换块的量化的变换系数的过程(S1503至S1505)。在S1503中,如果tu_cbf_luma[x0][y0]==1,则可以对变换块的亮度分量执行残差编译。即,可以执行接收特定输入因子的残差编译语法结构{residual_coding()}。具体而言,residual_coding()可以接收变换块的左上样本的坐标(x0,y0)、通过将底数2的对数应用于变换块的宽度而获得的值log2(tbWidth)、以及通过将底数2的对数应用于变换块的高度而获得的值log2(tbHeight),作为输入因子。此外,residual_coding()可以接收颜色索引(cdIdx)作为输入因子。如果cdIdx的值为“0”,则指示亮度分量“luma”,如果值为“1”,则指示第一色度分量“Cb”,以及如果值为“2”,则指示第二色度分量“Cr”。
在S1504中,如果tu_cbf_cb[x0][y0]==1,则可以执行对第一色度分量的残差编译。具体地,residual_coding()可以接收变换块的左上样本的坐标(x0,y0)作为输入因子。如果颜色格式YCbCr为4:2:0,则变换块中的色度分量的大小可以是亮度分量块的大小的一半。因此,residual_coding()可以接收通过将底数2的对数应用于色度分量块的宽度(tbWidth/2)而获得的值log2(tbWidth/2)和通过将底数为2的对数应用于色度分量块的高度(tbHeight/2)而获得的值log2(tbHeight/2)作为输入因子。同时,如果颜色格式YCbCr是4:4:4,则变换块中的色度分量块的大小可以与亮度分量块的大小相同。在这种情况下,像亮度分量的残差编译一样,residual_coding()可以接收通过将底数为2的对数应用于变换块的宽度而获得的值log2(tbWidth)和通过将底数为2的对数应用于变换块的高度获得的值log2(tbHeight)作为输入因子。
在S1505中,如果tu_cbf_cr[x0][y0]==1,则可以执行对第二色度分量的残差编译。具体地,residual_coding()可以接收变换块的左上样本的坐标(x0,y0)作为输入因子。如果颜色格式YCbCr为4:2:0,则变换块中的色度分量的大小可以是亮度分量块的大小的一半。因此,residual_coding()可以接收通过将底数2的对数应用于色度分量块的宽度(tbWidth/2)而获得的值log2(tbWidth/2)和通过将底数为2的对数应用于色度分量块的高度(tbHeight/2)而获得的值log2(tbHeight/2)作为输入因子。同时,如果颜色格式YCbCr是4:4:4,则变换块中的色度分量块的大小可以与亮度分量块的大小相同。在这种情况下,像用于亮度分量的残差编译一样,residual_coding()可以接收通过将底数为2的对数应用于变换块的宽度而获得的值log2(tbWidth)和通过将底数为2的对数应用于变换块的高度获得的值log2(tbHeight)作为输入因子。
解码器可以基于上述与变换有关的信息,对相应的变换块执行逆量化和逆变换。解码器可以通过执行逆量化和逆变换来获得与变换块相对应的残差信号。具体地,解码器可以通过图15(b)中的残差编译语法(residual_coding()),从变换块的量化变换系数中获得残差信号。
图15(b)中的residual_coding()可以接收基于包括当前块的图片的左上角的坐标的从当前块获得的变换块的左上角的坐标、通过将底数为2的对数应用于变换块的宽度获得的值、通过将底数为2的对数应用于变换块的高度获得的值以及颜色索引(cIdx)作为因子。另外,残差编译语法结构可以包括与存在于变换块中的量化变换系数有关的语法元素,并且解码器可以通过解析与残差语法结构中包括的量化变换系数有关的语法元素来获得量化的变换系数块。解码器的逆变换单元可以通过对量化的变换系数块执行逆量化和逆变换来重构与变换块相对应的残差信号。
根据实施例,解码器可以确定是否解析当前变换块的transform_skip_flag(S1506)。解析transform_skip_flag的条件如下。
条件i)作为包括在高级别语法中的1比特标志的transform_skip_enabled_flag为1(开启):transform_skip_enabled_flag可以被包括在序列参数集(SPS)、图片参数集(PPS)和切片报头的任何一个中。如果transform_skip_enabled_flag为1,则指示transform_skip_flag存在于残差编译语法中,并且如果transform_skip_enabled_flag为0,则指示其中不存在transform_skip_flag。
条件ii)当前变换块不是亮度分量变换块(cIdx!=0)或未应用MTS(cu_mts_flag[x0][y0]==0):变换跳过可以应用于亮度分量和色度分量两者。在将MTS应用于亮度分量变换块(cIdx==0&&cu_mts_flag[x0][y0]==1)的情况下,很显然执行了变换,因此不需要编码/解码transform_skip_flag[x0][y0][cIdx]。
条件iii)变换块的宽度为4或以下(log2TbWidth<=2),并且其高度为4或以下(log2TbHeight<=2)。
可以取决于上述条件来确定是否解析transform_skip_flag[x0][y0][cIdx]。如果transform_skip_flag[x0][y0][cIdx]为1,则解码器可以不执行变换。如果transform_skip_flag[x0][y0][cIdx]为0,则解码器可以考虑其他语法元素来确定是否执行当前变换块的变换。解码器可以通过从图15(b)中省略的residual_coding()部分执行解析和恢复量化的变换系数的处理。
接下来,解码器可以确定是否解析集索引(mts_idx)(S1507)。解析mts_idx的条件如下。
i)cu_mts_flag[x0][y0]==1并且亮度分量变换块(cIdx==0)
ii)如果transform_skip_flag[x0][y0]==0:transform_skip_flag[x0][y0]为1,则指示变换跳过被应用,因此不必确定要使用的变换核。
iii)当前变换块至少是帧内预测块的一部分(CuPredMode[x0][y0]==MODE_INTRA),相应块中存在3个或更多非零系数(numSigCoeff>2),或者当前变换块至少是帧间预测块的一部分(CuPredMode[x0][y0]==MODE_INTER)(在此,变量“numSigCoeff”指示变换块中的非零系数的数量)。
关于条件iii),如果存在于变换块中的非零系数的数量为2或更小(1或2),则可以对当前变换块执行使用预定变换核的变换,而无需发信号告知/解析mts_idx[x0][y0]。在这种情况下,预定变换核可以是基于DST-VII的变换核,并且也可以使用基于DST-IV的变换核代替基于DST-VII的变换核。
根据本公开的实施例,由于残差信号的能量分布与块的形状具有相关性,因此如果考虑到块的形状自适应地应用变换核,则可以更有效地编码残差信号。
图16是图示根据本公开的实施例的基于块的形状来选择变换核的方法的图。根据本公开的实施例,如果指示MTS被应用于当前块的MTS标志(例如cu_mts_flag)为0,则编码器/解码器可以针对帧内块根据块的形状(或块的宽度/高度)选择变换核(或变换类型)。如果MTS标志为0,则可以不发信号告知指示应用于当前块的特定变换核的MTS索引(例如mts_idx),并且可以将其推断为-1。在稍后描述的实施例中,如果MTS标志为0,则编码器/解码器可以取决于当前块的大小或形状来选择用于帧内预测块的变换核,并且可以针对帧间预测块,与块的形状无关地在水平和垂直方向上应用DCT-II。
在本公开中,尽管基于MTS标志与不应用MTS的情况分开地描述了应用MTS的情况,但是本公开不限于此。例如,是否应用MTS可以表示是否使用除了预定义的特定变换核(可以被称为基本变换类型、默认变换类型等)以外的变换核。如果应用了MTS,则可以将除基本变换类型以外的变换类型(例如,多个变换类型中的任意一种,或者两种或更多种变换类型的组合的变换类型)用于变换,并且如果MTS不被应用,则可以将基本变换类型用于变换。作为示例,基本变换类型可以被配置(或定义)为DCT-II。
在本公开的实施例中,如果帧内预测块是正方形块,则编码器/解码器可以在水平方向和垂直方向上应用DCT-II。另外,如果帧内预测块是矩形块(即,非正方形块),则编码器/解码器可以在较长长度的方向上应用DCT-II,并且可以在较短长度的方向上应用DST-VII。在这种情况下,如果较短的长度大于DST-VII的最大变换大小,则编码器/解码器可以使用DCT-II。例如,如果DST-VII的最大变换大小为16点(或长度为32),则在64×16的块的水平方向上可以应用DCT-II,而在其垂直方向上可以应用DST-VII。另外,对于64×32的块,可以在水平方向和垂直方向上都应用DCT-II。
另外,在本公开的实施例中,在帧内预测块是正方形块的情况下,编码器/解码器可以在水平方向和垂直方向上应用DCT-II,而在矩形块的情况下,编码器/解码器可以通过发信号告知1比特标志,在较长长度方向上应用DCT-II,而在较短长度方向上使用DCT-II或DST-VII。但是,在较短边的长度大于DST-VII的最大变换大小的情况下,编码器/解码器可以使用DCT-II,而无需发信号告知1比特标志。例如,如果DST-VII的最大变换大小为16点,则通过解析1比特标志,可以在64×16的水平方向上应用DCT-II,并且可以在其垂直方向上应用DCT-II或DST-VII,以及对于64×32的块,可以在水平方向和垂直方向上均应用DCT-II。尽管考虑到帧内预测的特性,DST-VII可以被认为是有效的,但是使用除DST-VII以外的DCT-II可能会带来较低的速率-失真成本,因此,与先前的实施例不同,在本实施例中,可以通过1比特信令,对于较短长度的方向进一步考虑DCT-II。即,如果1比特标志为0,则可以指示在较短长度的方向上应用DCT-II,以及如果1比特标志为1,则可以指示在较短长度的方向上应用DST-VII。在实施例中,可以使用利用上下文的CABAC的常规编译引擎来对1比特标志进行编码/解码。
另外,在本公开的实施例中,对于帧内预测块,在正方形块的情况下,编码器/解码器可以在水平方向和垂直方向上应用DCT-II,并且在矩形块的情况下,可以在较长长度的方向上应用DCT-II,并且可以在较短长度的方向上应用DST-IV或DST-VII。但是,如果较短长度大于DST-VII的最大变换大小,则可以对其应用DCT-II。如上所述,由于DST-VII具有高的实现复杂性,因此可以使用具有与之相似的低频基函数的图样的DST-IV,但是如果对于所有大小DST-VII都被DST-IV代替,则可能会降低编码效率。因此,DST-IV可以被用于4点的小尺寸,而DST-VII可以被用于其他尺寸。
另外,在本公开的实施例中,对于帧内预测块,在正方形块的情况下,编码器/解码器可以在水平方向和垂直方向上应用DCT-II,并且在矩形块的情况下,可以在较长长度的方向上应用DCT-II,并且在对于较短长度的方向上,取决于帧内预测模式确定变换核。例如,如果帧内预测模式是DC或平面模式(其是非定向模式),则编码器/解码器可以在较短长度的方向上应用DCT-II。
如果对于块的水平长度大于其垂直长度的水平矩形,帧内预测模式是水平方向模式(即,大于或等于水平对角线模式并且小于或等于中心对角线模式的帧内预测模式),则编码器/解码器可以在较短长度的方向(垂直方向)上应用DCT-II。另外,如果帧内预测模式是垂直方向模式(即,大于中心对角线模式并且小于或等于垂直对角线模式的帧内预测模式),则编码器/解码器可以在较短长度的方向上应用DST-VII。如果对于块的垂直长度大于水平长度的垂直矩形,帧内预测模式是水平方向模式,则编码器/解码器可以在较短长度的方向(水平方向)上应用DST-VII,并且如果帧内预测模式是垂直方向模式,则编码器/解码器可以对其应用DCT-II。
根据本公开的实施例,可以通过高级别语法,将是否应用形状自适应变换(SAT)从编码器发信号告知解码器,该形状自适应变换(SAT)指示上述实施例中基于块的形状,自适应地确定变换核的方法。作为实施例,可以通过序列参数集(SPS)、图片参数集(PPS)、切片报头或图块报头来发信号告知是否要应用SAT。另外,指示是否要应用SAT的语法元素可以是1比特标志。在下文中,将描述在高级别语法中指示是否要应用SAT的方法。在本公开中,为了便于解释,将基于块的大小或形状自适应地确定变换核的方法称为“SAT”,但是本公开不限于该术语。例如,SAT可以被称为“隐式MTS”。
在下文中,将通过参考表1至表8,以示例的方式描述与是否要应用SAT有关的语法信令方法。尽管将基于指示是否要应用SAT的标志被包括在SPS中的情况来描述实施例,但是本公开不限于此。
[表1]
Figure BDA0003121658400000511
参考表1,在本公开的实施例中,可以与指示是否应用MTS的语法元素无关地发信号告知指示是否要应用SAT的语法元素。即,作为实施例,可以发信号告知指示是否能够将MTS应用于当前序列的sps_mts_enabled_flag,并且可以与sps_mts_enabled_flag的值无关地发信号告知指示是否能够将SAT应用于当前序列的sps_sat_enabled_flag。即,可以取决于sps_sat_enabled_flag的值来确定是否能够将SAT应用于当前序列,而与sps_mts_enabled_flag无关。
[表2]
Figure BDA0003121658400000521
参考表2,在本公开的实施例中,可以取决于指示是否应用MTS的语法元素来确定指示是否要应用SAT的语法元素。作为实施例,可以首先发信号告知指示是否能够将MTS应用于当前序列的sps_mts_enabled_flag,并且可以取决于sps_mts_enabled_flag的值确定是否发信号告知指示是否能够将SAT应用于当前序列的sps_sat_enabled_flag。例如,如果sps_mts_enabled_flag为1,则可以不发信号告知sps_sat_enabled_flag。在这种情况下,可以将sps_sat_enabled_flag配置(或推断为)0,而无需将其发信号告知,这可以表示SAT不会被用于当前序列中的所有块。如果sps_mts_enabled_flag为0,则可以发信号告知sps_sat_enabled_flag,并且解码器可以取决于发信号告知的sat_enabled_flag的值确定是否能够在当前序列中使用SAT。
[表3]
Figure BDA0003121658400000522
参考表3,在本公开的实施例中,可以取决于指示是否应用MTS的语法元素来确定指示是否要应用SAT的语法元素。作为实施例,可以首先发信号告知指示是否能够将MTS应用于当前序列的sps_mts_enabled_flag,并且可以取决于sps_mts_enabled_flag的值确定是否发信号告知指示是否能够将SAT应用于当前序列的sps_sat_enabled_flag。例如,如果sps_mts_enabled_flag为1,则可以不发信号告知sps_sat_enabled_flag。在这种情况下,可以将sps_sat_enabled_flag配置(或推断为)1,而无需将其发信号告知,这可以表示SAT能够被用于当前序列中的所有块。如果sps_mts_enabled_flag为0,则可以发信号告知sps_sat_enabled_flag,并且解码器可以取决于发信号告知的sat_enabled_flag的值确定是否能够在当前序列中使用SAT。
[表4]
Figure BDA0003121658400000531
参考表4,在本公开的实施例中,可以根据指示在当前序列中仅使用DCT-II变换核的标志(或语法元素)来确定是否要应用SAT。作为实施例,可以首先发信号告知指示是否能够将MTS应用于当前序列的sps_mts_enabled_flag,并且可以根据sps_mts_enabled_flag,发信号告知作为指示在当前序列中是否仅使用DCT-II变换核的标志的sps_only_dct2_enabled_flag。例如,如果sps_mts_enabled_flag为0,则可以发信号告知sps_only_dct2_enabled_flag。如果sps_only_dct2_enabled_flag为1,则可能指示当前序列中的所有块均无法使用SAT,并且如果sps_only_dct2_enabled_flag为0,则可以指示能够在当前序列中使用SAT。如果sps_mts_enabled_flag为1,则可以将sps_only_dct2_enabled_flag配置为(或推断为)0,而无需将其发信号告知,并且,如果将sps_only_dct2_enabled_flag配置(或推断为)0,则可以指示能够在当前序列中使用SAT。
[表5]
Figure BDA0003121658400000532
Figure BDA0003121658400000541
参考表5,在本公开的实施例中,可以根据指示在当前序列中仅能够使用DCT-II变换核的标志(或语法元素)来确定是否要应用SAT。作为实施例,可以首先发信号告知sps_only_dct2_enabled_flag,其是指示在当前序列中是否将仅使用DCT-II变换核的标志。然后,可以根据sps_only_dct2_enabled_flag确定是否发信号告知sps_mts_enabled_flag,其是指示在当前序列中是否能够使用MTS的标志。例如,如果sps_only_dct2_enabled_flag为1,则可以将sps_mts_enabled_flag配置(或推断)为0,而无需将其发信号告知,并且可以将作为指示是否能够将SAT应用于当前序列的标志的sps_sat_enabled_flag配置为0,而无需将其发信号告知。如果sps_only_dct2_enabled_flag为0,则可以发信号告知sps_mts_enabled_flag,因此,可以将sps_sat_enabled_flag配置为1,而无需将其发信号告知,使得解码器可以将SAT应用于当前序列。
[表6]
Figure BDA0003121658400000542
参考表6,在本公开的实施例中,可以根据指示在当前序列中仅能够使用DCT-II变换核的标志(或语法元素)来确定是否要应用SAT。作为实施例,可以首先发信号告知sps_only_dct2_enabled_flag,其是指示在当前序列中是否将仅使用DCT-II变换核的标志。然后,可以根据sps_only_dct2_enabled_flag确定是否发信号告知sps_mts_enabled_flag,其是指示是否能够将MTS应用于当前序列的标志。例如,如果sps_only_dct2_enabled_flag为1,则可以将sps_mts_enabled_flag配置(或推断)为0,而无需将其发信号告知,并且可以将作为指示是否能够将SAT应用于当前序列的标志的sps_sat_enabled_flag配置(或推断)为0,而无需将其发信号告知。如果sps_only_dct2_enabled_flag为0,则可以发信号告知sps_mts_enabled_flag和sps_sat_enabled_flag,并且可以取决于发信号告知的sps_sat_enabled_flag的值来确定是否可以在当前序列中使用SAT。
[表7]
Figure BDA0003121658400000551
参考表7,在本公开的实施例中,可以根据指示在当前序列中仅使用DCT-II变换核的标志(或语法元素)和指示是否能够将MTS应用于当前序列的标志(或语法元素)来确定是否要应用SAT。作为实施例,可以首先发信号告知sps_only_dct2_enabled_flag,其是指示在当前序列中是否将仅使用DCT-II变换核的标志。然后,可以根据sps_only_dct2_enabled_flag的值确定是否发信号告知sps_mts_enabled_flag,其是指示是否能够将MTS应用于当前序列的标志。例如,如果sps_only_dct2_enabled_flag为1,则可以将sps_mts_enabled_flag配置(或推断)为0,而无需将其发信号告知,并且可以将作为指示是否能够将SAT应用于当前序列的标志的sps_sat_enabled_flag配置(或推断)为0,而无需将其发信号告知。
此外,如果sps_only_dct2_enabled_flag为0,则可以发信号告知sps_mts_enabled_flag。此外,如果sps_mts_enabled_flag为0,则可以取决于发信号告知的sps_sat_enabled_flag的值确定是否能够在当前序列中使用SAT。另一方面,如果sps_mts_enabled_flag为1,则可以将sps_sat_enabled_flag配置为0,而无需将其发信号告知,这可以指示SAT无法被应用于当前序列。
根据本公开的实施例,如果作为指示是否能够将MTS应用于当前序列的标志的sps_mts_enabled_flag为0,则可以将指示是否能够使用显式MTS的语法元素推断为0。如果指示是否能够使用显式MTS的语法元素为0,则可以不发信号告知MTS索引,并且可以将其推断为0。如果sps_mts_enabled_flag为1,则可以发信号告知指示是否能够使用显式MTS的语法元素。如果指示是否能够使用显式MTS的语法元素为1,则可以发信号告知MTS索引。如果指示是否能够使用显式MTS的语法元素为0,则可以使用隐式MTS。
[表8]
Figure BDA0003121658400000561
参考表8,在本公开的实施例中,可以根据指示在当前序列中仅使用DCT-II变换核的标志(或语法元素)和指示是否能够将MTS应用于当前序列的标志(或语法元素)来确定是否要应用SAT。作为实施例,可以首先发信号告知sps_only_dct2_enabled_flag,其是指示在当前序列中是否将仅使用DCT-II变换核的标志。然后,可以取决于sps_only_dct2_enabled_flag的值确定是否发信号告知sps_mts_enabled_flag,其是指示是否能够将MTS应用于当前序列的标志。例如,如果sps_only_dct2_enabled_flag为1,则可以将作为指示是否能够将MTS应用于当前序列的标志的sps_mts_enabled_flag配置(或推断)为0,而无需将其发信号告知,并且可以将作为指示是否能够将SAT应用于当前序列的标志的sps_sat_enabled_flag配置(或推断)为0,而无需将其发信号告知。
此外,如果sps_only_dct2_enabled_flag为0,则可以发信号告知sps_mts_enabled_flag。如果sps_mts_enabled_flag为0,则可以取决于发信号告知的sps_sat_enabled_flag的值确定是否能够在当前序列中使用SAT。另一方面,如果sps_mts_enabled_flag为1,则可以将sps_sat_enabled_flag配置为1,而无需将其发信号告知,这可以指示SAT能够被应用于当前序列。
根据本公开的实施例,如果作为指示是否能够将MTS应用于当前序列的标志的sps_mts_enabled_flag为0,则可以将指示是否能够使用显式MTS的语法元素推断为0。如果指示是否能够使用显式MTS的语法元素为0,则可以不发信号告知MTS索引,并且可以将其推断为0。如果sps_mts_enabled_flag为1,则可以发信号告知指示是否能够使用显式MTS的语法元素。如果指示是否能够使用显式MTS的语法元素为1,则可以发信号告知MTS索引。如果指示是否能够使用显式MTS的语法元素为0,则可以使用隐式MTS。
图17是图示根据本公开的实施例的发信号告知和确定变换核的方法的图。参考图17,mts_idx[xTbY][yTbY][cIdx]指示表示应用于变换块的变换核的语法元素(或变量),其中,相对于图片的左上亮度分量的坐标,变换块的左上亮度分量的坐标为(xTbY,yTbY)。cIdx是指示颜色分量的变量,并且在亮度分量Y的情况下可以被配置为0,在色度分量Cb的情况下可以被配置为1,并且在色度分量Cr的情况下可以被配置为2。
根据本公开的实施例,在MTS中使用的变换核(或变换类型)可以被配置为{DST-VII,DCT-VIII}。总共四种变换核组合(例如,{水平:DST-VII,垂直:DST-VII}、{水平:DCT-VIII,垂直:DST-VII},{水平:DST-VII,垂直:DCT-VIII}和{水平:DCT-VIII,垂直:DCT-VIII})可以被配置为在变换块的水平和垂直方向上应用。另一方面,如果不使用MTS,则可以使用一个组合{水平:DCT-II,垂直:DCT-II}。在图17中,trTypeHor和trTypeVer分别是指示在水平方向和垂直方向上应用的变换核(或变换类型)的变量。例如,0可以指示DCT-II,1可以指示DST-VII,而2可以指示DCT-VIII。如果tu_mts_flag不存在,则可以将mts_idx配置(或推断)为-1,而无需将其发信号告知。在这种情况下,可以在水平方向和垂直方向两者上都应用DCT-II核。
在实施例中,可以使用2比特的固定长度来发信号告知mts_idx。参考图17,如果mts_idx为0,则可以通过比特流00来发信号告知,并且在这种情况下,可以在水平方向和垂直方向两者上都应用DST-VII。如果mts_idx为1,则可以通过比特流01发信号告知,并且在这种情况下,可以在水平方向上应用DCT-VIII,而在垂直方向上应用DST-VII。如果mts_idx为2,则可以通过比特流10发信号告知,并且在这种情况下,在水平方向上可以应用DST-VII,而在垂直方向上可以应用DCT-VIII。如果mts_idx为3,则可以通过比特流11发信号告知,并且在这种情况下,可以在水平方向和垂直方向两者上都应用DCT-VIII。
在前述的取决于mts_idx来确定变换核的方法中,尽管已经描述了将变换核集配置为{DST-VII,DCT-VIII}的实施例,但是本公开不限于此,并且即使在包括多个任意变换核的变换核集中,也可以如在下述i)至v)中所述,取决于mts_idx来确定在水平方向和垂直方向上应用的变换核。
i)如果mts_idx为-1:水平-DCT-II,垂直-DCT-II。
ii)如果mts_idx为0:水平-变换集中的第一候选,垂直-变换集中的第一候选。
iii)如果mts_idx为1:水平-变换集中的第二候选,垂直-变换集中的第一候选。
iv)如果mts_idx为2:水平-变换集中的第一候选,垂直-变换集中的第二候选。
v)如果mts_idx为3:水平-变换集中的第二候选,垂直-变换集中的第二候选。
在与上述图15中的变换有关的语法结构中,尽管已经描述了使用彼此不同的语法元素来发信号告知MTS和变换跳过(TS)的方法,但是如果使用单个语法元素来发信号告知MTS和TS,则可以提高语法解析效率并且更简洁地表达语法结构。因此,将参考以下附图来描述使用单个语法元素来发信号告知MTS和TS的方法。
图18示出了根据本公开的实施例的用于获得与多变换选择和变换跳过有关的信息的语法结构,以及图19是图示根据本公开的实施例的与多变换选择和变换跳过有关的信息的图。根据本公开的实施例,可以使用单个语法元素来发信号告知MTS和TS。在描述图18中的实施例中,已经省略已经在图15进行的重复的描述。即,在图18中未描述的语法元素可以参考图15进行的描述。
参考图18,在S1801中,解码器可以检查(或确定)是否解析语法元素tu_mts_idx[x0][y0],其指示在当前残差信号的水平和垂直方向上应用的变换核。语法元素可以包括关于是否要应用TS的信息、关于是否要应用MTS的信息以及与在水平和垂直方向上应用的变换核有关的信息。例如,如果下述条件i)、ii)、iii)和iv)均为真,则可以解析tu_mts_idx[x0][y0],并且可以使用利用上下文的CABAC的常规编译引擎对tu_mts_idx[x0][y0]进行编码/解码。
条件i):变量MaxMtsIdx大于0(MaxMtsIdx>0)。
在此,MaxMtsIdx表示指示tu_mts_idx的最大值的变量,并且可以根据以上参考图15(a)描述的方法来确定。在图19(a)中,可以根据是否能够使用MTS以及是否能够使用TS来确定MaxMtsIdx。图19(a)中的第二列指示通过帧间预测对当前块进行编码以及在帧间预测块中是否能够使用MTS的情况。如果通过帧间预测编码当前块(即CuPredMode[x0][y0]==MODE_INTER),并且如果在SPS中允许MTS用于帧间预测(即sps_mts_inter_enabled_flag==1),则第二列的值可以为1。否则,第二列的值可以为0。
图19(a)中的第三列指示通过帧内预测编码当前块以及在帧内预测块中是否能够使用MTS的情况。如果通过帧内预测编码当前块(即CuPredMode==MODE_INTRA),并且如果在SPS中允许MTS用于帧内预测(即sps_mts_intra_enabled_flag==1),则第三列的值可以为1。否则,第三列的值可以是0。图18(a)中的第四列可以指示是否能够将TS应用于当前变换块。如果指示能够在SPS中使用TS(transform_skip_enabled_flag),并且如果当前变换块的宽度和高度均小于或等于最大变换跳过大小(即log2TbWidth<=MaxTsSize&&log2TbHeight<=MaxTsSize),则第四列的值可以为1。否则,第四列的值可以为0。在这种情况下,如果sps_transform_skip_enabled_flag为1,则可以通过发信号告知该值,确定指示最大变换跳过大小的MaxTsSize,该值可以通过从通过将底数为2的对数应用于最大变换跳过大小获得的值减2来获得,并且MaxTsSize的值可以为2至5。可以根据上述图18(a)中的第二、第三和第四列的值,确定变量MaxMtsIdx。
条件ii)当前亮度分量变换块包括非零系数(tu_cbf_luma[x0][y0]==1)。
参考条件ii),如果当前变换块不包括非零系数,则不需要应用MTS和TS。在这种情况下,解码器可以在不执行逆量化和逆变换的情况下重构残差信号。
条件iii)当前正在处理的编码树不是仅包含色度分量的树(treeType!=DUAL_TREE_CHROMA)。
参考条件iii),尽管在上述图15的实施例中已经描述了能够将TS应用于亮度分量和色度分量两者的示例,但是TS可以仅应用于亮度分量。即,如果MTS和TS能够仅应用于亮度分量,则不需要在仅包括色度分量的编码树中发信号告知tu_mts_idx,因此如果当前正在处理的编码树包括亮度分量,即,如果treeType为SINGLE_TREE或DUAL_TREE_LUMA,则解码器可以解析tu_mts_idx。
条件iv)变换块的宽度和高度两者均小于或等于32(tbWidth<=32&&tbHeight<=32)。
在实施例中,在不存在tu_mts_idx[x0][y0]的情况下,如果MaxMtsSize是4,则可以将其配置为0,并且如果MaxMtsSize是1或5,则可以将其配置为1。在图18中,由于使用一个集成语法元素来发信号告知TS和MTS,所以在图18(b)中的residual_coding语法结构中可能不解析指示在当前块中是否使用TS的1比特标志。
参考图19(b),在本公开的实施例中,编码器可以使用一个集成语法元素向解码器发信号告知MTS和TS。解码器可以基于相应的语法元素来确定变换核。在图19(b)中,TrHorType和TrVerType分别表示指示在水平方向和垂直方向上应用的变换核的变量。IsTrafoSkip是指示是否将变换跳过应用于当前变换块的变量。作为实施例,可以取决于tu_mts_idx[x0][y0]的值来确定上述TrHorType、TrVerType和IsTrafoSkip的值。
在实施例中,如果TrHorType(或TrVerType)为-1,并且如果IsTrafoSkip为1,则这指示在相应方向上应用了变换跳过。如果TrHorType(或TrVerType)为0,并且IsTrafoSkip为0,则可以在相应方向上应用DCT-II核。如果TrHorType(或TrVerType)为1,并且IsTrafoSkip为0,则可以在相应方向上应用DST-VII核。如果TrHorType(或TrVerType)为2,并且如果IsTrafoSkip为0,则可以在相应方向上应用DCT-VIII核。可以将tu_mts_idx的最大值表示为变量MaxMtsIdx,并且tu_mts_idx的二值化方法可以取决于MaxMtsIdx的值而变化。
在实施例中,如果MaxMtsIdx是1(即,在仅允许TS的情况下),则可以通过1比特信令来指示是否应用TS。如果tu_mts_idx为0(即,比特值为0),则可以将TS应用于当前亮度分量变换块,并且如果tu_mts_idx为1(即,比特值为1),则可以在当前亮度分量变换块的水平方向和垂直方向上均应用DCT-II。如果MaxMtsIdx是4(即,在不允许TS并且允许MTS的情况下),则比特流中的第一比特可以指示是否将MTS应用于相应的亮度变换块,而比特流的第二、第三和第四比特可以指示应用于使用MTS的情况的变换核。如果tu_mts_idx为0(例如,比特流0),则可以在当前变换块的水平方向和垂直方向两者上都应用DCT-II核。如果tu_mts_idx为1(例如,比特流10),则DST-VII核可以应用于当前变换块的水平方向和垂直方向两者。如果tu_mts_idx是2(例如,比特流110),则可以在当前变换块的水平方向上应用DCT-VIII,而可以在其垂直方向上应用DST-VII。如果tu_mts_idx是3(例如,比特流1110),则可以在当前变换块的水平方向上应用DST-VII,而可以在其垂直方向上应用DCT-VIII。如果tu_mts_idx是4(例如,比特流1111),则可以在当前变换块的水平方向和垂直方向两者上均应用DCT-VIII。
在实施例中,如果MaxMtsIdx为5(如果TS和MTS两者都被允许),则比特流的第一比特可以指示是否将TS应用于相应的亮度变换块。在这种情况下,比特流的第二比特可以指示是否将MTS应用于相应的亮度变换块,并且比特流的第三比特、第四比特和第五比特可以指示应用于使用MTS的情况的变换核。如果tu_mts_idx为0(例如,比特流0),则可以将TS应用于当前变换块。如果tu_tms_idx为1(例如,比特流10),则可以在当前变换块的水平方向和垂直方向两者上均应用DCT-II。如果tu_mts_idx是2(例如,比特流110),则可以在当前变换块的水平方向和垂直方向两者上都应用DST-VII。如果tu_mts_idx是3(例如,比特流1110),则可以在当前变换块的水平方向上应用DCT-VIII,并且可以在其垂直方向上应用DST-VII。如果tu_mts_idx是4(例如,比特流11110),则可以在当前变换块的水平方向上应用DST-VII,而在其垂直方向上可以应用DCT-VIII。如果tu_mts_idx是5(例如,比特流11111),则可以在当前变换块的水平方向和垂直方向两者上均应用DCT-VIII。
尽管上述实施例描述了其中通过使用1比特或3比特的截断的一元二值化方法来发信号告知在使用MTS的情况下应用的变换核的示例,但是可以使用固定的2比特来执行该信号发送。另外,尽管在上述实施例中以示例的方式描述了构成变换核集的变换核候选是DST-VII和DCT-VIII的情况,但是本公开不限于此,并且即使在包括两个任意变换核的变换核集中,也可以取决于指示变换核的比特流的值来确定在水平和垂直方向上应用的变换核,如下述情况i)至v)所示。
i)比特流“0”:水平-DCT-II,垂直-DCT-II
ii)比特流“10”:水平-变换集中的第一候选,垂直-变换集中的第一候选
iii)比特流“110”:水平-变换集中的第二候选,垂直-变换集中的第一候选
iv)比特流“1110”:水平-变换集中的第一候选,垂直-变换集中的第二候选
v)比特流“1111”:水平-变换集中的第二候选,垂直-变换集中的第二候选
帧间预测块的残差信号可能倾向于集中在该块的特定位置。例如,可能存在其中残差信号在残差信号块的边界处具有较高的能量,并且其中残差信号在该块的中心和相反边界处具有较低的能量的图样。如果使用这样的图样对帧间预测块的残差信号执行变换,则能够提高帧间预测的编码效率。将参考以下附图对此进行描述。
图20是图示根据本公开的实施例的子块变换(SBT)方法的图。如果应用了SBT,则编码器/解码器可以通过将当前编译单元(或编译块)划分为多个变换单元(或变换块)来执行变换编码。作为实施例,编码器/解码器可以通过将当前编译单元划分为具有1:1或1:3的大小的两个变换单元来执行变换编码。在这种情况下,可以在假设残差信号集中在两个划分的变换单元当中的一个变换单元上,并且假设剩余的一个变换单元不具有残差信号的情况下,可以仅对一个变换单元执行变换。在图20(a)、(b)、(c)和(d)中,表示为A的区域(即阴影区域)指示执行变换单元的变换的区域。在量化之后,可以通过指示参考图15和18描述的非零变换系数信息的语法元素(tu_cbf_luma、tu_cbf_cb和tu_cbf_cr)的信令来确定在变换块的相应区域中是否存在非零系数。除区域A以外的区域是假设不具有残差信号的变换单元区域,因此可以省略其变换和逆量化处理,并且可以将tu_cbf_luma、tu_cbf_cb和tu_cbf_cr均配置(或推断)为0,而无需将其发信号告知。
参考图20(a),如果编译单元具有W×H的大小,则编码器/解码器可以在垂直方向上划分编译单元,从而获得具有大小为(W/2)×H的两个变换单元。可替代地,如果指示{1/4,3/4}的划分的1比特标志为1,则编译单元可以被划分为大小为(W/4)×H和(3W/4)×H的两个变换单元。在以上两种情况下,可以对左变换单元执行变换,并且可以在水平方向上应用DCT-VIII,并且可以在垂直方向上应用DST-VII。例如,如果相应的变换单元的宽度或高度大于SBT中允许的DST-VII/DCT-VIII核的最大大小,则可以在相应的方向上应用DCT-II。例如,SBT中允许的DST-VII/DCT-VIII核的最大大小可以是32点(或长度)。
参考图20(b),如果编译单元的大小是W×H,则编码器/解码器可以将编译单元在其垂直方向上划分为大小为(W/2)×H的两个变换单元。可替代地,如果指示{1/4,3/4}的划分的1比特标志是1,则编译单元可以被划分为大小为(3W/4)×H和(W/4)×H的两个变换单元。在以上两种情况下,可以对右变换单元执行变换,并且可以在水平方向和垂直方向两者上都应用DST-VII。作为示例,如果相应的变换单元的宽度或高度大于SBT中允许的DST-VII/DCT-VIII核的最大大小,则可以在相应的方向上应用DCT-II。作为示例,SBT中允许的DST-VII/DCT-VIII核的最大大小可以是32点。
参考图20(c),如果编译单元的大小是W×H,则编码器/解码器可以将编译单元在其水平方向上划分为大小为W×(H/2)的两个变换单元。可替代地,如果指示{1/4,3/4}的划分的1比特标志为1,则编译单元可以被划分为大小为W×(H/4)和W×(3H/4)的两个变换单元。在以上两种情况下,可以对上变换单元执行变换,并且可以在水平方向上应用DST-VII,以及可以在垂直方向上应用DCT-VIII。作为示例,如果相应变换单元的宽度或高度大于SBT中允许的DST-VII/DCT-VIII核的最大大小,则可以在相应的方向上应用DCT-II。例如,SBT中允许的DST-VII/DCT-VIII核的最大大小可以是32点。
参考图20(d),如果编译单元的大小是W×H,则编码器/解码器可以在水平方向上将编译单元划分为大小为W×(H/2)的两个变换单元。可替代地,如果指示{1/4,3/4}的划分的1比特标志是1,则编译单元可以被划分为大小为W×(3H/4)和W×(H/4)的两个变换单元。在以上两种情况下,可以在下变换单元上执行变换,并且可以在水平方向和垂直方向两者上都应用DST-VII。作为示例,如果相应的变换单元的宽度或高度大于SBT中允许的DST-VII/DCT-VIII核的最大大小,则可以在相应的方向上应用DCT-II。例如,SBT中允许的DST-VII/DCT-VIII核的最大大小可以是32点。
在实施例中,可以将SBT应用于帧间预测块,其中,作为指示与变换有关的语法结构(例如,变换树语法结构)是否存在的语法元素的cu_cbf为1,并且可以在编译单元级别发信号告知是否应用SBT。如果在编译单元级别中应用了SBT,则可以发信号告知指示{1/4,3/4}的划分或1/2的划分的1比特标志。另外,可以发信号告知指示水平方向划分或垂直方向划分的1比特标志。另外,可以进一步指示1比特的标志,该标志指示在两个划分的变换单元之中要变换的变换单元。
如果应用了SBT,则取决于变换单元的位置来确定变换核,因此可以不在图15中的变换单元语法结构中发信号告知MTS标志和/或MTS索引。取决于相应变换单元的位置和/或相应变换单元的宽度和高度,可以将应用于在SBT中执行变换的变换单元的变换核选择为DST-VII/DCT-VIII/DCT-II中的任何一种,并且可以以相同的方式选择是否应用TS。如果在上述图18的变换单元语法结构中能够使用TS(即,如果图19(a)中的第四条件为真),则可以将MaxMtsIdx确定为1,并且可以通过1比特信令来指示是否应用TS。如果在图18中的变换单元语法结构中不能使用TS{例如,如果在图19(a)中,第四条件为假},则可以将MaxMtsIdx确定为0,并且可以不发信号告知MTS索引语法元素。
随着变换核的大小增加,显著地提高能量压缩性能,因此,随着变换块的大小增加,与应用TS的情况相比,通过应用DST-VII、DCT-VIII和DCT-II中的任何一种的变换更可能提高编码效率。因此,在实施例中,如果变换块的大小大于或等于预定的特定大小,则无论是否能够使用TS,都可以不发信号告知MTS索引语法元素。
在实施例中,是否能够使用SBT可以被包括在序列参数集(SPS)、图片参数集(PPS)、切片报头、图块块组报头和图块报头中的任何一个中,然后可以使用1比特标志发信号告知。在本公开中,该标志可以被称为“sps_sbt_enabled_flag”。在下文中,将参考表9至11,以示例的方式描述在SPS级别中发信号告知与SBT有关的语法的方法的实施例。尽管在本公开的实施例中,将基于在SPS级别中的信令方法进行描述,但本公开不限于此,并且以下描述的信令结构可以以相同的方式应用于以高级别语法中的任一级别执行信令的情况。
[表9]
sps_sbt_enabled_flag
参考表9,在本公开的实施例中,编码器/解码器可以通过发信号告知sps_sbt_enabled_flag来确定是否能够在当前序列中使用SBT,sps_sbt_enabled_flag是指示在当前序列中是否能够使用SBT的1比特标志。
[表10]
Figure BDA0003121658400000671
参考表10,在本公开的实施例中,编码器/解码器可以取决于在当前序列中是否能够使用除DCT-II以外的核来确定是否能够使用SBT。在表10中,sps_dct2_only_enabled_flag是指示在当前序列中仅能够使用DCT-II变换核的标志(或语法元素)。可以取决于sps_dct2_only_enabled_flag来确定是否发信号告知sps_sbt_enabled_flag。例如,如果sps_dct2_only_enabled_flag为0,则解码器可以解析sps_sbt_enabled_flag,该sps_sbt_enabled_flag是指示在当前序列中是否能够使用SBT的1比特标志。解码器可以取决于sps_sbt_enabled_flag的值来确定在当前序列中是否能够使用SBT。如果sps_dct2_only_enabled_flag为1,则可以不发信号告知sps_sbt_enabled_flag,并且可以将其配置(或推断)为0,并且在当前序列中可以不使用SBT。
[表11]
Figure BDA0003121658400000681
参考表11,在本公开的实施例中,编码器/解码器可以取决于是否能够在当前序列中使用SBT来确定在当前序列中是否能够使用除DCT-II以外的核。作为实施例,可以首先发信号告知sps_sbt_enabled_flag,其是指示SBT是否能够在当前序列中使用的1比特标志。如果sps_sbt_enabled_flag为1,则可以发信号告知sps_sbt_dct2_enabled_flag,其是指示仅DCT-II被允许用作当应用SBT时使用的变换核的1比特标志。即,如果sps_sbt_dct2_enabled_flag为1,则在应用SBT时,可以将编译单元划分为两个变换单元,并且可以在变换单元的水平方向和垂直方向上都应用DCT-II。如果sps_sbt_enabled_flag为0,则可以将sps_sbt_dct2_enabled_flag配置为0。
编码器/解码器可以以变换单元为单位来重构块,并且在帧内预测的情况下,编码器/解码器可以利用当前块周围的重构样本作为参考样本,从而生成用于当前块的预测块。在帧内预测的情况下,随着距参考样本的距离增加,预测误差趋于增加。因此,如果相对于当前编译单元将变换单元划分为小块,并且如果以划分的小块为单位顺序执行恢复,则能够减少预测误差,即,残差信号,并且能够提高编码效率。帧内子划分(ISP)编码模式是一种在帧内预测被选择用于当前编译单元的情况下,通过将块划分为多个划分单元来执行预测和恢复的方法。
图21是图示根据本公开的实施例,在帧内子划分编码模式下划分块的方法的图。根据本公开的实施例,可以在水平或垂直方向上划分当前编译块。作为实施例,划分的变换单元的数量可以取决于编译单元的大小而变化。例如,如果编译单元的大小为4×4,则可以不对其应用ISP编码模式。大小为4×8或8×4的编译单元可以被划分为两个变换单元。具有与其不同的大小的编译单元可以被划分为四个变换单元。可以确定能够对其应用ISP编码模式的编译单元的大小,使得编译单元的宽度或高度小于或等于亮度分量变换块的最大大小(条件A)并且使得编译单元的宽度和高度的乘积大于亮度分量变换块的最小大小的平方(条件B)。在这种情况下,亮度分量变换块的最大大小可以是64,并且亮度分量变换块的最小大小可以是4。满足条件A的编译单元的大小可以被分类为如下条件i)、ii)和iii)。
条件i)编译单元的宽度小于或等于亮度分量变换块的最大大小,并且编译单元的高度大于亮度分量变换块的最大大小。
条件ii)编译单元的宽度大于亮度分量变换块的最大大小,并且编译单元的高度小于或等于亮度分量变换块的最大大小。
条件iii)编译单元的宽度和高度均小于或等于亮度分量变换块的最大大小。
在上述条件i)、ii)和iii)中的条件i)的情况下,可以将编译单元划分为多个变换单元,其中,变换单元的宽度与编译单元的宽度相同,且变换单元的高度与亮度分量变换块的最大大小相同,无需单独地发信号告知。在条件ii)的情况下,可以将编译单元划分为多个变换单元,其中,变换单元的宽度与亮度分量变换块的最大大小相同,并且变换单元的高度与编译单元的高度相同,无需单独地发信号告知。即,在条件i)和ii)的情况下,由于在无需发信号告知的情况下使用编译单元的大小和亮度分量变换块的最大大小来执行变换块的划分,因此可以不使用需要信令的ISP编码模式。因此,可以将条件A确定为编译单元的宽度和高度均小于或等于亮度分量变换块的最大大小的情况。
图21(a)示出了划分变换单元的方法,其可以应用于4×8或8×4的编译单元。作为实施例,如果对大小为W×H的编译单元指示了水平划分,则可以将编译单元划分成大小为W×(H/2)的两个变换单元,并且如果指示了垂直划分,则可以将编译单元划分为大小为(W/2)×H的两个变换单元。1比特标志可以指示划分是水平划分还是垂直划分。
图21(b)示出了划分变换单元的方法,其可以应用于具有除4×8和8×4以外的大小的编译单元。作为实施例,如果对大小为W×H的编译单元指示了水平划分,则可以将编译单元划分为大小为W×(H/4)的四个变换单元,并且如果指示了垂直划分,则可以将编译单元划分为大小为(W/4)×H的四个变换单元。1比特标志可以指示划分是水平划分还是垂直划分。
图22是图示根据本公开的实施例,在应用帧内子划分(ISP)模式的情况下,选择要应用于划分的变换单元的变换核的方法的图。根据本公开的实施例,如果应用ISP,则可以取决于变换块的大小和帧内预测模式来确定应用于各个变换单元的变换核。在图22中,predModeIntra是表示在当前编译单元中使用的帧内预测模式的变量,以及trTypeHor和trTypeVer分别是表示在水平方向和垂直方向上应用的变换核的变量。尽管在图22中假设使用67个帧内预测模式的情况下进行描述,但是,本公开不限于此,并且可以以相同的方式将该实施例应用于已经参考图6描述过的、除67个帧内预测模式外的宽角度模式的情况。
根据本公开的实施例,帧内预测模式可以包括两个非定向预测模式(INTRA_PLANAR和INTRA_DC)以及65个定向预测模式(INTRA_ANGULAR2,INTRA_ANGULAR3,...,以及INTRA_ANGULAR66),并且可以根据各个预测模式来确定变量trTypeHor和trTypeVer。在此,trTypeHor和trTypeVer分别表示在水平方向和垂直方向上应用的变换核(或变换类型)。如果trTypeHor或trTypeVer的值为0,则可以指示在相应的方向上应用了DCT-II变换核,如果该值为1,则可以指示将DST-VII应用于相应的方向。
在实施例中,如果变换块的宽度小于用于亮度分量的变换块的最小大小或大于ISP中使用的DST-VII的最大大小,则可以在水平方向上应用DCT-II。另外,如果变换块的高度小于用于亮度分量的变换块的最小大小或大于ISP中使用的DST-VII的最大大小,则可以在垂直方向上应用DCT-II。作为示例,用于亮度分量的变换块的最小大小可以被定义为4,并且DST-VII的最大大小可以被定义为16。该变换块的最小大小可以被称为“第一阈值”,并且DST-VII的最大大小可以被称为“第二阈值”。
另外,在实施例中,编码器/解码器可以在非定向预测模式中,在水平方向和垂直方向两者上都应用DST-VII。另外,编码器/解码器可以在水平和定向模式(INTRA_ANGULAR2,INTRA_ANGULAR3,...,INTRA_ANGULAR32和INTRA_ANGULAR33)下,在水平方向上应用DST-VII,并且在垂直方向上应用DCT-II。编码器/解码器可以在垂直和定向模式(INTRA_ANGULAR34,INTRA_ANGULAR35,...,INTRA_ANGULAR65和INTRA_ANGULAR66)下,在水平方向上应用DCT-II,而在垂直方向上应用DST-VII。
在实施例中,如果通过帧内预测对当前编译单元进行编码,则可以发信号告知指示是否在编译单元级别中应用ISP的1比特标志。如果将ISP应用于当前编译单元,则可以发信号告知指示水平划分或垂直划分的1比特标志。如果将ISP应用于当前块,则可以在无需发信号告知情况下取决于帧内预测模式和变换单元的大小来确定应用于每个划分变换单元的变换核,因此可以在图15的变换单元语法结构中不发信号告知MTS标志和/或MTS索引。另外,由于在ISP编码模式下不使用TS,因此可以不发信号告知变换跳过标志。另外,在图18的变换单元语法结构中可以不发信号告知MTS索引。
如图22所述,如果将ISP应用于当前块,则可以在无需发信号告知情况下基于帧内预测模式来确定应用于每个变换块的变换核。同时,这可能增加实现硬件解码器的复杂性。能够在现有的硬件解码器管线结构中同时执行帧内预测模式的编码和变换系数的恢复,但是在应用ISP模式的情况下,仅当帧内预测模式的编码完成时才能够执行变换系数的恢复,由此导致与其相对应的延迟。因此,在下文中,将描述在ISP编码模式下,不基于帧内预测模式确定应用于每个变换块的变换核的方法。
在本公开的实施例中,编码器/解码器可以将变换块的宽度或高度与预定义的特定阈值进行比较,从而确定对其应用了ISP模式的块的变换核(或变换类型)。由于当使用帧内预测时DST-VII核有效地表达残差信号的特性,因此当变换块的宽度小于或等于特定阈值时,可以在水平方向上应用DST-VII,而当变换块的宽度大于阈值时,可以在水平方向上应用DCT-II。在此,特定阈值可以被定义为与上述第二阈值相同的值(即,ISP中使用的DST-VII的最大大小)。如果变换块的高度小于或等于阈值,则可以在垂直方向上应用DST-VII,并且如果其高度大于阈值,则可以在垂直方向上应用DCT-II。在这种情况下,阈值可以被定义为32或以下的任意值。如上所述,作为实施例,如果变换块的宽度小于用于亮度分量的变换块的最小大小(即,第一阈值)或大于ISP中使用的DST-VII的最大大小,则可以在水平方向上应用DCT-II。另外,如果变换块的高度小于用于亮度分量的变换块的最小大小或大于ISP中使用的DST-VII的最大大小,则可以在垂直方向上应用DCT-II。作为示例,用于亮度分量的变换块的最小大小可以被定义为4,而DST-VII的最大大小可以被定义为16。
另外,在本公开的实施例中,可以在其中变换块的宽度和高度均小于或等于阈值的正方形块的水平方向和垂直方向两者上都应用DST-VII,并且可以在其宽度和高度均大于阈值的正方形块的水平和垂直方向上均应用DCT-II。如果矩形块的较短边小于或等于阈值,则可以在相应方向上应用DST-VII,并且如果矩形块的较短边大于阈值,则可以在其中应用DCT-II。DCT-II可以在相应方向上应用于矩形块的较长边。
另外,在本公开的实施例中,可以通过利用在图15和18中描述的与MTS有关的语法元素信令来确定应用于每个变换单元的变换核。例如,如果使用图18中的变换单元语法结构,即使在当前编译单元中使用ISP的情况下,也可以发信号告知MTS索引。如果对每个变换单元发信号告知MTS索引,则可能会增加信令开销。因此,在处理顺序中,可以仅在对亮度分量变换块存在非零变换系数(即,tu_cbf_luma==1)的第一变换单元中发信号告知MTS索引,并且由所有变换单元共享发信号告知的MTS。在这种情况下,例如,还可以发信号告知是否应用TS。
在实施例中,是否能够使用ISP编码模式可以被包括在序列参数集(SPS)、图片参数集(PPS)、切片报头、图块组报头和图块报头中的任何一个中,并且可以通过1比特标志来发信号告知,以及该标志在本公开中可以被称为“sps_isp_enabled_flag”。在下文中,将参考表12至14来描述在SPS级别中,发信号告知与ISP编码模式有关的语法的方法的实施例。尽管在本公开的实施例中,将基于SPS级别的信令方法进行描述,但本公开不限于此,并且下文描述的信令结构可以以相同的方式应用于以高级别语法中的任一级别执行信令的情况。
[表12]
sps_isp_enabled_flag
参考表12,在本公开的实施例中,编码器/解码器可以通过发信号告知sps_isp_enabled_flag来确定在当前序列中是否使用ISP编码模式,该sps_isp_enabled_flag是指示在当前序列中是否能够使用ISP编码的1比特标志。
[表13]
Figure BDA0003121658400000741
参考表13,在本公开的实施例中,编码器/解码器可以取决于在当前序列中是否能够使用除DCT-II以外的核来确定是否使用ISP编码模式。在表12中,sps_dct2_only_enabled_flag是指示在当前序列中只能够使用DCT-II变换核的标志(或语法元素)。取决于sps_dct2_only_enabled_flag,可以确定是否发信号告知sps_isp_enabled_flag,该sps_isp_enabled_flag是指示在当前序列中是否能够使用ISP编码模式的标志(或语法元素)。例如,如果sps_dct2_only_enabled_flag为0,则解码器可以解析sps_isp_enabled_flag,其是指示在当前序列中是否能够使用ISP编码模式的1比特标志。解码器可以取决于sps_isp_enabled_flag的值来确定在当前序列中是否能够使用ISP编码模式。如果sps_dct2_only_enabled_flag为1,则可以不发信号告知sps_isp_enabled_flag,并且可以将其配置(或推断)为0,以及在当前序列中可以不使用ISP编码模式。
[表14]
Figure BDA0003121658400000742
Figure BDA0003121658400000751
参考表14,在本公开的实施例中,编码器/解码器可以取决于在当前序列中是否能够使用ISP编码模式来确定在当前序列中是否能够使用除DCT-II以外的核。作为实施例,可以首先发信号告知sps_isp_enabled_flag,其是指示SBT是否能够在当前序列中使用的1比特标志。如果sps_isp_enabled_flag为1,则可以发信号告知sps_isp_dct2_enabled_flag,其是指示对当应用ISP编码模式时使用的变换核,仅允许DCT-II的1比特标志。即,在sps_isp_dct2_enabled_flag为1的情况下,当应用ISP编码模式时,可以将编译单元划分为多个变换单元,并且可以在变换单元的水平方向和垂直方向两者上都应用DCT-II。如果sps_isp_enabled_flag为0,则可以将sps_isp_dct2_enabled_flag配置为0。
图23和24是图示根据本公开的实施例,在应用SBT的情况下,获得关于变换单元语法结构中是否存在非零变换系数的信息的过程的图。
在图23中,变换单元语法结构包括与变换单元有关的语法元素及其处理过程,并且可以接收下述作为因子:作为当前变换单元的左上角的坐标的(x0,y0)、作为变换块的宽度的tbWidth、作为变换块的高度的tbHeight、指示当前正在处理的编码树的类型的treeType以及指示在变换树中处理的变换单元的索引的subTuIndx。由于亮度分量和色度分量之间存在相关性,因此可以在相同的编码树结构中编码亮度分量和色度分量,但是为了提高编译效率可以在不同的编码树结构中编码亮度分量和色度分量。变量treeType可以表示当前正在处理的编码树的类型,并且如果treeType为SINGLE_TREE,则可以指示当前处理的编码树是单个树,其中,亮度分量和色度分量具有相同的结构,并且相应的树可以包括所有亮度分量Y以及色度分量Cb和Cr。
另外,如果treeType为DUAL_TREE_LUMA,则可以指示以不同的编码树结构编码亮度分量和色度分量的情况下,当前处理的编码树是亮度分量编码树,并且相应的编码树可以仅包括亮度分量Y。如果treeType为DUAL_TREE_CHROMA,则可以指示以不同的编码树结构编码亮度分量和色度分量的情况下,当前处理的编码树是色度分量编码树,并且相应的编码树仅包括色度分量Cb和Cr。
在图23中的步骤S2301的第一条件语句中,解码器可以识别当前处理的树是否包括亮度分量以便解析tu_cbf_luma。即,如果treeType是SINGLE_TREE或DUAL_TREE_LUMA,则相应的编码树可以包括亮度分量,并且如果treeType是DUAL_TREE_CHROMA,则相应的编码树可以不包括亮度分量。因此,如果treeType是DUAL_TREE_CHROMA,则在步骤S2301中,解码器可以不执行条件语句的内容。如果当前编码树包括亮度分量,则解码器在步骤S2301的第二条件语句中识别用于解析tu_cbf_luma的条件。在此,IntraSubPartitionsSplitType表示与用于将帧内预测的编译单元划分成NumIntraSubPartitions个变换单元的帧内子划分(ISP)技术有关的变量。
编码器/解码器可以发信号告知和解析在编译单元语法(其是与编译单元有关的语法结构)中是否将ISP应用于帧内预测的当前编译单元和用于划分方法的语法元素。因此,可以配置在ISP中指示变换单元的划分类型的变量IntraSubPartitionsSplitType和指示划分的变换单元的数量的变量NumIntraSubPartitions。如果未将ISP应用于相应的编译单元,则可以将变量IntraSubPartitionsSplitType配置为ISP_NO_SPLIT,并且如果将ISP应用于相应的编译单元,则可以将变量IntraSubPartitionsSplitType配置为除ISP_NO_SPLIT以外的值。
可以将步骤S2301中第二条件语句为真的情况分类为下述情况i)、ii)、iii)和iv)。
i)不将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),并且不将SBT应用于当前编译单元(cu_sbt_flag==0)。
即,ISP和SBT均没有被应用于当前的编译单元,并且未通过发信号告知和解析显式语法元素来划分变换单元。在这种情况下,可以解析tu_cbf_luma。
ii)不将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),将SBT应用于当前编译单元(cu_sbt_flag==1),并且当前处理的TU是在SBT中存在残差信号的位置处的变换单元{(subTuIndex==0&&!cu_sbt_pos_flag)||(subTuIndex==1&&cu_sbt_pos_flag)}。
即,如果将SBT应用于当前编译单元,则可以仅对存在残差信号的位置处的变换单元发信号告知并解析tu_cbf_luma。另外,对于不存在残差信号的位置处的变换单元,编码器/解码器可以将tu_cbf_luma配置为0,而无需将其发信号告知和解析。如果cu_sbt_pos_flag为1,则对于由SBT划分的两个变换单元中的第一变换单元(subTuIndex==0),tu_cbf_luma、tu_cbf_cb和tu_cbf_cr均被配置为0,而无需将其发信号告知和解析。如果cu_sbt_pos_flag为0,则对于由SBT划分的两个变换单元中的第二变换单元(subTuIndex==1),可以将tu_cbf_luma、tu_cbf_cb和tu_cbf_cr均配置为0,而无需将其发信号告知和解析。因此,如果将SBT应用于当前块,则可以将存在残差信号的位置处的变换单元表示为((subTuIndex==0&&!cu_sbt_pos_flag)||(subTuIndex==1&&cu_sbt_pos_flag)),并且在这种情况下,可以发信号告知并解析tu_cbf_luma。
在实施例中,如果没有将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),如果将SBT应用于当前编译单元(cu_sbt_flag==1),并且如果当前处理的变换单元是在SBT中不存在任何残差信号的位置处的变换单元(即(subTuIndex==0&&cu_sbt_pos_flag)||(subTuIndex==1&&!cu_sbt_pos_flag)),则可以将tu_cbf_luma配置(或推断)为0,而无需将其发信号告知和解析。
iii)将ISP应用于当前编译单元(IntraSubPartitionsSplitType!=ISP_NO_SPLIT),并且当前处理的变换单元不是由ISP划分的变换单元的最后一个(subTuIndex<NumIntraSubPartitions-1)。
iv)将ISP应用于当前的编译单元(IntraSubPartitionsSplitType!=ISP_NO_SPLIT),并且配置tu_cbf_luma而无需发信号告知和解析的条件为假(InferTuCbfLuma==0)。
即,当通过ISP划分变换单元划分时,对于NumIntraSubPartitions变换单元中的至少一个或多个变换单元,tu_cbf_luma必须为1。因此,如果当前变换单元是由ISP划分的最后变换单元(subTuIndex==NumIntraSubPartitions-1),并且如果先前(NumIntraSubPartitions-1)个变换单元的tu_cbf_luma值均为0,则很明显当前变换单元的tu_cbf_luma为1,因此编码器/解码器可以将tu_cbf_luma配置为1,而无需将其发信号告知和解析。
在步骤S2302的第一条件语句中,解码器识别当前处理的树是否包括色度分量,以便解析tu_cbf_cb和tu_cbf_cr。即,如果treeType为SINGLE_TREE,或者如果treeType为DUAL_TREE_CHROMA,则相应的编码树包括色度分量;并且如果treeType为DUAL_TREE_LUMA,则相应的编码树不包括色度分量。因此,如果treeType为DUAL_TREE_LUMA,则步骤S2302中的第一条件语句为假,因此不执行条件语句的内容。如果在步骤S2301中,当前编码树在第一条件语句中包括色度分量,则在步骤S2302的第二条件语句中识别用于解析tu_cbf_cb和tu_cbf_cr的条件。
可以将步骤S2302中第二条件语句为真的情况分类为下述情况i)、ii)和iii)。
i)不将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),并且不将SBT应用于当前编译单元(cu_sbt_flag==0)。
即,ISP和SBT均没有被应用于当前的编译单元,并且未通过发信号告知和解析显式语法元素来划分变换单元。在这种情况下,解码器可以解析tu_cbf_cb和tu_cbf_cr。
ii)不将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),将SBT应用于当前编译单元(cu_sbt_flag==1),并且当前处理的变换单元是在SBT中存在残差信号的位置处的变换单元{(subTuIndex==0&&!cu_sbt_pos_flag)||(subTuIndex==1&&cu_sbt_pos_flag)}。
即,如果将SBT应用于当前编译单元,则可以仅对存在残差信号的位置处的变换单元发信号告知并解析tu_cbf_cb和tu_cbf_cr。另外,对于不存在残差信号的位置处的变换单元,编码器/解码器可以将tu_cbf_cb和tu_cbf_cr配置为0,而无需将其发信号告知和解析。如果cu_sbt_pos_flag为1,则对于由SBT划分的两个变换单元中的第一变换单元(subTuIndex==0),tu_cbf_luma、tu_cbf_cb和tu_cbf_cr均被配置为0,而无需将其发信号告知和解析。如果cu_sbt_pos_flag为0,则对于由SBT划分的两个变换单元中的第二变换单元(subTuIndex==1),可以将tu_cbf_luma、tu_cbf_cb和tu_cbf_cr均配置为0,而无需将其发信号告知和解析。因此,如果将SBT应用于当前块,则可以将存在残差信号的位置处的变换单元表示为((subTuIndex==0&&!cu_sbt_pos_flag)||(subTuIndex==1&&cu_sbt_pos_flag)),并且在这种情况下,可以发信号告知并解析tu_cbf_cb和tu_cbf_cr。
在实施例中,如果没有将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),如果将SBT应用于当前编译单元(cu_sbt_flag==1),并且如果当前处理的TU是在SBT中不存在残差信号的位置处的变换单元{(subTuIndex==0&&cu_sbt_pos_flag)||(subTuIndex==1&&!cu_sbt_pos_flag)},则可以将tu_cbf_cb和tu_cbf_cr配置为0,而无需将其发信号告知和解析。
iii)将ISP应用于当前编译单元(IntraSubPartitionsSplitType!=ISP_NO_SPLIT),并且当前处理的变换单元是由ISP划分的变换单元的最后一个(subTuIndex==NumIntraSubPartitions-1)。
即,如果将ISP应用于当前块,则可以将亮度分量变换块划分为小于编码块的大小的多个变换块。另外,可以不划分色度分量变换块,并且可以被包括在由ISP划分的最后变换单元中。因此,如果subTuIndex<NumIntraSubPartitions-1,则相应的变换单元不包括用于色度分量的残差信号,因此可以将tu_cbf_cb和tu_cbf_cr配置为0,而无需将其发信号告知和解析。
可以根据上述方法来配置tu_cbf_luma、tu_cbf_cb和tu_cbf_cr的值,并且如果每个颜色分量的cbf不为0,则可以在residual_coding语法结构中执行变换系数级别的解析。
图24示出了在将SBT应用于当前编译单元的情况下,在变换单元语法结构中处理tu_cbf_luma、tu_cbf_cb和tu_cbf_cr的另一实施例。在下文中,将主要描述与参考图23描述的方法的不同之处,并且参考图23进行的描述可以以相同的方式应用于从图24的描述中省略的内容。
在本公开的实施例中,在将SBT应用于当前块的情况下,如果对于存在残差信号的位置处的变换单元,tu_cbf_luma为0,则可能不存在通过将变换单元划分为多个部分而获得的编码增益。因此,在应用SBT的情况下,仅当存在残差信号的变换单元的tu_cbf_luma为1时,编码器/解码器才允许SBT。在这种情况下,如果将SBT应用于当前块,则可以将存在残差信号的位置处的tu_cbf_luma配置为1,而无需将其发信号告知并解析,并且可以将不存在残差信号的位置处的tu_cbf_luma配置(或推断)为0,而无需将其发信号告知和解析。
如果在步骤S2401的第一条件语句中当前编码树包括亮度分量,则解码器在步骤S2401的第二条件语句中识别用于解析tu_cbf_luma的条件。可以将第二条件语句为真的情况分类为下述情况i)、ii)和iii)。
i)不将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),并且不将SBT应用于当前编译单元(cu_sbt_flag==0)。
即,ISP和SBT均没有被应用于当前编译单元,并且未通过发信号告知和解析显式语法元素来划分变换单元。在这种情况下,可以解析tu_cbf_luma。
ii)将ISP应用于当前编译单元(IntraSubPartitionsSplitType!=ISP_NO_SPLIT),并且当前处理的变换单元不是由ISP划分的最后变换单元(subTuIndex<NumIntraSubPartitions-1)。
iii)将ISP应用于当前编译单元(IntraSubPartitionsSplitType!=ISP_NO_SPLIT),并且在无需发信号告知和解析的情况下配置tu_cbf_luma的条件为假(InferTuCbfLuma==0)
当由ISP对变换单元进行划分时,对于NumIntraSubPartitions个变换单元中的至少一个或多个变换单元,tu_cbf_luma必须为1。因此,如果当前变换单元是由ISP划分的最后变换单元(subTuIndex==NumIntraSubPartitions-1),并且如果先前(NumIntraSubPartitions-1)个变换单元的tu_cbf_luma值均为0,则很显然用于当前变换单元的tu_cbf_luma的值为1,因此编码器/解码器可以将tu_cbf_luma配置为1,而无需将其发信号告知和解析。
如果在步骤S2401的第二条件语句中不将ISP应用于当前编译单元(IntraSubPartitionsSplitType==ISP_NO_SPLIT),并且如果将SBT应用于当前编译单元(cu_sbt_flag==1),则编码器/解码器可以根据下述i)至iv),配置tu_cbf_luma,而无需将其解析和发信号告知。
i)subTuIndex==0&&cu_sbt_pos_flag
在这种情况下,可以将tu_cbf_luma推断为0。即,由于由当前处理的SBT划分的第一变换单元划分在不存在残差信号的位置处,因此可以将tu_cbf_luma配置为0,而无需将其发信号告知和解析。
ii)subTuIndex==0&&!cu_sbt_pos_flag
在这种情况下,可以将tu_cbf_luma推断为1。即,由于由当前处理的SBT划分的第一变换单元在存在残差信号的位置处,因此可以将tu_cbf_luma配置为1,而无需将其发信号告知和解析。
iii)subTuIndex==1&&cu_sbt_pos_flag
在这种情况下,可以将tu_cbf_luma推断为1。即,由于由当前处理的SBT划分的第二变换单元在存在残差信号的位置处,因此可以将tu_cbf_luma配置为1,而无需将其发信号告知和解析。
iv)subTuIndex==1&&!cu_sbt_pos_flag
在这种情况下,可以将tu_cbf_luma推断为0。即,由于由当前处理的SBT划分的第二变换单元在不存在残差信号的位置处,因此可以将tu_cbf_luma配置为0,而无需将其发信号告知和解析。
图25是图示根据本公开的实施例,用于处理与编译单元有关的语法元素的编译单元语法结构的图。编译单元语法结构可以接收下述作为输入:作为相对于当前图片的左上角的坐标的当前编译单元的左上角的坐标(x0,y0)、作为当前编译单元的宽度的cbWidth、作为当前编译单元的高度的cbHeight、以及作为指示当前正在处理的编码树的类型的变量的treeType。
在实施例中,基于亮度分量和色度分量之间具有高相关性的特性,如果以相同的编码树结构编码亮度分量和色度分量,则可以有效地编码图像。如果treeType为SINGLE_TREE,则可以指示已经以相同的编码树结构编码亮度分量和色度分量,并且当前处理的编译单元可以包括用于亮度分量的编译块(CB)和用于色度分量的编译块。另一方面,如果在仅允许帧内预测的切片/图块中以不同的编码树结构编码亮度分量和色度分量,则可以提高编码效率。
如果树类型是指示对偶树(dual tree)中的亮度分量的树类型的DUAL_TREE_LUMA,则可以指示在对亮度分量和色度分量以彼此不同的编码树结构进行编码的情况下,当前处理的编码树是用于亮度分量的编码树,并且编码树中当前处理的编译单元可以仅包括亮度分量。即,当前编译单元可以仅包括用于亮度分量的编译块。
如果树类型是指示对偶树中的色度分量的树类型DUAL_TREE_CHROMA,则可以指示在以彼此不同的编码树结构编码亮度分量和色度分量的情况下,当前处理的编码树是用于色度分量的编码树,并且编码树中当前处理的编译单元可以仅包括色度分量。即,当前编译单元可以仅包括用于色度分量的编译块。
参考图25,在编译单元语法结构中,编码器/解码器可以发信号告知并解析指示当前编译单元的预测方法是帧内预测、帧间预测还是帧内块复制(IBC)预测的语法元素。可以基于编译单元级别中发信号告知和解析的语法元素来确定预测方法。可以根据预测方法确定变量CuPredMode[x0][y0]的值,并且如果CuPredMode[x0][y0]是MODE_INTRA,则当前编译单元的预测方法可以是帧内预测。如果CuPredMode[x0][y0]是MODE_INTER,则当前编译单元的预测方法可以是帧间预测。如果CuPredMode[x0][y0]是MODE_IBC,则当前编译单元的预测方法可以是帧内块复制预测。
编码器/解码器可以根据编译单元语法结构中的CuPredMode[x0][y0]的值来发信号告知并解析与预测方法有关的语法元素,从而获得预测所需的信息。
在步骤S2501中,如果当前编译单元(或编译块)的预测方法是帧内预测(CuPredMode[x0][y0]==MODE_INTRA),则可以发信号告知和解析pcm-flag,其是指示是否应用作为帧内预测方法之一的脉冲编码调制(PCM)模式的是1比特标志。如果指示在作为高级别的SPS中能够使用PCM(即sps_pcm_enabled_flag==1),并且如果当前编译单元的大小满足特定条件,则编码器/解码器可以将PCM模式应用于当前编译单元。
在实施例中,可以将能够应用PCM模式的大小条件定义为以下情况:块的宽度大于或等于MinIpcmCbSizeY并且小于或等于MaxIpcmCbSizeY,以及块的高度大于或等于MinIpcmCbSizeY并且小于或等于MaxIpcmCbSizeY,如图25所示。只有在能够应用PCM模式时,才可以发信号告知和解析pcm_flag,并且编码器/解码器可以基于pcm_flag确定是否将PCM模式应用于当前编译单元。如果pcm_flag为1,则能够将PCM模式应用于当前编译单元,并且编码器/解码器可以使用预定比特数来编码像素样本,无需进行预测和变换。
另一方面,如果pcm_flag为0,则可以指示将使用非定向或定向帧内预测模式等的帧内预测应用于当前编译单元。如果应用帧内预测,则编码器/解码器可以将当前块周围的重构样本用作参考样本。另外,在本公开的实施例中,可以使用当前块周围的多个重构参考样本线。例如,可以以索引的形式指示在当前块的帧内预测中使用的参考样本线。编码器/解码器可以发信号告知并解析指示参考样本线的语法元素intra_luma_ref_idx,从而确定在当前块的预测中使用的参考样本线索引。
在实施例中,上述多个参考样本线的使用可以限于CTU中的最上的编译单元(即,具有与CTU的左上角的y坐标值相同的左上角的y坐标值的编译单元)。这可以通过对作为当前编译单元的y坐标y0和作为表示亮度编译块的大小的变量的CtbSizeY进行模运算来识别。即,如果y0%CtbSizeY为0,则可以表示当前编译单元是CTU中的最上编译单元之一。在这种情况下,可以不发信号告知intra_luma_ref_idx语法元素,并且解码器可以将相应语法元素的值配置(或推断)为0,而无需对其进行解析。
另外,根据本公开的实施例,为了提高帧内预测的性能并减少残差信号,可以将当前块划分为多个子块,从而执行预测和变换。由于将当前块周围的重构样本用作参考样本来执行帧内预测,所以随着与参考样本的距离增加,预测的精度可能趋于降低,并且残差信号的能量可能趋于增加。因此,如果将当前块划分为多个子块,并且在子块级别执行预测和变换,则能够提高编码效率。基于这种子块划分的帧内预测可以被称为“帧内子划分(ISP)模式”。
在步骤S2502中,解码器可以解析指示是否将ISP应用于当前编译单元的标志(或语法元素)。在图25中,指示是否将ISP应用于当前编译单元的标志可以被称为“ISP模式标志(intra_subpartitions_mode_flag)(或ISP标志)”。如果ISP模式标志为1,则可以指示能够将ISP应用于当前块。可以将能够应用ISP的条件定义(或配置为)参考样本线索引为0(即,intra_luma_ref_idx[x0][y0]==0)、当前编译块的宽度小于或等于亮度变换块的最大大小(MaxTbSizeY)(即cbWidth<=MaxTbSizeY)、以及当前编译块的高度小于或等于亮度变换块的最大大小(即,cbHeight<=MaxTbSizeY)的情况。另外,可以考虑当前编译块的最小样本数。如果当前编译块的样本数(cbWidth*cbHeight)大于表示亮度变换块的最小大小的MinTbSizeY的平方,则编码器/解码器可以应用ISP。如果满足上述所有条件,则编码器/解码器可以将ISP应用于当前亮度编码块,并且可以发信号告知并解析ISP模式标志,从而指示是否将ISP应用于当前块。如果不能应用ISP,则可以不发信号告知和解析ISP模式标志,并且解码器可以将其值配置(或推断)为0。
在步骤S2502中,如果将ISP应用于当前块,则可以发信号告知并解析指示用于子块的划分方法的语法元素。如果ISP模式标志是1,则这可以指示将ISP应用于当前亮度编译块,并且编码器/解码器可以通过发信号告知和解析ISP划分标志(intra_subpartitions_split_flag)来确定用于子块的划分方法。在实施例中,可以省略在步骤S2502中识别用于块大小的条件(即,cbWidth<=MaxTbSizeY&&cbHeight<=MaxTbSizeY)的操作。这是由于可以通过仅识别ISP模式标志来认识到ISP是否被应用于当前块的事实。因此,根据本公开的另一实施例,可以将在步骤S2502中为了解析ISP划分标志而识别的条件语句表示为if(intra_subpartitions_mode_flag[x0][y0]==1)。
在实施例中,编码器/解码器可以基于ISP模式标志和ISP划分标志来配置(确定或导出)指示用于子块的划分的可变ISP划分类型(IntraSubPartitionsSplitType)。如果ISP模式标志为0,则可以不发信号告知和解析ISP划分标志,并且解码器会将其配置为0。在这种情况下,可以将ISP划分类型配置为ISP_NO_SPLIT,其是指示不应用ISP的值。另一方面,如果ISP模式标志为1,则可以发信号告知并解析ISP划分标志。如果ISP划分标志为0,则可以将ISP划分类型配置为ISP_HOR_SPLIT,其是指示水平划分的值;并且如果ISP划分标志为1,则可以将ISP划分类型配置为ISP_VER_SPLIT,其是指示垂直划分的值。
解码器可以在解析与ISP有关的语法元素之后解析与帧内预测模式有关的语法元素,从而确定要应用于当前块的预测模式。
在步骤S2503,如果CuPredMode[x0][y0]不是MODE_INTRA,并且如果treeType不是DUAL_TREE_CHROMA,则作为当前编译单元的预测模式的CuPredMode[x0][y0]可以是MODE_INTER或MODE_IBC,并且解码器可以解析与其有关的语法元素。
在步骤S2504中,解码器可以解析和处理与残差信号有关的语法元素。如果将PCM应用于当前块,则不执行预测和变换。因此,如果pcm_flag[x0][y0]为1,则在步骤S2504中可以不执行与残差信号有关的语法元素的解析和处理。即,仅当PCM不被应用于当前块时,才可以执行与残差信号有关的语法元素的解析和处理。
在步骤S2504中,如果当前块没有被预测为帧内模式(CuPredMode[x0][y0]!=MODE_INTRA),并且该模式不是跳过模式或合并模式(merge_flag[x0][y0]==0),解码器可以解析cu_cbf,其是指示相对于当前编译单元是否存在作为与残差信号有关的语法结构的变换树语法的标志(或语法元素)。
同时,在帧间预测的情况下,残差信号可以集中并分布在该块的任何一侧区域中,并且使用该特性,如果将该块划分为两个区域并且仅对一个区域执行变换和量化,则可以在帧间预测块中有效地压缩残差信号。该技术可以被称为“子块变换(SBT)”。应用SBT的条件可以定义如下。
条件i)帧间预测被应用于当前编译单元(CuPredMode[x0][y0]==MODE_INTER)。
条件ii)指示能够在包括当前编译单元的高级别中使用SBT(sps_sbt_enabled_flag==1)。
在条件ii)中,可以发信号告知作为指示SBT是否能够被应用到高级别的1比特标志的sps_sbt_enabled_flag,并且解码器可以通过解析sps_sbt_enabled_flag,确定SBT是否能够被应用到当前序列。
条件iii)不应用组合帧内-帧间预测(CIIP)(ciip_flag[x0][y0]==0)。
CIIP是合并模式中的特殊预测方法,并且表示合并通过合并候选获得的预测块和通过帧内预测获得的预测块,从而产生用于当前块的预测块的模式。在这种情况下,由于残差信号具有不集中在该块的任何一侧区域的特性,因此即使将SBT应用于对其应用CIIP的块,也不能提高编码效率。因此,可以不将SBT应用于对其应用CIIP的块。
条件iv)当前块的宽度小于或等于能够应用SBT的最大大小(MaxSbtSize),并且当前块的高度小于或等于能够应用SBT的最大大小(cbWidth<=MaxSbtSize&&cbHeight<=MaxSbtSize)
如果在条件iv)中,在高级别中指示了SBT(sps_sbt_enabled_flag==1),则可以发信号告知并解析关于能够对其应用SBT的块的最大大小的信息,并且可以基于关于能够对其应用SBT的块的最大大小的信息来确定MaxSbtSize。
另外,在本公开的实施例中,编码器/解码器可以进一步识别下述条件以便确定是否能够将SBT应用于当前编译单元。
条件a)allowSbtVerH=cbWidth>=8
在条件a)中,allowSbtVerH是指示垂直1/2划分是否可行的变量。如果当前块的宽度为8或更大,则可以将allowSbtVerH配置为真。如果应用垂直1/2划分,则可以将当前编译单元划分为大小为(cbWidth/2)×cbHeight的两个变换单元。
条件b)allowSbtVerQ=cbWidth>=16
在条件b)中,allowSbtVerQ是指示垂直1/4划分是否可行的变量。如果当前块的宽度为16或更大,则可以将allowSbtVerQ配置为真。如果应用垂直的1/4划分,则可以将当前编译单元划分为大小为(cbWidth/4)×cbHeight和(3*cbWidth/4)×cbHeight的两个变换单元。
条件c)allowSbtHorH=cbHeight>=8
在条件c)中,allowSbtHorH是指示水平1/2划分是否可行的变量。如果当前块的高度为8或更高,则可以将allowSbtHorH配置为真。如果应用水平1/2划分,则可以将当前编译单元划分为大小为cbWidth×(cbHeight/2)的两个变换单元。
条件d)allowSbtHorQ=cbHieght>=16
在条件d)中,allowSbtHorQ是指示水平1/4划分是否可行的变量。如果当前块的高度为16或更大,则可以将allowSbtHorQ配置为真。如果应用水平1/4划分,则可以将当前编译单元划分为大小为cbWidth×(cbHeight/4)和cbWidth×(3*cbHeight/4)的两个变换单元。
如果上述所有条件i)、ii)、iii)和iv)均为真,并且如果在条件a)、b)、c)和d)中配置的四个变量中的至少一个为真,则编码器/解码器可以将SBT应用于当前编译单元。可以通过发信号告知和解析作为1比特标志的cu_sbt_flag来确定是否应用SBT。如果cu_sbt_flag是1,则可以表示将SBT应用于当前编译单元,并且编码器/解码器可以使用与SBT有关的附加语法元素来确定划分方法。
另外,在本公开的实施例中,如果将SBT应用于当前块(即,cu_sbt_flag==1),并且如果1/2划分和1/4划分都可行({allowSbtVerH||allowSbtHorH)&&(allowSbtVerQ||allowSbtHorQ)},则可以发信号告知和解析cu_sbt_quad_flag,其是指示1/4划分是否可行的1比特标志。解码器可以通过解析cu_sbt_quad_flag来确定1/2划分或1/4划分。另外,如果水平划分和垂直划分都可行(例如(cu_sbt_quad_flag&&allowSbtVerQ&&allowSbtHorQ)||(!cu_sbt_quad_flag&&allowSbtVerH&&allowSbtHorH)},解码器可以解析cu_sbt_horizontal_flag,其是指示水平划分是否可行的1比特标志。另外,解码器可以解析作为1比特标志的cu_sbt_pos_flag,以便从由SBT划分的两个变换单元当中确定可能存在残差信号的变换单元。
解码器可以基于ISP划分信息、SBT划分信息、cu_cbf等来执行变换单元的划分以及与变换树语法结构中的残差信号有关的语法元素的解析和处理。
图26是图示根据本公开的实施例的变换树语法结构的图。解码器可以通过变换树语法结构来处理变换树划分,并且可以在与变换树的叶节点相对应的变换单元(或变换块)中执行与残差信号有关的语法元素的解析和处理。变换树可以接收下述作为输入:作为划分节点的左上角的坐标的(x0,y0)、作为划分节点的宽度的tbWidth、作为划分节点的高度的tbHeight以及作为指示当前正在处理的编码树的类型的变量的treeType。如果首先调用变换树语法,则(x0,y0)可能与编译单元的左上角的坐标相同,并且tbWidth、tbHeight和treeType可以分别与编译单元的宽度、高度和treeType相同。划分具有与编译单元相同大小的变换树的根节点的情况可以被分类为下述三种情况。
i)根节点和划分节点的大小大于亮度变换块的最大大小(MaxTbSizeY)(tbWidth>MaxTbSizeY||tbHeight>MaxTbSizeY)。
在此,MaxTbSizeY是表示亮度变换块的最大大小的变量,并且可以取决于预定义的变换核的最大大小来确定。随着变换核的最大大小的增加,能量压缩通常会增加,从而提高编码效率。但是,由于能够取决于变换核的最大大小来确定硬件编码器和解码器的管线缓冲器,因此可以考虑复杂度和编译效率来确定变换核的最大大小。MaxTbSizeY可以由编码器和解码器配置为相同的固定常数值,或者也可以根据在高级别中发信号告知的语法元素进行配置。
如果变换树的根节点和划分的中间节点的宽度(tbWidth)或高度(tbHeight)大于MaxTbSizeY,则编码器/解码器可能不会显式地发信号告知并解析该划分方法,并且可能会划分变换树直到划分的节点的宽度和高度都小于或等于MaxTbSizeY。在此,MaxTbSizeY表示最大变换大小。例如,如果对于128×128(与编译单元相同大小)的根节点,MaxTbSizeY为64,则可以将变换树划分为大小为64×64的四个节点,并且大小为64×64的叶节点可能会成为无需进一步划分的变换单元。作为另一个示例,如果对于128×64的根节点,MaxTbSizeY为64,则可以将变换树划分为大小为64×64的两个节点,并且大小为64×64的叶节点可以成为无需进一步划分的变换单元。如果变换树的根节点和划分的中间节点的宽度或高度大于MaxTbSizeY,则解码器可以递归地调用变换树,从而对变换树进行划分,并且如果变换树的根节点和划分的中间节点的宽度和高度都小于或等于MaxTbSizeY,则相应节点可以成为无需进一步划分的变换单元,并且可以解析和处理与变换单元语法结构中的残差信号有关的语法元素。
ii)将SBT应用于当前编译单元(cu_sbt_flag==1)。
与上述情况i)不同,如果应用了SBT,则可以通过在编码单元级别中的显式语法元素的信令来确定划分变换树的方法。
iii)将ISP应用于当前编译单元(IntraSubPartitionsSplitType!=ISP_NO_SPLIT)。
与上述情况i)不同,如果应用ISP,则可以通过在编译单元级别中的显式语法元素的信令来确定划分变换树的方法。如果ISP划分类型是ISP_HOR_SPLIT,则可以指示通过ISP的水平划分,并且如果ISP划分类型是ISP_VER_SPLIT,则可以指示通过ISP的垂直划分。
在上述情况i)、ii)和iii)中,可以将其分类为:无需显式语法元素的信令的情况下执行变换树的划分的情形i);以及通过显式语法元素的信令来指示划分方法的情况ii)和iii)。图26中所示的变换树语法结构可以执行在上述情况i)、ii)和iii)中描述的所有变换树划分,以及图26中的变换树语法结构可以表示为如下表15所示。
[表15]
Figure BDA0003121658400000921
Figure BDA0003121658400000931
在步骤S2601中,如果ISP划分类型是ISP_NO_SPLIT,则可以基于关于节点大小和用于亮度分量的变换块的最大大小的信息来执行隐式划分。
在步骤S2602中,如果ISP划分类型不是ISP_NO_SPLIT,并且如果cu_sbt_flag为1,则编码器/解码器可以基于与在编译单元中发信号告知和解析的SBT有关的语法元素来划分变换树。在步骤S2603中,如果ISP划分类型不是ISP_NO_SPLIT,并且如果cu_sbt_flag为0,则编码器/解码器可以基于ISP划分类型执行水平划分或垂直划分。
在上述图25中描述的编译单元语法结构中,如果将SBT应用于当前块(即,cu_sbt_flag==1),则可以不发信号告知和解析作为与ISP有关的语法元素的ISP模式标志和ISP划分标志,并且可以将ISP划分类型配置为ISP_NO_SPLIT。因此,即使在图26的变换树语法结构中,将SBT应用于当前块,也存在因为ISP划分类型是ISP_NO_SPLIT,所以基于节点的大小和亮度变换块的最大大小来执行变换树的划分,而不是由SBT来执行的问题。对于编码器和解码器两者这都是有问题的。即,在图26的变换树语法结构中,即使cu_sbt_flag为1,也存在因为变量ISP划分类型的值为ISP_NO_SPLIT,所以总是基于关于第一分支中的节点大小和亮度变换块的最大大小的信息来执行变换树的划分,而无法执行由SBT划分变换树的步骤S2602的问题。
图27是图示根据本公开的另一实施例的变换树语法结构的图。为了解决在图26的变换树语法结构中出现的问题,可以将图27中的变换树语法结构表示为下表16所示。
[表16]
Figure BDA0003121658400000941
在图27所示的变换树语法结构中,首先,在步骤S2701中,如果ISP划分类型是ISP_NO_SPLIT,并且如果不将SBT应用于当前块(cu_sbt_flag==0),则可以基于关于节点大小和亮度变换块的最大大小的信息来执行隐式划分。接下来,在步骤S2702中,如果ISP划分类型是ISP_NO_SPLIT,并且如果cu_sbt_flag是1,则可以基于与在编译单元中发信号告知和解析的SBT有关的语法元素来对变换树进行划分。接下来,在步骤S2703和S2704中,如果ISP划分类型不是ISP_NO_SPLIT,并且如果cu_sbt_flag为0,则可以基于ISP划分类型来执行通过ISP的水平划分或垂直划分。
不同于图26中的变换树语法结构,当根据节点的大小和亮度变换块的最大大小检查用于划分变换树的条件时,通过检查ISP信息和SBT信息两者,如果将SBT应用于当前块,则可以不在第一分支中对变换树进行划分,并且根据第二分支中的SBT信息对变换树进行划分。相应地,根据图27中的变换树语法结构的编码器和解码器可以执行以下所有划分:基于节点的大小和亮度变换块的最大大小的划分、通过SBT信息进行的划分以及通过ISP信息进行的划分。
图28是图示根据本公开的另一实施例的变换树语法结构的图。为了解决在图26的变换树语法结构中出现的问题,可以将图28中的变换树语法结构表示为下表17。
[表17]
Figure BDA0003121658400000951
Figure BDA0003121658400000961
在图28所示的变换树语法结构中,首先,在步骤S2801中,如果将SBT应用于当前块(cu_sbt_flag==1),则可以基于与在编译单元中发信号告知和解析的SBT有关的语法元素来划分变换树。接下来,在步骤S2802中,如果cu_sbt_flag是0,并且如果ISP划分类型是ISP_NO_SPLIT,则可以基于关于亮度变换块的节点大小和最大大小的信息来执行隐式划分。接下来,在步骤S2803和S2804中,如果cu_sbt_flag为0,并且如果ISP划分类型不是ISP_NO_SPLIT,则可以基于ISP划分类型来执行通过ISP的水平划分或垂直划分。
不同于图26中的变换树语法结构,通过优先检查用于SBT的划分的条件,如果将SBT应用于当前块,则可以基于SBT信息来划分变换树。此外,如果不将SBT应用于当前块(cu_sbt_flag==0),则可以根据ISP划分类型变量执行基于关于节点大小和亮度变换块的最大大小的信息的隐式划分和通过ISP的划分。
图29是图示根据本公开的实施例的视频信号处理方法的流程图。参考图29,尽管为了便于描述将基于解码器进行描述,但是本公开不限于此,并且可以以基本相同的方式将根据本实施例的视频信号处理方法应用于编码器。
解码器从视频信号中获得指示是否帧内子划分(ISP)模式被应用于当前块的ISP模式标志(S2901)。
如果ISP模式被应用于当前块,则解码器从视频信号中获得指示当前块的划分方向的ISP划分标志(S2902)。
解码器基于划分方向将当前块划分为多个变换块(S2903)。
解码器通过对各个变换块执行逆变换来生成变换块的残差块(S2904)。
解码器基于残差块重构当前块(S2905)。
如上所述,生成残差块的步骤可以包括以下步骤:与当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在当前变换块的水平方向上应用的水平变换类型;与当前块的帧内预测模式无关地,基于当前变换块的高度,从多个预定义的变换类型当中确定在当前变换块的垂直方向上应用的垂直变换类型,以及使用水平变换类型和垂直变换类型,对当前变换块执行逆变换。
另外,如上所述,确定水平变换类型的步骤可以通过以下来执行:如果当前变换块的宽度小于第一阈值或大于第二阈值,则将水平变换类型确定为第一变换类型,并且如果当前变换块的宽度大于或等于第一阈值并且小于或等于第二阈值,则将水平变换类型确定为第二变换类型。
另外,如上所述,确定垂直变换类型的步骤可以通过以下来执行:如果当前变换块的高度小于第一阈值或大于第二阈值,则将垂直变换类型确定为第一变换类型,以及如果当前变换块的高度大于或等于第一阈值并且小于或等于第二阈值,则将垂直变换类型确定为第二变换类型。
另外,如上所述,可以将第一变换类型定义为基于离散余弦变换类型2(DCT-2)的变换核,而将第二变换类型定义为基于离散正弦变换类型7(DST-7)的变换核。
另外,如上所述,可以基于亮度分量的变换块的最小大小来定义第一阈值。
另外,如上所述,可以基于在ISP模式下使用的第二变换类型的最大大小来定义第二阈值。
另外,如上所述,可以将第一阈值定义为4,并且可以将第二阈值定义为16。
另外,如上所述,与当前变换块的高度无关地,可以基于当前变换块的宽度来确定水平变换类型,以及与当前变换块的宽度无关地,可以基于当前变换块的高度来确定垂直变换类型。
可以通过各种手段来实现本发明的上述实施例。例如,可以通过硬件、固件、软件或其组合来实现本发明的实施例。
对于通过硬件实现的情况,可以通过专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器等中的一个或多个来实现根据本发明的实施例的方法。
在通过固件或软件实现的情况下,可以以执行上述功能或操作的模块、过程或函数的形式来实现根据本发明的实施例的方法。可以将软件代码存储在存储器中并由处理器驱动。存储器可以位于处理器内部或外部,并且可以通过各种已知的方式与处理器交换数据。
还可以以诸如由计算机执行的程序模块的包括计算机可执行指令的记录介质的形式来实现某些实施例。计算机可读介质可以是可由计算机访问的任何可用介质,并且可以包括所有易失性、非易失性、可移除和不可移除的介质。另外,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的方法或技术实现的所有易失性、非易失性、可移动和不可移动介质。通常,通信介质包括计算机可读指令、调制数据信号的其他数据(诸如数据结构或程序模块)或其他传输机制,并且包括任何信息传输介质。
本发明的上述描述仅用于说明目的,并且将会理解,本发明所属的本领域的普通技术人员可以在不改变本发明的技术思想或者基本特征的情况下对本发明进行改变,并且本发明可以以其他特定形式容易地被修改。因此,上述实施例是说明性的,并且在所有方面均不受限制。例如,被描述为单个实体的每个组件可以被分布和实现,并且同样,被描述为被分布的组件也可以以关联的方式被实现。
本发明的范围由所附权利要求书而不是上述详细描述来限定,并且从所附权利要求书的含义和范围及其等效物导出的所有改变或修改都应解释为包括在本发明的范围内。
工业适用性
如上所述,为说明目的,已经公开了本公开的优选实施例,并且本领域技术人员可以在不脱离所附权利要求中公开的技术精神和范围的情况下对优选实施例执行改进、修改、替换或补充到各种其他实施例中。

Claims (16)

1.一种用于处理视频信号的方法,所述方法包括以下步骤:
从所述视频信号中获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;
如果所述ISP模式被应用于所述当前块,则从所述视频信号中获得指示所述当前块的划分方向的ISP划分标志;
基于所述划分方向,将所述当前块划分为多个变换块;
通过对所述变换块的每一个执行逆变换来生成所述变换块的残差块;以及
基于所述残差块重构所述当前块,
其中,生成所述残差块的步骤包括以下步骤:
与所述当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在所述当前变换块的水平方向上应用的水平变换类型;
与所述当前块的帧内预测模式无关地,基于所述当前变换块的高度,从所述多个预定义的变换类型当中确定在所述当前变换块的垂直方向上应用的垂直变换类型;以及
使用所述水平变换类型和所述垂直变换类型,对所述当前变换块执行逆变换。
2.根据权利要求1所述的处理视频信号的方法,其中,确定所述水平变换类型的步骤包括以下步骤:
如果所述当前变换块的宽度小于第一阈值或大于第二阈值,则确定所述水平变换类型为第一变换类型;以及
如果所述当前变换块的宽度大于或等于所述第一阈值并且小于或等于所述第二阈值,则确定所述水平变换类型为第二变换类型,以及
其中,确定所述垂直变换类型的步骤包括以下步骤:
如果所述当前变换块的高度小于第一阈值或大于第二阈值,则确定所述垂直变换类型为第一变换类型;以及
如果所述当前变换块的高度大于或等于所述第一阈值并且小于或等于所述第二阈值,则确定所述垂直变换类型为第二变换类型。
3.根据权利要求2所述的处理视频信号的方法,其中,将所述第一变换类型定义为基于离散余弦变换类型-2(DCT-2)的变换核,以及将所述第二变换类型定义为基于离散正弦变换类型-7(DST-7)的变换核。
4.根据权利要求2所述的处理视频信号的方法,其中,基于亮度分量的变换块的最小大小定义所述第一阈值。
5.根据权利要求2所述的处理视频信号的方法,其中,基于所述ISP模式中使用的所述第二变换类型的最大大小定义所述第二阈值。
6.根据权利要求2所述的处理视频信号的方法,其中,将所述第一阈值定义为4,以及将所述第二阈值定义为16。
7.根据权利要求1所述的处理视频信号的方法,其中,与所述当前变换块的高度无关地,基于所述当前变换块的宽度确定所述水平变换类型,以及
其中,与所述当前变换块的宽度无关地,基于所述当前变换块的高度确定所述垂直变换类型。
8.一种用于处理视频信号的设备,所述设备包括处理器,
其中,所述处理器被配置为:
从所述视频信号中获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;
如果所述ISP模式被应用于所述当前块,则从所述视频信号中获得指示所述当前块的划分方向的ISP划分标志;
基于所述划分方向,将所述当前块划分为多个变换块;
通过对所述变换块的每一个执行逆变换来生成所述变换块的残差块;以及
基于所述残差块重构所述当前块,以及
其中,所述处理器被配置为:
与所述当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在所述当前变换块的水平方向上应用的水平变换类型;
与所述当前块的帧内预测模式无关地,基于所述当前变换块的高度,从所述多个预定义的变换类型当中确定在所述当前变换块的垂直方向上应用的垂直变换类型;以及
通过使用所述水平变换类型和所述垂直变换类型对所述当前变换块执行逆变换来生成所述残差块。
9.根据权利要求8所述的处理视频信号的设备,其中,所述处理器被配置为:
如果所述当前变换块的宽度小于第一阈值或大于第二阈值,则确定所述水平变换类型为第一变换类型;以及
如果所述当前变换块的宽度大于或等于所述第一阈值并且小于或等于所述第二阈值,则确定所述水平变换类型为第二变换类型;
如果所述当前变换块的高度小于第一阈值或大于第二阈值,则确定所述垂直变换类型为第一变换类型;以及
如果所述当前变换块的高度大于或等于所述第一阈值并且小于或等于所述第二阈值,则确定所述垂直变换类型为第二变换类型。
10.根据权利要求9所述的处理视频信号的设备,其中,将所述第一变换类型定义为基于离散余弦变换类型-2(DCT-2)的变换核,以及将所述第二变换类型定义为基于离散正弦变换类型-7(DST-7)的变换核。
11.根据权利要求9所述的处理视频信号的设备,其中,基于亮度分量的变换块的最小大小定义所述第一阈值。
12.根据权利要求9所述的处理视频信号的设备,其中,基于所述ISP模式中使用的所述第二变换类型的最大大小定义所述第二阈值。
13.根据权利要求9所述的处理视频信号的设备,其中,将所述第一阈值定义为4,以及将所述第二阈值定义为16。
14.根据权利要求8所述的处理视频信号的设备,其中,与所述当前变换块的高度无关地,基于所述当前变换块的宽度确定所述水平变换类型,以及
其中,与所述当前变换块的宽度无关地,基于所述当前变换块的高度确定所述垂直变换类型。
15.一种用于处理视频信号的方法,所述方法包括以下步骤:
编码指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;
如果所述ISP模式被应用于所述当前块,则编码指示所述当前块的划分方向的ISP划分标志;
基于所述划分方向,将所述当前块划分为多个块;
通过对所述划分的块的残差信号执行变换来生成所述划分的块的变换块;以及
通过编码所述变换块来生成比特流,
其中,生成所述变换块的步骤包括以下步骤:
与所述当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在所述当前变换块的水平方向上应用的水平变换类型;
与所述当前块的帧内预测模式无关地,基于所述当前变换块的高度,从所述多个预定义的变换类型当中确定在所述当前变换块的垂直方向上应用的垂直变换类型;以及
使用所述水平变换类型和所述垂直变换类型对所述当前变换块执行变换。
16.一种非暂时性计算机可执行介质,其存储被配置为由计算设备的一个或多个处理器执行的计算机可执行组件,所述计算机可执行组件被配置为:
获得指示帧内子划分(ISP)模式是否被应用于当前块的ISP模式标志;
如果所述ISP模式被应用于所述当前块,则获得指示所述当前块的划分方向的ISP划分标志;
基于所述划分方向,将所述当前块划分为多个变换块;
通过对所述变换块的每一个执行逆变换来生成所述变换块的残差块;以及
基于所述残差块重构所述当前块,以及
其中,所述计算机可执行组件被配置为:
与所述当前块的帧内预测模式无关地,基于当前变换块的宽度,从多个预定义的变换类型当中确定在所述当前变换块的水平方向上应用的水平变换类型;
与所述当前块的帧内预测模式无关地,基于所述当前变换块的高度,从所述多个预定义的变换类型当中确定在所述当前变换块的垂直方向上应用的垂直变换类型;以及
使用所述水平变换类型和所述垂直变换类型对所述当前变换块执行逆变换,由此生成所述残差块。
CN202080007132.0A 2019-01-12 2020-01-13 使用多变换核处理视频信号的方法和设备 Active CN113196780B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
KR10-2019-0004278 2019-01-12
KR20190004278 2019-01-12
KR20190007044 2019-01-18
KR10-2019-0007044 2019-01-18
KR20190027876 2019-03-12
KR10-2019-0027876 2019-03-12
KR20190036421 2019-03-29
KR10-2019-0036421 2019-03-29
PCT/KR2020/000638 WO2020145805A1 (ko) 2019-01-12 2020-01-13 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
CN113196780A true CN113196780A (zh) 2021-07-30
CN113196780B CN113196780B (zh) 2024-10-22

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112740703A (zh) * 2019-03-03 2021-04-30 华为技术有限公司 编码器、解码器和用于变换处理的对应方法
CN116868567A (zh) * 2021-10-13 2023-10-10 腾讯美国有限责任公司 自适应多变换集合选择

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0500306A2 (en) * 1991-02-21 1992-08-26 Matsushita Electric Industrial Co., Ltd. Orthogonal transformation encoder
EP1003336A1 (en) * 1998-11-17 2000-05-24 STMicroelectronics S.r.l. Video pictures compression and coding with decision step for field/frame and motion vectors DCT
CN101252694A (zh) * 2008-03-31 2008-08-27 清华大学 基于块的视频解码的帧存储压缩和地址映射系统
CA2856198A1 (en) * 2011-10-17 2013-04-25 Kt Corporation Method and apparatus for encoding/decoding image
WO2016163616A1 (ko) * 2015-04-08 2016-10-13 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
CN106658012A (zh) * 2017-01-06 2017-05-10 华南理工大学 一种vp9解码器并行流水线任务划分方法
WO2017082670A1 (ko) * 2015-11-12 2017-05-18 엘지전자 주식회사 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치
CN107071474A (zh) * 2017-04-13 2017-08-18 西安电子科技大学 基于satd复用的hevc帧内预测方法
CN108141593A (zh) * 2015-07-31 2018-06-08 港大科桥有限公司 用于针对深度视频的高效帧内编码的基于深度不连续的方法
CN108712651A (zh) * 2012-06-29 2018-10-26 韩国电子通信研究院 视频解码方法、视频编码方法和计算机可读介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0500306A2 (en) * 1991-02-21 1992-08-26 Matsushita Electric Industrial Co., Ltd. Orthogonal transformation encoder
EP1003336A1 (en) * 1998-11-17 2000-05-24 STMicroelectronics S.r.l. Video pictures compression and coding with decision step for field/frame and motion vectors DCT
CN101252694A (zh) * 2008-03-31 2008-08-27 清华大学 基于块的视频解码的帧存储压缩和地址映射系统
CA2856198A1 (en) * 2011-10-17 2013-04-25 Kt Corporation Method and apparatus for encoding/decoding image
CN108712651A (zh) * 2012-06-29 2018-10-26 韩国电子通信研究院 视频解码方法、视频编码方法和计算机可读介质
CN108712650A (zh) * 2012-06-29 2018-10-26 韩国电子通信研究院 视频解码方法、视频编码方法和计算机可读介质
WO2016163616A1 (ko) * 2015-04-08 2016-10-13 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
CN108141593A (zh) * 2015-07-31 2018-06-08 港大科桥有限公司 用于针对深度视频的高效帧内编码的基于深度不连续的方法
WO2017082670A1 (ko) * 2015-11-12 2017-05-18 엘지전자 주식회사 영상 코딩 시스템에서 계수 유도 인트라 예측 방법 및 장치
CN106658012A (zh) * 2017-01-06 2017-05-10 华南理工大学 一种vp9解码器并行流水线任务划分方法
CN107071474A (zh) * 2017-04-13 2017-08-18 西安电子科技大学 基于satd复用的hevc帧内预测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SANTIAGO DE LUXÁN HERNÁNDEZ,: "CE3: Line-based intra coding mode (Tests 2.1.1 and 2.1.2)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 3–12 OCT. 2018, pages 2 *
YONGBING LIN, ETAL: "Prediction dependent transform for intra and inter frame coding", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 10TH MEETING: SAN DIEGO, US, 10–20 APR. 2018 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112740703A (zh) * 2019-03-03 2021-04-30 华为技术有限公司 编码器、解码器和用于变换处理的对应方法
CN113727120A (zh) * 2019-03-03 2021-11-30 华为技术有限公司 编码器、解码器和用于变换处理的对应方法
CN112740703B (zh) * 2019-03-03 2022-05-24 华为技术有限公司 编码器、解码器和用于变换处理的对应方法
CN115052163A (zh) * 2019-03-03 2022-09-13 华为技术有限公司 编码器、解码器和用于变换处理的对应方法
CN113727120B (zh) * 2019-03-03 2022-09-23 华为技术有限公司 译码方法、装置、编码器和解码器
CN115052163B (zh) * 2019-03-03 2024-04-09 华为技术有限公司 编码器、解码器和用于变换处理的对应方法
US12047570B2 (en) 2019-03-03 2024-07-23 Huawei Technologies Co., Ltd. Encoder, a decoder, and corresponding methods for transform process in video coding
CN116868567A (zh) * 2021-10-13 2023-10-10 腾讯美国有限责任公司 自适应多变换集合选择
CN116868567B (zh) * 2021-10-13 2024-06-11 腾讯美国有限责任公司 视频解码方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
US11539973B2 (en) 2022-12-27
WO2020145805A1 (ko) 2020-07-16
KR20230174294A (ko) 2023-12-27
US20230100855A1 (en) 2023-03-30
KR102657248B1 (ko) 2024-04-25
US20210266581A1 (en) 2021-08-26
KR20210057189A (ko) 2021-05-20

Similar Documents

Publication Publication Date Title
KR102657248B1 (ko) 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
CN112438050B (zh) 使用二次变换的视频信号处理方法及装置
CN113785566B (zh) 基于帧内预测处理视频信号的方法和设备
US11432013B2 (en) Video signal processing method and apparatus using multiple transform kernel
US11979554B2 (en) Intra prediction-based video signal processing method and device
US11949916B2 (en) Method and apparatus for encoding and decoding video signals using multiple transform kernels
CN112106364B (zh) 使用参考样本的视频信号处理方法及设备
KR20210114386A (ko) 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
KR20210084567A (ko) 화면 내 예측 필터링을 이용한 비디오 신호 처리 방법 및 장치
CN113454992A (zh) 基于帧内预测的视频信号处理方法和设备
CN112823526A (zh) 通过使用交叉分量线性模型来处理视频信号的方法和设备
CN113196780B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220901

Address after: Gyeonggi Do, South Korea

Applicant after: HUMAX Co.,Ltd.

Address before: Gyeonggi Do, South Korea

Applicant before: WILUS INSTITUTE OF STANDARDS AND TECHNOLOGY Inc.

Applicant before: HUMAX Co.,Ltd.

GR01 Patent grant