JP2014011726A - 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム - Google Patents
画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム Download PDFInfo
- Publication number
- JP2014011726A JP2014011726A JP2012148510A JP2012148510A JP2014011726A JP 2014011726 A JP2014011726 A JP 2014011726A JP 2012148510 A JP2012148510 A JP 2012148510A JP 2012148510 A JP2012148510 A JP 2012148510A JP 2014011726 A JP2014011726 A JP 2014011726A
- Authority
- JP
- Japan
- Prior art keywords
- tile
- block line
- data
- decoding
- encoded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 スライス内にタイルが複数あり、各タイル内でWavefront並列処理を実施する時は、ブロックライン数が一意に定まるにも関わらず、同一の情報をシンタックスとして符号化していたために、符号化効率の悪化を招いていた。
【解決手段】 スライス内にタイルが複数存在する時は、ブロックライン数に関するシンタックスを含まない画像符号化フォーマットを用いて符号化・復号化を行う。
【選択図】 図1
【解決手段】 スライス内にタイルが複数存在する時は、ブロックライン数に関するシンタックスを含まない画像符号化フォーマットを用いて符号化・復号化を行う。
【選択図】 図1
Description
本発明は画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラムに関し、特に各ピクチャが矩形状のタイルに分割された画像の並列処理による符号化方法・復号方法に関する。
動画像の圧縮記録に用いられる符号化方式として、H.264/MPEG−4 AVC(以下H.264)が知られている。(非特許文献1)
H.264においては、ピクチャを複数のスライスに分割して符号化する事が可能である。各スライス間にはデータの依存性が少なく、並列に符号化・復号化処理を実施する事ができる。マルチコアのCPU等で並列に処理を実行し、処理時間を短縮できる事が、スライス分割の大きな利点の一つとして挙げられる。
H.264においては、ピクチャを複数のスライスに分割して符号化する事が可能である。各スライス間にはデータの依存性が少なく、並列に符号化・復号化処理を実施する事ができる。マルチコアのCPU等で並列に処理を実行し、処理時間を短縮できる事が、スライス分割の大きな利点の一つとして挙げられる。
また、各スライスはH.264に採用されている従来の2値算術符号化の手法によって、符号化される。すなわち、各シンタックス要素が2値化され、2値信号が生成される。各シンタックス要素には、あらかじめ発生確率がテーブル(以下、発生確率テーブル)として与えられ、前記2値信号は前記発生確率テーブルに基づいて算術符号化される。この発生確率テーブルは復号時には復号情報として、続く符号の復号に使用される。符号化時には符号化情報として、続く符号化に使用される。そして符号化が行われる毎に、符号化された2値信号が発生確率の高い方のシンボルであったか否か、という統計情報に基づいて発生確率テーブルが更新される。
近年、H.264の後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始されて、JCT−VC(Joint Collaborative Team on Video Coding)がISO/IECとITU−Tの間で設立された。JCT−VCでは、High Efficiency Video Coding符号化方式(以下、HEVC)の標準化が進められている。
HEVCの標準化にあたっては、種々の符号化ツールが、符号化効率向上のみならず実装の容易性や処理時間の短縮といった観点も含めて幅広く検討されている。処理時間の短縮の中には、並列性を高めるための手法も検討されている。その中には、エントロピ符号化・復号化を並列に処理するための、Wavefrontと呼ばれる手法がある(非特許文献2)。符号化対象の2値信号は、常に更新された発生確率テーブルを用いて符号化を行う必要があるため、統計情報をリセットしなければ処理を並列に行う事ができない。しかし、統計情報をリセットしてしまうと符号化効率が低下してしまうという課題があった。それに対してWavefrontは、複数の、予め指定された位置のブロックを符号化処理した時点での発生確率のテーブルを、次のラインの左端のブロックに適用する事で、符号化効率の低下を抑制した上でライン単位でのブロックの並列な符号化処理が可能となる。
上記、Wavefrontに関しては主に符号化処理に関して説明したが、復号処理に関しても同様である。
上記、Wavefrontに関しては主に符号化処理に関して説明したが、復号処理に関しても同様である。
また、HEVCでは、並列性を高める手法としてタイル処理も含まれている(非特許文献2)。このタイルはピクチャ内を矩形に分割し、それぞれを独立に処理を行う技術である。これにより、符号化・復号の並列処理による高速化を実現すると共に符号化装置・復号装置が備えるメモリ容量を削減することが可能となっている。
ITU−T H.264 (03/2010) Advanced video coding for generic audio visual services
JCT−VC 寄書 JCTVC−I1003.doc インターネット< http://phenix.int‐evry.fr/jct/doc
従来、HEVCでは、tiles_or_entropy_coding_sync_idc符号を用いて、タイル、Wavefront等の処理を排他的に行っていた。その値が0であれば、ピクチャに1つのタイルのみが存在し、Wavefront並列処理を行わない。その値が1であれば、ピクチャ内に複数のタイルが存在するが、Wavefront処理を行わない。その値が2であれば、ピクチャ内に1つのタイルのみが存在し、Wavefront等の並列処理を行う。その値が3であれば、ピクチャ内に1つのタイルのみが存在し、Wavefrontの並列処理を行わず、独立に復号可能なエントロピスライスを用いる。これ以外の値に関しては使用できないとしている。これは画像がハイビジョンのように十分に小さい時に複数の並列処理を行うと、並列処理の制御が複雑になり、ピクチャサイズの割には複雑度が高くなるという問題があったため、排他的な処理を行うことにしたものである。特に8K4K等画像が非常に大きい時は、リアルタイムで復号するためには高い並列性が求められる。タイルを非常に細かく分割して並列性を高める事は可能だが、タイル境界では予測に使える情報が限られるため符号化効率が低下してしまう。一方ブロックラインのみで分割してWavefront並列処理をすることは、ラインバッファの増大を招く上、ブロックライン間で発生確率テーブル等依存関係があるためタイル程並列性を高める事はできない。また、このような大画面を扱う場合、画面を有る程度のサイズに分割して、其々をコンピュータのノードに割り当て、ノード毎に複数のプロセッサで動作させることが必要になった。例えば、ノード単位にタイルを割り当てて処理を行う場合、タイル内をWavefrontなどで並列に処理を行うことができないという問題が生じる。
これに対し、タイル及びWavefront並列処理のためのエントリポイントを個別に定義する事で並列処理を可能とすることが考えられる。しかしながら、1スライスが複数のタイルに分割され、該タイル内でWavefront並列処理が行われる際に、Wavefront並列処理のためのエントリポイント数を符号化しなければならないという課題があった。HEVCでは、全てのエントリポイントを明示的にスライスヘッダに出力するという制限がある。また、HEVCには更に、1つのスライス内に複数のタイルが存在する時は、該タイルを構成する全てのブロックを同一のスライス内に含まなければならないという制限がある。各タイルの垂直ブロック数は事前にピクチャ・パラメータ・セットで与えられているため、1スライス中に複数のタイルが存在する時は、スライス中のWavefront並列処理のエントリポイント数を明示的に符号化しなくても、エントリポイント数が確定する。そのため1スライス中に複数のタイルが存在するときは、Wavefront並列処理のためのエントリポイント数は符号化する必要がない。
したがって、本発明は、多段階の並列処理を、より少ない符号化データサイズで実現することを目的としている。
上述の問題点を解決するため、とを有する。
本発明により、多段階の並列処理を、より少ない符号化データサイズで実現可能となる。
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
本発明の実施形態1の画像復号装置が復号する画像符号化フォーマットにおいては1フレームが複数の矩形状の領域であるタイルに分割される。図2に実施形態1におけるタイル構造を示す。図2においてはタイル分割の一例として、水平7680画素×垂直4320画素のフレームが水平2タイル×垂直2タイルの4個のタイルに分割された様子を示している。本発明の符号化フォーマットではブロックは水平16画素×垂直16画素で構成され、ブロック単位で符号化・復号が行われる。本実施形態ではブロックを16×16画素としているが、本発明はこれに限定されるものではない。ブロックは32×32画素でもよいし、64×64画素でもよい。各タイルサイズはブロックサイズの逓倍であり、図2において各タイルは水平240個×垂直135個のブロックから構成される。前記タイルは更に複数のブロックラインに分割されて符号化されている。ブロックラインとは、図3に示すように、タイル内のブロックをライン状に集合させたものである。図3において、細線による正方形で表されている301はブロックを表し、太線による長方形で表されている302はブロックラインを表している。
本発明の実施形態1の画像復号装置が復号する画像符号化フォーマットにおいては1フレームが複数の矩形状の領域であるタイルに分割される。図2に実施形態1におけるタイル構造を示す。図2においてはタイル分割の一例として、水平7680画素×垂直4320画素のフレームが水平2タイル×垂直2タイルの4個のタイルに分割された様子を示している。本発明の符号化フォーマットではブロックは水平16画素×垂直16画素で構成され、ブロック単位で符号化・復号が行われる。本実施形態ではブロックを16×16画素としているが、本発明はこれに限定されるものではない。ブロックは32×32画素でもよいし、64×64画素でもよい。各タイルサイズはブロックサイズの逓倍であり、図2において各タイルは水平240個×垂直135個のブロックから構成される。前記タイルは更に複数のブロックラインに分割されて符号化されている。ブロックラインとは、図3に示すように、タイル内のブロックをライン状に集合させたものである。図3において、細線による正方形で表されている301はブロックを表し、太線による長方形で表されている302はブロックラインを表している。
本実施形態におけるHEVCによる符号化データのフォーマットを図1に示す。図1の符号化データには、まずシーケンスの符号化に関わる情報が含まれたヘッダ情報であるシーケンス・パラメータ・セット(SPS)が存在する。さらに、ピクチャの符号化に関わる情報が含まれたヘッダ情報であるピクチャ・パラメータ・セット(PPS)、スライスの符号化に関わる情報が含まれたヘッダ情報であるスライスヘッダ(SLH)及び各タイルの符号化データが多重化される。ピクチャ・パラメータ・セットには、タイルデータ分割情報及びブロックラインデータ分割情報が存在する。スライスヘッダにはスライスタイル情報及びスライスブロックライン情報が存在する。
ピクチャ・パラメータ・セットには、タイルデータ分割情報として、まずフレームがタイルに分割されて符号化されているか否かを示すTileFlagが存在する。TileFlagが1の時はフレームがタイルに分割されて符号化されている事を示し、そうでない場合はフレームがタイルに分割されずに符号化されている事を示す。TileFlagが1の時は、フレーム内の水平タイル数を表すnum_tile_columns_minus1、垂直タイル数を表すnum_tile_rows_minus1、タイル形状を示すuniform_spacing_flagの情報が挿入される。num_tile_columns_minus1及びnum_tile_rows_minus1はそれぞれフレーム内の実際の水平タイル数、垂直タイル数から1を減じた数を示す。なお図1中のNはスライス中のタイル数であり、(num_tile_columns_minus1+1)×(num_tile_rows_minus1+1)により一意に決まる数である。uniform_spacing_flagは、フレーム内の各タイルが同じ大きさであるか否かを示すフラグであり、値が1の時は各タイルが同じ大きさである事を示す。なお図2は各タイルが同じサイズが使用される、uniform_spacing_flag=1である時の例である。このフラグの値が0の時は各タイルの大きさが異なるため、それぞれの大きさを符号にする必要が生じる。
また、ピクチャ・パラメータ・セットにはブロックラインデータ分割情報としてWPPFlagが存在する。WPPFlagが1の時は、各タイルがブロックラインに分割されて符号化されている事を示す。本実施形態では、ブロックラインデータ分割情報及びタイルデータ分割情報を別個のフラグとして用意したが、本発明はこれに限定されず、タイルデータ分割とブロックラインデータ分割が併用される事がわかれば良い。例えば、二つのフラグを統合したシンタックスを用意して以下のように定めてもよい。
該シンタックスの値が0の時はタイルデータ分割がなく、かつブロックラインデータ分割がないことを表す。値が1の時はタイルデータ分割があり、かつブロックラインデータ分割ないことを表す。値が2の時はタイルデータ分割がなく、かつブロックラインデータ分割があることを表す。値が3の時はタイルデータ分割があり、かつブロックラインデータ分割があることを表す。
スライスヘッダには、TileFlagが1の時にはスライスタイル情報が存在し、WPPFlagが1の時にはスライスブロックライン情報が存在する。スライスタイル情報は、タイル数情報及びタイルデータ位置情報からなる。タイル数情報としてnum_tile_entry_point_offsets、タイルデータ位置情報としてtile_entry_point_offsetが存在する。さらに、スライスブロックライン情報の中には、ブロックライン数情報としてnum_wpp_entry_point_offsetsが存在する。スライスブロックライン情報の中には更にブロックラインデータ位置情報としてwpp_entry_point_offsetが存在する。ブロックライン数情報及びブロックラインデータ位置情報のセットは、スライス内のタイルの数だけ存在する。num_tile_entry_point_offsetsの値は、スライス中のタイル数を表すNから1を減じた値となる。num_wpp_entry_point_offsetsの値は、タイル内のブロックライン数を表すMから1を減じた値となる。TileFlagが0の時は、num_tile_entry_point_offsetsの値は0として扱われる。WPPFlagが0の時は、num_wpp_entry_point_offsetsの符号は省略され、値は0として扱われる。
num_tile_entry_point_offsetsは、当該スライスに存在するタイルの符号化データのエントリポイント数を表す。タイルの符号化データのエントリポイント数は、スライスに含まれるタイル数により一意に定まり、タイル数が2の場合はエントリポイント数が1、タイル数が4ならばエントリポイント数は3になる。本実施形態では、フレームがタイルを4つ含む単一のスライスで構成されているものとする。即ち、num_tile_entry_point_offsetsの値は3である。tile_entry_point_offsetはタイルの符号化データのエントリポイント、即ちタイルの符号化データの先頭位置を表す。tile_entry_point_offsetは、num_tile_entry_point_offsetsの数だけ存在し、tile_entry_point_offset[i]はi番目のタイルの符号化データのエントリポイントを示す。スライスヘッダの直後に、0番目のタイルの符号化データが存在する事がわかっているため、0番目のタイルのエントリポイントは省略される。そして、i−1番目のタイルの符号化データの大きさがtile_entry_point_offset[i]シンタックスとして符号化されている。num_tile_entry_point_offsetsの値が0の時は、tile_entry_point_offsetは不要であるため言及しない。
num_wpp_entry_point_offsetsはタイルに属するブロックラインの符号化データのエントリポイント数を表す。前述の通り、スライス内に複数のタイルが存在する時は、該スライスは、前記複数のタイルを構成する全てのブロックを含む必要がある。タイルの垂直ブロック数は予めピクチャ・パラメータ・セットで与えられている。そのため、スライス内に複数のタイルが存在するとき(num_tile_entry_point_offsets≠0)はnum_wpp_entry_point_offsetsが無くてもタイル内のブロックライン数が確定する。本実施形態では、スライスは4タイルからなり、各タイルは垂直135ブロックから成るので、ブロックラインのエントリポイント数は134になる。一つのスライス内にタイルが複数存在しない時(num_tile_entry_point_offsets=0)は、1つのタイルを複数のスライスに跨って符号化する事が可能である。これは即ち、単一のスライスに含まれる、タイルのブロックライン数が確定しない事を意味する。そのため、明示的にnum_wpp_entry_point_offsetsシンタックスを符号化する必要がある。
本実施形態では、スライス内にタイルが複数存在しない時は、タイルのブロックライン数が確定しないためnum_wpp_entry_point_offsetsシンタックスを符号化する必要があるとしているが、本発明はこれに限定されない。例えば、スライスヘッダ内に、タイルを構成する全てのブロックを含んでいるか否かのフラグをシンタックスとして符号化して、タイルを構成する全てのブロックを含んでいない時のみnum_wpp_entry_point_offsetsを符号化してもよい。
wpp_entry_point_offsetはブロックラインの符号化データのエントリポイント、即ちブロックラインの符号化データの先頭位置を表す。wpp_entry_point_offset[j]はj番目のブロックラインの符号化データのエントリポイントを示す。0番目のブロックラインの符号化データの先頭位置は、該ブロックラインが属するタイルの符号化データの先頭位置と同じであるため省略される。そして、j−1番目のブロックラインの符号化データの大きさがwpp_entry_point_offset[j]シンタックスとして符号化される。num_wpp_entry_point_offsetsの値が0の時は、wpp_entry_point_offsetは不要であるため言及しない。
図4に前記画像符号化フォーマットに従った符号化データを復号する画像復号装置の内容を示す。図4において、401は入力された符号化データのシーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、スライスヘッダ等のヘッダを解析するビットストリーム解析部である。402及び403は、入力された符号化データを、入力された符号化パラメータに基づいてタイル単位で復号を行う復号部である。本実施形態において、タイル復号部を2つ用いる場合について説明するが、本発明はこれに限定されない。404は第一タイル復号部402及び第二タイル復号部403で生成された画像データを成形し、出力するタイル画像データ統合部である。
上記構成において、ビットストリーム解析部401は、ピクチャ・パラメータ・セット及びスライスヘッダを解析し、タイルデータ分割情報、ブロックラインデータ分割情報、スライスタイル情報、スライスブロックライン情報を取得する。ビットストリーム解析部401はヘッダに続く符号化データをこれらの情報に基づいて後段の第一タイル復号部402、または第二タイル復号部403に入力する。ここでは、先頭のタイルを0番目として、復号処理対象のブロックが偶数番目のタイルに属しているのならば第一タイル復号部402へ、奇数番目のタイルに属しているならば第二タイル復号部403へ出力する。図2においては、タイル0とタイル2が第一タイル復号部402で復号され、タイル1とタイル3が第二タイル復号部403で復号される。
第一タイル復号部402及び第二タイル復号部403の詳細について図5のブロック図を用いて説明する。501は、復号処理対象のブロックがタイル内で偶数番目のブロックラインに属するかを判定するセレクタである。セレクタ501には、タイル単位の符号化データが入力される。そして前記ブロックが偶数番目のブロックライン属しているのならば第一ブロックライン復号部502へ前記ブロックラインの符号化データを出力し、そうでないならば第二ブロックライン復号部503へ前記ブロックラインの符号化データを出力する。502、503はブロックライン復号部である。ブロックライン復号部502、503は入力されたブロックラインの符号化データをブロック単位で復号する。復号においては算術符号化方式の復号が行われる。算術復号が行われ発生確率テーブルを生成・更新する。504は第一ブロックライン復号部502で生成された発生確率テーブルを復号情報として保持する第一発生確率テーブル記憶部である。505は第二ブロックライン復号部503で生成された発生確率テーブルを復号情報として保持する第二発生確率テーブル記憶部である。506は第一ブロックライン復号部502、第二ブロックライン復号部503で生成された画像データを成形し、出力するブロックライン画像データ統合部である。
図3において、上端のブロックライン(0ライン目)を含む偶数番目のブロックラインを示す白色のブロックは第一ブロックライン復号部502にて復号され、奇数番目のブロックラインを示す斜線のブロックは第二ブロックライン復号部503にて復号される。すなわち第一ブロックラインと第二ブロックラインとは隣接する関係にある。
各ブロックライン復号部においては、まず復号対象の符号化データの2値信号に対し発生確率テーブルが選択され、前記発生確率テーブルを基に算術復号が行われ、量子化係数が生成される。次に、前記量子化係数は、量子化パラメータに基づいて逆量子化が行われ、変換係数が生成される。さらに、変換係数は逆直交変換が行われ、予測誤差が生成される。最後に、復号対象のブロックの周辺の復号済みの画素の参照によるフレーム内予測、または他のフレームの参照によるフレーム間予測が行われ、復号対象のブロックの画像データが生成される。
本実施形態の画像復号装置の動作を、図6のフローチャートを用いて詳細に説明する。本実施形態では符号化データはフレーム単位で入力される。フレームは複数のタイルで構成されており該タイルはブロック単位の符号化データに分割されて復号される。本実施形態では入力をフレーム単位としたが、フレームを分割したスライス単位に入力してもよい。また、本実施形態では、説明を容易にするため、イントラ予測復号の処理のみを説明するが、これに限定されずインター予測復号の処理においても適用可能である。
まず、ステップS601では、ビットストリーム解析部401において、入力されたビットストリームのヘッダが解析される。ここでは、シーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、スライスヘッダ等が解析される。特に、ピクチャ・パラメータ・セットからTileFlag及びWPPFlagが解析され、スライスヘッダからスライスタイル情報及びスライスブロックライン情報が取得される。スライスヘッダの解析方法に関して、図7のフローチャートを用いて詳細に説明する。
図7では、ステップS701において、num_tile_entry_point_offsets及びtile_entry_point_offsetが取得される。ステップS702では、スライス内のタイル数が1であるか否か(num_tile_entry_point_offsetsの値が0であるか否か)が判定される。タイル数が1である場合(ステップS702でYes)はステップS703の処理に進み、そうでない場合はステップS704の処理に進む。
ステップS703では、ブロックラインのエントリポイント数として、num_wpp_entry_point_offsetsの値がビットストリームから取得される。ステップS704では、ブロックラインのエントリポイント数が、タイルの垂直ブロック数からタイルの数だけ求められる。本実施形態ではタイルの垂直ブロック数は全て135であるため、ブロックラインのエントリポイント数は134になる。
ステップS705では、ステップS703またはステップS704で得られたブロックラインのエントリポイント数に基づき、wpp_entry_point_offsetを取得する。
図6に戻り、ステップS602では、変数CurTile,が0に初期化される。CurTileは復号処理対象のタイルの番号を示す。
ステップS603において、ビットストリーム解析部401で第一タイル復号部402あるいは第二タイル復号部403に送信する送信データ量(復号処理対象のタイルの符号化データのサイズ)が求められる。ビットストリーム解析部401でのタイルデータサイズの取得方法に関して図12のフローチャートを用いて説明する。図12において、まずステップS1201では、復号処理対象のタイルがフレーム内の最後のタイルであるか否かが判定される。最後のタイルであるならば(ステップS1201でYes)ステップS1202に進み、そうでないならばステップS1203の処理に進む。ステップS1202では、タイルの符号化データの先頭から次のNALユニットまでのデータサイズが、送信データ量として設定される。NALユニットとは、シーケンス・パラメータ・セットやピクチャ・パラメータ・セット、符号化済みスライスを格納する箱である。NALユニットのデータの先頭には、0x000001等の特定のビット列含まれているため、データの先頭を正しく識別する事ができる。ステップS1203では、CurTile番目のタイルの符号化データサイズを表すtile_entry_point_offset[CurTile+1]の値が読み出され、送信データ量が決定される。
図6のフローチャートに戻り、ステップS604では、第一タイル復号部402もしくは第二タイル復号部403においてタイルの復号処理が行われる。この際、ビットストリーム解析部401において、偶数番目のタイルは第一タイル復号部402に、奇数番目のタイルは第二タイル復号部403にそれぞれ送信される。ステップS603で求められたサイズだけデータが送信される。タイル復号処理の詳細は後述する。
ステップS605では、タイル画像データ統合部404において、第一タイル復号部402及び第二タイル復号部403から出力されたタイル画像が統合され、復号画像が生成、出力される。ステップS606では、フレーム内の全てのタイルの復号処理が完了したか否かが判定される。完了したならば(ステップS606でYes)1フレームの復号処理を終了し、完了していないならばステップS607の処理に進む。ステップS607の処理では、CurTileの値がインクリメントされる。この処理は、次のタイルが次の復号処理対象となることを意味する。
続いて、ステップS604のタイル復号処理に関して図8のフローチャートを用いて詳細に説明する。図8において、まずステップS801で変数CurBLが0に初期化される。変数CurBLは復号処理対象のブロックラインの番号を表す。ステップS802の処理において、セレクタ501が第一ブロックライン復号部502あるいは第二ブロックライン復号部503に送信する送信データ量(復号処理対象のブロックラインの符号化データのサイズ)が求められる。送信データ量取得方法の詳細については後述する。
ステップS803の処理において、復号処理対象のブロックラインがタイルの上端のブロックラインであるか否かが判定される。上端のブロックラインならば(ステップS803でYes)ステップS804の処理へ、そうでないならばステップS805の処理へ進む。
ステップS804はタイルの上端のブロックラインを復号する処理であり、ブロックラインの画像データを再生する。詳細は後述する。ステップS805の処理は、上端以外のブロックラインを復号する処理であり、ブロックラインの画像データを再生する。ブロックラインの復号に関しては、セレクタ501において、変数CurBLの値によって、復号処理対象のブロックラインが偶数番目であるか奇数番目であるかが判定される。偶数番目であるならば第一ブロックライン復号部502で、そうでないならば第二ブロックライン復号部503で、それぞれブロックライン単位で並列に復号されるものとする。同じく詳細は後述する。
ステップS806では、ブロックライン画像データ統合部506において、第一ブロックライン復号部502及び第二ブロックライン復号部503から出力された各ブロックライン画像データを統合し、タイル画像を生成、出力する。
ステップS807では、タイル内の全てのブロックラインの復号処理が完了したか否かが判定される。完了したならば(ステップS807でYes)タイル復号処理を終了し、そうでないならばステップS808の処理に進む。
ステップS808の処理では、CurBLの値がインクリメントされる。これは、復号処理対象のタイル内の次のブロックラインが復号処理対象となる事を意味する。ステップS802の、ビットストリーム解析部401でのブロックラインデータサイズ取得処理に関して図13のフローチャートを用いて詳細に説明する。本処理には、復号処理対象のブロックラインの番号を表す変数CurBL及び復号処理対象のタイルの番号を表す変数CurTileが入力として与えられる。
まずステップS1301の処理では、ステップS703もしくはステップS704で取得された、タイル内のブロックライン数と変数CurBLの値を比較することで、復号処理対象のブロックラインがタイル内で最後のブロックラインであるか否かが判定される。タイルの中の最後のブロックラインであるならば(ステップS1301でYes)ステップS1303の処理に進み、そうでないならばステップS1302の処理に進む。
ステップS1302の処理ではCurTile番目のタイルのCurBL番目のブロックラインの符号化データサイズを表すwpp_entry_point_offset[CurTile+1][CurBL+1]の値が読み出され送信データ量が決定される。また、ステップS1303の処理において、復号処理対象のタイルがフレーム内の最終タイルであるか否かが判定される。最終タイルであるならば(ステップS1303でYes)ステップS1304の処理に進み、そうでないならばステップS1305の処理に進む。
ステップS1304の処理では、復号処理対象のブロックラインの符号化データの先頭から次のNALユニットまでのデータサイズが、最終タイルの最後のブロックラインの送信データ量として設定される。NALユニットのデータの先頭には、前述の通り、0x000001等の特定のビット列含まれているため、データの先頭を正しく識別する事ができる。
ステップS1305の処理では、最終タイルではないタイル内の最後のブロックラインのデータサイズが送信データ量として求められる。タイル内の最後のブロックラインのデータサイズは、wpp_entry_point_offset の要素として与えられていない。そのため、復号処理対象のタイルの符号化データサイズを表すtile_entry_point_offset[CurTile+1]から、これまでに処理したタイルのデータサイズを減算することで算出される。
図8に戻り、ステップS804の処理(上端のブロックラインを復号する処理)に関して、図9のフローチャートを用いて詳細に説明する。上端のブロックラインは、偶数番目のブロックラインなので、復号処理対象のブロックラインの符号化データはセレクタ501によって第一ブロックライン復号部502へ入力され復号される。ここで、セレクタ501は、ステップS802で取得されたデータ送信量(復号処理対象のブロックラインの符号化データサイズ)だけ符号化データを第一ブロックライン復号部502へ出力する。
図9では、まずステップS901において、発生確率テーブルが所定の方法で初期化される。初期化された発生確率テーブルは、ブロックラインの左端のブロックの最初の2値信号を算術復号する際に用いられ、後述するステップS902で随時更新される。以下、ブロックラインの最初のブロックの2値信号を算術復号する際に用いられる発生確率テーブルを、ブロックライン基準発生確率テーブルと記す。
次に、ステップS902では、第一ブロックライン復号部502によって符号化データがブロック単位で復号され画素データが生成される。ステップS902のブロック単位の復号処理について、図11のフローチャートを用いて詳細に説明する。
図11では、まずステップS1101において、符号化データが前記発生確率テーブルに基づいて算術復号され、2値信号が生成される。更に、H.264と同様にシンタックス要素毎に、ユーナリー・バイナリゼーション、固定長バイナリゼーション等の種々の2値化方式で2値化されている前記2値信号を復号し、量子化係数を含むシンタックス要素を生成する。
ステップS1102では、算術復号された2値信号が、発生確率の高い方のシンボルであったか否かに基づいて前記発生確率テーブルが更新される。ステップS1103では、ブロック内の全シンタックス要素が算術復号されたか否かが判定される。全シンタックス要素が算術復号されたならば(ステップS1103でYes)ステップS1104の処理に進む。そうでないならばステップS1101の処理に進み、次のシンタックス要素の復号が行われる。
ステップS1104では、前記量子化係数が逆量子化され、変換係数が生成される。更に、前記変換係数には逆直交変換が適用され、予測誤差が生成される。ステップS1105では、復号処理対象のブロックの周辺の画素からイントラ予測が行われ予測画像が生成される。更に、前記予測誤差と予測画像を足し合わせる事で、ブロック単位の画像データを生成する。
図9のフローチャートに戻り、ステップS903では、発生確率テーブルを格納する条件を満たしているか否かが判定される。本実施形態では、ステップS902で復号したブロックが、ブロックラインの左端から所定数目のブロックであったか否かを、前記発生確率テーブルを格納する条件とする。前記条件を満たしている際には(ステップS903でYes)ステップS904の処理に進み、発生確率テーブルを第一発生確率テーブルとして第一発生確率テーブル記憶部504に記憶する。条件を満たしていない場合はステップS905の処理に進む。第一発生確率テーブルは、次のブロックラインの左端のブロックを復号する際のブロックライン基準発生確率テーブルとして用いられる。
次に、ステップS905において、復号処理対象のブロックラインの全ブロックを復号したか否かが判定される。全てのブロックを復号したならば(ステップS905でYes)上端のブロックラインの復号を終了し、そうでないならばステップS902の処理に進みラスタ順で次のブロックを復号する。
次に、図8のステップS805の処理(上端以外のブロックラインを復号する処理)に関して、図10のフローチャートを用いて詳細に説明する。復号処理対象のブロックラインが偶数番目のブロックラインであるならば、第一ブロックライン復号部502に復号処理対象のブロックラインの符号化データが入力され、復号される。奇数番目のブロックラインであるならば、第二ブロックライン復号部503に復号処理対象のブロックラインの符号化データが入力され復号される。ここで、セレクタ501は、ステップS802で取得されたデータ送信量(復号処理対象のブロックラインの符号化データサイズ)だけ符号化データを第一ブロックライン復号部502もしくは第二ブロックライン復号部503に出力する。まず、奇数番目のブロックラインを第二ブロックライン復号部503で復号する際のフローについて説明する。
図10において、まずステップS1001において、第一発生確率テーブルが第一発生確率テーブル記憶部504から、ブロックライン基準発生確率テーブルとして入力される。ステップS1002、S1003の処理は、ステップS902、S903の処理と同一であるため説明を省略する。ステップS1004の処理では、発生確率テーブルが第二発生確率テーブルとして、第二発生確率テーブル記憶部505に格納される。第二発生確率テーブルは、次のブロックラインの左端のブロックを算術復号する際にブロックライン基準発生確率テーブルとして用いられる。ステップS1005の処理はステップS905と同じであり、奇数番目のブロックライン内の全ブロックの復号処理が終了したかの判定を行う。
続いて、偶数番目のブロックラインを第一ブロックライン復号部502で復号する際のフローを説明する。まず、ステップS1001の処理では、第二発生確率テーブルが第二発生確率テーブル記憶部505からブロックライン基準発生確率テーブルとして入力される。ステップS1002〜1005の処理に関しては、ステップS902〜S905の処理と同一であるため説明を省略する。
以上の構成と動作により、スライス内に複数のタイルが存在する時は、冗長な、num_wpp_entry_point_offsetsシンタックスを含まないビットストリームを復号可能になる。そのため、より符号化効率を向上させ、誤った情報が符号化されるリスクを低減した画像符号化フォーマットを復号することができる。
なお、本実施形態でタイル復号部やブロックライン復号部が2つの場合について説明したが、例えば第三タイル復号部、第三ブロックライン復号部、第三発生確率テーブル記憶部を加えることで、より多くの復号部での並列処理が可能であることは明白である。
なお、本実施形態において、2値の算術符号を行ったが、これに限定されず、多値の算術符号を用いてももちろんかまわない。また、本実施形態において、偶数、奇数でタイル復号部を切り替えたが、これに限定されない。例えば、処理が終わって、空いているタイル復号部で次のタイルの符号化データの復号を行っても構わない。
<実施形態2>
本発明の実施形態2の画像符号化装置が符号化する画像符号化フォーマットにおいては実施形態1と同様に1フレームが複数の矩形状の領域であるタイルに分割される。実施形態2のタイル構造は実施形態1の図2と同一であるため説明を省略する。但し、これに限定されない。
本発明の実施形態2の画像符号化装置が符号化する画像符号化フォーマットにおいては実施形態1と同様に1フレームが複数の矩形状の領域であるタイルに分割される。実施形態2のタイル構造は実施形態1の図2と同一であるため説明を省略する。但し、これに限定されない。
本実施形態におけるHEVCによる符号化ストリームのフォーマットを図1に示すが、実施形態1と同様であるため説明を省略する。図14に、前記画像符号化フォーマットに従った符号化ストリームを符号化する画像符号化装置の内容を示す。
図14において、1401は、符号化処理対象のブロックが偶数番目のタイルに属するかを判定するタイルセレクタである。タイルセレクタ1401は、前記ブロックが偶数番目のタイルに属しているのならば第一タイル符号化部1402へ前記ブロックを出力し、そうでないならば第二タイル符号化部1403へ前記ブロックを出力する。
1402及び1403は、入力画像をn×n画素(nは2以上の正の整数)に分割したブロックをタイル単位で符号化を行うタイル符号化部である。本実施形態において、タイル符号化部を2つ用いる場合について説明するが、本発明はこれに限定されない。図2においては、タイル0とタイル2が第一タイル符号化部1402で符号化され、タイル1とタイル3が第二タイル符号化部1403で符号化される。
第一タイル符号化部1402及び第二タイル符号化部1403の詳細について図15のブロック図を用いて説明する。1501は、符号化処理対象のブロックがタイル内で偶数番目のブロックラインに属するか否かを判定し、その判定結果によって出力先を選択するブロックラインセレクタである。1502は第一ブロックライン符号化部であり、偶数番目のブロックラインのブロックの符号化を行う。1503は第二ブロックライン符号化部であり、奇数番目のブロックラインのブロックの符号化を行う。1504は第一ブロックライン符号化部1502で生成された発生確率テーブルを符号化情報として保持する第一発生確率テーブル記憶部である。以下、第一発生確率テーブル記憶部1504に記憶される発生確率テーブルを、第一発生確率テーブルと記す。1505は第二ブロックライン符号化部1503で生成された発生確率テーブルを符号化情報として保持する第二発生確率テーブル記憶部である。以下、第二発生確率テーブル記憶部1505に記憶される発生確率テーブルを、第二発生確率テーブルと記す。1506は第一ブロックライン符号化部1502で生成された符号化データと、第二ブロックライン符号化部1503で生成された符号化データを統合し、位置情報を含む符号化パラメータと併せて出力するブロックライン統合符号化部である。
ブロックラインセレクタ1501には、タイル単位の画像データが入力される。そして前記ブロックが偶数番目のブロックライン属しているのならば第一ブロックライン符号化部1502へ前記ブロックを出力し、そうでないならば第二ブロックライン符号化部1503へ前記ブロックを出力する。図3において、偶数番目のブロックラインを示す白色のブロックは第一ブロックライン符号化部1502にて符号化され、奇数番目のブロックラインを示す斜線のブロックは第二ブロックライン符号化部1503にて符号化される。上端のブロックラインは0ライン目であるので第一ブロックライン符号化部1502で符号化される。第一ブロックライン符号化部1502及び第二ブロックライン符号化部1503を用いた符号化処理の詳細については後述する。
図14に戻り、1404は第一タイル符号化部1402で生成された符号化データと符号化パラメータ、第二タイル符号化部1403で生成された符号化データと符号化パラメータを統合し、ビットストリームとして出力する統合符号化部である。統合符号化部1404は、TileFlagやWPPFlag等の分割情報をピクチャ・パラメータ・セットに、スライスタイル情報及びスライスブロックライン情報をスライスヘッダに統合し出力する。
本実施形態の画像符号化装置の動作を、図16のフローチャートを用いて詳細に説明する。本実施形態では画像はフレーム単位で入力される。フレームは複数のタイルで構成されており、該タイルは更にブロック単位の画像データに分割されて符号化される。本実施形態では入力をフレーム単位としたが、フレームを分割したスライス単位に入力してもよい。また、本実施形態では、説明を容易にするため、イントラ予測符号化の処理のみを説明するが、これに限定されずインター予測符号化の処理においても適用可能である。
図16において、1フレームの符号化について説明する。ステップS1601では、タイルの番号を表す変数CurTileが0に初期化される。ステップS1602では、図14の第一タイル符号化部1402もしくは第二タイル符号化部1403においてタイルの符号化処理が行われる。この際、タイルセレクタ1401において、偶数番目のタイルは第一タイル符号化部1402に、奇数番目のタイルは第二タイル符号化部1403にそれぞれ送信される。
タイル符号化処理の詳細について図17のフローチャートを用いて説明する。図17では、まずステップS1701において、符号化処理対象のブロックラインの番号を表す変数CurBLが0に初期化される。ステップS1702において、符号化処理対象のブロックラインがタイルの上端のブロックラインであるか否かが判定される。上端のブロックラインならば(ステップS1702でYes)ステップS1703の処理へ、そうでないならばステップS1704の処理へ進む。
ステップS1703はタイルの上端のブロックラインを符号化する処理である。ステップS1704の処理は、上端以外のブロックラインを符号化する処理である。これらの詳細は後述する。ステップS1705の処理は、スライスヘッダに格納される位置情報(tile_entry_point_offset 及び wpp_entry_point_offset)を設定する処理で、同じく詳細は後述する。
ステップS1706では、ブロックライン統合符号化部1506において、第一ブロックライン符号化部1502及び第二ブロックライン符号化部1503から出力された各符号化データが統合される。更にステップS1705で計算された位置情報を含む符号化パラメータと統合された符号化データが併せて出力される。
ステップS1707では、タイル内の全てのブロックラインの符号化処理が完了したか否かが判定される。完了したならば(ステップS1707でYes)タイル符号化処理を終了し、そうでないならばステップS1708の処理に進む。ステップS1708では、変数CurBLの値がインクリメントされる。これは、符号化処理対象のタイル内の次のブロックラインが符号化処理対象となる事を意味する。
図16に戻り、ステップS1603では、フレーム内の全てのタイルの符号化処理が完了したか否かが判定される。完了したならば(ステップS1603でYes)ステップS1605の処理に進み、完了していないならばステップS1604の処理に進む。
ステップS1604の処理では、タイル番号を表す変数CurTileの値がインクリメントされる。この処理は、次のタイルが次の符号化処理対象となることを意味する。ステップS1605では、統合符号化部1404において、第一タイル符号化部1402及び第二タイル符号化部1403から出力された各符号化データを統合する。更に、ステップS1705で計算されたスライスヘッダに格納される位置情報を含む符号化パラメータを統合してビットストリームを生成、出力する。
スライスヘッダの生成処理に関して、図22を用いて詳細に説明する。図22において、ステップS2201では、num_tile_entry_point_offsets及びtile_entry_point_offsetシンタックスが符号化される。ステップS2202では、スライス内のタイル数が1であるか否か(num_tile_entry_point_offsetsが0であるか否か)が判定される。スライス内のタイル数が1であるならば(ステップS2202でYes)ステップS2203の処理に進む。ステップS2203では、num_wpp_entry_point_offsetsシンタックスを符号化した後にステップS2204の処理に進む。スライス内のタイル数が複数ならば(ステップS2202でNo)、num_wpp_entry_point_offsetsシンタックスを符号化せずに直接ステップS2204の処理に進む。
ステップS2204では、wpp_entry_point_offsetシンタックスを符号化する。本実施形態では、スライス内のタイル数が4、各タイルの垂直ブロック数が135であるので、(135−1)×4の、計536個のエントリポイントがシンタックスとして符号化される。
次に、図17のタイル符号化処理に含まれるブロックラインの符号化の各処理の詳細について説明する。まず、ステップS1703の処理(上端のブロックラインを符号化する処理)に関して、図18のフローチャートを用いて詳細に説明する。上端のブロックラインは、偶数番目のブロックラインなので、符号化処理対象のブロックラインの画像はタイルセレクタ1401によって第一ブロックライン符号化部1402へ入力され、符号化される。
図18では、まずステップS1801において、発生確率テーブルが所定の方法で初期化される。初期化された発生確率テーブルは、ブロックラインの左端のブロックの最初の2値信号を算術符号化する際に用いられ、後述するステップS1802で随時更新される。以下、ブロックラインの最初のブロックの2値信号を算術符号化する際に用いられる発生確率テーブルを、ブロックライン基準発生確率テーブルと記す。
ステップS1802では、第一ブロックライン符号化部1402によって画像がブロック単位で符号化され、符号化データが生成される。ステップS1802のブロック符号化処理について、図19のフローチャートを用いて詳細に説明する。
図19において、ステップS1901では、入力された画像ブロックに対してブロック周辺の符号化済みの画素を利用したイントラ予測が行われ、予測誤差が生成される。ステップS1902では、前記予測誤差に対して直交変換が行われ変換係数が生成される。更に、画像の特性や符号量等に基づいて決定された量子化パラメータを用いて、前記変換係数が量子化され、量子化係数が生成される。
ステップS1903では、量子化パラメータや予測モード等の各シンタックス要素が2値化され、2値信号が生成される。シンタックス要素毎に、H.264と同様に、ユーナリー・バイナリゼーション、固定長バイナリゼーション等の種々の2値化の手法が切り替えられて用いられる。更に、前記2値信号は前記発生確率テーブルに基づいて算術符号化される。
ステップS1904では、算術符号化された2値信号が、発生確率の高い方のシンボルであったか否かに基づいて前記発生確率テーブルが更新される。ステップS1905では、ブロック内の全シンタックス要素が算術符号化されたか否かが判定される。全シンタックス要素が算術符号化されたならば(ステップS1905でYes)ブロック符号化処理を終了し、そうでないならばステップS1903の処理に進み、次のシンタックス要素の符号化を行う。
図18のフローチャートに戻り、ステップS1803では、発生確率テーブルを格納する条件を満たしているか否かが判定される。本実施形態では、ステップS1903で符号化したブロックが、ブロックラインの左端から所定数目のブロックであったか否かを、前記発生確率テーブルを格納する条件とする。前記条件を満たしている際には(ステップS1803でYes)ステップS1804の処理に進み、発生確率テーブルを第一発生確率テーブルとして第一発生確率テーブル記憶部1504に記憶する。条件を満たしていない場合はステップS1805の処理に進む。第一発生確率テーブルは、次のブロックラインの左端のブロックを符号化する際のブロックライン基準発生確率テーブルとして用いられる。
ステップS1805において、符号化処理対象のブロックラインの全ブロックを符号化したか否かが判定される。全てのブロックを符号化したならば(ステップS1805でYes)上端のブロックラインの符号化を終了し、そうでないならばステップS1802の処理に進みラスタ順で次のブロックを符号化する。
次に、図17のステップS1704の処理(上端以外のブロックラインを符号化する処理)に関して、図20のフローチャートを用いて詳細に説明する。符号化処理対象のブロックラインが偶数番目のブロックラインであるならば第一ブロックライン符号化部1502に符号化処理対象のブロックの画像が入力され符号化される。奇数番目のブロックラインであるならば第二ブロックライン符号化部1503に符号化処理対象のブロックの画像が入力され、符号化される。まず、奇数番目のブロックラインを第二ブロックライン符号化部1503で復号する際のフローについて説明する。
ステップS2001において、第一発生確率テーブルが第一発生確率テーブル記憶部1504から、ブロックライン基準発生確率テーブルとして入力される。ステップS2002、S2003の処理は、ステップS1802、S1803の処理と同一であるため説明を省略する。ステップS2004の処理では、発生確率テーブルが第二発生確率テーブルとして、第二発生確率テーブル記憶部1505に格納される。第二発生確率テーブルは、次のブロックラインの左端のブロックを算術符号化する際にブロックライン基準発生確率テーブルとして用いられる。ステップS2005の処理はステップS1805と同じであり、奇数番目のブロックライン内の全ブロックが符号化処理を行う。
続いて、偶数番目のブロックラインを第一ブロックライン符号化部1502で符号化する際のフローを説明する。ステップS2001の処理では、第二発生確率テーブルが第二発生確率テーブル記憶部1505からブロックライン基準発生確率テーブルとして入力される。ステップS2002〜2004の処理に関しては、ステップS1802〜S1804の処理と同一であるため説明を省略する。S2005の処理はS1805と同じであり、偶数番目のブロックライン内の全ブロックが符号化処理を行う。続いて、図17のステップS1705の、位置情報の計算処理について、図21のフローチャートを用いて詳細に説明する。この処理には入力として、変数CurBL及び変数CurTileが与えられる。
図21では、まずステップS2101で符号化処理対象のブロックラインが、符号化処理対象のタイル内で最後のブロックラインであるか否かが判定される。最後のブロックラインであるならば(ステップS2101でYes)ステップS2103の処理に進み、そうでないならばステップS2102の処理に進む。
ステップS2102の処理では、符号化処理対象のブロックラインの符号化データサイズがシンタックスwpp_entry_point_offset[CurTile+1][CurBL+1]として設定される。wpp_entry_point_offset[CurTile][CurBL]は、CurTile番目のタイル内のCurBL番目のブロックラインの符号化データサイズを表すシンタックスである。
また、ステップS2103の処理において、符号化処理対象のタイルがフレーム内の最後のタイルであるか否かが判定される。最後のタイルであるならば位置情報計算の処理を終了し、そうでないならばステップS2104の処理に進む。ここで、最後のタイルである場合は、最後のタイルの最後のブロックラインであり、ブロックラインのエントリポイントの情報はシンタックスとして符号化されない。
ステップS2104の処理において、符号化処理対象のタイルの符号化データサイズが、CurTile番目のタイルの符号化データサイズを表すシンタックスtile_entry_point_offset[CurTile+1]として設定される。wpp_entry_point_offset及びtile_entry_point_offset[]の値は、図16のステップS1605の処理でスライスヘッダに統合される。
以上の構成と動作により、スライス内に複数のタイルが存在する時は、冗長な、num_wpp_entry_point_offsetsシンタックスを含まないビットストリームを符号化可能になる。そのため、より符号化効率を向上させ、誤った情報が符号化されるリスクを低減した画像符号化フォーマットを符号化することができる。
なお、本実施形態でタイル符号化部やブロックライン符号化部が2つの場合について説明した。しかし例えば第三タイル符号化部、第三ブロックライン符号化部、第三発生確率テーブル記憶部を加えることで、より多くの符号化部での並列処理が可能であることは明白である。
なお、本実施形態において、2値の算術符号を行ったが、これに限定されず、多値の算術符号を用いてももちろんかまわない。また、本実施形態において、偶数、奇数でタイル符号化部を切り替えたが、これに限定されない。例えば、処理が終わって、空いているタイル符号化部で次のタイルの符号化データの符号化を行っても構わない。
<実施形態3>
図4、図5、図14、図15に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、図4、図5、図14、図15に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
図4、図5、図14、図15に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、図4、図5、図14、図15に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
図23は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
CPU2201は、RAM2202やROM2203に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU2201は、図4、図5、図14、図15に示した各処理部として機能することになる。
RAM2202は、外部記憶装置2206からロードされたコンピュータプログラムやデータ、I/F(インターフェース)2207を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM2202は、CPU2201が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM2202は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
ROM2203には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部2204は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU2201に対して入力することができる。出力部2205は、CPU2201による処理結果を出力する。また出力部2205は例えば液晶ディスプレイのような表示装置で構成して処理結果を表示することができる。
外部記憶装置2206は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置2206には、OS(オペレーティングシステム)や、図4、図5、図14、図15に示した各部の機能をCPU2201に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置2206には、処理対象としての各画像が保存されていても良い。
外部記憶装置2206に保存されているコンピュータプログラムやデータは、CPU2201による制御に従って適宜RAM2202にロードされ、CPU2201による処理対象となる。I/F2207には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F2207を介して様々な情報を取得したり、送出したりすることができる。2208は上述の各部を繋ぐバスである。
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU2201が中心となってその制御を行う。
<その他の実施形態>
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
Claims (4)
- フレームが矩形状のタイルに分割されて符号化されている符号化データを復号する復号装置であって、
前記符号化データから、前記符号化データが前記タイルの符号化データであるタイルデータに分割されて符号化されているか否かを示すタイルデータ分割情報と、前記タイルがライン状のブロックの集合である第1のブロックラインの符号化データである第1ブロックラインデータ及び前記第1のブロックラインに隣接する2のブロックラインの符号化データである第2ブロックラインデータに分割されて符号化されているか否かを示すブロックラインデータ分割情報と、スライスの符号化に関するパラメータを含むスライスヘッダを含み、前記スライスヘッダは、スライス内のタイル数を表す情報であるタイル数情報と、前記タイルデータの位置を示すタイルデータ位置情報と、前記第2ブロックラインデータの位置を示すブロックラインデータ位置情報とを取得する取得手段と、
前記取得手段によって取得された情報に基づいて前記第1のブロックラインを復号する第1の復号手段と、
前記取得手段によって取得された情報と前記第1のブロックラインに属する所定の位置のブロックの符号化データを復号した後の復号情報とに基づいて前記第2ブロックラインデータを復号する第2の復号手段とを有し、
前記スライスヘッダは、前記タイル数が2以上である場合はタイル内のブロックライン数を表すブロックライン数情報を含み、前記タイル数が1の場合はブロックライン数情報を含まないことを特徴とする画像復号装置。 - 前記フレームのN(N≧1)番目のタイルに属する、0番目のブロックラインデータの位置は、N番目の前記タイルデータ位置情報で表され、M(M≧1)番目以降のブロックラインデータの位置は、ブロックラインデータ位置情報として前記M−1番目のブロックラインデータの大きさで表されていることを特徴とする請求項1に記載の画像復号装置。
- フレームが矩形状のタイルに分割されて符号化されている符号化データを復号する復号装置における復号方法であって、
前記符号化データから、前記符号化データが前記タイルの符号化データであるタイルデータに分割されて符号化されているか否かを示すタイルデータ分割情報と、前記タイルがライン状のブロックの集合である第1のブロックラインの符号化データである第1ブロックラインデータ及び前記第1のブロックラインに隣接する2のブロックラインの符号化データである第2ブロックラインデータに分割されて符号化されているか否かを示すブロックラインデータ分割情報と、スライスの符号化に関するパラメータを含むスライスヘッダを含み、前記スライスヘッダは、スライス内のタイル数を表す情報であるタイル数情報と、前記タイルデータの位置を示すタイルデータ位置情報と、前記第2ブロックラインデータの位置を示すブロックラインデータ位置情報とを取得する取得工程と、
前記取得工程によって取得された情報に基づいて前記第1のブロックラインを復号する第1の復号工程と、
前記取得工程によって取得された情報と前記第1のブロックラインに属する所定の位置のブロックの符号化データを復号した後の復号情報とに基づいて前記第2ブロックラインデータを復号する第2の復号工程とを有し、
前記スライスヘッダは、前記タイル数が2以上である場合はタイル内のブロックライン数を表すブロックライン数情報を含み、前記タイル数が1の場合はブロックライン数情報を含まないことを特徴とする画像復号方法。 - コンピュータが読み出して実行することにより、前記コンピュータを、請求項1に記載の画像復号装置として機能させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012148510A JP2014011726A (ja) | 2012-07-02 | 2012-07-02 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012148510A JP2014011726A (ja) | 2012-07-02 | 2012-07-02 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014011726A true JP2014011726A (ja) | 2014-01-20 |
Family
ID=50108020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012148510A Pending JP2014011726A (ja) | 2012-07-02 | 2012-07-02 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014011726A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072444A (zh) * | 2015-07-31 | 2015-11-18 | 宁波大学 | 一种不同量化参数下的hevc视频二次压缩检测方法 |
WO2016143093A1 (ja) * | 2015-03-11 | 2016-09-15 | 株式会社日立製作所 | 動画像符号化装置及びそれに用いるIntra予測符号化方法、及び動画像復号化装置 |
KR20170020928A (ko) * | 2014-07-07 | 2017-02-24 | 에이치에프아이 이노베이션 인크. | 인트라 블록 카피 검색 및 보상 범위의 방법 |
KR101881710B1 (ko) * | 2014-10-07 | 2018-07-24 | 퀄컴 인코포레이티드 | 인트라블록 카피를 위한 디블록 필터링 |
JP2019087827A (ja) * | 2017-11-02 | 2019-06-06 | キヤノン株式会社 | 符号化装置、画像処理装置及び画像処理方法 |
-
2012
- 2012-07-02 JP JP2012148510A patent/JP2014011726A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170020928A (ko) * | 2014-07-07 | 2017-02-24 | 에이치에프아이 이노베이션 인크. | 인트라 블록 카피 검색 및 보상 범위의 방법 |
KR20170029549A (ko) * | 2014-07-07 | 2017-03-15 | 에이치에프아이 이노베이션 인크. | 인트라 블록 카피 검색 및 보상 범위의 방법 |
KR101961385B1 (ko) * | 2014-07-07 | 2019-03-25 | 에이치에프아이 이노베이션 인크. | 인트라 블록 카피 검색 및 보상 범위의 방법 |
KR101961384B1 (ko) * | 2014-07-07 | 2019-03-25 | 에이치에프아이 이노베이션 인크. | 인트라 블록 카피 검색 및 보상 범위의 방법 |
US10869031B2 (en) | 2014-07-07 | 2020-12-15 | Hfi Innovation Inc. | Method of intra block copy search and compensation range |
KR101881710B1 (ko) * | 2014-10-07 | 2018-07-24 | 퀄컴 인코포레이티드 | 인트라블록 카피를 위한 디블록 필터링 |
WO2016143093A1 (ja) * | 2015-03-11 | 2016-09-15 | 株式会社日立製作所 | 動画像符号化装置及びそれに用いるIntra予測符号化方法、及び動画像復号化装置 |
CN105072444A (zh) * | 2015-07-31 | 2015-11-18 | 宁波大学 | 一种不同量化参数下的hevc视频二次压缩检测方法 |
JP2019087827A (ja) * | 2017-11-02 | 2019-06-06 | キヤノン株式会社 | 符号化装置、画像処理装置及び画像処理方法 |
JP7076983B2 (ja) | 2017-11-02 | 2022-05-30 | キヤノン株式会社 | 符号化装置、画像処理装置及び画像処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6080405B2 (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
JP6310524B2 (ja) | 画像の符号化および復号の方法、符号化および復号デバイス、ならびにそれに対応するコンピュータプログラム | |
JP6591019B2 (ja) | 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム | |
CN107071419B (zh) | 图像编码设备和方法以及图像解码设备和方法 | |
US9319692B2 (en) | Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs | |
JP5950541B2 (ja) | 動きベクトル符号化装置、動きベクトル符号化方法及びプログラム、動きベクトル復号装置、動きベクトル復号方法及びプログラム | |
JP2015019152A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
JP2014011726A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
KR20200047750A (ko) | 부호화 방법 및 장치 | |
TW202032995A (zh) | 圖像編碼及解碼技術 | |
KR20140035408A (ko) | 동화상 복호화 장치 및 동화상 복호화 방법 | |
TWI805926B (zh) | 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法 | |
JP2012147293A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
JP2016192777A (ja) | 符号化装置、符号化方法及びプログラム、復号装置、復号方法及びプログラム | |
TW202327365A (zh) | 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法 | |
JP2013098735A (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
TWI809279B (zh) | 圖像編碼裝置、圖像解碼裝置、圖像編碼方法、圖像解碼方法 | |
JP6469277B2 (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
JP6505142B2 (ja) | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム | |
WO2022047129A1 (en) | Methods and systems for combined lossless and lossy coding | |
JP2022522842A (ja) | ビデオコーディングのための方法、装置及びプログラム | |
WO2012093466A1 (en) | Image coding apparatus, image coding method and program, image decoding apparatus, and image decoding method and program |