CN116156167A - 一种残差跳过编解码方法及装置 - Google Patents

一种残差跳过编解码方法及装置 Download PDF

Info

Publication number
CN116156167A
CN116156167A CN202210212879.0A CN202210212879A CN116156167A CN 116156167 A CN116156167 A CN 116156167A CN 202210212879 A CN202210212879 A CN 202210212879A CN 116156167 A CN116156167 A CN 116156167A
Authority
CN
China
Prior art keywords
residual
skip
block
image block
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210212879.0A
Other languages
English (en)
Inventor
曹小强
陈方栋
王莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN202210212879.0A priority Critical patent/CN116156167A/zh
Publication of CN116156167A publication Critical patent/CN116156167A/zh
Pending legal-status Critical Current

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/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/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/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

本申请实施例提供一种残差跳过编解码方法及装置,涉及视频编解码技术领域,有助于节省码流中的资源,提升码流的传输效率。残差跳过解码方法包括:在码流中获取残差跳过标识,残差跳过标识用于指示图像块的目标残差跳过模式,目标残差跳过模式用于表征图像块的部分或全部残差系数是否进行残差跳过;基于残差跳过标识,获取图像块的残差系数;根据图像块的残差系数计算图像块的残差值;根据图像块的残差值和图像块的预测值,对图像块进行重构得到重建块。

Description

一种残差跳过编解码方法及装置
技术领域
本申请涉及视频编解码技术领域,尤其涉及一种残差跳过编解码方法及装置。
背景技术
当前图像块在编解码的过程中,对于较大的编码单元会划分成两个合适的子编码单元进行处理,例如16×2的编码单元,在进行预测后得到16×2的残差块,将16×2的残差块分成左右两个8×2的子块分别进行编码。其中,两个子块的残差系数较大,在码流中占用较多资源,影响编解码性能。
发明内容
本申请实施例提供一种残差跳过编解码方法及装置,有助于节省码流中的资源,提升码流的传输效率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种残差跳过解码方法,该方法应用于视频解码设备或视频解码设备的芯片中,该方法包括:在码流中获取残差跳过标识,残差跳过标识用于指示图像块的目标残差跳过模式,目标残差跳过模式用于表征图像块的部分或全部残差系数是否进行残差跳过;基于残差跳过标识,获取图像块的残差系数;根据图像块的残差系数计算图像块的残差值;根据图像块的残差值和图像块的预测值,对图像块进行重构得到重建块。
由于残差系数在码流中占据较多资源,影响传输效率。因此,采用本申请提出的残差跳过解码方法,解码端获取残差跳过标识,通过残差跳过标识获取码流中的残差系数,并计算得到残差值,根据残差值和预测值进行重构,有助于码流中的残差系数实现灵活占用资源,节省传输比特开销,提升解码性能。
在一种可能的实现方式中,目标残差跳过模式包括以下任意一种方式:第一残差跳过模式;其中,第一残差跳过模式用于表征全部残差系数进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征全部残差系数不进行残差跳过。
该种可能的实现方式,通过残差跳过标识所指示图像块的残差是否跳过,有助于残差的灵活编码,该残差跳过标识便于解码端设备解析码流并识别,以进行相应地解码动作,提升视频解码的性能。
在一种可能的实现方式中,图像块至少包括第一子块和第二子块,图像块的残差系数至少包括第一子块残差系数和第二子块残差系数,目标残差跳过模式包括以下任意一种方式:第一残差跳过模式;其中,第一残差跳过模式用于表征第一子块残差系数和第二子块残差系数进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征第一子块残差系数和第二子块残差系数不进行残差跳过;第三残差跳过模式;其中,第三残差跳过模式用于表征第一子块残差系数进行残差跳过,第二子块残差系数不进行残差跳过;第四残差跳过模式;其中,第四残差跳过模式用于表征第一子块残差系数不进行残差跳过,第二子块残差系数进行残差跳过。
该种可能的实现方式,通过残差跳过标识所指示图像块的残差是否进行部分或全部跳过,有助于残差的灵活编码,该残差跳过标识便于解码端设备解析码流并识别,以进行相应地解码动作,提升视频解码的性能。
在一种可能的实现方式中,当目标残差跳过模式为第一残差跳过模式时,基于残差跳过标识,获取图像块的残差系数,包括:根据残差跳过标识,将图像块的残差系数设为零。
该种可能的实现方式,提供了一种残差跳过模式下,确定图像块的残差系数的具体实现方式。在该残差跳过模式中,码流中的资源无需被残差系数所占用,有效降低残差系数的比特开销。
在一种可能的实现方式中,当目标残差跳过模式为第二残差跳过模式时,基于残差跳过标识,获取图像块的残差系数,包括:根据残差跳过标识,解析码流,得到图像块的残差系数。
该种可能的实现方式,提供了根据残差跳过标识指示的残差跳过模式,解析码流并获取残差系数的具体实现方式,在该种方式下,通过残差跳过标识,为视频解码器提供了灵活解码的实现方式。
在一种可能的实现方式中,当目标残差跳过模式为第三残差跳过模式时,基于残差跳过标识,获取图像块的残差系数,至少包括:根据残差跳过标识,将第一子块残差系数设为零。
该种可能的实现方式,提供了一种残差跳过模式下,确定图像块的残差系数的具体实现方式。在该残差跳过模式中,码流中的资源被部分残差系数所占用,有效降低残差系数的比特开销。
在一种可能的实现方式中,当目标残差跳过模式为第三残差跳过模式时,第二子块残差系数包括DC系数和AC系数,根据图像块的残差系数计算图像块的残差值,包括:将第二子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第一残差值;将第二子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第二残差值;基于第一残差值和第二残差值,确定图像块的残差值。
该种可能的实现方式,提供了视频解码器解析残差系数的DC系数和AC系数的具体实现方式,增加方案可实施性。
在一种可能的实现方式中,当目标残差跳过模式为第四残差跳过模式时,基于残差跳过标识,获取图像块的残差系数,至少包括:根据残差跳过标识,将第二子块残差系数设为零。
该种可能的实现方式,提供了一种残差跳过模式下,确定图像块的残差系数的具体实现方式。在该残差跳过模式中,码流中的资源被部分残差系数所占用,有效降低残差系数的比特开销。
在一种可能的实现方式中,当目标残差跳过模式为第四残差跳过模式时,第一子块残差系数包括DC系数和AC系数,根据图像块的残差系数计算图像块的残差值,包括:将第一子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第三残差值;将第一子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第四残差值;基于第三残差值和第四残差值,确定图像块的残差值。
该种可能的实现方式,提供了视频解码器解析残差系数的DC系数和AC系数的具体实现方式,增加方案可实施性。
在一种可能的实现方式中,码流中的残差系数是作为M个系数组通过半定长编码得到的;根据图像块的残差系数计算图像块的残差值,包括:当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,根据残差跳过标识推导M的取值;其中,M为大于零的整数;对M个系数组进行半定长解码,得到图像块的残差值。
该种可能的实现方式,提供了一种残差跳过标识与系数组的存在对应关系的具体实现方式,视频解码器根据残差跳过标识确定系数组并进行解码,避免在码流中获取分组索引,有助于提升解码性能。
在一种可能的实现方式中,码流中还包括变换跳过标识,变换跳过标识用于指示图像块的残差系数是否进行变换,根据图像块的残差系数计算图像块的残差值,包括:当变换跳过标识指示图像块的残差系数进行变换时,对图像块的残差系数进行反量化和反变换,得到图像块的残差值;当变换跳过标识指示图像块的残差系数不进行变换时,对图像块的残差系数进行反量化,得到图像块的残差值。
该种可能的实现方式,通过码流中的变换跳过标识指示视频解码器根据残差系数获取残差值的具体实现方式,提升方案可实施性。
在一种可能的实现方式中,在在码流中获取残差跳过标识之前,方法还包括:在码流中获取预测模式标识,预测模式标识用于指示图像块的预测模式,预测模式用于获取图像块的预测值;确定图像块的预测模式满足第一条件,第一条件为图像块的预测模式是帧内预测模式,或者,第一条件为图像块的预测模式是块复制预测模式,或者,第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
该种可能的实现方式,通过提供了方案实现前提,将预测模式与残差跳过模式建立对应关系,在预测模式满足条件的情况下,判断是否进行残差跳过。有助于提升方案可实施性。
在一种可能的实现方式中,残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。
该种可能的实现方式,通过图像块的采样格式确定残差跳过标识的种类,提升方案可实施性。
第二方面,本申请实施例提供一种残差跳过编码方法,该方法应用于视频编码设备或视频编码设备的芯片中,该方法包括:获取图像块的残差值;基于图像块的残差值,确定残差跳过标识,残差跳过标识用于指示目标残差跳过模式,目标残差跳过模式用于表征图像块的部分或全部残差值是否经过残差跳过;将残差跳过标识编入码流。
本申请实施例提供的残差跳过编码方法,有选择性地将残差编入码流,与现有残差编码方法相比,有助于灵活调整码流中的残差系数所占用的比特位,降低残差编码的开销,提升编码性能。并且,将残差跳过标识编入码流,有助于视频解码器执行相应地解码动作,节省传输比特开销,提升解码性能。
在一种可能的实现方式中目标残差跳过模式包括以下任意一种方式:第一残差跳过模式;其中,第一残差跳过模式用于表征图像块的残差值进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征图像块的残差值不进行残差跳过。
该种可能的实现方式,提供了多个残差跳过模式的具体形式,有助于基于多种残差跳过模式进行选择,将性能较好的残差跳过模式编入。
在一种可能的实现方式中,图像块至少包括第一子块和第二子块,图像块的残差值至少包括第一子块残差值和第二子块残差值,残差跳过标识指示目标残差跳过模式包括以下任意一种方式:第一残差跳过模式;其中,第一残差跳过模式用于表征第一子块残差值和第二子块残差值进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征第一子块残差值和第二子块残差值不进行残差跳过;第三残差跳过模式;其中,第三残差跳过模式用于表征第一子块残差值进行残差跳过,第二子块残差值不进行残差跳过;第四残差跳过模式;其中,第四残差跳过模式用于表征第一子块残差值不进行残差跳过,第二子块残差值进行残差跳过。
该种可能的实现方式,提供了多个残差跳过模式的具体形式,有助于基于多种残差跳过模式进行选择,将性能较好的残差跳过模式编入。
在一种可能的实现方式中,基于图像块的残差值,确定残差跳过标识,包括:基于图像块的残差值,计算分别使用多个残差跳过模式进行残差跳过编码时的率失真代价,多个残差跳过模式至少包括第一残差跳过模式和第二残差跳过模式;将多个残差跳过模式中的,率失真代价满足条件的残差跳过模式作为目标残差跳过模式;基于目标残差跳过模式,确定残差跳过标识。
该种可能的实现方式,提供了确定目标残差跳过模式的具体实现方式,有助于确定编码效果较好的残差跳过模式。
在一种可能的实现方式中,该方法还包括:根据目标子块残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数编入码流;其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块。
该种可能的实现方式,提供了部分残差编入码流的具体实现方式,有助于减少码流中残差系数所占用的资源。
在一种可能的实现方式中,根据目标子块残差值确定图像块的残差系数,包括:获取目标子块残差值的DC系数和AC系数;将图像块的残差系数编入码流,包括:将目标子块残差值的DC系数作为一个系数组进行半定长编码;将目标子块残差值的AC系数作为一个或多个系数组进行半定长编码。
该种可能的实现方式,提供了在部分残差的DC系数和AC系数采用半定长编码的具体实现方式。
在一种可能的实现方式中,将目标子块残差值划分为M个系数组,M为目标子块中的系数组的个数最大值;其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块;对M个系数组进行半定长编码。
该种可能的实现方式,提供了部分残差采用半定长编码的具体实现方式。
在一种可能的实现方式中,方法还包括:根据图像块的残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数进行变换,得到经过变换的残差系数;将经过变换的残差系数和变换跳过标识编入码流;其中,变换跳过标识用于指示图像块的残差系数经过变换;或者,根据目标子块残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数和变换跳过标识编入码流;其中,变换跳过标识用于指示图像块的残差系数未经过变换。
该种可能的实现方式,提供了对残差系数是否进行变换的实现方式,并相应生成变换跳过标识,用以解码端获取并识别,确定对残差系数的处理,提升方案可实施性。
在一种可能的实现方式中,在基于图像块的残差,确定残差跳过标识之前,方法还包括:确定图像块的预测模式满足第一条件,其中,第一条件为图像块的预测模式是帧内预测模式,或者,第一条件为图像块的预测模式是块复制预测模式,或者,第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
该种可能的实现方式,提供了图像块的预测模式与残差跳过模式具有对应关系的具体实现方式,增加方案可实施性。
在一种可能的实现方式中,残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。
该种可能的实现方式,提供了对根据图像块的采样格式对应残差跳过标识的种类。
第三方面,本申请实施例提供一种视频解码装置,该装置具有实现上述第一方面中任一项的残差跳过解码方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请实施例提供一种视频编码装置,该装置具有实现上述第二方面中任一项的残差跳过编码方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,提供一种视频解码装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该视频解码装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该视频解码装置执行如上述第一方面中任一项的残差跳过解码方法。
第六方面,提供一种视频编码装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该视频编码装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该视频编码装置执行如上述第二方面中任一项的残差跳过编码方法。
第七方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面至第二方面中任一项的残差跳过编解码方法。
第八方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面至第二方面中任一项的残差跳过编解码方法。
第九方面,提供一种电子设备,电子设备包括视频解码装置,处理电路被配置为执行如上述第一方面中任一项的残差跳过解码方法。
第十方面,提供一种电子设备,电子设备包括视频编码装置,处理电路被配置为执行如上述第二方面中任一项的残差跳过编码方法。
第十一方面,提供一种电子设备,电子设备包括视频解码装置和视频编码装置,处理电路被配置为执行如上述第一方面中任一项的残差跳过解码方法和第二方面中任一项的残差跳过编码方法。
第十二方面,提供一种芯片,芯片包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面至第二方面中任意一项的残差跳过编解码方法。
第十三方面,提供一种编解码系统,编解码系统包括上述第三方面的视频解码装置和第四方面中的视频编码装置。
第三方面至第十三方面中的任一种实现方式所带来的技术效果可参见第一方面和第二方面中对应实现方式所带来的技术效果,此处不再赘述。
附图说明
图1a为DC预测模式的示意图;
图1b为一种角度预测模式的示意图;
图1c为一种角度预测模式的示意图;
图1d为一种角度预测模式的示意图;
图1e为一种角度预测模式的示意图;
图1f为一种角度预测模式的示意图;
图1g为一种角度预测模式的示意图;
图2a为一种块复制预测模式的示意图;
图2b为一种块复制预测模式的示意图;
图2c为一种块复制预测模式的示意图;
图3为本申请实施例提供的编解码系统的系统架构图;
图4为本申请实施例提供的视频编码器的结构示意图;
图5为本申请实施例提供的视频解码器的结构示意图;
图6为本申请实施例提供的一种视频编/解码的流程示意图;
图7为本申请实施例提供的视频解码器或视频编码器的结构示意图;
图8为本申请实施例提供的视频编码方法的流程图;
图9为本申请实施例提供的残差划分编码的示意图;
图10为本申请实施例提供的残差跳过编码的示意图;
图11为本申请实施例提供的残差跳过编码的示意图;
图12为本申请实施例提供的残差跳过编码的示意图;
图13为本申请实施例提供的视频解码方法的流程图;
图14为本申请实施例提供的编码装置的结构示意图;
图15为本申请实施例提供的解码装置的结构示意图;
图16a为一种变换系数分组和扫描方法示意图;
图16b为一种变换系数分组和扫描方法示意图;
图17a为一种残差系数分组和扫描方法示意图;
图17b为一种残差系数分组和扫描方法示意图。
具体实施方式
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先,对本申请实施例涉及的技术术语进行介绍:
1、视频编码技术
视频序列存在空间冗余、时间冗余、视觉冗余、信息熵冗余、结构冗余、知识冗余、重要性冗余等一系列的冗余信息。为了尽可能的去除视频序列中的冗余信息,减少表征视频的数据量,提出了视频编码技术,以达到减小存储空间和节省传输带宽的效果。视频编码技术也称为视频压缩技术。
在国际通用范围内,视频压缩编码标准,例如:由运动图像专家组(MotionPicture Experts Group,MPEG)制定的MPEG-2和MPEG-4标准中第10部分的高级视频编解码(Advanced Video Coding,AVC),由国际电信联盟电信标准化部门(InternationalTelecommunication Uion-Telecommunication Standardization Sector,ITU-T)制定的H.263、H.264和H.265(又称高效率视频编解码(High Efficiency Video Codingstandard,HEVC))。
需要说明的是,在基于混合编码架构的编码算法中,上述压缩编码方式可以被混合使用。
视频序列包括一系列图像(picture),图像被进一步划分为切片(slice),切片再被划分为块(block)。视频编码以块为单位进行编码处理。以HEVC为例,HEVC定义了编码树单元(Coding Tree Unit,CTU)、编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)。CTU、CU、PU和TU均可作为划分后得到的图像块。其中PU和TU均基于CU进行划分。然而,无论CU,PU还是TU,本质上都属于块(或称图像块)的概念。
2、预测
基于视频序列中时域冗余、空域冗余等冗余特性,对图像块进行预测。比如,在同一帧图像中由于相邻图像块之间存在相关性,故而可根据相邻图像块推测(预测)当前图像块的值。又如,在不同帧图像中,对于某一坐标位置的图像块来说,前一时刻该图像块的值与后一时刻该图像块的值具有相关性,故而可根据前一时刻该图像块的值预测后一时刻该图像块的值。其中,进行预测的图像块为预测单元PU。预测所采用的方式称为预测模式(PredMode)。基于同一帧图像中相邻图像块之间的相关性进行预测的预测模式为帧内预测模式。其中,帧内预测模式包括均值(DC)预测模式和角度预测模式。下面以16×2的预测单元分别针对不同帧内预测模式进行说明。
DC预测模式是通过计算参考像素的平均值作为预测像素。
具体地,PredMode[component]=INTRA_MODE_DC,表示对当前采样分量component进行预测的模式为DC预测模式;
Figure BDA0003532799690000071
其中,PredMatrix[component]表示当前采样分量的预测值,x、y用于表示当前块在16×2预测单元中的位置坐标,x表示行,y表示列,0≤x≤15,0≤y≤1,r表示当前块上侧的参考块的重建像素。如图1a所示,计算参考像素的均值D作为16×2的预测像素。
角度预测模式也可以称为方向性预测模式,基于参考像素预测不同方向的像素。其中,角度预测模式包括水平预测模式、垂直预测模式、对角预测模式等等。
具体地,当PredMode[component]=INTRA_MODE_ANG_0时,表示对当前采样分量component进行预测的模式为垂直向下预测模式;
PredMatrix[component][x][y]=r[x+1],0≤x≤15,0≤y≤1。
如图1b所示,基于参考像素垂直向下的方向预测参考像素所在列的像素。
当PredMode[component]=INTRA_MODE_ANG_1时,表示对当前采样分量component进行预测的模式为水平向右预测模式;
PredMatrix[component][x][y]=c[y+1],0≤x≤15,0≤y≤1;其中,c表示当前块左侧的参考块的重建像素。
如图1c所示,基于参考像素水平向右的方向预测参考像素所在行的像素。
当PredMode[component]=INTRA_MODE_ANG_2时,表示对当前采样分量component进行预测的模式为右下方对角预测模式;
其中,当x≥y时,PredMatrix[component][x][y]=r[x-y],0≤x≤15,0≤y≤1;
当x<y时,PredMatrix[component][x][y]=c[y-x],0≤x≤15,0≤y≤1。
如图1d所示,基于参考像素右下方对角的方向预测参考像素所在位置的像素。
当PredMode[component]=INTRA_MODE_ANG_3时,表示对当前采样分量component进行预测的模式为左下方对角预测模式;
PredMatrix[component][x][y]=r[x+y+2],0≤x≤15,0≤y≤1。
如图1e所示,基于参考像素左下方对角的方向预测参考像素所在位置的像素。
当PredMode[component]=RA_MODE_ANG_4时,表示对当前采样分量component进行预测的模式为右下方隔行对角预测模式;
其中,当y=0时,PredMatrix[component][x][y]=(r[x]+r[x+1]+1)>>1,0≤x≤15;
当y≠0时,PredMatrix[component][x][y]=r[x],0≤x≤15。
如图1f所示,基于参考像素右下方隔行对角的方向预测参考像素所在位置的像素。
当PredMode[component]等于INTRA_MODE_ANG_5时,表示对当前采样分量component进行预测的模式为左下方隔行对角预测模式;
其中,当y=0时,PredMatrix[component][x][y]=(r[x+1]+r[x+2]+1)>>1,0≤x≤15;
当y≠0时,PredMatrix[component][x][y]=r[x+2],0≤x≤15。
如图1g所示,基于参考像素左下方隔行对角的方向预测参考像素所在位置的像素。
可以理解的是,上述六种角度预测模式仅作为示例,事实上还可以包括其他方向的预测模式。
另外,预测模式还包括块复制预测模式。块复制预测模式也称为块拷贝预测模式,是指从当前帧已解码区域寻找最优的重建块作为匹配块,并将匹配块的重建像素作为当前块的预测像素。其中,当前帧已解码区域为当前块的搜索位置。仍以16×2的预测单元为例,包括以下三种块复制预测模式。
如图2a所示,为块复制预测模式1,16×2的预测单元划分为两个8×2的子块分别进行搜索。此时8×2的子块的搜索位置为至少K+(8-1)=K+7个位置。类似地,如图2b所示,为块复制预测模式2,16×2的预测单元划分为四个4×2的子块分别进行搜索。此时4×2的子块的搜索位置为至少K+(4-1)=K+3个位置;如图2c所示,为块复制预测模式3,16×2的预测单元划分为八个2×2的子块分别进行搜索。此时2×2的子块的搜索位置为至少K+(2-1)=K+1个位置。其中,K为预设大小,可以理解的是,K越大,块复制预测越准确,考虑到硬件成本的消耗,K可以适当选择,例如K选取32。
下面描述本申请实施例所应用的系统架构。本申请提供的编解码方法适用于视频编解码系统。图3示出了视频编解码系统的结构。
如图3所示,视频编解码系统包含源装置30和目的装置31。源装置30产生经过编码后的视频数据,源装置30也可以被称为视频编码装置或视频编码设备,目的装置31可以对源装置30产生的经过编码后的视频数据进行解码,目的装置31也可以被称为视频解码装置或视频解码设备。源装置30和/或目的装置31可包含至少一个处理器以及耦合到所述至少一个处理器的存储器。所述存储器可包含但不限于只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,本申请对此不作具体限定。
源装置30和目的装置31可以包括各种装置,包含桌上型计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者等电子设备。
目的装置31可经由链路32从源装置30接收经编码视频数据。链路32可包括能够将经编码视频数据从源装置30移动到目的装置31的一个或多个媒体和/或装置。在一个实例中,链路32可包括使得源装置30能够实时地将编码后的视频数据直接发射到目的装置31的一个或多个通信媒体。在此实例中,源装置30可根据通信标准(例如:无线通信协议)来调制编码后的视频数据,并且可以将调制后的视频数据发射到目的装置31。上述一个或多个通信媒体可包含无线和/或有线通信媒体,例如:射频(Radio Frequency,RF)频谱、一个或多个物理传输线。上述一个或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)等。上述一个或多个通信媒体可以包含路由器、交换器、基站,或者实现从源装置30到目的装置31的通信的其它设备。
在另一实例中,可将编码后的视频数据从输出接口303输出到存储装置33。类似地,可通过输入接口313从存储装置33存取编码后的视频数据。存储装置33可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(Digital Video Disc,DVD)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。
在另一实例中,存储装置33可对应于文件服务器或存储由源装置30产生的编码后的视频数据的另一中间存储装置。在此实例中,目的装置31可经由流式传输或下载从存储装置33获取其存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的装置31的服务器。例如,文件服务器可以包含全球广域网(World Wide Web,Web)服务器(例如,用于网站)、文件传送协议(File TransferProtocol,FTP)服务器、网络附加存储(Network Attached Storage,NAS)装置以及本地磁盘驱动器。
目的装置31可通过任何标准数据连接(例如,因特网连接)存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器发射的方式可为流式传输、下载传输或两者的组合。
本申请的解码方法不限于无线应用场景,示例性的,本申请的编解码方法可以应用于支持以下多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统可经配置,以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
需要说明的是,图3示出的视频编解码系统仅仅是视频编解码系统的示例,并不是对本申请中视频编解码系统的限定。本申请提供的编解码方法还可适用于编码装置与解码装置之间无数据通信的场景。在其它实例中,待编码视频数据或编码后的视频数据可以从本地存储器检索,也可以在网络上流式传输等。视频编码装置可对待编码视频数据进行编码并且将编码后的视频数据存储到存储器,视频解码装置也可从存储器中获取编码后的视频数据并且对该编码后的视频数据进行解码。
在图3中,源装置30包含视频源301、视频编码器302和输出接口303。在一些实例中,输出接口303可包含调制器/解调器(调制解调器)和/或发射器。视频源301可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。
视频编码器302可对来自视频源301的视频数据进行编码。在一些实例中,源装置30经由输出接口303将编码后的视频数据直接发射到目的装置31。在其它实例中,编码后的视频数据还可存储到存储装置33上,供目的装置31稍后存取来用于解码和/或播放。
在图3的实例中,目的装置31包含显示装置311、视频解码器312以及输入接口313。在一些实例中,输入接口313包含接收器和/或调制解调器。输入接口313可经由链路32和/或从存储装置33接收编码后的视频数据。显示装置311可与目的装置31集成或可在目的装置31外部。一般来说,显示装置311显示解码后的视频数据。显示装置311可包括多种显示装置,例如,液晶显示器、等离子显示器、有机发光二极管显示器或其它类型的显示装置。
可选的,视频编码器302和视频解码器312可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处理共同数据流或单独数据流中的音频和视频两者的编码。
视频编码器302和视频解码器312可以包括至少一个微处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application-Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、离散逻辑、硬件或其任何组合。若本申请提供的编解码方法采用软件实现,则可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用至少一个处理器执行所述指令从而实施本申请。
本申请中的视频编码器302和视频解码器312可以根据视频压缩标准(例如HEVC)操作,也可根据其它业界标准操作,本申请对此不作具体限定。
图4是本申请实施例中视频编码器302的一种示意性框图。视频编码器302可以在预测模块41、变换模块42、量化模块43以及熵编码模块44分别进行预测、变换、量化以及熵编码的过程。视频编码器302中还包括分割模块40、求和器402。对于视频块重构建,视频编码器302也包括反量化模块45、反变换模块46、求和器401和参考图像存储器47。
如图4中所展示,视频编码器302接收视频数据,分割模块40将数据分割成原始块。此分割也可包含分割成条带(slice)、图像块或其它较大单元,以及(例如)根据最大编码单元(Largest Coding Unit,LCU)及CU的四叉树结构进行视频块分割。示例性的,视频编码器302编码在待编码的视频条带内的视频块的组件。一般的,条带可划分成多个原始块(且可能划分成称作图像块的原始块的集合)。通常在分割模块40中确定CU、PU以及TU的尺寸。
预测模块41可将所得经帧内模式预测或块复制预测模式预测的预测块提供到求和器402以产生残差块,且将该预测块提供到求和器401经重构得到重建块,该重建块用于后续进行预测的参考像素。其中,视频编码器302通过原始块的像素值减去预测块的像素值来形成像素差值,该像素差值即为残差块,该残差块中的数据可包含亮度差及色度差。残差块中的数据可以称为残差。求和器401表示执行此减法运算的一个或多个组件。预测模块41还可将相关的语法元素发送至熵编码模块44用于合并至码流。
变换模块42可将残差块划分为一个或多个TU进行变换。变换模块42使用离散余弦变换(Discrete Cosine Transform,DCT)或离散正弦变换(Discrete Sine Transform,DST)将残差块经变换得到变换系数。变换模块42可将残差块从像素域转换到变换域(例如,频域)。当前常用的变换方法有DCT2和DST7。由于大部分图像的能量主要集中在低频区域,且人眼对低频较为敏感,因此通过变换将高频系数置零可以在变换模块的基础上减小图像编码的动态范围。去除高频区域的变换系数,减小的码率的开销,并且不会造成很大的失真。其中,将残差块经过变换、量化后的系数称为变换系数。
变换模块42可将所得变换系数发送到量化模块43。量化模块43对变换系数进行量化以进一步减小码率。量化过程可减少与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化的程度。在一些可行的实施方式中,量化模块43可接着执行包含经量化变换系数的矩阵的扫描。替代的,熵编码模块44可执行扫描。
在量化之后,熵编码模块44可熵编码量化后的变换系数。熵编码是指按照信息熵的原理进行的无损编码方式,它处于视频压缩的最后一个处理模块,把一系列用来表示视频序列的元素符号转变为一个用来传输或存储的二进制码流,熵编码模块的输出数据即原始视频压缩后的最终码流。熵编码可以有效地去除这些视频元素符号的统计冗余,是保证视频编码压缩效率的重要工具之一。例如,熵编码模块44可执行上下文自适应性可变长度编码(Context-Adaptive Varialbe-Length Coding,CAVLC)、上下文自适应性二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)、基于语法的上下文自适应性二进制算术解码(SBAC)、概率区间分割熵(PIPE)解码或另一熵编码方法或技术。在通过熵编码模块44进行熵编码之后,可将经编码码流传输到视频解码器312或存档以供稍后传输或由视频解码器312检索。
反量化模块45及反变换模块46分别应用反量化与反变换,求和器401将反变换后的残差块得和预测的残差块相加以产生重建块,该重建块用作后续原始块进行预测的参考像素。该重建块存储于参考图像存储器47中。
图5是本申请实施例中视频解码器312的结构示意图。如图所示,视频解码器312包含熵解码模块50、预测模块51、反量化模块52、反变换模块53、求和器501和参考图像存储器54。在一些可行的实施方式中,视频解码器312可执行与关于来自图4的视频编码器302描述的编码流程的示例性地互逆的解码流程。
在解码过程期间,视频解码器312从视频编码器302接收经编码的视频的码流。视频解码器312的熵解码模块50熵解码码流以产生量化系数和语法元素。熵解码模块50将语法元素转递到预测模块51。视频解码器312可在视频条带层级和/或视频块层级处接收语法元素。
反量化模块52对码流中所提供且通过熵解码模块50所解码的经量化变换系数进行反量化(例如,解量化)。反量化过程可包含使用通过视频编码器302针对视频条带中的每一视频块所计算的量化参数确定量化的程度,且同样地确定应用的反量化的程度。反变换模块53将反变换(例如,DCT、DST等变换方法)应用于反量化后的变换系数,将反量化后的变换系数按照反变换单元在像素域中产生反变换后的残差块。其中,反变换单元的尺寸与TU的尺寸相同,反变换方法与变换方法采用同样的变换方法中相应的正变换与反变换,例如,DCT、DST的反变换为反DCT、反DST或概念上类似的反变换过程。
预测模块51生成预测块后,视频解码器312通过将来自反变换模块53的反变换后的残差块与通过与预测块求和来形成经解码视频块。求和器501表示执行此求和运算的一个或多个组件。在需要时,也可应用解块滤波器来对经解码块进行滤波以便去除块效应伪影。给定帧或图像中的经解码的视块存储于参考图像存储器54中,作为后续进行预测的参考像素。
本申请提供一种可能的视频编/解码实现方式,如图6所示,图6为本申请提供的一种视频编/解码的流程示意图,其中,a图表示视频编码流程,b图表示视频解码流程。该视频编码方法可由上述源装置30或视频编码器302执行,该视频解码方法可由上述目的装置31或视频解码器312执行。下面以视频编码器和视频解码器为例进行描述。
具体地,视频编码器获取图像块的原始数据,对原始数据进行预测后得到残差,对该残差选择性进行变换,将变换或未变换的残差进行量化及熵编码,得到码流;相反地,视频解码器获取码流,进行熵解码,将解析后的系数进行反量化,类似地,选择性进行反变换,完成重建。可以理解的是,上述流程中,变换是可选的步骤,经熵编码得到的码流中的残差系数可以为经变换的残差系数,或者为残差系数本身。
当前在进行熵编码时,若数据较小,视频编码器可直接对各个系数进行统一量化,再进行二值化编码。若数据较大,可进一步划分为多个系数组(coefficient group,CG),再对各个CG进行统一量化,再进行二值化编码。在本申请的一些实施例中,系数组(CG)和量化组(QG)可以相同。其中,二值化编码也可以成为二进制化编码,如上述关于图4中熵编码模块44的描述。具体地,对需要编码的符号或系数进行二值化,经过二值化后的符号或系数转化为为二元字符串,不同的二值化编码对相同的系数进行编码得到的二元字符串可能具有不同的二元概率模型,以及不同的字符串长度。半定长编码是二值化编码中的一种方式。半定长编码是指将待编码系数进行分组,每个组编码一个码长(code length,CL),对同一个组内的系数使用相同码长进行定长编码。
下面以半定长编码方式对残差系数编码的部分进行示例性说明。首先,将一个残差块内残差绝对值的最大值定义为修整最大值(modified maximum,mm)。其次,确定该残差块内残差系数的编码比特数(同一个残差块内残差系数的编码比特数一致)。例如,若当前残差块的CL为2,当前残差系数为1,则编码残差系数1需要2个比特,表示为01。若当前残差块的CL为7,则表示编码8-bit的残差系数和1-bit的符号位。CL的确定是去找满足当前子块所有残差都在[-2^(N-1),2^(N-1)]范围之内的最小N值。若同时存在-2^(N-1)和2^(N-1)两个边界值,则N应增加1,即需要N+1个比特编码当前残差块的所有残差;若仅存在-2^(N-1)和2^(N-1)两个边界值中的一个,则需要编码一个Trailing位来确定该边界值是-2^(N-1)还是2^(N-1);若所有残差均不存在-2^(N-1)和2^(N-1)中的任何一个,则无需编码该Trailing位。
在一种示例中,如图16a和图16b所示,对于变换系数的扫描和分组方法。其中,图16a将变换系数划分为3个系数组并进行扫描,图16b将变换系数划分为5个系数组并进行扫描。在图中所示,16×2变换系数块内部划分(灰度相同表示系数属于同一个编码小组,共用一个CL)。
在一种示例中,如图17a和图17b所示,对于残差系数的扫描和分组方法。其中,图17a将残差系数划分为2个系数组并进行扫描,图17b将变换系数划分为4个系数组并进行扫描。在图中所示,16×2残差系数块内部划分(灰度相同表示系数属于同一个编码小组,共用一个CL)。
相应地,解码端根据霍夫曼解码获取每个系数组的码长。其中,若码长大于图像位宽(bit_depth),则使用码长为图像位宽解析小组内所有系数,同时,不需要解析符号位,系数解析范围是[0,2^bit_depth-1]。若码长小于图像位宽(bit_depth),则使用定长码解析小组内所有系数,系数解析范围为[-2^(CL-1)-1,2^(CL-1)]。
上述视频编码器302以及视频解码器312也可以通过另外一种实现形态来实现,例如,采用通用的数字处理器系统实现,如图7所示的编解码装置70,该编解码装置70可以为上述视频编码器302中的部分装置,也可以为上述视频解码器312中的部分装置。
该编解码装置70可以是应用于编码侧,也可以是应用于解码侧。编解码装置70包括处理器701以及存储器702。所述处理器701与存储器702相连接(如通过总线704相互连接)。可选的,编解码装置70还可包括通信接口703,通信接口703连接处理器701和存储器702,用于接收/发送数据。
存储器702可以为随机存储记忆体(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)。该存储器702用于存储相关程序代码及视频数据。
处理器701可以是一个或多个中央处理器(Central Processing Unit,CPU),例如图7中所示的CPU 0和CPU 1。在处理器701是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该处理器701用于读取所存储器702中存储的程序代码,执行图8和图13所对应的任意一个实施方案及其各种可行的实施方式的操作。
以下,结合上述图3示出的视频编解码系统、图4示出的视频编码器302以及图5示出的视频解码器312对本申请提供的编解码方法进行详细描述。
如图8所示,为本申请提供的一种残差跳过编码方法的流程图。该方法包括:
S801、视频编码器获取图像块的残差值。
具体地,如图4所示的视频编码器302中,图像块的残差值是指图像块经预测的预测像素和原始块的原始像素产生的像素差值。其中,预测包括多种模式,常用的预测模式有帧内预测模式、逐点预测模式、块复制预测模式。关于预测模式的具体实现方式可参考上文的描述。
S802、视频编码器基于图像块的残差值,确定残差跳过标识。
其中,残差跳过标识用于指示目标残差跳过模式,该目标残差跳过模式用于表征图像块的部分或全部残差是否经过残差跳过。
具体地,残差跳过是指将图像块残差值进行部分或全部跳过后,再确定残差系数并编入码流的过程。
可选的,目标残差跳过模式包括以下任意一种:第一残差跳过模式,用于表征图像块的残差值进行残差跳过;第二残差跳过模式,用于表征图像块的残差值不进行残差跳过。
可以理解的是,在上述情况下,残差跳过模式用于指示图像块的全部残差值均跳过或均不跳过,相应地,根据残差值确定的残差系数均不编入码流或均编入码流。
可选的,图像块的残差值在进行编码时,考虑到视频编码器的硬件能力,通常会将残差块划分为至少两个子块。如图9所示,将16×2的图像块划分为两个8×2的子块分别进行编码。当图像块至少包括第一子块和第二子块时,图像块的残差值至少包括第一子块残差值和第二子块残差值,目标残差跳过模式包括以下任意一种:第一残差跳过模式,用于表征第一子块残差值和第二子块残差值进行残差跳过,如图10中的c图所示;第二残差跳过模式,用于表征第一子块残差值和第二子块残差值不进行残差跳过,如图10中的d图所示;第三残差跳过模式,用于表征第一子块残差值进行残差跳过,第二子块残差值不进行残差跳过,如图10中的a图所示;第四残差跳过模式,用于表征第一子块残差值不进行残差跳过,第二子块残差值进行残差跳过,如图10中的b图所示。在图10中,格纹表示的图像块为进行残差跳过的子块,空白表示的图像块为没有进行残差跳过的子块。
可以理解的是,在上述情况下,残差跳过模式用于指示图像块的全部残差值均进行跳过或均不进行跳过,或者图像块的部分残差值进行跳过,相应地,根据残差值确定全部残差系数均不编入码流或均编入码流,或者根据残差值确定部分残差系数编入码流。其中,部分残差系数编入码流包括第一子块的残差系数编入码流,第二子块的残差系数不编入码流;或者,第一子块的残差系数不编入码流,第二子块的残差系数编入码流。
可以理解的是,在预测较为准确的情况下,图像块的原始像素与预测像素较为接近,得到的残差值接近于零,因此,跳过部分或全部的残差值,有助于降低残差系数在码流中的开销,提升编码性能。
通过残差跳过标识所指示的目标残差跳过模式,表征图像块的部分或全部残差值是否跳过,有助于实现灵活编码,该残差跳过标识便于解码端设备解析码流并识别,以进行相应地解码动作,提升视频编解码的性能。
具体地,视频编码器基于图像块的残差值,确定残差跳过标识可以包括以下步骤S11-S13。
S11、视频编码器计算使用多个残差跳过模式进行残差跳过编码时的率失真代价。
其中,图像块的率失真代价(Rate-Distortion Optimized,RDO)。计算方式如下:
J(mode)=D+λ×R;
其中,J(mode)表示不同模式的率失真代价,D表示Distortion,通常由SSE(errorsum of squares)指标来衡量,SSE是指重建块与原图像的像素差值均方和,λ为拉格朗日乘子,R为当前模式编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。率失真代价越小,表示该模式的编码效果越好。
由于采用不同残差跳过模式使得图像块的残差值进行选择性编码,导致由残差值和预测值形成的重建块不同,以及当前模式编码所需的实际比特数也不同。
可选的,在上述第一残差跳过模式中,视频编码器将图像块的残差值设为零。
一种可能的实现方式中,该图像块的残差值至少包括第一子块残差值和第二子块残差值。第一子块残差值和第二子块残差值均设为零。
可以理解的是,采用第一残差跳过模式,由于图像块的残差值为零,其重建块由图像块的预测值构成。
可选的,在上述第二残差跳过模式中,视频编码器对图像块的残差值不进行跳过,即保留图像块的残差值。
一种可能的实现方式中,该图像块的残差值至少包括第一子块残差值和第二子块残差值。第一子块残差值和第二子块残差值均保留。
可以理解的是,采用第二残差跳过模式,重建块由图像块的预测值和图像块的残差值构成。
可选的,在上述第三残差跳过模式或第四残差跳过模式中,视频编码器对图像块的残差值进行部分跳过,即保留图像块的部分残差值。
一种可能的实现方式,,该图像块的残差值至少包括第一子块残差值和第二子块残差值。视频编码器将目标子块残差值保留,将图像块中除目标子块残差值进行跳过。
具体地,在上述第三残差跳过模式中,视频编码器将第一子块残差值进行跳过,第二子块残差值保留。重建块由图像块的预测值和图像块的第二子块残差值构成。在上述第四残差跳过模式中,视频编码器将第一子块残差值保留,第二子块残差值进行跳过。重建块由图像块的预测值和图像块的第一子块残差值构成。
S12、视频编码器将多个残差跳过模式中的,率失真代价满足条件的残差跳过模式作为目标残差跳过模式。
其中,率失真代价满足条件的残差跳过模式应当为可选择的编码模式。可以理解的是,通常情况下,率失真代价越小,编码效果越好,视频编码器可以选择最小率失真代价所对应的残差跳过模式作为目标残差跳过模式。
S13、视频编码器基于目标残差跳过模式,确定残差跳过标识。
一种可能的实现方式,不同残差跳过模式在残差跳过标识中通过不同取值来表示。第一残差跳过模式对应残差跳过标识为第一数值,第二残差跳过模式对应残差跳过标识为第二数值,第三残差跳过模式对应残差跳过标识为第三数值,第四残差跳过模式对应残差跳过标识为第一数值。示例性的,第一数值为0,第二数值为1,第三数值为2,第四数值为3;或者,第一数值为3,第二数值为2,第三数值为1,第四数值为0;或者,第一数值为2,第二数值为1,第三数值为3,第四数值为0;或者,第一数值为1,第二数值为2,第三数值为3,第四数值为0。
另一种可能的实现方式,分别表示图像块中的各个子块是否进行残差跳过,残差跳过标识包括多个子块的残差跳过标识。示例性的,第五数值表示进行残差跳过,第六数值表示不进行残差跳过。
当图像块包括第一子块和第二子块时,残差跳过标识包括第一子块残差跳过标识和第二子块残差跳过标识。例如第一子块残差跳过标识为第五数值以及第二子块残差跳过标识为第五数值表示第一残差跳过模式,第一子块残差跳过标识为第六数值以及第二子块残差跳过标识为第六数值表示第二残差跳过模式,第一子块残差跳过标识为第五数值以及第二子块残差跳过标识为第六数值表示第三残差跳过模式,第一子块残差跳过标识为第五数值以及第二子块残差跳过标识为第六数值表示第四残差跳过模式。
示例性的,第五数值为0,第六数值为1,或者第五数值为1,第六数值为0。
可以理解的是,残差跳过模式只包括第一残差跳过模式和第二残差跳过模式时,残差跳过标识只用于指示进行残差跳过或不进行残差跳过。则残差跳过标识可以用第一数值和第二数值分别表示,或者采用第五数值和第六数值分别表示。
视频编码器将目标残差跳过模式所对应的标识作为残差跳过标识。
可以理解的是,残差跳过模式的种类可以预设于视频编码器中。种类越丰富,残差跳过模式的选择越多,有助于不同图像块在编码过程中灵活选择。
S803、视频编码器将残差跳过标识编入码流。
具体地,视频编码器将率失真代价最小的残差跳过模式对应的残差跳过标识编入码流。其中,根据残差跳过模式的种类确定残差跳过标识在码流中所占用的比特位。例如,残差跳过模式为4种,则至少占用2个比特位,残差跳过标识的第一数值、第二数值、第三数值和第四数值分别用00、01、10和11表示。又如,残差跳过模式为2种,则至少占用1个比特位,残差跳过标识的第五数值和第六数值分别用0和1表示。
通过上述方法,视频编码器对编码过程中选择性地保留图像块的部分或全部残差,灵活调整码流中的残差系数所占用的比特位,有助于降低残差编码的开销,提升编码性能。
在上述步骤S803之后,该方法还包括:视频编码器确定图像块的残差系数。
具体地,当目标残差跳过模式为第一残差跳过模式时,图像块的残差值为零,视频编码器不需要将图像块的残差值编入码流,相应地,视频编码器不需要根据图像块的残差值确定残差系数。
具体地,当目标残差跳过模式为第二残差跳过模式时,图像块的残差值均保留,视频编码器根据图像块的全部残差值确定残差系数。其中,当图像块划分为多个子块时,图像块的全部残差值由多个子块的残差值构成。例如图像块包括第一子块和第二子块,则视频编码器根据第一子块残差值和第二子块残差值确定残差系数。
具体地,当目标残差跳过模式为第三残差跳过模式或第四残差跳过模式时,图像块的残差值部分保留,该部分保留的残差值可以为图像块中目标子块残差值,视频编码器根据目标子块残差值和目标子块残差跳过模式确定残差系数。其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块,视频编码器根据第二子块残差值确定图像块的残差系数;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块,视频编码器根据第一子块残差值确定图像块的残差系数。
可选的,视频编码器根据图像块的残差值和目标残差跳过模式,确定图像块的残差系数。
可选的,视频编码器确定残差值是否进行变换,如果进行变换,将图像块的残差系数进行变换,得到经过变换的残差系数;将经过变换的残差系数编入码流;其中,变换后的残差系数也可以称为变换系数。如果不进行变换,根据图像块的残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数编入码流;其中,变换跳过标识用于指示图像块的残差系数未经过变换。
可以理解的是,视频编码器将是否经过变换跳过的结果通过变换跳过标识编入码流中,以指示视频解码器进行相应地解码动作。示例性的,变换跳过标识在码流中占用一个比特位,0表示经过变换跳过,1表示不经过变换跳过。
可选的,视频编码器基于预测模式确定残差值是否进行变换。示例性的,当预测模式为帧内预测模式时,确定残差值不进行变换;当预测模式为块复制预测模式时,确定残差值进行变换。相应地,视频编码器根据预测模式确定变换跳过标识。
可以理解的是,当预测模式与是否进行变换具有对应关系时,视频编码器可以将预测模式标识或变换跳过标识中任意一个编入码流,以供解码端设备获取,并执行相应地解码动作。
可选的,当采用DCT变换时,变换系数包括DC系数和AC系数,其中,DC系数为DCT变换系数的直流分量,AC系数为DCT变换系数的交流分量。当视频编码器对变换系数采用半定长编码时,可将变换系数划分系数组,对每个系数组分别以固定的码长进行编码。示例性的,如图11所示的a、b分别表示两种划分方式,a图表示划分为三个系数组,b图表示划分为五个系数组。在图11中,黑色图像块表示左上角的DC系数,其余图像块表示AC系数;相同形式的图像块为同一系数组,例如a图中,按照从左至右的出现顺序,三个系数组包括黑色图像块为一个系数组,空白图像块为一个系数组,左斜纹图像块为一个系数组;又如b图中,按照从左至右的出现顺序,五个系数组包括黑色图像块为一个系数组,格纹图像块为一个系数组,左斜纹图像块为一个系数组,空白图像块为一个系数组,右斜纹图像块为一个系数组。视频编码器为不同的系数组分别确定码长并进行编码。
具体地,视频编码器获取目标子块残差值的DC系数和AC系数;将目标子块残差值的DC系数作为一个系数组进行半定长编码;将目标子块残差值的AC系数作为一个或多个系数组进行半定长编码。其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块。
例如,在图11中a图的划分系数组的方式下,当目标残差跳过模式为第三残差跳过模式或第四残差跳过模式时,将图11中的a图的左侧或右侧8×2子块划分为3个系数组,并确定每个系数组的码长,分别以每个系数组的码长进行编码。又如,在图11中b图的划分系数组的方式下,当目标残差跳过模式为第三残差跳过模式或第四残差跳过模式时,将图11中的b图的左侧或右侧8×2子块划分为3个系数组,并确定每个系数组的码长,分别以每个系数组的码长进行编码。
可选的,当视频编码器对残差系数不进行变换,将进行量化后的残差系数采用半定长编码时,将残差系数划分系数组,对每个系数组分别以固定的码长进行编码。示例性的,如图12所示的a图和b图,分别表示两种划分方式,a图表示划分为两个系数组,b图表示划分为四个系数组。在图12中,相同形式的图像块为同一系数组。
事实上,在图11的a图和b图中,左右两侧的子块分别划分系数组的数量均为3,在图12的a图和b图中,左右两侧的子块分别划分系数组的数量均为2;在该种编入部分残差值的情况下,视频编码器可以将残差值按照预设分组方式划分为M个系数组,M为大于零的整数。
具体地,视频编码器将目标子块残差至划分为M个系数组,其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块。视频编码器对M个系数组进行半定长编码。
在一种示例中,当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,确定M的取值为3。当残差跳过标识用于表征的残差跳过模式为第二残差跳过模式时,确定M的取值为5。
通过上述方式,有助于节省码流中分组索引所占用的资源,提升传输效率。
可选的,在上述步骤S802之前,该方法还包括:视频编码器确定图像块的预测模式满足第一条件,预测模式用于获取图像块的预测值,其中,第一条件为图像块的预测模式是帧内预测模式,或者,第一条件为图像块的预测模式是块复制预测模式,或者,第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
可以理解的是,在部分预测模式与残差跳过模式具有对应关系的情况下,视频编码器根据预测模式确定残差跳过模式。具体地,若第一条件为图像块的预测模式是帧内预测模式,则只有在满足该第一条件的情况下,执行上述步骤S802和S803;类似地,第一条件还可以为图像块的预测模式是块复制预测模式,或者第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
通过上述方式,视频编码器建立预测模式与残差跳过模式的对应关系,有助于针对不同的预测模式执行不同的残差跳过模式,提升编码的灵活性。
可选的,图像块基于不同的采样方式划分不同的类型,例如基于YUV格式将图像块分为亮度图像块和色度图像块,并分别对亮度图像块和色度图像块进行编码。相应地,残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。当残差跳过标识针对亮度图像块和色度图像块所指示的残差跳过模式不同时,以亮度残差跳过标识和色度残差跳过标识进行区分。
本申请实施例提供的残差跳过编码方法,有选择性地将残差编入码流,与现有残差编码方法相比,有助于灵活调整码流中的残差系数所占用的比特位,降低残差编码的开销,提升编码性能。并且,将残差跳过标识编入码流,有助于视频解码器执行相应地解码动作,节省传输比特开销,提升解码性能。
如图13所示,为本申请提供的一种残差跳过解码方法的流程图。图13所示的残差跳过解码方法与图8所示的残差跳过编码方法相对应,因此,本实施例中相关内容的解释可以参考上述图8所示的实施例。图13所示的方法包括如下步骤:
S1301、视频解码器在码流中获取残差跳过标识。
其中,该残差跳过标识用于指示图像块的目标残差跳过模式,目标残差跳过模式用于表征图像块的部分或全部残差系数是否进行残差跳过。
其中,残差跳过标识用于指示的目标残差跳过模式,以及残差跳过标识指示目标残差跳过模式的具体实现方式可参考上述步骤S802中的描述。
S1302、视频解码器基于根据残差跳过标识,获取图像块的残差系数。
可选的,当目标残差跳过模式为第一残差跳过模式时,视频解码器根据残差跳过标识,将图像块的残差系数设为零。
可选的,当目标残差跳过模式为第二残差跳过模式时,视频解码器根据残差跳过标识,解析码流,得到图像块的残差系数。
可选的,当目标残差跳过模式为第三残差跳过模式时,视频解码器根据残差跳过标识,将第一子块残差系数设为零。
可以理解的是,当目标残差跳过模式为第三残差跳过模式时,视频解码器根据残差跳过标识,解析码流,得到图像块的残差系数为第二子块残差系数。
可选的,当目标残差跳过模式为第四残差跳过模式时,视频解码器根据残差跳过标识,将第二子块残差系数设为零。
可以理解的是,当目标残差跳过模式为第四残差跳过模式时,视频解码器根据残差跳过标识,解析码流,得到图像块的残差系数为第一子块残差系数。
S1303、视频解码器根据图像块的残差系数计算图像块的残差值。
可选的,码流中还包括变换跳过标识,该变换跳过标识用于指示码流中的残差系数是否进行变换,视频解码器根据变换跳过标识和残差跳过标识根据图像块的残差系数计算图像块的残差值。
具体地,当变换跳过标识指示图像块的残差系数进行变换时,对图像块的残差系数进行反量化和反变换,得到图像块的残差值;当变换跳过标识指示图像块的残差系数不进行变换时,对图像块的残差系数进行反量化,得到图像块的残差值。
可选的,码流中还包括预测模式标识,该预测模式标识用于指示图像块的预测模式。其中,预测模式与是否进行变换具有对应关系。视频编码器基于预测模式标识确定预测模式以及是否进行变换。示例性的,当预测模式为帧内预测模式时,确定残差值不进行变换;当预测模式为块复制预测模式时,确定残差值进行变换。
可选的,当目标残差跳过模式为第三残差跳过模式时,第二子块残差系数包括DC系数和AC系数,根据图像块的残差系数计算图像块的残差值,包括:视频解码器将第二子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第一残差值;将第二子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第二残差值;基于第一残差值和第二残差值,确定图像块的残差值。
可选的,当目标残差跳过模式为第四残差跳过模式时,第一子块残差系数包括DC系数和AC系数,根据图像块的残差系数计算图像块的残差值,包括:将第一子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第三残差值;将第一子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第四残差值;基于第三残差值和第四残差值,确定图像块的残差值。
可选的,码流中的残差系数是作为M个系数组通过半定长编码得到的,当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,视频解码器根据残差跳过标识确定M的取值;其中,M为大于零的整数;对M个系数组进行半定长解码,得到图像块的残差值。
在一种示例中,当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,确定M的取值为3。当残差跳过标识用于表征的残差跳过模式为第二残差跳过模式时,确定M的取值为5。
S1304、视频解码器根据图像块的残差值和图像块的预测值,对图像块进行重构得到重建块。
可选的,在上述步骤S1301之前,该方法还包括:视频解码器在码流中获取预测模式标识,预测模式标识用于指示图像块的预测模式,预测模式用于获取图像块的预测值;视频解码器确定图像块的预测模式满足第一条件,第一条件为图像块的预测模式是帧内预测模式,或者,第一条件为图像块的预测模式是块复制预测模式,或者,第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
通过上述方式,视频编码器建立预测模式与残差跳过模式的对应关系,有助于针对不同的预测模式执行不同的残差跳过模式,提升编码的灵活性。
可选的,图像块基于不同的采样方式划分不同的类型,例如基于YUV格式将图像块分为亮度图像块和色度图像块,并分别对亮度图像块和色度图像块进行编码。相应地,残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。当残差跳过标识针对亮度图像块和色度图像块所指示的残差跳过模式不同时,以亮度残差跳过标识和色度残差跳过标识进行区分。
本申请实施例提供的残差跳过解码方法,通过残差跳过标识指示码流中的残差系数,有助于视频解码器通过解析码流中的残差跳过标识,解析相应的残差系数完成图像块的重构,与现有残差解码方法相比,有助于码流中的残差系数实现灵活占用资源,节省传输比特开销,提升解码性能。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对编码器/解码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图14所示,为本申请实施例提供的一种解码装置140的示意性框图。解码装置140可以用于执行本申请实施例提供的视频解码方法,如图13所示的视频解码方法。解码装置140可以包括获取单元1401、计算单元1402和重构单元1403。获取单元1401,用于在码流中获取残差跳过标识,残差跳过标识用于指示图像块的目标残差跳过模式,目标残差跳过模式用于表征图像块的部分或全部残差系数是否进行残差跳过。获取单元1401,还用于基于残差跳过标识,获取图像块的残差系数。计算单元1402,用于根据图像块的残差系数计算图像块的残差值。重构单元1403,用于根据图像块的残差值和图像块的预测值,对图像块进行重构得到重建块。
在一种示例中,目标残差跳过模式包括以下任意一种:第一残差跳过模式;其中,第一残差跳过模式用于表征全部残差系数进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征全部残差系数不进行残差跳过。
在一种示例中,图像块至少包括第一子块和第二子块,图像块的残差系数至少包括第一子块残差系数和第二子块残差系数,目标残差跳过模式包括以下任意一种:第一残差跳过模式;其中,第一残差跳过模式用于表征第一子块残差系数和第二子块残差系数进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征第一子块残差系数和第二子块残差系数不进行残差跳过;第三残差跳过模式;其中,第三残差跳过模式用于表征第一子块残差系数进行残差跳过,第二子块残差系数不进行残差跳过;第四残差跳过模式;其中,第四残差跳过模式用于表征第一子块残差系数不进行残差跳过,第二子块残差系数进行残差跳过。
在一种示例中,当目标残差跳过模式为第一残差跳过模式时,获取单元1401,具体用于根据残差跳过标识,将图像块的残差系数设为零。
在一种示例中,当目标残差跳过模式为第二残差跳过模式时,获取单元1401,具体用于根据残差跳过标识,解析码流,得到图像块的残差系数。
在一种示例中,当目标残差跳过模式为第三残差跳过模式时,获取单元1401,具体用于根据残差跳过标识,将第一子块残差系数设为零。
在一种示例中,当目标残差跳过模式为第三残差跳过模式时,第二子块残差系数包括DC系数和AC系数,计算单元1402,具体用于将第二子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第一残差值;将第二子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第二残差值;基于第一残差值和第二残差值,确定图像块的残差值。
在一种示例中,当目标残差跳过模式为第四残差跳过模式时,基于残差跳过标识,获取单元1401,具体用于根据残差跳过标识,将第二子块残差系数设为零。
在一种示例中,当目标残差跳过模式为第四残差跳过模式时,第一子块残差系数包括DC系数和AC系数,计算单元1402,具体用于将第一子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第三残差值;将第一子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第四残差值;基于第三残差值和第四残差值,确定图像块的残差值。
在一种示例中,码流中的残差系数是作为M个系数组通过半定长编码得到的;计算单元1402,具体用于当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,根据残差跳过标识推导确定M的取值;其中,M为大于零的整数;对M个系数组进行半定长解码,得到图像块的残差值。
在一种示例中,码流中还包括变换跳过标识,变换跳过标识用于指示图像块的残差系数是否进行变换,计算单元1402,具体用于当变换跳过标识指示图像块的残差系数进行变换时,对图像块的残差系数进行反量化和反变换,得到图像块的残差值;当变换跳过标识指示图像块的残差系数不进行变换时,对图像块的残差系数进行反量化,得到图像块的残差值。
在一种示例中,获取单元1401,还用于在码流中获取预测模式标识,预测模式标识用于指示图像块的预测模式,预测模式用于获取图像块的预测值;确定图像块的预测模式满足第一条件,第一条件为图像块的预测模式是帧内预测模式,或者,第一条件为图像块的预测模式是块复制预测模式,或者,第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
在一种示例中,残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。
在一种示例中,当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,确定M的取值为3。当残差跳过标识用于表征的残差跳过模式为第二残差跳过模式时,确定M的取值为5。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
当然,本申请实施例提供的解码装置包括但不限于上述模块,例如:解码装置还可以包括存储模块1404。
存储模块1404可以用于存储该解码装置的程序代码和数据。
如图15所示,为本申请实施例提供的一种编码装置150的示意性框图。编码装置150可以用于执行本申请实施例提供的视频编码方法,如图8所示的视频编码方法。编码装置150可以包括获取单元1501、确定单元1502和处理单元1503。获取单元1501,用于获取图像块的残差值;确定单元1502,用于基于图像块的残差值,确定残差跳过标识,残差跳过标识用于指示目标残差跳过模式,目标残差跳过模式用于表征图像块的部分或全部残差值是否经过残差跳过;处理单元1503,用于将残差跳过标识编入码流。
在一种示例中,目标残差跳过模式包括以下任意一种:第一残差跳过模式;其中,第一残差跳过模式用于表征图像块的残差值进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征图像块的残差值不进行残差跳过。
在一种示例中,图像块至少包括第一子块和第二子块,图像块的残差值至少包括第一子块残差值和第二子块残差值,目标残差跳过模式包括以下任意一种:第一残差跳过模式;其中,第一残差跳过模式用于表征第一子块残差值和第二子块残差值进行残差跳过;第二残差跳过模式;其中,第二残差跳过模式用于表征第一子块残差值和第二子块残差值不进行残差跳过;第三残差跳过模式;其中,第三残差跳过模式用于表征第一子块残差值进行残差跳过,第二子块残差值不进行残差跳过;第四残差跳过模式;其中,第四残差跳过模式用于表征第一子块残差值不进行残差跳过,第二子块残差值进行残差跳过。
在一种示例中,确定单元1502,具体用于基于图像块的残差值,计算分别使用多个残差跳过模式进行残差跳过编码时的率失真代价,多个残差跳过模式至少包括第一残差跳过模式和第二残差跳过模式;将多个残差跳过模式中的,率失真代价满足条件的残差跳过模式作为目标残差跳过模式;基于目标残差跳过模式,确定残差跳过标识。
在一种示例中,确定单元1502,还用于根据目标子块残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数编入码流;其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块。
在一种示例中,确定单元1502,具体用于获取目标子块残差值的DC系数和AC系数;将图像块的残差系数编入码流,包括:将目标子块残差值的DC系数作为一个系数组进行半定长编码;将目标子块残差值的AC系数作为一个或多个系数组进行半定长编码。
在一种示例中,处理单元1503,还用于将目标子块残差值划分为M个系数组,M为目标子块中的系数组的个数最大值;其中,当目标残差跳过模式为第三残差跳过模式时,目标子块为第二子块;当目标残差跳过模式为第四残差跳过模式时,目标子块为第一子块;对M个系数组进行半定长编码。
在一种示例中,确定单元1502,还用于根据图像块的残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数进行变换,得到经过变换的残差系数;将经过变换的残差系数和变换跳过标识编入码流;其中,变换跳过标识用于指示图像块的残差系数经过变换;或者,根据目标子块残差值和目标残差跳过模式,确定图像块的残差系数;将图像块的残差系数和变换跳过标识编入码流;其中,变换跳过标识用于指示图像块的残差系数未经过变换。
在一种示例中,确定单元1502,还用于确定图像块的预测模式满足第一条件,其中,第一条件为图像块的预测模式是帧内预测模式,或者,第一条件为图像块的预测模式是块复制预测模式,或者,第一条件为图像块的预测模式是帧内预测模式或块复制预测模式。
在一种示例中,残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。
在一种示例中,当残差跳过标识用于表征的残差跳过模式为第三残差跳过模式或第四残差跳过模式时,确定M的取值为3。当残差跳过标识用于表征的残差跳过模式为第二残差跳过模式时,确定M的取值为5。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
当然,本申请实施例提供的编码装置包括但不限于上述模块,例如:编码装置还可以包括存储模块1504。
存储模块1504可以用于存储该编码装置的程序代码和数据。
本申请实施例还提供了一种电子设备,该电子设备包括上述解码装置140,该解码装置140执行上文提供的任意一种视频解码器所执行的方法。
本申请实施例还提供了一种电子设备,该电子设备包括上述编码装置150,该编码装置150执行上文提供的任意一种视频编码器所执行的方法。
本申请实施例还提供了一种编解码系统,该编解码系统包括上述解码装置140和编码装置150,该解码装置140执行上文提供的任意一种视频解码器所执行的方法,该编码装置150执行上文中提供的任意一种视频编码器所执行的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上文提供的任意一种视频编码器或视频解码器所执行的方法。
关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述解码装置140或编码装置150的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如SSD)等。
应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (28)

1.一种残差跳过解码方法,其特征在于,包括:
在码流中获取残差跳过标识,所述残差跳过标识用于指示图像块的目标残差跳过模式,所述目标残差跳过模式用于表征所述图像块的部分或全部残差系数是否进行残差跳过;
基于所述残差跳过标识,获取所述图像块的残差系数;
根据所述图像块的残差系数计算所述图像块的残差值;
根据所述图像块的残差值和所述图像块的预测值,对所述图像块进行重构得到重建块。
2.根据权利要求1所述的方法,其特征在于,所述目标残差跳过模式包括以下任意一种:
第一残差跳过模式;其中,所述第一残差跳过模式用于表征全部残差系数进行残差跳过;
第二残差跳过模式;其中,所述第二残差跳过模式用于表征全部残差系数不进行残差跳过。
3.根据权利要求1所述的方法,其特征在于,所述图像块至少包括第一子块和第二子块,所述图像块的残差系数至少包括第一子块残差系数和第二子块残差系数,所述目标残差跳过模式包括以下任意一种:
第一残差跳过模式;其中,所述第一残差跳过模式用于表征所述第一子块残差系数和所述第二子块残差系数进行残差跳过;
第二残差跳过模式;其中,所述第二残差跳过模式用于表征所述第一子块残差系数和所述第二子块残差系数不进行残差跳过;
第三残差跳过模式;其中,所述第三残差跳过模式用于表征所述第一子块残差系数进行残差跳过,所述第二子块残差系数不进行残差跳过;
第四残差跳过模式;其中,所述第四残差跳过模式用于表征所述第一子块残差系数不进行残差跳过,所述第二子块残差系数进行残差跳过。
4.根据权利要求2或3所述的方法,其特征在于,当所述目标残差跳过模式为所述第一残差跳过模式时,所述基于所述残差跳过标识,获取所述图像块的残差系数,包括:
根据所述残差跳过标识,将所述图像块的残差系数设为零。
5.根据权利要求2或3所述的方法,其特征在于,当所述目标残差跳过模式为所述第二残差跳过模式时,所述基于所述残差跳过标识,获取所述图像块的残差系数,包括:
根据所述残差跳过标识,解析所述码流,得到所述图像块的残差系数。
6.根据权利要求3所述的方法,其特征在于,当所述目标残差跳过模式为所述第三残差跳过模式时,所述基于所述残差跳过标识,获取所述图像块的残差系数,至少包括:
根据所述残差跳过标识,将所述第一子块残差系数设为零。
7.根据权利要求3所述的方法,其特征在于,当所述目标残差跳过模式为所述第三残差跳过模式时,所述第二子块残差系数包括DC系数和AC系数,所述根据所述图像块的残差系数计算所述图像块的残差值,包括:
将所述第二子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第一残差值;
将所述第二子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第二残差值;
基于所述第一残差值和所述第二残差值,确定所述图像块的残差值。
8.根据权利要求3所述的方法,其特征在于,当所述目标残差跳过模式为所述第四残差跳过模式时,所述基于所述残差跳过标识,获取所述图像块的残差系数,至少包括:
根据所述残差跳过标识,将所述第二子块残差系数设为零。
9.根据权利要求3所述的方法,其特征在于,当所述目标残差跳过模式为所述第四残差跳过模式时,所述第一子块残差系数包括DC系数和AC系数,所述根据所述图像块的残差系数计算所述图像块的残差值,包括:
将所述第一子块残差系数的DC系数作为一个系数组,进行半定长解码,得到第三残差值;
将所述第一子块残差系数的AC系数作为一个或多个系数组,进行半定长解码,得到第四残差值;
基于所述第三残差值和所述第四残差值,确定所述图像块的残差值。
10.根据权利要求3所述的方法,其特征在于,所述码流中的残差系数是作为M个系数组通过半定长编码得到的;所述根据所述图像块的残差系数计算所述图像块的残差值,包括:
当所述残差跳过标识用于表征的残差跳过模式为所述第三残差跳过模式或所述第四残差跳过模式时,根据所述残差跳过标识推导所述M的取值;其中,所述M为大于零的整数;
对所述M个系数组进行半定长解码,得到所述图像块的残差值。
11.根据权利要求1-3任一项所述的方法,其特征在于,所述码流中还包括变换跳过标识,所述变换跳过标识用于指示所述图像块的残差系数是否进行变换,所述根据所述图像块的残差系数计算所述图像块的残差值,包括:
当所述变换跳过标识指示所述图像块的残差系数进行变换时,对所述图像块的残差系数进行反量化和反变换,得到所述图像块的残差值;
当所述变换跳过标识指示所述图像块的残差系数不进行变换时,对所述图像块的残差系数进行反量化,得到所述图像块的残差值。
12.根据权利要求1-3任一项所述的方法,其特征在于,在所述在码流中获取残差跳过标识之前,所述方法还包括:
在码流中获取预测模式标识,所述预测模式标识用于指示所述图像块的预测模式,所述预测模式用于获取所述图像块的预测值;
确定所述图像块的预测模式满足第一条件,所述第一条件为所述图像块的预测模式是帧内预测模式,或者,所述第一条件为所述图像块的预测模式是块复制预测模式,或者,所述第一条件为所述图像块的预测模式是帧内预测模式或块复制预测模式。
13.根据权利要求1-3任一项所述的方法,其特征在于,所述残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。
14.一种残差跳过编码方法,其特征在于,包括:
获取图像块的残差值;
基于所述图像块的残差值,确定残差跳过标识,所述残差跳过标识用于指示目标残差跳过模式,所述目标残差跳过模式用于表征所述图像块的部分或全部残差值是否经过残差跳过;
将所述残差跳过标识编入码流。
15.根据权利要求14所述的方法,其特征在于,所述目标残差跳过模式包括以下任意一种:
第一残差跳过模式;其中,所述第一残差跳过模式用于表征所述图像块的残差值进行残差跳过;
第二残差跳过模式;其中,所述第二残差跳过模式用于表征所述图像块的残差值不进行残差跳过。
16.根据权利要求14所述的方法,其特征在于,所述图像块至少包括第一子块和第二子块,所述图像块的残差值至少包括第一子块残差值和第二子块残差值,所述目标残差跳过模式包括以下任意一种:
第一残差跳过模式;其中,所述第一残差跳过模式用于表征所述第一子块残差值和所述第二子块残差值进行残差跳过;
第二残差跳过模式;其中,所述第二残差跳过模式用于表征所述第一子块残差值和所述第二子块残差值不进行残差跳过;
第三残差跳过模式;其中,所述第三残差跳过模式用于表征所述第一子块残差值进行残差跳过,所述第二子块残差值不进行残差跳过;
第四残差跳过模式;其中,所述第四残差跳过模式用于表征所述第一子块残差值不进行残差跳过,所述第二子块残差值进行残差跳过。
17.根据权利要求15或16所述的方法,其特征在于,所述基于所述图像块的残差值,确定残差跳过标识,包括:
基于所述图像块的残差值,计算分别使用多个残差跳过模式进行残差跳过编码时的率失真代价,所述多个残差跳过模式至少包括所述第一残差跳过模式和所述第二残差跳过模式;
将所述多个残差跳过模式中的,所述率失真代价满足条件的残差跳过模式作为所述目标残差跳过模式;
基于所述目标残差跳过模式,确定所述残差跳过标识。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
根据目标子块残差值和所述目标残差跳过模式,确定所述图像块的残差系数;
将所述图像块的残差系数编入码流;
其中,当所述目标残差跳过模式为所述第三残差跳过模式时,所述目标子块为所述第二子块;当所述目标残差跳过模式为所述第四残差跳过模式时,所述目标子块为所述第一子块。
19.根据权利要求18所述的方法,其特征在于,所述根据目标子块残差值确定所述图像块的残差系数,包括:
获取所述目标子块残差值的DC系数和AC系数;
所述将所述图像块的残差系数编入码流,包括:
将所述目标子块残差值的DC系数作为一个系数组进行半定长编码;
将所述目标子块残差值的AC系数作为一个或多个系数组进行半定长编码。
20.根据权利要求17所述的方法,其特征在于,所述方法还包括:
将目标子块残差值划分为M个系数组,所述M为所述目标子块中的系数组的个数最大值;其中,当所述目标残差跳过模式为所述第三残差跳过模式时,所述目标子块为所述第二子块;当所述目标残差跳过模式为所述第四残差跳过模式时,所述目标子块为所述第一子块;
对所述M个系数组进行半定长编码。
21.根据权利要求14所述的方法,其特征在于,所述方法还包括:
根据目标子块残差值和所述目标残差跳过模式,确定所述图像块的残差系数;
将所述图像块的残差系数进行变换,得到经过变换的残差系数;
将所述经过变换的残差系数和变换跳过标识编入码流;其中,所述变换跳过标识用于指示所述图像块的残差系数经过变换;
或者,
根据目标子块残差值和所述目标残差跳过模式,确定所述图像块的残差系数;
将所述图像块的残差系数和变换跳过标识编入码流;其中,所述变换跳过标识用于指示所述图像块的残差系数未经过变换。
22.根据权利要求14-21任一项所述的方法,其特征在于,在所述基于所述图像块的残差,确定残差跳过标识之前,所述方法还包括:
确定所述图像块的预测模式满足第一条件,其中,所述第一条件为所述图像块的预测模式是帧内预测模式,或者,所述第一条件为所述图像块的预测模式是块复制预测模式,或者,所述第一条件为所述图像块的预测模式是帧内预测模式或块复制预测模式。
23.根据权利要求14-21任一项所述的方法,其特征在于,所述残差跳过标识包括亮度残差跳过标识和/或色度残差跳过标识。
24.一种视频解码装置,其特征在于,包括:
获取单元,用于在码流中获取残差跳过标识,所述残差跳过标识用于指示图像块的目标残差跳过模式,所述目标残差跳过模式用于表征所述图像块的部分或全部残差系数是否进行残差跳过;
所述获取单元,还用于基于所述残差跳过标识,获取所述图像块的残差系数;
计算单元,用于根据所述图像块的残差系数计算所述图像块的残差值;
重构单元,用于根据所述图像块的残差值和所述图像块的预测值,对所述图像块进行重构得到重建块。
25.一种视频编码装置,其特征在于,包括:
获取单元,用于获取图像块的残差值;
确定单元,用于基于所述图像块的残差值,确定残差跳过标识,所述残差跳过标识用于指示目标残差跳过模式,所述目标残差跳过模式用于表征所述图像块的部分或全部残差值是否经过残差跳过;
处理单元,用于将所述残差跳过标识编入码流。
26.一种视频解码器,其特征在于,所述视频解码器用于执行如权利要求1-13任一项所述的方法。
27.一种视频编码器,其特征在于,所述视频编码器用于执行如权利要求14-23所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,当所述程序在所述计算机上运行时,使得所述计算机执行如权利要求1-23中任一项所述的方法。
CN202210212879.0A 2022-03-04 2022-03-04 一种残差跳过编解码方法及装置 Pending CN116156167A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210212879.0A CN116156167A (zh) 2022-03-04 2022-03-04 一种残差跳过编解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210212879.0A CN116156167A (zh) 2022-03-04 2022-03-04 一种残差跳过编解码方法及装置

Publications (1)

Publication Number Publication Date
CN116156167A true CN116156167A (zh) 2023-05-23

Family

ID=86354970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210212879.0A Pending CN116156167A (zh) 2022-03-04 2022-03-04 一种残差跳过编解码方法及装置

Country Status (1)

Country Link
CN (1) CN116156167A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117376551A (zh) * 2023-12-04 2024-01-09 淘宝(中国)软件有限公司 视频编码加速方法及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117376551A (zh) * 2023-12-04 2024-01-09 淘宝(中国)软件有限公司 视频编码加速方法及电子设备
CN117376551B (zh) * 2023-12-04 2024-02-23 淘宝(中国)软件有限公司 视频编码加速方法及电子设备

Similar Documents

Publication Publication Date Title
JP6882560B2 (ja) 画像予測方法および装置
US11778234B2 (en) Video intra prediction using hybrid recursive filters
US9838692B2 (en) Detecting availabilities of neighboring video units for video coding
RU2533196C2 (ru) Кодирование видео при помощи больших макроблоков
RU2576590C2 (ru) Вывод позиции в порядке сканирования последнего значимого коэффициента преобразования при кодировании видеосигнала
CN103190147B (zh) 用于视频译码的语法元素的联合译码方法及设备
RU2604421C2 (ru) Сканирование коэффициентов при кодировании видео
RU2645291C2 (ru) Кодирование параметра квантования (qp) при кодировании видео
US9008179B2 (en) Encoding of prediction residuals for lossless video coding
RU2563681C2 (ru) Отдельное кодирование позиции последнего значимого коэффициента видеоблока при кодировании видео
RU2541226C2 (ru) Кодирование позиции последнего значимого коэффициента в видеоблоке на основе порядка сканирования для блока при кодировании видео
TWI484830B (zh) 用於視訊編碼之轉換係數之編碼
KR102229045B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
KR101607782B1 (ko) 비디오 코딩을 위한 다수 구역 스캐닝 순서
TW201937926A (zh) 在視訊寫碼中用於適應性算術寫碼之機率初始化及發信號
KR20130086375A (ko) 비디오 코딩에서의 병렬 콘텍스트 계산
IL285754B1 (en) Coefficient domain segment differential pulse-code modulation in video coding
CN110505482B (zh) 一种编解码方法及装置
CN116095318A (zh) 一种视频译码方法、装置及存储介质
US11601667B2 (en) Inter prediction method and related apparatus
CN116156167A (zh) 一种残差跳过编解码方法及装置
CN118101967A (zh) 用于视频编解码的位置相关空间变化变换
CN116366847A (zh) 一种视频图像解码方法、装置及存储介质
CN114071162A (zh) 图像编码方法、图像解码方法及相关装置
TWI821013B (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