(57)【要約】【課題】エントロピー符号化を並列に実行する際の処理効率を向上させる。【解決手段】画像符号化装置１０において、演算部１２は、画像２０を水平な分割線によって分割した複数の分割領域のそれぞれについてのシンタクス要素を算出して記憶部１１に格納する。演算部１２は、シンタクス要素を記憶部１１に格納した後に、第１の分割領域２１に対する第１のエントロピー符号化処理と、第１の分割領域２１の下に隣接する第２の分割領域２２に対する第２のエントロピー符号化処理とを並列に実行する。この第２のエントロピー符号化処理は、第１の分割領域２１に対応するシンタクス要素を記憶部１１から読み出す処理を含む。【選択図】図１
2016219913.tif 000002
【特許請求の範囲】
【請求項１】
記憶部と、
画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して前記記憶部に格納し、前記複数のシンタクス要素を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、前記複数の分割領域のうち前記第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応するシンタクス要素を前記記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行する演算部と、
を有する画像符号化装置。
【請求項２】
記憶部と、
画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素および複数のコンテキスト情報を算出して前記記憶部に格納し、前記複数のシンタクス要素および前記複数のコンテキスト情報を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応する第１のシンタクス要素、前記複数のシンタクス要素のうち前記第１の分割領域の上に隣接する第２の分割領域に対応する第２のシンタクス要素、および、前記複数のコンテキスト情報のうち前記第１の分割領域に対応する第１のコンテキスト情報を前記記憶部から読み出す処理を含む前記第１のエントロピー符号化処理と、前記複数の分割領域のうち第３の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第３の分割領域に対応する第３のシンタクス要素、前記複数のシンタクス要素のうち前記第３の分割領域の上に隣接する第４の分割領域に対応する第４のシンタクス要素、および、前記複数のコンテキスト情報のうち前記第３の分割領域に対応する第２のコンテキスト情報を前記記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行する演算部と、
を有する画像符号化装置。
【請求項３】
前記演算部は、前記複数のシンタクス要素と前記複数のコンテキスト情報の算出および前記記憶部への格納と、前記画像の前の他の画像に対する第３のエントロピー符号化処理とを、前記第１のエントロピー符号化処理および前記第２のエントロピー符号化処理の実行前に並列に実行する、
請求項２記載の画像符号化装置。
【請求項４】
前記演算部は、前記第１のエントロピー符号化処理の完了前に前記第２のエントロピー符号化処理が完了した場合、前記複数の分割領域のうち第５の分割領域に対する第４のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第５の分割領域に対応する第５のシンタクス要素、前記複数のシンタクス要素のうち前記第５の分割領域の上に隣接する第６の分割領域に対応する第６のシンタクス要素、および、前記複数のコンテキスト情報のうち前記第５の分割領域に対応する第３のコンテキスト情報を前記記憶部から読み出す処理を含む前記第４のエントロピー符号化処理を開始する、
請求項２または３記載の画像符号化装置。
【請求項５】
記憶部と、
画像に含まれる第１の領域を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して前記記憶部に格納し、前記複数のシンタクス要素を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、前記複数の分割領域のうち前記第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応する第１のシンタクス要素を前記記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行し、前記画像に含まれる第２の領域に対する第３のエントロピー符号化処理を、前記第１のエントロピー符号化処理および前記第２のエントロピー符号化処理と並列に実行し、前記第３のエントロピー符号化処理が完了すると、前記複数の分割領域のうち第３の分割領域に対する第４のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第３の分割領域の上に隣接する第４の分割領域に対応する第２のシンタクス要素を前記記憶部から読み出す処理を含む前記第４のエントロピー符号化処理を実行する演算部と、
を有する画像符号化装置。
【請求項６】
前記演算部は、
前記複数のシンタクス要素に基づいて前記複数の分割領域にそれぞれ対応する複数のコンテキスト情報を算出して前記記憶部に格納する処理をさらに実行し、
前記複数のシンタクス要素および前記複数のコンテキスト情報を前記記憶部に格納した後に、前記第１のエントロピー符号化処理を開始するとともに、前記第２のエントロピー符号化処理を、前記記憶部に記憶された前記複数のコンテキスト情報のうち前記第１の分割領域に対応する第１のコンテキスト情報に基づいて開始し、
前記第３のエントロピー符号化処理が完了すると、前記第４のエントロピー符号化処理を、前記記憶部に記憶された前記複数のコンテキスト情報のうち前記第４の分割領域に対応する第２のコンテキスト情報に基づいて開始する、
請求項５記載の画像符号化装置。
【請求項７】
画像符号化装置が、
画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して記憶部に格納し、
前記複数のシンタクス要素を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、前記複数の分割領域のうち前記第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応するシンタクス要素を前記記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行する、
画像符号化方法。
【請求項８】
画像符号化装置が、
画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素および複数のコンテキスト情報を算出して記憶部に格納し、
前記複数のシンタクス要素および前記複数のコンテキスト情報を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応する第１のシンタクス要素、前記複数のシンタクス要素のうち前記第１の分割領域の上に隣接する第２の分割領域に対応する第２のシンタクス要素、および、前記複数のコンテキスト情報のうち前記第１の分割領域に対応する第１のコンテキスト情報を前記記憶部から読み出してエントロピー符号化する処理を含む前記第１のエントロピー符号化処理と、前記複数の分割領域のうち第３の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第３の分割領域に対応する第３のシンタクス要素、前記複数のシンタクス要素のうち前記第３の分割領域の上に隣接する第４の分割領域に対応する第４のシンタクス要素、および、前記複数のコンテキスト情報のうち前記第３の分割領域に対応する第２のコンテキスト情報を前記記憶部から読み出してエントロピー符号化する処理を含む前記第２のエントロピー符号化処理とを、並列に実行する、
画像符号化方法。
【請求項９】
画像符号化装置が、
画像に含まれる第１の領域を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して記憶部に格納し、
前記複数のシンタクス要素を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、前記複数の分割領域のうち前記第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応する第１のシンタクス要素を前記記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行し、
前記画像に含まれる第２の領域に対する第３のエントロピー符号化処理を、前記第１のエントロピー符号化処理および前記第２のエントロピー符号化処理と並列に実行し、
前記第３のエントロピー符号化処理が完了すると、前記複数の分割領域のうち第３の分割領域に対する第４のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第３の分割領域の上に隣接する第４の分割領域に対応する第２のシンタクス要素を前記記憶部から読み出す処理を含む前記第４のエントロピー符号化処理を実行する、
画像符号化方法。
【請求項１０】
コンピュータに、
画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して記憶部に格納し、
前記複数のシンタクス要素を前記記憶部に格納した後に、前記複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、前記複数の分割領域のうち前記第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、前記複数のシンタクス要素のうち前記第１の分割領域に対応するシンタクス要素を前記記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行する、
処理を実行させる画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法および画像符号化プログラムに関する。
【背景技術】
【０００２】
次世代の動画像符号化規格として、Ｈ．２６５／ＨＥＶＣ（High Efficiency Video Coding）規格（以下、「ＨＥＶＣ規格」と略称する）が注目されている。ＨＥＶＣ規格では、従来のＨ．２６４／ＭＰＥＧ−４  ＡＶＣ（Moving Picture Experts Group-phase 4 Advanced Video Coding）規格と比較して、約２倍の圧縮性能を有する。また、ＨＥＶＣでは、ＷＰＰ（Wavefront Parallel Processing）など、符号化処理を並列に実行するための工夫が施されている。
【０００３】
動画像の符号化技術の例としては、現在のブロックをコード化するときに、その上に位置するブロックからのデータをコンテキスト情報として使用することを回避する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５２２６０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像を水平方向の分割線によって分割した分割領域を単位としてエントロピー符号化を実行する際、特定のシンタクス要素をエントロピー符号化するために上側に隣接する分割領域のシンタクス要素を参照しなくてはならない場合がある。このような場合に、隣接する複数の分割領域を並列にエントロピー符号化しようとすると、下側の分割領域上のある位置のエントロピー符号化は、その上側の分割領域の同じ位置のシンタクス要素が生成されるまで実行できない。
【０００６】
分割領域ごとの画像の複雑度の違いなどから、上側の分割領域よりその下側の分割領域の方がエントロピー符号化の速度が速いことがあり得る。しかし、このような場合には、下側の分割領域のエントロピー符号化の途中で上側の分割領域のシンタクス要素の生成を待ち合わせる必要が生じる可能性がある。待ち合わせが発生すると、その分だけ処理時間が増加するため、待ち合わせの発生がエントロピー符号化の処理効率を悪化させる原因となるという問題があった。
【０００７】
１つの側面では、本発明は、エントロピー符号化を並列に実行する際の処理効率を向上させることが可能な画像符号化装置、画像符号化方法および画像符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、記憶部と演算部とを有する画像符号化装置が提供される。この画像符号化装置において、演算部は、画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して記憶部に格納する。また、演算部は、複数のシンタクス要素を記憶部に格納した後に、複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、複数の分割領域のうち第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、複数のシンタクス要素のうち第１の分割領域に対応するシンタクス要素を記憶部から読み出す処理を含む第２のエントロピー符号化処理とを、並列に実行する。
【０００９】
また、１つの案では、上記の画像符号化装置と同様の処理が実行される画像符号化方法が提供される。
さらに、１つの案では、上記の画像符号化装置と同様の処理をコンピュータに実行させる画像符号化プログラムが提供される。
【００１０】
また、１つの案では、記憶部と演算部とを有する画像符号化装置が提供される。この画像符号化装置において、演算部は、画像を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素および複数のコンテキスト情報を算出して記憶部に格納する。演算部は、複数のシンタクス要素および複数のコンテキスト情報を記憶部に格納した後に、複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理であって、複数のシンタクス要素のうち第１の分割領域に対応する第１のシンタクス要素、複数のシンタクス要素のうち第１の分割領域の上に隣接する第２の分割領域に対応する第２のシンタクス要素、および、複数のコンテキスト情報のうち第１の分割領域に対応する第１のコンテキスト情報を記憶部から読み出す処理を含む第１のエントロピー符号化処理と、複数の分割領域のうち第３の分割領域に対する第２のエントロピー符号化処理であって、複数のシンタクス要素のうち第３の分割領域に対応する第３のシンタクス要素、複数のシンタクス要素のうち第３の分割領域の上に隣接する第４の分割領域に対応する第４のシンタクス要素、および、複数のコンテキスト情報のうち第３の分割領域に対応する第２のコンテキスト情報を記憶部から読み出す処理を含む前記第２のエントロピー符号化処理とを、並列に実行する。
【００１１】
また、１つの案では、上記の画像符号化装置と同様の処理が実行される画像符号化方法が提供される。
また、１つの案では、記憶部と演算部とを有する画像符号化装置が提供される。この画像符号化装置において、演算部は、画像に含まれる第１の領域を水平な分割線によって分割した複数の分割領域にそれぞれ対応する複数のシンタクス要素を算出して記憶部に格納する。演算部は、複数のシンタクス要素を記憶部に格納した後に、複数の分割領域のうち第１の分割領域に対する第１のエントロピー符号化処理と、複数の分割領域のうち第１の分割領域の下に隣接する第２の分割領域に対する第２のエントロピー符号化処理であって、複数のシンタクス要素のうち第１の分割領域に対応する第１のシンタクス要素を記憶部から読み出す処理を含む第２のエントロピー符号化処理とを、並列に実行する。演算部は、画像に含まれる第２の領域に対する第３のエントロピー符号化処理を、第１のエントロピー符号化処理および第２のエントロピー符号化処理と並列に実行する。演算部は、第３のエントロピー符号化処理が完了すると、複数の分割領域のうち第３の分割領域に対する第４のエントロピー符号化処理であって、複数のシンタクス要素のうち第３の分割領域の上に隣接する第４の分割領域に対応する第２のシンタクス要素を記憶部から読み出す処理を含む第４のエントロピー符号化処理を実行する。
【００１２】
また、１つの案では、上記の画像符号化装置と同様の処理が実行される画像符号化方法が提供される。
【発明の効果】
【００１３】
１つの側面では、エントロピー符号化を並列に実行する際の処理効率を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係る画像符号化装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係る画像処理回路の構成例を示す図である。
【図３】シンタクス要素生成部およびエントロピー符号化部の内部構成例を示す図である。
【図４】テーブル構築部の内部構成例を示す図である。
【図５】シンタクス領域およびコンテキスト領域の構成例を示す図である。
【図６】ＷＰＰによる符号化処理について説明するための参考図である。
【図７】第２の実施の形態での符号化処理の例を示す図（その１）である。
【図８】第２の実施の形態での符号化処理の例を示す図（その２）である。
【図９】処理の実行タイミングの例を示すタイミングチャートである。
【図１０】符号化処理全体の制御手順の例を示すフローチャートである。
【図１１】シンタクス要素生成制御の処理例を示すフローチャートである。
【図１２】エントロピー符号化制御の処理例を示すフローチャートである。
【図１３】コンテキストテーブル構築の処理例を示すフローチャートである。
【図１４】エントロピー符号化の処理例を示すフローチャートである。
【図１５】画像処理回路を含む情報処理装置のハードウェア構成例を示す図である。
【図１６】第３の実施の形態に係る情報処理装置の構成例を示す図である。
【図１７】各タイルでのシンタクス要素の生成処理例を示す図である。
【図１８】各タイルでのエントロピー符号化処理例を示す図である。
【図１９】あるタイルでのエントロピー符号化が完了した場合の処理例を示す図である。
【図２０】プロセッサによるシンタクス要素生成の制御手順の例を示すフローチャートである。
【図２１】プロセッサによるエントロピー符号化の制御手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係る画像符号化装置の構成例および処理例を示す図である。図１に示す画像符号化装置１０は、画像２０を符号化するための装置であり、記憶部１１と演算部１２とを有する。記憶部１１は、例えば、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、あるいはＨＤＤ（Hard Disk Drive）、フラッシュメモリなどの不揮発性記憶装置として実装される。演算部１２は、例えば、プロセッサである。なお、プロセッサとは、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）、またはこれらのうち２つ以上の組み合わせによって実現される。
【００１６】
演算部１２は、画像２０を水平な分割線によって分割した分割領域ごとに、エントロピー符号化を実行することができる。演算部１２は、次のような処理を実行することで画像を符号化する。
【００１７】
演算部１２は、画像２０の各分割領域についてのシンタクス要素を算出して、記憶部１１の例えばシンタクス領域１１ａに格納する（Ｓ１）。シンタクス要素とは、画像符号化ストリームを構成する要素であり、例えば、管理情報（ヘッダ情報）、係数やベクトルといった画像自体を示す情報を含む。
【００１８】
また、演算部１２は、各分割領域についてのシンタクス要素をシンタクス領域１１ａに格納した後、第１の分割領域２１に対するエントロピー符号化処理と、第１の分割領域２１の下に隣接する第２の分割領域２２に対するエントロピー符号化処理とを、並列に実行する（ステップＳ２）。
【００１９】
第１の分割領域２１に対するエントロピー符号化処理では、第１の分割領域２１に対応するシンタクス要素がシンタクス領域１１ａから読み出され、読み出されたシンタクス要素がエントロピー符号化される。また、第２の分割領域２２に対するエントロピー符号化処理では、第１の分割領域２１に対応するシンタクス要素がシンタクス領域１１ａから読み出され、読み出されたシンタクス要素がエントロピー符号化される。さらに、第２の分割領域２２に対するエントロピー符号化処理は、上側の第１の分割領域２１についてのシンタクス要素をシンタクス領域１１ａから読み出す処理を含む。読み出されたシンタクス要素は、第２の分割領域２２に対するエントロピー符号化に利用される。例えば、第２の分割領域２２の１つの画素に対するエントロピー符号化の際に、その画素の上側に隣接する画素に対応するシンタクス要素が利用される。
【００２０】
ここで、分割領域内の画像の複雑度などによっては、エントロピー符号化にかかる時間が分割領域ごとに異なる可能性がある。図１の例では、第１の分割領域２１より第２の分割領域２２の方がエントロピー符号化処理にかかる時間が短いものとする。本実施の形態では、少なくとも第１の分割領域２１についてのシンタクス要素がシンタクス領域１１ａに格納された後に、第１の分割領域２１および第２の分割領域２２に対するエントロピー符号化が開始される。このため、第２の分割領域２２に対するエントロピー符号化処理は、すでにシンタクス領域１１ａに格納済みである、第１の分割領域２１のシンタクス情報を読み出すことで実行可能である。したがって、第２の分割領域２２のエントロピー符号化の途中で、第１の分割領域２１のシンタクス要素の算出の待ち合わせが発生することがない。よって、演算部１２は、第１の分割領域２１より第２の分割領域２２に対するエントロピー符号化を先に完了することができる。
【００２１】
以上より、本実施の形態によれば、複数の分割領域のそれぞれに対するエントロピー符号化の並列度を高めることができ、処理効率を向上させることができる。
［第２の実施の形態］
図２は、第２の実施の形態に係る画像処理回路の構成例を示す図である。画像処理回路１００は、Ｈ．２６５／ＨＥＶＣ規格（以下、「ＨＥＶＣ規格」と略称する）にしたがって画像を符号化することが可能な回路である。画像処理回路１００は、例えば、ＳｏＣ（System-on-a-Chip）などの半導体装置として実現される。
【００２２】
画像処理回路１００は、符号化コア１１０，１２０，１３０，１４０、テーブル構築部１５０、ＣＰＵ１６０、ＲＯＭ（Read Only Memory）１７０、ＲＡＭ１８０および入出力インタフェース１９０を有する。これらの各部は、バスによって相互に接続されている。
【００２３】
画像処理回路１００においては、入出力インタフェース１９０を介して入力された画像データが、ＲＡＭ１８０に蓄積される。ＲＡＭ１８０に蓄積された画像データは、符号化コア１１０，１２０，１３０，１４０およびテーブル構築部１５０の処理によって圧縮符号化される。圧縮符号化処理によって得られた符号化ストリームは、ＲＡＭ１８０に一旦蓄積された後、入出力インタフェース１９０を介して画像処理回路１００の外部に出力される。
【００２４】
符号化コア１１０，１２０，１３０，１４０は、例えば、プロセッサである。この場合、符号化コア１１０，１２０，１３０，１４０は、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ、またはこれらのうち２つ以上の組み合わせによって実現される。
【００２５】
符号化コア１１０，１２０，１３０，１４０は、ＣＰＵ１６０による制御の下で、圧縮符号化処理のうち、後述するコンテキストテーブル構築を除く処理を実行する。符号化コア１１０，１２０，１３０，１４０のそれぞれに対しては、ＣＰＵ１６０から処理対象のＣＴＢ（Coding Tree Block）ラインが割り当てられる。符号化コア１１０，１２０，１３０，１４０は、ＣＰＵ１６０から割り当てられたＣＴＢラインに対する処理を実行し、実行が完了するとその旨をＣＰＵ１６０に通知する。また、符号化コア１１０，１２０，１３０，１４０は、互いに並行して処理を実行する。
【００２６】
ここで、ＣＴＢとは、ピクチャ分割の最小単位を示す。ＣＴＢは正方形の画像領域であり、一辺の画素数は１６，３２，６４のいずれかに設定される。ＣＴＢラインとは、ピクチャ上で水平方向に隣接する左端から右端までのＣＴＢを統合した領域を指す。
【００２７】
符号化コア１１０，１２０，１３０，１４０がそれぞれ実行する処理は、シンタクス要素生成処理と、エントロピー符号化処理とに大別される。シンタクス要素生成処理は、インター予測（フレーム内予測）、イントラ予測（フレーム間予測）、予測誤差信号の直交変換、量子化などの処理を含む。シンタクス要素生成処理により、最終的に複数のシンタクス要素が出力される。シンタクス要素とは、ビットストリームを構成するデータ要素であり、例えば、ピクチャやスライスの管理情報（ヘッダ情報）、スライスのデータ（係数、ベクトルなど）などである。一方、エントロピー符号化処理は、シンタクス要素に対して、その発生確率に基づいて異なる長さの符号を割り当てる符号化処理である。エントロピー符号化処理の結果、符号化ストリームが生成される。
【００２８】
符号化コア１１０は、シンタクス要素生成部１１１およびエントロピー符号化部１１２を有する。符号化コア１２０は、シンタクス要素生成部１２１およびエントロピー符号化部１２２を有する。符号化コア１３０は、シンタクス要素生成部１３１およびエントロピー符号化部１３２を有する。符号化コア１４０は、シンタクス要素生成部１４１およびエントロピー符号化部１４２を有する。シンタクス要素生成部１１１，１２１，１３１，１４１は、それぞれ同じ構成であり、上記のシンタクス要素生成処理をＣＴＢラインごとに実行する。エントロピー符号化部１１２，１２２，１３２，１４２は、それぞれ同じ構成であり、上記のエントロピー符号化処理をＣＴＢラインごとに実行する。なお、同じ符号化コア内のシンタクス要素生成部とエントロピー符号化部は、それぞれ異なるピクチャのＣＴＢラインを処理対象にすることができる。
【００２９】
テーブル構築部１５０は、符号化コア１１０，１２０，１３０，１４０によって生成されたシンタクス要素に基づき、ＣＴＢラインごとのエントロピー符号化処理で必要とされるコンテキストテーブルを構築する。後述するように、テーブル構築部１５０は、あるピクチャにおける各エントロピー符号化部１１２，１２２，１３２，１４２によるエントロピー符号化処理が実行される前に、そのピクチャにおける全ＣＴＢラインについてのコンテキストテーブルを算出し、ＲＡＭ１８０に格納する。これにより、ＣＴＢライン間でのエントロピー符号化処理の開始タイミングの制約がなくなり、エントロピー符号化処理の並列度が向上する。
【００３０】
ＣＰＵ１６０は、画像処理回路１００内の各部を統合的に制御する。例えば、ＣＰＵ１６０は、シンタクス要素生成部１１１，１２１，１３１，１４１およびエントロピー符号化部１１２，１２２，１３２，１４２のそれぞれに対して、処理対象のピクチャおよびＣＴＢラインを割り当る。また、ＣＰＵ１６０は、シンタクス要素生成部１１１，１２１，１３１，１４１、エントロピー符号化部１１２，１２２，１３２，１４２およびテーブル構築部１５０のそれぞれに対する処理の開始を指示し、それぞれにおける処理の完了通知を受信する。なお、ＣＰＵ１６０による上記の処理は、ＣＰＵ１６０がＲＯＭ１７０に格納されたプログラムを実行することで実現される。
【００３１】
ＲＯＭ１７０は、例えば、ＣＰＵ１６０に実行させるプログラムや、プログラムの実行に必要な各種のデータを記憶する。
ＲＡＭ１８０は、画像処理回路１００での処理に利用される各種のデータを一時的に記憶する。例えば、ＲＡＭ１８０は、入出力インタフェース１９０を介して入力された画像データや、符号化コア１１０，１２０，１３０，１４０に参照される参照画像データを記憶する。また、ＲＡＭ１８０は、シンタクス要素生成部１１１，１２１，１３１，１４１により生成されたシンタクス要素、および、テーブル構築部１５０によって構築されたコンテキストテーブルを記憶する。これらのシンタクス要素およびコンテキストテーブルの記憶領域は、符号化コア１１０，１２０，１３０，１４０によって共有される共有バッファとして機能する。また、ＲＡＭ１８０は、エントロピー符号化部１１２，１２２，１３２，１４２によって生成された符号化ストリームを記憶する。ＲＡＭ１８０に記憶された符号化ストリームは、入出力インタフェース１９０を介して出力される。
【００３２】
入出力インタフェース１９０は、画像処理回路１００の外部からのデータの入出力を制御する。
図３は、シンタクス要素生成部およびエントロピー符号化部の内部構成例を示す図である。なお、前述のように、シンタクス要素生成部１１１，１２１，１３１，１４１は、それぞれ同じ構成であり、エントロピー符号化部１１２，１２２，１３２，１４２は、それぞれ同じ構成である。そこで、図３では、これらを代表して、符号化コア１１０に含まれるシンタクス要素生成部１１１およびエントロピー符号化部１１２についてのみ説明する。
【００３３】
また、図３では、ＲＡＭ１８０に設けられる各種の記憶領域の例も記載している。ＲＡＭ１８０には、原画像領域１８１、参照画像領域１８２、シンタクス領域１８３、コンテキスト領域１８４および符号化ストリーム領域１８５が設けられる。原画像領域１８１には、入出力インタフェース１９０から入力された画像データが格納される。参照画像領域１８２には、シンタクス要素生成部１１１，１２１，１３１，１４１の処理に利用される参照画像のデータが格納される。シンタクス領域１８３には、シンタクス要素生成部１１１，１２１，１３１，１４１によって生成されたシンタクス要素が格納される。コンテキスト領域１８４には、テーブル構築部１５０によって構築されたコンテキストテーブルが格納される。符号化ストリーム領域１８５には、エントロピー符号化部１１２，１２２，１３２，１４２によって生成された符号化ストリームが格納される。
【００３４】
シンタクス要素生成部１１１は、インター予測部１１１ａ、イントラ予測部１１１ｂ、モード決定部１１１ｃ、セレクタ１１１ｄ，１１１ｅ、Ｔ／Ｑ（Transform/Quantization）部１１１ｆ、ＩＱ／ＩＴ（Inverse Quantization/Inverse Transform）部１１１ｇ、加算器１１１ｈおよびデブロッキングフィルタ１１１ｉを有する。
【００３５】
インター予測部１１１ａは、原画像領域１８１から読み出したピクチャに対してフレーム内予測を行い、予測画像のデータを出力する。インター予測部１１１ａは、予測画像と原画像との差分を演算することにより、予測誤差信号を出力する。
【００３６】
イントラ予測部１１１ｂは、原画像領域１８１から読み出した原画像のデータと、参照画像領域１８２から読み出した参照画像のデータとを基に、動きベクトルを算出する。イントラ予測部１１１ｂは、参照画像領域１８２から読み出した参照画像のデータを、算出した動きベクトルによって動き補償することにより、動き補償された予測画像のデータを出力する。イントラ予測部１１１ｂは、予測画像と原画像との差分を演算することにより、予測誤差信号を出力する。
【００３７】
モード決定部１１１ｃは、符号化対象のピクチャのモードに基づいて、インター予測部１１１ａとイントラ予測部１１１ｂのいずれかに処理を実行させる。セレクタ１１１ｄは、モード決定部１１１ｃからの選択信号に応じて、インター予測部１１１ａとイントラ予測部１１１ｂのいずれかから出力される予測誤差信号をＴ／Ｑ部１１１ｆに出力する。セレクタ１１１ｅは、モード決定部１１１ｃからの選択信号に応じて、インター予測部１１１ａとイントラ予測部１１１ｂのいずれかから出力される予測画像のデータを加算器１１１ｈに出力する。
【００３８】
Ｔ／Ｑ部１１１ｆは、セレクタ１１１ｄから入力された予測誤差信号を直交変換し、水平方向および垂直方向の周波数成分に分離された信号を生成する。Ｔ／Ｑ部１１１ｆは、生成された信号を量子化する。これにより、シンタクス要素が生成され、生成されたシンタクス要素はシンタクス領域１８３に格納される。
【００３９】
ＩＱ／ＩＴ部１１１ｇは、Ｔ／Ｑ部１１１ｆによって生成された量子化データを逆量子化し、さらに逆直交変換を施すことで、予測誤差信号を復元する。加算器１１１ｈは、セレクタ１１１ｅから入力された予測画像のデータとＩＱ／ＩＴ部１１１ｇからの予測誤差信号とを加算することで、参照画像のデータを生成する。デブロッキングフィルタ１１１ｉは、生成された参照画像のデータにデブロッキングフィルタ処理を施し、処理後のデータを参照画像領域１８２に格納する。
【００４０】
エントロピー符号化部１１２は、二値化部１１２ａ、算術符号化部１１２ｂおよびコンテキスト管理部１１２ｃを有する。なお、二値化部１１２ａ、算術符号化部１１２ｂおよびコンテキスト管理部１１２ｃは、シンタクス要素のうち、スライスセグメントデータ（slice＿segment＿data）層以下のデータを、ＣＡＢＡＣ（Context-based Adaptive Binary Arithmetic Coding）によりエントロピー符号化するための機能である。実際には、エントロピー符号化部１１２には、この他に、スライスセグメントデータ層より上位層のシンタクス要素（管理情報）を、０次指数ゴロム符号（0th Order Exponential Golomb Code）を用いてエントロピー符号化するための機能も含まれるが、ここではその説明を省略する。
【００４１】
二値化部１１２ａは、シンタクス領域１８３から読み出したシンタクス要素を二値信号に変換する。算術符号化部１１２ｂは、変換された二値信号を基に、シンタクス要素の種類に応じた方式を用いてコンテキスト情報を算出する。コンテキスト情報とは、二値信号のそれぞれのビットが“０”または“１”となる確率値である。算術符号化部１１２ｂは、算出したコンテキスト情報を用いてシンタクス要素を算術符号化する。
【００４２】
コンテキスト管理部１１２ｃは、コンテキスト情報の算出処理を統括的に制御する。例えば、コンテキスト管理部１１２ｃは、算術符号化部１１２ｂの初期化、算術符号化部１１２ｂに対する初期コンテキスト情報の設定を行う。コンテキスト管理部１１２ｃは、２番目以降のＣＴＢラインの符号化の際には、初期コンテキスト情報を、テーブル構築部１５０によって生成され、コンテキスト領域１８４に格納されたコンテキストテーブルから読み込む。また、コンテキスト管理部１１２ｃは、上側および左側に隣接するＣＴＢのシンタクス要素が必要なシンタクス要素の符号化の際には、上側および左側に隣接するＣＴＢのシンタクス要素をシンタクス領域１８３から読み込む。また、コンテキスト管理部１１２ｃは、算術符号化部１１２ｂから出力される符号列を用いて符号化ストリームを生成し、符号化ストリームを符号化ストリーム領域１８５に格納する。
【００４３】
図４は、テーブル構築部の内部構成例を示す図である。テーブル構築部１５０は、二値化部１５１、算術符号化部１５２およびコンテキスト管理部１５３を有する。
テーブル構築部１５０は、ＣＴＢラインのＣＴＢのうち、先頭から２番目までのＣＴＢについてのコンテキスト情報を算出する。二値化部１５１は、シンタクス領域１８３から読み出したシンタクス要素を二値信号に変換する。算術符号化部１５２は、変換された二値信号を基に、シンタクス要素の種類に応じた方式を用いてコンテキスト情報を算出する。
【００４４】
コンテキスト管理部１５３は、コンテキスト情報の算出処理を統括的に制御する。例えば、コンテキスト管理部１５３は、ＣＴＢライン上の先頭からの２ＣＴＢについての符号化処理が終了すると、算出されたコンテキスト情報をコンテキスト領域１８４内のコンテキストテーブルに登録する。登録されたコンテキストテーブルは、エントロピー符号化部１１２，１２２，１３２，１４２が先頭から２番目以降のＣＴＢラインのエントロピー符号化を開始する際に参照される。
【００４５】
図５は、シンタクス領域およびコンテキスト領域の構成例を示す図である。なお、以下の説明では、ｎ番目のピクチャを「ピクチャＰｎ」と表す。また、１ピクチャ上のＣＴＢライン数をｍ本とし、ｘ番目のＣＴＢラインを「ＣＴＢラインＬ（ｘ−１）」と表す。すなわち、１ピクチャにはＣＴＢラインＬ０からＣＴＢラインＬ（ｍ−１）までのｍ本のＣＴＢラインが存在する。さらに、１ピクチャ上のＣＴＢの数をｋ個とし、ｘ番目のＣＴＢを「ＣＴＢ  ＢＬ（ｘ−１）」と表す。すなわち、１ピクチャにはＣＴＢ  ＢＬ０からＣＴＢ  ＢＬ（ｋ−１）までのｋ個のＣＴＢが存在する。
【００４６】
シンタクス領域１８３には、中間情報が格納される領域１８３ａ，１８３ｂと、上隣接シンタクス要素が格納される領域１８３ｃ，１８３ｄとが含まれる。
領域１８３ａ，１８３ｂのうち、一方には、あるピクチャについての中間情報が格納され、他方には、その次のピクチャについての中間情報が格納される。例えば、領域１８３ａにｎ番目のピクチャＰｎの中間情報が格納され、領域１８３ｂに（ｎ＋１）番目のピクチャＰ（ｎ＋１）の中間情報が格納されているとする。この場合、ｎ番目のピクチャＰｎのエントロピー符号化が完了すると、領域１８３ａは、（ｎ＋２）番目のピクチャＰ（ｎ＋２）の中間情報によって更新される。
【００４７】
領域１８３ａ，１８３ｂのそれぞれには、ピクチャ内のｋ個のＣＴＢ  ＢＬ１〜ＢＬ（ｋ−１）それぞれについての中間情報が格納される。中間情報とは、スライスセグメントデータ層以下のすべてのシンタクス要素を指す。例えば、中間情報には、“end＿of＿slice＿segment＿flag”，“sao＿merge＿flag”，“pred＿mode＿flag”，“part＿mode”，“cu＿skip＿flag”，“coeff＿abs＿level＿remaining”などのシンタクス要素が含まれる。
【００４８】
領域１８３ｃ，１８３ｄのうち、一方には、あるピクチャについての上隣接シンタクス要素が格納され、他方には、その次のピクチャについての上隣接シンタクス要素が格納される。例えば、領域１８３ｃにｎ番目のピクチャＰｎの上隣接シンタクス要素が格納され、領域１８３ｄに（ｎ＋１）番目のピクチャＰ（ｎ＋１）の上隣接シンタクス要素が格納されているとする。この場合、ｎ番目のピクチャＰｎのエントロピー符号化が完了すると、領域１８３ｃは、（ｎ＋２）番目のピクチャＰ（ｎ＋２）の上隣接シンタクス要素によって更新される。
【００４９】
領域１８３ｃ，１８３ｄのそれぞれには、ピクチャ内のｋ個のＣＴＢ  ＢＬ１〜ＢＬ（ｋ−１）それぞれについての上隣接シンタクス要素が格納される。エントロピー符号化の際、あるＣＴＢのコンテキスト情報は、上側に隣接するＣＴＢのシンタクス要素と、左側に隣接するＣＴＢのシンタクス要素とから決定される。上隣接シンタクス要素とは、それらのうち上側に隣接するＣＴＢのシンタクス要素である。
【００５０】
上隣接シンタクス要素には、具体的には、該当ＣＴＢ内の下端の各ＣＵ（Coding Unit）に対応する“cu＿skip＿frag”が含まれる。ＣＵとは、ＣＴＢを分割した符号化単位の領域である。ＨＥＶＣ規格では、ＣＴＢを再帰的な四分木ブロック分割に基づいて可変サイズのＣＵに分割することが可能になっている。“cu＿skip＿frag”は、現ＣＵがＰスライスまたはＢスライスの場合に、当該フラグ以降、マージの候補インデックスのシンタクス要素以外は存在しないか否かを示すフラグである。ＣＵが８画素×８画素の場合、上隣接シンタクス要素にはＣＴＢ当たり８個の“cu＿skip＿frag”が格納される。
【００５１】
また、領域１８３ｃ，１８３ｄには、“CtDepth”という制御値も格納される。“CtDepth”は、ＣＵの深さを示す情報であり、“split＿cu＿flag”というシンタクス要素の符号化に用いられる。領域１８３ｃ，１８３ｄのそれぞれには、ＣＴＢ当たり４個の“CtDepth”が格納される。なお、“split＿cu＿flag”は、指定された位置のＣＵが横および縦それぞれに分割されるか否かを示すフラグである。
【００５２】
コンテキスト領域１８４は、２つのコンテキスト領域１８４ａ，１８４ｂに分けられる。一方には、あるピクチャについてのコンテキストテーブルが格納され、他方には、その次のピクチャについてのコンテキストテーブルが格納される。例えば、コンテキスト領域１８４ａにｎ番目のピクチャＰｎのコンテキストテーブルが格納され、コンテキスト領域１８４ｂに（ｎ＋１）番目のピクチャＰ（ｎ＋１）のコンテキストテーブルが格納されているとする。この場合、ｎ番目のピクチャＰｎのエントロピー符号化が完了すると、コンテキスト領域１８４ａは、（ｎ＋２）番目のピクチャＰ（ｎ＋２）のコンテキストテーブルによって更新される。
【００５３】
コンテキスト領域１８４ａ，１８４ｂのそれぞれには、ピクチャ内のｍ本のＣＴＢラインＬ０〜Ｌ（ｍ−１）それぞれについてのコンテキストテーブルが格納される。コンテキストテーブルには、該当ＣＴＢラインの２個目のＣＴＢまでのエントロピー符号化によって得られた複数のコンテキスト情報（確率値）が格納される。あるＣＴＢラインに対応するコンテキストテーブルは、次のＣＴＢラインのエントロピー符号化の開始時に参照され、初期コンテキスト情報として利用される。さらに、コンテキストテーブルには、“sao＿merge＿left＿flag”，“sao＿merge＿up＿flag”，“split＿cu＿flag”，“cbf＿luna”，“cu＿transquant＿bypass”などのシンタクス要素も格納される。
【００５４】
次に、図６を用いてＷＰＰについて説明する。図６は、ＷＰＰによる符号化処理について説明するための参考図である。
ＨＥＶＣ規格では、ＣＡＢＡＣによるエントロピー符号化を効率よく並列実行できるようにするために、ＷＰＰが導入されている。ＷＰＰでは、あるＣＴＢラインのエントロピー符号化の開始タイミングは、その上のＣＴＢラインにおける２ＣＴＢのエントロピー符号化が終了した後になる。例えば図６において、ＣＴＢラインＬ１のエントロピー符号化は、ＣＴＢラインＬ０の２番目のＣＴＢのエントロピー符号化が終了した後になる。
【００５５】
このような仕組みにより、上側のＣＴＢラインのエントロピー符号化で得られたコンテキスト情報を、その下側のＣＴＢラインのエントロピー符号化での初期コンテキスト情報として利用できるようになる。例えば図６において、ある符号化コア（第１の符号化コア）は、ＣＴＢラインＬ０の２番目のＣＴＢのエントロピー符号化を実行すると、得られたコンテキストテーブルを所定の退避領域にストアする。別の符号化コア（第２の符号化コア）は、退避領域にストアされたコンテキストテーブルをロードし、そのコンテキストテーブルを用いてＣＴＢラインＬ１のエントロピー符号化を開始する。このような仕組みにより、隣接ＣＴＢライン間でコンテキストテーブルが引き継がれる。新たなＣＴＢラインのエントロピー符号化に、空間的に近い位置のＣＴＢのエントロピー符号化が行われた際の確率値が利用されることで、符号化効率が向上する。
【００５６】
しかし、このような仕組みでは、あるＣＴＢラインのエントロピー符号化の開始タイミングは、それより上側のＣＴＢラインのエントロピー符号化の開始タイミングより遅延する。エントロピー符号化の処理速度はＣＴＢラインごとに異なる場合があるが、たとえあるＣＴＢラインの処理速度がそれより上側のＣＴＢラインより高速であっても、上側のＣＴＢラインより遅延したタイミングでしかそのＣＴＢラインの処理を開始できない。このため、並列に符号化する際の処理効率を十分高くすることができないという問題がある。また、ＣＴＢラインごとの処理開始タイミングを上側のＣＴＢラインの処理の進捗状況に応じて決定するという高度な同期制御が必要となるため、処理が複雑化するという問題もある。
【００５７】
さらに、あるＣＴＢについての特定のシンタクス要素をエントロピー符号化するためには、図６において矢印で示すように、その上側に隣接するＣＴＢのシンタクス要素と左側に隣接するＣＴＢのシンタクス要素とが必要である。このため、あるＣＴＢのエントロピー符号化の実行タイミングは、その上側に隣接するＣＴＢのシンタクス要素の生成が完了した後になる。シンタクス要素の生成とエントロピー符号化とを１つの処理単位として複数のＣＴＢラインについて並列に実行した場合には、あるＣＴＢラインでの処理の実行位置は、それより上側のＣＴＢラインでの処理の完了位置を超えることはできない。このため、あるＣＴＢラインでの処理がそれより上側のＣＴＢラインでの処理より高速に可能であったとしても、そのＣＴＢラインの実際の処理速度はそれより上側のＣＴＢラインの処理速度によって制限されてしまう。したがって、処理効率が低下し、処理速度が低くなるという問題がある。
【００５８】
このような問題に対し、本実施の形態の画像処理回路１００は、エントロピー符号化の前に、全ＣＴＢラインについてのコンテキストテーブルとシンタクス要素とをＲＡＭ１８０に格納する。そして、符号化コア１１０，１２０，１３０，１４０は、ＲＡＭ１８０に格納されたコンテキストテーブルとシンタクス要素とを参照して、割り当てられたＣＴＢラインのエントロピー符号化を実行する。
【００５９】
図７，図８は、第２の実施の形態での符号化処理の例を示す図である。図７，図８では、ｎ番目のピクチャＰｎを符号化するものとする。なお、説明を簡単にするために、ピクチャＰｎは１０本のＣＴＢラインＬ０〜Ｌ９を含むものとする。
【００６０】
まず、図７に示すタイミングＴ１１において、シンタクス要素生成部１１１，１２１，１３１，１４１は、例えば、それぞれＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のシンタクス要素の生成を開始する。シンタクス要素生成部１１１，１２１，１３１，１４１は、生成されたシンタクス要素をシンタクス領域１８３に格納する。
【００６１】
また、タイミングＴ１２に示すように、テーブル構築部１５０は、ＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３についてのコンテキストテーブルの構築を開始する。ここで、テーブル構築部１５０は、あるＣＴＢラインについてのコンテキストテーブルの構築を、その上側のＣＴＢラインにおける２ＣＴＢのシンタクス要素の生成が完了したタイミングに、開始することができる。テーブル構築部１５０は、構築されたコンテキストテーブルをコンテキスト領域１８４に格納する。
【００６２】
シンタクス要素生成部１１１は、ＣＴＢラインＬ０のシンタクス要素の生成が終了すると、未処理のＣＴＢライン（例えばＣＴＢラインＬ４）のシンタクス要素の生成を開始する。他のシンタクス要素生成部１２１，１３１，１４１も同様に、あるＣＴＢラインのシンタクス要素の生成が終了すると、未処理のＣＴＢラインのシンタクス要素の生成を開始できる。また、テーブル構築部１５０は、新たなＣＴＢラインの２ＣＴＢまでのシンタクス要素が生成されると、そのＣＴＢラインについてのコンテキストテーブルを構築することができる。
【００６３】
このようにして、タイミングＴ１３に示すように、全ＣＴＢラインのシンタクス要素がシンタクス領域１８３に格納され、全ＣＴＢラインのコンテキストテーブルがコンテキスト領域１８４に格納される。なお、シンタクス要素の生成処理が実行されている間に、コンテキストテーブルの構築処理が並列に実行されることで、コンテキストテーブルの構築処理にかかる時間を隠蔽することができる。
【００６４】
次に、図８に示すタイミングＴ１４において、エントロピー符号化部１１２，１２２，１３２，１４２は、例えば、それぞれＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のエントロピー符号化処理を開始する。ここで、ＣＴＢラインＬ１，Ｌ２，Ｌ３のエントロピー符号化を開始するための必要なコンテキストテーブルは、コンテキスト領域１８４から読み出される。このため、エントロピー符号化部１１２，１２２，１３２，１４２は、ＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のエントロピー符号化をそれぞれ同時に開始することができる。これにより、エントロピー符号化の並列度が高まり、符号化効率が向上する。
【００６５】
また、ＣＴＢラインＬ１，Ｌ２，Ｌ３上のＣＴＢのエントロピー符号化に必要な上隣接シンタクス要素は、シンタクス領域１８３から読み出される。このため、エントロピー符号化部１１２，１２２，１３２，１４２のそれぞれによる処理を同期させる必要がなくなる。したがって、例えば、ＣＴＢラインＬ０での符号化処理速度より、その下側のＣＴＢラインＬ１での符号化処理速度の方が速い場合、ＣＴＢラインＬ１でのエントロピー符号化をＣＴＢラインＬ０より先に完了させることができる。これにより、全体としてエントロピー符号化処理にかかる時間を短縮できる。また、同期制御が不要になることで、制御効率も向上する。
【００６６】
また、ＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のうち、ＣＴＢラインＬ１のエントロピー符号化が最も早く終了したとする。この場合、タイミングＴ１５に示すように、ＣＴＢラインＬ１のエントロピー符号化を終了したエントロピー符号化部１２２には、次の処理対象としてＣＴＢラインＬ４が割り当てられる。エントロピー符号化部１２２は、コンテキスト領域１８４に格納されたＣＴＢラインＬ３のコンテキストテーブルと、シンタクス領域１８３に格納されたＣＴＢラインＬ３のシンタクス要素を用いて、ＣＴＢラインＬ４のエントロピー符号化を実行する。
【００６７】
このように、あるエントロピー符号化部がＣＴＢラインのエントロピー符号化を終了すると、そのエントロピー符号化部に未処理のＣＴＢラインを割り当てて、そのＣＴＢラインのエントロピー符号化を即座に実行させることができる。すなわち、ＣＴＢラインごとの処理速度に応じて、エントロピー符号化部に対して処理対象のＣＴＢラインを適応的に割り当てることが可能になる。これにより、エントロピー符号化処理の並列度が高まり、全体としてエントロピー符号化処理にかかる時間が短縮される。
【００６８】
なお、以上の図７，図８の例では、全ＣＴＢラインについてのシンタクス要素およびコンテキストテーブルが生成された後、エントロピー符号化が開始された。しかし、例えば、４ＣＴＢラインについてのシンタクス要素およびコンテキストテーブルが生成された後、それらの４ＣＴＢラインのエントロピー符号化が開始されてもよい。
【００６９】
例えば、シンタクス要素生成部１１１，１２１，１３１，１４１は、それぞれＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のシンタクス要素を生成する。これとともに、テーブル構築部１５０は、ＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のそれぞれについてのコンテキストテーブルを構築する。これらの処理が終了すると、エントロピー符号化部１１２，１２２，１３２，１４２は、生成されたシンタクス要素およびコンテキストテーブルに基づいて、それぞれＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のエントロピー符号化を開始する。これにより、ＣＴＢラインＬ０，Ｌ１，Ｌ２，Ｌ３のエントロピー符号化を非同期に実行できる。また、各エントロピー符号化の開始とともに、シンタクス要素生成部１１１，１２１，１３１，１４１は、それぞれＣＴＢラインＬ４，Ｌ５，Ｌ６，Ｌ７のシンタクス要素を生成し、テーブル構築部１５０は、ＣＴＢラインＬ４，Ｌ５，Ｌ６，Ｌ７のそれぞれについてのコンテキストテーブルを構築する。
【００７０】
ところで、図８のタイミングＴ１４でエントロピー符号化部１１２，１２２，１３２，１４２によるエントロピー符号化が開始されたとき、シンタクス要素生成部１１１，１２１，１３１，１４１は、次のピクチャＰ（ｎ＋１）についてのシンタクス要素の生成を並列に実行することができる。ここで、図９を用いてピクチャごとの処理タイミングについて説明する。
【００７１】
図９は、処理の実行タイミングの例を示すタイミングチャートである。なお、図９に示す各処理の開始タイミングは、実際にはＣＰＵ１６０によって管理される。
タイミングＴ２１において、シンタクス要素生成部１１１，１２１，１３１，１４１は、ピクチャＰｎについてのシンタクス要素の生成を開始する。また、タイミングＴ２１ａにおいて、テーブル構築部１５０は、ピクチャＰｎについてのコンテキストテーブルの構築を開始する。
【００７２】
タイミングＴ２２において、ピクチャＰｎについてのシンタクス要素の生成とコンテキストテーブルの構築とが完了したとする。すると、エントロピー符号化部１１２，１２２，１３２，１４２は、タイミングＴ２１〜Ｔ２２の期間でＲＡＭ１８０に格納されたシンタクス要素とコンテキストテーブルを参照して、ピクチャＰｎについてのエントロピー符号化を開始する。これとともに、シンタクス要素生成部１１１，１２１，１３１，１４１は、次のピクチャＰ（ｎ＋１）についてのシンタクス要素の生成を開始する。また、タイミングＴ２２ａにおいて、テーブル構築部１５０は、ピクチャＰ（ｎ＋１）についてのコンテキストテーブルの構築を開始する。
【００７３】
タイミングＴ２３において、ピクチャＰｎについてのエントロピー符号化、および、ピクチャＰ（ｎ＋１）についてのシンタクス要素の生成とコンテキストテーブルの構築が完了したとする。すると、エントロピー符号化部１１２，１２２，１３２，１４２は、タイミングＴ２２〜Ｔ２３の期間でＲＡＭ１８０に格納されたシンタクス要素とコンテキストテーブルを参照して、ピクチャＰ（ｎ＋１）についてのエントロピー符号化を開始する。これとともに、シンタクス要素生成部１１１，１２１，１３１，１４１は、次のピクチャＰ（ｎ＋２）についてのシンタクス要素の生成を開始する。また、タイミングＴ２３ａにおいて、テーブル構築部１５０は、ピクチャＰ（ｎ＋２）についてのコンテキストテーブルの構築を開始する。そして、タイミングＴ２４において、ピクチャＰ（ｎ＋１）についてのエントロピー符号化、および、ピクチャＰ（ｎ＋２）についてのシンタクス要素の生成とコンテキストテーブルの構築が完了する。
【００７４】
図９の例では、タイミングＴ２２〜Ｔ２３の期間において、ピクチャＰｎについてのエントロピー符号化と、ピクチャＰ（ｎ＋１）についてのシンタクス要素の生成およびコンテキストテーブルの構築が並列に実行される。また、タイミングＴ２３〜Ｔ２４の期間において、ピクチャＰ（ｎ＋１）についてのエントロピー符号化と、ピクチャＰ（ｎ＋２）についてのシンタクス要素の生成およびコンテキストテーブルの構築が並列に実行される。
【００７５】
本実施の形態では、符号化コア１１０，１２０，１３０，１４０のそれぞれの処理が、シンタクス要素の生成とエントロピー符号化とに分割される。そして、シンタクス要素の生成とエントロピー符号化のそれぞれの処理対象を、異なるピクチャのＣＴＢラインとすることができる。これにより、図９の例のように、あるピクチャについてのエントロピー符号化を実行している間に、次のピクチャについてのシンタクス要素の生成を実行し、生成されたシンタクス要素をＲＡＭ１８０に格納することができる。また、この期間に、テーブル構築部１５０に次のピクチャについてのコンテキストテーブルを構築させ、コンテキストテーブルをＲＡＭ１８０に格納させることもできる。
【００７６】
したがって、あるピクチャのエントロピー符号化の前に、そのピクチャの全ＣＴＢラインについてのシンタクス要素およびコンテキストテーブルをあらかじめＲＡＭ１８０に格納することが、符号化処理を遅延させる要因にはならない。すなわち、本実施の形態の処理により、あるピクチャ内でのＣＴＢライン間でのエントロピー符号化を同期させる必要がなくなる分だけ、符号化処理全体の処理時間を短縮することができる。
【００７７】
次に、画像処理回路１００の符号化処理についてフローチャートを用いて説明する。
図１０は、符号化処理全体の制御手順の例を示すフローチャートである。
［ステップＳ１１］ＣＰＵ１６０は、ｎ番目のピクチャＰｎについてのシンタクス要素の生成制御を実行する。
【００７８】
［ステップＳ１２］ＣＰＵ１６０は、（ｎ−１）番目のピクチャＰ（ｎ−１）についてのエントロピー符号化制御を実行する。
ステップＳ１１，Ｓ１２の各処理は、並行して実行される。
【００７９】
図１１は、シンタクス要素生成制御の処理例を示すフローチャートである。この図１１の処理は、図１０のステップＳ１１の処理に対応する。
［ステップＳ１１１］ＣＰＵ１６０は、シンタクス要素生成部１１１，１２１，１３１，１４１のそれぞれに対するＣＴＢラインの初期割り当てを行う。この処理では、ピクチャにおける先頭から４つのＣＴＢラインが、それぞれシンタクス要素生成部１１１，１２１，１３１，１４１に割り当てられる。
【００８０】
［ステップＳ１１２］ＣＰＵ１６０は、シンタクス要素生成部１１１，１２１，１３１，１４１に、割り当てたＣＴＢラインについてのシンタクス要素の生成を開始するように指示する。
【００８１】
［ステップＳ１１３］ＣＰＵ１６０は、テーブル構築部１５０に対して、該当ピクチャの各ＣＴＢラインについてのコンテキストテーブルの構築を開始するように指示する。
［ステップＳ１１４］ＣＰＵ１６０は、シンタクス要素生成部１１１，１２１，１３１，１４１のいずれか１つから、シンタクス要素生成の完了通知を受信したかを判定する。完了通知を受信していない場合、所定時間後にステップＳ１１４が再度実行される。完了通知を受信した場合、ステップＳ１１５の処理が実行される。
【００８２】
［ステップＳ１１５］ＣＰＵ１６０は、ピクチャの全ＣＴＢラインについてのシンタクス要素の生成処理が完了したかを判定する。完了していない場合、ステップＳ１１６の処理が実行され、完了した場合、ステップＳ１１７の処理が実行される。
【００８３】
［ステップＳ１１６］ＣＰＵ１６０は、ステップＳ１１４で受信した完了通知の送信元のシンタクス要素生成部に対して、未割り当てのＣＴＢラインのうちの先頭ＣＴＢラインを割り当てる。ＣＰＵ１６０は、当該シンタクス要素生成部に対して、割り当てたＣＴＢラインについてのシンタクス要素の生成を開始するように指示する。この後、ステップＳ１１４の処理が実行される。
【００８４】
［ステップＳ１１７］ＣＰＵ１６０は、ピクチャの全ＣＴＢラインについてのコンテキストテーブルの構築処理が完了したかを判定する。ＣＰＵ１６０は、テーブル構築部１５０からコンテキストテーブル構築処理の完了通知を受信した場合、構築処理が完了したと判定する。構築処理が完了していない場合、所定時間後にステップＳ１１７の処理が再度実行される。構築処理が完了した場合、１ピクチャについてのシンタクス要素生成制御が終了する。
【００８５】
図１２は、エントロピー符号化制御の処理例を示すフローチャートである。この図１２の処理は、図１０のステップＳ１２の処理に対応する。
［ステップＳ１２１］ＣＰＵ１６０は、エントロピー符号化部１１２，１２２，１３２，１４２のそれぞれに対するＣＴＢラインの初期割り当てを行う。この処理では、ピクチャにおける先頭から４つのＣＴＢラインが、それぞれエントロピー符号化部１１２，１２２，１３２，１４２に割り当てられる。
【００８６】
［ステップＳ１２２］ＣＰＵ１６０は、エントロピー符号化部１１２，１２２，１３２，１４２に、割り当てたＣＴＢラインについてのエントロピー符号化を開始するように指示する。
【００８７】
［ステップＳ１２３］ＣＰＵ１６０は、エントロピー符号化部１１２，１２２，１３２，１４２のいずれか１つから、エントロピー符号化の完了通知を受信したかを判定する。完了通知を受信していない場合、所定時間後にステップＳ１２３が再度実行される。完了通知を受信した場合、ステップＳ１２４の処理が実行される。
【００８８】
［ステップＳ１２４］ＣＰＵ１６０は、ピクチャの全ＣＴＢラインについてのエントロピー符号化処理が完了したかを判定する。完了していない場合、ステップＳ１２５の処理が実行される。完了した場合、１ピクチャについてのエントロピー符号化制御が終了する。
【００８９】
［ステップＳ１２５］ＣＰＵ１６０は、ステップＳ１２３で受信した完了通知の送信元のエントロピー符号化部に対して、未割り当てのＣＴＢラインのうちの先頭ＣＴＢラインを割り当てる。ＣＰＵ１６０は、当該エントロピー符号化部に対して、割り当てたＣＴＢラインについてのエントロピー符号化を開始するように指示する。この後、ステップＳ１２３の処理が実行される。
【００９０】
なお、ステップＳ１２１では、ＣＰＵ１６０は、エントロピー符号化部１１２，１２２，１３２，１４２のそれぞれに任意のＣＴＢラインを割り当ててもよい。例えば、ＣＰＵ１６０は、エントロピー符号化部１１２，１２２，１３２，１４２のそれぞれに対し、互いに間隔が空いたＣＴＢラインを割り当ててもよい。また、ステップＳ１２５でも、ＣＰＵ１６０は、完了通知の送信元のエントロピー符号化部に対して、未割り当てのＣＴＢラインのうちの任意のＣＴＢラインを割り当ててもよい。
【００９１】
図１３は、コンテキストテーブル構築の処理例を示すフローチャートである。図１３の処理は、図１１のステップＳ１１３でＣＰＵ１６０から送信されたコンテキストテーブル構築の開始指示をテーブル構築部１５０が受信したときに、開始される。
【００９２】
［ステップＳ２１］テーブル構築部１５０は、処理対象のＣＴＢについてのシンタクス要素をシンタクス領域１８３から読み出す。テーブル構築部１５０は、読み出したシンタクス要素に基づいてエントロピー符号化処理を実行する。なお、ステップＳ２１の初回実行時の処理対象は、ピクチャ内の左上のＣＴＢとされる。
【００９３】
［ステップＳ２２］テーブル構築部１５０は、処理対象のＣＴＢの位置がコンテキストテーブルの書き込みを行うべき位置かを判定する。書き込みを行うべき位置と判定した場合、ステップＳ２３の処理が実行される。書き込みを行うべき位置でないと判定した場合、ステップＳ２４の処理が実行される。なお、書き込みを行うべき位置とは、ＣＴＢラインにおける２個目のＣＴＢである。
【００９４】
［ステップＳ２３］テーブル構築部１５０は、ステップＳ２１で得られたコンテキスト情報をコンテキスト領域１８４のコンテキストテーブルに書き込む。
［ステップＳ２４］テーブル構築部１５０は、ピクチャの全ＣＴＢラインについてのコンテキストテーブルの構築が終了したかを判定する。終了していない場合、ステップＳ２５の処理が実行され、終了した場合、ステップＳ２８の処理が実行される。
【００９５】
［ステップＳ２５］テーブル構築部１５０は、処理対象のＣＴＢの位置がコンテキストテーブルの書き込みを行うべき位置かを判定する。この判定は、ステップＳ２２での判定結果を用いて行うことができる。書き込みを行うべき位置と判定した場合、ステップＳ２６の処理が実行される。書き込みを行うべき位置でないと判定した場合、ステップＳ２７の処理が実行される。
【００９６】
［ステップＳ２６］テーブル構築部１５０は、処理対象を次のＣＴＢラインの先頭のＣＴＢに更新する。この後、更新後の処理対象のＣＴＢについて、ステップＳ２１の処理が実行される。
【００９７】
［ステップＳ２７］テーブル構築部１５０は、処理対象のＣＴＢの水平方向の位置を１ＣＴＢ分だけ右側に更新する。この後、更新後の処理対象のＣＴＢについて、ステップＳ２１の処理が実行される。
【００９８】
［ステップＳ２８］テーブル構築部１５０は、コンテキストテーブル構築の完了通知をＣＰＵ１８０に送信する。
図１４は、エントロピー符号化の処理例を示すフローチャートである。エントロピー符号化部１１２，１２２，１３２，１４２のそれぞれによるエントロピー符号化の処理内容は、同じである。そこで、ここでは代表して、エントロピー符号化部１１２での処理についてのみ説明する。図１４の処理は、図１２のステップＳ１２２またはステップＳ１２５でＣＰＵ１６０から送信されたエントロピー符号化の開始指示をエントロピー符号化部１１２が受信したときに、開始される。
【００９９】
［ステップＳ３１］エントロピー符号化部１１２は、ＣＰＵ１６０から割り当てられたＣＴＢラインの上側のＣＴＢラインについてのコンテキスト情報を、コンテキスト領域１８４のコンテキストテーブルから読み出す。エントロピー符号化部１１２は、読み出したコンテキスト情報を、割り当てられたＣＴＢラインについての初期コンテキスト情報に設定する。なお、処理対象が先頭のＣＴＢラインである場合、あらかじめ決められた値が初期コンテキスト情報に設定される。
【０１００】
［ステップＳ３２］エントロピー符号化部１１２は、処理対象のＣＴＢの上側に隣接するＣＴＢについてのシンタクス要素“cu＿skip＿frag”と、同ＣＴＢについての制御値“CtDepth”とを、シンタクス領域１８３から読み出す。なお、ステップＳ３２の初回実行時の処理対象は、ＣＰＵ１６０から割り当てられたＣＴＢラインにおける先頭ＣＴＢとされる。また、処理対象が先頭のＣＴＢラインである場合、ステップＳ３２はスキップされる。
【０１０１】
［ステップＳ３３］エントロピー符号化部１１２は、処理対象のＣＴＢについてのシンタクス要素をシンタクス領域１８３から読み出し、読み出したシンタクス要素をエントロピー符号化する。また、エントロピー符号化部１１２は、シンタクス要素のうち“split＿cu＿flag”，“cu＿skip＿frag”をエントロピー符号化する際には、左側に隣接するＣＴＢについての“cu＿skip＿frag”，“CtDepth”をシンタクス領域１８３から読み出す。そして、エントロピー符号化部１１２は、左側に隣接するＣＴＢについての“cu＿skip＿frag”，“CtDepth”と、ステップＳ３２で読み出した上側に隣接するＣＴＢについての“cu＿skip＿frag”，“CtDepth”とを用いて、“split＿cu＿flag”，“cu＿skip＿frag”をエントロピー符号化する。
【０１０２】
［ステップＳ３４］エントロピー符号化部１１２は、処理対象のＣＴＢがＣＴＢラインの終端かを判定する。終端でない場合、ステップＳ３５の処理が実行され、終端である場合、ステップＳ３６の処理が実行される。
【０１０３】
［ステップＳ３５］エントロピー符号化部１１２は、処理対象のＣＴＢの水平方向の位置を１ＣＴＢ分だけ右側に更新する。この後、更新後の処理対象のＣＴＢについて、ステップＳ３２の処理が実行される。
【０１０４】
［ステップＳ３６］エントロピー符号化部１１２は、エントロピー符号化の完了通知をＣＰＵ１６０に送信する。
上記の図１４の処理によれば、エントロピー符号化部１１２は、すでに全ＣＴＢライン分算出されたコンテキストテーブルが格納されたコンテキスト領域１８４から、上側に隣接するＣＴＢラインについてのコンテキストテーブルを読み出す。そして、エントロピー符号化部１１２は、読み出したコンテキストテーブルを用いてエントロピー符号化処理を開始する。これにより、エントロピー符号化１１２は、ＣＰＵ１６０からエントロピー符号化の開始指示を受信すると、処理対象のＣＴＢラインのエントロピー符号化を、その上側に隣接するＣＴＢラインのエントロピー符号化の進行に関係なく、即座に開始できる。
【０１０５】
したがって、図１２のステップＳ１２２でエントロピー符号化部１１２，１２２，１３２，１４２にエントロピー符号化の開始が指示されると、エントロピー符号化部１１２，１２２，１３２，１４２はエントロピー符号化を同時に開始できる。これにより、エントロピー符号化の処理の並列度を向上させることができ、全体の処理にかかる時間を短縮できる。また、エントロピー符号化部１１２，１２２，１３２，１４２の間で処理の同期をとる必要がなくなり、制御が簡易化される。さらに、図１２のステップＳ１２５であるエントロピー符号化部に新たなＣＴＢラインが割り当てられた際にも、そのエントロピー符号化部は新たなＣＴＢラインのエントロピー符号化を即座に開始でき、その処理時間を短縮できる。
【０１０６】
また、図１４の処理によれば、エントロピー符号化部１１２は、すでに全ＣＴＢライン分算出されたシンタクス要素が格納されたシンタクス領域１８３から、上側に隣接するＣＴＢのシンタクス要素を読み出して処理を実行する。このため、ＣＴＢラインのエントロピー符号化を実行している間に、上側のＣＴＢラインでのシンタクス要素作成の待ち合わせが発生しない。したがって、エントロピー符号化部１１２は、割り当てられたＣＴＢラインの先頭から終端まで、途中で処理を停止することなくエントロピー符号化を実行できる。
【０１０７】
これにより、図１２のステップＳ１２２でエントロピー符号化部１１２，１２２，１３２，１４２がエントロピー符号化を同時に開始してから、それらの間で同期がとられることなくエントロピー符号化が実行される。ここで、図６に示した方法では、エントロピー符号化部１１２，１２２，１３２，１４２によるエントロピー符号化が並列に実行されたとしても、その中の最も先頭側のＣＴＢラインのエントロピー符号化が最初に終了する。これに対して、本実施の形態ではこのような制約は存在せず、エントロピー符号化部１１２，１２２，１３２，１４２のうちのどれでも、ＣＴＢラインの終端までのエントロピー符号化を先に終了し得る。そして、図１２のステップＳ１２２の後の最初のステップＳ１２３では、エントロピー符号化部１１２，１２２，１３２，１４２のうち、どのエントロピー符号化部からも完了通知を受信し得る。したがって、エントロピー符号化の並列度が向上し、エントロピー符号化にかかる時間を短縮することができる。
【０１０８】
さらに、完了通知を受信したエントロピー符号化部には、次の未処理のＣＴＢラインが割り当てられ、そのＣＴＢラインのエントロピー符号化が即座に開始される。したがって、エントロピー符号化部に対して適応的にＣＴＢラインを割り当てることができ、処理効率が向上し、処理にかかる時間を短縮することができる。
【０１０９】
次に、上記の画像処理回路１００を含む装置の例について説明する。図１５は、画像処理回路を含む情報処理装置のハードウェア構成例を示す図である。情報処理装置２００は、例えば、スマートホン、タブレット型端末、ノート型ＰＣ（Personal Computer）などの可搬型の情報処理端末として実現される。
【０１１０】
情報処理装置２００は、プロセッサ２０１によって装置全体が制御されている。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、またはＰＬＤである。またプロセッサ２０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【０１１１】
プロセッサ２０１には、バスを介して、ＲＡＭ２０２と、前述の画像処理回路１００を含む複数の周辺機器が接続されている。
ＲＡＭ２０２は、情報処理装置２００の主記憶装置として使用される。ＲＡＭ２０２には、プロセッサ２０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、プロセッサ２０１による処理に必要な各種データが格納される。
【０１１２】
プロセッサ２０１に接続されている周辺機器としては、画像処理回路１００の他、ＨＤＤ２０３、通信インタフェース２０４、読み取り装置２０５、入力装置２０６、カメラ２０７および表示装置２０８がある。
【０１１３】
ＨＤＤ２０３は、情報処理装置２００の補助記憶装置として使用される。ＨＤＤ２０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【０１１４】
通信インタフェース２０４は、ネットワーク２０４ａを介して他の装置との間でデータの送受信を行う。入力装置２０６は、入力操作に応じた信号をプロセッサ２０１に送信する。入力装置２０６としては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タッチパッド、トラックボールなどがある。
【０１１５】
読み取り装置２０５には、可搬型記録媒体２０５ａが脱着される。読み取り装置２０５は、可搬型記録媒体２０５ａに記録されたデータを読み取ってプロセッサ２０１に送信する。可搬型記録媒体２０５ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【０１１６】
カメラ２０７は、撮像素子によって画像を撮像する。画像処理回路１００は、例えば、カメラ２０７によって撮像された画像の圧縮符号化処理を行う。なお、画像処理回路１００は、例えば、ネットワーク２０４ａや可搬型記録媒体２０５ａを介して情報処理装置２００に入力された画像の圧縮符号化処理を行ってもよい。表示装置２０８は、プロセッサ２０１からの命令にしたがって画像を表示する。表示装置としては、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどがある。
【０１１７】
なお、例えば、画像処理回路１００のＣＰＵ１６０の処理の少なくとも一部は、プロセッサ２０１によって実行されてもよい。また、ＣＰＵ１６０の処理に限らず、画像処理回路１００の処理の少なくとも一部が、プロセッサ２０１によって実行されてもよい。さらに、画像処理回路１００が情報処理装置２００に搭載される代わりに、画像処理回路１００の処理全体がプロセッサ２０１によって実行されてもよい。これらのいずれの場合も、プロセッサ２０１は、所定のプログラムを実行することで上記の処理を実現する。
【０１１８】
［第３の実施の形態］
図１６は、第３の実施の形態に係る情報処理装置の構成例を示す図である。以下、第３の実施の形態について、第２の実施の形態と異なる点についてのみ説明し、共通する事項については説明を省略する。
【０１１９】
第３の実施の形態に係る情報処理装置２００ａは、図１５に示した情報処理装置２００を次のように変形したものである。情報処理装置２００ａは、１つの画像処理回路１００の代わりに、複数の画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄを有している点で、図１５に示した情報処理装置２００と異なる。画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄの内部構成は、第２の実施の形態の画像処理回路１００と同じである。なお、画像処理回路の個数は４個に限らず、２以上の任意の個数であってよい。
【０１２０】
情報処理装置２００ａのプロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄの符号化処理を統合的に制御する。プロセッサ２０１は、最初に、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄに、それぞれ個別のタイルを割り当てる。タイルとは、ピクチャを分割した方形領域である。以下、本実施の形態では、ピクチャをそれぞれ同じ大きさの４つのタイルに分割するものとする。画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄは、割り当てられたタイルを処理対象として第２の実施の形態の画像処理回路１００と同様の符号化処理を実行する。
【０１２１】
ここで、図１７〜図１９を用いて、第３の実施の形態での符号化処理例について説明する。まず、図１７は、各タイルでのシンタクス要素の生成処理例を示す図である。
プロセッサ２０１は、例えば、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄに、それぞれタイル２１１，２１２，２１３，２１４を割り当てる。画像処理回路１００ａは、その内部のシンタクス要素生成部の処理により、タイル２１１の全ＣＴＢラインについてのシンタクス要素を生成する。生成されたシンタクス要素は、画像処理回路１００ａ内のＲＡＭのシンタクス領域１８３＿１に格納される。また、画像処理回路１００ａは、その内部のテーブル構築部１５０により、タイル２１１の全ＣＴＢラインについてのコンテキストテーブルを構築する。構築されたコンテキストテーブルは、画像処理回路１００ａのＲＡＭのコンテキスト領域１８４＿１に格納される。
【０１２２】
画像処理回路１００ｂ，１００ｃ，１００ｄでも、それぞれタイル２１２，２１３，２１４を処理対象として画像処理回路１００ａと同様の処理が実行される。画像処理回路１００ｂでは、全ＣＴＢラインについてのシンタクス要素およびコンテキストテーブルが、画像処理回路１００ｂのＲＡＭのシンタクス領域１８３＿２およびコンテキスト領域１８４＿２にそれぞれ格納される。画像処理回路１００ｃでは、全ＣＴＢラインについてのシンタクス要素およびコンテキストテーブルが、画像処理回路１００ｃのＲＡＭのシンタクス領域１８３＿３およびコンテキスト領域１８４＿３にそれぞれ格納される。画像処理回路１００ｄでは、全ＣＴＢラインについてのシンタクス要素およびコンテキストテーブルが、画像処理回路１００ｄのＲＡＭのシンタクス領域１８３＿４およびコンテキスト領域１８４＿４にそれぞれ格納される。
【０１２３】
図１８は、各タイルでのエントロピー符号化処理例を示す図である。図１７の処理により、タイル２１１，２１２，２１３，２１４のそれぞれについてシンタクス要素の生成とコンテキストテーブルの構築が終了すると、図１７に示すようにタイル２１１，２１２，２１３，２１４のエントロピー符号化が開始される。
【０１２４】
すなわち、画像処理回路１００ａは、その内部のエントロピー符号化部の処理により、タイル２１１の全ＣＴＢラインについてのシンタクス要素のエントロピー符号化を実行する。このとき、画像処理回路１００ａのエントロピー符号化部は、先頭以外のＣＴＢラインのエントロピー符号化の開始時には、その上側に隣接するＣＴＢラインについてのコンテキストテーブルをコンテキスト領域１８４＿１から読み込む。画像処理回路１００ａのエントロピー符号化部は、読み込んだコンテキストテーブルを初期コンテキスト情報に設定して処理対象のＣＴＢラインのエントロピー符号化を開始する。また、画像処理回路１００ａのエントロピー符号化部は、“split＿cu＿flag”，“cu＿skip＿frag”をエントロピー符号化するために、上側のＣＴＢラインの各ＣＴＢについての“cu＿skip＿frag”，“CtDepth”をシンタクス領域１８３＿１から読み出す。
【０１２５】
画像処理回路１００ｂ，１００ｃ，１００ｄでも、それぞれタイル２１２，２１３，２１４を処理対象として画像処理回路１００ａと同様の処理が実行される。すなわち、画像処理回路１００ｂのエントロピー符号化部によってタイル２１２の先頭以外のＣＴＢラインがエントロピー符号化される際には、コンテキスト領域１８４＿２から上側のＣＴＢラインについてのコンテキストテーブルが読み出される。また、シンタクス領域１８３＿２から上側のＣＴＢラインの各ＣＴＢについての“cu＿skip＿frag”，“CtDepth”が読み出される。
【０１２６】
画像処理回路１００ｃのエントロピー符号化部によってタイル２１３の先頭以外のＣＴＢラインがエントロピー符号化される際には、コンテキスト領域１８４＿３から上側のＣＴＢラインについてのコンテキストテーブルが読み出される。また、シンタクス領域１８３＿３から上側のＣＴＢラインの各ＣＴＢについての“cu＿skip＿frag”，“CtDepth”が読み出される。
【０１２７】
画像処理回路１００ｄのエントロピー符号化部によってタイル２１４の先頭以外のＣＴＢラインがエントロピー符号化される際には、コンテキスト領域１８４＿４から上側のＣＴＢラインについてのコンテキストテーブルが読み出される。また、シンタクス領域１８３＿４から上側のＣＴＢラインの各ＣＴＢについての“cu＿skip＿frag”，“CtDepth”が読み出される。
【０１２８】
図１９は、あるタイルでのエントロピー符号化が完了した場合の処理例を示す図である。タイル２１１，２１２，２１３，２１４のそれぞれの画像の複雑度などに応じて、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれによるエントロピー符号化にかかる時間は異なる。ここで、例として、画像処理回路１００ｂによるタイル２１２のエントロピー符号化が最初に完了したとする。このとき、プロセッサ２０１は、エントロピー符号化が完了していないいずれかのタイルにおけるエントロピー符号化を、画像処理回路１００ｂに補助させる。ここでは例として、タイル２１４におけるエントロピー符号化を画像処理回路１００ｂに補助させるものとする。
【０１２９】
プロセッサ２０１は、例えば、タイル２１４におけるエントロピー符号化が未実行のＣＴＢラインのうち、終端から２ＣＴＢラインのエントロピー符号化を画像処理回路１００ｂのエントロピー符号化部に実行させる。ここで、画像処理回路１００ｄのシンタクス領域１８３＿４には、タイル２１４の全ＣＴＢラインについてのシンタクス要素が格納済みであり、コンテキスト領域１８４＿４には、タイル２１４の全ＣＴＢラインについてのコンテキストテーブルが格納済みである。そこで、プロセッサ２０１は、タイル２１４の終端から２ＣＴＢラインのエントロピー符号化に必要な情報を、画像処理回路１００ｄのシンタクス領域１８３＿４およびコンテキスト領域１８４＿４から、画像処理回路１００ｂのシンタクス領域１８３＿２およびコンテキスト領域１８４＿２にそれぞれ転送する。そして、プロセッサ２０１は、画像処理回路１００ｂのエントロピー符号化部にタイル２１４の終端から２ＣＴＢラインのエントロピー符号化を実行させる。
【０１３０】
画像処理回路１００ｂのエントロピー符号化部は、コンテキスト領域１８４＿２に転送されたコンテキストテーブルを用いて、タイル２１４の終端から２ＣＴＢラインのエントロピー符号化を即座に開始できる。また、画像処理回路１００ｂのエントロピー符号化部は、シンタクス領域１８３＿２に転送された情報を用いて、タイル２１４の終端から２ＣＴＢラインのエントロピー符号化を、ＣＴＢライン間で同期をとらずに並列に実行できる。さらに、画像処理回路１００ｂのエントロピー符号化部と、画像処理回路１００ｄのエントロピー符号化部との間で、エントロピー符号化を同期させる必要もない。したがって、画像処理回路１００ｂ，１００ｄの両方によってタイル２１４のエントロピー符号化を並列に実行させることができ、簡単な制御によりエントロピー符号化にかかる時間を短縮できる。
【０１３１】
図２０は、プロセッサによるシンタクス要素生成の制御手順の例を示すフローチャートである。
［ステップＳ２０１］プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれに対して処理対象のタイルを割り当てる。
【０１３２】
［ステップＳ２０２］プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄに対して、割り当てたタイルのシンタクス要素生成処理を開始するように指示する。この指示は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵに通知される。これにより、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵは、図１１と同様の手順により、割り当てられたタイルについてのシンタクス要素の作成とコンテキストテーブルの構築とが実行されるように制御する。
【０１３３】
［ステップＳ２０３］画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵは、割り当てられたタイルについてのシンタクス要素の作成およびコンテキストテーブルの構築が完了すると、プロセッサ２０１に対して完了通知を送信する。プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのすべてから完了通知を受信したかを判定する。完了通知を未受信の画像処理回路がある場合、ステップＳ２０３の処理が所定時間後に実行される。そして、完了通知を画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのすべてから受信した場合、図２０の処理は終了する。
【０１３４】
図２１は、プロセッサによるエントロピー符号化の制御手順の例を示すフローチャートである。なお、図２１の処理と並行して、プロセッサ２０１は、次のピクチャの各タイルについてのシンタクス要素生成およびコンテキストテーブル構築を、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのシンタクス生成部およびテーブル構築部に実行させる。
【０１３５】
［ステップＳ２１１］プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれに対するタイルの初期割り当てを行う。
［ステップＳ２１２］プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれに、割り当てたタイルについてのエントロピー符号化処理を開始するように指示する。この指示は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵに通知される。これにより、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵは、図１２と同様の手順により、割り当てられたタイルについてのエントロピー符号化が実行されるように制御する。
【０１３６】
［ステップＳ２１３］画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵは、割り当てられたタイルについてのエントロピー符号化が完了すると、プロセッサ２０１に対して完了通知を送信する。プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのいずれかから完了通知を受信したかを判定する。完了通知を受信していない場合、所定時間後にステップＳ２１３が再度実行される。完了通知を受信した場合、ステップＳ２１４の処理が実行される。
【０１３７】
［ステップＳ２１４］プロセッサ２０１は、全タイルについてのエントロピー符号化が完了したかを判定する。完了していない場合、ステップＳ２１５の処理が実行される。完了した場合、図２１の処理は終了する。
【０１３８】
［ステップＳ２１５］プロセッサ２０１は、画像処理回路１００ａ，１００ｂ，１００ｃ，１００ｄのそれぞれのＣＰＵから、各タイルでの残りＣＴＢライン数を取得する。残りＣＴＢライン数とは、エントロピー符号化が開始されていないＣＴＢラインの数である。
【０１３９】
［ステップＳ２１６］プロセッサ２０１は、ステップＳ２１５で取得した残りＣＴＢライン数の最大値Ｘが所定の閾値以上かを判定する。閾値は、１以上の所定値に設定される。最大値Ｘが閾値以上の場合、ステップＳ２１７の処理が実行される。最大値Ｘが閾値未満の場合、ステップＳ２１３の処理が実行される。
【０１４０】
［ステップＳ２１７］プロセッサ２０１は、残りＣＴＢライン数が最大値Ｘのタイルをエントロピー符号化している画像処理回路を特定する。また、プロセッサ２０１は、そのタイルにおける終端からＸ以下の数のＣＴＢラインを、新たに割り当てるＣＴＢラインとして特定する。例えば、プロセッサ２０１は、そのタイルにおける終端からＸ／２だけのＣＴＢラインを特定する。
【０１４１】
プロセッサ２０１は、特定した画像処理回路のシンタクス領域およびコンテキスト領域から、特定したＣＴＢラインのエントロピー符号化に必要な情報を読み出す。プロセッサ２０１は、読み出した情報を、ステップＳ２１３での完了通知の送信元の画像処理回路のシンタクス領域およびコンテキスト領域に転送する。
【０１４２】
［ステップＳ２１８］プロセッサ２０１は、転送先の画像処理回路のＣＰＵに対して、特定したＣＴＢラインのエントロピー符号化処理を開始するように指示する。これにより、転送先の画像処理回路の各エントロピー符号化部によって、特定したＣＴＢラインのエントロピー符号化が実行される。この後、ステップＳ２１３の処理が実行される。
【０１４３】
なお、上記の各実施の形態に示した装置（例えば、画像符号化装置１０、画像処理回路１００，１００ａ，１００ｂ，１００ｃ，１００ｄ、情報処理装置２００，２００ａ）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ（Compact Disc）−ＲＯＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【０１４６】
１０  画像符号化装置
１１  記憶部
１１ａ  シンタクス領域
１２  演算部
２０  画像
２１，２２  分割領域
Ｓ１，Ｓ２  ステップ
【図１】
2016219913.tif 000003
【図２】
2016219913.tif 000004
【図３】
2016219913.tif 000005
【図４】
2016219913.tif 000006
【図５】
2016219913.tif 000007
【図６】
2016219913.tif 000008
【図７】
2016219913.tif 000009
【図８】
2016219913.tif 000010
【図９】
2016219913.tif 000011
【図１０】
2016219913.tif 000012
【図１１】
2016219913.tif 000013
【図１２】
2016219913.tif 000014
【図１３】
2016219913.tif 000015
【図１４】
2016219913.tif 000016
【図１５】
2016219913.tif 000017
【図１６】
2016219913.tif 000018
【図１７】
2016219913.tif 000019
【図１８】
2016219913.tif 000020
【図１９】
2016219913.tif 000021
【図２０】
2016219913.tif 000022
【図２１】
2016219913.tif 000023