CN112449186A - 编码方法、解码方法、相应的装置、电子设备及存储介质 - Google Patents

编码方法、解码方法、相应的装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112449186A
CN112449186A CN201910818575.7A CN201910818575A CN112449186A CN 112449186 A CN112449186 A CN 112449186A CN 201910818575 A CN201910818575 A CN 201910818575A CN 112449186 A CN112449186 A CN 112449186A
Authority
CN
China
Prior art keywords
block
context
coded
identification
identification information
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
CN201910818575.7A
Other languages
English (en)
Other versions
CN112449186B (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.)
Peking University
Tencent Technology Shenzhen Co Ltd
Original Assignee
Peking University
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 Peking University, Tencent Technology Shenzhen Co Ltd filed Critical Peking University
Priority to CN201910818575.7A priority Critical patent/CN112449186B/zh
Publication of CN112449186A publication Critical patent/CN112449186A/zh
Application granted granted Critical
Publication of CN112449186B publication Critical patent/CN112449186B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/93Run-length coding

Landscapes

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

Abstract

本申请实施例涉及编解码技术领域,公开了一种编码方法、解码方法、相应的装置、电子设备及存储介质,其中,编码方法包括:根据待编码块的所有量化系数,确定待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的所有量化系数均为非零系数,第二标识用于标识待编码块的所有量化系数中存在零系数;接着确定标识信息的上下文,并根据标识信息的上下文对标识信息进行编码;若标识信息为第一标识,则对待编码块的每个量化系数的值level进行编码;若标识信息为第二标识,则对待编码块的每个非零系数的游程run和level进行编码。通过本申请实施例提供的方法,能够有效节省码流。

Description

编码方法、解码方法、相应的装置、电子设备及存储介质
技术领域
本申请实施例涉及编解码技术领域,具体而言,本申请涉及一种编码方法、解码方法、相应的装置、电子设备及存储介质。
背景技术
目前的视频标准中,常采用的run-level的系数编码方式,是将每一个非零系数必须与其前的联系零系数绑定编码,即使此前的零系数为0,也需要对run进行编码才能在解码端找到对应的系数位置。如图1所示的run-level系数编码示意图中,编码块中的系数是以一定的扫描顺序进行编码的,如图1中所示的由左至右的扫描顺序,具体地,在进行编码时,非零系数的level与其前面的连续零系数个数run一起编码,直到编码到最后一个非零系数,由last_flag标识,Last_flag之后的零系数均不再编码,解码端也同样填充零系数即可,如对于图1中的第一个非零系数,其level的取值为5,对应的run为0,则在该系数进行编码时,需要对该系数的level取值和对应的run值一起编码。最后,再针对每一个非零系数的符号进行编码,即系数为正,sign_flag=1;系数为负,sign_flag为0。通过以上流程,将编码块中的每一个系数进行逐一编码。
可见,现有的run-level编码方案中,每一个非零系数的level编码之前必须先编码其对应的run值,即使该run值为0也必须要进行编码。该编码方式虽然可以保证每一个系数都能在解码端对应的位置正确解码,但是在某些情况下仍存在一些冗余。对于一个N*N’大小的编码块,如图2所示,其中1表示非零系数,此时编码块中的每一个系数均为非零系数,按照现有编码方式,则需要额外编码多个值为0的run,即即使该run值为0也必须要进行编码,而这时候的run值并不能传递有用信息,造成编码冗余。
发明内容
本申请实施例的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
一方面,提供了一种编码方法,包括:
根据待编码块的量化系数,确定待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
确定标识信息的上下文,并根据标识信息的上下文对标识信息进行编码;
若标识信息为第一标识,则对待编码块的每个量化系数的值level进行编码;
若标识信息为第二标识,则对待编码块的每个非零系数的游程run和level进行编码。
一方面,提供了一种解码方法,包括:
确定待解码块的标识信息的上下文;
根据标识信息的上下文对解码块的编码码流进行解码,得到待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
若标识信息为第一标识,则确定待解码块的量化系数的游程run为零,对编码码流中每个量化系数的level所对应的码流数据进行解码,得到每个量化系数的level;
若标识为第二标识,则对编码码流中每个量化系数的run和level所对应的码流数据分别进行解码,得到每个量化系数的run和level。
在一种可能的实现方式中,待解码块为满足预设条件的编码块。
在一种可能的实现方式中,预设条件包括以下至少一项:
解码块大小不大于设定值;
解码块所对应视频类型为指定类型。
在一种可能的实现方式中,还包括:
获取待解码块的相关信息;
基于相关信息,确定设定值。
在一种可能的实现方式中,相关信息包括解码块大小或解码块所对应的视频的相关信息。
在一种可能的实现方式中,确定待解码块的标识信息的上下文,包括:
根据待解码块的关联解码块的解码参数信息、以及待解码块的块类型,确定标识信息的上下文;
其中,关联解码块是已解码完成的解码块,上下文是解码参数信息和块类型设计的,块类型为亮度编码块或色度编码块。
在一种可能的实现方式中,根据待解码块的关联解码块的解码参数信息、以及块类型,确定标识信息的上下文,包括:
根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于解码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。
在一种可能的实现方式中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于解码参数信息配置的,索引号确定策略是基于块类型确定的;
根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,包括:
根据解码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
在一种可能的实现方式中,关联解码块包括以下至少一项:
与待解码块直接相邻的至少一个已解码块;
与待解码块间接相邻的至少一个已解码块。
在一种可能的实现方式中,关联解码块包括待解码块的上方相邻的已解码块和左侧相邻的已解码块。
在一种可能的实现方式中,解码参数信息包括关联解码块的量化系数信息、关联解码块的标识信息、或关联解码块的块类型信息中的至少一项。
在一种可能的实现方式中,在完成对待解码块的解码后,该方法还包括:
根据待解码块的解码结果,对上下文进行更新。
一方面,提供了一种编码装置,包括:
块标识确定模块,用于根据待编码块的量化系数,确定待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
编码模块,用于确定标识信息的上下文,并根据标识信息的上下文对标识信息进行编码;
编码模块,还用于当标识信息为第一标识时,对待编码块的每个量化系数的值level进行编码;当标识信息为第二标识时,对待编码块的每个非零系数的游程run和level进行编码。
在一种可能的实现方式中,待编码块为满足预设条件的编码块。
在一种可能的实现方式中,预设条件包括以下至少一项:
编码块大小不大于设定值;
编码块所对应视频类型为指定类型。
在一种可能的实现方式中,该装置还包括:第一处理模块;
第一处理模块用于获取待编码块的相关信息;基于相关信息,确定设定值。
在一种可能的实现方式中,相关信息包括编码块大小或编码块所对应的视频的相关信息。
在一种可能的实现方式中,编码模块在确定标识信息的上下文时,具体用于:
根据待编码块的关联编码块的编码参数信息、以及待编码块的块类型,确定标识信息的上下文;
其中,关联编码块是已编码完成的编码块,上下文是编码参数信息和块类型设计的,块类型为亮度编码块或色度编码块。
在一种可能的实现方式中,编码模块在根据待编码块的关联编码块的编码参数信息、以及块类型,确定标识信息的上下文时,具体用于:
根据编码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于编码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。
在一种可能的实现方式中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于编码参数信息配置的,索引号确定策略是基于块类型确定的;
编码模块在根据编码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号时,具体用于:
根据编码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
在一种可能的实现方式中,关联编码块包括以下至少一项:
与待编码块直接相邻的至少一个已编码块;
与待编码块间接相邻的至少一个已编码块。
在一种可能的实现方式中,关联编码块包括待编码块的上方相邻的已编码块和左侧相邻的已编码块。
在一种可能的实现方式中,编码参数信息包括关联编码块的量化系数信息、关联编码块的标识信息、或关联编码块的块类型信息中的至少一项。
在一种可能的实现方式中,该装置还包括第一更新模块;
第一更新模块,用于根据待编码块的编码结果,对上下文进行更新。
一方面,提供了一种解码装置,包括:
上下文确定模块,确定待解码块的标识信息的上下文;
解码模块,用于根据标识信息的上下文对解码块的编码码流进行解码,得到待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
解码模块,还用于当标识信息为第一标识时,确定待解码块的量化系数的游程run为零,对编码码流中每个量化系数的level所对应的码流数据进行解码,得到每个量化系数的level;当标识为第二标识时,对编码码流中每个量化系数的run和level所对应的码流数据分别进行解码,得到每个量化系数的run和level。
在一种可能的实现方式中,待解码块为满足预设条件的编码块。
在一种可能的实现方式中,预设条件包括以下至少一项:
解码块大小不大于设定值;
解码块所对应视频类型为指定类型。
在一种可能的实现方式中,还包括第二处理模块:
第二处理模块,用于获取待解码块的相关信息;基于相关信息,确定设定值。
在一种可能的实现方式中,相关信息包括解码块大小或解码块所对应的视频的相关信息。
在一种可能的实现方式中,上下文确定模块在确定待解码块的标识信息的上下文时,具体用于:
根据待解码块的关联解码块的解码参数信息、以及待解码块的块类型,确定标识信息的上下文;
其中,关联解码块是已解码完成的解码块,上下文是解码参数信息和块类型设计的,块类型为亮度解码块或色度解码块。
在一种可能的实现方式中,上下文确定模块在根据待解码块的关联解码块的解码参数信息、以及块类型,确定标识信息的上下文时,具体用于:
根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于解码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。
在一种可能的实现方式中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于解码参数信息配置的,索引号确定策略是基于块类型确定的;
上下文确定模块在确定待解码块的标识信息的上下文根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号时,具体用于:
根据解码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
在一种可能的实现方式中,关联解码块包括以下至少一项:
与待解码块直接相邻的至少一个已解码块;
与待解码块间接相邻的至少一个已解码块。
在一种可能的实现方式中,关联解码块包括待解码块的上方相邻的已解码块和左侧相邻的已解码块。
在一种可能的实现方式中,解码参数信息包括关联解码块的量化系数信息、关联解码块的标识信息、或关联解码块的块类型信息中的至少一项。
在一种可能的实现方式中,在完成对待解码块的解码后,该方法还包括第二更新模块;
第二更新模块,用于根据待解码块的解码结果,对上下文进行更新。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的方法。
本申请实施例提供的编码方法,设计了新的语法元素即待编码块的标识信息来标记当前块的所有系数是否是均为非零系数,如果是则针对当前块跳过相应的run编码,该方案对于所有系数均为非零系数的编码,可以省掉每个非零系数对应的run的编码,相应的,解码端可以通过当前块的标识信息的值推测出来当前块是否存在run编码,能够有效节省比特、节省码流,尤其是在高码率情况下非常有效。将本申请实施例所提供的方案应用于视频编码中,可以有效提高视频标准的压缩效率。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了一种现有编码方式的示意图;
图2示出了一种编码块的量化系数的示意图;
图3为本申请实施例的编码方法的流程示意图;
图4示出了本申请一示例中一种待编码块的上下文设计时采用的参考信息的示意图;
图5示出了本申请一示例中一种上下文的索引号的示意图;
图6示出了本申请实施例提供的一种解码方法的流程示意图;
图7示出了本申请实施例提供的一种编码装置的结构示意图;
图8示出了本申请实施例提供的一种解码装置的结构示意图;
图9示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为了更加清楚的说明本申请实施例所提供的方案,下面首先对本申请实施例中所涉及的一些技术名词进行介绍和解释:
熵编码:一种数据压缩的方法,是视频编码过程实现信息压缩的关键模块。熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。
语法元素:表示在视频编码中需要编码并传进码流的信息,语法元素为熵编码的输入数据,语法元素包括量化系数(即经过变换和量化的残差系数)、各种编码参数等。
Run-level编码:即游程编码,一种系数编码方式,其中,Run表示非零系数之前的连续零系数个数,Level表示非零系数的幅值大小。
上下文缓存(buffer):一种存储着信号(即需要编码的语法元素)概率的buffer,熵编码过程中,每个语法元素读写对应的buffer中的信息,进行计算和更新。对于编解码方案,可以通过开辟了一个buffer来存储语法元素对应的一些信息,比如它可能在编码过程中需要这个信号的概率或者这个信号的值(是大信号还是小信号),类似存储着这样的信息。编码过程中开辟了一个buffer,这个buffer中存储的是待编码的语法元素对应的一些信息,比如在编码过程中需要这个信号的概率或者这个信号的值(是大信号还是小信号)等,例如,MPS(Most Probability Symbol,最大概率符号)、LPS(Least ProbabilitySymbol,最小概率符号)等。本申请实施例的方案中设计了新的语法元素即编码块的标识信息,因此,需要设计相应的上下文,该语法元素的上下文对应存储于该语法元素对应的上下文buffer中。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请一个实施例提供了一种编码方法,该方法由计算机设备执行,该计算机设备可以是终端或者服务器。终端可以是台式设备或者移动终端。服务器可以是独立的物理服务器、物理服务器集群或者虚拟服务器。如图3所示,该方法包括:
步骤S310,根据待编码块的量化系数,确定待编码块的标识信息。
具体地,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数。换言之,当待编码块的量化系数均为非零系数时,将标识信息确定为第一标识,当待编码块的量化系数中存在零系数时,将标识信息确定为第二标识。
为了描述方便,在下文描述中可以将待编码块简称为当前块,将待编码块的标识信息简记为no_run_flag,其中,no_run_flag=1代表标识信息为第一标识,no_run_flag=0代表标识信息为第二标识。
作为一示例,对于图2中所示的编码块,该编码块的量化系数均为非零系数,此时该编码块的no_run_flag=1。
步骤S320,确定标识信息的上下文,并根据标识信息的上下文对标识信息进行编码。
具体地,上下文是语法元素的核心。编码块的标识信息作为本申请实施例所提出的一种新的语法元素,为了实现对该语法元素的编码,就需要为该语法元素设计相应的上下文,以根据该标识信息的上下文对该标识信息进行编码。标识信息的上下文可以根据实际需求配置,本申请实施例对该标识信息的上下文的具体配置方式不做限定。
步骤S330,若标识信息为第一标识,则对待编码块的每个量化系数的值level进行编码;若标识信息为第二标识,则对待编码块的每个非零系数的游程run和level进行编码。
具体地,在no_run_flag=1时,则说明待编码块的所有量化系数均为非零系数,即所有量化系数的level的取值均为非零,每个量化系数所对应的run均为0,这些run并不能够传递有用信息,造成编码冗余。因此,在待编码块的所有量化系数均为非零系数时,则可以不对量化系数的run进行编码,即对于所有的非零系数,可以省去其各自的run编码,只对相应的level进行编码,大大节省了码流。在待编码块的标识信息为第二标识时,则说明所有量化系数中存在零系数,此时,则对待编码块的每个非零系数的run和level进行编码。
本申请实施例提供的编码方法,设计了新的语法元素即待编码块的标识信息来标记当前块的所有系数是否是均为非零系数,如果是则针对当前块跳过相应的run编码,该方案对于所有系数均为非零系数的编码,可以省掉每个非零系数对应的run的编码,相应的,解码端可以通过当前块的标识信息的值推测出来当前块是否存在run编码,能够有效节省比特、节省码流,尤其是在高码率情况下非常有效。将本申请实施例所提供的方案应用于视频编码中,可以有效提高视频标准的压缩效率。
在本申请实施例的一种可能的实现方式中,待编码块为满足预设条件的编码块。其中,预设条件包括以下至少一项:编码块大小不大于设定值;编码块所对应视频类型为指定类型。
具体地,在待编码块进行编码之前,可以先确定待编码块是否满足预设条件,比如确定待编码块的大小是否不大于设定值(比如64),又比如确定待编码块所对应视频类型是否为指定的视频类型,其中,视频类型会影响编码块的纹理的复杂程度、编码块横向或纵向运动趋势等。如果待编码块满足预设条件,则可以采用该方法进行编码处理,如果待编码块不满足预设条件,则可以采用现有其他编码方法进行编码处理。
在实际应用中,设定值的具体取值是可以根据实际需要预先配置的,也可以是根据获取的待编码块的相关信息确定的,其中,相关信息包括编码块大小或待编码块所对应的视频的相关信息,视频的相关信息可以是视频类型、视频格式等。通常在视频编码中,编码块大小或待编码块所对应的视频的相关信息,均会影响编码块的量化系数的非零值情况。例如,如果编码块比较大,则表示当前块纹理比较简单,那么经过变换量化之后,非零系数主要集中在编码块的左上角部分,不太可能出现量化系数全部非零的情况。又例如,不同视频类型的编码块,会在不同编码块大小下出现量化系数全部非零值。因此,可以根据需要预先指定设定值,或者根据编码块大小、待编码块所对应的视频的相关信息等,确定相应的设定值。
在实际应用中,可以将编码块的大小表示为width*height,其中,width表示编码块的宽度,height表示编码块的高度。若将编码块的大小表示为width*heigh,则编码块的量化系数的个数为width*heigh。当设定值为64时,则要求width*heigh的值小于等于64。
换言之,对于一待编码块,由于编码块大小、编码块的纹理信息的复杂度等信息的不同,该待编码块中出现连续非零系数的概率、连续非零系数的个数也都可能不同,因此,为了进一步提高编码效果,可以根据待编码块的相关信息,来动态确定设定值,以更好的适应各种不同的编码块。
也就是说,在no_run_flag的确定过程中,设定值可以是更大的取值或者更小的取值,也可以根据视频类型(纹理复杂或者简单,块的大小等),自适应的调整设定值。
下面以设定值为64,编码块的大小为width*height为例,提供一种确定编码块的标识信息的逻辑代码:
Figure BDA0002186928490000121
上述逻辑代码中,scanPos()表示量化系数的扫描顺序函数,规定了当前块的扫描顺序。coeff[]表示存储当前块的系数的数组。width和height的值分别表示编码块的宽和高,二者不一定相等。
上述逻辑代码则可以解读为:no_run_flag的初始值为0,如果待编码块的所有量化系数中存在零系数,即if(coeff[pos]==0),则no_run_flag=0,反之,no_run_flag=1。
下面示出了本申请实施例提供的一种在待编码块的no_run_flag=1时,部分编码流程的逻辑代码:
Figure BDA0002186928490000122
Figure BDA0002186928490000131
该段逻辑代码则可以解读为:先确定待编码块的大小是否小于或等于设定值,如果小于设定值,则:基于对待编码块的标识信息的上下文对标识信息进行编码(即Encode_bin(no_run_flag,ctx)),其中,该处的ctx表示标识信息的上下文,之后扫描量化系数,在no_run_flag为1时,不对量化系数的run编码,只对量化系数的level编码(即Encode_bin(level,ctx_level)),ctx_level表示level的上下文;在no_run_flag为0时,先针对每个量化系数进行run编码,再针对每个量化系数进行level编码。
在一种可能的实现方式中,确定标识信息的上下文,包括:
根据待编码块的关联编码块的编码参数信息、以及待编码块的块类型,确定标识信息的上下文;
其中,关联编码块是已编码完成的编码块,上下文是根据编码参数信息和块类型设计的,块类型为亮度编码块或色度编码块。
由前文的描述可知,上下文是语法元素的核心,而合理的上下文设计可以进一步提升压缩效率,因为上下文揭示了信号之间的相关性,使用与该信号相关性强的信息来编码信号,比使用与该信号相关性弱或不相关的信息进行编码,编码效果要突出很多。与现有语法元素的上下文设计原理类似,本申请实施例的编码块的标识信息的上下文的设计,也是在已经编码完成的信息中寻找与当前信号比较相关的信息,即根据与待编码块关联的、且已编码完成的编码块的编码参数信息,来设计no_run_flag的上下文。另外,由于编码块按照颜色通道可以对应有亮度块和色度块,因此,在设计上下文时,还需要考虑待编码块的类型,即待编码块是亮度块,还是色度块。
在实际应用中,具体选用关联编码块以及选用关联编码块的哪些编码参数信息,可以根据实际需求选择,本申请实施例不做限定。
作为一可选方案关联编码块包括以下至少一项:
与待编码块直接相邻的至少一个已编码块;
与待编码块间接相邻的至少一个已编码块。
例如,如图4中所示的一示例,关联编码块可以选用待编码块的上方相邻的已编码块和左侧相邻的已编码块。
作为一可选方案,该编码参数信息可以包括但不限于已编码块的量化系数信息、已编码块的标识信息、或已编码块的块类型信息中的至少一项。
如图4中所示的示例,在关联编码块为待编码块的上方相邻的已编码块和左侧相邻的已编码块时,编码参数信息可以包括上方相邻的已编码块的标识信息(图中所示的no_run_flag_A)和非零系数的个数NumA,以及左侧相邻的已编码块的标识信息(图中所示的no_run_flag_L)和非零系数的个数NumL。
需要说明的是,对于标识信息的上下文设计部分,参考左块(左侧相邻的编码块)和上块(上方相邻的块)只是其中一种示例,在实际应用中,还可以参考更多的左边的块、上边的块、左上方的块等,还可以对参考块的大小进行限制等。也就是说,可以根据需求配置关联编码块的选用规则。
本申请的可选实施例中,根据待编码块的关联编码块的编码参数信息、以及块类型,确定标识信息的上下文,包括:
根据编码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于编码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。
在实际应用中,为了提升编码效果,减少冗余数据,对于一个语法元素,通常会设计多个上下文,此时,则会为每个上下文设置相应的索引号,在确定待编码块的上下文时,则可以根据关联编码块的参数信息和块类型,以及上下文的设计规则(即上下文的索引号确定策略),确定出所需要采用的上下文的索引号,从而根据索引号确定出编码时所选用的上下文。
本申请的可选实施例中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于编码参数信息配置的,索引号确定策略是基于块类型确定的;
根据编码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,包括:
根据编码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
具体的,在设计上下文时,会根据不同的块类型即颜色通道信息,设计不同的上下文,即分别设计对应于亮度(Luma)分量的上下文和对应于色度(Chroma)分量的上下文。作为一种可选方案,则可以首先确定出索引号的偏移,再根据待编码块的类型和该偏移,确定出最终的上下文。
可以理解的是,上述索引号的偏移指的是相对于Luma分量的上下文的起始索引号的偏移,或者是相对于Chroma分量的上下文的起始索引号的偏移。作为一示例,假设上下文个数设计为6个,其中包括Luma分量3个,chroma分量3个,上下文的索引号取值为0~5,其中,0~2对应于Luma分量,3~5对应于chroma分量,则偏移是相对于索引号0或索引号3的偏移。
下面结合一个示例,对本申请实施例提供的no_run_flag的上下文的设计原理进行说明。可以理解的是,该示例中的上下文的个数,以及索引号的推导也只是一种示例,在实际应用中,可以根据实际需求增加或者减少上下文个数,同时也可以改变上下文的索引号的推导方式,该示例并不构成对本申请方案的限定。
本示例中,在设计no_run_flag的上下文时,主要参考的信息有:当前块的上面的已经编码的块(对于编码过程而言)/已解码的块(对于解码过程而言),以及当前块的左边的已经编码的块/已经解码的块,二者的块标识信息的属性no_run_flag_A和no_run_flag_L,以及非零系数的个数NumA和NumL。上下文个数设计为6个,其中包括Luma分量3个,chroma分量3个,6个上下文的索引号取值为0~5,0~2对应于Luma分量,3~5对应于chroma分量。
本示例中待编码块上下文的推导流程如下:
逻辑表达式(1):
int offset=(NA<=Ncur&&NL<=Ncur&&no_run_flag_L==1&&no_run_flag_A==1)?0:(NA<=Ncur&&NL<=Ncur&&no_run_flag_L==0&&no_run_flag_A==0)?1:2;
逻辑表达式(2):ctx_Idx=offset+(ch_type==luma)?0:3
其中,上述逻辑表达式(1)为确定索引号偏移offset的表达式,即本示例中的索引号偏移确定策略;上述逻辑表达式(2)为确定上下文的索引号ctx_Idx的表达式,即本示例中的索引号确定策略。
逻辑表达式(1)具体可以解读为:如果当前块上方的已编码块(简称为上方已编码块)的大小小于或等于当前块的大小(即NA<=Ncur,NA表示上方已编码块的大小,Ncur表示当前块的大小),并且当前块左侧的已编码块(简称为左侧已编码块)的大小小于或等于当前块的大小(即NL<=Ncur,NL表示上方已编码块的大小),并且当前块上方的已编码块(简称为上方已编码块)的标识信息为1、且当前块左侧的已编码块(简称为左侧已编码块))的标识信息为1(即no_run_flag_L==1&&no_run_flag_A==1),则offset=0,否则,offset=(NA<=Ncur&&NL<=Ncur&&no_run_flag_L==0&&no_run_flag_A==0)?1:2,具体含义为:如果上方已编码块的大小小于或等于当前块的大小,并且左侧已编码块的大小小于或等于当前块的大小,并且上方已编码块的标识信息0,并且左侧已编码块的标识信息为0,则offset=1,否则offset=2。
逻辑表达式(2)具体可以解读为:如果当前待编码块为亮度块即ch_type==luma,则上下文的索引号ctx_Idx=offset,否则,ctx_Idx=offset+3,也就是说,对于亮度块,上下文的索引号即为偏移,对于色度块,上下文的索引号为偏移加上3(所设计的对应于亮度分量的上下文的数量)。
如图5中所示的示意图,假设基于上述逻辑表达式(1)确定出的offset=1,当前块为亮度块,则基于逻辑表达式(2)可以确定出当前块的标识信息的上下文的索引号ctx_Idx=1,如图5中所示,则可以基于确定出的下文索引号在用于存储块标识信息的下文buffer中查找到相应的上下文。
本申请的可选实施例中,在完成对待编码块的编码后,该方法还包括:根据待编码块的编码结果,对上下文进行更新。
为了使不同待编码块的标识信息的上下文能够根据环境的不同而改变,在每次完成一个待编码块的编码后,可以根据其编码结果,对所使用的标识信息的上下文进行更新。例如,当前待编码块所选用的标识信息的上下文为索引号为1的上下文(简称为1号上下文),则在完成对当前待编码块的编码之后,需要把标识信息的上下文buffer中该索引号对应的上下文的信息进行更新,在对下一个待编码块进行编码时,如果此时该块所选择的标识信息的上下文也是1号上下文,那此时所使用的信息就是更新后的上下文信息了。
对应于图3中所示的编码方法,本申请实施例相应提供了一种解码方法,如图6中所示,该解码方法主要包括以下步骤:
步骤S610,确定待解码块的标识信息的上下文.
步骤S620,根据标识信息的上下文对解码块的编码码流进行解码,得到待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
步骤S630,若标识信息为第一标识,则确定待解码块的量化系数的游程run为零,对编码码流中每个量化系数的level所对应的码流数据进行解码,得到每个量化系数的level;若标识为第二标识,则对编码码流中每个量化系数的run和level所对应的编码码流数据分别进行解码,得到每个量化系数的run和level。
本申请所提供的该解码方法,是与本申请所提供的编码方法相对应的解码方法,该解码方法的具体实现是对于上述编码处理方式的反向处理,即解码方法中的处理步骤是对上述编码中相应处理步骤的反向处理,将编码后的信息解码为编码前的信息,因此,可以理解的是,解码方法中的处理步骤是与编码方法中的步骤相对应的,编码方法中相应步骤的具体描述可以参见前文中编码部分的相应描述。
例如,对于相对应的待编码块和待解码块,在编码和解码时所采用的上下文是相同,如编码端使用了索引号为1的上下文,那解码端也同样使用索引号为1的上下文,只要编码端与解码端是匹配的,才能够实现信息的还原。也就是说,编码端与解码端都是需要相同的语法元素的上下文,因为只有相同的语法元素的相同上下文,采用相同的更新、计算规则,才能够实现正确的解码。
下面示出了本申请实施例提供的一种在待解码块的no_run_flag=1时,部分解码流程的逻辑代码:
Figure BDA0002186928490000181
其中,上述代码中,先确定待解码块的大小是否小于或等于设定值,如果小于设定值,则执行相应的解码流程(即No_run_flag=Decode_bin(&str,ctx))。Str表示编码码流,因为编码端编码一个语法元素会生成一段二进制串,这个二进制串要写到编码码流中,这个编码码流是解码端的输入,解码端通过这个输入读取这个输入的编码码流的码流串,然后就可以在对应位置找到对应的语法元素的编码得到的值,再将编码得到的值解码出来。符号“&”表示读取编码码流的地址的操作。
该段逻辑代码则可以解读为:通过对编码码流即待解码块进行解码,确定出块的标识信息,即Decode_bin(&str,ctx),该处的ctx即为待解码块的标识信息的上下文,可以理解的是,对于同一块而言,编码和解码时的上下文是相同的。在解码出待解码块的标识信息no_run_flag之后,即可基于no_run_flag进行下一步解码。如上述代码中所示,在no_run_flag=1时,当前解码块的所有量化系数均为非零值,则当前解码块对应的run为0,即上述的If(no_run_flag==1)run=0,随后进行level解码,即level=Decode_bin(&str,ctx_level);如果当前解码块的所有量化系数存在零值,则根据run的上下文进行对应的run的解码,即run=Decode_bin(&str,ctx_run),随后进行level解码,即level=Decode_bin(&str,ctx_level)。
本申请的可选实施例中待解码块为满足预设条件的编码块。
本申请的可选实施例中,预设条件包括以下至少一项:
解码块大小不大于设定值;
解码块所对应视频类型为指定类型。
本申请的可选实施例中,还包括:
获取待解码块的相关信息;
基于相关信息,确定设定值。
本申请的可选实施例中,相关信息包括解码块大小或解码块所对应的视频的相关信息。
本申请的可选实施例中,确定待解码块的标识信息的上下文,包括:
根据待解码块的关联解码块的解码参数信息、以及待解码块的块类型,确定标识信息的上下文;
其中,关联解码块是已解码完成的解码块,上下文是解码参数信息和块类型设计的,块类型为亮度解码块或色度解码块。
本申请的可选实施例中,根据待解码块的关联解码块的解码参数信息、以及块类型,确定标识信息的上下文,包括:
根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于解码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。本申请的可选实施例中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于解码参数信息配置的,索引号确定策略是基于块类型确定的;
根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,包括:
根据解码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
本申请的可选实施例中,关联解码块包括以下至少一项:
与待解码块直接相邻的至少一个已解码块;
与待解码块间接相邻的至少一个已解码块。
本申请的可选实施例中,关联解码块包括待解码块的上方相邻的已解码块和左侧相邻的已解码块。
本申请的可选实施例中,解码参数信息包括关联解码块的量化系数信息、关联解码块的标识信息、或关联解码块的块类型信息中的至少一项。
本申请的可选实施例中,在完成对待编码块的解码之后,该方法还包括:
根据待编码块的解码结果,对解码时所选用的标识信息的上下文进行更新。
对应于图3中所示的编码方法,本申请实施例还提供了一种编码装置,如图7所示,该编码装置700可以包括块标识确定模块710和编码模块720,其中:
块标识确定模块710,用于根据待编码块的量化系数,确定待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
编码模块720,用于确定标识信息的上下文,并根据标识信息的上下文对标识信息进行编码;
编码模块720,还用于当标识信息为第一标识时,对待编码块的的每个量化系数的值level进行编码;当标识信息为第二标识时,对待编码块的每个非零系数的游程run和level进行编码。
在一种可能的实现方式中,待编码块为满足预设条件的编码块。
在一种可能的实现方式中,预设条件包括以下至少一项:
编码块大小不大于设定值;
编码块所对应视频类型为指定类型。
在一种可能的实现方式中,该装置还包括:第一处理模块;
第一处理模块用于获取待编码块的相关信息;基于相关信息,确定设定值。
在一种可能的实现方式中,相关信息包括编码块大小或编码块所对应的视频的相关信息。
在一种可能的实现方式中,编码模块在确定标识信息的上下文时,具体用于:
根据待编码块的关联编码块的编码参数信息、以及待编码块的块类型,确定标识信息的上下文;
其中,关联编码块是已编码完成的编码块,标识信息的上下文是根据编码参数信息和块类型设计的,块类型为亮度编码块或色度编码块。
在一种可能的实现方式中,编码模块在根据待编码块的关联编码块的编码参数信息、以及块类型,确定标识信息的上下文时,具体用于:
根据编码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于编码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。
在一种可能的实现方式中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于编码参数信息配置的,索引号确定策略是基于块类型确定的;
编码模块在根据编码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号时,具体用于:
根据编码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
在一种可能的实现方式中,关联编码块包括以下至少一项:
与待编码块直接相邻的至少一个已编码块;
与待编码块间接相邻的至少一个已编码块。
在一种可能的实现方式中,关联编码块包括待编码块的上方相邻的已编码块和左侧相邻的已编码块。
在一种可能的实现方式中,编码参数信息包括关联编码块的量化系数信息、关联编码块的标识信息、或关联编码块的块类型信息中的至少一项。
在一种可能的实现方式中,该装置还包括第一更新模块;
第一更新模块,用于根据待编码块的编码结果,对上下文进行更新。
对应于图6中所示的解码方法,本申请实施例提供了一种解码装置,如图8中所示,该解码装置800可以包括上下文确定模块810和解码模块820。
上下文确定模块810,确定待解码块的标识信息的上下文;
解码模块820,用于根据标识信息的上下文对解码块的编码码流进行解码,得到待编码块的标识信息,标识信息为第一标识或第二标识,第一标识用于标识待编码块的量化系数均为非零系数,第二标识用于标识待编码块的量化系数中存在零系数;
解码模块820,还用于当标识信息为第一标识时,确定待解码块的量化系数的游程run为零,对编码码流中每个量化系数的level所对应的码流数据进行解码,得到每个量化系数的level;当标识为第二标识时,对编码码流中每个量化系数的run和level所对应的码流数据分别进行解码,得到每个量化系数的run和level。
在一种可能的实现方式中,待解码块为满足预设条件的编码块。
在一种可能的实现方式中,预设条件包括以下至少一项:
解码块大小不大于设定值;
解码块所对应视频类型为指定类型。
在一种可能的实现方式中,还包括第二处理模块:
第二处理模块,用于获取待解码块的相关信息;基于相关信息,确定设定值。
在一种可能的实现方式中,相关信息包括解码块大小或解码块所对应的视频的相关信息。
在一种可能的实现方式中,上下文确定模块在确定待解码块的标识信息的上下文时,具体用于:
根据待解码块的关联解码块的解码参数信息、以及待解码块的块类型,确定标识信息的上下文;
其中,关联解码块是已解码完成的解码块,上下文是解码参数信息和块类型设计的,块类型为亮度解码块或色度解码块。
在一种可能的实现方式中,上下文确定模块在根据待解码块的关联解码块的解码参数信息、以及块类型,确定标识信息的上下文时,具体用于:
根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,上下文的索引号确定策略是基于解码参数信息和块类型配置的;
根据索引号确定标识信息的上下文。
在一种可能的实现方式中,上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,索引号偏移确定策略是基于解码参数信息配置的,索引号确定策略是基于块类型确定的;
上下文确定模块在确定待解码块的标识信息的上下文根据解码参数信息和块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号时,具体用于:
根据解码参数信息和索引号偏移确定策略,确定上下文的索引号的偏移;
根据块类型和偏移,以及索引号确定策略,确定上下文的索引号。
在一种可能的实现方式中,关联解码块包括以下至少一项:
与待解码块直接相邻的至少一个已解码块;
与待解码块间接相邻的至少一个已解码块。
在一种可能的实现方式中,关联解码块包括待解码块的上方相邻的已解码块和左侧相邻的已解码块。
在一种可能的实现方式中,解码参数信息包括关联解码块的量化系数信息、关联解码块的标识信息、或关联解码块的块类型信息中的至少一项。
在一种可能的实现方式中,在完成对待解码块的解码后,该方法还包括第二更新模块;
第二更新模块,用于根据待解码块的解码结果,对上下文进行更新。
对于本领域技术人员而言清楚的是,由于本发明实施例所提供的装置(编码装置/解码装置)为可以执行本发明实施例中的相应的方法的装置,故而基于本发明实施例中所提供的方法,本领域所属技术人员能够了解本发明实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本发明实施例中的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中的方法所采用的装置,都属于本申请所欲保护的范围。
基于与本申请实施例所提供的编码方法或解码方法相同的原理,本申请实施例提供了一种电子设备,该电子设备包括存储器和处理器;
存储器中存储有计算机程序;
处理器,用于在运行计算机程序时执行本申请任一可选实施例中所示的编码方法或解码方法。
本申请实施例提供了一种计算机可读存储介质,该存储介质上用于存储计算机程序,计算机程序在处理器中运行时用于执行本申请任一可选实施例中所示的编码方法或解码方法。
图9中示出了本申请实施例所适用的一种电子设备的结构示意图,如图9所示,图9所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscReadOnly Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述任一方法实施例所示的方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (20)

1.一种编码方法,其特征在于,包括:
根据待编码块的量化系数,确定所述待编码块的标识信息,所述标识信息为第一标识或第二标识,所述第一标识用于标识所述待编码块的量化系数均为非零系数,所述第二标识用于标识所述待编码块的量化系数中存在零系数;
确定所述标识信息的上下文,并根据所述标识信息的上下文对所述标识信息进行编码;
若所述标识信息为第一标识,则对所述待编码块的每个量化系数的值level进行编码;
若所述标识信息为第二标识,则对所述待编码块的每个非零系数的游程run和值level进行编码。
2.根据权利要求1所述的方法,其特征在于,所述待编码块为满足预设条件的编码块。
3.根据权利要求2所述的方法,其特征在于,所述预设条件包括以下至少一项:
编码块大小不大于设定值;
编码块所对应视频类型为指定类型。
4.根据权利要求3所述的方法,其特征在于,还包括:
获取所述待编码块的相关信息;
基于所述相关信息,确定所述设定值。
5.根据权利要求4所述的方法,其特征在于,所述相关信息包括编码块大小或编码块所对应的视频的相关信息。
6.根据权利要求1所述的方法,其特征在于,所述确定所述标识信息的上下文,包括:
根据所述待编码块的关联编码块的编码参数信息、以及所述待编码块的块类型,确定所述标识信息的上下文;
其中,所述关联编码块是已编码完成的编码块,所述标识信息的上下文是根据所述编码参数信息和所述块类型设计的,所述块类型为亮度编码块或色度编码块。
7.根据权利要求6所述的方法,其特征在于,所述根据所述待编码块的关联编码块的编码参数信息、以及所述块类型,确定所述标识信息的上下文,包括:
根据所述编码参数信息和所述块类型,以及上下文的索引号确定策略,确定所述标识信息的上下文的索引号,所述上下文的索引号确定策略是基于所述编码参数信息和所述块类型配置的;
根据所述上下文的索引号确定所述标识信息的上下文。
8.根据权利要求7所述的方法,其特征在于,所述上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,所述索引号偏移确定策略是基于所述编码参数信息配置的,所述索引号确定策略是基于所述块类型确定的;
所述根据所述编码参数信息和所述块类型,以及上下文的索引号确定策略,确定所述标识信息的上下文的索引号,包括:
根据所述编码参数信息和所述索引号偏移确定策略,确定所述上下文的索引号的偏移;
根据所述块类型和所述偏移,以及所述索引号确定策略,确定所述上下文的索引号。
9.根据权利要求6所述的方法,其特征在于,所述关联编码块包括以下至少一项:
与所述待编码块直接相邻的至少一个已编码块;
与所述待编码块间接相邻的至少一个已编码块。
10.根据权利要求9所述的方法,其特征在于,所述关联编码块包括所述待编码块的上方相邻的已编码块和左侧相邻的已编码块。
11.根据权利要求6所述的方法,其特征在于,所述编码参数信息包括关联编码块的量化系数信息、关联编码块的标识信息、或关联编码块的块类型信息中的至少一项。
12.根据权利要求1至11中任一项所述的方法,其特征在于,在完成对所述待编码块的编码后,所述方法还包括:
根据所述待编码块的编码结果,对所述上下文进行更新。
13.一种解码方法,其特征在于,包括:
确定待解码块的标识信息的上下文;
根据所述标识信息的上下文对所述解码块的编码码流进行解码,得到所述待编码块的标识信息,所述标识信息为第一标识或第二标识,所述第一标识用于标识所述待编码块的量化系数均为非零系数,所述第二标识用于标识所述待编码块的量化系数中存在零系数;
若所述标识信息为第一标识,则确定所述待解码块的量化系数的游程run为零,对所述编码码流中每个量化系数的level所对应的码流数据进行解码,得到每个量化系数的level;
若所述标识为第二标识,则对所述编码码流中每个量化系数的run和level所对应的码流数据分别进行解码,得到每个量化系数的run和level。
14.根据权利要求13所述的方法,其特征在于,所述确定待解码块的标识信息的上下文,包括:
根据所述待解码块的关联解码块的解码参数信息、以及所述待解码块的块类型,确定标识信息的上下文;
其中,关联解码块是已解码完成的解码块,所述标识信息的上下文是根据解码参数信息和块类型设计的,所述块类型为亮度解码块或色度解码块。
15.根据权利要求14所述的方法,其特征在于,所述根据所述待解码块的关联解码块的解码参数信息、以及所述待解码块的块类型,确定标识信息的上下文,包括:
根据所述解码参数信息和所述块类型,以及上下文的索引号确定策略,确定标识信息的上下文的索引号,所述上下文的索引号确定策略是基于解码参数信息和块类型配置的;
根据所述上下文的索引号确定所述标识信息的上下文。
16.根据权利要求15所述的方法,其特征在于,所述上下文的索引号确定策略包括索引号偏移确定策略和索引号确定策略,其中,所述索引号偏移确定策略是基于所述解码参数信息配置的,所述索引号确定策略是基于所述块类型确定的;
所述根据所述解码参数信息和所述块类型,以及上下文的索引号确定策略,确定所述标识信息的上下文的索引号,包括:
根据所述解码参数信息和所述索引号偏移确定策略,确定所述上下文的索引号的偏移;
根据所述块类型和所述偏移,以及所述索引号确定策略,确定所述上下文的索引号。
17.一种编码装置,其特征在于,包括:
块标识确定模块,用于根据待编码块的量化系数,确定所述待编码块的标识信息,所述标识信息为第一标识或第二标识,所述第一标识用于标识所述待编码块的量化系数均为非零系数,所述第二标识用于标识所述待编码块的量化系数中存在零系数;
编码模块,用于确定所述标识信息的上下文,并根据所述标识信息的上下文对所述标识信息进行编码;
所述编码模块,还用于当所述标识信息为第一标识时,对所述待编码块的的每个量化系数的值level进行编码;当所述标识信息为第二标识时,对所述待编码块的每个非零系数的游程run和level进行编码。
18.一种解码装置,其特征在于,包括:
上下文确定模块,确定待解码块的标识信息的上下文;
解码模块,用于根据所述标识信息的上下文对所述解码块的编码码流进行解码,得到所述待编码块的标识信息,所述标识信息为第一标识或第二标识,所述第一标识用于标识所述待编码块的量化系数均为非零系数,所述第二标识用于标识所述待编码块的量化系数中存在零系数;
所述解码模块,还用于当所述标识信息为第一标识时,确定所述待解码块的量化系数的游程run为零,对所述编码码流中每个量化系数的level所对应的码流数据进行解码,得到每个量化系数的level;当所述标识为第二标识时,对所述编码码流中每个量化系数的run和level所对应的码流数据分别进行解码,得到每个量化系数的run和level。
19.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-16任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-16任一项所述的方法。
CN201910818575.7A 2019-08-30 2019-08-30 编码方法、解码方法、相应的装置、电子设备及存储介质 Active CN112449186B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910818575.7A CN112449186B (zh) 2019-08-30 2019-08-30 编码方法、解码方法、相应的装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910818575.7A CN112449186B (zh) 2019-08-30 2019-08-30 编码方法、解码方法、相应的装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112449186A true CN112449186A (zh) 2021-03-05
CN112449186B CN112449186B (zh) 2021-10-12

Family

ID=74733860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910818575.7A Active CN112449186B (zh) 2019-08-30 2019-08-30 编码方法、解码方法、相应的装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112449186B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023240662A1 (zh) * 2022-06-17 2023-12-21 Oppo广东移动通信有限公司 编解码方法、编码器、解码器以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005027521A1 (en) * 2003-09-18 2005-03-24 Institute Of Computing Technology Chinese Academy Of Sciences Entropy coding method for encoding remanet coefficient in video predicting
CN101198056A (zh) * 2006-12-05 2008-06-11 华为技术有限公司 变长编码方法及装置
WO2012012249A1 (en) * 2010-07-20 2012-01-26 Cisco Technology, Inc. Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks
CN103002275A (zh) * 2011-09-13 2013-03-27 富士通株式会社 用于cavlc编码的双系数扫描方法
CN103188486A (zh) * 2011-12-28 2013-07-03 联芯科技有限公司 H.263视频编码的可变长编码方法和系统
CN108259901A (zh) * 2013-01-16 2018-07-06 黑莓有限公司 用于对游长编码变换系数进行熵编码的上下文确定

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005027521A1 (en) * 2003-09-18 2005-03-24 Institute Of Computing Technology Chinese Academy Of Sciences Entropy coding method for encoding remanet coefficient in video predicting
CN101198056A (zh) * 2006-12-05 2008-06-11 华为技术有限公司 变长编码方法及装置
WO2012012249A1 (en) * 2010-07-20 2012-01-26 Cisco Technology, Inc. Video compression using multiple variable length coding methods for multiple types of transform coefficient blocks
CN103002275A (zh) * 2011-09-13 2013-03-27 富士通株式会社 用于cavlc编码的双系数扫描方法
CN103188486A (zh) * 2011-12-28 2013-07-03 联芯科技有限公司 H.263视频编码的可变长编码方法和系统
CN108259901A (zh) * 2013-01-16 2018-07-06 黑莓有限公司 用于对游长编码变换系数进行熵编码的上下文确定

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DETLEV MARPE: "Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *
高敏: "AVS2视频编码标准中熵编码模块的优化设计", 《智能计算机与应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023240662A1 (zh) * 2022-06-17 2023-12-21 Oppo广东移动通信有限公司 编解码方法、编码器、解码器以及存储介质

Also Published As

Publication number Publication date
CN112449186B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
US10103746B2 (en) Methods and devices for coding and decoding the position of the last significant coefficient
WO2020253828A1 (zh) 一种编解码方法、装置及存储介质
US10506234B2 (en) Method of run-length coding for palette predictor
US9794591B2 (en) Coding and decoding of transform skipped blocks
JP6352452B2 (ja) ビデオ符号化における構文の2値化とコンテキスト適応型符号化の方法と装置
US9521433B2 (en) Video encoding device, video decoding device, video encoding method, video decoding method, video encoding or decoding program
JP4313771B2 (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
US8401321B2 (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
US20190149824A1 (en) Method and Apparatus for Multi-Table Based Context Adaptive Binary Arithmetic Coding
EP3229473A1 (en) Methods and devices for coding and decoding the position of the last significant coefficient
CN101742330B (zh) 一种图像编码方法及装置
KR20120093067A (ko) 코딩되지 않은 구문에 대한 적응 확률 갱신을 위한 방법 및 장치
US20120134426A1 (en) Method and apparatus for reusing tree structures to encode and decode binary sets
US9356620B2 (en) Method for producing video coding and programme-product
CN112449186B (zh) 编码方法、解码方法、相应的装置、电子设备及存储介质
KR20060038189A (ko) 컨텍스트 기반 적응형 이진 산술 복부호화 방법 및 장치
CN110191341B (zh) 一种深度数据的编码方法和解码方法
CN112449201B (zh) 解码方法、编码方法、相应的装置、电子设备及存储介质
WO2023272533A1 (zh) 编解码方法、编码器、解码器以及存储介质
CN110545437B (zh) 系数编码、解码方法、电子设备及介质
CN114079774B (zh) 帧间预测信息的编解码方法及装置
WO2022217442A1 (zh) 系数编解码方法、编码器、解码器以及计算机存储介质
CN113766236A (zh) 解码方法、装置、设备及存储介质
TW202301873A (zh) 編解碼方法、碼流、編碼器、解碼器及電腦儲存媒介
JP2009239615A (ja) 復号装置、復号方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant