(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕(共有メモリを利用して処理開始タイミングを同期させるデータ処理システム)
本発明の代表的な実施の形態に係るデータ処理システム(1)は、外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムである。前記データ処理システムは、前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部(20、21)と、夫々の前記データ処理制御部によってアクセス可能とされ、前記データ処理の実行が可能か否かを表す値が格納される第1領域(121)を有するメモリ部(12)と、を有する。夫々の前記データ処理制御部は、自己のデータ処理の実行の準備が完了したら前記第1領域の値を更新し、前記第1領域の値が所定の値(ゼロ)となったら、夫々の前記データ処理部は夫々の前記データ処理の開始のタイミングを合わせて前記データ処理を実行する。
【0017】
これによれば、夫々のデータ処理制御部は前記第1領域の値が前記所定の値になるのを待って、前記データ処理を開始するから、夫々のデータ処理制御部のデータ処理の開始のタイミングを合わせることができる。また、夫々のデータ処理制御部が前記第1領域の値を参照することで、データ処理の実行が可能か否かを判断するので、前記複数のデータ処理制御部の間で予め主従関係を決めておく必要は無い。
【0018】
〔2〕(データ処理システムの具体的構成)
項1のデータ処理システムにおいて、前記データ群は、前記データ処理の処理単位のデータが複数個連続したデータであり、前記処理単位のデータは、処理対象とされるコンテンツデータと前記コンテンツデータの処理結果を出力するタイミングを指示する時間情報(PTS)とを含む。また、前記データ処理制御部は、自らに供給される動作基準クロックに基づいて前記データ処理の開始からの経過時間を表す基準時間を生成する基準時間生成部(141、161)と、前記処理単位のデータの前記データ処理を実行するとともに、前記基準時間を参照し、前記時間情報に基づくタイミングで処理結果を出力するデータ処理部(142、162)と、前記第1領域の値の更新を行うと共に、前記基準時間生成部と前記データ処理部の動作を制御する制御部(13、15)と、を有する。前記制御部は、前記第1領域の値が前記所定の値(ゼロ)となったことを確認したら、前記基準時間の生成を開始させるとともに、前記データ処理を開始させる。
【0019】
項2のデータ処理システムにおいて、夫々のデータ処理制御部は、前記処理単位のデータのデータ処理を実行し、処理結果を前記基準時間を参照しながら所定のタイミングで出力する。これによれば、例えば夫々のデータ処理制御部が共通の前記動作基準クロックを用いる場合には、前記データ処理の開始からの経過時間を表す前記基準時間は夫々のデータ処理制御部間で等しくなるから、上記のようにデータ処理の開始タイミングさえ合わせれば、夫々のデータ処理制御部の処理結果は共通の前記基準時間にしたがって出力されるので、以降の処理では同期をとるために新たな処理を行う必要はない。
【0020】
〔3〕(ずれ調整方法)
項2のデータ処理システムにおいて、夫々の前記データ処理制御部には、相互に異なる前記動作基準クロックが供給される。また、前記制御部は、当該制御部を含む前記データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間と、他の前記データ処理制御部に供給された前記動作基準クロックに基づいて計測した動作の経過時間とのずれを表すずれ量を算出し、前記ずれ量が一定量を超えた場合には、前記データ処理制御部間の処理結果の出力タイミングのずれが減少するように、前記ずれ量に基づいて、当該制御部を含む前記データ処理制御部による処理結果の出力タイミングを調整する。
【0021】
前述したように、夫々のデータ処理制御部が共通の動作基準クロックを用いる場合には、前記基準時間は夫々のデータ処理制御部間で等しくなるが、動作基準クロックが相互に異なる場合には、夫々のデータ処理制御部間で前記基準時間がずれる可能性がある。前記基準時間がずれたとすると、上記のようにデータ処理の開始タイミングを合わせたとしても、参照する前記基準時間がデータ処理制御部毎に異なるので、処理結果の出力タイミングがずれることになる。そこで、項3のデータ処理システムでは、夫々のデータ処理制御部での動作の経過時間に基づいて、データ処理制御部間の前記基準時間のずれ量を把握し、前記ずれ量に基づいて処理結果の出力タイミングを調整する。これにより、前記基準時間がずれた場合であっても、データ処理制御部間の処理結果の出力タイミングのずれを低減させることができる。
【0022】
〔4〕(ずれ調整方法の具体例:出力タイミングの調整)
項3のデータ処理システムにおいて、前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記時間情報が示すタイミングに対して前記調整時間だけずらした時刻に処理結果を出力するように前記データ処理部を制御することである。
【0023】
これによれば、ずれ量に応じた調整時間に応じて一方の処理結果の出力タイミングをずらすから、容易にデータ処理制御部間の出力タイミングのずれを低減させることができる。
【0024】
〔5〕(ずれ調整方法の具体例:デコード開始タイミングの調整)
項3のデータ処理システムにおいて、前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記調整時間に応じて、前記データ処理の開始タイミングをずらすように前記データ処理部を制御することである。
【0025】
例えば前記データ処理部において、データ処理を開始してから完了するまでの時間が略一定である場合には、上記のように前記データ処理の開始タイミングをずらすことで出力タイミングをずらすことができ、容易に出力タイミングのずれを低減させることができる。
【0026】
〔6〕(ずれ調整のための具体的構成)
項3乃至5のいずれかのデータ処理システムにおいて、前記異なる種別のデータ群は、符号化されたストリーム形式の動画像の映像データと音声データとを含み、前記映像データと前記音声データにおける前記処理単位のデータは1つのフレームデータであり、前記複数のデータ処理制御部は、符号化された前記映像データの復号処理を行って処理結果を出力する第1データ処理制御部(20又は21)と、符号化された前記音声データの復号処理を行って処理結果を出力する第2データ処理制御部(21又は20)である。また、前記第1データ処理制御部と前記第2データ処理制御部は、前記制御部(13又は15)と、前記データ処理部(142又は162)と、前記基準時間生成部(141又は161)とを夫々有する。更に前記メモリ部は、前記第1データ処理制御部によって前記第1データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第2領域(122又は123)と、前記第2データ処理制御部によって前記第2データ処理制御部(123又は122)に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第3領域とを有する。前記第1データ処理部における前記制御部は、前記第2領域と前記第3領域を参照して前記ずれ量の算出を行い、前記出力タイミングの調整を行う。
【0027】
上記のように、前記第2領域と前記第3領域を前記メモリ部に設け、その領域に前記第1データ処理制御部と前記第2データ処理制御部の夫々が前記動作の経過時間を書き込むことで、お互いの前記経過時間を容易に把握することができる。また、一般に人間は映像の変化よりも音声の変化の方が敏感であるということに着目し、項6のデータ処理システムでは、映像データのデータ処理を行う前記第1データ処理制御部が前記タイミングの調整を行う。これにより、視聴者が映像データの出力タイミングを変更したことを認識することなく、データ処理制御部間の出力タイミングのずれを低減させることができる。
【0028】
〔7〕(経過時間の情報:最小公倍数)
項6のデータ処理システムにおいて、前記第2領域及び前記第3領域に格納される前記経過時間の情報は、前記第1データ処理制御部の前記動作基準クロックの1周期の時間と前記第2データ処理制御部の前記動作基準クロックの1周期の時間との最小公倍数に基づく時間毎にカウントされる値である。
【0029】
例えば夫々の前記動作基準クロックの周波数が異なる場合であっても、前記経過時間を前記最小公倍数に基づく時間毎にカウントすれば、前記第1データ処理制御部と前記第2データ処理制御部にとって共通の時間軸で経過時間を判別することができ、ずれ時間を容易に把握することができる。
【0030】
〔8〕(所定の時間間隔で前記ずれ量の算出を行う)
項3乃至7のいずれかのデータ処理システムにおいて、前記制御部は、前記出力タイミングの調整を所定の時間間隔で行う。
【0031】
例えば人間が認知できる映像の変化は200ms程度なので、それよりも小さいずれ時間であれば、視聴者は動画像の音声と映像のずれを認識できない可能性が高い。そこで、例えば人間が認識できない程度の時間間隔で上記ずれ量の算出を行えば、視聴者が動画像のずれを認識することなく、且つ前記タイミング調整に係る処理負荷を低減することができ、システム全体の低消費電力化に資する。
【0032】
〔9〕(指定位置からのコンテンツの再生)
項6乃至8のいずれかのデータ処理システムにおいて、前記動画像の再生開始時刻(200)が指定されたとき、前記第1データ処理制御部と前記第2データ処理制御部のいずれか一方における前記データ処理部は、前記指定された時刻に応じた前記時間情報を持つフレームデータ(205)を選択し、前記選択したフレームデータから順に復号処理を開始して処理結果を外部再生装置に出力する。他方の前記データ処理部は、前記指定された時刻に応じた前記時間情報を持つフレームデータ(206)を選択し、当該選択したフレームデータと前記一方のデータ処理部によって選択されたフレームデータの前記時間情報とが一致する場合には、当該選択したフレームデータから順に前記復号処理を開始して処理結果を外部再生装置に出力し、一致しない場合には、前記一方のデータ処理部によって選択されたフレームデータの出力タイミングに合うように、前記選択したフレームデータの再生を制御する。
【0033】
動画像を最初から再生するのではなく、指定された再生時刻から再生を開始する場合(以下、「途中再生」とも称する。)には、指定された再生時刻に一致する前記時間情報を持つフレームデータを再生の先頭のフレームデータとして再生を開始するが、一致した前記時間情報を持つフレームデータが無い場合には、フレームデータの途中から再生することはできないので、指定された再生時刻に対応する前記時間情報を持つフレームデータの先頭から再生を開始する。すなわち、指定された再生時刻をフレームデータの先頭の時刻にずらすことで途中再生を実現する。この場合に、途中再生の先頭のフレームデータの前記時間情報が映像と音声で異なるときは、映像又は音声のいずれか一方の先頭フレームデータの前記時間情報で指定されるタイミングでフレームデータを出力するが、当該タイミングは、他方の先頭フレームデータにとっては、フレームデータの途中のタイミングとなってしまうので、再生することができない。そこで、項9のデータ処理システムでは、再生開始時の映像と音声の2つの先頭フレームデータのうち、フレームデータの先頭でないタイミングが指定されたフレームデータについての再生を制御することで、指定された再生時刻からの動画像の再生を可能とする。
【0034】
〔10〕(フレームデータの再生制御の具体例:他方のフレームデータの再生時間を調整)
項9のデータ処理システムにおいて、前記他方の前記データ処理部(162)は、前記選択したフレームデータ(206)の再生時間を変更することで、前記フレームデータの再生を制御する。
【0035】
項10のデータ処理システムでは、一方の先頭フレームデータの出力タイミングに合うように、他方の先頭フレームデータの再生時間を調整するから、途中再生の場合でも映像と音声を同じタイミングで出力することができる。
【0036】
〔11〕(フレームデータの再生制御の具体例:無音データの出力)
項9のデータ処理システムにおいて、前記一方の前記データ処理部は、前記第1データ処理制御部における前記データ処理部(142)であり、前記他方の前記データ処理部は、前記第2データ処理制御部における前記データ処理部(162)である。また、前記第2データ処理制御部における前記データ処理部は、前記選択した音声のフレームデータ(206)の代わりに無音状態を示すフレームデータ(208)を出力することで、前記フレームデータの再生を制御する。
【0037】
映像のフレームデータの出力タイミングに合うように、音声が無音状態のフレームデータを挿入することで、指定された再生時刻からの動画像の再生を、容易に実現することができる。
【0038】
〔12〕(共有メモリの具体的な利用方法の一例)
項2乃至11のいずれかのデータ処理システムにおいて、前記データ処理の実行が可能か否かを表す値の初期値として、前記複数のデータ処理制御部の個数に応じたカウント値(“2”)が設定され、前記制御部は前記データ処理部によるデータ処理の実行の準備が完了したら前記カウント値をディクリメントすることで前記更新を行う。また、前記所定の値はゼロを示すカウント値である。
【0039】
これによれば、夫々のデータ処理制御部のデータ処理の開始タイミングを合わせことができるシステムを容易に実現することができる。
【0040】
〔13〕(停止時は共有メモリをインクリメントする)
項3乃至12のいずれかのデータ処理システムにおいて、前記制御部は、前記データ処理部によるデータ処理の実行を停止する場合には、前記カウント値を前記所定の値からインクリメントすることで更新する。
【0041】
これによれば、例えば一の前記データ処理制御部のストリームデータの入力が滞った場合に、他の前記データ処理制御部によるデータ処理の実行を停止することができるから、他の前記データ処理制御部による処理結果だけが出力されることを防止することができ、夫々の前記データ処理制御の同期動作を維持することができる。
【0042】
〔14〕(複数の共有メモリを利用して処理開始を同期させるデータ処理システム)
本発明の代表的な別の実施の形態に係るデータ処理システム(5)は、外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムである。前記データ処理システムは、前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部(20、21)と、夫々の前記データ処理制御部によってアクセス可能とされ、前記データ処理の実行が可能か否かを表す値が格納される第1領域(501、502)を、前記データ処理制御部毎に有するメモリ部(52)と、を有する。夫々の前記データ処理制御部は、自己の前記データ処理の実行の準備が完了したら、自己の前記第1領域の値を更新するとともに、他の前記データ処理制御部に対応する前記第1領域の値を参照し、夫々の前記第1領域の値が所定の値(ゼロ)となったら、夫々の前記データ処理部は夫々の前記データ処理の開始のタイミングを合わせて前記データ処理を実行する。
【0043】
これによれば、項1と同様に、夫々のデータ処理制御部は前記第1領域の値が前記所定の値になるのを待って、前記データ処理を開始するから、夫々のデータ処理制御部のデータ処理の開始のタイミングを合わせることができる。また、夫々のデータ処理制御部が前記第1領域の値を参照することで、データ処理の実行が可能か否かを判断するので、前記複数のデータ処理制御部の間で予め主従関係を決めておく必要は無い。
【0044】
〔15〕(データ処理システムの具体的構成)
項14のデータ処理システムにおいて、前記データ群は、前記データ処理の処理単位のデータが複数個連続したデータであり、前記処理単位のデータは、処理対象とされるコンテンツデータと、前記コンテンツデータの処理結果を出力するタイミングを指示する時間情報(PTS)と、を含む。また、前記データ処理制御部は、自らに供給される動作基準クロックに基づいて前記データ処理の開始からの経過時間を表す基準時間を生成する基準時間生成部(141、161)と、前記処理単位のデータの前記データ処理を実行するとともに、前記基準時間を参照し、前記時間情報に基づくタイミングで処理結果を出力するデータ処理部(142、162)と、前記第1領域の値の更新を行うと共に、前記基準時間生成部と前記データ処理部の動作を制御する制御部(13、15)と、を有する。前記制御部は、前記第1領域の値が前記所定の値となったことを確認したら、前記基準時間の生成を開始させるとともに、前記データ処理を開始させる。
【0045】
これによれば、例えば夫々のデータ処理制御部が共通の前記動作基準クロックを用いる場合には、項2と同様に、上記のようにデータ処理の開始タイミングを合わせさえすれば、夫々のデータ処理制御部の処理結果は共通の前記基準時間にしたがって出力されるので、以降の処理では同期をとるために新たな処理を行う必要はない。
【0046】
〔16〕(ずれ調整方法)
項15のデータ処理システムにおいて、夫々の前記データ処理制御部には、相互に異なる前記動作基準クロックが供給される。また、前記制御部は、当該制御部を含む前記データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間と、他の前記データ処理制御部に供給された前記動作基準クロックに基づいて計測した動作の経過時間とのずれを表すずれ量を算出し、前記ずれ量が一定量を超えた場合には、前記データ処理制御部間の処理結果の出力タイミングのずれが減少するように、前記ずれ量に基づいて、当該制御部を含む前記データ処理制御部による処理結果の出力タイミングを調整する。
【0047】
これによれば、項3と同様に、前記基準時間がずれた場合であっても、前記データ処理制御部間の処理結果の出力タイミングのずれを低減させることができる。
【0048】
〔17〕(ずれ調整方法の具体例:出力タイミングの調整)
項16のデータ処理システムにおいて、前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記時間情報が示すタイミングに対して前記調整時間だけずらした時刻に処理結果を出力するように前記データ処理部を制御することである。
【0049】
これによれば、項4と同様に、容易にデータ処理制御部間の出力タイミングのずれを低減させることができる。
【0050】
〔18〕(ずれ調整のための具体的構成)
項16又は17のデータ処理システムにおいて、前記異なる種別のデータ群は、符号化されたストリーム形式の動画像の映像データと音声データとを含み、前記映像データと前記音声データにおける前記処理単位のデータは、1つのフレームデータであり、前記複数のデータ処理制御部は、符号化された前記映像データの復号処理を行って処理結果を出力する第1データ処理制御部(20)と、符号化された前記音声データの復号処理を行って処理結果を出力する第2データ処理制御部(21)である。また、前記第1データ処理制御部と前記第2データ処理制御部は、前記制御部(13、15)と、前記データ処理部(142、162)と、前記基準時間生成部(141、161)とを夫々有する。更に、前記メモリ部は、前記第1データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が前記第1データ処理制御部によって格納される第2領域(122)と、前記第2データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が前記第2データ処理制御部によって格納される第3領域(123)と、を有する。前記第1データ処理部における前記制御部は、前記第2領域と前記第3領域を参照して前記ずれ量の算出を行い、前記タイミングの調整を行う。
【0051】
これによれば、項6と同様に、前記第1データ処理制御部と前記第2データ処理制御部の夫々がお互いの前記経過時間を容易に把握することができ、且つ、視聴者が映像データの出力タイミングを変更したことを認識することなく、データ処理制御部間の出力タイミングのずれを低減させることができる。
【0052】
〔19〕(デッドロック回避方法1)
項14乃至18のいずれかのデータ処理システムにおいて、前記データ処理制御部は、自己の前記第1領域の値を更新した後に、他の前記データ処理制御部に対応する前記第1領域の値を参照する。
【0053】
これによれば、夫々の前記データ処理制御部がデータ処理の準備ができているにも関わらずデータ処理を開始できないというデッドロック状態を回避することができる。
【0054】
〔20〕(デッドロック回避方法2)
項14乃至19のいずれかのデータ処理システムにおいて、前記データ処理制御部は、他の前記データ処理制御部に対応する前記第1領域の値を参照し、所定時間経過後に自己の前記第1領域の値を更新する。
【0055】
これによれば、夫々の前記データ処理制御部がデータ処理の準備ができているにも関わらずデータ処理を開始できないというデッドロック状態を回避することができる。
【0056】
〔21〕(実施例1の半導体装置)
項1乃至13のいずれかのデータ処理システムは、シングルチップ又はマルチチップで構成されて成る。
【0057】
これによれば、システム全体の小面積化に資する。
【0058】
〔22〕(実施例2の半導体装置)
項14乃至20のいずれかのデータ処理システムは、シングルチップ又はマルチチップで構成されて成る。
【0059】
これによれば、システム全体の小面積化に資する。
【0060】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0061】
≪実施の形態1≫
図1に、本発明に係るデータ処理システムの一実施の形態として、複数のプロセッサコアを備えるマルチプロセッサシステムのブロック図を示す。同図に示されるマルチプロセッサシステム1は、特に制限されないが、公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。前記マルチプロセッサシステム1は、例えば携帯電話やカーナビゲーション用の動画コンテンツを再生するためのシステムLSIである。
【0062】
動画コンテンツのデータは、例えばMPEG(Moving Picture Expert Group)規格によって符号化されたストリームデータであり、映像ストリームデータと音声ストリームデータとが多重化されている。前記映像ストリームデータと前記音声ストリームデータの1フレーム単位の再生時間は異なる。例えば29.97フレーム毎秒の映像コンテンツの場合、映像ストリームデータの1フレームのデータの再生時間は約33msとされる。一方、音声ストリームデータはサンプリングレートにより符号化時に利用する周波数(例えば22kHz、44.1kHz、48kHz、及び192kHz等)に応じた再生時間とされる。
【0063】
動画コンテンツのデータは、通信ネットワーク等からコンテンツデータ格納装置2に一旦格納された後、マルチプロセッサシステム1に入力される。マルチプロセッサシステム1は、入力された動画コンテンツデータを、音声ストリームデータと映像ストリームデータに分離し、音声ストリームデータと映像ストリームデータについて個別に復号化処理を実行する。そして、復号化した映像データを映像データ表示部3に出力することにより映像を再生させ、復号化した音声データを音声データ発声部4に出力することにより音声を再生させることで、動画コンテンツの再生を実現する。
【0064】
前記マルチプロセッサシステム1は、主に映像データの復号処理を行う映像処理系20と、主に音声データの復号処理を行う音声処理系21と、システム全体を制御するための制御系と、に大きく分けることができる。前記映像処理系20と前記音声処理系21は、夫々CPUコアと演算ブロックとを含み、夫々別々のCPUコア上で別々のOSとアプリケーションプログラムが実行されることにより実現される。すなわち、マルチプロセッサシステム1における複数のCPUコアのうち、1つのCPUコア上では、第1のOSの管理の下に映像データ処理用のプログラムが実行されることにより前記映像処理系20が制御され、もう1つのCPUコア上では、第2のOSの管理の下に音声データ処理用のプログラムが実行されることにより前記音声処理系21が制御される。また、映像処理系20と音声処理系21は、別々の動作基準クロックが供給され、前記動作基準クロックに基づいてデータ処理が実行される。夫々の前記動作基準クロックは、例えば、図示されないPLL(Phase Locked Loop)回路によって、外部に接続される水晶発振器からのクロック信号又は外部から入力される外部クロック信号等に基づいて生成されるクロック信号である。
【0065】
前記制御系は、システム制御部10とコンテンツデータ取得部11から構成される。システム制御部10は、システム全体の統括的な制御を行う機能部であり、例えば、CPUコアによるプログラム処理で実現される。コンテンツデータ取得部11は、システム制御部10からの指示に基づいて、コンテンツデータ格納装置2に蓄えられた動画像のコンテンツデータを取得する。システム制御部10は、取得したコンテンツデータを映像ストリームデータと音声ストリームデータに分離し、前記映像ストリームデータを映像処理系20に、前記音声ストリームデータを音声処理系21に夫々与える。なお、前記制御系は、前記第1のOS又は前記第2のOSの管理の下にシステム制御用のプログラムが実行されることにより実現されてもよいし、別途新たなCPUコアを用意して、そのCPUコアで実行される第3のOSの管理の下で実現されてもよい。
【0066】
映像処理系20は、映像処理用制御部13と映像データ処理部14から構成される。映像処理用制御部13は、映像データのデータ処理について統括的な制御を行う機能部であり、CPUコアで実行されるプログラム処理によって実現される。映像データ処理部14は、符号化された映像ストリームデータについてデータ処理を行う機能部であり、例えば専用ロジック回路で構成される。具体的には、映像データ処理部14は、映像用ハードウェアクロック(VCLK)141と映像デコード処理部(VDCR)142から構成される。映像用ハードウェアクロック141は、映像処理系20に供給される動作基準クロックに基づいて、映像デコード処理部142によるデータ処理の開始からの経過時間を表す基準時間を生成する。映像デコード処理部142は、前記システム制御部10を介して与えられた符号化された映像ストリームデータを入力して復号処理を実行し、前記基準時間に基づいて復号処理された映像データを映像データ表示部3に出力する。前記映像データ表示部3は映像再生装置であり、例えばLCDである。映像処理系20における詳細な処理内容については後述する。
【0067】
音声処理系21は、音声処理用制御部15と音声データ処理部16から構成される。音声処理用制御部15は、音声データのデータ処理について統括的な制御を行う機能部であり、例えば映像処理系20とは別のCPUコアで実行されるプログラム処理によって実現される。音声データ処理部16は、符号化された音声ストリームデータについてデータ処理を行う機能部であり、例えば専用ロジック回路で構成される。具体的には、音声データ処理部16は、音声用ハードウェアクロック(ACLK)161と音声デコード処理部(ADCR)162から構成される。音声用ハードウェアクロック161は、音声処理系21に供給される動作基準クロックに基づいて、音声デコード処理部162によるデータ処理の開始からの経過時間を表す基準時間を生成する。音声デコード処理部162は、前記システム制御部10を介して与えられた符号化された音声ストリームデータを入力して復号処理を実行し、前記基準時間に基づいて復号処理された音声データを音声データ発声部4に出力する。前記音声データ発声部4は音声再生装置であり、例えばスピーカである。音声処理系21における詳細な処理内容については後述する。
【0068】
前記マルチプロセッサシステム1は更に、夫々のCPUコアによるプログラム処理のためのソフトウェアを格納するROM(Read Only Memory)やRAM(Random Access Memory)から構成されるメモリ部12を有する。前記RAMには、映像処理系20を司るCPUコアと音声処理系21を司るCPUコアの双方によってアクセス可能な共有メモリとしてのメモリ領域が設けられる。具体的には、前記共有メモリのメモリ領域として、同期用領域121、映像側経過時間領域122、及び音声側経過時間領域123が設けられる。夫々の領域の詳細については後述する。
【0069】
ここで映像処理系20と音声処理系21による具体的なデータ処理内容について説明する。
【0070】
図2は、映像処理系20と音声処理系21の具体的な構成の一例を示す説明図である。
【0071】
先ず、システム制御部10は、コンテンツデータ取得部11から多重化されたストリームデータを入力する。システム制御部10は、例えば分離部(DEMUX)101と制御部(CNT)102とから構成される。前記分離部101及び制御部102は、例えばプログラム処理を実行するCPUコアによって実現される機能部である。分離部101は、制御部102からの指示に応じて、システム制御部10に入力されたストリームデータから音声ストリームデータと映像ストリームデータを分離し、前記音声ストリームデータを音声デコード処理部162に与えるととともに、前記映像ストリームデータを映像デコード処理部142に与える。制御部102は、映像データと音声データの復号処理の統括的な制御を行う。具体的には、前記分離部101に対して動作を指示するとともに、映像処理用制御部13及び音声処理用制御部15に対し復号処理の実行と停止を指示する。また、前記多重化されたストリームデータにPCR(Program Clock Reference)やSCR(System Clock Reference)の時刻基準参照値の情報が含まれる場合には、制御部102は、前記分離部101によって前記多重化されたストリームデータから抽出されたPCRやSCRの値に基づいて、STC(System Time Clock)の値を符号時に意図した値にセット又は校正する。前記STCの値は、符号化したときの基準時間を再現するための時間情報である。そして、制御部102は、前記STCの値に基づいて、音声用ハードウェアクロック161及び映像用ハードウェアクロック141に対し夫々の基準時間の初期値等を設定する。
【0072】
映像処理用制御部13及び音声処理用制御部15は、復号処理の実行が指示されると、前記デコード処理部142、162と前記ハードウェアクロック141、161を制御することにより、復号処理を開始させる。具体的には、映像処理用制御部13からの動作開始指示により、映像デコード処理部142は映像ストリームデータの復号処理を開始し、映像用ハードウェアクロック141は映像ストリームデータの復号処理に係る前記基準時間の生成を開始する。同様に、音声処理用制御部15からの動作開始指示により、音声デコード処理部162は音声ストリームデータの復号処理を開始し、音声用ハードウェアクロック161は音声ストリームデータの復号処理に係る前記基準時間の生成を開始する。
【0073】
前記映像ストリームデータ及び前記音声ストリームには、映像や音声のコンテンツの実データの他に、復号再生を行うタイミングを指示する時間情報(以下、「タイムスタンプ」とも称する。)が1フレーム毎に含まれる。前記タイムスタンプは、例えば再生出力の時刻管理情報であるPTS(Presentation Time Stamp)や、復号の時刻管理情報であるDTS(Decoding Time Stamp)である。前記映像デコード処理部142は、映像用ハードウェアクロック141による前記基準時間を参照しながら、PTSが示すタイミングで、復号処理された映像ストリームデータを1フレーム毎に出力する。例えば前記映像デコード処理部142は、前記基準時間を参照し、PTSで示される時刻になったら対応するフレームの復号処理結果を出力する。同様の処理を、前記音声デコード処理部162が前記音声ストリームに含まれる前記タイムスタンプに基づいて行う。このように、前記映像デコード処理部142及び前記音声デコード処理部162が、前記タイムスタンプに示される時刻に応じて復号処理結果を1フレームごとに順番に出力することで、動画コンテンツの再生を実現する。
【0074】
しかしながら、前述したように音声と映像の復号処理が別々のプロセッサコアの制御下で実行される場合には、双方の復号処理の同期を意識しないと、再生される音声と表示される映像のタイミングがずれてしまう虞がある。そこで、本実施の形態に係るマルチプロセッサシステム1では、共有メモリを用いることで、音声データの復号処理と映像データの復号処理の開始タイミングを揃える。
【0075】
図3は、2つの復号処理の開始タイミングの調整方法の一例を示す説明図である。同図に示されるように、メモリ部10の同期用領域121には予め初期値が設定される。初期値としては、例えば、開始タイミングを揃える必要のあるCPUコアの数、すなわち、開始タイミングを揃える必要のあるデータ処理の数に応じた値が設定される。本実施の形態では、音声データの復号処理と映像データの復号処理の2つの処理の開始タイミングを揃える必要があるので、
図3に示されるように、初期値として“2”を設定する。
【0076】
映像処理用制御部13及び音声処理用制御部15は、定期的に同期用領域121にアクセスしてその値を確認する。そして、自己の復号処理の開始の準備が完了したら、メモリ部10の同期用領域121にアクセスし、保持された値を更新する。例えば、映像ストリームデータの復号処理の準備が完了したら、映像処理用制御部13は同期用領域121の値をディクリメントする。これにより値が“1”となる。そして、映像処理用制御部13は同期用領域121の値が“0(ゼロ)”になるまで待機する。待機は、例えばビジーループ、又は所定の時間間隔でのポーリングにより実現する。前記所定の時間間隔は、例えば、視聴者が音声と映像のずれを認識できない程度の時間間隔である。その後、音声ストリームデータの復号処理の準備が完了したら、音声処理用制御部15が同期用領域121の値をディクリメントする。これにより値が“0”となる。値が“0”となったら、映像処理用制御部13は映像デコード処理部142及び映像用ハードウェアクロック141に対して動作開始を指示し、音声処理用制御部15は音声デコード処理部162及び音声用ハードウェアクロック161に対して動作開始を指示する。これにより、音声データの復号処理と映像データの復号処理の開始タイミングを揃えることができる。
【0077】
音声処理用制御部15と映像処理用制御部13は、復号処理を実行している間も定期的に同期用領域121にアクセスして、その値を確認する。復号処理の実行中に何らかの原因で処理が進められなくなった場合には、映像処理用制御部13及び音声処理用制御部15は同期用領域121の値をインクリメントする。例えば、動画コンテンツがネットワーク経由で提供される場合に、通信環境等の影響で音声と映像のどちらか一方のストリームデータの提供が中断される虞がある。このような場合には、映像処理用制御部13と音声処理用制御部15のうちストリームデータの提供が中断した方の制御部が同期用領域121の値をインクリメントすることで、双方の復号処理を中断させる。
【0078】
図4は、復号処理を中断させる方法の一例を示す説明図である。同図に示されるように、例えば映像処理側で何らかの障害が発生し復号処理が続けられなくなった場合、映像処理用制御部13が同期用領域121の値をインクリメントし、値を“1”にするとともに、復号処理を中断する。そして、同期用領域121の値が“1”になったことを確認した音声処理用制御部15は、音声デコード処理部162及び音声用ハードウェアクロック161に対して動作停止を指示し、音声ストリームデータの復号処理を中断する。その後、映像処理側が復旧し復号処理を再開できるようになったら、映像処理用制御部13が同期用領域121の値をディクリメントし、値を“0”にする。そして、同期用領域121の値が“0”になったことを確認した音声処理用制御部15及び映像処理用制御部13は、夫々の復号処理を再開させる。これにより、夫々の復号処理の中断と再開のタイミングを揃えることができる。
【0079】
仮に映像処理系20と音声処理系21が共通の動作基準クロックを用いる場合には、上記のように映像用ハードウェアクロック141と音声用ハードウェアクロック161の動作開始タイミングを一致させれば、生成される前記基準時間は夫々等しくなる。前記基準時間が等しければ、同一の時間軸を基準として音声と映像の復号処理結果が出力されるため、復号処理の開始タイミングさえ合わせれば、映像と音声がずれることなく再生される。しかしながら、本実施の形態のように、前記動作基準クロックが相互に異なる場合には、映像用ハードウェアクロック141と音声用ハードウェアクロック161の動作開始タイミングを一致させたとしても、映像処理系20と音声処理系21の前記基準時間がずれる可能性がある。また、共通の動作基準クロックを用いる場合であっても、各種処理が、夫々のOSが計測・管理しているタイマ(システムクロック)を利用していると、処理のタイミングがそのタイマの精度に丸められるため、夫々の前記基準時間の間で誤差が生じる可能性がある。映像処理系20と音声処理系21の間で前記基準時間のずれがあると、上記のように双方の復号処理の開始タイミングを合わせたとしても、復号処理結果が出力されるタイミングがずれることになり、動画の映像と音声がずれて再生される。そこで、マルチプロセッサシステム1では、前記同期用領域121を利用した開始タイミングの調整に加え、映像処理系20と音声処理系21の夫々の動作の経過時間のずれ量に基づいて復号処理結果の出力タイミングの調整を行うことで、動画再生における映像と音声のずれを防止する。
【0080】
図5は、前記経過時間の記録方法の一例を示す説明図である。
【0081】
同図に示されるように、メモリ部10の共有メモリの領域として、前述の同期用領域121に加え、映像処理系20の動作の経過時間を格納するための映像側経過時間領域122と、音声処理系21の動作の経過時間を格納するための音声側経過時間領域123とを設ける。映像側経過時間領域122及び音声側経過時間領域123に対するデータの書き換えは対応する処理系にのみ認められ、データの読み出しは双方の処理系に認められる。具体的には、映像処理用制御部13が映像側経過時間領域122に映像処理系20の動作の経過時間を格納し、音声処理用制御部15が音声側経過時間領域123に映像処理系20の動作の経過時間を格納する。そして、夫々の制御部がお互いの経過時間を監視する。前記動作の経過時間は、例えば復号処理を開始してからの経過時間である。例えば、映像処理系20であれば、映像処理用制御部13が、映像用ハードウェアクロック141が出力する前記基準時間に基づいて経過時間を算出し、その値を映像側経過時間領域122に記録する。または、映像処理系20に供給される動作基準クロックに基づいて映像処理系20の動作開始からの経過時間を計時するカウンタを別途設け、そのカウンタの値を映像処理用制御部13が映像側経過時間領域122に記録する。音声処理系21についても同様である。記録される値は、例えば秒単位の時間情報や夫々の動作基準クロックの周波数の最小公倍数に基づくカウント値である。例えば、映像処理系20の動作基準クロックが8MHz(周期T=125ns)であり、音声処理系21の動作基準クロックが10MHz(周期T=100ns)である場合には、夫々の動作基準クロックの1周期の最小公倍数である500nsを最小単位とした時間毎にカウントアップしてカウント値を更新する。なお、復号処理や処理結果の出力が途中で中断した場合であっても、この経過時間の更新は、各制御部が責任を持って更新する。このように共通の時間軸で経過時間を記録することで、映像処理系と音声処理系との時間のずれを容易に把握することができる。
【0082】
前記経過時間のずれに基づく復号処理結果の出力タイミングの調整方法について具体的に説明する。
【0083】
復号処理結果の出力タイミングの調整は、映像処理系20及び音声処理系21のいずれか一方において行う。前述したように、一般に人間は映像の変化よりも音声の変化の方が敏感であることから、以下の説明では、一例として、映像処理系20において出力タイミングの調整を行うものとして説明する。
【0084】
図6は、映像処理用制御部13における出力タイミング調整に係る処理の流れの一例を示すフロー図である。先ず、映像ストリームデータの復号処理が開始されると、映像処理用制御部13は所定時間が経過したか否かを確認する(S601)。前記所定時間は、視聴者が動画像のずれを認識する時間よりも短い時間である。例えば、前述したように人間が認知できる映像の変化は200ms程度なので、それよりも小さいずれ時間であれば、視聴者は動画像の音声と映像のずれを認識できない可能性が高い。そこで、例えば、1フレーム分の復号処理結果の出力間隔が33msである場合には、33ms毎に映像処理用制御部13がメモリ部10を参照し、後述する前記経過時間のずれ量の算出を行う。
【0085】
ステップ601において、前記所定時間が経過していない場合には、映像処理用制御部13は、引き続き前記所定時間が経過するのを待つ。一方、前記所定時間が経過した場合には、映像処理用制御部13は、映像側経過時間領域122と音声側経過時間領域123を参照し、夫々の経過時間のずれ量を算出する(S602)。前記ずれ量の算出は、2つの前記経過時間の差分を計算することにより行う。次に映像処理用制御部13は、ずれ許容量と算出したずれ量との比較を行う(S603)。前記ずれ許容量は、例えば映像処理用制御部13の内部等に設けられたレジスタ等の記憶部に予め設定される値である。前記すれ許容量として設定される値は、例えば、視聴者が動画像のずれを認識できる時間よりも十分短い時間となる値であり、例えば、1ms以下の値である。
【0086】
前記比較の結果、前記ずれ量が前記ずれ許容量よりも小さい場合には、映像処理用制御部13は、ステップ601に移行し、再度前記所定時間の経過を待つ。一方、前記ずれ量が前記ずれ許容量よりも大きい場合には、映像処理用制御部13は、前記ずれ量に基づいて前記出力タイミングを調整するための調整時間の算出を行う(S604)。前記調整時間は、例えば、前記ずれ量が前記ずれ許容量よりも小さくなるような値であれば良く、必ずしも経過時間のずれ量と等しい値にする必要はない。そして、映像処理用制御部13は、映像デコード処理部142に対し、映像ストリームデータの復号処理結果の出力タイミングの調整を指示するとともに、算出した調整時間の情報を出力する(S605)。指示を受けた映像デコード処理部142は、前記調整時間の情報に基づいて出力タイミングの調整を実行する(S606)。その後は、ステップ601に移行し、上記の処理が繰り返される。
【0087】
図7は、映像デコード処理部142による出力タイミングの調整方法の具体例を示す説明図である。
【0088】
同図の(A)に示される調整方法は、映像ストリームデータの前記タイムスタンプ(PTS)が示すタイミングに対して、前記調整時間だけずらした時刻に復号処理結果を出力するように制御する方法である。これによれば、前記調整時間に応じて映像ストリームデータの復号処理結果の出力タイミングをずらすから、映像データ表示部3による映像の再生タイミングをずらすことができる。これにより、復号結果の出力タイミングのずれによる映像と音声のずれを容易に低減させることができる。
【0089】
同図の(B)に示される調整方法は、前記調整時間だけずらした時刻に復号処理を開始するように制御する方法である。例えば映像デコード処理部142におけるデータ処理の開始から完了までの時間が略一定である場合には、映像デコード処理部142の復号処理の開始タイミングを遅らせる、又は早めることで映像ストリームデータの復号処理結果の出力タイミングをずらすことができる。すなわち、映像データ表示部3による映像の再生タイミングをずらすことができる。これにより、復号結果の出力タイミングのずれによる映像と音声のずれを容易に低減させることができる。
【0090】
上記2つ調整方法のうち何れの調整方法を採用するかは、映像デコード処理部142のシステム構成によるが、ここでは
図7の(A)に示される調整方法を適用する場合を一例とし、具体的に
図8及び
図9に示す2つの状況を一例として更に詳細に説明する。
【0091】
図8は、音声の復号処理に対して映像の復号処理が進んでいる場合を示す説明図である。同図の(A)において、音声の復号処理結果400と映像の復号処理結果401は、前記基準時間上の同じタイミングで出力が指定された1フレームのデータである。同図には、映像ストリームデータの復号処理の前記基準時間が音声ストリームデータの復号処理の前記基準時間よりも進んでおり、共通の時間軸での復号処理結果400の出力タイミングが参照符号300のタイミングであり、復号処理結果401の出力タイミングが参照符号301のタイミングとなっている場合が示される。同図に示されるように、時間t1だけ前記基準時間がずれているため、映像処理用制御部13は調整時間t1だけ遅らせたタイミングで復号処理結果を出力する。例えば、
図8の(B)に示されるように、タイムスタンプで指定された時刻よりも調整時間t1だけ遅らせた時刻に、復号処理結果401を映像データ表示部3に出力する。これにより、音声の復号処理結果400と映像の復号処理結果401の出力タイミングのずれを減少させることができる。なお、前記調整時間をずれ時間t1と同じ値としたが、これに限られず、視聴者がずれを認識しない程度のずれ時間となるように前記調整時間を決定してもよい。
【0092】
図9は、音声の復号処理に対して映像の復号処理が遅れている場合を示す説明図である。同図の(A)において、音声の復号処理結果400と映像の復号処理結果402は、前記基準時間上の同じタイミングで出力が指定された1フレームのデータである。同図には、映像ストリームデータの復号処理の前記基準時間が音声ストリームデータの復号処理の前記基準時間よりも遅れており、共通の時間軸での復号処理結果400の出力タイミングが参照符号300のタイミングであり、復号処理結果402の出力タイミングが参照符号302のタイミングとなっている場合が示される。同図に示されるように、時間t2だけ前記基準時間がずれているため、映像処理用制御部13は、映像の復号処理結果402の表示時間を調整時間t2だけ短くして映像データ表示部3に表示させる。例えば、
図9の(B)に示されるように、映像処理用制御部13が映像データ処理部142に対し、復号処理結果402の表示時間を調整時間t2だけ短くするように指示し、その指示を受けた映像データ処理部142が、復号処理結果402に含まれる表示時間の情報を変更し、当該復号処理結果402の前記タイムスタンプ(PTS)が示すタイミングで映像データ表示部3に出力する。例えば、1フレームの復号処理結果402の元々の表示時間が33ms、ずれ時間t2が13msである場合、1フレームの復号処理結果402の表示時間を20msとして映像データ表示部3に出力する。なお、なお、前記調整時間をずれ時間t2と同じ値としたが、これに限られない。
【0093】
以上のように出力タイミングの調整処理を復号処理中に常に行うのではなく所定の時間間隔で実行するから、視聴者が認識できるような動画再生のずれを防止しつつ、前記出力タイミング調整に係る処理負荷を低減することができ、システム全体の低消費電力化に資する。
【0094】
次に、動画コンテンツを途中再生する方法について説明する。
【0095】
図10は、動画コンテンツの再生開始位置が指定された場合を示す説明図である。
【0096】
同図に示されるように、動画コンテンツデータは、1フレーム毎に連続したデータ構成の音声ストリームデータ及び映像ストリームデータにより構成される。音声ストリームデータと映像ストリームデータは、前述したように1フレーム毎の再生間隔が異なるが、動画コンテンツの先頭の音声ストリームデータと映像ストリームデータは、再生タイミングを揃えて符号化されている場合が多い。また、先頭の音声ストリームデータと映像ストリームデータの再生タイミングずれている場合であっても、メタデータ等に再生タイミングのずれ幅の情報が記載されている。そのため、動画コンテンツを最初から再生する場合には、前述のように音声と映像の復号処理の開始タイミングさえ合わせてしまえば、問題なく動画コンテンツの再生を行うことができる。しかしながら、例えばマルチメディア再生機器の特殊再生機能等により再生位置を指定して動画再生を行う場合、その指定位置がフレームの先頭ではなくフレームの途中の位置であると、その指定位置から再生することはできない。これは、再生に必要な情報は各フレームの先頭位置に格納されており、フレームの先頭からでないと再生できないからである。そこで、マルチプロセッサシステム1では、再生開始位置が指定された場合には、フレームの区切れの位置から再生を開始する。例えば、
図10に示されるように、再生開始位置として参照符号200の位置が指定されたとき、参照符号201乃至204のいずれかの位置から再生を開始する。このとき再生開始位置として、映像ストリームデータの区切れ位置201若しくは202を選択するか、又は音声ストリームデータの区切れ位置203若しくは204を選択するかは特に制限されないが、本実施の形態では映像ストリームデータの区切れ位置201又は202を再生開始位置とする場合を説明する。
【0097】
例えば動画コンテンツの再生開始位置を参照符号201の位置とする場合、映像処理用制御部13は、映像ストリームデータの先頭フレームとして参照符号205のフレームを選択し、映像デコード処理部142は前記フレーム205から順に復号処理を実行し、処理結果を出力する。一方、音声処理用制御部15は、音声ストリームデータの先頭フレームとして、例えば位置201に近い参照符号206のフレームを選択する。ここで、フレーム206の先頭位置(出力タイミング)203とフレーム205の先頭位置(出力タイミング)201とが一致している場合には、映像デコード処理部142は前記フレーム206から順に復号処理を実行し、処理結果を出力する。しかし、
図10に示されるようにフレーム206の先頭位置201とフレーム205の先頭位置203とが一致していない場合には、映像側と出力タイミングを合わせるための調整が必要となる。この場合の調整方法について、
図11を用いて詳細に説明する。
【0098】
図11は、途中再生を行う場合における音声ストリームデータの出力タイミングの調整方法の一例を示す説明図である。例えば、同図の(A)に示されるように、映像のフレーム205の先頭位置を再生開始位置201とした場合、音声のフレーム206の先頭位置との間にずれ時間t0があるため、再生開始時には音声と映像のタイミングが合わない。そこで、第1の調整方法として、同図の(B)に示されるように、フレーム206の再生時間を前記ずれ時間t0だけ短くして再生する。具体的には、前記音声デコード処理部162が、音声処理用制御部15からの指示に応じて、フレーム206の復号処理結果に含まれる再生時間の情報を変更して音声データ発声部4に出力する。これにより、途中再生の場合であっても、音声と映像のタイミングを合わせて再生を開始することができる。
【0099】
また第2の調整方法として、同図の(C)に示されるように、フレーム206を再生せず無音区間とする。具体的には、音声デコード処理部162が、音声処理用制御部15からの指示に応じて、フレーム206の再生時間に対して前記ずれ時間t0だけ短くした再生時間を持つ無音状態を示すフレーム208を生成し、フレーム206の復号処理結果の代わりに音声データ発声部4に出力する。これにより、途中再生の場合であっても、音声と映像のタイミングを合わせて再生を開始することができる。
【0100】
なお、上記2つの調整方法は、音声のフレームの先頭位置を再生開始位置として映像の先頭フレームを調整する場合にも適用することができる。
【0101】
以上のように、実施の形態1に係るマルチプロセッサシステム1によれば、復号処理の開始タイミングの調整と復号処理結果の出力タイミングの調整を行うことで、マルチプロセッサシステムにおいて、映像処理系20と音声処理系21が別々のOSで管理される場合であっても、動画として破綻させることなく、コンテンツを再生することができる。また、映像処理用制御部13及び音声処理用制御部15が同期用領域121の値を参照することで復号処理の実行の可否を判断するので、映像処理系20と音声処理系21との間で主従関係を決めておく必要は無い。更に、動画コンテンツの再生開始位置が指定された場合であっても、指定された再生開始位置に対応する音声のフレームと映像のフレームのいずれか一方の先頭フレームの再生時間等を調整することで、音声と映像のタイミングを合わせて再生を開始することができる。
【0102】
≪実施の形態2≫
図12に、本発明に係るデータ処理システムの別の一実施の形態として、複数のプロセッサコアを備えるマルチプロセッサシステムのブロック図を示す。同図に示されるマルチプロセッサシステム5は、特に制限されないが、公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成されている。前記マルチプロセッサシステム5は、例えば携帯電話やカーナビゲーション用の動画コンテンツを再生するためのシステムLSIである。なお、マルチプロセッサシステム5において、実施の形態1に係るマルチプロセッサシステム1と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。
【0103】
マルチプロセッサシステム5は、開始タイミングを揃える必要のあるデータ処理毎に同期用領域を備え、夫々の同期用領域を用いて開始タイミングの調整を行う。その他の構成及び動作は、前記マルチプロセッサシステム1と同様である。具体的には、マルチプロセッサシステム5は、前記同期用領域121の代わりに、映像処理系20に対応する第1同期用領域501と音声処理系21に対応する第2同期用領域502とを備える。第1同期用領域501及び第2同期用領域502には、夫々に対応する処理の実行可否を示す値が格納される。第1同期用領域501及び第2同期用領域502に対するデータの書き換えは対応する処理系にのみ認められ、データの読み出しは双方の処理系に認められる。
【0104】
図13に、第1同期用領域501及び第2同期用領域502を用いたデータ処理の開始タイミングを調整する方法の一例を示す。同図に示されるように、第1同期用領域501及び第2同期用領域502には予め初期値として“1”が設定される。映像処理用制御部13及び音声処理用制御部15は、自己の復号処理の開始の準備が完了したら、メモリ部10の第1同期用領域501及び第2同期用領域502にアクセスし、双方の領域の値が“0”になったら、夫々の復号処理を開始させる。
【0105】
例えば、映像ストリームデータの復号処理の準備が完了したら、映像処理用制御部13は第1同期用領域501の値をディクリメントする。これにより値が“0”となる。そして、映像処理用制御部13は第2同期用領域502の値が“0”になるまで待機する。待機は、例えばビジーループ、又は所定の時間間隔でのポーリングにより実現する。前記所定の時間間隔は、例えば、視聴者が音声と映像のずれを認識できない程度の時間間隔である。一方、音声ストリームデータの復号処理の準備が完了したら、音声処理用制御部15が第2同期用領域502の値をディクリメントする。これにより値が“0”となる。そして、映像処理用制御部13及び音声処理用制御部15は、第1同期用領域501及び第2同期用領域502の双方の値が“0”となったことを確認したら、夫々の復号処理を開始させる。すなわち、映像処理用制御部13は映像デコード処理部142及び映像用ハードウェアクロック141に対して動作開始を指示し、音声処理用制御部15は音声デコード処理部162及び音声用ハードウェアクロック161に対して動作開始を指示する。これにより、実施の形態1と同様に、音声データの復号処理と映像データの復号処理の開始タイミングを揃えることができる。また、上記の方法を実現するために、監視対象とされる他方の処理系に対応した同期用領域の値をセマフォとすれば、CPUの処理負荷を高めることなく処理の待ち合わせを行うことができる。
【0106】
上記の第1同期用領域501及び第2同期用領域502を利用した開始タイミングの調整方法は、処理手順によってはデッドロック(Deadlock)が発生する可能性がある。
【0107】
図14はデッドロックが発生する場合の処理フローを示す説明図である。同図に示されるように、開始タイミングを合わせる相手側の状況を確認してから自らの準備状況を更新する手順とすると、お互いに相手側の状況を把握した上で動作を行うため、初期状態から変化を起こすことができず、デッドロックしてしまう。そこで、マルチプロセッサシステム5では、
図15又は
図16のいずれかに示される処理手順を採用することでデッドロックを回避する。
【0108】
図15はデッドロックを回避するための処理順の一例を示す説明図である。
【0109】
同図に示される方法では、先ず相手側の状況確認の処理を所定期間だけ実行し、その後自らの準備状況を更新する。例えば、映像ストリームデータの復号処理を実行するとき、先ず映像処理用制御部13は自らの復号処理の準備が完了したら、ステップ701(S701)に移行し、所定期間だけメモリ部50の第2同期用領域502を参照して音声処理側の状況を確認する。第2同期用領域502の値が“0”である場合には、ステップ702(S702)に移行し、映像処理用制御部13はメモリ部50の第1同期用領域501の値を“0”に更新して、映像ストリームデータの復号処理を開始する。一方、第2同期用領域502の値が“1”である場合には、映像処理用制御部13は前記音声処理側の状況確認を継続し、所定期間の経過後ステップ702に移行する。例えば、映像処理用制御部13は前記音声処理側の状況確認の処理を所定の時間間隔で実行し、条件が成り立つまで繰り返す。そして、所定期間の経過後、映像処理用制御部13は第1同期用領域501の値を“0”に更新して、再度ステップ701に戻る。この方法によれば、相手側の準備状況を待ち続けることが無くなるため、デッドロックを回避することができる。尚、映像処理が完了して第1同期領域501を“0”に設定したにも関わらず、何度もステップ701に戻って第2同期用領域502の値が“0”にならないような状態が所定の時間または回数継続した場合は、エラーが発生したと判断してステップ701を強制的に抜けてエラー用処理を実行する。
【0110】
図16は、デッドロックを回避するための処理順の別の一例を示す説明図である。
【0111】
同図に示される方法では、先ず自らの準備状況を更新し、その後相手側の準備状況を確認する。例えば、映像ストリームデータの復号処理を実行するとき、先ず映像処理用制御部13は復号処理の準備が完了したら、ステップ801(S801)に移行し、メモリ部50の第1同期用領域501の値を“0”に更新する。その後ステップ802(S802)に移行し、メモリ部50の第2同期用領域502を参照して音声処理側の状況を確認する。ここで、第2同期用領域502の値が“1”である場合には、映像処理用制御部13は第2同期用領域502の値が“0”になるまで待機する。そして、第2同期用領域502の値が“0”になったら、映像処理用制御部13は映像ストリームデータの復号処理を開始する。この方法によれば、自らの準備状況を更新してから相手の準備完了を待つため、デッドロックを回避することができる。尚、ステップ802において、第2同期用領域502の値が“0”にならないような状態が所定の時間継続した場合は、エラーが発生したと判断し、ステップ802を強制的に抜けてエラー用の処理を実行する。
【0112】
以上のように、実施の形態2に係るデータ処理システム2によれば、実施の形態1と同様に、マルチコア環境下において動画として破綻させることなくコンテンツを再生することができ、動画コンテンツの再生開始位置が指定された場合であっても、音声と映像のタイミングを合わせて再生を開始することができる。
【0113】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0114】
例えば、前記マルチプロセッサシステム1及び5は、上記のように1つの集積回路で構成されたものに限られず、マルチチップで構成されたものでもよい。
【0115】
また、実施の形態1において、前記経過時間のずれ量に基づく復号処理結果の出力タイミングの調整を映像処理系20が実行する場合を一例として示したが、これに限られず、音声処理系21が実行してもよい。
【0116】
更に、実施の形態1において、途中再生の場合の出力タイミング調整を音声処理系21が実行する場合を一例として示したが、これに限られず、映像処理系20が実行してもよい。例えば、再生開始位置を音声のフレーム207の先頭位置とした場合に、映像デコード処理部142が、フレーム205の再生時間を短くして映像データ表示部3に出力する。これにより、上記同様に、途中再生の場合であっても音声と映像のタイミングを合わせて再生を開始することができる。