流数据处理器的制作方法

文档序号:7969007阅读:223来源:国知局
专利名称:流数据处理器的制作方法
技术领域
本发明涉及一种用于对流数据进行打包的技术以及用于对打包的流数据进行解包的技术。
背景技术
MPEG-2节目流(PS)是通过对多个PES(打包的基本流)进行多路复用而形成的,所述PES是由编码的音频或视频数据组成的打包后的基本流(ES)。同样地,通过对打包后的流数据进行多路复用而形成了MPEG-1PS和MPEG-2传输流(TS)。通常,聚集或发送活动图像流数据的操作是利用打包后的编码流数据来执行的。
图8给出了用于对MPEG-2PS进行编码和解码的传统流数据处理器8的结构。PES缓冲器811、包分解器812、ES缓冲器813、以及解码器814具有输入PES流数据(以下简称为PES数据)并输出由PES数据编码得到的音频或视频数据这样的功能。
PES缓冲器811是用于存储PES数据的缓冲存储器。将数据写入到PES缓冲器811的操作是由用于从MPEG-2PS中分离出PES包的PES包信号分离器(DEMUX)等等来执行的。包分解器812输入来自PES缓冲器811的PES并且将通过从输入数据中除去PES包报头(以下简称为PES报头)所获得的ES流数据(以下简称为ES数据)输出到ES缓冲器813。包分解器812输入来自PES缓冲器811的PES数据并且使PES数据移动一位,以便与用于表示PES包的起始位置的起始码进行比较,从而检测PES包的开始。ES缓冲器813位于可独立操作的包分解器812与解码器814之间,并且是用于存储ES数据的缓冲存储器。解码器814输入来自ES缓冲器813的ES数据以对ES数据进行解码,并且输出解码的音频或视频数据。
另一方面,编码器821、ES缓冲器822、打包器823、PES缓冲器824具有输入音频或视频数据并输出打包的PES数据这样的功能。编码器821输入音频或视频数据并对其进行编码,且将该数据作为ES数据存储到ES缓冲器822。ES缓冲器822位于可独立操作的编码器821与打包器823之间,并且是用于存储ES数据的缓冲存储器。打包器823输入来自ES缓冲器822的ES数据、将PES报头插入到PES包的边界以产生PES数据、并且将所产生的PES数据输出到PES缓冲器824。通过使ES缓冲器822所输入的数据与嵌入在ES数据中的用于对报头插入位置进行定位的特定码相匹配来确定插入PES报头的位置。将存储到PES缓冲器824的PES数据与其他PES数据一起多路复用,并将其输出为MPEG-2PS。
已提议了利用上述流数据处理器来对流数据进行有效打包或对打包的流数据进行分解的技术(例如在公开号为No.11-317765的日本待审专利申请中公开的技术)。
在公开号为No.11-317765的日本待审专利申请中公开了用于对流数据进行编码与打包的打包装置。该打包装置包括编码装置、流长度计算装置、以及报头添加装置。编码装置输入视频或音频数据并对其进行编码且输出编码的流数据。编码装置进一步将用于表示包报头插入位置的标志位附加到流数据上。流长度计算装置根据附加于编码的流数据上的标志位的值来识别包报头插入位置,并且根据标志位的间隔来计算流数据长度(即流长度)。此外,流长度计算装置将所计算的流长度输出到报头添加装置,并且将附着于编码的流数据上的标志位输出到记录介质。报头添加装置从记录介质中读取编码的流数据并且将包报头插入到该标志位所定位的包报头插入位置以便产生打包的流数据。通过参考流长度计算装置所计算的流长度来产生要插入的包报头。如前面所描述的,在公开号为No.11-317765的日本待审专利申请中公开的打包装置输出附着于流数据上的标志位,并且通过该标志位来识别报头插入位置。这使得不再需要进行匹配以检测嵌入在流数据中的特定码,从而使打包过程简单化。
此外,公开号为No.2004-120632的日本待审专利申请公开了一种PES包信号分离器。该PES包信号分离器可有效地执行要从MPEG-2PS中信号分离出流所必需的报头分析。具体地说,信号分离器使所接收到的流数据与用于表示包起始位置的起始码相匹配,所述包起始位置即报头起始位置。此后,对用于分析包报头以获得包括有报头长度、包长度、以及流ID的信息的起始时间进行延迟,直到在检测到起始码之后完成了对指定字节的数据的接收。这可在将包括有报头的主数据存储到缓冲器的同时开始进行分析。因此这可减少对缓冲器进行存取的次数并且可提高分析过程的效率。在通过包报头分析估计出包括PES包的数据是视频流的情况下,将PES包存储到视频解码器的PES缓冲器。当估计出PES包是音频流时,将PES包存储到音频解码器的PES缓冲器。
公开号为No.11-317765及2004-120632的日本待审专利申请中所公开的流数据处理器8以及设备包括位于包分解器与解码器之间的或者位于编码器与打包器之间的缓冲存储器(诸如ES缓冲器813和822)以便暂时存储ES数据。
然而目前发现,在包分解器与解码器之间或者编码器与打包器之间提供缓冲存储器将引起存储器存取次数增加,从而阻碍提高流数据处理器的处理能力。

发明内容
根据本发明的一方面,提供了这样一种流数据处理器,该处理器包括缓冲器,用于存储由多个包形成的流数据;解码器,用于从缓冲器中检索流数据并且对该流数据进行解码;边界检测器,用于对流数据的包边界进行检测;以及包处理器,用于对包括在流数据之内的包报头进行分析。解码器对边界检测器检测到包边界作出响应,以中止从缓冲器中检索流数据。包处理器对边界检测器检测到包边界作出响应,以对包报头进行分析。此外,解码器根据包处理器对包报头的分析结果,恢复从缓冲器中检索流数据。
在打包的流数据是遵照MPEG-2标准的PES数据的情况下,可连续地读取PES数据并且直接对该PES数据进行解码,且当读取的数据到达包边界时,中止检索待解码的PES数据,以便执行用于从PES数据中分离出PES报头的包分析过程。在包分析过程之后,连续地读取PES数据以直接对其进行解码。
与传统技术相比,在本发明中并未将用于从PES数据中分离出PES报头的包装配过程与用于得到ES数据的解码过程相分离,而是同时对这两个过程进行处理或对其进行集成。这使得不再需要在包分解器812与解码器814之间提供ES缓冲器813以暂时存储流数据。对ES缓冲器813的存取也不是必需的,从而提高了PES数据的包分解和解码过程的效率。
根据本发明的另一方面,提供了这样一种流数据处理器,该流数据处理器包括缓冲器,用于存储由多个包形成的流数据;执行单元,用于执行下述第一指令程序和第二指令程序,所述第一指令程序定义了从缓冲器中检索流数据并对其进行解码的过程,所述第二指令程序定义了用于对包括在流数据之内的包报头进行分析的过程;以及边界检测器,用于对从缓冲器所读取的流数据的包边界进行检测。边界检测器对检测到包边界作出响应,以产生对执行单元的中断请求。执行单元对所述中断请求作出响应,以从第一指令程序分支转移到第二指令程序,并在完成了第二指令程序之后根据对包报头的分析过程结果而恢复第一指令程序。
与传统技术相比,本发明并未将用于从PES数据中分离出PES报头的包装配过程与用于得到ES数据的解码过程相分离,而是可同时对这两个过程进行处理或对其进行集成。这使得不再需要在包分解过程与解码过程之间提供缓冲存储器,从而提高了PES数据的包分解和解码过程的效率。
根据本发明的另一方面,提供了这样一种流数据处理器,该流数据处理器包括缓冲器,用于存储由多个包形成的流数据;编码器,用于将输入信号编码后的流数据输出到缓冲器;包处理器,用于产生要插入到流数据的包报头;以及边界检测器,用于检测包报头在流数据中的插入位置。编码器对检测到包报头的插入位置作出响应,以中止将流数据输出到缓冲器。包处理器对检测到包报头的插入位置作出响应,以将包报头输出到缓冲器。此外,在包处理器完成了输出包报头之后,编码器恢复将流数据输出到缓冲器。
在打包的流数据是遵照MPEG-2标准的PES数据的情况下,可连续地将输入信号编码成ES数据、将ES数据直接输出到PES缓存器、并且当输出数据到达包边缘时中止输出ES数据以便将PES报头写入到PES缓存器。在PES报头插入过程之后,连续地将ES数据直接输出到PES缓存器。
与传统技术相比,本发明并未将用于产生ES数据的编码过程与用于将PES报头插入到ES数据以获得PES数据的打包过程相分离,而是可同步地处理这两个过程或者对其进行集成。这使得不再需要在编码器821与打包器823之间提供ES缓存器822以临时存储流数据。此外还不必存取ES缓冲器822,从而提高了用于产生PES数据的编码和打包过程的效率。
根据本发明的另一方面,提供了这样一种流数据处理器,该流数据处理器包括缓冲器,用于存储由多个包形成的流数据;执行单元,用于执行下述第一指令程序和第二指令程序,所述第一指令程序定义了用于使流数据与编码的输入信号一起输出到缓冲器的过程,所述第二指令程序定义了用于产生包报头并将该包报头插入到流数据中的过程;以及边界检测器,用于对包报头插入到流数据中的插入位置进行检测。边界检测器对检测到包报头的插入位置作出响应,以产生对执行单元的中断请求。执行单元对该中断请求作出响应,以从第一指令程序分出转移到第二指令程序,并在完成了第二指令程序之后恢复第一指令程序。
与传统技术相比,本发明并未将用于产生ES数据的编码过程与用于将PES报头插入到ES数据以获得PES数据的打包过程相分离,而是可同步地处理这两个过程或者对其进行集成。这使得不再需要在编码过程与打包过程之间提供ES缓冲存储器,从而提高了用于产生PES数据的编码和打包过程的效率。
本发明在对打包的流数据的包进行分解与解码、或者进行编码与打包以产生打包的流数据的情况中,可防止由于缓冲存储器存取所造成的处理效率恶化。


结合附图从以下说明中可显而易见的得知本发明的上述及其他目的、优点、以及特征,在附图中图1给出了根据本发明的流数据处理器的功能方块图;图2给出了根据本发明的流数据处理器的结构示例;图3给出了作为中断处理的包分析操作的模式示意图;图4给出了根据本发明的数据处理器的操作流程图;图5给出了根据本发明的流数据处理器的功能方块图;图6给出了根据本发明的数据处理器的操作流程图;图7给出了根据本发明的流数据处理器的功能方块图;以及图8给出了根据传统方法的流数据处理器的功能方块图。
具体实施例方式
现在在这里参考说明性实施例对本发明进行描述。对于本领域普通技术人员来说可以明白的是利用本发明的教导可以实现许多替换实施例并且本发明并不局限于为了示意性目的所说明的实施例。
在附图中,相同部件是由相同的参考数字来表示的,并且视情况而定省略对其的详细说明。在下文中所描述的实施例包括流数据处理器,用于遵照MPEG-2标准对PES包进行分解;以及流数据处理器,用于产生本发明所应用的PES包。
第一实施例图1给出了该实施例的流数据处理器1的功能方块图。流数据处理器1从用于将MPEG-2PS多路分离成多个PES数据的PES包多路分离器(未示出)输入PES数据,对PES包进行分解与解码,并且输出解码的音频或视频数据。
PES缓冲器11是用于存储从外部PES包多路分离器等等输入的PES数据的缓冲存储器。解码器12包括数据检索器13和解码单元14。数据检索器13连续地从PES缓冲器11检索出PES数据并且将所检索的PES数据输出到解码单元14。解码单元14遵照MPEG-2标准对从数据检索器13输入的数据进行解码并且输出音频或视频数据。
数据检索器13必须将不具有PES报头的PES包的负载部分(其为ES数据)输出到解码单元14。因此,流数据处理器1通过边界检测器15对PES包的负载的结束进行检测,同时数据检索器13连续地从PES缓冲器11读取PES数据。响应于检测结果,数据检索器13中止将PES数据输出到解码单元14。因此数据检索器13可仅将PES包的负载部分输出到解码单元14而留下PES报头。
首先,数据检索器13使PES计数器16的值递增或递减,以使该值与从PES缓冲器11中所获得的PES数据的数据长度相对应。边界检测器15对PES计数器16的值进行监控。当PES计数器16到达指定值时,边界检测器15指示数据检索器13以中止读取PES数据。
具体地说,PES计数器16存储与PES包的负载长度相对应的值,以便从此开始读取。然后,从开始检索PES包的第一负载数据的时刻开始,数据检索器13开始使PES计数器16的计数器值递减。该操作根据PES计数器16的计数器值变为0,可以确定数据检索器13完成了对于PES包的负载部分的读取,并且已到达包的边界。
当边界检测器15确定出数据检索器13在读取PES数据时到达了PES包的边界时,边界检测器15指示包分析器17执行包分析。
包分析器17对PES报头进行分析以获得PES包和报头长度。包分析器17从数据检索器13中止读取数据的位置开始从PES缓冲器11读取PES数据,通过使该数据与起始码相匹配来确定所读取的数据是PES报头,并且从所读取的PES报头中获得与PES包长度和PES报头有关的信息。此时可一起获得包括有PTS(显现时间戳)和DTS(译码时间戳)的其他PES报头信息。
包分析器17根据PES包长度和报头长度来计算PES包的负载大小并且将所计算的值设置到PES计数器16。包分析器17为数据检索器13更新数据检索器13的读取地址以恢复从PES包的负载的起始位置起进行读取。例如使用于存储数据检索器13的读取地址的寄存器(未示出)的值递增,以使该值与PES报头长度相对应。
此后,包分析器17通知数据检索器13以恢复读取数据并且将该数据输出到解码单元14。这可使数据检索器13仅将ES数据输出到解码单元14。
图1所示的流数据处理器1是由下述处理器系统形成的,所述处理器系统具有用于执行程序的处理器。图2给出了由处理器系统所形成的流数据处理器1的示例的视图。执行单元101是从ROM104或RAM105取指令的处理器以执行该指令。程序计数器102存储执行单元101所执行的指令的地址。执行单元101对程序计数器102的值进行更新。在连续执行指令时,通过与指令长度相对应的值来更新程序计数器102的值。然而在出现中断的情况下,通过中断指令来非连续地更新程序计数器102的值。
通用寄存器103是用于执行单元101中的操作的寄存器组。在图2中,通用寄存器103的一部分用作PES计数器16。此外在图2中,RAM105的一部分用作PES缓冲器11。提供通用寄存器13专用的寄存器来防止PES计数器16被突然更新,而不是将通用寄存器103的一部分分配为PES计数器16。
与数据检索器13从PES缓冲器11读取数据的处理相对应,只要不出现中断,执行单元101执行用于连续执行LOAD指令的程序。在执行LOAD指令的同时,PES计数器16的值被递减了所读取数据的数据长度。边界检测器15对PES计数器16的值进行监控,并且当该值变为0时将中断请求发送到执行单元101。已接收到中断请求的执行单元101分支转移到用于执行包分析的程序,所执行的包分析是由包分析器17实施的。
图3是一概念视图,其示出了这样的中断处理在将包边界检测为中断因素的同时,使执行单元101的处理从数据检索处理分支转移到包分析处理。如图3所示,当边界检测器15在数据检索处理之中连续地执行LOAD指令的同时检测到包边界(边界检测301)时,边界检测器15产生中断。执行单元101响应于该中断而中止数据检索处理,并且分支转移到包分析处理。
在如上所述的分支转移后的包分解处理中,对PES起始码进行检测以得到PES报头的起始位置,获得诸如PES报头长度和PES包长度这样的PES报头信息,并且将PES计数器16的值设置为PES包的负载长度。此外,将在回到数据检索处理时由LOAD指令所参考的地址寄存器的值被递增了与PES报头长度相对应的数据长度。例如,假定在移到包分析处理之前的地址寄存器的值是X,并且包括有起始码的包报头长度是64位。在这种情况下,地址寄存器的值被更新为X+64。在包分析处理之后,使程序计数器102、和除上述地址寄存器之外的通用寄存器103的值恢复为中止之前的值,并且回到数据检索处理。
在图2和3中,为了便于说明,简化了解码单元14的处理。解码处理是由执行单元101来执行的。替换的,也可提供用于解码的硬件。
如图3所示,由下述处理器系统所形成的流数据处理器1执行作为中断处理的包分析处理,所述处理器系统响应于边界检测器15检测到包边界,可产生对执行单元101的中断。这消除了执行单元101要对包边界进行检测的必要,从而减少了执行单元101的负荷并且使数据检索及其他处理的效率增加了。
图4给出了流数据处理器1检索PES数据并且对包进行分解的处理的流程图。在步骤S101对PES计数器16进行初始化。初始化在这里表示边界检测器15将PES计数器16的值设置为被边界检测器15确定为PES包边界的值。在以下说明中,与包边界相对应的PES计数器16的值是0,并且在初始化过程中将计数器值设置为0。因为在开始检索PES数据时报头分析器17必须识别PES报头,因此对PES计数器16进行初始化。通过对PES计数器16进行初始化,可以无条件地执行随后的步骤S107和S108,以便通过对起始码进行检测而得到PES报头。
在步骤S102,确定是否发布用于执行数据检索器13的处理的指令,比如上述的LOAD指令(以下简称为数据检索指令)。在发布数据检索指令的情况下,执行随后步骤S102。
在步骤S103,估计PES计数器16的值是否该值为0。该估计与边界检测器15的处理相对应。在估计出PES计数器16不是0的情况下,执行步骤S104至S106。
在步骤S104中,从PES缓冲器11中读取PES数据。应按照诸如1比特或字节这样的某个单位来读取PES数据。在步骤S105,使PES计数器16的值与所读取的PES数据的大小成比例的递减。在步骤S106,估计是否已读取了由数据检索指令所规定的数据数目的数据。当从PES缓冲器11读取了规定数目的数据时,回到步骤S102。在未完成数据读取的情况下,回到步骤S103。
在步骤S103中估计出PES计数器16的值是0的情况下,执行步骤S107至S110。这些处理与包分析器17的处理相对应。在步骤S107,对从PES缓冲器11所读取的数据进行估计,以与用于表示PES包的起始位置的起始码相匹配。在该数据与起始码不相匹配的情况下,从PES缓冲器11读取下一位(步骤S108)并且重复与起始码进行匹配。当检测到起始码时,从PES缓冲器11读取与PES报头相对应的数据,并且获得包括有PES报头长度和包长度的PES报头信息(步骤S109)。在步骤S110,通过根据PES报头长度和包长度所计算的PES包的负载长度,来更新计数器16的值。此后回到步骤S103。
如前面所描述的,该实施例的流数据处理器1连续地从PES缓冲器11读取PES数据并且将该PES数据输出到解码单元14。在所读取的PES数据是PES报头的情况下,中止输出到解码单元14,并且通过包分析器17对PES报头进行分析。这使得能够仅将不具有PES报头的PES包的负载部分输出到解码单元14。
换句话说,在流数据处理器1中,解码器12读取PES数据的负载部分,并且通过使用在分析处理中由包分析器17所获得的负载长度信息来对PES数据的负载部分进行解码。流数据处理器1的特征在于使报头分析器17的报头分析处理与解码器12的解码处理相关联。这使得不再需要像在传统流处理器8的包解装器812与解码器814之间提供ES缓冲器813那样的为分离包解装处理与解码处理而要求的缓冲存储器。因此该实施例的流数据处理器1不需对ES缓冲器进行存储器访问,从而可提高PES数据的打包和解码处理的效率。
流数据处理器1存储根据包含在PES报头之内的PES包和报头长度所计算的PES包的负载大小。流数据处理器1可通过用于读取一个包的PES数据的数据检索器13,来估计从PES缓冲器11所读取的数据是否到达了PES包的边界。换句话说,流数据处理器1根据从PES报头中所获得的PES包长度信息以及数据检索器13所读取的多个数据,来对包边界进行检测。这使得除了对PES数据进行检索并且识别出PES报头的处理之外,不再需要为检测分组边界而与表示PES报头的起始码进行匹配。因此可减小对包进行分解所需的处理量。
第二实施例图5给出了第二实施例的流数据处理器2的功能方块图。流数据处理器2输入音频或视频数据并对其进行编码,对编码的ES数据进行打包,并且输出PES数据。
编码器21包括编码单元22和数据写入器23。编码单元22输入视频或音频数据并遵照MPEG-2标准对其进行编码。数据写入器23输入编码单元22所编码的ES数据,并且按照诸如1比特或字节这样的某个单位来将ES数据存储到PES缓冲器24中。
需要数据写入器23来将PES报头插入到输出给PES缓冲器24的ES数据中,并且将该数据作为PES数据存储到PES缓冲器24中。流数据处理器2通过边界检测器25检测定时,以将PES报头插入到待存储到PES缓冲器24中的数据中。响应于该检测结果,编码单元22输出的ES数据以及由数据写入器23输出到PES包缓冲器24的输出被中止。
数据写入器23使PES计数器26值递减或递增,以使该值与从编码单元22接收到的ES数据的数据长度或者输出到PES缓冲器24的数据长度相对应。边界检测器25对PES计数器26的值进行监控。当PES计数器26到达规定值时,编码单元22和数据写入器23的处理被中止。
具体地说,由数据写入器23输出到PES缓冲器24的PES包的负载大小被存储到PES计数器26中。此后,每当数据写入器23开始写入ES数据时,即每当PES包的负载开始时,数据写入器23开始使PES计数器26的值递减。这使得能够根据PES计数器26的值变为0,而确定数据写入器23已完成了PES包的负载部分的写入、并且已到达了用于插入PES报头的包边界。
当边界检测器25确定出数据写入器23在写入数据的同时到达了PES包的边界时,边界检测器25指示打包器27插入PES报头。
响应于边界检测器25的指令,打包器27指示数据写入器23写入PES报头。包含在PES报头之内的PES包长度是由编码单元22来计算的、或者是作为诸如用户规定值这样的规定值而提供的。编码单元22计算诸如DTS和PTS这样的信息。打包器27将PES负载大小设置到PES计数器26。
在上述处理完成之后,打包器27指示编码单元22和数据写入器23恢复处理。
图6给出了流数据处理器2执行的打包处理的流程图。在步骤S201,对PES计数器26进行初始化。初始化在这里表示将PES计数器26设置为被边界检测器15估计为PES包边界的值。在以下说明中,与包边界相对应的PES计数器26的值是0,并且在初始化过程中将计数器值设置为0。在步骤S202,确定是否发布用于执行数据写入器23的处理的指令(以下简称为数据写入指令)。在发布数据写入指令的情况下,执行随后步骤S202。
在步骤S203,估计PES计数器26的值是否为0。该估计与边界检测器25的处理相对应。在估计出PES计数器26不是0的情况下,执行步骤S204至S206。
在步骤S204中,数据写入器23将编码单元22所产生的ES数据输出到PES缓冲器24。应按照诸如1比特或字节这样的某个单位来写入ES数据。在步骤S205,使PES计数器26的值与存储到PES缓冲器24中的数据大小成比例地递减。在步骤S206,估计是否已写入由数据写入指令所规定的数据数目的数据。当规定数目的数据被写入到PES缓冲器24中时,回到步骤S202。在未完成数据写入的情况下,回到步骤S203。
在步骤S203估计出PES计数器26的值是0的情况下,执行步骤S207至S208。这些处理与打包器27的处理相对应。在步骤S207,将PES报头输出到PES缓冲器24。在步骤208,将PES计数器26的值设置为PES包的负载的数据长度,此后回到步骤S203。
该实施例的流数据处理器2连续地存储编码器21所编码的ES数据。然而当流数据处理器2根据写入到PES缓冲器24的数据长度确定出插入PES包的时间时,编码器21中止其处理,并且打包器25将PES报头存储到PES缓冲器24。
使编码与打包处理相关联可消除传统流处理器8中的在编码器821与打包器823之间提供ES缓冲器882的必要。这可降低存储器存取次数并且可提高用于产生PES数据的编码和打包处理的效率。
流数据处理器2存储PES包的负载大小。是否已到达插入PES报头的包边界是通过进行如下检测确定的,即检测数据写入器23输出了可存储到一个包的负载中的ES数据,或者编码单元22产生了可存储到一个包的负载中的ES数据。具体地说,流处理器2根据从编码单元22等中所获得的PES包信息以及数据写入器23所写入的数据长度来检测包边界。
这使得不再需要为检测包边界而与ES数据内包含的特定码进行匹配、和得到PES报头插入位置,从而降低了打包所需的处理量。此外,无需像公开号为No.11-317765的日本待审专利申请中所公开的打包装置那样将标志位附加到ES数据上。因此,传送标志位的比特率未增加,并且不需要用于存储该标志位的存储区。
此外,与流数据处理器1一样,流数据处理器2是由处理器系统形成的。具体地说,响应于边界检测器25检测到包边界,在执行单元101中对编码处理产生中断,以执行作为中断处理的打包处理。这消除了执行单元101要检测包边界的必要,从而降低了执行单元101上的负荷并且提高了包括有数据写入的编码处理的效率。
第三实施例图7给出了该实施例的流数据处理器3的功能方块图。流数据处理器3除了执行第一实施例的流数据处理器1所执行的用于对PES包的边界进行检测的处理之外,还要执行用于对另一边界进行检测的处理。图7给出了作为检测另一边界示例的用于检测缓冲器边界并且执行缓冲器管理的结构的视图。
现有若干种缓冲器管理方法。在下文中描述了如下方法,其利用链接表来对多个有限长度缓冲器进行管理,以便使它们作为一个PES缓冲器11来使用。在该链接表中,通过指针来链接有限长度的缓冲器。
缓冲计数器38存储当前处理的有限长度缓冲器的剩余数据。例如通过将缓冲计数器38的初始值规定为将要处理的可存储到有限长度缓冲器中的数据的最大数目,可通过变为0的缓冲计数器38的值来估计出当前有限长度缓冲器的端部已达到末端。因此,当检测到缓冲计数器38是0时,边界检测器35中止数据检索器13的处理,并且指示缓冲器管理单元39执行缓冲器管理。
缓冲器管理单元39对已达到其末端的有限长度缓冲器进行存取并且读取指向下一有限长度缓冲器的指针。将该指针存储为有限长度缓冲器的最后数据。该指针指示出下一有限长度缓冲器的第一地址和可存储的数据量。缓冲器管理单元39参考指针信息并且将可存储到下一有限长度缓冲器中的数据数目设置到缓冲计数器38。此后,缓冲器管理单元39通知数据检索器13以恢复读取PES数据。
与上述流数据处理器1一样,流数据处理器3是由处理器系统形成的。与包分析处理一样,缓冲器管理单元39的处理可作为对数据检索处理的中断处理而执行。可同时出现用于中断缓冲器管理单元39的处理的中断请求以及用于中断包分析处理的中断请求。在这种情况下,可应用已知的多种中断技术。具体地说,可以控制中断,以便优先进行具有较高优先级的处理。在该实施例中,使缓冲器管理单元39的处理优先于包分析处理。
与上面所描述的一样,在必须根据待处理的数据数目来执行诸如包分解和缓冲器管理这样的多个其他处理以便对多个其他处理进行处理的情况下,流数据处理器3中止获取PES数据。
在上述实施例中,将PES包和缓冲器的边界表示为流数据的边界。然而,也可通过边界检测器对其他数据位置进行检测。在对按照比特或字节等规定单位的流数据进行处理的同时还需要依据处理的数目执行其他处理的情况下,通过边界检测器来检测要移到其他处理的数据位置。
上述实施例涉及用于处理MPEG-2PES数据的装置。然而本发明并不局限于此,而是可广泛用于对打包的流数据进行处理。
很显然的是本发明并不局限于上述实施例并且在不脱离本发明的范围和精神的情况下可对其做出修改和变化。
权利要求
1.一种流数据处理器,包括缓冲器,用于存储由多个包形成的流数据;解码器,用于从缓冲器中检索流数据并且对该流数据进行解码;边界检测器,用于对流数据的包边界进行检测;以及包处理器,用于对包括在流数据之内的包报头进行分析,其中解码器对检测到包边界作出响应,以中止从缓冲器中检索流数据,包处理器对检测到包边界作出响应,以对包报头进行分析,并且解码器根据对包报头的分析结果,恢复从缓冲器中检索流数据。
2.根据权利要求1的流数据处理器,其中包处理器根据包括在包报头之内的信息来确定将由解码器解码的数据的数据长度,并且通过编码器对从缓冲器所检索的数据长度进行计数并且确定计数值达到了所要编码的数据长度,来执行边界检测器对包边界的检测。
3.根据权利要求1的流数据处理器,其中包处理器对缓冲器的读取地址进行更新,以便解码器在恢复检索流数据的情况中跳过包报头。
4.一种流数据处理器包括缓冲器,用于存储由多个包形成的流数据;执行单元,用于执行下述第一指令程序和第二指令程序,所述第一指令程序定义了用于从缓冲器中检索流数据并对该流数据进行解码的过程,所述第二指令程序定义了用于对包括在流数据之内的包报头进行分析的过程;以及边界检测器,用于对从缓冲器中读出的流数据的包边界进行检测,其中边界检测器对检测到包边界作出响应,以产生对执行单元的中断请求,执行单元对所述中断请求作出响应,以从第一指令程序分支转移到第二指令程序,并在完成了第二指令程序之后根据对包报头的分析过程的结果而恢复第一指令程序。
5.根据权利要求4的流数据,其中在第二指令程序中所定义的包报头的分析过程包括如下过程,该过程根据正被分析的包报头的数据长度来对第一指令程序所参考的缓冲器的读取地址进行更新,以便在恢复第一指令程序所定义的解码过程的情况中,跳过包报头,从缓冲器中检索数据。
6.一种流数据处理器包括缓冲器,用于存储由多个包形成的流数据;编码器,用于将输入信号编码后的流数据输出到缓冲器;包处理器,用于产生要插入到流数据的包报头;以及边界检测器,用于检测包报头在流数据中的插入位置,其中编码器对检测到包报头的插入位置作出响应,以中止将流数据输出到缓冲器,包处理器对检测到包报头的插入位置作出响应,以将包报头输出到缓冲器,并且在包处理器完成了输出包报头之后,编码器恢复将流数据输出到缓冲器。
7.根据权利要求6的流数据处理器,其中包处理器根据从编码器中所检索的信息,确定在由包处理器插入的包报头规定的一个包之内所包含的流数据的数据长度,并且通过由编码器对输出到缓冲器的数据长度进行计数并且估计计数值到达了包处理器所确定的流数据的数据长度,执行边界检测器对包报头插入位置的检测。
8.一种流数据处理器包括缓冲器,用于存储由多个包形成的流数据;执行单元,用于执行下述第一指令程序和第二指令程序,所述第一指令程序定义了用于将输入信号编码后的流数据输出到缓冲器的过程,所述第二指令程序定义了用于产生包报头并将该包报头插入到流数据中的过程;以及边界检测器,用于对包报头插入到流数据中的插入位置进行检测,其中边界检测器对检测到包报头的插入位置作出响应,以产生对执行单元的中断请求,并且执行单元对所述中断请求作出响应,以从第一指令程序分支转移到第二指令程序,并在完成了第二指令程序之后恢复第一指令程序。
全文摘要
一种处理器包括缓冲器,用于存储PES数据;解码器,用于从PES缓冲器中检索PES数据并且对该PES数据进行解码;边界检测器,用于对PES数据的PES包的包边界进行检测;以及包分析器,用于对包括在流数据之内的PES包报头进行分析。包分析器对包报头进行分析以响应检测到包边界。解码器中止从PES缓冲器中检索PES数据以响应边界检测器检测到包边界。此外,解码器根据包分析器对包报头的分析结果而恢复从PES缓冲器中检索PES数据。
文档编号H04N7/24GK1960335SQ20061013569
公开日2007年5月9日 申请日期2006年10月23日 优先权日2005年10月31日
发明者中村武治 申请人:恩益禧电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1