CN114827629B - 编码方法、解码方法、装置及机器可读存储介质 - Google Patents

编码方法、解码方法、装置及机器可读存储介质 Download PDF

Info

Publication number
CN114827629B
CN114827629B CN202210233926.XA CN202210233926A CN114827629B CN 114827629 B CN114827629 B CN 114827629B CN 202210233926 A CN202210233926 A CN 202210233926A CN 114827629 B CN114827629 B CN 114827629B
Authority
CN
China
Prior art keywords
transform
current image
image block
transformation
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210233926.XA
Other languages
English (en)
Other versions
CN114827629A (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 CN202210233926.XA priority Critical patent/CN114827629B/zh
Publication of CN114827629A publication Critical patent/CN114827629A/zh
Application granted granted Critical
Publication of CN114827629B publication Critical patent/CN114827629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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/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/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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供一种编码方法、解码方法、装置及机器可读存储介质,该编码方法包括:当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;当所述变换系数中的非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中非零系数的绝对值之和的奇偶性,以使所述变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对匹配;对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。该方法可以减少失真。

Description

编码方法、解码方法、装置及机器可读存储介质
技术领域
本申请涉及视频编解码技术,尤其涉及一种编码方法、解码方法、装置及机器可读存储介质。
背景技术
完整的视频编码一般包括预测、变换、量化、熵编码、滤波等操作。其中,预测包括帧内预测和帧间预测。
帧内预测是考虑到在图像中,相邻图像块之间存在很强的空域相关性,因此可以利用周围已经重建的像素作为参考像素对当前未编码块进行预测,从而可以只需要对残差信号(原始信号-预测信号)进行后续编码处理,而不是对原始信号进行编码,有效去除了空域上的冗余,大大提高了视频信号的压缩效率。
变换是指将以空间域中像素形式描述的图像转换至变换域,以变换系数的形式来表示。而绝大多数图像都含有较多平坦区域和缓慢变化的区域,适当的变换可以使图像能量在空间域的分散分布转换为在变换域的相对集中分布,去除了信号之间的频域相关性,配合量化过程,可以有效压缩码流。
目前,一般通过标志位标识对当前图像块进行变换使用的变换核对,但AVS-3的进一步讨论中,需要提出一种隐式指示变换核对的方案。
发明内容
有鉴于此,本申请提供一种编码方法、解码方法、装置及机器可读存储介质。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种编码方法,包括:
当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中的非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中非零系数的绝对值之和的奇偶性,以使所述变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第二方面,提供一种编码方法,包括:
当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中绝对值为1的系数的个数的奇偶性,以使所述变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第三方面,提供一种编码方法,包括:
当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中最后一个非零系数的奇偶性,以使所述变换系数中最后一个非零系数的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第四方面,提供一种编码方法,包括:
当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配时,调整所述变换系数中最后一个非零系数的正负性,以使所述变换系数中最后一个非零系数的正负性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第五方面,提供一种编码方法,包括:
当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配时,调整所述子区域中非零系数的个数的奇偶性,以使所述子区域中非零系数的个数的奇偶性与所选择的变换核对匹配;其中,所述子区域为所述变换系数的部分区域;
对所述当前图像块变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第六方面,提供一种编码方法,包括:
当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,以使所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第七方面,提供一种编码方法,包括:
当所述当前图像块的尺寸为4×4时,基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
或,
所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
根据本申请实施例的第八方面,提供一种编码方法,包括:
当所述当前图像块的宽为64,且高小于64时;或,当所述当前图像块的宽为32,且高小于32时,
基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DCT2);
或,
所述第一变换核对为(DST7,DCT2),所述第二变换核对为(DCT2,DCT2)。
根据本申请实施例的第九方面,提供一种编码方法,包括:
当所述当前图像块的宽小于64,且高等于64时;或,当所述当前图像块的宽为32,且高小于32时,
基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DCT2,DST7);
或,
所述第一变换核对为(DCT2,DST7),所述第二变换核对为(DCT2,DCT2)。
根据本申请实施例的第十方面,提供一种编码方法,包括:
当确定当前图像块的尺寸为4×4时,确定所述当前图像块不满足使用IST技术的条件。
根据本申请实施例的第十一方面,提供一种编码方法,包括:
当确定当前图像块使用DT划分模式时,根据预测子块,从多个变换核对中选择用于对变换子块进行变换的变换核对,所述预测子块与所述变换子块的对应关系为:所述预测子块所在区域内包含一个或多个所述变换子块;
获取对所述当前图像块进行基于子块的预测、变换以及量化后得到的变换系数;
对所述当前图像块的DT划分模式及变换系数进行熵编码,得到所述当前图像块的码流。
根据本申请实施例的第十二方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中非零系数的绝对值之和的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
根据本申请实施例的第十三方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中绝对值为1的系数的个数的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
根据本申请实施例的第十四方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中最后一个非零系数的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
根据本申请实施例的第十五方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取到的所述当前图像块的变换系数;
基于所述变换系数中最后一个非零系数的正负性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
根据本申请实施例的第十六方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数的子区域中非零系数的个数的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;其中,所述子区域为所述图像块的部分区域;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
根据本申请实施例的第十七方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
根据本申请实施例的第十八方面,提供一种解码方法,包括:
根据码流,确定当前图像块的尺寸;
当所述当前图像块的尺寸为4×4时,确定用于对变换子块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
或,
所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
根据本申请实施例的第十九方面,提供一种解码方法,包括:
根据码流,确定当前图像块的尺寸;
当所述当前图像块的宽为64,且高小于64时;或,当所述当前图像块的宽为32,且高小于32时,确定用于对变换子块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DCT2);
或,
所述第一变换核对为(DST7,DCT2),所述第二变换核对为(DCT2,DCT2)
根据本申请实施例的第二十方面,提供一种解码方法,包括:
根据码流,确定当前图像块的尺寸;
当所述当前图像块的宽小于64,且高等于64时;或,当所述当前图像块的小于32,且高为32时;确定用于对变换子块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DCT2,DST7);
或,
所述第一变换核对为(DCT2,DST7),所述第二变换核对为(DCT2,DCT2)
根据本申请实施例的第二十一方面,提供一种解码方法,包括:
根据码流,确定当前图像块的尺寸;
当所述当前图像块的尺寸为4×4时,确定所述当前图像块不使用IST技术。
根据本申请实施例的第二十二方面,提供一种解码方法,包括:
根据码流,确定当前图像块是否使用DT划分模式;
若所述当前图像块使用DT划分模式,则从所述码流中获取所述当前图像块的变换系数;
根据预测子块,确定用于对变换子块进行变换的变换核对,所述预测子块与所述变换子块的对应关系为:所述预测子块所在区域内包含一个或多个所述变换子块;
基于子块对所述当前图像块的变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
本申请实施例的编码方法和解码方法,当当前图像块满足使用IST技术的条件时,基于变换系数中的非零系数的绝对值之和的奇偶性指示所选择的变换核对,减少了失真。
附图说明
图1A~1B是本申请示例性实施例示出的块划分的示意图;
图2A~2B是DT划分模式衍生示意图;
图2C是DT划分模式下的变换示意图;
图3A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图3B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图4A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图4B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图5A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图5B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图6A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图6B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图7A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图7B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图8A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图8B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图9是本申请一示例性实施例示出的一种变换系数扫描顺序的示意图;
图10A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图10B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图11A是本申请一示例性实施例示出的一种编码方法的流程示意图;
图11B是本申请一示例性实施例示出的一种解码方法的流程示意图;
图12是本申请一示例性实施例示出的一种帧内预测模式号的分布示意图;
图13是本申请一示例性实施例示出的一种Bilinear模式的帧内预测示意图;
图14是本申请一示例性实施例示出的一种编码装置的硬件结构示意图;
图15是本申请一示例性实施例示出的一种解码装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对现有视频编码标准中块划分技术、现有帧内子块划分方案以及本申请实施例涉及的部分技术术语进行简单说明。
一、现有视频编码标准中块划分技术
在HEVC中,一个CTU(Coding Tree Unit,编码树单元)使用四叉树递归划分成CU。在叶子节点CU级确定是否使用帧内编码或者帧间编码。CU可以进一步划分成两个或者四个PU(Prediction Unit,预测单元),同一个PU内使用相同的预测信息。在预测完成后得到残差信息后,一个CU可进一步四叉划分成多个TU(Transform Units,变换单元)。例如,本申请中的当前图像块即为一个PU。
但是在最新提出的VVC(Versatile Video Coding,通用视频编码)中的块划分技术有了较大变化。一种混合了二叉树/三叉树/四叉树的划分结构取代了原先的划分模式,取消了原先CU,PU,TU的概念的区分,支持了CU的更灵活的划分方式。其中,CU可以是正方形也可以是矩形划分。CTU首先进行四叉树的划分,然后四叉树划分的叶子节点可以进一步进行二叉树和三叉树的划分。图1A所示,CU共有五种划分类型,分别为四叉树划分,水平二叉树划分,垂直二叉树划分,水平三叉树划分和垂直三叉树划分,如图1B所示,一种CTU内的CU划分可以是上述五种划分类型的任意组合由上可知不同的划分方式,使得各个PU的形状有所不同,如不同尺寸的矩形,正方形。
二、技术术语
1、预测像素(Prediction Signal):指从已经编解码的像素中导出的像素值,通过原始像素与预测像素之差获得残差,进而进行残差变换量化以及系数编码。
示例性的,帧间的预测像素指的是当前图像块从参考帧(重建像素帧)导出的像素值,由于像素位置离散,需要通过插值运算来获取最终的预测像素。预测像素与原始像素越接近,两者相减得到的残差能量越小,编码压缩性能越高。
2、帧内预测(Intra Prediction):指通过周边已解码区域的重建像素值来预测当前图像块的预测值的预测模式。常见的方式包括按照角度方向进行像素拷贝,以及按照一定的渐变原则进行预测值导出的方式。帧内预测去除的是视频/图像的空域相关性。
3、变换核(transform kernel):在视频编码中,变换是实现视频数据压缩必不可少的阶段,能够使信号的能量更加集中,而基于离散余弦变换(Discrete CosineTransform,DCT)/离散正弦变换(Discrete Sine Transform,DST)的变换技术是视频编码主流的变换技术。DCT和DST根据基函数的不同又具体分为多种变换核。常用的3种变换核可以如表1所示:
表1
4、正变换(forward transform)和逆变换(inverse transform):在视频编码过程中,包含了正变换和逆变换过程,又叫前向变换和反向变换。
正变换是将一个二维残差信号(残差系数)转换成能量更加集中的二维频谱信号(变换系数),变换系数再经过量化过程可以有效去除高频成分,保留中低频成分,实现视频数据压缩。
示例性的,正变换可以通过矩阵形式表示为如下公式:
F=B·f·AT
其中,M表示残差块宽度,N表示残差块高度,f表示NxM维的原始残差信号,F表示NxM维的频域信号;A和B表示MxM和NxN维的变换矩阵,它们均满足正交性。
逆变换又称反变换,是正变换的逆过程,即通过正交变换矩阵A和B,将频域信号F转换成时域残差信号f。
示例性的,逆变换可以通过矩阵形式表示为如下公式:
f=BT·F·A
5、水平变换(Horizental transform)和垂直变换(Vertical transform):在视频编码的变换阶段,输入的是一个二维残差信号,如下式所示,设X=A·fT,则F=B·XT,即:
F=B·f·AT=B·(A·fT)T
因此,一个二维信号的正变换可以通过两次一维的正变换方式实现。第一次正变换后得到一个M*N的信号X,去除了二维残差信号的水平方向像素之间的相关性,可以称为水平变换,并将A称为水平变换矩阵;第二次正变换去除了二维残差信号的垂直方向像素之间的相关性,可以称为垂直变换,并将B称为垂直变换矩阵。
6、变换对(Transform pair):也可以称为变换核对。在下一代视频编码标准中,TU支持矩阵块,因此M不一定等于N,因此A和B的维度不一定相等,除此之外,下一代视频编码标准还支持A和B不是同一种变换核生产的变换矩阵,因此在变换中存在A和B对应的变换核组成的变换核对(H,V),其中H称为水平变换核,V称为垂直变换核。
7、率失真原则(RDO,Rate-Distortion Optimized):评价编码效率的指标包括:码率和峰值信噪比(Peak Signal to Noise Ratio,简称PSNR)。码率越小,则压缩率越大;PSNR越大,重建图像质量越好。在模式选择的时候,判别公式实质上也就是对二者的综合评价。
模式对应的代价:J(mode)=D+λ*R。其中,D表示失真(Distortion),通常使用SSE(差值均方和)指标来衡量,SSE是指重建块与源图像块的差值均方和;λ是拉格朗日乘子;R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
在模式选择时,若使用RDO原则去对编码模式做比较决策,通常可以保证编码性能最佳。
8、隐式变换核选择(IST):对于帧内预测残差块,通常使用传统的DCT2变换方法,然而,对于大部分帧内预测残差块,DST 7表现出更好的能量集中性,因此基于编码单元(Code Unit,简称CU)-等级(level)的多变换核选择会进一步带来编码性能的提升。为了隐藏对当前图像块进行变换使用的变换核对进行标识的标志位(可以称为IST标志位),需要隐式指示对当前图像块进行变换使用的变换核对。
9、衍生树(Derive Tree,简称DT)划分模式:衍生模式是一种新的划分模式,产生新的划分形状,能够进一步获得性能增益。
示例性的,DT划分模式可以包括水平衍生模式和竖直衍生模式,其示意图可以如图2A所示。
示例性的,DT划分模式可以生长在四叉树或者二叉树的叶子节点上,如图2B所示,对于I帧或非I帧,DT划分模式可以通过对CU合并划分边界可以得到衍生模式的不同PU划分(2N×hN、2N×nU、2N×nD、hN×2N、nL×2N或nR×2N)。
示例性的,对于Intra模式,使用衍生模式进行预测的CU,可以使用4个非方块进行变换量化,并不需要引入新的变换核,其示意图可以如图2C所示。
示例性的,使用水平衍生模式的CU必须满足下面2个条件:
1)、高度大于等于16,且小于等于64;
2)、宽度与高度的比例小于4。
使用竖直衍生模式的CU必须满足下面2个条件:
1)、宽度大于等于16,且小于等于64;
2)、高度与宽度的比例小于4。
10、二次变换:二次变换是AVS2采纳的技术,AVS3继承了AVS2的二次变换技术并且针对4x4块和非4x4块使用了不同的变换核。目前,默认所有帧内残差块需要执行二次变换。
三、为了使本领域技术人员更好地理解本申请实施例提供的技术方案的优点,下面先对目前可选的隐式指示变换核对的实现思路进行说明。
为了隐藏IST标志位,编码端设备可以通过当前图像块的变换系数中非零系数的个数为奇数或偶数来指示变换核对。如,当前图像块的变换系数中非零系数的个数为偶数,表明编码端设备选择的变换核对为(DCT2,DCT2);当前图像块的变换系数中非零系数的个数为奇数,表明编码端设备选择的变换核对为(DST7,DST7)。解码端设备可以通过统计当前图像块的变换系数中非零系数的个数的奇偶性确定编码端设备选择的变换核对。
因此,若编码端设备选择的变换核对为(DCT2,DCT2),但当前图像块的变换系数中实际的非零系数的个数为奇数,则编码端设备通过将最后一个非零系数置0的方法使得当前图像块的变换系数中非零系数的个数为偶数;同理,若编码端设备选择的变换核对为(DST7,DST7),但当前图像块的变换系数中实际的非零系数的个数为偶数,则编码端设备通过将最后一个非零系数置0的方式使得当前图像块的变换系数中非零系数的个数为奇数。
为了使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
实施例1:请参见图3A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图3A所示,该编码方法可以包括以下步骤:
步骤S300a、当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对。
本申请实施例中,对于编码端设备,当前图像块为编码块,下文不再复述。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块不满足使用DT划分模式的条件时,可以确定对当前图像块基于整块进行预测、变换以及量化。
本申请实施例中,若编码端设备确定对当前图像块基于整块进行预测、变换以及量化,则在对当前图像块进行变换时,可以确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测、当前图像块的尺寸大于等于4×4,且小于等于32×32,以及当前图像块为亮度块。
示例性的,当编码端设备确定当前图像块满足使用IST技术的条件时,编码端设备可以基于率失真代价选择用于对当前图像块进行变换的变换核对。
步骤S310a、获取对当前图像块进行预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以通过对当前图像块进行预测、变换以及量化,得到当前图像块的变换系数。
步骤S320a、当变换系数中的非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整变换系数中非零系数的绝对值之和的奇偶性,以使变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对匹配。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真。
示例性的,为了减少失真,编码端设备可以基于当前图像块的变换系数中的非零系数的绝对值之和的奇偶性来指示所选择的变换核对。
当变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,可以通过调整变换系数中的非零系数的绝对值之和的奇偶性,来使变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对匹配。
在一个示例中,上述变换系数中非零系数的绝对值之和与所选择的变换核对不匹配,可以包括:
变换系数中非零系数的绝对值之和为奇数且所选择的变换核对为第二变换核对时,与非零系数的绝对值之和为奇数时所设置的匹配的变换核对为第一变换核对不匹配;
或,
变换系数中非零系数的绝对值之和为偶数且所选择的变换核对为第一变换核对时,非零系数的绝对值之和为偶数时所设置的匹配变换核对为第二变换核对不匹配。
示例性的,以当前图像块的变换系数中非零系数的绝对值之和为奇数时所设置的匹配变换核对为第一变换核对,非零系数的绝对值之和为偶数时所设置的匹配变换核对为第二变换核对为例。
若当前图像块中实际非零系数的绝对值之和奇数,且所选择的变换核对为第二变换核对,或,当前图像块中实际非零系数的绝对值之和为偶数,且所选择的变换核对为第一变换核对,则确定变换系数中非零系数的绝对值之和与所选择的变换核对不匹配。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
在一个示例中,上述调整变换系数中非零系数的绝对值之和的奇偶性,可以包括:
若变换系数中的最后一个非零系数为奇数,则将该最后一个非零系数调整为偶数;
若变换块变换系数中的最后一个非零系数为偶数,则将该最后一个非零系数调整为奇数。
示例性的,可以通过调整变换系数中最后一个非零系数的奇偶性,实现对非零系数的绝对值之和的奇偶性的调整。
示例性的,若变换系数中最后一个非零系数为奇数,则将该最后一个非零系数调整为偶数;
若变换系数中最后一个非零系数为偶数,则将该最后一个非零系数调整为奇数。
例如,可以通过将变换系数中最后一个非零系数加1或减1,来调整变换系数中最后一个非零系数的奇偶性。
步骤S330a、对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数,并在变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,按照步骤S320a中描述的方式进行调整之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
需要说明的是,若变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对匹配,则不需要对变换系数进行调整。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数的非零系数的绝对值之和的奇偶性来选择变换核对,此时步骤S320a具体为:
当变换系数的子区域中非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整变换系数的子区域中非零系数的绝对值之和的奇偶性。
示例性的,考虑到统计当前图像块的全部变换系数中的非零系数的绝对值之和会给编解码带来一定程度的延时,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中非零系数的绝对值之和的奇偶性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,编码端设备可以统计变换系数的子区域中非零系数的绝对值之和的奇偶性,并当确定变换系数的子区域中非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整变换系数的子区域中非零系数的绝对值之和的奇偶性,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,并基于率失真原则选择用于对当前图像块进行变换的变换核对,如第一变换核对或第二变换核对。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中非零系数的绝对值之和的奇偶性(或子区域中非零系数的绝对值之和的奇偶性)指示所选择的变换核对,其具体实现在此不做赘述。
需要说明的是,在本申请实施例中,当所选择的对当前图像块进行变换的变换核对为(DCT2,DCT2)时,可以根据实际需求设置是否需要进行二次变换,即当变换核对为(DCT2,DCT2)时,可以进行二次变换,也可以不进行二次变换。
实施例2:请参见图3B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图3B所示,该解码方法可以包括以下步骤:
步骤S300b、根据码流,确定当前图像块是否满足使用IST技术的条件。若是,则转至步骤S310b。
本申请实施例中,对于解码端设备,当前图像块为解码块,下文不再复述。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
步骤S310b、从码流中获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块满足使用IST技术的条件时,解码端设备可以通过解析码流,获取当前图像块的变换系数。
步骤S320b、基于变换系数中非零系数的绝对值之和的奇偶性,确定用于对当前图像块进行变换的变换核对,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真。
示例性的,为了减少失真,编码端设备可以基于当前图像块的变换系数中的非零系数的绝对值之和的奇偶性来指示所选择的变换核对。
解码端设备通过解析码流,获取到当前图像块的变换系数时,可以统计变换系数中非零系数的绝对值之和,并基于变换系数中非零系数的绝对值之和的奇偶性,确定用于当前图像块进行变换的变换核对。
在一个示例中,上述基于变换系数中非零系数的绝对值之和的奇偶性,确定用于对当前图像块进行变换的变换核对,可以包括:
当变换系数中非零系数的绝对值之和为奇数时,确定变换核对为第一变换核对;
当变换系数中非零系数的绝对值之和为偶数时,确定变换核为第二变换核对。
示例性的,以当前图像块的变换系数中非零系数的绝对值之和为奇数时所设置的匹配变换核对为第一变换核对,非零系数的绝对值之和为偶数时所设置的匹配变换核对为第二变换核对为例。
当解码端设备确定当前图像块的变换系数中非零系数的绝对值之和为奇数时,可以确定用于对当前图像块进行变换的变换核对为第一变换核对;当解码端设备确定当前图像块的变换系数中非零系数的绝对值之和为偶数时,可以确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
示例性的,解码端设备确定了对用于当前图像块进行变换的变换核时,可以对当前图像块的变换系数进行反量化和反变换,得到残差块。
步骤S330b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中非零系数的绝对值之和的奇偶性来确定变换核对,此时步骤S320b具体为:
基于变换系数的子区域中非零系数的绝对值之和的奇偶性,确定用于对当前图像块进行变换的变换核对。
示例性的,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中非零系数的绝对值之和的奇偶性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,当解码端设备从码流中获取到变换系数时,可以统计变换系数的子区域中非零系数的绝对值之和,并基于该变换系数的子区域中非零系数的绝对值之和的奇偶性,确定用于对当前图像块进行变换的变换核对,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,即满足使用IST技术的条件的图像块的尺寸包括4×4。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中非零系数的绝对值之和的奇偶性(或变换系数的子区域中非零系数的绝对值之和的奇偶性)确定所选择的变换核对,其具体实现在此不做赘述。
实施例3:请参见图4A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图4A所示,该编码方法可以包括以下步骤:
步骤S400a、当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块不满足使用DT划分模式的条件时,可以确定对当前图像块基于整块进行预测、变换以及量化。
本申请实施例中,若编码端设备确定对当前图像块基于整块进行预测、变换以及量化,则在对当前图像块进行变换时,可以确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
示例性的,当编码端设备确定当前图像块满足使用IST技术的条件时,编码端设备可以基于率失真代价选择用于对当前图像块进行变换的变换核对。
步骤S410a、获取对当前图像块进行预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以通过对当前图像块进行预测、变换以及量化,得到当前图像块的变换系数。
步骤S420a、当变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,调整变换系数中绝对值为1的系数的个数的奇偶性,以使变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对匹配。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真。
示例性的,为了减少失真,编码端设备可以基于当前图像块的变换系数中的绝对值为1的系数的个数的奇偶性来指示所选择的变换核对。
当变换系数中的绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,可以通过调整变换系数中的绝对值为1的个数的奇偶性,来使变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对匹配。
在一个示例中,上述变换系数中非零系数的绝对值之和与所选择的变换核对不匹配,可以包括:
变换系数中绝对值为1的系数的个数为奇数且所选择的变换核对为第二变换核对时,与绝对值为1的系数个数为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或;
变换系数中绝对值为1的系数的个数为偶数且所选择的变换核对为第一变换核对时,与绝对值为1的系数个数为偶数时所设置的匹配变换核对为第二变换核对不匹配。
示例性的,以当前图像块的变换系数中绝对值为1的系数的个数为奇数时所设置的匹配变换核对为第一变换核对,绝对值为1的系数的个数为偶数时所设置的匹配变换核对为第二变换核对为例。
若当前图像块中绝对值为1的系数的实际个数为奇数,且所选择的变换核对为第二变换核对,或,当前图像块中绝对值为1的系数的实际个数为偶数,且所选择的变换核对为第一变换核对,则确定变换系数中绝对值为1的系数的个数与所选择的变换核对不匹配。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
在一个示例中,上述调整变换系数中绝对值为1的系数的个数的奇偶性,可以包括:
若变换系数中最后一个非零系数的绝对值为1,则将该最后一个非零系数调整为0;
若变换系数中最后一个非零系数的绝对值不为1,则将该最后一个非零系数调整为绝对值为1的值。
示例性的,可以通过调整变换系数中最后一个非零系数的绝对值,实现对变换系数中非零系数的个数的奇偶性的调整。
示例性的,若变换系数中最后一个非零系数的绝对值为1,则可以将该最后一个非零系数调整为绝对值不是1的值,如0。
若变换系数中最后一个非零系数的绝对值不为1,则可以将该最后一个非零系数调整为绝对值为1的值。
在一个示例中,上述将变换系数中最后一个非零系数调整为绝对值为1的值,可以包括:
若变换系数中最后一个非零系数为负数,则将该最后一个非零系数调整为-1;
若变换系数中最后一个非零系数为正数,则将该最后一个非零系数调整为1。
示例性的,为了减少失真,当变换系数中最后一个非零系数的绝对值不为1,且需要调整变换系数中绝对值为1的系数的个数的奇偶性时,若变换系数中最后一个非零系数为负数,则可以将该最后一个非零系数调整为-1;若变换系数中最后一个非零系数为正数,则可以将该最后一个非零系数调整为1。
步骤S430a、对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数,并在变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,按照步骤S420a中描述的方式进行调整之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
需要说明的是,若变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对匹配,则不需要对变换系数进行调整。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中绝对值为1的系数的个数的奇偶性来选择变换核对,此时步骤S420a具体为:
当变换系数的子区域中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,调整变换系数的子区域中绝对值为1的系数的个数的奇偶性。
示例性的,考虑到统计当前图像块的全部变换系数中绝对值为1的非零系数的绝对值之和会给编解码带来一定程度的延时,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中绝对值为1的系数的个数的奇偶性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,编码端设备可以统计变换系数的子区域中绝对值为1的系数的个数的奇偶性,并当确定变换系数的子区域中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,调整变换系数的子区域中绝对值为1的系数的个数的奇偶性,其具体实现可以参见上文中相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,并基于率失真原则选择用于对当前图像块进行变换的变换核对,如第一变换核对或第二变换核对。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中绝对值为1的系数的个数的奇偶性(或子区域中绝对值为1的系数的个数的奇偶性)指示所选择的变换核对,其具体实现在此不做赘述。
需要说明的是,在本申请实施例中,当所选择的对当前图像块进行变换的变换核对为(DCT2,DCT2)时,可以根据实际需求设置是否需要进行二次变换,即当变换核对为(DCT2,DCT2)时,可以进行二次变换,也可以不进行二次变换。
实施例4:请参见图4B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图4B所示,该解码方法可以包括以下步骤:
步骤S400b、根据码流,确定当前图像块是否满足使用IST技术的条件。若是,则转至步骤S410b。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
步骤S410b、从码流中获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块满足使用IST技术的条件时,解码端设备可以通过解析码流,获取当前图像块的变换系数。
步骤S420b、基于变换系数中绝对值为1的系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真。
示例性的,为了减少失真,编码端设备可以基于当前图像块的变换系数中的绝对值为1的系数的个数的奇偶性来指示所选择的变换核对。
解码端设备通过解析码流,获取到当前图像块的变换系数时,可以统计变换系数中绝对值为1的系数的个数,并基于变换系数中非零系数的绝对值为1的系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对。
在一个示例中,上述基于变换系数中绝对值为1的系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对,可以包括:
当变换系数中绝对值为1的系数的个数的奇偶性为奇数时,确定变换核对为第一变换核对;
当变换系数中绝对值为1的系数的个数的奇偶性为偶数时,确定变换核对为第二变换核对。
示例性的,以当前图像块的变换系数中绝对值为1的系数的个数为奇数时所设置的匹配变换核对为第一变换核对,绝对值为1的系数的个数为偶数时所设置的匹配变换核对为第二变换核对为例。
当解码端设备确定当前图像块的变换系数中绝对值为1的系数的个数为奇数时,可以确定用于对当前图像块进行变换的变换核对为第一变换核对;当解码端设备确定当前图像块的变换系数中绝对值为1的系数的个数为偶数时,可以确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
示例性的,解码端设备确定了对用于当前图像块进行变换的变换核时,可以对当前图像块的变换系数进行反量化和反变换,得到残差块。
步骤S430b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中绝对值为1的系数的个数的奇偶性来确定变换核对,此时步骤S420b具体为:
基于变换系数的子区域中绝对值为1的系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对。
示例性的,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中绝对值为1的系数的个数的奇偶性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,当解码端设备从码流中获取到变换系数时,可以统计变换系数的子区域中绝对值为1的系数的个数,并基于该变换系数的子区域中绝对值为1的系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,即满足使用IST技术的条件的图像块的尺寸包括4×4。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中绝对值为1的系数的个数的奇偶性(或变换系数的子区域中绝对值为1的系数的个数的奇偶性)确定所选择的变换核对,其具体实现在此不做赘述。
实施例5:请参见图5A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图5A所示,该编码方法可以包括以下步骤:
步骤S500a、当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块不满足使用DT划分模式的条件时,可以确定对当前图像块基于整块进行预测、变换以及量化。
本申请实施例中,若编码端设备确定对当前图像块基于整块进行预测、变换以及量化,则在对当前图像块进行变换时,可以确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
示例性的,当编码端设备确定当前图像块满足使用IST技术的条件时,编码端设备可以基于率失真代价选择用于对当前图像块进行变换的变换核对。
步骤S510a、获取对当前图像块进行预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以通过对当前图像块进行预测、变换以及量化,得到当前图像块的变换系数。
步骤S520a、当变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,调整变换系数中最后一个非零系数的奇偶性,以使变换系数中最后一个非零系数的奇偶性与所选择的变换核对匹配。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真;此外,统计变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少失真,并减少统计变换系数中非零系数的个数给编解码带来的延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数中最后一个非零系数的奇偶性来指示所选择的变换核对。
当变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,可以通过调整变换系数中最后一个非零系数的奇偶性,来使变换系数中最后一个非零系数的奇偶性与所选择的变换核对匹配。
在一个示例中,上述变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配,可以包括:
变换系数中最后一个非零系数为奇数且所选择的变换核对为第二变换核对时,与最后一个非零系数为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
变换系数中最后一个非零系数为偶数且所选择的变换核对为第一变换核对时,与最后一个非零系数为偶数时所设置的匹配变换核对为第二变换核对不匹配。
示例性的,以当前图像块的变换系数中最后一个非零系数为奇数时所设置的匹配变换核对为第一变换核对,最后一个非零系数为偶数时所设置的匹配变换核对为第二变换核对为例。
若当前图像块的变换系数中最后一个非零系数实际为奇数,且所选择的变换核对为第二变换核对,或,当前图像块的变换系数中最后一个非零系数实际为偶数,且所选择的变换核对为第一变换核对,则确定变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
在一个示例中,上述调整变换系数中最后一个非零系数的奇偶性,可以包括:
当变换系数中最后一个非零系数大于1时,将变换系数中最后一个非零系数减1;
当变换系数中最后一个非零系数小于-1时,将变换系数中最后一个非零系数加1;
当变换系数中最后一个非零系数为1时,将变换系数中最后一个非零系数加1;
当变换系数中最后一个非零系数为-1时,将变换系数中最后一个非零系数减1。
示例性的,若变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配,则可以通过将变换系数中最后一个非零系数加1或减1的方式,来调整该最后一个非零系数的奇偶性。
需要说明的是,将变换系数中最后一个非零系数加1或减1时,需要避免该最后一个非零系数被调整为0,避免需重新确定变换系数中最后一个非零系数的奇偶性与所选择的变换核对是否匹配(原最后一个非零系数被调整为0后,变换系数中最后一个非零系数的位置发生变化)。
例如,假设变换系数中最后一个非零系数为1,则调整该最后一个非零系数的奇偶性时,可以将该最后一个非零系数加1,而不应将该最后一个非零系数减1。
同理,假设变换系数中最后一个非零系数为-1,则调整该最后一个非零系数的奇偶性时,可以将该最后一个非零系数减1,而不应将该最后一个非零系数加1。
步骤S530a、对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数,并在变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,按照步骤S520a中描述的方式进行调整之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
需要说明的是,若变换系数中最后一个非零系数的奇偶性与所选择的变换核对匹配,则不需要对变换系数进行调整。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中最后一个非零系数的奇偶性来选择变换核对,此时步骤S520a具体为:
当变换系数的子区域中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,调整变换系数的子区域中最后一个非零系数的奇偶性。
示例性的,考虑到确定当前图像块的全部变换系数中最后一个非零系数的奇偶性会给编解码带来一定程度的延时,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中最后一个非零系数的奇偶性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,编码端设备可以确定变换系数的子区域中最后一个非零系数的奇偶性,并当确定变换系数的子区域中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,调整变换系数的子区域中最后一个非零系数的奇偶性,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,并基于率失真原则选择用于对当前图像块进行变换的变换核对,如第一变换核对或第二变换核对。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中最后一个非零系数的奇偶性(或子区域中最后一个非零系数的奇偶性)指示所选择的变换核对,其具体实现在此不做赘述。
需要说明的是,在本申请实施例中,当所选择的对当前图像块进行变换的变换核对为(DCT2,DCT2)时,可以根据实际需求设置是否需要进行二次变换,即当变换核对为(DCT2,DCT2)时,可以进行二次变换,也可以不进行二次变换。
实施例6:请参见图5B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图5B所示,该解码方法可以包括以下步骤:
步骤S500b、根据码流,确定当前图像块是否满足使用IST技术的条件。若是,则转至步骤S510b。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
步骤S510b、从码流中获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块满足使用IST技术的条件时,解码端设备可以通过解析码流,获取当前图像块的变换系数。
步骤S520b、基于变换系数中最后一个非零系数的奇偶性,确定用于对当前图像块进行变换的变换核对,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真;此外,统计变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少失真,并减少统计变换系数中非零系数的个数给编解码带来的延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数中最后一个非零系数的奇偶性来指示所选择的变换核对。
解码端设备通过解析码流,获取到当前图像块的变换系数时,可以确定变换系数中最后一个非零系数的奇偶性,并基于变换系数中最后一个非零系数的奇偶性,确定用于对当前图像块进行变换的变换核对。
在一个示例中,上述基于变换系数中最后一个非零系数的奇偶性,确定用于对当前图像块进行变换的变换核对,可以包括:
当变换系数中最后一个非零系数为奇数时,确定变换核对为第一变换核对;
当变换系数中最后一个非零系数为偶数时,确定变换核对为第二变换核对。
示例性的,以当前图像块的变换系数中最后一个非零系数为奇数时所设置的匹配变换核对为第一变换核对,最后一个非零系数为偶数时所设置的匹配变换核对为第二变换核对为例。
当解码端设备确定当前图像块的变换系数中最后一个非零系数为奇数时,可以确定用于对当前图像块进行变换的变换核对为第一变换核对;当解码端设备确定当前图像块的变换系数中最后一个非零系数为偶数时,可以确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
示例性的,解码端设备确定了对用于当前图像块进行变换的变换核时,可以对当前图像块的变换系数进行反量化和反变换,得到残差块。
步骤S530b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中最后一个非零系数的奇偶性来确定变换核对,此时步骤S520b具体为:
基于变换系数的子区域中最后一个非零系数的奇偶性,确定用于对当前图像块进行变换的变换核对。
示例性的,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中最后一个非零系数的奇偶性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,当解码端设备从码流中获取到变换系数时,可以确定变换系数的子区域中最后一个非零系数的奇偶性,并基于该变换系数的子区域中最后一个非零系数的奇偶性,确定用于对当前图像块进行变换的变换核对,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,即满足使用IST技术的条件的图像块的尺寸包括4×4。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中最后一个非零系数的奇偶性(或变换系数的子区域中最后一个非零系数的奇偶性)确定所选择的变换核对,其具体实现在此不做赘述。
实施例7:请参见图6A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图6A所示,该编码方法可以包括以下步骤:
步骤S600a、当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块不满足使用DT划分模式的条件时,可以确定对当前图像块基于整块进行预测、变换以及量化。
本申请实施例中,若编码端设备确定对当前图像块基于整块进行预测、变换以及量化,则在对当前图像块进行变换时,可以确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
示例性的,当编码端设备确定当前图像块满足使用IST技术的条件时,编码端设备可以基于率失真代价选择用于对当前图像块进行变换的变换核对。
步骤S610a、获取对当前图像块进行预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以通过对当前图像块进行预测、变换以及量化,得到当前图像块的变换系数。
步骤S620a、当变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配时,调整变换系数中最后一个非零系数的正负性,以使变换系数中最后一个非零系数的正负性与所选择的变换核对匹配。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真;此外,统计变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少失真,并减少统计变换系数中非零系数的个数给编解码带来的延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数中最后一个非零系数的正负性来指示所选择的变换核对。
当变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配时,可以通过调整变换系数中最后一个非零系数的正负性,来使变换系数中最后一个非零系数的正负性与所选择的变换核对匹配。
在一个示例中,上述变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配,可以包括:
变换系数中最后一个非零系数为正数且所选择的变换核对为第二变换核对时,与最后一个非零系数为正数时所设置的匹配变换核对为第一变换核对不匹配;
或,
变换系数中最后一个非零系数为负数且所选择的变换核对为第一变换核对时,与最后一个非零系数为负数时所设置的匹配变换核对为第二变换核对不匹配。
示例性的,以当前图像块的变换系数中最后一个非零系数为正数时所设置的匹配变换核对为第一变换核对,最后一个非零系数为负数时所设置的匹配变换核对为第二变换核对为例。
若当前图像块的变换系数中最后一个非零系数实际为正数,且所选择的变换核对为第二变换核对,或,当前图像块的变换系数中最后一个非零系数实际为负数,且所选择的变换核对为第一变换核对,则确定变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
步骤S630a、对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数,并在变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配时,按照步骤S620a中描述的方式进行调整之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
需要说明的是,若变换系数中最后一个非零系数的正负性与所选择的变换核对匹配,则不需要对变换系数进行调整。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中最后一个的非零系数的正负性性来选择变换核对,此时步骤S620a具体为:
当变换系数的子区域中最后一个非零系数的正负性与所选择的变换核对不匹配时,调整变换系数的子区域中最后一个非零系数的正负性。
示例性的,考虑到确定当前图像块的全部变换系数中最后一个非零系数的正负性会给编解码带来一定程度的延时,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中最后一个非零系数的正负性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块。
示例性的,编码端设备可以确定变换系数的子区域中最后一个非零系数的正负性,并当确定变换系数的子区域中最后一个非零系数的正负性与所选择的变换核对不匹配时,调整变换系数的子区域中最后一个非零系数的正负性,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,并基于率失真原则选择用于对当前图像块进行变换的变换核对,如第一变换核对或第二变换核对。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中最后一个非零系数的正负性(或子区域中最后一个非零系数的正负性)指示所选择的变换核对,其具体实现在此不做赘述。
需要说明的是,在本申请实施例中,当所选择的对当前图像块进行变换的变换核对为(DCT2,DCT2)时,可以根据实际需求设置是否需要进行二次变换,即当变换核对为(DCT2,DCT2)时,可以进行二次变换,也可以不进行二次变换。
实施例8:请参见图6B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图6B所示,该解码方法可以包括以下步骤:
步骤S600b、根据码流,确定当前图像块是否满足使用IST技术的条件。若是,则转至步骤S610b。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
步骤S610b、从码流中获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块满足使用IST技术的条件时,解码端设备可以通过解析码流,获取当前图像块的变换系数。
步骤S620b、基于变换系数中最后一个非零系数的正负性,确定用于对当前图像块进行变换的变换核对,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真;此外,统计变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少失真,并减少统计变换系数中非零系数的个数给编解码带来的延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数中最后一个非零系数的正负性来指示所选择的变换核对。
解码端设备通过解析码流,获取到当前图像块的变换系数时,可以确定变换系数中最后一个非零系数的正负性,并基于变换系数中最后一个非零系数的正负性,确定用于对当前图像块进行变换的变换核对。
在一个示例中,上述基于变换系数中最后一个非零系数的正负性,确定用于对当前图像块进行变换的变换核对,可以包括:
当变换系数中最后一个非零系数为正数时,确定变换核对为第一变换核对;
当变换系数中最后一个非零系数为负数时,确定变换核对为第二变换核对。
示例性的,以当前图像块的变换系数中最后一个非零系数为正数时所设置的匹配变换核对为第一变换核对,最后一个非零系数为负数时所设置的匹配变换核对为第二变换核对为例。
当解码端设备确定当前图像块的变换系数中最后一个非零系数为正数时,可以确定用于对当前图像块进行变换的变换核对为第一变换核对;当解码端设备确定当前图像块的变换系数中最后一个非零系数为负数时,可以确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
示例性的,解码端设备确定了对用于当前图像块进行变换的变换核时,可以对当前图像块的变换系数进行反量化和反变换,得到残差块。
步骤S630b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
作为一种可能的实施方式,可以根据当前块的一个局部区域的变换系数中最后一个非零系数的正负性来确定变换核对,此时步骤S620b具体为:
基于变换系数的子区域中最后一个非零系数的正负性,确定用于对当前图像块进行变换的变换核对。
示例性的,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中最后一个非零系数的正负性来指示所选择的变换核对。
在一个示例中,该变换系数的子区域可以为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
示例性的,当解码端设备从码流中获取到变换系数时,可以确定变换系数的子区域中最后一个非零系数的正负性,并基于该变换系数的子区域中最后一个非零系数的正负性,确定用于对当前图像块进行变换的变换核对,其具体实现可以参见上文中的相关实现,本申请实施例在此不做赘述。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,即满足使用IST技术的条件的图像块的尺寸包括4×4。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中最后一个非零系数的正负性(或变换系数的子区域中最后一个非零系数的正负性)确定所选择的变换核对,其具体实现在此不做赘述。
实施例9:请参见图7A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图7A所示,该编码方法可以包括以下步骤:
步骤S700a、当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块不满足使用DT划分模式的条件时,可以确定对当前图像块基于整块进行预测、变换以及量化。
本申请实施例中,若编码端设备确定对当前图像块基于整块进行预测、变换以及量化,则在对当前图像块进行变换时,可以确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
示例性的,当编码端设备确定当前图像块满足使用IST技术的条件时,编码端设备可以基于率失真代价选择用于对当前图像块进行变换的变换核对。
步骤S710a、获取对当前图像块进行预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以通过对当前图像块进行预测、变换以及量化,得到当前图像块的变换系数。
步骤S720a、当变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配时,调整所述子区域中非零系数的个数的奇偶性,以使所述子区域中非零系数的个数的奇偶性与所选择的变换核对匹配。
示例性的,子区域为变换系数的部分区域。
在一个示例中,子区域为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,统计全部变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中非零系数的个数的奇偶性来指示所选择的变换核对。
当变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配时,可以通过调整变换系数的子区域中非零系数的个数的奇偶性,来使变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对匹配。
在一个示例中,上述子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配,可以包括:
子区域中非零系数的个数为奇数且所选择的变换核对为第二变换核对时,与非零系数的个数为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
子区域中非零系数的个数为偶数且所选择的变换核对为第一变换核对时,与非零系数的个数为偶数时所设置的匹配变换核对为第二变换核对不匹配。
示例性的,以当前图像块的变换系数的子区域中非零系数的个数为奇数时所设置的匹配变换核对为第一变换核对,子区域中非零系数的个数为偶数时所设置的匹配变换核对为第二变换核对为例。
若当前图像块的变换系数的子区域中非零系数的个数为奇数,且所选择的变换核对为第二变换核对,或,当前图像块的变换系数的子区域中非零系数的个数为偶数,且所选择的变换核对为第一变换核对,则确定变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
在一个示例中,上述调整子区域中非零系数的个数的奇偶性,可以包括:
将子区域中最后一个非零系数置0。
示例性的,当编码设备确定变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配时,可以通过将子区域中最后一个非零系数置零的方式,实现对子区域中非零系数的个数的奇偶性进行调整。
步骤S730a、对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数,并在变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配时,按照步骤S720a中描述的方式进行调整之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
需要说明的是,若变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对匹配,则不需要对变换系数进行调整。
实施例10:请参见图7B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图7B所示,该解码方法可以包括以下步骤:
步骤S700b、根据码流,确定当前图像块是否满足使用IST技术的条件。若是,则转至步骤S710b。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
步骤S710b、从码流中获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块满足使用IST技术的条件时,解码端设备可以通过解析码流,获取当前图像块的变换系数。
步骤S720b、基于变换系数的子区域中非零系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
示例性的,子区域为变换系数的部分区域。
在一个示例中,子区域为当前块左上角4×4块或左上角2×2块,也可以是其他尺寸的子区域。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,统计全部变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数的子区域中非零系数的个数的奇偶性来指示所选择的变换核对。
解码端设备通过解析码流,获取到当前图像块的变换系数时,可以统计变换系数的子区域中非零系数的个数,并基于变换系数的子区域中非零系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对。
在一个示例中,上述基于变换系数的子区域中非零系数的个数的奇偶性,确定用于对当前图像块进行变换的变换核对,包括:
当子区域的变换系数中非零系数的个数为奇数时,确定变换核对为第一变换核对;
当子区域的变换系数中非零系数的个数为偶数时,确定变换核对为第二变换核对。
示例性的,以当前图像块的变换系数的子区域中非零系数的个数为奇数时所设置的匹配变换核对为第一变换核对,子区域中非零系数的个数为偶数时所设置的匹配变换核对为第二变换核对为例。
当解码端设备确定当前图像块的变换系数的子区域中非零系数的个数为奇数时,可以确定用于对当前图像块进行变换的变换核对为第一变换核对;当解码端设备确定当前图像块的变换系数的子区域中非零系数的个数为偶数时,可以确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
示例性的,解码端设备确定了对用于当前图像块进行变换的变换核时,可以对当前图像块的变换系数进行反量化和反变换,得到残差块。
步骤S730b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
实施例11:请参见图8A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图8A所示,该编码方法可以包括以下步骤:
步骤S800a、当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块不满足使用DT划分模式的条件时,可以确定对当前图像块基于整块进行预测、变换以及量化。
本申请实施例中,若编码端设备确定对当前图像块基于整块进行预测、变换以及量化,则在对当前图像块进行变换时,可以确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
示例性的,当编码端设备确定当前图像块满足使用IST技术的条件时,编码端设备可以基于率失真代价选择用于对当前图像块进行变换的变换核对。
步骤S810a、获取对当前图像块进行预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以通过对当前图像块进行预测、变换以及量化,得到当前图像块的变换系数。
步骤S820a、当变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配时,调整变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,以使变换系数中按照扫描顺序最后非零系数所在位置的奇偶性与所选择的变换核对匹配。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真;此外,统计变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少失真,并减少统计变换系数中非零系数的个数给编解码带来的延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性来指示所选择的变换核对。
当变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配时,可以通过调整变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,来使变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对匹配。
请参见图9,在对量化后的变换系数进行熵编码前,需要先通过扫描技术将二维的变换系数排列成一维的变换系数序列。
示例性的,对于8x8的变换系数,64个变换系数最终编码到码流的输出是按照Z字形扫描的顺序进行的。由于经过变换后,当前图像块的变换系数为频域系数,非零系数主要集中在左上角区域,并且扫描的顺序代表的是频率依次从直流、低频到高频的顺序,因此,扫描顺序需要考虑变换系数幅值的分布,一般将幅值相近的系数尽可能相近排列,保证相邻频率的系数一起编码,以便在CABAC中建立更加有效的上下文模型,提高编码效率。
在一个示例中,上述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核不匹配,可以包括:
变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数且所选择的变换核对为第二变换核对时,与按照扫描顺序最后非零系数所在位置的编号为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数且所选择的变换核对为第一变换核对时,与按照扫描顺序最后非零系数所在位置的编号为偶数时所设置的匹配变换核对为第二变换核对不匹配。
示例性的,以当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时所设置的匹配变换核对为第一变换核对,按照扫描顺序最后非零系数所在位置的编号为偶数时所设置的匹配变换核对为第二变换核对为例。
若当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号实际为奇数,且所选择的变换核对为第二变换核对,或,当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号实际为偶数,且所选择的变换核对为第一变换核对,则确定变换系数中按照扫描顺序最后非零系数所在位置的奇偶性与所选择的变换核对不匹配。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
在一个示例中,当变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数时,调整变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,可以包括:
若按照扫描顺序最后非零系数之前不存在非零系数,或,按照扫描顺序最后非零系数的前一个非零系数所在位置的编号为奇数,则将按照扫描顺序最后非零系数置0;
否则,将按照扫描顺序最后非零系数前一个非零系数所在位置的后一个扫描位置的系数置1,并将按照扫描顺序最后非零系数置0。
示例性的,当编码端设备确定变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配,且按照扫描顺序最后非零系数所在位置的编号的奇偶性为偶数时,编码端设备可以按照变换系数中各变换系数的扫描顺序,确定该按照扫描顺序最后非零系数之前是否存在非零系数,以及在存在非零系数时,确定该按照扫描顺序最后非零系数的前一个非零系数的扫描位置的编号的奇偶性。
若按照扫描顺序最后非零系数之前不存在非零系数,或,按照扫描顺序最后非零系数的前一个非零系数的扫描位置的编号为奇数,则编码端设备可以通过将该按照扫描顺序最后非零系数置0方式,调整按照扫描顺序新的最后非零系数所在位置的编号的奇偶性。
否则,即按照扫描顺序最后非零系数的前一个非零系数的扫描位置的编号为偶数,则编码端设备可以通过将该按照扫描顺序最后非零系数的前一个非零系数所在位置的的下一个扫描位置的系数置1的方式,调整新的按照扫描顺序最后非零系数所在位置的编号的奇偶性。
在另一个示例中,当变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时,调整变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,可以包括:
按照变换系数中各变换系数的扫描顺序,若按照扫描顺序最后非零系数之前不存在非零系数,或,按照扫描顺序最后非零系数的前一个非零系数所在位置的编号为偶数,则将按照扫描顺序最后非零系数置0,以调整按照扫描顺序新的最后非零系数所在位置的编号的奇偶性;
否则,将按照扫描顺序最后非零系数的前一个非零系数所在位置的下一个扫描位置的系数置1,以调整按照扫描顺序新的最后非零系数所在位置的编号的奇偶性。
示例性的,当编码端设备确定变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配,且按照扫描顺序最后非零系数所在位置的编号的奇偶性为奇数时,编码端设备可以按照变换系数中各变换系数的扫描顺序,确定该按照扫描顺序最后非零系数之前是否存在非零系数,以及在存在非零系数时,确定该按照扫描顺序最后非零系数的前一个非零系数所在位置的编号的奇偶性。
若按照扫描顺序最后非零系数之前不存在非零系数,或,按照扫描顺序最后非零系数的前一个非零系数的扫描位置的编号为偶数,则编码端设备可以通过将该按照扫描顺序最后非零系数置0方式,将按照扫描顺序新的最后非零系数所在位置的编号的调整为偶数。
否则,即按照扫描顺序最后非零系数的前一个非零系数所在位置的编号为奇数,则编码端设备可以通过将该按照扫描顺序最后非零系数的前一个非零系数所在位置的下一个扫描位置的系数置1的方式,将按照扫描顺序新的最后非零系数所在位置的编号的奇偶性调整为偶数。
需要说明的是,当按照扫描顺序最后非零系数之前不存在非零系数,且编码端设备将按照扫描顺序最后非零系数置0时,当前图像块的变换系数为全0,此时,编码端设备不需要编码残差,也不需要选择用于对当前图像块进行变换的变换核对。
步骤S830a、对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数,并在变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配时,按照步骤S820a中描述的方式进行调整之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
需要说明的是,若变换系数中按照扫描顺序最后非零系数所在位置的奇偶性与所选择的变换核对匹配,则不需要对变换系数进行调整。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以基于率失真原则选择用于对当前图像块进行变换的变换核对,如第一变换核对或第二变换核对。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中最后一个非零系数的扫描位置的编号的奇偶性指示所选择的变换核对,其具体实现在此不做赘述。
需要说明的是,在本申请实施例中,当所选择的对当前图像块进行变换的变换核对为(DCT2,DCT2)时,可以根据实际需求设置是否需要进行二次变换,即当变换核对为(DCT2,DCT2)时,可以进行二次变换,也可以不进行二次变换。
实施例12:请参见图8B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图8B所示,该解码方法可以包括以下步骤:
步骤S800b、根据码流,确定当前图像块是否满足使用IST技术的条件。若是,则转至步骤S810b。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块是否满足使用IST技术的条件。
在一个示例中,当前图像块满足使用IST技术的条件,可以包括:
当前图像块的划分模式不是DT划分模式、当前图像块所属视频帧为I帧、当前图像块的预测模式为帧内预测,以及当前图像块为亮度块。
步骤S810b、从码流中获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块满足使用IST技术的条件时,解码端设备可以通过解析码流,获取当前图像块的变换系数。
步骤S820b、基于变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,确定用于对当前图像块进行变换的变换核对,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
本申请实施例中,考虑到当使用基于当前图像块的变换系数中非零系数的个数的奇偶性指示所选择的变换核对时,若当前图像块的变换系数中非零系数的个数的奇偶性与所选择的变换核对不匹配时,需要将最后一个非零系数置0。若最后一个非零系数较大,置0会带来比较大的失真;此外,统计变换系数中非零系数的个数会给编解码带来一定程度的延时。
示例性的,为了减少失真,并减少统计变换系数中非零系数的个数给编解码带来的延时,提高编解码性能,编码端设备可以基于当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性来指示所选择的变换核对。
解码端设备通过解析码流,获取到当前图像块的变换系数时,可以确定变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,并基于变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,确定用于对当前图像块进行变换的变换核对。
在一个示例中,上述基于变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,确定用于对所述当前图像块进行变换的变换核对,可以包括:
当变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时,确定变换核对为第一变换核对;
当变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数时,确定变换核对第二变换核对。
示例性的,以当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时所设置的匹配变换核对为第一变换核对,按照扫描顺序最后非零系数所在位置的编号为偶数时所设置的匹配变换核对为第二变换核对为例。
当解码端设备确定当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时,可以确定用于对当前图像块进行变换的变换核对为第一变换核对;当解码端设备确定当前图像块的变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数时,可以确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对可以为(DCT2,DCT2),第二变换核对可以为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
需要说明的是,第一变换核对和第二变换核对并不限于上述示例中所列举,还可以包括其他情况,例如,当当前图像块中的宽或高为64(另一条边小于64)时,第一变换核对可以见实施例17中的描述;当当前图像块中的宽或高为32(另一条边小于32)时,第一变换核对可以见实施例18中的描述。
示例性的,解码端设备确定了对用于当前图像块进行变换的变换核时,可以对当前图像块的变换系数进行反量化和反变换,得到残差块。
步骤S830b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
作为一种可能的实施方式,当当前图像块的尺寸为4×4时,上述第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以启用IST技术,即满足使用IST技术的条件的图像块的尺寸包括4×4。
示例性的,对于4×4的图像块,也可以按照上述方式,基于变换系数中最后一个非零系数的扫描位置的编号的奇偶性确定所选择的变换核对,其具体实现在此不做赘述。
实施例13:请参见图10A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图10A所示,该编码方法可以包括以下步骤:
步骤S1000a、当确定当前图像块的为4×4的帧内亮度块时,确定当前图像块不满足使用IST技术的条件。
本申请实施例中,考虑到对于4×4的帧内亮度块,已经存在默认的二次变换矩阵用于进行变换,因此,对于4×4的帧内亮度块,可以不启用IST技术,从而,编码端设备可以不需要选择对该图像块进行变换的变换核对,提高编解码性能,并降低编码复杂度。示例性的,当编码端设备确定当前图像块为4×4的帧内亮度块时,可以确定当前图像块不满足使用IST技术的条件。
本申请实施例中,当编码端设备确定当前图像块为4×4的帧内亮度块时,编码端设备可以使用默认的二次变换矩阵对该当前图像块进行变换。
编码端设备通过对当前图像块进行预测、变换以及量化,可以得到当前图像块的变换系数。
本申请实施例中,编码端设备确定了当前图像块的变换系数之后,可以对当前图像块的变换系数进行熵编码,得到当前图像块的码流。
实施例14:请参见图10B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图10B所示,该解码方法可以包括以下步骤:
步骤S1000b、根据码流,确定当前图像块的尺寸。
本申请实施例中,当解码端设备接收到码流时,可以通过解析码流,确定当前图像块的尺寸。
步骤S1010b、当当前图像块为4×4的帧内亮度块时,确定当前图像块不使用IST技术。
本申请实施例中,考虑到对于4×4的帧内亮度块,已经存在默认的二次变换矩阵用于进行变换,因此,对于4×4的帧内亮度块,可以不启用IST技术,提高编解码性能。
示例性的,当解码端设备确定当前图像块的为4×4的帧内亮度块时,解码端设备可以确定当前图像块不使用IST技术,并通过解析码流,获取当前图像块的变换系数。
本申请实施例中,当解码端设备确定当前图像块为4×4的帧内亮度块时,可以确定对当前图像块进行变换时使用的为默认的二次变换矩阵,并对当前图像块的变换系数进行反量化和反变换,得到残差块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
实施例15:请参见图11A,为本申请实施例提供的一种编码方法的流程示意图,该编码方法可以应用于编码端设备,如图11A所示,该编码方法可以包括以下步骤:
步骤S1100a、当确定当前图像块使用DT划分模式时,根据预测子块,从多个变换核对中选择用于对变换子块进行变换的变换核对,预测子块与变换子块的对应关系为:预测子块所在区域内包含一个或多个变换子块。
本申请实施例中,当确定对当前图像块进行帧内预测时,可以判断当前图像块是否满足使用DT划分模式的条件。
当编码端设备确定当前图像块满足使用DT划分模式的条件时,可以确定当前图像块是否使用DT划分模式。
本申请实施例中,为了提高DT划分模式下变换核使用的灵活性,对于使用DT划分模式的图像块,可以自适应从多种变换核中选择使用的变换核。
示例性的,当编码端设备确定当前图像块使用DT划分模式时,可以根据预测子块,从多个变换核对中选择用于对变换子块进行变换的变换核对。
作为一种可能的实施方式,上述根据预测子块,从多个变换核对中选择用于对变换子块进行变换的变换核对,可以包括:
基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对。
示例性的,编码端设备可以基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对。
需要说明的是,在本申请实施例中,编码端设备并不限于基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对。例如,编码端设备也可以基于变换子块自身的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对,其具体实现可以参见基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对的具体实现,本申请实施例后续不再复述。
示例性的,对于使用DT划分模式的图像块,一个预测子块所在区域内包括一个或多个变换子块,其示意图可以如图2A和图2C所示。
在一个示例中,上述基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对,可以包括:
对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,则选择DST7作为该变换子块水平变换核;否则,选择DCT2作为该变换子块的水平变换核;
若预测子块的高小于等于第二值,则选择DST7作为该变换子块垂直变换核;否则,选择DCT2作为该变换子块的垂直变换核。
示例性的,编码端设备确定当前图像块使用DT划分模式时,编码端设备可以通过比较预测子块的宽与第一值,以确定对该预测子块所在区域内的变换子块进行变换的水平变换核,并通过比较预测子块的高与第二值,以确定对预测子块所在区域内的变换子块进行变换的垂直变换核。
示例性的,对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,则选择DST7作为该变换子块的水平变换核;若预测子块的宽大于第一值,则选择DCT2作为该变换子块的水平变换核。
若预测子块的高小于等于第二值,则选择DST7作为该变换子块的垂直变换核;若预测子块的高大于第二值,则选择DCT2作为该变换子块的垂直变换核。
在另一个示例中,上述基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对,可以包括:
对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,且该预测子块的高小于等于第二值,则选择DST7作为该变换子块的水平变换核和垂直变换核;
否则,选择DCT2作为该变换子块的水平变换核和垂直变换核。
示例性的,当编码端设备确定当前图像块使用DT划分模式时,可以基于预测子块的宽和高,选择对预测子块所在区域内的变换子块进行变换的变换核。
示例性的,若预测子块的宽小于等于第一值,且该预测子块的高小于等于第二值,则选择DST7作为该预测子块所在区域内的变换子块的水平变换核和垂直变换核;否则,即预测子块的宽大于第一值,或/和,预测子块的高大于第二值,则选择DCT2作为该预测子块所在区域内的变换子块的水平变换核和垂直变换核。
示例性的,上述第一值可以为4、8或16;或/和,上述第二值可以为4、8或16。
作为另一种可能的实施方式,上述基于预测子块,从多个变换核对中选择用于对变换子块进行变换的变换核对,可以包括:
基于预测子块的帧内预测模式,从多个变换核对中选择用于对变换子块进行变换的变换核对。
示例性的,编码端设备可以基于预测子块的帧内预测模式,从多个变换核对中选择用于对变换子块进行变换的变换核对。
在一个示例中,上述基于预测子块的帧内预测模式,从多个变换核对中选择用于对变换子块进行变换的变换核对,可以包括:
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为0时,选择(DCT2,DCT2)作为该变换子块的变换核对;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为1或2时,选择(DST7,DST7)作为该变换子块的变换核对;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为2~18之间的奇数,或19~33之间的偶数时,选择DCT2作为该变换子块的水平变换核,选择DST7作为该变换子块的垂直变换核;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为3~17之间的偶数,或,18~32之间的奇数时,选择DST7作为该变换子块的水平变换核,选择DCT2作为该变换子块的垂直变换核。
请参见图12,帧内预测模式号的分布可以如图12所示,如图12所示,帧内预测模式号包括0~32,各帧内预测模式号与帧内预测模式的对应关系可以如表2所示:
表2
帧内预测模式号 帧内预测模式
0 Intra_Luma_DC
1 Intra_Luma_Plane
2 Intra_Luma_Bilinear
3~11 Intra_Luma_Angular
12 Intra_Luma_Vertical
13~23 Intra_Luma_Angular
24 Intra_Luma_Horizontal
25~32 Intra_Luma_Angular
示例性的,对于DC模式(帧内预测模式号为0),当前编码参考像素左边和上边参考像素的均值,适用于平坦区域。
对于Plane(平面)模式(帧内预测模式号为1),基于左边参考像素和上边参考像素的线性组合确定预测值;对于当前图像块每个位置,对应左边和上边参考像素的线性函数得到当前位置的预测值,适用于亮度变化平缓的区域。
对于Bilinear(双线性插值)模式,先由左下和右上参考像素A和B加权预测,得到当前预测块的右下像素C,然后,利用A,B,C以及上侧和左侧对应行列位置的参考像素值求出两个预测值Xv和Xh,并把Xv和Xh的加权平均值作为最终预测值,适合纹理渐变的区域,其示意图如图13所示。
示例性的,当预测子块的帧内预测模式号为0时,编码端设备可以选择(DCT2,DCT2)作为该预测子块所在区域内的变换子块的变换核对;
当预测子块的帧内预测模式号为1或2时,编码端设备可以选择(DST7,DST7)作为该预测子块所在区域内的变换子块的变换核对;
当预测子块的帧内预测模式号为2~18之间的奇数(即3、5、7、9、11、13、15或17),或19~33之间的偶数(即20、22、24、26、28、30或32)时,编码端设备可以选择DCT2作为该预测子块所在区域内的变换子块的水平变换核,并选择DST7作为该预测子块所在区域内的变换子块的垂直变换核;
当预测子块的帧内预测模式号为3~17之间的偶数(即4、6、8、10、12、14或16),或,18~32之间的奇数(即19、21、23、25、27、29或31)时,编码端设备可以选择DST7作为该预测子块所在区域内的变换子块的水平变换核,并选择DCT2作为该预测子块所在区域内的变换子块的垂直变换核。
在一个示例中,为了避免引入多点DST7变换核,当变换子块的宽大于第三值,且变换子块的水平变换核为DST7时,将该变换子块的水平变换核调整为DCT2;
或/和,
当变换子块的高大于第四值,且变换子块的垂直变换核为DST7时,将该变换子块的垂直变换核调整为DCT2,以提高编码性能。
示例性的,上述第三值为16或32;或/和,上述第四值为16或32。
步骤S1110、获取对当前图像块进行基于子块的预测、变换以及量化后得到的变换系数。
本申请实施例中,编码端设备可以对当前图像块进行基于子块的预测、变换以及量化,得到当前图像块的变换系数。
步骤S1120a、对当前图像块的DT划分模式及变换系数进行熵编码,得到所述当前图像块的码流。
本申请实施例中,编码端设备确定了当前图像块的变换系数之后,可以对当前图像块的DT划分模式及变换系数进行熵编码,得到当前图像块的码流。
实施例16:请参见图11B,为本申请实施例提供的一种解码方法的流程示意图,该解码方法可以应用于解码端设备,如图11B所示,该解码方法可以包括以下步骤:
步骤S1100b、根据码流,确定当前图像块是否使用DT划分模式。若是,则转至步骤S1110b。
本申请实施例中,解码端设备可以通过解析码流,确定当前图像块是否使用DT划分模式。
示例性的,解码端设备可以通过解析码流,获取当前图像块的DT划分模式标志位,并基于该DT划分模式标志位确定当前图像块是否使用DT划分模式。若DT划分模式标志位的值为真,则确定当前图像块使用DT划分模式,并继续解析当前图像块使用的DT划分模式;否则,确定当前图像块未使用DT划分模式。
步骤S1110b、从码流中获取当前图像块的变换系数。
步骤S1120b、根据预测子块,确定用于对变换子块进行变换的变换核对,预测子块与变换子块的对应关系为:预测子块所在区域内包含一个或多个变换子块。
本申请实施例中,为了提高DT划分模式下变换核使用的灵活性,对于使用DT划分模式的图像块,可以自适应从多种变换核中选择使用的变换核。
示例性的,当解码端设备确定当前图像块使用DT划分模式时,可以根据预测子块,确定用于对变换子块进行变换的变换核对。
作为一种可能的实施方式,上述根据预测子块,确定用于对变换子块进行变换的变换核对,包括:
基于预测子块的尺寸,确定用于对变换子块进行变换的变换核对。
示例性的,解码端设备可以基于预测子块的尺寸,确定用于对变换子块进行变换的变换核对。
示例性的,对于使用DT划分模式的图像块,一个预测子块所在区域内包含一个或多个变换子块,其示意图可以如图2A和图2C所示。
在一个示例中,上述基于预测子块的尺寸,确定用于对变换子块进行变换的变换核对,包括:
对于预测子块所在区域内的变换子块,若该预测子块的宽小于等于第一值,则确定该变换子块的水平变换核为DST7;否则,确定该变换子块的水平变换核DCT2;
若该预测子块的高小于等于第二值,则确定该变换子块的垂直变换核为DST7;否则,确定该变换子块的垂直变换核DCT2。
示例性的,解码端设备确定当前图像块使用DT划分模式时,编码端设备可以通过比较预测子块的宽与第一值,以确定对预测子块所在区域内的变换子块进行变换的水平变换核,并通过比较预测子块的高与第二值,以确定对预测子块所在区域内的变换子块进行变换的垂直变换核。
示例性的,对于预测子块所在区域内的变换子块,若该预测子块的宽小于等于第一值,则确定该变换子块的水平变换核为DST7;若该预测子块的宽大于第一值,则确定该变换子块的水平变换核为DCT2。
若该预测子块的高小于等于第二值,则选择该变换子块的垂直变换核为DST7;若该预测子块的高大于第二值,则确定该变换子块的垂直变换核为DCT2。
在另一个示例中,上述基于预测子块的尺寸,确定用于对变换子块进行变换的变换核对,可以包括:
对于预测子块所在区域的变换子块,若预测子块的宽小于等于第一值,且该预测子块的高小于等于第二值,则确定该变换子块的水平变换核和垂直变换核均为DST7;
否则,确定该变换子块的水平变换核和垂直变换核均为DCT2。
示例性的,当解码端设备确定当前图像块使用DT划分模式时,可以基于预测子块的宽和高,确定对该预测子块所在区域内的变换子块进行变换的变换核对。
示例性的,若预测子块的宽小于等于第一值,且该预测子块的高小于等于第二值,则确定该预测子块所在区域内的变换子块的水平变换核和垂直变换核均为DST7;否则,即预测子块的宽大于第一值,或/和,预测子块的高大于第二值,则确定该预测子块所在区域内的变换子块的水平变换核和垂直变换核均为DCT2。
示例性的,上述第一值可以为4、8或16;或/和,上述第二值可以为4、8或16。
作为另一种可能的实施方式,上述基于预测子块,确定用于对变换子块进行变换的变换核对,可以包括:
基于预测子块的帧内预测模式,确定用于对变换子块进行变换的变换核对。
示例性的,解码端设备可以基于预测子块的帧内预测模式确定用于对变换子块进行变换的变换核对。
在一个示例中,上述基于预测子块的帧内预测模式,确定用于对变换子块进行变换的变换核对,可以包括:
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为0时,确定变换子块的变换核对为(DCT2,DCT2);
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为1或2时,确定变换子块的变换核对为(DST7,DST7);
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为2~18之间的奇数,或19~33之间的偶数时,确定变换子块的水平变换核为DCT2,变换子块的垂直变换核为DST7;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为3~17之间的偶数,或,18~32之间的奇数时,确定变换子块的水平变换核为DST7,变换子块的垂直变换核为DCT2。
在一个示例中,为了避免引入多点DST7变换核,当变换子块的宽大于第三值,确定该变换子块的水平变换核为DCT2;
或/和,
当变换子块的高大于第四值时,确定该变换子块的垂直变换核为DCT2,以提高编码性能。
示例性的,上述第三值为16或32;或/和,上述第四值为16或32。
步骤S1130b、基于当前图像块的预测块和当前图像块的残差块确定当前图像块的重建块。
本申请实施例中,解码端设备确定了当前图像块的残差块时,可以基于对当前图像块进行预测得到的预测块,以及当前图像块的残差块,确定当前图像块的重建块。
示例性的,解码端设备可以通过将当前图像块的预测块和当前图像块的残差块相加,得到当前图像块的重建块。
实施例17:
为了提高4×4的图像块的变换的灵活性,对于4×4的图像块,可以基于率失真原则,从多个变换核对中选择用于对当前图像块进行变换的变换核对。
示例性的,该多个变换核对可以包括但不限于:第一变换核对或第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,编码端设备隐式指示所选择的变换核对的方式可以参见实施例1~8以及实施例11-12中任一实施例描述的方式;解码端设备可以基于实施例1~8以及实施例11-12中任一实施例描述的方式确定编码端设备选择的变换核对。
实施例18:
为了扩展IST技术的适用范围,对于宽为64,但高小于64的图像块,或,高为64,但宽小于64的图像块,也可以启用IST技术;但为了避免由于引入64点的DST7变换核(即64×64的DST7变换核)而导致编解码性能降低,对于长度为64的边(宽或高)对应的变换核可以使用DCT2替换DST7,即当所选择的变换核对为(DST7,DST7)时,将长度为64的边对应的变换核由DST7调整为DCT2。
示例性的,编码端设备可以基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对。
在一个示例中,当当前图像块的宽为64,且高小于64时;
第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DCT2);
或,
第一变换核对为(DST7,DCT2),第二变换核对为(DCT2,DCT2)。
在另一个示例中,当当前图像块的宽小于64,且高等于64时;
第一变换核对为(DCT2,DCT2),第二变换核对为(DCT2,DST7);
或,
第一变换核对为(DCT2,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,编码端设备隐式指示所选择的变换核对的方式可以参见实施例1~12中任一实施例描述的方式;解码端设备可以基于实施例1~12中任一实施例描述的方式确定编码端设备选择的变换核对。
实施例19:
为了扩展IST技术的适用范围,对于宽为32,但高小于32的图像块,或,高为32,但宽小于32的图像块,也可以启用IST技术;但为了避免由于引入32点的DST7变换核(即32×32的DST7变换核)而导致编解码性能降低,对于长度为32的边(宽或高)对应的变换核可以使用DCT2替换DST7,即当所选择的变换核对为(DST7,DST7)时,将长度为32的边对应的变换核由DST7调整为DCT2。
示例性的,编码端设备可以基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对。
在一个示例中,当当前图像块的宽为32,且高小于32时;
第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DCT2);
或,
第一变换核对为(DST7,DCT2),第二变换核对为(DCT2,DCT2)。
在另一个示例中,当当前图像块的宽小于32,且高等于32时;
第一变换核对为(DCT2,DCT2),第二变换核对为(DCT2,DST7);
或,
第一变换核对为(DCT2,DST7),第二变换核对为(DCT2,DCT2)。
示例性的,编码端设备隐式指示所选择的变换核对的方式可以参见实施例1~12中任一实施例描述的方式;解码端设备可以基于实施例1~12中任一实施例描述的方式确定编码端设备选择的变换核对。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
实施例20:
基于变换系数中非零系数的绝对值之和的奇偶性指示所选择的变换核对,且以变换系数中非零系数的绝对值之和为奇数时所设置的匹配变换核对为第一变换核对,变换系数中非零系数的绝对值之和为偶数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以统计对当前图像块进行预测、变换以及量化后得到的变换系数中非零系数的绝对值之和。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得变换系数中非零系数的绝对值之和为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得变换系数中非零系数的绝对值之和为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,统计变换系数中非零系数的绝对值之和。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例21:
基于变换系数中绝对值为1的系数的个数的奇偶性指示所选择的变换核对,且以变换系数中绝对值为1的系数的个数为奇数时所设置的匹配变换核对为第一变换核对,变换系数中绝对值为1的系数的个数为偶数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以统计对当前图像块进行预测、变换以及量化后得到的变换系数中绝对值为1的系数的个数。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得变换系数中绝对值为1的系数的个数为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得变换系数中绝对值为1的系数的个数为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,统计变换系数中绝对值为1的系数的个数。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例22:
基于变换系数中最后一个非零系数的奇偶性指示所选择的变换核对,且以变换系数中最后一个非零系数为奇数时所设置的匹配变换核对为第一变换核对,变换系数中最后一个非零系数为偶数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以确定对当前图像块进行预测、变换以及量化后得到的变换系数中最后一个非零系数的值。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得变换系数中最后一个非零系数的值为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得变换系数中最后一个非零系数的值为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,确定变换系数中最后一个非零系数的值。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例四23:
基于变换系数中最后一个非零系数的正负性指示所选择的变换核对,且以变换系数中最后一个非零系数为正数时所设置的匹配变换核对为第一变换核对,变换系数中最后一个非零系数为负数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以确定对当前图像块进行预测、变换以及量化后得到的变换系数中最后一个非零系数的值。
若该数值为正数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为正数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得变换系数中最后一个非零系数的值为负数;
若该数值为负数,且所选择的变换核对为第一变换核对,则调整变换系数使得变换系数中最后一个非零系数的值为正数;
若该数值为负数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,确定变换系数中最后一个非零系数的值。
若该数值为正数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为负数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例24:
基于变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性指示所选择的变换核对,且以变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时所设置的匹配变换核对为第一变换核对,变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以确定对当前图像块进行预测、变换以及量化后得到的变换系数中按照扫描顺序最后非零系数所在位置的编号。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,确定变换系数中按照扫描顺序最后非零系数所在位置的编号。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例25:
基于当前块左上角4×4块中非零系数的绝对值之和的奇偶性指示所选择的变换核对,且以当前块左上角4×4块中非零系数的绝对值之和为奇数时所设置的匹配变换核对为第一变换核对,当前块左上角4×4块中非零系数的绝对值之和为偶数时所设置的匹配变换核对第二变换核对为例
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以对当前图像块进行预测、变换以及量化后,统计当前块左上角4×4块中非零系数的绝对值之和。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得当前块左上角4×4块中非零系数的绝对值之和为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得当前块左上角4×4块中非零系数的绝对值之和为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,统计当前块左上角4×4块中非零系数的绝对值之和。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例26:
基于当前块左上角4×4块中绝对值为1的系数的个数的奇偶性指示所选择的变换核对,且以当前块左上角4×4块中绝对值为1的系数的个数为奇数时所设置的匹配变换核对为第一变换核对,当前块左上角4×4块中绝对值为1的系数的个数为偶数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以在对当前图像块进行预测、变换以及量化后,统计当前块左上角4×4块中绝对值为1的系数的个数。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得当前块左上角4×4块中绝对值为1的系数的个数为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则通过调整变换系数使得当前块左上角4×4块中绝对值为1的系数的个数为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,统计当前块左上角4×4块中绝对值为1的系数的个数。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例27:
基于当前块左上角4×4块中最后一个非零系数的奇偶性指示所选择的变换核对,且以当前块左上角4×4块中最后一个非零系数为奇数时所设置的匹配变换核对为第一变换核对,当前块左上角4×4块中最后一个非零系数为偶数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以在对当前图像块进行预测、变换以及量化后,确定当前块的左上角4×4块中最后一个非零系数的值。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得当前块左上角4×4块中最后一个非零系数的值为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得当前块左上角4×4块中最后一个非零系数的值为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,确定当前块左上角4×4块中最后一个非零系数的值。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例28:
基于当前块左上角4×4块中最后一个非零系数的正负性指示所选择的变换核对,且以当前块左上角4×4块中最后一个非零系数为正数时所设置的匹配变换核对为第一变换核对,当前块左上角4×4块中最后一个非零系数为负数时所设置的匹配变换核对第二变换核对为例。
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以在对当前图像块进行预测、变换以及量化后,确定当前块左上角4×4块中最后一个非零系数的值。
若该数值为正数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为正数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得当前块左上角4×4块中最后一个非零系数的值为负数;
若该数值为负数,且所选择的变换核对为第一变换核对,则调整变换系数使得当前块左上角4×4块中最后一个非零系数的值为正数;
若该数值为负数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,确定当前块左上角4×4块中最后一个非零系数的值。
若该数值为正数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为负数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例29:
基于当前块左上角4×4块中非零系数的绝对值之和的奇偶性指示所选择的变换核对,且以当前块左上角4×4块中非零系数的绝对值之和为奇数时所设置的匹配变换核对为第一变换核对,当前块4×4块中非零系数的绝对值之和为偶数时所设置的匹配变换核对第二变换核对为例
编码端设备:
当确定当前图像块满足使用IST技术的条件,并基于率失真代价选择了用于对当前图像块进行变换的变换核对时,编码端设备可以在对当前图像块进行预测、变换以及量化后,统计当前块左上角4×4块中非零系数的个数。
若该数值为奇数,且所选择的变换核对为的一变换核对,则不需要调整变换系数;
若该数值为奇数,且所选择的变换核对为第二变换核对,则通过调整变换系数使得当前块左上角4×4块中非零系数的个数为偶数;
若该数值为偶数,且所选择的变换核对为第一变换核对,则调整变换系数使得当前块左上角4×4块中非零系数的个数为奇数;
若该数值为偶数,且且所选择的变换核对为第二变换核对,则不需要调整变换系数。
解码端设备:
当确定当前图像块满足使用IST技术的条件,并从码流中获取到的当前图像块的变换系数时,统计当前块左上角4×4块中非零系数的个数。
若该数值为奇数,则确定用于对当前图像块进行变换的变换核对为第一变换核对;
若该数值为偶数,则确定用于对当前图像块进行变换的变换核对为第二变换核对。
示例性的,第一变换核对为(DCT2,DCT2),第二变换核对为(DST7,DST7);或,第一变换核对为(DST7,DST7),第二变换核对为(DCT2,DCT2)。
实施例30:
编码端设备:
当当前图像块为4×4的帧内亮度块时,确定当前图像块不满足使用IST技术的条件;
确定使用默认的二次变换矩阵对当前图像块进行变换。
解码端设备:
当通过解析码流,确定当前图像块为4×4的帧内亮度块时,确定当前图像块不满足使用IST技术的条件;
确定使用默认的二次变换矩阵对当前图像进行变换。
实施例31:
编码端设备:
当当前图像块的尺寸为4×4,基于实施例一~实施例五中任一实施例描述的方式选择对当前图像块进行变换的变换核对。
解码端设备:
当通过解析码流,确定当前图像块的尺寸为4×4时,基于实施例一~实施例五中任一实施例描述的方式确定对当前图像块进行变换的变换核对。
示例性的,当用于对当前图像块进行变换的变换核对为(DCT2,DCT2)时,可以对当前图像块进行二次变换,或,不对当前图像块进行二次变换。
实施例32:
编码端设备:
当当前图像块的尺寸为M×64(M<64),或64×N(N<64),且确定满足使用IST技术的条件时,基于实施例一~实施例十中任一实施例描述的方式确定对当前图像块进行变换的变换核对。
若确定的变换核对为(DST7,DST7),则将长度为64的边对应的变换核替换为DCT2。
以基于实施例一描述的方式确定对当前图像块进行变换的变换核对为例,该实施例中,变换系数中非零系数的绝对值之和的奇偶性所设置的匹配变换核对可以如表3或表4所示:
表3
表4
解码端设备:
当通过解析码流,确定当前图像块的尺寸为M×64(M<64),或64×N(N<64)时,基于实施例一~实施例十中任一实施例描述的方式确定对当前图像块进行变换的变换核对。
示例性的,当前图像块的尺寸为M×64时,变换核对(DST7,DST7)调整为(DCT2,DST7);当前图像块的尺寸为64×N时,变换核对(DST7,DST7)被调整为(DST7,DCT2)。
实施例33:
编码端设备:
当当前图像块的尺寸为M×32(M<32),或32×N(N<32),且确定满足使用IST技术的条件时,基于实施例一~实施例十中任一实施例描述的方式确定对当前图像块进行变换的变换核对。
若确定的变换核对为(DST7,DST7),则将长度为32的边对应的变换核替换为DCT2。
以基于实施例一描述的方式确定对当前图像块进行变换的变换核对为例,该实施例中,变换系数中非零系数的绝对值之和的奇偶性所设置的匹配变换核对可以如表5或表6所示:
表5
表6
解码端设备:
当通过解析码流,确定当前图像块的尺寸为M×32(M<32),或32×N(N<32)时,基于实施例一~实施例十中任一实施例描述的方式确定对当前图像块进行变换的变换核对。
示例性的,当前图像块的尺寸为M×32时,变换核对(DST7,DST7)调整为(DCT2,DST7);当前图像块的尺寸为32×N时,变换核对(DST7,DST7)被调整为(DST7,DCT2)。
实施例34:
编码端设备:
当确定当前图像块使用DT划分模式时,基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对。
示例性的,预测子块的尺寸与变换核对的对应关系可以如表7所示:
表7
水平变换核 垂直变换核
W<=M?DST7:DCT2 H<=N?DST7:DCT2
示例性的,M、N均可以为4、8或16。
示例性的,当水平变换核与垂直变换核均为DCT2时,可以对当前图像块进行二次变换,也可以不对当前图像块进行二次变换。
解码端设备:
当确定当前图像块使用DT划分模式时,基于预测子块的尺寸确定用于对变换子块进行变换的变换核对。
示例性的,预测子块的尺寸与变换核对的对应关系可以如表7所示。
实施例35:
编码端设备:
当确定当前图像块使用DT划分模式时,基于预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对。
示例性的,预测子块的尺寸与变换核对的对应关系可以如表8所示:
表8
预测子块的尺寸 水平变换核 垂直变换核
W<=M&&H<=N DST7 DST7
W>M||H>N DCT2 DCT2
示例性的,M、N均可以为4、8或16。
示例性的,当水平变换核与垂直变换核均为DCT2时,可以对当前图像块进行二次变换,也可以不对当前图像块进行二次变换。
解码端设备:
当确定当前图像块使用DT划分模式时,基于预测子块的尺寸确定用于对变换子块进行变换的变换核对。
示例性的,预测子块的尺寸与变换核对的对应关系可以如表8所示。
实施例36:
编码端设备:
当确定当前图像块使用DT划分模式时,基于预测子块的帧内预测模式选择对变换子块进行变换的变换核对。
示例性的,帧内子块的帧内预测模式号与变换核对的对应关系可以如表9所示:
表9
/>
示例性的,当变换核对(DCT2,DCT2)时,可以对当前图像块进行二次变换,也可以不对当前图像块进行二次变换
解码端设备:
当确定当前图像块使用DT划分模式时,基于预测子块的帧内预测模式确定对变换子块进行变换的变换核对。
示例性的,帧内子块的帧内预测模式号与变换核对的对应关系可以如表9。
实施例37:
编码端设备:
当确定当前图像块使用DT划分模式时,基于实施例十七中描述的方式选择对变换子块进行变换的变换核对。
示例性的,若当前图像块的宽大于M,且所选择的水平变换核为DST7,则将水平变换核调整为DCT2;
若当前图像块的高大于N,且所选择的垂直变换核为DST7,则将垂直变换核调整为DCT2。
解码端设备:
当通过解析码流,确定当前图像块使用DT划分模式时,基于实施例十七中描述的方式确定对变换子块进行变换的变换核对。
示例性的,若当前图像块的宽大于M,则帧内预测模式号为1或2对应的变换核对为(DCT2,DST7),帧内预测模式号为4、6、8…16、19、21、23…31中任一值对应的变换核对为(DCT2,DCT2)。
若当前图像块的高大于N,则帧内预测模式号为1或2对应的变换核对为(DST7,DCT2),帧内预测模式号为3、5、7…17、18、20、22…32中任一值对应的变换核对为(DCT2,DCT2)。
示例性的,M、N均可以为16或32。
实施例38:
编码流程:
若当前图像块满足DT模式划分条件,则编码端设备基于率失真代价确定对当前图像块进行基于整块的预测、变换以及量化,或进行基于子块的预测、变换以及量化;否则,对当前图像块进行基于整块的预测、变换以及量化。
若确定当前图像块使用DT划分模式,则进行基于子块的预测、变换以及量化;
示例性的,预测子块与变换子块的大小可以不一致,且一个预测子块至少对应一个变换子块。
若确定当前图像块不使用DT划分模式,则进行基于整块的预测、变换以及量化,此时,确定当前图像块是否满足使用IST技术的条件。
对当前块DT划分模式及变换系数进行熵编码得到码流。
在一个示例中,若当前图像块使用DT划分模式,则编码端设备可以按照实施例十五~实施例十九中任一实施例描述的方式选择对变换子块进行变换的变换核;若当前图像块不使用DT划分模式,且满足使用IST技术的条件,则编码端设备可以按照现有技术选择变换核。
在另一个示例中,若当前图像块使用DT划分模式,则编码端设备可以按照现有技术选择变换核;若当前图像块不使用DT划分模式,则按照实施例一~实施例十一以及实施例十三~实施例十四中任一实施例描述的方式选择对变换子块进行变换的变换核。
在另一个示例中,若若当前图像块使用DT划分模式,则编码端设备可以按照实施例十五~实施例十九中任一实施例描述的方式选择对变换子块进行变换的变换核;若当前图像块不使用DT划分模式,则按照实施例一~实施例十一以及实施例十三~实施例十四中任一实施例描述的方式选择对变换子块进行变换的变换核。
实施例39:
解码流程:
接收码流,解析当前块的DT模式划分标志位来判断当前块是否使用DT技术。
若DT标志位为真,解析DT划分模式,获取DT划分模式下预测子块和变换子块的尺寸,并解码每个变换子块的系数,经过反量化反变换得到每个变换子块的残差系数,合并得到当前图像块的残差系数;对于各预测子块进行帧内预测,合并得到当前图像块的预测块。
若DT标志位不为真,则基于整块进行预测、反量化、反变换,确定当前图像块是否满足使用IST技术的条件。若满足,则确定对当前图像块进行变换的变换核。若不满足,则按照现有技术处理。
将当前图像块的预测块和残差块相加得到当前图像块的重建块。
在一个示例中,若当前图像块使用DT划分模式,则解码端设备可以按照实施例十五~实施例十九中任一实施例描述的方式确定对变换子块进行变换的变换核;若当前图像块不使用DT划分模式,且满足使用IST技术的条件,则解码端设备可以按照现有技术选择变换核。
在另一个示例中,若当前图像块使用DT划分模式,则解码端设备可以按照现有技术确定变换核;若当前图像块不使用DT划分模式,则按照实施例一~实施例十一以及实施例十三~实施例十四中任一实施例描述的方式确定对变换子块进行变换的变换核。
在另一个示例中,若当前图像块使用DT划分模式,则解码端设备可以按照实施例十五~实施例十九中任一实施例描述的方式确定对变换子块进行变换的变换核;若当前图像块不使用DT划分模式,则按照实施例一~实施例十一以及实施例十三~实施例十四中任一实施例描述的方式确定对变换子块进行变换的变换核。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图14,为本申请实施例提供的一种编码装置的硬件结构示意图。该编码装置可包括处理器1401、存储有机器可执行指令的机器可读存储介质1402。处理器1401与机器可读存储介质1402可经由***总线1403通信。并且,通过读取并执行机器可读存储介质1402中与解码控制逻辑对应的机器可执行指令,处理器1401可执行上文描述的编码方法。
本文中提到的机器可读存储介质1402可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
从功能上划分,上述编码控制逻辑可以包括:编码模块;其中:
在一个实施例中,编码模块,用于当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中的非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中非零系数的绝对值之和的奇偶性,以使所述变换系数中非零系数的绝对值之和的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述变换系数中非零系数的绝对值之和与所选择的变换核对不匹配,包括:
所述变换系数中非零系数的绝对值之和为奇数且所选择的变换核对为第二变换核对时,与非零系数的绝对值之和为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
所述变换系数中非零系数的绝对值之和为偶数且所选择的变换核对为第一变换核对时,与非零系数的绝对值之和为偶数时所设置的匹配变换核对为第二变换核对不匹配;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)
示例性的,所述编码模块,具体用于:
若所述变换系数中的最后一个非零系数为奇数,则将该最后一个非零系数调整为偶数;
若所述变换系数中的最后一个非零系数为偶数,则将该最后一个非零系数调整为奇数。
示例性的,所述编码模块,具体用于:
当所述变换系数的子区域中非零系数的绝对值之和的奇偶性与所选择的变换核对不匹配时,调整所述变换系数的子区域中非零系数的绝对值之和的奇偶性。
在一个实施例中,编码模块,用于当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中绝对值为1的系数的个数的奇偶性,以使所述变换系数中绝对值为1的系数的个数的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述变换系数的绝对值为1的系数个数的奇偶性与所选择的变换核不匹配,包括:
所述变换系数中绝对值为1的系数的个数为奇数且所选择的变换核对为第二变换核对时,与绝对值为1的系数个数为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或;
所述变换系数中绝对值为1的系数的个数为偶数且所选择的变换核对为第一变换核对时,与绝对值为1的系数个数为偶数时所设置的匹配变换核对为第二变换核对不匹配;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,所述编码模块,具体用于:
若所述变换系数中最后一个非零系数的绝对值为1,则将所述变换系数中最后一个非零系数调整为0;
若所述变换系数中最后一个非零系数的绝对值不为1,则将所述变换系数中最后一个非零系数调整为绝对值为1的值。
示例性的,所述编码模块,具体用于:
若所述变换系数中最后一个非零系数为负数,则将所述变换系数中最后一个非零系数调整为-1;
若所述在变换系数中最后一个非零系数为正数,则将所述变换系数中最后一个非零系数调整为1。
示例性的,所述编码模块,具体用于:
当变换系数的子区域中绝对值为1的系数的个数的奇偶性与所选择的变换核对不匹配时,调整所述变换系数的子区域中绝对值为1的系数的个数的奇偶性。
在一个实施例中,编码模块,用于当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中最后一个非零系数的奇偶性,以使所述变换系数中最后一个非零系数的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述变换系数中最后一个非零系数的奇偶性与所选择的变换核对不匹配,包括:
所述变换系数中最后一个非零系数为奇数且所选择的变换核对为第二变换核对时,与最后一个非零系数为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
所述变换系数中最后一个非零系数为偶数且所选择的变换核对为第一变换核对时,与最后一个非零系数为偶数时所设置的匹配变换核对为第二变换核对不匹配;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,所述编码模块,具体用于:
当所述变换系数中最后一个非零系数大于1时,将所述变换系数中最后一个非零系数减1;
当所述变换系数中最后一个非零系数小于-1时,将所述变换系数中最后一个非零系数加1;
当所述变换系数中最后一个非零系数为1时,将所述变换系数中最后一个非零系数加1;
当所述变换系数中最后一个非零系数为-1时,将所述变换系数中最后一个非零系数减1。
示例性的,编码模块,具体用于:当所述变换系数的子区域中最后一个非零系数的奇偶性与所选择的变换核对不匹配时,调整所述变换系数的子区域中最后一个非零系数的奇偶性。
在一个实施例中,编码模块,用于当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配时,调整所述变换系数中最后一个非零系数的正负性,以使所述变换系数中最后一个非零系数的正负性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述变换系数中最后一个非零系数的正负性与所选择的变换核对不匹配,包括:
所述变换系数中最后一个非零系数为正数且所选择的变换核对为第二变换核对时,与最后一个非零系数为正数时所设置的匹配变换核对为第一变换核对不匹配;
或,
所述变换系数中最后一个非零系数为负数且所选择的变换核对为第一变换核对时,与最后一个非零系数为负数时所设置的匹配变换核对为第二变换核对不匹配;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,所述编码模块,具体用于:
当所述变换系数的子区域中最后一个非零系数的正负性与所选择的变换核对不匹配时,调整所述变换系数的子区域中最后一个非零系数的正负性。
在一个实施例中,编码模块,用于当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数的子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配时,调整所述子区域中非零系数的个数的奇偶性,以使所述子区域中非零系数的个数的奇偶性与所选择的变换核对匹配;其中,所述子区域为所述变换系数的部分区域;
对所述当前图像块变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述子区域中非零系数的个数的奇偶性与所选择的变换核对不匹配,包括:
所述子区域中非零系数的个数为奇数且所选择的变换核对为第二变换核对时,与非零系数的个数为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
所述子区域中非零系数的个数为偶数且所选择的变换核对为第一变换核对时,与非零系数的个数为偶数时所设置的匹配变换核对为第二变换核对不匹配;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,编码模块,具体用于:将所述子区域中最后一个非零系数置0。
示例性的,所述子区域为当前块左上角4×4块或左上角2×2块。
在一个实施例中,编码模块,用于当确定当前图像块满足使用IST技术的条件时,基于率失真代价选择用于对当前图像块进行变换的变换核对;
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
当所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对不匹配时,调整所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,以使所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核对匹配;
对所述当前图像块的变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性与所选择的变换核不匹配,包括:
所述变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数且所选择的变换核对为第二变换核对时,与按照扫描顺序最后非零系数所在位置的编号为奇数时所设置的匹配变换核对为第一变换核对不匹配;
或,
所述变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数且所选择的变换核对为第一变换核对时,与按照扫描顺序最后非零系数所在位置的编号为偶数时所设置的匹配变换核对为第二变换核对不匹配;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,所述编码模块,具体用于:
若按照扫描顺序最后非零系数之前不存在非零系数,或,按照扫描顺序最后非零系数的前一个非零系数所在位置的编号为奇数,则将按照扫描顺序最后非零系数置0,以调整按照扫描顺序新的最后非零系数所在位置的编号的奇偶性;
否则,将按照扫描顺序最后非零系数的前一个非零系数所在位置的下一个扫描位置的系数置1,并将按照扫描顺序最后非零系数置0,以调整按照扫描顺序新的最后非零系数所在位置的编号的奇偶性。
示例性的,所述编码模块,具体用于:
若按照扫描顺序最后非零系数之前不存在非零系数,或,按照扫描顺序最后非零系数的前一个非零系数所在位置的编号为偶数,则将按照扫描顺序最后非零系数置0,以调整按照扫描顺序新的最后非零系数所在位置的编号的奇偶性;
否则,将按照扫描顺序最后非零系数的前一个非零系数所在位置的下一个扫描位置的系数置1,并将按照扫描顺序最后非零系数置0,以调整按照扫描顺序新的最后一个非零系数所在位置的编号的奇偶性。
示例性的,所述当前图像块满足使用IST技术的条件,包括:
所述当前图像块的划分模式不是DT划分模式、所述当前图像块所属视频帧为I帧、所述当前图像块的预测模式为帧内预测、所述当前图像块的尺寸大于等于4×4,且小于等于32×32,以及所述当前图像块为亮度块。
在一个实施例中,编码模块,用于当所述当前图像块的尺寸为4×4时,基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
或,
所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
在一个实施例中,编码模块,用于当所述当前图像块的宽为64,且高小于64时;或,当所述当前图像块的宽为32,且高小于32时,
基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DCT2);
或,
所述第一变换核对为(DST7,DCT2),所述第二变换核对为(DCT2,DCT2)。
在一个实施例中,编码模块,用于当所述当前图像块的宽小于64,且高等于64时;或,当所述当前图像块的宽为32,且高小于32时,
基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DCT2,DST7);
或,
所述第一变换核对为(DCT2,DST7),所述第二变换核对为(DCT2,DCT2)。
在一个实施例中,编码模块,用于当确定当前图像块的尺寸为4×4时,确定所述当前图像块不满足使用IST技术的条件。
在一个实施例中,编码模块,用于当确定当前图像块使用DT划分模式时,根据预测子块,从多个变换核对中选择用于对变换子块进行变换的变换核对,所述预测子块与所述变换子块的对应关系为:所述预测子块所在区域内包含一个或多个所述变换子块;
获取对所述当前图像块进行基于子块的预测、变换以及量化后得到的变换系数;
对所述当前图像块的DT划分模式及变换系数进行熵编码,得到所述当前图像块的码流。
示例性的,所述编码模块,具体用于:
基于所述预测子块的尺寸,从多个变换核对中选择用于对变换子块进行变换的变换核对。
示例性的,所述编码模块,具体用于:
对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,则选择DST7作为所述变换子块的水平变换核;否则,选择DCT2作为所述变换子块的水平变换核;
若预测子块的高小于等于第二值,则选择DST7作为所述变换子块的垂直变换核;否则,选择DCT2作为所述变换子块的垂直变换核。
示例性的,所述编码模块,具体用于:
对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,且该预测子块的高小于等于第二值,则选择DST7作为所述变换子块的水平变换核和垂直变换核;
否则,选择DCT2作为所述变换子块的水平变换核和垂直变换核。
示例性的,所述第一值4、8或16;所述第二值为4、8或16。
示例性的,所述编码模块,具体用于:
基于预测子块的帧内预测模式,从多个变换核对中选择用于对变换子块进行变换的变换核对。
示例性的,所述编码模块,具体用于:
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为0时,选择(DCT2,DCT2)作为变换子块的变换核对;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为1或2时,选择(DST7,DST7)作为变换子块的变换核对;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为2~18之间的奇数,或19~33之间的偶数时,选择DCT2作为变换子块的水平变换核,选择DST7作为变换子块的垂直变换核;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为3~17之间的偶数,或,18~32之间的奇数时,选择DST7作为变换子块的水平变换核,选择DCT2作为变换子块的垂直变换核。
示例性的,当变换子块的宽大于第三值,且变换子块的水平变换核为DST7时,将该变换子块的水平变换核调整为DCT2;
或/和,
当变换子块的高大于第四值,且变换子块的垂直变换核为DST7时,将该变换子块的垂直变换核调整为DCT2。
示例性的,所述第三值为16或32;或/和,所述第四值为16或32。
请参见图15,为本申请实施例提供的一种解码装置的硬件结构示意图。该解码装置可包括处理器1501、存储有机器可执行指令的机器可读存储介质1502。处理器1501与机器可读存储介质1502可经由***总线1503通信。并且,通过读取并执行机器可读存储介质1502中与解码控制逻辑对应的机器可执行指令,处理器1501可执行上文描述的解码方法。
本文中提到的机器可读存储介质1502可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
从功能上划分,上述编码控制逻辑可以包括:解码模块;其中:
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中非零系数的绝对值之和的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
当所述变换系数中非零系数的绝对值之和为奇数时,确定所述变换核对为第一变换核对;
当所述变换系数中非零系数的绝对值之和为偶数时,确定所述变换核为第二变换核对;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,解码模块,具体用于:
基于所述变换系数的子区域中非零系数的绝对值之和的奇偶性,确定用于对所述当前图像块进行变换的变换核对。
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中绝对值为1的系数的个数的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
当所述变换系数中绝对值为1的系数的个数的奇偶性为奇数时,确定所述变换核对为第一变换核对;
当所述变换系数中绝对值为1的系数的个数的奇偶性为偶数时,确定所述变换核对为第二变换核对;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,解码模块,具体用于:
基于所述变换系数的子区域中绝对值为1的系数的个数的奇偶性,确定用于对所述当前图像块进行变换的变换核对。
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中最后一个非零系数的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
当所述变换系数中最后一个非零系数为奇数时,确定所述变换核对为第一变换核对;
当所述变换系数中最后一个非零系数为偶数时,确定所述变换核对为第二变换核对;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,解码模块,具体用于:
基于所述变换系数的子区域中最后一个非零系数的奇偶性,确定用于对所述当前图像块进行变换的变换核对。
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取到的所述当前图像块的变换系数;
基于所述变换系数中最后一个非零系数的正负性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
当所述变换系数中最后一个非零系数为正数时,确定所述变换核对为第一变换核对;
当所述变换系数中最后一个非零系数为负数时,确定所述变换核对为第二变换核对;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,解码模块,具体用于:
基于所述变换系数的子区域中最后一个非零系数的正负性,确定用于对所述当前图像块进行变换的变换核对。
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数的子区域中非零系数的个数的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;其中,所述子区域为所述图像块的部分区域;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
当所述子区域的变换系数中非零系数的个数为奇数时,确定所述变换核对为第一变换核对;
当所述子区域的变换系数中非零系数的个数为偶数时,确定所述变换核对为第二变换核对;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,当所述子区域为当前块左上角4×4块或2×2块。
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否满足使用IST技术的条件;
若所述当前图像块满足使用IST技术的条件,则从所述码流中获取所述当前图像块的变换系数;
基于所述变换系数中按照扫描顺序最后非零系数所在位置的编号的奇偶性,确定用于对所述当前图像块进行变换的变换核对,并对所述变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
当所述变换系数中按照扫描顺序最后非零系数所在位置的编号为奇数时,确定所述变换核对为第一变换核对;
当所述变换系数中按照扫描顺序最后非零系数所在位置的编号为偶数时,确定所述变换核对第二变换核对;
其中,所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);或,所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
示例性的,所述当前图像块满足使用IST技术的条件,包括:
所述当前图像块的划分模式不是DT划分模式、所述当前图像块所属视频帧为I帧、所述当前图像块的预测模式为帧内预测、所述当前图像块的尺寸大于等于4×4,且小于等于32×32,以及所述当前图像块为亮度块。
在一个实施例中,解码模块,用于根据码流,确定当前图像块的尺寸;
当所述当前图像块的尺寸为4×4时,确定用于对变换子块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
或,
所述第一变换核对为(DST7,DST7),所述第二变换核对为(DCT2,DCT2)。
在一个实施例中,解码模块,用于根据码流,确定当前图像块的尺寸;
当所述当前图像块的宽为64,且高小于64时;或,当所述当前图像块的宽为32,且高小于32时,确定用于对变换子块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DCT2);
或,
所述第一变换核对为(DST7,DCT2),所述第二变换核对为(DCT2,DCT2)。
在一个实施例中,解码模块,用于根据码流,确定当前图像块的尺寸;
当所述当前图像块的宽小于64,且高等于64时;或,当所述当前图像块的小于32,且高为32时;确定用于对变换子块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DCT2,DST7);
或,
所述第一变换核对为(DCT2,DST7),所述第二变换核对为(DCT2,DCT2)。
在一个实施例中,解码模块,用于根据码流,确定当前图像块的尺寸;
当所述当前图像块的尺寸为4×4时,确定所述当前图像块不使用IST技术。
在一个实施例中,解码模块,用于根据码流,确定当前图像块是否使用DT划分模式;
若所述当前图像块使用DT划分模式,则从所述码流中获取所述当前图像块的变换系数;
根据预测子块,确定用于对变换子块进行变换的变换核对,所述预测子块与所述变换子块的对应关系为:所述预测子块所在区域内包含一个或多个所述变换子块;
基于子块对所述当前图像块的变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
示例性的,解码模块,具体用于:
基于所述预测子块的尺寸,确定用于对变换子块进行变换的变换核。
示例性的,解码模块,具体用于:
对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,则确定所述变换子块的水平变换核为DST7;否则,确定所述变换子块的水平变换核为DCT2;
若预测子块的高小于等于第二值,则确定所述变换子块的垂直变换核为DST7;否则,确定所述变换子块的垂直变换核为DCT2。
示例性的,解码模块,具体用于:
对于预测子块所在区域内的变换子块,若预测子块的宽小于等于第一值,且该预测子块的高小于等于第二值,则确定所述变换子块的水平变换核和垂直变换核均为DST7;
否则,确定所述变换子块的水平变换核和垂直变换核均为DCT2。
示例性的,所述第一值4、8或16;所述第二值为4、8或16。
示例性的,解码模块,具体用于:
基于预测子块的帧内预测模式,确定用于对变换子块进行变换的变换核对。
示例性的,解码模块,具体用于:
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为0时,确定变换子块的变换核对为(DCT2,DCT2);
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为1或2时,确定变换子块的变换核对为(DST7,DST7);
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为2~18之间的奇数,或19~33之间的偶数时,确定变换子块的水平变换核为DCT2,变换子块的垂直变换核为DST7;
针对预测子块所在区域内的变换子块,当预测子块的帧内预测模式号为3~17之间的偶数,或,18~32之间的奇数时,确定变换子块的水平变换核为DST7,变换子块的垂直变换核为DCT2。
示例性的,解码模块,具体用于:
当变换子块的宽大于第三值时,确定该变换子块的水平变换核为DCT2;
或/和,
当变换子块的高大于第四值时,确定该变换子块的垂直变换核为DCT2。
示例性的,所述第三值为16或32;或/和,所述第四值为16或32。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (9)

1.一种编码方法,其特征在于,包括:
当当前图像块的尺寸为4×4时,基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
其中,所述方法还包括:
获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
在所述当前图像块的变换系数与所述当前图像块的变换核对不匹配的情况下,基于所述当前图像块的变换核对对所述当前图像块的变换系数进行调整;
对所述当前图像块的变换系数进行熵编码,得到当前图像块的码流;
其中,在用于对当前图像块进行变换的变换核对为所述第一变换核对的情况下,不进行二次变换。
2.一种解码方法,其特征在于,包括:
根据码流,确定当前图像块的尺寸;
当所述当前图像块的尺寸为4×4时,确定用于对所述当前图像块进行变换的变换核对;
其中,所述变换核对包括第一变换核对和第二变换核对;所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
其中,所述确定用于对所述当前图像块进行变换的变换核对,包括:
从所述码流中获取所述当前图像块的变换系数,基于所述变换系数确定所述当前图像块的变换核对为所述第一变换核对或所述第二变换核对;
其中,在所述变换系数匹配的变换核对为第一变换核对的情况下,确定所述当前图像块的变换核对为所述第一变换核对;在所述变换系数匹配的变换核对为第二变换核对的情况下,确定所述当前图像块的变换核对为所述第二变换核对;
其中,在用于对当前图像块进行变换的变换核对为所述第一变换核对的情况下,不进行二次变换。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述当前图像块的变换系数进行反量化和反变换,得到残差块;
基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块。
4.根据权利要求3所述的方法,其特征在于,所述基于所述当前图像块的预测块和所述当前图像块的残差块确定所述当前图像块的重建块,包括:
将所述当前图像块的预测块和所述当前图像块的残差块相加,得到所述当前图像块的重建块。
5.一种编码装置,其特征在于,包括:
编码模块,用于当当前图像块的尺寸为4×4时,基于率失真代价,从多个变换核对中选择用于对当前图像块进行变换的变换核对;
其中,所述多个变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
其中,所述编码模块,还用于获取对所述当前图像块进行预测、变换以及量化后得到的变换系数;
在所述当前图像块的变换系数与所述当前图像块的变换核对不匹配的情况下,基于所述当前图像块的变换核对对所述当前图像块的变换系数进行调整;
对所述当前图像块的变换系数进行熵编码,得到当前图像块的码流;
其中,在用于对当前图像块进行变换的变换核对为所述第一变换核对的情况下,不进行二次变换。
6.一种解码装置,其特征在于,包括:
解码模块,用于根据码流,确定当前图像块的尺寸;当所述当前图像块的尺寸为4×4时,确定用于对所述当前图像块进行变换的变换核对;其中,所述变换核对包括第一变换核对和第二变换核对;
所述第一变换核对为(DCT2,DCT2),所述第二变换核对为(DST7,DST7);
其中,所述解码模块,具体用于从所述码流中获取所述当前图像块的变换系数,基于所述变换系数确定所述当前图像块的变换核对为所述第一变换核对或所述第二变换核对;
其中,所述解码模块,具体用于在所述变换系数匹配的变换核对为第一变换核对的情况下,确定所述当前图像块的变换核对为所述第一变换核对;在所述变换系数匹配的变换核对为第二变换核对的情况下,确定所述当前图像块的变换核对为所述第二变换核对;
其中,在用于对当前图像块进行变换的变换核对为所述第一变换核对的情况下,不进行二次变换。
7.一种解码装置,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求2-4任一项所述的方法。
8.一种编码端装置,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器用于执行机器可执行指令,以实现如权利要求1所述的方法。
9.一种机器可读存储介质,其特征在于,所述存储介质内存储有能够被处理器执行的机器可执行指令,所述机器可执行指令被处理器执行时实现如权利要求1或2-4任一项所述的方法的步骤。
CN202210233926.XA 2019-08-23 2019-08-23 编码方法、解码方法、装置及机器可读存储介质 Active CN114827629B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210233926.XA CN114827629B (zh) 2019-08-23 2019-08-23 编码方法、解码方法、装置及机器可读存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910795494.XA CN112422991B (zh) 2019-08-23 2019-08-23 编码方法、解码方法及装置
CN202210233926.XA CN114827629B (zh) 2019-08-23 2019-08-23 编码方法、解码方法、装置及机器可读存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910795494.XA Division CN112422991B (zh) 2019-08-23 2019-08-23 编码方法、解码方法及装置

Publications (2)

Publication Number Publication Date
CN114827629A CN114827629A (zh) 2022-07-29
CN114827629B true CN114827629B (zh) 2024-02-27

Family

ID=74779094

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210233926.XA Active CN114827629B (zh) 2019-08-23 2019-08-23 编码方法、解码方法、装置及机器可读存储介质
CN201910795494.XA Active CN112422991B (zh) 2019-08-23 2019-08-23 编码方法、解码方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910795494.XA Active CN112422991B (zh) 2019-08-23 2019-08-23 编码方法、解码方法及装置

Country Status (1)

Country Link
CN (2) CN114827629B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023044868A1 (zh) * 2021-09-26 2023-03-30 Oppo广东移动通信有限公司 视频编解码方法、设备、***、及存储介质
WO2023184250A1 (zh) * 2022-03-30 2023-10-05 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、***及存储介质
CN115002461B (zh) * 2022-08-03 2023-08-11 杭州微帧信息科技有限公司 一种视频编码量化方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103098473A (zh) * 2010-09-08 2013-05-08 三星电子株式会社 对帧内预测使用自适应dct/dst的低复杂度变换编码
CN108886613A (zh) * 2016-03-28 2018-11-23 株式会社Kt 用于处理视频信号的方法和装置
CN109089117A (zh) * 2017-05-11 2018-12-25 联发科技股份有限公司 编码或解码视频数据的方法及装置
CN109788291A (zh) * 2019-02-12 2019-05-21 北京大学 一种数字视频变换方法、装置、设备及存储介质
CN109819250A (zh) * 2019-01-15 2019-05-28 北京大学 一种多核全组合方式的变换方法和***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9008184B2 (en) * 2012-01-20 2015-04-14 Blackberry Limited Multiple sign bit hiding within a transform unit
US20150139303A1 (en) * 2012-06-29 2015-05-21 Sony Corporation Encoding device, encoding method, decoding device, and decoding method
WO2017061671A1 (ko) * 2015-10-08 2017-04-13 엘지전자 주식회사 영상 코딩 시스템에서 적응적 변환에 기반한 영상 코딩 방법 및 장치
WO2018174457A1 (ko) * 2017-03-22 2018-09-27 엘지전자(주) 영상 처리 방법 및 이를 위한 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103098473A (zh) * 2010-09-08 2013-05-08 三星电子株式会社 对帧内预测使用自适应dct/dst的低复杂度变换编码
CN108886613A (zh) * 2016-03-28 2018-11-23 株式会社Kt 用于处理视频信号的方法和装置
CN109089117A (zh) * 2017-05-11 2018-12-25 联发科技股份有限公司 编码或解码视频数据的方法及装置
CN109819250A (zh) * 2019-01-15 2019-05-28 北京大学 一种多核全组合方式的变换方法和***
CN109788291A (zh) * 2019-02-12 2019-05-21 北京大学 一种数字视频变换方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114827629A (zh) 2022-07-29
CN112422991B (zh) 2022-04-15
CN112422991A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN111149359B (zh) 用于对图像进行编码/解码的方法和装置以及存储有比特流的记录介质
US20240098311A1 (en) Image encoding/decoding method and device
CN110024399B (zh) 对图像编码/解码的方法和设备及存储比特流的记录介质
JP7434486B2 (ja) 画像復号化方法、画像符号化方法及びコンピュータ可読記録媒体
CN111837388B (zh) 使用样点滤波的图像编码/解码方法和设备
JP5566529B2 (ja) 辞書を用いてビデオをコード化する方法
CN112088533A (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN114827629B (zh) 编码方法、解码方法、装置及机器可读存储介质
KR20110111852A (ko) 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
CN111247796B (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN112740684A (zh) 用于对图像进行编码/解码的方法和装置以及用于存储比特流的记录介质
CN112106373A (zh) 用于图像编/解码的方法和装置及存储比特流的记录介质
CN114600455A (zh) 图像编码/解码方法和设备以及存储比特流的记录介质
CN113906754A (zh) 图像编码/解码方法和设备
JP7467687B2 (ja) 符号化・復号方法及び装置
CN112135147B (zh) 编码方法、解码方法及装置
US20230048262A1 (en) Decoding device and method for predicting block partitioned into random shape
WO2021244617A1 (zh) 图像增强方法及装置
JP2024081780A (ja) 符号化・復号方法及び装置
CN117813821A (zh) 基于以子块为单元的帧内预测的视频信号编码/解码方法以及用于存储比特流的记录介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40068752

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant