CN101860737B - 一种降低传输时延的mpeg2系统层封装方法和装置 - Google Patents

一种降低传输时延的mpeg2系统层封装方法和装置 Download PDF

Info

Publication number
CN101860737B
CN101860737B CN 200910133936 CN200910133936A CN101860737B CN 101860737 B CN101860737 B CN 101860737B CN 200910133936 CN200910133936 CN 200910133936 CN 200910133936 A CN200910133936 A CN 200910133936A CN 101860737 B CN101860737 B CN 101860737B
Authority
CN
China
Prior art keywords
wrapper
data
length
current
data cell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200910133936
Other languages
English (en)
Other versions
CN101860737A (zh
Inventor
俞海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN 200910133936 priority Critical patent/CN101860737B/zh
Publication of CN101860737A publication Critical patent/CN101860737A/zh
Application granted granted Critical
Publication of CN101860737B publication Critical patent/CN101860737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种降低传输时延的MPEG2系统层封装方法,包括:包括:判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,将所述数据单元的长度按照当前封装包的长度进行分割如果小于或等于封装包的长度,判断当前封装包是否包含数据单元的最末位,如果包含,在当前封装包的包头的空闲字节填充预定标识值,将填充后的封装包作为新的数据单元封装或发送。本发明还提供一种降低传输时延的MPEG2系统层封装装置。本发明的方法和装置由于采用封装包内包头的空闲字节填充,不需要额外增加字节进行标识,提高了网络传输速度,降低了传输带宽和网络设备的存储空间、及传输时延。

Description

一种降低传输时延的MPEG2系统层封装方法和装置
技术领域
本发明涉及通信技术领域,特别是指一种降低传输时延的MPEG2系统层封装方法和装置。
背景技术
MPEG2节目流/传输流是广泛用于数字电视、多媒体存储、视音频监控等领域的系统层标准,被大量的软硬件解码设备支持。对音视频编码比特流数据的封装是MPEG2节目流/传输流的主要用途之一。大部分音视频编码比特流数据都采用特定起始码将自身划分为数据单元,起始码位于各数据单元的头部。其中,数据单元是指一次封装过程的输入,存在时间或逻辑关系数据的集合,例如一幅由若干像素数据组成的图像即可视为一个数据单元。
一个或多个数据单元进行拆分重组并添加额外数据,形成封装包的过程为封装过程。额外数据一般位于封装包的头部称为包头,来自原数据单元的数据则称为封装包的载荷。封装过程可以迭代,即一次封装的输出封装包可以视为数据单元进行再次封装。这些数据单元在MPEG2节目流/传输流封装时被拆分重组,形成若干封装包。
由于MPEG2节目流/传输流没有明确定义所封装数据单元的结束标识,若一个封装包含有当前数据单元的末尾却不含下个数据单元的起始,且当前数据单元自身也不能提供结束信息时,解析端处理时无法得知数据单元已被完整获取。这一情况发生在数据传输环节时会带来延时,发生在数据存储环节时则最末尾的数据单元由于无法确认是否完整而难以进行处理并产生大量延时。
对于这一问题,目前的主要方案是封装时,在每个数据单元的最后一个封装包后插入空封装包或包含私有标识的封装包,并与解析端约定其含义,解析端发现符合约定的这类封装包则认为当前数据单元已结束。
如果采用在每个数据单元最后一个封装包后插入空封装包或包含私有标识封装包的解决方案,不论插入何种类型的封装包均需要额外增加一定数据量,均会带来消耗传输带宽或增加存储空间的问题。并且由于封装端和解析端需要就插入包的含义进行约定,对于未经约定的封装端和解析端相连可能引发兼容性问题,制约系统的扩展性。另外,由于插入的是一个独立的新封装包,在多路径的传输系统中如IP网络中可能发生丢失或接收时包序颠倒,前者造成该方法失效,后者由于不完整的数据单元可能被误认为是已经完整获取的,引起解析错误。
发明内容
有鉴于此,本发明在于提供一种降低传输时延的MPEG2系统层封装方法和装置,以解决上述传输封装包时,增加传输带宽和存储空间的问题。
为解决上述问题,本发明提供一种降低传输时延的MPEG2系统层封装方法,包括:包括:判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,将所述数据单元的长度按照当前封装包的长度进行分割如果小于或等于封装包的长度,判断当前封装包是否包含数据单元的最末位,如果包含,在当前封装包的包头尾部的空闲字节填充预定标识值;
其中,所述数据单元为封装过程中输入的存在时间或逻辑关系数据的集合;所述封装包为PES包时,所述空闲字节为填充字节stuffing_byte或私有数据PES_private_data;所述封装包为PS包时,所述空闲字节为填充字节stuffing_byte;所述封装包为TS包时,所述空闲字节为填充字节stuffing_byte。
优选的,如果判断当前封装包未包含数据单元的最末位,还包括:
在当前封装包的包头空闲字节填充无效数据或不进行填充。
优选的,将填充后的封装包作为新的数据单元进行封装或发送。
本发明还提供一种降低传输时延的MPEG2系统层封装装置,包括:
输入模块,用于获得各个数据单元数据,判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,将所述数据单元输出至切分模块;如果小于或等于封装包的长度,将所述数据单元输出至标识模块;
所述切分模块,用于将所述数据单元的长度按照当前封装包的长度进行分割;
所述标识模块,用于判断当前封装包是否包含数据单元的最末位,如果包含,则在当前封装包的包头尾部填充预定标识值;如果未包含,则在当前封装包的包头尾部填充无效数据或不进行填充;
输出模块,用于将所述标识模块填充后的封装包作为新的数据单元封装或发送;
其中,所述数据单元为封装过程中输入的存在时间或逻辑关系数据的集合。
本发明的方法和装置由于采用封装包内包头的空闲字节填充,不需要额外增加字节进行标识,提高了网络传输速度,降低了传输带宽和网络设备的存储空间、及传输时延。
附图说明
图1是数据单元的封装示意图;
图2是本发明方法实施例的流程图;
图3是本发明装置实施例的结构图。
具体实施方式
为清楚说明本发明中的方案,下面给出优选的实施例并结合附图详细说明。
为便于数据单元在封装端封装、在接收端拆封,本发明将使用MPEG2系统底层中不传递信息的字节来向接收端传递数据单元结束信息,以便接收端及时处理数据,减少系统延时。MPEG2语法在封装包的头部定义了若干长度的填充字节,发送端打包时使用固定默认值填充这些字节,接收端解包时丢弃这些字节,这些字节不传递信息。
本发明对封装包的填充字节做如下语法定义,若当前封装包所载荷的数据,存在数据单元的最末位时,该封装包包头含有的填充字节个数大于0,且填充字节中存在有不等于默认值的数值;若当前封装包所载荷的数据不存在数据单元的最末位时,则该封装包包头不含填充字节或仅含有取为默认值的填充字节。
在MPEG2中定义的封装包类型有元素流封装PES包,PS包和TS包。其中,元素流封装(PES,Packetized Elementary Stream)包在MPEG2中定义的对原始数据单元进行封装,由PES包头和载荷两部分组成;除特殊情况外,PES包载荷的最大长度不超过64k字节。
传输流TS包是在PES包的基础上采用长度较小的TS包对PES包再次进行封装,主要面向传输应用;TS包的长度固定为188字节。
节目流PS包是在PES包的基础上采用PS包进行封装,主要面向存储应用,PS包的长度没有限制。
当一个被封装的数据单元长度大于封装包长度的限制时,封装过程会将其分段并输出若干个封装包。具体的流程示意图可参见图1,各个数据单元的安装当前的数据包格式封装,封装后的数据包形成新的数据单元,如图1所示,数据单元1至数据单元N经过封装后封装成新的封装包1至封装包N,每个封装包内包括来自各个数据单元内的数据,形成包头与载荷包结合的形式,封装后的数据包通过网络发送后存储在网络设备内,接收端通过网络从网络设备内读取,进行解析操作恢复出数据流。
无论是PES包、还是基于PES包的PS包或TS包,均可使用本发明的传输方法对数据包进行封装后传输,可有效降低传输过程中的时延和网络设备的存储空间。
参见图2,本发明的方法包括如下步骤:
步骤1:获得各个数据单元数据,判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,执行步骤2,如果小于或等于封装包的长度,执行步骤3;
在封装端以封装视频为例,将一帧视频视为一个数据单元进行封装,在封装前判断该数据单元的长度,该数据单元为PES数据或PS数据或TS数据。
步骤2:将所述数据单元的长度按照当前封装包的长度进行分割;
步骤3:判断当前封装包是否包含数据单元的最末位,如果包含,则执行步骤4,否则执行步骤5;
若该数据单元被封装于一个PES包或多个PES包内时,至少存在一个PES包会包含该数据单元的最末位。
步骤4:在当前封装包的包头尾部填充预定标识值;
对于包含数据单元最末位的PES包,将包头尾部的填充字节stuffing_byte处填充预定的标识值,例如stuffing_byte值为0xFE;
步骤5:在当前封装包的包头尾部填充无效数据或不进行填充;
若该数据单元被封装到多个PES包内,对于未包含数据单元最末位封装包,将包头尾部的填充字节stuffing_byte处填充无效数据或不进行填充。无效数据可以是不等于0xFE的任何值,如0XFF等任何16进制值。
步骤6:将填充后的封装包作为新的数据单元封装或发送。
封装后的数据包可以是PES包、TS包、或PS包,对于PES包,可再次进行封装,对于TS包、或PS包,可以通过网络传输或再次封装。如使用TS包adaptation_field( )内的stuffing_byte字段、PES包PES_packet( )内的私有数据PES_private_data字段、PS包头PS pack_header的stuffing_byte等字段也可以完成本发明的目的。
接收端在接收后按相应的标识解析封装包,并恢复出相应的数据。
本发明的方法由于采用封装包内包头的空闲字节填充,不需要额外增加字节进行标识,提高了网络传输速度,降低了传输带宽和网络设备的存储空间、及传输时延。
本发明还提供一种降低传输时延的MPEG2系统层封装装置,参见图3,包括:
输入模块,用于获得各个数据单元数据,判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,将所述数据单元输出至切分模块;如果小于或等于封装包的长度,将所述数据单元输出至标识模块;
所述切分模块,用于将所述数据单元的长度按照当前封装包的长度进行分割;
所述标识模块,用于判断当前封装包是否包含数据单元的最末位,如果包含,则在当前封装包的包头尾部填充预定标识值;如果未包含,则在当前封装包的包头尾部填充无效数据或不进行填充;
对于包含数据单元最末位的PES包,将包头尾部的填充字节stuffing_byte处填充预定的标识值,例如stuffing_byte值为0xFE;若该数据单元被封装到多个PES包内,对于未包含数据单元最末位封装包,将包头尾部的填充字节stuffing_byte处填充无效数据或不进行填充。无效数据可以是不等于0xFE的任何值,如0XFF等任何16进制值。
输出模块,用于将所述标识模块填充后的封装包作为新的数据单元封装或发送。
本发明的装置可实现上述方法实施例中的相应的各个执行过程,封装后的数据包可以是PES包、TS包、或PS包,对于PES包,可再次进行封装,对于TS包、或PS包,可以通过网络传输或再次封装。如使用TS包adaptation_field( )内的stuffing_byte字段、PES包PES_packet( )内的私有数据PES_private_data字段、PS包头PS pack_header的stuffing_byte等字段也可以完成本发明的目的。
由于采用封装包内包头的空闲字节填充,不需要额外增加字节进行标识,提高了网络传输速度,降低了传输带宽和网络设备的存储空间、及传输时延。
对于本发明各个实施例中所阐述的方法和装置,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种降低传输时延的MPEG2系统层封装方法,其特征在于,包括:判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,将所述数据单元的长度按照当前封装包的长度进行分割;如果小于或等于封装包的长度,判断当前封装包是否包含数据单元的最末位,如果包含,在当前封装包的包头尾部的空闲字节填充预定标识值;
其中,所述数据单元为封装过程中输入的存在时间或逻辑关系数据的集合;所述封装包为PES包时,所述空闲字节为填充字节stuffing_byte或私有数据PES_private_data;所述封装包为PS包时,所述空闲字节为填充字节stuffing_byte;所述封装包为TS包时,所述空闲字节为填充字节stuffing_byte。
2.根据权利要求1所述的MPEG2系统层封装方法,其特征在于,如果判断当前封装包未包含数据单元的最末位,还包括:
在当前封装包的包头空闲字节填充无效数据或不进行填充。
3.根据权利要求1所述的MPEG2系统层封装方法,其特征在于,将填充后的封装包作为新的数据单元进行封装或发送。
4.一种降低传输时延的MPEG2系统层封装装置,其特征在于,包括:
输入模块,用于获得各个数据单元数据,判断当前的数据单元是否大于封装包的长度;如果大于封装包的长度,将所述数据单元输出至切分模块;如果小于或等于封装包的长度,将所述数据单元输出至标识模块;
所述切分模块,用于将所述数据单元的长度按照当前封装包的长度进行分割;
所述标识模块,用于判断当前封装包是否包含数据单元的最末位,如果包含,则在当前封装包的包头尾部填充预定标识值;如果未包含,则在当前封装包的包头尾部填充无效数据或不进行填充;
输出模块,用于将所述标识模块填充后的封装包作为新的数据单元封装或发送;
其中,所述数据单元为封装过程中输入的存在时间或逻辑关系数据的集合。 
CN 200910133936 2009-04-10 2009-04-10 一种降低传输时延的mpeg2系统层封装方法和装置 Active CN101860737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910133936 CN101860737B (zh) 2009-04-10 2009-04-10 一种降低传输时延的mpeg2系统层封装方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910133936 CN101860737B (zh) 2009-04-10 2009-04-10 一种降低传输时延的mpeg2系统层封装方法和装置

Publications (2)

Publication Number Publication Date
CN101860737A CN101860737A (zh) 2010-10-13
CN101860737B true CN101860737B (zh) 2012-05-30

Family

ID=42946341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910133936 Active CN101860737B (zh) 2009-04-10 2009-04-10 一种降低传输时延的mpeg2系统层封装方法和装置

Country Status (1)

Country Link
CN (1) CN101860737B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868930B (zh) * 2012-09-06 2015-04-08 珠海全志科技股份有限公司 传输流数据包解码方法及装置
CN105262970B (zh) * 2015-10-14 2018-12-04 深圳先进技术研究院 一种基于图像数据的封装方法及系统
CN114173149A (zh) * 2021-12-21 2022-03-11 杭州当虹科技股份有限公司 一种防插播的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1280443A (zh) * 1999-07-12 2001-01-17 索尼公司 数据再生传输设备和数据再生传输方法
US6195334B1 (en) * 1997-12-18 2001-02-27 Advanced Micro Devices, Inc. Apparatus and method for terminating a data transfer in a network switch in response to a detected collision
WO2003028027A1 (fr) * 2001-09-21 2003-04-03 Sony Corporation Procede de sortie de donnees, procede et dispositif d'enregistrement, procede et dispositif de reproduction, procede de transmission de donnees et procede de reception
CN1729689A (zh) * 2002-12-20 2006-02-01 松下电器产业株式会社 数据流格式变换方法及其记录方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195334B1 (en) * 1997-12-18 2001-02-27 Advanced Micro Devices, Inc. Apparatus and method for terminating a data transfer in a network switch in response to a detected collision
CN1280443A (zh) * 1999-07-12 2001-01-17 索尼公司 数据再生传输设备和数据再生传输方法
WO2003028027A1 (fr) * 2001-09-21 2003-04-03 Sony Corporation Procede de sortie de donnees, procede et dispositif d'enregistrement, procede et dispositif de reproduction, procede de transmission de donnees et procede de reception
CN1305061C (zh) * 2001-09-21 2007-03-14 索尼株式会社 数据输出方法、记录方法和装置、再现方法和装置以及数据发送方法和接收方法
CN1729689A (zh) * 2002-12-20 2006-02-01 松下电器产业株式会社 数据流格式变换方法及其记录方法

Also Published As

Publication number Publication date
CN101860737A (zh) 2010-10-13

Similar Documents

Publication Publication Date Title
CN101436922B (zh) 一种基于udp协议传输大量数据的方法
CN101212267B (zh) 广播系统基于文件模式传输业务数据的方法、系统及装置
CN103346949B (zh) 基于嵌入式的双通道网络数据包的拆包和组包方法及系统
CN108521343B (zh) 一种oam报文的处理方法及装置
CN101459654A (zh) 一种多协议业务数据封装解析方法、接收端和发送端
CN101656588A (zh) 一种传输数据的方法及系统
CN101668198B (zh) 一种推送视频及数据内容实现本地点播的方法及系统
CN101222290A (zh) 一种广播系统中的数据传输方法、发射系统和终端
CN101350768B (zh) 在广播网络中传送ip报文的方法
CN101860737B (zh) 一种降低传输时延的mpeg2系统层封装方法和装置
CN101202920B (zh) 一种广播系统中的数据发送、传输方法、发射系统和终端
CN102916936B (zh) 一种应用于IP over DVB的IP数据封装方法及系统
CN108989286A (zh) 通用数据流的封装方法、解封装方法及装置
CN103546765B (zh) 传输流封装方法、传输流及其解析方法
CN104320416A (zh) 对实时传输协议数据进行打包的方法及装置
CN102647619A (zh) 一种基于数字电视系统或iptv系统的信息服务系统及方法
CN101505420B (zh) 一种视频压缩数据的封装方法
CN100579222C (zh) 一种广播系统中数据广播业务数据的传输方法及发射系统
CN101453347B (zh) 一种移动多媒体广播数据发送和接收方法
CN105262970B (zh) 一种基于图像数据的封装方法及系统
CN104022844A (zh) 一种匹配多种传输方式的数据封装方法及系统
CN101159667B (zh) 用于移动多媒体广播系统对分组数据进行报头压缩的方法
CN101325505B (zh) 一种复用数据流的传输方法
CN109391605B (zh) 数据传输方法、装置及系统
CN101500157B (zh) 访问单元转换成传输流的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant