(57)【要約】【課題】二値算術符号化処理部が入力する二値データを二値データの符号量を用いて選択し、並列化による二値算術符号化の処理速度を向上させる。【解決手段】入力映像を符号化する符号化装置であって、入力映像を符号化する映像符号化手段と、前記映像符号化手段により符号化された符号化データに対して二値化処理を行い、二値データと二値データ符号量を出力する二値化手段と、前記二値化手段から出力される二値データを入力として二値算術符号化処理を行うＮ個の二値算術符号化手段と、前記二値化手段から出力される二値データ符号量を所定数の画素ブロック群ごとにカウントし、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化手段を制御する制御手段とを設け、ブロック行毎の二値データ量を用いてブロック行を並び替えて、算術符号化の並列化処理速度を向上させるようにする。【選択図】図１
2014060605.tif 000002
【特許請求の範囲】
【請求項１】
入力映像を符号化する符号化装置であって、
入力映像を符号化する映像符号化手段と、
前記映像符号化手段により符号化された符号化データに対して二値化処理を行い、二値データと二値データ符号量を出力する二値化手段と、
前記二値化手段から出力される二値データを入力として二値算術符号化処理を行うＮ個の二値算術符号化手段と、
前記二値化手段から出力される二値データ符号量を所定数の画素ブロック群ごとにカウントし、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化手段を制御する制御手段とを具備することを特徴とする符号化装置。
【請求項２】
前記制御手段は、前記所定数の画素ブロック群ごとのカウント結果に基づいて前記所定数の画素ブロック群をソートすることを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記制御手段は、二値算術符号化処理を開始する並び替え情報をバイトストリームとして出力するよう二値算術符号化を制御することを特徴とする請求項１または２に記載の符号化装置。
【請求項４】
データを多重化する多重化手段を具備し、
前記制御手段は、前記二値算術符号化処理を開始した所定数の画素ブロック群の処理順を前記二値算術符号化手段が出力するバイトストリームに多重化するよう前記多重化手段を制御することを特徴とする請求項１または２に記載の符号化装置。
【請求項５】
前記二値化手段が出力する二値データ符号量を記憶する記憶手段と、
前記記憶手段に記憶される二値データ符号量を所定数の画素ブロック群ごとにソートし、ソート結果を出力するソート手段を具備し、
前記制御手段は、前記ソート手段のソート結果に従い、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化手段を制御することを特徴とする請求項１乃至４の何れか１項に記載の符号化装置。
【請求項６】
前記ソート手段は、前記二値化手段が出力する二値データ符号量を所定数の画素ブロック群でソートする際に、符号化対象ピクチャの最後の画素ブロックを含む所定数の画素ブロック群はソートしないことを特徴とする請求項５に記載の符号化装置。
【請求項７】
前記ソート手段は、前記二値化手段が出力する二値データ符号量をＮ個の所定数の画素ブロック群でソートし、
前記制御手段は、前記ソート手段によりソートされたＮ個の二値データのうち、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化手段を制御することを特徴とする請求項５に記載の符号化装置。
【請求項８】
前記ソート手段は、前記二値化手段が出力する二値データ符号量を所定数の画素ブロック群でソートする際に、符号化対象ピクチャの最後の画素ブロックを含む所定数の画素ブロック群はソートしないことを特徴とする請求項５に記載の符号化装置。
【請求項９】
前記制御手段は、ソート対象であるＮ個の所定数の画素ブロック群同士の二値データ符号量の差分が所定の範囲の場合は、所定数の画素ブロック群を二値算術符号化処理する順番を変更しないよう前記二値算術符号化手段を制御することを特徴とする請求項５に記載の符号化装置。
【請求項１０】
前記制御手段は、前記ソート手段のソート結果に従い、Ｎ個の二値データのうち二値データ符号量が少ない所定数の画素ブロック群から前記二値算術符号化手段の処理を開始するよう制御することを特徴とする請求項５に記載の符号化装置。
【請求項１１】
前記ソート手段のソート結果において、ソート対象であるＮ個の所定数の画素ブロック群同士の二値データ符号量の差分が所定の範囲の場合は、所定数の画素ブロック群の二値算術符号化処理する順番を変更しないことを特徴とする請求項９に記載の符号化装置。
【請求項１２】
入力映像を符号化する符号化方法であって、
入力映像を符号化する映像符号化工程と、
前記映像符号化工程により符号化された符号化データに対して二値化処理を行い、二値データと二値データ符号量を出力する二値化工程と、
前記二値化工程から出力される二値データを入力として二値算術符号化処理を行うＮ個の二値算術符号化工程と、
前記二値化工程から出力される二値データ符号量を所定数の画素ブロック群ごとにカウントし、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化工程を制御する制御工程とを具備することを特徴とする符号化方法。
【請求項１３】
入力映像を符号化する符号化方法をコンピュータに実行させるプログラムであって、
入力映像を符号化する映像符号化工程と、
前記映像符号化工程により符号化された符号化データに対して二値化処理を行い、二値データと二値データ符号量を出力する二値化工程と、
前記二値化工程から出力される二値データを入力として二値算術符号化処理を行うＮ個の二値算術符号化工程と、
前記二値化工程から出力される二値データ符号量を所定数の画素ブロック群ごとにカウントし、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化工程を制御する制御工程とをコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は符号化装置及び符号化方法に関し、特に、算術符号化を複数の符号化部を使用して並列で行うために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、高能率な符号化方式であるＨ.２６４方式の後継技術の提案がなされている。Ｈ．２６４方式及び後継技術ではエントロピー符号化に二値算術符号化を用いたＣＡＢＡＣ（Context−Based Adaptive Binary Arithmetic Coding）と呼ばれる方式が採用されている。ＣＡＢＡＣは、動きベクトル、直交変換係数、量子化パラメータ、予測モード等の入力を該符号化方式で定められたテーブルに基づき二値データに変換する二値化部と、該二値データを入力として二値算術符号化を行い符号を生成する二値算術符号化部に分けられる。Ｈ.２６４では二値算術符号化処理を行う際は、アルゴリズムの性質上処理時間がかかるため、二値化部及び他の符号化部とは非同期に動作させることが多い。
【０００３】
Ｈ．２６４／ＭＰＥＧ−４ ｐａｒｔ１０（以下、Ｈ．２６４と称す）では、１枚のフレームを複数のスライスと呼ばれる単位に分割し、各スライスをそれぞれ個別の演算部を用いて並列処理させることが可能である。前述のように、各スライス単位に演算を並列化させることで、演算に掛かる処理時間の短縮を図ることができる。
【０００４】
しかしながら、Ｈ．２６４のＭａｉｎ Ｐｒｏｆｉｌｅでは、ＣＡＢＡＣ（Context−Based Adaptive Binary Arithmetic Coding）と呼ばれるエントロピー符号化方式を採用している。このＣＡＢＡＣ処理では隣接マクロブロックの情報が必要となるが、フレーム内を複数のスライスに分割することで、他のスライスの情報を参照することができず、符号化効率を低下させる可能性が生じてしまうという問題がある。
【０００５】
上記の課題を解決する方法として、符号化対象フレームの時間的に直前のフレームの情報を参照する方法が開示されている（特許文献１参照）。特許文献１によると、スライス境界に位置するブロックについては、時間的に直前のフレームの隣接ブロック情報を参照することで、符号化効率の低下を抑制する。さらに、符号化対象スライスにおいて、スライス先頭での確率テーブルの初期化を防ぐために、時間的に直前のフレームの該当スライスの確率テーブル情報を引き継ぐようにしている。これにより、スライス先頭での確率テーブルの初期化を回避し、符号化効率の低下を抑制することが可能となる。
【０００６】
しかしながら、時間的に直前のフレーム情報を参照しても必ずしも符号化効率の低下を抑制することができるとは限らないという問題がある。特に、符号化対象のフレームと時間的に直前のフレーム間で、シーンチェンジが発生した場合などはその問題が顕著となる。
【０００７】
上記のような問題点に鑑みて、１枚のフレームを複数スライスに分割するのではなく、１枚のフレームを単一スライスとする構成において、スライス内の演算を複数の演算部を用いて並列処理させることで高速化を図る方法も検討されている。
【０００８】
図２は、従来の二値算術符号化部の並列処理時の処理内容を示している。図２における正方形の画素ブロック２０１及び画素ブロック２０２は、例えば６４画素×６４画素の画素ブロックを示している。参照２０３は、ＣＡＢＡＣ処理中の生起確率情報を引き継ぐことを意味している。該生起確率情報とは、発生頻度が高いシンボル値と、その発生する確率を示す値の２つの値をまとめた情報のことを言う。
【０００９】
Ｈ.２６４では、ｖａｌＭＰＳ、ｐＳｔａｔｅＩｄｘという値で示されている。生起確率情報を引き継ぐとは、矢印の元にある画素ブロック２０１の生起確率情報を矢印の先の画素ブロック２０２の生起確率情報にコピーすることを意味している。
【００１０】
図２を用いて２つの二値算術符号化部を並列に動作させる場合の説明をする。
図２の一段目の高さ６４画素の水平ラインを１つ目の二値算術符号化部（以降、二値算術符号化部Ａと呼ぶ）で二値算術符号化処理を開始する。そして、一段目の２つ目の画素ブロックの二値算術符号化処理が終了した時の生起確率情報を二段目の１つ目の画素ブロックの生起確率情報にコピーする。二段目の水平ラインをもう一方の二値算術符号化部（以降、二値算術符号化部Ｂと呼ぶ）で処理を開始する。二値算術符号化部Ｂは、二値算術符号化部Ａからコピーした生起確率情報を用いて二値算術符号化処理を開始する。
【００１１】
参照２０４及び参照２０５は、二値算術符号化処理において、生起確率情報を用いる際にいずれの生起確率情報を用いるかを決定するための参照である。生起確率情報は、二値算術符号化部のＳＲＡＭ等の記憶手段に記憶されている。Ｈ．２６４方式では二値算術符号化処理中のシンタックスに応じて用いる生起確率情報を変える必要がある。
【００１２】
いずれの生起確率情報を用いるかを決める際に符号化対象ブロックの上に隣接する画素ブロック及び左に隣接する画素ブロックの画素ブロックのタイプや変換係数の値等を参照する。その際の上に隣接する画素ブロックの参照を参照２０４、左に隣接する画素ブロックの参照を参照２０５と呼ぶ。
前述のような処理順で二値算術符号化処理を進めることで、二値算術符号化処理の並列処理が実現できる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００８−１１２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、前述した従来技術の構成では、二段目の水平ラインを処理している二値算術符号化Ｂは、上に隣接する画素ブロックを参照する参照２０４で情報を取得した後、生起確率情報を算出し、二値算術符号化処理を行う必要がある。このため、二値算術符号化Ａが処理する上段の画素ブロックの二値算術符号化処理が終了している必要がある。二値算術符号化Ａの処理速度が二値算術符号化Ｂの処理よりも遅い場合に、二値算術符号化Ｂの処理が待たされるという課題があった。
【００１５】
図３は、二値算術符号化Ａと二値算術符号化Ｂの処理時間を示す図であり、図３を用いて前述した課題を説明する。
処理時間３０１は、二値算術符号化Ａが二値算術符号化処理を行っている時間を示す。処理時間３０２は、二値算術符号化Ｂが二値算術符号化処理を行っている時間を示す。処理時間３０１に示すように、時刻Ｔ０で初めに二値算術符号化Ａが動作を開始し、２番目の画素ブロックの二値算術符号化処理を終えた時刻Ｔ１に、処理時間３０２で示しているように二値算術符号化Ｂが処理を開始する。
【００１６】
二値算術符号化は、二値化処理後に生成される二値データを入力とする。該二値データの符号量と二値算術符号化処理時間は比例している。図３では、二値算術符号化Ａが入力とする二値データＡの符号量が、二値算術符号化Ｂが入力とする二値データＢの符号量よりも多い場合を示している。つまり、二値算術符号化Ｂの処理が二値算術符号化Ａの処理速度よりも速い場合を示している。
【００１７】
ここで、一旦二値データ符号量に差が生じる例を図４で説明する。
図４の（ａ）は絵柄に空と建物を含んだフレームを示している。図４（ｂ）は、横軸に画像の水平ライン数を示し、縦軸に水平ライン毎の二値データ符号量を示している。図４（ａ）の領域４０１は空と建物境界付近の画を指している。図４（ｂ）の領域４０２は領域４０１に該当する二値データ符号量を示している。この領域４０１のような空と建物の境界は、境界付近において符号量の差が大きい。一般的に空の領域の二値データ符号量は少なく、建物領域の二値データ符号量は多くなる。
【００１８】
図３を用いた説明に戻る。
時刻Ｔ２は、上に隣接する画素ブロックの二値算術符号化処理が終了しておらず、二値算術符号化Ｂの参照２０４ができない時刻を示している。待機時間３０３は、二値算術符号化Ｂが二値算術符号化処理を一時中断し、二値算術符号化Ａの処理が進むのを待機している時間である。
【００１９】
処理時間３０４は、時刻Ｔ３において二値算術符号化Ｂが参照する画素ブロックの二値算術符号化処理が終了し、二値算術符号化Ｂが二値算術符号化処理を再開した後の処理時間を示す。このように、並列化しても入力する二値データの符号量によっては、並列化による十分な処理性能を出すことができない問題点があった。
本発明は前述の問題点に鑑み、二値算術符号化処理部が入力する二値データを二値データの符号量を用いて選択し、並列化による二値算術符号化の処理速度を向上させることを目的とする。
【課題を解決するための手段】
【００２０】
本発明の符号化装置は、入力映像を符号化する符号化装置であって、入力映像を符号化する映像符号化手段と、前記映像符号化手段により符号化された符号化データに対して二値化処理を行い、二値データと二値データ符号量を出力する二値化手段と、前記二値化手段から出力される二値データを入力として二値算術符号化処理を行うＮ個の二値算術符号化手段と、前記二値化手段から出力される二値データ符号量を所定数の画素ブロック群ごとにカウントし、二値データ符号量が少ない所定数の画素ブロック群から処理を開始するよう前記二値算術符号化手段を制御する制御手段とを具備することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、二値算術符号化の並列処理時において、入力する二値データ符号量の違いにより生ずる各々の二値算術符号化部の処理速度の違いにより、他方の二値算術符号化部を待機させる必要がなくなる。これにより、二値算術符号化部を並列動作させた時の処理速度を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】実施形態に対応する符号化装置の構成例を示すブロック図である。
【図２】並列動作時のＣＡＢＡＣ処理の参照関係を示す図である。
【図３】並列動作時のＣＡＢＡＣ処理時間を示す図である。
【図４】二値データ符号量に差が生じる際の絵柄とその二値データ符号量を示す図である。
【図５】実施形態に対応する並び替え後の絵柄と並列動作時のＣＡＢＡＣ処理順を示す図である。
【図６】実施形態に対応する符号化装置の動作例を説明するフローチャートである。
【図７】実施形態に対応する符号化装置の構成例を示すブロック図である。
【図８】実施形態に対応する並び替え後の絵柄と処理時間を示す図である。
【図９】第３の実施形態の符号化装置の動作例を説明するフローチャートである。
【図１０】第３の実施形態の並び替え後の絵柄と処理時間を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照しながら本発明の好適な実施形態を説明する。
（第１の実施形態）
図１は、入力映像を符号化する符号化装置の構成例を示すブロック図である。図１の符号化装置は、映像符号化部１００、二値化部１０１、バッファ１０２、二値算術符号化部１０３、二値算術符号化部１０４、多重化部１０５、制御部１０６から構成されている。なお、第１の実施形態では、二値算術符号化部は２並列の例を示したが、３並列以上でもよい。
【００２４】
映像符号化部１００は、動き補償部、動き探索部、直交変換部、量子化部、逆直交変換部、逆量子化部、フレームメモリ等から構成されており、Ｈ．２６４におけるエントロピー符号化までの符号化を行っている。映像符号化部１００からは、動きベクトル、直交変換係数、量子化パラメータ、予測モード等が出力され、二値化部１０１に入力される。
【００２５】
二値化部１０１は、映像符号化部１００により符号化された符号化データに対して二値化処理を行い、ＣＡＢＡＣ方式の二値算術符号化の前段処理を行う。映像符号化部１００が出力した動きベクトル、直交変換係数、量子化パラメータ、予測モード等を規格で定められたテーブルに基づき二値データに変換する。変換した二値データを後段のバッファ１０２に出力する。また、二値データの符号量を制御部１０６に出力する。
【００２６】
バッファ１０２は、二値化部１０１が出力した二値データを蓄積するバッファである。二値算術符号化部１０３及び二値算術符号化部１０４は、そのアルゴリズムの性質上処理時間がかかるため、バッファ１０２で、二値データを蓄積し、後段の二値算術符号化部１０３及び二値算術符号化部１０４が処理可能になり次第、蓄積した二値データを出力する。
【００２７】
二値算術符号化部１０３及び二値算術符号化部１０４は、ＣＡＢＡＣ方式の後段処理を行う。二値化部１０１が生成した二値データを入力として算術符号化処理を行い、生成される符号データがバイトストリームの一部となる。そして、二値算術符号化部１０３及び二値算術符号化部１０４は、生成した符号データを多重化部１０５に出力する。
【００２８】
多重化部１０５は、制御部１０６などで生成されるヘッダ情報と、二値算術符号化部１０３及び二値算術符号化部１０４の出力である符号データ及び不図示の音声符号化部の音声データを多重化し、最終的なバイトストリームを出力する。多重化されたバイトストリームの出力先として符号化装置内の不図示の記録媒体があってもよい。
【００２９】
制御部１０６は、符号化装置全体を制御している。二値化部１０１、二値算術符号化部１０３及び二値算術符号化部１０４、多重化部１０５に対しては初期設定、割り込み制御、動作の開始制御等を行う。また、制御部１０６は、二値化部１０１から二値データ符号量を入力し、水平１ラインの符号量を用いてソートを行い、二値算術符号化部に入力する水平１ラインの二値データの順番を制御する。ここでは、画素ブロック単位を６４画素×６４画素の単位とし、高さ６４画素の所定数の画素ブロック群を水平１ラインであるとする。
【００３０】
二値化部１０１からの二値データ符号量は、水平１ライン単位で入力される。そして、入力された二値データ符号量を制御部１０６の内部の記憶手段に記憶し、二値データ符号量を入力するたびにライン毎の二値データ符号量がカウントされる。そして、ライン毎のカウント結果に基づきソート処理を行い、１フレームの二値データ符号量が全て揃った時に１フレームの水平ライン毎のソート処理は終了している状態となる。このソート処理においては、符号化対象ピクチャの最後の画素ブロックを含む所定数の画素ブロック群はソートしないようにするため、フレームの最後の画素ブロックを含む水平１ラインはソート対象から外す。これは、該画素ブロックには、フレームの最後を示すシンタックスが含まれているため、該水平１ラインの二値データは原画通り最後に二値算術符号化部に入力される。ただし、該シンタックスが含まれない場合は、該水平１ラインもソートの対象とする。
【００３１】
１フレームを二値算術符号化処理していく過程を、図１のブロック図と図６のフローチャートを用いて説明する。
Ｓ６０１は、制御部１０６が行う前述した二値データ符号量のカウントと、ソート処理を行う。ソート処理の終了後Ｓ６０２に遷移する。
Ｓ６０２は、制御部１０６が１フレームの二値算術符号化処理を開始する際に、二値データ符号量が最も少ない水平ラインの二値データをバッファ１０２から読み出す。二値データを読み出し後Ｓ６０３に遷移する。
【００３２】
Ｓ６０３は、Ｓ６０２で読み出した二値データを二値算術符号化部１０３に入力し、二値算術符号化処理を開始する。この時、二値算術符号化部１０３は、水平１ラインのみの二値算術符号化処理を行う。二値算術符号化部１０３が処理を開始した後にＳ６０４へ遷移する。
Ｓ６０４は、制御部１０６が２番目に二値データ符号量が少ない水平ラインの二値データをバッファ１０２から読み出す。二値データを読み出した後Ｓ６０５に遷移する。
【００３３】
Ｓ６０５は、Ｓ６０４で読み出した二値データを二値算術符号化部１０４に入力し、二値算術符号化処理を開始する。この時、二値算術符号化部１０４も同様に水平１ラインのみの二値算術符号化処理を行う。二値算術符号化部１０４が処理を開始した後にＳ６０６に遷移する。
【００３４】
Ｓ６０６は、各二値算術符号化部１０３、１０４の処理が終了したか否かを判断する。水平１ラインの二値算術符号化処理の終了を検知した場合にはＳ６０７に遷移する。二値算術符号化処理中は、Ｓ６０６で待機する。
Ｓ６０７は、１フレームの二値算術符号化処理が終了したか否かを判断する。１フレームの二値算術符号化処理が終了した場合は、Ｓ６１０に遷移する。１フレームの二値算術符号化処理が終了していない場合は、Ｓ６０８に遷移する。
【００３５】
Ｓ６０８は、ソートした結果、次に二値データ符号量が少ない水平ラインの二値データをバッファ１０２から読みだす。二値データを読み出した後Ｓ６０９に遷移する。
Ｓ６０９は、Ｓ６０８で読み出した二値データを二値算術符号化処理中でない二値算術符号化部１０３もしくは二値算術符号化部１０４に入力し、二値算術符号化処理を開始する。二値算術符号化部が処理を開始した後にＳ６０６に遷移する。
Ｓ６１０は、ソートした結果である二値データの並び替え情報を多重化部１０５に出力する。
【００３６】
多重化部１０５では、バイトストリームフォーマットにおける特定の領域に該並び替え情報を多重化する。特定の領域は、バイトストリームにおけるユーザー領域などで、Ｈ．２６４で例えるとＳＥＩ（Supplemental Enhancement Information）である。並び替え情報は、例えば、画素ブロックが６４画素×６４画素で、フルＨＤ解像度の場合では、水平ライン数は１７ライン存在する。フレームの一番上の水平ラインを０とし、最後の１７ライン目を１６と割り振った番号を基に、水平ライン毎に二値算術符号化部に入力した順番に並び変えた番号である。
【００３７】
このように、制御部１０６は、ソートした結果、二値データ符号量が少ない水平ラインから順番に二値データを２つの二値算術符号化部１０３、１０４に交互に入力し、二値算術符号化処理を行うように処理順を制御する。
前述した構成であれば、二値算術符号化部１０４が上段の水平ラインを処理している二値算術符号化部１０３の算術符号化処理の終了を待機する必要がない。
【００３８】
次に、図１及び図５を用いて本実施形態の符号化装置によるＣＡＢＡＣ処理を説明する。
図５は、実施形態に対応する並び替え後の絵柄と並列動作時のＣＡＢＡＣ処理順を示す図である。図５の（ａ）は、原画を示している。図５（ｂ）の画素ブロック５０１は、６４画素×６４画素の画素ブロックを示している。
【００３９】
図５（ｂ）は、二値データ符号量でソートし、二値算術符号化処理を開始する所定数の画素ブロック群の処理順を、二値データ符号量が少ない水平ラインから順番に並び変えた画を示している。図５の右横に示しているのは、水平１ラインの二値データ符号量である。
【００４０】
図５（ｃ）は、図５（ｂ）の絵柄を表示せずに画素ブロックだけを示した図である。
領域５０２は、二値算術符号化部１０３によって既に二値算術符号化処理が終了した領域を示している。領域５０３は、二値算術符号化部１０４によって既に二値算術符号化処理が終了した領域を示している。画素ブロック５０４は、二値算術符号化部１０３で符号化中の画素ブロックである。画素ブロック５０５は、二値算術符号化部１０４で符号化中の画素ブロックである。
このように２つの二値算術符号化部１０３、１０４が存在する場合は、２つの二値算術符号化部１０３、１０４は図のような順番で並列に動作し、所定の画素ブロック分遅れて一方の二値算術符号化部の処理が開始される。
【００４１】
図８の（ａ１）は、原画を示している。図８の（ｂ１）は、二値データ符号量でソートし、二値データ符号量が少ない水平ラインから順番に処理順を並び変えた画を示している。図８の（ａ２）は、図８（ａ１）の画に対して２つの二値算術符号化部１０３、１０４を用いて二値算術符号化した際の処理時間を示している。
【００４２】
処理時間８０１は、一段目の水平ラインを処理している二値算術符号化部の処理時間を示し、処理時間８０２は、二段目の水平ラインを処理している二値算術符号化部の処理時間を示している。時刻Ｔ１は、上に隣接する画素ブロックの二値算術符号化処理が終了しておらず、上に隣接する画素ブロックの参照ができない時刻を示している。参照する画素ブロックの二値算術符号化の処理が終了するまで待機している。
【００４３】
図８の（ｂ２）は、図８（ｂ１）の画に対して２つの二値算術符号化部１０３、１０４を用いて二値算術符号化した際の処理時間を示している。図８（ａ２）に比べ、上に隣接する水平ラインの二値算術符号化の方が下の水平ラインの二値算術符号化よりも処理時間が短いため、待機時間が無くなっており、１フレームに対する二値算術符号化処理自体の処理時間が短くなっている。
【００４４】
以上のように、本実施形態においては、下段の水平ラインを処理している二値算術符号化部が上段の水平ラインを処理している二値算術符号化部の二値算術符号化処理の動作終了を待機する必要がなくなる。これにより、Ｎ個の二値算術符号化部を並列動作させた時の処理速度を向上させることができる。
【００４５】
（第２の実施形態）
次に、本発明の第２の実施形態について図を用いて説明する。図７は、第２の実施形態の符号化装置の構成例を示したブロック図である。
図７の符号化装置において、図１に示した符号化装置と同一の構成部については、同一の符号を付して説明を省略する。
【００４６】
ソート部７０７は、二値化部１０１から出力される二値データ符号量を入力し、所定の画素ブロック単位でソートし、ソート結果を制御部１０６に出力する。ここでは、画素ブロック単位を６４画素×６４画素の単位とし、高さ６４画素の所定数の画素ブロック群を水平１ラインであるとする。
【００４７】
ソート部７０７は、二値データ符号量を内部の記憶手段に記憶する。そして、二値化部１０１から二値データ符号量を水平１ライン単位で入力するたびにソート処理を行い、１フレームの二値データ符号量が全て揃った時に１フレームの水平ライン毎のソート処理は終了している状態となる。
【００４８】
ソート部７０７は、制御部１０６からの要求に応じて、該二値データ符号量が少ない順に水平ライン番号を制御部１０６に返す。水平ライン番号は、原画を所定の画素ブロック単位で分割した際に、該当する水平ラインが、何ライン目かを示す番号である。例えば、画素ブロックが６４画素×６４画素で、フルＨＤ解像度の場合では、水平ライン数は、１７ライン存在する。この場合、該水平ライン数は０から１６までの整数であるとする。
【００４９】
制御部１０６は、ソート部７０７から入力した水平ライン番号に従い、バッファ１０２から該当する二値データを読み出し、二値算術符号化部１０３もしくは二値算術符号化部１０４に入力するよう制御する。また、制御部１０６は、１フレームの二値算術符号化処理が終了したことを検知すると、ソートした結果である二値データの並び替え情報を二値算術符号化部１０３もしくは二値算術符号化部１０４に入力する。そして、該並び替え情報をバイトストリームとして出力するよう制御する。
【００５０】
以上のように、本実施形態においては、下段の水平ラインを処理している二値算術符号化部が上段の水平ラインを処理している二値算術符号化部の二値算術符号化処理の動作終了を待機する必要がなくなる。これにより、ＣＡＢＡＣを並列動作させた時の処理速度を向上させることができる。
【００５１】
（第３の実施形態）
以下、図面を参照しながら本発明の符号化装置の第３の実施形態を説明する。
本実施形態の符号化装置の構成は、前述した第１の実施形態において、図１で示した符号化装置と同様であるので、図示及び詳細な説明を省略する。
【００５２】
本実施形態の符号化装置においては、二値化部１０１からの二値データ符号量は、水平１ライン単位で入力される。該二値データ符号量を制御部１０６内部の記憶手段に記憶し、フレームの上から順に水平２ラインの二値データ符号量を用いてソート処理を行う。具体的には、あるフレームにおける最初のソート処理は、１ライン目の水平１ラインと２ライン目の水平１ラインのソート処理を行う。本実施形態では、二値算術符号化部が２並列であるため、ソート対象となる水平ライン数が２ラインとなる。二値算術符号化部の並列数とソート対象ライン数は同じ値となる。
【００５３】
該ソート処理は、フレームの最後の画素ブロックを含む水平１ラインはソート対象から外す。該画素ブロックには、フレームの最後を示すシンタックスが含まれているため、該水平１ラインの二値データは原画通り最後に二値算術符号化部に入力される。ただし、該シンタックスが含まれない場合は、該水平１ラインもソートの対象とする。
【００５４】
１フレームを二値算術符号化処理していく過程を図１と図９を用いて説明する。
Ｓ９０１は、制御部１０６が行う前述した二値データ符号量を用いたソート処理を行う。ソート処理の終了後Ｓ９０２に遷移する。
Ｓ９０２は、制御部１０６が１フレームの二値算術符号化処理を開始する際に、フレームの１ライン目と２ライン目のうち、二値データ符号量が少ない方の水平ラインの二値データをバッファ１０２から読み出す。二値データを読み出し後Ｓ９０３に遷移する。
【００５５】
Ｓ９０３は、Ｓ９０２で読み出した二値データを二値算術符号化部１０３に入力し、二値算術符号化処理を開始する。この時、二値算術符号化部１０３は、水平１ラインのみの二値算術符号化処理を行う。二値算術符号化部１０３が処理を開始した後にＳ９０４へ遷移する。
【００５６】
Ｓ９０４は、制御部１０６は、フレームの１ライン目と２ライン目のうち、二値データ符号量が多い方の水平ラインの二値データをバッファ１０２から読み出す。二値データを読み出した後Ｓ９０５に遷移する。
Ｓ９０５は、Ｓ９０４で読み出した二値データを二値算術符号化部１０４に入力し、二値算術符号化処理を開始する。この時、二値算術符号化部１０４も同様に水平１ラインのみの二値算術符号化処理を行う。二値算術符号化部１０４が処理を開始した後にＳ９０６に遷移する。
【００５７】
Ｓ９０６は、各二値算術符号化部の処理が終了したか否かを判断する。水平１ラインの二値算術符号化処理の終了を検知した場合にはＳ９０７に遷移する。二値算術符号化処理中は、Ｓ９０６で待機する。
Ｓ９０７は、１フレームの二値算術符号化処理が終了したか否かを判断する。１フレームの二値算術符号化処理が終了した場合は、Ｓ９１０に遷移する。１フレームの二値算術符号化処理が終了していない場合は、Ｓ９０８に遷移する。
【００５８】
Ｓ９０８は、３ライン目と４ライン目の二値データ符号量でソートした結果、二値データ符号量が少ない水平ラインの二値データをバッファ１０２から読みだす。Ｓ９０８は、フレームの上から順に水平２ラインずつの二値データ符号量を用いてソート処理を行っていく。二値算術符号化部の数が３並列の場合は、３ラインでソート処理を行う。Ｓ９０８は、二値データを読み出した後Ｓ９０９に遷移する。
【００５９】
また、ソートする水平２ラインの二値データ符号量の差分が所定の範囲内であるならば、原画の水平ラインの順を優先することも可能である。例えば、設定された差分が１００バイトとし、１ライン目の二値データ符号量が４５６バイトで、２ライン目の二値データ符号量が４００バイトであった場合を考える。
【００６０】
差分が所定の範囲内であれば、原画の水平ラインを維持する設定である場合は、１ライン目と２ライン目の差分が５６バイトで設定値の１００バイト以内であることから１ライン目の二値データが先に二値算術符号化部に入力される。次に、２ライン目の二値データが二値算術符号化部に入力される。
一方、差分が所定の範囲内であれば、原画の水平ラインを維持する設定ではない場合は、二値データ符号量が少ない２ライン目の二値データが先に二値算術符号化部に入力され、次に１ライン目の二値データが二値算術符号化部に入力される。
【００６１】
Ｓ９０９は、Ｓ９０８で読み出した二値データを二値算術符号化処理中でない二値算術符号化部１０３もしくは二値算術符号化部１０４に入力し、二値算術符号化処理を開始する。二値算術符号化部を開始した後にＳ９０６に遷移する。
【００６２】
Ｓ９１０は、ソートした結果である二値データの並び替え情報を多重化部１０５に出力する。
多重化部１０５では、バイトストリームフォーマットにおける特定の領域に該並び替え情報を多重化する。特定の領域は、バイトストリームにおけるユーザー領域などで、Ｈ．２６４で例えるとＳＥＩ（Supplemental Enhancement Information）である。並び替え情報は、例えば、画素ブロックが６４画素×６４画素で、フルＨＤ解像度の場合では、水平ライン数は１７ライン存在する。フレームの一番上の水平ラインを０とし、最後の１７ライン目を１６と割り振った番号を基に、水平ライン毎に二値算術符号化部に入力した順番に並び変えた番号である。
【００６３】
このように、本実施形態の制御部１０６は、水平２ラインでソートした結果、二値データ符号量が少ない水平ラインから順番に二値データを２つの二値算術符号化部１０３、１０４に交互に入力し、二値算術符号化処理を行うように制御する。
前述した構成であれば、二値算術符号化部１０４が上段の水平ラインを処理している二値算術符号化部１０３の算術符号化処理の終了を待機する必要がない。
【００６４】
次に、図１及び図５を用いて本実施形態の符号化装置によるＣＡＢＡＣ処理を説明する。
図５（ｂ）の画素ブロック５０１は、６４画素×６４画素の画素ブロックを示している。図５の（ａ）は原画を示している。図５（ｂ）は、水平２ラインずつ二値データ符号量でソートし、二値データ符号量が少ない水平ラインから順番に並び変えた画を示している。図５の右横に示しているのは、水平１ラインの二値データ符号量である。図５（ｃ）は、図５（ｂ）の絵柄を表示せずに画素ブロックだけを示した図である。
【００６５】
領域５０２は、二値算術符号化部１０３によって既に二値算術符号化処理が終了した領域を示している。領域５０３は二値算術符号化部１０４によって既に二値算術符号化処理が終了した領域を示している。画素ブロック５０４は、二値算術符号化部１０３で符号化中の画素ブロックである。画素ブロック５０５は、二値算術符号化部１０４で符号化中の画素ブロックである。
このように２つの二値算術符号化部１０３、１０４が存在する場合は、２つの二値算術符号化部１０３、１０４は図のような順番で並列に動作し、所定の画素ブロック分遅れて一方の二値算術符号化部の処理が開始される。
【００６６】
図１０の（ａ１）は、原画を示している。図１０の（ｂ１）は、二値データ符号量でソートし、二値データ符号量が少ない水平ラインから順番に並び変えた画を示している。図１０の（ａ２）は、図１０（ａ１）の画に対して２つの二値算術符号化部を用いて二値算術符号化した際の処理時間を示している。処理時間１００１は、一段目の水平ラインを処理している二値算術符号化部の処理時間を示し、処理時間１００２は、二段目の水平ラインを処理している二値算術符号化部の処理時間を示している。
【００６７】
時刻Ｔ１は、上に隣接する画素ブロックの二値算術符号化処理が終了しておらず、上に隣接する画素ブロックの参照ができない時刻を示している。参照する画素ブロックの二値算術符号化の処理が終了するまで待機している。
図１０の（ｂ２）は、図１０（ｂ１）の画に対して２つの二値算術符号化部を用いて二値算術符号化した際の処理時間を示している。図１０（ａ２）に比べ、上に隣接する水平ラインの二値算術符号化の方が下の水平ラインの二値算術符号化よりも処理時間が短いため、待機時間が無くなっており、１フレームに対する二値算術符号化処理自体の処理時間が短くなっている。
【００６８】
以上のように、本実施形態においては、下段の水平ラインを処理している二値算術符号化部が上段の水平ラインを処理している二値算術符号化部の二値算術符号化処理の動作終了を待機する必要がなくなる。これにより、二値算術符号化部を並列動作させた時の処理速度を向上させることができる。
【００６９】
（第４の実施形態）
次に、本発明の符号化装置の第４の実施形態について図を用いて説明する。
本実施形態の符号化装置の構成は、前述した第２の実施形態を説明する図７の符号化装置の構成と同様であるので、図面及び詳細な説明を省略する。
【００７０】
ソート部７０７は、二値化部１０１から出力される水平１ライン毎の二値データ符号量を入力し、水平２ラインの二値データ符号量を用いてソートし、ソート結果を制御部１０６に出力する。ここでは、画素ブロック単位を６４画素×６４画素の単位とし、高さ６４画素の所定数の画素ブロック群を水平１ラインであるとする。
【００７１】
ソート部７０７が入力する二値データ符号量は、二値化部１０１から水平１ライン単位で入力される。該二値データ符号量をソート部７０７内部の記憶手段に記憶し、フレームの上から順に水平２ラインの二値データ符号量を用いてソート処理を行う。本実施形態では、二値算術符号化部で実行する処理が２並列であるため、ソート対象となる水平ライン数が２ラインとなる。二値算術符号化部の並列数とソート対象ライン数は同じ値となる。
【００７２】
ソート部７０７は、制御部１０６からの要求に応じて、水平２ラインのうち該二値データ符号量が少ない方の水平ライン番号から制御部１０６に返す。水平ライン番号は、原画を所定の画素ブロック単位で分割した際に、該当する水平ラインが、何ライン目かを示す番号である。例えば画素ブロックが６４画素×６４画素で、フルＨＤ解像度の場合では、水平ライン数は、１７ライン存在する。この場合、該水平ライン数は０から１６までの整数であるとする。
【００７３】
また、ソート部７０７は、ソートする水平２ラインの二値データ符号量の差分が所定の範囲内であるならば、原画の水平ラインの順を優先して水平ライン番号を返すことも可能である。該動作のＯＮ／ＯＦＦは制御部１０６から与え、該差分の符号量も制御部１０６から与える。
【００７４】
制御部１０６は、ソート部７０７から入力した水平ライン番号に従い、バッファ７０２から該当する二値データを読み出し、二値算術符号化部１０３もしくは二値算術符号化部１０４に入力するよう制御する。ソート対象であるＮ個の所定数の画素ブロック群同士の二値データ符号量の差分が所定の範囲の場合は、所定数の画素ブロック群を二値算術符号化処理する順番を変更しないよう二値算術符号化部を制御することも可能である。
また、制御部１０６は、１フレームの二値算術符号化処理が終了したことを検知すると、ソートした結果である二値データの並び替え情報を二値算術符号化部１０３もしくは二値算術符号化部１０４に入力する。そして、該並び替え情報をバイトストリームとして出力するよう制御する。
【００７５】
以上のように本実施形態においては、下段の水平ラインを処理している二値算術符号化部が上段の水平ラインを処理している二値算術符号化部の二値算術符号化処理の動作終了を待機する必要がなくなる。これにより、ＣＡＢＡＣを並列動作させた時の処理速度を向上させることができる。
【００７６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種のコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７７】
１００  映像符号化部
１０１  二値化部
１０２  バッファ
１０３  二値算術符号化部
１０４  二値算術符号化部
１０５  多重化部
１０６  制御部
２０１  画素ブロック
２０２  画素ブロック
２０３  生起確率の参照
２０４  上隣接画素ブロック参照
２０５  左隣接画素ブロック参照
【図１】
2014060605.tif 000003
【図２】
2014060605.tif 000004
【図３】
2014060605.tif 000005
【図４】
2014060605.tif 000006
【図５】
2014060605.tif 000007
【図６】
2014060605.tif 000008
【図７】
2014060605.tif 000009
【図８】
2014060605.tif 000010
【図９】
2014060605.tif 000011
【図１０】
2014060605.tif 000012