本发明的目的在于,提供一种能够对表示压缩图象和压缩声音数据的流式数据进行输入、译码、输出等一连串处理、且即使不是以高频进行动作也具有很强的处理能力并能降低制造成本的图象声音处理装置。
为达到上述目的,本图象声音处理装置,通过对包含压缩声音数据和压缩图象数据的数据流进行译码,将图象数据和声音数据复原,该图象声音处理装置备有:逐次处理部,执行对数据流中的压缩图象数据所含规定数据块进行标题分析的标题分析处理及对数据流中的压缩声音数据进行译码的声音译码处理,并使标题分析处理比声音译码处理优先执行;及定型处理部,与上述逐次处理部并行操作,执行除数据流中的压缩图象数据标题分析处理以外的压缩图象数据的译码处理。
按照这种结构,通过由逐次处理部及定型处理部分担对压缩图象数据的译码处理,与现有的由一个处理器进行压缩图象数据的全译码相比,可减轻花费在处理上的负荷,并能提高处理效率。此外,逐次处理部,通过优先执行标题分析处理,可使基于标题分析进行的定型处理部的译码处理无滞后地进行,因而能从时间上提高处理效率。另外,声音译码处理,由于与压缩图象数据的译码相比处理量小,所以可以在逐次处理部执行标题分析处理的间歇时间进行,因而能进一步地从时间上提高处理效率。因此,本发明的图象声音处理装置,即使不是以高频进行动作也具有很强的处理能力,并能降低制造成本。
其中,逐次处理部,具有处理器及存储用于由处理器执行的标题分析用线程、声音译码用线程及线程切换控制用线程的存储器,并可以备有:标题分析部,通过由处理器从存储器读出并执行标题分新用线程,进行标题分析处理;声音译码部,通过由处理器从存储器读出并执行声音译码用线程,进行声音译码处理;及控制部,通过由处理器从存储器读出并执行线程切换控制用线程,对分配给处理器的线程进行切换控制,以便使标题分析处理优先进行。
按照这种结构,由于控制部对分配给处理器的线程进行切换从而优先执行标题分析处理,所以,能平滑地切换标题分析及声音译码处理,因而能从时间上提高处理效率。
其中,控制部,可以备有:中断检测部,用于检测作为线程切换主要原因的中断的发生及其类别;状态管理部,用于对根据中断的类别而转移的标题分析部和声音译码部的状态是执行状态、或是等待状态、或是可执行状态进行管理;及切换部,当标题分析部从等待状态转移到可执行状态时,将分配给处理器的线程从其他线程切换为标题分析用线程。
按照这种结构,控制部,由中断检测部检测中断的发生,由状态管理部对根据中断而转移的标题分析和声音译码的状态进行管理,并当标题分析部变为可执行时由切换部将标题分析部分配给处理器。这种控制部,由于是根据中断进行驱动的方式,所以能够从经常地监视应使标题分析部和声音译码部中的哪一个为执行状态的这种负担解放出来。
其中,状态管理部,可以备有:状态表,用于存储标题分析处理和声音译码处理各自的状态;及状态更新部,根据中断的类别对状态表进行更新。
其中,上述规定数据块为数据流中的压缩图象数据所包含的宏数据块,在结构上可以使:中断检测部检测当标题分析部的宏数据块标题分析结束时由标题分析部输出的第1中断、及当宏数据块的译码结束时由定型处理部输出的第2中断,状态更新部,当由中断检测部检测到第1中断时将状态表中的标题分析部的状态更新为等待状态,当由中断检测部检测到第2中断时将状态表中的标题分析部的状态更新为可执行状态。
按照这种结构,当由中断检测部检测到第1中断和第2中断时,状态更新部将状态表中的标题分析部的状态更新为等待状态、可执行状态。切换部则根据该更新使处理器执行变为可执行状态的标题分析,所以在由定型处理部对标题部分的译码结束后可立即进行标题分析,因而使处理效率提高。
其中,在标题分析部为等待状态的情况下,当声音译码部从等待状态转移到可执行状态时,切换部在结构上可以将声音译码用线程分配给处理器。
按照这种结构,即使声音译码部是在执行状态,但当标题分析部变为可执行状态时,切换部也是使处理器执行标题分析。因此,总是使标题分析优先于声音译码执行,因而使处理效率提高。
其中,上述定型处理部,可以备有:代码变换部,对数据流中的压缩图象数据进行可变长度译码;运算部,通过进行规定的运算,对由可变长度译码得到的图象数据块进行反量化和反离散余弦变换;及合成部,通过将反离散余弦变换后的图象数据块与译码完成的数据块合成,进行动态补偿处理,从而将图象数据复原;上述标题分析部可以备有:取得部,用于取得请求代码变换部进行可变长度译码的标题信息;分析部,对所取得的标题信息进行分析,并接着进行运动矢量的计算;通知部,将作为分析结果得到的参数通知定型处理部;及开始指示部,在分析部的分析过程的规定时刻指示代码变换部开始对数据块进行可变长度译码。
按照这种结构,由标题分析部和定型处理部分担对压缩图象数据的译码处理,并且,在定型处理部中,由代码变换部、运算部、合成部以流水线方式进行以定型计算为中心的处理。另一方面,在标题分析部中,由分析部进行伴有对标题信息分析的条件判断的处理,通知部将作为分析结果得到的参数通知定型处理部。根据处理的性质将上述处理的压缩图象数据的译码处理分成定型运算处理及条件判断处理,从而可以进行定型处理部的高速处理。此外,标题分析部,通过由开始指示部在分析过程的规定时刻指示代码变换部开始对数据块的可变长度译码,能提前开始定型处理部的处理,因此,可以缩短将标题分析部的处理及定型处理部的处理混在一起的1个宏数据块所花费的译码处理时间。
其中,在结构上可以使上述开始指示部在分析部计算运动矢量之前指示可变长度译码开始,上述通知部将计算出的运动矢量通知合成部。
按照这种结构,由于开始指示部在分析部计算运动矢量之前指示可变长度译码开始,所以,可以将1个宏数据块所花费的译码处理时间缩短相当于花费在运动矢量计算上的时间。
其中,控制部,可以备有:中断检测部,用于检测作为线程切换主要原因的中断的发生及其类别;差错处理部,当由中断检测部检测到差错中断时,将定型处理部的与该规定数据块有关的数据废弃,并使标题分析部变成可执行状态;状态管理部,用于对根据中断的类别而转移的标题分析部和声音译码部的状态是执行状态、或是等待状态、或是可执行状态进行管理;及切换部,当标题分析部转移到可执行状态时,将标题分析用线程分配给处理器。
按照这种结构,控制部,除中断检测部、状态管理部、切换部外还备有差错处理部,当发生差错中断时,差错处理部将定型处理部的各部复位,然后使标题分析部变成执行状态。因此,处理器执行下一时间片的宏数据块的标题分析。按照这种方式,即使是在发生了差错的情况下,本图象声音处理装置,也可以在由控制部平滑地进行了差错处理后由处理器执行下一时间片的宏数据块的标题分析,所以能够从时间上提高处理效率。
其中,在结构上可以使:中断检测部检测当标题分析部的宏数据块标题分析结束时由标题分析部输出的第1中断、当宏数据块的译码结束时由定型处理部输出的第2中断、在可变长度译码中发生差错时由代码变换部输出的第3中断、及在动态补偿处理中发生差错时由合成部输出的第4中断,状态更新部,当由中断检测部检测到第1中断时将状态表中的标题分析部的状态更新为等待状态,当由中断检测部检测到第2中断时将状态表中的标题分析部的状态更新为可执行状态,当由中断检测部检测到第3和第4中断时将状态表中的标题分析部的状态更新为可执行状态,差错处理部,当由中断检测部检测到第3和第4中断时将定型处理部的与该规定数据块有关的数据废弃。
按照这种结构,当代码变换部发生了可变长度译码差错时以及当合成部发生了动态补偿差错时,差错处理部将定型处理部的各部复位,然后使标题分析部变成执行状态。按照这种方式,即使是在发生了差错的情况下,本图象声音处理装置,也可以由控制部平滑地使处理器执行下一时间片的宏数据块的标题分析,所以能够从时间上提高处理效率。
其中,在结构上可以使:中断检测部检测当规定数据块的标题分析结束时由标题分析部输出的第1中断、当规定数据块的定型处理结束时由定型处理部输出的第2中断、在1帧的标题分析结束时由标题分析部输出的第3中断、当在标题取得部发出了请求的情况下不对标题信息进行可变长度译码时由代码变换部输出的第4中断、从图象处理装置外部输入的垂直同步信号即第5中断、在第4中断后当对标题取得部请求的标题信息进行可变长度译码时由代码变换部输出的第6中断、当在声音译码部对规定的存储器请求进行译码的数据的情况下在该存储器内没有该数据时由存储器输出的第7中断、及在第7中断后当在规定的存储器内输入了由声音译码部请求的数据时由存储器输出的第8中断,状态更新部,当由中断检测部检测到第1中断、第3中断、第4中断时将状态表中的标题分析部的状态更新为等待状态,当检测到第2中断、第5中断、第6中断时将状态表中的标题分析部的状态更新为可执行状态,当检测到第7中断时将状态表中的声音译码部的状态更新为等待状态,当检测到第8中断时将状态表中的声音译码部的状态更新为可执行状态。
按照这种结构,由状态更新部根据中断检测部对第1~第8中断的检测将标题分析部及声音译码部的状态更新,并由切换部根据该更新在使标题分析部优先的前提下由处理器执行标题分析和声音译码。由于控制部按上述方式处理各种中断,所以能从时间上提高处理器的处理效率。
为达到上述目的,本程序记录媒体,用于记录通过对包含压缩声音数据和压缩图象数据的数据流进行译码而将图象数据和声音数据复原的程序,且可由计算机进行读取,该程序记录媒体所记录的程序,包括:标题分析处理,对数据流中的压缩图象数据所含规定数据块进行标题分析;声音译码处理,对数据流中的压缩声音数据进行译码;控制处理,对标题分析处理和声音译码处理进行切换,使标题分析处理优先执行;及定型处理,执行除数据流中的压缩图象数据标题分析处理以外的压缩图象数据的译码。
其中,上述计算机,是具有第1处理器和第2处理器的图象声音处理装置,其特征在于:由第1处理器执行标题分析处理、声音译码处理、控制处理,由第2处理器执行定型处理。
按照这种结构,第1处理器,无滞后地优先进行标题分析处理并在不进行标题分析处理的空闲时间进行声音译码处理,所以能提高第1处理器的处理能力。此外,由于第1处理器无滞后地进行标题分析的缘故,就可以使第2处理器在接收到标题分析处理的处理结果数据后无滞后地进行定型处理。
其中,上述控制处理,包括:中断检测处理,检测作为标题分析处理和声音译码处理的切换主要原因的中断的发生及其类别;状态管理,对根据中断的类别而转移的标题分析处理和声音译码处理的状态是执行状态、或是等待状态、或是可执行状态进行管理;及切换处理,当标题分析处理从等待状态转移到可执行状态时,将所执行的处理从声音译码处理切换为标题分析处理。
按照这种结构,当标题分析处理变为可执行状态时,第1处理器可无滞后地执行标题分析处理,从而使处理效率提高。
从以下参照附图对本发明的特定实施例的说明将可以清楚地看出本发明的上述及其他目的、优点及特征。
对本发明的图象声音处理装置,按如下所列分项说明其实施形态。
实施形态
1 图象声音处理装置的简略结构
1.1 输入输出处理部
1.2 译码处理部
1.2.1 逐次处理部
1.2.2 定型处理部
2 图象声音处理装置的结构
2.1 输入输出处理部的结构
2.2 译码处理部的结构
2.2.1 逐次处理部
2.2.1.1 标题分析处理
2.2.1.2 声音译码处理
2.2.2 定型处理部
3 各部的处理时序
4 逐次处理部的OS
4.1 中断信号
4.2 线程的状态转移
4.2.1 图象线程
4.2.2 声音线程
4.3 线程管理
4.4 处理器的分配
4.5 差错处理
5 动作说明
5.1 输入输出处理部的动作
5.2 译码处理部1002的动作
5.2.1 正常时的动作
5.2.2 VLD差错时的动作
5.2.3 动态补偿差错时的动作
<实施形态>
本实施形态的图象声音处理装置,设置在卫星广播接收装置(简称STB:顶置盒)、DVD(数字通用视盘)再生装置、DVD-RAM记录再生装置等中,当作为压缩图象声音数据从卫星广播或从DVD输入MPEG数据流时,进行解压缩处理(以下,简称为译码),并将图象数据和声音数据输出到外部的输出装置。
<1图象声音处理装置的简略结构>
图2是表示本发明实施形态的图象声音处理装置的简略结构的图。
图象声音处理装置1000,备有输入输出处理部1001、译码处理部1002、存储控制器6,在结构上使输入输出处理与译码处理以并行方式进行。此外,外部存储器3,作为暂时存储MPEG数据流或译码后声音数据的工作存储器、存储译码后图象数据的帧存储器使用。
<1.1输入输出处理部>
输入输出处理部1001,用于进行与图象声音处理装置1000的内部动作非同步发生的输入输出处理。该输入输出处理的内容包括:(a)从外部输入非同步地输入的MPEG数据流,并暂时存储在外部存储器3内;(b)将存储在外部存储器3内的MPEG数据流供给译码处理部1002;(c)从外部存储器3读出译码后图象数据、声音数据,并按照外部的显示装置、声音输出装置(图中未示出)的各自的输出速率输出。
<1.2译码处理部>
译码处理部1002,以与输入输出部1001并行动作的方式独立地对由输入输出部1001供给的MPEG数据流进行译码,并将译码后图象数据和声音数据存储在外部存储器3内。由于MPEG数据流的压缩图象数据的译码处理运算量大且处理内容涉及多个方面,所以译码处理部1002备有逐次处理部1003、定型处理部1004,并由二者分担处理。即,逐次处理部1003,对压缩图象数据的宏数据块标题部分进行标题分析处理,定型处理部1004,对压缩图象数据的宏数据块本体部分进行译码处理。这样,在译码处理部1002中,由逐次处理部1003和定型处理部1004对压缩图象数据的每个宏数据块分别各进行一次处理。
这里,说明MPEG数据流的压缩图象数据与其宏数据块的关系。
图3是表示MPEG数据流与宏数据块的关系的分层结构图。第1分层表示MPEG数据流。第2分层是1秒钟时间的MPEG数据流,包含多个帧(I、P、B图象)。第3分层是帧,1个帧包含图象标题及多个时间片。第4分层是时间片,1个时间片包含时间片标题及多个宏数据块。第5分层是宏数据块,1个宏数据块包含宏数据块标题部分及6个数据块。6个数据块为4个亮度数据块及2个色差数据块,数据块表示由8*8象素构成的图象。这6个数据块相当于宏数据块本体部分。
在该图中示出的第1~第5分层的数据结构,在众所周知的文献、例如ァスキ-公司的「要点图解式最新MPEG教科书」中有详细的说明。
另一方面,压缩声音数据的译码处理(以下简称为声音译码处理),其处理量比压缩图象数据的译码少。因此,声音译码处理,由逐次处理部1003在一个宏数据块的标题分析处理与下一个宏数据块的标题分析处理之间的时间带进行。
如上所述,逐次处理部1003,进行标题分析处理及声音译码处理。逐次处理部1003,以使标题分析处理优先的方式,通过执行编入了各处理过程的程序逐次地进行这两种处理。以下将这两种处理统一称作逐次处理。此外,定型处理部1004,对宏数据块本体部分进行译码处理。该处理是以数据块为单位进行大量的各种定型运算的处理。以下将这种处理称作定型处理。
<1.2.1逐次处理部>
逐次处理部1003,具有处理器和存储器,处理器通过执行存储器中的线程程序(以下简称线程)进行优先执行的标题分析处理及声音译码处理。在逐次处理部1003中,为了使标题分析处理比声音译码处理优先进行,由OS控制这些处理的执行。这里,所谓线程,指的是在多线程环境中执行的一组处理程序。
这里,标题分析处理,包括宏数据块的标题分析及运动矢量的计算。在宏数据块的标题部分中,记录着在对宏数据块本体部分进行译码的过程中所需要的信息(标题信息),逐次处理部1003将通过分析得到的各种数据输出到定型处理部1004。所谓运动矢量,是指向参照帧中的8*8的矩形区域的矢量,用于指示所取得的是该数据块与参照帧中的哪一个矩形区域的差分。
另一方面,声音译码处理,只在逐次处理部1003的内部独立地进行压缩声音数据标题部分的分析及数据本体部分的译码。因此,声音译码处理的中断和重新开始要比标题分析处理容易进行。此外,如上所述,声音译码处理,几乎可以在一个标题分析与下一个标题分析之间的时间带进行充分的处理,因而其处理量少。由上述的理由可知,在逐次处理部1003中,在结构上可以使标题分析处理优先于声音译码处理进行。
更为详细地说,当标题分析处理可执行时,OS进行控制确保执行标题分析处理。这时,即使声音译码处理正在执行中,OS也要将声音译码处理中断,然后执行标题分析。
<1.2.2定型处理部>
定型处理部1004,作为定型处理,以流水线方式按相同顺序对宏数据块本体部分进行可变长度码的译码(VLD:Variable Length codeDecoding)、反量化(IQ:InverseQuantization)、反离散余弦变换(IDCT:Inverse Discrete Cosine Transform)、动态补偿(MC:MotionCompensation)。但是,定型处理部1004,不仅对宏数据块本体部分而且对宏数据块的标题部分也进行VLD,并将经VLD后的标题部分的数据输出到逐次处理部1003。
定型处理部1004,在动态补偿中将译码后的数据块通过存储控制器6存储在作为帧存储器的外部存储器3内。
<2图象声音处理装置的结构>
图4是表示图象声音处理装置1000的更为详细的结构的框图。
<2.1输入输出处理部的结构>
在该图中,输入输出处理部1001,备有数据流输入部1、缓冲存储器2、输入输出处理器5(以下简称为IO处理器5)、DMAC(直接存储存取控制器)5a、图象输出部12、声音输出部13、主I/F部14。
数据流输入部1,将从外部以串行方式输入的MPEG数据流变换为并行数据(以下,称作MPEG数据)。这时,数据流输入部1,从MPEG数据流检测出GOP(图象组:包含1个I图象、且与大约0.5秒钟的动图象相当的MPEG数据流)的状态码,并将该检测结果通知IO处理器5。按照该通知变换后的MPEG数据,在IO处理器5的控制下传送到缓冲存储器2。
缓冲存储器2,是暂时保持从数据流输入部1传送的MPEG数据的缓冲用存储器。由缓冲存储器2保持的MPEG数据,进一步在输入输出处理器5的控制下通过存储控制器6传送到外部存储器3。
外部存储器3,由SDRAM(同步动态随机存取存储器)芯片构成,用于暂时保持从缓冲存储器2通过存储控制器6传送到的MPEG数据。另外,外部存储器3还用于保持译码后的图象数据(以下,也称作帧数据)及译码后的声音数据。
输入输出处理器5,控制数据流输入部1、缓冲存储器2、外部存储器3(通过存储控制器6)、FIFO存储器4之间的数据的输入输出。即,对以下的(1)~(4)所示路径的数据传送(DMA传送)进行控制。
(1)数据流输入部1→缓冲存储器2→存储控制器6→外部存储器3
(2)外部存储器3→存储控制器6→FIFO存储器4
(3)外部存储器3→存储控制器6→缓冲存储器2→图象输出部12
(4)外部存储器3→存储控制器6→缓冲存储器2→声音输出部13
在这些路径中,输入输出处理器5,对分别独立地传送MPEG数据中的图象数据和声音数据进行控制。此外,(1)、(2)是译码前的MPEG数据传送路径。在(1)、(2)的传送路径中,输入输出处理器5分别传送压缩图象数据和压缩声音数据。(3)、(4)分别为译码后的图象、声音数据的传送路径。译码后的图象、声音数据,按照外部的显示装置(图中未示出)、声音输出装置(图中未示出)的各自的输出速率进行传送。
DMAC5a,按照IO处理器5的控制执行数据流输入部1、图象输出部12、声音输出部13及缓冲存储器2之间的DMA传送、缓冲存储器2与外部存储器3之间的DMA传送、外部存储器3与FIFO存储器4之间的DMA传送。
图象输出部12,根据外部的显示装置(CRT等)的输出速率(例如水平同步信号Hsync的周期)对输入输出处理器5发出数据请求,并由输入输出处理器5通过上述传送路径(3)将所输入的图象数据输出到该显示装置。
声音输出部13,根据外部的声音输出装置的输出速率对输入输出处理器5发出数据请求,并由输入输出处理器5通过上述传送路径(4)将所输入的声音数据输出到声音输出装置(D/A转换器、声音放大器、扬声器的组合等)。
主I/F部14,是用于与外部的主处理器、例如在DVD再生装置的情况下对其进行总体控制的处理器进行通信的接口。在该通信中,从主处理器发送MPEG数据流的译码开始、停止、快放再生、倒放再生之类的指示等。
<2.2译码处理部的结构>
在图4中,译码处理部1002,备有FIFO存储器4、逐次处理部1003、定型处理部1004,对从输入输出处理部1001通过FIFO存储器4供给的MPEG数据进行译码处理。此外,逐次处理部1003备有处理器7、内部存储器8。定型处理部1004备有代码变换部9、象素运算部10、象素读写部11、缓冲器200、缓冲器201。
FIFO存储器4,由2个FIFO构成,在IO处理器5的控制下以先进先出的方式分别存储从外部存储器3传送到的压缩图象数据、压缩声音数据。
<2.2.1逐次处理部>
处理器7,执行存储在内部存储器8内的OS,并在OS的控制下对存储在该内部存储器8内的用于标题分析处理的程序、用于声音译码处理的程序进行切换。以下,详细说明标题分析处理和声音译码处理。
<2.2.1.1标题分析处理>
图5示出处理器7执行的标题分析处理的详细内容及对其他各部的控制内容。在该图中用缩写词示出的宏数据块标题中的各数据,在上述文献等中已有说明,所以这里将其说明省略。
如该图所示,处理器7向代码变换部9发出命令,要求逐次取得经VLD后的标题部分的数据,并根据其内容对代码变换部9、象素运算部10、象素读写部11设定在宏数据块的译码中所需要的各种数据。处理器7还在标题分析过程中指示代码变换部9开始宏数据块本体部分的译码。
在图5中,处理器7向代码变换部9发出用于取得MBAI(宏数据块地址增量)的命令(S101),并由代码变换部9取得MBAI。如果根据该MBAI该宏数据块数据是跳跃宏数据块(如果当前想要进行译码的宏数据块与前一个帧的对应宏数据块相同),则由于宏数据块被省略,所以进入S118,如果不是跳跃宏数据块,则继续进行标题分析(S102、S103)。
接着,处理器7发出用于取得MBT(宏数据块类型)的命令,并由代码变换部9取得MBT。根据该MBT判断数据块的扫描方式是Z形扫描还是交替扫描,并向象素运算部10指示缓冲器200的读出顺序(S104)。
进一步,处理器7根据已经取得的标题部分的数据判定STWC(时空加权代码)是否存在(S105),如存在时,发出命令并取得该代码(S106)。
按同样方式,处理器7取得FrMT(帧运动方式)、FiMT(字段运动方式)、DT(DCT类型)、QSC(量化器换算码)、MV(运动矢量)、CBP(编码数据块模式)(S107-S116)。这时,处理器7,将FrMT、FiMT、DT的分析结果通知象素读写部11,将QSC的分析结果通知象素运算部10,并将CBP的分析结果通知代码变换部9。由此,可以对代码变换部9、象素运算部10、象素读写部11设定在IQ、IDCT、动态补偿中所需要的信息。
接着,处理器7向代码变换部9输出宏数据块本体部分的VLD开始的指示(S117)。在接收到该通知后,代码变换部9开始进行VLD。
进一步,处理器7,根据MV数据计算运动矢量(S118),并将计算结果通知象素读写部11(S119)。
处理器7之所以如上所述在有关运动矢量的处理(S118~S119)之前发出VLD开始的指示(S117),其原因如下。
在定型处理部1004中,按代码变换部9、象素运算部10、象素读写部11的顺序进行流水线方式的处理。这时,定型处理部1004的各部,在接收到标题分析结果的各种数据后进行各部的处理。在图5中完成了S116的处理的时刻,象素读写部11没有接收到运动矢量的数据因而不能进行处理,但代码变换部9和象素运算部10接收到其各自的处理所需的数据并变成可进行处理的状态。因此,可先开始进行定型处理,在代码变换部9和象素运算部10进行处理的过程中计算运动矢量并将计算结果通知象素读写部11。因此,本实施形态,可以缩短宏数据块的译码处理所需花费的时间,因而能提高译码处理部1002的处理效率。
最后,处理器7将宏数据块的标题分析结束信号通知OS(S120)。但在1帧的标题分析结束时,处理器7将1帧结束信号取代宏数据块的标题分析结束信号通知OS。
按照如上方式,处理器7完成1个宏数据块的压缩图象数据的标题分析。
<2.2.1.2声音译码处理>
在声音译码处理中,处理器7对从FIFO存储器4读出的压缩声音数据进行标题部分和数据部分的分析,并通过译码处理对频道进行下行混频。处理器7将由这一连串的处理得到的声音数据通过存储控制器6输出到外部存储器3。
<2.2.2定型处理部>
图6示出译码处理部1002的各部动作时序。在该图中横轴为时间轴。
代码变换部9,按每个宏数据块对从FIFO存储器4读出的压缩图象数据进行VLD。如该图所示,代码变换部9将经VLD后的数据中的标题部分(图中的虚线区间)传送到处理器7,并将宏数据块(由亮度数据块Y0~Y3及色差数据块Cb、Cr组成的6个数据块)的数据(图中的实线区间)通过缓冲器200传送到象素运算部10。由代码变换部9译码后的宏数据块数据是表示空间频率分量的数据。
代码变换部9,在进行标题部分的VLD时,与处理器7的标题分析处理并行动作。代码变换部9,当接收到由处理器7请求各种数据的命令时,将对应的数据输出到处理器7。代码变换部9,在完成对1个宏数据块的VLD后,向处理器7输出VLD结束信号。
缓冲器200,用于保持表示由代码变换部9写入的1个数据块(8×8象素部分)的空间频率分量的数据。
象素运算部10,以数据块为单位对缓冲器200的数据块数据进行IQ及IDCT。象素运算部10的处理结果,如果是亮度数据块则是表示象素的亮度值或其差分的数据,如果是色差数据块则是表示象素的色差或其差分的数据,该处理结果通过缓冲器201传送到象素读写部11。
缓冲器201,用于保持1个数据块(8×8象素部分)的象素数据。
象素读写部11,以数据块为单位对象素运算部10的处理结果进行动态补偿。即,在P图象、B图象中,通过存储控制器6从外部存储器3的已完成译码的参照帧截出运动矢量指示的矩形区域,并与象素运算部10的处理结果的数据块合成,从而译码为原来的数据块图象。象素读写部11的译码结果,通过存储控制器6存储在外部存储器3内。
<3各部的处理时序>
以下,说明结构如上所述的逐次处理部1003和定型处理部1004的各部的处理时序。
图7示出译码处理部1002的各主要部的处理时序。在该图中,横轴表示时间,t0~t4表示时间轴上的时刻。
在该图中,处理器7,首先对1个宏数据块进行标题分析处理(标题信息的分析和运动矢量的计算)(t0~t2)。在该处理中,处理器7,当结束标题信息的分析时(t1),在进行运动矢量的计算处理之前,向代码变换部9输出宏数据块本体部分的VLD开始指示。在完成1个宏数据块的标题分析后,处理器7开始进行声音译码处理(t2)。当代码变换部9完成宏数据块本体部分的VLD时(t3),处理器7将声音译码处理中断,并开始标题分析处理。
处理器7之所以如上所述在完成1个宏数据块的标题分析后并不立即进行下一个宏数据块的标题分析而是进行声音译码处理,其原因如下。即,处理器7在进行标题分析时,向代码变换部9发出命令要求获得由代码变换部9进行了VLD的标题部分的信息,所以,在处理器7进行标题分析时,代码变换部9必须是对标题部分进行VLD的状态。与此不同,在处理器7完成了标题分析的时刻,代码变换部9正进行着宏数据块本体部分的VLD,而不是对标题部分进行VLD的状态。
代码变换部9,与处理器7的标题分析并行操作,进行宏数据块标题部分的VLD(t0~)。接着,在接到来自处理器7的VLD开始指示后,代码变换部9开始进行宏数据块本体的VLD(t1)。当完成宏数据块本体部分的VLD时,代码变换部9向逐次处理部1003输出表示VLD已完成的VLD结束信号。因此,处理器7将声音译码处理中断,并开始标题分析处理(t3)。
象素运算部10及象素读写部11,以流水线方式分别接在代码变换部9、象素运算部10之后进行处理。
如上述处理时序所示,处理器7通过优先执行标题分析,可以使定型处理部1004的各部得到在宏数据块的译码中所需的各种数据,从而能无滞后地进行处理。此外,定型处理部1004的各部,由于按流水线方式进行处理,所以能够实现高速处理。并且,处理器7,利用在一个宏数据块的标题分析与下一个宏数据块的标题分析之间的空闲时间进行声音译码处理,从而可以减少处理器7的空闲时间,因而使处理效率提高。
另外,处理器7,在结束了标题分析处理中的标题信息分析的时刻(t1),向代码变换部9输出宏数据块本体部分的VLD开始指示,所以,使VLD的开始定时提前,因而可以将1个宏数据块的总体译码所花费的时间缩短相当于该提前的时间。
<4逐次处理部的OS>
在处理器7中,OS的操作是为了能以高的效率按上述处理时序进行各项处理。OS将标题分析结束或宏数据块本体的VLD结束等信号作为中断信号检出,并根据对这些信号的检出在使标题分析处理优先的前提下进行标题分析和声音译码处理的切换。
图8示出处理器7的软件结构图。
在该图中,图象线程是处理器7执行标题分析处理用的线程。声音线程是处理器7执行声音译码处理用的线程。空线程是当处理器7既不进行标题分析处理也不进行声音译码处理时执行的空闲用线程。
OS介于处理器7与各线程之间,用于管理根据中断转移的各线程的状态。其中,各线程可取得3种状态,即执行状态、等待状态、可执行状态。此外,OS还根据各线程的转移后的状态在使图象线程优先的前提下将某个线程分配给处理器7。进一步,当在标题分析处理和定型处理中发生差错时,OS还进行差错处理。
<4.1中断信号>
图9是表示OS检测的各种中断信号的表。
在该图中,第2列表示中断信号的类别。第3列表示中断信号的输出源。第4列表示中断信号的产生原因。另外,在该图中,为便于说明,在第1列中附加了识别序号。
①标题分析结束信号,是处理器7在1个宏数据块的标题分析处理结束时输出的信号。
②1帧结束信号,是处理器7在1个帧的标题分析处理结束时取代①的标题分析结束信号输出的信号。
③VLD忙信号,是代码变换部9输出的信号。代码变换部9,在正常情况下将与由处理器7发出的命令对应的数据返送到处理器7,但当对该数据的VLD尚未完成时取代该数据而输出VLD忙信号。
④VLD结束信号,是代码变换部9在1个宏数据块的VLD结束时输出的信号。
⑤垂直同步信号,是由外部输入到图象声音处理装置1000的信号。是用于使1帧的宏数据块译码周期与垂直同步信号的周期一致的信号。
⑥VLD就绪信号,是在代码变换部9输出③的VLD忙信号后当该数据的VLD完成时输出的信号。
⑦声音数据忙信号,是在由处理器7请求压缩声音数据时还没有从外部存储器3输入对应的压缩声音数据的情况下由FIFO存储器4输出的信号。
⑧声音数据就绪信号,是FIFO存储器4在输出⑦的声音数据忙信号后从外部存储器3输入了对应的压缩声音数据时输出的信号。
⑨VLD差错信号,是在VLD中发生了差错时由代码变换部9输出的信号。
⑩动态补偿差错信号,是在动态补偿中发生了差错时由象素读写部11输出的信号。
<4.2线程的状态转移>
当发生了图9所示中断信号中的①~⑧的信号时,图象线程及声音线程的状态按如下所示转移。
<4.2.1图象线程>
图10是表示图象线程的状态转移的图。
在箭头附近示出的中断信号①~③及④~⑥,表示该箭头的转移是由该中断信号引起的。此外,在等待状态中记载的(1)~(3),分别表示具体的等待原因。①~③、(1)~(3)及④~⑥,分别相对应。
详细地说,图象线程,根据在处理器7中执行的情况,当1个宏数据块的标题分析处理结束时(①),从执行状态转移到等待状态,等待代码变换部9的宏数据块本体部分的VLD结束((1)),当VLD结束时(④),从等待状态转移到可执行状态。
同样,图象线程,根据在处理器7中执行的情况,当1个帧的标题分析结束时(②),从执行状态转移到等待状态,等待从外部输入垂直同步信号(②),当输入垂直同步信号时(⑤),从等待状态转移到可执行状态。
另外,图象线程,当由代码变换部9输出VLD忙信号时(③),从执行状态转移到等待状态,等待完成该数据的VLD(③),当由代码变换部9输出VLD就绪信号时(⑥),从等待状态转移到可执行状态。
<4.2.2声音线程>
图11是表示声音线程的状态转移的图。
该图也与图10一样,示出该箭头的转移是由在箭头附近示出的中断信号⑦、⑧引起的,中断信号⑦、等待原因(4)、中断信号⑧相互对应。
即,声音线程,当由FIFO存储器4输出声音数据忙信号时(⑦),从执行状态转移到等待状态,等待为FIFO存储器准备数据((4)),当由FIFO存储器4输出声音数据就绪信号时(⑧),从等待状态转移到可执行状态。
OS备有使线程与线程当前状态对应的状态表,当检测到中断信号①~⑧时,根据中断信号的类别对状态表进行重写,从而对线程的状态进行管理。
图12是表示状态表的一例的图。在该图中,第1列表示线程的类别,第2列表示线程类别的线程当前状态。例如,当检测出标题分析结束信号①时,OS将图10的图象线程状态从执行状态重写为等待状态。
这样,OS可根据图10和图11所示的因中断引起的线程转移对状态表进行重写。
<4.4处理器的分配>
在根据中断进行了状态表的重写后,OS进行选择分配给处理器7的线程的选择处理。
图13是表示OS选择分配给处理器7的线程时的选择处理的流程图。
首先,OS参照状态表判断图象线程是否是执行状态(步骤121)。如判断结果表明图象线程是执行状态,则结束该选择处理。
当步骤121的判断结果表明图象线程不是执行状态时,OS接着判断图象线程是否是可执行状态(步骤122)。当判断结果表明图象线程是可执行状态时,OS将当前处在执行状态的声音线程转移到可执行状态,然后将图象线程转移到执行状态。就是说,OS对处理器7执行的声音线程和图象线程进行切换(步骤123、124)。
OS进行控制的方式是,当图象线程是执行状态时结束本选择处理,而当图象线程是可执行状态时将图象线程转移到执行状态,从而优先执行图象线程。
当步骤122的判断结果表明图象线程不是可执行状态时,就是说图象线程是等待状态时,OS判断声音线程是否是可执行状态(步骤125)。
当步骤125的判断结果表明声音线程是可执行状态时,OS使声音线程为执行状态(步骤126)。
当步骤125的判断结果表明声音线程不是可执行状态时,即当图象线程和声音线程都处在等待状态时,OS使处理器7执行在处理器7中不进行任何处理的所谓空闲线程的程序(步骤127)。
<4.5差错处理>
当检测到图9所示的⑨VLD差错信号及⑩动态补偿差错信号时,OS将由处理器7执行中的线程中断,并进行差错处理。在差错处理中,OS向定型处理部1004中的象素运算部10和象素读写部11输出复位信号,并将与该宏数据块的译码有关的数据全部废弃。这时,象素读写部11在输入了复位信号后进行差错补偿。这里,所谓差错补偿,是为进行下一个时间片的宏数据块的译码而从外部存储器3读出与被废弃的宏数据块的前一个帧位置相同的宏数据块的处理。
在输出复位信号后,OS将状态表中的图象线程的状态重写为可执行状态。因此,通过图13所示的OS的选择处理使图象线程变为执行状态。处理器7分配图象线程并执行下一个时间片的宏数据块的标题分析。
<5动作说明>
对结构如上所述的图象声音处理装置1000,说明其动作。
<5.1输入输出处理部的动作>
在输入输出部1001中,以非同步方式从数据流输入部1输入的MPEG数据流,在输入输出处理器5的控制下,通过缓冲存储器2、存储控制器6暂时存储在外部存储器3内,进一步,通过存储控制器6保持在FIFO存储器4内。这时,IO处理器5是根据剩余容量对FIFO存储器4供给压缩动图象数据、压缩声音数据。这样,IO处理器5能够适当地对FIFO存储器4供给一定适当量的压缩动图象数据、压缩声音数据,所以,可以使译码处理部1002与非同步的输入输出分开,专门进行译码处理。到此为止的处理,由上述输入输出处理部1001与译码处理部1002彼此独立地并行进行。
<5.2译码处理部1002的动作>
另一方面,在译码处理部1002中,由处理器7、代码变换部9、象素运算部10、象素读写部11对保持在FIFO存储器4内的MPEG数据流进行译码。以下,将表示FIFO存储器4以后的的译码动作的说明图分成未发生差错时的动作(正常时的动作)、VLD差错时的动作、动态补偿差错时的动作并分别示于图14A、B、15A、B。图16A、B。
<5.2.1正常时的动作>
图14A、图14B是根据图7详细地表示出译码处理部1002各部的译码动作的图。
如该图所示,处理器7,按照OS的控制,反复交替地进行由①标题分析结束信号和④VLD结束信号引起的图象线程的标题分析和声音线程的声音译码。
详细地说,处理器7,在进行1个宏数据块的标题分析并将分析结果通知代码变换部9、象素运算部10、象素读写部11后,指示代码变换部9开始进行宏数据块的VLD。然后,处理器7计算运动矢量并将计算结果输出到象素读写部11。在该输出之后,处理器7输出①标题分析结束信号。
当OS检测到①标题分析结束信号时,通过图13的选择处理使声音线程变成执行状态。在声音线程变成执行状态后,处理器7开始声音译码处理。译码后的声音数据暂时保持在内部存储器8内,然后通过存储控制器6向外部存储器3进行DMA传送。
在声音译码处理中,当OS检测到④VLD结束信号时,使图象线程变成可执行状态,所以,通过图13的选择处理使声音线程变为可执行状态,从而使图象线程变成执行状态。因此,处理器7开始进行下一个宏数据块的标题分析。
另外,代码变换部9,从处理器7接受宏数据块的VLD开始指示,执行宏数据块本体的VLD,并按宏数据块内的每个数据块存储在缓冲器200内。代码变换器9,在结束VLD时向处理器7输出④VLD结束信号。
象素运算部10,与代码变换部9并行操作,以数据块为单位对存储在缓冲器200内的数据块数据进行IQ、IDCT,并将其处理结果存储在缓冲器201内。
象素读写部11,与象素运算部10并行操作,根据缓冲器201的数据块数据及由处理器7的标题分析通知的运动矢量,如图14A、图14B所示从外部存储器3的参照帧截出矩形区域,并进行数据块合成。数据块合成结果,通过存储控制器6存储在外部存储器3内。
以上说明的是不存在跳跃宏数据块时的动作,但在跳跃宏数据块的情况下,代码变换部9和象素运算部10不动作,只象素读写部11进行操作。当存在着跳跃宏数据决时,因与参照帧的矩形区域的图象相同,所以由象素读写部11将该图象作为译码图象复制在外部存储器3内。
在跳跃宏数据块的情况下,代码变换部9按如下方式生成向处理器7输出的④VLD结束信号。首先,代码变换部9求取以下3个信号的逻辑积,即表示处理器器7已将动态补偿动作开始控制信号发送到象素读写部11的信号、表示象素读写部11可进行动态补偿动作的信号、及表示存在着跳跃宏数据块的信号。然后,代码变换部9求取该逻辑积与附加在宏数据块末尾的宏数据块结束信号的逻辑和,并将该逻辑和的结果作为④VLD结束信号输入到处理器。
<5.2.2 VLD差错时的动作>
图15A、图15B是表示代码变换部9中发生⑨VLD差错时的动作的图。
在该图中,当OS在处理器7的标题分析处理过程中检测到从代码变换部9输出的⑨VLD差错信号时,执行差错处理,并向象素运算部10和象素读写部11输出复位信号。因此,在象素运算部10和象素读写部11中将与译码中的宏数据块有关的数据废弃。在差错处理后,OS使图象线程变为可执行状态。由此,供助图13的选择处理图象线程变成执行状态,并开始进行下一个线程的宏数据块的标题分析。
在这之后的动作,与图14A、图14B相同。
<5.2.3动态补偿差错时的动作>
图16A、图16B是表示象素读写部11中发生⑩动态补偿差错时的动作的图。
在该图中,当OS在处理器7的声音译码处理过程中检测到从象素读写部11输出的⑩动态补偿差错信号时,执行差错处理,并向代码变换部9、象素运算部10、象素读写部11输出复位信号。因此,在代码变换部9、象素运算部10、象素读写部11中将与译码中的宏数据块有关的数据废弃。在差错处理后,OS使图象线程变为可执行状态,并由此通过图13的选择处理使图象线程变为执行状态,从而开始进行下一个线程的宏数据块的标题分析。
在这之后的动作,与图14A、图14B相同。
按照以上的结构,本发明的图象声音处理装置,在译码处理部1002中由逐次处理部1003和定型处理部1004分担对压缩图象数据的译码处理。因此,与现有的由一个处理器进行压缩图象数据的全译码的情况相比,可减轻在逐次处理部1003和定型处理部1004的处理上所需花费的负荷,并能提高处理效率。此外,逐次处理部,通过优先执行每个宏数据块的标题分析处理,可使基于标题分析进行的定型处理部的译码处理无滞后地进行,因而能从时间上提高处理效率。另外,声音译码处理,由于与压缩图象数据的译码相比处理量小,所以可以在逐次处理部执行标题分析处理的间歇时间进行,因而能进一步地从时间上提高处理效率。这样,由于处理效率提高,所以,译码处理部1002,即使不使用高速动作的时钟,也能实现MPEG数据流的全译码。具体地说,当将本图象声音处理装置在1个芯片上LSI化时,用100MHz以下的工作时钟(实际为54MHz)就可以进行上述全译码。
另外,本发明也可以由安装了通用CPU和DSP(数字信号处理器)的计算机实现。在这种情况下,计算机的主存储装置,预先存储用于对压缩图象数据所包含的每个宏数据块进行标题分析的标题分析用程序、用于对压缩声音数据进行译码的声音译码用程序、用于在使标题分析处理优先的前提下对标题分析程序和声音译码程序进行切换的OS用程序、及用于进行除压缩图象数据标题分析以外的进行压缩图象数据的译码的定型处理用程序。并且,通用CPU执行标题分析用程序、声音译码用程序、OS用程序,DSP执行定型处理用程序。就是说,CPU执行实施形态的逐次处理部1003进行的逐次处理,DSP执行定型处理部1004的定型处理。按照这种结构,通用CPU,无滞后地优先进行标题分析处理,而在不进行标题分析处理的空闲时间进行声音译码处理,所以能提高通用CPU的处理能力。此外,由于CPU无滞后地进行标题分析,就可以使DSP在接收到标题分析处理的处理结果数据后无滞后地进行定型处理。
虽然已参照附图通过各例对本发明进行了全面的说明,但应注意到,本技术领域的熟练技术人员显然可以进行各种变更和修改。所以,除非这类变更和修改脱离本发明的的范围,否则均应视为包括在本发明的范围内。