(57)【特許請求の範囲】
【請求項１】
外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムであって、
前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部と、
夫々の前記データ処理制御部によってアクセス可能とされ、前記データ処理の実行が可能か否かを表す値が格納される第１領域を有するメモリ部と、を有し、
夫々の前記データ処理制御部は、自己のデータ処理の実行の準備が完了したら前記第１領域の値を更新し、前記第１領域の値が所定の値となったら、夫々の前記データ処理制御部は夫々の前記データ処理の開始のタイミングを合わせて前記データ処理を実行し、
前記データ群は、前記データ処理の処理単位のデータが複数個連続したデータであり、
前記処理単位のデータは、処理対象とされるコンテンツデータと、前記コンテンツデータの処理結果を出力するタイミングを指示する時間情報と、を含み、
前記データ処理制御部は、自らに供給される動作基準クロックに基づいて前記データ処理の開始からの経過時間を表す基準時間を生成する基準時間生成部と、
前記処理単位のデータの前記データ処理を実行するとともに、前記基準時間を参照し、前記時間情報に基づくタイミングで処理結果を出力するデータ処理部と、
前記第１領域の値の更新を行うと共に、前記基準時間生成部と前記データ処理部の動作を制御する制御部と、を有し、
前記制御部は、前記第１領域の値が前記所定の値となったことを確認したら、前記基準時間の生成を開始させるとともに、前記データ処理を開始させ、
夫々の前記データ処理制御部には、相互に異なる前記動作基準クロックが供給され、
前記制御部は、当該制御部を含む前記データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間と、他の前記データ処理制御部に供給された前記動作基準クロックに基づいて計測した動作の経過時間とのずれを表すずれ量を算出し、前記ずれ量が一定量を超えた場合には、前記データ処理制御部間の処理結果の出力タイミングのずれが減少するように、前記ずれ量に基づいて、当該制御部を含む前記データ処理制御部による処理結果の出力タイミングを調整するデータ処理システム。
【請求項２】
前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記時間情報が示すタイミングに対して前記調整時間だけずらした時刻に処理結果を出力するように前記データ処理部を制御することである、請求項１記載のデータ処理システム。
【請求項３】
前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記調整時間に応じて、前記データ処理の開始タイミングをずらすように前記データ処理部を制御することである、請求項１記載のデータ処理システム。
【請求項４】
前記異なる種別のデータ群は、符号化されたストリーム形式の動画像の映像データと音声データとを含み、
前記映像データと前記音声データにおける前記処理単位のデータは、１つのフレームデータであり、
前記複数のデータ処理制御部は、符号化された前記映像データの復号処理を行って処理結果を出力する第１データ処理制御部と、符号化された前記音声データの復号処理を行って処理結果を出力する第２データ処理制御部であって、
前記第１データ処理制御部と前記第２データ処理制御部は、前記制御部と、前記データ処理部と、前記基準時間生成部とを夫々有し、
前記メモリ部は、前記第１データ処理制御部によって、前記第１データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第２領域と、前記第２データ処理制御部によって、前記第２データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第３領域とを更に有し、
前記第１データ処理制御部における前記制御部が、前記第２領域と前記第３領域を参照して前記ずれ量の算出を行い、前記出力タイミングの調整を行う、請求項２記載のデータ処理システム。
【請求項５】
前記第２領域及び前記第３領域に格納される経過時間の情報は、前記第１データ処理制御部の前記動作基準クロックの１周期の時間と前記第２データ処理制御部の前記動作基準クロックの１周期の時間との最小公倍数に基づく時間毎にカウントされる値である、請求項４記載のデータ処理システム。
【請求項６】
前記制御部は、前記出力タイミングの調整を所定の時間間隔で行う、請求項２記載のデータ処理システム。
【請求項７】
前記動画像の再生開始時刻が指定されたとき、
前記第１データ処理制御部と前記第２データ処理制御部のいずれか一方における前記データ処理部は、前記指定された時刻に応じた前記時間情報を持つフレームデータを選択し、前記選択したフレームデータから順に復号処理を開始して処理結果を外部再生装置に出力し、
他方の前記データ処理部は、前記指定された時刻に応じた前記時間情報を持つフレームデータを選択し、当該選択したフレームデータと前記一方のデータ処理部によって選択されたフレームデータの前記時間情報とが一致する場合には、当該選択したフレームデータから順に前記復号処理を開始して処理結果を外部再生装置に出力し、一致しない場合には、前記一方のデータ処理部によって選択されたフレームデータの出力タイミングに合うように、前記選択したフレームデータの再生を制御する、請求項４記載のデータ処理システム。
【請求項８】
前記他方の前記データ処理部は、前記選択したフレームデータの再生時間を変更することで、前記フレームデータの再生を制御する、請求項７記載のデータ処理システム。
【請求項９】
前記一方の前記データ処理部は、前記第１データ処理制御部における前記データ処理部であり、
前記他方の前記データ処理部は、前記第２データ処理制御部における前記データ処理部であり、
前記第２データ処理制御部における前記データ処理部は、前記選択した音声のフレームデータの代わりに無音状態を示すフレームデータを出力することで、前記フレームデータの再生を制御する、請求項７記載のデータ処理システム。
【請求項１０】
前記データ処理の実行が可能か否かを表す値の初期値として、前記複数のデータ処理制御部の個数に応じたカウント値が設定され、
前記制御部は、前記データ処理部によるデータ処理の実行の準備が完了したら前記カウント値をディクリメントすることで更新し、
前記所定の値は、ゼロを示すカウント値である、請求項１記載のデータ処理システム。
【請求項１１】
前記制御部は、前記データ処理部によるデータ処理の実行を停止する場合には、前記カウント値を前記所定の値からインクリメントすることで更新する、請求項１０記載のデータ処理システム。
【請求項１２】
外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムであって、
前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部と、
夫々の前記データ処理制御部によってアクセス可能とされ、前記データ処理の実行が可能か否かを表す値が格納される第１領域を、前記データ処理制御部毎に有するメモリ部と、を有し、
夫々の前記データ処理制御部は、自己の前記データ処理の実行の準備が完了したら、自己の前記第１領域の値を更新するとともに、他の前記データ処理制御部に対応する前記第１領域の値を参照し、夫々の前記第１領域の値が所定の値となったら、夫々の前記データ処理制御部は夫々の前記データ処理の開始のタイミングを合わせて前記データ処理を実行し、
前記データ群は、前記データ処理の処理単位のデータが複数個連続したデータであり、
前記処理単位のデータは、処理対象とされるコンテンツデータと、前記コンテンツデータの処理結果を出力するタイミングを指示する時間情報と、を含み、
前記データ処理制御部は、自らに供給される動作基準クロックに基づいて前記データ処理の開始からの経過時間を表す基準時間を生成する基準時間生成部と、
前記処理単位のデータの前記データ処理を実行するとともに、前記基準時間を参照し、前記時間情報に基づくタイミングで処理結果を出力するデータ処理部と、
前記第１領域の値の更新を行うと共に、前記基準時間生成部と前記データ処理部の動作を制御する制御部と、を有し、
前記制御部は、前記第１領域の値が前記所定の値となったことを確認したら、前記基準時間の生成を開始させるとともに、前記データ処理を開始させ、
夫々の前記データ処理制御部には、相互に異なる前記動作基準クロックが供給され、
前記制御部は、当該制御部を含む前記データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間と、他の前記データ処理制御部に供給された前記動作基準クロックに基づいて計測した動作の経過時間とのずれを表すずれ量を算出し、前記ずれ量が一定量を超えた場合には、前記データ処理制御部間の処理結果の出力タイミングのずれが減少するように、前記ずれ量に基づいて、当該制御部を含む前記データ処理制御部による処理結果の出力タイミングを調整するデータ処理システム。
【請求項１３】
前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記時間情報が示すタイミングに対して前記調整時間だけずらした時刻に処理結果を出力するように前記データ処理部を制御することである、請求項１２記載のデータ処理システム。
【請求項１４】
前記異なる種別のデータ群は、符号化されたストリーム形式の動画像の映像データと音声データとを含み、
前記映像データと前記音声データにおける前記処理単位のデータは、１つのフレームデータであり、
前記複数のデータ処理制御部は、符号化された前記映像データの復号処理を行って処理結果を出力する第１データ処理制御部と、符号化された前記音声データの復号処理を行って処理結果を出力する第２データ処理制御部であって、
前記第１データ処理制御部と前記第２データ処理制御部は、前記制御部と、前記データ処理部と、前記基準時間生成部とを夫々有し、
前記メモリ部は、前記第１データ処理制御部によって、前記第１データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第２領域と、前記第２データ処理制御部によって、前記第２データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第３領域とを更に有し、
前記第１データ処理制御部における前記制御部が、前記第２領域と前記第３領域を参照して前記ずれ量の算出を行い、前記タイミングの調整を行う、請求項１３記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサ構成のデータ処理システムに関し、特に夫々のプロセッサコアによるデータ処理の同期が必要なデータ処理システムに適用して、有効な技術に関する。
【背景技術】
【０００２】
複数のプロセッサコアを備えるマルチプロセッサシステムでは、夫々のプロセッサコアが個別に処理を実行することで処理の並列化を実現することができ、処理時間の短縮等を図ることができる。このようなマルチコアシステムでは、処理内容によっては夫々のプロセッサコア間で同期が必要な場合がある。マルチプロセッサシステムにおける複数のプロセッサコアの動作を同期させる従来方法として、特許文献１乃至３に開示ある。
【０００３】
特許文献１には、同期元プロセッサが共通領域の値をインクリメント又はディクリメントし、同期先プロセッサがローカル領域の値をインクリメント又はディクリメントし、前記共通領域の値が前記ローカル領域の値に到達したとき、前記同期先プロセッサが前記同期元プロセッサの動作に同期して処理を開始又は再開するマルチプロセッサシステムが開示されている。特許文献２には、同期元のプロセッサコアで実行されるプログラムのアドレス値と同期先のプロセッサコアで実行されるプログラムのアドレス値とを比較し、比較結果に応じて前記同期先のプロセッサコアのプログラムの実行可否を制御するマルチコアプロセッサが開示されている。特許文献３には、複数のプロセッサコアが共有メモリを介して直列に接続される構成の情報処理装置が開示されている。
【０００４】
また、マルチプロセッサシステムではないが、その他の従来技術として、符号化された映像及び音声を含む動画の符号化データを同期させて復号再生するシステムについて、特許文献４及び５に開示がある。特許文献４には、単位時間における音声データの復号再生処理が終了してから計測対象とされる映像フレームの復号再生処理が終了するまでの時間を計測することで、映像の復号再生処理と音声の復号再生処理との処理スピード差を求め、その処理スピード差に応じて映像の復号再生処理装置の起動タイミングを調整することにより、映像と音声の同期をとる方法が開示されている。特許文献５には、圧縮動画像データ中の音声及び映像のタイムスタンプ情報を検出し、その情報に基づいて割り込み信号を発生させて、音声と映像の同期を実現する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−３０５５４６号公報
【特許文献２】特開２００９−７５９４８号公報
【特許文献３】特開２００６−２８５７２４号公報
【特許文献４】特開平０６−２３３２６９号公報
【特許文献５】特開平１０−４２２５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本願発明者が考えるところによると、映像及び音声を含む動画のコンテンツデータを再生するシステムをマルチコア環境で実現する場合、従来は１つのプロセッサコアによって一元管理されていた映像データ用のデコード処理部と音声データ用のデコード処理部が、夫々のプロセッサコア上で動作する別々のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によって管理される可能性がある。この場合、音声データのデコード処理と映像データのデコード処理は、別々のプロセッサコアによって制御される可能性が高い。別々のプロセッサコアの制御下で実行される音声データのデコード処理と映像データのデコード処理は、双方の同期を意識しないと、出力される音声と表示される映像のタイミングが合わず、動画として破綻してしまう虞がある。
【０００７】
そこで、映像及び音声を含む動画のコンテンツデータを再生するマルチコアシステムに、例えば上記特許文献２に記載の方法を適用することも可能であるが、プログラムのアドレス単位で動作監視をする必要があり、システム構成が複雑になる可能性がある。また、特許文献１の方法では、いずれかのプロセッサコアを同期元のプロセッサコアとし、その他のプロセッサコアを同期先のプロセッサコアとして、夫々のプロセッサコアの主従関係を明確にする必要があるが、主従関係なく動作するプロセッサコアから成るマルチコアシステムにこの方法を適用するのは妥当でない。更に特許文献４及び５の技術は、夫々のデコード処理部が１つのプロセッサコアによって一元管理されるシステムを前提にしており、夫々のデコード処理部が別々のＯＳによって管理されるマルチコアシステムに適用する場合について、特に言及されていない。
【０００８】
本発明の目的は、マルチコアシステムにおいて、プロセッサコア間の同期を容易に実現することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムは、前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部と、夫々の前記データ処理制御部によってアクセス可能とされ、前記複数のデータ処理制御部によるデータ処理の実行が可能か否かを表す値が格納される第１領域を有するメモリ部とを有する。前記複数のデータ処理制御部は、自己のデータ処理の実行の準備が完了したら前記第１領域の値を更新し、前記第１領域の値が所定の値となったら、前記複数のデータ処理部は夫々のデータ処理の開始のタイミングを合わせてデータ処理を実行する。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、本データ処理システムによれば、マルチコアシステムにおけるプロセッサコア間の同期を容易に実現することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施の形態１に係る、複数のプロセッサコアを備えたマルチプロセッサシステムのブロック図である。
【図２】図２は、マルチプロセッサシステム１による映像ストリームデータと音声ストリームデータの復号処理の一例を示す説明図である。
【図３】図３は、２つの復号処理の開始タイミングの調整方法の一例を示す説明図である。
【図４】図４は、復号処理を中断させる方法の一例を示す説明図である。
【図５】図５は、経過時間の記録方法の一例を示す説明図である。
【図６】図６は、出力タイミング調整に係る処理の流れの一例を示すフロー図である。
【図７】図７は、映像デコード処理部１４２による出力タイミングの調整方法の具体例を示す説明図である。
【図８】図８は、音声の復号処理に対して映像の復号処理が進んでいる場合の説明図である。
【図９】図９は、音声の復号処理に対して映像の復号処理が遅れている場合の説明図である。
【図１０】図１０は、動画コンテンツの再生開始位置が指定された場合の説明図である。
【図１１】図１１は、途中再生を行う場合の音声ストリームデータの出力タイミングの調整方法の一例を示す説明図である。
【図１２】図１２は、実施の形態２に係る、複数のプロセッサコアを備えたマルチプロセッサシステムのブロック図である。
【図１３】図１３は、第１同期用領域５０１及び第２同期用領域５０２を用いた、データ処理の開始タイミングの調整方法の一例を示す説明図である。
【図１４】図１４は、デッドロックが発生する場合の処理フローを示す説明図である。
【図１５】図１５は、デッドロックを回避するための処理順の一例を示す説明図である。
【図１６】図１６は、デッドロックを回避するための処理順の別の一例を示す説明図である。
【発明を実施するための形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕（共有メモリを利用して処理開始タイミングを同期させるデータ処理システム）
本発明の代表的な実施の形態に係るデータ処理システム（１）は、外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムである。前記データ処理システムは、前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部（２０、２１）と、夫々の前記データ処理制御部によってアクセス可能とされ、前記データ処理の実行が可能か否かを表す値が格納される第１領域（１２１）を有するメモリ部（１２）と、を有する。夫々の前記データ処理制御部は、自己のデータ処理の実行の準備が完了したら前記第１領域の値を更新し、前記第１領域の値が所定の値（ゼロ）となったら、夫々の前記データ処理部は夫々の前記データ処理の開始のタイミングを合わせて前記データ処理を実行する。
【００１７】
これによれば、夫々のデータ処理制御部は前記第１領域の値が前記所定の値になるのを待って、前記データ処理を開始するから、夫々のデータ処理制御部のデータ処理の開始のタイミングを合わせることができる。また、夫々のデータ処理制御部が前記第１領域の値を参照することで、データ処理の実行が可能か否かを判断するので、前記複数のデータ処理制御部の間で予め主従関係を決めておく必要は無い。
【００１８】
〔２〕（データ処理システムの具体的構成）
項１のデータ処理システムにおいて、前記データ群は、前記データ処理の処理単位のデータが複数個連続したデータであり、前記処理単位のデータは、処理対象とされるコンテンツデータと前記コンテンツデータの処理結果を出力するタイミングを指示する時間情報（ＰＴＳ）とを含む。また、前記データ処理制御部は、自らに供給される動作基準クロックに基づいて前記データ処理の開始からの経過時間を表す基準時間を生成する基準時間生成部（１４１、１６１）と、前記処理単位のデータの前記データ処理を実行するとともに、前記基準時間を参照し、前記時間情報に基づくタイミングで処理結果を出力するデータ処理部（１４２、１６２）と、前記第１領域の値の更新を行うと共に、前記基準時間生成部と前記データ処理部の動作を制御する制御部（１３、１５）と、を有する。前記制御部は、前記第１領域の値が前記所定の値（ゼロ）となったことを確認したら、前記基準時間の生成を開始させるとともに、前記データ処理を開始させる。
【００１９】
項２のデータ処理システムにおいて、夫々のデータ処理制御部は、前記処理単位のデータのデータ処理を実行し、処理結果を前記基準時間を参照しながら所定のタイミングで出力する。これによれば、例えば夫々のデータ処理制御部が共通の前記動作基準クロックを用いる場合には、前記データ処理の開始からの経過時間を表す前記基準時間は夫々のデータ処理制御部間で等しくなるから、上記のようにデータ処理の開始タイミングさえ合わせれば、夫々のデータ処理制御部の処理結果は共通の前記基準時間にしたがって出力されるので、以降の処理では同期をとるために新たな処理を行う必要はない。
【００２０】
〔３〕（ずれ調整方法）
項２のデータ処理システムにおいて、夫々の前記データ処理制御部には、相互に異なる前記動作基準クロックが供給される。また、前記制御部は、当該制御部を含む前記データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間と、他の前記データ処理制御部に供給された前記動作基準クロックに基づいて計測した動作の経過時間とのずれを表すずれ量を算出し、前記ずれ量が一定量を超えた場合には、前記データ処理制御部間の処理結果の出力タイミングのずれが減少するように、前記ずれ量に基づいて、当該制御部を含む前記データ処理制御部による処理結果の出力タイミングを調整する。
【００２１】
前述したように、夫々のデータ処理制御部が共通の動作基準クロックを用いる場合には、前記基準時間は夫々のデータ処理制御部間で等しくなるが、動作基準クロックが相互に異なる場合には、夫々のデータ処理制御部間で前記基準時間がずれる可能性がある。前記基準時間がずれたとすると、上記のようにデータ処理の開始タイミングを合わせたとしても、参照する前記基準時間がデータ処理制御部毎に異なるので、処理結果の出力タイミングがずれることになる。そこで、項３のデータ処理システムでは、夫々のデータ処理制御部での動作の経過時間に基づいて、データ処理制御部間の前記基準時間のずれ量を把握し、前記ずれ量に基づいて処理結果の出力タイミングを調整する。これにより、前記基準時間がずれた場合であっても、データ処理制御部間の処理結果の出力タイミングのずれを低減させることができる。
【００２２】
〔４〕（ずれ調整方法の具体例：出力タイミングの調整）
項３のデータ処理システムにおいて、前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記時間情報が示すタイミングに対して前記調整時間だけずらした時刻に処理結果を出力するように前記データ処理部を制御することである。
【００２３】
これによれば、ずれ量に応じた調整時間に応じて一方の処理結果の出力タイミングをずらすから、容易にデータ処理制御部間の出力タイミングのずれを低減させることができる。
【００２４】
〔５〕（ずれ調整方法の具体例：デコード開始タイミングの調整）
項３のデータ処理システムにおいて、前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記調整時間に応じて、前記データ処理の開始タイミングをずらすように前記データ処理部を制御することである。
【００２５】
例えば前記データ処理部において、データ処理を開始してから完了するまでの時間が略一定である場合には、上記のように前記データ処理の開始タイミングをずらすことで出力タイミングをずらすことができ、容易に出力タイミングのずれを低減させることができる。
【００２６】
〔６〕（ずれ調整のための具体的構成）
項３乃至５のいずれかのデータ処理システムにおいて、前記異なる種別のデータ群は、符号化されたストリーム形式の動画像の映像データと音声データとを含み、前記映像データと前記音声データにおける前記処理単位のデータは１つのフレームデータであり、前記複数のデータ処理制御部は、符号化された前記映像データの復号処理を行って処理結果を出力する第１データ処理制御部（２０又は２１）と、符号化された前記音声データの復号処理を行って処理結果を出力する第２データ処理制御部（２１又は２０）である。また、前記第１データ処理制御部と前記第２データ処理制御部は、前記制御部（１３又は１５）と、前記データ処理部（１４２又は１６２）と、前記基準時間生成部（１４１又は１６１）とを夫々有する。更に前記メモリ部は、前記第１データ処理制御部によって前記第１データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第２領域（１２２又は１２３）と、前記第２データ処理制御部によって前記第２データ処理制御部（１２３又は１２２）に供給される前記動作基準クロックに基づいて計測した動作の経過時間が格納される第３領域とを有する。前記第１データ処理部における前記制御部は、前記第２領域と前記第３領域を参照して前記ずれ量の算出を行い、前記出力タイミングの調整を行う。
【００２７】
上記のように、前記第２領域と前記第３領域を前記メモリ部に設け、その領域に前記第１データ処理制御部と前記第２データ処理制御部の夫々が前記動作の経過時間を書き込むことで、お互いの前記経過時間を容易に把握することができる。また、一般に人間は映像の変化よりも音声の変化の方が敏感であるということに着目し、項６のデータ処理システムでは、映像データのデータ処理を行う前記第１データ処理制御部が前記タイミングの調整を行う。これにより、視聴者が映像データの出力タイミングを変更したことを認識することなく、データ処理制御部間の出力タイミングのずれを低減させることができる。
【００２８】
〔７〕（経過時間の情報：最小公倍数）
項６のデータ処理システムにおいて、前記第２領域及び前記第３領域に格納される前記経過時間の情報は、前記第１データ処理制御部の前記動作基準クロックの１周期の時間と前記第２データ処理制御部の前記動作基準クロックの１周期の時間との最小公倍数に基づく時間毎にカウントされる値である。
【００２９】
例えば夫々の前記動作基準クロックの周波数が異なる場合であっても、前記経過時間を前記最小公倍数に基づく時間毎にカウントすれば、前記第１データ処理制御部と前記第２データ処理制御部にとって共通の時間軸で経過時間を判別することができ、ずれ時間を容易に把握することができる。
【００３０】
〔８〕（所定の時間間隔で前記ずれ量の算出を行う）
項３乃至７のいずれかのデータ処理システムにおいて、前記制御部は、前記出力タイミングの調整を所定の時間間隔で行う。
【００３１】
例えば人間が認知できる映像の変化は２００ｍｓ程度なので、それよりも小さいずれ時間であれば、視聴者は動画像の音声と映像のずれを認識できない可能性が高い。そこで、例えば人間が認識できない程度の時間間隔で上記ずれ量の算出を行えば、視聴者が動画像のずれを認識することなく、且つ前記タイミング調整に係る処理負荷を低減することができ、システム全体の低消費電力化に資する。
【００３２】
〔９〕（指定位置からのコンテンツの再生）
項６乃至８のいずれかのデータ処理システムにおいて、前記動画像の再生開始時刻（２００）が指定されたとき、前記第１データ処理制御部と前記第２データ処理制御部のいずれか一方における前記データ処理部は、前記指定された時刻に応じた前記時間情報を持つフレームデータ（２０５）を選択し、前記選択したフレームデータから順に復号処理を開始して処理結果を外部再生装置に出力する。他方の前記データ処理部は、前記指定された時刻に応じた前記時間情報を持つフレームデータ（２０６）を選択し、当該選択したフレームデータと前記一方のデータ処理部によって選択されたフレームデータの前記時間情報とが一致する場合には、当該選択したフレームデータから順に前記復号処理を開始して処理結果を外部再生装置に出力し、一致しない場合には、前記一方のデータ処理部によって選択されたフレームデータの出力タイミングに合うように、前記選択したフレームデータの再生を制御する。
【００３３】
動画像を最初から再生するのではなく、指定された再生時刻から再生を開始する場合（以下、「途中再生」とも称する。）には、指定された再生時刻に一致する前記時間情報を持つフレームデータを再生の先頭のフレームデータとして再生を開始するが、一致した前記時間情報を持つフレームデータが無い場合には、フレームデータの途中から再生することはできないので、指定された再生時刻に対応する前記時間情報を持つフレームデータの先頭から再生を開始する。すなわち、指定された再生時刻をフレームデータの先頭の時刻にずらすことで途中再生を実現する。この場合に、途中再生の先頭のフレームデータの前記時間情報が映像と音声で異なるときは、映像又は音声のいずれか一方の先頭フレームデータの前記時間情報で指定されるタイミングでフレームデータを出力するが、当該タイミングは、他方の先頭フレームデータにとっては、フレームデータの途中のタイミングとなってしまうので、再生することができない。そこで、項９のデータ処理システムでは、再生開始時の映像と音声の２つの先頭フレームデータのうち、フレームデータの先頭でないタイミングが指定されたフレームデータについての再生を制御することで、指定された再生時刻からの動画像の再生を可能とする。
【００３４】
〔１０〕（フレームデータの再生制御の具体例：他方のフレームデータの再生時間を調整）
項９のデータ処理システムにおいて、前記他方の前記データ処理部（１６２）は、前記選択したフレームデータ（２０６）の再生時間を変更することで、前記フレームデータの再生を制御する。
【００３５】
項１０のデータ処理システムでは、一方の先頭フレームデータの出力タイミングに合うように、他方の先頭フレームデータの再生時間を調整するから、途中再生の場合でも映像と音声を同じタイミングで出力することができる。
【００３６】
〔１１〕（フレームデータの再生制御の具体例：無音データの出力）
項９のデータ処理システムにおいて、前記一方の前記データ処理部は、前記第１データ処理制御部における前記データ処理部（１４２）であり、前記他方の前記データ処理部は、前記第２データ処理制御部における前記データ処理部（１６２）である。また、前記第２データ処理制御部における前記データ処理部は、前記選択した音声のフレームデータ（２０６）の代わりに無音状態を示すフレームデータ（２０８）を出力することで、前記フレームデータの再生を制御する。
【００３７】
映像のフレームデータの出力タイミングに合うように、音声が無音状態のフレームデータを挿入することで、指定された再生時刻からの動画像の再生を、容易に実現することができる。
【００３８】
〔１２〕（共有メモリの具体的な利用方法の一例）
項２乃至１１のいずれかのデータ処理システムにおいて、前記データ処理の実行が可能か否かを表す値の初期値として、前記複数のデータ処理制御部の個数に応じたカウント値（“２”）が設定され、前記制御部は前記データ処理部によるデータ処理の実行の準備が完了したら前記カウント値をディクリメントすることで前記更新を行う。また、前記所定の値はゼロを示すカウント値である。
【００３９】
これによれば、夫々のデータ処理制御部のデータ処理の開始タイミングを合わせことができるシステムを容易に実現することができる。
【００４０】
〔１３〕（停止時は共有メモリをインクリメントする）
項３乃至１２のいずれかのデータ処理システムにおいて、前記制御部は、前記データ処理部によるデータ処理の実行を停止する場合には、前記カウント値を前記所定の値からインクリメントすることで更新する。
【００４１】
これによれば、例えば一の前記データ処理制御部のストリームデータの入力が滞った場合に、他の前記データ処理制御部によるデータ処理の実行を停止することができるから、他の前記データ処理制御部による処理結果だけが出力されることを防止することができ、夫々の前記データ処理制御の同期動作を維持することができる。
【００４２】
〔１４〕（複数の共有メモリを利用して処理開始を同期させるデータ処理システム）
本発明の代表的な別の実施の形態に係るデータ処理システム（５）は、外部から異なる種別のデータ群を入力して、種別毎にデータ処理を行うデータ処理システムである。前記データ処理システムは、前記データ群の種別毎に対応され、対応した種別の前記データ群のデータ処理を行う複数のデータ処理制御部（２０、２１）と、夫々の前記データ処理制御部によってアクセス可能とされ、前記データ処理の実行が可能か否かを表す値が格納される第１領域（５０１、５０２）を、前記データ処理制御部毎に有するメモリ部（５２）と、を有する。夫々の前記データ処理制御部は、自己の前記データ処理の実行の準備が完了したら、自己の前記第１領域の値を更新するとともに、他の前記データ処理制御部に対応する前記第１領域の値を参照し、夫々の前記第１領域の値が所定の値（ゼロ）となったら、夫々の前記データ処理部は夫々の前記データ処理の開始のタイミングを合わせて前記データ処理を実行する。
【００４３】
これによれば、項１と同様に、夫々のデータ処理制御部は前記第１領域の値が前記所定の値になるのを待って、前記データ処理を開始するから、夫々のデータ処理制御部のデータ処理の開始のタイミングを合わせることができる。また、夫々のデータ処理制御部が前記第１領域の値を参照することで、データ処理の実行が可能か否かを判断するので、前記複数のデータ処理制御部の間で予め主従関係を決めておく必要は無い。
【００４４】
〔１５〕（データ処理システムの具体的構成）
項１４のデータ処理システムにおいて、前記データ群は、前記データ処理の処理単位のデータが複数個連続したデータであり、前記処理単位のデータは、処理対象とされるコンテンツデータと、前記コンテンツデータの処理結果を出力するタイミングを指示する時間情報（ＰＴＳ）と、を含む。また、前記データ処理制御部は、自らに供給される動作基準クロックに基づいて前記データ処理の開始からの経過時間を表す基準時間を生成する基準時間生成部（１４１、１６１）と、前記処理単位のデータの前記データ処理を実行するとともに、前記基準時間を参照し、前記時間情報に基づくタイミングで処理結果を出力するデータ処理部（１４２、１６２）と、前記第１領域の値の更新を行うと共に、前記基準時間生成部と前記データ処理部の動作を制御する制御部（１３、１５）と、を有する。前記制御部は、前記第１領域の値が前記所定の値となったことを確認したら、前記基準時間の生成を開始させるとともに、前記データ処理を開始させる。
【００４５】
これによれば、例えば夫々のデータ処理制御部が共通の前記動作基準クロックを用いる場合には、項２と同様に、上記のようにデータ処理の開始タイミングを合わせさえすれば、夫々のデータ処理制御部の処理結果は共通の前記基準時間にしたがって出力されるので、以降の処理では同期をとるために新たな処理を行う必要はない。
【００４６】
〔１６〕（ずれ調整方法）
項１５のデータ処理システムにおいて、夫々の前記データ処理制御部には、相互に異なる前記動作基準クロックが供給される。また、前記制御部は、当該制御部を含む前記データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間と、他の前記データ処理制御部に供給された前記動作基準クロックに基づいて計測した動作の経過時間とのずれを表すずれ量を算出し、前記ずれ量が一定量を超えた場合には、前記データ処理制御部間の処理結果の出力タイミングのずれが減少するように、前記ずれ量に基づいて、当該制御部を含む前記データ処理制御部による処理結果の出力タイミングを調整する。
【００４７】
これによれば、項３と同様に、前記基準時間がずれた場合であっても、前記データ処理制御部間の処理結果の出力タイミングのずれを低減させることができる。
【００４８】
〔１７〕（ずれ調整方法の具体例：出力タイミングの調整）
項１６のデータ処理システムにおいて、前記出力タイミングの調整は、前記ずれ量に応じた調整時間を算出し、前記時間情報が示すタイミングに対して前記調整時間だけずらした時刻に処理結果を出力するように前記データ処理部を制御することである。
【００４９】
これによれば、項４と同様に、容易にデータ処理制御部間の出力タイミングのずれを低減させることができる。
【００５０】
〔１８〕（ずれ調整のための具体的構成）
項１６又は１７のデータ処理システムにおいて、前記異なる種別のデータ群は、符号化されたストリーム形式の動画像の映像データと音声データとを含み、前記映像データと前記音声データにおける前記処理単位のデータは、１つのフレームデータであり、前記複数のデータ処理制御部は、符号化された前記映像データの復号処理を行って処理結果を出力する第１データ処理制御部（２０）と、符号化された前記音声データの復号処理を行って処理結果を出力する第２データ処理制御部（２１）である。また、前記第１データ処理制御部と前記第２データ処理制御部は、前記制御部（１３、１５）と、前記データ処理部（１４２、１６２）と、前記基準時間生成部（１４１、１６１）とを夫々有する。更に、前記メモリ部は、前記第１データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が前記第１データ処理制御部によって格納される第２領域（１２２）と、前記第２データ処理制御部に供給される前記動作基準クロックに基づいて計測した動作の経過時間が前記第２データ処理制御部によって格納される第３領域（１２３）と、を有する。前記第１データ処理部における前記制御部は、前記第２領域と前記第３領域を参照して前記ずれ量の算出を行い、前記タイミングの調整を行う。
【００５１】
これによれば、項６と同様に、前記第１データ処理制御部と前記第２データ処理制御部の夫々がお互いの前記経過時間を容易に把握することができ、且つ、視聴者が映像データの出力タイミングを変更したことを認識することなく、データ処理制御部間の出力タイミングのずれを低減させることができる。
【００５２】
〔１９〕（デッドロック回避方法１）
項１４乃至１８のいずれかのデータ処理システムにおいて、前記データ処理制御部は、自己の前記第１領域の値を更新した後に、他の前記データ処理制御部に対応する前記第１領域の値を参照する。
【００５３】
これによれば、夫々の前記データ処理制御部がデータ処理の準備ができているにも関わらずデータ処理を開始できないというデッドロック状態を回避することができる。
【００５４】
〔２０〕（デッドロック回避方法２）
項１４乃至１９のいずれかのデータ処理システムにおいて、前記データ処理制御部は、他の前記データ処理制御部に対応する前記第１領域の値を参照し、所定時間経過後に自己の前記第１領域の値を更新する。
【００５５】
これによれば、夫々の前記データ処理制御部がデータ処理の準備ができているにも関わらずデータ処理を開始できないというデッドロック状態を回避することができる。
【００５６】
〔２１〕（実施例１の半導体装置）
項１乃至１３のいずれかのデータ処理システムは、シングルチップ又はマルチチップで構成されて成る。
【００５７】
これによれば、システム全体の小面積化に資する。
【００５８】
〔２２〕（実施例２の半導体装置）
項１４乃至２０のいずれかのデータ処理システムは、シングルチップ又はマルチチップで構成されて成る。
【００５９】
これによれば、システム全体の小面積化に資する。
【００６０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００６１】
≪実施の形態１≫
図１に、本発明に係るデータ処理システムの一実施の形態として、複数のプロセッサコアを備えるマルチプロセッサシステムのブロック図を示す。同図に示されるマルチプロセッサシステム１は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。前記マルチプロセッサシステム１は、例えば携帯電話やカーナビゲーション用の動画コンテンツを再生するためのシステムＬＳＩである。
【００６２】
動画コンテンツのデータは、例えばＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）規格によって符号化されたストリームデータであり、映像ストリームデータと音声ストリームデータとが多重化されている。前記映像ストリームデータと前記音声ストリームデータの１フレーム単位の再生時間は異なる。例えば２９．９７フレーム毎秒の映像コンテンツの場合、映像ストリームデータの１フレームのデータの再生時間は約３３ｍｓとされる。一方、音声ストリームデータはサンプリングレートにより符号化時に利用する周波数（例えば２２ｋＨｚ、４４．１ｋＨｚ、４８ｋＨｚ、及び１９２ｋＨｚ等）に応じた再生時間とされる。
【００６３】
動画コンテンツのデータは、通信ネットワーク等からコンテンツデータ格納装置２に一旦格納された後、マルチプロセッサシステム１に入力される。マルチプロセッサシステム１は、入力された動画コンテンツデータを、音声ストリームデータと映像ストリームデータに分離し、音声ストリームデータと映像ストリームデータについて個別に復号化処理を実行する。そして、復号化した映像データを映像データ表示部３に出力することにより映像を再生させ、復号化した音声データを音声データ発声部４に出力することにより音声を再生させることで、動画コンテンツの再生を実現する。
【００６４】
前記マルチプロセッサシステム１は、主に映像データの復号処理を行う映像処理系２０と、主に音声データの復号処理を行う音声処理系２１と、システム全体を制御するための制御系と、に大きく分けることができる。前記映像処理系２０と前記音声処理系２１は、夫々ＣＰＵコアと演算ブロックとを含み、夫々別々のＣＰＵコア上で別々のＯＳとアプリケーションプログラムが実行されることにより実現される。すなわち、マルチプロセッサシステム１における複数のＣＰＵコアのうち、１つのＣＰＵコア上では、第１のＯＳの管理の下に映像データ処理用のプログラムが実行されることにより前記映像処理系２０が制御され、もう１つのＣＰＵコア上では、第２のＯＳの管理の下に音声データ処理用のプログラムが実行されることにより前記音声処理系２１が制御される。また、映像処理系２０と音声処理系２１は、別々の動作基準クロックが供給され、前記動作基準クロックに基づいてデータ処理が実行される。夫々の前記動作基準クロックは、例えば、図示されないＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路によって、外部に接続される水晶発振器からのクロック信号又は外部から入力される外部クロック信号等に基づいて生成されるクロック信号である。
【００６５】
前記制御系は、システム制御部１０とコンテンツデータ取得部１１から構成される。システム制御部１０は、システム全体の統括的な制御を行う機能部であり、例えば、ＣＰＵコアによるプログラム処理で実現される。コンテンツデータ取得部１１は、システム制御部１０からの指示に基づいて、コンテンツデータ格納装置２に蓄えられた動画像のコンテンツデータを取得する。システム制御部１０は、取得したコンテンツデータを映像ストリームデータと音声ストリームデータに分離し、前記映像ストリームデータを映像処理系２０に、前記音声ストリームデータを音声処理系２１に夫々与える。なお、前記制御系は、前記第１のＯＳ又は前記第２のＯＳの管理の下にシステム制御用のプログラムが実行されることにより実現されてもよいし、別途新たなＣＰＵコアを用意して、そのＣＰＵコアで実行される第３のＯＳの管理の下で実現されてもよい。
【００６６】
映像処理系２０は、映像処理用制御部１３と映像データ処理部１４から構成される。映像処理用制御部１３は、映像データのデータ処理について統括的な制御を行う機能部であり、ＣＰＵコアで実行されるプログラム処理によって実現される。映像データ処理部１４は、符号化された映像ストリームデータについてデータ処理を行う機能部であり、例えば専用ロジック回路で構成される。具体的には、映像データ処理部１４は、映像用ハードウェアクロック（ＶＣＬＫ）１４１と映像デコード処理部（ＶＤＣＲ）１４２から構成される。映像用ハードウェアクロック１４１は、映像処理系２０に供給される動作基準クロックに基づいて、映像デコード処理部１４２によるデータ処理の開始からの経過時間を表す基準時間を生成する。映像デコード処理部１４２は、前記システム制御部１０を介して与えられた符号化された映像ストリームデータを入力して復号処理を実行し、前記基準時間に基づいて復号処理された映像データを映像データ表示部３に出力する。前記映像データ表示部３は映像再生装置であり、例えばＬＣＤである。映像処理系２０における詳細な処理内容については後述する。
【００６７】
音声処理系２１は、音声処理用制御部１５と音声データ処理部１６から構成される。音声処理用制御部１５は、音声データのデータ処理について統括的な制御を行う機能部であり、例えば映像処理系２０とは別のＣＰＵコアで実行されるプログラム処理によって実現される。音声データ処理部１６は、符号化された音声ストリームデータについてデータ処理を行う機能部であり、例えば専用ロジック回路で構成される。具体的には、音声データ処理部１６は、音声用ハードウェアクロック（ＡＣＬＫ）１６１と音声デコード処理部（ＡＤＣＲ）１６２から構成される。音声用ハードウェアクロック１６１は、音声処理系２１に供給される動作基準クロックに基づいて、音声デコード処理部１６２によるデータ処理の開始からの経過時間を表す基準時間を生成する。音声デコード処理部１６２は、前記システム制御部１０を介して与えられた符号化された音声ストリームデータを入力して復号処理を実行し、前記基準時間に基づいて復号処理された音声データを音声データ発声部４に出力する。前記音声データ発声部４は音声再生装置であり、例えばスピーカである。音声処理系２１における詳細な処理内容については後述する。
【００６８】
前記マルチプロセッサシステム１は更に、夫々のＣＰＵコアによるプログラム処理のためのソフトウェアを格納するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から構成されるメモリ部１２を有する。前記ＲＡＭには、映像処理系２０を司るＣＰＵコアと音声処理系２１を司るＣＰＵコアの双方によってアクセス可能な共有メモリとしてのメモリ領域が設けられる。具体的には、前記共有メモリのメモリ領域として、同期用領域１２１、映像側経過時間領域１２２、及び音声側経過時間領域１２３が設けられる。夫々の領域の詳細については後述する。
【００６９】
ここで映像処理系２０と音声処理系２１による具体的なデータ処理内容について説明する。
【００７０】
図２は、映像処理系２０と音声処理系２１の具体的な構成の一例を示す説明図である。
【００７１】
先ず、システム制御部１０は、コンテンツデータ取得部１１から多重化されたストリームデータを入力する。システム制御部１０は、例えば分離部（ＤＥＭＵＸ）１０１と制御部（ＣＮＴ）１０２とから構成される。前記分離部１０１及び制御部１０２は、例えばプログラム処理を実行するＣＰＵコアによって実現される機能部である。分離部１０１は、制御部１０２からの指示に応じて、システム制御部１０に入力されたストリームデータから音声ストリームデータと映像ストリームデータを分離し、前記音声ストリームデータを音声デコード処理部１６２に与えるととともに、前記映像ストリームデータを映像デコード処理部１４２に与える。制御部１０２は、映像データと音声データの復号処理の統括的な制御を行う。具体的には、前記分離部１０１に対して動作を指示するとともに、映像処理用制御部１３及び音声処理用制御部１５に対し復号処理の実行と停止を指示する。また、前記多重化されたストリームデータにＰＣＲ（Ｐｒｏｇｒａｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）やＳＣＲ（Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）の時刻基準参照値の情報が含まれる場合には、制御部１０２は、前記分離部１０１によって前記多重化されたストリームデータから抽出されたＰＣＲやＳＣＲの値に基づいて、ＳＴＣ（Ｓｙｓｔｅｍ  Ｔｉｍｅ  Ｃｌｏｃｋ）の値を符号時に意図した値にセット又は校正する。前記ＳＴＣの値は、符号化したときの基準時間を再現するための時間情報である。そして、制御部１０２は、前記ＳＴＣの値に基づいて、音声用ハードウェアクロック１６１及び映像用ハードウェアクロック１４１に対し夫々の基準時間の初期値等を設定する。
【００７２】
映像処理用制御部１３及び音声処理用制御部１５は、復号処理の実行が指示されると、前記デコード処理部１４２、１６２と前記ハードウェアクロック１４１、１６１を制御することにより、復号処理を開始させる。具体的には、映像処理用制御部１３からの動作開始指示により、映像デコード処理部１４２は映像ストリームデータの復号処理を開始し、映像用ハードウェアクロック１４１は映像ストリームデータの復号処理に係る前記基準時間の生成を開始する。同様に、音声処理用制御部１５からの動作開始指示により、音声デコード処理部１６２は音声ストリームデータの復号処理を開始し、音声用ハードウェアクロック１６１は音声ストリームデータの復号処理に係る前記基準時間の生成を開始する。
【００７３】
前記映像ストリームデータ及び前記音声ストリームには、映像や音声のコンテンツの実データの他に、復号再生を行うタイミングを指示する時間情報（以下、「タイムスタンプ」とも称する。）が１フレーム毎に含まれる。前記タイムスタンプは、例えば再生出力の時刻管理情報であるＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ）や、復号の時刻管理情報であるＤＴＳ（Ｄｅｃｏｄｉｎｇ  Ｔｉｍｅ  Ｓｔａｍｐ）である。前記映像デコード処理部１４２は、映像用ハードウェアクロック１４１による前記基準時間を参照しながら、ＰＴＳが示すタイミングで、復号処理された映像ストリームデータを１フレーム毎に出力する。例えば前記映像デコード処理部１４２は、前記基準時間を参照し、ＰＴＳで示される時刻になったら対応するフレームの復号処理結果を出力する。同様の処理を、前記音声デコード処理部１６２が前記音声ストリームに含まれる前記タイムスタンプに基づいて行う。このように、前記映像デコード処理部１４２及び前記音声デコード処理部１６２が、前記タイムスタンプに示される時刻に応じて復号処理結果を１フレームごとに順番に出力することで、動画コンテンツの再生を実現する。
【００７４】
しかしながら、前述したように音声と映像の復号処理が別々のプロセッサコアの制御下で実行される場合には、双方の復号処理の同期を意識しないと、再生される音声と表示される映像のタイミングがずれてしまう虞がある。そこで、本実施の形態に係るマルチプロセッサシステム１では、共有メモリを用いることで、音声データの復号処理と映像データの復号処理の開始タイミングを揃える。
【００７５】
図３は、２つの復号処理の開始タイミングの調整方法の一例を示す説明図である。同図に示されるように、メモリ部１０の同期用領域１２１には予め初期値が設定される。初期値としては、例えば、開始タイミングを揃える必要のあるＣＰＵコアの数、すなわち、開始タイミングを揃える必要のあるデータ処理の数に応じた値が設定される。本実施の形態では、音声データの復号処理と映像データの復号処理の２つの処理の開始タイミングを揃える必要があるので、図３に示されるように、初期値として“２”を設定する。
【００７６】
映像処理用制御部１３及び音声処理用制御部１５は、定期的に同期用領域１２１にアクセスしてその値を確認する。そして、自己の復号処理の開始の準備が完了したら、メモリ部１０の同期用領域１２１にアクセスし、保持された値を更新する。例えば、映像ストリームデータの復号処理の準備が完了したら、映像処理用制御部１３は同期用領域１２１の値をディクリメントする。これにより値が“１”となる。そして、映像処理用制御部１３は同期用領域１２１の値が“０（ゼロ）”になるまで待機する。待機は、例えばビジーループ、又は所定の時間間隔でのポーリングにより実現する。前記所定の時間間隔は、例えば、視聴者が音声と映像のずれを認識できない程度の時間間隔である。その後、音声ストリームデータの復号処理の準備が完了したら、音声処理用制御部１５が同期用領域１２１の値をディクリメントする。これにより値が“０”となる。値が“０”となったら、映像処理用制御部１３は映像デコード処理部１４２及び映像用ハードウェアクロック１４１に対して動作開始を指示し、音声処理用制御部１５は音声デコード処理部１６２及び音声用ハードウェアクロック１６１に対して動作開始を指示する。これにより、音声データの復号処理と映像データの復号処理の開始タイミングを揃えることができる。
【００７７】
音声処理用制御部１５と映像処理用制御部１３は、復号処理を実行している間も定期的に同期用領域１２１にアクセスして、その値を確認する。復号処理の実行中に何らかの原因で処理が進められなくなった場合には、映像処理用制御部１３及び音声処理用制御部１５は同期用領域１２１の値をインクリメントする。例えば、動画コンテンツがネットワーク経由で提供される場合に、通信環境等の影響で音声と映像のどちらか一方のストリームデータの提供が中断される虞がある。このような場合には、映像処理用制御部１３と音声処理用制御部１５のうちストリームデータの提供が中断した方の制御部が同期用領域１２１の値をインクリメントすることで、双方の復号処理を中断させる。
【００７８】
図４は、復号処理を中断させる方法の一例を示す説明図である。同図に示されるように、例えば映像処理側で何らかの障害が発生し復号処理が続けられなくなった場合、映像処理用制御部１３が同期用領域１２１の値をインクリメントし、値を“１”にするとともに、復号処理を中断する。そして、同期用領域１２１の値が“１”になったことを確認した音声処理用制御部１５は、音声デコード処理部１６２及び音声用ハードウェアクロック１６１に対して動作停止を指示し、音声ストリームデータの復号処理を中断する。その後、映像処理側が復旧し復号処理を再開できるようになったら、映像処理用制御部１３が同期用領域１２１の値をディクリメントし、値を“０”にする。そして、同期用領域１２１の値が“０”になったことを確認した音声処理用制御部１５及び映像処理用制御部１３は、夫々の復号処理を再開させる。これにより、夫々の復号処理の中断と再開のタイミングを揃えることができる。
【００７９】
仮に映像処理系２０と音声処理系２１が共通の動作基準クロックを用いる場合には、上記のように映像用ハードウェアクロック１４１と音声用ハードウェアクロック１６１の動作開始タイミングを一致させれば、生成される前記基準時間は夫々等しくなる。前記基準時間が等しければ、同一の時間軸を基準として音声と映像の復号処理結果が出力されるため、復号処理の開始タイミングさえ合わせれば、映像と音声がずれることなく再生される。しかしながら、本実施の形態のように、前記動作基準クロックが相互に異なる場合には、映像用ハードウェアクロック１４１と音声用ハードウェアクロック１６１の動作開始タイミングを一致させたとしても、映像処理系２０と音声処理系２１の前記基準時間がずれる可能性がある。また、共通の動作基準クロックを用いる場合であっても、各種処理が、夫々のＯＳが計測・管理しているタイマ（システムクロック）を利用していると、処理のタイミングがそのタイマの精度に丸められるため、夫々の前記基準時間の間で誤差が生じる可能性がある。映像処理系２０と音声処理系２１の間で前記基準時間のずれがあると、上記のように双方の復号処理の開始タイミングを合わせたとしても、復号処理結果が出力されるタイミングがずれることになり、動画の映像と音声がずれて再生される。そこで、マルチプロセッサシステム１では、前記同期用領域１２１を利用した開始タイミングの調整に加え、映像処理系２０と音声処理系２１の夫々の動作の経過時間のずれ量に基づいて復号処理結果の出力タイミングの調整を行うことで、動画再生における映像と音声のずれを防止する。
【００８０】
図５は、前記経過時間の記録方法の一例を示す説明図である。
【００８１】
同図に示されるように、メモリ部１０の共有メモリの領域として、前述の同期用領域１２１に加え、映像処理系２０の動作の経過時間を格納するための映像側経過時間領域１２２と、音声処理系２１の動作の経過時間を格納するための音声側経過時間領域１２３とを設ける。映像側経過時間領域１２２及び音声側経過時間領域１２３に対するデータの書き換えは対応する処理系にのみ認められ、データの読み出しは双方の処理系に認められる。具体的には、映像処理用制御部１３が映像側経過時間領域１２２に映像処理系２０の動作の経過時間を格納し、音声処理用制御部１５が音声側経過時間領域１２３に映像処理系２０の動作の経過時間を格納する。そして、夫々の制御部がお互いの経過時間を監視する。前記動作の経過時間は、例えば復号処理を開始してからの経過時間である。例えば、映像処理系２０であれば、映像処理用制御部１３が、映像用ハードウェアクロック１４１が出力する前記基準時間に基づいて経過時間を算出し、その値を映像側経過時間領域１２２に記録する。または、映像処理系２０に供給される動作基準クロックに基づいて映像処理系２０の動作開始からの経過時間を計時するカウンタを別途設け、そのカウンタの値を映像処理用制御部１３が映像側経過時間領域１２２に記録する。音声処理系２１についても同様である。記録される値は、例えば秒単位の時間情報や夫々の動作基準クロックの周波数の最小公倍数に基づくカウント値である。例えば、映像処理系２０の動作基準クロックが８ＭＨｚ（周期Ｔ＝１２５ｎｓ）であり、音声処理系２１の動作基準クロックが１０ＭＨｚ（周期Ｔ＝１００ｎｓ）である場合には、夫々の動作基準クロックの１周期の最小公倍数である５００ｎｓを最小単位とした時間毎にカウントアップしてカウント値を更新する。なお、復号処理や処理結果の出力が途中で中断した場合であっても、この経過時間の更新は、各制御部が責任を持って更新する。このように共通の時間軸で経過時間を記録することで、映像処理系と音声処理系との時間のずれを容易に把握することができる。
【００８２】
前記経過時間のずれに基づく復号処理結果の出力タイミングの調整方法について具体的に説明する。
【００８３】
復号処理結果の出力タイミングの調整は、映像処理系２０及び音声処理系２１のいずれか一方において行う。前述したように、一般に人間は映像の変化よりも音声の変化の方が敏感であることから、以下の説明では、一例として、映像処理系２０において出力タイミングの調整を行うものとして説明する。
【００８４】
図６は、映像処理用制御部１３における出力タイミング調整に係る処理の流れの一例を示すフロー図である。先ず、映像ストリームデータの復号処理が開始されると、映像処理用制御部１３は所定時間が経過したか否かを確認する（Ｓ６０１）。前記所定時間は、視聴者が動画像のずれを認識する時間よりも短い時間である。例えば、前述したように人間が認知できる映像の変化は２００ｍｓ程度なので、それよりも小さいずれ時間であれば、視聴者は動画像の音声と映像のずれを認識できない可能性が高い。そこで、例えば、１フレーム分の復号処理結果の出力間隔が３３ｍｓである場合には、３３ｍｓ毎に映像処理用制御部１３がメモリ部１０を参照し、後述する前記経過時間のずれ量の算出を行う。
【００８５】
ステップ６０１において、前記所定時間が経過していない場合には、映像処理用制御部１３は、引き続き前記所定時間が経過するのを待つ。一方、前記所定時間が経過した場合には、映像処理用制御部１３は、映像側経過時間領域１２２と音声側経過時間領域１２３を参照し、夫々の経過時間のずれ量を算出する（Ｓ６０２）。前記ずれ量の算出は、２つの前記経過時間の差分を計算することにより行う。次に映像処理用制御部１３は、ずれ許容量と算出したずれ量との比較を行う（Ｓ６０３）。前記ずれ許容量は、例えば映像処理用制御部１３の内部等に設けられたレジスタ等の記憶部に予め設定される値である。前記すれ許容量として設定される値は、例えば、視聴者が動画像のずれを認識できる時間よりも十分短い時間となる値であり、例えば、１ｍｓ以下の値である。
【００８６】
前記比較の結果、前記ずれ量が前記ずれ許容量よりも小さい場合には、映像処理用制御部１３は、ステップ６０１に移行し、再度前記所定時間の経過を待つ。一方、前記ずれ量が前記ずれ許容量よりも大きい場合には、映像処理用制御部１３は、前記ずれ量に基づいて前記出力タイミングを調整するための調整時間の算出を行う（Ｓ６０４）。前記調整時間は、例えば、前記ずれ量が前記ずれ許容量よりも小さくなるような値であれば良く、必ずしも経過時間のずれ量と等しい値にする必要はない。そして、映像処理用制御部１３は、映像デコード処理部１４２に対し、映像ストリームデータの復号処理結果の出力タイミングの調整を指示するとともに、算出した調整時間の情報を出力する（Ｓ６０５）。指示を受けた映像デコード処理部１４２は、前記調整時間の情報に基づいて出力タイミングの調整を実行する（Ｓ６０６）。その後は、ステップ６０１に移行し、上記の処理が繰り返される。
【００８７】
図７は、映像デコード処理部１４２による出力タイミングの調整方法の具体例を示す説明図である。
【００８８】
同図の（Ａ）に示される調整方法は、映像ストリームデータの前記タイムスタンプ（ＰＴＳ）が示すタイミングに対して、前記調整時間だけずらした時刻に復号処理結果を出力するように制御する方法である。これによれば、前記調整時間に応じて映像ストリームデータの復号処理結果の出力タイミングをずらすから、映像データ表示部３による映像の再生タイミングをずらすことができる。これにより、復号結果の出力タイミングのずれによる映像と音声のずれを容易に低減させることができる。
【００８９】
同図の（Ｂ）に示される調整方法は、前記調整時間だけずらした時刻に復号処理を開始するように制御する方法である。例えば映像デコード処理部１４２におけるデータ処理の開始から完了までの時間が略一定である場合には、映像デコード処理部１４２の復号処理の開始タイミングを遅らせる、又は早めることで映像ストリームデータの復号処理結果の出力タイミングをずらすことができる。すなわち、映像データ表示部３による映像の再生タイミングをずらすことができる。これにより、復号結果の出力タイミングのずれによる映像と音声のずれを容易に低減させることができる。
【００９０】
上記２つ調整方法のうち何れの調整方法を採用するかは、映像デコード処理部１４２のシステム構成によるが、ここでは図７の（Ａ）に示される調整方法を適用する場合を一例とし、具体的に図８及び図９に示す２つの状況を一例として更に詳細に説明する。
【００９１】
図８は、音声の復号処理に対して映像の復号処理が進んでいる場合を示す説明図である。同図の（Ａ）において、音声の復号処理結果４００と映像の復号処理結果４０１は、前記基準時間上の同じタイミングで出力が指定された１フレームのデータである。同図には、映像ストリームデータの復号処理の前記基準時間が音声ストリームデータの復号処理の前記基準時間よりも進んでおり、共通の時間軸での復号処理結果４００の出力タイミングが参照符号３００のタイミングであり、復号処理結果４０１の出力タイミングが参照符号３０１のタイミングとなっている場合が示される。同図に示されるように、時間ｔ１だけ前記基準時間がずれているため、映像処理用制御部１３は調整時間ｔ１だけ遅らせたタイミングで復号処理結果を出力する。例えば、図８の（Ｂ）に示されるように、タイムスタンプで指定された時刻よりも調整時間ｔ１だけ遅らせた時刻に、復号処理結果４０１を映像データ表示部３に出力する。これにより、音声の復号処理結果４００と映像の復号処理結果４０１の出力タイミングのずれを減少させることができる。なお、前記調整時間をずれ時間ｔ１と同じ値としたが、これに限られず、視聴者がずれを認識しない程度のずれ時間となるように前記調整時間を決定してもよい。
【００９２】
図９は、音声の復号処理に対して映像の復号処理が遅れている場合を示す説明図である。同図の（Ａ）において、音声の復号処理結果４００と映像の復号処理結果４０２は、前記基準時間上の同じタイミングで出力が指定された１フレームのデータである。同図には、映像ストリームデータの復号処理の前記基準時間が音声ストリームデータの復号処理の前記基準時間よりも遅れており、共通の時間軸での復号処理結果４００の出力タイミングが参照符号３００のタイミングであり、復号処理結果４０２の出力タイミングが参照符号３０２のタイミングとなっている場合が示される。同図に示されるように、時間ｔ２だけ前記基準時間がずれているため、映像処理用制御部１３は、映像の復号処理結果４０２の表示時間を調整時間ｔ２だけ短くして映像データ表示部３に表示させる。例えば、図９の（Ｂ）に示されるように、映像処理用制御部１３が映像データ処理部１４２に対し、復号処理結果４０２の表示時間を調整時間ｔ２だけ短くするように指示し、その指示を受けた映像データ処理部１４２が、復号処理結果４０２に含まれる表示時間の情報を変更し、当該復号処理結果４０２の前記タイムスタンプ（ＰＴＳ）が示すタイミングで映像データ表示部３に出力する。例えば、１フレームの復号処理結果４０２の元々の表示時間が３３ｍｓ、ずれ時間ｔ２が１３ｍｓである場合、１フレームの復号処理結果４０２の表示時間を２０ｍｓとして映像データ表示部３に出力する。なお、なお、前記調整時間をずれ時間ｔ２と同じ値としたが、これに限られない。
【００９３】
以上のように出力タイミングの調整処理を復号処理中に常に行うのではなく所定の時間間隔で実行するから、視聴者が認識できるような動画再生のずれを防止しつつ、前記出力タイミング調整に係る処理負荷を低減することができ、システム全体の低消費電力化に資する。
【００９４】
次に、動画コンテンツを途中再生する方法について説明する。
【００９５】
図１０は、動画コンテンツの再生開始位置が指定された場合を示す説明図である。
【００９６】
同図に示されるように、動画コンテンツデータは、１フレーム毎に連続したデータ構成の音声ストリームデータ及び映像ストリームデータにより構成される。音声ストリームデータと映像ストリームデータは、前述したように１フレーム毎の再生間隔が異なるが、動画コンテンツの先頭の音声ストリームデータと映像ストリームデータは、再生タイミングを揃えて符号化されている場合が多い。また、先頭の音声ストリームデータと映像ストリームデータの再生タイミングずれている場合であっても、メタデータ等に再生タイミングのずれ幅の情報が記載されている。そのため、動画コンテンツを最初から再生する場合には、前述のように音声と映像の復号処理の開始タイミングさえ合わせてしまえば、問題なく動画コンテンツの再生を行うことができる。しかしながら、例えばマルチメディア再生機器の特殊再生機能等により再生位置を指定して動画再生を行う場合、その指定位置がフレームの先頭ではなくフレームの途中の位置であると、その指定位置から再生することはできない。これは、再生に必要な情報は各フレームの先頭位置に格納されており、フレームの先頭からでないと再生できないからである。そこで、マルチプロセッサシステム１では、再生開始位置が指定された場合には、フレームの区切れの位置から再生を開始する。例えば、図１０に示されるように、再生開始位置として参照符号２００の位置が指定されたとき、参照符号２０１乃至２０４のいずれかの位置から再生を開始する。このとき再生開始位置として、映像ストリームデータの区切れ位置２０１若しくは２０２を選択するか、又は音声ストリームデータの区切れ位置２０３若しくは２０４を選択するかは特に制限されないが、本実施の形態では映像ストリームデータの区切れ位置２０１又は２０２を再生開始位置とする場合を説明する。
【００９７】
例えば動画コンテンツの再生開始位置を参照符号２０１の位置とする場合、映像処理用制御部１３は、映像ストリームデータの先頭フレームとして参照符号２０５のフレームを選択し、映像デコード処理部１４２は前記フレーム２０５から順に復号処理を実行し、処理結果を出力する。一方、音声処理用制御部１５は、音声ストリームデータの先頭フレームとして、例えば位置２０１に近い参照符号２０６のフレームを選択する。ここで、フレーム２０６の先頭位置（出力タイミング）２０３とフレーム２０５の先頭位置（出力タイミング）２０１とが一致している場合には、映像デコード処理部１４２は前記フレーム２０６から順に復号処理を実行し、処理結果を出力する。しかし、図１０に示されるようにフレーム２０６の先頭位置２０１とフレーム２０５の先頭位置２０３とが一致していない場合には、映像側と出力タイミングを合わせるための調整が必要となる。この場合の調整方法について、図１１を用いて詳細に説明する。
【００９８】
図１１は、途中再生を行う場合における音声ストリームデータの出力タイミングの調整方法の一例を示す説明図である。例えば、同図の（Ａ）に示されるように、映像のフレーム２０５の先頭位置を再生開始位置２０１とした場合、音声のフレーム２０６の先頭位置との間にずれ時間ｔ０があるため、再生開始時には音声と映像のタイミングが合わない。そこで、第１の調整方法として、同図の（Ｂ）に示されるように、フレーム２０６の再生時間を前記ずれ時間ｔ０だけ短くして再生する。具体的には、前記音声デコード処理部１６２が、音声処理用制御部１５からの指示に応じて、フレーム２０６の復号処理結果に含まれる再生時間の情報を変更して音声データ発声部４に出力する。これにより、途中再生の場合であっても、音声と映像のタイミングを合わせて再生を開始することができる。
【００９９】
また第２の調整方法として、同図の（Ｃ）に示されるように、フレーム２０６を再生せず無音区間とする。具体的には、音声デコード処理部１６２が、音声処理用制御部１５からの指示に応じて、フレーム２０６の再生時間に対して前記ずれ時間ｔ０だけ短くした再生時間を持つ無音状態を示すフレーム２０８を生成し、フレーム２０６の復号処理結果の代わりに音声データ発声部４に出力する。これにより、途中再生の場合であっても、音声と映像のタイミングを合わせて再生を開始することができる。
【０１００】
なお、上記２つの調整方法は、音声のフレームの先頭位置を再生開始位置として映像の先頭フレームを調整する場合にも適用することができる。
【０１０１】
以上のように、実施の形態１に係るマルチプロセッサシステム１によれば、復号処理の開始タイミングの調整と復号処理結果の出力タイミングの調整を行うことで、マルチプロセッサシステムにおいて、映像処理系２０と音声処理系２１が別々のＯＳで管理される場合であっても、動画として破綻させることなく、コンテンツを再生することができる。また、映像処理用制御部１３及び音声処理用制御部１５が同期用領域１２１の値を参照することで復号処理の実行の可否を判断するので、映像処理系２０と音声処理系２１との間で主従関係を決めておく必要は無い。更に、動画コンテンツの再生開始位置が指定された場合であっても、指定された再生開始位置に対応する音声のフレームと映像のフレームのいずれか一方の先頭フレームの再生時間等を調整することで、音声と映像のタイミングを合わせて再生を開始することができる。
【０１０２】
≪実施の形態２≫
図１２に、本発明に係るデータ処理システムの別の一実施の形態として、複数のプロセッサコアを備えるマルチプロセッサシステムのブロック図を示す。同図に示されるマルチプロセッサシステム５は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。前記マルチプロセッサシステム５は、例えば携帯電話やカーナビゲーション用の動画コンテンツを再生するためのシステムＬＳＩである。なお、マルチプロセッサシステム５において、実施の形態１に係るマルチプロセッサシステム１と同様の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１０３】
マルチプロセッサシステム５は、開始タイミングを揃える必要のあるデータ処理毎に同期用領域を備え、夫々の同期用領域を用いて開始タイミングの調整を行う。その他の構成及び動作は、前記マルチプロセッサシステム１と同様である。具体的には、マルチプロセッサシステム５は、前記同期用領域１２１の代わりに、映像処理系２０に対応する第１同期用領域５０１と音声処理系２１に対応する第２同期用領域５０２とを備える。第１同期用領域５０１及び第２同期用領域５０２には、夫々に対応する処理の実行可否を示す値が格納される。第１同期用領域５０１及び第２同期用領域５０２に対するデータの書き換えは対応する処理系にのみ認められ、データの読み出しは双方の処理系に認められる。
【０１０４】
図１３に、第１同期用領域５０１及び第２同期用領域５０２を用いたデータ処理の開始タイミングを調整する方法の一例を示す。同図に示されるように、第１同期用領域５０１及び第２同期用領域５０２には予め初期値として“１”が設定される。映像処理用制御部１３及び音声処理用制御部１５は、自己の復号処理の開始の準備が完了したら、メモリ部１０の第１同期用領域５０１及び第２同期用領域５０２にアクセスし、双方の領域の値が“０”になったら、夫々の復号処理を開始させる。
【０１０５】
例えば、映像ストリームデータの復号処理の準備が完了したら、映像処理用制御部１３は第１同期用領域５０１の値をディクリメントする。これにより値が“０”となる。そして、映像処理用制御部１３は第２同期用領域５０２の値が“０”になるまで待機する。待機は、例えばビジーループ、又は所定の時間間隔でのポーリングにより実現する。前記所定の時間間隔は、例えば、視聴者が音声と映像のずれを認識できない程度の時間間隔である。一方、音声ストリームデータの復号処理の準備が完了したら、音声処理用制御部１５が第２同期用領域５０２の値をディクリメントする。これにより値が“０”となる。そして、映像処理用制御部１３及び音声処理用制御部１５は、第１同期用領域５０１及び第２同期用領域５０２の双方の値が“０”となったことを確認したら、夫々の復号処理を開始させる。すなわち、映像処理用制御部１３は映像デコード処理部１４２及び映像用ハードウェアクロック１４１に対して動作開始を指示し、音声処理用制御部１５は音声デコード処理部１６２及び音声用ハードウェアクロック１６１に対して動作開始を指示する。これにより、実施の形態１と同様に、音声データの復号処理と映像データの復号処理の開始タイミングを揃えることができる。また、上記の方法を実現するために、監視対象とされる他方の処理系に対応した同期用領域の値をセマフォとすれば、ＣＰＵの処理負荷を高めることなく処理の待ち合わせを行うことができる。
【０１０６】
上記の第１同期用領域５０１及び第２同期用領域５０２を利用した開始タイミングの調整方法は、処理手順によってはデッドロック（Ｄｅａｄｌｏｃｋ）が発生する可能性がある。
【０１０７】
図１４はデッドロックが発生する場合の処理フローを示す説明図である。同図に示されるように、開始タイミングを合わせる相手側の状況を確認してから自らの準備状況を更新する手順とすると、お互いに相手側の状況を把握した上で動作を行うため、初期状態から変化を起こすことができず、デッドロックしてしまう。そこで、マルチプロセッサシステム５では、図１５又は図１６のいずれかに示される処理手順を採用することでデッドロックを回避する。
【０１０８】
図１５はデッドロックを回避するための処理順の一例を示す説明図である。
【０１０９】
同図に示される方法では、先ず相手側の状況確認の処理を所定期間だけ実行し、その後自らの準備状況を更新する。例えば、映像ストリームデータの復号処理を実行するとき、先ず映像処理用制御部１３は自らの復号処理の準備が完了したら、ステップ７０１（Ｓ７０１）に移行し、所定期間だけメモリ部５０の第２同期用領域５０２を参照して音声処理側の状況を確認する。第２同期用領域５０２の値が“０”である場合には、ステップ７０２（Ｓ７０２）に移行し、映像処理用制御部１３はメモリ部５０の第１同期用領域５０１の値を“０”に更新して、映像ストリームデータの復号処理を開始する。一方、第２同期用領域５０２の値が“１”である場合には、映像処理用制御部１３は前記音声処理側の状況確認を継続し、所定期間の経過後ステップ７０２に移行する。例えば、映像処理用制御部１３は前記音声処理側の状況確認の処理を所定の時間間隔で実行し、条件が成り立つまで繰り返す。そして、所定期間の経過後、映像処理用制御部１３は第１同期用領域５０１の値を“０”に更新して、再度ステップ７０１に戻る。この方法によれば、相手側の準備状況を待ち続けることが無くなるため、デッドロックを回避することができる。尚、映像処理が完了して第１同期領域５０１を“０”に設定したにも関わらず、何度もステップ７０１に戻って第２同期用領域５０２の値が“０”にならないような状態が所定の時間または回数継続した場合は、エラーが発生したと判断してステップ７０１を強制的に抜けてエラー用処理を実行する。
【０１１０】
図１６は、デッドロックを回避するための処理順の別の一例を示す説明図である。
【０１１１】
同図に示される方法では、先ず自らの準備状況を更新し、その後相手側の準備状況を確認する。例えば、映像ストリームデータの復号処理を実行するとき、先ず映像処理用制御部１３は復号処理の準備が完了したら、ステップ８０１（Ｓ８０１）に移行し、メモリ部５０の第１同期用領域５０１の値を“０”に更新する。その後ステップ８０２（Ｓ８０２）に移行し、メモリ部５０の第２同期用領域５０２を参照して音声処理側の状況を確認する。ここで、第２同期用領域５０２の値が“１”である場合には、映像処理用制御部１３は第２同期用領域５０２の値が“０”になるまで待機する。そして、第２同期用領域５０２の値が“０”になったら、映像処理用制御部１３は映像ストリームデータの復号処理を開始する。この方法によれば、自らの準備状況を更新してから相手の準備完了を待つため、デッドロックを回避することができる。尚、ステップ８０２において、第２同期用領域５０２の値が“０”にならないような状態が所定の時間継続した場合は、エラーが発生したと判断し、ステップ８０２を強制的に抜けてエラー用の処理を実行する。
【０１１２】
以上のように、実施の形態２に係るデータ処理システム２によれば、実施の形態１と同様に、マルチコア環境下において動画として破綻させることなくコンテンツを再生することができ、動画コンテンツの再生開始位置が指定された場合であっても、音声と映像のタイミングを合わせて再生を開始することができる。
【０１１３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１１４】
例えば、前記マルチプロセッサシステム１及び５は、上記のように１つの集積回路で構成されたものに限られず、マルチチップで構成されたものでもよい。
【０１１５】
また、実施の形態１において、前記経過時間のずれ量に基づく復号処理結果の出力タイミングの調整を映像処理系２０が実行する場合を一例として示したが、これに限られず、音声処理系２１が実行してもよい。
【０１１６】
更に、実施の形態１において、途中再生の場合の出力タイミング調整を音声処理系２１が実行する場合を一例として示したが、これに限られず、映像処理系２０が実行してもよい。例えば、再生開始位置を音声のフレーム２０７の先頭位置とした場合に、映像デコード処理部１４２が、フレーム２０５の再生時間を短くして映像データ表示部３に出力する。これにより、上記同様に、途中再生の場合であっても音声と映像のタイミングを合わせて再生を開始することができる。
【符号の説明】
【０１１７】
１  マルチプロセッサシステム
２  コンテンツデータ格納装置
３  映像データ表示部
４  音声データ発声部
１０  システム制御部
１１  コンテンツデータ取得部
１２  メモリ部
１２１  同期用領域
１２２  映像側経過時間領域
１２３  音声側経過時間領域
１３  映像処理用制御部
１４  映像データ処理部
１４１  映像用ハードウェアクロック（ＶＣＬＫ）
１４２  映像デコード処理部（ＶＤＣＲ）
１５  音声処理用制御部
１６  音声データ処理部
１６１  音声用ハードウェアクロック（ＡＣＬＫ）
１６２  音声デコード処理部（ＡＤＣＲ）
２０  映像処理系
２１  音声処理系
１０１  分離部（ＤＥＭＵＸ）
１０２  制御部（ＣＮＴ）
ｔ１、ｔ２  出力タイミングのずれ時間
４００  １フレームの音声ストリームデータ
４０１、４０２  １フレームの映像ストリームデータ
４０３  表示時間が変更された１フレームの映像ストリームデータ
２００  指定された再生開始位置
２０１、２０２  映像ストリームデータの区切れ位置
２０３、２０４  音声ストリームデータの区切れ位置
２０５  指定された再生開始位置に対応した映像のフレーム
２０６  指定された再生開始位置に対応した音声のフレーム
２０７  指定された再生開始位置に対応した音声のフレームの次のフレーム
２０８  無音状態を示すフレーム
ｔ０  映像の先頭フレームと音声の先頭フレームとのずれ時間
５  マルチプロセッサシステム
５２  メモリ部
５０１  第１同期用領域
５０２  第２同期用領域
【図１】
0005778478.tif 000002
【図２】
0005778478.tif 000003
【図３】
0005778478.tif 000004
【図４】
0005778478.tif 000005
【図５】
0005778478.tif 000006
【図６】
0005778478.tif 000007
【図７】
0005778478.tif 000008
【図８】
0005778478.tif 000009
【図９】
0005778478.tif 000010
【図１０】
0005778478.tif 000011
【図１１】
0005778478.tif 000012
【図１２】
0005778478.tif 000013
【図１３】
0005778478.tif 000014
【図１４】
0005778478.tif 000015
【図１５】
0005778478.tif 000016
【図１６】
0005778478.tif 000017