CN112995671A - 视频编解码方法、装置、计算机可读介质及电子设备 - Google Patents

视频编解码方法、装置、计算机可读介质及电子设备 Download PDF

Info

Publication number
CN112995671A
CN112995671A CN202110194822.8A CN202110194822A CN112995671A CN 112995671 A CN112995671 A CN 112995671A CN 202110194822 A CN202110194822 A CN 202110194822A CN 112995671 A CN112995671 A CN 112995671A
Authority
CN
China
Prior art keywords
coefficient
absolute value
value
flag
coefficient absolute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110194822.8A
Other languages
English (en)
Other versions
CN112995671B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110194822.8A priority Critical patent/CN112995671B/zh
Priority to CN202211393946.XA priority patent/CN116095329A/zh
Publication of CN112995671A publication Critical patent/CN112995671A/zh
Priority to EP21926374.6A priority patent/EP4297402A4/en
Priority to PCT/CN2021/137186 priority patent/WO2022174660A1/zh
Application granted granted Critical
Publication of CN112995671B publication Critical patent/CN112995671B/zh
Priority to US17/992,361 priority patent/US20230097724A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请属于计算机技术领域,具体涉及一种视频编解码方法、装置、介质以及电子设备。视频解码方法包括:在视频图像帧的编码块中确定待解码的当前系数绝对值,当前系数是在编码块的SRCC扫描区域内按照扫描顺序依次确定的非零系数;获取当前系数对应的标志组合,标志组合包括至少两个系数绝对值阈值标志,系数绝对值阈值标志用于表示当前系数的系数绝对值是否大于对应的系数绝对值阈值,标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;分别对标志组合中的各个系数绝对值阈值标志进行解码处理,得到各个系数绝对值阈值标志的取值;根据各个系数绝对值阈值标志的取值确定当前系数的系数绝对值。该方法可以提高视频编解码效率。

Description

视频编解码方法、装置、计算机可读介质及电子设备
技术领域
本申请属于计算机技术领域,具体涉及一种视频编解码方法、视频编解码装置、计算机可读介质以及电子设备。
背景技术
在视频编码过程中,编码端通常需要对原始视频数据与预测视频数据之间的残差数据进行变换、量化及熵编码处理之后发送给解码端。由于残差数据的数值分布复杂多样,对残差数据进行编解码处理时,普遍存在编码效率低的问题,影响了视频的压缩性能。
发明内容
本申请的目的在于提供一种视频编解码方法、视频编解码装置、计算机可读介质以及电子设备,至少在一定程度上克服相关技术中存在的视频编码效率低的技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种视频解码方法,该方法包括:在视频图像帧的编码块中确定待解码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;分别对所述标志组合中的各个系数绝对值阈值标志进行解码处理,得到所述各个系数绝对值阈值标志的取值;根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值。
根据本申请实施例的一个方面,提供一种视频解码装置,该装置包括:当前系数确定模块,被配置为在视频图像帧的编码块中确定待解码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;标志组合获取模块,被配置为获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;标志解码模块,被配置为分别对所述标志组合中的各个系数绝对值阈值标志进行解码处理,得到所述各个系数绝对值阈值标志的取值;系数绝对值确定模块,被配置为根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述标志组合包括对应于n个由一开始连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于三的整数。
在本申请的一些实施例中,基于以上技术方案,所述系数绝对值确定模块包括:第一取值获取单元,被配置为按照系数绝对值阈值增大的顺序,依次获取所述各个系数绝对值阈值标志的取值;第一绝对值确定单元,被配置为若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据所述当前系数绝对值阈值标志对应的当前系数绝对值阈值确定所述当前系数的系数绝对值;第二取值获取单元,被配置为若所述当前系数绝对值阈值标志的取值是与所述第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值;第二绝对值确定单元,被配置为若所述各个系数绝对值阈值标志的取值均为所述第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述第二绝对值确定单元包括:剩余值解码子单元,被配置为对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到所述系数绝对值剩余值的取值;绝对值确定子单元,被配置为将所述系数绝对值剩余值的取值与所述基础值相加得到所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述剩余值解码子单元还被配置为按照k阶指数哥伦布码对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
在本申请的一些实施例中,基于以上技术方案,所述标志组合包括对应于n个非连续递增或部分连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于二的整数。
在本申请的一些实施例中,基于以上技术方案,所述系数绝对值确定模块包括:第三取值获取单元,被配置为按照系数绝对值阈值增大的顺序,依次获取所述各个系数绝对值阈值标志的取值;第三绝对值确定单元,被配置为若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据所述当前系数绝对值阈值标志对应的当前系数绝对值阈值以及前一系数绝对值阈值标志对应的前一系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值;第四取值获取单元,被配置为若所述当前系数绝对值阈值标志的取值是与所述第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值;第四绝对值确定单元,被配置为若所述各个系数绝对值阈值标志的取值均为所述第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述第四绝对值确定单元包括:剩余值解码子单元,被配置为对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到所述系数绝对值剩余值的取值;绝对值确定子单元,被配置为将所述系数绝对值剩余值的取值与所述基础值相加得到所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述剩余值解码子单元还被配置为:根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值取值范围;根据所述系数绝对值取值范围的范围大小从多个候选解码方法中选取目标解码方法;按照所述目标解码方法对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
在本申请的一些实施例中,基于以上技术方案,所述多个候选解码方法包括如下解码方法中的至少一种:基于截断一元码的解码方法;基于一元码的解码方法;基于len位定长码的解码方法;基于k阶指数哥伦布码的解码方法。
在本申请的一些实施例中,基于以上技术方案,所述标志解码模块包括:解码方式确定单元,被配置为分别确定与所述各个系数绝对值阈值标志相对应的解码方式,所述解码方式包括旁路解码和常规解码中的至少一种;旁路解码单元,被配置为若确定所述系数绝对值阈值标志对应的解码方式为旁路解码,则将所述系数绝对值阈值标志输入旁路解码引擎,以通过所述旁路解码引擎对所述系数绝对值阈值标志进行解码处理;常规解码单元,被配置为若确定所述系数绝对值阈值标志对应的解码方式为常规解码,则将所述系数绝对值阈值标志输入基于上下文模型的常规解码引擎,以通过所述常规解码引擎对所述系数绝对值阈值标志进行解码处理。
在本申请的一些实施例中,基于以上技术方案,所述常规解码单元包括:模型选取方式确定子单元,被配置为确定与所述系数绝对值阈值标志相对应的模型选取方式,所述模型选取方式包括单一模型选取和动态模型选取;第一赋值子单元,被配置为若确定所述系数绝对值阈值标志对应的模型选取方式为单一模型选取,则以预先设定的第一数值为所述系数绝对值阈值标志对应的上下文索引增量赋值;第二赋值子单元,被配置为若确定所述系数绝对值阈值标志对应的模型选取方式为动态模型选取,则根据与所述编码块和所述当前系数相关的属性信息为所述系数绝对值阈值标志对应的上下文索引增量赋值;模型确定子单元,被配置为根据赋值得到的上下文索引增量确定与所述系数绝对值阈值相对应的上下文模型;算数解码子单元,被配置为基于所述上下文模型,通过所述常规解码引擎对所述系数绝对值阈值标志进行算数解码。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:根据所述编码块的通道信息为所述上下文索引增量的初始值赋值;根据所述当前系数在所述编码块的扫描区域内的位置信息以及所述初始值确定第一增量数值;根据所述编码块的扫描区域内已解码出的非零系数的统计信息以及所述第一增量数值确定第二增量数值,并以所述第二增量数值为所述上下文索引增量赋值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:若所述编码块为亮度块,则以预先设定的第二数值为所述上下文索引增量的初始值赋值;若所述编码块为色度块,则在所述第二数值的基础上增大第三数值后为所述上下文索引增量的初始值赋值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:若所述当前系数是在所述编码块的扫描区域内按照扫描顺序扫描的第一个系数或者最后一个系数,则以所述初始值作为第一增量数值;若所述当前系数是在所述编码块的扫描区域内除所述第一个系数和所述最后一个系数以外的其他系数,则根据所述当前系数在所述编码块的扫描区域内的相对位置增大所述初始值得到第一增量数值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:确定所述编码块的预测编码模式是否为普通帧内预测模式;若所述预测编码模式是普通帧内预测模式,则按照由左上至右下的顺序将所述扫描区域划分为第一区域数量的局部区域,并根据所述当前系数所在的局部区域增大所述初始值得到第一增量数值;若所述预测编码模式不是普通帧内预测模式,则按照由左上至右下的顺序将所述扫描区域划分为第二区域数量的局部区域,并根据所述当前系数所在的局部区域增大所述初始值得到第一增量数值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:在所述扫描区域内已解码出的前m个非零系数中,统计系数绝对值大于所述系数绝对值阈值的统计数量,m为预设的整数;根据所述统计数量增大所述第一增量数值得到第二增量数值。
根据本申请实施例的一个方面,提供一种视频编码方法,该方法包括:在视频图像帧的编码块中确定待编码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;根据所述当前系数绝对值与对应的系数绝对值阈值的大小关系,确定所述标志组合中的各个系数绝对值阈值标志的值,分别对所述标志组合中的各个系数绝对值阈值标志进行编码。
根据本申请实施例的一个方面,提供一种视频编码装置,该装置包括:当前系数确定模块,被配置为在视频图像帧的编码块中确定待编码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;标志组合获取模块,被配置为获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;标志编码模块,被配置为根据所述当前系数绝对值与对应的系数绝对值阈值的大小关系,确定所述标志组合中的各个系数绝对值阈值标志的值,分别对所述标志组合中的各个系数绝对值阈值标志进行编码。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的方法。
在本申请实施例提供的技术方案中,通过包括多个系数绝对值阈值标志的标志组合修改了在编码块的扫描区域中编解码非零系数绝对值时所用到的语法元素,改进了扫描区域内非零系数绝对值的二值化和编解码方式,有助于提升系数编码的编码效率,进一步提升视频压缩性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
图2示出视频编码装置和视频解码装置在流式传输系统中的放置方式示意图。
图3示出了一个视频编码器的基本流程图。
图4示出了通过SRCC技术标记出的扫描区域。
图5示出了对标记出的扫描区域进行扫描的顺序示意图。
图6示出了本申请一个实施例中的视频解码方法的步骤流程图。
图7示出了本申请一个实施例中通过常规解码的方式对系数绝对值阈值标志进行解码处理的步骤流程图。
图8示出了本申请一个实施例中基于动态模型选取方式为上下文索引增量赋值的步骤流程图。
图9示出了本申请一个实施例中针对采用普通帧内预测模式的编码块进行扫描区域划分的区域分布示意图。
图10示出了本申请一个实施例中针对未采用普通帧内预测模式的编码块进行扫描区域划分的区域分布示意图。
图11示出了本申请一个实施例中基于由一开始连续递增的标志组合确定系数绝对值的步骤流程图。
图12示出了本申请一个实施例中基于非连续递增或部分连续递增的标志组合确定系数绝对值的步骤流程图。
图13示出了本申请一个实施例中的视频编码方法的步骤流程图。
图14示出了本申请实施例提供的视频解码装置的结构框图。
图15示出了本申请实施例提供的视频编码装置的结构框图。
图16示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100包括多个终端装置,所述终端装置可通过例如网络150彼此通信。举例来说,系统架构100可以包括通过网络150互连的第一终端装置110和第二终端装置120。在图1的实施例中,第一终端装置110和第二终端装置120执行单向数据传输。
举例来说,第一终端装置110可对视频数据(例如由终端装置110采集的视频图片流)进行编码以通过网络150传输到第二终端装置120,已编码的视频数据以一个或多个已编码视频码流形式传输,第二终端装置120可从网络150接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。
在本申请的一个实施例中,系统架构100可以包括执行已编码视频数据的双向传输的第三终端装置130和第四终端装置140,所述双向传输比如可以发生在视频会议期间。对于双向数据传输,第三终端装置130和第四终端装置140中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络150传输到第三终端装置130和第四终端装置140中的另一终端装置。第三终端装置130和第四终端装置140中的每个终端装置还可接收由第三终端装置130和第四终端装置140中的另一终端装置传输的已编码视频数据,且可对已编码视频数据进行解码以恢复视频数据,并可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图1的实施例中,第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140可为服务器、个人计算机和智能电话,但本申请公开的原理可不限于此。本申请公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络150表示在第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
在本申请的一个实施例中,图2示出视频编码装置和视频解码装置在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV(television,电视机)、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统213,采集子系统213可包括数码相机等视频源201,视频源创建未压缩的视频图片流202。在实施例中,视频图片流202包括由数码相机拍摄的样本。相较于已编码的视频数据204(或已编码的视频码流204),视频图片流202被描绘为粗线以强调高数据量的视频图片流,视频图片流202可由电子装置220处理,电子装置220包括耦接到视频源201的视频编码装置203。视频编码装置203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流202,已编码的视频数据204(或已编码的视频码流204)被描绘为细线以强调较低数据量的已编码的视频数据204(或已编码的视频码流204),其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统206和客户端子系统208,可访问流式传输服务器205以检索已编码的视频数据204的副本207和副本209。客户端子系统206可包括例如电子装置230中的视频解码装置210。视频解码装置210对已编码的视频数据的传入副本207进行解码,且产生可在显示器212(例如显示屏)或另一呈现装置上呈现的输出视频图片流211。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据204、视频数据207和视频数据209(例如视频码流)进行编码。该些标准的实施例包括ITU-T H.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC),本申请可用于VVC标准的上下文中。
应注意,电子装置220和电子装置230可包括图中未示出的其它组件。举例来说,电子装置220可包括视频解码装置,且电子装置230还可包括视频编码装置。
在本申请的一个实施例中,以国际视频编码标准HEVC(High Efficiency VideoCoding,高效率视频编码)、VVC(Versatile Video Coding,多功能视频编码),以及中国国家视频编码标准AVS为例,当输入一个视频帧图像之后,会根据一个块大小,将视频帧图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作CTU(Coding Tree Unit,编码树单元),或者称之为LCU(Largest Coding Unit,最大编码单元)。CTU再往下可以继续进行更加精细的划分,得到一个或多个基本的编码单元CU,CU是一个编码环节中最基本的元素。以下介绍对CU进行编码时的一些概念:
预测编码(Predictive Coding):预测编码包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前CU决定选择哪一种预测编码模式,并告知解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域;帧间预测是指预测的信号来自已经编码过的、不同于当前图像的其它图像(称之为参考图像)。
变换及量化(Transform&Quantization):残差视频信号经过DFT(DiscreteFourier Transform,离散傅里叶变换)、DCT(Discrete Cosine Transform,离散余弦变换)等变换操作后,将信号转换到变换域中,称之为变换系数。变换系数进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此编码端也需要为当前CU选择其中的一种变换方式,并告知解码端。量化的精细程度通常由量化参数(Quantization Parameter,简称QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
熵编码(Entropy Coding)或统计编码:量化后的变换域信号将根据各个值出现的频率进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的编码模式、运动矢量数据等,也需要进行熵编码以降低码率。统计编码是一种无损的编码方式,可以有效的降低表达同样信号所需要的码率,常见的统计编码方式有变长编码(Variable Length Coding,简称VLC)或者基于上下文的二值化算术编码(ContentAdaptive Binary Arithmetic Coding,简称CABAC)。
基于上下文的自适应二进制算术编码(CABAC)过程主要包含3个步骤:二进制化、上下文建模和二进制算术编码。在对输入的语法元素进行二值化后,可以通过常规编码模式和旁路编码模式(bypass)对二元数据进行编码。旁路编码模式(Bypass Coding Mode),它无须为每个二元位分配特定的概率模型,输入的二元位bin值直接用一个简单的旁路编码器进行编码,以加快整个编码以及解码的速度。一般情况下,不同的语法元素之间并不是完全独立的,且相同语法元素自身也具有一定的记忆性。因此,根据条件熵理论,利用其他已编码的语法元素进行条件编码,相对于独立编码或者无记忆编码能够进一步提高编码性能。这些用来作为条件的已编码符号信息称为上下文。在常规编码模式中,语法元素的二元位顺序地进入上下文模型器。编码器根据先前编码过的语法元素或二元位的值,为每一个输入的二元位分配合适的概率模型,该过程即为上下文建模。通过ctxIdxInc(contextindex increment,上下文索引增量)和ctxIdxStart(context index Start,上下文起始索引)即可定位到语法元素所对应的上下文模型。将bin值和分配的概率模型一起送入二元算术编码器进行编码后,需要根据bin值更新上下文模型,也就是编码中的自适应过程。
环路滤波(Loop Filtering):经过变化及量化的信号会通过反量化、反变换及预测补偿的操作获得重建图像。重建图像与原始图像相比由于存在量化的影响,部分信息与原始图像有所不同,即重建图像会产生失真(Distortion)。因此,可以对重建图像进行滤波操作,例如去块效应滤波(Deblocking filter,简称DB)、SAO(Sample Adaptive Offset,自适应像素补偿)或者ALF(Adaptive Loop Filter,自适应环路滤波)等滤波器,可以有效降低量化所产生的失真程度。由于这些经过滤波后的重建图像将作为后续编码图像的参考来对将来的图像信号进行预测,因此上述的滤波操作也被称为环路滤波,即在编码环路内的滤波操作。
在本申请的一个实施例中,图3示出了一个视频编码器的基本流程图,在该流程中以帧内预测为例进行说明。其中,原始图像信号sk[x,y]与预测图像信号
Figure BDA0002946207080000121
做差值运算,得到残差信号uk[x,y],残差信号uk[x,y]经过变换及量化处理之后得到量化系数,量化系数一方面通过熵编码得到编码后的比特流,另一方面通过反量化及反变换处理得到重构残差信号u'k[x,y],预测图像信号
Figure BDA0002946207080000122
与重构残差信号u'k[x,y]叠加生成图像信号
Figure BDA0002946207080000123
图像信号
Figure BDA0002946207080000124
一方面输入至帧内模式决策模块和帧内预测模块进行帧内预测处理,另一方面通过环路滤波输出重建图像信号s'k[x,y],重建图像信号s'k[x,y]可以作为下一帧的参考图像进行运动估计及运动补偿预测。然后基于运动补偿预测的结果s'r[x+mx,y+my]和帧内预测结果
Figure BDA0002946207080000125
得到下一帧的预测图像信号
Figure BDA0002946207080000126
并继续重复上述过程,直至编码完成。
基于上述的编码过程,在解码端针对每一个CU,在获取到压缩码流(即比特流)之后,进行熵解码获得各种模式信息及量化系数。然后量化系数经过反量化及反变换处理得到残差信号。另一方面,根据已知的编码模式信息,可获得该CU对应的预测信号,然后将残差信号与预测信号相加之后即可得到重建信号,重建信号再经过环路滤波等操作,产生最终的输出信号。
在上述的编解码过程中,对残差信号的变换处理使得残差信号的能量集中在较少的低频系数,也就是多数系数值较小。然后经过后续的量化模块后,较小系数值将变为零值,极大降低了编码残差信号的代价。但是,由于残差分布的多样性,单一的DCT变换无法适应所有的残差特性,因此,DST7和DCT8这样的变换核被引入到变换处理过程中,并且对残差信号进行的水平变换和竖直变换可以采用不同的变换核。以AMT(Adaptive multiple coretransform,自适应多核变换)技术为例,对于一个残差信号进行变换处理可能选择的变换组合如下所示:(DCT2,DCT2)、(DCT8,DCT8)、(DCT8,DST7)、(DST7,DCT8)和(DST7,DST7)。对于残差信号具体选择哪种变换组合,需要在编码端使用RDO(Rate–DistortionOptimization,率失真优化)进行决策。另外,在残差块内残差分布相关性较弱的情况下,可以不经过变换过程而直接对残差信号进行量化,即变换跳过。标识当前残差块是否属于变换跳过模式可以通过显式编码和隐式导出两种方式。
由于残差信号在经过变换和量化处理后的量化系数块中非零系数较大概率会集中在块的左边和上方区域,而块的右边和下方区域往往为0,因此引入了SRCC技术中,通过SRCC技术可以标记出每个量化系数块(尺寸为W×H)中包含的非零系数的左上区域的大小为(SRx+1)×(SRy+1),其中SRx是量化系数块中最右面的非零系数的横坐标,SRy是量化系数块中最下面的非零系数的纵坐标,且左上角起点坐标为(0,0),1≤SRx+1≤W,1≤SRy+1≤H,而该区域外的系数均为0。SRCC技术利用(SRx,SRy)来确定一个量化系数块中需要扫描的量化系数区域,如图4所示,只有(SRx,SRy)标记的扫描区域内的量化系数需要编码,编码的扫描顺序如图5所示,可以是从右下角到左上角的反向Z字型扫描。
SRCC区域内的待编码的系数采用的是分层的方法进行编码。具体来讲,首先,对SRCC扫描区域坐标进行编码。然后,在SRCC区域内,基于扫描顺序,逐一编码标识当前位置上的系数是否为0的flag(significant flag)。与此同时,记录非零系数位置和统计非零系数个数。如果非零系数个数大于0,则需要对相应位置的非0系数绝对值和符号进行编码。
表1示出了本申请一个实施例中基于SRCC技术的系数编码流程。其中,带下划线加粗的字段表示需要解码的语法元素,无下划线首字母大写的字段表示变量,变量的值可由语法元素解码得到,表1中的流程省略了一些与本申请无关的细节。对于每个非零系数,其编码涉及到的语法元素包括coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_abs_level_remaining以及coeff_sign。
表1本申请实施例中基于SRCC技术的系数编码流程
Figure BDA0002946207080000141
Figure BDA0002946207080000151
表2示出了本申请一个实施例中基于SRCC技术进行系数编码时涉及到的相关描述符说明,描述符用于表示不同语法元素的解析过程。
表2本申请实施例中SRCC技术的相关描述符
Figure BDA0002946207080000161
在以上实施例中,scan_region_x和scan_region_y分别表示扫描区域右端横坐标和扫描区域下端纵坐标,用于确定系数扫描区域,系数扫描区域为以(0,0)为左上角,以(scan_region_x,scan_region_y)为右下角的矩形区域。scan_region_x和scan_region_y的值小于或等于31。
sig_flag为系数非零标志,用于确定当前系数是否是非零系数。sig_flag的值为‘0’表示当前系数是‘0’;值为‘1’表示当前系数是非零系数。
coeff_abs_level_greater1_flag为系数绝对值大于1标志,用于确定当前系数的绝对值是否大于1。coeff_abs_level_greater1_flag的值为‘0’表示当前系数的绝对值是‘1’;值为‘1’表示当前系数的绝对值大于1。
coeff_abs_level_greater2_flag为系数绝对值大于2标志,用于确定当前系数的绝对值是否大于2。coeff_abs_level_greater2_flag的值为‘0’表示当前系数的绝对值是‘2’;值为‘1’表示当前系数的绝对值大于2。
coeff_abs_level_remaining为系数绝对值剩余值,用于确定当前系数的绝对值的剩余值。如果当前系数有系数绝对值剩余值,当前系数的绝对值可以为3+coeff_abs_level_remaining。
在本申请的一个实施例中,可以根据如下逻辑算法确定coeff_abs_level_greater1_flag或coeff_abs_level_greater2_flag或coeff_abs_level_greaterx_flag(x大于等于3)的ctxIdxInc。令ctxIdxInc的值为0;
如果当前块为色度块,则ctxIdxInc=ctxIdxInc+17;
记当前系数在当前块的位置为(pos_x,pos_y)。扫描范围为(0,0)和(sr_x,sr_y)确定的矩形区域;
如果pos_x等于sr_x且pos_y等于sr_y,ctxIdxInc为当前值跳出,不再执行以下剩余步骤;
如果当前块是亮度块,继续执行如下逻辑;
如果pos_x等于0且pos_y等于0,对ctxIdxInc不做处理;
否则,如果当前块预测模式为普通帧内预测,
记i为pos_x相对于sr_x的映射值,记j为pos_y相对于sr_y的映射值,记s为映射值i和j的和,则i=(pos_x<=sr_x/2)?(pos_x<=sr_x/4?0:1)?(pos_x<=sr_x*3/4?2:3);j=(pos_y<=sr_y/2)?(pos_y<=sr_y/4?0:1)?(pos_y<=sr_y*3/4?2:3);
则s=i+j;
如果s<=1,ctxIdxInc+=4;
如果s>2,ctxIdxInc+=8;
否则,ctxIdxInc+=12;
否则,
如果pos_x<=sr_x/2且pos_y<=sr_y/2且pos_x不等于0且
pos_y不等于0,ctxIdxInc=ctxIdxInc+4;
否则,ctxIdxInc=ctxIdxInc+8。
如果需要确定的是coeff_abs_level_greater1_flag的ctxIdxInc,记当前块按扫描顺序解码出的前5个系数中非零系数中绝对值大于1的个数为num_gt1,如果当前块按扫描顺序解码出的非零系数不足5个,只计算已解码出的非零系数中绝对值大于1的个数。ctxIdxInc+=num_gt1+1;
如果需要确定的是coeff_abs_level_greater2_flag的ctxIdxInc,记当前块按扫描顺序解码出的前5个系数中非零系数中绝对值大于2的个数为num_gt2,如果当前块按扫描顺序解码出的非零系数不足5个,只计算已解码出的非零系数中绝对值大于2的个数。ctxIdxInc+=num_gt2+1。
如果需要确定的是coeff_abs_level_greaterx_flag的ctxIdxInc,记当前块按扫描顺序解码出的前5个系数中非零系数中绝对值大于x的个数为num_gtx,如果当前块按扫描顺序解码出的非零系数不足5个,只计算已解码出的非零系数中绝对值大于x的个数。ctxIdxInc+=num_gtx+1。
基于以上逻辑算法可以对编码块的扫描区域中的各个非零系数计算对应的多个系数绝对值阈值标志(即系数绝对值大于1标志coeff_abs_level_greater1_flag和系数绝对值大于2标志coeff_abs_level_greater2_flag)的上下文索引增量。具体而言,首先可以根据编码块的图像通道信息确定ctxIdxInc的初始值,如果编码块是亮度块,则ctxIdxInc的初始值确定为0,而如果编码块是色度块,则ctxIdxInc的初始值确定为17。然后再根据当前系数在扫描区域中的相对位置进一步确定ctxIdxInc的取值,以反向Z字型扫描顺序为例,如果非零系数位于扫描区域右下角(即第一个被扫描解码的系数),则保持ctxIdxInc的当前值,即亮度块的ctxIdxInc确定为0,色度块的ctxIdxInc确定为17;如果非零系数位于扫描区域左上角(即最后一个被扫描解码的系数),并且当前编码块是色度块,则保持ctxIdxInc的当前值,即取值为17;如果当前系数是除这两个位置以外的其他位置上的系数,则根据当前系数在扫描区域内的相对位置调整ctxIdxInc的取值。具体调整方式是根据编码块的编码预测模式将扫描区域划分为多个局部区域,然后根据当前系数所在的局部区域调整ctxIdxInc的取值。最后通过统计解码出的前5个非零系数中绝对值大于对应的系数绝对值阈值x的数量num_gtx以及调整后的ctxIdxInc的取值完成对ctxIdxInc的赋值,即ctxIdxInc+=num_gtx+1。如果非零系数位于扫描区域左上角(即最后一个被扫描解码的系数),并且当前编码块是亮度块或色度块,则根据num_gtx调整ctxIdxInc的取值,即ctxIdxInc+=num_gtx+1。
以AVS3标准作为示例,帧内预测包括普通帧内预测、帧内块复制IBC和帧内串复制ISC。根据编码块是否采用普通帧内预测,可以按照上述方法逻辑根据当前系数的分布位置以不同的调整方式调整ctxIdxInc的取值。
以AVS3标准作为示例,普通变换利用残差的相关性将残差进行能量集中,使得能量尽量集中在有限的低频系数位置。通过变换得到的变换系数常常具有多数值较小的特征,即大部分非零系数的绝对值集中在1和2处。因此,在AVS3标准中可以使用语法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag来对非零系数绝对值进行编码。而变换跳过由于未通过变换的方式进行能量集中,其残差分布特性更为复杂和多样,比起经过变换的系数,变换跳过模式的编码块的非零系数绝对值分布不一定仅集中在1和2处,而是可能存在更多的较大值。因此,仅使用coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag这2个语法元素并不能充分利用变换跳过模式编码块的残差分布特性,从而导致编码效率的降低。
本申请根据不同编码模式下的残差分布特点和多样性,提出了一种非零系数绝对值的编码方法,通过修改SRCC区域中编解码非零系数绝对值时所用到的语法元素,改进了SRCC区域内非零系数绝对值的二值化和编解码方式,有助于提升系数编码的编码效率,进一步提升视频压缩性能。
需要说明的是,本申请提出的系数编码方法,不局限于应用在变换跳过模式下的系数编码上。也可以使用在其它编码模式下的系数编码,例如,运用在所有块的系数编码中,例如,在图像级帧内预测变换跳过允许标志值为1的时候使用;例如,在图像级帧间预测变换跳过允许标志值为1的时候使用;例如,在图像级帧内预测变换跳过允许标志值和图像级帧间预测变换跳过允许标志值均为1的时候使用,等等。
本申请实施例可以通过显式编码或者隐含导出的方式确定编码块是否采用变换跳过模式。其中,显式编码是在解码系数绝对值之前对用于表示编码块是否采用变换跳过模式的标志flag进行解码,以基于标志的解码结果明确当前的编码块是否需要跳过变换过程。隐含导出(即隐择变换跳过,Implicit Selection of Transform Skip)是在没有相应标志的情况下,对系数解码结果进行统计,再根据统计结果判断是否跳过变换过程。例如,可以先解码出所有系数,计算所有非零系数的数量,以及所有系数(包括零系数)中偶数系数的数量,然后根据非零系数的数量的奇偶性,或者所有系数中偶数系数的数量的奇偶性,去隐式地推导当前编码块是否采用变换跳过(例如,非零系数的数量为奇数时,确定当前编码块采用了变换跳过;而在非零系数的数量为偶数时,确定当前编码块未采用变换跳过。例如,所有系数中偶数系数的数量为偶数时,确定当前编码块采用了变换跳过;而在所有系数中偶数系数的数量为奇数时,确定当前编码块未采用变换跳过)。
图像级帧内预测变换跳过允许标志和图像级帧间预测变换跳过允许标志是用于控制是否能够在帧内/帧间使用隐择变换跳过的标志。在本申请的实施例中,涉及与变换跳过模式相关的语法元素解释如下。
隐择变换跳过允许标志ist_skip_enable_flag:
二值变量。值为‘1’表示可使用隐择变换跳过;值为‘0’表示不应使用隐择变换跳过。变量IstSkipEnableFlag的值可以通过对语法元素ist_skip_enable_flag解码得到。如果位流中不存在语法元素ist_skip_enable_flag,可以将IstSkipEnableFlag赋值为0。
帧间变换跳过允许标志inter_transform_skip_enable_flag:
二值变量。值为‘1’表示可使用帧间变换跳过;值为‘0’表示不应使用帧间变换跳过。变量InterTransformSkipEnableFlag的值可以通过对语法元素inter_transform_skip_enable_flag解码得到。如果位流中不存在语法元素inter_transform_skip_enable_flag,可以将InterTransformSkipEnableFlag赋值为0。
图像级帧内预测变换跳过允许标志picture_ist_skip_enable_flag:
二值变量。值为‘1’表示当前图像的亮度帧内预测残差块和亮度编码块复制帧内预测残差块可使用变换跳过方法;值为‘0’表示当前图像的亮度帧内预测残差块和亮度编码块复制帧内预测残差块不应使用变换跳过方法。变量PictureIstSkipEnableFlag的值可以通过对语法元素picure_ist_skip_enable_flag解码得到。如果位流中不存在语法元素picture_ist_skip_enable_flag,可以将PictureIstSkipEnableFlag赋值为0。
图像级帧间预测变换跳过允许标志picture_inter_trasform_skip_flag:
二值变量。值为‘1’表示当前图像的亮度帧间预测残差块残差块可使用变换跳过方法;值为‘0’表示当前图像的亮度帧间预测残差块不应使用变换跳过方法。PictureInterSkipEnableFlag的值可以通过对语法元素picture_inter_trasform_skip_flag解码得到。如果位流中不存在语法元素picture_inter_trasform_skip_flag,可以将PictureInterSkipEnableFlag赋值为0。
下面结合具体应用场景对本申请实施例的技术方案的实现细节进行详细阐述。
图6示出了本申请一个实施例中的视频解码方法的步骤流程图,该视频解码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。如图6所示,该视频解码方法主要可以包括如下的步骤S610至步骤S640。
步骤S610:在视频图像帧的编码块中确定待解码的当前系数绝对值,当前系数是在编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数。
在本申请的一个实施例中,视频图像帧序列包括了一系列图像,每张图像可以被进一步划分为条带(Slice),条带又可以划分为一系列的LCU(或CTU),LCU包含有若干CU。视频图像帧在编码时是以块为单位进行编码处理,在一些新的视频编码标准中,比如在H.264标准中有宏块(macroblock,MB),宏块可进一步划分成多个可用于预测编码的预测块(prediction)。在HEVC标准中,采用编码单元CU、预测单元(prediction unit,PU)和变换单元(transform unit,TU)等基本概念,从功能上划分了多种块单元,并采用全新的基于树的结构进行描述。比如CU可以按照四叉树划分为更小的CU,而更小的CU还可以继续划分,从而形成一种四叉树结构。本申请实施例中的编码块可以是CU,或者是比CU更小的块,如对CU进行划分得到的更小的块。
步骤S620:获取当前系数对应的标志组合,标志组合包括至少两个系数绝对值阈值标志,系数绝对值阈值标志用于表示当前系数的系数绝对值是否大于对应的系数绝对值阈值,标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志。
在本申请的一个实施例中,标志组合可以包括对应于n个由一开始连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于三的整数。举例而言,由一开始连续递增的n个系数绝对值阈值x依次为1、2、3、4、5、……n,其中n>=3。相应的标志组合包括n个系数绝对值阈值标志coeff_abs_level_greaterx_flag。
在本申请的一个实施例中,标志组合包括对应于n个非连续递增或部分连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于二的整数。举例而言,n个非连续递增或部分连续递增的系数绝对值阈值x依次为x(1),x(2),…,x(k),…,x(n),其中n>=2,k=1,2,…,n,并且1<=x(1)<x(2)<…<x(n)。相应的标志组合包括n个系数绝对值阈值标志coeff_abs_level_greaterx(k)_flag。
本申请实施例中的标志组合例如可以包括但不限于以下组合中的任意一种。
(1)系数绝对值阈值x依次取值2、4,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater4_flag;
(2)系数绝对值阈值x依次取值2、6,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater6_flag;
(3)系数绝对值阈值x依次取值2、4、6,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater4_flag、coeff_abs_level_greater6_flag;
(4)系数绝对值阈值x依次取值2、4、8,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater4_flag、coeff_abs_level_greater8_flag;
(5)系数绝对值阈值x依次取值2、6、8,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater6_flag、coeff_abs_level_greater8_flag;
(6)系数绝对值阈值x依次取值2、6、10,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater6_flag、coeff_abs_level_greater10_flag;
(7)系数绝对值阈值x依次取值1、2、4、6,相应的标志组合为:coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_abs_level_greater4_flag、coeff_abs_level_greater6_flag;
(8)系数绝对值阈值x依次取值1、2、4、8,相应的标志组合为:coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_abs_level_greater4_flag、coeff_abs_level_greater8_flag;
(9)系数绝对值阈值x依次取值2、3、5、9,相应的标志组合为:coeff_abs_level_greater2_flag、coeff_abs_level_greater3_flag、coeff_abs_level_greater5_flag、coeff_abs_level_greater9_flag。
步骤S630:分别对标志组合中的各个系数绝对值阈值标志进行解码处理,得到各个系数绝对值阈值标志的取值。
在本申请的一个实施例中,分别对标志组合中的各个系数绝对值阈值标志进行解码处理的方法可以包括:分别确定与各个系数绝对值阈值标志相对应的解码方式,解码方式包括旁路解码和常规解码中的至少一种;若确定系数绝对值阈值标志对应的解码方式为旁路解码,则将系数绝对值阈值标志输入旁路解码引擎,以通过旁路解码引擎对系数绝对值阈值标志进行解码处理;若确定系数绝对值阈值标志对应的解码方式为常规解码,则将系数绝对值阈值标志输入基于上下文模型的常规解码引擎,以通过常规解码引擎对系数绝对值阈值标志进行解码处理。
在本申请实施例中,不同系数绝对值阈值对应的系数绝对值阈值标志可以选择相同的解码方式,也可以选择不同的解码方式。
步骤S640:根据各个系数绝对值阈值标志的取值确定当前系数的系数绝对值。
根据一个系数绝对值阈值标志的取值结果可以确定当前系数的系数绝对值的取值或者取值范围,将标志组合中的多个系数绝对值阈值标志的取值结果进行组合可以逐步缩小系数绝对值的取值范围,并最终确定当前系数的系数绝对值。
在本申请的一个实施例中,可以选择旁路解码或者常规解码的方式对系数绝对值阈值标志进行解码。其中,常规解码的方式需要根据先前解码过的语法元素或二元位的值,为每一个输入的二元位分配合适的概率模型,即为待解码的系数绝对值阈值标志分配上下文模型。
图7示出了本申请一个实施例中通过常规解码的方式对系数绝对值阈值标志进行解码处理的步骤流程图。如图7所示,在以上实施例的基础上,通过常规解码引擎对系数绝对值阈值标志进行解码处理的方法主要可以包括如下的步骤S710至步骤S750。
步骤S710:确定与系数绝对值阈值标志相对应的模型选取方式,模型选取方式包括单一模型选取和动态模型选取。
步骤S720:若确定系数绝对值阈值标志对应的模型选取方式为单一模型选取,则以预先设定的第一数值为系数绝对值阈值标志对应的上下文索引增量赋值。
步骤S730:若确定系数绝对值阈值标志对应的模型选取方式为动态模型选取,则根据与编码块和当前系数相关的属性信息为系数绝对值阈值标志对应的上下文索引增量赋值。
步骤S740:根据赋值得到的上下文索引增量确定与系数绝对值阈值相对应的上下文模型。
步骤S750:基于上下文模型,通过常规解码引擎对系数绝对值阈值标志进行算数解码。
在单一模型选取方式下,以预先设定的第一数值为上下文索引增量赋值,可以确定扫描区域内的每个非零系数对应于一个相同的上下文索引增量,即针对所有非零系数的系数绝对值阈值标志使用一个相同的上下文模型进行算数解码。而在动态模型选取方式下,各个不同位置上的非零系数可以具有不同的上下文索引增量,而不同的上下文索引增量将决定各个非零系数的系数绝对值阈值可以使用不同的上下文模型进行算法解码。举例而言,取第一数值为0(该数值仅用于示例),当确定模型选取方式为单一模型选取时,可以令上下文索引增量ctxIdxInc=0,即在未附加任何增量的情况下,直接以上下文起始索引ctxIdxStart定位对应的上下文模型。而当确定模型选取方式为动态模型选取时,可以根据编码块、扫描区域以及非零系数的相关属性确定具有不同取值的上下文索引增量ctxIdxInc,在上下文起始索引ctxIdxStart的基础上附加不同的上下文索引增量ctxIdxInc之后,可以定位到不同的上下文模型。
图8示出了本申请一个实施例中基于动态模型选取方式为上下文索引增量赋值的步骤流程图,在以上实施例的基础上,步骤S730中的根据与编码块和当前系数相关的属性信息为系数绝对值阈值标志对应的上下文索引增量赋值,可以包括如下的步骤S810至步骤S830。
步骤S810:根据编码块的通道信息为上下文索引增量的初始值赋值。
在本申请的一个实施例中,若编码块为亮度块,则以预先设定的第二数值为上下文索引增量的初始值赋值;若编码块为色度块,则在第二数值的基础上增大第三数值后为上下文索引增量的初始值赋值。举例而言,取第二数值为0,并取第三数值为17;如果编码块为亮度块,则将上下文索引增量的初始值赋值为0,即令ctxIdxInc=0;如果编码块为色度块,则将上下文索引增量的初始值赋值为0+17=17,即令ctxIdxInc+=17。
步骤S820:根据当前系数在编码块的扫描区域内的位置信息以及初始值确定第一增量数值。
在本申请的一个实施例中,若当前系数是在编码块的扫描区域内按照扫描顺序扫描的第一个系数或者最后一个系数,则以初始值作为第一增量数值;若当前系数是在编码块的扫描区域内除第一个系数和最后一个系数以外的其他系数,则根据当前系数在编码块的扫描区域内的相对位置增大初始值得到第一增量数值。举例而言,SRCC扫描区域是基于左上角的系数位置(0,0)和右下角的系数位置(sr_x,sr_y)确定的矩形区域,当前系数在编码块中的位置为(pos_x,pos_y)。以反向Z字型扫描顺序作为示例,如果pos_x=sr_x且pos_y=sr_y,则表示当前系数是按照扫描顺序扫描的第一个系数,而如果pos_x=0且pos_y=0,则表示当前系数是按照扫描顺序扫描的最后一个系数;在这两种情况下,直接以步骤S810中确定的初始值作为第一增量数值。相反的,如果当前系数是在扫描区域内除了第一个系数和最后一个系数以外的其他系数,则根据当前系数在扫描区域内的相对位置对初始值做不同程度的增大后得到第一增量数值。
在本申请的一个实施例中,基于当前系数的相对位置确定第一增量数值的方法可以包括按照由坐上至右下的顺序将扫描区域划分为多个不同的局部区域,并根据当前系数所在的局部区域增大初始值得到第一增量数值。
在本申请的一个实施例中,针对采用不同预测编码模式的编码块,可以选用不同的扫描区域划分方式。本申请实施例首先可以确定编码块的预测编码模式是否为普通帧内预测模式;若预测编码模式是普通帧内预测模式,则按照由左上至右下的顺序将扫描区域划分为第一区域数量的局部区域,并根据当前系数所在的局部区域增大初始值得到第一增量数值;若预测编码模式不是普通帧内预测模式(如帧间预测模式或者其他编码预测模式),则按照由左上至右下的顺序将扫描区域划分为第二区域数量的局部区域,并根据当前系数所在的局部区域增大初始值得到第一增量数值。
在本申请的一个实施例中,取第一区域数量为3,当编码块的预测编码模式是普通帧内预测模式时,可以按照由左上至右下的顺序将扫描区域划分为三个局部区域。
图9示出了本申请一个实施例中针对采用普通帧内预测模式的编码块进行扫描区域划分的区域分布示意图。如图9所示,本申请实施例中的SRCC扫描区域是基于左上角的系数位置(0,0)和右下角的系数位置(sr_x,sr_y)确定的矩形区域,将当前系数在编码块中的位置记作(pos_x,pos_y)。根据pos_x相对于sr_x的数值比例确定第一映射值i,根据pos_y相对于sr_y的数值比例确定第二映射值j。
i=(pos_x<=sr_x/2)?(pos_x<=sr_x/4?0:1)?(pos_x<=sr_x*3/4?2:3)
j=(pos_y<=sr_y/2)?(pos_y<=sr_y/4?0:1)?(pos_y<=sr_y*3/4?2:3)
当pos_x<=sr_x/4时,i=0;当sr_x/4<pos_x<=sr_x/2时,i=1;当sr_x/2<pos_x<=sr_x*3/4时,i=2;当sr_x*3/4<pos_x时,i=3。
当pos_y<=sr_y/4时,j=0;当sr_y/4<pos_y<=sr_y/2时,j=1;当sr_y/2<pos_y<=sr_y*3/4时,j=2;当sr_y*3/4<pos_y时,j=3。
对第一映射值i与第二映射值j求和得到第三映射值s,s=i+j。
将扫描区域按照由左上至右下的顺序划分为三个局部区域,即第一局部区域901、第二局部区域902和第三局部区域903。落在不同区域内的当前系数,可以按照不同的幅度增大初始值得到第一增量数值。
举例而言,如果s<=1,当前系数落在第一局部区域901,可以在初始值的基础上增加数值4得到第一增量数值,即ctxIdxInc+=4;如果s>2,当前系数落在第三局部区域903,可以在初始值的基础上增加数值8得到第一增量数值,即ctxIdxInc+=8;如果1<s<=2,当前系数落在第二局部区域902,可以在初始值的基础上增加数值12得到第一增量数值,即ctxIdxInc+=12。
在本申请的一个实施例中,取第二区域数量为2,当编码块的预测编码模式不是普通帧内预测模式时,可以按照由左上至右下的顺序将扫描区域划分为两个局部区域。
图10示出了本申请一个实施例中针对未采用普通帧内预测模式的编码块进行扫描区域划分的区域分布示意图。如图10所示,本申请实施例中的SRCC扫描区域是基于左上角的系数位置(0,0)和右下角的系数位置(sr_x,sr_y)确定的矩形区域,将当前系数在编码块中的位置记作(pos_x,pos_y)。
将扫描区域按照由左上至右下的顺序划分为两个局部区域,即第四局部区域1001和第五局部区域1002。落在不同区域内的当前系数,可以按照不同的幅度增大初始值得到第一增量数值。
举例而言,如果pos_x<=sr_x/2且pos_y<=sr_y/2,当前系数落在第四局部区域1001,可以在初始值的基础上增加数值4得到第一增量数值,即ctxIdxInc+=4;如果如果pos_x>sr_x/2或者pos_y>sr_y/2,当前系数落在第五局部区域1002,可以在初始值的基础上增加数值8得到第一增量数值,即ctxIdxInc+=8。
步骤S830:根据编码块的扫描区域内已解码出的非零系数的统计信息以及第一增量数值确定第二增量数值,并以第二增量数值为上下文索引增量赋值。
在本申请的一个实施例中,在扫描区域内已解码出的前m个非零系数中,统计系数绝对值大于系数绝对值阈值的统计数量,m为预设的整数;根据统计数量增大第一增量数值得到第二增量数值。如果已解码出的非零系数的数量不足m个,则在已解码出的所有非零系数中确定相应的统计数量。
在本申请的一个实施例中,将m取值为5,可以在扫描区域内已解码出的前5个非零系数中统计出系数绝对值大于系数绝对值阈值的统计数量num_gtx。在本申请实施例中,如果统计出系数绝对值大于系数绝对值阈值的非零系数的数量少于或等于三个,则将相应的非零系数的数量作为统计数量num_gtx。如果统计出系数绝对值大于系数绝对值阈值的非零系数的数量超过三个,则将统计数量num_gtx赋值为3,即令num_gtx=3。
在获得统计数量num_gtx后,可以基于统计数量num_gtx增大第一增量数值得到第二增量数值,即令ctxIdxInc+=num_gtx+1。
至此,以第二增量数值为上下文索引增量赋值,根据赋值得到的上下文索引增量可以定位至对应的上下文模型,并基于上下文模型对相应的系数绝对值阈值标志进行解码,得到系数绝对值阈值标志的取值。
在对标志组合中各个系数绝对值阈值标志解码完成后,针对不同的标志组合形式,可以按照相应的组合关系确定当前系数的系数绝对值。
在本申请的一个实施例中,标志组合包括对应于n个由一开始连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于三的整数。举例而言,n取值为5,系数绝对值阈值依次为x=1,2,3,4,5;标志组合中对应包括5个系数绝对值阈值标志coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag、coeff_abs_level_greater3_flag、coeff_abs_level_greater4_flag、coeff_abs_level_greater5_flag。
图11示出了本申请一个实施例中基于由一开始连续递增的标志组合确定系数绝对值的步骤流程图。如图11所示,在以上实施例的基础上,步骤S640中的根据各个系数绝对值阈值标志的取值确定当前系数的系数绝对值,可以包括如下的步骤S1110至步骤S1140。
步骤S1110:按照系数绝对值阈值增大的顺序,依次获取各个系数绝对值阈值标志的取值。
经过解码处理得到的系数绝对值阈值标志的取值为第一标志数值或者第二标志数值,第一标志数值例如可以取值为0,第二标志数值例如可以取值为1。
步骤S1120:若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据当前系数绝对值阈值标志对应的当前系数绝对值阈值确定当前系数的系数绝对值。
举例而言,如果当前系数绝对值阈值标志coeff_abs_level_greaterx_flag的取值为0,可以将当前系数绝对值阈值x确定为当前系数的系数绝对值coeff_abs_level的取值,即coeff_abs_level=x。
步骤S1130:若当前系数绝对值阈值标志的取值是与第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值。
举例而言,如果当前系数绝对值阈值标志coeff_abs_level_greaterx_flag的取值为1,可以确定当前系数的系数绝对值coeff_abs_level的取值范围是大于相应的系数绝对值阈值x,此时可以继续获取下一系数绝对值阈值标志的取值,并进一步根据下一系数绝对值阈值标志的取值确定当前系数的系数绝对值coeff_abs_level的取值或者取值范围。
步骤S1140:若各个系数绝对值阈值标志的取值均为第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与当前系数相对应的基础值,并根据基础值以及当前系数的系数绝对值剩余值确定当前系数的系数绝对值。
举例而言,当标志组合中的所有系数绝对值阈值标志的取值均为1时,表示当前系数的系数绝对值的取值范围是大于最后一个系数绝对值阈值标志coeff_abs_level_greatern_flag对应的系数绝对值阈值n,此时可以根据系数绝对值阈值n确定与当前系数相对应的基础值base_level,即可以令base_level=n+1。在进一步根据基础值和当前系数的系数绝对值剩余值coeff_abs_level_remaining确定当前系数的系数绝对值coeff_abs_level的取值。
在本申请的一个实施例中,根据基础值以及当前系数的系数绝对值剩余值确定当前系数的系数绝对值的方法可以包括:对当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到系数绝对值剩余值的取值;将系数绝对值剩余值的取值与基础值相加得到当前系数的系数绝对值。
在本申请的一个实施例中,对当前系数的系数绝对值剩余值进行熵解码和反二值化处理的方法可以包括:按照k阶指数哥伦布码对当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
在本申请的一个实施例中,标志组合对应的系数绝对值阈值依次为x=1,2,3,……n(n>=3)。
基于标志组合中各个系数绝对值阈值标志的取值确定当前系数的系数绝对值的取值或取值范围的方法逻辑如下。
(1)令x=1;
(2)获取对系数绝对值阈值标志coeff_abs_level_greaterx_flag解码后得到的取值,如果coeff_abs_level_greaterx_flag的值为0,令coeff_abs_level=x,非零系数绝对值coeff_abs_level解码完成;
(3)如果coeff_abs_level_greaterx_flag的值为1,可以确定取值范围coeff_abs_level>=x+1;如果x<n,则令x=x+1,继续执行步骤(2);
(4)如果x=n,可以确定取值范围coeff_abs_level>=n+1,令基础值base_level=n+1。
在确定当前系数的系数绝对值的取值范围及基础值后,可以按照如下方法逻辑解码当前系数的系数绝对值剩余值coeff_abs_level_remaining,并推导出最终的非零系数绝对值coeff_abs_level。
(1)在coeff_abs_level_greatern_flag的值为1时,可以确定取值范围coeff_abs_level>=n+1和基础值base_level=n+1,此时可以按照k阶指数哥伦布码的方式对coeff_abs_level_remaining进行熵解码和反二值化并推导出其值。k阶指数哥伦布码表见下方表3。
(2)令coeff_abs_level=base_level+coeff_abs_level_remaining,非零系数绝对值coeff_abs_level解码完成。
表3 k阶指数哥伦布码表
Figure BDA0002946207080000291
Figure BDA0002946207080000301
在本申请的一个应用场景中,取标志组合对应的系数绝对值阈值依次为x=1,2,3,4,5;解码系数绝对值的方法包括如下步骤。
(1)对第一个系数绝对值阈值标志coeff_abs_level_greater1_flag进行解码,如果解码得到coeff_abs_level_greater1_flag的值为0,则coeff_abs_level=1,非零系数绝对值coeff_abs_level解码完成;
(2)如果coeff_abs_level_greater1_flag的值为1,继续解码coeff_abs_level_greater2_flag;如果解码得到coeff_abs_level_greater2_flag的值为0,则coeff_abs_level=2,非零系数绝对值coeff_abs_level解码完成;
(3)如果coeff_abs_level_greater2_flag的值为1,继续解码coeff_abs_level_greater3_flag;如果解码得到coeff_abs_level_greater3_flag的值为0,则coeff_abs_level=3,非零系数绝对值coeff_abs_level解码完成;
(4)如果coeff_abs_level_greater3_flag的值为1,继续解码coeff_abs_level_greater4_flag,如果解码得到coeff_abs_level_greater4_flag的值为0,则coeff_abs_level=4,非零系数绝对值coeff_abs_level解码完成;
(5)如果coeff_abs_level_greater4_flag的值为1,继续解码coeff_abs_level_greater5_flag,如果解码得到coeff_abs_level_greater5_flag的值为0,则coeff_abs_level=5,非零系数绝对值coeff_abs_level解码完成;
(6)如果coeff_abs_level_greater5_flag的值为1,则可以确定取值范围coeff_abs_level>=6;令基础值base_level=6,继续解码系数绝对值剩余值coeff_abs_level_remaining。
基于以上步骤可以确定系数绝对值的取值范围是coeff_abs_level>=6,base_level=6,按照k阶指数哥伦布码(见表3,例如使用0阶指数哥伦布码)的方式对coeff_abs_level_remaining进行熵解码和反二值化并推导出其值。令coeff_abs_level=base_level+coeff_abs_level_remaining,非零系数绝对值coeff_abs_level解码完成。
在本申请的一个实施例中,标志组合包括对应于n个非连续递增或部分连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于二的整数。举例而言,n个非连续递增或部分连续递增的系数绝对值阈值x依次为x(1),x(2),…,x(k),…,x(n),其中n>=2,k=1,2,…,n,并且1<=x(1)<x(2)<…<x(n)。相应的标志组合包括n个系数绝对值阈值标志coeff_abs_level_greaterx(k)_flag。
图12示出了本申请一个实施例中基于非连续递增或部分连续递增的标志组合确定系数绝对值的步骤流程图。如图12所示,在以上实施例的基础上,步骤S640中的根据各个系数绝对值阈值标志的取值确定当前系数的系数绝对值,可以包括如下的步骤S1210至步骤S1240。
步骤S1210:按照系数绝对值阈值增大的顺序,依次获取各个系数绝对值阈值标志的取值。
经过解码处理得到的系数绝对值阈值标志的取值为第一标志数值或者第二标志数值,第一标志数值例如可以取值为0,第二标志数值例如可以取值为1。
步骤S1220:若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据当前系数绝对值阈值标志对应的当前系数绝对值阈值以及前一系数绝对值阈值标志对应的前一系数绝对值阈值确定与当前系数相对应的基础值,并根据基础值以及当前系数的系数绝对值剩余值确定当前系数的系数绝对值。
举例而言,如果当前系数绝对值阈值标志coeff_abs_level_greaterx(k)_flag的取值为0,可以根据当前系数绝对值阈值x(k)以及前一系数绝对值阈值x(k-1)确定当前系数的系数绝对值coeff_abs_level的取值范围,即x(k-1)+1<=coeff_abs_level<=x(k)(k>1时)或1<=coeff_abs_level<=x(k)(k=1时)。如果x(k-1)+1=x(k)(k>1时)或x(k)=1(k=1时),则coeff_abs_level=x(k),非零系数绝对值coeff_abs_level解码完成。否则,可以令基础值base_level=x(k-1)+1(k>1)或1(k=1)。
步骤S1230:若当前系数绝对值阈值标志的取值是与第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值。
举例而言,如果当前系数绝对值阈值标志coeff_abs_level_greaterx(k)_flag的取值为1,可以确定当前系数的系数绝对值coeff_abs_level的取值范围是大于相应的系数绝对值阈值x(k),即coeff_abs_level>=x(k)+1;此时可以继续获取下一系数绝对值阈值标志的取值,并进一步根据下一系数绝对值阈值标志的取值确定当前系数的系数绝对值coeff_abs_level的取值或者取值范围。
步骤S1240:若各个系数绝对值阈值标志的取值均为第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与当前系数相对应的基础值,并根据基础值以及当前系数的系数绝对值剩余值确定当前系数的系数绝对值。
举例而言,当标志组合中的所有系数绝对值阈值标志的取值均为1时,表示当前系数的系数绝对值的取值范围是大于最后一个系数绝对值阈值标志coeff_abs_level_greaterx(n)_flag对应的系数绝对值阈值x(n),即coeff_abs_level>=x(n)+1;此时可以根据系数绝对值阈值x(n)确定与当前系数相对应的基础值base_level,即可以令base_level=x(n)+1。在进一步根据基础值和当前系数的系数绝对值剩余值coeff_abs_level_remaining确定当前系数的系数绝对值coeff_abs_level的取值。
在本申请的一个实施例中,根据基础值以及当前系数的系数绝对值剩余值确定当前系数的系数绝对值的方法可以包括:对当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到系数绝对值剩余值的取值;将系数绝对值剩余值的取值与基础值相加得到当前系数的系数绝对值。
在本申请的一个实施例中,对当前系数的系数绝对值剩余值进行熵解码和反二值化处理的方法可以包括:根据各个系数绝对值阈值标志的取值确定当前系数的系数绝对值取值范围;根据系数绝对值取值范围的范围大小从多个候选解码方法中选取目标解码方法;按照目标解码方法对当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
在本申请的一个实施例中,可供选择的多个候选解码方法包括如下解码方法中的至少一种:基于截断一元码的解码方法;基于一元码的解码方法;基于len位定长码的解码方法;基于k阶指数哥伦布码的解码方法。
基于以上实施例,标志组合对应的系数绝对值阈值x依次为非连续或部分连续的x(1),x(2),…,x(k),…,x(n),其中n>=2,k=1,2,…,n,并且1<=x(1)<x(2)<…<x(n)。
基于标志组合中各个系数绝对值阈值标志的取值确定当前系数的系数绝对值的取值或取值范围的方法逻辑如下。
(1)令x=x(k),k=1;
(2)获取对coeff_abs_level_greaterx(k)_flag解码后得到的取值,如果coeff_abs_level_greater x(k)_flag的值为0,则可以确定取值范围x(k-1)+1<=coeff_abs_level<=x(k)(k>1时)或1<=coeff_abs_level<=x(k)(k=1时)。如果x(k-1)+1=x(k)(k>1时),或x(k)=1(k=1时),则可以确定coeff_abs_level=x(k),非零系数绝对值coeff_abs_level解码完成。否则,令基础值base_level=x(k-1)+1(k>1)或1(k=1);
(3)如果coeff_abs_level_greater x(k)_flag的值为1,可以确定取值范围coeff_abs_level>=x(k)+1;如果k<n,令k=k+1,继续执行步骤(2);
(4)如果k=n,可以确定取值范围coeff_abs_level>=x(n)+1,令基础值base_level=x(n)+1。
在确定当前系数的系数绝对值的取值范围及基础值后,可以按照如下方法逻辑解码当前系数的系数绝对值剩余值coeff_abs_level_remaining,并推导出最终的非零系数绝对值coeff_abs_level。
在k=1且coeff_abs_level_greater x(1)_flag的值为0时,可以确定取值范围1<=coeff_abs_level<=x(1)。令base_level=1,按照以下方式之一,对coeff_abs_level_remaining进行熵解码和反二值化并推导出其值:
(1)按照k阶指数哥伦布码(见上方表3)的方式进行反二值化;
(2)从码流中熵解码len=Ceil(log2(x(1)))位比特,按照len位定长码(见下方表4)的方式反二值化;
(3)按照一元码(见下方表5)的方式反二值化;
(4)按照截断一元码(见下方表6)的方式反二值化。
在k=2~n,coeff_abs_level_greater x(k)_flag的值为0,并且coeff_abs_level_greater x(k-1)_flag的值为1时,可以确定取值范围x(k-1)+1<=coeff_abs_level<=x(k),令基础值base_level=x(k-1)+1,按照以下方式之一,对coeff_abs_level_remaining进行熵解码和反二值化并推导出其值:
(1)按照k阶指数哥伦布码(见上方表3)的方式进行反二值化;
(2)从码流中熵解码len=Ceil(log2(x(k)-x(k-1)))位比特,按照len位定长码(见下方表4)的方式反二值化;
(3)按照一元码(见下方表5)的方式反二值化;
(4)按照截断一元码(见下方表6)的方式反二值化。
在k=n且coeff_abs_level_greater x(n)_flag的值为1时,可以确定取值范围coeff_abs_level>=n。令基础值base_level=n+1,并按照k阶指数哥伦布码(见表3)的方式对coeff_abs_level_remaining进行熵解码和反二值化并推导出其值;
令coeff_abs_level=base_level+coeff_abs_level_remaining,非零系数绝对值coeff_abs_level解码完成。
表4 synElVal与二元符号串的关系
(长度为len的定长码)
Figure BDA0002946207080000341
Figure BDA0002946207080000351
表5 synElVal与二元符号串的关系
(包括2种一元码形式:表5-1或表5-2)
表5-1
Figure BDA0002946207080000352
表5-2
Figure BDA0002946207080000353
Figure BDA0002946207080000361
表6synElVal与二元符号串的关系
(截断一元码的2种形式:表2-1或表2-2)
表6-1
Figure BDA0002946207080000362
表6-2
Figure BDA0002946207080000363
在本申请的一个应用场景中,取标志组合对应的系数绝对值阈值依次为x=1,2,4,8;解码系数绝对值的方法包括如下步骤。
(1)对第一个系数绝对值阈值标志coeff_abs_level_greater1_flag进行解码,如果解码得到coeff_abs_level_greater1_flag的值为0,则1<=coeff_abs_level<=1,那么coeff_abs_level=1,非零系数绝对值coeff_abs_level解码完成;
(2)如果coeff_abs_level_greater1_flag的值为1,继续解码coeff_abs_level_greater2_flag。如果解码得到coeff_abs_level_greater2_flag的值为0,则2<=coeff_abs_level<=2,那么coeff_abs_level=2,非零系数绝对值coeff_abs_level解码完成;
(3)如果coeff_abs_level_greater2_flag的值为1,继续解码coeff_abs_level_greater4_flag。如果解码得到coeff_abs_level_greater4_flag的值为0,则3<=coeff_abs_level<=4,令基础值base_level=3;
(4)如果coeff_abs_level_greater4_flag的值为1,继续解码coeff_abs_level_greater8_flag。如果解码得到coeff_abs_level_greater8_flag的值为0,则5<=coeff_abs_level<=8,令基础值base_level=5;
(5)如果coeff_abs_level_greater8_flag的值为1,则可以确定取值范围coeff_abs_level>=9,令基础值base_level=9,继续解码系数绝对值剩余值coeff_abs_level_remaining。
基于以上步骤确定的取值范围和基础值,可以解码非零系数绝对值的剩余部分coeff_abs_level_remaining,并推导出最终的非零系数绝对值。本申请一个实施例中的解码方法如下。
(1)如果coeff_abs_level_greater2_flag的值为1,且coeff_abs_level_greater4_flag的值为0,则3<=coeff_abs_level<=4。令base_level=3,从码流中熵解码len=1位比特,按照1位定长码(见表2)的方式反二值化对coeff_abs_level_remaining反二值化并推导出其值;
(2)如果coeff_abs_level_greater4_flag的值为1,且coeff_abs_level_greater8_flag的值为0,则5<=coeff_abs_level<=8。令base_level=5,从码流中熵解码len=2位比特,按照2位定长码(见表2)的方式对coeff_abs_level_remaining反二值化并推导出其值;
(3)如果coeff_abs_level_greater8_flag的值为1,则coeff_abs_level>=9,令base_level=9,按照k阶指数哥伦布码(见表3,例如使用0阶指数哥伦布码)的方式对coeff_abs_level_remaining进行熵解码和反二值化并推导出其值;
(4)令coeff_abs_level=base_level+coeff_abs_level_remaining,非零系数绝对值coeff_abs_level解码完成。
以上实施例从解码侧的角度介绍了非零系数绝对值的解码方案,而在编码侧可以使用与以上各个实施例相对应的编码方案。图13示出了本申请一个实施例中的视频编码方法的步骤流程图。该视频编码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。如图13所示,该视频编码方法主要可以包括如下的步骤S1310至步骤S1330。
步骤S1310:在视频图像帧的编码块中确定待编码的当前系数绝对值,当前系数是在编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;
步骤S1320:获取当前系数对应的标志组合,标志组合包括至少两个系数绝对值阈值标志,系数绝对值阈值标志用于表示当前系数的系数绝对值是否大于对应的系数绝对值阈值,标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;
步骤S1330:根据当前系数绝对值与对应的系数绝对值阈值的大小关系,确定标志组合中的各个系数绝对值阈值标志的值,分别对标志组合中的各个系数绝对值阈值标志进行编码。
在本申请的一个实施例中,可以按照系数绝对值阈值增大的顺序,依次确定标志组合中的各个系数绝对值阈值标志的值,并分别对标志组合中的各个系数绝对值阈值标志进行编码。
本申请实施例中的视频编码方法的相关内容细节与以上实施例中的视频解码方法相对应,此处不再赘述。
基于以上各实施例,本申请根据不同编码模式下的残差分布特点和多样性,提出了一种非零系数绝对值的编解码方法,通过修改SRCC区域中编解码非零系数绝对值时所用到的语法元素,改进了SRCC区域内非零系数绝对值的二值化和编解码方式,有助于提升系数编码的编码效率,进一步提升视频压缩性能。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的视频解码方法。图14示出了本申请实施例提供的视频解码装置的结构框图。如图14所示,视频解码装置1400主要可以包括:当前系数确定模块1410,被配置为在视频图像帧的编码块中确定待解码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;标志组合获取模块1420,被配置为获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;标志解码模块1430,被配置为分别对所述标志组合中的各个系数绝对值阈值标志进行解码处理,得到所述各个系数绝对值阈值标志的取值;系数绝对值确定模块1440,被配置为根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述标志组合包括对应于n个由一开始连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于三的整数。
在本申请的一些实施例中,基于以上技术方案,所述系数绝对值确定模块1440包括:第一取值获取单元,被配置为按照系数绝对值阈值增大的顺序,依次获取所述各个系数绝对值阈值标志的取值;第一绝对值确定单元,被配置为若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据所述当前系数绝对值阈值标志对应的当前系数绝对值阈值确定所述当前系数的系数绝对值;第二取值获取单元,被配置为若所述当前系数绝对值阈值标志的取值是与所述第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值;第二绝对值确定单元,被配置为若所述各个系数绝对值阈值标志的取值均为所述第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述第二绝对值确定单元包括:剩余值解码子单元,被配置为对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到所述系数绝对值剩余值的取值;绝对值确定子单元,被配置为将所述系数绝对值剩余值的取值与所述基础值相加得到所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述剩余值解码子单元还被配置为按照k阶指数哥伦布码对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
在本申请的一些实施例中,基于以上技术方案,所述标志组合包括对应于n个非连续递增或部分连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于二的整数。
在本申请的一些实施例中,基于以上技术方案,所述系数绝对值确定模块1440包括:第三取值获取单元,被配置为按照系数绝对值阈值增大的顺序,依次获取所述各个系数绝对值阈值标志的取值;第三绝对值确定单元,被配置为若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据所述当前系数绝对值阈值标志对应的当前系数绝对值阈值以及前一系数绝对值阈值标志对应的前一系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值;第四取值获取单元,被配置为若所述当前系数绝对值阈值标志的取值是与所述第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值;第四绝对值确定单元,被配置为若所述各个系数绝对值阈值标志的取值均为所述第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述第四绝对值确定单元包括:剩余值解码子单元,被配置为对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到所述系数绝对值剩余值的取值;绝对值确定子单元,被配置为将所述系数绝对值剩余值的取值与所述基础值相加得到所述当前系数的系数绝对值。
在本申请的一些实施例中,基于以上技术方案,所述剩余值解码子单元还被配置为:根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值取值范围;根据所述系数绝对值取值范围的范围大小从多个候选解码方法中选取目标解码方法;按照所述目标解码方法对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
在本申请的一些实施例中,基于以上技术方案,所述多个候选解码方法包括如下解码方法中的至少一种:基于截断一元码的解码方法;基于一元码的解码方法;基于len位定长码的解码方法;基于k阶指数哥伦布码的解码方法。
在本申请的一些实施例中,基于以上技术方案,所述标志解码模块1430包括:解码方式确定单元,被配置为分别确定与所述各个系数绝对值阈值标志相对应的解码方式,所述解码方式包括旁路解码和常规解码中的至少一种;旁路解码单元,被配置为若确定所述系数绝对值阈值标志对应的解码方式为旁路解码,则将所述系数绝对值阈值标志输入旁路解码引擎,以通过所述旁路解码引擎对所述系数绝对值阈值标志进行解码处理;常规解码单元,被配置为若确定所述系数绝对值阈值标志对应的解码方式为常规解码,则将所述系数绝对值阈值标志输入基于上下文模型的常规解码引擎,以通过所述常规解码引擎对所述系数绝对值阈值标志进行解码处理。
在本申请的一些实施例中,基于以上技术方案,所述常规解码单元包括:模型选取方式确定子单元,被配置为确定与所述系数绝对值阈值标志相对应的模型选取方式,所述模型选取方式包括单一模型选取和动态模型选取;第一赋值子单元,被配置为若确定所述系数绝对值阈值标志对应的模型选取方式为单一模型选取,则以预先设定的第一数值为所述系数绝对值阈值标志对应的上下文索引增量赋值;第二赋值子单元,被配置为若确定所述系数绝对值阈值标志对应的模型选取方式为动态模型选取,则根据与所述编码块和所述当前系数相关的属性信息为所述系数绝对值阈值标志对应的上下文索引增量赋值;模型确定子单元,被配置为根据赋值得到的上下文索引增量确定与所述系数绝对值阈值相对应的上下文模型;算数解码子单元,被配置为基于所述上下文模型,通过所述常规解码引擎对所述系数绝对值阈值标志进行算数解码。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:根据所述编码块的通道信息为所述上下文索引增量的初始值赋值;根据所述当前系数在所述编码块的扫描区域内的位置信息以及所述初始值确定第一增量数值;根据所述编码块的扫描区域内已解码出的非零系数的统计信息以及所述第一增量数值确定第二增量数值,并以所述第二增量数值为所述上下文索引增量赋值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:若所述编码块为亮度块,则以预先设定的第二数值为所述上下文索引增量的初始值赋值;若所述编码块为色度块,则在所述第二数值的基础上增大第三数值后为所述上下文索引增量的初始值赋值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:若所述当前系数是在所述编码块的扫描区域内按照扫描顺序扫描的第一个系数或者最后一个系数,则以所述初始值作为第一增量数值;若所述当前系数是在所述编码块的扫描区域内除所述第一个系数和所述最后一个系数以外的其他系数,则根据所述当前系数在所述编码块的扫描区域内的相对位置增大所述初始值得到第一增量数值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:确定所述编码块的预测编码模式是否为普通帧内预测模式;若所述预测编码模式是普通帧内预测模式,则按照由左上至右下的顺序将所述扫描区域划分为第一区域数量的局部区域,并根据所述当前系数所在的局部区域增大所述初始值得到第一增量数值;若所述预测编码模式不是普通帧内预测模式,则按照由左上至右下的顺序将所述扫描区域划分为第二区域数量的局部区域,并根据所述当前系数所在的局部区域增大所述初始值得到第一增量数值。
在本申请的一些实施例中,基于以上技术方案,所述第二赋值子单元还被配置为:在所述扫描区域内已解码出的前m个非零系数中,统计系数绝对值大于所述系数绝对值阈值的统计数量,m为预设的整数;根据所述统计数量增大所述第一增量数值得到第二增量数值。
图15示出了本申请一个实施例中的视频编码装置的结构框图。如图15所示,视频编码装置1500主要可以包括:
当前系数确定模块1510,被配置为在视频图像帧的编码块中确定待编码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;
标志组合获取模块1520,被配置为获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;
标志编码模块1530,被配置为根据所述当前系数绝对值与对应的系数绝对值阈值的大小关系,确定所述标志组合中的各个系数绝对值阈值标志的值,分别对所述标志组合中的各个系数绝对值阈值标志进行编码。
本申请各实施例中提供的视频解码装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
图16示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图16示出的电子设备的计算机系统1600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理器1601(Central Processing Unit,CPU),其可以根据存储在只读存储器1602(Read-Only Memory,ROM)中的程序或者从存储部分1608加载到随机访问存储器1603(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1603中,还存储有系统操作所需的各种程序和数据。中央处理器1601、在只读存储器1602以及随机访问存储器1603通过总线1604彼此相连。输入/输出接口1605(Input/Output接口,即I/O接口)也连接至总线1604。
以下部件连接至输入/输出接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至输入/输出接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理器1601执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (23)

1.一种视频解码方法,其特征在于,包括:
在视频图像帧的编码块中确定待解码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;
获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;
分别对所述标志组合中的各个系数绝对值阈值标志进行解码处理,得到所述各个系数绝对值阈值标志的取值;
根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值。
2.根据权利要求1所述的视频解码方法,其特征在于,所述标志组合包括对应于n个由一开始连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于三的整数。
3.根据权利要求2所述的视频解码方法,其特征在于,所述根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值,包括:
按照系数绝对值阈值增大的顺序,依次获取所述各个系数绝对值阈值标志的取值;
若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据所述当前系数绝对值阈值标志对应的当前系数绝对值阈值确定所述当前系数的系数绝对值;
若所述当前系数绝对值阈值标志的取值是与所述第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值;
若所述各个系数绝对值阈值标志的取值均为所述第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值。
4.根据权利要求3所述的视频解码方法,其特征在于,所述根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值,包括:
对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到所述系数绝对值剩余值的取值;
将所述系数绝对值剩余值的取值与所述基础值相加得到所述当前系数的系数绝对值。
5.根据权利要求4所述的视频解码方法,其特征在于,对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,包括:
按照k阶指数哥伦布码对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
6.根据权利要求1所述的视频解码方法,其特征在于,所述标志组合包括对应于n个非连续递增或部分连续递增的系数绝对值阈值的n个系数绝对值阈值标志,n为大于或等于二的整数。
7.根据权利要求6所述的视频解码方法,其特征在于,所述根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值,包括:
按照系数绝对值阈值增大的顺序,依次获取所述各个系数绝对值阈值标志的取值;
若当前系数绝对值阈值标志的取值是预设的第一标志数值,则根据所述当前系数绝对值阈值标志对应的当前系数绝对值阈值以及前一系数绝对值阈值标志对应的前一系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值;
若所述当前系数绝对值阈值标志的取值是与所述第一标志数值相对应的第二标志数值,则继续获取下一系数绝对值阈值标志的取值;
若所述各个系数绝对值阈值标志的取值均为所述第二标志数值,则根据最后一个系数绝对值阈值标志对应的系数绝对值阈值确定与所述当前系数相对应的基础值,并根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值。
8.根据权利要求7所述的视频解码方法,其特征在于,所述根据所述基础值以及所述当前系数的系数绝对值剩余值确定所述当前系数的系数绝对值,包括:
对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,得到所述系数绝对值剩余值的取值;
将所述系数绝对值剩余值的取值与所述基础值相加得到所述当前系数的系数绝对值。
9.根据权利要求8所述的视频解码方法,其特征在于,对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理,包括:
根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值取值范围;
根据所述系数绝对值取值范围的范围大小从多个候选解码方法中选取目标解码方法;
按照所述目标解码方法对所述当前系数的系数绝对值剩余值进行熵解码和反二值化处理。
10.根据权利要求9所述的视频解码方法,其特征在于,所述多个候选解码方法包括如下解码方法中的至少一种:
基于截断一元码的解码方法;
基于一元码的解码方法;
基于len位定长码的解码方法;
基于k阶指数哥伦布码的解码方法。
11.根据权利要求1至10中任意一项所述的视频解码方法,其特征在于,所述分别对所述标志组合中的各个系数绝对值阈值标志进行解码处理,包括:
分别确定与所述各个系数绝对值阈值标志相对应的解码方式,所述解码方式包括旁路解码和常规解码中的至少一种;
若确定所述系数绝对值阈值标志对应的解码方式为旁路解码,则将所述系数绝对值阈值标志输入旁路解码引擎,以通过所述旁路解码引擎对所述系数绝对值阈值标志进行解码处理;
若确定所述系数绝对值阈值标志对应的解码方式为常规解码,则将所述系数绝对值阈值标志输入基于上下文模型的常规解码引擎,以通过所述常规解码引擎对所述系数绝对值阈值标志进行解码处理。
12.根据权利要求11所述的视频解码方法,其特征在于,所述通过所述常规解码引擎对所述系数绝对值阈值标志进行解码处理,包括:
确定与所述系数绝对值阈值标志相对应的模型选取方式,所述模型选取方式包括单一模型选取和动态模型选取;
若确定所述系数绝对值阈值标志对应的模型选取方式为单一模型选取,则以预先设定的第一数值为所述系数绝对值阈值标志对应的上下文索引增量赋值;
若确定所述系数绝对值阈值标志对应的模型选取方式为动态模型选取,则根据与所述编码块和所述当前系数相关的属性信息为所述系数绝对值阈值标志对应的上下文索引增量赋值;
根据赋值得到的上下文索引增量确定与所述系数绝对值阈值相对应的上下文模型;
基于所述上下文模型,通过所述常规解码引擎对所述系数绝对值阈值标志进行算数解码。
13.根据权利要求12所述的视频解码方法,其特征在于,所述根据与所述编码块和所述当前系数相关的属性信息为所述系数绝对值阈值标志对应的上下文索引增量赋值,包括:
根据所述编码块的通道信息为所述上下文索引增量的初始值赋值;
根据所述当前系数在所述编码块的扫描区域内的位置信息以及所述初始值确定第一增量数值;
根据所述编码块的扫描区域内已解码出的非零系数的统计信息以及所述第一增量数值确定第二增量数值,并以所述第二增量数值为所述上下文索引增量赋值。
14.根据权利要求13所述的视频解码方法,其特征在于,所述根据所述编码块的通道信息为所述上下文索引增量的初始值赋值,包括:
若所述编码块为亮度块,则以预先设定的第二数值为所述上下文索引增量的初始值赋值;
若所述编码块为色度块,则在所述第二数值的基础上增大第三数值后为所述上下文索引增量的初始值赋值。
15.根据权利要求13所述的视频解码方法,其特征在于,所述根据所述当前系数在所述编码块的扫描区域内的位置信息以及所述初始值确定第一增量数值,包括:
若所述当前系数是在所述编码块的扫描区域内按照扫描顺序扫描的第一个系数或者最后一个系数,则以所述初始值作为第一增量数值;
若所述当前系数是在所述编码块的扫描区域内除所述第一个系数和所述最后一个系数以外的其他系数,则根据所述当前系数在所述编码块的扫描区域内的相对位置增大所述初始值得到第一增量数值。
16.根据权利要求15所述的视频解码方法,其特征在于,所述根据所述当前系数在所述编码块的扫描区域内的相对位置增大所述初始值得到第一增量数值,包括:
确定所述编码块的预测编码模式是否为普通帧内预测模式;
若所述预测编码模式是普通帧内预测模式,则按照由左上至右下的顺序将所述扫描区域划分为第一区域数量的局部区域,并根据所述当前系数所在的局部区域增大所述初始值得到第一增量数值;
若所述预测编码模式不是普通帧内预测模式,则按照由左上至右下的顺序将所述扫描区域划分为第二区域数量的局部区域,并根据所述当前系数所在的局部区域增大所述初始值得到第一增量数值。
17.根据权利要求13所述的视频解码方法,其特征在于,所述根据所述编码块的扫描区域内已解码出的非零系数的统计信息以及所述第一增量数值确定第二增量数值,包括:
在所述扫描区域内已解码出的前m个非零系数中,统计系数绝对值大于所述系数绝对值阈值的统计数量,m为预设的整数;
根据所述统计数量增大所述第一增量数值得到第二增量数值。
18.根据权利要求1至10中任意一项所述的视频解码方法,其特征在于,所述方法应用于满足以下条件中的任意一个的编码块:
变换跳过模式的编码块;
图像级帧内预测变换跳过允许标志值为1的编码块;
图像级帧间预测变换跳过允许标志值为1的编码块;
图像级帧内预测变换跳过允许标志值和图像级帧间预测变换跳过允许标志值均为1的编码块;
所有编码块。
19.一种视频编码方法,其特征在于,包括:
在视频图像帧的编码块中确定待编码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;
获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;
根据所述当前系数绝对值与对应的系数绝对值阈值的大小关系,确定所述标志组合中的各个系数绝对值阈值标志的值,分别对所述标志组合中的各个系数绝对值阈值标志进行编码。
20.一种视频解码装置,其特征在于,包括:
当前系数确定模块,被配置为在视频图像帧的编码块中确定待解码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;
标志组合获取模块,被配置为获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;
标志解码模块,被配置为分别对所述标志组合中的各个系数绝对值阈值标志进行解码处理,得到所述各个系数绝对值阈值标志的取值;
系数绝对值确定模块,被配置为根据所述各个系数绝对值阈值标志的取值确定所述当前系数的系数绝对值。
21.一种视频编码装置,其特征在于,包括:
当前系数确定模块,被配置为在视频图像帧的编码块中确定待编码的当前系数绝对值,所述当前系数是在所述编码块的基于扫描区域的系数编码SRCC扫描区域内按照扫描顺序依次确定的非零系数;
标志组合获取模块,被配置为获取所述当前系数对应的标志组合,所述标志组合包括至少两个系数绝对值阈值标志,所述系数绝对值阈值标志用于表示所述当前系数的系数绝对值是否大于对应的系数绝对值阈值,所述标志组合中包括至少一个系数绝对值阈值大于2的系数绝对值阈值标志;
标志编码模块,被配置为根据所述当前系数绝对值与对应的系数绝对值阈值的大小关系,确定所述标志组合中的各个系数绝对值阈值标志的值,分别对所述标志组合中的各个系数绝对值阈值标志进行编码。
22.一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至19中任意一项所述的方法。
23.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至19中任意一项所述的方法。
CN202110194822.8A 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备 Active CN112995671B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202110194822.8A CN112995671B (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备
CN202211393946.XA CN116095329A (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备
EP21926374.6A EP4297402A4 (en) 2021-02-21 2021-12-10 VIDEO ENCODING AND DECODING METHOD, VIDEO ENCODING AND DECODING APPARATUS, COMPUTER-READABLE MEDIUM AND ELECTRONIC DEVICE
PCT/CN2021/137186 WO2022174660A1 (zh) 2021-02-21 2021-12-10 视频编解码方法、装置、计算机可读介质及电子设备
US17/992,361 US20230097724A1 (en) 2021-02-21 2022-11-22 Video encoding method and apparatus, video decoding method and apparatus, computer-readable medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110194822.8A CN112995671B (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211393946.XA Division CN116095329A (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备

Publications (2)

Publication Number Publication Date
CN112995671A true CN112995671A (zh) 2021-06-18
CN112995671B CN112995671B (zh) 2022-10-28

Family

ID=76394103

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110194822.8A Active CN112995671B (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备
CN202211393946.XA Pending CN116095329A (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211393946.XA Pending CN116095329A (zh) 2021-02-21 2021-02-21 视频编解码方法、装置、计算机可读介质及电子设备

Country Status (4)

Country Link
US (1) US20230097724A1 (zh)
EP (1) EP4297402A4 (zh)
CN (2) CN112995671B (zh)
WO (1) WO2022174660A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022174660A1 (zh) * 2021-02-21 2022-08-25 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备
WO2023138391A1 (zh) * 2022-01-19 2023-07-27 杭州海康威视数字技术股份有限公司 系数解码方法、装置、图像解码器及电子设备
TWI840086B (zh) 2022-01-19 2024-04-21 大陸商杭州海康威視數字技術股份有限公司 係數解碼方法、裝置、圖像解碼器及電子設備

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090099236A (ko) * 2008-03-17 2009-09-22 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
CN107749992A (zh) * 2012-06-22 2018-03-02 威勒斯媒体国际有限公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编解码装置
WO2019045538A1 (ko) * 2017-09-04 2019-03-07 삼성전자 주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN110708552A (zh) * 2019-08-27 2020-01-17 杭州海康威视数字技术股份有限公司 解码方法、编码方法及装置
CN110944173A (zh) * 2018-09-24 2020-03-31 腾讯美国有限责任公司 视频解码方法、装置、电子设备以及存储介质
US20200252616A1 (en) * 2018-09-20 2020-08-06 Lg Electronics Inc. Conversion factor level coding method and device therefor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
CN113810711B (zh) * 2016-04-29 2024-05-10 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
WO2020006338A1 (en) * 2018-06-29 2020-01-02 Interdigital Vc Holdings, Inc. Method and apparatus for video encoding and decoding based on adaptive coefficient group
WO2020007785A1 (en) * 2018-07-02 2020-01-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding of transform coefficients suitable for dependent scalar quantization
US11336918B2 (en) * 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
SG11202108108TA (en) * 2019-03-12 2021-09-29 Interdigital Vc Holdings Inc Flexible allocation of regular bins in residual coding for video coding
CN117834875A (zh) * 2019-06-14 2024-04-05 松下电器(美国)知识产权公司 编码装置、解码装置和非暂时性的计算机可读取介质
CN112995671B (zh) * 2021-02-21 2022-10-28 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090099236A (ko) * 2008-03-17 2009-09-22 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
CN107749992A (zh) * 2012-06-22 2018-03-02 威勒斯媒体国际有限公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编解码装置
WO2019045538A1 (ko) * 2017-09-04 2019-03-07 삼성전자 주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US20200252616A1 (en) * 2018-09-20 2020-08-06 Lg Electronics Inc. Conversion factor level coding method and device therefor
CN110944173A (zh) * 2018-09-24 2020-03-31 腾讯美国有限责任公司 视频解码方法、装置、电子设备以及存储介质
CN110708552A (zh) * 2019-08-27 2020-01-17 杭州海康威视数字技术股份有限公司 解码方法、编码方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022174660A1 (zh) * 2021-02-21 2022-08-25 腾讯科技(深圳)有限公司 视频编解码方法、装置、计算机可读介质及电子设备
WO2023138391A1 (zh) * 2022-01-19 2023-07-27 杭州海康威视数字技术股份有限公司 系数解码方法、装置、图像解码器及电子设备
TWI840086B (zh) 2022-01-19 2024-04-21 大陸商杭州海康威視數字技術股份有限公司 係數解碼方法、裝置、圖像解碼器及電子設備

Also Published As

Publication number Publication date
CN116095329A (zh) 2023-05-09
CN112995671B (zh) 2022-10-28
EP4297402A4 (en) 2024-05-29
US20230097724A1 (en) 2023-03-30
WO2022174660A1 (zh) 2022-08-25
EP4297402A1 (en) 2023-12-27

Similar Documents

Publication Publication Date Title
CN112533000B (zh) 视频解码方法、装置、计算机可读介质及电子设备
EP3306927A1 (en) Encoding and decoding methods and corresponding devices
CN112543338B (zh) 视频解码方法、装置、计算机可读介质及电子设备
CN112565751B (zh) 视频解码方法、装置、计算机可读介质及电子设备
US20230097724A1 (en) Video encoding method and apparatus, video decoding method and apparatus, computer-readable medium, and electronic device
CN112543337B (zh) 视频解码方法、装置、计算机可读介质及电子设备
CN113207002B (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN114513663A (zh) 视频解码方法、装置及电子设备
CN114079773B (zh) 视频解码方法、装置、计算机可读介质及电子设备
US20230082386A1 (en) Video encoding method and apparatus, video decoding method and apparatus, computer-readable medium, and electronic device
CN114079772B (zh) 视频解码方法、装置、计算机可读介质及电子设备
WO2022174638A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
US20230104359A1 (en) Video encoding method and apparatus, video decoding method and apparatus, computer-readable medium, and electronic device
WO2022116854A1 (zh) 视频解码方法、装置、可读介质、电子设备及程序产品
CN114979656A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN116456086A (zh) 环路滤波方法、视频编解码方法、装置、介质及电子设备
CN115209146A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN115209141A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN117834894A (zh) 视频编解码方法、装置、介质及电子设备
CN115086654A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
KR20210002506A (ko) 비디오의 인코딩 및 디코딩

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: 40046827

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant