CN115460423A - 一种视频解码方法、装置、硬件解码器及存储介质 - Google Patents

一种视频解码方法、装置、硬件解码器及存储介质 Download PDF

Info

Publication number
CN115460423A
CN115460423A CN202211210856.2A CN202211210856A CN115460423A CN 115460423 A CN115460423 A CN 115460423A CN 202211210856 A CN202211210856 A CN 202211210856A CN 115460423 A CN115460423 A CN 115460423A
Authority
CN
China
Prior art keywords
syntax element
frame
slice
coding block
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211210856.2A
Other languages
English (en)
Inventor
剡辰
张德云
陈敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VeriSilicon Microelectronics Shanghai Co Ltd
VeriSilicon Microelectronics Chengdu Co Ltd
Original Assignee
VeriSilicon Microelectronics Shanghai Co Ltd
VeriSilicon Microelectronics Chengdu 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 VeriSilicon Microelectronics Shanghai Co Ltd, VeriSilicon Microelectronics Chengdu Co Ltd filed Critical VeriSilicon Microelectronics Shanghai Co Ltd
Priority to CN202211210856.2A priority Critical patent/CN115460423A/zh
Publication of CN115460423A publication Critical patent/CN115460423A/zh
Priority to US18/241,939 priority patent/US20240114171A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • 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)

Abstract

本申请提供一种视频解码方法、装置、硬件解码器及存储介质。该方法包括:对待解码视频的目标分片进行解码;当检测出目标分片的语法元素出现错误,确定出目标分片所在帧中需要恢复的编码块;基于全局预设语法元素模板对需要恢复的编码块进行恢复,以执行对目标分片的强制解码。通过该方式,可以实现在不破坏硬件流水(即,不会在检测出错误时硬件中断)的情况下,实现对出现错误的编码块的及时恢复。即,该方式仅通过增加极少硬件逻辑即可实现基于硬件的码流错误检测与恢复,复杂度低,且不会降低硬件解码效率。

Description

一种视频解码方法、装置、硬件解码器及存储介质
技术领域
本申请视频编码技术领域,具体而言,涉及一种视频解码方法、装置、硬件解码器及存储介质。
背景技术
H.264(一种视频编码标准)/HEVC(High Efficiency Video Coding,高效率视频编码,即H.265)分别是国际标准化组织和国际电信联盟共同提出的数字视频编码标准。H.264/HEVC与其他格式相比,在提供高压缩比的同时还能保证较高的图像质量,因此被业界广泛使用。
高的数据压缩比意味着编码器输出的比特流包含的冗余信息很少,一旦在编码或者传输过程中出现比特错误或者丢失的情况,就很难从出现错误的比特流中恢复出完整的重构图像;特别的,如果出现错误的帧为参考帧,后续以该错误帧作为参考的图像都会受到影响,造成错误的扩散。因此如何检测H.264/HEVC码流的错误并及时从错误中恢复图像是衡量解码好坏的重要标准。
目前,针对码流错误检测和恢复无法通过硬件解码器实现,具体的,当硬件解码器检测出码流出错后,会导致硬件流水中断,无法对错误码流进行恢复。
发明内容
本申请实施例的目的在于提供一种视频解码方法、装置、硬件解码器及存储介质,以基于硬件实现码流错误检测与恢复。
本申请是这样实现的:
本申请实施例提供一种视频解码方法,所述方法包括:对待解码视频的目标分片进行解码;当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块;基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,以执行对所述目标分片的强制解码。
在本申请实施例中,对待解码视频的目标分片进行解码,当检测出所述目标分片的语法元素出现错误,则确定出目标分片所在帧中需要恢复的编码块;然后基于一个预设码流模板来对需要恢复的编码块进行强制解码,通过该方式,可以实现在不破坏硬件流水(即,不会在检测出错误时硬件中断)的情况下,实现对出现错误的编码块的及时恢复。即,该方式仅通过增加极少硬件逻辑即可实现基于硬件的码流错误检测与恢复,复杂度低,且不会降低硬件解码效率。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,通过如下步骤构建所述全局预设语法元素模板,包括:根据关键语法元素所表征的含义确定出预设值;所述关键语法元素用于确定出固定解码分支;根据确定出的预设值进行对所述关键语法元素的赋值,得到所述全局预设语法元素模板。
在本申请实施例中,通过对关键语法元素进行赋值来得到全局预设语法元素模板,能够确保从众多解码分支中选择出一条固定的解码分支,保证每一个编码块都按照固定的解码分支进行解码,从而不会造成解码中断、提高硬件解码效率。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述关键语法元素包括分片头的语法元素以及编码块的语法元素。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,包括:将所述需要恢复的编码块合并为一个新的分片;基于所述全局预设语法元素模板对所述新的分片进行恢复;其中,在恢复的过程中,所述新的分片的分片类型由所述目标分片所在帧包含参考帧的与否所确定。
在本申请实施例中,通过将需要恢复的编码块合并为一个新的分片进行恢复,同时新的分片对应的分片头和分片数据通过全局预设语法元素模板赋值,可以不破坏硬件流水,提高硬件解码效率。并且,新的分片的分片类型由目标分片所在帧包含参考帧的与否所确定,即,当目标分片所在帧包含参考帧时,新的分片也可以基于参考帧进行恢复,通过该方式,可以提高编码块恢复效果。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述目标分片的语法元素出现错误包括所述目标分片中的分片头的语法元素出现错误。
在本申请实施例中,当检测出目标分片的分片头的语法元素出现错误后,直接确定出目标分片所在帧中需要恢复的编码块,进而对需要恢复的编码块进行恢复,通过该方式,以提高硬件解码的效率。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,通过如下步骤对所述目标分片中的分片头的语法元素进行检测,包括:当检测出第一语法元素中存在前缀0的个数大于所述第一语法元素对应的预设阈值的语法元素,则确定该语法元素出现错误;其中,所述第一语法元素为所述目标分片中的分片头中基于指数哥伦布编码的语法元素。
在本申请实施例中,仅需通过判断第一语法元素的前缀0的数目就可以对分片头中的语法元素是否出现错误进行检测,该方式,效率高且占用的资源少,有利于硬件实现。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块,包括:当检测出所述目标分片中的编码块的语法元素出现错误时,读入局部预设语法元素模板纠正该语法元素,并同时读入预设码流模板,以执行对该编码块的强制解码;确定出所述目标分片所在帧中需要恢复的编码块。
在本申请实施例中,当检测出目标分片中的编码块的语法元素出现错误时,可以基于局部预设语法元素模板及预设码流模板,以执行对该编码块的强制解码,通过该方式,可以在编码块出现错误时不破坏硬件流水,继续完成后续恢复过程。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述读入预设码流模板之后,所述方法还包括:响应于待解码的编码块还存在出现错误的语法元素,则读入所述局部预设语法元素模板中与所述出现错误的语法元素对应的语法元素的预设值。
在本申请实施例中,在读入预设码流模板之后,若该编码块还存在出现错误的语法元素,则读入局部预设语法元素模板中与出现错误的语法元素对应的语法元素的预设值,以进一步地实现对该编码块的强制解码。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,通过如下步骤对所述目标分片中的编码块的语法元素进行检测,包括:当检测出所述第二语法元素中存在前缀1的个数大于所述第二语法元素对应的预设阈值的语法元素,则确定该语法元素出现错误;其中,所述第二语法元素为所述目标分片中的编码块中基于CABAC(Context-basedAdaptive Binary Arithmetic Coding,基于上下文的自适应二进制算术编码)编码的语法元素。
在本申请实施例中,仅需通过判断第二语法元素的前缀1的数目就可以对编码块中的语法元素是否出现错误进行检测,该方式,效率高,且占用的资源少,有利于硬件实现。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述预设阈值由各语法元素对应的编码标准所确定。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述确定出所述目标分片所在帧中需要恢复的编码块,包括:若检测出在所述目标分片之后的码流中不存在起始码,则确定出所述目标分片所在帧中需要恢复的编码块;其中,所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
在本申请实施例中,若目标分片之后的码流中不存在起始码,则认为一帧结束,此时可以确定出需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,可见,通过该方式,可以有效地确定出需要恢复的编码块。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述确定出所述目标分片所在帧中需要恢复的编码块,包括:若检测出在所述目标分片之后的码流中存在起始码,则对所述起始码对应的网络抽象层封包单元头部进行解码,获得所述网络抽象层封包单元头部中的类型语法元素;基于所述类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述基于所述类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块,包括:若所述类型语法元素的数值满足预设条件,则确定出所述目标分片所在帧中需要恢复的编码块;其中,所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块;若所述类型语法元素的数值满足预设条件,则表征所述目标分片与下一个分片不属于同一帧;所述下一个分片为所述起始码对应的网络抽象层封包单元中的分片。
在本申请实施例中,若目标分片之后的码流中存在起始码,则解码得到网络抽象层封包单元类型语法元素,且当类型语法元素的数值满足预设条件,则表征目标分片与下一个分片不属于同一帧,此时可以确定出需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,可见,通过该方式,可以有效地确定出需要恢复的编码块。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述基于类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块,包括:若所述类型语法元素的数值不满足预设条件,则再解析所述下一个分片的分片头,并基于所述下一个分片的分片头的解析结果,确定出所述目标分片所在帧中需要恢复的编码块;其中,当所述解析结果表征所述目标分片与所述下一个分片不属于同一帧时,则所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块;当所述解析结果表征所述目标分片与所述下一个分片属于同一帧时,则所述需要恢复的编码块等于所述下一个分片的第一个编码块的序号减去当前已经完成解码的编码块数目。
在本申请实施例中,当类型语法元素的数值不满足预设条件,则再解析下一个分片的分片头,进而可以有效且准确地确定出目标分片与下一个分片是否属于同一帧,进而提高确定出的需要恢复的编码块的可靠性。
第二方面,本申请实施例提供一种视频解码装置,所述装置包括:解码模块,用于对待解码视频的目标分片进行解码;检测模块,用于当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块;恢复模块,用于基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,以执行对所述目标分片的强制解码。
第三方面,本申请实施例提供一种硬件解码器,用于执行如上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第四方面,本申请实施例还提供一种非易失性计算机可读取存储介质(以下简称计算机可读存储介质),其上存储有计算机程序,所述计算机程序被计算机运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的视频解码方法的步骤流程图。
图2为本申请实施例提供的一种码流的组成结构示意图。
图3为本申请另一实施例提供的视频解码方法的步骤流程图。
图4为本申请一实施例提供的确定出需要恢复的编码块的流程示意图。
图5为本申请另一实施例提供的确定出需要恢复的编码块的流程示意图。
图6为本申请一实施例提供的I帧的分片出现错误时的示意图。
图7为图6的I帧的分片出现错误后的恢复图。
图8为本申请一实施例提供的P帧的分片出现错误时的示意图。
图9为图8的P帧的分片出现错误后的恢复图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,图1为本申请实施例提供的视频解码方法的步骤流程图。本申请实施例提供的视频解码方法不以图1及以下所示的顺序为限制,该方法包括:步骤S101-步骤S103。
步骤S101:对待解码视频的目标分片进行解码。
目标分片为待解码视频的码流中的任一分片。下面对码流的组成结构进行说明,如图2所示,码流由多个码流单元构成,每个码流单元由起始码和NAL Unit(网络抽象层封包单元)组成的,即,每个起始码后面均设置有NAL Unit。NAL Unit包括NALU header(网络抽象层封包单元头部)和NALU data(网络抽象层封包单元数据)组成。
NALU data中可以包括Slice header(分片头)和Slice Data(分片数据)。其中,Slice header和Slice Data组成为一个分片,该步骤中,即对Slice header和Slice Data所组成的分片进行解码。
Slice header用于描述整个分片的特性/属性等信息。Slice Data包括编码块。示例性的,当编码采用H.264编码标准时,编码块为宏块(MB),当编码采用HEVC编码标准时,编码块为编码树块(CTB)。在本申请后续示例中均以H.264编码标准以及HEVC编码标准进行举例说明。可以理解的是,本申请实施例提供的视频解码方法不限于示例中的两种编码标准。
需要说明的是,在解码的过程中即可完成对错误的检测。
一实施例中,当解码器(可以为硬件解码器或软件解码器)对语法元素解码过程中出现语法元素超出标准规定的范围,或者与其他语法元素出现明显矛盾,或者无法从码流中解码出有效语法元素时,则表征该语法元素出现错误。
一实施例中,可以在解码器对语法元素进行解码时,通过该语法元素前缀的字符的数目来进行错误的检测。
针对目标分片中的分片头的语法元素进行检测,检测过程可以具体包括:判断第一语法元素的前缀0的个数是否大于第一语法元素对应的预设阈值;当第一语法元素中存在前缀0的个数大于第一语法元素对应的预设阈值的语法元素,则该语法元素出现错误。反之,则该语法元素未出现错误。
其中,第一语法元素为目标分片中的分片头中基于指数哥伦布编码的语法元素。即,该检测方式仅需统计基于指数哥伦布编码的语法元素的前缀0的个数即可,该方式,效率高且占用的资源少,有利于硬件实现。
以编码采用H.264编码标准为例,则第一语法元素以及各自对应的预设阈值可以参考表一。
表一
Figure BDA0003875189090000061
Figure BDA0003875189090000071
表一中的第一列表示第一语法元素,表一中的第二列表示各个第一语法元素对应的预设阈值。比如,第一语法元素slice_type对应的预设阈值为3。示例性的,硬件解码器在对第一语法元素slice_type进行解码前,先判断slice_type的前缀0的个数是否大于3,若大于,则slice_type出现错误。
其中,表一所示出的第一语法元素仅为示例,并不作为限定。
以编码采用HEVC编码标准为例,则第一语法元素以及各自对应的预设阈值可以参考表二。
表二
HEVC语法元素slice_header() 前缀0的数目
slice_pic_parameter_set_id >6
slice_type >1
num_ref_idx_l0_active_minus1 >3
num_ref_idx_l1_active_minus1 >3
collocated_ref_idx >3
five_minus_max_num_merge_cand >2
delta_luma_weight_l0 >8
luma_offset_l0 >8
delta_chroma_weight_l0 >8
delta_chroma_offset_l0 >10
delta_luma_weight_l1 >8
luma_offset_l1 >8
delta_chroma_weight_l1 >8
delta_chroma_offset_l1 >10
luma_log2_weight_denom >3
delta_chroma_log2_weight_denom >3
slice_qp_delta >6
slice_cb_qp_offset >6
slice_cr_qp_offset >6
slice_beta_offset_div2 >3
slice_tc_offset_div2 >3
num_entry_point_offsets >8
offset_len_minus1 >5
slice_segment_header_extension_length >8
表二中的第一列表示第一语法元素,表二中的第二列表示各个第一语法元素对应的预设阈值。比如,第一语法元素slice_type对应的预设阈值为1。示例性的,硬件解码器在对第一语法元素slice_type进行解码前,先判断slice_type的前缀0的个数是否大于1,若大于,则slice_type出现错误。
其中,表二所示出的第一语法元素仅为示例,并不作为限定。
此外,需要说明的是,上述的第一语法元素各自对应的预设阈值由编码标准所决定。即,不同的编码标准中不同的第一语法元素对应的预设阈值由各编码标准自身所确定出。
需要说明的是,当检测出目标分片中的分片头的某个语法元素出现错误后,则停止对后续的语法元素进行检测以及解码,并执行步骤S102。通过该方式,可以提高硬件解码的效率。
针对目标分片中的编码块的语法元素进行检测,检测过程可以具体包括:判断第二语法元素的前缀1的个数是否大于第二语法元素对应的预设阈值;当第二语法元素中存在前缀1的个数大于第二语法元素对应的预设阈值的语法元素,则该语法元素出现错误。反之,则该语法元素未出现错误。
其中,第二语法元素为目标分片中的编码块中基于CABAC编码的语法元素。即,该检测方式仅需统计基于CABAC编码的语法元素的前缀1的个数即可,该方式,效率高且占用的资源少,有利于硬件实现。
以编码采用H.264编码标准为例,则第二语法元素以及各自对应的预设阈值可以参考表三。
表三
Figure BDA0003875189090000081
表三中的第一列表示第二语法元素,表三中的第二列表示各个第二语法元素对应的预设阈值。比如,第二语法元素mb_qp_delta对应的预设阈值为64。示例性的,硬件解码器在对第二语法元素mb_qp_delta进行解码时,在解码的过程中,判断解码出的mb_qp_delta的前缀1的个数是否大于64,若大于,则mb_qp_delta出现错误。
其中,表三所示出的第二语法元素仅为示例,并不作为限定。
需要说明的是,CABAC编码的语法元素由专门的CABAC编码引擎进行编码,反之,CABAC编码的语法元素由专门的CABAC解码引擎进行解码。在解码的过程中,判断出现的前缀个数,即,在数字0之前的均为该语法元素的前缀,当解码出现0时,则统计在0之前的1的个数即为该语法元素的前缀1的个数。上述的K阶指数哥伦布编码为CABAC编码引擎中的一种编码方式。
以编码采用HEVC编码标准为例,则第二语法元素以及各自对应的预设阈值可以参考表四。
表四
Figure BDA0003875189090000091
表四中的第一列表示第二语法元素,表四中的第二列表示各个第二语法元素对应的预设阈值。比如,第二语法元素coeff_abs_level_rem对应的预设阈值为23。示例性的,硬件解码器在对第二语法元素coeff_abs_level_rem进行解码时,在解码的过程中,判断解码出的coeff_abs_level_rem的前缀1的个数是否大于23,若大于,则coeff_abs_level_rem出现错误。
其中,表四所示出的第二语法元素仅为示例,并不作为限定。
此外,需要说明的是,上述的第二语法元素各自对应的预设阈值由编码标准所决定。即,不同的编码标准中不同的第二语法元素对应的预设阈值由各编码标准自身所确定出。
需要说明的是,当检测出目标分片中的编码块中的某个语法元素出现错误后,则停止对后续的语法元素进行检测以及解码,此时,需要对出现错误的编码块进行恢复,并在错误的编码块恢复后,执行步骤S102。
于本申请实施例中,当检测出目标分片中的编码块的语法元素出现错误时,利用局部预设语法元素模板纠正该语法元素,同时读入预设码流模板,以执行对该编码块的强制解码。
即,当检测出目标分片中的编码块的语法元素出现错误时,此时,解码器可以进入到设定的部分编码块恢复模式,首先利用局部预设语法元素模板纠正该语法元素,并从出错的语法元素继续解码,如果后续语法元素又出现错误,则继续通过局部预设语法元素模板对后续语法元素进行纠正,直到当前出错的编码块完成解码,即,解码器不会因为解码块出错停止工作。在此过程中,硬件解码器不会消耗真实的码流,而是直接读入一种伪码流,这种伪码流即为上述的预设码流模板。
一实施例中,预设码流模板可以包括全1模板或者全0模板或者其他某种预设的二进制比特串模板,比如同时包含1和0的二进制比特串模板,本申请不作限定。
一实施例中,在读入预设码流模板之后,该方法还包括:响应于待解码的编码块还存在出现错误的语法元素,则读入局部预设语法元素模板中与出现错误的语法元素对应的语法元素的预设值。
即,当通过读入预设码流模板之后,局部的语法元素仍然出现错误,则可以利用预设局部预设语法元素模板继续进行纠错,以使该编码块完成解码。局部预设语法元素模板可以根据不同的语法元素进行设定,本申请不作限定。
可见,在本申请实施例中,在读入预设码流模板之后,若该编码块还存在出现错误的语法元素,则直接将出现错误的语法元素设置为局部预设语法元素模板中对应的值,以实现对该编码块的强制解码。
下面结合图3对上述过程进行说明,以硬件解码器为例,硬件解码器解码目标分片,判断是否检测出错误,若未出错,则继续解码下一个分片。若出错,则判断错误是否出现在Slice Data(即判断错误是否是编码块),若是,则硬件解码器使该编码块强制解码,即,恢复出错的编码块,在硬件解码器使该编码块强制解码之后,执行步骤S102,而若错误未出现在Slice Data,则直接执行步骤S102。
此外,若未检测出目标分片中存在语法元素错误时,继续对下一个分片进行解码,无需执行后续步骤。
步骤S102:确定出目标分片所在帧中需要恢复的编码块。
在检测出目标分片中存在语法元素错误时,需要确定出目标分片所在帧中需要恢复的编码块。
可选地,确定出目标分片所在帧中需要恢复的编码块,包括:判断在目标分片之后的码流中是否存在起始码;若在目标分片之后的码流中不存在起始码,则确定出目标分片所在帧中需要恢复的编码块。
其中,需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
需要说明的是,若目标分片之后的码流中不存在起始码,则认为一帧结束,此时可以确定出需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,可见,通过该方式,可以有效地确定出需要恢复的编码块。
此处可以根据数目的方式,确定出需要恢复的编码块,比如,目标分片所在帧中总的编码块为100,当前已经完成解码的编码块为80,则需要恢复的编码块的数量为20,此时,在目标分片的出错位置之后的20个编码块即为需要恢复的编码块。
可选地,若在目标分片之后的码流中存在起始码,则对起始码对应的网络抽象层封包单元头部进行解码,获得网络抽象层封包单元头部中的类型语法元素;基于类型语法元素,确定出目标分片所在帧中需要恢复的编码块。
具体的,上述基于类型语法元素,确定出目标分片所在帧中需要恢复的编码块,包括:若类型语法元素的数值满足预设条件,则确定出目标分片所在帧中需要恢复的编码块;其中,需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块;若类型语法元素的数值满足预设条件,则表征目标分片与下一个分片不属于同一帧;下一个分片为起始码对应的网络抽象层封包单元中的分片。
即,如果在目标分片之后的码流中查找到起始码,则对NALU header(网络抽象层封包单元头部)进行解码得到类型语法元素Nal Unit type。
以编码采用H.264编码标准为例,则预设条件可以包括:
条件一:当前帧为IDR(Instantaneous Decoder Refresh)帧,且Nal Unit type的数值不等于5。
条件二:当前帧为非IDR帧,且Nal Unit type等于5。
需要说明的是,一个帧序列的第一个图像帧为IDR帧,IDR帧为帧序列中的一个I帧。非IDR帧包括帧序列中的其他的I帧、帧序列中的P帧以及B帧。
上述的I帧表示关键帧,该帧画面完整保留;解码时只需要本帧数据就可以完成。P帧为前向预测编码帧,P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。B帧为双向预测内插编码帧。B帧是双向预测帧,B帧记录的是本帧与前后帧的差别。
当Nal Unit type满足上述两个条件之一,则表征目标分片与下一个分片不属于同一帧(Nal Unit type指示一个网络抽象层封包单元的类型),此时,确定出目标分片所在帧中需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
以编码采用HEVC编码标准为例,则预设条件可以包括:
条件一:Nal Unit type大于21。
条件二:当前帧为IDR/BLA(Broken Link Access)/CRA(Clean Random Access)帧,且Nal Unit type小于16。
条件三:当前帧为非IDR/BLA/CRA帧,且Nal Unit type大于或等于16。
需要说明的是,IDR帧,BLA帧,CRA帧都是随机接入点图像,都属于I帧。
当Nal Unit type满足上述三个条件之一,则表征目标分片与下一个分片不属于同一帧,下一个分片为一个新帧的开始,此时,确定出目标分片所在帧中需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
在本申请实施例中,若目标分片之后的码流中存在起始码,则解码得到对应网络抽象层封包单元类型语法元素,且当类型语法元素的数值满足预设条件,则表征目标分片与下一个分片不属于同一帧,此时可以确定出需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,可见,通过该方式,可以有效地确定出需要恢复的编码块。
可选地,若类型语法元素的数值不满足预设条件,则再解析下一个分片的分片头,并基于下一个分片的分片头的解析结果,确定出目标分片所在帧中需要恢复的编码块。
其中,当解析结果表征目标分片与下一个分片不属于同一帧时,即,解析结果表征下一个分片为一个新帧的开始,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块;当解析结果表征目标分片与下一个分片属于同一帧时,则需要恢复的编码块等于下一个分片的第一个编码块的序号减去当前已经完成解码的编码块数目。其中下一个分片的第一个编码块的序号可以由下一个分片头中的语法元素得到。
即,继续解码下一个分片的Slice header(即分片头)。
以编码采用H.264编码标准为例,则确定出目标分片所在帧中需要恢复的编码块的具体过程可以包括:
步骤S201:解码语法元素first_mb_in_slice,如果该值小于已经解码完成的宏块数目,表征目标分片与下一个分片不属于同一帧(first_mb_in_slice指示分片对应的第一个编码块序号)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则,进入步骤S202。
步骤S202:解码语法元素slice_type,如果当前帧为IDR帧但是slice type不是Islice,表征目标分片与下一个分片不属于同一帧(slice_type指示分片的片类型)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S203。
步骤S203:解码语法元素pic_parameter_set_id,如果该值不等于出错前的sliceheader对应的pic_parameter_set_id,表征目标分片与下一个分片不属于同一帧(pic_parameter_set_id指示分片对应的图像参数集序号,对于同一帧的所有分片,该值必须相同)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S204。如果出错的分片为一帧中第一个分片,则直接进入步骤S204。
步骤S204:解码语法元素frame_num,如果该值不等于出错前的slice header对应的frame_num,表征目标分片与下一个分片不属于同一帧(frame_num指示分片对应的帧编号,对于同一帧的所有分片,该值必须相同)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S205。如果出错的分片为一帧中第一个分片,则直接进入步骤S205。
步骤S205:解码语法元素idr_pic_id,如果该值不等于出错前的slice header对应的idr_pic_id,表征目标分片与下一个分片不属于同一帧(idr_pic_id指示分片对应的IDR图像标识号,对于同一帧的所有分片,该值必须相同)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S206。如果出错的分片为一帧中第一个分片,则直接进入步骤S206。
步骤S206:确定目标分片与下一个分片属于同一帧,则需要恢复的编码块等于在下一个分片前目标分片所在帧中总的编码块减去当前已经完成解码的编码块,即,需要恢复的编码块等于first_mb_in_slice减去当前已经解码完成的编码块。
以编码采用HEVC编码标准为例,则确定出目标分片所在帧中需要恢复的编码块的具体过程可以包括:
步骤S301:解码语法元素first_slice_segment_in_pic_flag,如果该值为1并且已经完成解码的宏块数目大于0,表征目标分片与下一个分片不属于同一帧(first_slice_segment_in_pic_flag指示分片是否为一帧中的第一个分片)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S302。
步骤S302:解码语法元素slice_pic_parameter_set_id,如果该值不等于出错前slice header对应的slice_pic_parameter_set_id,表征目标分片与下一个分片不属于同一帧(slice_pic_parameter_set_id指示分片对应的图像参数集序号,对于同一帧的所有分片,该值必须相同)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S303。如果出错的分片为一帧中第一个分片,则直接进入步骤S303。
步骤S303:解码语法元素slice_segment_address,如果该值对应的宏块位置已经被成功解码,表征目标分片与下一个分片不属于同一帧(slice_segment_address指示分片对应的第一个编码块序号)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S304。
步骤S304:解码语法元素slice_type,如果当前帧为IDR/BLA/CRA帧但是slicetype不是I slice,表征目标分片与下一个分片不属于同一帧(slice_type指示分片的片类型)时,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块,否则进入步骤S305。
步骤S305:确定目标分片与下一个分片属于同一帧,则需要恢复的编码块等于在下一个分片前目标分片所在帧中总的编码块减去当前已经完成解码的编码块,即,需要恢复的编码块等于slice_segment_address减去当前已经解码完成的编码块。
综上,在本申请实施例中,当网络抽象层封包单元类型语法元素的数值不满足预设条件,则再解码下一个分片的分片头,进而可以有效且准确地确定出目标分片与下一个分片是否属于同一帧,进而提高确定出的需要恢复的编码块的可靠性。
请参阅图4,以编码采用H.264编码标准,且解码器为硬件解码器为例,确定出的需要恢复的编码块的完成过程可以包括:硬件解码器寻找下一个起始码,如果找到下一个起始码,则解析NALU header,判断Nal Unit type是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则解析Slice header,判断first_mb_in_slice是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断slice_type是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断pic_parameter_set_id是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断frame_num是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断idr_pic_id是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则需要恢复的编码块等于first_mb_in_slice减去当前已经解码完成的编码块。
请参阅图5,以编码采用HEVC编码标准,且解码器为硬件解码器为例,确定出的需要恢复的编码块的完成过程可以包括:硬件解码器寻找下一个起始码,如果找到下一个起始码,则解析NALU header,判断Nal Unit type是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则解析Slice header,判断first_slice_segment_in_pic_flag指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断slice_pic_parameter_set_id是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断slice_segment_address是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则判断slice_type是否指示一个新帧的开始,若是,则需要恢复的编码块等于目标分片所在帧中总的编码块减去当前已经完成解码的编码块。若否,则需要恢复的编码块等于slice_segment_address减去当前已经解码完成的编码块。
步骤S103:基于全局预设语法元素模板对需要恢复的编码块进行恢复,以执行对目标分片的解码。
在确定出需要恢复的编码块后,基于全局预设语法元素模板对需要恢复的编码块进行恢复,以执行对目标分片的解码。
首先,对构建全局预设语法元素模板的过程进行说明,构建过程可以具体包括:根据关键语法元素所表征的含义确定出预设值;关键语法元素用于确定出固定解码分支;根据确定出的预设值进行对关键语法元素的赋值,得到全局预设语法元素模板。
需要说明的是,关键语法元素能够确保从众多解码分支中选择出一条固定的解码分支,保证每一个编码块都按照所述固定的解码分支进行解码,从而不会造成解码中断、提高硬件解码效率。因此,此处仅需对关键语法元素进行赋值。
对于分片头的预设语法元素模板见下表:
Figure BDA0003875189090000151
Figure BDA0003875189090000152
需要说明的是,所有以pps为前缀的语法元素表示当前帧所属的图像参数集语法元素。
图像参数集用于描述多个编码图像的共有信息,也通过网络抽象层封包单元进行传输,对应的类型语法元素(NAL unit type)的值为8。
需要说明的是,对于该表中未列出的片头语法元素其预设值都为0。
步骤S103中的恢复过程还可以具体包括:将需要恢复的编码块合并为一个新的分片进行恢复,以完成对目标分片的解码。
其中,新的分片对应的分片头和分片数据语法元素通过全局预设语法元素模板赋值。即,一实施例中,关键语法元素可以包括分片头的语法元素以及编码块的语法元素。
新的分片的分片类型由目标分片所在帧包含参考帧的与否所确定。即,如果目标分片所在帧对应的参考帧列表中包含有效的参考帧,则slice type设为P slice,否则设为I slice。
对于H264分片数据的预设语法元素模板见下表:
Figure BDA0003875189090000161
对于HEVC分片数据的预设语法元素模板见下表:
Figure BDA0003875189090000162
需要说明的是,全局预设语法元素模板和部分编码块恢复过程中的局部预设语法元素模板的区别如下:
1.全局预设语法元素模板包含片头和片数据语法元素,并对所述片头和片数据语法元素中的关键语法元素进行预设,例如,包括但不限于对上述表格中描述的关键语法元素值进行预设。其中,根据所述关键语法元素能够确保从众多解码分支中选择出一条固定的解码分支,保证每一个编码块都按照所述固定的解码分支进行解码,从而不会造成解码中断、提高硬件解码效率。
2.局部预设语法元素模板只包含片数据语法元素,对片数据中所有的语法元素进行了预设,保证在读入全0或者全1,或者其他二进制序列的码流模板后,在解码过程中一旦出现任意语法元素出错,都可以通过该局部预设语法元素模板中对应语法元素的预设值进行纠正,从而实现部分出错编码块的强制解码。
可见,在本申请实施例中,通过将需要恢复的编码块合并为一个新的分片进行恢复,同时新的分片对应的分片头和分片数据通过全局预设语法元素模板赋值,可以不破坏硬件流水,提高硬件解码效率。并且,新的分片的分片类型由目标分片所在帧包含参考帧的与否所确定,即,当目标分片所在帧包含参考帧时,新的分片也可以基于参考帧进行恢复,通过该方式,可以提高编码块恢复效果。
综上,在本申请实施例中,对待解码视频的目标分片进行解码,当检测出所述目标分片的语法元素出现错误,则确定出目标分片所在帧中需要恢复的编码块;然后基于一个全局预设语法元素模板来对需要恢复的编码块进行强制解码,通过该方式,可以实现在不破坏硬件流水(即,不会在检测出错误时硬件中断)的情况下,实现对出现错误的编码块的及时恢复。即,该方式仅通过增加极少硬件逻辑即可实现基于硬件的码流错误检测与恢复,复杂度低,且不会降低硬件解码效率。
通过上述实施例所提供的视频解码方法在应用到具体的解码中时,解码效果对比图可以参考图6-图9。
其中,图6为I帧的分片出现错误时的示意图。图7为对应的图6的I帧的分片出现错误后的恢复图。图8为P帧的分片出现错误时的示意图。图9为对应的图8的P帧的分片出现错误后的恢复图。
需要说明的是,图6及图8中的正方形方框为编码块。每三行编码块所组成的一个分片。图6中底部为出错的编码块,由于图6为关键帧,当其编码块出错后无法完全恢复。图8的中部为出错的编码块,由于图8为前向预测编码帧,其可以根据之前的关键帧进行恢复,因此,其出错的编码块可以完全恢复。
基于同一发明构思,本申请实施例还提供一种视频解码装置,所述装置包括:
解码模块,用于对待解码视频的目标分片进行解码。
检测模块,用于当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块。
恢复模块,用于基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,以执行对所述目标分片的强制解码。
可选地,该装置还包括构建模块,构建模块用于根据关键语法元素所表征的含义确定出预设值;所述关键语法元素用于确定出固定解码分支;根据确定出的预设值进行对所述关键语法元素的赋值,得到所述全局预设语法元素模板。
可选地,所述关键语法元素包括分片头的语法元素以及编码块的语法元素。
可选地,恢复模块,还具体用于将所述需要恢复的编码块合并为一个新的分片;基于所述全局预设语法元素模板对所述新的分片进行恢复;其中,在恢复的过程中,所述新的分片的分片类型由所述目标分片所在帧包含参考帧的与否所确定。
可选地,所述目标分片的语法元素出现错误包括所述目标分片中的分片头的语法元素出现错误。
可选地,所述检测模块,还具体用于当检测出所述第一语法元素中存在前缀0的个数大于所述第一语法元素对应的预设阈值的语法元素,则确定该语法元素出现错误;其中,所述第一语法元素为所述目标分片中的分片头中基于指数哥伦布编码的语法元素。
可选地,检测模块,还具体用于当检测出所述目标分片中的编码块的语法元素出现错误时,读入局部预设语法元素纠正该语法元素,并同时读入预设码流模板,以执行对该编码块的强制解码;确定出所述目标分片所在帧中需要恢复的编码块。
可选地,检测模块还具体用于在所述读入预设码流模板之后,响应于待解码的编码块还存在出现错误的语法元素,则读入与所述出现错误的语法元素对应的局部预设语法元素模板。
可选地,检测模块,还具体用于当检测出所述第二语法元素中存在前缀1的个数大于所述第二语法元素对应的预设阈值的语法元素,则确定该语法元素出现错误;其中,所述第二语法元素为所述目标分片中的编码块中基于CABAC编码的语法元素。
可选地,所述预设阈值由各语法元素对应的编码标准所确定。
可选地,检测模块,还具体用于若检测出在所述目标分片之后的码流中不存在起始码,则确定出所述目标分片所在帧中需要恢复的编码块;其中,所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
可选地,检测模块,还具体用于若检测出在所述目标分片之后的码流中存在起始码,则对所述起始码对应的网络抽象层封包单元头部进行解码,获得所述网络抽象层封包单元头部中的类型语法元素;基于所述类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块。
可选地,检测模块,还具体用于若所述类型语法元素的数值满足预设条件,则确定出所述目标分片所在帧中需要恢复的编码块;其中,所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块;若所述类型语法元素的数值满足预设条件,则表征所述目标分片与下一个分片不属于同一帧;所述下一个分片为所述起始码对应的网络抽象层封包单元中的分片。
可选地,检测模块,还具体用于若所述类型语法元素的数值不满足预设条件,则再解析所述下一个分片的分片头,并基于所述下一个分片的分片头的解析结果,确定出所述目标分片所在帧中需要恢复的编码块;其中,当所述解析结果表征所述目标分片与所述下一个分片不属于同一帧时,则所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块;当所述解析结果表征所述目标分片与所述下一个分片属于同一帧时,则所述需要恢复的编码块等于在所述下一个分片前所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
基于同一发明构思,本申请实施例还提供一种硬件解码器。其用于执行上述实施例所提供的视频解码方法。
硬件解码器是一种将数字音视频解码还原成模拟音视频信号的硬件设备。其可以由专用集成电路构成,本申请不作限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述的报文处理方法所包含的步骤。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种视频解码方法,其特征在于,所述方法包括:
对待解码视频的目标分片进行解码;
当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块;
基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,以执行对所述目标分片的强制解码。
2.根据权利要求1所述的方法,其特征在于,通过如下步骤构建所述全局预设语法元素模板,包括:
根据关键语法元素所表征的含义确定出预设值;所述关键语法元素用于确定出固定解码分支;
根据确定出的预设值进行对所述关键语法元素的赋值,得到所述全局预设语法元素模板。
3.根据权利要求2所述的方法,其特征在于,所述关键语法元素包括分片头的语法元素以及编码块的语法元素。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,包括:
将所述需要恢复的编码块合并为一个新的分片;
基于所述全局预设语法元素模板对所述新的分片进行恢复;
其中,在恢复的过程中,所述新的分片的分片类型由所述目标分片所在帧包含参考帧的与否所确定。
5.根据权利要求1所述的方法,其特征在于,所述目标分片的语法元素出现错误包括所述目标分片中的分片头的语法元素出现错误。
6.根据权利要求5所述的方法,其特征在于,通过如下步骤对所述目标分片中的分片头的语法元素进行检测,包括:
当检测出第一语法元素中存在前缀0的个数大于所述第一语法元素对应的预设阈值的语法元素,则确定该语法元素出现错误;其中,所述第一语法元素为所述目标分片中的分片头中基于指数哥伦布编码的语法元素。
7.根据权利要求1所述的方法,其特征在于,所述当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块,包括:
当检测出所述目标分片中的编码块的语法元素出现错误时,读入局部预设语法元素模板纠正该语法元素,并同时读入预设码流模板,以执行对该编码块的强制解码;
确定出所述目标分片所在帧中需要恢复的编码块。
8.根据权利要求7所述的方法,其特征在于,在所述读入预设码流模板之后,所述方法还包括:
响应于待解码的编码块还存在出现错误的语法元素,则读入所述局部预设语法元素模板中与所述出现错误的语法元素对应的语法元素的预设值。
9.根据权利要求7所述的方法,其特征在于,通过如下步骤对所述目标分片中的编码块的语法元素进行检测,包括:
当检测出所述第二语法元素中存在前缀1的个数大于所述第二语法元素对应的预设阈值的语法元素,则确定该语法元素出现错误;其中,所述第二语法元素为所述目标分片中的编码块中基于CABAC编码的语法元素。
10.根据权利要求6或9所述的方法,其特征在于,所述预设阈值由各语法元素对应的编码标准所确定。
11.根据权利要求1所述的方法,其特征在于,所述确定出所述目标分片所在帧中需要恢复的编码块,包括:
若检测出在所述目标分片之后的码流中不存在起始码,则确定出所述目标分片所在帧中需要恢复的编码块;其中,所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
12.根据权利要求1所述的方法,其特征在于,所述确定出所述目标分片所在帧中需要恢复的编码块,包括:
若检测出在所述目标分片之后的码流中存在起始码,则对所述起始码对应的网络抽象层封包单元头部进行解码,获得所述网络抽象层封包单元头部中的类型语法元素;
基于所述类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块。
13.根据权利要求12所述的方法,其特征在于,所述基于所述类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块,包括:
若所述类型语法元素的数值满足预设条件,则确定出所述目标分片所在帧中需要恢复的编码块;其中,所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块;若所述类型语法元素的数值满足预设条件,则表征所述目标分片与下一个分片不属于同一帧;所述下一个分片为所述起始码对应的网络抽象层封包单元中的分片。
14.根据权利要求12所述的方法,其特征在于,所述基于类型语法元素,确定出所述目标分片所在帧中需要恢复的编码块,包括:
若所述类型语法元素的数值不满足预设条件,则再解析所述下一个分片的分片头,并基于所述下一个分片的分片头的解析结果,确定出所述目标分片所在帧中需要恢复的编码块;其中,当所述解析结果表征所述目标分片与所述下一个分片不属于同一帧时,则所述需要恢复的编码块等于所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块;当所述解析结果表征所述目标分片与所述下一个分片属于同一帧时,则所述需要恢复的编码块等于在所述下一个分片前所述目标分片所在帧中总的编码块减去当前已经完成解码的编码块。
15.一种视频解码装置,其特征在于,所述装置包括:
解码模块,用于对待解码视频的目标分片进行解码;
检测模块,用于当检测出所述目标分片的语法元素出现错误,确定出所述目标分片所在帧中需要恢复的编码块;
恢复模块,用于基于全局预设语法元素模板对所述需要恢复的编码块进行恢复,以执行对所述目标分片的强制解码。
16.一种硬件解码器,其特征在于,用于执行如权利要求1-14中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被计算机运行时执行如权利要求1-14中任一项所述的方法。
CN202211210856.2A 2022-09-30 2022-09-30 一种视频解码方法、装置、硬件解码器及存储介质 Pending CN115460423A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211210856.2A CN115460423A (zh) 2022-09-30 2022-09-30 一种视频解码方法、装置、硬件解码器及存储介质
US18/241,939 US20240114171A1 (en) 2022-09-30 2023-09-04 Video Decoding Method and Device, Hardware Decoder, and Storage Medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211210856.2A CN115460423A (zh) 2022-09-30 2022-09-30 一种视频解码方法、装置、硬件解码器及存储介质

Publications (1)

Publication Number Publication Date
CN115460423A true CN115460423A (zh) 2022-12-09

Family

ID=84309087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211210856.2A Pending CN115460423A (zh) 2022-09-30 2022-09-30 一种视频解码方法、装置、硬件解码器及存储介质

Country Status (2)

Country Link
US (1) US20240114171A1 (zh)
CN (1) CN115460423A (zh)

Also Published As

Publication number Publication date
US20240114171A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
US8594366B2 (en) Context-based adaptive binary arithmetic coding (CABAC) video stream compliance
US8867612B2 (en) Decoding method for decoding an incoming bitstream and method for performing the same
EP0861001A2 (en) Error resilient video encoding
US20160309172A1 (en) Method and apparatus for encoding or decoding blocks of pixel
US20050204210A1 (en) Decoding method, medium, and apparatus
US8332736B2 (en) Decoder with resiliency to handle errors in a received data stream
US20240056586A1 (en) Arrangements and methods of encoding picture belonging to a temporal level
US20100205498A1 (en) Method for Detecting Errors and Recovering Video Data
JP3053781B2 (ja) 動画像圧縮符号の復号方法及び復号装置
US5703697A (en) Method of lossy decoding of bitstream data
JP2010226376A (ja) 画像復号装置およびコンピュータが実行可能なプログラム
US20070150786A1 (en) Method for coding, method for decoding, device for coding and device for decoding video data
CN115460423A (zh) 一种视频解码方法、装置、硬件解码器及存储介质
JP2002027483A (ja) 画像符号化装置、画像復号化装置および記憶媒体
JP4432582B2 (ja) 動画像情報復元装置、動画像情報復元方法、動画像情報復元プログラム
US6909450B2 (en) Video encoding and decoding method of mitigating data losses in an encoded video signal transmitted through a channel
CN101383964B (zh) 一种对压缩视频流进行编辑、解码的方法、装置和系统
KR20020071754A (ko) 에러 은폐에 기초하여 디지털 이미지들을 코딩하는 방법
US20230336715A1 (en) Method and computing system for encoding or decoding video and storage medium
US20240276025A1 (en) Video hardware decoder circuit and a control method and a control system for bit stream parsing error detection therein
CN111010575A (zh) 一种码流容错的方法及装置、可读存储介质

Legal Events

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