提高Media SDK效率之多线程篇
来源:互联网 发布:mac怎么装正版office 编辑:程序博客网 时间:2024/05/21 14:16
提高Media SDK效率之初始化设置篇和提高Media SDK效率之内存选择篇中,笔者已经对Media SDK的两个重要配置部分进行了分析和总结。本节,我们将着重讨论如何使用多线程技术提高视频Converter的效能(一种视频的常用应用)。
在运用Media SDK进行格式转换时,一般要涉及三大模块,他们是Decoder,VPP和Encoder,数据输入输出如图1所示。
图1 基本数据输入输出图
从图1可以看出,每经过一个模块,都要对数据进行同步操作。在此期间,其他两个模块是处于空闲状态,是一个典型的串行处理过程。对于英特尔的多核技术,它的多核利用率是最低的,相应的效率也较差。
那么如何对现有流程进行多线程化呢?
本文提供了一种最简单的方法,即对每个模块线程化。它在实际运用中并非是最佳方案,之所以采用它,仅仅是为了提供一种思路。请参考图2所示。
图2 模块线程化输入输出图
图2将Decoder,VPP和Encoder三个模块分别线程化,在彼此之间以队列(queue)为数据交换。
简单的工作模式如下:
- 若队列为空,后级模块等待数据。
- 若队列被填充,前级模块通知后级模块。
- 若无输入数据,前级模块通知后级模块结束工作,后自行了断。
虽然这种线程化的工作增加的程序的复杂性,但是对于赢得的性能而言是值得的。在理想状态下,我们看到三个模块的并行工作,转化时间的长短取决于最为耗时模块。
【小结】
- Media SDK仅仅提供硬件加速能力,线程化工作展开于具体应用。
- 三个模块线程化仅仅是一种简单参考实现,不是最佳方案。如何充分利用英特尔的多核技术,应该建立在具体分析的基础之上。英特尔提供了丰富的性能检测和优化工具,他们能够帮助程序员找出关键问题所在。
在运用Media SDK进行格式转换时,一般要涉及三大模块,他们是Decoder,VPP和Encoder,数据输入输出如图1所示。
图1 基本数据输入输出图
从图1可以看出,每经过一个模块,都要对数据进行同步操作。在此期间,其他两个模块是处于空闲状态,是一个典型的串行处理过程。对于英特尔的多核技术,它的多核利用率是最低的,相应的效率也较差。
那么如何对现有流程进行多线程化呢?
本文提供了一种最简单的方法,即对每个模块线程化。它在实际运用中并非是最佳方案,之所以采用它,仅仅是为了提供一种思路。请参考图2所示。
图2 模块线程化输入输出图
图2将Decoder,VPP和Encoder三个模块分别线程化,在彼此之间以队列(queue)为数据交换。
简单的工作模式如下:
- 若队列为空,后级模块等待数据。
- 若队列被填充,前级模块通知后级模块。
- 若无输入数据,前级模块通知后级模块结束工作,后自行了断。
虽然这种线程化的工作增加的程序的复杂性,但是对于赢得的性能而言是值得的。在理想状态下,我们看到三个模块的并行工作,转化时间的长短取决于最为耗时模块。
【小结】
- Media SDK仅仅提供硬件加速能力,线程化工作展开于具体应用。
- 三个模块线程化仅仅是一种简单参考实现,不是最佳方案。如何充分利用英特尔的多核技术,应该建立在具体分析的基础之上。英特尔提供了丰富的性能检测和优化工具,他们能够帮助程序员找出关键问题所在。
- VPP模块是可选的,如果应用没有采用,就将Decoder后的队列直接连接到Encoder之前。
http://software.intel.com/zh-cn/blogs/2010/01/28/media-sdk
- 提高Media SDK效率之多线程篇
- 提高系统性能之多线程编程
- java之多线程篇
- Media SDK
- Media SDK
- Media SDK
- multiprocessing dummy提高线程并行效率
- 提高文件复制性能之多线程复制文件
- Android性能之多线程篇
- SDK使用 Mapping File 提高文件读写效率
- 第七篇 提高学习效率
- Boost编程之--使用thread类提高线程开发效率
- intel media SDK (二)
- intel media SDK(三)
- Intel Media SDK(四)
- Intel Media SDK 介绍
- Intel Media SDK
- Intel Media SDK 介绍
- Notification简介
- 关于MFC 主菜单Alt无响应
- 汇编初时化内存空间为空的函数
- Android Activity是怎么画出来的
- 北大acm1008题
- 提高Media SDK效率之多线程篇
- hive 配置参数说明
- YearsBetween、MonthsBetween ... YearSpan、MonthSpan ... 间隔时间
- HDU3374(String Problem)字符串-最小表示法+KMP
- DictForGeeks,我自己写的自定义词库的词典,支持英-中,中-英,也可以当电话本用。
- 韩信走马分酒问题(回溯)
- UvaLive-4254-Processor
- myeclipse新建webproject没反应
- LAYOUTGET(二)