(57)【要約】【課題】低遅延で、配線の数が少ない画像符号化装置、及び、画像復号装置を提供する。【解決手段】画像符号化処理部が４つ設けられている場合、各画像符号化処理部には、１ピクチャのマクロブロックを２次元的に配列した場合のラスタスキャンの方向とは異なる方向に、１ピクチャを４つに分割した、それぞれの領域を割り当てる。それぞれの領域の左端あるいは右端のマクロブロックを処理する場合には、隣の領域を担当する画像符号化処理部が必要なマクロブロックの処理を終えるのを待って、隣接するマクロブロックのデータを使用して、目的のマクロブロックを処理する。【選択図】図１
2010041235.tif 000002
【特許請求の範囲】
【請求項１】
画像データをブロック単位で符号化する画像符号化装置において、
前記画像データを分割して格納する複数の格納手段と、
画像符号化処理を行う複数の画像符号化手段と、
該複数の格納手段と該複数の画像符号化手段とを接続する接続手段と、
前記画像データを２次元配列と見た場合に、ブロック単位の画像符号化の進行する方向とは異なった方向に、前記画像データを前記画像符号化手段の数だけ分割し、それぞれ分割された前記画像データを前記複数の画像符号化手段に割り当てて、各画像符号化手段に並列に画像符号化処理を行わせる制御手段と、
を備えることを特徴とする画像符号化装置。
【請求項２】
処理対象の画像データの単位ブロックの隣接単位ブロックの情報を格納する隣接単位ブロック情報格納手段を更に備え、
前記画像符号化手段は、該処理対象の単位ブロックの処理を、処理に必要な隣接単位ブロックの情報が揃ってから開始することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記画像符号化処理の進行する方向は、ラスタスキャンの方向であることを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
画像データを復号する画像復号装置において、
可変長符号化された画像データを可変長復号する可変長復号手段と、
前記可変長復号された前記画像データにブロック単位で画像復号処理を施す複数の画像復号手段と、
前記画像復号処理された前記画像データを分割して格納する複数の格納手段と、
該複数の格納手段と該複数の画像復号手段とを接続する接続手段と、
画像データを２次元配列と見た場合に、ブロック単位で行う画像復号処理の進行する方向とは異なった方向に、前記画像データを前記画像復号手段の数だけ分割し、それぞれ分割された画像データを前記複数の画像復号手段に割り当てて、各画像復号手段に並列に画像復号処理を行わせる制御手段と、
を備えることを特徴とする画像復号装置。
【請求項５】
処理対象の画像データの単位ブロックの隣接単位ブロックの情報を格納する隣接単位ブロック情報格納手段を更に備え、
前記画像復号手段は、該処理対象の単位ブロックの処理を、処理に必要な隣接単位ブロックの情報が揃ってから開始することを特徴とする請求項４に記載の画像復号装置。
【請求項６】
前記画像復号処理の進行する方向は、ラスタスキャンの方向であることを特徴とする請求項４に記載の画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、MPEGやH.264などの画像圧縮規格に従った符号化装置および復号装置に関する。
【背景技術】
【０００２】
ハイビジョン放送、大容量光ディスクなどの普及により、HD(High Definition)TV画像(1920x1080)を扱うことが一般的になってきている。今後、更に大画面のUHD(Ultra High Definition)TV画像(7680x4320、3840x2160)を使用することが検討されており、MPEGのデコード・エンコード装置の更なる処理性能向上が望まれている。処理性能の向上には、「動作周波数の向上」、「処理の並列化」などが考えられるが、動作周波数の向上には、半導体プロセス技術の向上、高速動作可能な回路などが必要である。一方、処理の並列化に関しては、MPEGのデコード処理では、フレーム(ピクチャ)間の予測処理および可変長復号化処理が必要なため、符号圧縮されたビットストリームを前から順番に処理していく必要があり、単純な処理の並列化は難しく、並列化には様々な工夫が行なわれてきた。
【０００３】
従来技術の並列化手法としては、(1)動きベクトル範囲を考慮して、分割単位の処理開始タイミングをフレーム間予測で必要となる参照画領域の処理が完了した後になるように制御して、フレーム間での並列化を行う手法（特許文献１）、(2) MPEG2におけるスライスなど、フレーム内でのデータの独立性を利用したスライス単位でのフレーム内での並列化を行う手法（特許文献２）、(3)各マクロブロックが必要とする隣接マクロブロックの処理完了後にマクロブロック処理を開始させるように制御することで、処理をマクロブロックラインの単位でフレーム内での並列化を行う手法（特許文献３）、などが提案されている。
【０００４】
(1)のフレーム間予測の依存関係を守るように制御し、フレーム間での並列化を行う手法は、UHDTV画像などの大画面に適用しようとした場合、次のような課題がある。この手法では並列処理を行うデコーダ/エンコーダの数が増える毎に入力から出力までの処理遅延が増大する。UHDTVのような大画面を扱うようなH.264デコーダ/エンコーダでは、必要な処理能力の増加のため、必要なデコード/エンコード処理ブロックの数が増えるので、処理遅延も増大する問題があった。
【０００５】
図２１〜図２３は、従来のフレーム間予測の依存関係を守るように制御し、フレーム間での並列化を行う手法の説明図である。
図２１は、コアとメモリの画面分割と担当領域、図２２は動作タイミング、図２３はブロック構成を示す。
【０００６】
図２１〜図２３は、4つのデコード処理ブロックと4つのメモリモジュールを使用した場合の構成例である。
図２１に示されるように、２１６０画素ラインある画面の縦方向を４分割する。１マクロブロックラインは、１６画素ラインからなっており、Memory0は、マクロブロックライン０〜３３を、Memory1は、マクロブロックライン３４〜６７、Memory2は、マクロブロックライン６８〜１０１、Memory3は、マクロブロックライン１０２〜１３４を分担して格納する。
【０００７】
図２２のように、各Decoder Coreは、１ピクチャ全体の処理を担当する。Decoder Core0は、Ｉ０ピクチャを担当し、最初の６０分の１秒でＩ０ピクチャのマクロライン０〜３３を処理する。この処理が終わると、Ｐ３ピクチャを担当するDecoder Core1がＰ３ピクチャのマクロブロックライン０〜３３の処理を開始し、６０分の１秒でマクロブロックライン３３までの処理を行う。その後、Ｂ１ピクチャを担当するDecoder Core2がＢ１ピクチャのマクロブロックライン０〜３３の処理を開始し、６０分の１秒後にマクロブロックライン３３の処理が終わると、Ｂ２ピクチャを担当するDecoder Core3がＢ２ピクチャのマクロブロックライン０〜３３の処理を開始する。このように、各Decoder Coreは、６０分の１秒ずつ遅れながら、各ピクチャの処理を開始し、以後、並列に処理を行うようにする。
【０００８】
図２３において、Decoder Coreは、４つ設けられており、Memoryも４つ設けられている。そして、この間の信号ラインを切り替えるためのスイッチ１０が設けられる。
このような構成において、各Decoder Core（デコード処理ブロック）は、割り当てられたフレーム処理を担当しており、その処理時間は1フレーム時間の４倍である。要求画像サイズ、フレームレートによってはさらに多くのエンコーダ・デコーダが必要となり、処理遅延は並列度に比例する。エンコーダ・デコーダが利用される分野(放送の分野の放送局と中継現場との間の通信など)によってはこのような大きな遅延は到底許されるものではない。
【０００９】
図２４〜図２６は、従来のスライス単位でフレーム内の並列化を行う手法の説明図である。
図２４は、Decoder Core担当領域、図２５は、動作タイミング、図２６は、ブロック構成を示す。
【００１０】
図２４において、Decoder Coreは、２つ設けられ、それぞれ、マクロブロックライン０〜３３と、マクロブロックライン３４〜６７を担当する。Memoryは、３つ設けられ、それぞれ、マクロブロックライン０〜２３と、マクロブロックライン２４〜４３と、マクロブロックライン４４〜６７を担当する。
【００１１】
図２５のように、Decoder Core0は、各ピクチャのマクロブロックライン０〜３３を常に担当し、Decoder Core1は、各ピクチャのマクロブロックライン３４〜６７を常に担当する。Decoder Core0と1の動作開始タイミングは同時であり、３０分の１秒の間に、それぞれの担当マクロブロックラインを処理する。
【００１２】
図２６において、Decoder Coreは、２つ設けられており、Memoryは、３つ設けられている。Decoder CoreとMemory間の信号ラインを切り替えるため、スイッチ１１−１〜１１−３が設けられている。
【００１３】
本手法は、MPEG2規格がマクロブロックライン毎にスライスヘッダと呼ばれるユニークコードが存在することを利用している。この手法では、Decoder Coreの処理開始タイミングが同時なので、１フレームのエンコード・デコード処理時間は１フレーム時間と同じになり、(1)の手法のような問題は発生しない。しかし別の問題が存在する。H.264などの近年の画像圧縮規格では、フレーム内でそのようなユニークコードは必ずしも存在せず、またデコード処理において、隣接上方のマクロブロックとの依存関係がある。そのため、スライスレベル相当の並列化処理を行うことはできず、H.264に代表される近年の画像圧縮規格には適用できない。
【００１４】
上記双方の問題を解決したのが、(3)のマクロブロックの隣接情報参照の依存関係を守るように制御し、マクロブロックライン間での並列化を行う手法である。本手法は、H.264を含めた近年の画像圧縮規格にも使用可能であるが、UHDTV画像などの大画面に適用しようとした場合、次のような課題がある。UHDTVのような大画面を扱うようなH.264デコーダ/エンコーダでは、必要な処理能力の増加のため、必要なデコード/エンコード処理ブロックの数が増え、また、画像を格納するメモリモジュールに関しても、必要なメモリ容量およびメモリモジュールとデコード/エンコード処理ブロック間の帯域確保のため、メモリモジュールも複数必要となる。
【００１５】
図２７〜図２９は、従来のマクロブロックの隣接情報参照の依存関係を守るように制御し、マクロブロックライン間での並列化を行う手法の説明図である。
図２７は、Decoder CoreとMemoryの画面分割と担当領域、図２８は動作タイミング、図２９はブロック構成を示す。
【００１６】
図２７〜２９は、4つのデコード処理ブロックと4つのメモリモジュールを使用した場合の構成例である。
図２７に示されるように、４つのMemoryは、マクロブロックライン０〜３３、マクロブロックライン３４〜６７、マクロブロックライン６８〜１０１、マクロブロックライン１０２〜１３４をそれぞれ担当する。４つのDecoder Coreは、それぞれ４マクロブロックライン飛ばしで各マクロブロックラインの処理を担当する。図２７においては、Decoder Core3の担当マクロブロックラインが網掛けされて示されている。
【００１７】
図２８に示されるように、各Decoder Coreは、自分の担当マクロブロックラインの処理を、MBが参照するMBの処理が上方MBを担当するDecode Coreによって処理が完了してから開始する。1ピクチャの処理時間は、６０分の１秒である。各Decoder Coreは、すべてのピクチャの処理において、決められたマクロブロックラインの処理を固定的に担当する。
【００１８】
図２９に示されるように、４つのDecoder Coreと４つのMemoryが設けられ、これらの間の信号ラインの切り替えのために、スイッチ１２が設けられる。
このような構成において、各デコード処理ブロックは、割り当てられたマクロブロックライン処理を担当しており、各メモリにはフレームを4分割したそれぞれの領域を格納しているために、4つのメモリモジュール全てにアクセスする必要がある。そのため、デコード処理ブロックとメモリモジュールの間に4対4の接続が必要となり、メモリバス構成が複雑化・肥大化するといった課題があった。ここでは簡単にするために水平線によって４分割した領域のそれぞれをフレームのメモリへ割り当てたが、この問題はどのような割り当てを行っても発生する。また、この課題は(1)の手法にも存在していた。
【特許文献１】特開２００６−１４１１３号公報
【特許文献２】特許第２８６３０９６号明細書
【特許文献３】特開２００８−６７０２６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
したがって、複数のデコード/エンコード処理ブロックおよび複数のメモリモジュールを使用するMPEG、H.264などのフレーム間予測を使用した画像圧縮規格のデコーダ/エンコーダ装置において
・処理遅延の増大を避け、低遅延を必要とする用途においても適用可能とすること
・デコード/エンコード処理ブロックとメモリモジュール間のメモリバス構成の複雑化・肥大化と、回路規模/レイアウト難度を低減すること
を実現する必要がある。
【００２０】
本発明の課題は、低遅延で、配線の数が少ない画像符号化装置、及び、画像復号装置を提供することである。
【課題を解決するための手段】
【００２１】
本発明の画像符号化装置は、画像データをブロック単位で符号化する画像符号化装置に
おいて、画像データを分割して格納する複数の格納手段と、画像符号化処理を行う複数の画像符号化手段と、該複数の格納手段と該複数の画像符号化手段を、該画像符号化手段がアクセスする必要のある該格納手段と接続する接続手段と、画像データを２次元配列と見た場合に、ブロック単位の画像符号化の進行する方向とは異なった方向に、画像データを前記画像符号化手段の数だけ分割し、それぞれ分割された画像データを前記複数の画像符号化手段に割り当てて、各画像符号化手段に並列に画像符号化処理を行わせる制御手段とを備える。
【００２２】
本発明の画像復号装置は、画像データを復号する画像復号装置において、可変長符号化された画像データを可変長復号する可変長復号手段と、可変長復号された画像データにブロック単位で画像復号処理を施す複数の画像復号手段と、画像復号処理された画像データを分割して格納する複数の格納手段と、該複数の格納手段と該複数の画像復号手段を、該画像復号手段がアクセスする必要のある該格納手段と接続する接続手段と、画像データを２次元配列と見た場合に、ブロック単位で行う画像復号処理の進行する方向とは異なった方向に、画像データを前記画像復号手段の数だけ分割し、それぞれ分割された画像データを前記複数の画像復号手段に割り当てて、各画像復号手段に並列に画像復号処理を行わせる制御手段とを備える。
【発明の効果】
【００２３】
本発明によれば、低遅延で、配線の数が少ない画像符号化装置、及び、画像復号装置を提供される。
【発明を実施するための最良の形態】
【００２４】
本実施形態では、UHDTV画像などの大画面のデコード・エンコードなど、高い処理能力が要求される装置において、複数のデコード・エンコード処理ブロックおよび複数のメモリモジュールを使用する場合の、並列処理構成を示す。
【００２５】
本実施形態では、動画像符号化装置を、以下のようなものとする。
・画像をブロックに分割して処理を行う動画像符号化方式に対応している。
・以下の物を有する
（１）1つ以上の可変長符号化部
（２）複数の画像符号化処理部
（３）（２）の出力するローカル復号画像を格納する複数のメモリモジュール
（４）画像符号化処理部とメモリモジュール間に存在するデータセレクト機能。
・各画像符号化処理部はピクチャを垂直線（ピクチャデータを２次元に配列した場合のラスタスキャンの方向あるいはマクロブロックの処理順の方向とは異なる方向）によって分割された領域の符号化処理を担当し、１ピクチャを同時に並列処理する。
【００２６】
画像符号化処理部とメモリモジュールの物理的な構成として、全ての画像符号化処理部が1つのLSIに配置されるという構成も、複数のLSIに分割して配置されるという構成もある。また、メモリモジュールが外付けのメモリである構成も、On-Chipのメモリ(Embedded DRAMなど)である構成もある。符号化中間データを格納するバッファ-はLSIの内部バッファとして配置しても良いし、LSIに外付けするメモリの位置領域として配置しても良い。
【００２７】
画像符号化処理部間で隣接マクロブロック情報を渡すための手段を有する。
隣接マクロブロック情報を格納する手段としては、LSI内の内部メモリとして配置してもよいし、LSIに外付けするメモリの一領域として配置してもよい。また、隣接する画像符号化処理部間に一つずつ、(画像符号化処理部数-1)個配置しても良いし、符号化装置全体の隣接マクロブロック情報を管理するものを一つ配置しても良い。
【００２８】
画像符号化処理部の出力する符号化中間データを格納するためのバッファとそのデータ管理機能を有し、このデータ管理機能はバッファ内の符号化中間データのピクチャ内の領域ごとの格納位置を示すポインタを記録する機能を有し、可変長符号化処理部のそれぞれに符号化中間データを振り分けて入力する。
【００２９】
中間データバッファは、LSI内の内部バッファとして配置してもよいし、LSIに外付けするメモリの一領域として配置してもよい。
各画像符号化処理部は、符号化処理中のマクロブロックのピクチャ内位置情報を通知する手段を有するとともに、制御部からの指示によりマクロブロック符号化処理の待機、再開の制御を行う。
【００３０】
制御部は、各画像符号化処理部から通知されるピクチャ内位置情報から、あるマクロブロックの処理開始が、そのマクロブロックが必要な隣接情報を出力するマクロブロックの処理完了後になるように制御する。このとき、各画像符号化処理部の待機、再開の単位は必ずしもマクロブロック単位である必要はなく、より大きな単位、例えば、５マクロブロック単位での待機、再開でも良い。
【００３１】
画像符号化処理部とメモリモジュールの間にメモリアクセス振り分け部を有し、前記メモリアクセス振り分け部は、画像符号化処理部からのアクセスをメモリマップにしたがって、複数のメモリモジュールのいずれか、もしくは両方に振り分ける機能を有する 。
【００３２】
複数の画像符号化処理部が物理的に複数のモジュールに分かれて配置されている場合、モジュール間で画像データおよび、隣接マクロブロック情報、符号化中間データ、マクロブロック符号化位置情報のうちいずれかのデータの受け渡しを行う機能を有する。
【００３３】
動画像復号装置を、以下のようなものとする。
・画像をブロックに分割して処理を行う動画像符号化方式に対応している。
・以下の物を有する。
【００３４】
（１）1つ以上の可変長復号部
（２）複数の画像復号処理部
（３）（２）の出力する復号画像を格納する複数のメモリモジュール
（４）画像復号処理部とメモリモジュール間に存在するデータセレクト機能
・各画像復号処理部は、ピクチャを垂直線（ピクチャデータを２次元に配列した場合のラスタスキャンの方向あるいはマクロブロックの処理順の方向とは異なる方向）によって分割された領域の復号処理を担当し、１ピクチャを同時に並列処理する。
【００３５】
また、以上のような符号化装置に対応した復号装置も提供する。復号装置の構成は、データの処理の順序が異なるのみで、装置構成の基本は符号化装置と同じである。
H.264/VC-1等のマクロブロック処理では、左、左上、上、右上に隣接するマクロブロックの情報が必要なので、これらの隣接マクロブロックの処理が完了してから、マクロブロック処理を開始することが必要である。
【００３６】
特開2008-67026号公報では、画面をマクロブロックライン単位に分割し、それぞれに別の画像符号化処理部を割り当てることで、隣接情報の依存関係を守ったまま画面内での並列処理を行っていた。本実施形態も同様に隣接情報の依存関係を保ったまま画面内の並列化処理を提供するものであるが、各画像符号化処理部が担当する処理領域が異なる。
【００３７】
図１及び図２は、本発明の実施形態の動作を説明する図である。
図１（ａ）において、例えば、画像符号化処理部１のマクロブロックライン１の処理について考える。左端マクロブロックの左隣接、左上隣接マクロブロックは画像符号化処理部０の処理範囲であるが、画像符号化処理部０のマクロブロックライン１の処理を完了してからであれば、これらの隣接マクロブロックの処理は完了している。また、右端マクロブロックの右上マクロブロックは画像符号化処理部２の処理範囲であるが、画像符号化処理部２のマクロブロックライン０の左端マクロブロックの処理完了後であれば、この隣接マクロブロック処理は完了している。その他の隣接マクロブロックは自分（画像符号化処理部１）の処理範囲内となり、画像符号化処理部１は処理範囲内を規格に定められたマクロブロック順序で処理しているので、必要な隣接マクロブロックの処理は完了している。したがって、隣接マクロブロックの処理が完了していれば、処理対象のマクロブロックの処理を開始できる。図１（ｂ）に示すように、画像符号化処理部０〜３は、それぞれ、処理が可能になった順に、自分の担当範囲のマクロブロックを処理する。
【００３８】
一般的な動画像符号化方式では動きベクトルの最大値が定められている。画像符号化処理部０は画像の左から1/4の領域を処理範囲としているので、この領域内のマクロブロックの符号化処理で参照されるローカルデコード画像の領域はこの画像左1/4範囲に動きベクトルの水平方向の最大値幅の領域を合わせた領域となる（図２）。水平方向動きベクトル最大値は規格で定められた値以下であるが、現実のエンコーダではより小さな範囲での動き予測処理が行われることが多く、参照されるローカルデコード画像の領域は、隣の画像符号化処理部の処理担当領域にとどまることが多い。
【００３９】
図３は、デブロッキングフィルタ処理について説明する図である。
また、Writeアクセスに関してはH.264におけるデブロッキングフィルタ処理のために自処理の左側の領域への書き込みが必要となる。図３は、デブロッキングフィルタ処理での左側書き込み領域を示す。デブロッキングフィルタ処理では、ブロック境界にフィルタ処理を行うために、処理マクロブロックの隣接画素のRead/Write処理が必要となる。左隣接について注目すると、H.264規格では、デブロッキングフィルタ処理によって左隣接3画素のデータが変化する可能性があるので、左隣接3画素のライト処理が必要となる。
【００４０】
図４及び図５に、従来手法と本発明手法での画像符号化処理部と各メモリモジュール(Memory)の間の接続パス数の比較を示す。
ここで、各画像符号化処理部と各Memoryが担当する処理領域(符号化担当領域と格納領域)は1対1に対応しており、各画像符号化処理部の担当符号化領域が必要とする参照画領域は、対応するMemoryとその前後のMemoryに格納されているものとする(すなわち、最大ベクトル範囲が1Memory格納領域の範囲を超えない)。画像符号化処理部4/Memory4、画像符号化処理部8/Memory8の構成で接続パス数は、従来方法と本実施形態について、それぞれ表のようになっている。
【００４１】
【表１】
2010041235.tif 000003
図６に、各マクロブロックが符号化処理に必要とする隣接マクロブロック情報の位置関係を示す。
【００４２】
例えば、H.264ではあるマクロブロックを処理する際に、その隣接A(左),B(上),C(右上),D(左上)の情報が必要となる。ここで隣接マクロブロック情報には、各マクロブロックでのマクロブロックタイプ情報、動きベクトル情報、画素値などがある。
【００４３】
ある画像符号化処理部の処理領域左端のマクロブロックでは左、左上マクロブロックの隣接情報を使用するので、左領域を処理している画像符号化処理部からこれを受け取る必要がある。また、処理領域右端のマクロブロックでは右上隣接マクロブロック情報を使用するので、右領域を処理している画像符号化処理部からこれを受け取る必要がある。
【００４４】
図７及び図８に、隣接マクロブロック情報メモリの例を示す。
この例では、図７に示すように隣接マクロブロックメモリは２つの画像符号化処理部の間に一つずつ配置されている。画像符号化処理部のMB-line0の右端マクロブロック（図８（ｂ）でaの位置にあるマクロブック）の処理を完了すると、このマクロブロックのうち隣接マクロブロック情報として保存する必要のあるものを隣接マクロブロック情報メモリ０に格納する。この情報は、画像符号化処理部1によるMB-line0の左端マクロブロック（図８（ｂ）でdの位置にあるマクロブック）の処理開始時に参照されるが、MB-line1の左端マクロブロック（図８（ｂ）でeの位置にあるマクロブロック）でも使用されるので、消去されてはならない。マクロブロックｄの処理が完了するとこのマクロブロックの情報はマクロブロック情報メモリ０に格納される。このｄの情報はマクロブロックbの処理で参照されると、それ以降画像符号化処理部０の処理範囲では使用されないので隣接マクロブロック情報メモリ０から消去してもよい。よって、ｂのマクロブロック情報によって上書きされる。以下同様であって、図８（ｂ）のｃの位置にあるマクロブロックを画像符号化処理部０が処理する場合には、ｅの位置にあるマクロブロックが必要であって、このマクロブロックは、隣接マクロブロック情報メモリ０に格納されている。また、ｆの位置にあるマクロブロックを画像符号化処理部１が処理する場合には、ｂ及びｃの位置のマクロブロックが必要であって、これは、隣接マクロブロック情報メモリ０に格納されている。図８（ａ）は、以上の動作をタイミングチャートによって示した図である。
【００４５】
この様な制御によって、隣接する領域を処理する画像符号化処理部同士の間で隣接マクロブロック情報が伝達され、並列処理が可能となる。各隣接マクロブロック情報メモリは２マクロブロックの情報を保持する容量を持てばよい。
【００４６】
可変長符号化処理は通常、ストリームの先頭から順に処理を行う必要があり、並列処理を行うとしても、ユニークコードが存在する箇所から分割しての並列処理となる。スライス分割が必須ではないH.264などの規格において、ユニークコードが必ず存在するのはピクチャ単位であるため、一般ストリームに対応する場合、可変長符号化処理の並列化は、ピクチャ単位で行うこととなる。一方、本実施形態の画像符号化処理部は、ピクチャを領域毎に分けてそれぞれの領域の符号化処理を担当する。本実施形態の構成では、可変長符号化処理部と画像符号化処理部の間に符号化中間データバッファを設け、符号化中間データの格納位置ポインタを記録することによって、画像符号化処理部での並列処理を実現する。
【００４７】
図９〜図１１に、中間データバッファの説明図を示す。
図９はブロック構成、図１０は動作タイミング、、図１１は中間データバッファとポインタの関係である。図９〜図１１は、可変長符号化処理部4個、画像符号化処理部4個の場合の例である。
【００４８】
図９に示されるように、４つの画像符号化処理部（Decoder Core）０〜３の出力は、中間データバッファ１５に格納され、４つの可変長符号化処理部０〜３によって読みだされ、可変長符号化される。
【００４９】
画像符号化処理部０〜３は、担当する領域内のマクロブロックラインを上から符号化していき、中間データを中間データバッファ１５に格納する。このとき各画像符号化処理部０〜３は担当領域内の中間データを処理順に書き込んでゆく。図１０に示されるように、画像符号化処理部０〜３の動作は、完全に並列であり、並列処理によって得られた中間データを中間データバッファ１５に格納する。図１１に示されるように、マクロブロックラインの中間データ毎の開始ポインタは、ピクチャ番号をl、マクロブロックラインをm、画像符号化処理部番号をnとすると、PTR_l_m_nとして記録される。可変長符号化処理部０〜３では、ピクチャ単位で処理を行うものとし、それぞれピクチャ０〜３の処理を行うものとする。可変長符号化処理部０〜３の動作は、処理対象のデータが中間データバッファ１５に格納された後、初めて処理を開始できる。したがって、図１０に示されるように、可変長符号化処理部０〜３の処理は、それぞれ所定タイミングずつずれた並列処理となる。可変長符号化処理部０では中間データをPTR_0_0_0、PTR_0_0_1、PTR_0_0_2、PTR_0_0_3、PTR_0_1_0、PTR_0_1_2、PTR_0_1_3、…と符号化処理を行うべき順番に読み出して符号化処理を行う。他の符号化処理部も同様である。このようにすることで画像符号化処理部はピクチャ内の並列処理を、可変長符号化処理部はピクチャ毎の並列処理が可能になる。
【００５０】
各画像符号化処理部が処理中のマクロブロックの位置情報を制御部に通知し、制御部がエンコード進行状況を知ることにより、各マクロブロックで符号化に必要な隣接マクロブロック情報が生成されたことを把握することができる。各画像符号化処理部が制御部からの指示により、マクロブロック単位で処理の待機・再開を行うようにしておくと、各マクロブロック単位で必要な隣接マクロブロック情報が揃ってからデコードを開始するという制御が可能となる。
【００５１】
動画像符号化装置の処理において、参照画読み出しなどのメモリアクセスは通常矩形領域でのメモリアクセスとなるが、1ピクチャの画像データを複数のメモリに領域毎に格納する場合、その境界領域において、1つの矩形アクセスリクエストが2つのメモリにまたがる場合がある。そのためメモリマップに応じて、矩形アクセスリクエストを二つに分ける必要がある。
【００５２】
図１２に、矩形領域単位のアクセス例を示す。Aの領域のアクセスは、Memory0のみのアクセス、Bの領域のアクセスはMemory1のみのアクセスとなるが、Cの領域は左側がMemory0、右側がMemory1に格納されているので、両方のMemoryにアクセスする必要がある。
【００５３】
図１３に、振り分けモジュールの構成例を示す。リードアクセスの場合、リクエスト振り分け部でどちらのMemoryにアクセスするか、あるいは、リクエストを分割する必要があるかを判定し、片方のMemoryアクセスの場合は、そのMemoryへのリードアクセス、分割する必要がある場合は、それぞれのMemoryに必要なリードアクセスを行う。各Memoryからのリードデータについては、リードデータ振り分け部２０−３、２０−４でどちらの画像符号化処理部からのリクエストであったに応じて、リクエスト発行元の画像符号化処理部にリードデータを返す。
【００５４】
ライトアクセスの場合は、リクエスト振り分け部２０−１、２０−２で、どちらのMemoryにアクセスするか、あるいは、リクエストを分割する必要があるかを判定するとともに、画像符号化処理部からライトデータを受け取り、片方のMemoryアクセスの場合は、そのMemoryへのライトアクセス、分割する必要がある場合は、画像符号化処理部から受け取ったライトデータをそれぞれのMemoryに振り分けつつ、ライトアクセスを行う。
【００５５】
上記実施形態のエンコーダにおいて、複数の画像符号化処理部が物理的に複数のモジュールに分かれて配置されていてもよい。この場合、モジュール間で画像データおよび、隣接マクロブロック情報、符号化中間データ、マクロブロック符号化位置情報のうちいずれかのデータの受け渡しを行う機能を持つことにより、複数のモジュールで1つのエンコード装置を構成する。このように複数モジュールで1つのエンコード装置を構成する場合においても、メモリ-画像符号化処理部間の接続パス削減により、モジュール間IF、データ転送量を削減することが可能である。
【００５６】
本実施形態をH.264などのデコーダ/エンコーダに適用する場合、上記のように画像符号化復号処理部間の同期制御の制御信号、隣接マクロブロック情報の受け渡し信号などが必要になる場合があるが、これらの機能に必要な回路規模の増加分は、メモリバスの削減効果による回路規模削減に比べて小さい。画像符号化復号処理部とメモリの間のメモリバスは通常、高いデータ転送レートが必要なため、バス幅が大きくなっている(64bitなど)ため、接続パス数の増加に伴い、そのバスセレクト信号などの回路規模も大きくなるが、本実施形態で必要な追加回路分は、制御信号や転送レートの低いデータであるので、回路規模は小さくて済む。本実施形態では、従来技術に比べて、バス幅の広いメモリバスの接続パス数を大幅に削減しているため、本実施形態に必要な制御信号、データパス等を追加しても、全体の回路規模は従来に比べて削減となる。
【００５７】
また、画像符号化復号処理部数とメモリ数が増えてもその接続関係が限定される(従来技術では、全画像符号化復号処理部がすべてのメモリにアクセスする必要があるが、本実施形態では、各画像符号化復号処理部は最大で2つまたは3つのメモリにアクセスすればよい)ため、LSIにしたときのI/O端子と画像符号化復号処理部配置の関係を単純化することができ、レイアウト難度を大幅に低減することが可能となる。
【００５８】
図１４及び図１５は、本実施形態に従ったエンコーダ装置を説明する図である。
図１４は4Kx2K(3840x2160)のH.264エンコーダに本実施形態を4並列で適用した装置のブロック構成である。
【００５９】
可変長符号化処理部２５−１〜２５−４、画像符号化処理部２６−１〜２６−４をそれぞれ4つずつ有し、可変長符号化処理部２５−１〜２５−４は、ピクチャ単位の並列処理、画像符号化処理部２６−１〜２６−４は、図１５のようにピクチャを4つの領域に分割したそれぞれの領域を担当し、それぞれの領域のデータが対応した4つのメモリに格納されるメモリマップとする。なお本例での水平ベクトル範囲は±512とし、各画像符号化処理部２６−１〜２６−４で処理する領域が参照する領域は、左右のコアで処理する領域を超えることはないものとする。それぞれの可変長符号化部２５−１〜２５−４は、H.264規格にしたがった可変長符号化処理(CAVLC  or  CABACなど)を実施し、画像符号化処理部２６−１〜２６−４は、H.264規格に画像符号化処理(動きベクトル探索、インター予測、イントラ予測、直交変換、量子化、デブロッキングフィルタ処理など)を行う。また、可変長符号化部２５−１〜２５−４と画像符号化処理部２６−１〜２６−４の間には、中間データを格納する中間データバッファ２７、各画像符号化部の間には隣接マクロブロック情報を受け渡すための隣接マクロブロック情報バッファ２８−１〜２８−３、画像符号化処理部とメモリの間には、メモリアクセスを振り分ける機能を有したメモリ制御部２９、各画像符号化処理部２６−１〜２６−４からの処理マクロブロック位置情報を受け取り、各画像符号化処理部の起動制御を行う画像符号化処理部起動制御部２４を有する。
【００６０】
図１６に、本実施形態に従った並列動作のタイミングを示す。
前記中間データバッファ、隣接マクロブロック情報バッファ、メモリ制御部、コア起動制御部は、エンコードの並列処理中、上で説明した役割を果たし、H.264デコード処理に
おける本発明の並列動作を可能とする。
【００６１】
図１６に示されるように、画像符号化処理部０〜３は、タイミングをずらして、並列に処理を行う。最初、ピクチャ処理が起動されると、画像符号化処理部０が、担当領域のマクロブロックライン（MB-line）０の処理を行う。このマクロブロックラインの処理においては、各マクロブロックの処理が順に起動される。マクロブロックライン０の処理を画像符号化処理部０が終わると、次は、マクロブロックライン１の処理に進むが、同時に、画像符号化処理部１が、担当領域のマクロブロックライン０の処理を開始する。同様にして、画像符号化処理部２、３も処理を開始する。すべての画像符号化処理部がすべてのマクロブロックラインの処理を終了すると、ピクチャの処理が完了する。
【００６２】
本実施形態では、各画像符号化処理部における各マクロブロックの符号化処理開始タイミングが、必要とする隣接マクロブロック情報の生成が完了した後となる制御の一例として、以下のような制御とする。
【００６３】
図１７及び図１８は、本発明の実施形態に従った制御フローである。
図１７は、全体制御部が画像処理部を制御して１ピクチャ処理を行うフローを、図１８は各符号化処理部での１ピクチャ処理での処理フローを示す。
【００６４】
図１７において、ステップＳ１０において、画像符号化処理部を起動し、前記画像符号化処理部で１ピクチャの処理が完了するまで待って、処理を終了する。
図１８において、ステップＳ２０において、次に処理するマクロブロックは、担当領域内の左端にあるマクロブロックか否かを判断する。ステップＳ２０の判断がＹｅｓの場合には、ステップＳ２１において、もっとも左の領域を担当する画像符号化処理部が処理を行おうとしているか否かを判断する。ステップＳ２１の判断がＹｅｓの場合には、ステップＳ３０に進む。ステップＳ２１の判断がＮｏの場合には、ステップＳ２２において、左隣接、左上隣接マクロブロック情報は、左の画像符号化処理部との間の隣接情報メモリに存在するか否かを判断し、Ｎｏの場合には、これらの情報が隣接情報メモリに格納されるまで待つ。ステップＳ２２の判断がＹｅｓの場合には、ステップＳ２３において、マクロブロックを処理し、ステップＳ２４において、処理結果を隣接マクロブロック情報として、左の画像符号化処理部との間の隣接情報メモリに格納して、ステップＳ３１に進む。
【００６５】
ステップＳ２０の判断がＮｏの場合には、ステップＳ２５において、次に処理するマクロブロックは担当領域内の右端のマクロブロックであるか否かを判断する。ステップＳ２５の判断がＮｏの場合には、ステップＳ３０に進む。
【００６６】
ステップＳ２５の判断がＹｅｓの場合には、ステップＳ２６において、もっとも右の領域の担当の画像符号化処理装置が処理を行おうとしているか否かを判断する。ステップＳ２６の判断がＹｅｓの場合には、ステップＳ３０に進んで、マクロブロックを処理し、ステップＳ３１に進む。ステップＳ２６の判断がＮｏの場合には、ステップＳ２７において、右上隣接マクロブロック情報は、右画像符号化処理部との間の隣接情報メモリに存在するか否かを判断する。ステップＳ２７の判断がＮｏの場合には、当該情報が、隣接情報メモリに格納されるまで待つ。ステップＳ２７の判断がＹｅｓの場合には、ステップＳ２８において、マクロブロックを処理し、ステップＳ２９において、処理結果を隣接マクロブロック情報として、右画像符号化処理部との間の隣接情報メモリに格納し、ステップＳ３１に進む。
【００６７】
ステップＳ３１では、ピクチャ内の担当マクロブロックの処理が完了したか否かを判断し、Ｎｏの場合には、ステップＳ２０に戻り、Ｙｅｓの場合には、処理を終了する。
図１９は、本実施形態のエンコーダ／デコーダ構成をLSIに適用した場合のチップ構成
例である。
【００６８】
LSI実装においては、様々な機能、IFが実装されることが予想されるが、ここでは、エンコード処理に必須である、画像入力IF、ストリーム出力IFのみ図示している。図１９（ａ）は、1チップ構成、図１９（ｂ）は2チップ構成の例である。
【００６９】
図１９（ａ）の1チップ構成では、4つの画像符号化／復号処理部が1つのチップに搭載され、画像格納用の4つのメモリ０〜３が接続されている。また、本図では、ストリーム格納用、中間データ格納用のバッファは別メモリ３０で構成している。このメモリ３０は、画像格納用の4つのメモリ０〜３と別に用意しても良いし、画像格納用に使用している4つのメモリ０〜３の一部に領域を確保して同一メモリとして使用してもよい。
【００７０】
図１９（ｂ）の2チップ構成では、2つのメモリの間にデータ転送を行うインターフェース３１を設けて、ストリームデータ、中間データ、隣接マクロブロック情報、画像データ等が受け渡し可能なようにしている。このように画像符号化／復号処理部が複数のLSIに分けられ、メモリの接続先が複数のLSIに分かれている場合であっても、データ転送の受け渡しを行い、全体として本実施形態で規定された並列処理を行っている場合、何チップに分けられていたとしても問題はない。
【００７１】
図２０は、本実施形態をH.264デコーダに適用した場合の構成図を示す。
図２０は、4Kx2K(3840x2160)のH.264デコーダを4並列で適用した装置である。可変長復号処理部４０−１〜４０−４、画像復号処理部４１−１〜４１−４をそれぞれ4つずつ有し、可変長復号処理部４０−１〜４０−４は、ピクチャ単位の並列処理、画像復号処理部４１−１〜４１−４は、ピクチャを本実施形態にしたがって4つの領域に分割したそれぞれの領域を担当し、それぞれの領域のデータが対応した4つのメモリ０〜３に格納されるメモリマップとする。これらの割り当てはエンコーダの実施形態と同様である。それぞれの可変長復号処理部４０−１〜４０−４は、H.264規格にしたがった可変長復号処理(CAVLC  or  CABACなど)を実施し、画像復号処理部４１−１〜４１−４は、H.264の画像復号処理に必要な処理(インター予測、イントラ予測、逆直交変換、逆量子化、デブロッキングフィルタ処理など)を行う。また、可変長復号処理部４０−１〜４０−４と画像復号処理部４１−１〜４１−４の間には中間データを格納する中間データバッファ４２、各画像復号処理部４１−１〜４１−４の間には隣接マクロブロック情報を受け渡すための隣接マクロブロック情報バッファ４３−１〜４３−３、画像復号処理部４１−１〜４１−４とメモリ０〜３の間には、メモリアクセスを振り分ける機能を有したメモリ制御部４４、各画像復号処理部４１−１〜１−４からの処理マクロブロック位置情報を受け取り、各コアの起動制御を行う画像復号処理部起動制御部４５を有する。デコーダ処理における画像復号処理部の並列動作の方法は、エンコード処理における画像符号化処理部の並列動作と同様であるので説明を省略する。
【００７２】
前記中間データバッファ、隣接マクロブロック情報バッファ、メモリ制御部、コア起動制御部は、デコード処理においても、上で説明したのと同様の役割を果たし、H.264デコード処理における本発明の並列動作を可能とする。
【００７３】
以上の実施形態のほかに、以下の付記を開示する。
（付記１）
画像データをブロック単位で符号化する画像符号化装置において、
前記画像データを分割して格納する複数の格納手段と、
画像符号化処理を行う複数の画像符号化手段と、
該複数の格納手段と該複数の画像符号化手段とを接続する接続手段と、
前記画像データを２次元配列と見た場合に、ブロック単位の画像符号化の進行する方向
とは異なった方向に、前記画像データを前記画像符号化手段の数だけ分割し、それぞれ分割された前記画像データを前記複数の画像符号化手段に割り当てて、各画像符号化手段に並列に画像符号化処理を行わせる制御手段と、
を備えることを特徴とする画像符号化装置。
（付記２）
処理対象の画像データの単位ブロックの隣接単位ブロックの情報を格納する隣接単位ブロック情報格納手段を更に備え、
前記画像符号化手段は、該処理対象の単位ブロックの処理を、処理に必要な隣接単位ブロックの情報が揃ってから開始することを特徴とする付記１に記載の画像符号化装置。
（付記３）
前記画像符号化手段の処理結果である中間データを格納する、該中間データを画像データ内の領域毎の格納位置を示すポインタを有するバッファ手段を更に備えることを特徴とする付記１に記載の画像符号化装置。
（付記４）
前記複数の画像符号化手段が物理的に複数のモジュールに分かれて配置され、
該モジュール間で画像データの処理に必要な情報を通信するためのインターフェース手段を更に備えることを特徴とする付記１に記載の画像符号化装置。
（付記５）
前記画像符号化手段は、符号化処理中の単位ブロックの画像データ内での位置情報を取得し、該位置情報によって該処理対象の単位ブロックの符号化処理の待機、再開を行うことを特徴とする付記１に記載の画像符号化装置。
（付記６）
前記画像符号化処理の進行する方向は、ラスタスキャンの方向であることを特徴とする付記１に記載の画像符号化装置。
（付記７）
前記隣接単位ブロック情報格納手段は、前記２つの画像符号化手段の組に対し１つずつ設けられることを特徴とする付記２に記載の画像符号化装置。
（付記８）
画像データを復号する画像復号装置において、
可変長符号化された画像データを可変長復号する可変長復号手段と、
前記可変長復号された前記画像データにブロック単位で画像復号処理を施す複数の画像復号手段と、
前記画像復号処理された前記画像データを分割して格納する複数の格納手段と、
該複数の格納手段と該複数の画像復号手段とを接続する接続手段と、
画像データを２次元配列と見た場合に、ブロック単位で行う画像復号処理の進行する方向とは異なった方向に、前記画像データを前記画像復号手段の数だけ分割し、それぞれ分割された画像データを前記複数の画像復号手段に割り当てて、各画像復号手段に並列に画像復号処理を行わせる制御手段と、
を備えることを特徴とする画像復号装置。
（付記９）
処理対象の画像データの単位ブロックの隣接単位ブロックの情報を格納する隣接単位ブロック情報格納手段を更に備え、
前記画像復号手段は、該処理対象の単位ブロックの処理を、処理に必要な隣接単位ブロックの情報が揃ってから開始することを特徴とする付記８に記載の画像復号装置。
（付記１０）
前記可変長復号手段の出力する中間データを格納する、該中間データの画像データ内の領域毎の格納位置を示すポインタを記録するバッファ手段を更に備えることを特徴とする付記８に記載の画像復号装置。
（付記１１）
前記複数の画像復号手段が物理的に複数のモジュールに分かれて配置さえれ、
該モジュール間で、画像データの処理に必要な情報を通信するためのインターフェース手段を更に備えることを特徴とする付記８に記載の画像復号装置。
（付記１２）
前記画像復号手段は、復号処理中の単位ブロックの画像データ内での位置情報を取得し、該位置情報によって該処理対象の単位ブロックの復号処理の待機、再開を行うことを特徴とする付記８に記載の画像復号装置。
（付記１３）
前記画像復号処理の進行する方向は、ラスタスキャンの方向であることを特徴とする付記８に記載の画像復号装置。
（付記１４）
前記隣接単位ブロック情報格納手段は、前記２つの画像復号手段の組に対し１つずつ設けられることを特徴とする付記９に記載の画像復号装置。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態の動作を説明する図（その１）である。
【図２】本発明の実施形態の動作を説明する図（その２）である。
【図３】デブロッキングフィルタ処理について説明する図である。
【図４】従来手法と本発明手法での画像符号化処理部と各メモリモジュール(Memory)の間の接続パス数の比較を示す図（その１）である。
【図５】従来手法と本発明手法での画像符号化処理部と各メモリモジュール(Memory)の間の接続パス数の比較を示す図（その２）である。
【図６】各マクロブロックが符号化処理に必要とする隣接マクロブロック情報の位置関係を示す図である。
【図７】隣接マクロブロック情報メモリの例を示す図（その１）である。
【図８】隣接マクロブロック情報メモリの例を示す図（その２）である。
【図９】中間データバッファの説明図（その１）である。
【図１０】中間データバッファの説明図（その２）である。
【図１１】中間データバッファの説明図（その３）である。
【図１２】矩形領域単位のアクセス例を示す図である。
【図１３】振り分けモジュールの構成例を示す図である。
【図１４】本実施形態に従ったエンコーダ装置を説明する図（その１）である。
【図１５】本実施形態に従ったエンコーダ装置を説明する図（その２）である。
【図１６】本実施形態に従った並列動作のタイミングを示す図である。
【図１７】本発明の実施形態に従った制御フロー（その１）である。
【図１８】本発明の実施形態に従った制御フロー（その２）である。
【図１９】本実施形態のエンコーダ／デコーダ構成をLSIに適用した場合のチップ構成例である。
【図２０】本実施形態をH.264デコーダに適用した場合の構成図を示す。
【図２１】従来のフレーム間予測の依存関係を守るように制御し、フレーム間での並列化を行う手法の説明図（その１）である。
【図２２】従来のフレーム間予測の依存関係を守るように制御し、フレーム間での並列化を行う手法の説明図（その２）である。
【図２３】従来のフレーム間予測の依存関係を守るように制御し、フレーム間での並列化を行う手法の説明図（その３）である。
【図２４】従来のスライス単位でフレーム内の並列化を行う手法の説明図（その１）である。
【図２５】従来のスライス単位でフレーム内の並列化を行う手法の説明図（その２）である。
【図２６】従来のスライス単位でフレーム内の並列化を行う手法の説明図（その３）である。
【図２７】従来のマクロブロックの隣接情報参照の依存関係を守るように制御し、マクロブロックライン間での並列化を行う手法の説明図（その１）である。
【図２８】従来のマクロブロックの隣接情報参照の依存関係を守るように制御し、マクロブロックライン間での並列化を行う手法の説明図（その２）である。
【図２９】従来のマクロブロックの隣接情報参照の依存関係を守るように制御し、マクロブロックライン間での並列化を行う手法の説明図（その３）である。
【符号の説明】
【００７５】
１０、１１−１〜１１−３、１２      スイッチ
１５      中間データバッファ
２０−１、２０−２      リクエスト／ライトデータ振り分け部
２０−３、２０−４      リードデータ振り分け部
２４      画像符号化処理部起動制御部
２５−１〜２５−４      可変長符号化処理部
２６−１〜２６−４      画像符号化処理部
２７      中間データバッファ
２８−１〜２８−４      隣接マクロブロック情報バッファ
２９      メモリ制御部
３０      メモリ
３１      通信インターフェース
４０−１〜４０−４      可変長復号処理部
４１−１〜４１−４      画像復号処理部
４２      中間データバッファ
４３−１〜４３−３      隣接マクロブロック情報バッファ
４４      メモリ制御部
４５      画像復号処理部起動制御部
【図３】
2010041235.tif 000004
【図４】
2010041235.tif 000005
【図６】
2010041235.tif 000006
【図７】
2010041235.tif 000007
【図１０】
2010041235.tif 000008
【図１１】
2010041235.tif 000009
【図１２】
2010041235.tif 000010
【図１３】
2010041235.tif 000011
【図１７】
2010041235.tif 000012
【図１８】
2010041235.tif 000013
【図１】
2010041235.tif 000014
【図２】
2010041235.tif 000015
【図５】
2010041235.tif 000016
【図８】
2010041235.tif 000017
【図９】
2010041235.tif 000018
【図１４】
2010041235.tif 000019
【図１５】
2010041235.tif 000020
【図１６】
2010041235.tif 000021
【図１９】
2010041235.tif 000022
【図２０】
2010041235.tif 000023
【図２１】
2010041235.tif 000024
【図２２】
2010041235.tif 000025
【図２３】
2010041235.tif 000026
【図２４】
2010041235.tif 000027
【図２５】
2010041235.tif 000028
【図２６】
2010041235.tif 000029
【図２７】
2010041235.tif 000030
【図２８】
2010041235.tif 000031
【図２９】
2010041235.tif 000032