控制mp3解码器的输入数据缓冲器的方法及装置的制作方法

文档序号:6760401阅读:182来源:国知局
专利名称:控制mp3解码器的输入数据缓冲器的方法及装置的制作方法
技术领域
本发明关于一种控制数据缓冲器的方法及装置,并且特别关于管理MP3解码器的输入数据缓冲器的方法及装置。
背景技术
MP3(MPEG Layer III)音频信号标准是一种目前被广泛使用的音频格式。请参阅图1。图1为一标准MP3音频帧(audio frame)10的内容示意图。首标块(header)12中包含了音频帧10的基本数据,例如MPEG的种类、错误检查码、取样频率及位率;侧边信息块(side information)14中记录的则是要将音频帧10解码时需要参考的相关信息,例如逆量化(re-quantization)信息和霍夫曼解码(Huffman decoding)信息。主要数据块(main data)16是用来存储真正的音频数据。此外,使用者可自行在补充数据块(ancillarydata)18中记录与音频帧10相关的信息,例如演唱者和歌曲名称。
虽然每一个音频帧10的大小是固定的,每一个主要数据块16的大小也是固定的,但是每一个音频帧10所对应的音频数据的长度却未必相同;可能有些音频数据的长度会大于主要数据块16所能容纳的最大限制,也可能有些音频数据的长度小于主要数据块16所能容纳的最大限制。为了提升整体的存储效率,使用者在产生音频帧10时可采用位存储(bit reservoir)的机制,使得每一个音频帧10所对应的音频数据可选择性地被存储在其他音频帧10的主要数据块16中。
在采用位存储机制之后,由于某一音频帧10所对应的音频数据未必会存储在该音频帧10本身的主要数据块16中,侧边信息块14中还必须进一步包含一起始指标(通常被标示为main_data_begin),用来指出该音频帧10所对应的音频数据实际存储的起始位置。
请参阅图2。图2表示一个采用位存储机制的音频帧范例,并且包含了四个连续的音频帧第一音频帧21、第二音频帧22、第三音频帧23、第四音频帧24。每一个音频帧都各自包含一个首标及侧边信息块A和一个主要数据块B(补充数据块未显示于图中)。如图2所示,由于第一音频帧21所对应的音频数据的长度小于主要数据块21B的容量,有一部分的主要数据块21B用以存放第二音频帧22所对应的音频数据。同样的,第二音频帧22的主要数据块22B同时存储了第三音频帧23所对应的音频数据和第四音频帧24所对应的音频数据的一部分。
请参阅图3。图3表示一MP3解码器30的结构图。MP3解码器30包含一音频帧分析器31、一侧边信息缓冲器32、一主要数据缓冲器33和一音频帧解码器34。MP3解码器30接收一音频帧后,音频帧分析器31负责搜寻该音频帧的开头、计算该音频帧的长度,并且将该音频帧中的侧边信息和主要数据分别传送给侧边信息缓冲器32和主要数据缓冲器33。接着,再由音频帧解码器34根据侧边信息缓冲器32和主要数据缓冲器33中的数据将该音频帧解码。
在采用位存储机制的情况下,正在被解码的那个音频帧所对应的音频数据有可能全部或部分地被存放在其他先前的音频帧中。遇到这样的情况时,现有的MP3解码器大多是回头再次读取之前的音频帧,以取得该音频帧所对应的音频数据;然而,这种非正常的读取方式相当浪费处理时间。也有某些先前技术为了降低必须回头再次读取先前的音频帧的次数,大幅增加主要数据缓冲器33的容量,同时在主要数据缓冲器33中存放全部或大量的音频帧;这种方式的缺点在于会耗费大量的存储空间。

发明内容
为解决上述问题,本发明提供一种管理一音频解码器的主要数据缓冲器的方法及装置。该音频解码器用以将包含有N个音频帧的一音频位流(audiobit stream)解码。该主要数据缓冲器为一包含有M个存储器单元的存储器,并且用以暂时性地存储该音频位流中的至少一音频帧。该N个音频帧中的第i个音频帧包含一第i主要数据块,并且该第i主要数据块的大小等同于Si个存储器单元的大小,其中Si为一小于等于M的正整数,i为一范围在1至N之间的整数指标,N与M皆为正整数。假设已知该存储器中的第L(i-1)个存储器单元为用以存储该第(i-1)主要数据块的最后一个存储器单元。
根据本发明的一较佳具体实施例为一管理该存储器的方法。该方法首先接收该第i个音频帧中的该第i主要数据块,并判断判断Si是否大于一第i参考值。接着,该方法根据该判断结果以及M、Si、L(i-1),由该M个存储器单元中选择一第i组存储器单元用以存储该第i主要数据块,再将该第i主要数据块存储至该第i组存储器单元中。
根据本发明的另一较佳具体实施例为一管理该存储器的装置。该装置包含一接收模块、一判断模块、一选择模块和一存储模块。该接收模块用以接收该第i个音频帧中的该第i主要数据块。该判断模块连接至该接收模块并且用以判断Si是否大于一第i参考值。该选择模块根据M、Si、L(i-1)以及该判断模块的判断结果,由该M个存储器单元中选择一第i组存储器单元用以存储该第i主要数据块。该存储模块则是用以将该第i主要数据块存储至该第i组存储器单元中。
关于本发明的优点与精神可以通过以下的详述及附图得到进一步了解。


图1为一标准MP3音频帧的内容示意图。
图2表示一采用位存储机制的音频帧范例。
图3表示一MP3解码器的结构图。
图4(A)、(B)、(C)为在根据本发明的存储器中存储音频帧的主要数据块的范例。
图5表示根据本发明的第一较佳具体实施例的管理方法的流程图。
图6表示将根据本发明的第二较佳具体实施例的管理装置60结合于MP3解码器30的方块图。
主要元件符号说明10音频帧 12首标块14侧边信息块 16主要数据块18补充数据块21第一音频帧 22第二帧23第三音频帧 24第四音频帧21A、22A、23A、24A首标及侧边信息21B、22B、23B、24B主要数据块30MP3解码器 31音频帧分析器32侧边信息缓冲器 33主要数据缓冲器
34音频帧解码器40存储器42存储数据的方向 S51-S55步骤流程60管理装置60A接收模块60B判断模块 60C选择模块60D存储模块 62主要数据缓冲器具体实施方式
本发明的一主要目的在于提供一种管理MP3解码器的输入数据缓冲器的方法及装置。根据本发明的方法及装置利用一循环式存储器(circular inputbuffer,CIB)的概念来管理MP3解码器的主要数据缓冲器。
假设该MP3解码器用以将包含有N个音频帧的一音频位流解码。该主要数据缓冲器为一包含有M个存储器单元的存储器,并且用以暂时性地存储该音频位流中的至少一音频帧。该N个音频帧中的第i个音频帧包含一第i主要数据块,并且该第i主要数据块的大小等同于Si个存储器单元的大小,其中Si为一小于等于M的正整数,i为一范围在1至N之间的整数指标,N与M皆为正整数。此外,已知该存储器中的第L(i-1)个存储器单元为用以存储该第(i-1)主要数据块的最后一个存储器单元。
图4为在根据本发明的存储器中存储音频帧的主要数据块的范例。存储器40于存储数据时沿着箭头42所示的方向依序将数据存入各存储器单元中。如图4(A)所示,在该第i主要数据块被存储至存储器40前,该第(i-1)个音频帧的第(i-1)主要数据块存储于存储器40的第(L(i-2)+1)个至第L(i-1)个存储器单元中。如发明背景中所述,在采用位存储机制的情况下,该第i个音频帧对应于一第i音频数据,而该第i音频数据未必完全存储在该第i个音频帧的该第i主要数据块。因此,该第(i-1)主要数据块中除了包含该第(i-1)个音频帧本身所对应的第(i-1)音频数据外,还同时包含该第i个音频帧所对应的第i音频数据的一部分。
图4(A)中的第(i-1)起始指标(beginning index)B(i-1)用以表示该第(i-1)音频数据与该第(i-1)主要数据块之间的一相对关系。在此范例中,B(i-1)等于零,表示该第(i-1)音频数据的起始位置与该第(i-1)主要数据块的起始位置相同。
当该MP3解码器开始将该第i个音频帧所对应的该第i主要数据块存入存储器40时,根据本发明的方法及装置首先判断该第i主要数据块的大小(即Si)是否大于一第i参考值。该第i参考值等于L(i-1)与M之间的差,也就是该第(i-1)主要数据块的结束位置到存储器40的尾端的距离。若Si小于该第i参考值,表示该第(i-1)主要数据块的结束位置到存储器40的尾端中间的存储器单元足够以存储该第i主要数据块。在这样的情况下,根据本发明的方法及装置会将该第i主要数据块接续在该第(i-1)主要数据块之后,也就是将该第i主要数据块存入存储器40中的第(L(i-1)+1)个至第(L(i-1)+Si)个存储器单元。
图4(B)表示Si大于该第i参考值的情况。若Si大于该第i参考值,表示该第(i-1)主要数据块的结束位置到存储器40的尾端中间的存储器单元不足够以存储该第i主要数据块。在这样的情况下,根据本发明的方法及装置会将该第i主要数据块切割为两个部份(如图4(B)所示的第i主要数据块I与第i主要数据块II),并且将这两个部份分别存储在该存储器中的第(L(i-1)+1)个至第M个存储器单元以及第1个至第(SiM+L(i-1))个存储器单元。同样地,该第i主要数据块同时包含了该第i个音频帧本身所对应的第i音频数据和第(i+1)个音频帧对应的第(i+1)音频数据。
如图4(B)所示,该第i音频数据有一部分位于该第(i-1)主要数据块中,另一部分位于该第i主要数据块I中。当该MP3解码器要求由存储器40中提取该第i音频数据时,根据本发明的方法及装置即可根据第i起始指标Bi和L(i-1)找出该第i音频数据在存储器40中的起始位置。
由于该第i音频数据位于该第(i-1)主要数据块中的那一部分仍存储在存储器40中,并且由于根据本发明的存储器40为一循环式存储器(CIB),在找出该第i音频数据的起始位置后,该MP3解码器可由存储器40中循序提取出该第i音频数据,无须如某些先前技术必须重新将该第(i-1)主要数据块存入存储器40才能提取存储于该第i音频数据位于该第(i-1)主要数据块中的那一部分。理论上,在开始提取该第i音频数据之前,存储器40中用以标记前一次提取数据的结尾的指标(pointer)停留在该第(i-1)音频数据的结束位置,因此,该MP3解码器可直接由该第(i-1)音频数据的结束位置开始提取该第i音频数据。另一方面,本发明的另一优点在于存储器40的大小只需要足以容纳该音频位流中一音频数据可能的最大值;相较于某些先前技术,本发明可大幅降低存储器的成本。
在存入该第i主要数据块之后,后续的音频帧的各主要数据块可依序被存入存储器40中。图4(C)表示存入第(i+1)主要数据块后的存储器40。如图4(C)所示,若确定该第i音频数据已被该MP3解码器提取并成功地被解码,该第(i+1)主要数据块即可被覆写(over-write)于先前存储该第(i-1)主要数据块的存储器单元中。
图5表示根据本发明的第一较佳具体实施例的管理方法的流程图。该方法首先执行步骤S51,接收该第i个音频帧中的该第i主要数据块。步骤S52判断Si是否大于一第i参考值。如果步骤S52的判断结果为是,该方法则执行步骤S53,选择第(L(i-1)+1)个至第M个存储器单元以及第1个至第(SiM+L(i-1))个存储器单元作为用以存储该第i主要数据块的一第i组存储器单元。如果步骤S52的判断结果为否,该方法即执行步骤S54,选择该存储器中的第(L(i-1)+1)个至第(L(i-1)+Si)个存储器单元作为用以存储该第i主要数据块的一第i组存储器单元。步骤S55则是将该第i主要数据块存储至该第i组存储器单元中。
根据本发明的第二较佳具体实施例为用以管理存储器的一管理装置60。图6表示将该管理装置60结合于图3的MP3解码器30的方块图。此外,根据本发明,图6中的主要数据缓冲器62为一包含M个存储器单元的存储器。管理装置60包含一接收模块60A、一判断模块60B、一选择模块60C与一存储模块60D。接收模块60A用以接收由音频帧分析器31传送来的该第i个音频帧中的该第i主要数据块。判断模块60B连接至接收模块60A并且用以判断Si是否大于一第i参考值。选择模块60C根据M、Si、L(i-1)以及判断模块60B的判断结果,由该M个存储器单元中选择一第i组存储器单元用以存储该第i主要数据块。存储模块60D用以将该第i主要数据块存储至由选择模块60C选出的该第i组存储器单元中。侧边信息缓冲器32亦连结至管理装置60,以提供侧边信息块所包含的该第i起始指标Bi。
于实际应用中,管理装置60可进一步包含一寻找模块。当音频帧解码器34要求由主要数据缓冲器62中提取该第i音频数据时,该寻找模块根据该第i起始指标Bi和L(i-1)找出该第i音频数据在主要数据缓冲器62中的一起始位置。
通过以上较佳具体实施例的详述,希望能更加清楚描述本发明的特征与精神,而并非以上述所公开的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具等效性的安排于本发明所欲申请的权利要求的范畴内。
权利要求
1.一种管理一装置中的一存储器的方法,该装置用以将一音频位流解码,该音频位流包含N个音频帧,该存储器包含M个存储器单元并且用以暂时性地存储该音频位流中的至少一音频帧,N与M皆为正整数,该N个音频帧中的第i个音频帧包含一第i主要数据块,该第i主要数据块的大小等同于Si个存储器单元的大小,Si为一小于等于M的正整数,i为一范围在1至N之间的整数指标,该存储器中的第L(i-1)个存储器单元为用以存储该第(i-1)主要数据块的最后一个存储器单元,该方法包含下列步骤(a)接收该第i个音频帧中的该第i主要数据块;(b)判断Si是否大于一第i参考值;(c)根据M、Si、L(i-1)以及步骤(b)的判断结果,由该M个存储器单元中选择一第i组存储器单元用以存储该第i主要数据块;以及(d)将该第i主要数据块存储至该第i组存储器单元中。
2.如权利要求1所述的方法,其中该第i参考值等于L(i-1)与M之间的差。
3.如权利要求2所述的方法,其中如果步骤(b)的判断结果为否,则该第i组存储器单元包含该存储器中的第(L(i-1)+1)个至第(L(i-1)+Si)个存储器单元。
4.如权利要求2所述的方法,其中如果步骤(b)的判断结果为是,则该第i组存储器单元包含该存储器中的第(L(i-1)+1)个至第M个存储器单元以及第1个至第(Si-M+L(i-1))个存储器单元。
5.如权利要求1所述的方法,其中该第i个音频帧对应于一第i音频数据,并且该第i主要数据块选择性地包含该第i音频数据至该第N个音频数据中的至少一批音频数据。
6.如权利要求5所述的方法,其中对应于该第i音频数据的一第i起始指标Bi预先提供,并且用以代表该第i音频数据与该第i主要数据块之间的一相对关系。
7.如权利要求6所述的方法,该方法进一步包含下列步骤(e)当该装置要求由该存储器中提取该第i音频数据时,根据该第i起始指标Bi和L(i-1)找出该第i音频数据在该存储器中的一起始位置。
8.如权利要求7所述的方法,其中该第i音频数据的该起始位置为该存储器中的第(L(i-1)+Bi)个存储器单元。
9.如权利要求1所述的方法,其中该装置为一MP3解码器。
10.一种管理一音频解码器中的一存储器的装置,该音频解码器用以将一音频位流解码,该音频位流包含N个音频帧,该存储器包含M个存储器单元并且用以暂时性地存储该音频位流中的至少一音频帧,N与M皆为正整数,该N个音频帧中的第i个音频帧包含一第i主要数据块,该第i主要数据块的大小等同于Si个存储器单元的大小,Si为一小于等于M的正整数,i为一范围在1至N之间的整数指标,该存储器中的第L(i-1)个存储器单元为用以存储该第(i-1)主要数据块的最后一个存储器单元,该装置包含一接收模块,该接收模块用以接收该第i个音频帧中的该第i主要数据块;一判断模块,该判断模块连接至该接收模块并且用以判断Si是否大于一第i参考值;一选择模块,该选择模块根据M、Si、L(i-1)以及该判断模块的判断结果,由该M个存储器单元中选择一第i组存储器单元用以存储该第i主要数据块;以及一存储模块,该存储模块用以将该第i主要数据块存储至该第i组存储器单元中。
11.如权利要求10所述的装置,其中该第i参考值等于L(i-1)与M之间的差。
12.如权利要求11所述的装置,其中如果该判断模块的判断结果为否,则该第i组存储器单元包含该存储器中的第(L(i-1)+1)个至第(L(i-1)+Si)个存储器单元。
13.如权利要求11所述的装置,其中如果该判断模块的判断结果为是,则该第一组存储器单元包含该存储器中的第(L(i-1)+1)个至第M个存储器单元以及第1个至第(Si-M+L(i-1))个存储器单元。
14.如权利要求10所述的装置,其中该第i个音频帧对应于一第i音频数据,并且该第i主要数据块选择性地包含该第i音频数据至该第N个音频数据中的至少一批音频数据。
15.如权利要求14所述的装置,其中对应于该第i音频数据的一第i起始指标(beginning index)Bi预先提供,并且用以代表该第i音频数据与该第i主要数据块之间的一相对关系。
16.如权利要求15所述的装置,该装置进一步包含一寻找模块,当一使用者要求由该存储器中提取该第i音频数据时,该寻找模块根据该第i起始指标Bi和L(i-1)找出该第i音频数据在该存储器中的一起始位置。
17.如权利要求16所述的装置,其中该第i音频数据的该起始位置为该存储器中的第(L(i-1)+Bi)个存储器单元。
18.如权利要求10所述的装置,其中该音频解码器为一MP3解码器。
全文摘要
本发明提供一种管理存储器的方法。该存储器包含M个存储器单元并且用以暂时性地存储一音频位流中的至少一音频帧。该音频位流包含N个音频帧,并且其中的第i个音频帧包含大小等于S
文档编号G11C7/00GK101075458SQ20061008185
公开日2007年11月21日 申请日期2006年5月17日 优先权日2006年5月17日
发明者何升峰, 谢瑞庭, 赵维民 申请人:广达电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1