第一周工作报告

本周在得知被导师选定参与项目后与导师取得联系,在和导师通完电话后对项目有了一定的认识。之后回到学校下载了相关的一些论文进行阅读。

   下面主要对项目中涉及到的相关的知识内容进行了一定的了解整理。

1、首先,关于视频格式,项目中主要涉及到MPEG2VC1MPEG4等视频的名词,对此做了相关的了解。

   MPEG是活动图像专家组的缩写,于1988年成立。目前MPEG已颁布了三个活动图像及声音编码的正式国际标准,分别称为MPEG-1MPEG-2MPEG-4,而MPEG-7MPEG-21都在研究中。

   以下的表格对MPEG-1MPEG-2MPEG-4进行了对比:



 

    VC-1即视频编码方案一,是微软于2001年发布的新一代多媒体技术系列windows Media 9中的一部分,后经美国电影与电视工程师协会审批并命名为SMPTE标准VC-1,目前已进入完全委员会草案。它是继H.264/AVC后的一种新视频编码标准,二者都是针对HD视频和广播而设计的高效视频压缩技术。它们预计将成为卫星电视、IP机顶盒和将推出的HD-DVD录像机的关键引擎。

   mpeg1VCDmpeg2DVDmpeg4是高压缩的格式,文件小于mpeg1mpeg2,图像清晰。现在主流高清就用H.264MPEG-4标准第十部分)MPEG-2VC-1这三种视频编码,这三种编码方式的压缩效率从高到低依次是H.264VC-1MPEG-2

2、接下来对项目中涉及到的工具进行了相关的了解。

   视频解码是非常消耗CPU的一个任务,尤其是1080P这种高分辨率的高清节目。幸运的是,现在的显卡都带了可编程的GPU,如果我们用GPU用来做视频解码,那么CPU就可以解放出来做其他的任务了。低功耗的CPU是无法做解码这样的工作的,这时硬件的配合就是必须的了。

   目前来说,每个GPU的制造商都提供了访问它们的硬件方法(API),不幸的是各家并不相同,并没有一个强制的标准。

   VAAPIVideo Acceleration API)是Intel2007年设计的,目的是在Unix操作系统的Xwindow系统下运行,现在开源了。现在不仅仅局限于IntelGPU,其他制造商也可以使用了。Gstreamer通过gstreame-vappifluvadec这个插件来使用。

   VDPAUVideo Decode and Presentation API for Unix)是2008NVidia设计的,最早也是运行在UnixXWindow系统下,现在同样开源了。虽然同样已经是开源库了,但是除了NVidia自己外还没有其他制造商使用。GStreamer通过vdpaufluvadec这个插件来使用。

   DXVADirectX Video Acceleration)微软为了windows系统和XBox360定制的。GStreamer通过fluvadec这个插件来使用。 

   XVBA(X-Video Bitstream Acceleration)AMD设计,在linux操作系统的XWindow系统下下X Video的扩展。目前在AMDATI显卡中有支持。GStreamer通过fluvadec这个插件来使用。

   VDA(Video Decode Acceleration):应用于Mac OSX10.6.3之后,仅仅加速H.264的解码,GStreamer通过fluvadec这个插件来使用。

   OpenMAX(Open Media Acceleration):由非盈利性联合Khronos Group设计的,是一组跨平台的C语言编程接口。GStreamer通过gstreamer-omx这个插件来使用。

   OVD(Open Video Decode)AMD的又一个APIGStreamer目前不能使用这个接口。                      

   DCE(Distributed Codec Engine):一个开源的软件库(libdce)TI定制的API,提供给linux系统和ARM平台的。GStreamer通过gstreamer-ducati插件可以使用。

   由于软件和硬件平台架构的不同,多媒体应用程序只能在特定的平台和系统上运行,不利于实际的生产开发。OpenMAX IL(Integration Layer)致力于解决在众多不同的媒体系统间的移植性问题,对底层的编解码器等多媒体数据处理功能进行标准封装,可以由上层统一调用,从而实现应用程序重用性和移植性,对生产开发来说可以削减开发资金和人力,减少开发周期,提高产能和工作效率。OpenMAX IL 应用程序接口定义了一组标准化的媒体组件接口,这组接口可以是开发者或平台提供者与用软件或硬件实现的多媒体编解码器集成和通信。

   在 GStreamer 中增加 OpenMAX IL的支持具有能够通过标准方式访问多媒体组件的好处,当集成了 OpenMAX IL支持时,使用 GStreamer API 的程序会得到平台上硬件加速的好处。尽管OpenMAX 集成层的 API 和 GStreamer 初始化的理念相同,但是比 GStreamer OpenMAX IL 具有更多的优点。

   GStreamer 元件使用 OpenMAX IL 内核加载 OpenMAX IL组件,通过 OpenMAX IL 的 APIGStreamer 元件可以配置组件的操作参数,管理分配缓冲区,以及和 OpenMAX IL 的组件交换数据缓冲区。用 OpenMAX IL术语来说,GStreamer 元件就是 IL 客户端,GStreamer 衬垫在 OpenMAX 组件端口中都有对应的逻辑配对,主要的不同就是衬垫可以动态的加载到 GStreamer 的元件中,而 OpenMAX IL 组件端口是静态的并且在运行时只能启用和禁用。

gst-openmax 是允许 GStreamer 和 OpenMAX IL 组件交互的一个 GStreamer插件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值