新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP硬解码的低成本高清屏媒系统

基于DSP硬解码的低成本高清屏媒系统

作者:张亿 徐雪 贾瑞时间:2015-05-14来源:电子产品世界收藏
编者按:设计并实现了一种基于OMAP3730的低成本高清屏媒系统,能够充分发挥可编程C64+DSP的强大计算功能, 利用硬件实现常用视频格式的高清硬解码播放,利用软件兼顾不常有视频格式的解码播放,同时针对屏媒系统的特点利用DSP实现转屏,达到在横屏和竖屏上的自适应播放的效果。

摘要:设计并实现了一种基于的低成本高清屏媒系统,能够充分发挥可编程C64+的强大计算功能, 利用硬件实现常用视频格式的高清播放,利用软件兼顾不常有视频格式的解码播放,同时针对屏媒系统的特点利用实现转屏,达到在横屏和竖屏上的自适应播放的效果。

本文引用地址:http://www.eepw.com.cn/article/273271.htm

  随着移动互联技术的不断发展和应用,多媒体技术以其不可阻挡的趋势渗入到人们的工作和生活中,数字视频是多媒体技术里比较复杂的领域,如何在低成本、低功耗的环境中实现高质量的数字视频应用是各家公司竞争的焦点。低功耗的对外设支持比较全面,但计算能力较差;基于哈佛结构的计算能力强大,但对外设的支持很弱。是TI推出的一款+DSP双核异构处理芯片,其中核为1GHz COTEX-A8,DSP核为800MHz的可编程C64+DSP。

  本文设计并实现了一种基于的低成本高清屏媒系统,能够充分发挥可编程C64+DSP的强大计算功能, 利用硬件实现常用视频格式的高清播放,利用软件兼顾不常有视频格式的解码播放。该系统还针对屏媒系统的特点利用DSP实现转屏,实现在横屏和竖屏上的自适应播放。整个系统流程如图1所示。


1 视频类型判断和解码

  本文用来判断视频文件的类型,是GStreamer库提供的一个工具,接受输入URI或者URI列表,返回它们的信息。返回的信息一般较多,我们重点关注返回信息中的视频编码以及视频的分辨率,根据这些就能判断该视频是否可以硬件加速。GstDiscover的一个典型的输出如图2所示,给出了该文件的封装信息video/webm;音频信息:音频编码audio/x-vorbis,通道数2,比率48000;视频信息:视频编码video/x-vp8,宽度854,高度480,帧率25。

  具体的实现可以利用QT中的QProcess通过命令行的形式调用GstDiscover,使用QProcess的readAllStandardOutput函数读取所有输出结果。在输出结果中用正则表达式查找关键字“audio:”和“video:”从而得到相关的视音频信息。

  GStreamer是一个基于管道的多媒体框架,能够提供组件化的多媒体处理功能。框架中的所有的功能模块都被实现成可以插拔的组件,并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此很容易利用已有的各种插件“组装”出一个功能完善的多媒体应用程序。这种松耦合的架构很容易实现编解码的模块化。TI的GStreamer插件使用DMAI来访问底层硬件,使得DSP的应用变得容易。GStreamer在运行时作为ARM处理器上的应用程序,并通过使用DMAI来对DSP和加速模块进行调用,以实现硬件编解码。GStreamer的应用实现了公共组建的最大可复用性,提高了系统框架的可移植性。

  元素(elements)是GStreamer中最重要的概念,你可以把一组元素链接到一起组成一个链,然后让数据流依次通过这个链中的每个元素。每个元素具有某个特定的功能,比如有的元素能够从文件读数据,有的元素可以实现视频解码,有的元素负责把数据输往声卡等等。通过把元素串接在一起,可以实现管道。管道是用来实现特定任务的,比如媒体回放或者视频捕捉。GStreamer默认提供了大量的元素,这使得开发大量媒体应用成为可能。如果需要你也可以自己创建新的元素。接口(pads)是元素上数据输入和输出的地方,接口分两种,输入数据的接口(sink)和输出数据的接口(src)。通过连接接口可以把两个元素链接到一起,相连接的接口必须支持相同的数据格式。容器(bin)是一种特殊的元素,容器本来是一组连接在一起的元素的集合,但是对外容器表现的像一个元素一样。管道(pipeline)是一种高层容器,为应用层提供了总线机制,并实现元素响应的同步化。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭