JP2007060488A - 画像処理素子および画像処理方法、記録媒体、並びに、プログラム - Google Patents
画像処理素子および画像処理方法、記録媒体、並びに、プログラム Download PDFInfo
- Publication number
- JP2007060488A JP2007060488A JP2005245743A JP2005245743A JP2007060488A JP 2007060488 A JP2007060488 A JP 2007060488A JP 2005245743 A JP2005245743 A JP 2005245743A JP 2005245743 A JP2005245743 A JP 2005245743A JP 2007060488 A JP2007060488 A JP 2007060488A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- pixel data
- chip
- picture
- decode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】 デコード範囲を分割して複数のデコードチップでデコード処理を実行させる。
【解決手段】 #1デコードチップでデコードされるPピクチャの第1の領域に含まれる各マクロブロックの動き探索範囲は、Iピクチャの第1の領域と、第2の領域の画素データのうち#1デコードチップのデコード処理において動きベクトルの検索範囲に含まれる領域に対応し、#2デコードチップでデコードされるPピクチャの第2の領域に含まれる各マクロブロックの動き探索範囲は、Iピクチャの第2の領域と、第1の領域の画素データのうち#2デコードチップのデコード処理において動きベクトルの検索範囲に含まれる領域に対応するので、#1デコードチップおよび#2デコードチップは、他のデコードチップにより参照される領域の画素を予め他のデコードチップに供給する。本発明は、復号装置に適用できる。
【選択図】図12
【解決手段】 #1デコードチップでデコードされるPピクチャの第1の領域に含まれる各マクロブロックの動き探索範囲は、Iピクチャの第1の領域と、第2の領域の画素データのうち#1デコードチップのデコード処理において動きベクトルの検索範囲に含まれる領域に対応し、#2デコードチップでデコードされるPピクチャの第2の領域に含まれる各マクロブロックの動き探索範囲は、Iピクチャの第2の領域と、第1の領域の画素データのうち#2デコードチップのデコード処理において動きベクトルの検索範囲に含まれる領域に対応するので、#1デコードチップおよび#2デコードチップは、他のデコードチップにより参照される領域の画素を予め他のデコードチップに供給する。本発明は、復号装置に適用できる。
【選択図】図12
Description
本発明は、画像処理素子および画像処理方法、記録媒体、並びに、プログラムに関し、特に、フレーム間参照符号化されたストリームデータを復号する場合に用いて好適な、画像処理素子および画像処理方法、記録媒体、並びに、プログラムに関する。
MPEG2(Moving Picture Coding Experts Group / Moving Picture Experts Group2)ビデオは、ISO/IEC(International Standards Organization / International Electrotechnical Commission)13818−2、およびITU−T (International Telecommunication Union−Telecommunication sector)勧告H.262に規定されているビデオ信号の高能率符号化方式である。
MPEGでは、画像の時間的冗長性を利用して、近接した画像間で動き補償した差分を得ることにより、符号化効率を改善している。MPEGビデオデコーダでは、動き補償を用いた画素に対しては、現在デコードしている画素にその動きベクトルが示す参照画像の画素データを加算することにより動き補償を行い、符号化前の画像データに復号する。
MPEG-2のビデオストリームは、シーケンス、GOP(group_of_picture)、ピクチャ、スライス、マクロブロック、ブロックの各レイヤごとに、階層的に構成されている。
GOP内には、複数の画像(picture)が含まれる。MPEG-2においては、Iピクチャ(フレーム内予測符号化画像)、Pピクチャ(前方向予測符号化画像)、および、Bピクチャ(双方向予測符号化画像)の3種類のピクチャによって画像を構成している。Iピクチャは、全てのマクロブロックをイントラ符号化(フレーム内符号化)する。Pピクチャは、イントラ符号化、または、インター符号化(順方向フレーム間予測符号化)が行われるマクロブロックを含む。Bピクチャは、イントラ符号化、順方向(Forward)フレーム間予測符号化、逆方向(Backward)フレーム間予測符号化、または、順方向と逆方向の2つの予測を対応画素間でまるめつき平均することにより行われる内挿的(interpolative)フレーム間予測符号化が行われるマクロブロックを含む。他のピクチャなしで復号できるのはIピクチャのみである。したがって、ランダムアクセスのように前後関係の崩れるような操作は、Iピクチャにアクセスすることにより容易に実現することができる。
GOPの範囲は、GOPヘッダから、次のシーケンスヘッダか、GOPヘッダの直前までである。また、GOPヘッダは、ビットストリーム上でIピクチャの直前にのみ挿入される。一般的には、Bピクチャは、双方向予測符号化を用いてデコードされているので、その前後に位置するIピクチャおよびPピクチャを参照してデコードされる。参照されるピクチャがGOPをまたいで存在する場合、すなわち、直前、または、直後のGOPに含まれるIピクチャまたはPピクチャを参照する必要のあるBピクチャを含むGOPは、Open GOPと称される。Open GOPを単独でデコードしようとした場合、デコードすることができないBピクチャが存在してしまう。
しかしながら、Bピクチャは、常に双方向予測符号化を使う必要はなく、マクロブロック毎に双方向予測・前方予測のみ・後方予測のみ・予測無しを切り替えることが可能である。したがって、GOP内のBピクチャが、GOP内のIピクチャまたはPピクチャのみを参照することによってデコードできるようなGOPは、Closed GOPと称される。Closed GOPは、その前後のGOPのデータが無くとも単独でデコードすることが可能である。
また、複数フレームで完結する符号化方式で圧縮符号化されたビデオ信号を、例えば、2倍速、または、3倍速で再生する場合に、自然な動きの再生画像を得ることができるようにした技術がある(例えば、特許文献1)。
例えば、上述した特許文献に記載の技術を適用して、MPEGのOpen GOPを2倍速で再生しようとした場合を、図1および図2を用いて説明する。
図1は、1倍速でデコードできるデコードチップを2個使用して並列処理を行うことによりOpen GOPのストリームをデコードする復号装置1の構成を示すブロック図である。
#1デコードチップ11−1および#2デコードチップ11−2は、符号化ストリームの入力を受け、1ピクチャ単位で1倍速でデコード処理を行い、デコード済みの画像データをセレクタ13に供給する。バッファ12−1およびバッファ12−2は、それぞれ、#1デコードチップ11−1および#2デコードチップ11−2へ供給される符号化ストリームをバッファリングしたり、PピクチャまたはBピクチャをデコードするときの参照画像として用いられるデコード済みのIピクチャまたはPピクチャを一時保持するために用いられる。
セレクタ13は、#1デコードチップ11−1または#2デコードチップ11−2から供給されたデコード済みの画像データのうち、復号ビデオ信号として出力されるものを選択して出力する。
再生装置1において、#1デコードチップ11−1または#2デコードチップ11−2は、それぞれ、1GOPのピクチャを連続してデコードするようになされている。例えば高速再生が行われるような場合、GOP0が#1デコードチップ11−1でデコードされ、GOP1が#2デコードチップ11−2でデコードされ、GOP2が#1デコードチップ11−1でデコードされ、GOP3が#2デコードチップ11−2でデコードされ、続くGOPも同様にして、交互にいずれかのデコードチップでデコードされる。
図2を用いて、復号装置1が2倍速のデコード処理を行おうとした場合について説明する。
例えば、#1デコードチップ11−1がGOP1をデコードする場合、GOP1の先頭の2枚のBピクチャをデコードするためには、GOP0の最後のPピクチャを参照する必要があり、GOP0の最後のPピクチャをデコードするためには、その直前のPピクチャを参照する必要があり、結局、GOP1の先頭の2枚のBピクチャをデコードするためには、GOP0のIピクチャおよびPピクチャを事前に全てデコードする必要がある。
同様に、#2デコードチップ11−2がGOP2をデコードする場合、GOP2の先頭の2枚のBピクチャをデコードするためには、GOP1の最後のPピクチャを参照する必要があり、GOP1の最後のPピクチャをデコードするためには、その直前のPピクチャを参照する必要があり、結局、GOP2の先頭の2枚のBピクチャをデコードするためには、GOP1のIピクチャおよびPピクチャを事前に全てデコードする必要がある。
すなわち、#1デコードチップ11−1および#2デコードチップ11−2は、それぞれ、割り当てられたGOPのデコードに先立って、その1つ前のGOPのIピクチャおよびPピクチャをデコードする必要がある。したがって、再生装置1の#1デコードチップ11−1および#2デコードチップ11−2において、1GOPずつ交互にデコード処理を行うことにより、2倍速で再生出力をしようとした場合、それぞれのデコードチップに割り当てられたGOPをデコードするための参照画像として1つ前のGOPのIピクチャおよびPピクチャをデコードするために必要な時間の分、GOP3以降の再生開始時刻に遅延が発生してしまい、2倍速のデコード処理を実現することができない。
すなわち、1倍速のデコード能力を有するデコードチップを複数用いて2倍速再生を実現しようとした場合、図3に示されるように、#1デコードチップ11−1および#2デコードチップ11−2に加えて、第3のデコードチップを設けて、3チップ並列でデコード処理する必要がある。このような構成にすることにより、それぞれのデコードチップに割り当てられたGOPをデコードするための参照画像として1つ前のGOPのIピクチャおよびPピクチャをデコードするために必要な時間を補うことができるので、2倍速のデコード処理が可能となる。
例えば、あるGOPのデコードにかかる時間をTとし、図4Aに示されるように、GOP2をデコードするための参照画像としてGOP1のIピクチャおよびPピクチャをデコードするために必要な時間T1がT/2より短かった場合、上述したように、3つのデコードチップを用いて2倍速デコード処理が可能となる。しかしながら、例えば、それぞれのピクチャのデコード時間が同一ではない場合など、GOP2をデコードするための参照画像としてGOP1のIピクチャおよびPピクチャをデコードするために必要な時間T2がT/2より長かった場合、3つのデコードチップを用いても、2倍速デコード処理を行うことができないため、このようなOpen GOPを2倍速でデコードするには、更に、デコードチップを1つ追加する必要が生じてしまう。
なお、ストリームをClosed GOPに限定した場合には、図5に示されるように、参照画像として1つ前のGOPのIピクチャおよびPピクチャをデコードする必要がないため、2チップでも2倍速デコード処理が可能となる。しかしながらストリームがOpen GOPかClosed GOPかは、エンコード時に決まるものであるため、デコード処理を実行する再生装置1側で対応することはできない。なお、Closed GOPは、参照するピクチャがGOP内で閉じている分、画質が劣るため、編集部分などの特別な場合を除き、一般的には用いられない。
また、フレーム周波数の高い符号化ビデオストリームをデコードするためにも、上述したように、1倍速のデコード能力を有するデコードチップを複数用いるか、または、クロック周波数を高くする必要があった。
本発明はこのような状況に鑑みてなされたものであり、フレーム間参照符号化処理が施された符号化処理を、高速に、または、高性能に行うことができるようにするものである。
本発明の一側面の画像処理素子は、符号化ストリームを復号して出力する画像処理素子であって、前記符号化ストリームを構成する各フレームの所定の領域を復号する復号手段と、自分自身の復号処理の結果得られた画素データのうち、他の画像処理素子の復号処理に必要な画素データを前記他の画像処理素子に供給するとともに、前記他の画像処理素子において実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データを前記他の画像処理素子から取得する画素データ授受手段とを備え、前記復号手段は、自分自身の復号処理の結果得られた画素データ、および、前記画素データ授受手段により前記他の画像処理素子から取得した画素データを参照することにより復号処理を実行する。
前記復号手段による復号処理の結果得られた画素データ、または、前記画素データ授受手段により前記他の画像処理素子から取得した画素データの記憶部への記憶を制御する記憶制御手段を更に備えさせることができ、前記復号手段には、前記記憶制御手段により前記記憶部への記憶が制御された画素データを参照することにより復号処理を実行させることができる。
前記他の画像処理素子の復号処理に必要な画素データは、前記フレームにおいて、前記他の画像処理素子により復号される他の所定の領域に含まれる動き補償の基準領域に対する動きベクトルの探索範囲に含まれる画素データであるものとすることができ、前記復号手段の復号処理に必要な画素データは、前記フレームにおいて、前記復号手段が復号する前記所定の領域に含まれる動き補償の基準領域に対する動きベクトルの探索範囲に含まれる画素データであるものとすることができる。
前記符号化ストリームの入力を受ける符号化ストリーム入力手段を更に備えさせることができ、前記符号化ストリーム入力手段には、前記符号化ストリームを構成するそれぞれのピクチャのピクチャタイプを検出させることができ、前記復号手段には、検出された前記ピクチャタイプに基づいて復号処理を実行させることができる。
前記復号手段には、外部より前記符号化ストリームを構成するそれぞれのピクチャのピクチャタイプの通知を受け、前記ピクチャタイプに基づいて復号処理を実行させることができる。
前記符号化ストリームの入力を受ける符号化ストリーム入力手段を更に備えさせることができ、前記符号化ストリーム入力手段には、前記符号化ストリームを構成する各フレームの所定の領域のデータを取得させることができ、前記復号手段には、符号化ストリーム入力手段により入力された前記所定の領域のデータを復号させることができる。
前記所定の領域は、前記符号化ストリームを構成するフレームを、スライスを単位として分割した場合のいずれかの領域であるものとすることができる。
前記符号化ストリームの入力を受ける符号化ストリーム入力手段を更に備えさせるようにすることができ、前記符号化ストリーム入力手段には、前記符号化ストリームを構成する各フレームの供給を受け、前記フレームから前記所定の領域を抽出させるようにすることができ、前記復号手段には、符号化ストリーム入力手段により抽出された前記所定の領域のデータを復号させるようにすることができる。
前記所定の領域は、前記符号化ストリームを構成するフレームを、スライスを単位として分割した場合のいずれかの領域であるものとすることができる。
前記復号手段には、他の画像処理素子の復号処理に必要な画素データを優先して復号させるようにすることができる。
本発明の一側面の画像処理方法は、符号化ストリームを復号して出力する画像処理素子の画像処理方法であって、前記符号化ストリームを構成する各フレームの所定の領域を復号する復号ステップと、自分自身の復号処理の結果得られた画素データのうち、他の画像処理素子の復号処理に必要な画素データを前記他の画像処理素子に供給する画素データ供給ステップと、前記他の画像処理素子において実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データを前記他の画像処理素子から取得する画素データ取得ステップとを含み、前記復号ステップの処理では、フレーム間参照符号化されたフレームの前記所定の領域を復号する場合、自分自身の復号ステップにおける処理の結果得られた画素データ、および、前記画像データ取得ステップの処理により取得された画素データを参照することにより復号処理を実行する。
本発明の一側面のプログラムおよび記録媒体に記録されているプログラムは、符号化ストリームを復号して出力する処理をコンピュータに実行させるためのプログラムであって、前記符号化ストリームを構成する各フレームの所定の領域を復号する復号ステップと、自分自身の復号処理の結果得られた画素データのうち、他のコンピュータの制御により実行される復号処理に必要な画素データの供給を制御する画素データ供給制御ステップと、前記他のコンピュータの制御により実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データの取得を制御する画素データ取得制御ステップとを含み、前記復号ステップの処理では、フレーム間参照符号化されたフレームの前記所定の領域を復号する場合、自分自身の復号ステップにおける処理の結果得られた画素データ、および、前記画像データ取得制御ステップの処理により取得が制御された画素データを参照することにより復号処理を実行する。
本発明の一側面においては、符号化ストリームを構成する各フレームの所定の領域が復号され、自分自身の復号処理の結果得られた画素データのうち、他で実行される復号処理に必要な画素データが供給され、他で実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データが取得され、フレーム間参照符号化されたフレームの前記所定の領域を復号する場合、自分自身の復号処理の結果得られた画素データ、および、取得された画素データを参照することにより復号処理が実行される。
以上のように、本発明の一側面によれば、符号化ストリームを復号することができ、特に、複数の復号素子において参照画素が授受されるので、1フレームを分割してそれぞれを高速にまたは高性能にデコードすることができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。したがって、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の画像処理素子(例えば、図7の#1デコードチップ73と#2デコードチップ76、図21の#1デコードチップ203と#2デコードチップ205と#3デコードチップ207、図24の#1デコードチップ301と#2デコードチップ302、図25の#1デコードチップ352と#2デコードチップ353、図28の#1デコードチップ382と#2デコードチップ383)は、符号化ストリームを復号して出力する画像処理素子であって、前記符号化ストリームを構成する各フレームの所定の領域を復号する復号手段(例えば、図7などのデコーダ93、デコーダ113)と、自分自身の復号処理の結果得られた画素データのうち、他の画像処理素子の復号処理に必要な画素データ(例えば、図10などにおいてαまたはβで示される領域の画素データ)を前記他の画像処理素子に供給するとともに、前記他の画像処理素子において実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データを前記他の画像処理素子から取得する画素データ授受手段(例えば、図7などのチップ間インターフェース96、チップ間インターフェース116)とを備え、前記復号手段は、自分自身の復号処理の結果得られた画素データ、および、前記画素データ授受手段により前記他の画像処理素子から取得した画素データを参照することにより復号処理を実行する。
前記復号手段による復号処理の結果得られた画素データ、または、前記画素データ授受手段により前記他の画像処理素子から取得した画素データの記憶部(例えば、図7、図24、図25、または、図28のビデオバッファ75およびビデオバッファ78、もしくは、図21の第1のバッファ204、第2のバッファ206、および第3のバッファ208)への記憶を制御する記憶制御手段(例えば、図7などのバッファ制御回路95、バッファ制御回路115、または、図24のバッファ制御回路311、バッファ制御回路321)を更に備えることができ、前記復号手段は、前記記憶制御手段により前記記憶部への記憶が制御された画素データを参照することにより復号処理を実行することができる。
前記符号化ストリームの入力を受ける符号化ストリーム入力手段(例えば、図7などのストリーム入力回路91またはストリーム入力回路111)を更に備えることができ、前記符号化ストリーム入力手段は、前記符号化ストリームを構成するそれぞれのピクチャのピクチャタイプを検出することができ、前記復号手段は、検出された前記ピクチャタイプに基づいて復号処理を実行することができる。
前記復号手段は、外部(例えば、図7、図24のコントローラ71、図21のコントローラ201、図25のコントローラ351、図28のコントローラ381)より前記符号化ストリームを構成するそれぞれのピクチャのピクチャタイプの通知を受け、前記ピクチャタイプに基づいて復号処理を実行することができる。
前記符号化ストリームの入力を受ける符号化ストリーム入力手段(例えば、図7などのストリーム入力回路91またはストリーム入力回路111)を更に備えることができ、前記符号化ストリーム入力手段は、前記符号化ストリームを構成する各フレームの所定の領域のデータを取得することができ、前記復号手段は、符号化ストリーム入力手段により入力された前記所定の領域のデータを復号することができる。
前記符号化ストリームの入力を受ける符号化ストリーム入力手段(例えば、図7などのストリーム入力回路91またはストリーム入力回路111)を更に備えることができ、前記符号化ストリーム入力手段は、前記符号化ストリームを構成する各フレームの供給を受け、前記フレームから前記所定の領域を抽出することができ、前記復号手段は、符号化ストリーム入力手段により抽出された前記所定の領域のデータを復号することができる。
前記復号手段は、他の画像処理素子の復号処理に必要な画素データ(例えば、図10などにおいてαまたはβで示される領域の画素データ)を優先して復号することができる。
本発明の一側面の画像処理方法は、符号化ストリームを復号して出力する画像処理素子(例えば、図7の#1デコードチップ73と#2デコードチップ76、図21の#1デコードチップ203と#2デコードチップ205と#3デコードチップ207、図24の#1デコードチップ301と#2デコードチップ302、図25の#1デコードチップ352と#2デコードチップ353、図28の#1デコードチップ382と#2デコードチップ383)の画像処理方法であり、本発明の一側面のプログラムおよび記録媒体に記録されているプログラムは、符号化ストリームを復号して出力する処理をコンピュータに実行させるためのプログラムであって、前記符号化ストリームを構成する各フレームの所定の領域を復号する復号ステップ(例えば、図16のステップS24,ステップS29,ステップS34などの処理)と、自分自身の復号処理の結果得られた画素データのうち、他の画像処理素子の復号処理に必要な画素データ(例えば、図10などにおいてαまたはβで示される領域の画素データ)を前記他の画像処理素子に供給する画素データ供給ステップ(例えば、図16のステップS26,ステップS31などの処理)と、前記他の画像処理素子において実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データを前記他の画像処理素子から取得する画素データ取得ステップ(例えば、図16のステップS27,ステップS32などの処理)とを含み、前記復号ステップの処理では、フレーム間参照符号化されたフレームの前記所定の領域を復号する場合、自分自身の復号ステップにおける処理の結果得られた画素データ、および、前記画像データ取得ステップの処理により取得された画素データを参照することにより復号処理を実行する。
以下、図を参照して、本発明の実施の形態について説明する。
図6は、例えば、MPEG2ビデオなどの方式で符号化された符号化ストリームの供給を受け、一時記憶した後、高速再生しながら復号するシステムを示すブロック図である。
符号化装置51は、非圧縮のビデオ入力を受け、例えば、MPEG2方式を用いて符号化し、符号化ストリームを、記録再生装置52に供給する。
記録再生装置52は、供給された符号化ストリームを、HDD(Hard Disk Drive)53に記録するとともに、HDD53に記録されている符号化ストリームを再生し、再生ストリーム(符号化ストリーム)を復号装置54に供給する。記録再生装置52は、HDD53に記録されている符号化ストリームを、1倍速のみならず、高速再生を含む可変速で再生することができる。すなわち、記録再生装置52から復号装置54に供給されるストリームは、可変速再生ストリームである。
復号装置54は、供給された可変速再生ストリームを復号して、復号されたビデオデータを出力する。復号装置54は、供給された可変速再生ストリーム(符号化ストリーム)を、複数のデコードチップを用いて、高速再生することができるようになされている。復号装置54の詳細な構成については後述するが、以下に示されるように、複数の構成を有することが可能である。
図7は、復号装置54の第1の構成例である復号装置54−1の構成を示すブロック図である。ここでは、復号装置54−1は、MPEG2方式で符号化された符号化ストリームの供給を受け、復号して出力することができるようになされているものとして説明する。
復号装置54−1は、コントローラ71、ストリーム分割部72、#1デコードチップ73、ストリームバッファ74、ビデオバッファ75、#2デコードチップ76、ストリームバッファ77、ビデオバッファ78、および、セレクタ79で構成されている。復号装置54−1には、3つ以上のデコードチップを備えるようにしても良いが、ここでは、#1デコードチップ73および#2デコードチップ76の2つのデコードチップが備えられているものとして説明する。
コントローラ71は、ユーザの操作入力、または、外部の装置から供給される制御信号、または、ストリーム分割部72から供給された情報を基に、復号装置54−1の動作を制御するものである。
ストリーム分割部72は、コントローラ71の制御に基づいて、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行い、符号化ストリームのそれぞれのピクチャをデコードチップの個数分(ここでは2つ)に分割し、#1デコードチップ73および#2デコードチップ76に供給する。ピクチャの分割の仕方は、例えば、図8Aに示されるように、入力ストリームに含まれるピクチャのそれぞれをスライスを単位としてデコードチップの個数分(ここでは2つ)に分割したり、図8Bに示されるように、入力ストリームに含まれるピクチャのそれぞれを縦にデコードチップの個数分(ここでは2つ)に分割したり、図8Cに示されるように、入力ストリームに含まれるピクチャのそれぞれを、斜めにデコードチップの個数分(ここでは2つ)に分割する(しかしながら、例えば、デコード方式がMPEG2などである場合には、縦や斜めの分割は、スライス単位の分割と比較して困難であるかもしれない)などの方法がある。
MPEG2ビデオストリームにおいて、スライスは同一の水平行に位置する一連のマクロブロックであることが規定されており、各スライスに対する垂直位置は、slice_start_code内に示されている。そこで、ストリーム分割部72は、例えば、1枚のピクチャをスライスを単位としてデコードチップの個数分に分割するとき、スライススタートコードを基にして、各フレームを分割することができる。
また、ストリーム分割部72は、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行った結果得られる、例えば、ピクチャタイプなどの情報を、コントローラ71に供給する。
なお、ストリーム分割部72は、入力ストリームに含まれるピクチャのそれぞれをデコードチップの個数より多く分割して、その複数の分割されたピクチャを備えられているデコードチップの個数に分けて、供給するようにしても良いが、図8に示したように、入力ストリームに含まれるピクチャのそれぞれをデコードチップの個数のまとまった(分離されていない)デコード単位に分割するほうが、それぞれのデコードチップにおいてデコードされる領域の中の他のデコードチップのデコードにおいて参照される画像領域の割合が少なくなるので、後述する参照部分の画素のデコードチップ間の授受の処理が複雑にならないので好適である。
なお、ピクチャの分割の方法は、等分割であっても、不等分な分割であっても良い。ストリーム分割部72は、例えば、画像の複雑さを検出する機能を備えるようにして、ピクチャの部分によって画像の複雑さが著しく異なっているような場合、画像の複雑さ(符号化難易度)に基づいて、ピクチャの分割幅(図8Aまたは図8Bにおける図中のaおよびb)を決定することができるようにしても良い。
#1デコードチップ73は、ストリーム入力回路91、バッファ制御回路92、デコーダ93、動き補償回路94、バッファ制御回路95、チップ間インターフェース(I/F)96、および、表示出力回路97から構成され、コントローラ71の制御に基づいて、ストリーム分割部72により供給された分割後のピクチャをデコードする。このとき、#1デコードチップ73は、#2デコードチップ76のデコード処理の参照画像として必要となる可能性のある領域の画素データを#2デコードチップ76に供給するとともに、#2デコードチップ76から供給されるデコード済みの画素データをビデオバッファ75に供給して記憶させ、必要に応じて参照することにより、デコード処理を実行する。
ストリームバッファ74は、例えば、DRAM(Dynamic Random Access Memory)などにより構成され、#1デコードチップ73に供給された符号化ストリームを一時保存する。ビデオバッファ75は、例えば、DRAMなどにより構成され、#1デコードチップ73においてデコードされたビデオ信号(画素データ)や、#2デコードチップ76から供給されたデコード済みのビデオ信号(画素データ)の供給を受けて、一時保存する。
#2デコードチップ76は、ストリーム入力回路111、バッファ制御回路112、デコーダ113、動き補償回路114、バッファ制御回路115、チップ間インターフェース(I/F)116、および、表示出力回路117から構成され、コントローラ71の制御に基づいて、ストリーム分割部72により供給された分割後のピクチャをデコードする。このとき、#2デコードチップ76は、#1デコードチップ73のデコード処理の参照画像として必要となる領域の画素データを#1デコードチップ73に供給するとともに、#1デコードチップ73から供給されるデコード済みの画素データをビデオバッファ78に供給して記憶させ、必要に応じて参照することにより、デコード処理を実行する。
ストリームバッファ77は、例えば、DRAMなどにより構成され、#2デコードチップ76に供給された符号化ストリームを一時保存する。ビデオバッファ78は、例えば、DRAMなどにより構成され、#2デコードチップ76においてデコードされたビデオ信号(画素データ)や、#1デコードチップ73から供給されたデコード済みのビデオ信号(画素データ)の供給を受けて、一時保存する。
セレクタ79は、#1デコードチップ73および#2デコードチップ76から、デコード済みの画素データの供給を受け、復号ビデオデータとして出力する。
また、復号装置54-1は、必要に応じて、更に、ドライブ80を設けることができる。ドライブ80は、コントローラ71と接続され、装着されるリムーバブルメディア81との情報の授受が可能なようになされている。
次に、#1デコードチップ73の構成および動作について説明する。
ストリーム入力回路91は、ストリーム分割部72により分割された符号化ストリームの入力を受け、バッファ制御回路92に供給する。バッファ制御回路92は、図示しないクロック発生回路から供給される基本クロックに従って、入力された符号化ストリームをストリームバッファ74に入力する。また、ストリームバッファ74に保存されている符号化ストリームを読み出し、デコーダ93に出力する。なお、バッファ制御回路92は、ストリームバッファ74に先に書き込まれたデータから順に、スライスを単位として符号化ストリームを読み出し、デコーダ93に出力するようにしてもよいし、後述するように、所定の順番で、スライスを単位として符号化ストリームを読み出し、デコーダ93に出力するようにしてもよい。
デコーダ93は、入力されたストリームをMPEGシンタックスに基づいてデコードし、動き補償回路94に供給する。具体的には、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。
動き補償回路94は、デコーダ93から出力されるマクロブロックが動き補償を使用しているか否かを基に、必要に応じて、バッファ制御回路95を介して、ビデオバッファ75からデコード済みの参照画素データを読み込んで動き補償を行い、画素データを、バッファ制御回路95に供給する。
具体的には、デコーダ93から出力されるマクロブロックが動き補償を使用していない場合、動き補償回路94は、その画素データを、バッファ制御回路95を介して、ビデオバッファ75に書き込み、表示出力に備えるとともに、この画素データが、他の画像の参照データとされる場合に備える。
デコーダ93から出力されるマクロブロックが動き補償を使用している場合、動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路95を介して、ビデオバッファ75から参照画素データを読み出す。そして、動き補償回路94は、読み出した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。動き補償回路94は、動き補償を行った画素データを、バッファ制御回路95を介してビデオバッファ75に書き込み、表示出力に備えるとともに、この画素データが、参照データとされる場合に備える。
バッファ制御回路95は、図示しないクロック発生回路から供給される基本クロックに従って、動き補償回路94から入力された画素データを、ビデオバッファ75に入力する。バッファ制御回路95はまた、チップ間インターフェース96を介して#2デコードチップ76から供給される画素データを、ビデオバッファ75に入力する。バッファ制御回路95はまた、動き補償回路94から指定された参照画素データを、ビデオバッファ75に保存されている画素データから読み出して、動き補償回路94に供給する。バッファ制御回路95はまた、ビデオバッファ75に保存されている画素データを読み出して、表示出力回路97に供給する。また、バッファ制御回路95は、ビデオバッファ75に保存されている画素データのうち、#2デコードチップ76のデコード処理の参照画素として用いられる領域(動きベクトルの探索範囲)の画素データを読み出し、チップ間インターフェース96を介して、#2デコードチップ76に供給する。
表示出力回路97は、デコードした画素データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路95を介して、ビデオバッファ75から画素データを読み出し、復号ビデオデータとして出力する。
また、#2デコードチップ76のストリーム入力回路111乃至表示出力回路117の機能は、基本的に、#1デコードチップ73のストリーム入力回路91乃至表示出力回路97と同一であり、#2デコードチップ76の動作も、基本的に#1デコードチップ73と同一であるので、その詳細な説明は省略する。
すなわち、ストリーム入力回路111は、符号化された符号化ストリームの入力を受け、バッファ制御回路112は、入力された符号化ストリームをストリームバッファ77に入力するとともに、ストリームバッファ77に保存されている符号化ストリームを読み出し、デコーダ113に出力する。
デコーダ113は、入力されたストリームをMPEGシンタックスに基づいてデコードし、動き補償回路114に供給する。動き補償回路114は、デコーダ113から出力されるマクロブロックが動き補償を使用しているか否かを基に、必要に応じて、バッファ制御回路115を介して、ビデオバッファ78からデコード済みの参照画素データを読み込んで動き補償を行い、画素データを、バッファ制御回路115に供給する。
デコーダ113から出力されるマクロブロックが動き補償を使用している場合、動き補償回路114は、デコーダ113から出力される予測ベクトルに従って、バッファ制御回路115を介して、ビデオバッファ78から参照画素データを読み出す。そして、動き補償回路114は、読み出した参照画素データを、デコーダ113から供給された画素データに加算し、動き補償を行う。動き補償回路114は、動き補償を行った画素データを、バッファ制御回路115を介してビデオバッファ78に書き込み、表示出力に備えるとともに、この画素データが、参照データとされる場合に備える。
バッファ制御回路115は、入力された画素データをビデオバッファ78に入力するとともに、チップ間インターフェース116を介して#1デコードチップ73から供給される画素データをビデオバッファ78に入力したり、ビデオバッファ78に保存されている画素データのうち、#1デコードチップ73のデコード処理の参照画素として用いられる領域(動きベクトルの探索範囲)の画素データを読み出し、チップ間インターフェース116を介して、#1デコードチップ73に供給したり、動き補償回路114から指定された参照画素データをビデオバッファ78に保存されている画素データから読み出して、動き補償回路114に供給したり、ビデオバッファ78に保存されている画素データのうち、出力されるデータを読み出して表示出力回路117に供給する。表示出力回路117は、バッファ制御回路115を介して、ビデオバッファ78から画素データを読み出し、復号ビデオデータとして出力する。
そして、#1デコードチップ73のチップ間インターフェース96と#2デコードチップ76のチップ間インターフェース116とのデータの授受は、チップ間インターフェース96からチップ間インターフェース116へデータを供給する、例えば、データバスなどのインターフェースと、チップ間インターフェース116からチップ間インターフェース96へデータを供給する、例えば、データバスなどのインターフェースとがそれぞれ独立したインターフェース(専用線)として、他のデータの授受に用いられないようになされていると好適である。
デコードチップ間を接続するインターフェース、すなわち、チップ間インターフェース96からチップ間インターフェース116へデータを供給するインターフェースと、チップ間インターフェース116からチップ間インターフェース96へデータを供給するインターフェースとが、それぞれ独立している(データバスなどのインターフェースを共有していない)場合、バッファ制御回路95によりビデオバッファ75から読み出された画素データは、逆方向の(すなわち、チップ間インターフェース116からチップ間インターフェース96への)データの供給にかかわらず、チップ間インターフェース96からチップ間インターフェース116へ送出可能であり、バッファ制御回路115によりビデオバッファ78から読み出された画素データは、逆方向の(すなわち、チップ間インターフェース96からチップ間インターフェース116への)データの供給にかかわらず、チップ間インターフェース116からチップ間インターフェース96へ送出可能である。すなわち、このような構成においては、データの授受に伴う複雑なアドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御などを必要とせず、データの転送速度も、データバスなどのインターフェースを共有する場合などと比較して、低速化することが可能となる。
具体的には、データバスなどのインターフェースを共有している場合、インターフェースが他のデータの授受に用いられている場合の待ち時間が必要となるのみならず、他のデコードチップへデータを送出する前に、アドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御などを行うための制御信号等をデコードチップ間で授受し、授受した制御信号を基に、データの授受の各種設定を行わなければならないため、これらの処理のための時間が必要となってしまう。これに対して、データバスなどのインターフェースを共有していない場合、他のデータの授受のために待ち時間が発生しないのみならず、データの送出前の処理が必要ではないため、同量のデータを同一の時間で他のデコードチップに送出するのに、データバスなどのインターフェースを共有する場合などと比較して、データの転送速度を低速化することが可能となる。
なお、チップ間インターフェース96とチップ間インターフェース116とを結ぶインターフェースは、例えば、#1デコードチップ73と#2デコードチップ76が実装されている基板上において、それぞれのチップの入出力端子をパターン接続すればよいため、それぞれのパターンを独立して用意しても、そのために必要となるハードウェアの実装上のコストは非常に安価である。
次に、図9乃至図14を用いて、#1デコードチップ73と#2デコードチップ76とのデコード済みの画素データの授受について説明する。
ストリーム分割部72は、供給された符号化ストリームのそれぞれのフレームを、例えば、スライスを基準として2つに分割し、#1デコードチップ73と#2デコードチップ76とのそれぞれに供給する。このとき、フレームを細分化することなく、連続した2つの領域にフレームが分割されるようにすると、PピクチャまたはBピクチャのデコード時に参照画素として必要となる画素領域のうち、#2デコードチップ76においてデコードされる画素の領域部分が少なくなるため、好適である。
復号装置54に供給される圧縮符号化されたストリームデータ(符号化ストリーム)のうち、Iピクチャは、フレーム内符号化(参照画像を有さない)されており、PピクチャまたはBピクチャは、参照画像(Pピクチャをエンコードする場合は、直前のIピクチャまたはPピクチャであり、Bピクチャをエンコードする場合は、前後のIピクチャまたはPピクチャである)の対応するマクロブロックの位置を基準とした所定の領域内でマクロブロックとの誤差を最小にする参照ブロックが探索され、元のマクロブロックと参照マクロブロックの位置のずれである動きベクトルが求められ、動きベクトルと差分により、画が表現されている。
MPEGを適用した符号化処理においては、一般的に、マクロブロックとして、16×16画素単位の矩形ブロックが用いられている。なお、本発明を適用した復号装置54はMPEG以外のフレーム間予測を適用した符号化ストリームのデコード処理を行うことができるようにしてもよく、動き補償の基準領域の大きさは、この限りではない。動き補償の基準領域は、例えば、H.264のように、16×16、16×8、8×16、8×8、8×4、4×8、4×4から選択可能なように設定するようにしてもよい。また、動き補償の基準領域をブロック単位ではなく、他の形状とすることも可能である。また、マクロブロックの参照先の画像データ(参照画)の大きさは、半画素レベルの動きベクトルをとることから、例えば、16×16、17×16、16×17、17×17、16×8、16×9、17×9、17×8などの複数の値をとる。
#1デコードチップ73または#2デコードチップ76において、PピクチャまたはBピクチャに含まれる所定のマクロブロックがデコードされる場合、予めデコードされている参照画像のマクロブロックの探索範囲の情報が利用される。しかしながら、デコード対象のマクロブロックが#1デコードチップ73で復号する画像領域と#2デコードチップ76で復号する画像領域との境界部分に近い場合、その参照画像として必要となる動きベクトルの探索範囲のうちの一部は、他方のデコードチップにおいてデコードされる画像領域に含まれてしまう。具体的には、図9に示されるように、#2デコードチップ76においてPピクチャまたはBピクチャをデコードする場合、#2デコードチップ76で復号される画像領域(図中、垂直方向の画像範囲がbで示される領域)のうちの#1デコードチップ73で復号される画像領域に近い部分のマクロブロックに対応する探索領域の一部は、#1デコードチップ73で復号される画像領域(図中、垂直方向の画像範囲がaで示される領域)に含まれてしまう。
そこで、#1デコードチップ73と#2デコードチップ76とのそれぞれにおいて必要となる動きベクトルの探索範囲を全て探索可能とするために、#1デコードチップ73と#2デコードチップ76とにおいてデコードされたIピクチャおよびPピクチャのうち、他方のデコード処理において動きベクトルの探索範囲となる可能性のある領域のデータを、予め他方のデコードチップに供給するものとする。
すなわち、図10に示されるように、#1デコードチップ73においてデコードされたIピクチャおよびPピクチャにおいて、図中、垂直方向の画像範囲がaで示される#1デコードチップ73で復号される画像領域のうち、垂直方向の画像範囲がαで示される領域(#2デコードチップ76で復号される画像領域に近い画像領域)のデータが#2デコードチップ76に供給されて、垂直方向の画像範囲がbで示される#2デコードチップ76で復号される画像領域とともに、ビデオバッファ78において、蓄積ビデオデータとして保存される。また、#2デコードチップ76においてデコードされたIピクチャおよびPピクチャにおいて、図中、垂直方向の画像範囲がbで示される#2デコードチップ76で復号される画像領域のうち、垂直方向の画像範囲がβで示される領域(#1デコードチップ73で復号される画像領域に近い画像領域)のデータが#1デコードチップ73に供給されて、垂直方向の画像範囲がaで示される#1デコードチップ73で復号される画像領域とともに、ビデオバッファ75において、蓄積ビデオデータとして保存される。
図10に示されるαおよびβの範囲は、上述したように、他方のデコード処理において動きベクトルの探索範囲となる可能性のある領域のデータである。動き補償における動きベクトルの探索範囲は、MPEG規定により、水平方向1920pixel垂直1080lineのインタレース方式のフレームデータにおいて、水平方向に±1920pixel(すなわち、最大画枠幅)、垂直方向に128lineであると規定されている。すなわち、復号装置54において復号される符号化ストリームがMPEG規定により符号化された水平方向1920pixel垂直1080lineのインタレース方式のフレームデータである場合、図10においてα、βとして示されている、他方のデコードチップに供給される(コピーされる)画像領域のライン幅は、128lineとなる。これは、MPEG規定ISO/IEC13818-2表8−8により「レベルに対するパラメータ制約」として規定されている。また、それぞれのピクチャ毎に、f_codeとして示されているので、垂直方向のf_codeで規定されるライン分を参考として、α、βを決定しても良い。
ピクチャごとのデコード処理と、#1デコードチップ73と#2デコードチップ76とのデコード処理およびデコード済みの画素データの授受の具体例について、図11乃至図14を用いて説明する。ここでは、それぞれのピクチャのうち、#1デコードチップ73で復号される画像領域を第1の領域、#2デコードチップ76で復号される画像領域で復号される画像領域を第2の領域と称するものとする。
まず、図11に示されるように第1の領域と第2の領域に分割されたIピクチャが、#1デコードチップ73と#2デコードチップ76とにそれぞれ供給される。#1デコードチップ73のデコーダ93は、バッファ制御回路92を介して供給されたIピクチャの第1の領域に含まれる各スライスをデコードする。バッファ制御回路95は、デコードされたIピクチャの第1の領域の画素データを、ビデオバッファ75に供給して保存させるとともに、デコードされたIピクチャの第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データをチップ間インターフェース96に供給する。チップ間インターフェース96は、供給された画素データを、#2デコードチップ76のチップ間インターフェース116に供給する。
一方、#2デコードチップ76のデコーダ113は、バッファ制御回路112を介して供給されたIピクチャの第2の領域に含まれる各スライスをデコードする。バッファ制御回路115は、デコードされたIピクチャの第2の領域の画素データを、ビデオバッファ78に供給して保存させるとともに、デコードされた第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データをチップ間インターフェース116に供給する。チップ間インターフェース116は、供給された画素データを、#1デコードチップ73のチップ間インターフェース96に供給する。
#2デコードチップ76のチップ間インターフェース116は、#1デコードチップ73のチップ間インターフェース96から供給された画素データ、すなわち、Iピクチャの第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データを、バッファ制御回路115に供給する。バッファ制御回路115は、供給された画素データをビデオバッファ78に供給する。また、#1デコードチップ73のチップ間インターフェース96は、#2デコードチップ76のチップ間インターフェース116から供給された画素データ、すなわち、Iピクチャの第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データを、バッファ制御回路95に供給する。バッファ制御回路95は、供給された画素データをビデオバッファ75に供給する。
すなわち、ビデオバッファ75には、Iピクチャの第1の領域の画素データと、第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データとが保存され、ビデオバッファ78には、Iピクチャの第2の領域の画素データと、第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データとが保存される。
そして、ビデオバッファ75に保存された画素データのうち、Iピクチャの第1の領域の画素データは、バッファ制御回路95により読み出されて、表示出力回路97を介してセレクタ79に供給されて出力される。また、ビデオバッファ78に保存された画素データのうち、Iピクチャの第2の領域の画素データは、バッファ制御回路115により読み出されて、表示出力回路117を介してセレクタ79に供給されて出力される。
そして、Pピクチャがデコードされる場合、ビデオバッファ75に保存されている、Iピクチャの第1の領域の画素データと、第2の領域の画素データのうち#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域の画素データとが、バッファ制御回路95に読み出されて、動き補償回路94による動き補償処理に用いられる。また、ビデオバッファ78に保存されている、Iピクチャの第2の領域の画素データと、第1の領域の画素データのうち#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域の画素データとが、バッファ制御回路115に読み出されて、動き補償回路114による動き補償処理に用いられる。すなわち、図12に示されるように、#1デコードチップ73でデコードされるPピクチャの第1の領域に含まれる各マクロブロックの動き探索範囲は、Iピクチャの第1の領域と、第2の領域の画素データのうち#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域に対応し、#2デコードチップ76でデコードされるPピクチャの第2の領域に含まれる各マクロブロックの動き探索範囲は、Iピクチャの第2の領域と、第1の領域の画素データのうち#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域に対応する。
#1デコードチップ73のバッファ制御回路95は、デコードされたPピクチャの第1の領域の画素データを、ビデオバッファ75に供給して保存させるとともに、デコードされたPピクチャの第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データをチップ間インターフェース96に供給する。チップ間インターフェース96は、供給された画素データを、#2デコードチップ76のチップ間インターフェース116に供給する。
また、#2デコードチップ76のバッファ制御回路115は、デコードされたPピクチャの第2の領域の画素データを、ビデオバッファ78に供給して保存させるとともに、デコードされた第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データをチップ間インターフェース116に供給する。チップ間インターフェース116は、供給された画素データを、#1デコードチップ73のチップ間インターフェース96に供給する。
#2デコードチップ76のチップ間インターフェース116は、#1デコードチップ73のチップ間インターフェース96から供給された画素データ、すなわち、Pピクチャの第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データを、バッファ制御回路115に供給する。バッファ制御回路115は、供給された画素データをビデオバッファ78に供給する。また、#1デコードチップ73のチップ間インターフェース96は、#2デコードチップ76のチップ間インターフェース116から供給された画素データ、すなわち、Pピクチャの第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データを、バッファ制御回路95に供給する。バッファ制御回路95は、供給された画素データをビデオバッファ75に供給する。
すなわち、図13に示されるように、ビデオバッファ75には、Pピクチャの第1の領域の画素データと、第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データとが保存され、ビデオバッファ78には、Pピクチャの第2の領域の画素データと、第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データとが保存される。
そして、Bピクチャがデコードされる場合、ビデオバッファ75に保存されている、デコードされるBピクチャの前後のIまたはPピクチャにおける第1の領域の画素データ、および、第2の領域の画素データのうち#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域の画素データが、バッファ制御回路95に読み出されて、動き補償回路94による動き補償処理に用いられる。また、ビデオバッファ78に保存されている、デコードされるBピクチャの前後のIまたはPピクチャにおける第2の領域の画素データ、および、第1の領域の画素データのうち#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域の画素データが、バッファ制御回路115に読み出されて、動き補償回路114による動き補償処理に用いられる。すなわち、図14に示されるように、#1デコードチップ73でデコードされるBピクチャの第1の領域に含まれる各マクロブロックの動き探索範囲は、その前後のIまたはPピクチャの第1の領域と、第2の領域の画素データのうち#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域に対応し、#2デコードチップ76でデコードされるBピクチャの第2の領域に含まれる各マクロブロックの動き探索範囲は、その前後のIまたはPピクチャの第2の領域と、第1の領域の画素データのうち#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域に対応する。
#1デコードチップ73のバッファ制御回路95は、デコードされたBピクチャの第1の領域の画素データを、ビデオバッファ75に供給して保存させる。Bピクチャは他のピクチャの参照画像として用いられないため、#1デコードチップ73においてデコードされたBピクチャはいずれの領域も#2デコードチップ76に供給(コピー)されなくてもよい。
また、#2デコードチップ76のバッファ制御回路115は、デコードされたBピクチャの第2の領域の画素データを、ビデオバッファ78に供給して保存させる。Bピクチャは他のピクチャの参照画像として用いられないため、#2デコードチップ76においてデコードされたBピクチャはいずれの領域も#1デコードチップ73に供給(コピー)されなくてもよい。
このようにして、IまたはPピクチャがデコードされた後、他のデコードチップのPまたはBピクチャのデコード時に参照画素として用いられる領域の画素データが他のデコードチップに供給されて、ビデオバッファにコピーされるので、1フレームが2つに分割されて異なるデコードチップでそれぞれデコードされるときに、PまたはBピクチャのデコード時に参照画素として用いられる領域の画素データが、予め、ビデオバッファに蓄積されて利用可能となる。
次に、図15のフローチャートを参照して、図7を用いて説明した復号装置54-1において実行されるデコード処理1について説明する。
ステップS1において、ストリーム分割部72は、ストリームデータの供給を受ける。
ステップS2において、コントローラ71は、供給されたフレームのピクチャタイプを検出し、#1デコードチップ73および#2デコードチップ76のそれぞれに通知するための制御信号を供給する。
ステップS3において、ストリーム分割部72は、コントローラ71の制御に基づいて供給されたフレームを分割し、#1デコードチップ73および#2デコードチップ76にそれぞれ供給する。
ステップS4において、図16を用いて後述する分割フレームデコード処理1が実行される。
ステップS5において、#1デコードチップ73の表示出力回路97は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路95を介して、ビデオバッファ75にバッファリングされている画像データのうち、次に出力される画像データのデコーダ93においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がaで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。また、#2デコードチップ76の表示出力回路117は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路115を介して、ビデオバッファ78にバッファリングされている画像データのうち、次に出力される画像データのデコーダ113においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がbで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。
ステップS6において、セレクタ79は、#1デコードチップ73および#2デコードチップ76からデコードされた分割フレームの画像データの供給を受け、分割されている画像データが合成されて1フレームとして表示されるように出力し、処理が終了される。
このような処理により、図7を用いて説明した復号装置54-1は、#1デコードチップ73および#2デコードチップ76を用いて1フレームを分割してデコードすることができる。例えば、#1デコードチップ73のデコーダ93および#2デコードチップ76のデコーダ113がそれぞれ1倍速に対応するデコード処理速度を有し、ストリーム分割部72が#1デコードチップ73および#2デコードチップ76にストリームデータの1フレームをそれぞれの符号化難易度が2等分となるように分割して供給している場合、図7を用いて説明した復号装置54-1は、2倍速のデコード処理が可能となる。
また、このような処理により、2倍速でデコード処理が可能となるばかりでなく、同等の高速復号性能においては、回路規模を削減(1つのデコードチップの処理能力を下げる)事が可能となる。また、1つのデコードチップでは対応できないようなフレーム周波数の高い符号化ストリームであっても、複数のデコードチップを用いることによりデコードすることが可能となる。具体的には、例えば、1つのデコードチップの処理能力が1920×1080/30P相当のデコードチップを2個用いることにより、1920×1080/60Pの符号化ストリームのデコードが可能となり、1つのデコードチップの処理能力が 1920×1080/60i相当のデコードチップを2個用いることにより、1920×1080/60Pの符号化ストリームを復号することが可能となり、1つのデコードチップの処理能力が1920×1080/60i相当のデコードチップを2個用いることにより、1920×1080/120iの符号化ストリームを復号することが可能となる。
更に、高速のデコード処理が可能となり、複数のデコードチップが1フレームを分割してデコードすることにより、所望のピクチャから再生を開始させるような場合、再生開始点のピクチャをデコードするために必要な参照画像が複数枚存在するようなときでも、高速で処理を行うことができるので、高速頭出し再生が実現可能となる。
次に、図16のフローチャートを参照して、図15のステップS4において実行される分割フレームデコード処理1について説明する。分割フレームデコード処理1は、#1デコードチップ73および#2デコードチップ76のそれぞれにおいて、並行して実行される。
ステップS21において、#1デコードチップ73のストリーム入力回路91は、ストリーム分割部72によって分割されたデータの供給を受け、バッファ制御回路92に供給する。バッファ制御回路92は、供給されたデータをストリームバッファ74にバッファリングする。また、#2デコードチップ76のストリーム入力回路111は、ストリーム分割部72によって分割されたデータの供給を受け、バッファ制御回路112に供給する。バッファ制御回路112は、供給されたデータをストリームバッファ77にバッファリングする。
ステップS22において、バッファ制御回路92は、ストリームバッファ74にバッファリングされたデータを読み出してデコーダ93に供給する。また。バッファ制御回路112は、ストリームバッファ77にバッファリングされたデータを読み出してデコーダ113に供給する。
ステップS23において、デコーダ93およびデコーダ113は、コントローラ71から供給される制御信号を基に、供給されたのはIピクチャであるか否かを判断する。ステップS23において、供給されたのはIピクチャではないと判断された場合、処理は、後述するステップS28に進む。
ステップS23において、供給されたのはIピクチャであると判断された場合、ステップS24において、デコーダ93およびデコーダ113は、供給されたそれぞれの符号化データに含まれるマクロブロックをデコードする。
ステップS25において、バッファ制御回路95は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図11のIピクチャの第1の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ75に供給する。また、バッファ制御回路115は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図11のIピクチャの第2の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ78に供給する。
ステップS26において、バッファ制御回路95は、デコーダ93から供給されたデコード済みのデータのうち、#2デコードチップ76のデコード処理に用いるために、#2デコードチップ76へコピーする部分(すなわち、図10中、垂直方向の画像範囲がαで示される領域)のデータをチップ間インターフェース96に供給する。チップ間インターフェース96は、供給されたコピー部分の画素データを、#2デコードチップ76のチップ間インターフェース116に供給する。また、バッファ制御回路115は、デコーダ113から供給されたデコード済みのデータのうち、#1デコードチップ73のデコード処理に用いるために、#1デコードチップ73へコピーする部分(すなわち、図10中、垂直方向の画像範囲がβで示される領域)のデータをチップ間インターフェース116に供給する。チップ間インターフェース116は、供給されたコピー部分の画素データを、#1デコードチップ73のチップ間インターフェース96に供給する。
このとき、デコードチップ間を接続するインターフェース、すなわち、チップ間インターフェース96からチップ間インターフェース116へデータを供給するインターフェースと、チップ間インターフェース116からチップ間インターフェース96へデータを供給するインターフェースとが、それぞれ独立している(データバスなどのインターフェースを共有していない)と、データの授受に伴う複雑なアドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御などを必要とせず、データの転送速度も、データバスなどのインターフェースを共有する場合などと比較して、低速化することが可能となる。
なお、チップ間インターフェース96とチップ間インターフェース116とを結ぶインターフェースは、例えば、#1デコードチップ73と#2デコードチップ76が実装されている基板上において、それぞれのチップの入出力端子をパターン接続すればよいため、それぞれのインターフェースを独立して用意しても、そのために必要となるハードウェアの実装上のコストは非常に安価である。
ステップS27において、#1デコードチップ73のチップ間インターフェース96は、#2デコードチップ76から供給された画素データをバッファ制御回路95に供給する。バッファ制御回路95は、供給された画素データをビデオバッファ75に供給する。また。#2デコードチップ76のチップ間インターフェース116は、#1デコードチップ73から供給された画素データをバッファ制御回路115に供給する。バッファ制御回路115は、供給された画素データをビデオバッファ78に供給する。すなわち、図11を用いて説明したように、ビデオバッファ75には、Iピクチャの第1の領域の画素データと、第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データとが保存され、ビデオバッファ78には、Iピクチャの第2の領域の画素データと、第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データとが保存され、処理は、図15のステップS4に戻り、ステップS5に進む。
ステップS23において、供給されたのはIピクチャではないと判断された場合、ステップS28において、デコーダ93およびデコーダ113は、コントローラ71から供給される制御信号を基に、供給されたのはPピクチャであるか否かを判断する。ステップS28において、供給されたのはPピクチャではないと判断された場合、処理は、後述するステップS33に進む。
ステップS28において、供給されたのはPピクチャであると判断された場合、ステップS29において、デコーダ93およびデコーダ113は、参照画素データを用いて、それぞれのマクロブロックをデコードする。具体的には、Pピクチャに含まれるマクロブロックは、動き補償を使用しているので、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路95を介して、ビデオバッファ75から参照画素データを読み出し、読み出した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。ビデオバッファ75には、ステップS27または後述するステップS32の処理により、分割されたPピクチャのデコードに必要な参照画像が、全画素蓄積されている。また、デコーダ113は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路114に出力する。動き補償回路114は、デコーダ113から出力される予測ベクトルに従って、バッファ制御回路115を介して、ビデオバッファ78から参照画素データを読み出し、読み出した参照画素データを、デコーダ113から供給された画素データに加算し、動き補償を行う。ビデオバッファ78には、ステップS27または後述するステップS32の処理により、分割されたPピクチャのデコードに必要な参照画像が、全画素蓄積されている。
ステップS30において、バッファ制御回路95は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図13のPピクチャの第1の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ75に供給する。また、バッファ制御回路115は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図13のPピクチャの第2の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ78に供給する。
ステップS31において、バッファ制御回路95は、デコーダ93から供給されたデコード済みのデータのうち、#2デコードチップ76のデコード処理に用いるために、#2デコードチップ76へコピーする部分(すなわち、図10中、垂直方向の画像範囲がαで示される領域)のデータをチップ間インターフェース96に供給する。チップ間インターフェース96は、供給されたコピー部分の画素データを、#2デコードチップ76のチップ間インターフェース116に供給する。また、バッファ制御回路115は、デコーダ113から供給されたデコード済みのデータのうち、#1デコードチップ73のデコード処理に用いるために、#1デコードチップ73へコピーする部分(すなわち、図10中、垂直方向の画像範囲がβで示される領域)のデータをチップ間インターフェース116に供給する。チップ間インターフェース116は、供給されたコピー部分の画素データを、#1デコードチップ73のチップ間インターフェース96に供給する。
ステップS32において、#1デコードチップ73のチップ間インターフェース96は、#2デコードチップ76から供給された画素データをバッファ制御回路95に供給する。バッファ制御回路95は、供給された画素データをビデオバッファ75に供給する。また。#2デコードチップ76のチップ間インターフェース116は、#1デコードチップ73から供給された画素データをバッファ制御回路115に供給する。バッファ制御回路115は、供給された画素データをビデオバッファ78に供給する。すなわち、図13を用いて説明したように、ビデオバッファ75には、Pピクチャの第1の領域の画素データと、第2の領域の画素データのうち、#1デコードチップ73のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がβで示された領域)の画素データとが保存され、ビデオバッファ78には、Pピクチャの第2の領域の画素データと、第1の領域の画素データのうち、#2デコードチップ76のデコード処理において動きベクトルの探索範囲に含まれる領域(図10において垂直方向の画像範囲がαで示された領域)の画素データとが保存され、処理は、図15のステップS4に戻り、ステップS5に進む。
ステップS28において、供給されたのはPピクチャではないと判断された場合、ステップS33において、デコーダ93およびデコーダ113は、コントローラ71から供給される制御信号を基に、供給されたのはBピクチャであるか否かを判断する。ステップS33において、供給されたのはBピクチャではないと判断された場合、処理は、ステップS23に戻り、それ以降の処理が繰り返される。
ステップS33において、供給されたのはBピクチャであると判断された場合、ステップS34において、デコーダ93およびデコーダ113は、参照画素データを用いて、それぞれのマクロブロックをデコードする。具体的には、Bピクチャに含まれるマクロブロックは、動き補償を使用しているので、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路95を介して、ビデオバッファ75から参照画素データを読み出し、読み出した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。ビデオバッファ75には、ステップS27またはステップS32の処理により、分割されたBピクチャのデコードに必要な参照画像が、全画素蓄積されている。また、デコーダ113は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路114に出力する。動き補償回路114は、デコーダ113から出力される予測ベクトルに従って、バッファ制御回路115を介して、ビデオバッファ78から参照画素データを読み出す。そして、読み出した参照画素データを、デコーダ113から供給された画素データに加算し、動き補償を行う。ビデオバッファ78には、ステップS27またはステップS32の処理により、分割されたBピクチャのデコードに必要な参照画像が、全画素蓄積されている。
ステップS35において、バッファ制御回路95は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図14のBピクチャの第1の領域に対応する部分の画素データ)を、出力用の画像としてビデオバッファ75に供給する。また、バッファ制御回路115は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図14のBピクチャの第2の領域に対応する部分の画素データ)を、出力用の画像としてビデオバッファ78に供給し、処理は、図15のステップS4に戻り、ステップS5に進む。
このような処理により、#1デコードチップ73と#2デコードチップ76とのそれぞれにおいて、コントローラ71により検出されたピクチャタイプに基づいたデコード処理が実行される。また、このとき、#1デコードチップ73と#2デコードチップ76とのそれぞれにおいて、他方のデコードチップにおいて参照画像として用いられる部分の画素データを、他方のデコードチップに供給するとともに、他方のデコードチップから供給される参照画像を自分自身が参照可能なビデオバッファに供給して保存させ、参照画像として利用することができる。
なお、以上説明した処理においては、Iピクチャのデコードの終了後に、PまたはBピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップに供給し、Pピクチャのデコードの終了後に、PまたはBピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップに供給するものとして説明した。これにより、デコード済みの画素データのチップ間のコピー処理を、それぞれのピクチャがデコードされるときに実行されるようにした場合、すなわち、Pピクチャのデコード時に、既にデコードされてバッファリングされているIまたはPピクチャに対応する画素データから、Pピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップから取得し、Bピクチャのデコード時に、既にデコードされてバッファリングされているIまたはPピクチャに対応する画素データから、Bピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップから取得するようにした場合と比較して、それぞれのビデオバッファ(ビデオバッファ75またはビデオバッファ78)へのアクセス時間の合計を短くすることが可能となる。
具体的には、デコード済みの画素データのチップ間のコピー処理をそれぞれのピクチャがデコードされるときに実行されるようにした場合、図17Aに示されるように、Iピクチャのデコード時におけるビデオバッファ(ビデオバッファ75またはビデオバッファ78)へのアクセス時間は、Iピクチャに対応する復号画像の書き込み時間T1のみとなり、Pピクチャのデコード時におけるビデオバッファへのアクセス時間は、Pピクチャに対応する復号画像の書き込み時間T1に加えて、前方向の参照画の読み出し時間T2と、他方のデコードチップのデコード処理に用いられる範囲の参照画像の読み出し時間T3が必要となる。なお、参照画の読み出し時間T2は、復号画像の書き込み時間T1と略同等か、または、それ以上である。そして、Bピクチャのデコード時におけるビデオバッファへのアクセス時間は、Bピクチャに対応する復号画像の書き込み時間T1に加えて、前方向および後ろ方向の参照画の読み出し時間T2×2と、他方のデコードチップのデコード処理に用いられる範囲の前方向および後ろ方向の参照画像の読み出し時間T3×2が必要となる。
そして、Iピクチャのデコードの終了後にPまたはBピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップに供給し、Pピクチャのデコードの終了後にPまたはBピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップに供給するようになされている場合、図17Bに示されるように、Iピクチャのデコード時におけるビデオバッファへのアクセス時間は、Iピクチャに対応する復号画像の書き込み時間T1に加えて、他方のデコードチップから供給された、後でPまたはBピクチャがデコードされるときに用いられる範囲の参照画像を書き込むための時間T4が必要となる。また、Pピクチャのデコード時におけるビデオバッファへのアクセス時間は、Pピクチャに対応する復号画像の書き込み時間T1と前方向の参照画の読み出し時間T2に加えて、他方のデコードチップから供給された、後でPまたはBピクチャがデコードされるときに用いられる範囲の参照画像を書き込むための時間T4が必要となる。そして、Bピクチャのデコード時におけるビデオバッファへのアクセス時間は、Bピクチャに対応する復号画像の書き込み時間T1と、前方向および後ろ方向の参照画の読み出し時間T2×2との合計時間となる。
すなわち、デコード済みの画素データのチップ間のコピー処理をそれぞれのピクチャがデコードされるときに実行されるようにした場合と、Iピクチャのデコードの終了後にPまたはBピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップに予め供給し、Pピクチャのデコードの終了後にPまたはBピクチャのデコードにおいて参照される部分の画素データを他方のデコードチップに予め供給する場合とでは、いずれの場合においても、ビデオバッファへのアクセス時間の合計は、Bピクチャのデコード時に最大となるが、他のデコードチップの参照画像を予め供給しておくようにすることにより、図17Bに示されるように、1ピクチャのデコードにおけるビデオバッファへの最大のアクセス時間を短縮させる(図中T5で示される時間分だけ短縮させる)ことが可能となるので、復号処理時間を短縮することができ、換言すれば、より高速に復号処理を行うことや、同一のデコード処理速度においてはデコードチップとビデオバッファとのデータ転送速度を低くすることが可能となる。
このとき、上述したように、デコードチップ間を接続するインターフェース、すなわち、チップ間インターフェース96からチップ間インターフェース116へデータを供給するインターフェースと、チップ間インターフェース116からチップ間インターフェース96へデータを供給するインターフェースとが、それぞれ独立している(データバスなどのインターフェースを共有していない)と、データの授受に伴う複雑なアドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御などを必要とせず、データの転送速度も、データバスなどのインターフェースを共有する場合などと比較して、低速化することが可能となる。
また、#1デコードチップ73と#2デコードチップ76とのそれぞれにおいて実行されるデコード処理をいずれのスライスから行うかによって、更に、復号処理時間を短縮することができ、換言すれば、より高速に復号処理を行うことが可能となる。
図18乃至図20を用いて、デコード処理の順番と復号処理の処理速度について説明する。
図18は、#1デコードチップ73と#2デコードチップ76とのそれぞれにおいて実行されるデコード処理の処理順の複数のパターンを示す図である。
MPEGストリームが供給される場合、picture_headerなどに引き続き、picture_dataとして画面を構成する複数のスライスが順次供給される。この際、画面の左上部のスライスから、画面の右下部のスライスの順序で供給される。したがって、通常のデコード順では、#1デコードチップ73と#2デコードチップ76とのそれぞれにおいて、図18の矢印151および矢印152に示されるように、各分割画面の上部から下部方向の順で復号処理が実行される。すなわち、#1デコードチップ73で復号されて#2デコードチップ76への転送が必要な、図中αで示される領域の参照画素は最後に復号される。
したがって、例えば、Pピクチャのデコードに続いて、Bピクチャがデコードされる場合、#2デコードチップ76においてPピクチャの#2デコードチップ76でデコードする領域のデコードが終了しても、#1デコードチップ73で復号された図中αで示される領域の参照画素が#2デコードチップ76に供給されてビデオデコーダ78に蓄積されるまで、次のBピクチャのデコード処理を開始することができない。
このように、参照画素の他のデコードチップへのコピー(転送)にかかる時間のために発生するデコード処理の待ち時間を短縮するためには、デコードチップ間の参照画素の転送速度を速めなければならない。
そこで、本発明を適用した復号装置54においては、#1デコードチップ73におけるデコード処理順を、矢印151に示される場合とは異なるものとすることができる。
すなわち、図7に示される復号装置54-1において、#1デコードチップ73に供給される分割された符号化ストリームは、ストリームバッファ74に蓄積されるので、バッファ制御回路92は、図中αで示される領域の参照画素を先に読み出してデコーダ93に供給する。具体的には、例えば、図18の矢印153に示されるように、図中αで示される領域においては、右下のスライス(#2デコードチップ76でデコードする領域に近いスライス)から順にデコーダ93に供給され、続いて、#1デコードチップ73でデコードする領域の画像のうちの残る領域においては、矢印154に示されるように、右下のスライスから順にデコーダ93に供給されるようにしてもよい。また、図18の矢印155に示されるように、図中αで示される領域においては、左上のスライスから順にデコーダ93に供給され、続いて、#1デコードチップ73でデコードする領域の画像のうちの残る領域においても、矢印156に示されるように、左上のスライスから順にデコーダ93に供給されるようにしてもよい。また、図18の矢印157に示されるように、図中αで示される領域においては、右下のスライスから順にデコーダ93に供給され、続いて、#1デコードチップ73でデコードする領域の画像のうちの残る領域においては、矢印158に示されるように、左上のスライスから順にデコーダ93に供給されるようにしてもよい。
図中αで示される領域の参照画素が先に読み出されてデコーダ93に供給されるようになされていれば、上述したいずれのパターンにおいても、#2デコードチップ76でデコードする領域のデコード処理が全て終了する前に、図中αで示される領域の参照画素はデコードされて#2デコードチップ76に供給されるので、他のデコードチップへのコピー(転送)にかかる時間のためにデコード処理の待ち時間が発生するのを防止することができる。
すなわち、図18の矢印151および矢印152に示されるように、各分割画面の上部から下部方向の順で復号処理が実行された場合、図19に示されるように、#1デコードチップ73で図中αで示される領域のデコード処理が開始され、復号された参照画素の#2デコードチップ76への供給が順次実行されても、#2デコードチップ76でデコードされる領域のデコード処理が終了するまでに、データの転送(図中の矢印172)は終了されない。すなわち、図中αで示される領域の参照画素が#2デコードチップ76へ供給されてビデオデコーダ78に蓄積されるまで、次のピクチャのデコード処理を開始する(図中の矢印173)ことができない。
これに対して、図18の矢印153乃至158に示されるように、図中αで示される領域の符号化ストリームが先に読み出されてデコーダ93に供給されるようになされていれば、図20に示されるように、#1デコードチップ73で図中αで示される領域のデコード処理が先に開始され、復号された参照画素の#2デコードチップ76への供給が順次されている間に、それ以外の領域のデコード処理が実行されるので、#2デコードチップ76でデコードされる領域のデコード処理が終了するまでに、データの転送(図中の矢印181および矢印182)は終了される。すなわち、#2デコードチップ76でデコードされる領域のデコード処理が終了した後、直ちに、次のピクチャのデコード処理を開始する(図中の矢印183)ことができる。
すなわち、それぞれのデコードチップにおいて他方のデコードチップに供給する領域のデコードを優先的に実行することにより、転送速度を大幅に高速化することなく他の部分のデコード処理の間に、データの転送処理を終了させることができる。
次に、図21は、復号装置54の第2の構成例である復号装置54−2の構成を示すブロック図である。復号装置54−2は、デコードチップを3つ用いて供給される符号化ストリームをデコードすることができるようになされている。
復号装置54−2は、コントローラ201、ストリーム分割部202、#1デコードチップ203、第1のバッファ204、#2デコードチップ205、第2のバッファ206、#3デコードチップ207、第3のバッファ208、および、セレクタ209で構成されている。復号装置54−2には、4つ以上のデコードチップを備えるようにしても良いが、ここでは、#1デコードチップ203乃至#3デコードチップ207の3つのデコードチップが備えられているものとして説明する。また、第1のバッファ204乃至第3のバッファ208のそれぞれは、ストリームバッファとビデオバッファを備えている。なお、ストリームバッファとビデオバッファとが個別に設けられるようにしてもよいことは言うまでもない。
コントローラ201は、ユーザの操作入力、または、外部の装置から供給される制御信号、または、ストリーム分割部202から供給された情報を基に、復号装置54−2の動作を制御するものである。
ストリーム分割部202は、コントローラ201の制御に基づいて、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行い、符号化ストリームのそれぞれのピクチャをデコードチップの個数分(ここでは3つ)に分割し、#1デコードチップ203乃至#3デコードチップ207にそれぞれ供給する。ピクチャの分割の仕方は、例えば、入力ストリームに含まれるピクチャのそれぞれをスライスを単位としてデコードチップの個数分(ここでは3つ)に分割したり、入力ストリームに含まれるピクチャのそれぞれを縦にデコードチップの個数分(ここでは3つ)に分割したり、入力ストリームに含まれるピクチャのそれぞれを、斜めにデコードチップの個数分(ここでは3つ)に分割する(しかしながら、例えば、デコード方式がMPEG2などである場合には、縦や斜めの分割は、スライス単位の分割と比較して困難であるかもしれない)などの方法がある。ストリーム分割部202は、例えば、1枚のピクチャをスライスを単位としてデコードチップの個数分に分割するとき、スライススタートコードを基にして、各フレームを分割することができる。
また、ストリーム分割部202は、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行った結果得られる、例えば、ピクチャタイプなどの情報を、コントローラ201に供給する。
なお、ストリーム分割部202は、入力ストリームに含まれるピクチャのそれぞれをデコードチップの個数より多く分割して、その複数の分割されたピクチャを備えられているデコードチップの個数に分けて、供給するようにしても良いが、入力ストリームに含まれるピクチャのそれぞれをデコードチップの個数のまとまった(分離されていない)デコード単位に分割するようにしたほうが、参照部分の画素のデコードチップ間の授受の処理が複雑にならないので好適である。
なお、ピクチャの分割の方法は、等分割であっても、不等分な分割であっても良い。ストリーム分割部202は、例えば、画像の複雑さを検出する機能を備えるようにして、ピクチャの部分によって画像の複雑さが著しく異なっているような場合、画像の複雑さ(符号化難易度)に基づいて、ピクチャの分割の割合を決定することができるようにしても良い。
#1デコードチップ203は、コントローラ201の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードする。このとき、#1デコードチップ203は、#2デコードチップ205のデコード処理の参照画像として必要となる可能性のある領域の画素データを#2デコードチップ205に供給するとともに、#2デコードチップ205から供給されるデコード済みの画素データを第1のバッファ204に記憶し、必要に応じて参照することにより、デコード処理を実行する。
第1のバッファ204は、例えば、DRAMなどにより構成され、#1デコードチップ203に供給された符号化ストリーム、#1デコードチップ203においてデコードされたビデオ信号(画素データ)、および、#2デコードチップ205から供給されたデコード済みのビデオ信号(画素データ)の供給を受けて、これを一時保存する。
#2デコードチップ205は、コントローラ201の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードする。このとき、#2デコードチップ205は、#1デコードチップ203のデコード処理の参照画像として必要となる領域の画素データを#1デコードチップ203に供給し、#3デコードチップ207のデコード処理の参照画像として必要となる領域の画素データを#3デコードチップ207に供給するとともに、#1デコードチップ203または#3デコードチップ207から供給されるデコード済みの画素データを第2のバッファ206に記憶し、必要に応じて参照することにより、デコード処理を実行する。
第2のバッファ206は、例えば、DRAMなどにより構成され、#2デコードチップ205に供給された符号化ストリーム、#2デコードチップ205においてデコードされたビデオ信号(画素データ)、または、#1デコードチップ203から供給されたデコード済みのビデオ信号(画素データ)、または、#3デコードチップ207から供給されたデコード済みのビデオ信号(画素データ)の供給を受けて、これを一時保存する。
#3デコードチップ207は、コントローラ201の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードする。このとき、#3デコードチップ207は、#2デコードチップ205のデコード処理の参照画像として必要となる領域の画素データを#2デコードチップ205に供給するとともに、#2デコードチップ205から供給されるデコード済みの画素データを第3のバッファ208に記憶し、必要に応じて参照することにより、デコード処理を実行する。
第3のバッファ208は、例えば、DRAMなどにより構成され、#3デコードチップ207に供給された符号化ストリーム、#3デコードチップ207においてデコードされたビデオ信号(画素データ)、または、#2デコードチップ205から供給されたデコード済みのビデオ信号(画素データ)の供給を受けて、これを一時保存する。
セレクタ209は、#1デコードチップ203乃至#3デコードチップ207から、デコード済みの画素データの供給を受け、復号ビデオデータとして出力する。
また、復号装置54−2は、必要に応じて、更に、ドライブ80を設けることができる。ドライブ80は、コントローラ201と接続され、装着されるリムーバブルメディア81との情報の授受が可能なようになされている。
図21に示されるように、#1デコードチップ203乃至#3デコードチップ207の3つのデコードチップを用いてデコード処理が行われる場合においても、上述した2つのデコードチップを用いたデコード処理と基本的に同様の処理が実行される。
すなわち、図22に示されるように、#1デコードチップ203でデコードされる領域(図中aで示される領域)のうち、#2デコードチップ205のデコード処理の参照画像として必要となる領域(図中αで示される領域)の画素データが#2デコードチップ205に供給される。また、#2デコードチップ205でデコードされる領域(図中bで示される領域)のうち、#1デコードチップ203のデコード処理の参照画像として必要となる領域(図中βで示される領域)の画素データが#1デコードチップ203に供給されるとともに、#3デコードチップ207のデコード処理の参照画像として必要となる領域(図中γで示される領域)の画素データが#3デコードチップ207に供給される。そして、#3デコードチップ207でデコードされる領域(図中cで示される領域)のうち、#2デコードチップ205のデコード処理の参照画像として必要となる領域(図中δで示される領域)の画素データが#2デコードチップ205に供給される。
そして、#1デコードチップ203乃至#3デコードチップ207においては、図23に示されるように、矢印251乃至矢印253に示されるように、ストリーム分割部202から供給される順番でそれぞれのスライスをデコードするようにしてもよいが、特に、#1デコードチップ203および#2デコードチップ205においては、矢印261乃至矢印285で示される3つのデコード順パターンのように、他のデコードチップに供給する必要のあるスライスから、デコード処理を開始するようにすると、データの転送のためにデコード処理に遅延が発生することがないので好適である。
すなわち、#1デコードチップ203において、例えば、図23の矢印261に示されるように、図中αで示される領域においては、右下のスライス(#2デコードチップ205でデコードする領域に近いスライス)から順にデコーダに供給され、続いて、#1デコードチップ203でデコードする領域の画像のうちの残る領域においては、矢印262に示されるように、右下のスライスから順にデコーダに供給されるようにしてもよい。また、矢印271に示されるように、図中αで示される領域においては、左上のスライスから順にデコーダに供給され、続いて、#1デコードチップ203でデコードする領域の画像のうちの残る領域においても、矢印272に示されるように、左上のスライスから順にデコーダに供給されるようにしてもよい。また、矢印281に示されるように、図中αで示される領域においては、右下のスライスから順にデコーダに供給され、続いて、#1デコードチップ203でデコードする領域の画像のうちの残る領域においては、矢印282に示されるように、左上のスライスから順にデコーダに供給されるようにしてもよい。
そして、#2デコードチップ205において、例えば、図23の矢印263に示されるように、図中γで示される領域においては、右下のスライス(#3デコードチップ207でデコードする領域に近いスライス)から順にデコーダに供給され、続いて、図中βで示される領域においては、矢印264に示されるように、右下のスライスから順にデコーダに供給され、#2デコードチップ205でデコードする領域の画像のうちの残る領域においても、矢印265に示されるように、右下のスライスから順にデコーダに供給されるようにしてもよい。また、矢印273に示されるように、図中βで示される領域においては、左上のスライス(#1デコードチップ203でデコードする領域に近いスライス)から順にデコーダに供給され、続いて、図中γで示される領域においては、矢印274に示されるように、左上のスライスから順にデコーダに供給され、#2デコードチップ205でデコードする領域の画像のうちの残る領域においても、矢印275に示されるように、左上のスライスから順にデコーダに供給されるようにしてもよい。また、矢印283に示されるように、図中βで示される領域においては、左上のスライス(#1デコードチップ203でデコードする領域に近いスライス)から順にデコーダに供給され、続いて、図中γで示される領域においては、矢印284に示されるように、右下のスライス(#3デコードチップ207でデコードする領域に近いスライス)から順にデコーダに供給され、#2デコードチップ205でデコードする領域の画像のうちの残る領域においても、矢印285に示されるように、右下のスライスから順にデコーダに供給されるようにしてもよい。
次に、図24は、復号装置54の第3の構成例である復号装置54−3の構成を示すブロック図である。
なお、図7を用いて説明した場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
すなわち、図24の復号装置54−3は、#1デコードチップ73に代わって#1デコードチップ301が設けられ、#2デコードチップ76に代わって#2デコードチップ303が設けられ、ストリームバッファ74およびビデオバッファ75を含む#1バッファ302、並びに、ストリームバッファ77およびビデオバッファ78を含む#2バッファ304が設けられている以外は、基本的に、図7を用いて説明した復号装置54−1と同様の構成を有している。また、#1デコードチップ301は、バッファ制御回路92およびバッファ制御回路95に代わって、#1バッファ302へのデータの記憶および#1バッファ302からのデータの読み出しを制御するバッファ制御回路311が設けられている以外は、基本的に#1デコードチップ73と同様の構成を有し、#2デコードチップ303は、バッファ制御回路112およびバッファ制御回路115に代わって、#2バッファ304へのデータの記憶および#2バッファ304からのデータの読み出しを制御するバッファ制御回路321が設けられている以外は、基本的に#2デコードチップ76と同様の構成を有している。
そして、図24の復号装置54−3は、バッファ制御回路92およびバッファ制御回路95が実行していた処理をバッファ制御回路311が実行し、バッファ制御回路112およびバッファ制御回路115が実行していた処理をバッファ制御回路321が実行する以外は、図15および図16のフローチャートを用いて説明した処理と基本的に同様の処理を実行する。更に、図24の復号装置54−3は、図18または図23を用いて説明した場合と同様に、フレーム内のデコード処理の順番を、他のデコードチップに供給される領域を優先するようにすることにより、デコード処理を高速化することが可能となる。
上述した復号装置54−1乃至復号装置54−3においては、供給されたストリームデータのピクチャタイプをコントローラ71が検出し、デコードチップのそれぞれにピクチャタイプを通知するための制御信号を供給するようになされていたが、供給されたストリームデータのピクチャタイプは、デコードチップのそれぞれが検出することができるようにしてもよい。
次に、図25は、復号装置54の第4の構成例である復号装置54−4の構成を示すブロック図である。復号装置54−4においては、供給されたストリームデータのピクチャタイプをデコードチップのそれぞれが検出することができるようになされている。
なお、図7を用いて説明した場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
すなわち、図25の復号装置54−4は、コントローラ71に代わってコントローラ351が設けられ、#1デコードチップ73に代わって#1デコードチップ352が設けられ、#2デコードチップ76に代わって#2デコードチップ353が設けられている以外は、基本的に、図7を用いて説明した復号装置54−1と同様の構成を有している。また、例えば、図24を用いて説明したようにして、ストリームバッファ74およびビデオバッファ75を含む#1バッファ302、並びに、ストリームバッファ77およびビデオバッファ78を含む#2バッファ304が設けられ、それぞれのデコードチップにおいて、バッファ制御回路が1つだけ設けられている場合も、その処理は基本的に同一となるので、そのように構成されている復号装置のブロック図およびその処理の詳細な説明は省略する。
また、#1デコードチップ352は、ストリーム入力回路91に代わって、供給されたストリームデータのピクチャタイプを検出することが可能なストリーム入力回路361が設けられている以外は、基本的に#1デコードチップ73と同様の構成を有し、#2デコードチップ353は、ストリーム入力回路111に代わって、供給されたストリームデータのピクチャタイプを検出することが可能なストリーム入力回路371が設けられている以外は、基本的に#2デコードチップ76と同様の構成を有している。
次に、図26のフローチャートを参照して、図25を用いて説明した復号装置54−4において実行されるデコード処理2について説明する。
ステップS51において、ストリーム分割部72は、ストリームデータの供給を受ける。
ステップS52において、ストリーム分割部72は、コントローラ351の制御に基づいて供給されたフレームを分割し、#1デコードチップ352および#2デコードチップ353にそれぞれ供給する。
ステップS53において、図27を用いて後述する分割フレームデコード処理2が実行される。
ステップS54において、#1デコードチップ352の表示出力回路97は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路95を介して、ビデオバッファ75にバッファリングされている画像データのうち、次に出力される画像データのデコーダ93においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がaで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。また、#2デコードチップ353の表示出力回路117は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路115を介して、ビデオバッファ78にバッファリングされている画像データのうち、次に出力される画像データのデコーダ113においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がbで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。
ステップS55において、セレクタ79は、#1デコードチップ352および#2デコードチップ353からデコードされた分割フレームの画像データの供給を受け、分割されている画像データが合成されて1フレームとして表示されるように出力し、処理が終了される。
このような処理により、図25を用いて説明した復号装置54−4は、#1デコードチップ352および#2デコードチップ353を用いて1フレームを分割してデコードすることができる。例えば、#1デコードチップ352のデコーダ93および#2デコードチップ353のデコーダ113がそれぞれ1倍速に対応するデコード処理速度を有し、ストリーム分割部72が#1デコードチップ352および#2デコードチップ353にストリームデータの1フレームをそれぞれの符号化難易度が2等分となるように分割して供給している場合、図25を用いて説明した復号装置54−4は、2倍速のデコード処理が可能となる。
また、このような処理により、2倍速でデコード処理が可能となるばかりでなく、同等の高速復号性能においては、回路規模を削減(1つのデコードチップの処理能力を下げる)事が可能となる。また、1つのデコードチップでは対応できないようなフレーム周波数の高い符号化ストリームであっても、複数のデコードチップを用いることによりデコードすることが可能となる。
更に、高速のデコード処理が可能となり、複数のデコードチップが1フレームを分割してデコードすることにより、所望のピクチャから再生を開始させるような場合、再生開始点のピクチャをデコードするために必要な参照画像が複数枚存在するようなときでも、高速で処理を行うことができるので、高速頭出し再生が実現可能となる。
次に、図27のフローチャートを参照して、図26のステップS53において実行される分割フレームデコード処理2について説明する。分割フレームデコード処理2は、#1デコードチップ352および#2デコードチップ353のそれぞれにおいて、並行して実行される。
ステップS71において、#1デコードチップ352のストリーム入力回路361は、ストリーム分割部72によって分割されたデータの供給を受け、供給されたフレームのピクチャタイプを検出する。また、#2デコードチップ353のストリーム入力回路371は、ストリーム分割部72によって分割されたデータの供給を受け、供給されたフレームのピクチャタイプを検出する。
ステップS72において、#1デコードチップ352のストリーム入力回路361は、供給されたフレームをバッファ制御回路92に供給する。バッファ制御回路92は、供給されたデータをストリームバッファ74にバッファリングする。また、#2デコードチップ353のストリーム入力回路371は、供給されたフレームを、バッファ制御回路112に供給する。バッファ制御回路112は、供給されたデータをストリームバッファ77にバッファリングする。
ステップS73において、バッファ制御回路92は、ストリームバッファ74にバッファリングされたデータを読み出してデコーダ93に供給する。また。バッファ制御回路112は、ストリームバッファ77にバッファリングされたデータを読み出してデコーダ113に供給する。このとき、上述したように、他のデコードチップに参照画素として供給する必要のある領域のマクロブロックからデコードが開始されるように、優先的にデコーダに供給すると好適である。
ステップS74において、デコーダ93およびデコーダ113は、ステップS71の検出結果を基に、供給されたのはIピクチャであるか否かを判断する。ステップS74において、供給されたのはIピクチャではないと判断された場合、処理は、後述するステップS79に進む。
ステップS74において、供給されたのはIピクチャであると判断された場合、ステップS75乃至ステップS78において、図16のステップS24乃至ステップS27と同様の処理が実行される。すなわち、供給されたそれぞれの符号化データに含まれるマクロブロックがデコードされ、デコード済みのデータが、参照画像および出力用の画像としてビデオバッファ75に供給される。そして、デコード済みのデータのうち、他のデコードチップのデコード処理に用いるために他のデコードチップへコピーする領域(すなわち、図10中、垂直方向の画像範囲がαまたはβで示される領域)のデータがチップ間インターフェースを介して他のチップに供給され、他のデコードチップから供給された画素データがビデオバッファに保存されて、処理は、図26のステップS53に戻り、ステップS54に進む。
ステップS74において、供給されたのはIピクチャではないと判断された場合、ステップS79において、デコーダ93およびデコーダ113は、ステップS71の検出結果を基に、供給されたのはPピクチャであるか否かを判断する。ステップS79において、供給されたのはPピクチャではないと判断された場合、処理は、後述するステップS84に進む。
ステップS79において、供給されたのはPピクチャであると判断された場合、ステップS80乃至ステップS83において、図16のステップS29乃至ステップS32と同等の処理が実行される。すなわち、参照画素データを用いて、それぞれのマクロブロックがデコードされ、デコード済みのデータが、参照画像および出力用の画像としてビデオバッファに供給される。そして、デコード済みのデータのうち、他のデコードチップのデコード処理に用いるために、他のデコードチップへコピーする部分(すなわち、図10中、垂直方向の画像範囲がαまたはβで示される領域)のデータがチップ間インターフェースを介して他のデコードチップに供給される。そして、他のデコードチップから供給された画素データがビデオバッファに供給されて保存され、処理は、図26のステップS53に戻り、ステップS54に進む。
ステップS79において、供給されたのはPピクチャではないと判断された場合、ステップS84において、デコーダ93およびデコーダ113は、ステップS71の検出結果を基に、供給されたのはBピクチャであるか否かを判断する。ステップS84において、供給されたのはBピクチャではないと判断された場合、処理は、ステップS74に戻り、それ以降の処理が繰り返される。
ステップS84において、供給されたのはBピクチャであると判断された場合、ステップS85およびステップS86において、図16のステップS34およびステップS35と同様の処理が実行される。すなわち、参照画素データを用いて、それぞれのマクロブロックがデコードされ、デコード済みの画素データがビデオバッファに供給されて保存され、処理は、図26のステップS53に戻り、ステップS54に進む。
このような処理により、#1デコードチップ352と#2デコードチップ353とのそれぞれにおいて検出されたピクチャタイプに基づいたデコード処理が実行される。また、このとき、#1デコードチップ352と#2デコードチップ353とのそれぞれにおいて、他方のデコードチップにおいて参照画像として用いられる部分の画素データを、他方のデコードチップに供給するとともに、他方のデコードチップから供給される参照画像を自分自身が参照可能なビデオバッファに供給して保存させ、参照画像として利用することができる。
なお、復号装置54に設けられるデコードチップの数が3つまたは4つ以上である場合も、それぞれのデコードチップにおいてピクチャタイプを検出し、同様のデコード処理を行うことができるのは言うまでもない。
上述した復号装置54−1乃至復号装置54−4においては、供給されたストリームデータがストリーム分割部72によりデコードチップの数に分割されて、それぞれのデコードチップに供給されるようになされていたが、それぞれのデコードチップに供給されたストリームデータが供給され、デコードチップは、コントローラの制御に基づいて、供給されたストリームデータのフレームの所定の一部分のみをデコードすることができるようにしてもよい。
次に、図28は、復号装置54の第5の構成例である復号装置54−5の構成を示すブロック図である。復号装置54−5においては、供給されたストリームデータはそれぞれのデコードチップに供給され、デコードチップは、コントローラの制御に基づいて、供給されたストリームデータのフレームの所定の一部分のみをデコードするようになされている。
なお、図7を用いて説明した場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
すなわち、図28の復号装置54−5は、ストリーム分割部72が省略され、コントローラ71に代わってコントローラ381が設けられ、#1デコードチップ73に代わって#1デコードチップ382が設けられ、#2デコードチップ76に代わって#2デコードチップ383が設けられている以外は、基本的に、図7を用いて説明した復号装置54−1と同様の構成を有している。また、例えば、図24を用いて説明したようにして、ストリームバッファ74およびビデオバッファ75を含む#1バッファ302、並びに、ストリームバッファ77およびビデオバッファ78を含む#2バッファ304が設けられ、それぞれのデコードチップにおいて、バッファ制御回路が1つだけ設けられている場合も、その処理は基本的に同一となるので、そのように構成されている復号装置のブロック図およびその処理の詳細な説明は省略する。
また、#1デコードチップ382は、ストリーム入力回路91に代わって、コントローラ381の制御に基づいて、供給されたストリームデータのフレームのうちの所定の一部分を選択してバッファ制御回路92に供給することが可能なストリーム入力回路391が設けられている以外は、基本的に#1デコードチップ73と同様の構成を有し、#2デコードチップ383は、ストリーム入力回路111に代わって、コントローラ381の制御に基づいて、供給されたストリームデータのフレームのうちの所定の一部分を選択してバッファ制御回路112に供給することが可能なストリーム入力回路392が設けられている以外は、基本的に#2デコードチップ76と同様の構成を有している。
次に、図29のフローチャートを参照して、図28を用いて説明した復号装置54−5において実行されるデコード処理3について説明する。
ステップS111において、復号装置54-5は、ストリームデータの供給を受け、ステップS112において、供給されたストリームデータが#1デコードチップ382および#2デコードチップ383にそれぞれ供給される。
ステップS113において、図30を用いて後述する分割フレームデコード処理3が実行される。
ステップS114において、#1デコードチップ382の表示出力回路97は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路95を介して、ビデオバッファ75にバッファリングされている画像データのうち、次に出力される画像データのデコーダ93においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がaで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。また、#2デコードチップ383の表示出力回路117は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路115を介して、ビデオバッファ78にバッファリングされている画像データのうち、次に出力される画像データのデコーダ113においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がbで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。
ステップS115において、セレクタ79は、#1デコードチップ382および#2デコードチップ383からデコードされた分割フレームの画像データの供給を受け、分割されている画像データが合成されて1フレームとして表示されるように出力し、処理が終了される。
このような処理により、図28を用いて説明した復号装置54−5は、#1デコードチップ382および#2デコードチップ383を用いて1フレームを分割してデコードすることができる。例えば、#1デコードチップ382のデコーダ93および#2デコードチップ383のデコーダ113がそれぞれ1倍速に対応するデコード処理速度を有し、#1デコードチップ382および#2デコードチップ383が、それぞれ、ストリームデータの1フレームのうちの半分を選択してデコードするようになされている場合、図28を用いて説明した復号装置54−5は、2倍速のデコード処理が可能となる。
また、このような処理により、2倍速でデコード処理が可能となるばかりでなく、同等の高速復号性能においては、回路規模を削減(1つのデコードチップの処理能力を下げる)事が可能となる。また、1つのデコードチップでは対応できないようなフレーム周波数の高い符号化ストリームであっても、複数のデコードチップを用いることによりデコードすることが可能となる。
更に、高速のデコード処理が可能となり、複数のデコードチップが1フレームを分割してデコードすることにより、所望のピクチャから再生を開始させるような場合、再生開始点のピクチャをデコードするために必要な参照画像が複数枚存在するようなときでも、高速で処理を行うことができるので、高速頭出し再生が実現可能となる。
次に、図30のフローチャートを参照して、図29のステップS113において実行される分割フレームデコード処理3について説明する。分割フレームデコード処理3は、#1デコードチップ382および#2デコードチップ383のそれぞれにおいて、並行して実行される。
ステップS131において、#1デコードチップ382のストリーム入力回路391は、ストリームデータの供給を受け、供給されたフレームのピクチャタイプを検出する。また、#2デコードチップ383のストリーム入力回路392は、ストリームデータの供給を受け、供給されたフレームのピクチャタイプを検出する。
ステップS132において、#1デコードチップ382のストリーム入力回路391および#2デコードチップ383のストリーム入力回路392は、コントローラ381の制御に基づいて、供給されたフレームのうち、例えば、図8を用いて説明したフレームの分割における場合と同様にして、デコードする範囲を選択して抽出する。
ステップS133において、#1デコードチップ382のストリーム入力回路391は、供給されたフレームのうち、デコード範囲として抽出した部分をバッファ制御回路92に供給する。バッファ制御回路92は、供給されたデータをストリームバッファ74にバッファリングする。また、#2デコードチップ383のストリーム入力回路392は、供給されたフレームのうち、デコード範囲として抽出した部分を、バッファ制御回路112に供給する。バッファ制御回路112は、供給されたデータをストリームバッファ77にバッファリングする。
ステップS134において、バッファ制御回路92は、ストリームバッファ74にバッファリングされたデータを読み出してデコーダ93に供給する。また。バッファ制御回路112は、ストリームバッファ77にバッファリングされたデータを読み出してデコーダ113に供給する。このとき、上述したように、他のデコードチップに参照画素として供給する必要のある領域のマクロブロックからデコードが開始されるように、優先的にデコーダに供給すると好適である。
ステップS135において、デコーダ93およびデコーダ113は、ステップS131の検出結果を基に、供給されたのはIピクチャであるか否かを判断する。ステップS135において、供給されたのはIピクチャではないと判断された場合、処理は、後述するステップS140に進む。
ステップS135において、供給されたのはIピクチャであると判断された場合、ステップS136乃至ステップS139において、図16のステップS24乃至ステップS27と同様の処理が実行される。すなわち、供給されたそれぞれの符号化データに含まれるマクロブロックがデコードされ、デコード済みのデータが、参照画像および出力用の画像としてビデオバッファ75に供給される。そして、デコード済みのデータのうち、他のデコードチップのデコード処理に用いるために他のデコードチップへコピーする領域(すなわち、図10中、垂直方向の画像範囲がαまたはβで示される領域)のデータがチップ間インターフェースを介して他のチップに供給され、他のデコードチップから供給された画素データがビデオバッファに保存されて、処理は、図29のステップS113に戻り、ステップS114に進む。
ステップS135において、供給されたのはIピクチャではないと判断された場合、ステップS140において、デコーダ93およびデコーダ113は、ステップS131の検出結果を基に、供給されたのはPピクチャであるか否かを判断する。ステップS140において、供給されたのはPピクチャではないと判断された場合、処理は、後述するステップS145に進む。
ステップS140において、供給されたのはPピクチャであると判断された場合、ステップS141乃至ステップS144において、図16のステップS29乃至ステップS32と同等の処理が実行される。すなわち、参照画素データを用いて、それぞれのマクロブロックがデコードされ、デコード済みのデータが、参照画像および出力用の画像としてビデオバッファに供給される。そして、デコード済みのデータのうち、他のデコードチップのデコード処理に用いるために他のデコードチップへコピーする部分(すなわち、図10中、垂直方向の画像範囲がαまたはβで示される領域)のデータがチップ間インターフェースを介して他のデコードチップに供給される。そして、他のデコードチップから供給された画素データがビデオバッファに供給されて保存され、処理は、図29のステップS113に戻り、ステップS114に進む。
ステップS140において、供給されたのはPピクチャではないと判断された場合、ステップS145において、デコーダ93およびデコーダ113は、ステップS131の検出結果を基に、供給されたのはBピクチャであるか否かを判断する。ステップS145において、供給されたのはBピクチャではないと判断された場合、処理は、ステップS135に戻り、それ以降の処理が繰り返される。
ステップS145において、供給されたのはBピクチャであると判断された場合、ステップS146およびステップS147において、図16のステップS34およびステップS35と同様の処理が実行される。すなわち、参照画素データを用いて、それぞれのマクロブロックがデコードされ、デコード済みの画素データがビデオバッファに供給されて保存され、処理は、図29のステップS113に戻り、ステップS114に進む。
このような処理により、#1デコードチップ382と#2デコードチップ383とのそれぞれにストリームデータの全フレームが供給され、デコード範囲が選択されて抽出され、ピクチャタイプが検出されて、抽出されたデコード範囲のマクロブロックに対して、検出されたピクチャタイプに基づいたデコード処理が実行される。また、このとき、#1デコードチップ382と#2デコードチップ383とのそれぞれにおいて、他方のデコードチップにおいて参照画像として用いられる部分の画素データが、他方のデコードチップに供給されるとともに、他方のデコードチップから供給される参照画像が自分自身が参照可能なビデオバッファに供給されて保存され、参照画像として利用することができる。
なお、図29および図30を用いて説明した処理では、供給されたフレームのピクチャタイプを#1デコードチップ382と#2デコードチップ383がそれぞれ検出するものとして説明したが、供給されたフレームのピクチャタイプは、コントローラ381が検出することができるようにしてもよいことは言うまでもない。
また、復号装置54に設けられるデコードチップの数が3つまたは4つ以上である場合も、それぞれのデコードチップにおいてデコードする領域を検出し、同様のデコード処理を行うことができるのは言うまでもない。
上述した復号装置54−1乃至復号装置54−5においては、それぞれのデコードチップが実行する処理において利用されるバッファが個別に設けられるようになされていたが、それぞれのデコードチップが実行する処理において利用されるバッファを共通のバッファとするようにしてもよい。
次に、図31は、復号装置54の第6の構成例である復号装置54−6の構成を示すブロック図である。復号装置54−6においては、それぞれのデコードチップが実行する処理において利用されるバッファは共通のバッファである。
なお、図7を用いて説明した場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
復号装置54−6は、ストリーム分割部72、セレクタ79、コントローラ401、#1デコードチップ402、#2デコードチップ403、および、バッファ404で構成されている。バッファ404は、ストリームバッファ431およびビデオバッファ432を備えている。復号装置54−6には、3つ以上のデコードチップを備えるようにしても良いが、ここでは、#1デコードチップ402および#2デコードチップ403の2つのデコードチップが備えられているものとして説明する。
コントローラ401は、ユーザの操作入力、または、外部の装置から供給される制御信号、または、ストリーム分割部72から供給された情報を基に、復号装置54−6の動作を制御するものである。
ストリーム分割部72は、コントローラ401の制御に基づいて、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行い、例えば、図8を用いて説明した場合と同様にして、符号化ストリームのそれぞれのピクチャをデコードチップの個数分(ここでは2つ)に分割し、#1デコードチップ402および#2デコードチップ403に供給する。
また、ストリーム分割部72は、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行った結果得られる、例えば、ピクチャタイプなどの情報を、コントローラ401に供給する。
なお、ストリーム分割部72は、入力ストリームに含まれるピクチャのそれぞれをデコードチップの個数より多く分割して、その複数の分割されたピクチャを備えられているデコードチップの個数に分けて、供給するようにしても良いが、図8に示したように、入力ストリームに含まれるピクチャのそれぞれをデコードチップの個数のまとまった(分離されていない)デコード単位に分割するようにしたほうが、参照部分の画素のデコードチップ間の授受の処理が複雑にならないので好適である。
なお、ピクチャの分割の方法は、等分割であっても、不等分な分割であっても良い。ストリーム分割部72は、例えば、画像の複雑さを検出する機能を備えるようにして、ピクチャの部分によって画像の複雑さが著しく異なっているような場合、画像の複雑さ(符号化難易度)に基づいて、ピクチャの分割幅を決定することができるようにしても良い。
#1デコードチップ402は、ストリーム入力回路91、デコーダ93、動き補償回路94、表示出力回路97、および、バッファ制御回路411から構成され、コントローラ401の制御に基づいて、ストリーム分割部72により供給された分割後のピクチャをデコードする。このとき、#1デコードチップ402はデコード済みの画素データをバッファ404のビデオバッファ432に供給するとともに、参照画素データをビデオバッファ432から読み出して参照することにより、デコード処理を実行する。
#2デコードチップ403は、ストリーム入力回路111、デコーダ113、動き補償回路114、表示出力回路117、および、バッファ制御回路421から構成され、コントローラ401の制御に基づいて、ストリーム分割部72により供給された分割後のピクチャをデコードする。このとき、#2デコードチップ403は、デコード済みの画素データをバッファ404のビデオバッファ432に供給するとともに、参照画素データをビデオバッファ432から読み出して参照することにより、デコード処理を実行する。
バッファ404は、例えば、DRAMなどにより構成され、ストリームバッファ431およびビデオバッファ432の2つの記憶領域を有し、ストリームバッファ431は#1デコードチップ402および#2デコードチップ403に供給された符号化ストリームを一時保存し、ビデオバッファ432は、#1デコードチップ402においてデコードされたビデオ信号(画素データ)や、#2デコードチップ403においてデコードされたビデオ信号(画素データ)の供給を受けて、一時保存する。
セレクタ79は、#1デコードチップ402および#2デコードチップ403から、デコード済みの画素データの供給を受け、復号ビデオデータとして出力する。
また、復号装置54−6は、必要に応じて、更に、ドライブ80を設けることができる。ドライブ80は、コントローラ401と接続され、装着されるリムーバブルメディア81との情報の授受が可能なようになされている。
次に、#1デコードチップ402の構成および動作について説明する。
ストリーム入力回路91は、符号化された符号化ストリームの入力を受け、バッファ制御回路411に供給する。バッファ制御回路411は、図示しないクロック発生回路から供給される基本クロックに従って、入力された符号化ストリームをストリームバッファ431に入力する。バッファ制御回路411はまた、ストリームバッファ431に保存されている符号化ストリームを、先に書き込まれたデータから順に読み出し、デコーダ93に出力する。
デコーダ93は、入力されたストリームをMPEGシンタックスに基づいて、デコードし、動き補償回路94に供給する。具体的には、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。
動き補償回路94は、デコーダ93から出力されるマクロブロックが動き補償を使用しているか否かを基に、必要に応じて、バッファ制御回路411を介して、ビデオバッファ432からデコード済みの参照画素データを読み込んで動き補償を行い、画素データを、バッファ制御回路411に供給する。
具体的には、デコーダ93から出力されるマクロブロックが動き補償を使用していない場合、動き補償回路94は、その画素データを、バッファ制御回路411を介して、ビデオバッファ432に書き込み、表示出力に備えるとともに、この画素データが、他の画像の参照データとされる場合に備える。
デコーダ93から出力されるマクロブロックが動き補償を使用している場合、動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路411を介して、ビデオバッファ432から参照画素データを読み出す。このとき、参照画素データをビデオバッファ432から読み込むために、動き補償回路94は、バッファ制御回路411に必要とする参照画素の画素位置とその大きさを示す情報を供給する。バッファ制御回路411は、必要とする参照画素の画素位置とその大きさを示す情報を基に、要求されている参照画素をビデオバッファ432から読み込む。ビデオバッファ432は、#1デコードチップ402および#2デコードチップ403からアクセスされるので、データの授受に伴うアドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御が必要となる。そして、動き補償回路94は、読み出した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。動き補償回路94は、動き補償を行った画素データを、バッファ制御回路411を介してビデオバッファ432に書き込み、表示出力に備えるとともに、この画素データが、参照データとされる場合に備える。
バッファ制御回路411はまた、ビデオバッファ432に保存されている画素データを読み出して、表示出力回路97に供給する。表示出力回路97は、デコードした画素データを出力するための同期タイミング信号を発生し、このタイミングを基に、ビデオバッファ432から読み出した画素データを、復号ビデオデータとして出力する。
また、#2デコードチップ403のストリーム入力回路111乃至表示出力回路117およびバッファ制御回路421の機能は、基本的に、#1デコードチップ402のストリーム入力回路91乃至表示出力回路97およびバッファ制御回路411と同一であり、#2デコードチップ403の動作も、基本的に#1デコードチップ402と同一であるので、その詳細な説明は省略する。
すなわち、ストリーム入力回路111は、符号化された符号化ストリームの入力を受け、バッファ制御回路421は、入力された符号化ストリームをストリームバッファ431に入力するとともに、ストリームバッファ431に保存されている符号化ストリームを、先に書き込まれたデータから順に読み出し、デコーダ113に出力する。
デコーダ113は、入力されたストリームをMPEGシンタックスに基づいて、デコードし、動き補償回路114に供給する。動き補償回路114は、デコーダ113から出力されるマクロブロックが動き補償を使用しているか否かを基に、必要に応じて、バッファ制御回路421を介して、ビデオバッファ432からデコード済みの参照画素データを読み込んで動き補償を行い、画素データを、バッファ制御回路421に供給する。このとき、参照画素データをビデオバッファ432から読み込むために、動き補償回路114は、バッファ制御回路421に必要とする参照画素の画素位置とその大きさを示す情報を供給する。バッファ制御回路421は、必要とする参照画素の画素位置とその大きさを示す情報を基に、要求されている参照画素をビデオバッファ432から読み込む。ビデオバッファ432は、#1デコードチップ402および#2デコードチップ403からアクセスされるので、データの授受に伴うアドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御が必要となる。
デコーダ113から出力されるマクロブロックが動き補償を使用している場合、動き補償回路114は、デコーダ113から出力される予測ベクトルに従って、バッファ制御回路421を介して、ビデオバッファ432から参照画素データを読み出し、読み出した参照画素データを、デコーダ113から供給された画素データに加算し、動き補償を行う。動き補償回路114は、動き補償を行った画素データを、バッファ制御回路421を介してビデオバッファ432に書き込み、表示出力に備えるとともに、この画素データが、参照データとされる場合に備える。
バッファ制御回路421はまた、ビデオバッファ432に保存されている画素データを読み出して、表示出力回路117に供給する。表示出力回路117は、バッファ制御回路421を介してビデオバッファ432から読み出された画素データを、復号ビデオデータとして出力する。
次に、図32のフローチャートを参照して、図31の復号装置54-6において実行されるデコード処理4について説明する。
ステップS201において、ストリーム分割部72は、ストリームデータの供給を受ける。
ステップS202において、コントローラ401は、供給されたフレームのピクチャタイプを検出し、#1デコードチップ402および#2デコードチップ403のそれぞれに通知するための制御信号を供給する。
ステップS203において、ストリーム分割部72は、コントローラ401の制御に基づいて供給されたフレームを分割し、#1デコードチップ402および#2デコードチップ403にそれぞれ供給する。
ステップS204において、図33を用いて後述する分割フレームデコード処理4が実行される。
ステップS205において、#1デコードチップ402の表示出力回路97は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路411を介して、ビデオバッファ432にバッファリングされている画像データのうち、次に出力される画像データのデコーダ93においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がaで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。また、#2デコードチップ403の表示出力回路117は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路421を介して、ビデオバッファ432にバッファリングされている画像データのうち、次に出力される画像データのデコーダ113においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がbで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。
ステップS206において、セレクタ79は、#1デコードチップ402および#2デコードチップ403からデコードされた分割フレームの画像データの供給を受け、分割されている画像データが合成されて1フレームとして表示されるように出力し、処理が終了される。
このような処理により、図31を用いて説明した復号装置54-6は、#1デコードチップ402および#2デコードチップ403を用いて1フレームを分割してデコードすることができる。
しかしながら、#1デコードチップ402および#2デコードチップ403においては、バッファが共有されているため、データの授受に伴う複雑なアドレス制御やデータバスを占有するタイミングまたはデータの授受タイミングの制御が必要となり、デコードを遅延なく高速に実行するには、#1デコードチップ402および#2デコードチップ403とバッファ404とのデータの転送速度がある程度早くなければならない。
なお、ここでは、供給されたフレームのピクチャタイプをコントローラ401が検出するものとして説明したが、供給されたフレームのピクチャタイプは、#1デコードチップ402と#2デコードチップ403がそれぞれ検出することができるようにしてもよいことは言うまでもない。
また、ここでは、ストリーム分割部72が、供給された符号化ストリームのフレームを分割するものとして説明したが、#1デコードチップ402と#2デコードチップ403がそれぞれ分割されていないストリームデータの供給を受け、コントローラ401の制御に基づいて、デコード範囲を選択して抽出することができるようにしてもよいことは言うまでもない。
次に、図33のフローチャートを参照して、図32のステップS204において実行される分割フレームデコード処理4について説明する。
ステップS221において、#1デコードチップ402のストリーム入力回路91は、ストリーム分割部72によって分割されたデータの供給を受け、バッファ制御回路411に供給する。バッファ制御回路411は、供給されたデータをストリームバッファ431にバッファリングする。また、#2デコードチップ403のストリーム入力回路111は、ストリーム分割部72によって分割されたデータの供給を受け、バッファ制御回路421に供給する。バッファ制御回路421は、供給されたデータをストリームバッファ431にバッファリングする。
ステップS222において、バッファ制御回路411は、ストリームバッファ431にバッファリングされたデータを読み出してデコーダ93に供給する。また。バッファ制御回路421は、ストリームバッファ431にバッファリングされたデータを読み出してデコーダ113に供給する。
ステップS223において、デコーダ93およびデコーダ113は、コントローラ401から供給される制御信号を基に、供給されたのはIピクチャであるか否かを判断する。ステップS223において、供給されたのはIピクチャではないと判断された場合、処理は、後述するステップS226に進む。
ステップS223において、供給されたのはIピクチャであると判断された場合、ステップS224において、デコーダ93およびデコーダ113は、供給されたそれぞれの符号化データに含まれるマクロブロックをデコードする。
ステップS225において、バッファ制御回路411は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図11のIピクチャの第1の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ432に供給する。また、バッファ制御回路421は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図11のIピクチャの第2の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ432に供給し、処理は、図32のステップS204に戻り、ステップS205に進む。
ステップS223において、供給されたのはIピクチャではないと判断された場合、ステップS226において、デコーダ93およびデコーダ113は、コントローラ401から供給される制御信号を基に、供給されたのはPピクチャであるか否かを判断する。ステップS226において、供給されたのはPピクチャではないと判断された場合、処理は、後述するステップS229に進む。
ステップS226において、供給されたのはPピクチャであると判断された場合、ステップS227において、デコーダ93およびデコーダ113は、参照画素データを用いて、それぞれのマクロブロックをデコードする。具体的には、Pピクチャに含まれるマクロブロックは、動き補償を使用しているので、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路411を介して、ビデオバッファ432から参照画素データを読み出し、読み出した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。また、デコーダ113は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路114に出力する。動き補償回路114は、デコーダ113から出力される予測ベクトルに従って、バッファ制御回路421を介して、ビデオバッファ432から参照画素データを読み出し、読み出した参照画素データを、デコーダ113から供給された画素データに加算し、動き補償を行う。
ステップS228において、バッファ制御回路411は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図13のPピクチャの第1の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ432に供給する。また、バッファ制御回路421は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図13のPピクチャの第2の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ432に供給し、処理は、図32のステップS204に戻り、ステップS205に進む。
ステップS226において、供給されたのはPピクチャではないと判断された場合、ステップS229において、デコーダ93およびデコーダ113は、コントローラ401から供給される制御信号を基に、供給されたのはBピクチャであるか否かを判断する。ステップS229において、供給されたのはBピクチャではないと判断された場合、処理は、ステップS223に戻り、それ以降の処理が繰り返される。
ステップS229において、供給されたのはBピクチャであると判断された場合、ステップS230において、デコーダ93およびデコーダ113は、参照画素データを用いて、それぞれのマクロブロックをデコードする。具体的には、Bピクチャに含まれるマクロブロックは、動き補償を使用しているので、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路411を介して、ビデオバッファ432から参照画素データを読み出し、読み出した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。また、デコーダ113は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路114に出力する。動き補償回路114は、デコーダ113から出力される予測ベクトルに従って、バッファ制御回路421を介して、ビデオバッファ432から参照画素データを読み出す。そして、読み出した参照画素データを、デコーダ113から供給された画素データに加算し、動き補償を行う。
ステップS231において、バッファ制御回路411は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図14のBピクチャの第1の領域に対応する部分の画素データ)を出力用の画像としてビデオバッファ432に供給する。また、バッファ制御回路421は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図14のBピクチャの第2の領域に対応する部分の画素データ)を、出力用の画像としてビデオバッファ432に供給し、処理は、図32のステップS204に戻り、ステップS205に進む。
このような処理により、#1デコードチップ402と#2デコードチップ403とのそれぞれにおいて、コントローラ401により検出されたピクチャタイプに基づいたデコード処理が実行される。また、このとき、#1デコードチップ402と#2デコードチップ403とのそれぞれにおいて、参照画像として用いられる画素データは、同一のビデオバッファ432から読み出して利用することができる。
デコードチップ数が3つであり、それぞれのデコードチップがバッファを共有するようになされている場合の復号装置54−7の構成を、図34に示す。
なお、上述したそれぞれの復号装置54のうちのいずれかと対応する部分には同一の符号を付してあり、その説明は適宜省略する。
復号装置54−7は、ストリーム分割部202、バッファ404、コントローラ451、#1デコードチップ452、#2デコードチップ453、#3デコードチップ454、および、セレクタ209で構成されている。復号装置54−7には、4つ以上のデコードチップを備えるようにしても良いが、ここでは、#1デコードチップ452乃至#3デコードチップ454の3つのデコードチップが備えられているものとして説明する。
コントローラ451は、ユーザの操作入力、または、外部の装置から供給される制御信号、または、ストリーム分割部202から供給された情報を基に、復号装置54−7の動作を制御するものである。
ストリーム分割部202は、コントローラ451の制御に基づいて、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行い、符号化ストリームのそれぞれのピクチャをデコードチップの個数分(ここでは3つ)に分割し、#1デコードチップ452乃至#3デコードチップ454にそれぞれ供給する。
また、ストリーム分割部202は、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行った結果得られる、例えば、ピクチャタイプなどの情報を、コントローラ451に供給する。
なお、ピクチャの分割の方法は、等分割であっても、不等分な分割であっても良い。ストリーム分割部202は、例えば、画像の複雑さを検出する機能を備えるようにして、ピクチャの部分によって画像の複雑さが著しく異なっているような場合、画像の複雑さ(符号化難易度)に基づいて、ピクチャの分割の割合を決定することができるようにしても良い。
#1デコードチップ452は、コントローラ451の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードし、デコード済みの画素データをバッファ404に供給して記憶させ、必要に応じて参照することにより、デコード処理を実行する。
#2デコードチップ453は、コントローラ451の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードし、デコード済みの画素データをバッファ404に供給して記憶させ、必要に応じて参照することにより、デコード処理を実行する。
#3デコードチップ454は、コントローラ451の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードし、デコード済みの画素データをバッファ404に供給して記憶させ、必要に応じて参照することにより、デコード処理を実行する。
バッファ404は、例えば、DRAMなどにより構成され、#1デコードチップ452乃至#3デコードチップ454に供給された符号化ストリーム、#1デコードチップ452乃至#3デコードチップ454においてデコードされた画素データの供給を受けて、これを一時保存する。
セレクタ209は、#1デコードチップ452乃至#3デコードチップ454から、デコード済みの画素データの供給を受け、復号ビデオデータとして出力する。
また、復号装置54−7は、必要に応じて、更に、ドライブ80を設けることができる。ドライブ80は、コントローラ451と接続され、装着されるリムーバブルメディア81との情報の授受が可能なようになされている。
図34に示されるように、#1デコードチップ452乃至#3デコードチップ454の3つのデコードチップを用いてデコード処理が行われる場合においても、図31を用いて説明した復号装置54−6が実行する、図32および図33を用いて説明したデコード処理と基本的に同様の処理が実行される。
また、それぞれのデコードチップにおいてバッファは共有されていない場合であっても、それぞれのデコードチップにおいて、予め他のデコードチップに参照画像を供給するのではなく、デコード処理において自分自身が既にデコードして得た画素データに含まれない領域の参照画像が必要となった場合、他方のデコードチップに参照画像として用いる画像領域の送出を要求することができるようにしてもよい。
次に、図35は、復号装置54の第8の構成例である復号装置54−8の構成を示すブロック図である。復号装置54−8においては、デコード処理において自分自身が既にデコードして得た画素データに含まれない領域の参照画像が必要となった場合、他方のデコードチップに参照画像として用いる画像領域の送出を要求することができるようになされている。
なお、図7を用いて説明した場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
すなわち、図35の復号装置54−8は、コントローラ71に代わってコントローラ501が設けられ、#1デコードチップ73に代わって#1デコードチップ502が設けられ、#2デコードチップ76に代わって#2デコードチップ503が設けられている以外は、基本的に、図7を用いて説明した復号装置54−1と同様の構成を有している。また、例えば、図24を用いて説明したようにして、ストリームバッファ74およびビデオバッファ75を含む#1バッファ302、並びに、ストリームバッファ77およびビデオバッファ78を含む#2バッファ304が設けられ、それぞれのデコードチップにおいて、バッファ制御回路が1つだけ設けられている場合も、その処理は基本的に同一となるので、そのように構成されている復号装置のブロック図およびその処理の詳細な説明は省略する。
また、#1デコードチップ502は、バッファ制御回路95に代わって、バッファ制御回路511が設けられ、チップ間インターフェース96に代わって、チップ間インターフェース512が設けられている以外は、基本的に#1デコードチップ73と同様の構成を有し、#2デコードチップ503は、バッファ制御回路115に代わって、バッファ制御回路521が設けられ、チップ間インターフェース116に代わって、チップ間インターフェース522が設けられている以外は、基本的に#2デコードチップ76と同様の構成を有している。
#1デコードチップ502において、デコーダ93から出力されるマクロブロックが動き補償を使用している場合、動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路511を介して、ビデオバッファ75から参照画素データを読み出すか、または、バッファ制御回路511およびチップ間インターフェース512を介して、#2デコードチップ503に、参照画素データの送出を要求する。
#2デコードチップ503に供給される、参照画素データの送出を要求する信号には、例えば、参照画素データの位置を示す情報やその大きさを示す情報など、送出を要求する参照画素データを指定するための情報が含まれる。
#2デコードチップ503のチップ間インターフェース522は、#1デコードチップ502から供給された参照画像の送出を要求する信号をバッファ制御回路521に供給する。バッファ制御回路521は、要求された参照画像をビデオバッファ78から読み出し、チップ間インターフェース522を介して#1デコードチップ502に供給する。#1デコードチップ502のチップ間インターフェース512は、供給された参照画像をバッファ制御回路511に供給し、バッファ制御回路511は、参照画像として要求された画素データを動き補償回路94に供給する。
そして、動き補償回路94は、供給された参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。動き補償回路94は、動き補償を行った画素データを、バッファ制御回路511を介してビデオバッファ75に書き込み、表示出力に備えるとともに、この画素データが、参照データとされる場合に備える。
また、#2デコードチップ503において、デコーダ113から出力されるマクロブロックが動き補償を使用している場合においても同様にして、動き補償回路114は、バッファ制御回路521およびチップ間インターフェース522を介して、#1デコードチップ502に、参照画素データの送出を要求するようになされている。
次に、図36のフローチャートを参照して、図35の復号装置54−8において実行されるデコード処理5について説明する。
ステップS261において、ストリーム分割部72は、ストリームデータの供給を受ける。
ステップS262において、コントローラ501は、供給されたフレームのピクチャタイプを検出し、#1デコードチップ502および#2デコードチップ503のそれぞれに通知するための制御信号を供給する。
ステップS263において、ストリーム分割部72は、コントローラ501の制御に基づいて供給されたフレームを分割し、#1デコードチップ502および#2デコードチップ503にそれぞれ供給する。
ステップS264において、図37を用いて後述する分割フレームデコード処理5が実行される。
ステップS265において、#1デコードチップ502の表示出力回路97は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路511を介して、ビデオバッファ75にバッファリングされている画像データのうち、次に出力される画像データのデコーダ93においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がaで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。また、#2デコードチップ503の表示出力回路117は、デコードされた画素データにより構成される画像データを出力するための同期タイミング信号を発生し、このタイミングを基に、バッファ制御回路521を介して、ビデオバッファ78にバッファリングされている画像データのうち、次に出力される画像データのデコーダ113においてデコードされた部分(すなわち、図10中、垂直方向の画像範囲がbで示される画像領域)の画像データを読み出し、復号ビデオデータとしてセレクタ79に出力する。
ステップS266において、セレクタ79は、#1デコードチップ502および#2デコードチップ503からデコードされた分割フレームの画像データの供給を受け、分割されている画像データが合成されて1フレームとして表示されるように出力し、処理が終了される。
このような処理により、図35を用いて説明した復号装置54−8は、#1デコードチップ502および#2デコードチップ503を用いて1フレームを分割してデコードすることができる。
なお、ここでは、供給されたフレームのピクチャタイプをコントローラ501が検出するものとして説明したが、供給されたフレームのピクチャタイプは、#1デコードチップ502と#2デコードチップ503がそれぞれ検出することができるようにしてもよいことは言うまでもない。
また、ここでは、ストリーム分割部72が、供給された符号化ストリームのフレームを分割するものとして説明したが、#1デコードチップ502と#2デコードチップ503がそれぞれ分割されていないストリームデータの供給を受け、コントローラ501の制御に基づいて、デコード範囲を選択して抽出することができるようにしてもよいことは言うまでもない。
次に、図37のフローチャートを参照して、図36のステップS264において実行される分割フレームデコード処理5について説明する。
ステップS301において、#1デコードチップ502のストリーム入力回路91は、ストリーム分割部72によって分割されたデータの供給を受け、バッファ制御回路92に供給する。バッファ制御回路92は、供給されたデータをストリームバッファ74にバッファリングする。また、#2デコードチップ503のストリーム入力回路111は、ストリーム分割部72によって分割されたデータの供給を受け、バッファ制御回路112に供給する。バッファ制御回路112は、供給されたデータをストリームバッファ77にバッファリングする。
ステップS302において、バッファ制御回路92は、ストリームバッファ74にバッファリングされたデータを読み出してデコーダ93に供給する。また。バッファ制御回路112は、ストリームバッファ77にバッファリングされたデータを読み出してデコーダ113に供給する。
ステップS303において、デコーダ93およびデコーダ113は、コントローラ501から供給される制御信号を基に、供給されたのはIピクチャであるか否かを判断する。ステップS303において、供給されたのはIピクチャではないと判断された場合、処理は、後述するステップS306に進む。
ステップS303において、供給されたのはIピクチャであると判断された場合、ステップS304において、デコーダ93およびデコーダ113は、供給されたそれぞれの符号化データに含まれるマクロブロックをデコードする。
ステップS305において、バッファ制御回路511は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図11のIピクチャの第1の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ75に供給する。また、バッファ制御回路521は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図11のIピクチャの第2の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ78に供給し、処理は、図36のステップS264に戻り、ステップS265に進む。
ステップS303において、供給されたのはIピクチャではないと判断された場合、ステップS306において、デコーダ93およびデコーダ113は、コントローラ501から供給される制御信号を基に、供給されたのはPピクチャであるか否かを判断する。ステップS306において、供給されたのはPピクチャではないと判断された場合、処理は、後述するステップS309に進む。
ステップS306において、供給されたのはPピクチャであると判断された場合、ステップS307において、デコーダ93およびデコーダ113は、参照画素データを用いて、それぞれのマクロブロックをデコードする。
具体的には、Pピクチャに含まれるマクロブロックは、動き補償を使用しているので、#1デコードチップ502のデコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路511を介して、ビデオバッファ75から参照画素データを読み出すか、バッファ制御回路511およびチップ間インターフェース512を介して、#2デコードチップ503に、ビデオバッファ78に記憶されている参照画素データを要求する。ビデオバッファ78に記憶されている参照画素データを要求する場合、参照画素データを指定するために、画素位置とその大きさを示す情報が、#2デコードチップ503に供給される。
参照画素データを要求された場合、#2デコードチップ503のチップ間インターフェース522は、#1デコードチップ502から供給された参照画像の送出を要求する信号をバッファ制御回路521に供給する。バッファ制御回路521は、要求された参照画像をビデオバッファ78から読み出し、チップ間インターフェース522を介して#1デコードチップ502に供給する。#1デコードチップ502のチップ間インターフェース512は、供給された参照画像をバッファ制御回路511に供給し、バッファ制御回路511は、参照画像として要求された画素データを動き補償回路94に供給する。動き補償回路94は、取得した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。
また、#2デコードチップ503のデコーダ113および動き補償回路114において実行される動き補償においても、上述した場合と同様に、ビデオバッファ78から参照画素を読み出すか、または、#1デコードチップ502に参照画素を要求して、動き補償を行う。
ステップS308において、バッファ制御回路511は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図13のPピクチャの第1の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ75に供給する。また、バッファ制御回路521は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図13のPピクチャの第2の領域に対応する部分の画素データ)を、参照画像および出力用の画像としてビデオバッファ78に供給し、処理は、図36のステップS264に戻り、ステップS265に進む。
ステップS306において、供給されたのはPピクチャではないと判断された場合、ステップS309において、デコーダ93およびデコーダ113は、コントローラ501から供給される制御信号を基に、供給されたのはBピクチャであるか否かを判断する。ステップS309において、供給されたのはBピクチャではないと判断された場合、処理は、ステップS303に戻り、それ以降の処理が繰り返される。
ステップS309において、供給されたのはBピクチャであると判断された場合、ステップS310において、デコーダ93およびデコーダ113は、参照画素データを用いて、それぞれのマクロブロックをデコードする。
具体的には、Bピクチャに含まれるマクロブロックは、動き補償を使用しているので、デコーダ93は、スライス層をマクロブロックに分離してマクロブロックをデコードし、その結果得られる予測ベクトルおよび画素を、動き補償回路94に出力する。動き補償回路94は、デコーダ93から出力される予測ベクトルに従って、バッファ制御回路511を介して、ビデオバッファ75から参照画素データを読み出すか、バッファ制御回路511およびチップ間インターフェース512を介して、#2デコードチップ503に、ビデオバッファ78に記憶されている参照画素データを要求する。ビデオバッファ78に記憶されている参照画素データを要求する場合、参照画素データを指定するために、画素位置とその大きさを示す情報が、#2デコードチップ503に供給される。
参照画素データを要求された場合、#2デコードチップ503のチップ間インターフェース522は、#1デコードチップ502から供給された参照画像の送出を要求する信号をバッファ制御回路521に供給する。バッファ制御回路521は、要求された参照画像をビデオバッファ78から読み出し、チップ間インターフェース522を介して#1デコードチップ502に供給する。#1デコードチップ502のチップ間インターフェース512は、供給された参照画像をバッファ制御回路511に供給し、バッファ制御回路511は、参照画像として要求された画素データを動き補償回路94に供給する。動き補償回路94は、取得した参照画素データを、デコーダ93から供給された画素データに加算し、動き補償を行う。
また、#2デコードチップ503のデコーダ113および動き補償回路114において実行される動き補償においても、上述した場合と同様に、ビデオバッファ78から参照画素を読み出すか、または、#1デコードチップ502に参照画素を要求して、動き補償を行う。
ステップS311において、バッファ制御回路511は、デコーダ93からデコード済みのデータの供給を受け、デコード済みの画素データ(図14のBピクチャの第1の領域に対応する部分の画素データ)を出力用の画像としてビデオバッファ75に供給する。また、バッファ制御回路521は、デコーダ113からデコード済みのデータの供給を受け、デコード済みの画素データ(図14のBピクチャの第2の領域に対応する部分の画素データ)を、出力用の画像としてビデオバッファ78に供給し、処理は、図36のステップS264に戻り、ステップS265に進む。
このような処理により、#1デコードチップ502と#2デコードチップ503とのそれぞれにおいて、コントローラ501により検出されたピクチャタイプに基づいたデコード処理が実行される。また、このとき、#1デコードチップ502と#2デコードチップ503とのそれぞれにおいて、参照画像として用いられる部分の画素データが、自分自身が既にデコードした画素データに含まれていない場合、他のデコードチップに参照画素データを要求して取得することができる。
次に、デコードチップ数が3つであり、それぞれのデコードチップにおいて、参照画像として用いられる部分の画素データを、必要な場合のみ他のデコードチップに要求するようになされている場合の復号装置54−9の構成を、図38に示す。
なお、上述したそれぞれの復号装置54のうちのいずれかと対応する部分には同一の符号を付してあり、その説明は適宜省略する。
復号装置54−9は、コントローラ551、ストリーム分割部202、#1デコードチップ552、第1のバッファ204、#2デコードチップ553、第2のバッファ206、#3デコードチップ554、第3のバッファ208、および、セレクタ209で構成されている。復号装置54−9には、4つ以上のデコードチップを備えるようにしても良いが、ここでは、#1デコードチップ552乃至#3デコードチップ554の3つのデコードチップが備えられているものとして説明する。また、第1のバッファ204乃至第3のバッファ208のそれぞれは、ストリームバッファとビデオバッファを備えている。なお、ストリームバッファとビデオバッファとが個別に設けられるようにしてもよいことは言うまでもない。
コントローラ551は、ユーザの操作入力、または、外部の装置から供給される制御信号、または、ストリーム分割部202から供給された情報を基に、復号装置54−9の動作を制御するものである。
ストリーム分割部202は、コントローラ551の制御に基づいて、供給された符号化ストリームのシーケンス層、GOP層、ピクチャ層のデコードを行い、符号化ストリームのそれぞれのピクチャをデコードチップの個数分(ここでは3つ)に分割し、#1デコードチップ552乃至#3デコードチップ554にそれぞれ供給する。ピクチャの分割の仕方は、例えば、入力ストリームに含まれるピクチャのそれぞれをスライスを単位としてデコードチップの個数分(ここでは3つ)に分割したり、入力ストリームに含まれるピクチャのそれぞれを縦にデコードチップの個数分(ここでは3つ)に分割したり、入力ストリームに含まれるピクチャのそれぞれを、斜めにデコードチップの個数分(ここでは3つ)に分割する(しかしながら、例えば、デコード方式がMPEG2などである場合には、縦や斜めの分割は、スライス単位の分割と比較して困難であるかもしれない)などの方法がある。ストリーム分割部202は、例えば、1枚のピクチャをスライスを単位としてデコードチップの個数分に分割するとき、スライススタートコードを基にして、各フレームを分割することができる。
#1デコードチップ552は、コントローラ551の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードし、デコードされた画素データを第1のバッファ204に供給して記憶させる。このとき、#1デコードチップ552は、参照画素データが第1のバッファ204に蓄積されていない場合、#2デコードチップ553に要求して参照画素を取得することにより、デコード処理を実行する。
第1のバッファ204は、例えば、DRAMなどにより構成され、#1デコードチップ552に供給された符号化ストリーム、#1デコードチップ552においてデコードされたビデオ信号(画素データ)の供給を受けて、これを一時保存する。
#2デコードチップ553は、コントローラ551の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードし、デコードされた画素データを第2のバッファ206に供給して記憶させる。このとき、#2デコードチップ553は、参照画素データが第2のバッファ206に蓄積されていない場合、#1デコードチップ552または#3デコードチップ554に要求して参照画素を取得することにより、デコード処理を実行する。
第2のバッファ206は、例えば、DRAMなどにより構成され、#2デコードチップ553に供給された符号化ストリーム、#2デコードチップ553においてデコードされたビデオ信号(画素データ)の供給を受けて、これを一時保存する。
#3デコードチップ554は、コントローラ551の制御に基づいて、ストリーム分割部202により供給された分割後のピクチャをデコードし、デコードされた画素データを第3のバッファ208に供給して記憶させる。このとき、#3デコードチップ554は、参照画素データが第3のバッファ208に蓄積されていない場合、#2デコードチップ553に要求して参照画素を取得することにより、デコード処理を実行する。
第3のバッファ208は、例えば、DRAMなどにより構成され、#3デコードチップ554に供給された符号化ストリーム、#3デコードチップ554においてデコードされたビデオ信号(画素データ)の供給を受けて、これを一時保存する。
セレクタ209は、#1デコードチップ552乃至#3デコードチップ554から、デコード済みの画素データの供給を受け、復号ビデオデータとして出力する。
また、復号装置54−9は、必要に応じて、更に、ドライブ80を設けることができる。ドライブ80は、コントローラ551と接続され、装着されるリムーバブルメディア81との情報の授受が可能なようになされている。
図38に示されるように、#1デコードチップ552乃至#3デコードチップ554の3つのデコードチップを用いてデコード処理が行われる場合においても、図35乃至図37を用いて説明した2つのデコードチップを用いたデコード処理と基本的に同様の処理が実行される。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
この記録媒体は、図7、図21、図24、図25、図28、図31、図34、図35、または、図38に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory)),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア81などにより構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
54 復号装置, 71 コントローラ,72 ストリーム分割部, 73 #1デコードチップ, 75 ビデオバッファ, 76 #2デコードチップ, 78 ビデオバッファ, 79 セレクタ, 96 チップ間インターフェース, 116 チップ間インターフェース,201 コントローラ,202 ストリーム分割部, 203 #1デコードチップ, 204 第1のバッファ, 205 #2デコードチップ, 206 第2のバッファ, 207 #3デコードチップ, 208 第3のバッファ, 299 セレクタ, 351 コントローラ, 352 #1デコードチップ, 353 #2デコードチップ, 381 コントローラ, 382 #1デコードチップ, 383 #2デコードチップ
Claims (13)
- 符号化ストリームを復号して出力する画像処理素子において、
前記符号化ストリームを構成する各フレームの所定の領域を復号する復号手段と、
自分自身の復号処理の結果得られた画素データのうち、他の画像処理素子の復号処理に必要な画素データを前記他の画像処理素子に供給するとともに、前記他の画像処理素子において実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データを前記他の画像処理素子から取得する画素データ授受手段と
を備え、
前記復号手段は、自分自身の復号処理の結果得られた画素データ、および、前記画素データ授受手段により前記他の画像処理素子から取得した画素データを参照することにより復号処理を実行する
画像処理素子。 - 前記復号手段による復号処理の結果得られた画素データ、または、前記画素データ授受手段により前記他の画像処理素子から取得した画素データの記憶部への記憶を制御する記憶制御手段を更に備え、
前記復号手段は、前記記憶制御手段により前記記憶部への記憶が制御された画素データを参照することにより復号処理を実行する
請求項1に記載の画像処理素子。 - 前記他の画像処理素子の復号処理に必要な画素データは、前記フレームにおいて、前記他の画像処理素子により復号される他の所定の領域に含まれる動き補償の基準領域に対する動きベクトルの探索範囲に含まれる画素データであり、
前記復号手段の復号処理に必要な画素データは、前記フレームにおいて、前記復号手段が復号する前記所定の領域に含まれる動き補償の基準領域に対する動きベクトルの探索範囲に含まれる画素データである
請求項1に記載の画像処理装置。 - 前記符号化ストリームの入力を受ける符号化ストリーム入力手段を更に備え、
前記符号化ストリーム入力手段は、前記符号化ストリームを構成するそれぞれのピクチャのピクチャタイプを検出し、
前記復号手段は、検出された前記ピクチャタイプに基づいて復号処理を実行する
請求項1に記載の画像処理素子。 - 前記復号手段は、外部より前記符号化ストリームを構成するそれぞれのピクチャのピクチャタイプの通知を受け、前記ピクチャタイプに基づいて復号処理を実行する
請求項1に記載の画像処理素子。 - 前記符号化ストリームの入力を受ける符号化ストリーム入力手段を更に備え、
前記符号化ストリーム入力手段は、前記符号化ストリームを構成する各フレームの所定の領域のデータを取得し、
前記復号手段は、符号化ストリーム入力手段により入力された前記所定の領域のデータを復号する
請求項1に記載の画像処理素子。 - 前記所定の領域は、前記符号化ストリームを構成するフレームを、スライスを単位として分割した場合のいずれかの領域である
請求項6に記載の画像処理素子。 - 前記符号化ストリームの入力を受ける符号化ストリーム入力手段を更に備え、
前記符号化ストリーム入力手段は、前記符号化ストリームを構成する各フレームの供給を受け、前記フレームから前記所定の領域を抽出し、
前記復号手段は、符号化ストリーム入力手段により抽出された前記所定の領域のデータを復号する
請求項1に記載の画像処理素子。 - 前記所定の領域は、前記符号化ストリームを構成するフレームを、スライスを単位として分割した場合のいずれかの領域である
請求項8に記載の画像処理素子。 - 前記復号手段は、他の画像処理素子の復号処理に必要な画素データを優先して復号する
請求項1に記載の画像処理素子。 - 符号化ストリームを復号して出力する画像処理素子の画像処理方法において、
前記符号化ストリームを構成する各フレームの所定の領域を復号する復号ステップと、
自分自身の復号処理の結果得られた画素データのうち、他の画像処理素子の復号処理に必要な画素データを前記他の画像処理素子に供給する画素データ供給ステップと、
前記他の画像処理素子において実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データを前記他の画像処理素子から取得する画素データ取得ステップと
を含み、
前記復号ステップの処理では、フレーム間参照符号化されたフレームの前記所定の領域を復号する場合、自分自身の復号ステップにおける処理の結果得られた画素データ、および、前記画像データ取得ステップの処理により取得された画素データを参照することにより復号処理を実行する
画像処理方法。 - 符号化ストリームを復号して出力する処理をコンピュータに実行させるためのプログラムであって、
前記符号化ストリームを構成する各フレームの所定の領域を復号する復号ステップと、
自分自身の復号処理の結果得られた画素データのうち、他のコンピュータの制御により実行される復号処理に必要な画素データの供給を制御する画素データ供給制御ステップと、
前記他のコンピュータの制御により実行された復号処理の結果得られた画素データのうち、自分自身の復号処理に必要な画素データの取得を制御する画素データ取得制御ステップと
を含み、
前記復号ステップの処理では、フレーム間参照符号化されたフレームの前記所定の領域を復号する場合、自分自身の復号ステップにおける処理の結果得られた画素データ、および、前記画像データ取得制御ステップの処理により取得が制御された画素データを参照することにより復号処理を実行する
処理をコンピュータに実行させるプログラム。 - 請求項12に記載のプログラムが記録されている記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005245743A JP2007060488A (ja) | 2005-08-26 | 2005-08-26 | 画像処理素子および画像処理方法、記録媒体、並びに、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005245743A JP2007060488A (ja) | 2005-08-26 | 2005-08-26 | 画像処理素子および画像処理方法、記録媒体、並びに、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007060488A true JP2007060488A (ja) | 2007-03-08 |
Family
ID=37923533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005245743A Pending JP2007060488A (ja) | 2005-08-26 | 2005-08-26 | 画像処理素子および画像処理方法、記録媒体、並びに、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007060488A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009111712A (ja) * | 2007-10-30 | 2009-05-21 | Canon Inc | 映像符号化装置及び方法 |
JP2009296169A (ja) * | 2008-06-03 | 2009-12-17 | Fujitsu Ltd | 動画像復号装置および符号化装置 |
WO2012035728A1 (ja) * | 2010-09-16 | 2012-03-22 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
US8184700B2 (en) | 2007-07-30 | 2012-05-22 | Hitachi, Ltd. | Image decoder |
US8565315B2 (en) | 2007-11-16 | 2013-10-22 | Panasonic Corporation | Image decoding device and image decoding method |
WO2019039012A1 (ja) * | 2017-08-23 | 2019-02-28 | ソニーセミコンダクタソリューションズ株式会社 | 画像処理装置、及び画像処理方法 |
CN113660459A (zh) * | 2021-08-02 | 2021-11-16 | 西安万像电子科技有限公司 | 图像数据的传输方法、装置、存储介质以及处理器 |
-
2005
- 2005-08-26 JP JP2005245743A patent/JP2007060488A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8184700B2 (en) | 2007-07-30 | 2012-05-22 | Hitachi, Ltd. | Image decoder |
JP2009111712A (ja) * | 2007-10-30 | 2009-05-21 | Canon Inc | 映像符号化装置及び方法 |
US8565315B2 (en) | 2007-11-16 | 2013-10-22 | Panasonic Corporation | Image decoding device and image decoding method |
JP2009296169A (ja) * | 2008-06-03 | 2009-12-17 | Fujitsu Ltd | 動画像復号装置および符号化装置 |
JPWO2012035728A1 (ja) * | 2010-09-16 | 2014-01-20 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
CN103098474A (zh) * | 2010-09-16 | 2013-05-08 | 松下电器产业株式会社 | 图像解码装置、图像编码装置、及其方法、程序、集成电路以及代码转换装置 |
WO2012035728A1 (ja) * | 2010-09-16 | 2012-03-22 | パナソニック株式会社 | 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置 |
US8982964B2 (en) | 2010-09-16 | 2015-03-17 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device |
US9185406B2 (en) | 2010-09-16 | 2015-11-10 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device |
CN103098474B (zh) * | 2010-09-16 | 2016-03-02 | 松下电器产业株式会社 | 图像解码装置、图像编码装置、及其方法、集成电路以及代码转换装置 |
WO2019039012A1 (ja) * | 2017-08-23 | 2019-02-28 | ソニーセミコンダクタソリューションズ株式会社 | 画像処理装置、及び画像処理方法 |
US11212529B2 (en) | 2017-08-23 | 2021-12-28 | Sony Semiconductor Solutions Corporation | Image processing apparatus and image processing method |
CN113660459A (zh) * | 2021-08-02 | 2021-11-16 | 西安万像电子科技有限公司 | 图像数据的传输方法、装置、存储介质以及处理器 |
CN113660459B (zh) * | 2021-08-02 | 2023-11-14 | 西安万像电子科技有限公司 | 图像数据的传输方法、装置、存储介质以及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4534910B2 (ja) | 画像処理装置および画像処理方法、記録媒体、並びに、プログラム | |
US7333545B2 (en) | Digital video decoding, buffering and frame-rate converting method and apparatus | |
US8982964B2 (en) | Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device | |
US8184690B2 (en) | Image processing apparatus and image processing method | |
US8184700B2 (en) | Image decoder | |
US20040252970A1 (en) | Apparatus and method for controlling reverse-play for digital video bitstream | |
JP2007060488A (ja) | 画像処理素子および画像処理方法、記録媒体、並びに、プログラム | |
JP2002359848A (ja) | 画像処理装置 | |
JPH0818953A (ja) | 動画像復号表示装置 | |
US7245821B2 (en) | Image processing using shared frame memory | |
JPH08305860A (ja) | 画像復号表示装置 | |
JP2009111932A (ja) | 動画像復号化装置 | |
JP4218626B2 (ja) | 復号化装置、復号化方法および復号化プログラム、再生システム、再生装置、再生方法および再生プログラム、ならびに、記録媒体 | |
JP2008085617A (ja) | 画像処理装置および画像処理方法、記録媒体、並びに、プログラム | |
US6128340A (en) | Decoder system with 2.53 frame display buffer | |
JP2863096B2 (ja) | 並列処理による画像復号装置 | |
WO2000059218A1 (en) | Digital video decoding, buffering and frame-rate converting method and apparatus | |
JP4906197B2 (ja) | 復号装置および方法、並びに記録媒体 | |
JPH10327416A (ja) | 動画像符号化装置 | |
US20150245060A1 (en) | Encoding apparatus, encoding method, and a computer-readable recording medium | |
JP3191439B2 (ja) | 符号化画像信号切換装置 | |
JP2003052020A (ja) | 画像処理方法とこの方法を利用可能な画像処理装置およびテレビジョン受像機 | |
JP2005236386A (ja) | 画像処理装置 | |
JP2000032395A (ja) | 復号化方法 | |
KR100425136B1 (ko) | 비디오 디코딩 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090127 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090526 |