多核解码器系统和视频解码方法与流程

文档序号:12810204阅读:464来源:国知局
多核解码器系统和视频解码方法与流程

【技术领域】

本发明涉及帧间级并行视频解码系统。特别地,本发明涉及系统的数据再使用,以便减少带宽消耗。



背景技术:

近年来,压缩视频已经广泛应用于各种应用,例如,视频广播、视频流以及视频存储。由更新视频标准使用的视频压缩技术变得更复杂且要求更多的处理功率。另一方面,基本视频的分辨率变得匹配高分辨率显示装置的分辨率且满足更高质量的要求。例如,当今,高清(hd)中的压缩视频广泛用于电视广播和视频流。甚至超高清(uhd)视频变为现实,且各种基于uhd的产品在消费市场可见。uhd内容的处理功率的要求随着空间分辨率快速增加。更高分辨率视频的处理功率对于基于硬件以及基于软件的实现是一个挑战性的问题。例如,uhd帧可具有3840x2160的分辨率,其对应于每图片帧8,294,440个像素。如果视频以每秒60帧进行俘获,uhd将几乎生成每秒5亿像素。对于以yuv444颜色格式的彩色视频源,将有150亿个样本在每秒中被处理。与uhd视频关联的数据数量是巨大的且对实时视频解码器提出巨大挑战。

为了满足高清、超高清分辨率和/或更复杂的编码标准的计算功率要求,高速处理器和/或多个处理器已经使用于执行实时视频解码。例如,在个人计算机(pc)和消费电子环境中,多核中央处理单元(cpu)可用于解码视频比特流。多核系统可以以嵌入系统的形式以便成本节省和便捷。在现有的多核解码器系统中,控制单元通常配置多个核(core)(即,多个视频解码器内核(kernel))以执行帧级并行视频解码。为了协调由多个视频解码器内核存取的存储器,存储器存取控制单元可以用于多个核与多个核之间共享的存储器之间。

图1a图示了帧级并行视频解码的一般双核视频解码器系统的框图。双核视频解码器系统100a包含控制单元110a、解码器核0(120a-0)、解码器核1(120a-1)以及存储器存取控制单元130a。控制单元110a可以用于指定解码器核0(120a-0)以解码一个帧,以及指定解码器核1(120a-1)以并行解码另一 帧。因为每个解码器核需要存取储存于存储装置(例如,存储器)的参考数据,存储器存取控制单元130a连接到存储器,并用于管理由两个解码器核存取的存储器。解码器核可以用于解码对应于一个或多个选择视频编码格式的比特流,例如,mpeg-2、h2.64/avc以及新的高效视频编码(hevc)编码标准。

图1b图示帧级并行视频解码的一般四核视频解码器系统的框图。四核视频解码器系统100b包含控制单元110b、解码器核0(120b-0)到解码器核3(120b-3)以及存储器存取控制单元130b。控制单元110b看用于指定解码器核0(120b-0)到解码器核3(120b-3)以并行解码不同帧。存储器存取控制单元130b连接到存储器并用于管理由四个解码器核存取的存储器。

尽管任何压缩视频格式可用于hd或uhd内容,由于更高的压缩效率,更可能使用更新的压缩标准,例如,h2.64/avc或hevc。图2a图示支持hevc视频标准的视频解码器200a的示范性系统框图。hevc是由视频编码联合合作组(jct-vc)开发的新的国际视频编码标准。hevc是基于混合基于块的运动补偿的类dct变换的编码架构。压缩的基本单元称为编码单元(cu),是2nx2n的四方块。cu可以最大cu(lcu)开始,lcu在hevc中也称为编码树单元(ctu),且每个cu可以递归地分成四个更小的cu,直到到达预定义的最小尺寸。一旦完成cu分层树的分割,每个cu根据预测类型和pu分区进一步分成一个或多个预测单元(pu)。每个cu或每个cu的残值分成转换单元(tu)树以应用二维(2d)转换。

在图2a中,输入视频比特流首先由可变长度解码器(vld)210a处理,以执行可变长度解码和句法解析。解析的句法可对应于帧间/帧内残值信号(来自vld210的上面的输出路径)或运动信息(来自vld210的下面的输出路径)。残值信号通常被转换编码。因此,编码的残值信号由逆扫描(is)块212、逆量化(iq)块214以及逆转换(it)块216处理。来自逆转换(it)块216的输出对应于重建的残值信号。对于帧内编码的块,重建的残值信号使用加法器块218加入到来自帧内预测块224的帧内预测,或对于帧间编码的块,重建的残值信号使用加法器块218加入到来自运动补偿块222的帧间预测。帧间/帧内选择块226选择帧内预测或帧间预测,用于取决于块是否是帧间或帧内编码的来重建视频信号。对于运动补偿,方法将存取储存于解码的图片缓冲器230的一个或多个参考块和由运动向量(mv)计算块220确定的运动向量信息。为了改进视觉的质量,环内滤波器228用于在其储存于解码的图片缓冲器230之前处理 重建的视频。环内滤波器在hevc中包含解块滤波器(df)和样本自适应偏置(sao)。环内滤波器可使用不同的滤波器用于其它编码标准。在图2a中,所有的功能块除了解码的图片缓冲器230可由解码器核实施。在典型的实现中,外部存储器,例如,dram,用于解码的图片缓冲器230。

对于可变长度解码器(vld),由于其特性,其可以不用视频解码器核而单独实施。在此情况下,存储器可用于缓冲vld的输出。图2b图示不包含vld的视频解码器内核200b的示例。存储器240用于缓冲vld210b的输出。

对于帧级并行解码,由于数据依赖,即将被解码的帧和多个解码器内核之间的映射需要仔细完成以最大化性能。图3以解码顺序图示了六个图片(即,i,p,p,b,b和b)的示例。这六个图片可以显示顺序对应于i(1),p(2),b(3),b(4),b(5)和p(6),其中插入的数字表示图片的显示顺序。图片i(1)由自身帧内编码而不需要任何其他图片上的任何数据依赖。图片p(2)是使用重建的i(1)图片作为参考图片的双方向预测。当i(1)和p(2)分别指定到解码器内核0和解码器内核1用于并行解码(310)时,存在数据依赖问题。类似地,当p(6)和b(3)分别指定到解码器内核0和解码器内核1用于第二阶段(320)并行解码,数据依赖问题再次出现。最后即将被解码的图片b(4)和b(5)分别指定到解码器内核0和解码器内核1用于第三阶段(330)的并行解码。因为p(2)和p(6)此时可用,并行解码b(4)和b(5)将不再有数据依赖问题。

由于高计算要求以支持hd或uhd视频的实时解码,多核解码器已经用于改进解码速度。由于公共参考数据,帧间并行解码的一个潜在优势是带宽效率。然而,由于数据依赖,带宽效率将降级。因此,期望开发可解决数据依赖问题的方法和系统,以便改进带宽效率。



技术实现要素:

为了解决以上技术问题,本发明提供一种在存储装置储存局部重建的像素数据用于帧内预测的视频处理装置和相关视频处理方法。

根据本发明的第一方面,揭示一种多核解码器系统包含多个解码器核;共享的参考数据缓冲器,耦合到多个解码器核以及外部存储器,其中共享的参考数据缓冲器储存从外部存储器接收的参考数据,并将参考数据提供到多个解码器核用于解码视频数据;以及一个或多个解码进度同步器,耦合到多个解码器 核的一个或多个,以检测与多个解码器核的一个或多个关联的解码进度信息或共享的参考数据缓冲器的状态信息,并控制多个解码器核的一个或多个的解码进度。

根据本发明的第二方面,揭示一种种多核解码器系统,包含多个解码器核;共享的参考数据缓冲器,耦合到多个解码器核和外部存储器,其中共享的参考数据缓冲器储存从外部存储器接收的参考数据,并将参考数据提供到多个解码器核用于解码视频数据;以及延迟先进先出块,耦合到多个解码器核、共享的参考数据缓冲器和外部存储器,其中延迟先进先出块储存由一个解码器核使用的当前参考数据,用于由另一解码器核以后使用。

根据本发明的第三方面,揭示一种多核解码器系统,包含多个解码器核;以及共享的输出缓冲器,耦合到多个解码器核和外部存储器,其中共享的输出缓冲器储存来自第一解码器核的重建的数据,并在储存重建的数据到外部存储器之前,将重建的数据提供到第二解码器核作为参考数据,用于解码视频数据。

根据本发明的第四方面,揭示一种在解码器系统中使用多个解码器核用于视频解码的方法,包含将多个解码器核安排用于使用帧间级并行解码来从视频比特流解码两个或多个帧;将储存于共享的参考数据缓冲器的参考数据提供到多个解码器核,用于解码两个或多个帧;以及控制多个解码器核的一个或多个的解码进度,以根据关于多个解码器核一个或多个的解码进度信息或共享的参考数据缓冲器的状态信息,减少与共享的参考数据缓冲器关联的存储器存取带宽。

本发明通过以上方案,可以有效的改进带宽效率。

【附图说明】

图1a图示具有用于并行解码的双解码器核的示范性解码器系统。

图1b图示具有用于并行解码的四解码器核的示范性解码器系统。

图2a图示基于hevc标准的示范性解码器系统框图。

图2b图示基于hevc标准的另一示范性解码器系统框图,其中vld排除于解码器内核外。

图3图示将两个帧分配到两个解码器核的示例。

图4图示使用芯片上存储器用于参考数据缓冲器的解码器系统架构的示例。

图5图示根据本发明实施例的具有共享的参考缓冲器和延迟fifo的多个解码器核系统的示例。

图6a图示先导解码器核a的解码进度。

图6b图示落后的解码器核b的解码进度。

图7图示将解码进度同步器并入具有共享的参考缓冲器的并行解码器系统的示例。

图8图示根据本发明实施例的具有两个解码器核、解码进度同步器和延迟fifo的并行解码器系统的示例。

图9a图示将解码进度同步器以主从布置并入解码器核a的示例。

图9b图示将解码进度同步器以对等布置并入解码器核a和解码器b的另一示例。

图10图示根据本发明实施例的使一个解码器核能从另一解码器核存取重建的数据的系统架构的示例,其中芯片上存储器用于两个解码器核之间。

图11图示储存来自一个解码器核的重建的数据以由另一解码器核使用的共享的输出缓冲器的芯片上存储器布置的另一方面。

图12图示储存来自一个解码器核的重建的数据以由一解码器核使用的共享的输出缓冲器的芯片上存储器布置的另一种示例,其中重建的数据安排进固定大小的窗口。

图13图示使用具有窗口检测器的共享的输出缓冲器的并行解码器系统以减少带宽消耗的示例。

图14图示使用具有窗口检测器的共享的输出缓冲器的多核并行解码器系统的另一示例,其中复用器和解复用器用于允许多个解码器核共享共享的输出缓冲器和窗口检测器。

【具体实施方式】

以下的描述是实施本发明的最佳模式。此描述是为了说明本发明的一般原理,且不应该认为是限制。本发明的范围参考所附的权利要求来确定。

本发明揭示的多核解码器系统,其可减少存储器带宽消耗。根据本发明的一个方面,如果两个帧参考部分重叠的参考数据,或视频帧分配到在另一内核上参考另一帧的内核,视频帧的候选被选择并分配到帧间级并行解码,以减少存储器带宽消耗。在这些情况中,有机会共享在内核之间存取的参考帧数据并 减少外部存储器带宽消耗。根据本发明的另一方面,揭示解码进度同步(decodingprogresssynchronization,dps)方法和架构,用于多个解码器内核系统,以通过最大化数据再使用来减少存储器带宽消耗。此外,揭示了一种重建的数据再使用方法和架构,以减少带宽消耗。

对于运动补偿编码的视频,解码器需要存取参考数据,以生成帧间预测数据,用于运动补偿重建。因为先前重建的图片可以储存在解码的图片缓冲器,图片缓冲器可能使用外部存储器来实施,对解码的图片缓冲器的存取也相对慢。此外,其将消耗系统带宽,系统带宽是重要的系统资源。因此,基于芯片上存储器的参考数据缓冲器通常用于改进带宽效率。图4图示了使用芯片上存储器用于参考数据缓冲器的解码器系统架构400的示例。图4中的解码器系统包含两个解码器核410、420以及共享的参考缓冲器430。参考数据首先读进共享的参考缓冲器430,且共享的参考缓冲器430中的数据可以由两个解码器核多次再使用,以减少带宽消耗。例如,解码器核可以分配为解码两个p图片之间的两个连续的b图片用于帧间级并行解码。很可能两个b图片的解码过程需要存取与两个参考p图片关联的相同的参考数据。如果所需要的参考数据在共享的参考缓冲器中(即,“击中”),则所需的参考数据不需要从外部存储器存取便可再使用。如果所需要的参考数据不在共享的参考缓冲器(即,“没有”),则所需要的参考数据将不得不从外部存储器读取。共享的参考缓冲器远远小于外部存储器。然而,共享的参考缓冲器通常实施为与外部存储器不同的架构用于高速数据存取。例如,共享的参考缓冲器可以使用类型1缓存(l1缓存)、类型2缓存(l2缓存)或类似缓存的架构来实施,外部存储器通常是基于dram(动态随机存取存储器)技术。

尽管共享的参考缓冲器可帮助改进带宽效率,由于各种原因,全部的好处不可在实践中实现。例如,解码过程可进度不同地在两个解码器核上的两个并行解码的帧进行。在一个解码器核先于另一很多的情况下,两个解码器核可以被存取显著不同的参考数据区域。因此,落后的解码器核可能需要从外部存储器重新载入数据(即,“没有”)。共享的参考存储器通常使用高速存储器实施以改进性能。由于高速存储器的高成本,共享的参考存储器的尺寸是有限的。为了进一步改进具有共享的参考缓冲器的系统的带宽效率,本发明的实施例引入耦合到外部存储器的延迟先进先出(fifo)块、共享的参考缓冲器和解码器核。 延迟fifo可以实施为与共享的参考缓冲器的不同的数据结构/架构,以实现更高容量和更低成本,例如,专属芯片上sram(静态随机存取存储器)或l1/l2缓存。

图5图示根据本发明的实施例的具有共享的参考缓冲器和延迟fifo块的多个解码器核系统500的示例。

在图5的示例中,使用两个解码器核510、520。除共享的参考缓冲器530外,还使用延迟fifo540。外部存储器看作多解码器核系统500的外部。对于引导解码的进度在落后的解码器核之前的先导解码器核,参考帧数据从外部存储器直接被读取到核,而不将其储存到共享的参考缓冲器中。然而,从外部存储器读取的参考帧数据也与参考帧数据的地址或位置信息一起储存于延迟fifo。在此情况下,多路器512或522用于直接从外部存储器选择参考数据进入解码器核。系统将监控延迟fifo的最旧条目的位置信息。当落后的解码器核的解码进度赶上最旧条目的位置时,最旧条目出列且参考数据转移到共享的参考缓冲器,以便落后的解码器核可从共享的参考缓冲器存取参考数据,而不需要存取外部存储器。在此情况下,多路器532设置为从延迟fifo540选择输入。图5中的系统也还可用于支持现有没有延迟fifo的共享的参考缓冲器。在此情况下,多路器512和522设置为从共享的参考缓冲器选择输入,且多路器532设置为从外部存储器550选择输入。

延迟fifo的使用应该帮助改进带宽效率。例如,如果解码器核a是处理位于(x,y)=(10,2)的块位置(x,y)的宏块(mb)的先导核。解码器核b是处理位于(x,y)=(3,2)的宏块的落后的核。在此情况下,解码器核a的参考数据将被放到延迟fifo中,因为解码器核b正处理远离正由解码器核a处理的块位置(10,2)的区域。解码器核b将不太可能需要与解码器核a相同的参考数据。然而,当解码器核b提高进度到或接近块位置(10,2)时,延迟fifo中的参考数据可以放进共享的参考缓冲器。在此情况下,解码器核b可使用共享的参考缓冲器中的数据的概率大大增加。因此,由于延迟fifo的使用,改进了带宽效率。

根据本发明的另一方面,系统使用解码进度同步(dps)方法以改进带宽效率。如前所述,共享的参考缓冲器相对小。如果解码器核正处理彼此远离的图像区域,解码器核的解码进度不太可能共享相同的参考数据。因此,本发明的 另一实施例能够同步多个解码器核之间的解码进度。例如,两个解码器核(核a和核b)用于两个帧的帧间级并行解码,且共享的参考缓冲器可储存五个块的参考数据。如果解码器核a正处理显示于图6a中的块x,以及解码器核b正处理显示于图6b中的块y,解码器核b不太可能再使用共享的参考缓冲器中的参考数据。这是因为只有块(x-1)到(x-5)的参考数据将储存于共享的参考缓冲器,且块x和y分开的太远。另一方面,如果解码器核a正处理显示于图6a中的块x以及解码器核b正处理显示于图6b中的块z,解码器核b很可能再使用共享的参考缓冲器中的参考数据,因为块x和z更接近。因此,系统将检查两个核的进度并保证两个当前处理块之间的差值在限度内。例如,如果解码器核a正处理具有块索引block_index_a的块,解码器核b正处理具有块索引block_index_b的块,系统将限制|block_index_a-block_index_b|<th,其中th是1和帧中块的总数之间的阈值。

为了保持两个当前处理的块之间的差值在限度内,系统将控制每个解码器核的进度。如果在一个核上执行的解码器内核的解码进度远离另一核,共享的参考缓冲器的效率将降低。在此情况下,将可能更多存取外部存储器。因此,系统减慢或停止先导核或加速落后的核,以缩短限度中的差值,以便改进共享的参考缓冲器的效率(例如,更高的击中率)。图7图示将解码进度同步器加入到具有共享的参考缓冲器的并行解码器系统的示例。如图7所示,解码进度同步器710耦合到解码器核a410和解码器核b420,以监控解码的进度并相应地控制进度。如图7所示,解码进度同步器710还可检测关于共享的参考缓冲器430的信息并相应地应用控制到解码器核。

为了监控解码器内核的解码进度,系统可使用解码进度同步器710以根据当前解码的mb、编码单元(cu)、最大cu或超级块(sb)的(x,y)位置或索引,检测他们的进度。局部位置或索引信息可以使用。例如,系统可仅仅使用x-位置或y-位置以确定进度。系统还可根据存储器存取的地址检测他们的进度。根据检测的进度,系统可使用解码进度同步器710以相应分别停止或加速/减速每个解码器内核。控制可以通过控制内核/子模块状态机(例如,暂停)、每个内核的时钟(例如,暂停、加速/减速)、每个内核的存储器存取优先级、影响解码进度或解码速度的其它因素或任何组合,或导致存储器存取停止来实现。

例如,系统可使用解码进度同步器710以检测每个内核的解码进度,并计算 解码进度中的差值。解码进度可对应于当前处理的图像单元的索引(index_a或index_b)。图像单元可对应于mb或lcu。如果|index_a–index_b|≥th,则解码进度中的差值需要减少,其中th表示阈值。为了减少解码进度中的差值,系统可减速或暂停具有较大索引的先导核的解码进度,直到解码进度中的差值在阈值内。备选地,系统可加速具有较小索引的落后的解码器核的解码进度,直到解码进度中的差值在阈值内。

在另一示例中,系统可检查共享的参考缓冲器的状态,如图7所示。如果状态指示由任何内核存取的参考数据将被删除或数据再使用率降低或低于阈值,则系统将控制每个内核的解码进度。

在另一实施例中,解码进度同步器可与以上揭示的延迟fifo一起使用。图8图示具有两个解码器核810,820、解码进度同步器830和延迟fifo840的并行解码器系统的示例。系统可检查延迟fifo是否已满或几乎满,并且然后控制每个内核的解码进度。当延迟fifo满或几乎满时,指示在一个核上执行的解码器内核的解码进度远离另一核,因为延迟fifo可检查位置,以决定是否消耗数据条目并输出到共享的参考缓冲器。换句话说,位置检查可以是在dps自身中或在延迟fifo中或其它模块。在此情况下,应该应用控制以检查两个解码器核之间解码进度的差值。解码进度同步器可以是解码器核中单独的模块。备选地,解码进度同步器可并入到延迟fifo作为集成的延迟fifo/解码进度同步器。

在本发明的又一实施例中,解码进度同步器并入到一个或多个解码器核作为解码器核的集成的部分。例如,图9a图示以主从布置将解码进度同步器910并入解码器核a920的示例。两个解码器核彼此耦合,以便解码器核a920中的解码进度同步器910可从解码器核b930检测解码进度,并提供进度控制到解码器核b930。在此情况下,解码器核a看作主核,用于解码进度同步。图9b图示以对等布置将解码进度同步器940a,940b相应分别并入到解码器核a950和解码器核b960的示例。两个解码器核彼此耦合,以便两个解码器核可从彼此获得进度信息。基于进度信息,解码进度同步器940a,940b将控制相应解码器核的进度。

在本发明的又一实施例中,系统使能一个解码器核中的运动补偿,以从另一解码器核存取重建的数据,用于具有数据依赖关系的两个帧的帧间级并行解码。图10图示使能一个解码器核从另一解码器核存取重建的数据的系统架构的示例,其中芯片上存储器1030在两个解码器核1010,1020之间使用。来自一个 解码器核的重建的数据储存于芯片上存储器由另一核再使用,以便减少带宽消耗。在此示例中,p图片分配到解码器核0以及b图片分配到解码器核1,其中b图片使用p图片作为参考图片。因此,p图片或p图片的部分需要在b图片解码开始之前重建。在现有方法中,重建的p图片数据将写入到解码的参考图片缓冲器,且解码器核1将从解码的参考图片缓冲器存储参考数据。如上所述,解码的参考图片缓冲器通常使用外部存储器实施。因此,芯片上存储器1030用于缓冲器由解码器核1使用的p图片的一些重建的数据,以便处理b图片。经由芯片上存储器的重建的数据的再使用的细节描述如下。

图10中的芯片上存储器1030可用作共享的输出缓冲器,用于负责解码p图片的解码器核01010。图11图示芯片上存储器布置的另一方面。来自解码器核1110的期望由另一解码器核参考的重建的数据储存于共享的输出缓冲器1120(即,图10中的芯片上存储器)而不是直接储存于外部存储器1130。在重建的数据由另一解码器核再使用后或当重建的数据需要被清除时,储存于共享的输出缓冲器1120的重建的数据写入到外部存储器1130中的解码的图片缓冲器。储存于共享的输出缓冲器的重建的数据可以以小于整个帧的给定大小来安排。当新的重建的数据被接收时,一些以前所接收的数据可被清除。此外,储存于共享的输出缓冲器的数据的范围可以由一个或多个窗口来表示,窗口位于两个外部存储器地址之间或在两个点(x,y)和(x’,y’)之间。例如,块1140表示重建的帧,其中数据位置1142对应于刚接收的数据,且数据位置1144对应于清除的数据。数据位置1144和数据位置1142之间的数据区域储存于共享的输出缓冲器,显示于块1150中。也显示于图11中,数据位置1144和数据位置1142之间的数据区域包含三个窗口(即,窗口a、窗口b和窗口c)。数据位置1144和数据位置1142可以由外部存储器地址(x,y)和(x’,y’)指定。当数据被接收到或清除,每个窗口的范围可以被更新。每个窗口可以连续空间或独立空间存储于芯片上存储器。

尽管图11中的窗口具有不同的大小,窗口也可具有共同的大小。共同大小可对应于单个数据字、宏块(mb)、子块或更大块。图12图示使用共同大小的窗口的示例。块1210表示重建的帧,其中数据位置1212对应于刚接收到的数据,以及数据位置1214对应于清除的数据。块1220图示在共享的输出缓冲器中非连续空间中储存尺寸固定窗口的示例。每个窗口可以映射到对应于2次幂的值的地 址的较低部分的开始地址。因此,窗口匹配可以通过比较地址子样式来有效地实现。

根据本发明的另一方面,窗口检测器用于确定要求的参考数据是否在共享的输出缓冲器中,以及相应地从外部存储器的共享的输出缓冲器存取要求的参考数据。当核存取参考帧数据时,窗口检测器将通过与共享的输出缓冲器中的每个窗口比较要求的参考帧数据地址或(x,y)位置,提供窗口匹配方法。如果要求的参考数据的地址/位置位于窗口的开始与结束地址/位置之间,则指示参考数据在此窗口中。如果窗口匹配成功(即,要求的参考帧数据在窗口中),系统计算芯片上存储器中要求的数据的偏置,并开始从偏置位置读取参考数据。当窗口匹配失败,如果要求的地址或位置已经被清除,系统从外部存储器读取参考数据,此可以通过系统使用地址或位置比较来得知。如果对于共享的输出缓冲器和外部存储器参考数据尚未就绪,系统可停止存取。

图13图示使用具有窗口检测器1340的共享的输出缓冲器的并行解码器系统的示例。系统包含两个解码器核1310,1320、共享的输出缓冲器1330和窗口检测器1340。共享的输出缓冲器1330和窗口检测器1340耦合到外部存储器1350。块1360图示重建帧中窗口a、b和c的位置,其中与窗口a、b和c关联的重建的数据储存于共享的输出缓冲器,用于由解码器核b1320的可能再使用。对于重建的帧,在窗口a之前重建的数据储存于外部存储器1350中的解码的参考图片缓冲器。例如,窗口a之前的参考数据1362储存于外部存储器的区域1354。块1370图示了共享的输出缓冲器的状态的示例,其中与窗口a、b和c关联的重建的数据储存于共享的输出缓冲器。如果解码器核b1320要求存取窗口b中重建的数据1362,窗口检测器1340将检测情况并从共享的输出缓冲器读取对应重建的数据1372。在解码器核b1320要求存取重建的数据1364已经储存于外部缓冲器1350的情况下,窗口检测器1340将检测情况并从外部存储器1350读取对应重建的数据1354。

尽管图13图示使用具有窗口检测器的共享的输出缓冲器的并行解码器系统的示例,但是实施例可以扩展到具有多于两个解码器核的并行解码器系统。图14图示使用具有窗口检测器的共享的输出缓冲器的多核并行解码器系统的示例。系统包含多个解码器核1410-01,1410-1,1410-2等、共享的输出缓冲器1420和窗口检测器1430。共享的输出缓冲器1420和窗口检测器1430耦合到外部存储器 1440。复用器1450用于选择一个解码器核作为共享的输出缓冲器1420的输入,且解复用器1460用于将数据从窗口检测器1430路由到一个解码器核。共享的输出缓冲器中的每个窗口可包含图片id,以便共享的输出缓冲器可在多个核之间共享。此外,窗口检测器1430可服务多个核,以便两个或多个解码器核可参考共享的输出缓冲器中的重建的数据。

以上描述是为了使本领域技术人员能够如特定应用其要求的内容提供的实践本发明。所描述的实施例的各种修改将对本领域的技术人员而言是显而易见的,且本文定义的一般原理可以应用到其它实施例。因此,本发明不意于限制于所显示以及描述的特定实施例,而意于符合与本文揭示的原理和新颖特征一致的最广范围。在以上详细描述中,各种具体细节已说明以便提供本发明的完整理解。然而,本领域技术人员应理解本发明可以实施。

并行解码器系统也还可使用储存于可读媒体中的程序代码来实施。软件代码可以使用软件格式来配置,例如,java、c++、xml以及用于定义关于实施本发明的功能操作的装置操作的功能的其它语言来实施。代码可以以本领域技术人员知晓的不同的形式和风格来编写。根据本发明的不同的代码格式、代码配置、软件程序的风格和形式以及配置代码以定义微处理器的操作的其他装备将不背离本发明的精神和范围。软件代码可以在不同类型的装置上执行,例如,膝上型计算机或台式计算机、具有处理器或处理逻辑的手持装置以及利用本发明的计算机服务器或其它装置。所描述的示例在各方面仅仅是作为说明性的并非限制性的。因此,本发明的范围由所附的权利要求而不是上文的描述来指示。落入权利要求均等意思和范围的所有改变均属于其范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1