0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于嵌入式处理器实现TS流处理系统的应用方案

电子设计 来源:单片机与嵌入式系统应用 作者:帅文 2021-05-05 16:50 次阅读

中国地面电视传输标准的强制实施和直播星的开通,将极大地促进数字电视的发展。现在国内已经有多个省市开播了移动数字电视。对终端接收设备软件而言,数字电视的处理主要是对经过解码后的TS流分析和解析。

1 TS流及一般处理流程

1.1 TS流

TS流,即传送流(Transport Stream),是根据ITU-TRec.H.222.O | ISO/IEC 13818-2和ISO/IEC 13818-3协议而定义的一种数据流。它由一道或多道节目组成,每道节目由一个或多个原始流和其他一些流复合在一起,包括视频流、音频流、节目特定信息流(PSI)和其他数据包。在数字电视广播中传送的就是TS流。TS流可以承载多种信息流,如实际应用中的音视频流、数据流、控制流等。一个TS包的长度是固定的,以同步字节(sync_byte)Ox47打头,后跟数据包识别号PID和分组负载数据等,总长为188字节。从PID可以判断其后面负载的数据类型是视频流、音频流、PSI,还是其他数据包。节目特定信息流(PSI)用来描述传送流的组成结构,由特定的PID构成,其中最重要的是PAT表和 PMT表。

1.2 TS流的处理

数字电视接收设备在收到TS流后的一般处理流程如图1所示。TS-Reader是TS流读取模块,用于检测TS流并读取;TS-Demux模块是TS流分拆模块,用于将TS流中的音视频数据分检出来供后面模块处理;Video-Decoder模块是视频解码模块,依照TS流承载的视频数据压缩格式进行相应的解码工作,然后将解码后的视频数据送到显示设备输出;Audio-Decoder模块是音频解码模块,将TS流内的音频流解码,输出到音频设备。

2 基于AU1200的TS流处理系统组成

本设计的数字电视接收设备的硬件选用AU1200作为主芯片。AU1200是RMI公司推出的一款MIPS架构的高性能、低功耗、高集成度的嵌入式处理器。AU1200所具有的媒体加速引擎(Media Acceleration Engine,MAE)可以在没有DSP的条件下流畅播放MPEG-1、MPEG-2、DivX和Xvid等多种流媒体,而不需要PC(或其他设备)进行内容的代码转换。采用AU1200作为嵌入式数字电视播放设备的主芯片,在媒体播放性能上能充分利用其低成本、低功耗和高性能的特性。

MAE是AU1200处理器内置的片上硬件,它承担了视频解码、缩放、颜色空间转换和过滤的功能。MAE硬件上被分为前端和后端,各自执行特定的任务。 MAE的前端独立执行最为复杂和繁重的解码任务,包括反向量化、反向余弦转换、运动补偿和Windows Media Video 9覆盖平滑处理。MAE后端执行缩放、颜色空间转换和过滤功能。高效地利用MAE前后端可以减轻CPU的负载,提供更友好的人机交互。

Linux系统为平台,利用其多线程处理的优势,结合AU1200硬件组成的数字电视播放系统可以方便地实现数字电视TS流的播放。数字电视播放系统结构如图2所示。

3 数字电视播放软件的设计

播放软件采用模块化设计,多线程并行处理。各模块并通过MAI(Media Application Interface)Engine完成相互问的数据传递和同步。软件要求在保持流畅播放MPEG(1,2,4),DivX,WMV和XviD等格式多媒体文件的同时增加播放数字电视的功能。

3.1 已有播放软件结构

已有的媒体播放软件结构:播放软件内各模块通过MAI Engine将相应模块组装起来,完成特定格式的媒体文件的播放或格式转换。

模块类型分为:File Reader模块、Demux模块、De-coder模块、Render模块和File Writer模块。模块是否需要载人、如何进行链接由MAI Engine根据播放的媒体格式而定。模块装载后以线程的形式独立运行,模块间通过数据缓冲区进行数据交换,并由MAI Engine负责协调,以确保模块运行正常。

3.2 播放软件内的TS流处理

在播放软件内实现数字电视TS流的播放,需要在原有的播放系统上增加TS流的Reader、Demux和Decoder模块。由于数字电视的音视频编码格式都是公开且确定的,因此需要相应的Decoder模块进行处理。基于MAE的TS流处理模块结构如图3所示。

(1)TS-Reader模块

TS-Reader模块是读取TS流的模块。它从硬件设备获取TS流数据,按照TS-Demux的数据缓冲区大小要求写入该缓冲区。主要实现打开TS流数据接口、关闭接口和读取TS流数据3个功能,分别对应3个主要函数一TSstreamopen()、_TSstreamclose()和 _TSstreamread()。由于数字电视不支持回放,因此不具备定位搜索(即Seek)的功能。

(2)TS-Demux模块

TS-Demux模块是进行TS流解析的模块,它是处理数字电视TS流的关键。TS-Demux从缓冲区中取到数据后,需要对TS流进行解析,然后返回 MAI当前TS流的节目信息,供应用程序选择。在确定节目流PID后,TS-Demux将根据音视频PID分检TS流,获取Video和Audio数据,供相应的Decoder解码。

(3)Audio-Decoder模块

在MAI开始链接各模块时已确定了音视频的解码格式,因此音视频的解码模块在链接时已确定下来。此时的音频解码Audio-Decoder模块就是处理音频解码的模块,依据不同的数字电视格式,该音频解码格式可能是mp3或ac3等。音频解码后,音频数据送往Audio-Render模块驱动硬件发出声音。

(4)Video-Decoder模块

视频解码Video-Decoder模块也是进行确定编码格式的解码工作。对于MPEG2的编码格式,Video-Decoder将数据交给MAE的前端处理,由MAE送到显示屏上显示。对于其他不能使用MAE前端进行处理的视频格式(如H264等),必须由软件进行解码,形成YUV数据,然后将YUV数据输入到MAE的后端处理。

3.3 数字电视播放效果

需要对搭建起的数字电视播放系统进行测试。通过测试,数字电视设备接口的数据缓冲区需要设置为256KB,如果存储容量允许采用512 KB到1 MB更好。在数字电视模块采用USB接口进行播放时,播放流畅,音视频同步,数字电视的实际播放达到了预期的效果。

3.4 增加对其他媒体格式的支持

对于其他常见的媒体文件格式,如flv和rmvb等,也可以通过增加该格式的 Demux和Decoder实现播放。由于视频Decoder解码后得到的是YUV数据,因此直接将该数据交给MAE-BE端处理。音视频同步方面,需要在提交YUV数据给MAE-BE端处理时,将当前帧的时间戳一并提交给MAE,即可由MAE内部实现音视频同步。当然也可以自己在程序中进行音视频同步,这需要在提交YUV前从MAE取得音频播放的时间戳,然后与当前视频帧的时间戳比较,进行必要的延时操作。

结语

本文详细介绍了数字电视播放系统的建立过程。该系统基于AU1200芯片,结合软硬件优势,实现了数字电视TS流的播放功能。通过对媒体播放程的扩展,还可以实现如flv和rmvb等多种媒体格式的解码播放。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18295

    浏览量

    222204
  • 芯片
    +关注

    关注

    447

    文章

    47819

    浏览量

    409192
  • 嵌入式
    +关注

    关注

    4983

    文章

    18293

    浏览量

    288568
收藏 人收藏

    评论

    相关推荐

    基于ARM7的嵌入式音频处理系统的设计

    技术,完成基于ARM7的嵌入式音频系统的软硬件设计与实现。该系统具有音频实时录制、音频实时播放和播放由WAV格式保存的音频文件的功能。【关键词】:ARM;;音频
    发表于 04-24 09:42

    基于多核处理器的弹载嵌入式系统该怎么设计?

    弹载信息处理系统是一种实时嵌入式数字处理系统,用于对弹载导引系统接收信号进行分析处理实现对目标
    发表于 08-29 06:07

    SPB嵌入式音频处理系统该怎么设计?

    的软件构架.SPB中的软件IP模块可以屏蔽底层细节,为FPGA嵌入式设计的快速开发提供便利,提高研发效率.介绍了基于SPB的FPGA嵌入式设计关键技术,并在智能开发平台NanoBoard 3000上实现了基于SPB的
    发表于 09-18 06:09

    使用 ARM 和 CPLD 共同实现嵌入式数字图像处理系统

    分享的是基于ARM和CPLD的嵌入式数字图像处理系统设计方案嵌入式数字图像处理系统概述:本文介绍的是一种
    发表于 12-10 17:55

    基于SPB怎么实现嵌入式音频处理系统设计?

    的软件构架。SPB中的软件IP模块可以屏蔽底层细节,为FPGA嵌入式设计的快速开发提供便利,提高研发效率。介绍了基于SPB的FPGA嵌入式设计关键技术,并在智能开发平台NanoBoard 3000上实现了基于SPB的
    发表于 03-11 07:12

    分享一款不错的基于嵌入式Linux的便携RFID信息采集与处理系统

    本文介绍一种基于嵌入式Linux 的便携RFID 信息采集与处理系统。它采用高性能的32 位ARM920T 系列微处理器、8键的键盘及OLED 显示屏, 结合S1510
    发表于 05-26 06:04

    怎么实现基于信号处理嵌入式应用的音频处理系统的设计?

    本文阐述了基于信号处理嵌入式应用的音频处理系统的设计和实现
    发表于 06-08 07:07

    嵌入式处理器简介

    嵌入式处理器简介嵌入式处理器嵌入式系统的核心,是控制、辅助
    发表于 07-26 07:18

    嵌入式处理器是什么

      嵌入式处理器嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器
    发表于 10-27 07:24

    嵌入式处理器是什么

      嵌入式处理器嵌入式系统的核心,是控制、辅助系统运行的硬件单元。范围极其广阔,从最初的4位处理器
    发表于 10-28 08:56

    嵌入式处理器的分类

    EMPU 嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性
    发表于 11-09 07:08

    嵌入式处理系统

    嵌入式处理系统 嵌入式系统概述 嵌入式处理系统设计 并行计算机的组织结构模型
    发表于 02-25 16:53 43次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>处理系统</b>

    基于FPGA的嵌入式信号处理系统设计方案

    基于FPGA的嵌入式信号处理系统设计方案
    发表于 06-02 11:04 0次下载

    基于FPGA的嵌入式信号处理系统设计方案

    基于FPGA的嵌入式信号处理系统设计方案
    发表于 06-02 11:04 0次下载

    嵌入式图像处理系统的设计与实现

    嵌入式图像处理系统的设计与实现(嵌入式开发需要学哪些算法)-文档为嵌入式图像处理系统的设计与
    发表于 08-04 15:19 10次下载
    <b class='flag-5'>嵌入式</b>图像<b class='flag-5'>处理系统</b>的设计与<b class='flag-5'>实现</b>