使用软件驱动器及硬件驱动器彼此联合来实现混合视频编码器的方法及装置的制造方法

文档序号:9221971阅读:422来源:国知局
使用软件驱动器及硬件驱动器彼此联合来实现混合视频编码器的方法及装置的制造方法
【专利说明】使用软件驱动器及硬件驱动器彼此联合来实现混合视频编码器的方法及装置
[0001]交叉引用
[0002]本发明请求美国临时案申请号61/754,938 (申请日2013年I月21日)、美国申请号14/154,132 (申请日2014年I月13日)的优先权,且这些申请案的所有内容以引用方式纳入。
技术领域
[0003]本发明的实施例与视频编码有关,更具体来说,与一种使用软件驱动与硬件驱动彼此联合以实现混合视频编码的方法及装置有关。
【背景技术】
[0004]尽管全硬件的视频编码器满足性能要求,但是全硬件的解决方案成本高昂。可编程驱动器(即一种执行代码命令的功能的软件驱动器)的计算能力越来越强,但依然无法满足视频编码的高端特性,例如720p@30fps或1080p@30fps的视频编码。此外,可编程驱动器的能源消耗也比全硬件的解决方案更高。更进一步,当使用可编程驱动器时,存储器频宽也将成为一个问题。此外,当不同的应用程序(包括操作系统OS)也在相同的可编程驱动器上运行时,在视频编码过程中可编程驱动器的资源将会实时变化。
[0005]因此,需要一种新型的视频编码设计,其能够综合基于硬件实现以及基于软件实现的优势来完成视频编码操作。

【发明内容】

[0006]为了解决上述问题,本发明的实施例中提供了一种软件驱动器与硬件驱动器彼此结合来实现勋和视频编码的方法及装置。
[0007]依据本发明的第一实施例,提供一种视频编码方法。该方法至少包含以下步骤:由软件驱动器执行多个指令来处理视频编码操作的第一部分,其中该视频编码操作的第一部分包含至少运动估计功能;输送该运动估计功能产生的运动估计结果至硬件驱动器;以及由该硬件驱动器处理该视频编码操作的第二部分。
[0008]依据本发明的第二实施例,提供一种视频编码方法。该方法至少包含以下步骤:由软件驱动器执行多个指令以及高速缓存来处理视频编码操作的第一部分;由硬件驱动器处理该视频编码操作的第二部分;通过该高速缓存执行该软件驱动器与该硬件驱动器之间的数据传输;以及执行地址同步来保证该高速缓存的同一条目是由该软件驱动器以及该硬件驱动器正确地取址以及存取。
[0009]依据本发明的第三实施例,提供一种混合视频编码器。该混合视频编码器包含软件驱动器与硬件驱动器。软件驱动器配置为执行多个指令来处理视频编码操作的第一部分,其中该视频编码操作的第一部分包含至少运动估计功能。硬件驱动器耦接至该软件驱动器,该硬件驱动器配置为接收该运动估计功能产生的运动估计结果,并且处理该视频编码操作的第二部分。
[0010]依据本发明的第四实施例,提供一种混合视频编码器。该混合视频编码器包含软件驱动器与硬件驱动器。软件驱动器,配置为执行多个指令来处理视频编码操作的第一部分,其中该软件驱动器包含高速缓存;以及硬件驱动器,配置为处理该视频编码操作的第二部分,其中通过该高速缓存执行该软件驱动器与该硬件驱动器之间的数据传输,并且该硬件驱动器进一步执行地址同步来保证该高速缓存的同一条目被正确地取址并且由该软件驱动器以及该硬件驱动器存取。
[0011]根据本发明,混合视频编码器或解码器的全硬件解决方案和全软件解决方案之间的设计提出了很好的权衡成本和其他因素(例如,功率消耗,内存带宽等)。在一设计中,至少软件实现运动估计,除了软件实现的其他编码步骤由硬件完成视频编码。此处,建议的解决方案称为混合机制/混合视频编码。
[0012]在本发明中,揭露了多种方法与装置,这些方法与装置具有相同点,即都是由在可编程驱动器上执行软件指令来至少实现运动估计,可编程驱动器的举例说明为中央处理器(CPU)例如基于ARM处理器或其类似、数字信号处理器(DSP)、图形处理器单元(GPU)等。
[0013]所提出的解决方案采用混合机制,其中至少由软件实现运动估计,以合理利用可编程处理器(即软件驱动器)中可用的新指令以及该可编程处理器的较大的高速缓存。此夕卜,视频编码操作的其他部分的至少一部分,例如运动补偿、帧间预测、变换/量化、反变换、反量化、后端处理(例如去区块过滤、采样适应性便宜过滤、适应性环路滤波等等)、熵编码等等,是由硬件驱动器(即纯硬件)实现。在所提出的混合解决方案中,可编程处理器的高速缓存中存储的至少部分数据能够被硬件驱动器与软件驱动器两者存取。举例来说,至少一部分源视频帧存储在高速缓存中,并且被硬件驱动器与软件驱动器两者存取。另举一例来说,至少一部分参考帧存储在高速缓存中,并且被硬件驱动器与软件驱动器两者存取。在另举一例,由软件功能或者硬件功能产生的至少一部分中间数据存储在高速缓存中,并且被硬件驱动器与软件驱动器两者存取。
[0014]在阅读后续对各种数据和附图所示的较佳实施方式的详细叙述后,本领域技术人员将毫无疑义地了解本发明的上述和其他目的。
【附图说明】
[0015]图1是依据本发明的一实施例中的混合视频编码器的区块图;
[0016]图2绘示了由图1所示的混合视频编码器所执行的视频编码操作的前端组建区块。
[0017]图3是软件驱动器与硬件驱动器执行任务并且在帧编码时间的时间间隔交换信息的举例说明。
[0018]图4绘示了依据本发明第二实施例的混合视频编码器。
具体实施例
[0019]在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准贝1J。在通篇说明书及权利要求书中所提及的“包含”是一个开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此是包含任何直接及间接的电气连接手段,因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或者透过其他装置或连接手段间接地电气连接至该第二装置。
[0020]由于可编程驱动器的计算能力持续地提高,当前的CPU、DSP、或者GPU通常具有特定的指令(例如SIMD (single instruct1n multiple data)指令集)或者加速单元来增进通常计算的能力。通过一些传统的快速运动估计(ME)算法,软件运动估计在可编程处理器中可实现。本发明的实施例中所提出的方法使得在一个可编程处理器中可以使用新的指令。并在可编程处理器中大容量高速缓存的使用中取得优势。此外,由于提前的运动估计算法,软件运动估计可实现。上述软件执行运动估计的功能可以在一个单一可编程驱动器或者多可编程驱动器(例如多核)中实现。
[0021]请参考图1,图1是依据本发明的一实施例中的混合视频编码器100的区块图。图1中绘示了系统10中的视频编码器100。即混合视频编码器100可以是电子装置的一部分,更具体来说,可以是电子装置中的集成电路(IC)中的主处理电路的一部分。电子装置的例子包括,但不限于,移动电话(例如智能电话或者功能电话),移动电脑(例如电脑本),个人数字辅助,个人计算机(例如膝上电脑)。混合视频编码器100包含至少一个软件驱动器(即软件编码器部分),其通过执行指令(即编码代码)来实现预计的功能,更进一步包含至少一个硬件驱动器(即硬件编码器部分),其通过使用纯硬件来实现预计的功能。换句话说,混合视频编码器100是通过联合的软件与硬件来实现视频编码的操作。
[0022]在本实施例中,系统10是一个片上系统(SoC),具有多个可编程驱动器包含其中,其中一或多个可编程驱动器被用作混合视频编码器100所需的软件驱动器。举例来说,但并不局限于此,可编程驱动器是DSP子系统102,GPU子系统104以及CPU子系统106。需注意的是,系统10进一步包含其他的可编程硬件,其能够执行嵌入的指令或者被一个序列器(sequencer)控制。DSP子系统102包含DSP (例如CEV
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1