专利名称:编辑数据流的方法和装置的制作方法
技术领域:
本发明涉及编码数据流的编辑和这些数据流的元接缝播放,特别是诸如MPEG层III(MP3)数据流的音频数据流。
MPEG-1和MPBG-2层III格式(简称MP3,正式名称分别是ISO/IEC11172-3和ISO/IEC 11818-3)被普遍用来代表压缩的音频信息。
MP3音频信息是在包含按特定间隔的字头的数据流中传送的。每个字头和用来以压缩形式描述预定数量音频数据采样的一帧相联系。字头指示这一帧中数据的有关信息,例如是这一帧中数据的采样频率和比特率。
连续字头之间的间隔是字头中信息的预定函数。然而,代表一帧所需的实际位数与字头之间间隔内的有效空间会有偏差。这可能是因为MP3播放器包含所谓的短期缓冲器,来自缓冲器的帧需要更多位才能按照一定的音频质量等级读出需要较少的位就能达到该质量等级的帧中没有使用的位。
为了应付这些偏差,MP3允许帧相对于字头按可变的偏移开始。这样,前面的帧在字头之间留下的空间就可供后续帧使用。MP3具有与各个字头相联系的指针。用指针指示与字头相联系的一帧数据相对于字头位置的起点。这样,一帧的数据流就在能超前相应字头在前一帧留下的空间内的一个可变位置上开始。这样,数据相对于字头的起始位置就取决于按数据流编码的音频内容。
目前发现指针会妨碍对MP3执行编辑和编辑后轨迹的无接缝重放。如果必须将音频流拆分成轨迹,例如是为了便于用户访问长篇音乐中的不同部分,每个轨迹的初始部分通常是无效的,因为它包含用来回顾前一轨迹的一或多个字头。实践中会导致在轨迹边界处中断重放。这样就无法实现不同轨迹间一个接一个地无接缝重放。
因而就需要用相对复杂的解码器来支持编辑和/或无接缝重放。极端情况下可能需要在执行这些功能之前对数据解压缩,在复杂性和质量上有许多不足。
发明概述总而言之,本发明的目的是在诸如MP3流等数据流的链接上提供无接缝重放。
本发明提供了一种数据流的编辑方法,数据流包括彼此交替的字头和信号数据,每个字头规定了与下一字头的距离,每个字头对应着信号数据的一帧,和字头相联系的一个指针指示与该字头有关的那一帧信号数据的起始点,该方法包括-接收一个指令,它规定了在输入数据流中的一个字头,规定的字头对应着信号中必须被用作轨迹起点的一个位置;-从数据流中提取轨迹,它包括数据流中由规定的字头所指并领先于规定的字头的那一部分;-向媒体写入所述类型的一个新数据流,新数据流包含上述字头作为第一有效字头,且数据流的上述部分在输入数据流中领先于规定的字头。
产生的新MP3型数据流包括数据流中从第一有效字头前的一点开始的引导部分,诸如MP3解码器等解码器的编码能够对与第一有效字头相联系的信号数据解码。在一个实施例中,在初始字头(其指针被设置为零)之后移动引导数据并修改这一字头,在它与下一字头之间产生更大的空间来容纳被移动的数据。在MP3数据流中,最好是修改第一字头的比特率来产生这一空间。
在另一个实施例中,新产生的数据流包含处在第一有效字头前面的数据,如果与该字头相联系的指针回指到该字头前面的位置,第一有效字头就能够回指。如果使引导部分中的字头相联系的指针回指到引导部分前面,或者是在字头中包括无效信息,就能使引导部分中的字头都无效。
引导部分所具有的预定长度应该等于第一有效字头的指针能够回指的最大可能距离。
本发明还提供了包含允许无接缝重放的数据流的媒体。
以下要按照附图详细解释按照本发明的方法,装置和媒体的上述及其他方面的目的和优点。
图1表示一种MP3解码系统;图2表示MP3数据流的一个例子;图3表示一种编辑系统;图4表示轨迹的例子;
图5表示轨迹的另一个例子;图6表示轨迹的结尾部分。
以下以MPEG-1层III为例解释本发明。然而,同样的原理可用于MPEG-2层III,其中有一些常数具有不同值。
图1表示现有技术的MP3解码系统。该系统包含的MP3源10向数据流解码器16提供信号。MP3源10例如是包含用来存储MP3数据的存储媒体(未示出)和从存储单元中读出数据的读出单元(未示出),另一例MP3源10包含与通信信道(例如是Internet或无线电广播)的接口和用来输出接收的MP3数据流的一个输出。
数据流解码器16含一个缓冲存储器160,其输入耦合到MP3源10,一个字头检测器162和一个帧解码器164。字头检测器的输入耦合到缓冲存储器160。帧解码器164的输入耦合到字头检测器162和缓冲存储器160,还有一个解码的音频输出。
图2表示一例MP3数据流。数据流包含许多字头20a-f,字头的回指针21a-f指向帧的起点24a-e。用从回指针21a-f所联系的字头回指向回指针21a-f所指的起点24a-e的箭头表示回指针21a-f。
每个字头20a-f对应着一帧压缩的音频数据。字头20a-d后面的回指针21a-f指示数据在该帧中起点24a-e的(字头是附属信息不计算在指针内)。回指针21a-f可以是零,在这种情况下起点24a-e直接跟在字头20a-f后面。
在回指针前面的MP3字头部分的格式如表I中所示。
表IMP3字头的格式“同步字”是一种规定的位图,便于在数据流中识别字头20a-d。ID,层,专用位,模式,模式扩展,版权,原始/复制和加重场是MP3所规定的,与本发明无关。保护位指示在字头后面有没有一个16位CRC字(Cyclic Redundancy Check;由一个CRC16多项式确定)。在选择的CRC字后面是九位数的回指针21a-d(也被称作“main_data_begin”),它指示各帧24a-e的起始字节从回指针21a-d(不算字头字节,CRC字和附属信息)的位置退回多少(8位)字节。
字头的比特率指数场包含可能比特率的表的入口指针。在表Ia中表示了有效比特率和对应的比特率指数
表Ia,比特率指数值和对应的比特率采样频率场指示数据采用的采样频率。表Ib中表示了有效采样频率
表Ib,采样频率代码和对应的采样频率比特率和采样频率共同确定了从该字头起点到下一字头起点的距离。按(8位为单位的)字节的距离是由R值确定的,其中R=144*bit_rate/samping_frequency。
(数字144是为MPEG层III规定的)。
在操作中,MP3源10如图2所示产生一MP3数据流。来自这一数据流的信息被存储在数据流解码器16的缓冲存储器160中。字头检测器162通过检测字头的同步字初步确定数据流起点的字头位置。随后,字头检测器162用当前字头中包含的信息由比特率指数场中计算到数据流中后续字头的距离,字头的采样频率场和填充位。字头检测器162由这一距离计算出下一字头在缓冲存储器160中的存储地址,并且读出下一字头等等。字头检测器162检查在计算的位置上是否存储了正确的同步字。如果不是,就存在误差,而字头检测器必须处理这一误差状态并且必须在执行解码之前确定下一有效字头的位置。
字头检测器162将字头所存储位置的地址传送给帧解码器164。帧解码器164用这一地址确定与该字头相联系的回指针的存储地址,检索这一回指针并且用回指针计算与该字头相联系的一帧的存储起点地址。帧解码器164用这一地址从该帧中检索数据,以便对音频信号解码。
图3示出一种编辑系统。该编辑系统包括第一媒体30,编辑装置32和第二媒体38。编辑装置32包括一控制单元34和一个数据流处理器36。数据流处理器36被耦合在第一媒体30和第二媒体38之间。控制单元34的控制输入33被耦合到数据处理器36和第一媒体30。
在工作中,编辑系统在第二媒体38中产生新构造的数据流(轨迹)。新构造的数据流(轨迹)是这样构成的,尽量方便用MP3解码器解码来构成新数据流。系统(在控制单元32的控制下)能够在第二媒体38(例如是一个File Access Table(FAT))上产生一种文件结构,为第二媒体上的各个轨迹提供入口,例如是利用一个指针表指向第二媒体38中轨迹的起点位置。
编辑系统从第一媒体30(它可以是一种(磁-)光存储盘,一个磁带,一个Internet出口等等)读出数据流。编辑系统提取数据流的一部分并且将其作为新定义的轨迹写入第二媒体38。新产生的轨迹结构能够用常规的MP3解码器解码。第二媒体38可以和第一媒体是同一个,或是任何类型的一个独立媒体。从第一媒体30中不是作为单个轨迹的完整内容的一个较大的数据流中提取新定义轨迹中的数据。
控制单元32在其输入33上接收一个选择信号,它指示新第一轨迹的第一字头在来自第一媒体的数据流中的位置。通过这一选择,控制单元32选择数据流中比第一字头领先预定位数的那一部分的起点。控制单元32指令数据流处理器36由这一起点或是从该起点前面的一个位置开始从第一媒体30读出数据流。另外,控制单元32指令数据流处理器36由这一起点开始向第二媒体38写入预定位数的数据。该数据对应着来自第一媒体30的数据流中第一字头之前的预定部分。至少从第一字头的回指针所指的位置起从来自第一媒体30的数据流(在该位置之前可以包括缺省数据,或可以从数据流复制数据)复制这一数据。同样,控制单元32指令数据流处理器36从写入到第二媒体38的数据流中消除第一字头之前的所有字头。或者是使这些字头无效,例如是确保这些字头中对信号数据的回指针指向数据流中没有被传送给第二媒体38的那一部分,尽管在解码器对字头译码错误时这样会招致一定的风险。由此在第二媒体38中产生一个轨迹,它包含第一有效字头前面的信号数据,在提供给数据流解码器16时,对该轨迹的解码就会从与第一有效字头相联系的数据开始。不需要相对于字头移动数据,也不需要为产生新轨迹而调节字头之间的空间。
要选择预定的位数,使其横跨第一有效字头中的回指针可能回指的最大距离。以MP3的情况为例,要选择至少691字节的预定距离,因为MP3中的回指针最多能够回指691字节,但是也能采用较大的预定距离。
数据流的起点上一般都不包含字头。这不成问题。但在必要时可以安排数据流处理器36在起点写入一个有效字头。然而,这一要求对编辑装置增加了复杂性。同样,可以安排数据流处理器36将数据限制到第一有效字头的回指针所指的那一点。但是这样也会增加复杂性。
图4表示按这种方式由数据流中新产生的轨迹40a-d的许多例子。按垂直排列表示这些轨迹的起点41a-d。这些轨迹中的第一个40a对应着图2中所示的那部分数据流,其中的第一有效字头44a等于来自图2中数据流的第三字头20c。如图所示,与该字头相联系的数据从第一有效字头20c之前所包括的轨迹40a的引导部分42a开始。同样,其他轨迹40b-d在其第一有效字头44b-d之前都包含引导部分42b-d。以图中所示的轨迹40b为例,它具有零回指针45。在这种情况下不需要引导部分42b,但是为避免间接确定仍包括一个没用的引导部分42b。以另一个轨迹40d为例,图中所示其引导部分42d中包含一字头46,但这一字头无效,因为与其相联系的回指针回指超过了轨迹40d的引导部分42d的起点。然而,最好是消除引导部分42d中的所有字头(必要时相应地更新第一字头的回指针)。
解码器16能够为图4所示的所有轨迹40a-d解码。解码器16将引导部分40a-d加载到存储器中,但是仅仅从第一有效字头44a-d开始对数据解码,因为这是轨迹中的第一有效字头。早期的字头如果有也会被跳过,因为回指向其相应数据点的回指针已经超过了该轨迹的起点。
图5表示另一种编辑的数据流。编辑的数据流包含字头60,63,64,65,字头60,63,64,65之间的信号数据,和信号数据的回指针。在原始数据流中,前面有具体字头60的帧数据61构成原始数据流中回指针所指的一个位置,它被移动到编辑数据流中字头60之后的一个位置。这样,原来存储在字头之前的那一部分61和原来存储在字头之后的那一部分62就在字头之后被组合了。
要相对于原始数据流修改字头60中的比特率指数,使字头60为下一字头63指出比原始数据流中更大的距离。要选择被修改字头60中的比特率,使得这一距离足够,为具体字头60和原始数据流中下一字头之间所包括的数据再加上已被移动到这些字头之间位置上的帧数据61获得空间。给定的比特率是其可能的最大值,或者至少是能使距离大过需求的一个值。业已发现在MP3中始终有可能产生足够的距离。一般来说,该距离是精确地对应着所需的空间量,但是会大于实际需要。产生的多余空间用虚拟数据来填充。
图6表示由编辑系统产生的另一轨迹50的尾部。该轨迹对应着图2中数据流的前部,而结束于图4或5中第一轨迹40a的第一有效字头的位置。
解码器16用某种接入信息例如是文件接入表(FAT)接入轨迹。这种FAT包含指向轨迹起点例如是起点41a-d的指针。
在MP3解码器读出图6的轨迹并且随后将图4或5中的第一个轨迹40a提供给解码器16时,解码器16会对应着图2的数据流对数据无接缝地解码。在这种情况下,解码器16首先接收图6的轨迹50,包括不会被使用的尾部,因为尾部52接在轨迹中最后一个有效字头54的数据后面,并且没有被轨迹50中任何后续的有效字头指定。接着,解码器16接收轨迹40a中领先的引导部分42a,但是仅仅从在轨迹40a中遇到的第一有效字头44a起解码。这样,对应着图5轨迹中最后字头54的数据后面就紧接着对应着后续轨迹中第一有效字头44a的数据。这些字头对应着原始数据流(图2)中的连续字头20c,d。
解码器16也能紧接着图6的轨迹不间断地对图4或5中其他的轨迹40b-d解码。第一有效字头44a-d的数据从哪里开始都没有关系。
应该指出上述实施例都只是为了说明而并非限制本发明,本领域的技术人员无需脱离附带权利要求书的范围就能设计出各种各样的实施例。在权利要求书中,被置于圆括号之间的任何符号都不应构成对权利要求的限制。所说的“包括”并不排除权利要求中列举之外的其他元件或步骤的存在。本发明可以利用包括若干独立元件的硬件来实现,也可以用适当编程的计算机来实现。在产品权利要求中列举了若干种装置,其中某些装置可以用硬件来体现。在彼此不同的从属权利要求中仅仅叙述了某些措施,并不能说明这些措施的组合没有好处。
权利要求
1.一种数据流的编辑方法,数据流包括彼此交替的字头(20a-f)和信号数据,每个字头(20a-f)规定了与下一字头(20a-f)的距离,每个字头对应着信号数据的一帧,和字头相联系的一个指针(21a-e)指向与该字头(20a-f)有关的那一帧信号数据的起始点(24a-e),该方法包括-接收一个指令,它规定了在输入数据流中的一个字头(20a-f),规定的字头对应着信号中必须被用作轨迹起点的一个位置;-从数据流中提取轨迹,它包括数据流中由规定的字头(20a-f)所指并领先于规定的字头的那一部分(42a-d,61)数据流;-向媒体写入所述类型的一个新数据流(40a-d),新数据流(40a-d)包含上述字头(44a-d,60)作为第一有效字头,且数据流的上述部分(42a-d,61)在输入数据流中领先于规定的字头(44a-d)。
2.按照权利要求1的方法,其特征是在所述类型的数据流中用比特率指示和采样频率指示规定距离,该方法包括-接着上述字头(60)将数据流的上述部分(61)写入媒体;-按修改的形式将上述字头(60)写入媒体,修改字头(60)中的比特率指示以便修改字头(60)与后续字头(63)之间的距离,用来容纳数据流(61)的上述部分外加来自原始数据中该字头(60)与后续字头(63)之间的额外数据(62)。
3.按照权利要求1的方法,其特征是包含上述部分的字头(42a-d)从领先于规定字头(44a-d)的轨迹(40a-d)开始被写入媒体,具有预定长度的引导(42a-d)与字头(44a-d)无关,引导(42a-d)包含来自数据流的数据复本,它至少来自与规定字头(44a-d)相联系的指针所指的一个位置。
4.按照权利要求3的方法,其特征是禁止或消除比引导中的规定字头领先的在先字头。
5.一种数据流的编辑装置,数据流包括彼此交替的字头和信号数据,每个字头规定了与下一字头的距离,每个字头对应着信号数据的一帧,和字头相联系的一个指针指向与该字头有关的那一帧信号数据的起始点,该装置包括-用来接收数据流的一个输入;-用来接收指令的一个输入,指令中规定了在输入数据流中的一个字头必须被用作一个轨迹的起点;-从数据流中提取轨迹的提取单元,它包括数据流中领先于规定的字头并且被该字头所指的那一部分;-向一个输出写入所述类型的一个新数据流的写入单元,新数据流包含上述字头作为第一有效字头和数据流的上述部分。
6.按照权利要求5的装置,其特征是在所述类型的数据流中用比特率指示和采样频率指示规定距离,该写入单元被安排用来-接着上述字头将上述数据写入媒体;-按修改的形式写入上述字头,修改字头中的比特率指示以便修改该字头与后续字头之间的距离,用来容纳数据流的上述部分外加来自原始数据中该字头与后续字头之间的额外数据。
7.按照权利要求5的装置,其特征是向媒体写入预定长度的上述部分,该预定长度与数据流的内容无关。
8.按照权利要求7的装置,其特征是包括禁止或消除比引导部分中的规定字头领先的在先字头。
9.一种携带数据流的机读媒体,数据流包括彼此交替的字头和信号数据,每个字头规定了与下一字头的距离,每个字头对应着信号数据的一帧,和字头相联系的一个指针指向与该字头有关的一个起始点,该起始点指示该字头的信号数据起点,该媒体包括-指向媒体中上述数据流起点的信息,在数据流的起点处在初始有效字头之前包括一定量的信息,它包含与初始有效字头相联系的指针所指的信号数据。
10.按照权利要求9的媒体,其特征是该一定量的信息包括一或多个无效字头。
11.按照权利要求12的媒体,其特征是包括音频信号的第一和第二轨迹,第一和第二轨迹共同代表音频信号的一个连续部分,数据流对应着第二轨迹,对应着另一个上述类型的数据流的第一轨迹在其结尾包括另一数据流中有效字头的所有以往信号数据,它是初始有效字头所指的上述信号数据的副本。
12.一种携带数据流的媒体,数据流包括彼此交替的字头和信号数据,每个字头规定了与下一字头的距离,每个字头对应着信号数据的一帧,和字头相联系的一个指针指向与该字头有关的一个起始点,该起始点指示该字头的信号数据起点,在所述类型的数据流中利用比特率指示和采样频率指示规定了距离,该媒体包括第一字头和随后的字头,第一字头的比特率指示比随后的字头要高。
全文摘要
MP3解码器对MP3数据流解码,数据流包括彼此交替的字头和信号数据,每个字头规定了与下一字头的距离,每个字头对应着信号数据的一帧,和字头相联系的一个指针指向与该字头有关的那一帧信号数据的起始点。编辑系统从现有数据流中截取轨迹。在编辑过程中,由用户提供对应着所需轨迹起点的一个字头。来自数据流的轨迹包括由该字头所指并领先于规定字头的那部分数据流。向媒体写入一个新的MP3兼容数据流。新数据流包含上述字头作为其第一有效字头和数据流中领先于该字头的上述部分。
文档编号G11B20/10GK1463442SQ02802121
公开日2003年12月24日 申请日期2002年4月12日 优先权日2001年4月20日
发明者A·W·J·奥梅, L·M·范德克克霍夫, F·F·M·滋德韦尔德 申请人:皇家菲利浦电子有限公司