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

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

3天内不再提示

基于ARM微处理器的MPEG-2解复用器设计方案

电子设计 来源:郭婷 作者:电子设计 2019-05-03 10:04 次阅读

引言

随着芯片技术的发展,FPGA的容量已经达到上百万门级,从而使FPGA成为设计的选择之一。Altera公司的FPGA芯片EPXA10应用SOPC技术,集高密度逻辑(FPGA)、存储器(SRAM)及嵌入式处理器ARM)于单片可编程逻辑器件上,实现了RISC和FPGA的完美结合。本文使用EPXA10芯片,利用片上的ARM微处理器对MPEG-2传输流进行解码,得到必要的解码参数,实现了将传输流分成视频流和音频流的解复用。

EPAX10器件

简要介绍

ALTERA公司的EPXA10器件单片集成了ARM硬核,百万门级的FPGA,以及SDRAM存储器的接口。它将FPGA和ARM处理器完美结合在一起,是一个典型的SOPC结构。

其中ARM处理器是32位的ARM922T,工作频率可以达到200MHz,具有8K的数据缓存和8K的指令缓存。通过板上的JTAG接口,可以实现断点调试功能。

片上的百万门级FPGA可用于实现用户自定义的逻辑。它通过AHB总线和ARM处理器相互连接。为了更加灵活的使用,FPGA用户自定义逻辑可以定义为主模块(master),在总线通信时处于发起端;或是定义为从模块(slave),在总线通信时处于接收端。FPGA器件内部有3M大小的存储器,同时集成了SDRAM控制器。在FPGA开发板上可以外接128M的SDRAM,为了便于内部FPGA和外部SDRAM大数据量的交换,用户还可以定义自己的DMA模块,用于访问外部SDRAM。通过UART、网卡接口、JTAG接口,FPGA可以很方便地同外部计算机通信、下载程序,及调试程序等。

基于ARM微处理器的MPEG-2解复用器设计方案

MPEG-2传输流解复用原理

MPEG-2传输流简要介绍

作为数字视频压缩技术的国际通用标准,MPEG-2标准于1994年被运动图像专家组制定出来,分成系统层、视频压缩层和音频压缩层。系统层主要用来描述音、视频的数据复用和音、视频的同步方式。在系统层定义了TS(传输流)和PS(节目流)两种形式的码流。PS通常用于相对无错的环境,例如DVD中,其长度为2048字节;TS通常用于相对有错的环境,例如数字电视的地面广播传输中,分组长度规定为188字节。TS流和PS流都是由编码后的基本数据流(ES)根据一定的格式打包形成PES包,再加入一些系统信息而构成的,码流形成过程如图2所示。根据MPEG-2协议,在发送端,基本流的PES打包由音/视频编码器完成,复用器接收编码端的音、视频数据流以及辅助数据流,按照一定的复用方法将其交织成为单一的TS流。为了实现音、视频同步,在码流中还必须加入各种时间的标志和系统的控制信息。接收端和发送端正好相反。

传输流及其PSI表

传输流TS的结构长度为188字节,分成包头和包负荷两部分。包头主要包括同步字节和PID以及其他的信息,同步字节用来指示一个TS包开始(0x47),PID表示TS包的类型。例如一个节目里的音频PES包,在转换成为TS包后会具备同样的PID,这样,接收端只需要接收具有此PID的TS包,就可以将该节目的音频解出来了。包负荷是包的实际内容,根据具体情况,可以放置PES包或PSI包。传输流由一个或者多个节目构成,而每一个节目由视频流、音频流、私有信息流以及其他的数据包构成。

PSI包在传输流解复用中占据重要地位,它通过四个表格来定义码流的结构,分别是节目关联表(PAT)、节目映射表(PMT)、条件接收表(CAT)和网络信息表(NIT)。其中最为关键的部分是PAT表和PMT表。

PAT表是PSI信息的索引表,PID值固定为0。在PAT表中列出了该传输码流中所有节目的PMT表的PID值。如果接收方希望接收其中的一个节目,即可根据这个PID值解出对应于该节目的PMT表,从中可以查询到与该节目相关的所有音频流、视频流,以及私有信息的PID,在接收时就可以只接收具有这些PID值的包。

基于ARM微处理器的MPEG-2解复用器设计方案

PAT表的PID值为0,根据PAT表可以得到各个节目对应的PID值,如节目0,PID=122,对应NIT网络信息表;节目1,PID=60;节目20,PID=200等。如果希望看节目20,就根据200这个PID值得到节目20对应的PMT表,再进一步查到节目20的视频、音频及私有信息包对应的PID值,分别为500、510和540。解有这些PID值的传输包就可以解出音频和视频的PES包,最终解出音频流和视频流。CAT表的PID值固定为1,用来传递加密信息,不在本文的讨论范围内。

在MPEG-2系统层解码时,需要由一个解复用器按照上述的原理对PSI表进行处理,同时将各个音、视频基本流从传输流中分离出来,送入对应的解码器中,所以解复用器在MPEG-2解码中占据重要的地位。

解复用系统的具体实现

本文设计的是DVB的SDTV系统集成解码芯片,视频解码最高支持MPEG-2的MP@ML,分辨率为720×576,实时解码;音频解码满足AC-3标准。

从前面的部分可知,解复用器需要承担将数据分流的工作,所以数据处理量相当大,很多解复用器都采用DSP或者专用ASIC进行处理。本文中,有别与以往的结构,利用EPXA10的片上ARM处理器,以及片上内嵌的SDRAM控制器和DMA控制器的特性,来实现对MPEG-2的传输流进行解复用,同时由硬件完成对PID包过滤的任务。所有的数据分解过程都由系统软件来完成,因此在数据处理方面更加灵活,保证了系统对于MPEG-2传输流解码的灵活性,同时避免了语法上的不兼容。

基于ARM微处理器的MPEG-2解复用器设计方案

系统硬件由PID过滤、片上缓存及DMA等构成;系统软件部分由ARM实现。片外SDRAM用来存放数据。音/视频解码模块使用硬件实现,在本文中不涉及到相关内容。

系统硬件的功能是:当外部的8位传输流数据输入到FPGA上时,根据传输流包头进行同步,并将同步好的数据送入到PID过滤器。如果在传输过程中有错误,也就是包头中有sequence-error-code=1,就丢弃这个包;如果没有,则检查PID码表的数据,如果在码表中有这个PID值,那么就将这个传输流的包送入到FPGA的片上缓存中;否则就丢弃这个包。PID过滤器工作完成后,数据送入FPGA片上缓存部分,为了加快数据处理速度,使用DMA将缓存中的数据传输到片上SDRAM对应的传输流缓冲区。

如果片外SDRAM的传输流缓存中有未处理的包,则取出该包,判断PID的值。如果PID=0,表示当前的包是PAT,那么就对该包进行解析,根据选定的节目号,确定需要解码的PMT包的PID,再更新FPGA上PID码表中PMT的PID,并将PMT的状态位设定为需要解码。

如果PID等于PID码表中PMT包的PID,则判断PMT的状态位。如果不需要解码,就丢弃这个包;如果需要解码,则进入PMT包解析子程序,提取出该解码对应的音、视频传输流包的PID,将提取出的音、视频传输流包的PID值对FPGA片上的PID码表进行更新。

如果PID等于PID码表中的音、视频PID值,那么就进入到音/视频处理程序,对音、视频的传输流包进行解包,将解得的PES包的内容(就是实际的音、视频流)通过DMA发送到片外SDRAM的音/视频缓冲区中,供下一级的音/视频解码器完成解码功能,最终完成MPEG-2码流的解码过程。

基于ARM微处理器的MPEG-2解复用器设计方案

结语

本文使用了Altera公司的一款具有ARM硬核的FPGA器件EPXA10,提出了一种基于ARM微处理器的对MPEG-2的传输流进行解复用的解复用器设计方案。根据传输流的特点,使用硬件实现了数据量操作比较大的PID包过滤、DMA传输等任务,并利用ARM处理器完成较为复杂的PAT、PMT包的解包工作,同时也将音、视频包解包,并将解出的音、视频发送到片外SDRAM上的音/视频缓冲区中。

最终设计的解复用器能对码率最高为19 Mbps的传输流进行解复用,对系统层的数据和其他辅助数据进行解码。解复用得出的视频流和音频流可供下一级的音/视频模块进行实时解码。

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

    关注

    1625

    文章

    21642

    浏览量

    601397
  • 芯片
    +关注

    关注

    453

    文章

    50285

    浏览量

    421255
  • 存储器
    +关注

    关注

    38

    文章

    7443

    浏览量

    163544
收藏 人收藏

    评论

    相关推荐

    波分复用/复用器知多少?

    ,Demultiplexer)将各种波长的光载波分离,然后由光接收机作进一步处理以恢复原信号。这种在同一根光纤中同时传输两个或众多不同波长光信号的技术,称为波分复用。波分复用/
    发表于 08-11 15:42

    内嵌ARM核怎么进行复用

    )及嵌入式处理器(ARM)于单片可编程逻辑器件上,实现了RISC和FPGA的完美结合。本文使用EPXA10芯片,利用片上的ARM微处理器MPEG-
    发表于 04-14 07:00

    MPEG-2编码复用器中的FPGA逻辑设计,看完你就懂了

    MPEG-2编码复用器中的FPGA逻辑设计,看完你就懂了
    发表于 04-29 06:13

    MPEG-2编码复用器中的FPGA逻辑设计

        摘要:简要介绍了现场可编程门阵列(FPGA)的特性,并结合MPEG-2编码复用器开发过程中的经验,给出了在MAX+ PLUS II提供的设计环境下FPGA逻辑设计的
    发表于 05-26 21:52 816次阅读
    <b class='flag-5'>MPEG-2</b>编码<b class='flag-5'>复用器</b>中的FPGA逻辑设计

    MPEG-2编码复用器中的FPGA逻辑设计

     摘要:简要介绍了现场可编程门阵列(FPGA)的特性,并结合MPEG-2编码复用器开发过程中的经验,给出了在MAX+ PLUS II提供的设计环境下FPGA逻辑设计的一些方法和技巧。设计的逻
    发表于 06-20 14:40 627次阅读
    <b class='flag-5'>MPEG-2</b>编码<b class='flag-5'>复用器</b>中的FPGA逻辑设计

    MPEG-2复用器PSI信息分析部分的FPGA实现

    MPEG-2复用器PSI信息分析部分的FPGA实现  复用器是数字电视前端平台的关键设备,它的主要功能是完成对输入多路传输流(Transport Stream,TS)的复用工作,它的
    发表于 01-08 11:57 947次阅读
    <b class='flag-5'>MPEG-2</b><b class='flag-5'>复用器</b>PSI信息分析部分的FPGA实现

    基于FPGA器件EPXA10实现MPEG-2传输流复用器的设计

    )及嵌入式处理器ARM)于单片可编程逻辑器件上,实现了RISC和FPGA的完美结合。本文使用EPXA10芯片,利用片上的ARM微处理器MPEG-
    的头像 发表于 01-15 08:08 2119次阅读
    基于FPGA器件EPXA10实现<b class='flag-5'>MPEG-2</b>传输流<b class='flag-5'>解</b><b class='flag-5'>复用器</b>的设计

    2 通道模拟复用器/复用器-74LVC1G3157

    2 通道模拟复用器/复用器-74LVC1G3157
    发表于 02-07 18:59 0次下载
    <b class='flag-5'>2</b> 通道模拟<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74LVC1G3157

    四路 1-of-2 多路复用器/复用器-74CBTLV3257_Q100

    四路 1-of-2 多路复用器/复用器-74CBTLV3257_Q100
    发表于 02-07 20:27 0次下载
    四路 1-of-<b class='flag-5'>2</b> 多路<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74CBTLV3257_Q100

    2通道模拟复用器/复用器-74LVC1G3157_Q100

    2 通道模拟复用器/复用器-74LVC1G3157_Q100
    发表于 02-10 18:55 0次下载
    <b class='flag-5'>2</b>通道模拟<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74LVC1G3157_Q100

    四路 1-of-2多路复用器/复用器-CBT3257A

    四路 1-of-2 多路复用器/复用器-CBT3257A
    发表于 02-15 20:08 0次下载
    四路 1-of-<b class='flag-5'>2</b>多路<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-CBT3257A

    2通道模拟复用器/复用器-74LVC1G53_Q100

    2 通道模拟复用器/复用器-74LVC1G53_Q100
    发表于 02-15 20:14 0次下载
    <b class='flag-5'>2</b>通道模拟<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74LVC1G53_Q100

    2通道模拟复用器/复用器-74LVC1G53

    2 通道模拟复用器/复用器-74LVC1G53
    发表于 02-15 20:15 0次下载
    <b class='flag-5'>2</b>通道模拟<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74LVC1G53

    2通道模拟复用器/复用器-74LVC2G53

    2 通道模拟复用器/复用器-74LVC2G53
    发表于 02-16 20:45 0次下载
    <b class='flag-5'>2</b>通道模拟<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74LVC<b class='flag-5'>2</b>G53

    四路 1-of-2多路复用器/复用器-74CBTLV3257

    四路 1-of-2 多路复用器/复用器-74CBTLV3257
    发表于 02-20 20:02 0次下载
    四路 1-of-<b class='flag-5'>2</b>多路<b class='flag-5'>复用器</b>/<b class='flag-5'>解</b><b class='flag-5'>复用器</b>-74CBTLV3257