CN111988618B - 进行解码、编码的方法、解码端和编码端 - Google Patents

进行解码、编码的方法、解码端和编码端 Download PDF

Info

Publication number
CN111988618B
CN111988618B CN201910430956.8A CN201910430956A CN111988618B CN 111988618 B CN111988618 B CN 111988618B CN 201910430956 A CN201910430956 A CN 201910430956A CN 111988618 B CN111988618 B CN 111988618B
Authority
CN
China
Prior art keywords
current block
block
zero
mode
subblock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910430956.8A
Other languages
English (en)
Other versions
CN111988618A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910430956.8A priority Critical patent/CN111988618B/zh
Publication of CN111988618A publication Critical patent/CN111988618A/zh
Application granted granted Critical
Publication of CN111988618B publication Critical patent/CN111988618B/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本公开提供了一种进行解码、编码的方法、解码端和编码端,属于视频编解码技术领域。所述方法包括:获取当前块的编码数据,如果当前块满足解析条件,则获取SBT标志位的标识,如果该标识为第一数值,则获取当前块的子块划分方式、当前块的非零子块的位置和非零子块的尺寸模式,根据当前块的子块划分方式和非零子块的尺寸模式,在SBT变换对应的变换核对中,选择非零子块对应的目标变换核对,在SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同,根据目标变换核对,对非零子块反量化后的数据进行反变换的处理,得到非零子块的残差系数,进而得到当前块的残差系数。采用本公开,可以提升编解码性能。

Description

进行解码、编码的方法、解码端和编码端
技术领域
本公开涉及视频编解码技术领域,特别涉及一种进行解码、编码的方法、解码端和编码端。
背景技术
随着互联网技术和计算机技术的发展,视频应用程序越来越多,用户对视频应用程序中高清视频的需求越来越大,但是由于高清视频的数据量比较大,想要高清视频在有限的网络带宽中传输,需要对高清视频进行编码处理。一般编码处理包括:帧内预测(或帧间预测)、变换、量化、熵编码、环内滤波等环节。
相关技术中,在进行帧间预测的变换时,通常是选择某个预设变换核对(变换核对是由水平变换核和垂直变换核组成的变换核对),对当前块进行变换处理,得到变换系数。相应的,解码端在变换对应的逆变换,也是选择编码时使用的预设变换核对,对当前块进行逆变换处理,得到当前块对应的残差数据。
这样,由于对当前块采用不同的变换核对进行变换,压缩效果大不相同,所以使用同一个预设变换核对,对所有当前块进行变换处理,有可能会导致编解码性能较差。
发明内容
为了解决编解码性能较差的问题,本公开实施例提供了一种进行解码、编码的方法、解码端和编码端。所述技术方案如下:
第一方面,提供了一种进行解码的方法,所述方法包括:
获取当前块的编码数据;
如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;
如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;
根据所述当前块的子块划分方式、所述非零子块的位置、所述非零子块的尺寸模式和所述非零子块的残差系数,得到所述当前块的残差系数。
作为一种可能的实施方式,所述方法还包括:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
作为一种可能的实施方式,所述解析条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核;和/或,
在所述SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
作为一种可能的实施方式,所述至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
作为一种可能的实施方式,所述第一变换核为离散正弦变换DST7,所述第二变换核为 DCT8。
作为一种可能的实施方式,所述第一变换核为DCT8,所述第二变换核为DST7。
作为一种可能的实施方式,所述根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
如果所述当前块的尺寸信息不满足限制条件,则根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
所述方法还包括:
如果所述当前块的尺寸信息满足所述限制条件,则确定所述当前块的非零子块的目标变换核对为(DCT2,DCT2)。
作为一种可能的实施方式,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码。
作为一种可能的实施方式,所述获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,包括:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
作为一种可能的实施方式,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息;
所述在所述编码数据中,获取所述当前块的子块划分方式,包括:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
第二方面,提供了一种进行编码的方法,所述方法包括:
获取当前块;
如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定所述SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
将所述SBT标志位的编码数据、所述非零子块的位置的编码数据添加至所述当前块的编码数据中。
作为一种可能的实施方式,所述SBT变换条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间预测合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,所述方法还包括:
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;或者,
对所述SBT标志位基于两个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。
作为一种可能的实施方式,所述将所述SBT标志位的编码数据、所述非零子块的位置的编码数据添加至所述当前块的编码数据中,包括:
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
第三方面,提供了一种进行解码的解码端,所述解码端包括:
获取模块,用于获取当前块的编码数据;如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
确定模块,用于至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
解码模块,用于根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;根据所述当前块的子块划分方式、所述非零子块的位置、所述非零子块的尺寸模式和所述非零子块的残差系数,得到所述当前块的残差系数。
作为一种可能的实施方式,所述确定模块,还用于:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
作为一种可能的实施方式,所述解析条件为所述当前块的宽和高均小于第一阈值、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核;和/或,
在所述SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
作为一种可能的实施方式,所述确定模块,用于:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
作为一种可能的实施方式,所述第一变换核为DST7,所述第二变换核为DCT8。
作为一种可能的实施方式,所述第一变换核为DCT8,所述第二变换核为DST7。
作为一种可能的实施方式,所述确定模块,用于:
如果所述当前块的尺寸信息不满足限制条件,则根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
所述确定模块,还用于:
如果所述当前块的尺寸信息满足所述限制条件,则确定所述当前块的非零子块的目标变换核对为(DCT2,DCT2)。
作为一种可能的实施方式,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码。
作为一种可能的实施方式,所述获取模块,用于:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
作为一种可能的实施方式,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息;
所述获取模块,用于:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
第四方面,提供了一种进行编码的编码端,所述编码端包括:
获取模块,用于获取当前块;
确定模块,用于如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用 SBT变换,则确定所述SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
编码模块,用于根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;将所述SBT标志位的编码数据、所述非零子块的位置的编码数据添加至所述当前块的编码数据中。
作为一种可能的实施方式,所述SBT变换条件为所述当前块的宽和高均小于第一阈值、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间预测合并预测模式之外的帧间预测模式。
作为一种可能的实施方式,所述编码模块,还用于:
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;或者,
对所述SBT标志位基于两个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。
第五方面,提供了一种进行解码的方法,所述方法包括:
获取当前块的编码数据;
如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;
如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;
根据所述当前块的子块划分方式、所述非零子块的位置和所述非零子块的尺寸模式、所述非零子块的残差系数,得到所述当前块的残差系数;
其中,如果所述编码数据中存在所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,则在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码。
作为一种可能的实施方式,在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码时,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码或者基于一个上下文模型的自适应二进制算术编码进行编码。
作为一种可能的实施方式,所述至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
作为一种可能的实施方式,所述方法还包括:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
作为一种可能的实施方式,所述解析条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,所述获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,包括:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
作为一种可能的实施方式,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息,所述子块划分方式至少使用一个上下文模型的自适应二进制算术编码进行编码;
所述在所述编码数据中,获取所述当前块的子块划分方式,包括:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核;和/或,
在所述SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
作为一种可能的实施方式,所述第一变换核为离散正弦变换DST7,所述第二变换核为 DCT8。
作为一种可能的实施方式,所述第一变换核为DCT8,所述第二变换核为DST7。
作为一种可能的实施方式,所述根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
如果所述当前块的尺寸信息不满足限制条件,则根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
所述方法还包括:
如果所述当前块的尺寸信息满足所述限制条件,则确定所述当前块的非零子块的目标变换核对为(DCT2,DCT2)。
第六方面,提供了一种进行编码的方法,所述方法包括:
获取当前块;
如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定所述SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对;
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,对所述SBT标志位进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
作为一种可能的实施方式,所述对所述SBT标识位的标识进行编码,包括:
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码或对所述SBT 标志位基于两个上下文模型的自适应二进制算术编码进行编码。
作为一种可能的实施方式,所述SBT变换条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间预测合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
第七方面,提供了一种进行解码的解码端,所述解码端包括:
获取模块,用于获取当前块的编码数据;如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
确定模块,用于至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
解码模块,用于根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;
根据所述当前块的子块划分方式、所述非零子块的位置和所述非零子块的尺寸模式、所述非零子块的残差系数,得到所述当前块的残差系数。
其中,在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码。
第八方面,提供了一种进行编码的编码端,所述编码端包括:
获取模块,用于获取当前块;
确定模块,用于如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用 SBT变换,则确定所述SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对;
编码模块,用于:
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,对所述SBT标志位进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
第九方面,提供了一种进行解码的解码端,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述第一方面和第五方面所述的方法步骤。
第十方面,提供了一种进行编码的编码端,所述编码端包括:包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述第二方面和第六方面的方法步骤。
第十一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面至第二方面或者第五方面和第六方面任一方面所述的方法步骤。
第十二方面,提供了一种进行编码的和解码的系统,所述系统包括编码端和解码端,其中:
所述编码端,如上述第四方面所述的编码端;所述解码端,如上述第三方面所述的解码端;或者,所述编码端,如上述第八方面所述的编码端,所述解码端,如上述第七方面所述的解码端。
本公开实施例提供的技术方案带来的有益效果至少包括:
本公开实施例中,解码端可以获取当前块的编码数据,如果当前块满足解析条件,则在编码数据中解析子块的帧间变换SBT标志位的标识,如果SBT标志位的标识为第一数值,则在编码数据中解析当前块的子块划分方式和当前块的非零子块的尺寸模式,根据当前块的子块划分方式和当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对,其中,在SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同,根据目标变换核对,对当前块的非零子块反量化后的数据进行反变换的处理,得到非零子块的残差系数,根据当前块的子块划分方式、非零子块的位置、非零子块的尺寸模式和非零子块的残差系数,得到当前块的残差系数。这样,由于非零子块的不同尺寸模式对应的变换核对完全不相同或不完全相同,所以在同一位置的不同尺寸模式的非零子块对应有不同的变换核对,可以有更多的变换组合,可以提升编解码性能。
附图说明
图1是本公开实施例提供的一种块的划分类型示意图;
图2是本公开实施例提供的一种CTU划分成CU的示意图;
图3是本公开实施例提供的常用的三种块的示意图;
图4是本公开实施例提供的一种进行编码的示意图;
图5是本公开实施例提供的一种分布信号的示意图;
图6是本公开实施例提供的一种残差数据分布的示意图;
图7是本公开实施例提供的一种进行解码的方法流程示意图;
图8是本公开实施例提供的一种进行子块的帧间变换示意图;
图9是本公开实施例提供的一种进行编码的方法流程示意图;
图10是本公开实施例提供的一种进行解码的方法流程示意图;
图11是本公开实施例提供的一种进行编码的方法流程示意图;
图12是本公开实施例提供的一种进行解码的解码端的结构示意图;
图13是本公开实施例提供的一种进行编码的编码端的结构示意图;
图14是本公开实施例提供的一种进行解码的解码端的结构示意图;
图15是本公开实施例提供的一种进行编码的编码端的结构示意图;
图16是本公开实施例提供的一种编码端的结构示意图;
图17是本公开实施例提供的一种解码端的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
本公开提供了一种进行编码和进行解码的方法,进行编码的方法的执行主体为编码端,进行解码的方法的执行主体可以是解码端,其中,编码端或解码端可以是服务器、电脑、手机等能对视频数据进行编码和/或解码的设备。
其中,编码端或解码端中可以设置有处理器、存储器和收发器等,处理器可以用于进行编码和/或解码的处理,存储器可以用于存储进行编码和/或解码过程中需要的数据以及产生的数据,收发器可以用于接收以及发送数据,如获取视频数据等。
在进行实施前,首先对本公开实施例可能涉及的概念进行解释:
变换核(transform kernel):
在视频编码中,变换是实现视频数据压缩必不可少的阶段,能够使信号的能量更加集中,而基于DCT(Discrete Cosine Transform,离散余弦变换)/DST(Discrete SineTransform,离散正弦变换)的变换技术一直是视频编码主流的变换技术。DCT和DST根据基函数的不同又具体分为多种变换核,表零给出了常用的五种变换核的基函数。
表零
Figure BDA0002068965190000141
正变换(forward transform)和逆变换(inverse transform):
在视频编码过程中,变换过程包含了正变换和逆变换过程,又叫前向变换和反向变换,其中正变换是将一个二维残差数据(残差系数)转换成能量更加集中的二维频谱信号(变换系数),变换系数再经过量化过程可以有效去除高频成分,保留中低频成分,起到了压缩的作用。用矩阵形式表示如公式(1):
F=B·f·AT(1)
其中,M表示残差块宽度,N表示残差块高度,f表示NxM维的原始残差数据,F表示NxM维的频域信号。A和B表示MxM和NxN维的变换矩阵,它们均满足正交性。
逆变换又称反变换,是正变换的逆过程,即通过正交变换矩阵A和B,将频域信号F转换成时域残差数据f。用矩阵形式表示为公式(2):
f=BT·F·A (2)
水平变换(Horizental transform)和垂直变换(Vertical transform):
在视频编码的变换阶段,输入的是一个二维残差数据,如公式(3)所示,X=A·fT,则F=B·XT
F=B·f·AT=B·(A·fT)T (3)
因此一个二维残差数据的正变换可以通过两次一维的正变换方式实现,第一次正变换后得到一个MxN的信号X,去除了二维残差数据的水平方向像素之间的相关性,因此第一次正变换称为水平变换,称A为水平变换矩阵,第二次正变换去除了二维残差数据的垂直方向像素之间的相关性,因此第二次正变换称为垂直变换,称B为垂直变换矩阵。
变换核对(Transform pair):
在下一代视频编码标准中,TU(Transmission Unit,变换单元)支持矩阵块,因此M不一定等于N,因此A和B的维度不一定相等,除此之外,下一代视频编码标准还支持A和B 不是同一种变换核生产的变换矩阵,因此在变换中存在A和B对应的变换核组成的变换核对{H,V},其中H称为水平变换核,V称为垂直变换核。
块划分技术(Block Parition)
在HEVC(High Efficiency Video Coding,高效率的视频压缩)中,一个64x64大小的CTU (Coding Tree Unit,编码树单元)使用四叉树递归划分成CU(Coding Unit,编码单元)。在叶子节点CU级确定是否使用帧内编码或者帧间编码。CU可以进一步划分成两个或者四个 PU(Prediction Unit,预测单元),同一个PU内使用相同的预测信息。在预测完成后得到残差数据后,一个CU可以进一步四叉划分成多个TU。
但是在新提出的VVC(Versatile Video Coding,通用视频编码)中的块划分技术有了较大变化。一种混合了二叉树/三叉树/四叉树((binary/ternary/quaternary)tree(BT/TT/QT))划分结构取代了原先的划分模式,取消了原先CU,PU,TU的概念的区分,支持了CU的更灵活的划分方式。CU可以是正方形也可以是矩形划分,CTU首先进行四叉树的划分,然后四叉树划分的叶子节点可以进一步进行二叉树和三叉树的划分。也就是说总共有五种划分类型,四叉树划分,水平二叉树划分,垂直二叉树划分,水平三叉树划分和垂直三叉树划分,如图 1所示,表示了五种划分类型,在图1中,(a)表示不划分,(b)表示四叉树划分,(c)水平二叉树划分,(d)垂直二叉树划分,(e)水平三叉树划分,(f)垂直三叉树划分。如图2所示,提供一个CTU划分成CU的示例图。
因此,基于上述划分方式,块通常存在三种形状,如图3所示,在图3中,(a)表示宽大于高的块,(b)宽等于高的块,(c)宽小于高的块。
SBT(Sub-Block Transform,子块的帧间变换),SBT是基于子块的变换,又由于只运用于帧间预测得到的残差块,因此称为基于子块的帧间变换。一个完整的残差块被划分成两个子块,其中一个子块需要进行变换编码,另一个子块残差强制置0,不需要进行变换编码。
帧间预测,是指利用视频信号在时间域上的相关性,使用邻近已经编码图像像素预测当前图像的图像像素,以达到去除视频时域冗余的目的。
熵编码,是指按照信息熵的原理进行的无损编码方式,它处于视频压缩的最后一个处理模块,把一系列用于表示视频序列的元素符号转变为一个用来传输或存储的二进制码流,输入的符号可能包括量化后的变换系数、运动矢量信息、预测模式信息、变换量化相关语法等。熵编码模块输出的数据即为原始视频压缩后的最终码流,熵编码可以有效的去除这些视频元素符号的统计冗余,是保证视频编码压缩效率的重要工具。
本公开实施例提供了一种常见的编码框架,如图4所示,完整的视频编码方法一般包括预测、变换、量化、熵编码、环内滤波等环节。其中预测分为帧内预测和帧间预测,帧内预测是考虑到在图像中,相邻块之间存在很强的空域相关性,因此可以利用周围已经重建的像素作为参考像素对当前未编码块进行预测,因此只需要对残差数据(原始信号-预测信号)进行后续编码处理,而不是对原始信号进行编码,有效去除了空域上的冗余,大大提高了视频信号的压缩效率。帧间预测是指利用视频信号时间域上的相关性,使用邻近已编码图像像素预测当前图像的像素,已达到去除视频时域冗余的目的。在帧间预测模块,由于视频存在很强的时域相关性,即时域相邻的两帧图像有很多相似图像块,当前帧的图像块往往在相邻参考图像中进行运动搜索,找到与当前块最匹配的块作为参考块。由于参考块与当前块相似度高,两者的差值非常小,因此编码差值的码率开销通常远小于直接编码当前块像素值带来的码率开销。
在上述的变换过程中,对于同一TU(也可以称为是残差块)采用不同的变换对对残差块进行压缩,压缩的效果大不相同。这是由变换核本身基函数所决定的,如图5所示,对应DCT2、 DST7和DCT8三种变换核基函数,输入信号位为64点。从图中的零阶基函数可以看出,DCT2 对均匀分布的信号具有较强的能量集中效果,并且形成的直流分量是输入信号均值的倍数, DST7对幅值递增的输入信号具有较强的能量集中效果,DCT8对幅值递减的输入信号具有较强的能量集中效果。
为了更直观感受不同变换核与残差特性的关系,如图6所示,5种不同的水平垂直变换核对代表的是不同类型的残差分布情况,对于(DCT2,DCT2)变换核类型,代表的是当前块的残差分布均匀,对于(DST7,DST7)变换核类型,代表的是当前块的残差分布从左到右,从上到下依次变大,主要分布在当前块的右下角,类似地,(DCT8,DST7)代表残差主要分布在当前块的左下角,(DST7,DCT8)代表残差主要分布在当前块的右上角,(DCT8, DCT8)代表残差主要分布在当前块的左上角。
本公开实施例提供了一种进行解码的方法,该方法的执行流程可以如图7所示。
步骤701,解码端获取当前块的编码数据。
其中,一般在编解码时,均是对一个小块进行处理,该小块可以称为是当前块。例如,一帧视频数据分为四个小块,每个小块在被编码或解码时,可以被称为是当前块。
在实施中,解码端有编码数据要进行解码时,可以获取编码数据(可以是获取自编码端,也可以是获取自存储设备)。例如,终端在播放视频数据时,可以从服务器获取视频数据的编码数据,在对视频数据进行解码后,进行播放。
步骤702,如果当前块满足解析条件,则解码端在编码数据中获取子块的帧间变换SBT 标志位的标识。
在实施中,解码端在获取到当前块的编码数据之后,可以获取存储的解析条件,查看当前块是否满足解析条件。如果满足解析条件,则可以在当前块的编码数据中,解析得到SBT (Sub-Block Transform,子块的帧间预测)标志位的标识。
需要说明的是,语法规定了SBT标志位的位置,所以解码端可以解析得到。
作为一种可能的实施方式,解析条件为当前块的尺寸信息满足尺寸条件、当前块为亮度块、当前块为帧间预测模式得到的残差块和当前块的残差系数不全为零,其中,帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,尺寸条件为当前块的宽小于或等于第一阈值,当前块的高小于第一阈值,或者当前块的宽小于第一阈值,当前块的高小于或等于第一阈值。
其中,第一阈值可以预设,第一阈值可以为64等。用于指示当前块为由帧间预测模式得到的残差块的标识或其它指示消息会在编码数据中携带,解码端可以从编码数据中获取到当前块是由帧间预测模式得到。
步骤703,如果SBT标志位的标识为第一数值,则获取当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式。
其中,第一数值可以任意数值,可以取为1。子块划分方式包括垂直划分方式和水平划分方式,垂直划分方式下,非零子块的高度与当前块的高度相同,非零子块的宽度与当前块的宽度不相同,水平划分方式下非零子块的宽度与当前块的宽度相同,非零子块的高度与当前块的高度不相同。如图8所示,对于子块划分方式为垂直划分方式,非零子块的位置有第一位置和第三位置,对于子块划分方式为水平划分方式,非零子块的位置有第二位置和第四位置。通过子块划分方式、非零子块的位置和非零子块的尺寸模式,即可确定出非零子块位于当前块中的位置。非零子块的尺寸模式有1/2模式和1/4模式,1/2模式下非零子块的面积为当前块的面积的一半,1/4模式下非零子块的面积为当前块的面积的1/4。图8中的阴影部分表示非零子块。
在实施中,解码端解析出SBT标志位的标识之后,可以判断该标识是否是第一数值,如果是第一数值,则说明编码端使用了SBT编码。解码端可以进一步获取当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式。
需要说明的是,非零子块指当前块所划分的子块中残差不为零的子块。
还需要说明的是,上述第一位置和第二位置在实际编码时可以使用同一数值,同样第三数值和第四数值在实际编码时,也可以使用同一数值,这是由于基于子块划分方式的不同,即使第一位置和第二位置使用同一数值,也可以得到非零子块的位置。
作为一种可能的实施方式,也可以使用当前块的尺寸信息,直接确定当前块的子块划分方式和非零子块的尺寸模式,相应的处理可以如下:
在编码数据中,获取当前块的非零子块的位置;如果当前块的尺寸信息满足第一条件,则根据当前块的尺寸信息,确定当前块的子块划分方式,如果当前块的尺寸信息不满足第一条件,则在编码数据中,获取当前块的子块划分方式;如果当前块的尺寸信息满足第二条件,则根据当前块的尺寸信息,确定当前块的非零子块的尺寸模式,如果当前块的尺寸信息不满足第二条件,则在编码数据中,获取当前块的非零子块的尺寸模式。
在实施中,解码端可以在编码数据中,获取到当前块的非零子块的位置。并且可以确定当前块的尺寸信息,判断当前块的尺寸信息是否满足第一条件,如果满足第一条件,则可以直接使用当前块的尺寸信息,确定出当前块的子块划分方式。第一条件可以是新一代标准中当前块只能支持水平划分或只能支持垂直划分时对当前块的一些尺寸限制,例如,第一条件可以为:宽度小于8,高度大于或等于8;或者高度小于8,宽度大于或等于8,由于要求非零子块的宽度和高度均大于4,所以在宽度小于8,高度大于或等于8时,不能进行垂直划分,只能进行水平划分,所以子块划分方式为水平划分,在高度小于8,宽度大于或等于8时,不能进行水平划分,只能进行垂直划分,所以子块划分方式为垂直划分。
如果当前块的尺寸信息不满足第一条件,则可以在编码数据中,获取到当前块的子块划分方式(可以是解析编码数据中子块划分方式的标志位,得到当前块的子块划分方式)。
并且判断当前块的尺寸信息是否满足第二条件,如果当前块的尺寸信息满足第二条件,则可以直接使用当前块的尺寸信息,确定出当前块的非零子块的尺寸模式。第二条件可以是新一代标准中当前块的子块只支持1/4模式,或只支持1/2模式时对当前块的一些尺寸限制,例如,第二条件为:宽度大于或等于8,且小于16;或者高度大于或等于8,且小于16;由于要求非零子块的宽度和高度均大于4,所以在宽度大于或等于8,且小于16,或者高度大于或等于8,且小于16时,尺寸模式不能是1/4模式,只能是1/2模式。
如果当前块的尺寸信息不满足第二条件,则可以在编码数据中,获取到当前块的非零子块的尺寸模式(可以是解析编码数据中的尺寸模式的标志位,得到当前块的非零子块的尺寸模式)。
作为一种可能的实施方式,编码当前块的子块划分方式时,使用当前块的非零子块的尺寸信息,根据当前块的非零子块的尺寸信息,在编码数据中,获取当前块的子块划分方式。
在实施中,编码端在编码子块划分方式时,可以参考非零子块的尺寸信息,在宽度等于高度时,使用第一种上下文模型,在宽度小于高度时,使用第二种上下文模型,在宽度大于高度时,使用第三种上下文模型。所以解码端在解码时,可以使用非零子块的宽度和高度,在编码数据中解析得到当前块的子块划分方式。
另外,由于编码端在编码非零子块的位置和非零子块的尺寸模式时,并未使用非零子块的尺寸信息,所以可以从编码数据中直接得到。
作为一种可能的实施方式,如果标识为第二数值,则确定当前块对应的目标变换核对为 (DCT2,DCT2)。
在实施中,解码端在确定SBT标识位的标识为第二数值时,第二数值可以为0,可以直接确定当前块是进行整块变换的,可以确定当前块对应的目标变换核对为(DCT2,DCT2)。
作为一种可能的实施方式,如果标识为第二数值,则在当前块对应的变换核对中,选择当前块对应的目标变换核对。
在实施中,解码端在确定SBT标识位的标识为第二数值时,第二数值可以为0,可以直接确定当前块是进行整块变换的,可以基于多核变换(如自适应性的多核变换),在当前块对应的多个变换核对中,选择当前块对应的目标变换核对。
步骤704,解码端至少根据当前块的子块划分方式和当前块的非零子块的尺寸模式,在 SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对,其中,在SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
在实施中,解码端可以存储有SBT变换对应的变换核对,在这些变换核对中,定义了各种情况下分别对应的变换核对,在这些变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同,也即在其它条件完全相同时,只要非零子块的尺寸模式不相同,非零子块对应的变换核对可以不完全相同或完全不相同。例如,当前块的子块划分方式、当前块的非零子块的位置完全相同,但是非零子块的尺寸模式不一样时,非零子块对应的变换核对可以不完全相同或完全不相同。
解码端可以获取SBT变换对应的变换核对,在SBT变换对应的变换核对中,查找当前块的子块划分方式和当前块的非零子块的尺寸模式共同对应的变换核对,即得到当前块的非零子块对应的目标变换核对。
作为一种可能的实施方式,根据当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对。
在实施中,解码端可以获取SBT变换对应的变换核对,在SBT变换对应的变换核对中,查找当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式共同对应的变换核对,即得到当前块的非零子块对应的目标变换核对。
作为一种可能的实施方式,在当前块的尺寸信息满足一定条件时,才基于获取到的当前块的子块划分方式等,获取变换核对,处理可以如下:
如果当前块的尺寸信息不满足限制条件,则根据当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对;如果当前块的尺寸信息满足限制条件,则确定当前块的非零子块的目标变换核对为(DCT2,DCT2)。
其中,限制条件可以预设,并且可以存储在解码端,可以是当前块的宽度小于或等于第二阈值且高度大于第二阈值,或者高度小于或等于第二阈值且宽度大于第二阈值,第二阈值可以为32。
在实施中,如果当前块的尺寸信息不满足限制条件,则根据当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式在SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对。
如果当前块的尺寸信息满足限制条件,则可以直接将(DCT2,DCT2),确定为当前块的非零子块对应的目标变换核对。
步骤705,解码端根据目标变换核对,对当前块的非零子块反量化后的数据进行反变换的处理,得到非零子块的残差系数。
在实施中,解码端得到目标变换核对后,可以对当前块的非零子块反量化处理,得到反量化处理后的数据,对反量化处理后的数据进行反变换处理,得到当前块的非零子块的残差系数(即残差数据)。
步骤706,解码端根据当前块的子块划分方式、非零子块的位置、非零子块的尺寸模式和非零子块的残差系数,得到当前块的残差系数。
在实施中,解码端可以使用当前块的子块划分方式、非零子块的位置、非零子块的尺寸模式,确定出当前块中除非零子块之外的区域,确定该区域中的残差为0,将该区域的残差与非零子块的残差合并,即得到当前块的完整的残差数据。
然后利用当前块周围已重建区域内像素点的像素值,按照编码时所使用的帧间预测模式构建当前块的预测信号。对于当前块,将该子块的当前块的残差数据与预测信号相加,得到当前块的重建信息,这样,就可以得到当前块的重建信息。
作为一种可能的实施方式,上述SBT变换对应的变换核集合中,在非零子块的尺寸模式不相同时,对应有不同的变换核对,可以包括以下多种组合:
组合一,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核。
在实施中,在图8中,非零子块的宽度为当前块的宽度的1/2,高度与当前块的高度相等,即非零子块是垂直划分,且是1/2模式,非零子块对应的变换核对的垂直变换核固定为第一变换核。非零子块的宽度为当前块的宽度的1/4,高度与当前块的高度相等,即非零子块是垂直划分,且是1/2模式,非零子块对应的变换核对的垂直变换核固定为第二变换核。可见,虽然划分方式一样,但是非零子块的尺寸模式不相同时,垂直变换核不相同。
需要说明的是,上述组合一中,对垂直划分的非零子块调整变换核对中的垂直变换核,且不关心非零子块的位置。
针对组合一,在第一变换核为DST7时,第二变换核可以为DCT8,不同的非零子块的尺寸模式对应的变换核可以如表一所示:
表一
子块划分方式 垂直变换核
垂直划分方式 Half?DST7:DCT8
在表一中,在为垂直划分方式时,“Half?DST7:DCT8”表示非零子块的尺寸模式是1/2 模式时,垂直变换核为DST7,非零子块的尺寸模式是1/4模式时,垂直变换核为DCT8。
在组合一中,在第一变换核为DCT8时,第二变换核可以为DST7,不同的非零子块的尺寸模式对应的变换核可以如表二所示:
表二
子块划分方式 垂直变换核
垂直划分方式 Half?DCT8:DST7
在表二中,在为垂直划分方式时,“Half?DCT8:DST7”表示非零子块的尺寸模式是1/2 模式时,垂直变换核为DCT8,非零子块的尺寸模式是1/4模式时,垂直变换核为DST7。
另外,在组合一中,对于垂直划分方式的第一位置的水平变换核可以为DCT8,第三位置的水平变换核可以为DST7(第一位置和第三位置会在后面说明)。
组合二,在SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
在实施中,在图8中,非零子块的高度为当前块的高度的1/2,宽度与当前块的宽度相等,即非零子块是水平划分,且为1/2模式,非零子块对应的变换核对的水平变换核固定为第一变换核。非零子块的高度为当前块的高度的1/4,宽度与当前块的宽度相等,即非零子块是水平划分,且为1/4模式,非零子块对应的变换核对的水平变换核固定为第二变换核。可见,虽然划分方式一样,但是非零子块的尺寸模式不相同时,水平变换核不相同。
需要说明的是,上述组合二中,对水平划分的非零子块调整变换核对中的水平变换核,且不关心非零子块的位置。
针对组合二,在第一变换核为DST7时,第二变换核可以为DCT8,不同的非零子块的尺寸模式对应的变换核可以如表三所示:
表三
子块划分方式 水平变换核
水平划分方式 Half?DST7:DCT8
在表三中,在为水平划分方式时,“Half?DST7:DCT8”表示如果非零子块的尺寸模式是1/2模式时,水平变换核为DST7,在非零子块的尺寸模式为1/4模式时,水平变换核为DCT8。
针对组合二,在第一变换核为DCT8时,第二变换核可以为DST7,不同的非零子块的尺寸模式对应的变换核可以如表四所示:
表四
子块划分方式 水平变换核
水平划分方式 Half?DCT8:DST7
在表四中,在为水平划分方式时,“Half?DCT8:DST7”表示如果非零子块的尺寸模式是1/2模式时,水平变换核为DCT8,在非零子块的尺寸模式为1/4模式时,水平变换核为DST7。
另外,在组合二中,对于水平划分的第二位置的垂直变换核可以为DCT8,第四位置的垂直变换核可以为DST7。
在使用时,可以将组合一和组合二分别单独使用,也可以将组合一和组合二合并使用,本公开实施例不做限定。
在第一变换核为DST7时,第二变换核可以为DCT8,组合一和组合二合并使用的情况,如表五所示:
表五
子块划分方式 水平变换核 垂直变换核
水平划分方式 Half?DST7:DCT8 DCT8或DST7
垂直划分方式 DCT8或DST7 Half?DST7:DCT8
在第一变换核为DCT8时,第二变换核可以为DST7,组合一和组合二合并使用的情况,如表六所示:
表六
子块划分方式 水平变换核 垂直变换核
水平划分方式 Quad?DST7:DCT8 DCT8或DST7
垂直划分方式 DCT8或DST7 Quad?DST7:DCT8
组合三,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核)。
在实施中,非零子块是对当前块进行垂直划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第一位置,则非零子块对应的变换核对为(第二变换核,第一变换核)。非零子块是对当前块进行垂直划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第一位置,则非零子块对应的变换核对为(第二变换核,第二变换核)。
非零子块是对当前块进行水平划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第二位置,则非零子块对应的变换核对为(第一变换核,第二变换核)。非零子块是对当前块进行水平划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第二位置,则非零子块对应的变换核对为(第二变换核,第二变换核)。
针对组合三,不同的非零子块的尺寸模式对应的变换核对可以如表七所示:
表七
Figure BDA0002068965190000211
Figure BDA0002068965190000221
在表七中,在为垂直划分方式,且为第一位置时,“Half?DST7:DCT8”表示非零子块的尺寸模式1/2模式时,垂直变换核为DST7,非零子块的尺寸模式1/4模式时,垂直变换核为DCT8。在为水平划分方式,且为第二位置时,“Half?DST7:DCT8”表示如果非零子块的尺寸模式1/2模式时,水平变换核为DST7,非零子块的尺寸模式1/4模式时,水平变换核为DCT8。在第一变换核为DST7时,第二变换核可以为DCT8。
另外,在组合三中,在为垂直划分方式时,且非零子块位于第三位置,非零子块对应的变换核对可以为(DST7,DST7)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。在水平划分方式时,且非零子块位于第四位置,非零子块对应的变换核对可以为(DST7,DST7)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。
组合四,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
在实施中,非零子块是对当前块进行垂直划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第三位置,则非零子块对应的变换核对为(第一变换核,第一变换核)。非零子块是对当前块进行垂直划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第三位置,则非零子块对应的变换核对为(第一变换核,第二变换核)。
非零子块是对当前块进行水平划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第四位置,则非零子块对应的变换核对为(第一变换核,第一变换核)。非零子块是对当前块进行水平划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第四位置,则非零子块对应的变换核对为(第二变换核,第一变换核)。
针对组合四,不同的非零子块的尺寸模式对应的变换核对可以如表八所示:
表八
子块划分方式 非零子块的位置 水平变换核 垂直变换核
垂直划分方式 第三位置 DST7 Half?DST7:DCT8
水平划分方式 第四位置 Half?DST7:DCT8 DST7
在表八中,在第一变换核为DST7时,第二变换核可以为DCT8。
另外,在组合四中,在为垂直划分方式时,且非零子块位于第一位置,非零子块对应的变换核对可以为(DCT8,DST7)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。在为水平划分方式时,且非零子块位于第二位置,非零子块对应的变换核对可以为(DST7,DCT8)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。
另外,也可以将组合三和组合四可以单独使用,也可以将组合三和组合四合并使用,本公开实施例不做限定。
组合五,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核)。
在实施中,非零子块是对当前块进行垂直划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第一位置,则非零子块对应的变换核对为(第二变换核,第二变换核)。非零子块是对当前块进行垂直划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第一位置,则非零子块对应的变换核对为(第二变换核,第一变换核)。
非零子块是对当前块进行水平划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第二位置,则非零子块对应的变换核对为(第二变换核,第二变换核)。非零子块是对当前块进行水平划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第二位置,则非零子块对应的变换核对为(第一变换核,第二变换核)。
针对组合五,不同的非零子块的尺寸模式对应的变换核可以如表九所示:
表九
子块划分方式 非零子块的位置 水平变换核 垂直变换核
垂直划分 第一位置 DCT8 Quad?DST7:DCT8
水平划分 第二位置 Quad?DST7:DCT8 DCT8
在表九中,非零子块的位置为第一位置,在为垂直划分方式时,“Quad?DST7:DCT8”表示在非零子块的尺寸模式是1/4模式时,垂直变换核为DST7,在非零子块的尺寸模式是1/2模式时,垂直变换核为DCT8。
非零子块的位置为第二位置,在为水平划分方式时,“Quad?DST7:DCT8”表示在非零子块的尺寸模式是1/4模式时,水平变换核为DST7,在非零子块的尺寸模式是1/2模式时,水平变换核为DCT8。
在组合五中,在第一变换核为DST7时,第二变换核可以为DCT8。
另外,在组合五中,在为垂直划分方式时,且非零子块位于第三位置,非零子块对应的变换核对可以为(DCT8,DST7)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。在为水平划分方式时,且非零子块位于第四位置,非零子块对应的变换核对可以为(DST7,DCT8)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。
组合六,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
在实施中,非零子块是对当前块进行垂直划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第三位置,则非零子块对应的变换核对为(第一变换核,第二变换核)。非零子块是对当前块进行垂直划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第三位置,则非零子块对应的变换核对为(第一变换核,第一变换核)。
非零子块是对当前块进行水平划分得到,且是1/2模式(即非零子块的面积为1/2当前块的面积),且非零子块位于第四位置,则非零子块对应的变换核对为(第二变换核,第一变换核)。非零子块是对当前块进行水平划分得到,且是1/4模式(即非零子块的面积为1/4当前块的面积),且非零子块位于第四位置,则非零子块对应的变换核对为(第一变换核,第一变换核)。
针对组合六,不同的非零子块的尺寸模式对应的变换核可以如表十所示:
表十
子块划分方式 非零子块的位置 水平变换核 垂直变换核
垂直划分 第三位置 DST7 Quad?DST7:DCT8
水平划分 第四位置 Quad?DST7:DCT8 DST7
在表十中,非零子块的位置为第三位置,在为垂直划分方式时,“Quad?DST7:DCT8”表示在非零子块的尺寸模式1/4模式时,垂直变换核为DST7,在非零子块的尺寸模式1/2模式时,垂直变换核为DCT8。
非零子块的位置为第四位置时,在为水平划分方式时,“Quad?DST7:DCT8”表示在非零子块的尺寸模式1/4模式时,水平变换核为DST7,在非零子块的尺寸模式1/2模式时,水平变换核为DCT8。
在组合六中,在第一变换核为DST7时,第二变换核可以为DCT8。
另外,在组合六中,在为垂直划分方式时,且非零子块位于第一位置,非零子块对应的变换核对可以为(DCT8,DST7)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。在为水平划分方式时,且非零子块位于第二位置,非零子块对应的变换核对可以为(DST7,DST7)(在这种情况下不管是1/2划分,还是1/4划分都是该变换核对)。
另外,也可以将组合五和组合六可以单独使用,也可以将组合五和组合六合并使用,本公开实施例不做限定。
需要说明的是,从上述组合一至组合六中可以看出,在非零子块的尺寸模式为1/2模式、 1/4模式,且位于相同位置时,所采用的变换核对不相同,这是为了提供更多的变换组合,使得到的变换核对更适合编解码当前块。例如,对于组合三中,子块划分方式为垂直划分方式时,非零子块位于第一位置,1/2模式,变换核对为(DCT8,DST7),1/4模式,变换核对为 (DCT8,DCT8),由于(DCT8,DST7)和(DCT8,DCT8)分别表示残差分布在非零子块的左下角、左上角,所以在进行RDO(Rate Distortion Optimization,率失真优化)时,既可以选择针对残差分布在左下角的变换核对,也可以选择残差分布在左上角的变换核对,可以使进行RDO得到的变换核对更准确。
作为一种可能的实施方式,在编码数据中,SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码。
在实施中,一般情况下,SBT标志位的标识在编码时,是使用两个上下文模型的自适应二进制模式算术编码,但是本公开中,SBT标志位的标识在编码时,去除了与当前需要编码的非零子块的面积的依赖性,所以可以在原来两个上下文模型的基础上减少一个上下文模型,也即在本公开实施例中是基于一个上下文模型的自适应二进制算术编码进行编码。这样,仅需要存储一个上下文模型,可以节约内存空间,而且也仅更新一个上下文模型的自适应二进制算术编码的上下文,可以降低编码和解码的复杂度。
由于当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少有一个是使用旁路的二进制算术编码进行编码,而这些内容不需要均使用上下文模型进行编码、解码或者均不使用上下文模型进行编码和解码,所以也可以节约内存空间,不需要更新所有的上下文模型的上下文或者不需要更新上下文模型,所以可以降低编码和解码的复杂度。例如,当前的子块划分方式一般是使用一个上下文模型的自适应二进制算术编码进行编码,当前块的非零子块的位置一般是使用三个上下文模型进行编码,当前块的非零子块的尺寸模式一般是使用一个上下文模型的自适应二进制算术编码进行编码,如果将当前块的非零子块的位置使用旁路的二进制算术编码进行编码,那么会减少三个上下文模型。
例如,如表十一所示,SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,当前块的子块划分方式使用旁路的二进制算术编码进行编码、当前块的非零子块的位置使用旁路的二进制算术编码进行编码、当前块的非零子块的尺寸模式使用旁路的二进制算术编码进行编码。
表十一
Figure BDA0002068965190000251
作为一种可能的实施方式,在编码数据中,SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码。
在实施中,一般情况下,SBT标志位的标识在编码时,是使用两个上下文模型的自适应二进制模式算术编码,但是本公开中,在编码数据中,SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,减少了一个上下文模型,即使其他各种标识全部使用上下文模型进行编码,也可以减少一个上下文模型,这样,仅需要存储一个上下文模型,可以节约内存空间,而且也仅更新一个上下文模型的上下文,可以降低编码和解码的复杂度。
作为一种可能的实施方式,在编码数据中,SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码。
在实施中,在编码数据中,SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码,所以这些内容不需要均使用上下文模型进行编码、解码或者均不需要使用上下文模型进行编码和解码,所以也可以节约内存空间,不需要更新所有的上下文模型的上下文或者不需要更新上下文模型,所以可以降低编码和解码的复杂度。
例如,如表十二所示,SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,当前块的子块划分方式使用旁路的二进制算术编码进行编码、当前块的非零子块的位置使用旁路的二进制算术编码进行编码、当前块的非零子块的尺寸模式使用旁路的二进制算术编码进行编码。
表十二
Figure BDA0002068965190000261
需要说明的是,上述当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码,可以包括以下几种情况:
情况一,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中任意一个使用旁路的二进制算术编码进行编码;情况二,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中任意两个使用旁路的二进制算术编码进行编码;情况三,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部使用旁路的二进制算术编码进行编码。
还需要说明的是,上述对SBT标志位、子块划分方式、位置和尺寸模式进行编码的任一方式均可以适用于上述组合一至组合六中。
对于上述解码过程,本公开实施例还提供了编码的过程,如图9所示,编码的处理流程可以如下:
步骤901,编码端获取当前块。
在实施中,编码端在对视频数据进行编码时,首先进行帧间预测,得到残差数据(得到残差数据的方式与现有的视频编码标准中一致,不再赘述),然后将残差数据作为当前要进行处理的当前块的残差数据。
步骤902,如果当前块满足子块的帧间变换SBT变换条件,且当前块使用SBT变换,则编码端确定SBT标志位的标识为第一数值,并确定当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,以及在SBT变换对应的变换核对中,确定当前块的非零子块对应的目标变换核对,其中,在SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
其中,在SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同(这部分描述可以参见解码端的描述)。SBT变换条件为当前块的尺寸信息满足尺寸条件、当前块为亮度块、当前块为帧间预测模式得到的残差块和当前块的残差系数不全为零,帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,尺寸条件为当前块的宽小于或等于第一阈值,当前块的高小于第一阈值,或者当前块的宽小于第一阈值,当前块的高小于或等于第一阈值。-
在实施中,编码端在获取到当前块之后,可以判断当前块是否满足SBT变换条件,如果满足SBT变换条件,则可以判断是否对当前块使用SBT变换。判断方式可以一般是使用RDO 准则,处理为:编码端使用(DCT2,DCT2)对当前块的残差数据进行编码,得到变换系数,再进行量化,再进行熵编码,然后再进行解码处理。并且使用SBT变换下的各种SBT模式,每种SBT模式均包括非零子块的尺寸模式和位置、当前块的划分方式、以及这三种信息对应的变换核对,基于这些信息对当前块的残差数据进行编码,得到变换系数,再进行量化,再进行熵编码,然后再进行解码处理。然后选择率失真代价最小的变换方式,作为当前块所采用的变换方式,如果率失真代价最小的变换方式为SBT变换中一种,则可以确定对当前块使用SBT变换,可以确定SBT标志位的标识为第一数值,并且也可以确定出当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,并且可以确定出当前块的非零子块的目标变换核对。
需要说明的是,上述确定率失真代价的原则为:一般评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比)。一般比特流越小,则压缩率越大;PSNR 越大,重建图像质量越好。在进行模式选择的时候,判别公式实质上也就是对这二者的综合评价。模式对应的代价:J(mode)=D+λ*R。其中,D表示Distortion(失真),通常使用SSE (Sum of Squares Error,和方差)指标来衡量,SSE是指重建块与源图像的差值均方和,λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
另外,如果当前块满足子块的帧间变换SBT变换条件,但是当前块未使用SBT变换,则编码端确定SBT标志位的标识为第二数值。
另外,如果当前块不满足子块的帧间变换SBT变换条件,则可以确定当前块是基于整块进行预测、变换等处理。
另外,如果当前块满足SBT变换条件,且当前块的尺寸信息满足限制条件(见解码端的描述),可以直接将(DCT2,DCT2),确定为当前块的非零子块对应的目标变换核对。
步骤903,编码端根据目标变换核对,对当前块的非零子块的残差数据进行变换、量化、熵编码得到当前块的编码数据。
在实施中,编码端确定出目标变换核对之后,可以对当前块的非零子块的残差数据进行变换,得到变换系数,对变换系数进行量化处理,得到量化后的数据,对量化后的数据进行熵编码处理,得到当前块的编码数据。
步骤904,编码端将SBT标志位的编码数据、非零子块的位置的编码数据添加至当前块的编码数据中。
在实施中,编码端可以对SBT标志位的标识进行编码,得到该SBT标志位的编码数据,并可以对非零子块的位置进行编码,得到非零子块的位置的编码数据,将这些编码数据添加到当前块的编码数据中,用于解码端进行解码处理。
作为一种可能的实施方式,在编码端不是基于尺寸信息(也即尺寸信息不满足第一条件和第二条件),确定出变换核对时,编码数据中还包括子块划分方式的编码数据和非零子块的尺寸模式的编码数据:
编码端可以对子块划分方式进行编码,得到子块划分方式的编码数据,并可以对非零子块的尺寸模式进行编码,得到非零子块的尺寸模式编码数据,将这些编码数据也添加到当前块的编码数据,用于解码端进行解码处理。
作为一种可能的实施方式,为了使解码端可以解码到当前块,可以进行如下处理:
对SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部使用上下文模型进行编码。
在解码端已经描述,此处不再赘述。
作为一种可能的实施方式,为了使解码端可以解码到当前块,可以进行如下处理:对SBT 标志位基于两个上下文模型的自适应二进制算术编码进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。
在解码端已经描述,此处不再赘述。
作为一种可能的实施方式,为了使解码端可以解码到当前块,可以进行如下处理:
对SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。
在解码端已经描述,此处不再赘述。
需要说明的是,本公开实施例中,编码端和解码端均可以存储有子块划分方式、非零子块的位置、非零子块的尺寸模式三者与变换核对的对应关系,可以是以表格的形式进行存储。
本公开实施例中,在编码当前块时,如果当前块使用SBT变换,可以基于当前子块的非零子块的不同尺寸模式选择变换核对,由于非零子块的不同尺寸模式对应的变换核对完全不相同或不完全相同,所以在同一位置的不同尺寸模式的非零子块对应有不同的变换核对,可以有更多的变换组合,进而可以提升编解码性能。
本公开实施例还提供了另一种编码和解码的方式,如图10所示,解码处理流程可以如下:
步骤1001,解码端获取当前块的编码数据。
步骤1001与步骤701的处理相同,可以参见步骤701的处理。
步骤1002,如果当前块满足解析条件,则解码端在编码数据中获取子块的帧间变换SBT 标志位的标识。
步骤1002与步骤702的处理相同,可以参见步骤702的处理。
步骤1003,如果SBT标志位的标识为第一数值,则解码端获取当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式。
步骤1003与步骤703的处理相同,可以参见步骤703的处理。
步骤1004,解码端至少根据当前块的子块划分方式和当前块的非零子块的位置,在SBT 变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对。
在实施中,解码端存储有SBT变换对应的变换核对,在这些变换核对中,定义了各种情况下分别对应的变换核对。解码端可以获取这些变换核对,在这些该变换核对中,查找当前块的子块划分方式和当前块的非零子块的位置共同对应的变换核对,即得到当前块的非零子块对应的目标变换核对。
在SBT变换对应的变换核对中,子块划分方式为垂直划分方式,且非零子块位于第一位置时,变换核对为(DCT8,DST7),子块划分方式为垂直划分方式,且非零子块位于第三位置时,变换核对为(DST7,DST7),子块划分方式为水平划分方式,且非零子块位于第二位置时,变换核对为(DST7,DCT8),子块划分方式为水平划分方式,且非零子块位于第四位置时,变换核对为(DST7,DST7)。
步骤1005,解码端根据目标变换核对,对当前块的非零子块反量化后的数据进行反变换的处理,得到非零子块的残差系数。
在实施中,解码端得到目标变换核对后,可以对当前块的非零子块反量化处理,得到反量化处理后的数据,对反量化处理后的数据进行反变换处理,得到当前块的非零子块的残差系数(即残差数据)。
步骤1006,解码端根据当前块的子块划分方式、非零子块的位置和非零子块的尺寸模式、非零子块的残差系数,得到当前块的残差系数。
在实施中,解码端可以使用当前块的子块划分方式、非零子块的位置和非零子块的尺寸模式,确定出当前块中残差为0的位置,然后添加当前块中除非零子块的位置处的残差为0,这样,就得到当前块的完整的残差数据。
需要说明的是,如果编码数据中包括当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,在编码数据中,由于当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少有一个是使用旁路的二进制算术编码进行编码,而这些内容不需要均使用上下文模型的自适应二进制算术编码进行编码、解码或者均不使用上下文模型的自适应二进制算术编码进行编码和解码,所以也可以节约内存空间,不需要更新所有的上下文模型的上下文或者不需要更新上下文模型,所以可以降低编码和解码的复杂度。例如,当前的子块划分方式一般是使用一个上下文模型的自适应二进制算术编码进行编码,当前块的非零子块的位置一般是使用三个上下文模型进行编码,当前块的非零子块的尺寸模式一般是使用一个上下文模型的自适应二进制算术编码进行编码,如果将当前块的非零子块的位置使用旁路的二进制算术编码进行编码,那么会减少三个上下文模型。
或者,在编码数据中,SBT标志位一般是使用两个上下文模型的自适应二进制算术编码进行编码,然而本公开中,SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,相对于一般做法减少了一个上下文模型,即使其他各种标识全部使用上下文模型的自适应二进制算术编码进行编码,也可以减少一个上下文模型,这样,仅需要存储一个上下文模型,可以节约内存空间,而且也仅更新一个上下文模型的上下文,可以降低编码和解码的复杂度。
作为一种可能的实施方式,在编码数据中,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码时,SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码或者基于一个上下文模型的自适应二进制算术编码进行编码。
这样,在SBT标志位使用一个上下文模型的自适应二进制算术编码进行编码时,可以仅存储一个上下文模型,并且仅更新一个上下文模型,所以可以使编解码的复杂度降低。
作为一种可能的实施方式,根据当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对,其中,在SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
在实施中,解码端可以在SBT变换对应的变换核对中,确定当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式共同对应的变换核对,确定为非零子块对应的目标变换核对。
需要说明的是,此处SBT变换对应的变换核对可以参见图7的实施例中组合一至组合六的描述。
作为一种可能的实施方式,如果标识为第二数值,则确定当前块对应的目标变换核对为 (DCT2,DCT2);或者,
如果标识为第二数值,则在当前块对应的变换核对中,选择当前块对应的目标变换核对。
作为一种可能的实施方式,解析条件为当前块的尺寸信息满足尺寸条件、当前块为亮度块、当前块为帧间预测模式得到的残差块和当前块的残差系数不全为零,其中,帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,尺寸条件为当前块的宽小于或等于第一阈值,当前块的高小于第一阈值,或者当前块的宽小于第一阈值,当前块的高小于或等于第一阈值。
作为一种可能的实施方式,在确定变换核对使用尺寸模式时,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核;和/或,在SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
作为一种可能的实施方式,在确定变换核对使用尺寸模式时,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2 模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);和/或,
在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
作为一种可能的实施方式,在确定变换核对使用尺寸模式时,在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2 模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);和/或,
在SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
作为一种可能的实施方式,第一变换核为DST7,第二变换核为DCT8。
作为一种可能的实施方式,第一变换核为DCT8,第二变换核为DST7。
作为一种可能的实施方式,如果当前块的尺寸信息不满足限制条件,则根据当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择当前块的非零子块对应的目标变换核对;方法还包括:如果当前块的尺寸信息满足限制条件,则确定当前块的非零子块的目标变换核对为(DCT2,DCT2)。
作为一种可能的实施方式,在编码数据中,获取当前块的非零子块的位置;如果当前块的尺寸信息满足第一条件,则根据当前块的尺寸信息,确定当前块的子块划分方式,如果当前块的尺寸信息不满足第一条件,则在编码数据中,获取当前块的子块划分方式;如果当前块的尺寸信息满足第二条件,则根据当前块的尺寸信息,确定当前块的非零子块的尺寸模式,如果当前块的尺寸信息不满足第二条件,则在编码数据中,获取当前块的非零子块的尺寸模式。
作为一种可能的实施方式,编码当前块的子块划分方式时,使用当前块的非零子块的尺寸信息;根据当前块的非零子块的尺寸信息,在编码数据中,获取当前块的子块划分方式。
上述可能的实施方式与图7所示的处理流程中的处理完全相同,可以参见图7所示的实施例的描述,此处不再赘述。
对应图10所示的解码流程,本公开实施例还提供了对应的编码流程,如图11所示:
步骤1101,编码端获取当前块。
步骤1102,如果当前块满足子块的帧间变换SBT变换条件,且当前块使用SBT变换,则确定SBT标志位的标识为第一数值,并确定当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式,以及在SBT变换对应的SBT变换对应的变换核对中,确定当前块的非零子块对应的目标变换核对。
步骤1103,编码端根据目标变换核对,对当前块的非零子块的残差数据进行变换、量化、熵编码得到当前块的编码数据。
步骤1101至步骤1103的处理流程与图9所示的流程中步骤901至步骤903的处理流程完全相同,可以参见图9所示的处理方式,此处不再赘述。
步骤1104,编码端对SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部使用上下文模型的二进制算术编码进行编码;或者,对SBT标志位进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。
在实施中,编码端可以使用一个上下文模型的自适应二进制算术编码对SBT标志位进行编码,并对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部使用上下文模型进行编码。这样,在编码数据中,SBT标志位一般是基于两个上下文模型的自适应二进制算术编码进行编码,本公开是基于一个上下文模型的自适应二进制算术编码进行编码,减少了一个上下文模型,即使其他各种标识全部使用上下文模型进行编码,也可以减少一个上下文模型,这样,仅需要存储一个上下文模型,可以节约内存空间,而且也仅更新一个上下文模型的上下文,可以降低编码和解码的复杂度。
或者,一般编码端对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式均是使用上下文模型的自适应二进制算术编码进行编码,需要存储的上下文模型比较多。然而本公开实施例中,编码端可以对SBT标志位进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。这样,当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码,所以这些内容不需要均使用上下文模型进行编码、解码或者均不需要使用上下文模型进行编码和解码,所以也可以节约内存空间,不需要更新所有的上下文模型的上下文或者不需要更新上下文模型,所以可以降低编码和解码的复杂度。
作为一种可能的实施方式,对SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码或对SBT标志位基于两个上下文模型的自适应二进制算术编码进行编码。
在实施中,SBT标志位的标识在编码时,去除了与当前需要编码的非零子块的面积的依赖性,所以可以在原来两个上下文模型的基础上减少一个上下文模型,也即在本公开实施例中是基于一个上下文模型的自适应二进制算术编码进行编码。这样,仅需要存储一个上下文模型,可以节约内存空间,而且也仅更新一个上下文模型的上下文,可以降低编码和解码的复杂度。
或者对SBT标志位基于两个上下文模型的自适应二进制算术编码进行编码。
步骤1105,编码端将SBT标志位的编码数据、子块划分方式的编码数据、非零子块的位置的编码数据和非零子块的尺寸模式的编码数据添加至当前块的编码数据中。
步骤1105的处理流程与图9所示的流程中步骤904的处理流程完全相同,可以参见图9 所示的处理方式,此处不再赘述。
作为一种可能的实施方式,SBT变换条件为当前块的尺寸信息满足尺寸条件、当前块为亮度块、当前块为帧间预测模式得到的残差块和当前块的残差系数不全为零,其中,帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,尺寸条件为当前块的宽小于或等于第一阈值,当前块的高小于第一阈值,或者当前块的宽小于第一阈值,当前块的高小于或等于第一阈值。
此处理可以参见图9所示的实施例中的描述。
本公开实施例中,对SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部使用上下文模型进行编码;或者,对SBT标志位进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。这样,不管那种编码方式,都可以减少上下文模型的数目,可以节约内存空间,而且对上下文模型进行更新的上下文内容也会减少,可以降低编码和解码的复杂度。
基于相同的技术构思,本公开实施例还提供了一种进行解码的解码端,如图12所示,该解码端包括:
获取模块1210,获取模块,用于获取当前块的编码数据;如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
确定模块1220,用于至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
解码模块1230,用于根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;根据所述当前块的子块划分方式、所述非零子块的位置、所述非零子块的尺寸模式和所述非零子块的残差系数,得到所述当前块的残差系数。
作为一种可能的实施方式,所述确定模块1220,还用于:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
作为一种可能的实施方式,所述解析条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核;和/或,
在所述SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
作为一种可能的实施方式,所述确定模块1220,用于:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为 1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
作为一种可能的实施方式,所述第一变换核为DST7,所述第二变换核为DCT8。
作为一种可能的实施方式,所述第一变换核为DCT8,所述第二变换核为DST7。
作为一种可能的实施方式,所述确定模块,用于:
如果所述当前块的尺寸信息不满足限制条件,则根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
所述确定模块1220,还用于:
如果所述当前块的尺寸信息满足所述限制条件,则确定所述当前块的非零子块的目标变换核对为(DCT2,DCT2)。
作为一种可能的实施方式,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码。
作为一种可能的实施方式,所述获取模块1210,用于:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
作为一种可能的实施方式,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息;
所述获取模块1210,用于:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
基于相同的技术构思,本公开实施例还提供了一种进行编码的编码端,如图13所示,该编码端包括:
获取模块1310,用于获取当前块;
确定模块1320,用于如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定所述SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
编码模块1330,用于根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
作为一种可能的实施方式,所述SBT变换条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,所述编码模块1330,还用于:
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;或者,
对所述SBT标志位基于两个上下文模型的自适应二进制算术编码进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。
本公开实施例中,在编码当前块时,如果当前块使用SBT变换,可以基于当前子块的非零子块的不同尺寸模式选择变换核对,由于非零子块的不同尺寸模式对应的变换核对完全不相同或不完全相同,所以在同一位置的不同尺寸模式的非零子块对应有不同的变换核对,可以有更多的变换组合,可以提升编解码性能。
基于相同的技术构思,本公开实施例还提供了一种进行解码的解码端,如图14所示,该解码端包括:
获取模块1410,用于获取当前块的编码数据;如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,
确定模块1420,用于至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
解码模块1430,用于根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;根据所述当前块的子块划分方式、所述非零子块的位置和所述非零子块的尺寸模式、所述非零子块的残差系数,得到所述当前块的残差系数。
其中,在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码。
作为一种可能的实施方式,在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码时,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码或者基于一个上下文模型的自适应二进制算术编码进行编码。
作为一种可能的实施方式,所述确定模块1420,用于:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
作为一种可能的实施方式,所述确定模块1420,还用于:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
作为一种可能的实施方式,所述解析条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
作为一种可能的实施方式,所述获取模块1410,用于:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
作为一种可能的实施方式,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息,所述子块划分方式至少使用一个上下文模型的自适应二进制算术编码进行编码;
所述获取模块1410,用于:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
基于相同的技术构思,本公开实施例还提供了一种进行编码的编码端,如图15所示,该编码端包括:
获取模块1510,用于获取当前块;
确定模块1520,用于如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定所述SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT 变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对;
编码模块1530,用于:
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,对所述SBT标志位进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
作为一种可能的实施方式,所述编码模块1530,用于:
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码或对所述SBT 标志位基于两个上下文模型的自适应二进制算术编码进行编码。
作为一种可能的实施方式,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
本公开实施例中,对SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式全部使用上下文模型进行编码;或者,对SBT标志位进行编码,对当前块的子块划分方式、当前块的非零子块的位置和当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码。这样,不管那种编码方式,都可以减少上下文模型的数目,可以节约内存空间,而且对上下文模型进行更新的上下文内容也会减少,可以降低编码和解码的复杂度。
需要说明的是:上述实施例提供的解码端在进行解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将解码端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的解码端与进行解码的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
需要说明的是:上述实施例提供的编码端在进行编码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将编码端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的编码端与进行编码的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图16是本发明实施例提供的一种编码端的结构示意图,该编码端1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU) 1601和一个或一个以上的存储器1602,其中,所述存储器1602中存储有至少一条指令,所述至少一条指令由所述处理器1601加载并执行以实现上述进行编码的方法的步骤。
图17是本发明实施例提供的一种解码端的结构示意图,该解码端1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU) 1701和一个或一个以上的存储器1702,其中,所述存储器1702中存储有至少一条指令,所述至少一条指令由所述处理器1701加载并执行以实现上述进行解码的方法的步骤。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的进行编码和进行解码的方法步骤。
本公开实施例还提供了一种编码端,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述所述的进行编码的方法步骤。
本公开实施例还提供了一种解码端,包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述所述的进行解码的方法步骤。
本公开实施例还提供了一种编码和解码的系统,所述系统包括编码端和解码端,其中:
所述编码端,如上述进行编码处理的编码端;
所述解码端,如上述进行解码处理的解码端。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (26)

1.一种进行解码的方法,其特征在于,所述方法包括:
获取当前块的编码数据;
如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;
如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;
根据所述当前块的子块划分方式、所述非零子块的位置、所述非零子块的尺寸模式和所述非零子块的残差系数,得到所述当前块的残差系数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
3.根据权利要求1所述的方法,其特征在于,所述解析条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
4.根据权利要求1所述的方法,其特征在于,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的垂直变换核为第一变换核;子块划分方式为垂直划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的垂直变换核为第二变换核;和/或,
在所述SBT变换对应的变换核对中,子块划分方式为水平划分方式、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对的水平变换核为第一变换核;子块划分方式为水平划分方式、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对的水平变换核为第二变换核。
5.根据权利要求1所述的方法,其特征在于,所述至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对。
6.根据权利要求5所述的方法,其特征在于,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核)。
7.根据权利要求5所述的方法,其特征在于,在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第一位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第二变换核);子块划分方式为水平划分方式、非零子块位于第二位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第二变换核);和/或,
在所述SBT变换对应的变换核对中,子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第一变换核,第二变换核);子块划分方式为垂直划分方式、非零子块位于第三位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/2模式时,非零子块对应的变换核对为(第二变换核,第一变换核);子块划分方式为水平划分方式、非零子块位于第四位置、非零子块的尺寸模式为1/4模式时,非零子块对应的变换核对为(第一变换核,第一变换核)。
8.根据权利要求4或6或7所述的方法,其特征在于,所述第一变换核为离散正弦变换DST7,所述第二变换核为DCT8。
9.根据权利要求4所述的方法,其特征在于,所述第一变换核为DCT8,所述第二变换核为DST7。
10.根据权利要求5所述的方法,其特征在于,所述根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
如果所述当前块的尺寸信息不满足限制条件,则根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
所述方法还包括:
如果所述当前块的尺寸信息满足所述限制条件,则确定所述当前块的非零子块的目标变换核对为(DCT2,DCT2)。
11.根据权利要求5所述的方法,其特征在于,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码;或者,
在所述编码数据中,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码。
12.根据权利要求1所述的方法,其特征在于,所述获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,包括:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
13.根据权利要求12所述的方法,其特征在于,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息;
所述在所述编码数据中,获取所述当前块的子块划分方式,包括:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
14.一种进行编码的方法,其特征在于,所述方法包括:
获取当前块;
如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
将所述SBT标志位的编码数据、所述非零子块的位置的编码数据添加至所述当前块的编码数据中。
15.一种进行解码的解码端,其特征在于,所述解码端包括:
获取模块,用于获取当前块的编码数据;如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
确定模块,用于至少根据所述当前块的子块划分方式和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
解码模块,用于根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;根据所述当前块的子块划分方式、所述非零子块的位置、所述非零子块的尺寸模式和所述非零子块的残差系数,得到所述当前块的残差系数。
16.一种进行编码的编码端,其特征在于,所述编码端包括:
获取模块,用于获取当前块;
确定模块,用于如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同;
编码模块,用于根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;将所述SBT标志位的编码数据、所述非零子块的位置的编码数据添加至所述当前块的编码数据中。
17.一种进行解码的方法,其特征在于,所述方法包括:
获取当前块的编码数据;
如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;
如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式;
至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;
根据所述当前块的子块划分方式、所述非零子块的位置和所述非零子块的尺寸模式、所述非零子块的残差系数,得到所述当前块的残差系数;
其中,如果所述编码数据中存在所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,则在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码。
18.根据权利要求17所述的方法,其特征在于,在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码时,所述SBT标志位是基于两个上下文模型的自适应二进制算术编码进行编码或者基于一个上下文模型的自适应二进制算术编码进行编码。
19.根据权利要求17或18所述的方法,其特征在于,所述至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,包括:
根据所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对,其中,在所述SBT变换对应的变换核对中,非零子块的不同尺寸模式对应的变换核对不完全相同或者完全不相同。
20.根据权利要求17或18所述的方法,其特征在于,所述方法还包括:
如果所述标识为第二数值,则确定所述当前块对应的目标变换核对为(DCT2,DCT2);或者,
如果所述标识为第二数值,则在所述当前块对应的变换核对中,选择所述当前块对应的目标变换核对。
21.根据权利要求17或18所述的方法,其特征在于,所述解析条件为所述当前块的尺寸信息满足尺寸条件、所述当前块为亮度块、所述当前块为帧间预测模式得到的残差块和所述当前块的残差系数不全为零,其中,所述帧间预测模式为除帧间三角预测模式、帧内帧间合并预测模式之外的帧间预测模式,所述尺寸条件为所述当前块的宽小于或等于第一阈值,所述当前块的高小于所述第一阈值,或者所述当前块的宽小于所述第一阈值,所述当前块的高小于或等于所述第一阈值。
22.根据权利要求17或18所述的方法,其特征在于,所述获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,包括:
在所述编码数据中,获取所述当前块的非零子块的位置;
如果所述当前块的尺寸信息满足第一条件,则根据所述当前块的尺寸信息,确定所述当前块的子块划分方式,如果所述当前块的尺寸信息不满足所述第一条件,则在所述编码数据中,获取所述当前块的子块划分方式;
如果所述当前块的尺寸信息满足第二条件,则根据所述当前块的尺寸信息,确定所述当前块的非零子块的尺寸模式,如果所述当前块的尺寸信息不满足所述第二条件,则在所述编码数据中,获取所述当前块的非零子块的尺寸模式。
23.根据权利要求22所述的方法,其特征在于,编码所述当前块的子块划分方式时,使用所述当前块的非零子块的尺寸信息,所述子块划分方式至少使用一个上下文模型的自适应二进制算术编码进行编码;
所述在所述编码数据中,获取所述当前块的子块划分方式,包括:
根据所述当前块的非零子块的尺寸信息,在所述编码数据中,获取所述当前块的子块划分方式。
24.一种进行编码的方法,其特征在于,所述方法包括:
获取当前块;
如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对;
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,对所述SBT标志位进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
25.一种进行解码的解码端,其特征在于,所述解码端包括:
获取模块,用于获取当前块的编码数据;如果所述当前块满足解析条件,则在所述编码数据中获取子块的帧间变换SBT标志位的标识;如果所述标识为第一数值,则获取所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,
确定模块,用于至少根据所述当前块的子块划分方式和所述当前块的非零子块的位置,在SBT变换对应的变换核对中,选择所述当前块的非零子块对应的目标变换核对;
解码模块,用于根据所述目标变换核对,对所述当前块的非零子块反量化后的数据进行反变换的处理,得到所述非零子块的残差系数;根据所述当前块的子块划分方式、所述非零子块的位置和所述非零子块的尺寸模式、所述非零子块的残差系数,得到所述当前块的残差系数;
其中,在所述编码数据中,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个是使用旁路的二进制算术编码进行编码;或者,在所述编码数据中,所述SBT标志位是基于一个上下文模型的自适应二进制算术编码进行编码,所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部是使用上下文模型的自适应二进制算术编码进行编码。
26.一种进行编码的编码端,其特征在于,所述编码端包括:
获取模块,用于获取当前块;
确定模块,用于如果所述当前块满足子块的帧间变换SBT变换条件,且所述当前块使用SBT变换,则确定SBT标志位的标识为第一数值,并确定所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式,以及在所述SBT变换对应的变换核对中,确定所述当前块的非零子块对应的目标变换核对;
编码模块,用于:
根据所述目标变换核对,对所述当前块的非零子块的残差数据进行变换、量化、熵编码得到所述当前块的编码数据;
对所述SBT标志位基于一个上下文模型的自适应二进制算术编码进行编码,并对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式全部使用上下文模型的自适应二进制算术编码进行编码;或者,对所述SBT标志位进行编码,对所述当前块的子块划分方式、所述当前块的非零子块的位置和所述当前块的非零子块的尺寸模式中至少一个使用旁路的二进制算术编码进行编码;
将所述SBT标志位的编码数据、所述子块划分方式的编码数据、所述非零子块的位置的编码数据和所述非零子块的尺寸模式的编码数据添加至所述当前块的编码数据中。
CN201910430956.8A 2019-05-22 2019-05-22 进行解码、编码的方法、解码端和编码端 Active CN111988618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910430956.8A CN111988618B (zh) 2019-05-22 2019-05-22 进行解码、编码的方法、解码端和编码端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910430956.8A CN111988618B (zh) 2019-05-22 2019-05-22 进行解码、编码的方法、解码端和编码端

Publications (2)

Publication Number Publication Date
CN111988618A CN111988618A (zh) 2020-11-24
CN111988618B true CN111988618B (zh) 2022-05-20

Family

ID=73435991

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910430956.8A Active CN111988618B (zh) 2019-05-22 2019-05-22 进行解码、编码的方法、解码端和编码端

Country Status (1)

Country Link
CN (1) CN111988618B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114598871B (zh) * 2020-12-03 2024-08-23 杭州海康威视数字技术股份有限公司 一种编码、解码方法、装置及其设备
CN112543324B (zh) * 2020-12-06 2023-02-28 浙江大华技术股份有限公司 视频解码方法、编码方法、编解码器及存储介质
CN114726380B (zh) * 2022-06-07 2022-09-02 西南交通大学 一种监测数据无损压缩方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959690A (zh) * 2009-02-23 2016-09-21 韩国科学技术院 用于对分割块进行编码的视频编码方法、用于对分割块进行解码的视频解码方法以及用于实施上述方法的记录媒体
CN107566846A (zh) * 2017-09-20 2018-01-09 北京维境视讯信息技术有限公司 视频编码跳过模式决策方法、装置、设备及存储介质
CN108605135A (zh) * 2016-02-04 2018-09-28 三星电子株式会社 依据色度多变换的视频解码方法和设备、以及依据色度多变换的视频编码方法和设备
CN109788291A (zh) * 2019-02-12 2019-05-21 北京大学 一种数字视频变换方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6268989B2 (ja) * 2013-11-29 2018-01-31 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959690A (zh) * 2009-02-23 2016-09-21 韩国科学技术院 用于对分割块进行编码的视频编码方法、用于对分割块进行解码的视频解码方法以及用于实施上述方法的记录媒体
CN108605135A (zh) * 2016-02-04 2018-09-28 三星电子株式会社 依据色度多变换的视频解码方法和设备、以及依据色度多变换的视频编码方法和设备
CN107566846A (zh) * 2017-09-20 2018-01-09 北京维境视讯信息技术有限公司 视频编码跳过模式决策方法、装置、设备及存储介质
CN109788291A (zh) * 2019-02-12 2019-05-21 北京大学 一种数字视频变换方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Byung-gyu Kim ; Suk-kyu Song ; Chang-sik Cho.Efficient Inter-Mode Decision Based on Contextual Prediction for the P-Slice in H.264/AVC Video Coding.《2006 International Conference on Image Processing》.2007, *
基于快速运动搜索和时空域相关性的HEVC帧间预测算法研究;安亮;《西安电子科技大学》;20170601;全文 *

Also Published As

Publication number Publication date
CN111988618A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CN111669582B (zh) 进行编码和解码的方法、编码端、解码端和系统
CN111988618B (zh) 进行解码、编码的方法、解码端和编码端
CN113596445B (zh) 进行编码和解码的方法、解码端、编码端和系统
CN111385584B (zh) 进行编码、解码的方法、装置和系统
CN111669579B (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
GR01 Patent grant
GR01 Patent grant