CN101616323A - 对视频编码数据流进行解码的系统和方法 - Google Patents

对视频编码数据流进行解码的系统和方法 Download PDF

Info

Publication number
CN101616323A
CN101616323A CN 200810131922 CN200810131922A CN101616323A CN 101616323 A CN101616323 A CN 101616323A CN 200810131922 CN200810131922 CN 200810131922 CN 200810131922 A CN200810131922 A CN 200810131922A CN 101616323 A CN101616323 A CN 101616323A
Authority
CN
China
Prior art keywords
image
decoding function
data stream
video data
carried out
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200810131922
Other languages
English (en)
Other versions
CN101616323B (zh
Inventor
袁昱
阎蓉
徐晟�
刘星
李获鼎
杨雨东
邵凌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM China Co Ltd
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN 200810131922 priority Critical patent/CN101616323B/zh
Publication of CN101616323A publication Critical patent/CN101616323A/zh
Application granted granted Critical
Publication of CN101616323B publication Critical patent/CN101616323B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种对视频编码数据流进行解码的系统和方法。该系统包括:第一功能单元,用于对视频编码数据流中的图像执行第一解码功能;第二功能单元,用于在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;第三功能单元,用于在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;控制单元,用于控制第一功能单元、第二功能单元和第三功能单元,使得并行执行所述第一解码功能、第二解码功能和第三解码功能。

Description

对视频编码数据流进行解码的系统和方法
技术领域
本发明一般涉及视频解码技术,以及更具体地,本发明涉及一种用于对视频编码数据流进行解码的系统和方法。
背景技术
作为新一代视频编码标准,H.264标准在以往视频编码标准的基础上对视频编码算法进行了改进,使得H.264算法具有更高的编码效率。这样,在电影以及因特网视频等应用方面,广泛采用了H.264编码标准。与诸如MPEG-2的以往视频编码标准相比,H.264具有更高的压缩率以及更高的计算复杂性。在这种情况下,对于H.264解码器的软件实现来说,将高清视频编码数据流进行实时解码对于软件程序人员以及解码器的底层平台两方面均提出了挑战。
当解码器的底层平台是基于多核处理器实现、并且每个单独的处理器核不足以实现H.264的高清实时解码时,一种直接的处理方式是并行地在多核上进行解码。对于诸如高清视频处理以及游戏产业的多媒体应用,为了适应这些多媒体应用对处理能力越来越高的要求,实现多媒体专用设备多核化已经成为当前计算系统的一个主要发展趋势。为此,各个处理器生产厂商分别开发出多种并行处理器架构,并已经将其投入实践。例如,Cell宽带引擎(Cell BroadbandEngine,缩写为Cell BE)处理器是一种基于Cell宽带引擎架构(CellBroadband Engine Architecture)的为多媒体应用开发的全新多核处理器。
图1示出了现有技术中的一种具有8个SPU的Cell BE处理器架构的示意图。如图1所示,现有的Cell BE处理器100包括:PPU(PowerProcessing Unit)单元110,该PPU单元110是基于PowerPC架构的控制处理单元(Power Processing Unit);多个SPU(Synergistic ProcessingUnit)单元121-128,其中每个SPU单元是SIMD的协处理器单元(Synergistic Processing Unit);以及EIB(Element Interconnect BUS)总线130,该总线是用以连接PPU 110、SPU 121-128、主存储器140以及I/O单元150的高速交互总线(Element Interconnect BUS)。
PPU单元110是并发多线程处理器,操作系统运行于PPU110上,用于对SPU进行调度和管理,而SPU 121-128则主要负责计算工作。PPU单元110通过EIB总线130直接与主存储器140和I/O单元150耦合,因而PPU单元110作为主控单元对主存储器140和I/O单元150的访问速度较快。
对于图1所示的Cell BE 100来说,尽管单个SPU单元121-128具有较高的计算能力,但是由于H.264标准的复杂性与高度压缩比,难以在单独的处理器核中对其进行高清视频的实时解码。
因而,需要一种能够使用多核技术来对符合H.264标准的视频编码数据流进行并行实时解码的系统和方法。
发明内容
本发明的目的在于提供一种用于使用多核技术来对符合H.264标准的视频编码数据流进行并行实时解码的系统和方法。
根据本发明的一方面,提供一种对视频编码数据流进行解码的系统,包括:第一功能单元,用于对视频编码数据流中的图像执行第一解码功能;第二功能单元,用于在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;第三功能单元,用于在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;控制单元,用于控制第一功能单元、第二功能单元和第三功能单元,使得:在所述第一功能单元对所述视频编码数据流中的第一图像执行所述第一解码功能的同时,所述第二功能单元对所述视频编码数据流中已经对其执行了第一解码功能的第二图像执行所述第二解码功能,以及所述第三功能单元对所述视频编码数据流中已经对其执行了第一解码功能和第二解码功能的第三图像执行所述第三解码功能。
根据本发明的另一方面,提供一种对视频编码数据流进行解码的方法,包括:对视频编码数据流中的图像执行第一解码功能;在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;其中在对所述视频编码数据流中的第一图像执行所述第一解码功能的同时,对所述视频编码数据流中已经对其执行了第一解码功能的第二图像执行所述第二解码功能,以及对所述视频编码数据流中已经对其执行了第一解码功能和第二解码功能的第三图像执行所述第三解码功能。
附图说明
参考以下结合附图的详细说明,本发明的特征、优点以及其他方面将变得更加明显,在附图中:
图1示出了现有技术中的一种具有8个SPU的多核处理器架构的示意图;
图2示出了现有技术的对H.264视频编码数据流进行解码的方法的示意图;
图3示出了根据本发明的一个实施方式的对H.264视频进行并行解码的系统架构的示意图;
图4示出了根据本发明的一个实施方式的对H.264视频进行并行解码的方法的流水线的图示,其中示出了多个处理器核对一个图像进行解码操作的流水线图;
图5是根据本发明的一个实施方式的对H.264视频进行并行解码的方法的流程图,其中示出了多个处理器核对一个图像执行解码操作的流程;以及
图6是根据本发明的一个实施方式的对H.264视频进行并行解码的方法的流水线的图示,其中示出了多个处理器核对两个图像执行解码操作的流程。
应当理解,在全部附图中,相同的参考标记表示相同的部件。
具体实施方式
首先,考虑H.164解码算法的特征。在H.264解码处理算法中,由于图像在帧内以及帧间存在相互的依赖关系,因而H.264的解码过程适合于使用并行处理模式,即使用一种称作“流水线”的处理模式。在本发明,将整个解码处理过程划分成为多个相互依赖的阶段,并且将每个阶段的处理任务分配给一个单独的处理器核(例如,Cell BE中的SPU)来完成,从而以“流水线”的方式将视频中的每个图像的解码处理分配给不同的处理器核来完成。
在使用流水线方式解码H.264视频时,需要考虑如下问题。一方面,如何在较少数量的处理器核上实现并行视频解码,而同时又保证实现H.264视频解码的实时性。例如,不同制造商开发了不同的Cell BE计算系统,当在仅具有6个SPU的Cell BE上实现画中画功能时,则仅能够为每一路视频解码分配3个SPU单元,而在具有8个SPU的Cell BE上实现画中画功能时,则能够为每一路视频解码分配4个SPU单元。因而出于通用性考虑,尽量在较少数量的处理器核上执行操作。
另一方面,解码性能极大地依赖于工作负载的划分,即如何在多个处理器核上尽可能平衡地分配需要执行的多个工作负载。根据流水线技术可知,流水线的整体性能受到在流水线处理过程期间的“最慢”的阶段的影响。在多个处理器核上执行解码时,如何在多个处理器核之间进行工作负载的平衡划分、以及如何更好地利用每个处理器核的计算能力,这是提高整体解码处理性能的关键。
因而,在多处理器核上实现实时并行视频解码主要涉及两方面的平衡:1)所使用的处理器核的数量与可用处理器核的数量之间的平衡;2)在所使用的多个处理器核上的工作负载平衡。
本发明提出了一种在多个处理器核上用于对H.264视频进行并行实时解码的优化系统和方法。
在下文中,将以如图1所示的具有8个SPU单元121-128的Cell BE计算系统为例来详述根据本发明的系统和方法。然而,本领域技术人员应该理解,本发明并不局限于具有8个SPU单元121-128的Cell BE计算系统,而是还可适用于在其他多核计算系统中实现。
在传统的H.264解码算法中,是以视频图像中的宏块为单位来进行处理,主要包括以下步骤:码流解析、熵解码、反扫描、预重构、反量化、反变换、帧内预测、帧间预测、回路过滤、渲染(将以宏块为单位的图像转换成为以像素为单位的图像)。上述步骤的内容已经在H.264解码标准中作了具体描述,在此省略对其的详细说明。
在图2的框图中示出了现有的H.264解码算法的处理流程200。如图中所示,阴影部分的方框表示数据,例如,框222表示数据码流;而普通方框表示的是对数据进行操作的步骤,诸如,框S202表示将数据码流222进行缓冲处理。
如图2所示,首先,在步骤S202处,对视频码流222进行缓冲处理。接着,在步骤S204处,对已经缓冲的视频数据进行熵解码和解多路复用,之后分别在步骤S210和步骤S212中将所抽取的空间预测模式以及运动矢量进行空间补偿处理和运动补偿处理。在步骤S206的反扫描处理和反量化以及步骤S208的反变换处理之后,将处理后的数据与来自步骤S210的经过空间补偿处理的数据、来自步骤S212的经过运动补偿处理的数据、以及帧内/帧间宏块228进行结合,在经过步骤S214处的解块过滤处理之后,形成最终的视频输出230。
第一实施方式
下面将参考附图详细描述本发明的实施方式。应该理解,以下所描述的实施方式仅仅是示例性的,而并非对本发明范围的限制。
在本发明的一个实施方式中,提出了一种在多个处理器核上对H.264视频进行并行解码的系统。在该系统中,以视频中的图像为单位来进行解码,并且将整个解码流程分布在多个处理器核上实现。
本发明将H.264解码算法划分成为以下4个阶段,并且分别在Cell BE架构下的多个处理器核(PPU或者SPU)上执行每个阶段。
预重构阶段(在PPU上执行):执行预重构操作,包括形成运动矢量、生成参考图像列表;
解析阶段(在SPU1上执行),包括:1)解析码流;2)熵解码(包括CABAC以及CAVLC解码);3)反扫描;
重构阶段(在SPU2上执行),包括:1)反量化;2)反变换;3)帧内预测;4)帧间预测;
过滤阶段(在SPU3上执行),包括:1)回路过滤;渲染(将以宏块为单位的图像转换成为以像素为单位的图像)。
在本发明中,针对视频中的整个图像进行处理,在中间处理过程中是以用于中间图像的基于宏块的数据结构为单位,而对于输出图像,则采用基于像素的数据结构。
如在上文中所述,将整个解码过程划分成为4个阶段并且分别在4个不同的处理器核上执行,如此划分可以确保在多个处理器核上的工作负载对于不同的H.264视频的输入来说基本平衡。基于以下方面来考虑如何进行划分:1)视频解码中各个步骤对处理器核的计算性能的要求;2)在视频解码中,哪些步骤在时间上具有先后顺序关系(即,后一步骤需要针对先前的一个或者多个步骤的计算结果来进行处理);3)在视频解码中,哪些步骤在时间上具有并行关系(即,在处理一个或者多个步骤中同时,可以对其他一个或者多个步骤进行处理,或者尽管两者的实际执行存在先后的时间差异,但这种差异并不影响整个视频的解码输出)。
如图3中所示,其中示出了根据本发明的一个实施方式的对H.264视频进行解码的系统架构示意图300。在图3中,将上文中所述的4个解码阶段的工作负载分别分配至PPU和SPU1、SPU2以及SPU3。SPU1用作解析器320,用于执行码流解析、熵解码以及反扫描的功能;SPU2用作重构器330,用于执行反量化、反变换、帧内预测以及帧间预测的功能;SPU3用作过滤器340,用于执行回路过滤、渲染的功能;以及PPU用作调度器310,用于在主存储器350、解析器320、重构器330以及过滤器340之间进行任务分发、内存管理等控制功能,并且执行文件I/O调度、解码图像缓冲以及预重构的功能。
如图3所示,其中带有阴影的方框表示在解码过程中所涉及的数据,以普通方框和阴影方框来区分本发明的各种处理装置与处理过程期间所涉及的中间数据。应该注意,数据351至357均保存在主存储器350中。在下文所述的步骤是针对H.264视频的一个图像进行解码的过程,其中需要使用在解码先前的视频图像时所得出的数据(例如,参考图像356)。
在本发明中所述的“并行性”以及“流水线”解码操作,是指针对H.264视频的前后连续的多个图像来同时进行解码的过程,即,分别在诸如PPU、SPU1、SPU2以及SPU3的多处理器核上针对多个图像并行地执行调度、解析、重构以及过滤操作,这种对多个图像同时进行处理将产生“流水线”效果。然而,对于同一图像的解码期间的各个步骤,则存在时间上的顺序关系。例如,重构器330对解析器320所解析的数据进行重构,过滤器340对重构器330已经重构的图像数据进行回路过滤和渲染,如上这些操作之间均存在先后顺序。
在下文中,将结合图3、图4以及图5来详细描述对H.264视频中的一个图像进行解码的处理。以及在图6中,将从流水线并行处理的角度来阐明多个处理器核的并行解码操作。
在图3中,如箭头A所示,调度器310读取视频文件以获取缓冲的码流351。之后,沿箭头B所示的方向将码流数据351发送至位于SPU1处的解析器320用于解析。之后,解析器320从输入的缓冲码流350中解析出关于当前视频图像的序列信息352以及图像信息353(分别如箭头C和箭头D所示);同时,解析出相关的以宏块为单位的系数图像354(如箭头E所示)。此时,解析器320完成处理当前图像所需的码流解析、熵解码以及反向扫描的功能。
接着,重构器330读取图像信息353、系数图像354、参考图像组356(分别如箭头F、箭头H以及箭头I所示),并进行反量化、反变换、帧内预测以及帧间预测。注意,在此步骤中所使用的参考图像组356是由过滤器340在对当前图像之前的图像进行处理后所生成的数据,在下文中将进一步详述与参考图像组356相关的信息。
然后,过滤器340读取图像信息353、已解码图像355(分别如箭头G和箭头K所示)以执行回路过滤和渲染操作。并如箭头L所示,将回路过滤处理后的数据存储回到已解码图像355中;如箭头N所示,将渲染后的数据存储至输出图像357。在这里,如果已解码图像355将会被用作后续图像的参考图像,则将已解码图像355保存到参考图像组356中,如图3中的虚线箭头M所示。注意,参考图像组356中保存的是当前的H.264视频中的先前的已解码图像,如果在进行帧内预测和帧间预测时需要使用参考图像组356,则重构器330调取该参考图像组356;而对于不需要使用参考图像的图像来说,则忽略此步骤。
如图3所示,输出图像357中的图像信息是以像素为单位的,即,像素数量为W(图像宽度)×H(图像高度)。值得注意的是,因为在H.264视频中允许存在双向预测,因而解码所得出的图像顺序并不一定是当初制作该视频时的图像顺序。此时,需要对输出图像357进行输出顺序控制,即,调整输出图像序列的前后顺序以便解码后的图像顺序与编码前的顺序相一致。
在本发明中,系数图像354、已解码图像355以及参考图像组356都是以宏块的形式存在,之后将经过解码运算后的图像信息以像素形式渲染成为输出图像357。
下面结合以流水线方式绘制的时序图来进一步解释对H.264视频的一个图像进行处理的流程。图4示出了根据本发明的一个实施方式的对H.264视频进行并行解码的方法的流水线的图示400,其中示出了多个处理器核对一个图像的解码操作的流水线流程。
如图4中所示,对H.264视频中的一个图像进行解码的过程包括以下的19个操作。
1.文件读取(读取码流并将其保存至码流缓冲存储器);
2.向解析器分配任务;
3.码流语法分析;
4.熵解码;
5.反扫描;
6.向调度器发送“完成”命令;
7.预重构;
8.执行DPB管理;
9.向重构器分配任务;
10.反量化;
11.反变换;
12.帧内预测;
13.帧间预测;
14.向调度器发送“完成”命令;
15.向过滤器分配任务;
16.回路过滤;
17.渲染;
18.向调度器发送“完成”命令;
19.输出顺序控制。
如图4中第一行所示,调度器执行的操作包括:操作1、2、7、8、9、15以及操作19。如图4中第二行所示,解析器320执行的操作包括:操作3、4、5以及操作6。如图4中第三行所示,重构器330执行的操作包括:操作10、11、12、13以及操作14。如图中第四行所示,过滤器340所执行的操作包括:操作16、操作17以及操作18。
在上文所述的19种操作中,包括以下三种类型的操作:1)控制操作,诸如调度器310所执行的操作2、9以及15,此类操作用于分别向解析器、重构器以及过滤器分配任务,以便调度多个处理器核实现分工协作;2)汇报操作,在已经完成了所分配的任务之后,各个SPU使用此类操作来向调度器(PPU)310报告任务已完成,诸如操作6、14以及18;3)执行操作,即PPU或者SPU执行各自的解码任务的操作,诸如操作1、3、4、5、7、8、10、11、12、13、16、17以及19。
区分以上三种类型操作的目的在于,根据处理器核所执行操作性质的不同而将其分类。根据本发明的方法不仅局限于在4个处理器核上实现,当在更多的处理器核上实现本方法时,应注意:
1)基于处理器核的工作负载来重新划分上文所述的“执行操作”,即操作1、3、4、5、7、8、10、11、12、13、16、17以及19。
2)根据在新的实施方式中所涉及的处理器核的数量来重新设计“控制操作”与“汇报操作”,即在使用更多或者更少的处理器核时,在每次调度器(诸如,PPU)调用其他处理器核(诸如,SPU)时,使用“控制操作”来向其他的处理器核分配任务。而在当各个处理器核已经完成了调度器所分配的任务时,则向调度器发送“汇报操作”,即,发送“完成”命令。
从图4中可见,当处理一个图像时,尽管由调度器310、解析器320、重构器330以及过滤器340来在时间上顺序地执行上文所述的19个操作,但是这些操作只在特定的时间占用调度器310、解析器320、重构器330以及过滤器340,即,仅占用了调度器310、解析器320、重构器330以及过滤器340的某些时钟周期,而并没有占用它们的所有时钟周期。因而在这些处理器核的空闲周期中,还可以执行其他操作,例如对H.264视频中的后续图像进行解码,这将在下文中参考图6进一步详述。
下面,参考图5中所述的流程图来详述调度器310、解析器320、重构器330以及过滤器340对H.264视频中的一个图像进行处理的流程图500。其中图5所示的步骤S501至S519与在图4的流水线处理中所示的操作1至19一一对应。
如图5中所示,整个处理流程开始于调度器310在步骤S501中进行文件读取操作,调度器310将读取的码流数据保持在主存储器的特定区域中用于进一步的处理。在步骤S502中,调度器310向解析器320分配任务,指示其在下一步中进行的操作。
接着,在解析器320接收到来自调度器310的任务分配后,在步骤S503中执行码流语法分析操作,在步骤S504中执行熵解码操作,在步骤S505中执行反扫描操作,以及当完成对其分配的所有任务之后,在步骤S506中向调度器310发送“完成”消息。
然后,操作流程回到调度器310处,在步骤S507中,调度器310执行预重构操作;在步骤S508中,调度器310执行解码图像缓冲管理操作;以及在步骤S509中,调度器310向重构器320分配任务。之后,操作流程转移至在重构器320上执行。
在接收到来自调度器310的任务分配之后,重构器330在步骤S510中进行反量化操作,进行反变换操作,在步骤S512中进行帧内预测操作,并且在步骤S513中进行帧间预测操作。当已经完成分配的所有任务之后,在步骤S514中重构器330向调度器310发送“完成”消息。
之后,调度器310在接到来自重构器330的“完成”消息之后,在步骤S515中向过滤器340分配任务。
过滤器340继而在步骤S516中进行回路过滤操作,在步骤S517中进行渲染操作,以及在步骤S518中向调度器310发送“完成”消息。
其后,调度器310在步骤S519中执行输出顺序控制操作,由此完成对H.264视频的一个图像进行解码的全部过程,操作至此结束。
图6是根据本发明的一个实施方式的对H.264视频进行并行解码的方法的流水线的图示600,其中示出了多个处理器核对两个图像进行解码的操作流程。
在上文中,已经参考图3、图4和图5详述了针对H.264视频的一个图像进行的解码操作。在下文中,将以流水线方式示出对H.264视频中的多个图像进行解码的操作。为清楚起见,图6中仅示出了对2个图像进行解码处理的流水线的示例。
如图6中所示,方框1至19表示对H.264视频中的一个图像进行解码的操作,而带有斜线的方框1′至19′则表示对H.264视频中的另一图像进行解码的操作。如图6中所示,在多个处理器核上,在一个时间段内可以并行地处理操作1至19与操作1′至19′。例如,当调度器310针对一个图像完成了操作1、2之后,在接下来的4个周期中可以针对其他图像执行操作。例如,在周期3、4中针对另一图像来执行操作1′、2′。同样,在解析器320针对一个图像完成了操作3、4、5、6之后,可以在接下来的周期7、8、9、10中针对另一图像来执行操作3′、4′、5′、6′。
本领域普通技术人员很容易从图6所示的处理两个图像的流水线来类推出并行处理多个图像的流水线。例如,在图6中,在周期5、6中,调度器310可以针对第三图像来执行操作1″、2″(未示出)。由此,在对一个H.264视频进行解码的整个操作期间,调度器310、解析器320、传感器330以及过滤器340可以同时针对多个图像进行解码处理。
当处理多个图像时,调度器310、解析器320、传感器330以及过滤器340的使用效率将大幅度提高,由于在设计算法时考虑到了各个处理器核之间工作负载的平衡性,因而对于不同的H.264视频输入,各个处理器核之间的工作负载基本可以保持平衡,进而实现稳定、实时地输出解码的数据用于显示。
其他实施方式
本发明仅以Cell BE为示例说明一种用于在多个处理器核上并行地对H.264高清视频进行实时解码操作。其中仅以使用PPU、SPU1、SPU2以及SPU3为示例解释了在其上实现调度、解析、重构以及过滤的四个阶段的解码方法。然而,应该理解,本发明可以存在多种变型而并不脱离本发明所要求的保护范围。
例如,对于具有1个PPU单元和6个SPU单元的Cell BE架构的计算系统,可以在1个PPU单元和3个SPU单元上实现根据本发明的实施方式所述的方法来对一路H.264视频信号进行解码;同时,还可以在所述PPU单元以及其他3个SPU单元上实现对另一路H.264视频信号进行解码,由此可以实现画中画的功能。
例如,对于1个PPU单元和8个SPU单元的Cell BE架构的计算系统,可以在1个PPU单元和4个SPU单元上实现根据本发明的实施方式所述的方法来对一路H.264视频信号进行解码;同时,还可以在所述PPU单元以及其他4个SPU单元上实现对另一路H.264视频信号进行解码,由此可以实现画中画的功能。其中需要将根据本发明的第一实施方式中的调度器、解析器、传感器以及过滤器的功能重新分配到其他SPU上执行。
在某些情况下,例如在多个处理器核已经被其他应用占用了部分计算能力时,则需要对第一实施方式的方法进行修改。否则,如果继续在1个PPU和3个SPU上执行根据本发明的第一实施方式所述的方法,则不能保证对H.264视频进行实时解码。此时,还可以将根据本发明的第一实施方式中的调度器、解析器、传感器以及过滤器的功能重新分配到更多的处理器核上执行。此时,调度器、解析器、传感器以及过滤器的功能划分将有所变化,然而,根据前文中所阐明的并行处理思想、流水线思想、以及在对一个图像进行处理时所执行的三种类型的操作,在更多处理器核上执行解码处理对于本领域普通技术人员是易见的。
下面对根据本发明的系统和方法作以总结。
首先,本发明提供了一种对视频编码数据流进行解码的系统,包括:第一功能单元,用于对视频编码数据流中的图像执行第一解码功能;第二功能单元,用于在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;第三功能单元,用于在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;控制单元,用于控制第一功能单元、第二功能单元和第三功能单元,使得:在所述第一功能单元对所述视频编码数据流中的第一图像执行所述第一解码功能的同时,所述第二功能单元对所述视频编码数据流中已经对其执行了第一解码功能的第二图像执行所述第二解码功能,以及所述第三功能单元对所述视频编码数据流中已经对其执行了第一解码功能和第二解码功能的第三图像执行所述第三解码功能。
另外,本发明也提供了一种对视频编码数据流进行解码的方法,包括:对视频编码数据流中的图像执行第一解码功能;在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;其中在对所述视频编码数据流中的第一图像执行所述第一解码功能的同时,对所述视频编码数据流中已经对其执行了第一解码功能的第二图像执行所述第二解码功能,以及对所述视频编码数据流中已经对其执行了第一解码功能和第二解码功能的第三图像执行所述第三解码功能。
根据本发明的一个实施例,第二图像是所述视频编码数据流中紧挨着第一图像之前的图像,以及第三图像是所述视频数据流中紧挨着第二图像之前的图像。
根据本发明的一个实施例,所述控制单元在第一解码功能完成之后并且在第二解码功能启动之前,对视频编码流中的图像执行第四解码功能。
根据本发明的一个实施例,所述系统利用多核处理器来实现,所述多核处理器至少包括四核,每个核用于分别实现所述第一功能单元、第二功能单元、第三功能单元和控制单元。第一功能单元、第二功能单元、第三功能单元分别对应于图3中解析器320、重构器330、过滤器340。控制单元对应于图3中的调度器310。
根据本发明的一个实施例,所述视频编码数据流符合H.264编码标准。第一解码功能包括:码流语法解析;熵解码;以及反扫描。第二解码功能包括:反量化;反变换;帧内预测;以及帧间预测。第三解码功能包括:回路过滤;以及渲染。第四解码功能包括:预重构;以及解码图像缓冲管理。
本发明可以各种方式来实现。本领域技术人员应该认识到,也可以在供任何合适数据处理系统使用的信号承载介质上所设置的计算机程序产品中体现本发明。这种信号承载介质可以是传输介质或用于机器可读信息的可记录介质,包括磁介质、光介质或其他合适介质。可记录介质的例子包括:硬盘驱动器中的磁盘或软盘、用于光驱的光盘、磁带,以及本领域技术人员所能想到的其他介质。本领域技术人员应该认识到,具有合适编程装置的任何通信终端都将能够执行如程序产品中体现的本发明方法的步骤。
从上述描述应该理解,在不脱离本发明精神的情况下,可以对本发明各实施方式进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。本发明的范围仅受权利要求书的限制。

Claims (20)

1.一种对视频编码数据流进行解码的系统,包括:
第一功能单元,用于对视频编码数据流中的图像执行第一解码功能;
第二功能单元,用于在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;
第三功能单元,用于在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;
控制单元,用于控制第一功能单元、第二功能单元和第三功能单元,使得:在所述第一功能单元对所述视频编码数据流中的第一图像执行所述第一解码功能的同时,所述第二功能单元对所述视频编码数据流中已经对其执行了第一解码功能的第二图像执行所述第二解码功能,以及所述第三功能单元对所述视频编码数据流中已经对其执行了第一解码功能和第二解码功能的第三图像执行所述第三解码功能。
2.根据权利要求1所述的系统,其中第二图像是所述视频编码数据流中紧挨着第一图像之前的图像,以及第三图像是所述视频数据流中紧挨着第二图像之前的图像。
3.根据权利要求1所述的系统,其中所述控制单元在第一解码功能完成之后并且在第二解码功能启动之前,对视频编码流中的图像执行第四解码功能。
4.根据权利要求1至3中的任意一个所述的系统,其中所述系统利用多核处理器来实现,所述多核处理器至少包括四核,每个核用于分别实现所述第一功能单元、第二功能单元、第三功能单元和控制单元。
5.根据权利要求4所述的系统,其中所述视频编码数据流符合H.264编码标准。
6.根据权利要求5所述的系统,其中第一解码功能包括:
码流语法解析;
熵解码;以及
反扫描。
7.根据权利要求5所述的系统,其中第二解码功能包括:
反量化;
反变换;
帧内预测;以及
帧间预测。
8.根据权利要求5所述的系统,其中第三解码功能包括:
回路过滤;以及
渲染。
9.根据权利要求5所述的系统,其中第四解码功能包括:
预重构;以及
解码图像缓冲管理。
10.根据权利要求5所述的系统,其中所述控制单元还对来自第三功能单元的图像的输出顺序进行控制。
11.一种对视频编码数据流进行解码的方法,包括:
对视频编码数据流中的图像执行第一解码功能;
在第一解码功能完成后,对视频编码数据流中的图像执行第二解码功能;
在第一和二解码功能完成后,对视频编码数据流中的图像执行第三解码功能;
其中在对所述视频编码数据流中的第一图像执行所述第一解码功能的同时,对所述视频编码数据流中已经对其执行了第一解码功能的第二图像执行所述第二解码功能,以及对所述视频编码数据流中已经对其执行了第一解码功能和第二解码功能的第三图像执行所述第三解码功能。
12.根据权利要求11所述的方法,其中第二图像是所述视频编码数据流中紧挨着第一图像之前的图像,以及第三图像是所述视频数据流中紧挨着第二图像之前的图像。
13.根据权利要求11所述的方法,其中在第一解码功能完成之后并且在第二解码功能启动之前,对视频编码流中的图像执行第四解码功能。
14.根据权利要求11到12任意一个所述的方法,其中所述方法利用多核处理器来实现,所述多核处理器至少包括四核,每个核用于分别实现所述第一解码功能、第二解码功能、第三解码功能和控制功能。
15.根据权利要求14所述的方法,其中所述视频编码数据流符合H.264编码标准。
16.根据权利要求15所述的方法,其中第一解码功能包括:
码流语法解析;
熵解码;以及
反扫描。
17.根据权利要求15所述的方法,其中第二解码功能包括:
反量化;
反变换;
帧内预测;以及
帧间预测。
18.根据权利要求15所述的方法,其中第三解码功能包括:
回路过滤;以及
渲染。
19.根据权利要求15所述的方法,其中第四解码功能包括:
预重构;以及
解码图像缓冲管理。
20.根据权利要求15所述的方法,还包括输出顺序控制。
CN 200810131922 2008-06-27 2008-06-27 对视频编码数据流进行解码的系统和方法 Expired - Fee Related CN101616323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810131922 CN101616323B (zh) 2008-06-27 2008-06-27 对视频编码数据流进行解码的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810131922 CN101616323B (zh) 2008-06-27 2008-06-27 对视频编码数据流进行解码的系统和方法

Publications (2)

Publication Number Publication Date
CN101616323A true CN101616323A (zh) 2009-12-30
CN101616323B CN101616323B (zh) 2011-07-06

Family

ID=41495670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810131922 Expired - Fee Related CN101616323B (zh) 2008-06-27 2008-06-27 对视频编码数据流进行解码的系统和方法

Country Status (1)

Country Link
CN (1) CN101616323B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833639A (zh) * 2010-05-25 2010-09-15 福建新大陆电脑股份有限公司 一种支持多程序并行处理的条码解码装置
CN101840493A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持多步并行处理的条码解码装置
CN101840494A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种条码边界判断装置及方法
CN101840491A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持多图像并行处理的条码解码装置
CN101840495A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持图像并行处理的条码解码装置
CN101840492A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持多码制并行处理的条码解码装置
CN101859365A (zh) * 2010-05-25 2010-10-13 福建新大陆电脑股份有限公司 一种条码解码芯片
CN101882210A (zh) * 2010-06-01 2010-11-10 福建新大陆电脑股份有限公司 矩阵式二维条码解码芯片及其解码方法
CN102625108A (zh) * 2012-03-30 2012-08-01 浙江大学 一种基于多核处理器实现的h.264解码方法
CN102647589A (zh) * 2011-02-18 2012-08-22 Arm有限公司 并行视频解码
WO2016041507A1 (en) * 2014-09-17 2016-03-24 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
CN106412597A (zh) * 2015-07-29 2017-02-15 飞思卡尔半导体公司 多核视频解码器中的工作负载均衡
CN107562003A (zh) * 2016-06-30 2018-01-09 欧姆龙株式会社 图像处理装置、图像处理方法及图像处理程序

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539120B1 (en) * 1997-03-12 2003-03-25 Matsushita Electric Industrial Co., Ltd. MPEG decoder providing multiple standard output signals
EP1145566A1 (en) * 1999-10-21 2001-10-17 Koninklijke Philips Electronics N.V. Playback apparatus and method for playback of a record carrier
JP3548136B2 (ja) * 2001-06-01 2004-07-28 三洋電機株式会社 画像処理装置
JP2007520950A (ja) * 2004-01-21 2007-07-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 空間及びsnrファイングラニュラースケーラブルビデオ符号化及び伝送の方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859365B (zh) * 2010-05-25 2012-07-25 福建新大陆电脑股份有限公司 一种条码解码芯片
CN101840494A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种条码边界判断装置及方法
CN101833639A (zh) * 2010-05-25 2010-09-15 福建新大陆电脑股份有限公司 一种支持多程序并行处理的条码解码装置
CN101833639B (zh) * 2010-05-25 2012-08-22 福建新大陆电脑股份有限公司 一种支持多程序并行处理的条码解码装置
CN101840495A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持图像并行处理的条码解码装置
CN101840492A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持多码制并行处理的条码解码装置
CN101859365A (zh) * 2010-05-25 2010-10-13 福建新大陆电脑股份有限公司 一种条码解码芯片
CN101840492B (zh) * 2010-05-25 2013-11-06 福建新大陆电脑股份有限公司 一种支持多码制并行处理的条码解码装置
CN101840491A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持多图像并行处理的条码解码装置
CN101840493A (zh) * 2010-05-25 2010-09-22 福建新大陆电脑股份有限公司 一种支持多步并行处理的条码解码装置
CN101882210A (zh) * 2010-06-01 2010-11-10 福建新大陆电脑股份有限公司 矩阵式二维条码解码芯片及其解码方法
CN102647589A (zh) * 2011-02-18 2012-08-22 Arm有限公司 并行视频解码
CN102647589B (zh) * 2011-02-18 2016-12-28 Arm有限公司 并行视频解码
CN102625108A (zh) * 2012-03-30 2012-08-01 浙江大学 一种基于多核处理器实现的h.264解码方法
US10123028B2 (en) 2014-09-17 2018-11-06 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
WO2016041507A1 (en) * 2014-09-17 2016-03-24 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
CN106412597A (zh) * 2015-07-29 2017-02-15 飞思卡尔半导体公司 多核视频解码器中的工作负载均衡
CN107562003A (zh) * 2016-06-30 2018-01-09 欧姆龙株式会社 图像处理装置、图像处理方法及图像处理程序

Also Published As

Publication number Publication date
CN101616323B (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
CN101616323B (zh) 对视频编码数据流进行解码的系统和方法
CN102150425B (zh) 用于使用并行处理来进行解码的系统和方法
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
CN105992008B (zh) 一种在多核处理器平台上的多层次多任务并行解码方法
CN104350750B (zh) 用于简化视频随机访问的约束和单元类型的方法
CN102150428B (zh) 用于使用自适应分段的视频编码的系统和方法
US20090010337A1 (en) Picture decoding using same-picture reference for pixel reconstruction
WO2012064394A1 (en) Video coding methods and apparatus
CN106973298A (zh) 以gpu加速的软件视频转码器
CN101115201A (zh) 视频解码方法与解码装置
CN102057678A (zh) 解码装置、解码方法及接收装置
CN102088603A (zh) 用于视频编码器的熵编码器及其实现方法
CN110337002B (zh) 一种在多核处理器平台上hevc多层次并行解码方法
JP6042071B2 (ja) 並列ビデオ復号処理
CN101707716B (zh) 视频编码器和编码方法
CN102143361A (zh) 一种视频编码方法和装置
CN107197296A (zh) 一种基于COStream的HEVC并行编码方法和系统
CN106375767A (zh) 混合视频解码器和相关的混合视频解码方法
Jiang et al. Highly paralleled low-cost embedded HEVC video encoder on TI KeyStone multicore DSP
CN107454406A (zh) 基于avs+的vr全景视频直播高速解码方法及系统
CN102075762A (zh) 用于视频编码器的帧间预测电路及其实现方法
Pastrnak et al. Parallel implementation of arbitrary-shaped MPEG-4 decoder for multiprocessor systems
Zheng et al. Flexible Hierarchical Parallel Processing for AVS3 Video Coding
US8284836B2 (en) Motion compensation method and apparatus to perform parallel processing on macroblocks in a video decoding system
Habermann et al. Efficient Wavefront Parallel Processing for HEVC CABAC Decoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: IBM (CHINA) CO., LTD.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION

Effective date: 20121024

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; TO: 200000 PUDONG NEW AREA, SHANGHAI

TR01 Transfer of patent right

Effective date of registration: 20121024

Address after: 200000 Shanghai city Pudong New Area Keyuan Road No. 399 Zhang Jiang Zhang Jiang high tech Park Innovation Park 10 Building 7 layer

Patentee after: International Business Machines (China) Co., Ltd.

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110706

Termination date: 20170627

CF01 Termination of patent right due to non-payment of annual fee