MPEG-2TS码流编辑的原理及其应用(转载

[作者:辽宁电视台 赵季伟]       在当今数字媒体不断发展、新媒体业务不断涌现 的前提下,实践证明襁褓中的新媒体只有两种经营方略可供选择:或是购买并集成整套节目,或是低成本深加工新节目,再不可能去按照传统生产模式去自采自编。 低成本的节目生产制作与发布,不仅成为数字媒体经营的主要手段,也成为传统媒体改革工作流程的重要举措,进而促成了对新型工作母机和简捷快速流程的迫 切需求。 

    
在辽宁新媒体多业务综合服务平台上,先于国际和国内应用了MPEG-2传输流快速剪辑编辑系统(以下简称码流快 编)。这项由辽 宁电视台与深圳奥维迅公司在200310月联合开发的新技术,为数字媒体低成本节目的制作、推广和运营提供了高效生产工作母机。尽管担负此项目源代码开 发的奥维迅公司出现了经营问题,在技术推广的中间环节发生梗塞,但并不能说明此项技术走到了尽头。回顾3年的应用实践及研发成果,需要的不是扬弃,而是演 进的升级,否则就是对可调控资源的莫大浪费。特别是针对第二代信源编解码国标AVS-P2的更新换代,很可能成为多业务内容整合的新一代产品的突破口。 

    
工作原理 

    1.
功能目标 

    
流快编的应用目标是,通过对开放视频的采集,将DVB-SC的传输流(Transport StreamTS)节目作为信源,直接进行剪辑处理,再经过人工创意后,整合为新主题内容的新节目,以便直接进入频道集成或编辑频道节目播出,快速实现 数据层的内容整合,不仅简捷了采集制作的工作流程,而且为丰富媒体内容资产开辟了一条捷径。因为码流快编的工作流程无需先以解码后的视频记录于磁带,再以 磁带上载编辑机,经编辑后再下载成为磁带,再编码复用成为新内容的新节目。即便数字化完成以后,视频数据流仍不能用于经复用的数字传输,还需编码、转码、 打包等传输格式化以后,才能在数字信道上传输。而采用码流快编以后,不仅避免了解码后再采样编码所形成的视频损耗,还避免了在11时间的上下载中所造成 的效率损耗。更重要的是在视频内容整合中,一次性完成音/视频同步剪切、字幕处理和音/视频数据打包复用等连续作业。所以,它能够提高生产效率60%上。必要时还可进行节目包装的特技编辑,直接创建数据级和文件级的互联互通内容交换平台,在媒体资产管理下,顺利实现网络化与智能化的节目配送与发布。 

    
于码流快编是针对以TS为信源的再编辑系统,所以实行高来高走,低来低走,或是高来低走的应用策略,即高码率对应高 码率(包括兼容高清),低码率对应低码率,但码率连续可调,以适应高码率对应低码率的应用。理论和应用都说明,对比源节目和成品节目,经剪切和编辑处理的 图像保持了同等的视频质量,成为不劣化图像的创新工作流程和新型工作母机。 

    2.
设计特征 

    
码流快 编的低成本与高效率来自它的主要特征。常规的非线性编辑机是在编码一侧做文章,通过采集编码卡实现视频图像多层多轨的非线 性编辑;而码流快编则是在解码一侧下功夫,通过对TS拆包还原为基本码流(Elementary StreamES),而后经编辑再封包成为TS,快速实现视频内容整合的业务应用。因而,码流快编除了运用非线性图像处理技术外,最大的特点是运用了 MPEG-2DVB的系统原理,在此基础上进行图像处理的应用开发。 

    
通过图1的系统概念,可以看出码流快编运用了一个逆向思 维的方法,利用DVB系统传输的发/收互逆关系,将收端的单节目传输流 SPTS)作为信源,通过ES实现以视频非线性处理的目标功能。这时的解决方案有两个:一是在TS基础上直接进行图像处理的基础开发,实现与常规非编一 样的操作界面和编辑习惯,这样虽好,但是没有参照模型以及可利用的技术资源,必须从零开始的重写源代码;二是将TS转码为ES,以ES帧结构和句法格式还 原成为符合ITU-R.601建议的原始视频帧,就可以很方便地利用或附加现有的常规非编技术,以无卡站形式实现编辑。码流快编同时采用了两种方案,一方 面独立开发新产品系列,以适应于快速发展的数字电视业务需求,另一方面提高系统的兼容性,向后兼容传统非编,有利于在媒体资产管理下实现互联互通和投资保 护。图2说明了方案二的ES还原并显示原始视频的GOP帧结构。 

    
通过图2可以认为,既然能够形成IBBP的句法帧,再转换成 为全I帧格式并不难。这样一来,就可以利用原有的非线性编辑技术, 连续处理长与短GOP、全I帧与IBP帧结构、可变与固定码流的节目素材,实现不同节目格式的快编与混编。由此可见,码流快编的开发技术难点,是结合 DVB系统与MPEG-2标准,从译码过程中读出元数据,实现基于解码器的图像处理技术,并能兼容以编码卡为基础的非线性编辑技术。因而被业内称为第一个吃螃蟹者 




    3.
数据变换

 既然要把TS作为节目源进行编辑,就需要将TS包中的数据变换为非线性编辑所能使用的元数据和视频流。它们是以码流快编作为工作母机进行生产的真正原料。 

    数据变换的第一个过程是拆DVB复用包。如图3所示,DVB的解码流程中分层译出了许多数据信息,如同步字节(Sync Byte)、节目特定信息(Program Specific Information,PSI)中PAT、PMT、NIT等列表、包识别(Packet Identification,PID)、节目时钟基准(Program Clock Reference,PCR)及PTS/DTS(后详解)和业务信息(Service Information,SI)等部分。这些信息不仅与DVB PSI/SI直接相关,与MPEG-2的句法结构也直接相关,它规范地传递了再生码流中音/视频所需的MPEG-2列表数据,通过这些信息的引导,准确进入MPEG-2系统层的进一步译码。 

    第二个过程是拆MPEG-2系统复用包。MPEG-2系统定义了一个的码流层次化结构句法规则,以便于误码处理、随机搜索以及 内容编辑。它自上而下依次分为图像序列层(Video Sequence Layer,VSL)、图像组层(Group of Pictures Layer,GOPL)、图像层(Picture Layer,PL)、像素条层(Slice Layer,SL)、宏块层(Macro block Layer,ML)、像块层(Block Layer,BL)等6个层次,分别赋予每个层次不同的功能。图4说明了MPEG-2 体系的句法结构,通过这种分层排列的结构特征,MPEG-2提高了系统的灵活性和管理效率,使得每一层都可以用来支持一个特定的功能。码流快编大部分应用于VSL、GOPL、PL层,特别是在GOPL,需要在还原时规范翻译PID、PCR、PTS/DTS等信息,将同步信息、闭合标记、断链标记等数据准确插入GOP图像组,以形成每组GOP数据流的起点,才能保证图像帧的精确和连续帧的同步接续。 

    第三个过程是将拆包后所得数据信息,以规范的装填还原MPEG-2 ES以及元数据,因而装填数据是码流快编的重要技术环节。 

    (1)装填复用的基本码流包 

    依据MPEG-2 TS规范结构(如图5所示),复用的基本码流包(Packetized Elementary Stream,PES)是由包头、自适应区的ES特有信息和包数据3部分所组成。由于包头和ES特有信息二者可合成1个数据头,因而可认为1个PES包是由包头和包数据(有效载荷)2个部分所组成。对有线、卫星、地面广播网接收的TS,经过解调和解扰处理后选取包长为188B的SPTS,并从包头中提取相关信息,以PID区别不同SPTS包,以连续计数器的顺序计对标注PID的TS包重建一个独立分组的PES。根据自适应区中的填充数据,装填到不为TS包整数倍的PES包中,以保证PES变长包的完整性。同时,依据包头及自适应区内的同步字节、原始程序参考时钟(Original Program Clock Reference,OPCR)、PCR等同步和识别信息,提供27MHz的解码同步时钟,装填共同时间基准、独立时间基准、可变包长和有效载荷等数据。 

    装填成为PES对码流快编具有格外重要的意义,因为PES包内含音/视频的ES以及包括PID的12个包头识别标志,当对 PES包的起点不能精确定位、对PES包头标志符不能准确识别时,就不能保证拆包后再打包的图像无缝接续和声画同步。这是在初期研发过程中遇到并获得突破的技术难点。 

    (2)装填基本码流 

    根据MPEG-2规范的PES包结构(如图6),还需进一步装填为连续ES流。ES是指只包含1个信源的数据流,即视频数据流或 音频数据流。每个ES由若干个缓存器的特定存取单元(Access Unit,AU)所组成,而每个视频AU或音频AU都是由头部和编码数据的2部分。1个AU相当于编码的1帧视频图像或1个音频帧的取样。PES的包头为恢复ES提供了向导。 

    对于PES包头,具有ES特有信息的显示时间标记(Presentation Time Stamp,PTS)、解码时间标记(Decode Time Stamp,DTS)标志、基本流时钟基准(Elementary Stream Clock Reference,ESCR)信息标志、基本流速率信息标志、数字存储媒体(Digital Storage Media,DSM)的特技信息标志等等,其中,唯有PTS/DTS标志,是解决视音频同步显示,防止输入缓存器上溢或下溢的关键所在。 

    在装填过程中,数据定位指示符引导PES还原所包含的视频、音频及所属其它数据流(如同步、数据和数据通道等),包头识别标志的PTS/DTS指示了可变长度包数据的帧同步时间,当区分音/视频和其它数据以后,依据PTS/DTS对视频帧分配给特定的AU。其中尤以独立时间基准是还原ES的同步基础。对于PES包数据,一方面通过扩展标志的数据包计数器,引导恢复数据流,另一方面利用循环冗余校验(Cyclic Redundancy Check,CRC)辅助检测并纠正可能存在的数据包丢失。 

    


    4. 精确帧定位

 帧定位是精确编辑的基础,而精确的帧定位来自于精确的帧同步。在ES上实现逐帧精确的编辑,首要问题是实现精确帧的同步。 

    如前所述,装填后的ES变成仅含有1种性质的PES包,或视频ES,或音频ES。以视频为例,图7表明了在PTS/DTS标示的独立同步时间基准指示下,顺序装填再顺序读出,形成连续ES的I1P4B2B3P7B5B6(N=7)GOP组帧顺序。由于PES的数据分组是可变长度的数据包,但它的最大包数据容量为65526Byte。因此,在码流快编中必须为每个AU准备必不可少的缓存空间。

    如图7所示,PTS表明图像帧出现在目标解码器(System Target Decoder,STD)的时间,DTS表明将存取单元全部字节从STD的ES解码缓存器移出的时刻。当以PTS/DTS为独立时间基准,定位和标志 PES的AU起始点后,对UA依次组成图像帧序为I1P4B2B3P7B5B6 I10B8B9的ES。对于I、P帧而言,PES的图像帧序为I1P4B2B3P7B5B6I10B8B9,应该P4比B2、B3在先,但显示时P4一定要比B2、B3在后,这就必须重新排序。在PTS/DTS时间标志指引下,将P4提前插入数据流,经过缓存器重新排序,重建视频帧序 I1B2B3P4B5B6P7B8B9I10。显然,PTS/DTS是表明确定事件或确定信息,并以专用时标形态确定事件或信息的开始时刻。 

    值得注意的是,虽然在PES中应该每个I、P、B帧的包头都具有一个PTS和DTS,但由于B帧的解码时间和显示时间存在一致性,因而对B帧而言,PTS与DTS具有相同作用,无须DTS,只须PTS。音频数据包也很有特点,虽然它可以含有多个存取单元,但由于它必须按照时间顺序传送,所以音频包头中也不含DTS,只有1个PTS。 

    由此可见,PTS/DTS不仅直接关联帧定位,而且直接关系到码流快编的帧精确编辑。为此,码流快编的帧定位着重处理以下几个帧序特征: 

    * 当处理某个含有1个I帧的存取单元时,在其包头文件中应有DTS和PTS,且2个标记之间的时间间隔为1个图像周期,那么在双向编码时的P帧应在I帧之后,在包头文件中就应有1个DTS和1个PTS,而这2个标记之间应存在3个图像周期的间隔,这样才能插入2个B帧。 

    * 当前处理IPBB时,I帧应延迟1个图像周期,P帧应延迟3个图像周期,而2个B帧则无需延迟,于是,最后的显示顺序就成为了IBBP帧序。 

    * 若需要改变GOP结构时,例如在I与P帧之间需要存在更多的B帧,则需调整B帧DTS与PTS之间的时间间隔。 

    * 当处理IPBB序列后,必在第1个B帧之前先对I和P帧进行解码,但每次只能对一帧图像进行解码,因此需要先解I帧并暂存后,待P帧被解码时,随即读出I帧,而后再读B帧。 

    * 在处理包头时,对PTS/DTS指示的某图像帧,特殊关注是否只有1个PTS时间标记,是否含有PTS和DTS的2个时间标记,以便快速确认I、P与B帧,以及音频包。 

    当作为编辑节目源的MPEG-2 TS被拆包以后,以PTS/DTS实现视频帧的精确定位,就能以帧精确的剪切编辑实现码流快编功能,同时,也能以 I1P4B2B3P7B5B6I10B8B9帧序显示I1B2B3P4B5B6P7B8B9I10帧序。那么,在此基础上嫁接现成的MPEG-2 IBP非线性编辑的成熟技术,既不需要高价的采集编码卡,也不需要上下载的转码,从采集、转码、拆包剪切,到特技处理、打包上传,一气呵成地构成了码流快编系统。 

    


    二实际应用 

    考虑到码流快编的兼容性和通用性,以及互联互通网络平台内容交换的需要,系统是在Windows平台上开发应用,系统流程详见图8。 

    事实上就应用层而言,看不出码流快编与常规非编究竟有什么区别。只是对照图8,才能看出常规应用时是以传统磁带记录的内容为节目源,这就需要围绕采集编码卡,设立上下载工作站,通过将模拟节目采集编码为数据流以后,再进行剪切等编辑。因而,目前还需对广泛应用的模拟视频提供接口选项,附加上下载工作站。它的应用界面及其采集参数选项参见图9。图9、10表示数据输入的采集操作界面,显示目标文件格式初始化选项与合成属性,以维系连续应用的工作流程。 

    经采集所合成的码流格式文件,可以同时转换成为可供交换的各种流格式和连续可调的速率,以适应各种内容编辑的整合策略需求,并可利用网络,对连续生产的其它工作站输送和交换素材,直至包括特技的特殊内容加工。这些交换文件的合成属性以及应用格式选项参见图10。 

    虽然在码流快编上进行快速编辑并合成文件时,与常规操作不无不同,但是通过对TS文件的快速正、反向搜索,以每一帧的入点、出点的精确定位,进行非线性编辑的剪切操作,制作成为新内容体裁的新文件,却被广电总局主管节目的领导所认可,被称之为“海量空中节目的过滤器”。同时,它还可以根据内容的需要,通过内置的迭加台标、栏目、字幕等字幕软件,直接参与编辑节目内容信息编辑或局部遮盖,并可联立采集工作站,形成生产流水线,进行不同任务种类的专项加工。如图11所示,在时间轨上的不同视频、音频、字幕等,均可按帧精确的快速合成为新节目或新素材。 

    如图 12所示,当合成新节目或素材时,文件格式的也可以根据使用的需要加以选择。如果作为DVB播出节目的成品,则可选择 “MPEG-2TS流(DVB格式)”选项;如果需要作为进一步深加工的素材,则可选择“MPEG-2ES流(M2V+MPA)”选项,以素材集的形式存放于共享应用的集中存储。这样编辑后的节目素材或成品,理论上可以保证与节目源完全相同的视频质量。 

    还值得一提的是,只要在此基础上再增加一块廉价的Matrox-RGX100采集卡,就可以进一步集成无限轨、无限层的第二代非线性编辑技术,成为多格式混编、混排的超级深度特技编辑机,为动漫、游戏等新媒体节目的快速加工创造工具。

 

三 结语 

    无论码流快编对节目制作的现实意义存在何种褒贬,但在一次数字版权还没有进阶到二次版权法规的时候,它的存在具有特殊重要意义。毕竟能够通过仅12名(前期6人)的人员投入,以低成本、高效率的节目加工,为辽宁电视台提供了18套全省的数字电视节目,而且维系了近3年的节目生产,至今赢得了全省近百万数字电视用户的向往与肯定。试想一下,倘若按照常规作法,只播出1套节目用12个编辑就很可能要“累死人了”。 

    实践证明,当国外的政治体制和法规观念与国内存在现实差异的时候,国际上不屑一顾的产品并不是国内市场没有需求;当国际与国内市场趋于接轨的时候,对瞬息万变的市场不屑一顾也不是新技术的初衷;当码流快编因某种原因并没有得到推广的时候,不屑一顾地扬弃它的内核就不是实事求是。最恰当的对策是继承技术原理的设计理念,与时俱进地升级新产品,才能获得广电和企业的整体效益。 

    摘自《现代电视技术》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FLV文件格式(Z)(转载)

刚才在看一些关于demux的东西,在处理flv格式的文件的时候,由于自己对flv文件的格式不了解,所以就比较云头转向,正好看到了一篇讲述flv文件格式的文章,写的比较明白,所以就转过来了。O(∩_∩)O~flv头文件比较…

mysql-5.7中的innodb_buffer_pool_prefetching(read-ahead)详解

一、innodb的read-ahead是什么: 所谓的read-ahead就是innodb根据你现在访问的数据,推测出你接下来可能要访问的数据,并把它们(可能要访问的数据)读入 内存。 二、read-ahead是怎么做到的: 1、总的来说read-ahead利用的是程序的局部…

mp4文件格式解析(一)

原文地址:mp4文件格式解析(一)作者:可下人间目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是…

shiro身份验证测试

2019独角兽企业重金招聘Python工程师标准>>> 一、登录验证 1、首先在shiro.ini里准备一些用户身份/凭据,后面这里会使用数据库代替,如: [users] [main] #realm jdbcRealmcom.learnging.system.shiro.ShiroRealm securityManager…

shell if多个条件判断_萌新关于Excel VBA中IF条件判断语句的一点心得体会

作者:金人瑞 《Excel VBA175例无理论纯实战教程》学员最近正在学习郑广学老师的VBA 175例教程,这是一篇新手向的文章,也是一个新手的总结,高手可以批评文章中的不足之处,也可以无视,VBA中的IF判断, 判断一般起到控制作…

编程语言难度排名_谷歌排名第一的编程语言,小学生拿来做答题,分分钟钟搞定高难度算法!...

点击上方蓝色文字关注我们吧谷歌排名第一的编程语言时什么?毫无疑问:肯定是 Python。 也难怪,作为大数据时代和人工智能时代的必备语言,Python 的优点太多了,语言简洁、易学、开发效率高、可移植性强...... 另外&#…

【转载】fullpage.js学习

参考网址:http://www.dowebok.com/77.html 上面有详细介绍及案例展示,很不错哦,可以先去看看demo 一、简介 fullPage.js 是一个基于jQuery的插件,它能够很方便、很轻松的制作出全屏网站,主要功能有: 1.支持…

webpack打包测试_webpack入门笔记(一)

webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。webp…

mysql中的内置函数

mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。 1 数学函数 abs(x) pi() mod(x,y) sqrt(x) ceil(x)或者ceiling(x) rand(),rand(N):返回0-1间的浮点数,使用不同的seed N可以获得不同的随机数 round(x, D)&#xff…

使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)

摘要:首先这个Decorator解释一下这个单词:“装饰器”,我觉得其实可以这样理解,他就像我们用到的Frame,他把每个页面共有的东西提炼了出来,也可能我们也会用各种各样的include标签,将我们的常用页…

安卓开发 新浪微博share接口实现发带本地图片的微博

1.微博share接口 在开始之前,我们先看一下要用到的这个接口: 我们这次是要上传本地图片,可以很明确的知道,除了要用POST方式提交请求,还要采用multipart/form-data编码方式。 那么这个multipart/form-data编码方式是什…

VirtualBox安装Centos6.8出现——E_INVALIDARG (0x80070057)

VirtualBox使用已有的虚拟硬盘出错: 问题描述:UUID已经存在 Cannot register the hard disk E:\system_iso\centos6.8.vdi {05f096aa-67fc-4191-983d-1ed00fc6cce9} because a hard disk E:\system_iso\centos68_02\centos6.8.vdi with UUID {05f096aa-6…

非线性动力学_非线性动力学特辑 低维到高维的联通者

序言: 本文将以维度为主线, 带量大家进入非线性动力学的世界。 文章数学部分不需要全部理解, 理解思维方法为主非线性动力学,是物理学的思维进入传统方法所不能解决的问题的一座丰碑。它可以帮助我们理解不同复杂度和时间空间尺度…

成本预算的四个步骤_全网推广步骤有哪些?

全网推广的步骤是什么?一般来说,搜索引擎优化是大多数中小企业常用的推广方法。主要是通过对一些搜索引擎的排名来提高网站的曝光率,从而更好的提高自己网站的流量,从而更好的实现互联网层面的销售。接下来,让我们学习…

python生成requirements.txt的两种方法

python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包? 使用的时候边记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本。这些问题,requi…

node.js 安装使用http-server

node.js npm全局安装了http-server后我该怎么使用它?我在它的安装目录下创建了inde.html,浏览器localhost:8080可以访问,那我的项目需要放在它的安装目录下?还是需要在我的项目下配置什么或者使用什么指令启动它?我在我…

您的apple id 暂时不符合使用此应用程序_Mac相机不工作时该怎么办

苹果公司的许多台式机和笔记本电脑都包含一个内置网络摄像头,该公司愉快地将其称为FaceTime相机。但是,如果您的Mac网络摄像头无法正常工作,并且在尝试访问它时显示为断开连接或不可用,则您可能不会感到高兴。您可以尝试以下操作来…

基于DirectShow的流媒体解码和回放

一、 前言  流媒体的定义很广泛,大多数时候指的是把连续的影像和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器就可以观看的视频/音频传输、压缩技术。流媒体也指代由这种技术…

汕头市队赛 SRM16 T2

描述 猫和老鼠,看过吧?猫来了,老鼠要躲进洞里。在一条数轴上,一共有n个洞,位置分别在xi,能容纳vi只老鼠。一共有m只老鼠位置分别在Xi,要躲进洞里,问所有老鼠跑进洞里的距离总和最小是…

C#调用WebService实例和开发(转)

http://www.cnblogs.com/peterpc/p/4628441.html 一、基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件…