説明

画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

【課題】 Wavefrontでは算術符号化・復号化の並列性をライン単位で向上させる事は可能だが、予め指定された位置のブロックを符号化した情報を次のラインの左端のブロックの符号化に用いる必要がある。そのため、スライスの上端のラインには前記予め指定された位置のブロックが必要となり、スライスとWavefrontを組み合わせた時には、各スライスの形状が制限されるという課題があった。
【解決手段】 スライスの上端のラインに属するブロック数が前記予め指定された数よりも少ない場合は、上端のラインの右端のブロックを符号化した情報を次のラインの左端のブロックの符号化に用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラムに関し、特にスライス分割時のエントロピー符号化・復号化に関する。
【背景技術】
【0002】
動画像の圧縮記録に用いられる符号化方式として、H.264/MPEG−4 AVC(以下H.264)が知られている。(非特許文献1)
H.264においては、画像を複数のスライスに分割して符号化する事が可能である。各スライス間にはデータの依存性が少なく、並列に符号化・復号化処理を実施する事ができる。マルチコアのCPU等で並列に処理を実行し、処理時間を短縮できる事が、スライス分割の大きな利点の一つとして挙げられる。
【0003】
また、各スライスはH.264に採用されている従来の2値算術符号化の手法によって、符号化される。すなわち、mb_type、mb_qp_delta等の各シンタックス要素が2値化され、2値信号が生成される。各シンタックス要素には、あらかじめ発生確率がテーブル(以下、発生確率テーブル)として与えられ、前記2値信号は前記発生確率テーブルに基づいて算術符号化される。そして符号化が行われる毎に、符号化された2値信号が発生確率の高い方のシンボルであったか否か、という統計情報に基づいて発生確率テーブルが更新される。
【0004】
近年、H.264よりも高効率な符号化方式の国際標準化を行う活動が開始され、JCT−VC(Joint Collaborative Team on Video Coding)がISO/IECとITU−Tの間で設立された。JCT−VCでは、High Efficiency Video Coding符号化方式(以下、HEVC)の標準化が進められている。
【0005】
HEVCの標準化にあたっては、種々の符号化手法が、符号化効率向上のみならず実装の容易性や処理時間の短縮といった点も含めて幅広く検討されている。処理時間の短縮の中には、並列性を高めるための手法も検討されている。その中には、エントロピー符号化・復号化を並列に処理するための、Wavefrontと呼ばれる手法がある(非特許文献2)。
【0006】
符号化対象の2値信号は、常に更新された発生確率テーブルを用いて符号化を行う必要があるため、統計情報をリセットしなければ処理を並列に行う事ができない。しかし、統計情報をリセットしてしまうと符号化効率が悪化してしまうという課題があった。
それに対してWavefrontは、複数の、予め指定された位置のブロックを符号化処理した時点での発生確率のテーブルを、処理対象のラインの次のラインの左端のブロックに適用する事する。これにより符号化効率の悪化を抑制し、ライン単位でのブロックの並列な符号化処理が可能となる。上記、Wavefrontに関しては主に符号化処理に関して説明したが、復号処理に関しても同様である。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】ITU−T H.264 (03/2010) Advancedvideo coding for generic audiovisual services
【非特許文献2】JCT−VC 寄書 JCTVC−F274.doc インターネット< http://phenix.int−evry.fr/jct/doc_end_user/documents/6_Torino/wg11/ >
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、Wavefrontでは算術符号化・復号化の並列性をライン単位で向上させる事は可能だが、前記予め指定された位置のブロックを符号化した情報を次のラインの左端のブロックの符号化に用いる必要がある。そのため、スライスの上端のラインには前記予め指定された位置のブロックが必要となり、スライスとWavefrontを組み合わせた時には、各スライスの形状が制限されるという課題があった。
したがって、本願発明では、スライスの形状を制限せずに、Wavefrontを用いてブロックをライン単位で並列に符号化・復号処理を行うことを目的とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するため、本発明の画像符号化装置は、画像を分割して、1つ以上のブロックで構成される第1ブロック群と前記第1ブロック群に隣接する第2ブロック群とを生成する分割手段と、前記第1ブロック群をブロック単位で符号化する第1符号化手段と、前記第2ブロック群をブロック単位で符号化する第2符号化手段と、前記第1符号化手段が所定位置のブロックを処理した後の符号化情報を記憶する記憶手段を有し、前記記憶手段は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記所定位置を第1ブロック群内のブロックに再設定し、前記再設定された所定位置に基づいて前記符号化情報を記憶し、前記第2符号化手段は当該符号化情報に基づいて符号化を開始することを特徴とする。
【0010】
また、上記の課題を解決するため、本発明の画像復号装置は、ビットストリームを分割して、1つ以上のブロックで構成される第1ブロック群のデータである第1ブロック群データと前記第1ブロック群に隣接する第2ブロック群のデータで構成される第2ブロック群データを生成する分割手段と、前記第1ブロック群データをブロック単位で復号する第1復号手段と、前記第2ブロック群データをブロック単位で復号する第2復号手段と、前記第1復号手段が所定位置のブロックを処理した後の復号情報を記憶する記憶手段を有し、前記記憶手段は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記所定位置を第1ブロック群内のブロックに再設定し、前記再設定された所定位置に基づいて前記復号情報を記憶し、前記第2復号手段は、当該復号情報に基づいて復号を開始することを特徴とする。
【発明の効果】
【0011】
本発明により、スライスの形状を制限せずに、Wavefrontを用いてブロックをライン単位で並列に符号化・復号処理を行う事が可能となる。
【図面の簡単な説明】
【0012】
【図1】実施形態1における画像符号化装置の構成を示すブロック図
【図2】ブロックラインの構成を示す図
【図3】実施形態1の画像符号化装置における、フレームの符号化処理を示すフローチャート
【図4】実施形態1の画像符号化装置における、上端のブロックラインの符号化処理を示すフローチャート
【図5】実施形態1の画像符号化装置における、上端以外のブロックラインの符号化処理を示すフローチャート
【図6】実施形態1の画像符号化装置における、ブロックの符号化処理を示すフローチャート
【図7】上端のブロックライン及び上から二番目のブロックラインの統合を示す図
【図8】スライスの分割を示す図
【図9】実施形態2における画像復号装置の構成を示すブロック図
【図10】実施形態2の画像復号装置における、フレームの復号処理を示すフローチャート
【図11】実施形態2の画像復号装置における、上端のブロックラインの復号処理を示すフローチャート
【図12】実施形態2の画像復号装置における、上端以外のブロックラインの復号処理を示すフローチャート
【図13】実施形態2の画像復号装置における、ブロックの復号処理を示すフローチャート
【図14】本発明の画像符号化装置、画像復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図
【発明を実施するための形態】
【0013】
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0014】
<実施形態1>
以下、本発明の第1の実施形態を、図面を用いて説明する。図1は本実施形態の画像符号化装置を示すブロック図である。
【0015】
図1において、102及び103は、入力画像をn×n画素(nは2以上の正の整数)に分割したブロックを図2のようにライン単位で符号化を行う符号化部である。以下、ブロックのラインをブロックラインと記す。本実施形態において、符号化部を2つ用いる場合について説明するが、本発明はこれに限定されない。図2は、セレクタ101に入力されたスライスを表す。細線による正方形で表されている201はブロックを表し、太線による長方形で表されている202はブロックラインを表している。更に、上端のブロックライン(0ライン目)を含む偶数番目のブロックラインを示す白色部のブロック(第1ブロック群)は第一符号化部102にて符号化される。また、奇数番目のブロックラインを示す斜線部のブロック(第2ブロック群)は第二符号化部103にて符号化される。以下、上端のブロックラインを上端ブロックラインと記す。
【0016】
101は、処理対象のブロックが偶数番目のブロックラインに属するかを判定するセレクタである。セレクタ101には、フレームを分割したスライス単位の画像が入力される。そして前記ブロックが偶数番目のブロックラインに属しているのならば第一符号化部102へ前記ブロックを出力し、そうでないならば第二符号化部103へ前記ブロックを出力する。図8に、セレクタ101に入力されたスライスと、フレームの関係を示す。図8の画像は、フレームを二つのスライスに分割している。太線に囲まれた矩形がフレームであり、斜線部と白色部のブロックはそれぞれ異なるスライスに属している事を示している。
【0017】
102、103の各符号化部においては、まず符号化対象のブロックで周辺の画素または他のフレームの参照による動き補償によって予測誤差を生成し、直交変換を行い、変換係数を生成する。次に、直交変換を行った変換係数に対する量子化パラメータを決定し、各変換係数を量子化し、量子化係数を生成する。次に、前記量子化係数を含む各シンタックス要素を2値化して2値信号を生成する。各シンタックス要素には、あらかじめ発生確率が発生確率テーブルとして与えられ、前記2値信号は前記発生確率テーブルに基づいて算術符号化される。そして符号化が行われる毎に、符号化された2値信号が発生確率の高い方のシンボルであったか否か、という統計情報を用いて発生確率テーブルが更新される。
【0018】
104は第一符号化部102で生成された発生確率テーブルを保持する第一発生確率テーブル記憶部である。以下、第一発生確率テーブル記憶部104に記憶される発生確率テーブルを、第一発生確率テーブルと記す。
【0019】
105は第二符号化部103で生成された発生確率テーブルを保持する第二発生確率テーブル記憶部である。以下、第二発生確率テーブル記憶部に記憶される発生確率テーブルを、第二発生確率テーブルと記す。
【0020】
106は第一符号化部102で生成された符号データと、第二符号化部103で生成された符号データを統合し、ビットストリームとして出力する統合符号化部である。
【0021】
本実施形態の画像符号化装置の動作を、図3から図6のフローチャートを用いて詳細に説明する。本実施形態では動画像データはフレームを分割したスライス単位で入力され、ブロックに分割されてラスタ順に処理される。本実施形態では動画像データをスライス単位に入力する構成となっているが、1フレーム分の静止画像データを入力する構成としても構わないし、フレーム単位に入力しても構わない。また、本実施形態では、説明を容易にするため、イントラ予測符号化の処理のみを説明するが、これに限定されずインター予測符号化の処理においても適用可能である。
【0022】
まず、ステップS301では、処理対象のブロックが上端ブロックラインか否かが判定される。上端ブロックラインであるならば(ステップS301でYes)ステップS302の処理に進み、そうでないならばステップS303の処理に進む。ここで、上端ブロックラインはスライスの上端である事を意味しており、別のスライスのブロックとの位置関係は考慮されない。即ち図8の白色部のスライスにおいては、ブロック801が属するブロックラインが前記上端ブロックラインとなる。
【0023】
ステップS302の処理は、上端ブロックラインを符号化する処理であり、詳細は後述する。ステップS303の処理は、上端以外のブロックラインを符号化する処理であり、同じく詳細は後述する。また、セレクタ101によって、処理対象のブロックが属するブロックラインが、前記上端ブロックラインを0番目として、偶数番目であるか奇数番目であるかが判定される。偶数番目であるならば第一符号化部102で、そうでないならば第二符号化部103でそれぞれ独立に符号化されるものとする。
【0024】
次に、ステップS304では、統合符号化部106において、第一符号化部102及び第二符号化部103から出力された各符号データを統合し、ビットストリームを生成、出力する。
【0025】
次に、ステップS305では、処理対象のスライスの全ブロックラインを符号化したか否かを判定する。符号化済ならば(ステップS305でYes)1スライスの符号化処理を終了し、そうでないならばステップS301の処理に進み、次のブロックラインを符号化する。
【0026】
ステップS302の処理(上端ブロックラインを符号化する処理)に関して、図4のフローチャートを用いて詳細に説明する。上端ブロックラインは、偶数番目のブロックラインであるので、処理対象のブロックはセレクタ101によって第一符号化部102へ入力され符号化される。
【0027】
まず、ステップS401において、格納フラグFが0に初期化される。格納フラグFは、前記発生確率テーブルを格納したか否かを示すフラグである。
【0028】
次に、ステップS402において発生確率テーブルが所定の方法で初期化される。初期化された発生確率テーブルは、ブロックラインの左端のブロックの最初の2値信号を算術符号化する際に用いられ、後述するステップS403で随時更新される。以下、ブロックラインの最初のブロックの2値信号を算術符号化する際に用いられる発生確率テーブルを、ブロックライン基準発生確率テーブルと記す。
【0029】
次に、ステップS403では、第一符号化部102によってブロック単位の画素データが符号化される。
【0030】
本実施形態では、ブロックを64×64画素とするが、本発明はこれに限定されるものではなく、ブロックのサイズは32×32画素のように小さくてもよいし、128×128画素のように大きくてもよい。ステップS403のブロック符号化処理について、図6のフローチャートを用いて詳細に説明する。
【0031】
まず、ステップS601では、入力された画像ブロックに対してブロック周辺の画素を利用したイントラ予測が行われ、予測誤差が生成される。
【0032】
次に、ステップS602では、前記予測誤差に対して直交変換が行われ変換係数が生成される。更に、画像の特性や符号量等に基づいて決定された量子化パラメータ(以下、ブロック量子化パラメータと記す)を用いて、前記変換係数を量子化し、量子化係数を生成する。
【0033】
次に、ステップS603では、量子化パラメータや予測モード等の各シンタックス要素が2値化され、2値信号が生成される。シンタックス要素毎に、H.264と同様に、ユーナリー・バイナリゼーション、固定長バイナリゼーション等の種々の2値化の手法が切り替えられて用いられる。更に、前記2値信号は前記発生確率テーブルに基づいて算術符号化される。
【0034】
次に、ステップS604では、算術符号化された2値信号が、発生確率の高い方のシンボルであったか否かに基づいて前記発生確率テーブルが更新される。
【0035】
次に、ステップS605では、ブロック内の全シンタックス要素が算術符号化されたか否かが判定される。全シンタックス要素が算術符号化されたならば(ステップS605でYes)ブロック符号化処理を終了し、そうでないならばステップS603の処理に進む。
【0036】
図4のフローチャートに戻り、ステップS404では、発生確率テーブルを格納する条件を満たしているか否かが判定される。本実施形態では、ステップS403で符号化したブロックが、フレームの左端から所定数個目のブロックであったか否かを、前記発生確率テーブルを格納する条件とする。以下、前記発生確率テーブルを格納する条件である所定数を記憶条件数と記す。前記条件を満たしている際には(ステップS404でYes)ステップS405の処理に進み、条件を満たしていない場合はステップS407の処理に進む。本実施形態では、記憶条件数をフレームの左端からの所定数とするが、本発明はそれに限定されるものではない。例えば、図2のブロックライン202のようにブロックラインにフレームの左端のブロックが存在しない場合がある。その際は、フレームの左端からの所定数を記憶条件数としてもよいし、ブロックラインの左端からの所定数を記憶条件数としてもよい。
【0037】
次に、ステップS405では、格納フラグFが1に更新される。次に、ステップS406では、発生確率テーブルを第一発生確率テーブルとして、第一発生確率テーブル記憶部104に記憶する。第一発生確率テーブルは、次のブロックラインの左端のブロックを符号化する際のブロックライン基準発生確率テーブルとして用いられる。
【0038】
次に、ステップS407において、処理対象のブロックラインの全ブロックを符号化したか否かが判定される。全てのブロックを符号化したならば(ステップS407でYes)ステップS408の処理に進み、そうでないならばステップS403の処理に進みラスタ順で次のブロックを符号化する。
【0039】
次に、ステップS408では、格納フラグFの値が0か否かが判定される。格納フラグFの値が0であるという事は、ステップS404の発生確率テーブル格納条件が一度も満たされなかった事を示す。すなわち、前記記憶条件数を満たすブロックが上端ブロックラインには存在しなかった事を示す。前記記憶条件数を満たすブロックが上端ブロックラインに存在するためには、上端ブロックラインに属するブロックの数が、フレームの水平方向のブロック数と記憶条件数との差より大きい必要がある。以下、前記記憶条件数を満たすブロックが上端ブロックラインに存在するために必要なブロックの数を必要ブロック数と記す。例えば、記憶条件数が4であり、フレームの水平方向のブロック数が10であったとすると、必要ブロック数は、10−4+1=7となる。また、前記記憶条件数をブロックラインの左端からの所定数である場合は、必要ブロック数は前記記憶条件数と同一の値となる。格納フラグFの値が0の時はステップS409の処理に進み、そうでない場合は上端ブロックラインの符号化を終了する。
【0040】
次に、ステップS409では、発生確率テーブルを第一発生確率テーブルとして、第一発生確率テーブル記憶部104に記憶した後に、上端ブロックラインの符号化を終了する。ステップS409では、上端ブロックラインの右端のブロックの符号化を終えた時点での発生確率テーブルが記憶される事になる。
【0041】
一方、ステップS303の処理(上端以外のブロックラインを符号化する処理)に関して、図5のフローチャートを用いて詳細に説明する。各ブロックラインは、セレクタ101において偶数番目のブロックラインであるか否かが判定される。偶数番目のブロックラインであるならば第一符号化部102に処理対象のブロックの画像が入力され符号化される。奇数番目のブロックラインであるならば第二符号化部103に処理対象のブロックの画像が入力され符号化される。まず、奇数番目のブロックラインを第二符号化部103で符号化する際のフローについて説明する。
【0042】
まず、ステップS501において、第一発生確率テーブルが第一発生確率テーブル記憶部104から、ブロックライン基準発生確率テーブルとして入力される。
【0043】
ステップS502、S503、S505の処理は、それぞれステップS403、S404、S407の処理と同一であるため説明を省略する。
【0044】
ステップS504の処理では、発生確率テーブルが第二発生確率テーブルとして、第二発生確率テーブル記憶部105に格納される。第二発生確率テーブルは、次のブロックラインの左端のブロックを算術符号化する際にブロックライン基準発生確率テーブルとして用いられる。
【0045】
続いて、偶数番目のブロックラインを第一符号化部102で符号化する際のフローを説明する。
【0046】
まず、ステップS501の処理では、第二発生確率テーブルが第二発生確率テーブル記憶部105からブロックライン基準発生確率テーブルとして入力される。
【0047】
ステップS502、S503、S504、S505の処理に関しては、それぞれステップS403、S404、S406、S407の処理と同一であるため説明を省略する。
【0048】
以上の構成と動作により、スライスの上端ブロックラインに属するブロック数が前記必要ブロック数より少なくても、上端ブロックラインの右端のブロックの発生確率テーブルを参照する事により2番目のブロックラインの左端のブロックを符号化する事が可能となる。
【0049】
また、本実施形態においては、スライスの上端ブロックラインに属するブロック数が前記必要ブロック数より少ない場合は、右端のブロックの発生確率テーブルを次のラインの左端のブロックを符号化する際のブロックライン基準発生確率テーブルとして用いた。しかし、本発明はこれに限定されるものではなく、スライスの形状が制限されない構成となればよい。例えば、スライスの上端ブロックラインに属するブロックの数が記憶条件数よりも少ない場合は、予め初期化した発生確率テーブルを、次のブロックラインのブロックライン基準発生確率テーブルとしてもよい。他にも、スライスの上端ブロックラインに属するブロックの数が必要ブロック数よりも少ない場合は、スライスの上端ブロックラインの任意のブロックを符号化した時点での発生確率テーブルを次のブロックラインのブロックライン基準発生確率テーブルとしてもよい。他にも、スライスの上端ブロックラインに属するブロックの数が必要ブロック数よりも少ない場合は、上端ブロックラインと2番目のブロックラインを統合して第一符号化部102で符号化してもよい。図7に、ブロックラインの統合を示す。図7は、フレームを二つのスライスに分割している。太線で囲まれた部分はそれぞれスライスを表しており、701は上方のスライス、702は下方のスライスを表す。細線で囲まれる矩形はそれぞれブロックを表す。白色部のブロックが第一符号化部102で符号化され、斜線部のブロックが第二符号化部103で符号化される。ここで、記憶条件数を5、フレームの水平方向のブロック数を10とする。フレームの水平方向と記憶条件数の差分の値は5であり、上端ブロックラインにはそれより多いブロックが必要であるため、前記必要ブロック数は6となる。しかし、スライス702の上端ブロックラインには、前記必要ブロック数以上のブロックが存在していない。そこでブロックラインを統合する事により、統合されたブロックラインは前記必要ブロック数以上のブロックを有する事になる。そして統合されたブロックラインを上端ブロックラインとして取扱い、ラスタ順で前記必要ブロック数目のブロックを符号化した時点での発生確率テーブルを、次のブロックラインのブロックライン基準発生確率テーブルとしてもよい。前記必要ブロック数を6とすると、スライス702の中でラスタ順で6番目のブロックである703のブロックを符号化した時点での発生確率テーブルが、次のブロックラインのブロックライン基準発生確率テーブルとなる。
【0050】
また、本実施形態においてはエントロピー符号化に算術符号化を用いたが、本発明はこれに限定されるものではない。前記発生確率テーブルのような統計的な情報に基づいたエントロピー符号化を行う際に、ブロックラインの符号化の途中での、前記統計的な情報を次のブロックラインの左端のブロックをエントロピー符号化する際に用いるものならばよい。
【0051】
なお、本実施形態で符号化部が2つの場合について説明したが、例えば第三符号化部、第三発生確率テーブル記憶部を加えることで、より多くの符号化部での並列処理が可能になることは明白である。
【0052】
<実施形態2>
以下、本発明の第2の実施形態を、図面を用いて説明する。図9は本実施形態の画像復号装置を示すブロック図である。
【0053】
図9において、901は、処理対象のブロックが偶数番目のブロックラインに属するかを判定するセレクタである。セレクタ901にはスライス単位にビットストリームが入力される。偶数番目のブロックラインに属しているのならば第一復号部902へ前記ビットストリームを分割した分割データを出力し、そうでないならば第二復号部903へ前記ビットストリームを分割した分割データ出力する。
【0054】
902及び903は、入力されたビットストリームを、図2のようにブロックライン単位で復号を行う復号部である。本実施形態において、復号部を2つ用いる場合について説明するが、本発明はこれに限定されない。図2において、上端のブロックライン(0ライン目)を含む偶数番目のブロックラインを示す白色部のブロックは第一復号部902にて復号され、奇数番目のブロックラインを示す斜線部のブロックは第二復号部903にて復号される。以下、実施形態1の符号化装置と同様に、上端のブロックラインを上端ブロックラインと記す。
【0055】
各復号部においては、まず復号対象のビットストリームの2値信号に対し発生確率テーブルが選択され、前記発生確率テーブルを基に算術復号が行われ、量子化係数を生成される。次に、前記量子化係数は、量子化パラメータに基づいて逆量子化が行われ、変換係数が生成される。次に、変換係数は逆直交変換が行われ、予測誤差が生成される。次に、復号対象のブロックの周辺の画素または他のフレームの参照による動き補償が行われ、復号対象のブロックの画像データが生成される。
【0056】
904は第一復号部902で生成された発生確率テーブルを保持する第一発生確率テーブル記憶部である。
【0057】
905は第二復号部903で生成された発生確率テーブルを保持する第二発生確率テーブル記憶部である。
【0058】
906は第一復号部902、第二復号部903で生成された画像データを成形し、出力する画像データ統合部である。
【0059】
本実施形態の画像復号装置の動作を、図10から図13のフローチャートを用いて詳細に説明する。本実施形態ではビットストリームはフレームを分割したスライス単位で入力され、前記ビットストリームはブロック単位の符号データに分割されて復号される。本実施形態ではビットストリームをスライス単位に入力する構成となっているが、フレーム単位に入力しても構わない。また、本実施形態では、説明を容易にするため、イントラ予測復号の処理のみを説明するが、これに限定されずインター予測復号の処理においても適用可能である。
【0060】
まず、ステップS1001では、セレクタ901が処理対象のブロックが上端ブロックラインか否かを判定する。本実施形態においてセレクタ901は、スライスヘッダやPicture Parameter Set(以下、PPS)等の上位の階層のシンタックス要素の解析結果及び復号したブロック数に基づいて上端のブロックラインであるか否かを判定する。しかし、本発明はそれに限定されるものではない。例えば、入力されるビットストリームには、予めブロックラインの区切れ目に識別子が存在し、それを基にブロックラインが偶数番目であるか否かを判定してもよい。他にも、各ブロックラインのビットストリームの大きさや、次のブロックラインの開始位置を表す情報が与えられて、それを基にブロックラインが偶数か否かを判定してもよい。また、後述するステップS1003において、ブロックラインが偶数番目であるか否かを判定する処理があるが、判定の基準となる情報はステップS1001と同一である。上端ブロックラインであるならば(ステップS1001でYes)ステップS1002の処理に進み、そうでないならばステップS1003の処理に進む。実施形態1の符号化装置と同様に、上端ブロックラインはスライスの上端である事を意味しており、別のスライスのブロックとの位置関係は考慮されない。即ち図8の白色部のスライスにおいては、ブロック801が属するブロックラインが前記上端ブロックラインとなる。
【0061】
ステップS1002の処理は、上端ブロックラインを復号する処理であり、詳細は後述する。ステップS1003の処理は、上端以外のブロックラインを復号する処理であり、同じく詳細は後述する。
【0062】
次に、ステップS1004では、画像データ統合部906において、第一復号部902及び第二復号部903から出力された各画像データを統合し、復号画像を生成、出力する。
【0063】
次に、ステップS1005では、処理対象のスライスの全ブロックラインを復号したか否かを判定する。復号済ならば(ステップS1005でYes)1スライスの復号処理を終了し、そうでないならばステップS1001の処理に進み、次のブロックラインを復号する。
【0064】
ステップS1002の処理(上端ブロックラインを復号する処理)に関して、図11のフローチャートを用いて詳細に説明する。上端ブロックラインは、偶数番目のブロックラインであるので、処理対象のブロックラインの符号データはセレクタ901によって第一復号部902へ入力され復号される。
【0065】
図10では、まず、ステップS1101において、格納フラグFが0に初期化される。格納フラグFは、前記発生確率テーブルを格納したか否かを示すフラグである。次に、ステップS1102において発生確率テーブルが所定の方法で初期化される。初期化された発生確率テーブルは、ブロックラインの左端のブロックの最初の2値信号を算術復号する際に用いられ、後述するステップS1103で随時更新される。以下、ブロックラインの最初のブロックの2値信号を算術復号する際に用いられる発生確率テーブルを、実施形態1の符号化装置と同様に、ブロックライン基準発生確率テーブルと記す。
【0066】
次に、ステップS1103では、第一復号部902によってビットストリームがブロック単位で復号され画素データが生成される。
【0067】
本実施形態では、ブロックを64×64画素とするが、本発明はこれに限定されるものではなく、ブロックのサイズは32×32画素のように小さくてもよいし、128×128画素のように大きくてもよい。ステップS1103のブロック復号処理について、図13のフローチャートを用いて詳細に説明する。
【0068】
まず、ステップS1301では、ビットストリームが、前記発生確率テーブルに基づいて算術復号され、2値信号が生成される。更に、H.264と同様にシンタックス要素毎に、ユーナリー・バイナリゼーション、固定長バイナリゼーション等の種々の2値化方式で2値化されている前記2値信号を復号し、量子化係数を含むシンタックス要素を生成する。
【0069】
次に、ステップS1302では、算術復号された2値信号が、発生確率の高い方のシンボルであったか否かに基づいて前記発生確率テーブルが更新される。
【0070】
次に、ステップS1303では、ブロック内の全シンタックス要素が算術復号されたか否かが判定される。全シンタックス要素が算術復号されたならば(ステップS1303でYes)ステップS1304の処理に進み、そうでないならばステップS1301の処理に進む。
【0071】
次に、ステップS1304では、前記量子化係数が逆量子化され、変換係数が生成される。更に、前記変換係数には逆直交変換が適用され、予測誤差が生成される。
【0072】
次に、ステップS1305では、処理対象のブロックの周辺の画素からイントラ予測が行われ予測画像が生成される。更に、前記予測誤差と予測画像を足し合わせる事で、ブロック単位の画像データを生成する。
【0073】
図11のフローチャートに戻り、ステップS1103では、発生確率テーブルを格納する条件をみたしているか否かが判定される。本実施形態では、ステップS1103で復号したブロックが、フレームの左端から所定数目のブロックであったか否かを、前記発生確率テーブルを格納する条件とする。以下、前記発生確率テーブルを格納する条件である所定数を、実施形態1の符号化装置と同様に記憶条件数と記す。本実施形態では、記憶条件数をフレームの左端からの所定数とするが、本発明はそれに限定されるものではない。例えば、図2のブロックライン202のようにブロックラインにフレームの左端のブロックが存在しない場合がある。その際は、フレームの左端からの所定数を記憶条件数としてもよいし、ブロックラインの左端からの所定数を記憶条件数としてもよい。また本実施形態では、前記記憶条件数はスライスヘッダやPPS等の上位の階層のシンタックス要素として予め符号化されているものとする。しかし本発明はこれに限定されるものではなく、前記記憶条件数はビットストリームに依存しない固定値でもよい。前記条件を満たしている際には(ステップS1104でYes)ステップS1105の処理に進み、前記条件を満たしていない場合はステップS1107の処理に進む。
【0074】
ステップS1105では、格納フラグFが1に更新される。次にステップS1106では、発生確率テーブルを第一発生確率テーブルとして、第一発生確率テーブル記憶部904に記憶する。第一発生確率テーブルは、次のブロックラインの左端のブロックを復号する際のブロックライン基準発生確率テーブルとして用いられる。
【0075】
次に、ステップS1107において、処理対象のブロックラインの全ブロックを復号したか否かが判定される。全てのブロックを復号したならば(ステップS1107でYes)ステップS1108の処理に進み、そうでないならばステップS1103の処理に進みラスタ順で次のブロックを復号する。
【0076】
次に、ステップS1108では、格納フラグFの値が0か否かが判定される。格納フラグFの値が0であるという事は、ステップS1104の発生確率テーブル格納条件が一度も満たされなかった事を示す。すなわち、前記記憶条件数を満たすブロックが上端ブロックラインには存在しなかった事を示す。前記記憶条件数を満たすブロックが上端ブロックラインに存在するためには、上端ブロックラインに属するブロックの数が、フレームの水平方向のブロック数と記憶条件数との差より大きい必要がある。以下、前記記憶条件数を満たすブロックが上端ブロックラインに存在するために必要なブロックの数を必要ブロック数と記す。例えば、記憶条件数が4であり、フレームの水平方向のブロック数が10であったとすると、必要ブロック数は、10−4+1=7となる。また、前記記憶条件数をブロックラインの左端からの所定数である場合には、必要ブロック数は前記記憶条件数と同一の値となる。また、前記記憶条件数を、ブロックラインの左端からの所定数であるとすると、前記必要ブロック数は前記記憶条件数と同一となる。そして、格納フラグFの値が0の時はステップS1109の処理に進み、そうでない場合は上端ブロックラインの復号を終了する。本実施形態では、格納フラグFを用いて上端ブロックラインに属するブロックの数が前記必要ブロック数未満であったか否かを判定した。しかし本実施形態はこれに限定されるものではない。例えば、スライス単位の符号データのヘッダを解析し、前記スライスの最初のブロックのフレーム内における空間的な位置を算出し、それとフレームの横幅を基に上端ブロックラインに属するブロックの数が前記記憶条件数未満であったかを判定してもよい。
【0077】
次に、ステップS1109では、発生確率テーブルを第一発生確率テーブルとして、第一発生確率テーブル記憶部904に記憶した後に、上端ブロックラインの復号を終了する。ステップS1109では、上端ブロックラインの右端のブロックの復号を終えた時点での発生確率テーブルが記憶される事になる。
【0078】
ステップS1003の処理(上端以外のブロックラインを復号する処理)に関して、図12のフローチャートを用いて詳細に説明する。各ブロックラインは、セレクタ901において偶数番目のブロックラインであるか否かが判定される。偶数番目のブロックラインであるならば第一復号部902に処理対象のブロックのビットストリームが入力され復号される。奇数番目のブロックラインであるならば第二復号部903に処理対象のブロックのビットストリームが入力され復号される。まず、奇数番目のブロックラインを第二復号部903で復号する際のフローについて説明する。
【0079】
まず、ステップS1201において、第一発生確率テーブルが第一発生確率テーブル記憶部904から、ブロックライン基準発生確率テーブルとして入力される。
【0080】
ステップS1202、S1203、S1205の処理は、ステップS1103、S1104、S1107の処理と同一であるため説明を省略する。
【0081】
ステップS1204の処理では、発生確率テーブルが第二発生確率テーブルとして、第二発生確率テーブル記憶部905に記憶される。第二発生確率テーブルは、次のブロックラインの左端のブロックを算術復号する際にブロックライン基準発生確率テーブルとして用いられる。
【0082】
続いて、偶数番目のブロックラインを第一復号部902で復号する際のフローを説明する。
【0083】
まず、ステップS1201の処理では、第二発生確率テーブルが第二発生確率テーブル記憶部905からブロックライン基準発生確率テーブルとして入力される。
【0084】
ステップS1202、S1203、S1204、S1205の処理に関しては、ステップS1103、S1104、S1106、S1107の処理と同一であるため説明を省略する。
【0085】
以上の構成と動作により、スライスの上端ブロックラインに属するブロック数が必要ブロック数より少なくても、上端のラインの右端のブロックの発生確率テーブルを参照する事により2番目のブロックラインの左端のブロックを復号する事が可能となる。
【0086】
また、本実施形態においては、スライスの上端ブロックラインに属するブロック数が必要ブロック数より少ない場合は、右端のブロックの発生確率テーブルを次のラインの左端のブロックを復号する際のブロックライン基準発生確率テーブルとして用いた。しかし、本発明はこれに限定されるものではなく、スライスの形状が制限されない構成となればよい。例えば、スライスの上端ブロックラインに属するブロックの数が必要ブロック数よりも少ない場合は、予め初期化した発生確率テーブルを、次のブロックラインのブロックライン基準発生確率テーブルとしてもよい。他にも、スライスの上端ブロックラインに属するブロックの数が必要ブロック数よりも少ない場合は、スライスの上端ブロックラインの任意のブロックを復号した時点での発生確率テーブルを次のブロックラインのブロックライン基準発生確率テーブルとしてもよい。また、前記任意のブロックが何であるかという情報を予めシンタックス要素としてビットストリームに含めておいて、それを基にブロックライン基準発生確率テーブルを決定してもよい。他にも、スライスの上端ブロックラインに属するブロックの数が必要ブロック数よりも少ない場合は、上端ブロックラインと2番目のブロックラインを統合して第一復号部902で復号してもよい。実施形態1の符号化装置と同様に、図7にブロックラインの統合を示す。図7は、フレームを二つのスライスに分割している。太線で囲まれた部分はそれぞれスライスを表しており、701は上方のスライス、702は下方のスライスを表す。細線で囲まれる矩形はそれぞれブロックを表す。白色部のブロックが第一復号部902で復号され、斜線部のブロックが第二復号部903で復号される。ここで、記憶条件数を5、フレームの水平方向のブロック数を10とする。フレームの水平方向と記憶条件数の差分の値は5であり、上端ブロックラインにはそれより多いブロックが必要であるため、前記必要ブロック数は6となる。しかし、スライス702の上端ブロックラインには5個しかブロックが存在していない。そこでブロックラインを統合する事により、統合されたブロックラインは必要ブロック数以上のブロックを有する事になる。そして統合されたブロックラインを上端ブロックラインとして取扱い、ラスタ順で必要ブロック数目のブロックを符号化した時点での発生確率テーブルを、次のブロックラインのブロックライン基準発生確率テーブルとしてもよい。前記必要ブロック数を6とすると、スライス702の中でラスタ順で6番目のブロックである703のブロックを復号した時点での発生確率テーブルが、次のブロックラインのブロックライン基準発生確率テーブルとなる。
【0087】
また、本実施形態においてはエントロピー復号に算術復号を用いたが、本発明はこれに限定されるものではない。前記発生確率テーブルのような統計的な情報に基づいたエントロピー復号を行う際に、ブロックラインの復号の途中での、前記統計的な情報を次のブロックラインの左端のブロックをエントロピー復号する際に用いるものならばよい。
なお、本実施形態で復号部が2つの場合について説明したが、例えば第三復号部、第三発生確率テーブル記憶部を加えることで、より多くの復号部での並列処理が可能になることは明白である。
【0088】
<実施形態3>
図1、図9に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、図1、図9に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
【0089】
14は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【0090】
CPU1401は、RAM1402やROM1403に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU1401は、図1、図9に示した各処理部として機能することになる。
【0091】
RAM1402は、外部記憶装置1406からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1409を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM1402は、CPU1401が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1402は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
【0092】
ROM1403には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部1404は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU1401に対して入力することができる。表示部1405は、CPU1401による処理結果を表示する。また表示部1405は例えば液晶ディスプレイのような表示装置で構成される。
【0093】
外部記憶装置1406は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置1406には、OS(オペレーティングシステム)や、図1、図9に示した各部の機能をCPU1401に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置1406には、処理対象としての各画像データが保存されていても良い。
【0094】
外部記憶装置1406に保存されているコンピュータプログラムやデータは、CPU1401による制御に従って適宜RAM1402にロードされ、CPU1401による処理対象となる。I/F1407には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F1407を介して様々な情報を取得したり、送出したりすることができる。1408は上述の各部を繋ぐバスである。
【0095】
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU1401が中心となってその制御を行う。
【0096】
<その他の実施形態>
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【0097】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【0098】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。

【特許請求の範囲】
【請求項1】
画像を分割して、1つ以上のブロックで構成される第1ブロック群と前記第1ブロック群に隣接する第2ブロック群とを生成する分割手段と、
前記第1ブロック群をブロック単位で符号化する第1符号化手段と、
前記第2ブロック群をブロック単位で符号化する第2符号化手段と、
前記第1符号化手段が所定位置のブロックを処理した後の符号化情報を記憶する記憶手段を有し、
前記記憶手段は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記所定位置を第1ブロック群内のブロックに設定し、前記設定された所定位置に基づいて前記符号化情報を記憶し、前記第2符号化手段は当該符号化情報に基づいて符号化を開始することを特徴とする画像符号化装置。
【請求項2】
前記記憶手段は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記第1ブロック群に含まれる最後のブロックを前記所定位置と設定して情報を記憶することを特徴とする請求項1に記載の画像符号化装置。
【請求項3】
前記記憶手段は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記第1ブロック群に含まれる最初のブロックを前記所定位置と設定して情報を記憶することを特徴とする請求項1に記載の画像符号化装置。
【請求項4】
ビットストリームを分割して、1つ以上のブロックで構成される第1ブロック群と前記第1ブロック群に隣接する第2ブロック群とを生成する分割手段と、
前記第1ブロック群をブロック単位で復号する第1復号手段と、
前記第2ブロック群をブロック単位で復号する第2復号手段と、
前記第1復号手段が所定位置のブロックを処理した後の復号情報を記憶する記憶手段を有し、
前記記憶手段は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記所定位置を第1ブロック群内のブロックに設定し、前記設定された所定位置に基づいて前記復号情報を記憶し、前記第2復号手段は、当該復号情報に基づいて復号を開始することを特徴とする画像復号装置。
【請求項5】
画像を分割して、1つ以上のブロックで構成される第1ブロック群と前記第1ブロック群に隣接する第2ブロック群とを生成する分割工程と、
前記第1ブロック群をブロック単位で符号化する第1符号化工程と、
前記第2ブロック群をブロック単位で符号化する第2符号化工程と、
前記第1符号化工程が所定位置のブロックを処理した後の符号化情報を記憶手段に記憶する記憶工程を有し、
前記記憶工程は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記所定位置を第1ブロック群内のブロックに設定し、前記設定された所定位置に基づいて前記符号化情報を記憶し、前記第2符号化工程は当該符号化情報に基づいて符号化を開始することを特徴とする画像符号化装置の画像符号化方法。
【請求項6】
ビットストリームを分割して、1つ以上のブロックで構成される第1ブロック群と前記第1ブロック群に隣接する第2ブロック群とを生成する分割工程と、
前記第1ブロック群をブロック単位で復号する第1復号工程と、
前記第2ブロック群をブロック単位で復号する第2復号工程と、
前記第1復号工程が所定位置のブロックを処理した後の復号情報を記憶手段に記憶する記憶工程を有し、
前記記憶工程は、前記第1ブロック群が前記所定位置のブロックを含まない場合に、前記所定位置を第1ブロック群内のブロックに設定し、前記設定された所定位置に基づいて前記復号情報を記憶し、前記第2復号工程は、当該復号情報に基づいて復号を開始することを特徴とする画像復号装置の画像符号化方法。
【請求項7】
コンピュータが読み出して実行することにより、前記コンピュータを、請求項1に記載の画像符号化装置として機能させることを特徴とするプログラム。
【請求項8】
コンピュータが読み出して実行することにより、前記コンピュータを、請求項4に記載の画像復号装置として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2013−98735(P2013−98735A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−239462(P2011−239462)
【出願日】平成23年10月31日(2011.10.31)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】