CN106375767A - 混合视频解码器和相关的混合视频解码方法 - Google Patents

混合视频解码器和相关的混合视频解码方法 Download PDF

Info

Publication number
CN106375767A
CN106375767A CN201610581464.5A CN201610581464A CN106375767A CN 106375767 A CN106375767 A CN 106375767A CN 201610581464 A CN201610581464 A CN 201610581464A CN 106375767 A CN106375767 A CN 106375767A
Authority
CN
China
Prior art keywords
decoding
metadata
meta
data index
hardware
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.)
Withdrawn
Application number
CN201610581464.5A
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN106375767A publication Critical patent/CN106375767A/zh
Withdrawn legal-status Critical Current

Links

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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

本发明提供一种混合视频解码装置以及相关的混合视频解码方法。混合视频解码器包含硬件解码电路,处理一帧的至少一部分的视频解码过程的第一部分,其中视频解码过程的第一部分包含熵解码;软件解码电路,处理视频解码过程的第二部分;以及元数据访问系统,管理在硬件解码电路和软件解码电路之间传输的元数据。本发明的混合视频解码器以及相关的混合视频解码方法可以实现高效率的视频解码。

Description

混合视频解码器和相关的混合视频解码方法
【交叉引用】
本申请要求申请日为2015年7月24日,美国临时申请号为62/196,328的美国临时申请案的优先权,上述临时申请案的内容一并并入本申请。
【技术领域】
本发明有关于视频解码器设计,更具体来说,有关于混合视频解码器和相关的混合视频解码方法。
【背景技术】
传统的视频编码标准通常采用基于编码技术的块来充分利用空间和时间冗余。举例来说,基本的做法是将整个源帧分为多个块,对每个块执行预测,变换每个块的残值(residual)以及执行量化、扫描和熵编码。此外,视频编码器的内部解码环中产生的重构帧(reconstructed frame)用于为编码随后的块提供参考像素数据。举例来说,反向扫描、反向量化,以及反向变换可被包含在视频编码器的内部解码环中以恢复每一块的残值,其中残值将被加入至每一块的预测采样中,用于产生重构帧。视频解码器执行由视频编码器执行的视频编码处理的反向处理。举例来说,典型的视频解码器包含熵解码阶段和随后的解码阶段。
基于软件的视频解码器被广泛用于各种应用。然而,关于传统的基于软件的视频解码系统,由于对于连续的语法分析的高度依赖,熵解码阶段通常是性能瓶颈,并且不适合于并行处理。从而,需要具有改进的解码效率的创新的视频解码器。
【发明内容】
依据本发明的示范性实施例,提出一种混合视频解码器和相关的混合视频解码方法以解决上述问题。
依据本发明的一个实施例,提出一种混合视频解码器,包含硬件解码电路,处理一帧的至少一部分的视频解码过程的第一部分,其中视频解码过程的第一部分包含熵解码;软件解码电路,处理视频解码过程的第二部分;以及元数据访问系统,管理在硬件解码电路和软件解码电路之间传输的元数据。
依据本发明的另一实施例,提出一种混合视频解码方法,包含执行硬件解码,以处理一帧的至少一部分的视频解码过程的第一部分,其中视频解码过程的第一部分包含熵解码;执行软件解码,以处理视频解码过程的第二部分;以及管理在硬件解码和软件解码之间传输的元数据。
本发明的混合视频解码器以及相关的混合视频解码方法可以实现高效率的视频解码。
【附图说明】
图1是依据本发明实施例的混合视频解码器的示意图。
图2是依据本发明实施例的图1所示的元数据访问系统的第一范例实施的示意图。
图3是依据本发明实施例的图2中的控制器所采用的控制方法的流程图。
图4是依据本发明实施例的具有帧级管线的混合视频解码器的示意图。
图5是依据本发明实施例的帧级管线使用的元数据存储区域的示意图。
图6是依据本发明实施例的具有宏块级管线的混合视频解码器的示意图。
图7是依据本发明实施例的MB级管线使用的元数据存储区域的示意图。
图8是依据本发明实施例的具有片级管线的混合视频解码器的示意图。
图9是依据本发明实施例的片级管线使用的元数据存储区域的示意图。
图10是依据本发明实施例的具有单一元数据存储区域的混合视频解码器的示意图。
图11是依据本发明实施例的图1所示的元数据访问系统的第二范例实施的示意图。
图12是依据本发明实施例的图11中的控制器所采用的控制方法的流程图。
图13是依据本发明实施例的具有另一帧级管线的混合视频解码器的示意图。
图14是依据本发明实施例的另一帧级管线使用的元数据存储区域的示意图。
【具体实施方式】
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
图1是依据本发明实施例的混合视频解码器的示意图。混合视频解码装置100可为电子设备的一部分。混合视频解码装置100包含多个电路元件,例如硬件解码部分102、软件解码部分104、元数据访问系统106,以及一个或多个参考帧缓冲器108。在一个范例的设计中,硬件解码部分102可通过专用的硬件解码电路来实施,其中专用的硬件解码电路用于对一帧的至少一部分(例如,部分或全部)执行视频解码过程的第一部分,而软件解码部分104可通过多线程多核处理器系统来实施,其中多线程多核处理器系统用于对该帧的至少一部分(例如,部分或全部)执行视频解码过程的第二部分。举例来说,软件解码部分104可为中央处理单元(central processing unit,简写为CPU)系统、图像处理单元(graphicsprocessing unit,简写为GPU)系统,或数字信号处理器(digital signal processor,简写为DSP)系统。简言之,硬件解码部分102是负责硬件解码(基于纯硬件执行)的硬件解码电路,而软件解码部分104是负责软件解码(基于软件的执行来执行)的软件解码电路。
视频解码过程可由多个解码功能组成,包含反向扫描(inverse scan,IS)、反向量化(inverse quantization,IQ)、反向变换(IT)、帧内预测(intra prediction,“IP”)、运动补偿(motion compensation,MC)、帧内/帧间模式选择器(MUX)、重构、环路滤波(in-loopfilter)(例如,去块滤波)等。当前帧滤波后的采样自环路滤波产生至参考帧缓冲器108,以形成参考帧,其中参考帧将被运动补偿使用以产生下一帧的预测采样。视频解码过程的第一部分至少包含熵解码功能,视频解码过程的第二部分包含视频解码过程的其余解码功能。
如图1所示,硬件熵解码由硬件解码部分102执行,而随后的视频解码由软件解码部分104(例如,依据硬件熵解码的输出执行解码程序以执行随后的软件解码的CPU/GPU/DSP系统)执行。然而,这仅用作说明,并非为本发明的限制。在熵解码由硬件解码部分102执行的前提下,任一视频解码过程被分为基于硬件的解码过程和基于软件的解码过程的混合解码设计可被所提出的混合视频解码器100所采用。举例来说,在一个替代的设计中,硬件解码部分102可执行包含熵解码的硬件解码以及至少一个随后的解码操作(例如IS、IQ、IT、IP及MC)。该替代设计也落入本发明的范围内。
由于软件解码部分104可由多线程多核处理器系统实施,可以实现并行处理。如图1所示,软件解码部分104包含多个处理器核(例如,核1和核2),每个核能够运行多个线程(例如,线程1和线程2)。同时运行在相同处理器核或不同处理器核上的多个线程可处理不同帧或处理同一帧中的不同部分(例如,巨块(MB)、图块,或片(slice))。然而,这仅用作说明,并非是本发明的限制。在一个替代的设计中,软件解码部分104可利用单一线程多核处理器系统或多线程单核处理器系统实施。简而言之,本发明不限制处理器核心的数量及/或每一处理器核心支持的并发线程的数量。
与软件熵解码相比,由专用硬件执行的硬件熵解码具有较佳熵解码效率。因此,相比典型的基于软件的视频解码器,本发明所提出的混合视频解码器100避免了由基于软件的熵解码所导致的性能瓶颈问题。此外,随后的软件解码,包含帧内/帧间预测、重构、环内滤波等,可受益于处理器系统的并行处理能力。因此,本发明提出的混合视频解码器设计实现了一种高效的视频解码系统。
硬件解码部分102可将元数据(即,中间解码结果)写入至元数据访问系统106,而软件解码部分104可自元数据访问系统106读元数据(即,中间解码结果)并随后处理元数据(即,中间解码结果)以产生最终解码结果。在该实施例中,视频解码过程的第一部分包含熵解码,而视频解码过程的第二部分包含随后的解码操作。因此,硬件解码部分102所执行的硬件熵解码可通过使用专用数据结构将元数据(即,中间解码结果)写入至元数据访问系统106,而软件解码部分104执行的随后的软件解码可自元数据访问系统106读专用数据结构,解析该专用数据结构以获得元数据(即,中间解码结果),以及处理所获得的元数据(即,中间解码结果)以产生最终解码结果。举例来说,产生自熵解码的元数据可包含待被IS处理的残值,待被IP引用的帧内模式信息,以及待被MC引用的帧间模式和运动向量(motionvector,简写为MV)信息,其中,IS、IP和MC由软件解码部分104执行。
如图1所示,硬件解码部分102的输出被写入至元数据访问系统106,而软件解码部分104的输入自元数据访问系统106读出。因此,元数据访问系统106应被适当设计,以管理元数据写入和元数据读出,用于管理自硬件解码部分102传输至软件解码部分104的元数据。图2是依据本发明实施例的图1所示的元数据访问系统106的第一范例实施的示意图。元数据访问系统106包含控制器202和存储设备204。存储设备204储存在混合视频解码器100的硬件(HW)解码部分102和软件(SW)解码部分104之间传输的元数据。如上所述,硬件解码部分102处理视频解码过程的第一部分,而软件解码部分104处理视频解码过程的第二部分。存储设备204可使用单一存储单元(例如,单一存储设备)实施,或可利用多个存储单元(例如,多个存储设备)实施。换言之,存储设备204的存储空间可为单一存储单元的存储空间,或可为多个存储单元的存储空间的组合。此外,存储设备204可为内部存储设备(例如静态随即存取存储器(static random access memory,简写为SRAM)或触发器(flip-flop)),可为外部存储设备(例如动态随机存取存储器(dynamic random access memory,简写为DRAM)、闪存,或硬盘),或可为由内部存储设备和外部存储设备组成的混合存储设备。
在该实施例中,存储设备204的存储空间可被配置为具有一个或多个元数据存储区域206_1-206_N分配在其中,其中N为正整数且N≧1。多个元数据存储区域206_1-206_N中的每一个具有一个相关的状态指示符,指示元数据存储区域是否可用(例如,空的)或不可用(例如,满的)。当状态指示符指示相关的元数据存储区域可用(例如,空的)时,意味着相关的元数据存储区域可被HW解码部分102使用。当状态指示符指示相关的元数据存储区域不可用(例如,满的)时,意味着相关的元数据存储区域已经具有了被HW解码部分102写入的,需被SW解码部分104处理的元数据,并且不可被HW解码部分102用于储存更多HW产生的元数据。
控制器202用于依据硬件解码部分102的操作状态和软件解码部分104的操作状态中的至少一个管理存储设备204的存储空间。举例来说,但并非限制,控制器202可装载并执行软件SW或固件FW以实现预期功能。在该实施例中,控制器202能够自HW解码部分102接收“解码完成”信号,自SW解码部分104接收“处理完成”信号,产生“分配元数据存储区域”命令以将可用元数据存储区域分配给HW解码部分102,产生“调用(call)”命令以触发SW解码部分104开始SW解码,以及产生“释放元数据存储区域”命令至存储设备204以使得具有状态指示符“不可用/满”的不可用元数据存储区域成为具有状态指示符“可用/空”的可用元数据存储区域。
控制器202能够监测被分配在存储设备204中的每一元数据存储区域的状态指示符,以适当管理被HW解码部分102和SW解码部分104访问的存储设备204。控制器202的进一步的细节描述如下。
图3是依据本发明实施例的图2中的控制器202所采用的控制方法的流程图。假定结果基本相同,不需要按照图3所示的准确顺序执行步骤。初始,被分配在存储设备204中的元数据存储区域206_1-206_N(N≧1)中的每一个具有状态指示符“可用/空”。因此,在步骤302,控制器202将第一元数据存储区域(自元数据存储区域206_1-206_N中选出的可用元数据存储区域)分配给HW解码部分102,并触发HW解码部分102以开始当前帧的至少一部分(例如,一帧、一个MB、一个图块,或一片)的HW解码(即,解码过程的第一部分)。在视频解码过程的第一部分开始后,HW解码部分102传输元数据至控制器202分配的第一元数据存储区域。在步骤304,控制器202检查视频解码过程的第一部分是否完成。举例来说,控制器202检查HW解码部分102是否产生“解码完成”信号。若控制器202接收到“解码完成”信号,流程进入步骤306;否则,控制器202保持检查视频解码过程的第一部分是否完成。请注意,当视频解码过程的第一部分被执行或视频解码过程的第一部分被完成之后,控制器202分配的第一元数据存储区域被设置为具有状态指示符“不可用/满”。即,由于第一元数据存储区域具有等待被随后的SW解码处理的元数据,第一元数据存储区域成为控制器202不可用的元数据存储区域。
在步骤306,控制器202指示SW解码部分104开始当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的随后的SW解码(即,视频解码过程的第二部分)。因此,第一元数据存储区域中的HW产生的元数据被SW解码部分104读取并在SW解码部分104由随后的SW解码处理。请注意,步骤306是在一个元数据存储区域中的元数据准备好随后的SW解码时,可以在流程图的任意时间被执行的任务。
在步骤308中,控制器202检查是否有更多比特流数据(例如,更多帧,更多MB,更多图块,或更多片)需要被解码。若否,控制方法结束;否则,流程进入步骤310。在步骤310,控制器202检查存储设备204是否具有任意元数据存储区域具有状态指示符“可用/空”。若是,流程进入步骤302,且控制器202将第二元数据存储区域(自元数据存储区域206_1-206_N中选出的可用元数据存储区域)分配给HW解码部分102,并触发HW解码部分102以开始下一帧的HW解码或开始帧的一部分(例如,当前帧中的下一MB/图块/片或下一帧的头(leading)MB/图块/片)的HW解码。
若步骤310发现存储设备204目前没有元数据存储区域具有状态指示符“可用/空”,流程进入步骤312。在步骤312,控制器202检查视频解码过程的第二部分是否完成。举例来说,控制器202检查SW解码部分104是否产生“处理完成”信号。若控制器202收到“处理完成”信号,流程进入步骤314;否则,控制器202保持检查视频解码过程的第二部分是否完成。在储存于第一元数据存储区域的元数据被SW解码部分104撷取并处理之后,当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的视频解码过程完成,且储存于第一元数据存储区域的元数据不再被需要。在步骤314,控制器202指示存储设备204释放第一元数据存储区域,从而使得第一元数据存储区域具有状态指示符“可用/空”。由于存储设备204具有可用元数据存储区域(即,刚被释放的第一元数据存储区域),控制器202可将第一元数据存储区域分配给HW解码部分102,并触发HW解码部分102以开始下一帧的HW解码或开始帧的一部分(例如,当前帧中的下一MB/图块/片或下一帧的头MB/图块/片)的HW解码。
由于视频解码过程被分为HW解码以及随后的SW解码,图2所示的HW解码部分102和SW解码部分104可被配置为形成解码管线以实现较佳解码性能。下面提出了基于HW解码部分102和SW解码部分104的数种解码管线设计。
请一并参考图4和图5。图4是依据本发明实施例的具有帧级管线的混合视频解码器的示意图。图5是依据本发明实施例的帧级管线使用的元数据存储区域的示意图。如图4所示,待被混合视频解码器100解码的连续的帧F0-F4被逐个馈入至HW解码部分102。由于帧级管线由HW解码部分102和SW解码部分104形成,SW解码部分104不开始帧F0的SW解码,直至HW解码部分102结束对帧F0的HW解码,SW解码部分104不开始帧F1的SW解码,直至HW解码部分102结束对帧F1的HW解码,SW解码部分104不开始帧F2的SW解码,直至HW解码部分102结束对帧F2的HW解码,SW解码部分104不开始帧F3的SW解码,直至HW解码部分102结束对帧F3的HW解码,SW解码部分104不开始帧F4的SW解码,直至HW解码部分102结束对帧F4的HW解码。
举例来说,但并非限制,假定存储设备204具有三个元数据存储区域206_1-206_3。如图5所示,元数据存储区域206_1被分配给HW解码部分102以储存与帧F0的HW解码相关的元数据,元数据存储区域206_2被分配给HW解码部分102以储存与帧F1的HW解码相关的元数据,元数据存储区域206_3被分配给HW解码部分102以储存与帧F2的HW解码相关的元数据。在该实施例中,帧F1的HW解码的处理时间和帧F2的HW解码的处理时间与帧F0的SW解码的处理时间重叠。由于在HW解码部分102结束帧F2的HW解码之后,SW解码部分104结束帧F0的SW解码,在帧F2的HW解码完成时,没有可用的元数据存储区域。因此,在帧F2的HW解码完成之后,下一帧F3的HW解码不能立即开始。在帧F0的SW解码完成之后,元数据存储区域206_1被释放,并被分配给HW解码部分102。此时,帧F3的HW解码可被开始。在该实施例中,帧F3的HW解码的处理时间与帧F1的SW解码的处理时间重叠。
类似地,在HW解码部分102结束帧F3的HW解码之后,SW解码部分104结束帧F1的SW解码。由于元数据存储区域206_2是仍然储存与帧F1相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域,元数据存储区域206_3是仍然储存与帧F2相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域,元数据存储区域206_1是仍然储存与帧F3相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域的事实,在帧F3的HW解码完成时,没有可用的元数据存储区域。因此,在帧F3的HW解码完成之后,下一帧F4的HW解码不能立即开始。在帧F1的SW解码完成之后,元数据存储区域206_2被释放,并被分配给HW解码部分102。此时,帧F4的HW解码可被开始。在该实施例中,帧F4的HW解码的处理时间与帧F2的SW解码的处理时间重叠。
请一并参考图6和图7。图6是依据本发明实施例的具有宏块(MB)级管线的混合视频解码器的示意图。图7是依据本发明实施例的MB级管线使用的元数据存储区域的示意图。如图6所示,待被混合视频解码器100解码的连续的MB MB0-MB4被逐个馈入至HW解码部分102。由于MB级管线由HW解码部分102和SW解码部分104形成,SW解码部分104不开始宏块MB0的SW解码,直至HW解码部分102结束对宏块MB0的HW解码,SW解码部分104不开始宏块MB1的SW解码,直至HW解码部分102结束对宏块MB1的HW解码,SW解码部分104不开始宏块MB2的SW解码,直至HW解码部分102结束对宏块MB2的HW解码,SW解码部分104不开始宏块MB3的SW解码,直至HW解码部分102结束对宏块MB3的HW解码,SW解码部分104不开始宏块MB4的SW解码,直至HW解码部分102结束对宏块MB4的HW解码。
举例来说,但并非限制,假定存储设备204具有三个元数据存储区域206_1-206_3。如图7所示,元数据存储区域206_1被分配给HW解码部分102以储存与宏块MB0的HW解码相关的元数据,元数据存储区域206_2被分配给HW解码部分102以储存与宏块MB1的HW解码相关的元数据,元数据存储区域206_3被分配给HW解码部分102以储存与宏块MB2的HW解码相关的元数据。在该实施例中,宏块MB1的HW解码的处理时间和宏块MB2的HW解码的处理时间与宏块MB0的SW解码的处理时间重叠。由于在HW解码部分102结束宏块MB2的HW解码之后,SW解码部分104结束宏块MB0的SW解码,在宏块MB2的HW解码完成时,没有可用的元数据存储区域。因此,在宏块MB2的HW解码完成之后,下一宏块MB3的HW解码不能立即开始。在宏块MB0的SW解码完成之后,元数据存储区域206_1被释放,并被分配给HW解码部分102。此时,宏块MB3的HW解码可被开始。在该实施例中,宏块MB3的HW解码的处理时间与宏块MB1的SW解码的处理时间重叠。
类似地,在HW解码部分102结束宏块MB3的HW解码之后,SW解码部分104结束宏块MB1的SW解码。由于元数据存储区域206_2是仍然储存与宏块MB1相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域,元数据存储区域206_3是仍然储存与宏块MB2相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域,元数据存储区域206_1是仍然储存与宏块MB3相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域的事实,在宏块MB3的HW解码完成时,没有可用的元数据存储区域。因此,在宏块MB3的HW解码完成之后,下一宏块MB4的HW解码不能立即开始。在宏块MB1的SW解码完成之后,元数据存储区域206_2被释放,并被分配给HW解码部分102。此时,宏块MB4的HW解码可被开始。在该实施例中,宏块MB4的HW解码的处理时间与宏块MB2的SW解码的处理时间重叠。
请一并参考图8和图9。图8是依据本发明实施例的具有片级管线的混合视频解码器的示意图。图9是依据本发明实施例的片级管线使用的元数据存储区域的示意图。如图8所示,待被混合视频解码器100解码的连续的片SL0-SL4被逐个馈入至HW解码部分102。由于片级管线由HW解码部分102和SW解码部分104形成,SW解码部分104不开始片SL0的SW解码,直至HW解码部分102结束对片SL0的HW解码,SW解码部分104不开始片SL1的SW解码,直至HW解码部分102结束对片SL1的HW解码,SW解码部分104不开始片SL2的SW解码,直至HW解码部分102结束对片SL2的HW解码,SW解码部分104不开始片SL3的SW解码,直至HW解码部分102结束对片SL3的HW解码,SW解码部分104不开始片SL4的SW解码,直至HW解码部分102结束对片SL4的HW解码。
举例来说,但并非限制,假定存储设备204具有三个元数据存储区域206_1-206_3。如图9所示,元数据存储区域206_1被分配给HW解码部分102以储存与片SL0的HW解码相关的元数据,元数据存储区域206_2被分配给HW解码部分102以储存与片SL1的HW解码相关的元数据,元数据存储区域206_3被分配给HW解码部分102以储存与片SL2的HW解码相关的元数据。在该实施例中,片SL1的HW解码的处理时间和片SL2的HW解码的处理时间与片SL0的SW解码的处理时间重叠。由于在HW解码部分102结束片SL2的HW解码之后,SW解码部分104结束片SL0的SW解码,在片SL2的HW解码完成时,没有可用的元数据存储区域。因此,在片SL2的HW解码完成之后,下一片SL3的HW解码不能立即开始。在片SL0的SW解码完成之后,元数据存储区域206_1被释放,并被分配给HW解码部分102。此时,片SL3的HW解码可被开始。在该实施例中,片SL3的HW解码的处理时间与片SL1的SW解码的处理时间重叠。
类似地,在HW解码部分102结束片SL3的HW解码之后,SW解码部分104结束片SL1的SW解码。由于元数据存储区域206_2是仍然储存与片SL1相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域,元数据存储区域206_3是仍然储存与片SL2相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域,元数据存储区域206_1是仍然储存与片SL3相关且尚未被SW解码处理的某些元数据的不可用元数据存储区域的事实,在片SL3的HW解码完成时,没有可用的元数据存储区域。因此,在片SL3的HW解码完成之后,下一片SL4的HW解码不能立即开始。在片SL1的SW解码完成之后,元数据存储区域206_2被释放,并被分配给HW解码部分102。因此,在片SL1的SW解码完成之后,片SL4的HW解码可被开始。在该实施例中,片SL4的HW解码的处理时间与片SL2的SW解码的处理时间重叠。
在上述实施例中,存储设备204被配置为具有多个元数据存储区域(例如,206_1-206_3)分配于其中。可选地,存储设备204可被配置为仅具有一个元数据存储区域分配于其中,这样该单一的元数据存储区域被HW解码部分102(用于任一帧的HW解码)和SW解码部分104(用于任一帧的SW解码)所共享。如上所述,存储设备204可由单一存储单元或多个存储单元实施。因此,该单一元数据存储区域可被分配在单一存储单元或多个存储单元中。
在一个范例的设计中,上述单一元数据存储区域可被配置为用作环形缓冲器。图10是依据本发明实施例的具有单一元数据存储区域的混合视频解码器的示意图,其中该单一的元数据存储区域被硬件解码部分(用于任一帧的硬件解码)和软件解码部分(用于任一帧的软件解码)所共享。存储设备204仅具有一个元数据存储区域1002配置有其中。举例来说,元数据存储区域1002可用作用于储存产生自HW解码部分102的元数据,并将所储存的元数据提供给SW解码部分104的环形缓冲器。因此,由于环形缓冲器的固有特性,元数据存储区域102可被视为具有大存储能力的元数据存储区域。在该实施例中,控制器202被设置成保持写指针WPTR_HW和读指针RPTR_SW。HW解码部分102和SW解码部分104以竞速模式(racing mode)运行。举例来说,HW解码部分102依据写指针WPTR_HW将元数据写入至元数据存储区域1002中,其中每次新元数据被写入至元数据存储区域1002中时写指针WPTR_HW被更新;且SW解码部分104依据读指针RPTR_SW自元数据存储区域1002读所储存的元数据,其中每次旧元数据被从元数据存储区域1002中被读出时读指针RPTR_SW被更新。因此,HW解码部分102将元数据写入至元数据存储区域1002中,而SW解码部分104竞速来解析并处理元数据存储区域1002中所储存的元数据。请注意,写指针WPTR_HW应当被避免超过(passing)读指针RPTR_SW,以避免覆写尚未被读取的元数据,且读指针RPTR_SW应当被避免超过写指针WPTR_HW,以避免读取错误的数据。在写指针WPTR_HW追上或者接近读指针RPTR_SW的情况下,HW解码部分102可被指示来停止输出元数据至元数据存储区域1002。在读指针RPTR_SW追上或者接近写指针WPTR_HW另一的情况下,SW解码部分104可被指示来停止自元数据存储区域1002取得元数据。然而,其仅用作说明,并非为本发明的限制。举例来说,仅有一个元数据存储区域可被硬件解码部分和软件解码部分访问的混合视频解码器也落入本发明的范围内。
当混合视频解码器采用HW解码和SW解码的管线时,每一元数据存储区域可被配置为足够大以容纳与帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)相关的所有元数据,其中帧的该至少一部分是管线的基本处理单元。举例来说,关于图4所示的上述帧级管线,元数据存储区域206_1-206_3中的每一个可被配置为足够大以容纳与任一帧相关的所有元数据。再举例来说,关于图6所示的上述MB级管线,元数据存储区域206_1-206_3中的每一个可被配置为足够大以容纳与任一巨块相关的所有元数据。又举例来说,关于图8所示的上述片级管线,元数据存储区域206_1-206_3中的每一个可被配置为足够大以容纳与任一片相关的所有元数据。然而,对于真实的应用,在实际的比特流解析之前,一个元数据存储区域所需的大小是未知的。因此,为确保与管线的一个基本处理单元(例如,一帧,一个MB,一个图块,或一片)相关的所有元数据可被储存于一个元数据存储区域中,元数据存储区域可被故意配置为具有大尺寸,从而导致生产成本不可避免的增加。为解决该问题,本发明因此提出使用一种修改的元数据存储区域,其中该修改的元数据存储区域不够大以容纳与帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)(即,管线的一个基本处理单元)相关的所有元数据。
图11是依据本发明实施例的图1所示的元数据访问系统106的第二范例实施的示意图。在该实施例中,元数据访问系统106包含控制器1102和存储设备1104。举例来说,但并非限制,控制器1102可装载并执行软件SW或固件FW以实现预期功能。存储设备1104用于储存在混合视频解码器100的硬件(HW)解码部分102和软件(SW)解码部分104之间传输的元数据。除了“解码完成”信号,“暂停”信号可被有条件的自HW解码部分102产生至控制1102。除了“分配元数据存储区域”命令,“恢复”信号可被有条件的自控制1102产生至HW解码部分102。
存储设备1104可使用单一存储单元(例如,单一存储设备)实施,或可利用多个存储单元(例如,多个存储设备)实施。换言之,存储设备1104的存储空间可为单一存储单元的存储空间,或可为多个存储单元的存储空间的组合。此外,存储设备1104可为内部存储设备(例如静态随即存取存储器(SRAM)或触发器),可为外部存储设备(例如动态随机存取存储器(DRAM)、闪存,或硬盘),或可为由内部存储设备和外部存储设备组成的混合存储设备。在该实施例中,存储设备1104的存储空间可被配置为具有一个或多个元数据存储区域1106_1-1106_N分配在其中,其中N为正整数且N≧1。元数据存储区域1106_1-1106_N中的每一个不需要足够大以容纳与帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)(即,管线的一个基本处理单元)相关的所有元数据。
多个元数据存储区域1106_1-1106_N中的每一个具有一个相关的状态指示符,指示元数据存储区域是否可用(例如,空的)或不可用(例如,满的)。当状态指示符指示相关的元数据存储区域可用(例如,空的)时,意味着相关的元数据存储区域可被HW解码部分102使用。当状态指示符指示相关的元数据存储区域不可用(例如,满的)时,意味着相关的元数据存储区域已经被HW解码部分102写入,从而具有了需被SW解码部分104处理的元数据,并且不可被HW解码部分102用于储存更多HW产生的元数据。
控制器1102用于依据硬件解码部分102的操作状态和软件解码部分104的操作状态中的至少一个管理存储设备1104的存储空间。在该实施例中,控制器1102能够自HW解码部分102接收“解码完成”信号,自HW解码部分102接收“暂停”信号,自SW解码部分104接收“处理完成”信号,产生“分配元数据存储区域”命令以将可用元数据存储区域分配给HW解码部分102,产生“恢复”命令以指示HW解码部分102回复HW解码,产生“调用”命令以触发SW解码部分104开始SW解码,以及产生“释放元数据存储区域”命令至存储设备1104以使得具有状态指示符“不可用/满”的不可用元数据存储区域成为具有状态指示符“可用/空”的可用元数据存储区域。
控制器1102能够监测被分配在存储设备1104中的每一元数据存储区域的状态指示符,以适当管理被HW解码部分102和SW解码部分104访问的存储设备1104。控制器1102的进一步的细节描述如下。
图12是依据本发明实施例的图11中的控制器1102所采用的控制方法的流程图。假定结果基本相同,不需要按照图12所示的准确顺序执行步骤。初始,被分配在存储设备1104中的元数据存储区域1106_1-1106_N(N≧1)中的每一个具有状态指示符“可用/空”。因此,在步骤1202,控制器1102将第一元数据存储区域(自元数据存储区域1106_1-1106_N中选出的可用元数据存储区域)分配给HW解码部分102,并触发HW解码部分102以开始当前帧的至少一部分(例如,一个帧、一个MB、一个图块,或一片)的HW解码(即,解码过程的第一部分)。在视频解码过程的第一部分开始后,HW解码部分102产生元数据至控制器1102分配的第一元数据存储区域。由于元数据存储区域1106_1-1106_N中的每一个不保证具有有效存储空间以容纳与帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)相关的所有元数据,有可能在当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的视频解码过程的第一部分完成之前,分配给HW解码部分102的第一元数据存储区域已满,而HW解码部分102相应地产生“暂停”信号。在步骤1204,控制器1102检查视频解码过程的第一部分是否完成或暂停。举例来说,控制器1102检查HW解码部分102是否产生“解码完成”信号或“暂停”信号。若控制器1102接收到“解码完成”信号和“暂停”信号中的一个,流程进入步骤1206;否则,控制器1102保持检查视频解码过程的第一部分是否完成或暂停。请注意,当视频解码过程的第一部分被执行或视频解码过程的第一部分被完成/暂停之后,控制器1102分配的第一元数据存储区域被设置为具有状态指示符“不可用/满”。即,由于第一元数据存储区域具有等待被随后的SW解码处理的元数据,第一元数据存储区域成为控制器1102不可用的元数据存储区域。
在步骤1206,控制器1102指示SW解码部分104开始对储存在第一元数据存储区域中的元数据的随后的SW解码(即,视频解码过程的第二部分)。因此,第一元数据存储区域中的HW产生的元数据被SW解码部分104读取并在SW解码部分104由随后的SW解码处理。请注意,步骤1206是在一个元数据存储区域中的元数据准备好随后的SW解码时,可以在流程图的任意时间被执行的任务。
在步骤1208中,控制器1102检查是否有更多比特流数据(例如,当前帧的至少一部分的剩余部分)需要被解码。若否,当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的解码结束;否则,流程进入步骤1210。举例来说,当步骤1204决定HW解码部分102产生“解码完成”信号时,意味着在当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的视频解码过程的第一部分完成之前,分配给HW解码部分102的第一元数据存储区域没有满。因此,步骤1208决定当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的整个视频解码过程(包含HW解码和SW解码)完成。然而,当步骤1204决定HW解码部分102产生“暂停”信号时,意味着在当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的视频解码过程的第一部分完成之前,分配给HW解码部分102的第一元数据存储区域已满。因此,步骤1208决定当前帧的至少一部分(例如,一帧,一个MB,一个图块,或一片)的整个视频解码过程(包含HW解码和SW解码)尚未完成,且流程进入步骤1210。
在步骤1210,控制器1102检查存储设备1104是否有任一元数据存储区域具有状态指示符“可用/空”。若是,流程进入步骤1216,且控制器1102将第二元数据存储区域(自元数据存储区域1106_1-1106_N中选出的可用元数据存储区域)分配给HW解码部分102,并触发HW解码部分102恢复当前帧的至少一部分的剩余部分的HW解码(即,视频解码过程的第一部分)。
若步骤1210发现存储设备1104目前没有元数据存储区域具有状态指示符“可用/空”,流程进入步骤1212。在步骤1212,控制器1102检查基于储存于第一元数据存储区域的元数据执行的视频解码过程的第二部分是否完成。举例来说,控制器1102检查SW解码部分104是否产生“处理完成”信号。若控制器1102收到“处理完成”信号,流程进入步骤1214;否则,控制器1102保持检查基于储存于第一元数据存储区域的元数据执行的视频解码过程的第二部分是否完成。在储存于第一元数据存储区域的元数据被SW解码部分104撷取并处理之后,储存于第一元数据存储区域的元数据视频解码过程完成,且储存于第一元数据存储区域的元数据不再被需要。在步骤1214,控制器1102指示存储设备1104释放第一元数据存储区域,从而使得第一元数据存储区域具有状态指示符“可用/空”。由于存储设备1104具有可用元数据存储区域(即,刚被释放的第一元数据存储区域),控制器1102可将第一元数据存储区域分配给HW解码部分102,并触发HW解码部分102以恢复当前帧的至少一部分的剩余部分的HW解码(即,视频解码过程的第一部分)。
由于视频解码过程被分为HW解码以及随后的SW解码,图11所示的HW解码部分102和SW解码部分104可被配置为形成解码管线以实现较佳解码性能。在该实施例中,每一个元数据存储区域不保证具有有效存储空间以容纳与一个基本管线处理单元(例如,一帧,一个MB,一个图块,或一片)相关的所有元数据。当当前使用的元数据存储区域已满,并且存在至少一个可用元数据存储区域时,HW解码部分102可自当前元数据存储区域切换至可用元数据存储区域,以继续一个基本管线处理单元的HW解码。当当前使用的元数据存储区域已满,并且不存在可用元数据存储区域时,HW解码部分102可暂停一个基本管线处理单元的HW解码,直至一个元数据存储区域成为可用的。因此,HW解码部分102可自当前元数据存储区域切换至可用元数据存储区域,以恢复一个基本管线处理单元的HW解码。总而言之,HW解码部分102可使用多个可用元数据存储区域以完成一个基本管线处理单元(例如,一帧,一个MB,一个图块,或一片)的HW解码。
请一并参考图13和图14。图13是依据本发明实施例的具有另一帧级管线的混合视频解码器的示意图。图14是依据本发明实施例的另一帧级管线使用的元数据存储区域的示意图。如图13所示,待被混合视频解码器100解码的连续的帧F0和F1被逐个馈入至HW解码部分102。由于帧级管线由HW解码部分102和SW解码部分104形成,SW解码部分104不开始帧F0的SW解码,直至HW解码部分102结束对帧F0的HW解码,且SW解码部分104不开始帧F1的SW解码,直至HW解码部分102结束对帧F1的HW解码。
举例来说,但并非限制,假定存储设备1104仅具有两个元数据存储区域1106_1和1106_2。如图14所示,元数据存储区域1106_1首先被分配给HW解码部分102以储存与帧F0的HW解码相关的元数据。然而,在帧F0的第一部分P0的HW解码完成之后,元数据存储区域1106_1已满。因此,可用元数据存储区域1106_2被分配给HW解码部分102以储存与帧F0的HW解码相关的随后的元数据。此外,储存于元数据存储区域1106_1中的元数据的SW解码开始。
在帧F0的第二部分P1的HW解码完成之后,元数据存储区域1106_2已满。在该实施例中,帧F0的第二部分P1的HW解码的处理时间和帧F0的第一部分P0的SW解码的处理时间重叠。然而,由于在HW解码部分102结束帧F0的第二部分P1的HW解码之后,SW解码部分104结束帧F0的第一部分P0的SW解码,作为结果,在帧F0的第二部分P1的HW解码完成时,没有可用的元数据存储区域。因此,在帧F0的第二部分P1的HW解码完成之后,帧F0的第三部分P2的HW解码不能立即开始。在F0的第一部分P0的SW解码完成之后,元数据存储区域1106_1被释放,并被分配给HW解码部分102。此时,帧F0的第三部分P2的HW解码可被开始。此外,在帧F0的第一部分P0的SW解码完成之后,帧F0的第二部分P1的SW解码开始。在该实施例中,帧F0的第三部分P2的HW解码的处理时间和帧F0的第二部分P1的SW解码的处理时间重叠。
类似地,由于在HW解码部分102结束帧F0的第三部分P2的HW解码之后,SW解码部分104结束帧F0的第二部分P1的SW解码,在帧F0的第三部分P2的HW解码完成时,没有可用的元数据存储区域。因此,在帧F0的第三部分P2的HW解码完成之后,第二帧F1的第一部分P3的HW解码不能立即开始。在帧F0的第二部分P1的SW解码完成之后,元数据存储区域1106_2被释放,并被分配给HW解码部分102。此时,帧F1的第一部分P3的HW解码可被开始。
在上述实施例中,存储设备1104被配置为具有多个元数据存储区域(例如,1106_1-1106_2)分配于其中。可选地,存储设备1104可被配置为仅具有一个元数据存储区域分配于其中,这样该单一的元数据存储区域被HW解码部分102(用于任一帧的HW解码)和SW解码部分104(用于任一帧的SW解码)所共享。如上所述,存储设备1104可由单一存储单元或多个存储单元实施。因此,该单一元数据存储区域可被分配在单一存储单元或多个存储单元中。
以上所述仅为本发明的较佳实施例,本领域相关的技术人员依据本发明的精神所做的等效变化与修改,都应当涵盖在权利要求内。

Claims (24)

1.一种混合视频解码器,其特征在于,包含:
硬件解码电路,处理一帧的至少一部分的视频解码过程的第一部分,其中所述视频解码过程的所述第一部分包含熵解码;
软件解码电路,处理所述视频解码过程的第二部分;以及
元数据访问系统,管理在所述硬件解码电路和所述软件解码电路之间传输的元数据。
2.根据权利要求1所述的混合视频解码器,其特征在于,所述元数据访问系统包含:
存储设备,储存在所述硬件解码电路和所述软件解码电路之间传输的所述元数据;以及
控制器,依据所述硬件解码电路的操作状态和所述软件解码电路的操作状态中的至少一个管理所述存储设备的存储空间。
3.根据权利要求2所述的混合视频解码器,其特征在于,所述存储设备具有被分配在所述存储空间中的至少一个元数据储存区域,且所述元数据存储区域用于储存产生自所述硬件解码电路的所述元数据,以及将储存的所述元数据提供至所述软件解码电路。
4.根据权利要求3所述的混合视频解码器,其特征在于,所述控制器将所述元数据存储区域分配给所述硬件解码电路,并触发所述硬件解码电路以开始所述视频解码过程的所述第一部分。
5.根据权利要求3所述的混合视频解码器,其特征在于,所述元数据存储区域足够大以容纳与所述帧的所述至少一部分相关的所有元数据。
6.根据权利要求5所述的混合视频解码器,其特征在于,当所述硬件解码电路通知所述视频解码过程的所述第一部分完成时,所述控制器触发所述软件解码电路以开始所述视频解码过程的所述第二部分。
7.根据权利要求6所述的混合视频解码器,其特征在于,当所述软件解码电路通知所述视频解码过程的所述第二部分完成时,所述控制器释放被分配给所述硬件解码电路的所述元数据存储区域。
8.根据权利要求3所述的混合视频解码器,其特征在于,所述元数据存储区域不足够大以容纳与所述帧的所述至少一部分相关的所有元数据。
9.根据权利要求8所述的混合视频解码器,其特征在于,当所述硬件解码电路通知由于上述元数据存储区域已满,所述视频解码过程的所述第一部分暂停时,所述控制器触发所述软件解码电路以开始所述视频解码过程的所述第二部分。
10.根据权利要求9所述的混合视频解码器,其特征在于,当所述存储设备中的任一元数据存储区域可用时,所述控制器指示所述硬件解码电路恢复所述视频解码过程的所述第一部分。
11.根据权利要求9所述的混合视频解码器,其特征在于,当所述软件解码电路通知所述视频解码过程的所述第二部分完成时,所述控制器释放被分配给所述硬件解码电路的所述元数据存储区域并指示所述硬件解码电路恢复所述视频解码过程的所述第一部分。
12.根据权利要求3所述的混合视频解码器,其特征在于,所述存储设备仅具有一个元数据存储区域被分配在其中;所述控制器维持写指针和读指针;所述硬件解码电路依据所述写指针将所述元数据写入仅有的所述一个元数据存储区域;且所述软件解码电路依据所述读指针自仅有的所述一个元数据储存区域读被储存的所述元数据。
13.一种混合视频解码方法,其特征在于,包含:
执行硬件解码,以处理一帧的至少一部分的视频解码过程的第一部分,其中所述视频解码过程的所述第一部分包含熵解码;
执行软件解码,以处理所述视频解码过程的第二部分;以及
管理在所述硬件解码和所述软件解码之间传输的元数据。
14.根据权利要求13所述的混合视频解码方法,其特征在于,管理在所述硬件解码和所述软件解码之间传输的所述元数据包含:
将在所述硬件解码和所述软件解码之间传输的所述元数据储存至存储设备中;以及
依据所述硬件解码的操作状态和所述软件解码的操作状态中的至少一个管理所述存储设备的存储空间。
15.根据权利要求14所述的混合视频解码方法,其特征在于,将在所述硬件解码和所述软件解码之间传输的所述元数据储存至所述存储设备中包含:
配置所述存储设备,以使所述存储设备具有至少一个元数据储存区域被分配在所述存储空间中;以及
利用所述元数据存储区域储存产生自所述硬件解码的所述元数据,以及将储存的所述元数据提供至所述软件解码。
16.根据权利要求15所述的混合视频解码方法,其特征在于,依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间包含:
将所述元数据存储区域分配给所述硬件解码;以及
触发所述硬件解码以开始所述视频解码过程的所述第一部分。
17.根据权利要求15所述的混合视频解码方法,其特征在于,所述元数据存储区域足够大以容纳与所述帧的所述至少一部分相关的所有元数据。
18.根据权利要求17所述的混合视频解码方法,其特征在于,依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间更包含:
当所述硬件解码通知所述视频解码过程的所述第一部分完成时,触发所述软件解码以开始所述视频解码过程的所述第二部分。
19.根据权利要求18所述的混合视频解码方法,其特征在于,依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间更包含:
当所述软件解码通知所述视频解码过程的所述第二部分完成时,释放被分配给所述硬件解码的所述元数据存储区域。
20.根据权利要求15所述的混合视频解码方法,其特征在于,所述元数据存储区域不足够大以容纳与所述帧的所述至少一部分相关的所有元数据。
21.根据权利要求20所述的混合视频解码方法,其特征在于,依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间更包含:
当所述硬件解码通知由于所述元数据存储区域已满,所述视频解码过程的所述第一部分暂停时,触发所述软件解码以开始所述视频解码过程的所述第二部分。
22.根据权利要求21所述的混合视频解码方法,其特征在于,依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间更包含:
当所述存储设备中的任一元数据存储区域可用时,指示所述硬件解码恢复 所述视频解码过程的所述第一部分。
23.根据权利要求21所述的混合视频解码方法,其特征在于,依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间更包含:
当所述软件解码通知所述视频解码过程的所述第二部分完成时,释放被分配给所述硬件解码的所述元数据存储区域并指示所述硬件解码恢复所述视频解码过程的所述第一部分。
24.根据权利要求15所述的混合视频解码方法,其特征在于,所述存储设备被配置为仅具有一个元数据存储区域被分配在其中;以及依据所述硬件解码的所述操作状态和所述软件解码的所述操作状态中的至少一个管理所述存储设备的所述存储空间更包含:
维持写指针和读指针;其中所述硬件解码依据所述写指针将所述元数据写入仅有的所述一个元数据存储区域;且所述软件解码依据所述读指针自仅有的所述一个元数据储存区域读被储存的所述元数据。
CN201610581464.5A 2015-07-24 2016-07-22 混合视频解码器和相关的混合视频解码方法 Withdrawn CN106375767A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562196328P 2015-07-24 2015-07-24
US62/196,328 2015-07-24
US15/209,774 2016-07-14
US15/209,774 US20170026648A1 (en) 2015-07-24 2016-07-14 Hybrid video decoder and associated hybrid video decoding method

Publications (1)

Publication Number Publication Date
CN106375767A true CN106375767A (zh) 2017-02-01

Family

ID=57837533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610581464.5A Withdrawn CN106375767A (zh) 2015-07-24 2016-07-22 混合视频解码器和相关的混合视频解码方法

Country Status (2)

Country Link
US (1) US20170026648A1 (zh)
CN (1) CN106375767A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107613302A (zh) * 2017-09-13 2018-01-19 珠海格力电器股份有限公司 解码方法及装置、存储介质、处理器
CN108737893A (zh) * 2018-06-05 2018-11-02 上海哔哩哔哩科技有限公司 基于混合解码实现快速首帧出图的视频播放方法、装置和介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203097A (zh) * 2020-09-30 2021-01-08 苏州臻迪智能科技有限公司 一种自适应视频解码方法、装置,终端设备及存储介质
CN114979772B (zh) * 2021-02-24 2023-05-12 腾讯科技(深圳)有限公司 解码器的配置方法、装置、介质以及电子设备
KR20230022061A (ko) 2021-08-06 2023-02-14 삼성전자주식회사 디코딩 장치 및 그의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383968A (zh) * 2008-09-27 2009-03-11 北京创毅视讯科技有限公司 视频解码器、视频解码方法和移动多媒体终端芯片
CN101710986A (zh) * 2009-11-18 2010-05-19 中兴通讯股份有限公司 基于同构多核处理器的h.264并行解码方法和系统
CN101981934A (zh) * 2008-03-28 2011-02-23 夏普株式会社 用于并行视频编码和解码的方法、设备和系统
CN102625109A (zh) * 2012-03-30 2012-08-01 浙江大学 一种基于多核处理器实现的mpeg-2至h.264的转码方法
CN102783035A (zh) * 2010-02-18 2012-11-14 捷讯研究有限公司 并行熵编码和解码方法和设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901153B1 (en) * 1996-03-14 2005-05-31 Ati Technologies Inc. Hybrid software/hardware video decoder for personal computer
US5990958A (en) * 1997-06-17 1999-11-23 National Semiconductor Corporation Apparatus and method for MPEG video decompression
US8913667B2 (en) * 1999-11-09 2014-12-16 Broadcom Corporation Video decoding system having a programmable variable-length decoder
JP3680846B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 動画像の圧縮装置及びそれを用いた撮像装置
US20050094729A1 (en) * 2003-08-08 2005-05-05 Visionflow, Inc. Software and hardware partitioning for multi-standard video compression and decompression
US8233527B2 (en) * 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
TWI387347B (zh) * 2009-02-18 2013-02-21 Novatek Microelectronics Corp 圖像解碼器,參考圖資訊溝通介面以及參考圖控制方法
US8699582B2 (en) * 2010-10-06 2014-04-15 Qualcomm Incorporated Context-based adaptations of video decoder
US9179144B2 (en) * 2012-11-28 2015-11-03 Cisco Technology, Inc. Fast switching hybrid video decoder
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101981934A (zh) * 2008-03-28 2011-02-23 夏普株式会社 用于并行视频编码和解码的方法、设备和系统
CN101383968A (zh) * 2008-09-27 2009-03-11 北京创毅视讯科技有限公司 视频解码器、视频解码方法和移动多媒体终端芯片
CN101710986A (zh) * 2009-11-18 2010-05-19 中兴通讯股份有限公司 基于同构多核处理器的h.264并行解码方法和系统
CN102783035A (zh) * 2010-02-18 2012-11-14 捷讯研究有限公司 并行熵编码和解码方法和设备
CN102625109A (zh) * 2012-03-30 2012-08-01 浙江大学 一种基于多核处理器实现的mpeg-2至h.264的转码方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107613302A (zh) * 2017-09-13 2018-01-19 珠海格力电器股份有限公司 解码方法及装置、存储介质、处理器
CN107613302B (zh) * 2017-09-13 2020-10-02 珠海格力电器股份有限公司 解码方法及装置、存储介质、处理器
CN108737893A (zh) * 2018-06-05 2018-11-02 上海哔哩哔哩科技有限公司 基于混合解码实现快速首帧出图的视频播放方法、装置和介质
CN108737893B (zh) * 2018-06-05 2021-04-30 上海哔哩哔哩科技有限公司 基于混合解码实现快速首帧出图的视频播放方法、装置和介质
US11128879B2 (en) 2018-06-05 2021-09-21 Shanghai Bilibili Technology Co., Ltd. Hybrid decoding

Also Published As

Publication number Publication date
US20170026648A1 (en) 2017-01-26

Similar Documents

Publication Publication Date Title
CN106375767A (zh) 混合视频解码器和相关的混合视频解码方法
RU2651426C1 (ru) Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
CN101616323B (zh) 对视频编码数据流进行解码的系统和方法
CN102308579B (zh) 位深可分级中使用平滑参考帧的运动补偿的方法和设备
US9143793B2 (en) Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder
US9336558B2 (en) Wavefront encoding with parallel bit stream encoding
CN101072350B (zh) 译码系统及其译码方法
US20150091927A1 (en) Wavefront order to scan order synchronization
CN104971499B (zh) 游戏提供服务器
US8532196B2 (en) Decoding device, recording medium, and decoding method for coded data
US9380314B2 (en) Pixel retrieval for frame reconstruction
CN109862357A (zh) 低延迟的云游戏图像编码方法、装置、设备和存储介质
CN106358043A (zh) 混合视频解码装置和相关的混合视频解码方法
US10057568B2 (en) Parallel parsing video decoder and method
CN105874800A (zh) 在相同帧中处理多个图像区域或处理多个帧的多个句法解析电路的句法解析装置和相关句法解析方法
KR20140114436A (ko) 멀티-쓰레딩된 텍스처 디코딩
CN107197296A (zh) 一种基于COStream的HEVC并行编码方法和系统
JP2007259323A (ja) 画像復号化装置
US20130148717A1 (en) Video processing system and method for parallel processing of video data
CN106412597A (zh) 多核视频解码器中的工作负载均衡
CN101715127B (zh) 一种环路滤波方法和环路滤波系统
Han et al. A real-time ultra-high definition video decoder of AVS3 on heterogeneous systems
US9756352B2 (en) Video decoding apparatus and method
CN102123280B (zh) 解码方法及解码装置
KR20110122412A (ko) 멀티 스레드 기반의 비디오 디코더 및 디코딩 방법

Legal Events

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

Application publication date: 20170201

WW01 Invention patent application withdrawn after publication