CN100393128C - 编码设备和方法、解码设备和方法以及译码系统和方法 - Google Patents

编码设备和方法、解码设备和方法以及译码系统和方法 Download PDF

Info

Publication number
CN100393128C
CN100393128C CNB008001073A CN00800107A CN100393128C CN 100393128 C CN100393128 C CN 100393128C CN B008001073 A CNB008001073 A CN B008001073A CN 00800107 A CN00800107 A CN 00800107A CN 100393128 C CN100393128 C CN 100393128C
Authority
CN
China
Prior art keywords
data
video data
additional data
encoding stream
encoding
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.)
Expired - Fee Related
Application number
CNB008001073A
Other languages
English (en)
Other versions
CN1293868A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN1293868A publication Critical patent/CN1293868A/zh
Application granted granted Critical
Publication of CN100393128C publication Critical patent/CN100393128C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23602Multiplexing isochronously with the video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4342Demultiplexing isochronously with video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及一种用于编码输入视频数据的编码系统,以及一种用于解码编码流的解码系统。更具体地说,编码流是与伴随的附加数据一起发送的,因而即使MPEG编码和MPEG解码反复进行多次,也不会丢失附加数据和信息的特性。MPEG编码器提取附加到视频数据中的附加数据,把被提取的附加数据作为Ancillary_data插入编码流,进而将附加数据和编码流一起发送。MPEG解码器从该编码流中提取附加数据,并将提取的附加数据添加到由MPEG解码产生的基带视频数据中。

Description

编码设备和方法、解码设备和方法以及译码系统和方法
技术领域
本发明涉及一种用于编码输入视频数据的编码系统,以及一种用于解码编码流的解码系统。
背景技术
最近,为了压缩/编码视频数据,被标准化为ISO/IEC 13818的MPEG(Moving Picture Experts Group,运动图象专家组)技术已经越来越普及地用在生产和播放电视节目的广播电台。MPEG正在变成特别用于在磁带、盘或者其它能够随机地存取的记录介质上记录由摄像机等产生的视频数据,或者经由电缆或卫星在广播电台发送生产的视频节目的事实标准。
MPEG技术是一种编码技术,它能够通过图像预测译码(coding)法改善压缩效果。更具体地说,MPEG标准采用多个组合帧内(intra-frame)预测和帧间(inter-frame)预测的预测译码系统,根据该预测系统,每幅画面根据下列画面类型的之一编码:I-画面(帧内画面)、P-画面(预测性画面)和B-画面(双向预测性画面)。不能被从别的画面预测的I-画面是在帧内编码的画面。P-画面从属于用前面的(过去的)I-画面或P-画面,进行帧间后向预测译码的画面。B-画面从属于由前面的(过去的)I-画面或P-画面和由后续(未来)的I-画面或P-画面两者进行双向预测译码的画面。
图1显示的是用于广播电台内或广播电台之间的视频处理系统的示范例。如上所示,人们已经建议使用如图1所示的MPEG编码器和MPEG解码器,从作为发送系统的第一视频处理器1向作为在各广播电台内或之间的接收系统的第二视频处理器4发送源视频数据。
第一视频处理器1接收诸如D1格式的组合型基带视频那样的源视频数据,并在该源视频数据上执行编辑处理、特技处理、合成处理等。该视频处理器1也接收诸如闭路字幕和图文电视数据那样的附加数据,并添加这些附加数据到源视频数据的消隐信号间隔。因此,附加数据已经嵌入从视频处理器1输出的视频数据的消隐信号间隔中。
MpEG编码器2接收从视频处理器1输出的视频数据,并编码该数据以生成编码流。该编码数据流也被称作基本数据流。众所周知,电视信号在被称为活动视频区的实际视频数据区的四边上有垂直和水平消隐信号间隔,而以上所述的附加数据已经被插入到该消隐信号间隔中。
但MPEG标准规定只有像素真正存在的活动视频区才必须被编码。因此,编码流是通过只编码输入视频数据的活动视频区获得的数据,它不包括叠加在消隐信号间隔中的附加数据。换句话说,当输入视频数据通过MPEG编码器2编码时,叠加在输入视频数据上的附加数据丢失。
MPEG解码器3接收从MPEG编码器输出的编码流,并解码该流以生成解码视频数据,然后该数据被提供给第二视频处理器4。既然被提供给MPEG解码器3的编码流不包含有关附加数据的信息,因此解码视频数据自然不包含有关附加数据的信息。
因此,当视频数据从该发送系统发送到该接收系统时,被执行的MPEG编码和MPEG解码存在这样的问题:虽然相应于活动区的视频数据能够被发送,但通过第一视频处理器1添加到视频数据的消隐信号间隔的附加数据不能从发送器或第一视频处理器1发送到接收器或第二视频处理器4中。
此外,如果MPEG编码和MPEG解码当视频数据从发送系统发送到接收系统时执行,则只有活动视频数据被发送的事实意味着源视频数据的固有信息也不被发送给接收系统。源视频数据的固有信息是由源视频数据自己处理的信息,包括相对于整个像素区的空白区位置或活动视频区位置。具体地说,这是关于该活动视频行从在原视频数据的整个像素区中的哪一个垂直行开始、以及该活动视频区在整个像素区的水平方向上的哪一个像素开始的信息。
现在参考图2描述已经经过3:2帧移(pull-down)的视频数据的处理。该图显示了用于在广播电台内或之间、以便处理具有24-Hz帧频的视频数据和具有30-Hz帧频的视频数据的视频处理系统的一个示范例。
3:2帧移电路5接收具有24Hz(每秒24帧)帧频的视频数据,并产生具有30Hz(每秒30帧)的视频数据。在电影院等处使用的电影素材以24Hz(每秒24帧)的帧频记录在光学胶片上,这完全不同于NTSC电视信号29.97Hz的帧频。因此,为了把电影素材转换成电视信号,需要从24帧中产生30帧。
3:2帧移处理将参考图3A和3B进行描述。图3A显示具有24Hz帧频的源视频数据,图3B显示的是在3:2帧移转换后的30Hz视频数据。如图3A和3B所示,3:2帧移处理通过重复第一帧F1中的顶层半帧t1产生重复半帧t1’,通过重复第三帧F3中的顶层半帧t3产生重复半帧t3’,因此,3:2帧移处理通过以预定顺序转换2个半帧成为3个半帧,来把具有24Hz帧频的视频数据转换成具有30Hz帧频的视频数据。
如参考图1所描述的,第一视频处理器1接收30Hz源视频数据,执行编辑、特技、合成和/或其它操作。第一视频处理器1还接收如闭路字幕和图文电视数据之类的附加数据,并把它添加到源视频数据的消隐信号间隔。附加数据的这种添加是关于具有30Hz帧频的视频数据执行的,该附加数据被添加到30Hz视频数据所包含的所有半帧。即附加数据不但被添加到顶层半帧(t1,t2,...)和底层半帧(b1,b2,...),还同时被添加到重复半帧t1’和b3’。
2:3帧移电路6接收上面描述的由3:2帧移处理产生的30Hz视频数据并把它转换成具有24Hz帧频的视频数据。具体地说,如图3C所示,2:3帧移电路6被用来去掉由3:2帧移处理插入的重复半帧t1’和b3’。2:3帧移处理必须在MPEG编码前执行。这是因为这些重复半帧是被3:2帧移处理插入的多余的半帧,删除后不会引起图像质量有任何下降。
如参考图1中描述的MPEG编码器2一样的MPEG编码器2,从2:3帧移电路6接收24Hz视频数据,并将它编码产生编码流。
然而,MPEG标准规定了只有像素实际上存在的活动视频区域才必须被编码。因此,编码流是通过仅仅编码输入视频数据的活动视频区获得,它不包含叠加在消隐信号间隔的附加数据。换句话说,当输入数据被MPEG编码器2编码时,叠加在输入视频数据上的附加数据被丢失。
如参考图1中描述的MPEG解码器3一样的MPEG解码器3,从MPEG编码器接收编码流,并将它解码产生解码视频数据。根据MPEG标准,Repeat_first_field和Top_field_first标记被作为关于帧结构的信息设置在编码流中。因为MPEG解码器根据这些标记处理数据,所以解码视频数据具有30Hz的帧频。
从上面的描述中可以看出,即使附加数据在发送系统中由处理器添加到30Hz视频数据中,在为了MPEG解码而需要的2:3帧移处理之后,重复半帧被从30Hz视频数据中去掉。即附加数据连同它被添加的重复半帧一起被去掉。因此,如果2:3帧移处理当视频数据被从发送系统发送到接收系统时被执行,则关于被添加到重复半帧的附加数据的信息不被从发送器或第一视频处理器1发送给接收器或第二视频处理器4,原因是重复半帧本身被2:3帧移处理去掉。
发明公开
本发明的目的是提供一种用于编码输入视频数据的编码系统,以及一种用于解码编码流的解码系统。具体地说,它提出了一种用于发送添加到视频数据的附加数据和视频数据的固有信息连同编码流的系统和方法,用该系统和方法,即使MPEG编码和MPEG解码反复进行,它们也不会丢失。
MPEG编码器从视频数据中提取附加数据,把提取的附加数据作为Ancillary_data插入编码流,进而将附加数据和编码流一起发送。MPEG解码器从该编码流中提取附加数据,并将它添加到由MPEG解码产生的基带视频数据中。
一种用于编码输入视频数据的编码设备,它从输入视频数据中提取被添加到输入视频数据的消隐信号间隔的附加数据,编码该输入视频数据、以产生编码流,并且控制上述的编码装置,以便于把上述的附加数据插入到编码流中。
一种用于解码由编码输入视频数据产生的编码流的解码设备,它从编码流中提取附加数据,解码该编码流以产生解码视频数据,并多路复用该附加数据到解码视频数据的消隐信号间隔上。
一种用于解码由编码输入视频数据产生编码流的解码设备,它解析编码流的句法,以获得包含在编码流中的附加数据,解码该编码流以产生解码视频数据,并多路复用该附加数据到解码视频数据,以使得输入视频数据和解码视频数据将具有相同的附加数据。
一种用于解码由编码输入视频数据产生的编码流的解码设备,它获得包含在编码流的画面区中的附加数据,解码该编码流以产生解码视频数据,并多路复用该附加数据到解码视频数据上,以生成与输入视频数据相同的数据。
一种编码系统,包括:编码部件,编码输入视频数据,以及解码部件,用于接收和解码由编码部件编码的编码流,以生成解码视频数据,其中编码部件包括用于编码以上描述的输入视频数据以生成编码流的部件和以及用于插入包含在输入视频数据的附加数据到编码流的部件,而解码部件包括解码编码流,以生成解码视频数据的部件,以及用于多路复用与编码流一起发送的附加数据到解码视频数据的部件。
附图的简要描述
图1是显示包括传统的MPEG编码器和MPEG解码器系统结构的方框图。
图2是显示包括3:2帧移电路的编码系统结构的方框图。
图3是图解3:2帧移处理的示意图。
图4是显示根据本发明的编码/解码系统结构的方框图。
图5是显示基本流和传送流的示意图。
图6是显示MPEG编码器结构的方框图。
图7是图解3:2帧移处理的示意图。
图8是显示视频数据的整个像素区和活动视频区的示意图。
图9是显示每一帧的结构的示意图。
图10是显示一个视频序列的句法的示意图。
图11是显示一个视频序列首标的句法的示意图。
图12是显示一个视频序列扩展的句法的示意图。
图13是显示扩展和用户数据的句法的示意图。
图14是显示用户数据的句法的示意图。
图15是显示数据ID的句法的示意图。
图16是显示V-phase的句法的示意图。
图17是显示H-phase的句法的示意图。
图18是显示时间代码的句法的示意图。
图19是显示时间代码的句法的示意图。
图20是显示画面次序的句法的示意图。
图21是显示附加数据的句法的示意图。
图22是显示一组画面首标的句法的示意图。
图23是显示画面首标的句法的示意图。
图24是显示画面编码扩展的句法的示意图。
图25是显示画面数据的句法的示意图。
图26是显示序列层、GOP层和画面层的数据的示意图。
图27是显示在编码器一侧的多路复用单元的结构的方框图。
图28是图解从源视频数据产生PES和TS包的方法的示意图。
图29是显示PES首标的数据结构的示意图。
图30是显示画面序列的示意图。
图31是显示MPEG解码器结构的方框图。
实施本发明的最佳模式
图4显示了一个包含主广播电台141和地方广播电台171的广播系统。
主广播电台141包括多个编辑/处理工作室145A到145D、多个MPEG编码器142A至142D、多个MPEG解码器144A至144D、至少一个多路复用器(MUX)162A以及至少一个多路分解器161A。主广播电台141也包括被定义成SMPTE305M的SDTI-CP(串行数据传输接口内容包)网150,通过该网,每一个MPEG编码器、每一个MPEG解码器、多路复用器162A和多路分解器161A都能够发送和接收基本流。被建议用于MPEG的基本流的发送的通讯格式的SDTI-CP被定义成SMPTE305M。在SDTI-CP网150上传输的基本流被表示成ES_over_SDTI-CP。
编辑/处理工作室145A至145D包括视频服务器、视频编辑器、特技装置、视频传换器。它们从MPEG解码器中接收解码的基带视频数据,编辑它或让它接受图像处理,并且把它输出给MPEG编码器。换句话说,编辑/处理工作室145A至145D在基带视频信号上执行编辑和图像处理操作,而不是在编码流上执行流处理操作。
MPEG编码器142A至142D从编辑/处理工作室145A至145D中接收基带输入视频信号,然后根据以上描述的MPEG标准编码它们,以产生基本流(ES)。由MPEG编码器产生的基本流通过SDTI-CP网150被提供给MPEG解码器144A至144D或者多路复用器162A之一。
MPEG解码器144A至144D接收由MPEG编码器142A至142D或多路分解器161A通过SDTI-CP网150提供来的基本流,并根据MPEG标准解码它们。多路复用器162A是用于多路复用在主广播电台141中产生的多个视频节目成一个传送流,以分发它们给地方广播电台171或各个家庭。具体地说,它通过SDTI-CP网150接收对应于多个视频节目的多个基本流,通过打包基本流产生打包的基本流,然后从打包的基本流中产生传送流包。多路复用器162A通过多路复用从多个视频节目中产生的传送流包,产生多路复用的传送流。后面将对多路复用器162A的结构和处理进行描述。
如果多个视频节目的目的地是地方广播电台171,则通过诸如ATM(asynchronous transfer mode,异步传输模式)网或卫星线路提供由多路复用器162A产生的多路复用的传送流给地方广播电台171的多路分解器161B。虽然地方广播电台171与主广播电台141的规模不同,但它与主广播电台141具有相同的系统结构,因此省略详细描述。
如果多个视频节目的目的地是地方广播电台171,则通过诸如ATM(asynchronous transfer mode,异步传输模式)网或卫星线路提供由多路复用器162A产生的多路复用的传送流给包含在每一个家庭中的机顶盒里的MPEG解码器170A,而解码的视频数据被提供给电视机。
图5图解了借助SDTI-CP网在广播电台内部发送的基本流与借助公共网传输的发送流之间的差别。
在广播电台内部,基本流借助SDTI-CP网发送。使用基于被用SMPTE259M标准化了的SDI(serial data interface,串行数据接口)的通讯格式并具有270Mbps传输速率的SDTI-CP网150,能够直接以MPEG格式发射基本流(ES),并且适合于诸如工作室里那样的闭路网络。具体地说,如图5A所示,视频数据“V”和音频数据“A”被包进每一帧中,而该流可以被轻松地沿着由帧同步(虚线)限定的帧边界编辑。
在广播电台之间或者在公共网之上,视频数据是以传送流的格式发送的。如图5B所示,在一个传送流中包括视频数据和音频数据在内的全部内容被封装成188字节的包,以便即使在限制数据输送容量的公共网也允许发送。和基本流的情况一样,“V”指示视频数据的传送流包,“A”指示音频数据的传送流包,而空白指示没有包。
现在参考图6描述MPEG编码器142A至142D。首先,将给出关于提供给MPEG编码器的输入视频数据的补充解释。在本实施例中,输入视频数据是由3:2帧移转换从具有24Hz帧频的源视频数据产生的30-Hz视频数据。具体地说,具有24Hz帧频的原始源视频数据由帧F1、F2等组成,它们每一个都具有两个半帧(顶层半帧t1、t2、......和底层半帧b1、b2、......)。如图7A所示,3:2帧移处理在第一帧F1——在那里顶层半帧应该首先出现——中通过重复顶层半帧t1产生重复半帧t1’,以从三个半帧中形成一帧,并在底层半帧应该首先出现的第三帧中通过重复底层半帧b3产生重复半帧b3’。如图7A所示,以这种模式,3:2帧移处理能够通过交替3半帧的帧和2半帧的帧,转换具有24Hz帧频的源视频数据成为具有30Hz帧频的视频数据。
虽然在本实施例中输入视频数据由3:2帧移产生,但本发明不限制在其输入视频数据已经经历了3:2帧移的视频数据。假定原始源视频数据具有30Hz帧频,则本发明也能够应用于未被经历3:2帧移的视频数据。
显示于图6中的MPEG编码器包括附加数据分离电路101、半帧计数器102、2:3帧移电路103、编码控制器104、运动向量(MV)检测器105、开关电路111、DCT电路112、量化电路113、逆量化电路114、逆DCT电路115、添加电路116、存储器117和118、运动补偿电路(ME)119、运算电路120、121和122、可变长度译码电路(VLC)125以及发送缓存器126。
附加数据分离电路101从输入视频数据的消隐信号间隔中提取附加数据。具体地说,如图8所示,它提取被插入在输入视频数据的垂直消隐信号间隔中的附加数据和附加数据的行号。这样的附加数据包括但不限于:文本数据、闭路字幕数据、由SMPTE RP164定义的VITC(vertical interval timecode,垂直间隔时间代码)以及由RP196定义的LTC(linear time code,线性时间代码)。在本实施例中,关于提取的附加数据的信息被作为Ancillary_data提供给编码控制器104,而关于行号的信息被作为Linear_number提供给编码控制器104。关于VITC的信息也被作为Time_code_1提供给编码控制器104,关于LTC的信息被作为Time_code_2提供给编码控制器104。
此外,附加数据分离电路101提取输入视频数据所拥有的独特信息。这种独特信息可以是,例如关于活动视频区AR2对于输入视频数据的整个像素区AR1的位置的数据,如图8所示。具体地说,它可以包括表示活动视频区的垂直起始位置的行号以及表示水平起始位置的样本号。在本实施例中,关于活动视频区的垂直和水平起始位置的信息被分别作为V-phase和H-phase提供给编码控制器104。该独特信息的别的示例包括已经赋予输入视频数据的来源名称和画面摄影的地点和时间。
从附加数据分离电路101输出的视频数据被提供给随在其后的半帧计数器102。半帧计数器102是用于计算构成每一个输入视频数据帧的半帧数目的电路。然后半帧计数器102把每一帧的计数信息作为Field_ID提供给编码控制器104。例如,如果图7A所示的视频数据被提供给半帧计数器102,则Field_ID等于“0”、“1”和“2”被作为关于具有三个半帧的帧F1的计数信息输出,而Field_ID等于“0”和“1”被作为关于具有两个半帧的帧F2的计数信息输出。
半帧计数器102还包括两个计算输入视频数据中的半帧的数量,并把该计数信息作为PTS_counter和DTS_counter输出给编码控制器104的计数器。当产生ES首标时,PTS_counter用于产生出现时序标记(presentation timestamp,PTS),而DTS_counter用于产生解码时间标记(decoding time stamp,DTS)。
现在参考图9来详细地描述PTS_counter和DTS_counter。图9显示了输入视频数据中的每一帧的帧结构,以及在每一帧中PTS_counter和DTS_counter之间的关系。在对图9进行详细描述之前,给出关于Repeat_first_field和Top_field_first标志的一个补充解释。如果Repeat_first_field标志被设置成“1”,则表示重复半帧必须在MPEG解码期间创建,而如果Repeat_first_field标志被设置成“0”,则表示重复半帧不需要在MPEG解码期间创建。Top_field_first标志表示该帧的第一半帧是顶层半帧还是底层半帧:值为“1”表示在该帧中顶层半帧出现得比底层半帧早,而值为“0”表示在该帧中底层半帧出现得比顶层半帧早。图9A图解了图7A所描述的输入视频数据的帧结构。具体地说,第一帧F1的解码不仅涉及到产生包括顶层半帧和底层半帧在内的帧,而且还涉及通过复制顶层半帧创建重复半帧来产生包括三个半帧在内的帧。因此,对应的Repeat_first_field际志变成“1”和Top_field_first标志变成“1”。
在正在进行解码的帧F2中,由于不需要产生重复半帧,所以Repeat_first_field标志被设置成“0”,但由于底层半帧出现得比顶层半帧早,所以Top_field_first标志被设置成“0”。
在正在进行解码的帧F3中,该底层半帧必须被复制以产生重复半帧,并且编码的帧必须被转换为带有三个半帧的帧。所以Repeat_first_field标志被设置成“1”,而Top_field_first标志被设置成“0”。在正在进行解码的帧F4中,由于不需要创建重复半帧,因此Repeat_first_field标志被设置成“0”,而Top_field_first标志被设置成“1”。既然PTS_counter是支撑(underlying)如以上所述那样的PTS的时序标记信息,因此它必须适合输入视频数据的帧次序。具体地说,PTS_counter是由从0递增到127然后再返回到0的计数器产生的值。PTS_counter的值按图9B所是的模式变化。更具体地说,既然在输入视频数据中的第一帧F1是I-画面,必须首先出现,所以PTS_counter值为“0”。关于第二帧F2的PTS_counter值是关于第一帧F1的PTS_counter值“0”加包含在帧F1中的半帧数量“3”,因此它等于“3”(=0+3)。关于第三帧F3的PTS_counter值是关于第二帧F2的PTS_counter值“3”加包含在帧F2中的半帧数量“2”,因此它等于“5”(=3+2)。关于第四帧F4的PTS_counter值是关于第三帧F3的PTS_counter值“5”加包含在帧F3中的半帧数量“3”,因此它等于“8”(=5+3)。关于第五帧F5以及以后各帧的PTS_counter值以类似模式计算。此外,既然DTS_counter是支撑DTS的时序标记信息,因此它必须适合在编码流中的画面次序,而不用适合输入视频数据的帧次序。现在根据图9C所示的更具体的术语描述它。既然在输入视频数据中的第一帧F1是I-画面,它必须在被显示之前就是一个解码帧。换句话说,既然在帧F1之前的帧F0包括两个半帧,所以若出现时序标记PTS_counter=0被用作基准时序,则DTS_counter值必须比基准时序“0”提前三个半帧,即必须为“125”。DTS_counter值被作为一个值模27(=128)给定,因此它从0循环到127。关于在帧F1之后编码帧F4的DTS_counter值等于“0”(=128=125+3),它被给成关于帧F1的DTS_counter值“125”加在帧F1中的半帧数“3”。既然接下来编码帧F2是B-画面,所以DTS_counter值等于PTS_counter值,即等于“3”。类似地,由于接下来编码帧F3是B-画面,因此DTS_counter值等于PTS_counter值,即等于“5”。关于帧F7及其以后各帧的DTS_counter值可以类似地计算,这里省略其详细描述。半帧计数器102产生PTS_counter与DTS_counter,并根据以上所述的规则把它们提供给编码控制器104。
2:3帧移电路103接收从半帧计数器102输出的视频数据并执行2:3帧移。2:3帧移电路103接收带有30Hz的帧频并已经经历了如图7A中所示的3:2帧移的视频数据,并产生带有24Hz帧频的视频数据。更具体地说,如图7B所示,2:3帧移电路103通过去掉由3:2帧移插入的重复半帧t1’和b3’,把带有30Hz的帧频的视频数据转换为带有24Hz帧频的视频数据。在去掉重复半帧时,2:3帧移电路103分析提供的视频数据的帧结构,并且仅仅去掉被找到的、发生在一定间隔中的重复半帧。因此,当分析视频数据的帧结构时,2:3帧移电路103产生Repeat_first_field和Top_field_first标志作为关于帧结构的信息,并把它们提供给编码控制器104。
根据预定的顺序,运动向量检测器105按宏模块接收从2:3帧移电路103输出的视频数据,并处理在象I-画面、P-画面或者B-画面一样的每一帧中的图像数据。关于怎样处理每一帧的图像——如I-画面、P-画面或者B-画面——的问题,已经根据由操作员规定的GOP结构预定好。任何被检测到的运动向量MV被提供给编码控制器104和运动补偿电路119。当画面内预测模式被激活时,开关电路111闭合触点a。因此,如与I-画面数据的情况一样,宏模块数据通过DCT电路112、量化电路113、可变长度译码电路125和发送缓存器126发送到发送路径。量化后的数据也通过逆量化电路114、逆DCT电路115和添加电路116提供给用于后向预测性画面的存储器117。另一方面,当后向预测模式被激活时,开关电路111闭合触点b,存储在用于后向预测性画面的帧存储器118中的图像数据(在这种情况下是I-画面的图像数据)被读取,由运动补偿电路119基于由运动向量检测器105提供的运动向量MV进行补偿。换句话说,当指令激活后向预测模式时,运动补偿电路119通过从相应于当前由运动向量检测器105输出的宏模块的位置的位置,把用于后向预测性画面的帧存储器118的读取地址偏移相当于运动向量的量,来读取数据以产生预测性画面数据。由运动补偿电路119输出的预测性画面数据被提供给运算电路120。然后运算电路120从基准图像的宏模块的数据中减掉由运动补偿电路119和对应的宏模块提供的预测性画面数据,并输出差额(预测误差)。该差额数据通过DCT电路112、量化电路113、可变长度译码电路125和发送缓存器126发送到发送路径。该差额数据也通过逆量化电路114和逆DCT电路115部分地解码,并被输入到添加电路116。添加电路116也已经被提供了与提供给运算电路120的预测的画面数据相同的数据。添加电路116添加被运动补偿电路119输出的预测的画面数据,到被逆DCT电路115输出的查数据。这产生了初始(解码)P画面的图像数据。该P画面的图像数据被提供给存储器117的后向预测性画面段,在这里被存储。在I-画面和P-画面的数据被分别存储到前向预测画面段118和后向预测画面段117,运动向量检测器105处理下一幅画面即B-画面。在帧内画面预测模式或前向预测模式,开关电路111分别闭合触点a或b。该画面按照与P-画面相同的模式被处理,并且数据被发送。另一方面,当后向预测模式或双向预测模式被激活,开关电路111分别闭合触点c或d。后向预测模式在开关电路111的触点c闭合的情况下,被存储在后向预测画面段117的图像数据(这种情况下是P-画面的图像)被读取,根据被运动向量检测器105输出的运动图像使它的运动被运动补偿电路119补偿。换句话说,当后向预测模式被激活时,运动补偿电路119通过从相应于当前由运动向量检测器105输出的宏模块的位置的位置,把用于后向预测性画面段117的读取地址偏移相当于运动向量的量,来读取数据以产生预测性画面数据。由运动补偿电路119输出的预测的画面数据被提供给计算单元121。然后计算单元121从基准图像的宏模块的数据中减掉由运动补偿电路119提供的预测的画面数据,并输出差额。该差额数据通过DCT电路112、量化电路113、可变长度译码电路125和发送缓存器126发送到发送路径。在开关电路111中的触点c处于闭合的双向预测模式中,被存储在前向预测画面段118中的图像数据(这种情况下是I-画面的图像)和被存储在后向预测画面段117中的图像数据(这种情况下是P-画面的图像)均被读取,并且根据由运动向量检测器105输出的运动图像把它们的运动用运动补偿电路119补偿。换句话说,当双向预测模式被激活时,运动补偿电路119通过从相应于当前由运动向量检测器105输出的宏模块的位置的位置,把用于前向预测性画面段118和后向预测性画面段117的读取地址偏移相当于运动向量(这种情况下是关于前向预测性画面和后向预测性画面这两者的)的量,来读取数据以产生预测性画面数据。由运动补偿电路119输出的预测的画面数据被提供给计算单元122。然后计算单元122从基准图像的宏模块的数据中减掉由运动补偿电路119提供的预测的画面数据的平均值,并输出差额。该差额数据通过DCT电路112、量化电路113、可变长度译码电路125和发送缓存器126发送到发送路径。由于B-画面的图像不用作关于别的画面的预测性画面,因此它们不被存储在帧存储器117和118中。编码控制器104控制在以上描述的预测模式处理、DCT模式处理和量化处理中涉及的所有电路。此外编码控制器104提供在画面的编码期间产生的所有编码参数到可变长度译码电路125,它包括:运动向量、画面类型、预测模式、DCT模式、量化步骤。
此外,编码控制器104从附加数据分离电路101中接收V-phase、H-phase、Time_code1、Time_code2、Ancillary_data和Line_number信息,并从半帧计数器102中接收DTS_counter、PTS_counter和Field_ID信息。然后把接收到的V-phase、H-phase、Time_code1、Time_code2、Ancillary_data、Line_number、DTS_counter、PTS_counter和Field_ID信息作为MPEG_ES_editing_information(i)提供给可变长度译码电路125。
可变长度译码电路125把从量化电路113中接收到的量化的DCT系数,和从编码控制器104中接收到的编码参数,根据由MPEG标准指定的基本流的句法转换成可变长度代码以产生编码流。
本发明的特定特性是可变长度译码电路125也把从编码控制器104作为MPEG_ES_editing_information(i)提供的信息转化成可变长度代码,并把它们插入编码流。编码流的句法和MPEG_ES_editing_information(i)的句法将在以后详细描述。
现在将参考图10到26对位流的句法进行描述。顺便说,图26是以容易理解的形式图解MPEG编码流的数据结构的示意图,而图10到25详细描述了该句法。图10显示了MPEG视频流的句法。MPEG解码器42根据图10所示的句法产生编码的基本流。在接下来的句法描述中,函数和条件语句被显示成细长体字,而数据元素被显示成黑体字。数据项被表示在表示它们的名称、位长度、类型和发送次序的备注表中。将描述用于图10所示的句法中的第一个函数。实际上图10所示的句法被MPEG解码器44用于从接收到的编码流中提取有意义的数据元素。被MPEG编码器42使用的句法是通过从如图10所示的句法中省略条件语句,诸如if和while语句,而获得的句法。
在video_sequence()中首先被描述的next_start_code()被指定用于搜索位流的起始代码。在根据显示于图10的句法产生的任何编码流中,sequence_header()和sequence_extension()定义的数据元素首先被描述。当sequence_extension()函数被用于定义关于MPEG位流的序列层的扩展数据时,sequence_header()函数被用于定义关于MPEG位流的序列层的首标数据。当由该while语句定义的条件为真时,放在sequence_extension()函数后边的“do{}while”句法表示根据该do语句的括号{}中的函数描述的数据元素将在编码数据流中保持不变。包含在while语句中的nextbits()函数用于比较在带有被参考的数据元素的位流中的位串。在图10所示的示例中,nextbits()函数用于比较在带有指示视频序列末端的sequence_end_code的位流中的位串,并且如果它们不匹配,则在while语句中的条件保持为真。因此,放在sequence_extension()函数后边的“do{}while”句法指示由do语句中的函数描述的数据元素将在编码数据流中保持不变,直到指示视频序列末端的sequence_end_code被遇到为止。在编码位流中,已经描述了由sequence_extension()函数定义的后续数据元素、由extension_and_user_data(0)函数定义的数据元素。extension_and_user_data(0)函数被用于定义关于MPEG位流的序列层的扩展数据和用户数据。当由该while语句定义的条件为真时,放在extension_and_user_data(0)函数后边的“do{}while”句法指示根据该do语句的括号{}中的函数描述的数据元素将在编码数据流中保持不变。包含在while语句中的nextbits()函数用于确定在位流中的位串和picture_start_code或group_start_code之间的匹配。如果在位流中的位串和picture_start_code或group_start_code匹配,则在while语句中的条件保持为真。因此,“do{}while”句法指示了如果picture_start_code或group_start_code出现在编码的位流中,则由do语句中的函数定义的数据元素代码将紧跟在起始代码之后被描述。在do语句的开始处被描述的if语句指定了group_start_code在编码的位流中出现的条件。如果由if语句所表示的条件为真,则由group_of_picture_header()和extension_and_user_data(1)定义的数据元素被在编码的位流中的中group_start_code后续的序列中描述。group_of_picture_header()函数用于定义关于MPEG编码流的GOP层的首标数据,而extension_and_user_data(1)函数用于定义关于MPEG位流的GOP层的扩展数据和用户数据。此外,在这个被编辑的位流中,紧接到由group_of_picture_header()和extension_and_user_data(1)定义的数据元素之后,由picture_header()和picture_coding_extension()定义的数据元素已经被描述。当然,如果上面描述的if语句不为真,由group_of_picture_header()和extension_and_user_data(1)定义的数据元素不被描述,因此紧接到由extension_and_user_data(0)定义的数据元素之后,由picture_header()和picture_coding_extension()和extension_and_user_data(2)定义的数据元素被描述。picture_header()函数被用来定义MPEG编码的位流的画面层的首标数据,picture_coding_extension()函数被用来定义MPEG编码的位流的画面层的第一扩展数据。extension_and_user_data(2)函数被用来定义MPEG编码的位流的画面层的扩展数据和用户数据。由extension_and_user_data(2)定义的用户数据在画面层已经被定义,并且可以针对每一画面定义。在编码位流,紧接着画面层中的用户数据之后,由picture_data()定义的数据元素已经被描述。picture_data()函数被用来描述与薄层(slice layer)和宏模块层相关的数据元素。当while语句定义的条件为真时,紧接到picture_data()函数被描述的while语句是被用来判断下一个if语句的条件的函数。包含在while语句中的nextbits()函数被用来确定在编码位流中的picture_start_code或group_start_code是否已经被描述。如果picture_start_code或group_start_code在编码流中已经被描述,由while语句定义的条件为真。紧接着出现的if语句是用来确定是否在编码流中sequence_end_code已经被描述的条件语句。它指出如果sequence_end_code还没有被描述,由sequence_header()和sequence_extension()定义的数据元素已经被描述。由于sequence_end_code是指定编码的视频流序列末端的码,由sequence_header()和sequence_extension()定义的数据元素应该保留在编码的视频流中,除非编码的视频流已经结束。在这里被sequence_header()和sequence_extension()描述的数据元素与在视频流序列的开始被sequence_header()和sequence_extension()描述的数据元素完全相同。以这种模式,相同的数据在流中不止一次被描述,以避免这样一种情况,即当数据流被位流接收机从中部(例如对应于画面层的位流部分)接收时,变得不能接受序列层数据和解码流的情况。在被最后的sequence_header()和sequence_extension()定义的数据元素之后,在数据流的末端,两位的sequence_end_code被描述指出序列的末端。现在将详细描述sequence_header()、sequence_extension()、extension_and_user_data(0)、group_of_picture_header()、picture_header()、picture_coding_extension()、和picture_data.图11描述了sequence_header()的句法。由sequence_header()定义的数据元素包括sequence_header_code、horizontal_size_value、vertical_size_value、aspect_ratio_information、frame_rate_code、bit_rate_value、marker_bit、vbv_buffer_size_value、constrained_parameter_flag、load_intra_quantizer_matrix、intra_quantizer_matrix[64]、load_non_intra_quantizer_matrix、non_intra_quantizer_matrix等。sequence_header_code是表示序列层的开始同步码的数据。horizontal_size_value是由一个图像的水平象素计数的低阶12位组成的数据。vertical_size_value是由一个图像的垂直线计数的低阶12位组成的数据。aspect_ratio_information是表示一个像素或显示屏的纵横比的数据。frame_rate_code是表示一个图像的显示周期的数据。bit_rate_value是由用于限制产生的位的总量的位速率的低阶18位(向上舍入到400ps的最接近的倍数)构成的数据。marker_bit是被插入以避免起始代码仿效的位数据。vbv_buffer_size_value表示确定用于控制产生的代码的总量的虚拟缓存器(视频缓存器的校验器)尺寸的值的低阶10位。
constrained_parameter_flag是指示参数落入限制之内的数据。load_intra_quantizer_matrix是指示关于内部MB的量化矩阵数据存在的数据。intra_quantizer_matrix[64]是表示关于内部MB的量化矩阵的值的数据。load_non_intra_quantizer_matrix是指示关于非内部MB的量化矩阵数据存在的数据。non_intra_quantizer_matrix是表示关于非内部MB的量化矩阵的值的数据。图12图解了sequence_extension()的句法。由sequence_extension()定义的数据元素包括extension_start_code、extension_start_code_identifier、profile_and_level_indication、progressive_sequence、chroma_format、horizontal_size_extension、vertical_size_extension、bit_rate_extension、vbv_buffer_size_extension、low_delay、frame_rate_extension_n、frame_rate_extension_d等。
extension_start_code是扩展数据的起始同步码。extension_start_code_identifier是指示那一个扩展数据将要被发送的数据。profile_and_level_indication是用于指定视频数据的概貌和水平(profile and level)的数据。progressive_sequence是指示视频数据将要顺序地被扫描的数据。chroma_format是用于指定视频的色差格式的数据。horizontal_size_extension表示将要添加到序列首标中的horizontal_size_value数据的高阶2位。vertical_size_extension表示将要添加到序列首标中的vertical_size_value数据的高阶2位。bit_rate_extension表示将要被添加到序列首标中的bit_rate_value数据的高阶12位。vbv_buffer_size_extension表示将要被添加到序列首标中的vbv_buffer_size_value数据的阶8位。low_delay是指示不包含任何B-画面的数据。frame_rate_extension_n与序列首标中的frame_rate_code结合起来使用以获得帧频。frame_rate_extension_d与序列首标中的frame_rate_code结合起来使用以获得帧频。图13图示了extension_and_user_data(i)的句法。当“i”不是1时,extension_and_user_data(i)仅描写由user_data()定义的数据元素,不是由extension_data()定义的数据元素。因此,extension_and_user_data(0)仅描写由user_data()定义的数据元素。首先,将描述图13显示的句法所用的函数。nextbits()函数被用来比较带有将解码数据元素的位流中的多位或位串。图14中的user_data()显示了这个实施例的特有特征。如图14所示,user_data()被用来描述与user_data_start_code、V-phase()、H-phase()、Time_code()、Picture_order()、Ancillary_data()、history_data()和user_data()相关的数据元素。user_data_start_code是用来指示MPEG位流的画面层中用户数据区域的起始的开始码。如果在user_data()中的i是0,则紧接着这个代码之后被描述的if语句指定运行跟在后面的while句法。While句法保持为真,除非由二十三个“0”和伴随的一个“1”组成的24位数据出现在位流中。由二十三个“0”组成的24位数据被添加到所有开始码的开始,以允许nextbits()函数找到在位流中的每个开始码的位置。如果while语句为真,它跟着为user_data()中的i是0,因此,在序列层中应该是extension_and_user_data(0)。这就意味着在图26中的序列层中,与extension_and_user_data(0)205相关的数据元素已经被描述。如果表示V-Phase()的位流(Data_ID)被检测到,在下一个if语句中的nextbits()函数知道后面的位描述由V-Phase()指定的V-Phase数据元素。如果表示H-Phase()的位流(Data_ID)被检测到,在Else if语句之后的nextbits()函数知道后面的位描述由H-Phase()指定的H-Phase数据元素。
这意味着与V-Phase()220和H-Phase()221相关联的数据元素已经在如图26所显示的序列层的用户数据区域被描述。如图15所示,V-Phase()的Data_ID是表示“01”的位串。H-Phase()的Data_ID是表示“02”的位串。现在将参考图16对位流中描述的V-Phase()的句法进行解释。如上所述,Data_ID是指示下一个位串的数据元素是V-Phase,即值“01”的8位数据,如图15所示。V-Phase是指示在视频信号帧中将编码第一行的16位数据。换句话说,V-Phase是指示活动视频区域的垂直行数的数据。
现在将参考图17对位流中描述的H-Phase()的句法进行解释。如上所述,Data_ID是指示下一位串的数据元素是H-Phase,即值“02”的8位数据,如图15所示。H-Phase是指示在视频信号帧中将编码第一样本的8位数据。换句话说,H-Phase是指示活动视频区域的水平像素样本位置的数据。
再回来看图14,如果在extension_and_user_data(i)中的i是2,则下一Else if语句执行下一while句法。While句法的描述将被省略,因为它与上面描述的while句法具有相同的意义。当while句法为真时,如果检测到指示Time_code1或Time_code2的位串,在下一if语句中的nextbits()函数知道后面的位描述由Time_code()指定的时间代码数据元素。这意味着如果在extension_and_user_data(i)中的i是2,该用户数据被包含在画面层中。即,由Time_code()241表示的数据元素已经在画面层的用户数据区域内被描述,如图26所示。
Time_code1的Data_ID是表示“03”的位串,如图15所示。Time_code1数据是VITC(垂直间隔时间代码),表示被插入到图像的垂直消隐信号间隔的时间编码。Time_code2的Data_ID是表示“04”的位串,如图15所示。Time_code1数据是LTC(纵向时间代码或线性时间代码),表示被记录在记录介质的时间代码轨道的时间代码。
图18和19显示Time_code()的句法。如图18所示,该时间编码组成72位数据。图19显示具体数据结构。
在图19中,color_frame_flag表示色帧信息的控制标记,之后的Drop_frame_flag表示掉帧的控制标记。从第三位到第八位这六位表示时间代码的`帧`段,field_phase表示相位校正的控制标记。从第十位到第十六位这七位表示时间代码的`秒`段,在第17、第34、第51和第68位中的`1`是用来防止0连续出现23次的标记位。在某一间隔的标记位的插入可以防止起始代码仿真。
在第18、第26和第27位中的binary_group表示用于二进制群的控制标记。从第19位到第25位这七位表示时间代码的“分钟”段,从第28位到第33位这六位表示时间代码的“小时”段。在图14中,如果指示画面顺序的位串被检出,在Else if语句中的nextbits()函数知道后续位描述由Picture_order()指定的画面顺序数据元素。Picture_order()的Data_ID是表示“05”的位串,如图15所示。下面将参考图20对实际上由编码器插入到基本流中的Picture_order()的句法进行描述。如上所述,Data_ID是指示后面的数据是Picture_order数据的8位数据,它的值是“05”。DTS_presence是指示代码顺序DTS_counter的存在或不存在的1位数据。例如,如果DTS_counter=PTS_counter如B_画面那样,只有出现顺序PTS_counter存在并且DTS_counter的位变成“0”。相反,在P_画面和I_画面情况下,编码顺序DTS_counter和出现顺序PTS_counter不相等,于是编码顺序DTS_counter和出现顺序PTS_counter两个都存在,并且DTS_counter的位变成“1”。如图26所描述,如带有Time_Code()的情况那样,与Picture_order()相关的数据元素在画面层的用户数据区内被描述。如上所述,PTS_counter是由MPEG编码器中的半帧计数器102产生的值。它是表示出现次序以及每当输入视频数据的一个半帧被填充时以每次递增1的7位数据。这个7位数据被给成模除法的余数,其取值范围为0到127。在P_画面和I_画面情况下,如果DTS_presence为1,则if语句表示DTS_counter递增。每16位插入一个Marker_bits,阻止开始码仿真。在其中被描述的用户数据位串偶而匹配以上描述的开始码的现象,导致图像出错的可能性升高。DTS_counter是由MPEG编码器中的半帧计数器102产生的值。它是表示编码次序以及每当输入视频数据的一个半帧被编码时递增1的7位数据。这个7位数据被给成模除法的余数,其取值范围为0到127。返回到图14中,该while句法具有与以上所描述相同的while句法,因此这里省略其描述。当该while句法为真时,如果指示附加数据的位串被检测到,则在下一个if语句中的nextbits()函数知道后续位描述由Ancillary_data()指定的附加数据元素。Ancillary_data()的Data_ID是表示“07”的位串,如图15所示。如图26所示,如带有Picture_Order()和Time_Code()的情况一样,与Ancillary_data()相关的数据元素在画面层的用户数据区内被描述。现在将参考图21对添加标识符到附加数据的Ancillary_data()的句法进行描述。被作为用户数据插入画面层的Ancillary_data(),包括半帧标识符(Field_ID)、行号(Line_number)和附加数据。Data_ID是在用户数据区域的附加数据,是具有值“07”的8位数据,如图15所示。当指示输入视频数据是否是逐行扫描视频(progressive video)的progressive_sequence_flag值为“0”,即,当输入视频数据是隔行扫描视频数据时,Field_ID是被添加到编码帧内的每个半帧的2位数据。
现在将参考图7对Field_ID进行描述。
如果repeat_first_field包含“0”,被给的帧具有两个半帧:第一半帧的Field_ID被设置为“0”,第二半帧的Field_ID被设置为“1”。如果repeat_first_field包含“1”,给出的帧具有三个半帧:第一、第二和第三半帧的Field_ID分别被设置为“0”,“1”、“2”。现在将参考图7C提供更为详细的描述。当图7B所示的输入视频数据被编码时,获得图7C所示的编码流。这个编码流是组成多个存取单元(AU1,AU2)的基本流(elementary stream)。图7C显示在基本流中的附加数据和Field_ID信息。
这个编码流的帧F1包含与Field_ID一样的0,1和2,换句话说,当Field_ID=0时,关于那个半帧的附加数据“0”在流中被描述,当Field_ID=1时,关于那个半帧的附加数据“1”在流中被描述,当Field_ID=2时,关于那个半帧的附加数据“2”在流中被描述。这意味着在帧F1的画面中,与Ancillary_data()243相关的数据元素被重复与帧F1的半帧的数目一样多的次数,如图26所示。
当progressive_sequence_flag的值是“1”,即,当输入视频数据是1时,Field_ID被添加给每个编码帧。如果repeat_first_field和Top_first_field两者都包含Field_ID为“0”,给定的编码帧具有一个逐行扫描帧,因此“0”被设置。如果repeat_first_field包含“1”和Top_first_field包含“0”,给定的编码帧具有两个逐行扫描帧,因此“0”和“1”被设置。如果repeat_first_field和Top_first_field两者都包含“1”,给出的编码帧具有三个逐行扫描帧,因此“0”和“2”被设置。Line_number是表示描述每一帧的附加数据的行的行号的14位数据。这个行号已由ITU-R、BT.656-3、SMPTE274M、SMPTE293M和SMPTE296M指定。Ancillary_data_length是表示Ancllary_data_payload数据长度的16位数据。Ancillary_data_payload表示22位附加数据的内容。如果Ancillary_data_length对于Ancillary_data_payload的值大于值j(缺省值为0),值j(Ancillary_data_length数据长度)以1递增,并且描述从值j的位串开始。紧接着的while语句说明bytealigned()的句法。当下一个数据不是bytealigned()(当while句法为真)时,它描述Zero_bit(1位数据“0”)。再回来看图14,如果指示历史数据的位串被检出,则在下一Else if语句中的nextbits()函数知道后续位描述由History_data()指示的历史数据的数据元素。如图15所示,History_data()的Data_ID是表示“08”的位串。由Data_ID的“08”表示的数据表示包括编码参数的历史信息的历史数据。History_data()在美国专利申请序列号09/265,723中被详细描述,因此在这里省略对它的描述。如果指示用户数据的位串被检出,在最后一个if语句中的nextbits()函数知道后续位描述由user_data()指示的user_data数据元素。图14中的nextbits()函数从其中知道后续位描述适当的数据元素的位串,被作为Data_ID描述,如图15所示。然而,使用“00”作为Data_ID被禁止。由Data_ID的“80”表示的数据表示控制标记,由Data_ID的“FF”表示的数据表示用户数据。图22图示了group_of_picture_header()的句法。由group_of_picture_header()定义的数据元素由group_start_code、time_code、close_gop和broken_link组成。group_start_code表示GOP层的起始同步码。time_code表示从GOP层的第一画面序列开始的时间。close_gop是指示在GOP层的图像可以独立于其它的GOP播放的标记。broken_link是指示在GOP层开始的B_picture由于编辑而不能正确地播放。
与extension_and_user_data(0)的情况一样,extension_and_user_data(1)函数被用来描述仅仅由user_data()定义的数据元素。现在,通过参考图23到25,用来描述与编码流的画面层相关的数据元素的picture_header()、picture_coding_extension()和picture_data()将被描述。图23显示了picture_header()的句法。由picture_header()定义的数据元素包括picture_start_code、temporal_reference、picture_coding_type、vbv_delay、full_pel_forward_vector、forward_f_code、full_pel_backward_vector、backward_f_code、extra_bit_picture和extra_information_picture。具体地说,picture_start_code是表示画面层的起始同步码的数据。temporal_reference是指示画面的出现顺序,以及在GOP的开始被复位的号。picture_coding_type是表示画面类型的数据。vbv_delay是表示vbv缓存区的初始状态以及为每个画面设置的数据。从发送系统发送到接收系统的在编码基本流中的画面被放置在提供给接收系统的VBV缓存区内,在由DTS(解码时间标记)指定的时间内从该VBV缓存区内被获取(读出),并被提供给解码器。由vbv_delay定义的时间是从即将解码画面开始放置在VBV缓存区的瞬间起,直到将编码画面从VBV缓存区读出,即直到由DTS定义的时间为止的时间段。被存储在画面首标的vbv_delay的使用容许无痕接合,以避免在VBV缓存区占位导致的不连续。full_pel_forward_vector是指示向前运动向量的精确度是否应该被以整数或半个像素表达的数据。forward_f_code是指示向前运动向量的搜索范围的数据。full_pel_backward_vector是指示向后运动向量的精确度是否应该被以整数或半个像素表达的数据。backward_f_code是指示向后运动向量的搜索范围的数据。extra_bit_picture是指示后面的附加信息存在的标记。如果extra_bit_picture是“1”,extra_information_picture就跟上。如果extra_bit_picture是“0”,不存在后面的数据,extra_information_picture是按该标准保留的信息。图24图解了picture_coding_extension()的句法。由picture_coding_extension()定义的数据元素包括extension_start_code()、extension_start_code_identifier、f_code[0][0]、f_code[0][1]、f_code[1][0]、f_code[1][1]、intra_dc_precision、picture_structure、top_field_first、frame_predictive_frame_dct、concealment_motion_vectors、q_scale_type、intra_vlc_format、alternate_scan、repeat_first_field、chroma_420_type、progressive_frame、composite_display_flag、v_axis、field_sequence、sub_carrier、burst_amplitude和sub_carrier_phase。
extension_start_code()指示在画面层中的扩展数据的起始。extension_start_code_identifier是指示什么样的扩展数据被发送的代码。f_code[0][0]是指示向前水平运动向量的搜索范围的数据。f_code[0][1]是指示向前垂直运动向量的搜索范围的数据。f_code[1][0]是指示向后水平运动向量的搜索范围的数据。f_code[1][1]是指示向后垂直运动向量的搜索范围的数据。intra_dc_precision是表示DC系数的精确度的数据。picture_structure是指示是否画面具有一帧结构或半帧结构的数据。在半帧结构的情况下,它还指示这个半帧是上半帧还是下半帧。top_field_first是指示在帧结构情况下第一半帧是顶部半帧还是底部半帧的标记。frame_predictive_frame_dct是指示帧模式DCT预测仅仅处于在帧结构情况下的帧模式内的数据。concealment_motion_vectors是指示内部宏模块配备了用于隐藏发送错误的运动向量的数据。q_scale_type是指示使用哪一个量化等级,线性还是非线性的数据。intra_vlc_format是指示是否对内部宏模块使用另一个二维VLC(可变长度代码)的数据。alternate_scan是指示使用哪种扫描,Z字形扫描还是交替扫描的数据。repeat_first_field是指示是否在解码期间产生一个重复半帧的标记。如果这个标记被设置为“1”,在解码期间就产生一个重复半帧。如果这个标记被设置为“0”,在解码期间就不产生重复半帧。chroma_420_type是指示如果信号格式为4:2:0,则与progreeive_frame值相同,否则指示0的数据。progressive_frame是指示画面是否被逐帧扫描的数据。composite_display_flag是指示源信号是否是组合信号的数据。v_axis是当源信号为PAL信号时,使用的数据。field_sequence是当源信号为PAL信号时,使用的数据。sub_carrier是当源信号为PAL信号时,使用的数据。burst_amplitude是当源信号为PAL信号时,使用的数据。sub_carrier_phase是当源信号为PAL信号时,使用的数据。图25显示了picture_data()的句法。由picture_data()定义的数据元素是由slice()定义的数据元素。然而,如果指示slice()的起始代码的slice_start_code不在位流中存在,则由slice()定义的数据元素还没有在位流中被描述。
slice()函数被用作描述与薄层相关的数据元素。具体地说,它被用于描述如slice_start_code、slice_quantiser_scale_code、intra_slice_flag、intra_slice、reserved_bits、extra_bit_slice、和extra_information_slice的数据元素,以及由macroblock()定义的数据元素。
slice_start_code指示由slice()定义的数据元素的起始。slice_quantiser_scale_code是指示在薄层中为宏模块指定的量化步长的数据。如果对于每一个宏模块,已经指定了quantiser_scale_code,则macroblock_quantiser_scale_code占有优先权。intra_slice_flag指示在位流中是否存在intra_slice和reserved_bits。intra_slice是指示在薄层中非内部宏模块的存在与否的数据。如果在薄层中任何宏模块都是非内部宏模块,则intra_slice被设置为“0”。如果在薄层中的所有宏模块都是非内部宏模块,则intra_slice被设置为“1”。reserved_bits是具有“0”值的7位数据。extra_bit_slice是指示作为编码流的附加信息的存在的标记。如果extra_information_slice随后,它被设置为“1”。如果没有附加信息存在,它被设置为“0”。macroblock()函数被用来描述与宏模块层相关的数据元素。具体地说,它用来描述诸如macroblock_escape、macroblock_address_increment和macroblock_quantiser_scale_code以及由macroblock_modes()和macroblock_vectors(s)定义的数据元素。macroblocK_escape是指示在基准宏模块和以前的宏模块之间的水平差是否等于或大于34的固定位串。如果这个水平差是34或更大,33被添加到macroblock_address_increment值中。macroblock_address_increment是表示基准宏模块和预制宏模块之间的水平差的数据。如果macroblock_escape串领先macroblock_address_increment,基准宏模块和先前的宏模块之间实际的水平差是macroblock_address_increment的值加上33。macroblock_quantiser_scale_code表示为每个宏模块指定的量化步长。尽管slice_quantiser_scale_code已经被指定给每个薄层以指示该薄层的量化步长,如果macroblock_quantiser_scale_code已经为每个宏模块指定,则基准宏模块的量化步长被挑选。
现在将参考图27对多路复用器162A进行描述。
多路复用器162A包括多个打包器301到309,多个传送流发生器(TSGen.)311到319,多个系统目的解码器缓存器(STD缓存器)321到329,多路复用电路330,和多路复用控制器300。
打包器301到309接收由MPEG编码器输出的各个基本流,并对这些基本流进行打包以产生打包的基本流(PES)。
图28显示了在一个基本流(ES)、打包的基本流(PES)和传送流包之间的关系。
当源视频数据被编码时,产生如图28B显示的由存取单元AU1、AU2、......构成的基本流。图28C显示由打包器执行的打包。打包器打包多个存取单元并添加PES首标到信息包的开始。
图29显示PES首标。如图所示,该PES首标包括信息包开始码、ID流、信息包长度、符号“10”、标记控制码、PES首标长度和条件译码。MPEG标准规定条件译码必须包含出现时间标记(PTS)和解码时间标记(DTS)信息。每个传送流发生器(TS Gen.)311到319从由打包器301到309输出的打包的基本流中产生包括188字节的传送流信息包的传送流。
系统目的解码器缓存器(STD缓存器)321到329接收由传送流发生器311到319输出的传送流,并缓存它们。STD缓存器是由MPEG标准规定的固定容量缓存器,出于仿真的目的被提供,以防止接收缓存器从MPEG解码器边上溢或下溢。多路复用电路330从每个系统目的解码器缓存器321到329接收传送流,并根据由控制器300设定的进度表多路复用传送流。
下面将参考图27到30对打包器的构造和程序进行描述。
每个打包器包括用于缓存接收到的基本流的缓存器341,用于分析接收到的基本流的句法的解析电路342,用于打包从缓存器输出的基本流的打包电路343。
解析电路342提取在基本流中描述的PTS_counter和DTS_counter,并把它们提供给打包电路343。更特别的是,解析电路342转换接收到的基本流成为变长度码,并搜索基本流查找开始码和其它特别数据元素。因为这个分析处理的目的是提取PTS_counter和DTS_counter,分析程序搜寻画面层的开始码,忽略序列和GOP层的开始码。接着分析程序可以通过从流中找到32位user_data_start_code而找到画面层的用户数据区域。然后它搜索“05”的Data_ID,以找到与这个用户数据区域的Picture_order()相关的数据元素。解析电路342分别提取在这个Picture_order()函数的第10到16位和第17到第23位描述的PTS_counter和DTS_counter,并将它们提供给打包电路343。打包电路343从解析电路342接收PTS_counter和DTS_counter,根据该PTS_counter和DTS_counter信息再重新产生PTS和DTS。这个实施例使用PTS_counter自身的值作为PTS值,使用DTS_counter值作为DTS值。
图30显示当该实施例的打包器被使用时产生的最小延迟。图30A显示输入视频数据,图30B显示当输入视频数据被编码时获得的基本流,图30C显示通过使用本实施例的MPEG编码器产生的编码流获得的被打包的基本流和本实施例的打包器。图30A和图30B几乎与图2A和图2B相同。然而,通过比较图2C和图30C可以看出,传统方法产生决定PTS的被打包的基本流。因此,如早先描述的那样,如果存在于I_画面和P_画面之间的B_画面的数目用N表示,则在PTS判断程序中有(N+2)帧的延迟。
本实施例的编码方法和打包方法可把从编码流中判断PTS的处理中产生的延迟限制成一帧的时间。另外,不管存在于I_画面和P_画面之间的B_画面数目是多少,这个延迟都可以保持为一帧的最小延迟。除此之外,当设计一个如图27所示的9通道打包器时,该实施例具有极大的优势,就是允许用九个帧存储器实现这样的打包器。
现在将参考图31对MPEG解码器144A到144D进行描述。每个这种MPEG解码器都包括接收缓存器401、可变长度解码电路402、逆量化电路403、逆DCT电路404、控制器405、运算单元411、运动补偿电路412、存储器413和414、发送缓存器415、基带视频发生电路416和多路复用电路417。
可变长度解码电路402从接收缓存器接收基本流,在其上执行变长度解码操作,以产生由具有预定数据长度的数据元素所构成的流。然后,可变长度解码电路402分析已经经过可变长度解码数据流的句法,再从该数据流中提取所有的编码参数,将它们提供给控制器405。将被叠加到流中的MPEG标准要求的编码参数的例子包括画面类型、运动向量、预测模式、DCT模式、量化尺寸码、量化表信息等。基本上,它们是在用于产生编码流的编码程序中产生的参数。
本实施例的特征是:除了上面描述的MPEG标准特定的编码参数之外,可变长度解码电路402还提取在基本流的用户数据区域被描述为MPEG_ES_Editing_information()的信息。具体地说,被描述为关于V-phase()和H-phase()的信息编码流的序列层的用户数据区域的MPEG_ES_Editing_information(),以及被描述为关于Time_code()、Picture_order()、Ancillry_data()、和History_data()的信息编码流的画面层的用户数据区域的MPEG_ES_Editing_information()。可变长度解码电路402从流中提取关于V-phase()、H-phase()、Time_code()、Picture_order()、Ancillry_data()、和History_data()的信息,并把它提供给控制器405。
逆量化电路403在变长度解码后,根据同样由可变长度解码电路402提供的量化尺寸,逆量化由可变长度解码电路402提供的DCT的系数数据,并把它提供给逆DCT电路404。
逆DCT电路404对由逆量化电路403提供的量化的DCT系数执行逆DCT(离散余弦变换)程序,把它作为经受逆DCT的图像数据提供给运算单元411。如果由逆DCT电路404提供给运算单元411的图像数据是I_画面数据,则它被从运算单元411输出,提供给帧存储器414的前面的预测画面段,存储在这里用于在产生之后将被输入到运算单元411的图像数据(P_画面或B_画面)的预测画面数据。如果由逆DCT电路404提供的图像数据是使用紧接着前一帧作为预测画面数据的P_画面数据,并且如果它是正向预测模式内的数据,该紧接着前一帧的图像数据(I_画面数据)被从帧存储器414的正向预测画面段读取,对应于可变长度解码电路402输出的运动向量在运动补偿电路412内经过运动补偿。然后在由逆DCT电路404提供的图像数据(差分数据)被添加到运算单元411上时,P_画面数据被输出。总和数据,即解码P_画面被提供给帧存储器413的反向预测画面段,并存储在那里用于产生以后将输入到运算单元411的图像数据(P_画面或B_画面)的预测画面数据。即使画面内预测模式数据是P画面数据,它在运算单元411内不被处理,并象I画面数据情况一样,被原样存储在后向预测画面段413中。因为这个P画面将在跟随的B画面之后被显示,在这个时间内它不被输出给格式转换电路32(如上所述,比B画面输入晚的P画面在B画面之前被处理和发送)。如果由逆DCT电路404提供的图像数据是B画面数据,存储在帧存储器414的前向预测画面段的I画面的图像数据,存储在后向预测画面段413的P画面的图像数据(在后向预测模式下),或这两个图像数据一起根据从可变长度解码电路402提供的预测模式被读取(在双向后向预测模式)。然后根据从可变长度解码电路402输出的运动向量,该图像数据在运动补偿电路412中经受运动补偿。产生预测画面。然而,在不需要运动补偿(在画面内预测模式)时没有预测画面产生。已经被运动补偿电路412运动补偿的数据使从逆DCT电路404的输出添加到运算单元411。总输出经发送缓存器415被提供给基带视频发生电路416。从这个发送发送缓存器415输出的视频数据仅包含用于活动视频区域的视频数据,但不提供用于消隐信号间隔或等等的附加数据。
控制器405根据由可变长度解码电路402提供的关于画面类型、运动向量、预测模式、DCT模式、量化尺寸、量化表信息和其它编码参数,控制上述电路的运行。
另外,控制器405根据从可变长度解码电路402提供的作为MPEG_ES_Editing_information()的V-phase和H-phase信息控制基带视频发生电路416。从编码流中提取的V-phase表示在输入视频数据的整个像素区域中的活动视频区域的垂直位置。H-phase表示在输入视频数据的整个像素区域中的活动视频区域的水平位置。因此,控制器405以这样一种模式,即从发送缓存器415输出的解码的视频数据将被映射到由消隐图像的整个像素区域的V-phase和H-phase所表示的垂直和水平位置,或以这样一种模式,即根据由V-phase和H-phase所表示的垂直和水平位置,在整个像素区域的活动区域和消隐图像中合成解码的视频数据来控制基带视频发生电路。结果,从基带视频发生电路416输出的视频数据具有与被提供给MPEG编码器的输入视频数据中的消隐信号间隔完全相同的消隐信号间隔。
控制器405提供从编码流中提取的Ancillary_data、Line_number、Field_ID、Time_code_1、Time_code_2,或根据Field_ID控制用于Ancillary_data、Time_code_1、Time_code_2的多路复用电路417的多路复用处理。具体地说,如参考图7C所描述的,因为Field_ID与指定给每个半帧的Ancillary_data相关,多路复用电路417在由Field_ID识别的消隐信号间隔内叠加与Field_ID相关的Ancillary_data。例如,如果Field_ID是“2”,它可以被看出这是在帧内的第三个半帧。因此,在编码流中,作为与Field_ID“2”相关的附加数据被接收的Ancillary_data被叠加到“2”的Field_ID的第三个半帧的消隐信号间隔时。当叠加Ancillary_data在消隐信号间隔,多路复用电路417在由与Ancillary_data一起发送的Line_number指定的行号上叠加Ancillary_data。
因此,从多路复用电路417输出的视频数据与提供给MPEG编码器的输入视频数据在完全相同的行号、在完全相同的位置的活动视频区域、在完全相同的消隐信号间隔具有完全相同的附加数据。
因此,根据本实施例,任何在从发送系统到接收系统的视频数据发送中执行的MPEG编码或解码将不会引起输入视频数据或添加到输入视频数据的附加数据所固有的信息的丢失。
工业应用性
本发明可用于广播电台或这类视频数据被频繁地编码和解码的地方。

Claims (27)

1.一种用于编码输入视频数据的编码设备,其特征在于包括:
提取部件,用于从输入视频数据中提取被添加进所述输入视频数据的消隐信号间隔中的附加数据;
编码部件,用于在提取附加数据之后编码输入视频数据,以产生编码流;
以及
控制部件,用于控制所述编码部件,以使得插入所述附加数据到所述编码流的画面层中,在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
2.如权利要求1所述的编码设备,其特征在于:
所述控制部件在所述编码流的画面层中的用户数据区中描述所述附加数据。
3.如权利要求1所述的编码设备,其特征在于:
所述控制部件在所述编码流的画面层中的extension_and_user_data(i)中描述所述附加数据。
4.如权利要求1所述的编码设备,其特征在于:
所述控制部件控制所述编码部件,以便在所述输入视频数据的画面层中通过把所述附加数据与所述附加数据被插入到其中的半帧ID关联,来描述所述附加数据。
5.如权利要求1所述的编码设备,其特征在于:
所述控制部件控制所述编码部件,以便在所述输入视频数据中的所述画面层中通过把所述附加数据与所述附加数据被插入到其中的半帧ID以及所述附加数据被插入其中的行的行号关联,来描述所述附加数据。
6.如权利要求1所述的编码设备,其特征在于:
在所述编码流的画面层中,所述输入视频数据的一帧包括多个半帧,并且所述控制部件描述关于每一半帧的所述附加数据。
7.如权利要求1所述的编码设备,其特征在于:
在所述编码流中描述的所述附加数据是已经由可变长度编码模式编码的数据流。
8.如权利要求1所述的编码设备,其特征在于:
所述附加数据是闭路字幕数据和/或图文电视数据。
9.如权利要求1所述的编码设备,其特征在于:
根据由Ancillary_data( )所表示的句法,在所述编码流的画面层中描述所述附加数据。
10.如权利要求1所述的编码设备,其中,所述输入视频数据是已经经过3:2帧移处理的30Hz视频数据,
其特征在于还包括:2:3帧移装置,连接在所述提取部件和编码部件之间,用于对所述输入视频数据执行2:3帧移处理,以产生经过2:3帧移处理的视频数据。
11.如权利要求1所述的编码设备,其特征在于还包括:用于将所述插入到所述编码流中的附加数据与所述编码流一起发送的部件。
12.一种用于编码输入视频数据的编码方法,其特征在于包括以下步骤:
从输入视频数据中提取被添加进所述输入视频数据的消隐信号间隔中的附加数据;
在提取附加数据之后编码输入视频数据,以产生编码流;以及
控制所述编码部件,以使得插入所述附加数据到编码流的画面层中,在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
13.如权利要求12所述的编码方法,,其特征在于还包括下列步骤:
将所述插入到所述编码流中的附加数据与所述编码流一起发送。
14.一种用于编码输入视频数据的编码设备,其特征在于包括:
用于从输入视频数据中提取被添加到输入视频数据的消隐信号间隔的附加数据的部件;
用于通过在提取附加数据之后编码输入视频数据的活动区来产生编码流的部件;以及
用于通过在所述编码流的画面层中对用户数据区中的每一半帧或帧描述所述附加数据,把所述附加数据连同所述编码流一起发送的部件。
15.一种用于编码输入视频数据的编码方法,其特征在于包括下列步骤:
从输入视频数据中提取被添加到输入视频数据的消隐信号间隔的附加数据;
通过在提取附加数据之后编码所述输入视频数据的活动区来产生编码流;以及
通过在所述编码流的画面层中对用户数据区中的每一半帧或帧描述所述附加数据,把所述附加数据连同所述编码流一起发送。
16.一种用于解码通过编码输入视频数据产生的编码流的解码设备,其特征在于包括:
提取部件,用于从所述编码流的画面层中提取附加数据;
解码部件,用于在提取附加数据之后解码该编码流,以产生解码视频数据;
多路复用部件,用于多路复用所述附加数据到所述解码视频数据的消隐信号间隔,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
17.如权利要求16所述的解码设备,其特征在于所述提取部件通过解析所述编码流的句法,从所述编码流的画面层中的用户数据区中提取所述附加数据。
18.如权利要求16所述的解码设备,其特征在于:
在所述编码流中,通过关联所述附加数据来描述所述输入视频数据中要插入附加数据的半帧的半帧ID;以及
所述多路复用部件多路复用所述附加数据到由所述半帧ID指定的半帧。
19.如权利要求16所述的解码设备,其特征在于:
所述附加数据要插入的行的行号,位于通过关联所述附加数据描述于所述编码流中的所述的输入视频数据中;以及
所述多路复用部件多路复用所述附加数据到由所述行号指定的行。
20.如权利要求16所述的解码设备,其特征在于:
所述附加数据已经在所述画面层的Ancillary_data( )中描述。
21.一种用于解码通过编码输入视频数据产生的编码流的解码方法,其特征在于包括以下步骤:
从所述编码流的画面层中提取附加数据;
在提取附加数据之后解码该编码流,以产生解码视频数据;以及
多路复用所述附加数据到所述解码视频数据的消隐信号间隔,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
22.一种用于解码通过编码输入视频数据产生的编码流的解码设备,其特征在于包括:
用于通过解析所述编码流的句法,从所述编码流的画面层中获得所述附加数据的部件;
解码部件,用于在提取附加数据之后解码所述编码流,以产生解码视频数据;以及
用于多路复用所述附加数据到所述解码视频数据,使得所述输入视频数据和所述解码视频数据将具有相同的附加数据的部件,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
23.一种用于解码通过编码输入视频数据产生的编码流的解码方法,其特征在于包括以下步骤:
通过解析所述编码流的句法,从所述编码流的画面层中获得所述附加数据;
在提取附加数据之后解码所述编码流,以产生解码视频数据;以及
多路复用所述附加数据到所述解码视频数据,使得所述输入视频数据和所述解码视频数据将具有相同的附加数据,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
24.一种用于解码通过编码输入视频数据产生的编码流的解码设备,其特征在于包括:
用于从所述编码流的画面层中,获得包含在所述编码流的画面层中的附加数据的部件;
解码部件,用于在提取附加数据之后解码所述编码流,以产生解码视频数据;以及
用于多路复用解码视频数据和所述附加数据,以生成与所述输入视频数据相同的数据的部件,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
25.一种用于解码通过编码输入视频数据产生的编码流的解码方法,其特征在于包括以下步骤:
从所述编码流的画面层中,获得包含在所述编码流的画面层中的附加数据;
在提取附加数据之后解码所述编码流,以产生解码视频数据;以及
多路复用解码视频数据和所述附加数据,以生成与所述输入视频数据相同的数据,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
26.一种译码系统,包括:编码部件,用于编码输入视频数据,以及解码部件,用于接收由所述编码部件编码的编码流,并解码该编码流,以生成解码视频数据,其特征在于:
所述编码部件包括:
编码部件,用于编码所述输入视频数据,以生成编码流,以及
用于把包含在所述输入视频数据中的附加数据插入到所述编码流的画面层的部件;以及
所述解码部件包括:
用于解码所述编码流以生成所述解码视频数据的部件,以及
用于多路复用与所述编码流一起发送的附加数据到所述解码视频数据的部件,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
27.一种译码方法,用于通过使用用于编码所述输入视频数据的编码处理,和用于接收和解码由所述编码处理编码的编码流的解码处理,编码和解码输入视频数据,其特征在于:
所述编码处理包括:
编码所述输入视频数据,以生成编码流的步骤,以及把与所述输入视频数据相关的附加数据插入到所述编码流的画面层的步骤;以及
所述解码处理包括:
解码所述编码流,以生成所述解码视频数据的步骤,以及多路复用与所述编码流一起发送的附加数据到所述解码视频数据的步骤,其中
在所述编码流的画面层中,对用户数据区中的每一半帧或帧描述所述附加数据。
CNB008001073A 1999-02-05 2000-02-04 编码设备和方法、解码设备和方法以及译码系统和方法 Expired - Fee Related CN100393128C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29378/1999 1999-02-05
JP2937899 1999-02-05
JP29378/99 1999-02-05

Publications (2)

Publication Number Publication Date
CN1293868A CN1293868A (zh) 2001-05-02
CN100393128C true CN100393128C (zh) 2008-06-04

Family

ID=12274495

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008001073A Expired - Fee Related CN100393128C (zh) 1999-02-05 2000-02-04 编码设备和方法、解码设备和方法以及译码系统和方法

Country Status (6)

Country Link
US (1) US6671323B1 (zh)
EP (1) EP1069774A4 (zh)
KR (1) KR100420740B1 (zh)
CN (1) CN100393128C (zh)
BR (1) BR0004370A (zh)
WO (1) WO2000046989A1 (zh)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4150083B2 (ja) * 1997-09-25 2008-09-17 ソニー株式会社 符号化ストリーム生成装置及び方法、ならびに編集システム及び方法
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
WO2002009444A1 (en) * 2000-07-21 2002-01-31 Matsushita Electric Industrial Co., Ltd. Signal transmission system
GB2366926A (en) * 2000-09-06 2002-03-20 Sony Uk Ltd Combining material and data
JP2002237973A (ja) * 2001-02-07 2002-08-23 Canon Inc 記録装置、記録方法及び撮像装置
US7982796B2 (en) * 2001-03-21 2011-07-19 Apple Inc. Track for improved video compression
JP4038996B2 (ja) * 2001-04-27 2008-01-30 松下電器産業株式会社 信号処理装置および信号処理方法
US20030005465A1 (en) * 2001-06-15 2003-01-02 Connelly Jay H. Method and apparatus to send feedback from clients to a server in a content distribution broadcast system
US7646816B2 (en) 2001-09-19 2010-01-12 Microsoft Corporation Generalized reference decoder for image or video processing
US8943540B2 (en) 2001-09-28 2015-01-27 Intel Corporation Method and apparatus to provide a personalized channel
WO2003043314A1 (fr) * 2001-11-12 2003-05-22 Matsushita Electric Industrial Co., Ltd. Appareil de recueillement d'images
US7200275B2 (en) 2001-12-17 2007-04-03 Microsoft Corporation Skip macroblock coding
US20030135553A1 (en) * 2002-01-11 2003-07-17 Ramesh Pendakur Content-based caching and routing of content using subscription information from downstream nodes
EP2403265A3 (en) * 2002-04-26 2012-02-01 Sony Corporation Encoding device and method, decoding device and method, editing device and method, recoding medium, and program
US9948977B2 (en) * 2003-01-09 2018-04-17 Avago Technologies General Ip (Singapore) Pte. Ltd. System, method, and apparatus for determining presentation time for picture without presentation time stamp
US7519615B2 (en) * 2002-08-07 2009-04-14 Intel Corporation Characterization of content based on the associated serialized data
US6891421B2 (en) * 2002-12-17 2005-05-10 Intel Corporation Method and apparatus for on die clock shrink burst mode
CN100369481C (zh) * 2003-02-04 2008-02-13 松下电器产业株式会社 代码变换方法及其装置
JP3912536B2 (ja) * 2003-03-25 2007-05-09 ソニー株式会社 記録方法、記録装置、記録媒体、撮像装置および撮像方法
JP4324435B2 (ja) * 2003-04-18 2009-09-02 三洋電機株式会社 立体視用映像提供方法及び立体映像表示装置
JP3817257B2 (ja) * 2003-04-10 2006-09-06 松下電器産業株式会社 情報記録媒体、情報記録媒体に情報を記録する装置及び方法
US8175154B2 (en) * 2003-06-03 2012-05-08 General Instrument Corporation Method for restructuring a group of pictures to provide for random access into the group of pictures
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7961786B2 (en) * 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US8582659B2 (en) 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8345754B2 (en) * 2003-09-07 2013-01-01 Microsoft Corporation Signaling buffer fullness
US8107531B2 (en) * 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
JP4262139B2 (ja) * 2004-06-01 2009-05-13 キヤノン株式会社 信号処理装置
US20050276548A1 (en) * 2004-06-10 2005-12-15 Jiang Fu Transcoding closed captioning data from broadcast DTV onto DVD
CN101005620B (zh) * 2004-09-03 2011-08-10 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
US20060104356A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Timing for decoder buffer examination
JP4820812B2 (ja) * 2005-01-28 2011-11-24 パナソニック株式会社 再生装置、プログラム、再生方法
KR101170799B1 (ko) 2005-05-21 2012-08-02 삼성전자주식회사 영상 압축 방법 및 그 장치와 영상 복원 방법 및 그 장치
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP2007081813A (ja) * 2005-09-14 2007-03-29 Canon Inc 記録装置
US8184660B2 (en) * 2005-09-15 2012-05-22 Lsi Corporation Transparent methods for altering the video decoder frame-rate in a fixed-frame-rate audio-video multiplex structure
US20070092149A1 (en) * 2005-10-24 2007-04-26 Sung Chih-Ta S Method and apparatus of high quality video compression
JP4221676B2 (ja) * 2006-09-05 2009-02-12 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP5062031B2 (ja) * 2008-05-19 2012-10-31 ソニー株式会社 信号処理装置、信号処理方法および信号処理プログラム
US20090295987A1 (en) * 2008-05-30 2009-12-03 Mediatek Inc. Apparatus and Method for Processing a Vertical Blanking Interval Signal
US8879895B1 (en) 2009-03-28 2014-11-04 Matrox Electronic Systems Ltd. System and method for processing ancillary data associated with a video stream
US9129655B2 (en) * 2009-06-25 2015-09-08 Visible World, Inc. Time compressing video content
TWI398159B (zh) * 2009-06-29 2013-06-01 Silicon Integrated Sys Corp 具動態控制畫質功能的幀率轉換裝置及相關方法
CN102148958B (zh) * 2010-02-08 2016-04-20 北京中星微电子有限公司 一种在模拟视频数据中嵌入监控附加信息的方法及系统
US20110202509A1 (en) * 2010-02-16 2011-08-18 Microsoft Corporation Efficient extraction and compression of data
JP5583439B2 (ja) * 2010-03-17 2014-09-03 パナソニック株式会社 画像符号化装置及びカメラシステム
KR101803970B1 (ko) * 2011-03-16 2017-12-28 삼성전자주식회사 컨텐트를 구성하는 장치 및 방법
CN102298953B (zh) * 2011-06-03 2014-04-30 武汉纺织大学 带保护字的二维游程长度受限约束的编解码器及使用方法
US8929290B2 (en) * 2011-08-26 2015-01-06 Qualcomm Incorporated In-band signaling to indicate end of data stream and update user context
US9008308B2 (en) * 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
KR20180019511A (ko) * 2015-03-31 2018-02-26 리얼네트웍스 인코포레이티드 압축된 비디오 비트스트림에 동반 메시지 데이터 포함 시스템들 및 방법들
US10127398B2 (en) 2015-09-18 2018-11-13 Rovi Guides, Inc. Methods and systems for implementing parental controls
JP2023044846A (ja) * 2021-09-21 2023-04-03 キオクシア株式会社 データ伸長装置、データ圧縮装置、及びメモリシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0686250A (ja) * 1992-09-02 1994-03-25 Nec Corp Tv信号伝送装置
US5796441A (en) * 1995-04-27 1998-08-18 Oki Electric Industry Co., Ltd. Video coding and decoding system with teletext capability
US5844615A (en) * 1997-01-16 1998-12-01 General Instrument Corporation Communication of VBI data in digital television data streams

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US574184A (en) 1896-12-29 Compound tube
EP0492528B1 (en) 1990-12-27 1996-10-09 Kabushiki Kaisha Toshiba Recording/reproducing apparatus
JP3196906B2 (ja) 1992-08-21 2001-08-06 富士ゼロックス株式会社 画像信号の符号化装置
US5493339A (en) 1993-01-21 1996-02-20 Scientific-Atlanta, Inc. System and method for transmitting a plurality of digital services including compressed imaging services and associated ancillary data services
JP3163830B2 (ja) 1993-03-29 2001-05-08 ソニー株式会社 画像信号伝送方法及び装置
NL9301358A (nl) 1993-08-04 1995-03-01 Nederland Ptt Transcodeerinrichting.
US5745184A (en) * 1993-08-20 1998-04-28 Thomson Consumer Electronics, Inc. Closed caption system for use with compressed digital video transmission
US5715009A (en) 1994-03-29 1998-02-03 Sony Corporation Picture signal transmitting method and apparatus
US5940130A (en) 1994-04-21 1999-08-17 British Telecommunications Public Limited Company Video transcoder with by-pass transfer of extracted motion compensation data
JPH07298212A (ja) 1994-04-26 1995-11-10 Sony Corp テレシネ装置、画像レート変換装置及び画像圧縮装置
TW377935U (en) * 1994-08-10 1999-12-21 Gen Instrument Corp Dram mapping for a digital video decompression processor
GB9501736D0 (en) 1995-01-30 1995-03-22 Snell & Wilcox Ltd Video signal processing
US5699124A (en) * 1995-06-28 1997-12-16 General Instrument Corporation Of Delaware Bandwidth efficient communication of user data in digital television data stream
US5598415A (en) * 1995-08-04 1997-01-28 General Instrument Corporation Of Delaware Transmission of high rate isochronous data in MPEG-2 data streams
JP3191630B2 (ja) 1995-08-01 2001-07-23 松下電器産業株式会社 ディジタルデータ伝送方法
JP3674726B2 (ja) 1996-03-25 2005-07-20 ソニー株式会社 送信装置及び受信装置並びに送受信装置
WO1998005167A1 (en) * 1996-07-30 1998-02-05 Tiernan Communications, Inc. System and method for digitally encoding and compressing vbi signals
JP3164020B2 (ja) 1996-09-18 2001-05-08 日本ビクター株式会社 デジタルディスク再生装置
US6160587A (en) * 1997-01-16 2000-12-12 Motorola, Inc. Waveform generator for insertion of data into digital television signals
JP4150083B2 (ja) * 1997-09-25 2008-09-17 ソニー株式会社 符号化ストリーム生成装置及び方法、ならびに編集システム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0686250A (ja) * 1992-09-02 1994-03-25 Nec Corp Tv信号伝送装置
US5796441A (en) * 1995-04-27 1998-08-18 Oki Electric Industry Co., Ltd. Video coding and decoding system with teletext capability
US5844615A (en) * 1997-01-16 1998-12-01 General Instrument Corporation Communication of VBI data in digital television data streams

Also Published As

Publication number Publication date
KR100420740B1 (ko) 2004-03-02
CN1293868A (zh) 2001-05-02
WO2000046989A1 (fr) 2000-08-10
BR0004370A (pt) 2000-12-19
KR20010042441A (ko) 2001-05-25
EP1069774A4 (en) 2008-09-17
US6671323B1 (en) 2003-12-30
EP1069774A1 (en) 2001-01-17

Similar Documents

Publication Publication Date Title
CN100393128C (zh) 编码设备和方法、解码设备和方法以及译码系统和方法
US8160134B2 (en) Encoding system and method, decoding system and method, multiplexing apparatus and method, and display system and method
US6621979B1 (en) Trick play signal generation for a digital video recorder using retrieved intra-encoded pictures and generated inter-encoded pictures
EP0944249B1 (en) Encoded stream splicing device and method, and an encoded stream generating device and method
KR100750520B1 (ko) 부호화 스트림 생성 장치 및 방법, 데이터 전송 시스템 및 방법, 편집 시스템 및 방법
CN102396221B (zh) 阻止特技模式操作的支持
US8514938B2 (en) Picture coding apparatus for a still picture sequence and picture decoding apparatus for a still picture sequence
US6741617B2 (en) Arrangement for decoding digital video signals
US6041068A (en) Method and apparatus for multiplexing and transmitting autonomously/intra coded pictures along with the main or I, P, B pictures/video
CN100525443C (zh) 发送和接收动态图像数据的方法及其设备
US6556627B2 (en) Information processing apparatus, information processing method and recording medium
CN1332565C (zh) 利用编码历史信息的编码转换系统
US5534944A (en) Method of splicing MPEG encoded video
US6333950B1 (en) Encoding apparatus and method and computer readable recording medium in which encoding program has been recorded
JP2002077815A (ja) 画像情報の伝送装置、伝送システムおよび伝送方法
US6754273B1 (en) Method for compressing an audio-visual signal
CN101977326B (zh) 一种基于mpeg-2传输流的特技流生成方法
CN100591140C (zh) 一种在视频中显示字幕的方法
CN100473158C (zh) 发送和接收动态图像数据的方法
JP2004328771A (ja) エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体
JP3584460B2 (ja) ビットストリーム変換装置および方法、並びに提供媒体

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080604

Termination date: 20180204

CF01 Termination of patent right due to non-payment of annual fee