CN103813177A - 一种视频解码系统和方法 - Google Patents

一种视频解码系统和方法 Download PDF

Info

Publication number
CN103813177A
CN103813177A CN201210440833.0A CN201210440833A CN103813177A CN 103813177 A CN103813177 A CN 103813177A CN 201210440833 A CN201210440833 A CN 201210440833A CN 103813177 A CN103813177 A CN 103813177A
Authority
CN
China
Prior art keywords
macro block
resolver
error
decoding
resolving
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
CN201210440833.0A
Other languages
English (en)
Inventor
虞新阳
李锦程
卢金跃
马尼卓·潘里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Priority to CN201210440833.0A priority Critical patent/CN103813177A/zh
Priority to US13/745,469 priority patent/US20140126637A1/en
Priority to DE201310018383 priority patent/DE102013018383A1/de
Priority to TW102140103A priority patent/TW201424384A/zh
Publication of CN103813177A publication Critical patent/CN103813177A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/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

Abstract

本发明公开了一种视频解码系统和方法,该系统包括控制器、解析器和解码器。其中,所述控制器用于向所述解析器发送控制命令并接收来自所述解析器返回的状态报告;所述解析器用于根据所述控制命令对视频流进行解析,并将解析后的结果发送给所述解码器;以及所述解码器用于对所述解析后的结果进行解码。使用本发明提供的视频解码系统和方法,可以在整个视频解码过程中对视频流中的错误进行隐藏,进而可以在接收端获得理想的视频输出效果。

Description

一种视频解码系统和方法
技术领域
本发明涉及视频通信领域,尤其涉及一种视频解码系统和方法。
背景技术
在数字视频技术高速发展的今天,视频压缩对于数字传输是非常重要的,因为只有有效地提高传输的速率,在接收端才能使传输的视频信号被实时连接地播放出来被人的视觉接受。然而,在视频传输过程中由于信道不是完全无错信道的关系总会不可避免地出现错误,因此,为了在接收端获得理想的视频输出效果,需要对视频流中的错误进行隐藏。如果在编码端进行错误隐藏,则基本能够消除因可变长编码(VLC)码字的传输误码造成的解码错误,但其代价是增加了编码器的负担,占用了有用带宽,从而相对降低了图像质量。因此,需要一种带有错误隐藏机制的视频解码系统和方法以解决上述问题。
发明内容
在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
为了解决上述问题,本发明公开了一种视频解码系统,包括控制器、解析器和解码器。其中,所述控制器用于向所述解析器发送控制命令并接收来自所述解析器反馈的状态报告;所述解析器用于根据所述控制命令对视频流进行解析,并将解析后的结果发送给所述解码器;以及所述解码器用于对所述解析后的结果进行解码。
在本发明一个优选实施例中,所述状态报告进一步包括:无错状态报告,用于所述解析器在解析过程中没有发现错误或发现轻微错误时返回给所述控制器;以及出错状态报告,用于所述解析器在所述解析过程中发现严重错误时返回给所述控制器。
在本发明一个优选实施例中,所述解析器在所述解析过程中遇到所述轻微错误时进行饱和操作或默认操作。
在本发明一个优选实施例中,所述系统还包括:数据寄存器,用于存储含有所述轻微错误和所述严重错误的错误类型表以供所述解析器查询以确定向所述控制器发送所述无错状态报告或所述出错状态报告。
在本发明一个优选实施例中,所述系统还包括:缓冲寄存器,用于存储所述解析器解析时遇到的错误宏块地址。
在本发明一个优选实施例中,所述控制命令进一步包括:解析命令,用于通知所述解析器对所述视频流进行解析;以及隐藏命令,用于通知所述解析器对所述视频流进行错误隐藏。
在本发明一个优选实施例中,所述解析命令进一步包括开始解析的宏块号、结束解析的宏块号以及所需要解析的视频流的比特流大小。
在本发明一个优选实施例中,所述隐藏命令进一步包括开始隐藏的宏块号、结束隐藏的宏块号以及错误隐藏类型。
在本发明一个优选实施例中,所述开始隐藏的宏块号以及所述结束隐藏的宏块号是通过错误隐藏模式确定的。
在本发明一个优选实施例中,所述错误隐藏模式进一步包括:片模式,用于从当前片开始隐藏;行模式,用于从当前错误宏块行开始隐藏;以及宏块模式,用于从当前错误宏块之前的一个或多个宏块开始隐藏。
在本发明一个优选实施例中,所述错误隐藏类型进一步包括:帧内隐藏,用于使用垂直帧内预测模式来解码当前宏块;零运动矢量隐藏,用于使用零运动矢量来解码所述当前宏块;P帧跳跃宏块的默认运动矢量隐藏,用于使用P帧跳跃宏块的默认运动矢量来解码所述当前宏块;以及B帧跳跃宏块的默认运动矢量隐藏,用于使用B帧跳跃宏块的默认运动矢量来解码所述当前宏块。
根据本发明另一方面,还公开了一种视频解码方法,包括:控制器向解析器发送控制命令;所述解析器根据所述控制命令对视频流进行解析;所述解析器向所述控制器返回状态报告;所述解析器将解析后的结果发送给解码器;以及所述解码器对所述解析后的结果进行解码。
在本发明一个优选实施例中,所述状态报告进一步包括:无错状态报告,用于所述解析器在解析过程中没有发现错误或发现轻微错误时返回给所述控制器;以及出错状态报告,用于所述解析器在所述解析过程中发现严重错误时返回给所述控制器。
在本发明一个优选实施例中,所述解析器在所述解析过程中遇到所述轻微错误时进行饱和操作或默认操作。
在本发明一个优选实施例中,所述控制命令进一步包括:解析命令,用于通知所述解析器对所述视频流进行解析;以及隐藏命令,用于通知所述解析器对所述视频流进行错误隐藏。
在本发明一个优选实施例中,所述解析命令进一步包括开始解析的宏块号、结束解析的宏块号以及所需要解析的视频流的比特流大小。
在本发明一个优选实施例中,所述隐藏命令进一步包括开始隐藏的宏块号、结束隐藏的宏块号以及错误隐藏类型。
在本发明一个优选实施例中,所述开始隐藏的宏块号以及所述结束隐藏的宏块号是通过错误隐藏模式确定的。
在本发明一个优选实施例中,所述错误隐藏模式进一步包括:片模式,用于从当前片开始隐藏;行模式,用于从当前错误宏块行开始隐藏;以及宏块模式,用于从当前错误宏块之前的一个或多个宏块开始隐藏。
在本发明一个优选实施例中,所述错误隐藏类型进一步包括:帧内隐藏,用于使用垂直帧内预测模式来解码当前宏块;零运动矢量隐藏,用于使用零运动矢量来解码所述当前宏块;P帧跳跃宏块的默认运动矢量隐藏,用于使用P帧跳跃宏块的默认运动矢量来解码所述当前宏块;以及B帧跳跃宏块的默认运动矢量隐藏,用于使用B帧跳跃宏块的默认运动矢量来解码所述当前宏块。
使用本发明提供的视频解码系统和方法,可以在整个视频解码过程中对视频流中的错误进行隐藏,进而可以在接收端获得理想的视频输出效果。
附图说明
本发明的下列附图在此作为本发明的一部分用于理解本发明。附图中示出了本发明的实施例及其描述,用来解释本发明的原理。在附图中,
图1示出了根据本发明一个优选实施例的带有错误隐藏机制的视频解码系统的结构框图;
图2示出了根据本发明一个优选实施例的带有错误隐藏机制的视频解码方法的流程图;
图3示出了根据本发明的一个优选实施例的带有错误隐藏机制的视频解码系统的工作原理图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员来说显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
为了彻底了解本发明,将在下列的描述中提出详细的结构。显然,本发明的施行并不限定于本领域的技术人员所熟习的特殊细节。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
根据本发明的一方面,公开了一种视频解码系统。图1示出了根据本发明一个优选实施例的视频解码系统的结构框图100。如图1所示,该视频解码系统100包括控制器101、解析器102和解码器103。其中,控制器101用于向解析器102发送控制命令并接收来自解析器102返回的状态报告(Status Report)。解析器102用于根据控制命令对视频流进行解析,并将解析后的结果发送给解码器10。解码器103用于对解析后的结果进行解码。
具体来讲,控制器101用于控制解析器102的解析过程,其向解析器102发出控制命令以使得解析器102更好地解析视频流,还接收解析器102返回的状态报告并根据状态报告做出响应。
根据本发明的一个优选实施例,控制器101所发出的控制命令可以为诸如解析哪些宏块、是否、何时、以及怎样进行错误隐藏等等的命令。表1示出了控制命令可包含的类型。
如表1所示,控制命令可以包括解析命令和隐藏命令。其中,解析命令用于通知解析器102对视频流进行解析。隐藏命令用于通知解析器102对视频流进行错误隐藏。解析命令可以包括开始解析的宏块号、结束解析的宏块号以及所需要解析的视频流的比特流大小。隐藏命令可以包括开始隐藏的宏块号、结束隐藏的宏块号以及错误隐藏类型。根据解析命令和隐藏命令,解析器102可以清楚地知道应该解析哪些宏块或隐藏哪些宏块,可以提高后续解码器103解码的效率和正确率。
表1控制命令的类型
解析器102所返回的状态报告可以包括无错状态报告和出错状态报告。其中,无错状态报告用于解析器102在解析过程中没有发现错误或发现轻微错误时返回给控制器101。出错状态报告用于解析器102在解析过程中发现严重错误时返回给控制器101。解析器102向控制器101返回状态报告可以使控制器101了解当前解析过程是否发现较为严重的错误,便于控制器101做出适当的回应(发送隐藏命令),更好地控制解析器102的解析过程,提高发送至编码器103的解析结果的正确率,保证了解码结果的正确率。
这里,可将错误分为两类:轻微错误和严重错误。其中,轻微错误是指只有某个上下文/语法产生错误。以H.264为例,一些诸如宏块类型(mb_type)越界、运动矢量(motion vector)超越图片边界等错误都可以归结为轻微错误。轻微错误主要是由于编码器或解码器有缺陷(bug)而产生的。严重错误是指原始数据流受损。仍然以H.264为例,一些诸如基于上下文的自适应二进制编码(CABAC)或基于上下文的自适应可变长编码(CAVLC)等解码出错误值时,主要是因为原始数据流(例如,在本地磁盘,从互联网上等)被破坏。由于可变长度解码(VLD)在视频解码器中是有数据依赖性的,所以通常轻微错误不会大量出现在视频中图像数据的一个片中,也不会导致解码器崩溃。而严重错误会造成视频中图像数据的一个片中出现大量的轻微错误,并且也会导致解码器崩溃。因此,对于严重错误,更应该采取合适的错误隐藏措施。
根据本发明的一个优选实施例,系统100还可以包括数据寄存器(未在图1中示出),其用于存储含有轻微错误和严重错误的错误类型表以供解析器查询以确定向控制器发送无错状态报告或出错状态报告。解析器102在解析过程中遇到错误时,可以根据数据寄存器存储的错误类型表来确定遇到的错误是轻微错误还是严重错误。如果遇到的错误是轻微错误,则返回无错状态报告。如果遇到的错误是严重错误,则返回出错状态报告。
另外,对于不同的视频编解码标准,上述错误状态(Status)的定义是不同的,表2以H.264为例,示出了错误状态的定义。
表2 H.264错误状态的定义
Figure BDA00002369736100061
Figure BDA00002369736100071
解析器102用于根据控制器101发出的控制命令对视频流进行解析,并将解析后的结果发送给解码器103。解析器102对视频流进行解析可以包括进行诸如H.264、MPEG-2、VC1等视频标准中的编解码器所进行的可变长解码(VLD)。VLD是可变长编码(VLC)的逆过程,它从一组连续的码流中提取出可变长码字,并将之转换为对应的信源信息。在遇到轻微错误时,解析器102进行饱和操作或默认操作。饱和操作和默认操作分别可以是:如果解析出来的结果不在其定义范围之内,则饱和操作是将该结果修改为该定义范围的最大值,而默认操作是将该结果修改该定义范围的最小值。对于轻微错误,解析器102不必向控制器101发送出错状态报告,只需自己进行简单处理修正错误,提高整个系统的运作效率。
根据本发明的一个优选实施例,系统100还可以包括缓冲存储器(为在图1中示出),其用于存储所述解析器解析时遇到的错误宏块地址。在解析器102遇到严重错误时,其向控制器101发送出错状态状告,并且可以把错误宏块地址写入缓冲寄存器。控制器101收到出错状态报告,可以来轮询缓冲寄存器得到错误宏块地址,为计算需要隐藏的宏块始末号做准备。
根据本发明的一个优选实施例,隐藏命令中的开始隐藏的宏块号以及所述结束隐藏的宏块号可以通过错误隐藏模式来确定。
根据本发明的一个优选实施例,错误隐藏模式可以包括片模式、行模式和宏块模式。其中,片模式用于从当前片开始隐藏。行模式用于从当前错误宏块行开始隐藏。宏块模式用于从当前错误宏块之前的一个或多个宏块开始隐藏。隐藏模式的选择可以基于原始视频流的质量好坏。当原始数据流质量较好时,可以选择宏块模式;当原始数据流质量较差时,可以选择片模式。行模式是介于两者之间的模式。表3示出了错误隐藏的隐藏模式。
表3错误隐藏模式
根据本发明的一个优选实施例,隐藏命令中的隐藏类型可以包括帧内隐藏、零运动矢量隐藏、P帧跳跃宏块的默认运动矢量隐藏或B帧跳跃宏块的默认运动矢量隐藏。其中,帧内隐藏用于使用垂直帧内预测模式来解码当前宏块。零运动矢量隐藏用于使用零运动矢量来解码当前宏块。P帧跳跃宏块的默认运动矢量隐藏用于使用P帧跳跃宏块的默认运动矢量来解码当前宏块。B帧跳跃宏块的默认运动矢量隐藏用于使用B帧跳跃宏块的默认运动矢量来解码当前宏块。隐藏类型的选择可以基于原始视频流的类型。当原始视频流只有一帧时,可以选择帧内隐藏类型;当原始视频流为I帧时,可以选择零运动矢量隐藏类型;当原始视频流为P帧时,可以选择P帧跳跃宏块的默认运动矢量隐藏类型;当原始视频流为B帧时,可以选择B帧跳跃宏块的默认运动矢量隐藏类型。表4示出了错误隐藏的隐藏类型。
表4错误隐藏类型
Figure BDA00002369736100082
Figure BDA00002369736100091
控制器101根据原始视频数据流质量的好坏选择一种隐藏模式并结合错误宏块地址计算出需要隐藏的宏块的始末位置号,再根据原始视频数据流的类型选用一种隐藏类型构成隐藏命令发送给解析器102,还再次发送一次解析命令给解析器102。解析器102根据控制器发出的隐藏命令和解析命令对之前解析出错宏块所在的片重新进行解析并隐藏错误。值得注意的是,这里的重新解析指的是只解析出错宏块所在片中未出错的宏块,出错的宏块部分的解析用已解析的正确的解析结果(例如,上一片对应位置的解析结果)来代替,然后把形成的解析结果发送给解码器103,这样就完成了错误隐藏。
解码器103用于进行编解码器解码中除了VLD的部分,即对解析器102解析后的结果进行解码。该解码过程可以包括反量化、反变换、运动补偿和/或滤波等等。
值得注意的是,在整个视频解码过程中,发现错误和隐藏错误的工作都是在控制器101和解析器102部分进行的,解码器103甚至不知道视频流出现过错误。
根据本发明的另一方面,还公开了一种视频解码方法,包括:控制器向解析器发送控制命令;解析器根据控制命令对视频流进行解析;解析器向控制器返回状态报告;解析器将解析后的结果发送给解码器;以及解码器对解析后的结果进行解码。
根据本发明的一个优选实施例,控制器对解析器发送的控制命令可以包括解析命令和隐藏命令。其中,解析命令用于通知解析器对视频流进行解析。隐藏命令用于通知所述解析器对所述视频流进行错误隐藏。
根据本发明的一个优选实施例,解析命令可以包括开始解析的宏块号、结束解析的宏块号以及所需要解析的视频流的比特流大小。隐藏命令可以包括开始隐藏的宏块号、结束隐藏的宏块号以及错误隐藏类型。
根据本发明的一个优选实施例,状态报告可以包括无错状态报告和出错状态报告。其中,无错状态报告用于解析器在解析过程中没有发现错误或发现轻微错误时返回给控制器。出错状态报告用于解析器在所述解析过程中发现严重错误时返回给控制器。
根据本发明的一个优选实施例,解析器在解析过程中遇到轻微错误时进行饱和操作或默认操作。
根据本发明的一个优选实施例,隐藏命令中开始隐藏的宏块号以及结束隐藏的宏块号可以通过错误隐藏模式确定。
根据本发明的一个优选实施例,错误隐藏模式可以包括片模式、行模式和宏块模式。其中,片模式用于从当前片开始隐藏。行模式用于从当前错误宏块行开始隐藏。宏块模式,用于从当前错误宏块之前的一个或多个宏块开始隐藏。
根据本发明的一个优选实施例,隐藏命令中的错误隐藏类型可以包括帧内隐藏、零运动矢量隐藏、P帧跳跃宏块的默认运动矢量隐藏或B帧跳跃宏块的默认运动矢量隐藏。其中,帧内隐藏用于使用垂直帧内预测模式来解码当前宏块。零运动矢量隐藏用于使用零运动矢量来解码当前宏块。P帧跳跃宏块的默认运动矢量隐藏用于使用P帧跳跃宏块的默认运动矢量来解码当前宏块。B帧跳跃宏块的默认运动矢量隐藏用于使用B帧跳跃宏块的默认运动矢量来解码当前宏块。
图2示出了根据本发明一个优选实施例的视频解码方法的流程图200。
如图2所示,在步骤201,控制器发出解析命令给解析器,告知解析器需要解析哪些宏块。
在步骤202,解析器根据控制器发出的解析命令对需要解析的宏块进行解析,即进行VLD。
在步骤203,检测解析过程是否遇到错误。如果没有遇到错误,则转步骤207向控制器返回无错状态报告,告知控制器解析过程中没有遇到错误,可以发送解析下一片的命令,然后转到步骤210对解析结果进行解码,之后整个流程结束;如果遇到错误,则转步骤204。这里,可将错误分为两类:轻微错误和严重错误。其中,轻微错误是指只有某个上下文/语法产生错误。以H.264为例,一些诸如宏块类型(mb_type)越界、运动矢量(motionvector)超越图片边界等错误都可以归结为轻微错误。轻微错误主要是由于编码器或解码器有缺陷(bug)而产生的。严重错误是指原始数据流受损。仍然以H.264为例,一些诸如基于上下文的自适应二进制编码(CABAC)或基于上下文的自适应可变长编码(CAVLC)等解码出错误值时,主要是因为原始数据流(例如,在本地磁盘,从互联网上等)被破坏。由于VLD在视频解码器中是有数据依赖性的,所以通常轻微错误不会大量出现在视频中图像数据的一个片中,也不会导致解码器崩溃。而严重错误会造成视频中图像数据的一个片中出现大量的轻微错误,并且也会导致解码器崩溃。因此,对于严重错误,更应该采取合适的错误隐藏措施。
在步骤204,判断解析过程中遇到的错误是轻微错误还是严重错误。判断方法可以为:解析器查询存储有控制器所配置的错误类型表的数据寄存器,以确定遇到的错误为轻微错误还是严重错误。通过查询,如果确定遇到的错误为轻微错误则转到步骤205,然后转到步骤207之后到步骤210后结束;如果确定遇到的错误为严重错误则转到步骤206。
在步骤205,解析器对已经确定为轻微错误的错误进行饱和或默认操作。饱和操作和默认操作分别可以是:如果解析出来的结果不在其定义范围之内,则饱和操作是将该结果修改为该定义范围的最大值,而默认操作是将该结果修改该定义范围的最小值。
在步骤206,由于已经确认了遇到的错误是较为严重的严重错误,因此解析器向控制器返回出错状态报告,将错误宏块的地址写入缓冲寄存器,停止解析,等待控制器发出隐藏命令,以及将错误宏块后续宏块的头信息发送给解码器。
步骤207为确定了检测解析过程没有遇到错误之后向控制器返回无错状态报告。
在步骤208,控制器收到了解析器返回的出错状态报告,因此控制器通过轮询缓冲寄存器得到错误宏块的地址,然后选用一种隐藏模式,结合错误宏块的地址计算出需要隐藏的宏块的始末位置,最后再选用一种隐藏类型组成隐藏命令发送给解析器,同时也发出重新解析的命令。这里,隐藏模式可以包括片隐藏模式、行隐藏模式和宏块隐藏模式。隐藏类型可以包括帧内隐藏、零运动矢量隐藏、P帧跳跃宏块的默认运动矢量隐藏和B帧跳跃宏块的默认运动矢量隐藏。
在步骤209,解析器根据控制器发出的隐藏命令和解析命令对之前解析出错宏块所在的片重新进行解析并隐藏错误。值得注意的是,这里的重新解析指的是只解析出错宏块所在片中未出错的宏块,出错的宏块部分的解析用已解析的正确的解析结果(比如上一片对应位置的解析结果)来代替,这样就完成了错误隐藏。
在步骤210,解码器根据解析器对解析器解析出来的结果进行解码,完成视频解码中除了VLD以外的解码部分。例如,解码器对解析器解析出来的结果进行反量化、反变换、运动补偿或滤波等等来得到恢复编码前的视频数据。至此,整个视频解码过程结束。
值得注意的是,在整个视频解码过程中,检测错误和隐藏错误的工作都是在控制器和解析器部分进行的,解码器端甚至不知道视频流出现过错误。
图3示出了根据本发明的一个优选实施例的视频解码系统300的工作原理图。
如图3所示,带有错误隐藏机制的视频解码系统300包括控制器301、解析器302和解码器303。图3a和图3b分别为一个视频解码系统的两步工作。第一步为错误检测,如图3a所示;第二步为错误隐藏,如图3b所示。
在图3中,视频解码系统300对共分为四片的视频流进行解码。在图3a中,控制器301向解析器302发出四条解析命令,告知解析器302对四片视频流进行解析。解析器302根据控制器301的解析命令,对每一片进行解析,其中在解析第一片和第三片时发现了大量的错误,并判断出为严重错误,因此解析器302向控制器返回第一片和第三片出错状态报告,并返回第二片和第四篇无错状态报告。另外,解析器302将其解析结果发送给解码器303,解码器303对解析器302解析后的结果进行解码。由于解析过程中遇到了错误,因此视频解码系统300开始进行第二步,即错误隐藏。如图3b所示,对于出错的第一片,控制器301根据解析器302发送的出错状态报告,轮询缓冲寄存器(未在图中示出)得到解析器302写入的错误宏块地址,然后选用一种隐藏模式计算出第一片中需要隐藏的宏块始末位置,并选用一种隐藏类型组成隐藏命令发送给解析器302,同时再发出一条解析命令,使得解析器302对第一片中为出错的宏块进行重新解析,出错的宏块根据隐藏命令隐藏掉。类似地,对第三片的处理也是一样。对于没有出错的第二片和第四片,控制器301发出和第一步中相同的解析命令,解析器302对第二片和第四片重新解析,完成了所有片的解析后,解析器302将解析结果发给解码器303,解码器303对解析器进行解码以得到编码之前的原始视频数据。
使用本发明提供的视频解码系统和方法,可以在整个视频解码过程中对视频流中的错误进行隐藏,进而可以在接收端获得理想的视频输出效果。
本发明已经通过上述实施例进行了说明,但应当理解的是,上述实施例只是用于举例和说明的目的,而非意在将本发明限制于所描述的实施例范围内。此外本领域技术人员可以理解的是,本发明并不局限于上述实施例,根据本发明的教导还可以做出更多种的变型和修改,这些变型和修改均落在本发明所要求保护的范围以内。本发明的保护范围由附属的权利要求书及其等效范围所界定。

Claims (20)

1.一种视频解码系统,包括控制器、解析器和解码器,其中,
所述控制器用于向所述解析器发送控制命令并接收来自所述解析器返回的状态报告;
所述解析器用于根据所述控制命令对视频流进行解析,并将解析后的结果发送给所述解码器;以及
所述解码器用于对所述解析后的结果进行解码。
2.根据权利要求1所述的系统,其特征在于,所述状态报告进一步包括:
无错状态报告,用于所述解析器在解析过程中没有发现错误或发现轻微错误时返回给所述控制器;以及
出错状态报告,用于所述解析器在所述解析过程中发现严重错误时返回给所述控制器。
3.根据权利要求2所述的系统,其特征在于,所述解析器在所述解析过程中遇到所述轻微错误时进行饱和操作或默认操作。
4.根据权利要求2所述的系统,其特征在于,所述系统还包括:
数据寄存器,用于存储含有所述轻微错误和所述严重错误的错误类型表以供所述解析器查询以确定向所述控制器发送所述无错状态报告或所述出错状态报告。
5.根据权利要求1所述的系统,其特征在于,所述系统还包括:
缓冲寄存器,用于存储所述解析器解析时遇到的错误宏块地址。
6.根据权利要求1所述的系统,其特征在于,所述控制命令进一步包括:
解析命令,用于通知所述解析器对所述视频流进行解析;以及
隐藏命令,用于通知所述解析器对所述视频流进行错误隐藏。
7.根据权利要求6所述的系统,其特征在于,所述解析命令进一步包括开始解析的宏块号、结束解析的宏块号以及所需要解析的视频流的比特流大小。
8.根据权利要求6所述的系统,其特征在于,所述隐藏命令进一步包括开始隐藏的宏块号、结束隐藏的宏块号以及错误隐藏类型。
9.根据权利要求8所述的系统,其特征在于,所述开始隐藏的宏块号以及所述结束隐藏的宏块号是通过错误隐藏模式确定的。
10.根据权利要求9所述的系统,其特征在于,所述错误隐藏模式进一步包括:
片模式,用于从当前片开始隐藏;
行模式,用于从当前错误宏块行开始隐藏;以及
宏块模式,用于从当前错误宏块之前的一个或多个宏块开始隐藏。
11.根据权利要求8所述的系统,其特征在于,所述错误隐藏类型进一步包括:
帧内隐藏,用于使用垂直帧内预测模式来解码当前宏块;
零运动矢量隐藏,用于使用零运动矢量来解码所述当前宏块;
P帧跳跃宏块的默认运动矢量隐藏,用于使用P帧跳跃宏块的默认运动矢量来解码所述当前宏块;以及
B帧跳跃宏块的默认运动矢量隐藏,用于使用B帧跳跃宏块的默认运动矢量来解码所述当前宏块。
12.一种视频解码方法,包括:
控制器向解析器发送控制命令;
所述解析器根据所述控制命令对视频流进行解析;
所述解析器向所述控制器返回状态报告;
所述解析器将解析后的结果发送给解码器;以及
所述解码器对所述解析后的结果进行解码。
13.根据权利要求12所述的方法,其特征在于,所述状态报告进一步包括:
无错状态报告,用于所述解析器在解析过程中没有发现错误或发现轻微错误时返回给所述控制器;以及
出错状态报告,用于所述解析器在所述解析过程中发现严重错误时返回给所述控制器。
14.根据权利要求13所述的方法,其特征在于,所述解析器在所述解析过程中遇到所述轻微错误时进行饱和操作或默认操作。
15.根据权利要求12所述的方法,其特征在于,所述控制命令进一步包括:
解析命令,用于通知所述解析器对所述视频流进行解析;以及
隐藏命令,用于通知所述解析器对所述视频流进行错误隐藏。
16.根据权利要求15所述的方法,其特征在于,所述解析命令进一步包括开始解析的宏块号、结束解析的宏块号以及所需要解析的视频流的比特流大小。
17.根据权利要求15所述的方法,其特征在于,所述隐藏命令进一步包括开始隐藏的宏块号、结束隐藏的宏块号以及错误隐藏类型。
18.根据权利要求17所述的方法,其特征在于,所述开始隐藏的宏块号以及所述结束隐藏的宏块号是通过错误隐藏模式确定的。
19.根据权利要求18所述的方法,其特征在于,所述错误隐藏模式进一步包括:
片模式,用于从当前片开始隐藏;
行模式,用于从当前错误宏块行开始隐藏;以及
宏块模式,用于从当前错误宏块之前的一个或多个宏块开始隐藏。
20.根据权利要求17所述的方法,其特征在于,所述错误隐藏类型进一步包括:
帧内隐藏,用于使用垂直帧内预测模式来解码当前宏块;
零运动矢量隐藏,用于使用零运动矢量来解码所述当前宏块;
P帧跳跃宏块的默认运动矢量隐藏,用于使用P帧跳跃宏块的默认运动矢量来解码所述当前宏块;以及
B帧跳跃宏块的默认运动矢量隐藏,用于使用B帧跳跃宏块的默认运动矢量来解码所述当前宏块。
CN201210440833.0A 2012-11-07 2012-11-07 一种视频解码系统和方法 Pending CN103813177A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201210440833.0A CN103813177A (zh) 2012-11-07 2012-11-07 一种视频解码系统和方法
US13/745,469 US20140126637A1 (en) 2012-11-07 2013-01-18 System and method for decoding a video
DE201310018383 DE102013018383A1 (de) 2012-11-07 2013-11-04 System und Verfahren zur Dekodierung eines Videos
TW102140103A TW201424384A (zh) 2012-11-07 2013-11-05 解碼視訊的系統和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210440833.0A CN103813177A (zh) 2012-11-07 2012-11-07 一种视频解码系统和方法

Publications (1)

Publication Number Publication Date
CN103813177A true CN103813177A (zh) 2014-05-21

Family

ID=50622368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210440833.0A Pending CN103813177A (zh) 2012-11-07 2012-11-07 一种视频解码系统和方法

Country Status (3)

Country Link
US (1) US20140126637A1 (zh)
CN (1) CN103813177A (zh)
TW (1) TW201424384A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486633A (zh) * 2014-11-11 2015-04-01 三星电子(中国)研发中心 视频错误掩藏方法及装置
CN112823529A (zh) * 2018-11-29 2021-05-18 深圳市欢太科技有限公司 视频解码方法、装置、电子设备、计算机可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452006A (en) * 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
CN101072349A (zh) * 2006-06-08 2007-11-14 威盛电子股份有限公司 内容适应性可变长度编码的解码系统与方法
TW200835346A (en) * 2006-12-10 2008-08-16 Nemochips Inc Programmable video signal processor for video compression and decompression
US20090002378A1 (en) * 2004-10-13 2009-01-01 Matsushita Electric Industrial Co., Ltd. Pipeline Architecture for Video Encoder and Decoder
US20090028237A1 (en) * 2007-07-25 2009-01-29 Samsung Electronics Co., Ltd. Broadcasting processing apparatus and control method thereof
CN101795416A (zh) * 2009-02-02 2010-08-04 联发科技股份有限公司 误差补偿方法及视频处理装置
US20100260269A1 (en) * 2009-04-13 2010-10-14 Freescale Semiconductor, Inc. Video decoding with error detection and concealment
CN101960853A (zh) * 2008-02-26 2011-01-26 高通股份有限公司 视频解码器错误处置
CN102025993A (zh) * 2010-12-17 2011-04-20 深圳中兴力维技术有限公司 一种基于h.264的视频传输方法及系统
US20110206133A1 (en) * 2010-02-04 2011-08-25 Arm Limited Parallel parsing in a video decoder

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078616A (en) * 1997-03-13 2000-06-20 Sony Corporation Methods and apparatus for error concealment utilizing temporal domain motion vector estimation
JP2002142162A (ja) * 2000-10-30 2002-05-17 Fujitsu Ten Ltd ディジタル放送受信機の復調処理装置
KR100429020B1 (ko) * 2002-02-05 2004-04-29 (주)씨앤에스 테크놀로지 Mpeg-4 영상의 복호 방법
US9386326B2 (en) * 2012-10-05 2016-07-05 Nvidia Corporation Video decoding error concealment techniques

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452006A (en) * 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
US20090002378A1 (en) * 2004-10-13 2009-01-01 Matsushita Electric Industrial Co., Ltd. Pipeline Architecture for Video Encoder and Decoder
CN101072349A (zh) * 2006-06-08 2007-11-14 威盛电子股份有限公司 内容适应性可变长度编码的解码系统与方法
TW200835346A (en) * 2006-12-10 2008-08-16 Nemochips Inc Programmable video signal processor for video compression and decompression
US20090028237A1 (en) * 2007-07-25 2009-01-29 Samsung Electronics Co., Ltd. Broadcasting processing apparatus and control method thereof
CN101960853A (zh) * 2008-02-26 2011-01-26 高通股份有限公司 视频解码器错误处置
CN101795416A (zh) * 2009-02-02 2010-08-04 联发科技股份有限公司 误差补偿方法及视频处理装置
US20100260269A1 (en) * 2009-04-13 2010-10-14 Freescale Semiconductor, Inc. Video decoding with error detection and concealment
US20110206133A1 (en) * 2010-02-04 2011-08-25 Arm Limited Parallel parsing in a video decoder
CN102025993A (zh) * 2010-12-17 2011-04-20 深圳中兴力维技术有限公司 一种基于h.264的视频传输方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486633A (zh) * 2014-11-11 2015-04-01 三星电子(中国)研发中心 视频错误掩藏方法及装置
CN104486633B (zh) * 2014-11-11 2019-01-18 三星电子(中国)研发中心 视频错误掩藏方法及装置
CN112823529A (zh) * 2018-11-29 2021-05-18 深圳市欢太科技有限公司 视频解码方法、装置、电子设备、计算机可读存储介质
CN112823529B (zh) * 2018-11-29 2023-06-13 深圳市欢太科技有限公司 视频解码方法、装置、电子设备、计算机可读存储介质

Also Published As

Publication number Publication date
TW201424384A (zh) 2014-06-16
US20140126637A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
JP6481912B2 (ja) ビデオ画像符号化方法、ビデオ画像復号方法、符号化デバイス、および復号デバイス
US11394970B2 (en) Image encoding and decoding method and device
RU2613738C2 (ru) Сигнализация информации состояния для буфера декодированных картинок и списков опорных картинок
CN107710759B (zh) 转换系数编解码的方法及装置
CN101288315B (zh) 隐藏丢失视频帧的方法和装置
US20170048541A1 (en) Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit
US20170302935A1 (en) Predictive Coding/Decoding Method, Corresponding Coder/Decoder, and Electronic Device
CN101304538B (zh) Avs视频解码的错误检测与掩盖方法
CN1787641B (zh) 图像信息解码方法和图像信息编码方法
RU2009122491A (ru) Системы и способы для переключения каналов
JP2001218207A (ja) 可変長コーディング方法及び装置
US10250912B2 (en) Method and apparatus for entropy decoding with arithmetic decoding decoupled from variable-length decoding
JP6867611B2 (ja) 画像復号装置、画像復号方法及びプログラム
CN105373823A (zh) 动态二维码的生成、读取方法及其装置
FI3963888T3 (fi) Dekooderipuolen liikevektorien tarkennuksen (dmvr) koodaustyökalun käsittely viitekuvan uusintanäytteistykseen videokoodauksessa
CN101242540B (zh) 用于视频解码器芯片的差错控制方法
CN102769748B (zh) 运动矢量预测方法、装置及系统
CN116132696A (zh) 基于gpu的码流错误检测和反馈的方法及系统
CN103813177A (zh) 一种视频解码系统和方法
CN105474644A (zh) 帧处理与重现方法
US20140119445A1 (en) Method of concealing picture header errors in digital video decoding
CN101309427B (zh) 视频编码方法和装置
US20170085871A1 (en) Real time video coding system with error recovery using earlier reference picture
CN108093259B (zh) 图像运动估计方法、装置及计算机可读存储介质
JP2008508787A (ja) インター符号化系列向けのエラー隠蔽技術

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140521