(57)【要約】  本技術は、タイル単位で画像を並列に復号することができるようにする復号装置、復号方法、およびプログラムに関する。並列復号部は、HEVC（High Efficiency Video Coding）と呼ばれる符号化方式等で用いられるタイル単位で、並列に、HEVCと呼ばれる符号化方式等で符号化された画像を復号する。本技術は、例えば、HEVCと呼ばれる符号化方式等で符号化された符号化ストリームを受け取り、復号し、画像を生成する復号装置に適用することができる。
2014087860.tif 000002
【特許請求の範囲】
【請求項１】
タイル単位で並列に画像を復号する並列復号部
を備える復号装置。
【請求項２】
前記並列復号部は、前記画像を独立して復号可能な最小単位がタイルである場合、タイル単位で並列に前記画像を復号する
請求項１に記載の復号装置。
【請求項３】
前記並列復号部は、前記画像を独立して復号可能な最小単位がスライスである場合、スライス単位で並列に前記画像を復号する
請求項１に記載の復号装置。
【請求項４】
前記並列復号部は、前記画像内に前記タイルが存在するかどうかを表すフラグが、前記タイルが存在しないことを表す場合、スライス単位で並列に前記画像を復号する
請求項１に記載の復号装置。
【請求項５】
復号装置が、
タイル単位で並列に画像を復号する並列復号ステップ
を含む復号方法。
【請求項６】
コンピュータを、
タイル単位で並列に画像を復号する並列復号部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、復号装置、復号方法、およびプログラムに関し、特に、タイル単位で画像を並列に復号することができるようにした復号装置、復号方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、動画像の符号化効率の向上を目的として、HEVC（High Efficiency Video Coding）と呼ばれる符号化方式の標準化が進められている（例えば、非特許文献１参照）。このHEVC方式では、他の画像との依存関係を有さず、独立して復号可能な画像の単位（以下、独立復号単位という）として、スライスのほか、タイルを用いることができる。【０００３】
スライスおよびタイルは、独立復号単位であるため、スライス単位の画像やタイル単位の画像は、並列に復号することが可能である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand," High efficiency video coding (HEVC) text specification draft 8 ", JCTVC-J1003_d7, 2012.7.28
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、タイル単位の画像を並列に復号する復号装置は考案されていない。【０００６】
本技術は、このような状況に鑑みてなされたものであり、タイル単位で画像を並列に復号することができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の復号装置は、タイル単位で並列に画像を復号する並列復号部を備える復号装置である。【０００８】
本技術の一側面の復号方法およびプログラムは、本技術の一側面の復号装置に対応する。【０００９】
本技術の一側面においては、タイル単位で並列に画像が復号される。
【発明の効果】
【００１０】
本技術の一側面によれば、タイル単位で画像を並列に復号することができる。
【図面の簡単な説明】
【００１１】
【図１】本技術を適用した復号装置の第１実施の形態の構成例を示すブロック図である。
【図２】符号化ストリームの第１の例における独立復号単位を示す図である。
【図３】図２の符号化ストリームの構成例を示す図である。
【図４】符号化ストリームの第２の例における独立復号単位を示す図である。
【図５】図４の符号化ストリームの構成例を示す図である。
【図６】符号化ストリームの第３の例における独立復号単位を示す図である。
【図７】図６の符号化ストリームの構成例を示す図である。
【図８】図１の復号装置１０の復号処理を説明するフローチャートである。
【図９】図８のregion分割処理の詳細を説明するフローチャートである。
【図１０】図９のスライスのregionアドレス情報生成処理の詳細を説明するフローチャートである。
【図１１】図９のtile_idx_start計算処理の詳細を説明するフローチャートである。
【図１２】図９のタイルのregionアドレス情報生成処理の詳細を説明するフローチャートである。
【図１３】図８のregion復号処理の詳細を説明するフローチャートである。
【図１４】図１３のスライスのregionアドレス情報設定処理の詳細を説明するフローチャートである。
【図１５】図１３のタイルのregionアドレス情報設定処理の詳細を説明するフローチャートである。
【図１６】図１３の次のLCUアドレス計算処理の詳細を説明するフローチャートである。
【図１７】図１３のLCUアドレス更新処理の詳細を説明するフローチャートである。
【図１８】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
＜一実施の形態＞
＜復号装置の一実施の形態の構成例＞
図１は、本技術を適用した復号装置の第１実施の形態の構成例を示すブロック図である。
【００１３】
図１の復号装置１０は、パラメータセット復号部１１、分割処理部１２、および並列復号部１３により構成される。復号装置１０は、HEVC方式で符号化された符号化ストリームを、スライス単位またはタイル単位で並列に復号する。
【００１４】
具体的には、復号装置１０のパラメータセット復号部１１は、外部から入力される符号化ストリームから、SPS（Sequence Parameter Set）、PPS（Picture Parameter Set）、スライスヘッダ、およびスライス単位の符号化データ（以下、スライスデータという）を分離する。パラメータセット復号部１１は、SPSから、ピクチャの最大の符号化単位であるLCU（Largest Coding Unit）の数を表すピクチャサイズ情報を抽出する。ピクチャサイズ情報は、水平方向のLCUの数pic_lcu_widthと垂直方向のLCUの数pic_lcu_heightにより構成される。
【００１５】
また、パラメータセット復号部１１は、PPSから、対応するピクチャのタイルに関する情報であるピクチャタイル情報を決定する。なお、ピクチャタイル情報は、ピクチャ内にタイルが存在することを表すフラグtile_flag、ピクチャの水平方向（列方向）のタイルの数tile_columns_numおよび垂直方向（行方向）のタイルの数tile_rows_num、並びに、ピクチャのi番目のタイルの水平方向のLCUの数tile_column_width[i]および垂直方向のLCUの数tile_row_height[i]、または、ピクチャ内にタイルが存在しないことを表すフラグtile_flagにより構成される。
【００１６】
さらに、パラメータセット復号部１１は、スライスヘッダから、対応するスライスの先頭のLCUのアドレスを表すスライスアドレス情報slice_lcu_addrを抽出する。また、パラメータセット復号部１１は、スライスヘッダから、対応するスライスのタイルに関する情報であるスライスタイル情報を決定する。なお、スライスタイル情報は、スライス内のタイルの数から1を減算した数offset_numと、スライス内のi番目のタイルの符号化データのバイト量offset_bytes[i]により構成される。
【００１７】
パラメータセット復号部１１は、ピクチャサイズ情報、スライスアドレス情報、ピクチャタイル情報、スライスタイル情報、およびスライスデータを分割処理部１２に供給する。
【００１８】
分割処理部１２は、パラメータセット復号部１１からのピクチャサイズ情報、スライスアドレス情報、およびピクチャタイル情報に基づいて、並列復号部１３における並列復号処理単位regionとしてタイルを指定するタイルのregionアドレス情報を生成する。
【００１９】
なお、regionアドレス情報とは、並列復号処理単位regionを含むピクチャの水平方向のLCUの数lcu_widthおよび垂直方向のLCUの数lcu_height、並列復号処理単位regionの先頭のLCUのアドレスfirst_lcu、並びに、並列復号処理単位regionの水平方向のLCUの数sub_lcu_widthおよび垂直方向のLCUの数sub_lcu_heightである。
【００２０】
また、分割処理部１２は、ピクチャサイズ情報およびスライスアドレス情報に基づいて、並列復号部１３における並列復号処理単位regionとしてスライスを指定するスライスのregionアドレス情報を生成する。
【００２１】
さらに、分割処理部１２は、フラグtile_flagに基づいて、タイルのregionアドレス情報が存在するかどうかを表すフラグregion_tile_flagを生成する。また、分割処理部１２は、ピクチャサイズ情報、スライスアドレス情報、ピクチャタイル情報、およびスライスタイル情報に基づいて、パラメータセット復号部１１から供給されるスライスデータから、スライス単位またはタイル単位の符号化データを切り出す。
【００２２】
そして、分割処理部１２は、ピクチャサイズ情報、スライスアドレス情報、スライスのregionアドレス情報、タイルのregionアドレス情報、スライス単位またはタイル単位の符号化データ、およびフラグregion_tile_flagを、region情報として並列復号部１３に供給する。
【００２３】
並列復号部１３は、分割処理部１２から供給されるregion情報を用いて、スライス単位またはタイル単位の符号化データを並列復号処理単位regionで並列に復号する。
【００２４】
＜符号化ストリームの第１の例＞
図２は、図１の復号装置１０に入力される符号化ストリームの第１の例における独立復号単位を示す図である。
【００２５】
なお、図２の例では、説明の便宜上、ピクチャは、5×4の20個のLCUから構成されるものとする。また、図２において、数字が付された正方形は、その数字をアドレスとするLCUを表す。これらのことは、後述する図４および図６においても同様である。
【００２６】
図２の例では、ピクチャが上下半分に2つのスライス（slice0,slice1）に分割されている。即ち、先頭のスライス（slice0）は、上半分の5×2の10個のLCUから構成され、次のスライス（slice1）は、下半分の5×2の10個のLCUから構成される。
【００２７】
この場合、図２に示すように、先頭のスライス(slice0)のスライスのregionアドレス情報のアドレスfirst_lcuは0であり、次のスライス(slice1)のスライスのregionアドレス情報のアドレスfirst_lcuは10である。また、先頭のスライス(slice0)と次のスライス(slice1)のスライスのregionアドレス情報のLCUの数lcu_widthは5であり、LCUの数lcu_heightは4である。
【００２８】
また、先頭のスライス（slice0）では、アドレスが0乃至9であるLCUが順番に復号され、次のスライス(slice1)では、アドレスが10乃至19であるLCUが順番に復号される。
【００２９】
図３は、図２の符号化ストリームの構成例を示す図である。
【００３０】
図２の符号化ストリームでは、ピクチャが2つのスライスに分割されているため、図３に示すように、符号化ストリームは、SPS,PPS、およびスライスヘッダ（SH）が付加された2つのスライスデータにより構成される。なお、各データの先頭には、先頭であることを表すスタートコード（Start Code（SC））が付加される。
【００３１】
図３のSPSには、対応するシーケンスに関する情報が含まれる。具体的には、SPSには、ピクチャサイズ情報として、対応するピクチャの水平方向のLCUの数pic_lcu_width(pic_width_in_luma_samples)と垂直方向のLCUの数pic_lcu_heigth(pic_height_in_luma_samples)が含まれる。PPSには、フラグtile_flag（tile_enabled_flag）などの、対応するピクチャに関する情報が含まれる。このフラグtile_flagは、ピクチャタイル情報に決定される。
【００３２】
スライスヘッダには、スライスアドレス情報slice_lcu_addr（slice_address）などの、そのスライスヘッダが付加されるスライスデータに関する情報が含まれる。
【００３３】
スライスデータは、対応するスライスヘッダの終端から配置される。図２の例では、ピクチャは2つのスライスから構成されるため、2つのスライスデータが配置される。なお、以下では、各スライスデータの先頭の符号化ストリーム上の位置をslice_bs_startといい、終端の符号化ストリーム上の位置をslice_bs_endという。
【００３４】
＜符号化ストリームの第２の例＞
図４は、図１の復号装置１０に入力される符号化ストリームの第２の例における独立復号単位を示す図である。
【００３５】
図４の例では、ピクチャが4つのタイル（tile0乃至tile3）に分割されている。具体的には、ピクチャは、2×2の4個のLCUからなる左上のタイル（tile0）、3×2の6個のLCUからなる右上のタイル（tile1）、2×2の4個のLCUからなる左下のタイル（tile2）、および3×2の6個のLCUからなる右下のタイル（tile3）に分割されている。
【００３６】
この場合、図４に示すように、先頭のタイル(tile0)のタイルのregionアドレス情報のアドレスfirst_lcuは0であり、次のタイル(tile1)のアドレスfirst_lcuは2である。また、その次のタイル(tile3)のタイルのregionアドレス情報のアドレスfirst_lcuは10であり、次のタイル(tile1)のアドレスfirst_lcuは12である。
【００３７】
また、4つのタイル（tile0乃至tile3）のタイルのregionアドレス情報のLCUの数lcu_widthは5であり、LCUの数lcu_heightは4である。さらに、先頭のタイル(tile0)のタイルのregionアドレス情報のLCUの数sub_lcu_widthと垂直方向のLCUの数sub_lcu_heightは、両方とも2であり、次のタイル(tile1)のLCUの数sub_lcu_widthと垂直方向のLCUの数sub_lcu_heightは、それぞれ、3,2である。また、その次のタイル(tile3)のタイルのregionアドレス情報のLCUの数sub_lcu_widthと垂直方向のLCUの数sub_lcu_heightは、両方とも2であり、次のタイル(tile1)のLCUの数sub_lcu_widthと垂直方向のLCUの数sub_lcu_heightは、それぞれ、3,2である。
【００３８】
また、先頭のタイル（tile0）では、アドレスが0,1,5、および6であるLCUが順番に復号され、次のタイル（tile1）では、アドレスが2乃至4および7乃至9であるLCUが順番に復号される。また、その次のタイル（tile2）では、アドレスが10,11,15、および16であるLCUが順番に復号され、その次のタイル（tile3）では、アドレスが12乃至14および17乃至19であるLCUが順番に復号される。
【００３９】
図５は、図４の符号化ストリームの構成例を示す図である。
【００４０】
図４の符号化ストリームでは、ピクチャがスライスに分割されていないため、図５に示すように、符号化ストリームは、SPS,PPS、およびスライスヘッダが付加された1つのスライスデータにより構成される。なお、各データの先頭には、スタートコード（SC）が付加される。
【００４１】
図５のSPSは、図３のSPSと同様に構成され、ピクチャサイズ情報を含む。また、図５のPPSは、対応するピクチャに関する情報として、フラグtile_flagを含む。
【００４２】
また、PPSは、対応するピクチャに関する情報として、ピクチャの水平方向のタイルの数から1を減算した数num_tile_columns_minus1および垂直方向のタイルの数から1を減算した数num_tile_rows_minus1を含む。さらに、PPSは、対応するピクチャに関する情報として、ピクチャのi番目のタイルの水平方向のLCUの数から1を減算した数column_width_minus1[i]および垂直方向のLCUの数から1を減算した数row_height_minus1[i]を含む。
【００４３】
PPSに含まれる数num_tile_columns_minus1は、1だけ加算されてタイルの数tile_columns_numに決定され、数num_tile_rows_minus1は、1だけ加算されてタイルの数tile_rows_numに決定される。また、数column_width_minus1[i]は、1だけ加算されてLCUの数tile_column_width[i]に決定され、数row_height_minus1[i]は、1だけ加算されてLCUの数tile_row_height[i]に決定される。そして、フラグtile_flag、タイルの数tile_columns_num、タイルの数tile_rows_num、LCUの数tile_column_width[i]、およびLCUの数tile_row_height[i]は、ピクチャタイル情報とされる。
【００４４】
スライスヘッダには、そのスライスヘッダが付加されるスライスデータに関する情報として、スライスアドレス情報slice_lcu_addrのほか、各タイルの符号化データのサイズentry_point_offsetとサイズentry_point_offsetの数num_entry_point_offsetsが含まれる。
【００４５】
スライスヘッダに含まれるサイズentry_point_offsetは、それぞれ、i番目のタイルのバイト量offset_bytes[i]に決定される。また、数num_entry_point_offsetsは、1だけ減算され、数offset_numに決定される。そして、バイト量offset_bytes[i]と数offset_numは、スライスタイル情報とされる。
【００４６】
スライスデータは、図３の場合と同様に、対応するスライスヘッダの終端から配置される。図４の例では、ピクチャはスライスに分割されていないため、1つのスライスデータとして4つのタイル（tile0乃至tile3）の符号化データが配置される。位置slice_bs_startは、先頭のタイルの先頭位置であり、位置slice_bs_endは、最後のタイル（tile3）の終端位置である。
【００４７】
＜符号化ストリームの第３の例＞
図６は、図１の復号装置１０に入力される符号化ストリームの第３の例における独立復号単位を示す図である。
【００４８】
図６の例では、1つのピクチャが10個のスライス（slice0乃至slice9）と4個のタイル（tile0乃至tile3）に分割されている。具体的には、ピクチャは、図４の場合と同様に、2×2の4個のLCUからなる左上のタイル（tile0）、3×2の6個のLCUからなる右上のタイル（tile1）、2×2の4個のLCUからなる左下のタイル（tile2）、および3×2の6個のLCUからなる右下のタイル（tile3）に分割されている。
【００４９】
また、左上のタイル（tile0）は、上下半分に2つのスライス（slice0,slice1）に分割され、右上のタイル（tile1）は、ラスタスキャン順（復号順）に、2つのLCUずつ3つのスライス(slice2乃至slice4)に分割される。さらに、左下のタイル（tile2）は、上下半分に2つのスライス（slice5,slice6）に分割され、右下のタイル（tile3）は、ラスタスキャン順に、2つのLCUずつ3つのスライス(slice7乃至slice9)に分割される。
【００５０】
この場合、図６に示すように、10個のスライス(slice0乃至slice9)のスライスのregionアドレス情報のアドレスfirst_lcuは、それぞれ、0,5,2,4,8,10,15,12,14,18である。また、10個のスライス(slice0乃至slice9)のスライスのregionアドレス情報のLCUの数lcu_widthは5であり、LCUの数lcu_heightは4である。また、4個のタイル(tile0乃至tile3)のタイルのregionアドレス情報は、図４の場合と同様である。
【００５１】
図７は、図６の符号化ストリームの構成例を示す図である。
【００５２】
図６の符号化ストリームでは、ピクチャが10個のスライスに分割されるため、図７に示すように、符号化ストリームは、SPS,PPS、およびスライスヘッダが付加された10個のスライスデータにより構成される。なお、各データの先頭には、スタートコード（SC）が付加される。
【００５３】
図７のSPSは、図３のSPSと同様に構成され、ピクチャサイズ情報を含む。また、図７のPPSは、図５のPPSと同様に構成され、フラグtile_flag、数num_tile_columns_minus1、数num_tile_rows_minus1、数column_width_minus1[i]、および数row_height_minus1[i]を含む。
【００５４】
スライスヘッダは、図５のスライスヘッダと同様に構成され、スライスアドレス情報slice_lcu_addr（slice_address）、サイズentry_point_offset、および数num_entry_point_offsetsを含む。
【００５５】
スライスデータは、図３の場合と同様に、対応するスライスヘッダの終端から配置される。図６の例では、ピクチャは10個のスライスに分割されているため、10個のスライスデータが配置される。
【００５６】
なお、左上のタイル(tile0)の符号化データは、2つのスライスデータからなり、右上のタイル（tile1）の符号化データは、3つのスライスデータからなる。また、左下のタイル（tile2）の符号化データは、2つのスライスデータからなり、右下のタイル（tile3）の符号化データは、3つのスライスデータからなる。
【００５７】
＜復号装置の処理の説明＞
図８は、図１の復号装置１０の復号処理を説明するフローチャートである。この復号処理は、例えば、シーケンス単位の符号化ストリームが復号装置１０に入力されたとき、開始される。
【００５８】
図８のステップＳ１１において、復号装置１０のパラメータセット復号部１１は、外部から入力される符号化ストリームからSPSを分離し、SPSからピクチャサイズ情報を抽出して、分割処理部１２に供給する。なお、以降のステップＳ１２乃至Ｓ１７の処理は、ピクチャごとに行われる。
【００５９】
ステップＳ１２において、パラメータセット復号部１１は、符号化ストリームからPPSを分離し、PPSからピクチャタイル情報を決定して、分割処理部１２に供給する。
【００６０】
ステップＳ１３において、パラメータセット復号部１１は、PPSに含まれるフラグtile_flagが、ピクチャ内にタイルが存在することを表す1であるかどうかを判定する。ステップＳ１３でフラグtile_flagが1であると判定された場合、ステップＳ１４において、パラメータセット復号部１１は、符号化ストリームからスライスヘッダを抽出し、スライスヘッダからスライスタイル情報を決定して、分割処理部１２に供給する。そして、処理はステップＳ１５に進む。
【００６１】
一方、ステップＳ１３でフラグtile_flagが1ではないと判定された場合、パラメータセット復号部１１は、符号化ストリームからスライスヘッダを抽出し、処理をステッステップＳ１５に進める。
【００６２】
ステップＳ１５において、パラメータセット復号部１１は、スライスヘッダからスライスアドレス情報slice_lcu_addrを抽出し、分割処理部１２に供給する。また、パラメータセット復号部１１は、符号化ストリームからスライスデータを抽出し、分割処理部１２に供給する。
【００６３】
ステップＳ１６において、分割処理部１２は、region情報を生成するregion分割処理を行う。このregion分割処理の詳細は、後述する図９を参照して説明する。ステップＳ１７において、並列復号部１３は、region情報を用いて並列復号処理単位regionで復号を行うregion復号処理を行う。このregion復号処理の詳細は、後述する図１３を参照して説明する。region復号処理後、処理は終了する。
【００６４】
図９は、図８のステップＳ１６のregion分割処理の詳細を説明するフローチャートである。このregion分割処理は、処理対象のピクチャ内のスライスごとに行われる。
【００６５】
図９のステップＳ３１において、分割処理部１２は、処理対象のスライスのregionアドレス情報を生成するスライスのregionアドレス情報生成処理を行う。このregionアドレス情報生成処理の詳細は、後述する図１０を参照して説明する。
【００６６】
ステップＳ３２において、分割処理部１２は、パラメータセット復号部１１から供給されるピクチャタイル情報に含まれるフラグtile_flagが1であるかどうかを判定する。ステップＳ３２でフラグtile_flagが1であると判定された場合、ステップＳ３３において、分割処理部１２は、処理対象のスライスの先頭のLCUを含むタイルのラスタスキャン順に付されたアドレスtile_idx_startを計算するtile_idx_start計算処理を行う。このtile_idx_start計算処理の詳細は、後述する図１１を参照して説明する。
【００６７】
ステップＳ３４において、分割処理部１２は、アドレスtile_idxをアドレスtile_idx_startに設定する。また、分割処理部１２は、タイルの数tile_columns_numとタイルの数tile_rows_numを乗算することにより、ピクチャの全タイル数pic_tile_max_numを求める。さらに、分割処理部１２は、位置bs_curを処理対象のスライスの位置slice_bs_startに設定する。
【００６８】
ステップＳ３５において、分割処理部１２は、アドレスtile_idxが全タイル数pic_tile_max_numより小さいかどうかを判定する。ステップＳ３５でアドレスtile_idxが全タイル数pic_tile_max_numより小さいと判定された場合、処理はステップＳ３６に進む。
【００６９】
ステップＳ３６において、分割処理部１２は、処理対象のタイルの、処理対象のスライス内のタイルにラスタスキャン順に0から付されたアドレスslice_tile_idxを、アドレスtile_idxからアドレスtile_idx_startを減算することにより求める。
【００７０】
ステップＳ３７において、分割処理部１２は、アドレスslice_tile_idxが数offset_numと同一であるかどうか、即ち、アドレスslice_tile_idxのタイルが処理対象のスライス内の最後のタイルであるかどうかを判定する。
【００７１】
ステップＳ３７でアドレスslice_tile_idxが数offset_numと同一ではないと判定された場合、処理はステップＳ３８に進む。ステップＳ３８において、分割処理部１２は、処理対象のスライスのスライスデータから、位置bs_curからアドレスslice_tile_idx番目のタイルのバイト量offset_bytes[slice_tile_idx]のバイトを、タイル単位の符号化データとして切り出す。
【００７２】
ステップＳ３９において、分割処理部１２は、タイルのregionアドレス情報を生成するタイルのregionアドレス情報生成処理を行う。このタイルのregionアドレス情報生成処理の詳細は、後述する図１２を参照して説明する。
【００７３】
ステップＳ４０において、分割処理部１２は、フラグregion_tile_flagを、タイルのregionアドレス情報が存在することを表す1に設定する。そして、分割処理部１２は、ピクチャサイズ情報、スライスアドレス情報、スライスのregionアドレス情報、タイルのregionアドレス情報、タイル単位の符号化データ、およびフラグregion_tile_flagを、region情報として並列復号部１３に供給する。
【００７４】
ステップＳ４１において、分割処理部１２は、位置bs_curをバイト量offset_bytes[slice_tile_idx]のバイトだけインクリメントする。即ち、分割処理部１２は、位置bs_curをステップＳ３８で切り出されたタイル単位の符号化データの終端の位置に設定する。また、分割処理部１２は、アドレスtile_idxを1だけインクリメントする。そして、処理は、ステップＳ３５に戻り、以降の処理が繰り返される。
【００７５】
一方、ステップＳ３７でアドレスslice_tile_idxが数offset_numと同一であると判定された場合、即ちアドレスslice_tile_idxのタイルが処理対象のスライス内の最後のタイルである場合、処理はステップＳ４２に進む。
【００７６】
ステップＳ４２において、分割処理部１２は、処理対象のスライスのスライスデータから、位置bs_curから位置slice_bs_endまでの符号化データを、タイル単位の符号化データとして切り出す。
【００７７】
ステップＳ４３において、分割処理部１２は、ステップＳ３９の処理と同様にタイルのregionアドレス情報生成処理を行う。ステップＳ４４において、分割処理部１２は、フラグregion_tile_flagを1に設定する。
【００７８】
そして、分割処理部１２は、ピクチャサイズ情報、スライスアドレス情報、スライスのregionアドレス情報、タイルのregionアドレス情報、タイル単位の符号化データ、およびフラグregion_tile_flagを、region情報として並列復号部１３に供給する。そして、処理は図８のステップＳ１６に戻り、ステップＳ１７に進む。
【００７９】
一方、ステップＳ３５でアドレスtile_idxが全タイル数pic_tile_max_numより小さくはないと判定された場合、処理は図８のステップＳ１６に戻り、ステップＳ１７に進む。
【００８０】
また、ステップＳ３２でフラグtile_flagが1ではないと判定された場合、即ち処理対象のピクチャ内にタイルが存在しない場合、処理はステップＳ４５に進む。ステップＳ４５において、分割処理部１２は、処理対象のスライスのスライスデータである、位置slice_bs_startから位置slice_bs_endまでの符号化データを、スライス単位の符号化データとして切り出す。
【００８１】
ステップＳ４６において、分割処理部１２は、フラグregion_tile_flagを、タイルのregionアドレス情報が存在しないことを表す0に設定する。そして、分割処理部１２は、ピクチャサイズ情報、スライスアドレス情報、スライスのregionアドレス情報、フラグregion_tile_flag、およびスライス単位の符号化データをregion情報として並列復号部１３に供給する。そして、処理は図８のステップＳ１６に戻り、ステップＳ１７に進む。
【００８２】
図１０は、図９のステップＳ３１のスライスのregionアドレス情報生成処理の詳細を説明するフローチャートである。
【００８３】
図１０のステップＳ６１において、分割処理部１２は、LCUの数lcu_widthとLCUの数sub_lcu_widthを、パラメータセット復号部１１から供給されるピクチャサイズ情報に含まれるピクチャのLCUの数pic_lcu_widthに設定する。また、分割処理部１２は、LCUの数lcu_heightとLCUの数sub_lcu_heightを、ピクチャサイズ情報に含まれるピクチャのLCUの数pic_lcu_heightに設定する。
【００８４】
また、分割処理部１２は、アドレスfirst_lcuを、パラメータセット復号部１１から供給されるスライスアドレス情報slice_lcu_addrに設定する。
【００８５】
そして、分割処理部１２は、LCUの数lcu_width、LCUの数lcu_height、アドレスfirst_lcu、LCUの数sub_lcu_width、およびLCUの数sub_lcu_heightを、スライスのregionアドレス情報とする。そして、処理は、図９のステップＳ３１に戻り、ステップＳ３２に進む。
【００８６】
図１１は、図９のステップＳ３３のtile_idx_start計算処理の詳細を説明するフローチャートである。
【００８７】
図１１のステップＳ８１において、分割処理部１２は、スライスアドレス情報slice_lcu_addrをLCUの数pic_lcu_widthで除算し、その結果得られる余りを、スライスの先頭のLCUの水平方向のLCU単位のアドレスslice_lcu_xに設定する。また、分割処理部１２は、スライスアドレス情報slice_lcu_addrをLCUの数pic_lcu_widthで除算し、その結果得られる除算値を、スライスの先頭のLCUの垂直方向のLCU単位のアドレスslice_lcu_yに設定する。
【００８８】
ステップＳ８２において、分割処理部１２は、処理対象のスライスの先頭のLCUを含むタイルの先頭のLCUの水平方向のLCU単位のアドレスlcu_xおよび垂直方向のLCU単位のアドレスlcu_y、並びに、処理対象のスライスの先頭のLCUを含むタイルの水平方向のタイル単位のアドレスtile_idx_xおよび垂直方向のタイル単位のアドレスtile_idx_yを0に設定する。
【００８９】
ステップＳ８３において、分割処理部１２は、アドレスtile_idx_xがタイルの数tile_columns_numより小さいかどうかを判定する。ステップＳ８３でアドレスtile_idx_xがタイルの数tile_columns_numより小さいと判定された場合、処理はステップＳ８４に進む。
【００９０】
ステップＳ８４において、分割処理部１２は、アドレスslice_lcu_xがアドレスlcu_x以上であり、かつ、アドレスlcu_xとアドレスtile_idx_x番目のタイルの水平方向のLCUの数tile_column_width[tile_idx_x]の和より小さいかどうかを判定する。即ち、分割処理部１２は、アドレスtile_idx_x番目のタイル内にアドレスslice_lcu_xが存在するかどうかを判定する。
【００９１】
ステップＳ８４でアドレスslice_lcu_xがアドレスlcu_x以上ではないか、または、アドレスlcu_xとLCUの数tile_column_width[tile_idx_x]の和より小さくはないと判定された場合、処理はステップＳ８５に進む。
【００９２】
ステップＳ８５において、分割処理部１２は、アドレスlcu_xをLCUの数tile_column_width[tile_idx_x]だけインクリメントし、アドレスtile_idx_xを1だけインクリメントする。そして、処理は、ステップＳ８３に戻り、以降の処理が繰り返される。
【００９３】
一方、ステップＳ８３でアドレスtile_idx_xがタイルの数tile_columns_numより小さくはないと判定された場合、または、ステップＳ８４でアドレスslice_lcu_xがアドレスlcu_x以上であり、かつ、アドレスlcu_xとLCUの数tile_column_width[tile_idx_x]の和より小さいと判定された場合、処理はステップＳ８６に進む。これにより、処理対象のスライスの先頭のLCUを含むタイルのアドレスtile_idx_xが求められる。
【００９４】
ステップＳ８６において、分割処理部１２は、アドレスtile_idx_yがタイルの数tile_rows_numより小さいかどうかを判定する。ステップＳ８６でアドレスtile_idx_yがタイルの数tile_rows_numより小さいと判定された場合、処理はステップＳ８７に進む。
【００９５】
ステップＳ８７において、分割処理部１２は、アドレスslice_lcu_yがアドレスlcu_y以上であり、かつ、アドレスlcu_yとアドレスtile_idx_y番目のタイルの垂直方向のLCUの数tile_row_height[tile_idx_y]の和より小さいかどうかを判定する。即ち、分割処理部１２は、アドレスtile_idx_y番目のタイル内にアドレスslice_lcu_yが存在するかどうかを判定する。
【００９６】
ステップＳ８７でアドレスslice_lcu_yがアドレスlcu_y以上ではないか、アドレスlcu_yとLCUの数tile_row_height[tile_idx_y]の和より小さくはないと判定された場合、処理はステップＳ８８に進む。
【００９７】
ステップＳ８８において、分割処理部１２は、アドレスlcu_yをLCUの数tile_row_height[tile_idx_y]だけインクリメントし、アドレスtile_idx_yを1だけインクリメントする。そして、処理は、ステップＳ８６に戻り、以降の処理が繰り返される。
【００９８】
一方、ステップＳ８６でアドレスtile_idx_yがタイルの数tile_rows_numより小さくはない判定された場合、または、ステップＳ８７でアドレスslice_lcu_yがアドレスlcu_y以上であり、かつ、アドレスlcu_yとLCUの数tile_row_height[tile_idx_y]の和より小さいと判定された場合、処理はステップＳ８９に進む。これにより、処理対象のスライスの先頭のLCUを含むタイルのアドレスtile_idx_yが求められる。
【００９９】
ステップＳ８９において、分割処理部１２は、アドレスtile_idx_yとタイルの数tile_columns_numを乗算し、アドレスtile_idx_xを加算した値を、アドレスtile_idx_startとして求める。そして、処理は、図９のステップＳ３３に戻り、ステップＳ３４に進む。
【０１００】
図１２は、図９のステップＳ３９のタイルのregionアドレス情報生成処理の詳細を説明するフローチャートである。
【０１０１】
図１２のステップＳ１０１において、分割処理部１２は、アドレスtile_idxをタイルの数tile_columns_numで除算し、その結果得られる余りを、アドレスtile_idxのタイルの水平方向のタイル単位のアドレスtile_idx_x´に設定する。また、分割処理部１２は、アドレスtile_idxをタイルの数tile_columns_numで除算し、その結果得られる除算値を、アドレスtile_idxのタイルの垂直方向のタイル単位のアドレスtile_idx_y´に設定する。
【０１０２】
また、分割処理部１２は、アドレスtile_idxのタイルの先頭のLCUの水平方向のLCU単位のアドレスtile_lcu_xおよび垂直方向のLCU単位のアドレスtile_lcu_y、並びに、所定のタイルの水平方向のタイル単位のアドレスidx_xおよび垂直方向のタイル単位のアドレスidx_yを0に設定する。
【０１０３】
ステップＳ１０２において、分割処理部１２は、アドレスidx_xがアドレスtile_idx_x´より小さいかどうかを判定する。ステップＳ１０２でアドレスidx_xがアドレスtile_idx_x´より小さいと判定された場合、処理はステップＳ１０３に進む。
【０１０４】
ステップＳ１０３において、分割処理部１２は、アドレスtile_lcu_xを、アドレスidx_x番目のタイルの水平方向のLCUの数tile_column_width[idx_x]だけインクリメントする。また、分割処理部１２は、アドレスidx_xを1だけインクリメントする。そして、処理はステップＳ１０２に戻り、以降の処理が繰り返される。
【０１０５】
一方、ステップＳ１０２でアドレスidx_xがアドレスtile_idx_x´より小さくはないと判定された場合、処理はステップＳ１０４に進む。これにより、アドレスtile_lcu_xは、アドレス0からアドレスtile_idx_x´-１までのタイルのLCUの数の積算値となる。
【０１０６】
ステップＳ１０４において、分割処理部１２は、アドレスidx_yがアドレスtile_idx_y´より小さいかどうかを判定する。ステップＳ１０４でアドレスidx_yがアドレスtile_idx_y´より小さいと判定された場合、処理はステップＳ１０５に進む。
【０１０７】
ステップＳ１０５において、分割処理部１２は、アドレスtile_lcu_yを、アドレスidx_y番目のタイルの垂直方向のLCUの数tile_row_height[idx_y]だけインクリメントする。また、分割処理部１２は、アドレスidx_yを1だけインクリメントする。そして、処理はステップＳ１０４に戻り、以降の処理が繰り返される。
【０１０８】
一方、ステップＳ１０４でアドレスidx_yがアドレスtile_idx_y´より小さくはないと判定された場合、処理はステップＳ１０６に進む。これにより、アドレスtile_lcu_yは、アドレス0からアドレスtile_idx_ｙ´-１までのタイルのLCUの数の積算値となる。
【０１０９】
ステップＳ１０６において、分割処理部１２は、LCUの数lcu_widthを、ピクチャサイズ情報に含まれるLCUの数pic_lcu_widthに設定し、LCUの数heightをピクチャサイズ情報に含まれるLCUの数pic_lcu_heightに設定する。また、分割処理部１２は、アドレスtile_lcu_yとLCUの数pic_lcu_widthを乗算し、アドレスtile_lcu_xを加算することにより、アドレスfirst_lcuを求める。さらに、分割処理部１２は、LCUの数sub_lcu_widthをLCUの数tile_column_width[tile_idx_x´]に設定し、LCUの数sub_lcu_heightをLCUの数tile_column_height[tile_idx_y´]に設定する。
【０１１０】
そして、分割処理部１２は、LCUの数lcu_width、LCUの数lcu_height、アドレスfirst_lcu、LCUの数sub_lcu_width、およびLCUの数sub_lcu_heightを、タイルのregionアドレス情報とする。そして、処理は、図９のステップＳ３９に戻り、ステップＳ４０に進む。
【０１１１】
図１３は、図８のステップＳ１７のregion復号処理の詳細を説明するフローチャートである。
【０１１２】
図１３のステップＳ１２１において、並列復号部１３は、スライスのregionアドレス情報を用いて並列復号処理単位regionの先頭のLCUのアドレスlcu_addrを設定するスライスのregionアドレス情報設定処理を行う。このスライスのregionアドレス情報設定処理の詳細は、後述する図１４を参照して説明する。
【０１１３】
ステップＳ１２２において、並列復号部１３は、分割処理部１２から供給されるフラグregion_tile_flagが1であるかどうかを判定する。ステップＳ１２２でフラグregion_tile_flagが1であると判定された場合、処理はステップＳ１２３に進む。
【０１１４】
ステップＳ１２３において、並列復号部１３は、タイルのregionアドレス情報を用いてアドレスlcu_addrを設定するタイルのregionアドレス情報設定処理を行う。このタイルのregionアドレス情報設定処理の詳細は、後述する図１５を参照して説明する。ステップＳ１２３の処理後、処理はステップＳ１２４に進む。
【０１１５】
一方、ステップＳ１２２でフラグregion_tile_flagが1ではないと判定された場合、処理はステップＳ１２３をスキップし、ステップＳ１２４に進む。なお、以降のステップＳ１２４乃至Ｓ１２７の処理は、アドレスlcu_addr_xのLCUを先頭のLCUとする並列復号処理単位regionごとに並列に行われる。
【０１１６】
ステップＳ１２４において、並列復号部１３は、分割処理部１２から供給されるスライス単位またはタイル単位の符号化データのうちのアドレスlcu_addrで指定されたLCUをHEVC方式で復号する。
【０１１７】
ステップＳ１２５において、並列復号部１３は、次に復号対象とするLCUの水平方向のLCU単位のアドレスnext_lcu_addr_xと垂直方向のLCU単位のアドレスnext_lcu_addr_yを計算する次のLCUアドレス計算処理を行う。この次のLCUアドレス計算処理の詳細は、後述する図１６を参照して説明する。
【０１１８】
ステップＳ１２６において、並列復号部１３は、処理対象の並列復号処理単位regionのスライス単位またはタイル単位の符号化データのうち、まだステップＳ１２４で復号されていないLCUが存在するかどうかを判定する。
【０１１９】
ステップＳ１２６でまだステップＳ１２４で復号されていないLCUが存在すると判定された場合、ステップＳ１２７において、並列復号部１３は、アドレスlcu_addrを更新するLCUアドレス更新処理を行う。このLCUアドレス更新処理の詳細は、後述する図１７を参照して説明する。ステップＳ１２７の処理後、処理はステップＳ１２４に戻り、処理対象の並列復号処理単位regionのスライス単位またはタイル単位の符号化データの全てのLCUが復号されるまで、ステップＳ１２４乃至Ｓ１２７の処理が繰り返される。
【０１２０】
一方、ステップＳ１２６で、ステップＳ１２４で復号されていないLCUが存在しないと判定された場合、処理は、図８のステップＳ１７に戻り、復号処理は終了する。
【０１２１】
図１４は、図１３のステップＳ１２１のスライスのregionアドレス情報設定処理の詳細を説明するフローチャートである。このスライスのregionアドレス情報設定処理は、処理対象のピクチャ内のスライスごとに行われる。
【０１２２】
図１４のステップＳ１４１において、並列復号部１３は、処理対象のピクチャの水平方向のLCUの数max_lcu_widthを、分割処理部１２から供給される処理対象のスライスのregionアドレス情報のLCUの数lcu_widthに設定する。また、並列復号部１３は、処理対象のピクチャの垂直方向のLCUの数max_lcu_heightを、処理対象のスライスのregionアドレス情報のLCUの数lcu_heightに設定する。
【０１２３】
また、並列復号部１３は、アドレスlcu_addrを、処理対象のスライスのregionアドレス情報のアドレスfirst_lcuに設定する。さらに、並列復号部１３は、アドレスlcu_addrをLCUの数max_lcu_widthで除算し、その結果得られる余りを、並列復号処理単位regionの先頭のLCUの水平方向のLCU単位のアドレスlcu_addr_xとし、除算値を垂直方向のLCU単位のアドレスlcu_addr_yとする。
【０１２４】
さらに、並列復号部１３は、並列復号処理単位regionを含むタイルの先頭の水平方向のLCU単位のアドレスtile_lcu_addr_xと垂直方向のLCU単位のアドレスtile_lcu_addr_yを0に設定する。また、並列復号部１３は、並列復号処理単位regionを含むタイルの水平方向のLCUの数tile_lcu_widthを、処理対象のスライスのregionアドレス情報のLCUの数sub_lcu_widthに設定し、垂直方向のLCUの数tile_lcu_heightを、LCUの数sub_lcu_heightに設定する。そして、処理は、図１３のステップＳ１２１に戻り、ステップＳ１２２に進む。
【０１２５】
以上のように、スライスのregionアドレス情報設定処理では、アドレスlcu_addrが、処理対象のスライスの先頭のLCUのアドレスfirst_lcuに設定される。また、上述したように、図１３のregion復号処理では、ステップＳ１２２でフラグregion_tile_flagが1ではないと判定された場合、処理はステップＳ１２４に進み、アドレスlcu_addrのLCUを先頭のLCUとする並列復号処理単位regionごとに並列にLCUの復号が行われる。従って、フラグregion_tile_flagが1ではない場合、即ちスライスが最小の独立復号単位である場合、スライスごとに並列にLCUの復号が行われる。
【０１２６】
図１５は、図１３のステップＳ１２３のタイルのregionアドレス情報設定処理の詳細を説明するフローチャートである。このタイルのregionアドレス情報設定処理は、処理対象のピクチャ内のタイルごとに行われる。
【０１２７】
図１５のステップＳ１６１において、並列復号部１３は、処理対象のタイルのregionアドレス情報のアドレスfirst_lcuが、図１４のステップＳ１４１で設定された、対応するアドレスlcu_addrより大きいかどうかを判定する。即ち、並列復号部１３は、処理対象のタイルが、そのタイルを含むスライス内の先頭のタイルでないかどうかを判定する。
【０１２８】
ステップＳ１６１でタイルのregionアドレス情報のアドレスfirst_lcuが、対応するアドレスlcu_addrより大きいと判定された場合、即ち、処理対象のタイルが、そのタイルを含むスライス内の先頭のタイルではない場合、処理はステップＳ１６２に進む。
【０１２９】
ステップＳ１６２において、並列復号部１３は、アドレスlcu_addrを、処理対象のタイルのregionアドレス情報のアドレスfirst_lcuに更新する。また、並列復号部１３は、処理対象のタイルのregionアドレス情報のアドレスfirst_lcuをLCUの数max_lcu_widthで除算し、その結果得られる余りをアドレスlcu_addr_xとし、除算値をアドレスlcu_addr_yとする。そして、処理はステップＳ１６３に進む。
【０１３０】
一方、ステップＳ１６１で処理対象のタイルのregionアドレス情報のアドレスfirst_lcuが、対応するアドレスlcu_addrより大きくはないと判定された場合、即ち、処理対象のタイルが、そのタイルを含むスライス内の先頭のタイルである場合、処理はステップＳ１６２をスキップし、ステップＳ１６３に進む。
【０１３１】
以上により、タイルが最小の独立復号単位である場合、並列復号処理単位regionがタイルとされ、処理対象のタイルのアドレスfirst_lcuが、アドレスlcu_addrとされる。その結果、タイルごとに並列にLCUの復号が行われる。一方、スライスが最小の独立復号単位である場合、並列復号処理単位regionがスライスとされ、アドレスlcu_addrは、スライスのアドレスfirst_lcuのままとされる。その結果、スライスごとに並列にLCUの復号が行われる。
【０１３２】
ステップＳ１６３において、並列復号部１３は、処理対象のタイルのregionアドレス情報のアドレスfirst_lcuを、LCUの数max_lcu_widthで除算し、その結果得られる余りをアドレスtile_lcu_addr_xとし、除算値をアドレスtile_lcu_addr_yとする。また、並列復号部１３は、LCUの数tile_lcu_widthを、処理対象のタイルのregionアドレス情報のLCUの数sub_lcu_widthに設定し、LCUの数tile_lcu_heightを、処理対象のタイルのregionアドレス情報のLCUの数sub_lcu_heightに設定する。そして、処理は図１３のステップＳ１２３に戻り、ステップＳ１２４に進む。
【０１３３】
図１６は、図１３のステップＳ１２５の次のLCUアドレス計算処理の詳細を説明するフローチャートである。
【０１３４】
図１６のステップＳ１８１において、並列復号部１３は、アドレスlcu_addr_xからアドレスtile_lcu_addr_xを減算して1を加算した値を、アドレスnext_lcu_addr_xとして求める。このとき、アドレスnext_lcu_addr_xは、現在の復号対象のLCUの水平方向で次のLCUの、処理対象の並列復号処理単位regionの先頭のLCUからのLCU数となる。
【０１３５】
ステップＳ１８２において、並列復号部１３は、アドレスnext_lcu_addr_xがLCUの数tile_lcu_width以上であるかどうかを判定する。ステップＳ１８２でアドレスnext_lcu_addr_xがLCUの数tile_lcu_width以上であると判定された場合、処理はステップＳ１８３に進む。
【０１３６】
ステップＳ１８３において、並列復号部１３は、アドレスnext_lcu_addr_xをアドレスtile_lcu_addr_xに変更し、アドレスnext_lcu_addr_yを1だけインクリメントする。即ち、並列復号部１３は、現在の復号対象のLCUの次の行のタイル内の先頭の列のLCUを、次の復号対象のLCUとする。そして、処理は、図１３のステップＳ１２５に戻り、ステップＳ１２６に進む。
【０１３７】
一方、ステップＳ１８２でアドレスnext_lcu_addr_xがLCUの数tile_lcu_width以上ではないと判定された場合、処理は、ステップＳ１８４に進む。
【０１３８】
ステップＳ１８４において、並列復号部１３は、アドレスnext_lcu_addr_xを1だけインクリメントし、アドレスnext_lcu_addr_yを変更しない。即ち、並列復号部１３は、現在の復号対象のLCUと同一の行の次の列のLCUを、次の復号対象のLCUとする。そして、処理は、図１３のステップＳ１２５に戻り、ステップＳ１２６に進む。
【０１３９】
図１７は、図１３のステップＳ１２７のLCUアドレス更新処理の詳細を説明するフローチャートである。
【０１４０】
図１７のステップＳ２０１において、並列復号部１３は、アドレスnext_lcu_addr_yとLCUの数max_lcu_widthを乗算し、アドレスnext_lcu_addr_xを加算した値をアドレスlcu_addrに設定する。また、並列復号部１３は、アドレスlcu_addr_xをアドレスnext_lcu_addr_xに設定し、アドレスlcu_addr_yをアドレスnext_lcu_addr_yに設定する。
【０１４１】
以上のように、復号装置１０は、タイル単位で並列に画像を復号するので、高速で画像を復号することができる。また、復号装置１０は、最小の独立復号単位がタイルである場合、タイル単位で並列に画像を復号し、最小の独立復号単位がスライスである場合、スライス単位で並列に画像を復号する。従って、スライス単位で並列に復号を行う回路と、タイル単位で並列に復号を行う回路を別々に用意する場合に比べて、回路規模を削減することができる。
【０１４２】
なお、パラメータセット復号部１１で抽出される情報は、SPSやPPS以外のパラメータセットに含まれていてもよい。また、抽出される情報の名称は、上述した名称に限定されない。
【０１４３】
＜本技術を適用したコンピュータの説明＞
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１４４】
図１８は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０１４５】
コンピュータにおいて、CPU（Central Processing Unit）２０１，ROM（Read Only Memory）２０２，RAM（Random Access Memory）２０３は、バス２０４により相互に接続されている。
【０１４６】
バス２０４には、さらに、入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、入力部２０６、出力部２０７、記憶部２０８、通信部２０９、及びドライブ２１０が接続されている。
【０１４７】
入力部２０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部２０７は、ディスプレイ、スピーカなどよりなる。記憶部２０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２０９は、ネットワークインタフェースなどよりなる。ドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２１１を駆動する。
【０１４８】
以上のように構成されるコンピュータでは、CPU２０１が、例えば、記憶部２０８に記憶されているプログラムを、入出力インタフェース２０５及びバス２０４を介して、RAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０１４９】
コンピュータ（CPU２０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア２１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０１５０】
コンピュータでは、プログラムは、リムーバブルメディア２１１をドライブ２１０に装着することにより、入出力インタフェース２０５を介して、記憶部２０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２０９で受信し、記憶部２０８にインストールすることができる。その他、プログラムは、ROM２０２や記憶部２０８に、あらかじめインストールしておくことができる。
【０１５１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１５２】
以上のように、上述した一連の処理をソフトウエアにより実行する場合、コンピュータは、スライス単位で並列に復号を行う機能とタイル単位で並列に復号を行う機能を別々に用意する場合に比べて、ライブラリサイズを削減することができる。
【０１５３】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１５４】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０１５５】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０１５６】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０１５７】
また、本技術は、以下のような構成もとることができる。
【０１５８】
（１）
タイル単位で並列に画像を復号する並列復号部
を備える復号装置。
（２）
前記並列復号部は、前記画像を独立して復号可能な最小単位がタイルである場合、タイル単位で並列に前記画像を復号する
前記（１）に記載の復号装置。
（３）
前記並列復号部は、前記画像を独立して復号可能な最小単位がスライスである場合、スライス単位で並列に前記画像を復号する
前記（１）または（２）に記載の復号装置。
（４）
前記並列復号部は、前記画像内に前記タイルが存在するかどうかを表すフラグが、前記タイルが存在しないことを表す場合、スライス単位で並列に前記画像を復号する
前記（１）に記載の復号装置。
（５）
復号装置が、
タイル単位で並列に画像を復号する並列復号ステップ
を含む復号方法。
（６）
コンピュータを、
タイル単位で並列に画像を復号する並列復号部
として機能させるためのプログラム。
【符号の説明】
【０１５９】
１０  復号装置，  １３  並列復号部
【図１】
2014087860.tif 000003
【図２】
2014087860.tif 000004
【図３】
2014087860.tif 000005
【図４】
2014087860.tif 000006
【図５】
2014087860.tif 000007
【図６】
2014087860.tif 000008
【図７】
2014087860.tif 000009
【図８】
2014087860.tif 000010
【図９】
2014087860.tif 000011
【図１０】
2014087860.tif 000012
【図１１】
2014087860.tif 000013
【図１２】
2014087860.tif 000014
【図１３】
2014087860.tif 000015
【図１４】
2014087860.tif 000016
【図１５】
2014087860.tif 000017
【図１６】
2014087860.tif 000018
【図１７】
2014087860.tif 000019
【図１８】
2014087860.tif 000020
【手続補正書】
【提出日】平成26年2月26日(2014.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
タイル単位で並列に画像を復号する並列復号部
を備え、
前記並列復号部は、前記画像を独立して復号可能な最小単位がスライスである場合、スライス単位で並列に前記画像を復号する
復号装置。
【請求項２】
前記並列復号部は、前記画像を独立して復号可能な最小単位がスライスである場合、そのスライスの先頭のＬＣＵ（Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｕｎｉｔ）のアドレスを表すスライスアドレス情報に基づいて、スライス単位で並列に前記画像を復号する
請求項１に記載の復号装置。
【請求項３】
前記並列復号部は、前記スライスアドレス情報と、前記画像のタイルの先頭のＬＣＵのアドレスを表すタイルアドレス情報とに基づいて、前記画像を独立して復号可能な最小単位がスライスであるかどうかを判定し、前記画像を独立して復号可能な最小単位がスライスであると判定した場合、スライス単位で並列に前記画像を復号する
請求項２に記載の復号装置。
【請求項４】
前記並列復号部は、前記タイルアドレス情報を生成する
請求項３に記載の復号装置。
【請求項５】
前記並列復号部は、前記画像を独立して復号可能な最小単位がタイルである場合、タイル単位で並列に前記画像を復号する
請求項１に記載の復号装置。
【請求項６】
前記並列復号部は、前記画像を独立して復号可能な最小単位がタイルである場合、そのタイルの先頭のＬＣＵ（Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｕｎｉｔ）のアドレスを表すタイルアドレス情報に基づいて、タイル単位で並列に前記画像を復号する
請求項５に記載の復号装置。
【請求項７】
前記並列復号部は、前記タイルアドレス情報を生成する
請求項６に記載の復号装置。
【請求項８】
前記並列復号部は、前記タイルアドレス情報と、前記画像のスライスの先頭のＬＣＵのアドレスを表すスライスアドレス情報とに基づいて、前記画像を独立して復号可能な最小単位がタイルであるかどうかを判定し、前記画像を独立して復号可能な最小単位がタイルであると判定した場合、タイル単位で並列に前記画像を復号する
請求項６に記載の復号装置。
【請求項９】
前記並列復号部は、前記画像内にタイルが存在するかどうかを表すフラグが、タイルが存在しないことを表す場合、スライス単位で並列に前記画像を復号する
請求項１に記載の復号装置。
【請求項１０】
復号装置が、
タイル単位で並列に画像を復号する並列復号ステップ
を含み、
前記並列復号ステップの処理では、前記画像を独立して復号可能な最小単位がスライスである場合、スライス単位で並列に前記画像を復号する
復号方法。
【請求項１１】
コンピュータを、
タイル単位で並列に画像を復号する並列復号部
を備え、
前記並列復号部は、前記画像を独立して復号可能な最小単位がスライスである場合、スライス単位で並列に前記画像を復号する
復号装置として機能させるためのプログラム。
【国際調査報告】
2014087860.tif 000021
2014087860.tif 000022
2014087860.tif 000023
2014087860.tif 000024