CN103379330A - 码流数据的解码预处理方法及解码方法,处理器,解码器 - Google Patents
码流数据的解码预处理方法及解码方法,处理器,解码器 Download PDFInfo
- Publication number
- CN103379330A CN103379330A CN2012101266499A CN201210126649A CN103379330A CN 103379330 A CN103379330 A CN 103379330A CN 2012101266499 A CN2012101266499 A CN 2012101266499A CN 201210126649 A CN201210126649 A CN 201210126649A CN 103379330 A CN103379330 A CN 103379330A
- Authority
- CN
- China
- Prior art keywords
- decoding
- bit stream
- stream data
- operational order
- frame
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种码流数据的解码预处理方法和解码方法,处理器,解码器和解码系统,所述码流数据的解码预处理方法包括:确定所述码流数据的帧的解码参数;生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息。本发明的技术方案降低了解码系统的复杂度,提高了其性能,增强了解码的实时性。
Description
技术领域
本发明涉及多媒体数据处理和嵌入式系统技术领域,尤其是一种码流数据的解码预处理方法和解码方法,处理器,解码器和解码系统。
背景技术
随着技术的进步,码流数据的解码方式逐渐增多,且对解码的效率、质量、功耗的要求也逐渐提高。以视频解码为例,目前视频解码的方式主要有三种:纯软件解码、全加速的纯硬件解码以及半加速的软硬件协同解码。纯软件解码方案的主要优点是对多种视频标准可灵活扩展、易于开发和更新、风险小,缺点是功耗大,实时性差,占用较多的软件系统负荷。全加速的纯硬件解码方案的主要优点是功耗低、解码性能强、基本不占用系统负荷,缺点是开发难度大,设计复杂度高,风险大,对视频标准的可扩展性差。半加速的软硬件协同解码方案既有全加速的纯硬件解码方案的大部分优点,又有纯软件方案的灵活性和易扩展性等优点。它的缺点在于软硬件协同过于频繁,在一定程度上影响了整个软件系统的性能。
视频解码由于其复杂性,实时性以及高带宽需求,一直是多媒体音视频领域应用的瓶颈。特别是在诸如手机,MP4播放器等多媒体终端设备上,这种限制尤其突出。这些多媒体终端设备大都为嵌入式系统,其存在CPU的运算能力不强,内存的访问速度不快等问题,因此多媒体终端设备上多采用硬件加速器进行解码。
硬件加速器大体有两种模式,一种是前述的全加速的纯硬件解码模式,另外一种是前述的半加速的软硬件协同解码模式。第一种模式下硬件加速器完成视频解码的绝大部分工作,只有类似帧头或片头信息等复杂度非常低的处理由软件完成;第二种模式下硬件加速器完成视频解码过程中复杂度高、运算过程规整的部分,硬件模块之间的控制,软硬件的同步以及头信息解码都由软件完成。相关的技术可以参考公开号为US 2008/0285648A1的美国专利申请。
但是如何降低解码系统的复杂度,提高其性能,增强解码的实时性,提升解码系统的可扩展性成为目前亟待解决的问题之一。
发明内容
本发明解决的问题是降低解码系统的复杂度,提高其性能,增强解码的实时性,提升解码系统的可扩展性。
为解决上述问题,本发明提供了一种码流数据的解码预处理方法,包括:
确定所述码流数据的帧的解码参数;
生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息。
为解决上述问题,本发明还提供了一种码流数据的解码方法,包括:
获取命令队列,所述命令队列为控制解码码流数据的帧的操作命令的集合,所述操作命令携带基于解码参数确定的控制信息及数据信息;
解析所述命令队列中的操作命令,以对码流数据进行解码。
为解决上述问题,本发明还提供了一种处理器,包括:
确定单元,用以确定所述码流数据的帧的解码参数;
生成单元,用以生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息。
为解决上述问题,本发明还提供了一种解码器,包括:
获取单元,用以获取命令队列,所述命令队列为控制解码码流数据的帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息;
解码单元,用以解析所述命令队列中的操作命令,以对码流数据进行解码。
为解决上述问题,本发明还提供了一种码流数据的解码系统,包括:
如上所述的处理器;
如上所述的解码器。
与现有技术相比,本发明具有以下优点:
先对码流数据进行预分析,基于分析结果生成命令队列,所述命令队列控制解码的过程。由于对码流数据进行了前期处理,因此降低了解码系统的复杂度,便于系统对整个解码过程的控制。针对不同的码流数据可以产生不同的命令队列,增强了系统的灵活度和扩展性。
基于命令队列,实施解码,在解码的过程中,可以继续生成控制后续码流数据解码的命令队列,使得解码前期处理与解码并行运作。这不仅提高了解码系统的效率,而且由于码流数据的解码前期处理相对解码较为简单,解码前期处理与解码并行运作还可以减轻整个系统的负荷,增强解码的实时性,降低了功耗。
以帧为单位进行解码,基于当前帧的命令队列解码当前帧,并在解码完当前帧后,将下一帧设置为新的当前帧。这可以有效的降低解码出错率,防止出现命令队列与帧的对应关系混乱的情况。
附图说明
图1是本发明实施例提供的码流数据的解码预处理方法的流程示意图;
图2是本发明实施例提供的码流数据的解码方法的流程示意图;
图3是本发明实施例提供的处理器的结构示意图;
图4是本发明实施例提供的解码器的结构示意图;
图5是本发明实施例提供的解码单元的结构示意图;
图6是本发明提供的解码系统进行解码的一实例示意图;
图7是本发明提供的解码系统进行解码的又一实例示意图;
图8是本发明实施例提供的解码系统的工作流程图;
图9是本发明提供的命令队列的一实例示意图;
图10是本发明提供的命令队列的又一实例示意图;
图11和图12是本发明提供的操作命令携带的控制信息的实例示意图;
图13是本发明提供的操作命令携带的数据信息的实例示意图;
图14是本发明提供的操作命令携带的控制信息的另一实例示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
图1是本发明实施例提供的码流数据的解码预处理方法的流程示意图,所述码流数据的解码预处理方法包括:
步骤S1,确定所述码流数据的帧的解码参数;
步骤S2,生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息。
所述步骤S1中,所述码流数据可以是视频码流数据或者音频码流数据。获取码流数据之后,预分析所述码流数据,比如,分析所述码流数据的类型、结构、解码方式等,基于码流数据的类型、结构、解码方式等确定所述码流数据的帧的解码参数。所述解码参数包括解码所述码流数据的帧所需的数据,由于码流数据的类型、结构、解码方式等的不同,确定的解码参数也不同,具体实施过程中,以实际情况为准确定解码参数。
以视频码流数据为例,视频码流数据中包含若干帧,每一帧包含至少一个宏块。解码视频码流数据时,以帧为单位进行解码,解码每一帧时,以宏块为单位解码所述帧。所述解码参数包括:帧包括的宏块的类型,运动补偿的尺寸和参考帧的位置,反量化的量化参数中的一种或几种的组合。在具体实施中,所述解码参数还可以包括帧头信息,帧长等,根据实际情况确定解码所需的解码参数。
所述步骤S2中,所述命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令,所述命令队列中的操作命令基于帧的解码过程排序。解码的码流数据的类型不同,所述命令队列中包含的操作命令也有所不同,根据具体实施情况,生成符合实际需求的命令队列。
所述操作命令中携带基于解码参数确定的控制信息及数据信息。所述控制信息包括执行所述操作命令的进度信息,所述操作命令的长度信息,所述操作命令在命令队列中的位置信息等,所述数据信息包括所述操作命令的操作内容等。
若采用硬件加速器(也称解码器)解码所述码流数据,所述控制信息中还可以包括解码器的属性信息等。所述解码器的属性信息包括:所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址。
所述操作命令通常以比特流的形式生成,其长度通常为32比特。每条操作命令占据至少一条比特流。所述操作命令中的控制信息和数据信息也可以以比特流的形式生成。
以帧为单位解码所述码流数据时,以帧为单位分析所述码流数据,所述解码参数包括解码所述码流数据的当前帧所需的数据,所述命令队列为控制解码所述当前帧的操作命令的集合。
可选的,所述码流数据的解码预处理方法还包括:生成所述当前帧的命令队列后,将下一帧设为当前帧,基于所述步骤S1和S2,继续生成当前帧(新的当前帧)的命令队列。
生成所述命令队列后,根据所述命令队列进行解码,图2是本发明实施例提供的码流数据的解码方法的流程示意图,所述码流数据的解码方法包括:
步骤S3,获取命令队列,所述命令队列为控制解码码流数据的帧的操作命令的集合,所述操作命令携带基于解码参数确定的控制信息及数据信息;
步骤S4,解析所述命令队列中的操作命令,以对码流数据进行解码。
所述步骤S3中,所述命令队列为前述步骤S2中生成的命令队列。
所述步骤S4中,所述解析所述命令队列中的操作命令包括从命令队列中解析出解码参数,控制信息及数据信息等信息。基于解析出的信息,进行解码。
解析所述命令队列中的操作命令后,对码流数据进行解码包括:以帧为单位解码所述码流数据。所述码流数据的帧包括宏块,以帧为单位解码所述码流数据包括:以宏块为单位解码所述码流数据的帧。
其中,以帧为单位解码所述码流数据包括:基于所述码流数据的当前帧的命令队列中的执行所述操作命令的进度信息执行所述操作命令的操作内容。具体实施中可以是,基于所述当前帧的命令队列中的执行所述操作命令的进度信息确定已完成上一操作命令后,执行所述当前帧的命令队列中的下一操作命令的操作内容。
所述控制信息还包括所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址。所述以帧为单位解码所述码流数据还包括:基于所述解码器中参与解码的解码模块的标识确定参与解码的解码模块,并基于所述解码模块包含的寄存器的数目和所述寄存器的偏移地址设置所述参与解码的解码模块中的寄存器的偏移量。
所述命令队列中的操作命令基于帧的解码过程排序。按照操作命令在命令队列中的排序,执行完一条操作命令之后,执行下一条操作命令的操作内容。执行完成所述操作命令的操作内容后,更新执行所述操作命令的进度信息。
以视频码流数据为例,其命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令,所述命令队列中的操作命令基于帧的解码过程排序。对视频码流数据进行解码时,基于所述熵解码操作命令及所述当前帧包括的宏块的类型哈夫曼解码所述当前帧包括的宏块,并基于所述运动补偿的尺寸和参考帧的位置确定所述当前帧的运动补偿插值;基于所述查询熵解码结束操作命令,确定完成哈夫曼解码所述当前帧后,基于所述反变换操作命令及所述反量化的量化参数,对所述当前帧进行反量化和反变换;基于所述重建操作命令,重建宏块。
以帧为单位解码时,所述命令队列为解码所述码流数据的当前帧的命令队列。解码完所述码流数据的当前帧后,将所述码流数据的下一帧设置为当前帧,并获取当前帧(新的当前帧)的命令队列。
在解码当前帧的过程中,可以生成新的当前帧(下一帧)的命令队列,并在完成旧的当前帧的解码之后,获取新的当前帧的命令队列进行新的当前帧的解码。这可以保证了码流数据的前期处理与解码的进度基本同步,防止出现两者的进度差异过大,频繁协同两者工作而影响整个系统性能的情况,并且码流数据的前期处理相对较为简单,两者同步进行时不会影响解码的质量。
本领域技术人员可以理解,本发明技术方案的全部或部分是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质可以是ROM、RAM、磁碟、光盘等。
图3是本发明实施例提供的处理器的结构示意图,所述处理器包括:
确定单元1,用以确定所述码流数据的解码参数;
生成单元3,用以生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息,生成单元3与确定单元1相连。
所述处理器还包括发送单元(图中未显示),用以将所述命令队列发送至所述解码器,并将所述码流数据的下一帧设置为当前帧。
所述处理器还包括接收单元(图中未显示),用以接收所述解码器发送的处理信号,所述发送单元在所述接收单元接收所述解码器发送的处理信号后,将所述命令队列发送至所述解码器。
所述处理器并未真正的对码流数据进行解码,而是对码流数据进行预分析,确定解码所述的解码参数,并生成命令队列,将所述命令队列发送至解码器,由解码器基于所述命令队列实现码流数据的解码。
所述操作命令中携带基于所述解码参数确定的控制信息包括解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址,执行所述操作命令的进度信息,所述数据信息包括所述操作命令的操作内容。
生成单元3以比特流的形式生成所述操作命令。每条操作命令占据至少一条比特流。所述生成单元3包括排序单元(图中未显示),所述排序单元用以将所述命令队列中的操作命令基于帧的解码过程排序。
处理器将命令队列发送至解码器后,由解码器进行解码。图4是本发明实施例提供的解码器的结构示意图,所述解码器包括:
获取单元2,用以获取命令队列,所述命令队列为控制解码码流数据的帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息;
解码单元4,用以解析所述命令队列中的操作命令,以对码流数据进行解码,解码单元4与获取单元2相连。
所述解码器还包括发送单元(图中未显示),用以在所述解码单元4解码完所述码流数据的当前帧,并将所述码流数据的下一帧设置为当前帧后,发送处理信号;所述获取单元2在所述发送单元发送所述处理信号后,获取当前帧的命令队列。
所述解码单元4以帧为单位解码所述码流数据,进一步,所述码流数据的帧包括宏块,所述解码单元4以宏块为单位解码所述码流数据的帧。
所述操作命令中的控制信息包括解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址,执行所述操作命令的进度信息,所述数据信息包括所述操作命令的操作内容。
所述解码单元4中包括至少一个解码模块,图5是本发明实施例提供的解码单元的结构示意图,如图5所示,按解码模块的用途分类,所述解码模块可以分为熵解码模块41,反变换模块42和重建模块43。熵解码模块41,反变换模块42和重建模块43顺次连接。具体实施过程中,所述解码模块也可以按照其他属性进行分类,例如解码模块的结构、功能等,不受上述内容限制。
所述解码单元4还包括管理模块45,与熵解码模块41,反变换模块42,重建模块43相连。管理模块45用以基于所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址调用解码模块,基于所述码流数据的当前帧的命令队列中的执行所述操作命令的进度信息控制所述解码模块执行所述操作命令的操作内容。
所述管理模块45基于所述当前帧的命令队列中的执行所述操作命令的进度信息确定已完成上一操作命令后,调用相应的解码模块执行所述当前帧的命令队列中的下一操作命令的操作内容。
所述管理模块45还用以在所述解码模块执行完成所述操作命令的操作内容后,更新执行所述操作命令的进度信息。
每种解码模块对应完成一条或几条命令队列中的操作命令。例如,熵解码模块41对应当前宏块头分析操作命令和熵解码操作命令,反变换模块42对应所述反变换操作命令等。管理模块45根据命令队列中的操作命令包含的控制信息和数据信息确定哪些解码模块参与解码,以及参与解码的解码模块对应哪些操作命令。
解码模块还可以基于执行所述操作命令的进度信息,设置其状态信息。命令队列中的操作命令按照解码顺序排列,管理模块45控制解码模块按照解码顺序进行解码。解码模块完成其对应的操作命令之后,后续的解码模块才可以执行其他操作命令,并且参与解码的解码模块完成上一帧的解码工作后,才可以进行下一帧的解码工作。
以视频码流数据为例,其命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令,所述命令队列中的操作命令基于帧的解码过程排序。管理模块45基于命令队列中的控制信息确定参与解码的解码模块为:熵解码模块41,反变换模块42,重建模块43。管理模块45控制解码模块按照解码顺序解码。
由于反变换操作(对应反变换操作命令)要在熵解码操作结束(对应熵解码操作命令和熵解码结束操作命令)之后才能进行,因此管理模块45基于执行熵解码结束操作命令的进度信息控制反变换模块42在熵解码模块41执行完熵解码后,执行反变换操作命令。具体实施中,所述管理模块45控制所述熵解码模块41基于所述熵解码操作命令及所述当前帧包括的宏块的类型,采用哈夫曼解码所述当前帧包括的宏块,并基于所述运动补偿的尺寸和参考帧的位置确定所述当前帧的运动补偿插值;控制所述反变换模块42基于所述查询熵解码结束操作命令,确定完成哈夫曼解码所述当前帧后,基于所述反变换操作命令及所述反量化的量化参数,对所述当前帧进行反量化和反变换;控制所述重建模块43基于所述重建操作命令,重建宏块。
所述参与解码的解码模块完成该解码模块对应的操作命令的操作内容后,更新该解码模块的状态信息。
所述处理器和解码器可以集成在一起形成解码系统。其中,处理器负责码流数据的前期处理,确定解码参数生成包含操作命令的命令队列,再发送至解码器。解码器获取命令队列后,解析所述命令队列中的操作命令,对码流数据进行解码。
图6是本发明提供的解码系统进行解码的一实例示意图,图7是本发明提供的解码系统进行解码的又一实例示意图,下面以视频码流为例结合图6和图7说明本发明的技术方案。
视频码流中包含帧,帧包含宏块。视频可以看成是图像的运动过程,解码视频码流时,每一帧的解码包括帧内解码和帧间解码。帧包括宏块,解码每一帧时,以宏块为单位进行解码,包括帧内宏块解码和帧间宏块解码。图6为解码系统进行帧间宏块解码的示意图,图7为解码系统进行帧内宏块解码的示意图。
参考图6和图7,处理器执行步骤100,可以是对宏块头进行分析,得到宏块的类型,确定运动补偿的尺寸和参考帧的位置以及反量化的量化参数等,基于所述解码参数生成命令队列,所述命令队列包括宏块头解析命令,运动补偿操作命令,熵解码操作命令,查询熵解码结束操作命令,反变换操作命令,重建操作命令,宏块重建结束操作命令,下一宏块头解析操作命令等。具体参考图9和图10,图9为命令队列中与帧间解码相关的操作命令的示意图,图10为命令队列中与帧内解码相关的操作命令的示意图。命令队列中的操作命令通常按照执行的先后顺序排序。
处理器将生成的命令队列发送至解码器,解码器获取到命令队列后,进行解析,按照解析出的操作命令(例如,图9和图10所示的宏块头解析命令,运动补偿操作命令,熵解码操作命令,查询熵解码结束操作命令,反变换操作命令,重建操作命令,宏块重建结束操作命令,下一宏块头解析命令等)确定参与解码的解码模块,并进行最终的解码操作。解码器执行的部分操作命令如图6(图7)中的步骤200所示,包括熵解码,运动补偿差值,帧内预测,反量化,反变换,重建,滤波输出等。
图8是本发明实施例提供的解码系统的工作流程图,处理器向解码器发送命令队列时,以帧为单位发送。如图8所示,fx:第x帧视频,x为0,1,2...;swx;软件产生第x帧命令队列;hwx:硬件解码第x帧;cex:第x帧命令队列启动;cdx:第x帧硬件解码结束;idle:软件空闲。举例来讲,处理器生成包括解码第一帧所需的操作命令的命令队列(简称第一帧的命令队列),并将该命令队列发送至解码器,解码器获取第一帧的命令队列后,进行第一帧的解码。此时,处理器处理第二帧,也就是生成第二帧的命令队列,并在解码器完成第一帧的解码之后,将第二帧的命令队列发送至解码器,解码器获取第二帧的命令队列后,进行第二帧的解码,处理器处理第三帧,后续类推。
处理器以帧为单位确定解码该帧的解码参数并生成该帧的命令队列,每帧的命令队列中包含解码该帧的操作命令。解码器以帧为单位解码该码流数据,解码所述码流数据的帧所需的数据为解码所述码流数据的当前帧所述的数据,发送至解码器的命令队列也是控制解码器解码所述当前帧的操作命令的集合(也可以称为当前帧的命令队列)。
本实施例中是以帧为单位,每次生成解码一帧的命令队列,解码完一帧之后,生成下一帧的命令队列。在其他实施例中,可以一次生成解码两帧及其以上帧的命令队列,不受本实施例内容的限制。
处理器每次向解码器发送一帧的命令队列,在解码器解码的过程中,继续后续帧的命令队列的生成。这种同步处理的方式,既可以避免解码器获取过多的命令队列产生混乱,也可以尽量保持两者同步,减小过大的差距,提供整个系统的性能。
图11和图12是本发明提供的操作命令携带的控制信息的实例示意图。参考图11和图12,所述操作命令以比特流的形式生成,每条操作命令的长度均为32比特,按照0至31进行编号。
如图11所示,该条操作命令中,编号31至29的比特表示参与解码的解码模块的标识(图11所示的解码模块id号),编号28至24的比特表示解码模块中寄存器的数目(本实施例中解码模块中包含8个寄存器,图11中记录了3个,图12中记录了剩余的5个),编号23至16的比特表示标识为2的寄存器在本解码模块中的位置偏移,编号15至8的比特表示标识为1的寄存器在本解码模块中的位置偏移,编号7至0的比特表示标识为0的寄存器在本解码模块中的位置偏移。
在实际操作中,解码模块中参与工作的寄存器不止3个,可能超过3个。超出的寄存器在本解码模块中的位置偏移记录在新的操作命令中,该操作命令也是以比特流的形式生成。
如图12所示,本实施例中,解码模块中参与工作的寄存器的数目为8个,其中前3个寄存器的信息在图11所示的操作命令中记录,剩余5个寄存器的信息在图12所示的控制信息中记录。编号31至29的比特标识为7的寄存器在本解码模块中的位置偏移,编号28至24的比特标识为6的寄存器在本解码模块中的位置偏移,编号23至16的比特表示标识为5的寄存器在本解码模块中的位置偏移,编号15至8的比特表示标识为4的寄存器在本解码模块中的位置偏移,编号7至0的比特表示标识为3的寄存器在本解码模块中的位置偏移。操作命令的内容不同,占用的比特的长度也不同,具体实施中以实际情况为准。
图13是本发明提供的操作命令携带的数据信息的实例示意图,所述数据信息包括操作命令的操作内容。图13的实例记录的是解码模块的内容,也就是每个解码模块具体进行的操作内容。解码器获取命令队列后,解析该命令队列,确定参与的解码模块并确定每个解码模块对应处理的操作命令,将解码模块对应处理的操作命令及解码参数等信息记录为解码模块的内容。例如,熵解码命令的具体操作内容是熵解码,采用哈夫曼解码等。解码模块的内容也是一个长度为32的比特流,按照0至31进行编号。
图14是本发明提供的操作命令携带的控制信息的另一实例示意图,图14的控制信息记录的是解码模块上的状态信息,也就是执行操作命令的进度信息,也是一个长度为32的比特流,按照0至31进行编号。其中编号31至24的比特为比特位移数与图11或图12中寄存器的偏移地址对应,该偏移值对应图13中的比特流,编号23至12的比特为掩码,根据编号31至24中偏移值在图13的比特流中截取对应的值,编号11至0的比特为期望值,该值由解码器填写。若解码过程中实际值和掩码进行与操作后的结果和期望值相同,表示该解码模块完成上一帧的命令队列中对应的操作命令,可以进行下一帧的操作,若值不相同,表示该解码模块未完成上一帧的命令队列中对应的操作命令,需等待完成上一帧的操作,才能进行下一帧的操作。
例如,比特位移数为比特8∶5(占据四位比特),则掩码为1111,若期望值为0,解码过程中实际值和掩码进行与操作后的结果,若和期望值0相同,表示该解码模块完成上一帧的命令队列中对应的操作指令;若不相同,表示该解码模块未完成上一帧的命令对中中对应的操作指令。
本发明的技术方案至少具有以下优点:
处理器仅对码流数据进行预分析,将生成命令队列发送至解码器;解码器解析获取的命令队列,并实施解码。这不仅充分利用了软件的灵活性、易扩展性的优点,又利用了解码器功耗低、解码能力强的优点。处理器与解码器并行解码,减轻了整个系统的负荷,增强了解码的实时性。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (40)
1.一种码流数据的解码预处理方法,其特征在于,包括:
确定所述码流数据的帧的解码参数;
生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息。
2.如权利要求1所述的码流数据的解码预处理方法,其特征在于,所述解码参数包括解码所述码流数据的当前帧所需的数据,所述命令队列为控制解码所述当前帧的操作命令的集合;所述码流数据的解码预处理方法还包括:生成所述当前帧的命令队列后,将下一帧设为当前帧。
3.如权利要求1所述的码流数据的解码预处理方法,其特征在于,所述操作命令以比特流的形式生成。
4.如权利要求1所述的码流数据的解码预处理方法,其特征在于,所述码流数据的帧包括宏块,所述解码参数包括:所述帧包括的宏块的类型,运动补偿的尺寸和参考帧的位置,反量化的量化参数。
5.如权利要求1所述的码流数据的解码预处理方法,其特征在于,所述命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令,所述命令队列中的操作命令基于帧的解码过程排序。
6.如权利要求1所述的码流数据的解码预处理方法,其特征在于,所述控制信息包括执行所述操作命令的进度信息,所述数据信息包括所述操作命令的操作内容。
7.如权利要求6所述的码流数据的解码预处理方法,其特征在于,所述码流数据由解码器解码时,所述控制信息还包括所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址。
8.如权利要求1所述的码流数据的解码预处理方法,其特征在于,所述码流数据为视频码流数据。
9.一种码流数据的解码方法,其特征在于,包括:
获取命令队列,所述命令队列为控制解码码流数据的帧的操作命令的集合,所述操作命令携带基于解码参数确定的控制信息及数据信息;
解析所述命令队列中的操作命令,以对码流数据进行解码。
10.如权利要求9所述的码流数据的解码方法,其特征在于,所述命令队列为解码所述码流数据的当前帧的命令队列;所述码流数据的解码方法还包括:
解码完所述当前帧后,将所述码流数据的下一帧设置为当前帧,并获取当前帧的命令队列。
11.如权利要求9所述的码流数据的解码方法,其特征在于,所述码流数据的帧包括宏块,所述对码流数据进行解码包括:以宏块为单位解码所述码流数据的帧。
12.如权利要求11所述的码流数据的解码方法,其特征在于,所述解码参数包括:所述码流数据中的帧包括的宏块的类型,反量化的量化参数,运动补偿的尺寸和参考帧的位置。
13.如权利要求12所述的码流数据的解码方法,其特征在于,所述命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令,所述命令队列中的操作命令基于帧的解码过程排序。
14.如权利要求13所述的码流数据的解码方法,其特征在于,所述控制信息包括执行所述操作命令的进度信息,所述数据信息包括所述操作命令的操作内容。
15.如权利要求14所述的码流数据的解码方法,其特征在于,所述以帧为单位解码所述码流数据包括:基于所述码流数据的当前帧的命令队列中的执行所述操作命令的进度信息执行所述操作命令的操作内容。
16.如权利要求15所述的码流数据的解码方法,其特征在于,所述基于所述码流数据的当前帧的命令队列中的执行所述操作命令的进度信息执行所述操作命令的操作内容包括:基于所述当前帧的命令队列中的执行所述操作命令的进度信息确定已完成上一操作命令后,执行所述当前帧的命令队列中的下一操作命令的操作内容。
17.如权利要求16所述的码流数据的解码方法,其特征在于,还包括:执行完成所述操作命令的操作内容后,更新执行所述操作命令的进度信息。
18.如权利要求15所述的码流数据的解码方法,其特征在于,所述解码方法由解码器执行时,所述控制信息还包括所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址。
19.如权利要求18所述的码流数据的解码方法,其特征在于,所述以帧为单位解码所述码流数据还包括:基于所述解码器中参与解码的解码模块的标识确定参与解码的解码模块,并基于所述解码模块包含的寄存器的数目和所述寄存器的偏移地址设置所述参与解码的解码模块中的寄存器的偏移量。
20.如权利要求9所述的码流数据的解码方法,其特征在于,所述码流数据为视频码流数据。
21.一种处理器,其特征在于,包括:
确定单元,用以确定所述码流数据的帧的解码参数;
生成单元,用以生成命令队列,所述命令队列为控制解码所述帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息。
22.如权利要求21所述的处理器,其特征在于,所述解码参数包括解码所述码流数据的当前帧所述的数据,所述命令队列为控制解码所述当前帧的操作命令的集合;所述处理器还包括发送单元,用以将所述命令队列发送至解码器,并将所述码流数据的下一帧设置为当前帧。
23.如权利要求22所述的处理器,其特征在于,还包括接收单元,用以接收所述解码器发送的处理信号,所述发送单元在所述接收单元接收所述解码器发送的处理信号后,将所述命令队列发送至所述解码器。
24.如权利要求21所述的处理器,其特征在于,所述生成单元以比特流的形式生成所述命令队列。
25.如权利要求21所述的处理器,其特征在于,所述码流数据的帧包括宏块,所述解码参数包括:所述帧包括的宏块的类型,运动补偿的尺寸和参考帧的位置,反量化的量化参数。
26.如权利要求21所述的处理器,其特征在于,所述命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令;所述生成单元包括排序单元,所述排序单元用以将所述命令队列中的操作命令基于帧的解码过程排序。
27.如权利要求21所述的处理器,其特征在于,所述控制信息包括解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址,执行所述操作命令的进度信息,所述数据信息包括所述操作命令的操作内容。
28.如权利要求21所述的处理器,其特征在于,所述码流数据为视频码流数据。
29.一种解码器,其特征在于,包括:
获取单元,用以获取命令队列,所述命令队列为控制解码码流数据的帧的操作命令的集合,所述操作命令携带基于所述解码参数确定的控制信息及数据信息;
解码单元,用以解析所述命令队列中的操作命令,以对码流数据进行解码。
30.如权利要求29所述的解码器,其特征在于,所述命令队列为解码所述码流数据的当前帧的命令队列;所述解码器还包括发送单元,用以在所述解码单元解码完所述码流数据的当前帧,并将所述码流数据的下一帧设置为当前帧后,发送处理信号;所述获取单元在所述发送单元发送所述处理信号后,获取当前帧的命令队列。
31.如权利要求29所述的解码器,其特征在于,所述码流数据的帧包括宏块,所述解码单元以宏块为单位解码所述码流数据的帧。
32.如权利要求31所述的解码器,其特征在于,所述解码参数包括:所述码流数据中的当前帧包括的宏块的类型,反量化的量化参数,运动补偿的尺寸和参考帧的位置。
33.如权利要求32所述的解码器,其特征在于,所述命令队列中的操作命令包括:熵解码操作命令,查询熵解码结束操作命令,反变换操作命令和重建操作命令,所述命令队列中的操作命令基于帧的解码过程排序。
34.如权利要求33所述的解码器,其特征在于,所述解码单元中包括至少一个解码模块,所述控制信息包括所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址,执行所述操作命令的进度信息,所述数据信息包括所述操作命令的操作内容。
35.如权利要求34所述的解码器,其特征在于,所述解码单元包括熵解码模块,反变换模块和重建模块;
所述解码单元还包括管理模块,用以基于所述解码器中参与解码的解码模块的标识,所述解码模块包含的寄存器的数目和所述寄存器的偏移地址调用解码模块,基于所述码流数据的当前帧的命令队列中的执行所述操作命令的进度信息控制所述解码模块执行所述操作命令的操作内容。
36.如权利要求35所述的解码器,其特征在于,所述管理模块基于所述当前帧的命令队列中的执行所述操作命令的进度信息确定已完成上一操作命令后,调用解码模块执行所述当前帧的命令队列中的下一操作命令的操作内容。
37.如权利要求36所述的解码器,其特征在于,所述管理模块还用以在所述解码模块执行完成所述操作命令的操作内容后,更新执行所述操作命令的进度信息。
38.如权利要求29所述的解码器,其特征在于,所述码流数据为视频码流数据。
39.一种码流数据的解码系统,其特征在于,包括:
如权利要求21至28任一项所述的处理器;
如权利要求29至38任一项所述的解码器。
40.如权利要求39所述的解码系统,其特征在于,所述处理器与所述解码器集成在一起。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101266499A CN103379330A (zh) | 2012-04-26 | 2012-04-26 | 码流数据的解码预处理方法及解码方法,处理器,解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101266499A CN103379330A (zh) | 2012-04-26 | 2012-04-26 | 码流数据的解码预处理方法及解码方法,处理器,解码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103379330A true CN103379330A (zh) | 2013-10-30 |
Family
ID=49463825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101266499A Pending CN103379330A (zh) | 2012-04-26 | 2012-04-26 | 码流数据的解码预处理方法及解码方法,处理器,解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103379330A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936539A2 (de) * | 1998-02-12 | 1999-08-18 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Holen von Befehlen für eine programmgesteuerte Einheit |
CN101466037A (zh) * | 2007-12-21 | 2009-06-24 | 北京中电华大电子设计有限责任公司 | 一种软硬件配合的视频解码器实现方法 |
CN101513067A (zh) * | 2006-09-25 | 2009-08-19 | 汤姆逊许可公司 | 用于处理视频数据的设备和方法 |
-
2012
- 2012-04-26 CN CN2012101266499A patent/CN103379330A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0936539A2 (de) * | 1998-02-12 | 1999-08-18 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Holen von Befehlen für eine programmgesteuerte Einheit |
CN101513067A (zh) * | 2006-09-25 | 2009-08-19 | 汤姆逊许可公司 | 用于处理视频数据的设备和方法 |
CN101466037A (zh) * | 2007-12-21 | 2009-06-24 | 北京中电华大电子设计有限责任公司 | 一种软硬件配合的视频解码器实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105163127B (zh) | 视频分析方法及装置 | |
EP2839652B1 (en) | Fixed tile structure flag indicating parallel processing possibility for a sequence of compressed video | |
US20120082235A1 (en) | Coding and decoding utilizing context model selection with adaptive scan pattern | |
CN101330617B (zh) | 基于模式映射的多标准帧内预测器的硬件实现方法及装置 | |
US9172967B2 (en) | Coding and decoding utilizing adaptive context model selection with zigzag scan | |
CN106454354B (zh) | 一种avs2并行编码处理系统及方法 | |
CN104025594A (zh) | 视频编码中的瓦片大小 | |
CN102802024A (zh) | 在服务器端实现的转码方法以及转码系统 | |
US20210235113A1 (en) | Method and device for processing video image | |
CN101350928A (zh) | 一种运动估计方法及装置 | |
CN101272497B (zh) | 一种视频编码方法 | |
WO2012051025A1 (en) | Coding and decoding utilizing context model selection with adaptive scan pattern | |
CN112422986A (zh) | 硬件解码器流水线优化方法及应用 | |
CN103379330A (zh) | 码流数据的解码预处理方法及解码方法,处理器,解码器 | |
CN111093082A (zh) | 一种流媒体直播的方法及系统 | |
Iverson et al. | Real-time H. 24-AVC codec on Intel architectures | |
CN101304520A (zh) | 影像解码系统及其运动补偿的自适性快取方法 | |
EP3611924A1 (en) | In-loop filter with multiple regions | |
CN101141646A (zh) | 一种基于avs的帧内预测计算的硬件实现方法 | |
CN103379322A (zh) | 一种先进运动矢量预测amvp的并行实现方法、装置及系统 | |
CN111447453B (zh) | 图像处理方法及装置 | |
CN102023897B (zh) | 一种众核环境下视频编解码动态多分辨率自适应并行方法和系统 | |
AU2019301656B2 (en) | In-loop filter with multiple regions | |
CN113660496B (zh) | 基于多核并行的视频流解码方法及装置 | |
CN114584786B (zh) | 基于视频解码的内存分配方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131030 |
|
RJ01 | Rejection of invention patent application after publication |