TS流解复用和剪切点寻找系统的设计

时间:2022-10-18 05:24:59

TS流解复用和剪切点寻找系统的设计

摘要:本TS流解复用和剪切点寻找系统的主要功能是通过TS文件,得到时间段在剪切点之间的音频基本流、需要转换实现的视频基本流和不需要转换实现的视频基本流。本设计是视频剪切软件内部重要的功能性系统,其设计的优劣直接影响视频剪切软件的性能。

关键词:视频剪切;TS文件;基本流

中图分类号:TG333.21 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02

随着影视行业的发展,人们对电影及电视节目的图像高清要求在不断增加,而图像的高清显示不仅仅给观众们带来了视觉上的享受,还给节目制作人员带来了技术上的挑战。

视频剪切软件是一类根据需要对视频进行切割的软件,本文设计的“TS流解复用和剪切点寻找系统”实现了视频剪切软件中相当重要的功能。

一、TS流的解复用和剪切点寻找设计

在本系统中,解复用和剪切点寻找是紧密结合在一起的。图1-1是TS流的解复用和剪切点寻找系统的实现流程图。

本系统中,由于剪切模式为按帧剪切,所以需要计算已读取的视频帧的数目来确定视频基本流和音频基本流在TS文件中的具体剪切位置。在TS流的解复用和剪切点寻找系统的实现中,先获取视频基本流,再获取音频基本流。在获取剪切点之间的视频基本流和音频基本流的过程中,每次分析一个TS包,对这个TS包进行解复用,然后对TS包解复用后得到的基本流数据进行与剪切点的寻找有关的操作。

二、TS流到音视频ES数据的解复用

TS到ES的解复用过程其实就是一个从TS流文件中提取出音频基本流和视频基本流或者与音视频的基本流相关的节目信息的过程。

(一)解复用的设计

PID是区分TS包中有效净荷的类型的标志符。同一路音频(或视频)基本流所在TS包的PID是相同的,要想得到音频(或视频)基本流数据,首先需要知道音频(或视频)基本流所在TS包的PID。

音频基本流或视频基本流与相应TS包的PID之间的对应关系被存储在PMT表中,因此若想得到音频基本流或视频基本流所在TS包的PID值,需要先获取PMT表。而PMT表与相应TS包的PID之间的对应关系被存储在PAT表中,因此若想得到PMT表所在TS包的PID值,需要先获取PAT表。PAT表所在TS包的PID值是由ISO/IEC 13818-1协议规定的,等于0x0000。图2-1是解复用的实现流程图。

(二)解复用的实现

由于从TS包中获取音频基本流数据和视频基本流数据的方法类似,将以对音频基本流数据的获取为例。

若当前TS包为传输正确的音频TS包,则根据包头中的自适应控制字段的值的不同来对TS包中的数据分别进行如下处理:

自适应控制字段的值为00:当前TS包丢弃不要。

自适应控制字段的值为01:无调整字段,仅含有184B长度的有效净荷,即此时包中的有效净荷为音频的PES包数据。

若自适应控制字段的值为10:没有有效字段,仅含有调整字段,此时TS包中没有音视频PES数据,由于不需要得到PCR数据,故在程序中对此TS包不进行处理。

若自适应控制字段的值为11:0-182的调整字段后为有效净荷,即TS包中含有调整字段和有效净荷。

三、音视频的剪切点寻找

单节目TS流中存在着视频基本流和音频基本流,由于在对TS流的剪切过程中,要得到需要进行转换实现的视频基本流、不需要进行转换实现的视频基本流和音频基本流,所以对TS流的剪切不但需要确定视频基本流的剪切位置,还要确定音频基本流的剪切位置。

在不断解复用TS包得到视频ES数据的循环中,在已知用户的输入数据FRMAE_X和FRMAE_Y的情况下,设计并实现视频剪切点之间的视频基本流的获取;然后在不断解复用TS包得到音频ES数据的循环中,在已知视频剪切点的情况下,设计并实现音频剪切点之间的音频基本流的获取。

(一)音视频ES文件的剪切点寻找的设计

开辟三段缓存,缓存1用来存放需要转换实现的视频基本流,缓存2用来存放不需要转换实现的视频基本流,缓存3用来存放剪切后的音频基本流。

首先在不断解复用TS包得到视频ES数据的循环中,设计对视频剪切点之间的视频基本流的获取:

获取到新的完整的NAL单元,转到2;否则继续获取新的TS包来得到视频ES数据。

分析完整的NAL单元,判断NAL单元中RBSP数据的类型——若RBSP数据为图像序列集则保存图像序列集,若RBSP数据为参数序列集则保存参数序列集,RBSP数据为IDR图像数据则转到3,RBSP数据类型为1、2或者5则转到4,RBSP数据类型为其他则转到5。

IDR图像的出现代表着前一个视频序列的结束。此时若第X帧存在于前一个视频序列中,则将序列参数集数据、图像参数集数据和前一个视频序列数据依次保存在缓存1中,此时缓存1中的数据即为需要转换实现的视频基本流;将此IDR所在的NAL单元存入缓存2中。转到4。

获取视频序列中图像的编码模式——若当前RBSP数据是帧编码则picNum加一;若当前RBSP数据是场编码且为底场则picNum加一。其中picNum为TS流中已经出现的视频帧的数目。转到5。

若缓存2中存在有效数据,且picNum不大于Y,则将完整的NAL单元读入缓存2中;若第Y帧所在视频序列读取结束,TS包读取也结束,此时缓存2中的有效数据即不需要转换实现的视频基本流。

将缓存1和缓存2中的有效数据写入相应的文件中后,释放缓存1和缓存2。

(二)音视频ES文件的剪切点寻找的实现

1.完整的NAL单元的获取

NAL单元是由十六进制的“00 00 00 01”开头的一组码流,其结束以NAL流的结束或者十六进制的“00 00 00 01”出现为标志。根据NAL单元的这种特征,可以得到完整的NAL单元。

2.图像编码模式的获取

图像NAL单元和参数集NAL单元的关系如下图3-1所示。

在H.264中,图像数据NAL单元中的图像数据的编码模式为帧编码、场编码或者是帧场自适应编码模式,是由图像数据NAL单元所引用的序列参数集中的元素frame_mbs_only_flag和mb_adaptive_frame_field_flag再加上图像数据NAL单元中的元素field_pic_flag和bottom_field_flag决定的。

3.PTS-X和PTS-Y的获取

要想得到PTS-X的值,首先要得到第X帧所在视频序列的所有的PTS的值,然后根据编解码顺序和显示顺序的关系,由第X帧在其所在视频序列的位置,得到第X帧对应的PTS的值。

要想得到PTS-Y的值,首先要得到第Y帧所在视频序列的所有的PTS的值,然后根据编解码顺序和显示顺序的关系,由第Y帧在其所在视频序列的位置,得到第Y帧对应的PTS的值。

四、结论

本文对TS流的解复用和剪切点寻找系统进行了设计,然后重点对此模块所涉及到的解复用和音视频的剪切点寻找分别进行了实现设计与实现,得到了需要进行转换实现的视频基本流和不需要转换实现的视频基本流以及时间段在视频第X帧和视频第Y帧之间的音频基本流。本设计为视频剪切类软件开发提供了很好的参考。

参考文献:

[1]刘文红.一种MPEG- 2 解复用的实现方案[J].陕西工学院学报.2002,18(1):23-26

[2]杨峰,白新跃,何建.数字电视原理及应用[M].成都:电子科技大学出版社,2010

[3]余兆明.数字电视原理[M].西安:西安电子科技大学出版社.2009

[作者简介]

张晨寅(1986-),研究生,研究方向:数字电视技术和音视频处理;唐继勇(1965-),高级工程师,副教授、研究生导师,研究方向:图像与广播电视技术。

上一篇:基于GIS的供水管网管理信息系统的设计研究 下一篇:基于学生发展需求的中职计算机“分模块化学习...