(57)【要約】並列処理効率を低下させずに動画像符号化処理を並列に実行できる動画像符号化装置を提供する。動画像符号化装置10は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部11と、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部12とを備える。
2017073034.tif 000002
【特許請求の範囲】
【請求項１】
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成手段と、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理手段とを備える
ことを特徴とする動画像符号化装置。
【請求項２】
前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、
前記画像処理手段は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含む
請求項１記載の動画像符号化装置。
【請求項３】
前記逆変換逆量子化手段は、０以外の処理結果に対して逆量子化処理および逆変換処理を行う
請求項２記載の動画像符号化装置。
【請求項４】
前記画像処理手段は、前記変換量子化手段の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第２位置情報を作成する第２作成手段を含み、
前記逆変換逆量子化手段は、前記第２位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う
請求項２または請求項３記載の動画像符号化装置。
【請求項５】
前記画像処理手段は、前記変換量子化手段の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第３位置情報を、前記作成手段が作成した位置情報を更新することによって作成する第３作成手段を含み、
前記逆変換逆量子化手段は、前記第３位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化手段の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行う
請求項２または請求項３記載の動画像符号化装置。
【請求項６】
前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、
前記画像処理手段は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含む
請求項１記載の動画像符号化装置。
【請求項７】
前記作成手段は、前記位置情報と、前記位置情報と前記画像ブロックの圧縮順が格納されるデータとの対応関係を示す対応情報とを作成し、
前記変換処理の結果に基づいて前記データを一括して更新する更新手段と、
更新された前記データを用いて、前記画像ブロックを前記画像ブロックのサイズごとに圧縮するデータ圧縮手段とを更に備える
請求項１〜６のいずれか１項記載の動画像符号化装置。
【請求項８】
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う
ことを特徴とする動画像符号化方法。
【請求項９】
変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、
前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
前記変換処理および量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う
請求項８記載の動画像符号化方法。
【請求項１０】
コンピュータに、
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および
前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理
を実行させるためのプログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
【請求項１１】
コンピュータに、
前記変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成する作成処理、
前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化処理、および
前記変換量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化処理を実行させる
請求項１０記載のプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置、動画像符号化方法およびプログラム記録媒体に関する。本発明は、特に、並列処理の効率を低下させずにデータに依存する処理を並列に実行できる動画像符号化装置、動画像符号化方法およびプログラム記録媒体に関する。
【背景技術】
【０００２】
いわゆる4Kまたは8Kの解像度に代表される動画像の高解像度化に伴い、より符号化効率の高い動画像符号化技術が高く要求されている。動画像符号化技術の例に、ITU（International Telecommunication Union：国際電気通信連合）とISO（International Organization for Standardization：国際標準化機構）が共同で規格化を行なったH.264/MPEG（Moving Picture Experts Group）-4 AVC（Advanced Video Coding）（以下、H.264と略記する。）がある。また、動画像符号化技術の他の例に、2013年に標準化されたH.265 HEVC（High Efficiency Video Coding）（以下、H.265と略記する。）がある。【０００３】
H.264およびH.265の符号化方式は、フレーム間の冗長度またはフレーム内の冗長度を下げる予測方式と、予測残差の空間成分を周波数成分に変換し空間的冗長度を下げる変換・量子化方式と、データの発生頻度に対して可変長符号を割り当てるエントロピー符号化方式とで構成される。H.264およびH.265の符号化方式は、ハイブリッド符号化方式とも呼ばれる。H.265の符号化効率は、H.264の符号化効率の２倍である。符号化効率が高いため、H.265では符号化に係る演算量も大きく増加している。【０００４】
H.265では、符号ブロック(CU: Coding Unit)単位で符号化が行われる。また、予測は予測ブロック(PU: Prediction Unit)単位で行われ、変換は変換ブロック(TU: Transform Unit)単位で行われる。H.264に比べてH.265では処理可能な各ブロックのパターンが増えており、より適切に符号化が実行される。【０００５】
例えばH.264におけるTUのパターンは、4x4と8x8の２パターンである。H.265におけるTUのパターンは、4x4、8x8、16x16、および32x32の４パターンであり、H.264に比べて２パターン追加されている。なお、4x4等は、TUのサイズを表す。例えば、4x4は、縦方向に４画素、横方向に４画素を有するTUを意味する。処理可能なTUのパターンが増えたことによって、H.265の規格に基づいて行われる符号化では、処理対象の画面上に様々なTUが混在する。【０００６】
動画像符号化装置の例として、特許文献１には、符号化効率に対して最適なモード、および量子化パラメータを選択する画像符号化装置が記載されている。【０００７】
また、非特許文献１には、H.265の規格に基づいた処理の内容が記載されている。H.265の規格に基づいた動画像符号化装置（エンコーダ）の構成の一例を図２３に示す。図２３は、H.265の規格に基づいた動画像符号化装置の構成例を示すブロック図である。【０００８】
図２３に示す動画像符号化装置100は、イントラ予測部1000と、インター予測部2000と、変換処理部3000と、エントロピー符号化部4000と、減算器5000と、加算器6000と、マルチプレクサ7000と、マルチプレクサ8000とを備える。【０００９】
イントラ予測部1000は、入力画像の空間成分に関してフレーム内の冗長度を下げる予測処理を行う機能を有する予測処理部である。インター予測部2000は、入力画像の空間成分に関してフレーム間の冗長度を下げる予測処理を行う機能を有する予測処理部である。イントラ予測部1000およびインター予測部2000は、予測処理により生成された予測画像を出力する。【００１０】
変換処理部3000は、入力画像と予測画像との差分である残差画像の空間成分を周波数成分に変換する変換処理を行う。変換処理部3000は、変換処理により生成された変換係数を出力する。【００１１】
また、変換処理部3000は、前のフレームの画像を利用するインター予測部2000用に、変換係数を画素情報に逆変換する。加算器6000が、逆変換された画素情報と予測画像とを足し合わせることによって、再構築画像を求める。求められた再構築画像は、図２３に示すようにインター予測部2000に入力される。【００１２】
エントロピー符号化部4000は、変換係数をスキャンし、データの出現確率に基づいて変換係数を可変長符号化し、ビットストリームを出力する機能を有する符号化処理部である。エントロピー符号化部4000には、変換処理部3000において符号化されやすい形式に変換された周波数成分情報がビットストリームとして入力される。エントロピー符号化部4000は、例えば入力されたビットストリームを、“０”または“１”の出現確率に基づいて符号化する。【００１３】
さらに、図２３に示す動画像符号化装置100では、TU単位でCBF(Coded Block Flag)が設定される。CBF=0に設定されているTUに対して、変換処理、量子化処理、逆変換処理、逆量子化処理の一連の処理は実行されなくてもよい。CBFは、例えば非特許文献２に記載されているH.265の規格に基づいたリファレンスソフトウェアHM(HEVC Test Model)では、インター予測処理で残差画像を要しないと判断されたTUに対して0に設定される。【００１４】
図２４は、図２３に示す変換処理部3000の構成例を示すブロック図である。図２４に示す変換処理部3000は、変換・量子化部3100と、逆変換・逆量子化部3200とを含む。【００１５】
変換・量子化部3100は、上述したように、入力された残差画像の空間成分を周波数成分に変換し、変換結果に対応する変換係数を生成する。次いで、変換・量子化部3100は、変換係数を量子化し、量子化された変換係数を逆変換・逆量子化部3200に入力する。【００１６】
逆変換・逆量子化部3200は、一度符号化された画像が次のフレームに対するインター予測処理で使用されるように、入力された変換係数を基に画像を再構築する。逆変換・逆量子化部3200は、変換・量子化部3100から入力された、周波数成分である量子化された変換係数を逆量子化する。次いで、逆変換・逆量子化部3200は、逆量子化された変換係数を空間成分に逆変換する。【００１７】
以下、図２４に示す変換処理部3000により実行される変換・量子化を説明する。H.265の規格では、変換方式として整数DCT(Discrete Cosine Transform：離散コサイン変換)と整数DST(Discrete Sine Transform：離散サイン変換)が採用されている。【００１８】
変換処理は、TUごとに実行される。H.265の規格では、DCTとDSTのいずれにおいても整数精度の直交変換が定義されている。すなわち、変換処理の処理結果は、TUに含まれる画素値とTUのサイズ(以下「TUサイズ」ともいう。)ごとに定義された変換行列との行列積になる。処理結果がTU単位の行列積になるため、変換処理は、行単位または列単位の画素間の関係に依存する処理になる。なお、変換式の具体的な内容は、非特許文献１に記載されている。【００１９】
量子化処理は、入力された量子化パラメータに基づいて実行される。量子化処理は、画素間の関係に依存しない。逆変換処理は変換処理の逆処理であり、逆量子化処理は量子化処理の逆処理である。【００２０】
動画像符号化のような信号処理は、処理量が多い。また、動画像符号化は、高い並列度で実行される処理である。よって、動画像符号化は、並列処理で高速に実行されることが求められている。【００２１】
並列処理の例に、GPU(Graphics Processing Unit)のようなメニーコアアーキテクチャが用いられた並列処理がある。メニーコアアーキテクチャが用いられた並列処理は、GPGPU(General Purpose computing on Graphics Processing Units)と呼ばれている。【００２２】
CPU(Central Processing Unit)は数プロセッサコア〜数十プロセッサコアを有するが、GPUは数千ものプロセッサコアを有する。よって、GPUは、並列度が高い処理を実現できる。【００２３】
NVIDIA社の製品に代表されるGPUのアーキテクチャは、SIMT(Single Instruction Multiple Thread)アーキテクチャと呼ばれる。SIMTアーキテクチャは、一度に複数のスレッドに対する命令を実行できる。【００２４】
例えば、SIMTアーキテクチャの一種であるNVIDIA社のKeplerアーキテクチャでは、３２スレッドの１まとまりがワープと呼ばれる。Keplerアーキテクチャでは、命令はワープ単位で実行される。すなわち、３２スレッドのうち１スレッドでも異なる処理をする場合、同じワープの他のスレッドがストールする。なお、ストールは、動作が停止して操作を受け付けなくなる状態である。従って、SIMTアーキテクチャは、大量のデータに対して同じ処理を実行するアプリケーションの実現に適している技術である。【００２５】
H.264の規格およびH.265の規格に基づくような動画像符号化がGPUのようなメニーコアアーキテクチャで実現される場合、予測処理で用いられるブロックマッチング等は、画素単位で並列に実行可能であるため高い並列度で効率よく処理される。【００２６】
しかし、動画像符号化における変換処理は、TUの行間の画素の関係または列間の画素の関係に依存する処理であるため、高い並列度での実行が困難であり、処理効率が低下する。さらに、変換処理は、TUのサイズに依存する処理であるため、各スレッドへの各TUの変換処理の割り振りが複雑になる。【００２７】
特許文献２には、処理の対象になる符号化された画像データに対して複数の処理部でマクロブロック単位の処理を行う復号化方法が記載されている。特許文献２に記載されている復号化方法は、プロセッサ間の通信を削減するために依存関係にあるブロックをまとめて実行することを特徴としている。しかし、特許文献２に記載されている復号化方法では、プロセッサが担当する処理が均一になるように処理を割り振ることは想定されていない。【００２８】
H.264の規格に基づく変換ブロックの配置例を図２５に示す。図２５は、H.264の規格に基づく変換ブロックの配置例を示す説明図である。図２５に示すように、処理対象の画像は、4x4、または8x8で構成される。【００２９】
図２５に示すように、H.264には、マクロブロックに対するTUの配置パターンが、１６個の4x4が配置されるパターンと４個の8x8が配置されるパターンの２種類しかない。１列または１行に１スレッドが割り当てられる場合、4x4が配置されるパターンの並列度は６４になる。また、8x8が配置されるパターンの並列度は３２になる。【００３０】
すなわち、マクロブロックあたりの並列度は、いずれの配置パターンであっても３２以上になる。そのため、１マクロブロックに関する処理が１ワープに割り当てられる。よって、ワープが用いられた場合のH.264の規格に基づく変換・量子化処理において、オーバヘッドは生じない。【００３１】
H.265では、TUのパターンが増えたため、オーバヘッドが発生しないようにスレッドに変換処理を割り振ることは困難である。H.265の規格に基づく変換ブロックの配置例を図２６に示す。図２６は、H.265の規格に基づく変換ブロックの配置例を示す説明図である。【００３２】
図２６に示すように、処理対象の画像は、4x4、8x8、16x16、および32x32の、全パターンのTUで構成される場合がある。また、8x8のTUには、CBF=0に設定されており、変換処理、量子化処理、逆変換処理、および逆量子化処理が実行されなくてもよいTUが存在する。
本例では、どのパターンのTUにも、変換処理等が実行されなくてもよいTUが存在する可能性がある。【００３３】
図２６に示す各TU内の矢印は、それぞれのTUを変換するスレッドを表す。一つのTUに対して、一つのスレッドが割り当てられている。なお、CBF=0に設定されているTUにはスレッドが割り当てられていないため、矢印が示されていない。【００３４】
図２７は、H.265の規格に基づく変換処理の処理タイミングの例を示すタイムチャートである。図２７は、スレッドが図２６に示すように割り当てられて変換処理が実行される場合のタイムチャートである。図２７に示す矢印は、スレッドによるTUの変換処理を表す。また、図２７に示す空白は、スレッドがストールしている期間を表す。【００３５】
上述したように、ワープ単位で命令が実行される場合、３２スレッド内の処理実行スレッド全てに同じ処理を割り振ることが求められる。変換処理はTUのサイズに依存する処理であるため、ワープが一度に変換できる各TUのサイズは、必然的に全て同じになる。【００３６】
具体的には、図２７に示すように、t=0では１個の32x32のTUが変換される。また、t=1では１個の16x16のTUが変換される。t=2では６個の8x8のTUが変換される。サイズが同じであれば処理が同じになるため、CBF=0のTUに対する処理も実行対象のTUに対する変換処理と共に割り当てられる。t=3では２４個の4x4のTUが変換される。なお、各TUを変換するスレッドは異なる。【００３７】
図２７に示すように、SIMTのようなアーキテクチャは異なるサイズのTUを同時に変換できない。すなわち、変換処理において大きなオーバヘッドが発生する。その理由は、以下の通りである。【００３８】
図２７に示すスレッドの粒度は大きいが、スレッドの粒度を小さくした場合であっても、１列または１行に１スレッドを割り当てることが求められる。１列または１行に１スレッドが割り当てられる場合、サイズが最小の4x4のTUの変換処理の並列度は４である。すなわち、H.265の規格に基づく変換処理ではブロックあたりの並列度が小さくなる可能性があり、３２スレッドに同じ処理を割り振ることが困難な場合が多いと考えられる。【００３９】
また、H.265の規格に基づく動画像符号化では、変換ブロックが適応的に配置されるため、変換処理が３２個以上生じないパターンが発生する可能性が高い。変換処理が３２個以上生じないパターンが発生した場合、GPUは、符号化対象の画像を効率的に処理できない。【００４０】
上記の問題を解決し、変換処理部に適用可能な技術の一例が、非特許文献３に記載されている。図２８は、非特許文献３に記載されている技術が適用された変換処理部3000の構成例を示すブロック図である。【００４１】
非特許文献３には、H.264の規格に基づくデコーダ（復号器）を対象とした技術が記載されている。非特許文献３には、各スレッドに同じ処理を割り振るために同じTUサイズのデータを一時領域に集め、データをまとめて処理することによって全スレッドに同じ処理を割り当てる技術が記載されている。図２８には、非特許文献３に記載されている変換処理部を変換・量子化処理を行うエンコーダ（符号化器）用に拡張した変換処理部が記載されている。【００４２】
図２８に示す変換処理部3000は、変換・量子化部3101〜変換・量子化部310Nと、逆変換・逆量子化部3201〜320Nと、gather部3900と、scatter部3910〜3920とを含む。【００４３】
なお、変換・量子化部3101〜310N、および逆変換・逆量子化部3201〜320Nは、それぞれTUのパターンの数だけ含まれる。すなわち、NがTUのパターンの数に相当する。各々が、対応するサイズのTUを処理する。【００４４】
図２８に示す変換処理部3000の動作の例を、以下に説明する。gather部3900には、残差画像と、残差画像を構成するTUの情報を示すTUサイズ情報が入力される。gather部3900は、入力されたTUサイズ情報を用いて、入力された残差画像のデータを、TUサイズごとにまとめて一時領域（図示せず）に保存する。【００４５】
変換・量子化部3101〜310Nは、それぞれが処理対象にするTUサイズに対応する、一時領域に保存されている残差画像のデータに対して変換・量子化処理を行う。一時領域にはTUサイズごとにデータが保存されているため、変換・量子化部3101〜310Nは、効率的に並列処理を実行できる。各変換・量子化部は、生成された変換係数を一時領域に書き戻す。【００４６】
逆変換・逆量子化部3201〜320Nは、それぞれが処理対象にするTUサイズに対応する、一時領域に保存されている変換係数のデータに対して逆変換・逆量子化処理（逆変換処理および逆量子化処理）を行う。一時領域にはTUサイズごとに変換係数が保存されているため、逆変換・逆量子化部3201〜320Nも変換・量子化部3101〜310Nと同様に、並列処理を効率的に実行できる。逆変換・逆量子化部3201〜320Nは、生成された再構築画像の一部を一時領域に書き戻す。【００４７】
scatter部3910は、逆変換・逆量子化部3201〜320Nで再構築されたTUサイズごとの再構築画像の一部を、一時領域から元の領域に書き戻す。また、scatter部3920は、変換・量子化部3101〜310Nでそれぞれ生成されたTUサイズごとの変換係数を、一時領域から元の領域に書き戻す。【００４８】
なお、scatter処理とgather処理は逐次的な処理であるため、gather部3900、scatter部3910、およびscatter部3920は、逐次処理の実行に適しているCPUで主に実現される。また、変換・量子化部3101〜310N、および逆変換・逆量子化部3201〜320Nは、並列処理の実行に適しているGPUで主に実現される。【００４９】
上記のように、図２８に示す各変換・量子化部および各逆変換・逆量子化部は、それぞれ同じサイズのTUに関するデータのみをまとめて処理する。すなわち、図２８に示す変換処理部3000がGPUで実現される場合、変換・量子化処理や逆変換・逆量子化処理を行うワープに対して、複数の同じ処理が割り振られる。【００５０】
図２９は、H.265の規格に基づく変換処理の処理タイミングの他の例を示すタイムチャートである。図２９は、図２６に示す配置例のTUに対して、図２８に示す変換処理部3000が変換処理を実行する場合のタイムチャートである。【００５１】
図２９に示すように変換処理部3000が変換処理を実行する場合、TUサイズごとにワープが分割され、使用されるスレッドが詰められる。よって、ストールするスレッドが減少し、より効率よく変換処理が実行される。なお、処理されるTUの数が１ワープあたりのスレッド数の倍数でない場合、ストールするスレッドが発生する。【００５２】
上述したように非特許文献２で対象にされているH.264では、マクロブロックに対して変換・量子化処理を行うワープが割り当てられてもオーバヘッドが発生しない。非特許文献２には、図２７に示すように２種類のTUを順次的に処理する構成の性能と、図２９に示すように２種類のTUを並列に処理する構成の性能のそれぞれの評価が記載されている。非特許文献２には、並列に処理する構成の性能の方がより優れていることが記載されている。【００５３】
その理由は、上記のようにH.264ではマクロブロックに対してワープが割り当てられた場合、ワープ内の全スレッドが同じ処理を実行することにより、オーバヘッドなしで変換処理が実行されるためである。【００５４】
H.265では並列度の異なるTUが適応的に配置されるため、ワープ内の全スレッドが同じ処理を実行するようにスレッドに処理を割り振ることは困難であり、効率的な変換処理の実行は難しい。よって、H.265のようにTUが適応的に配置される符号化方式では、図２８に示す非特許文献３に記載されている技術が特に有効であると考えられる。【００５５】
なお、特許文献４には、イメージを分析する方法において、イメージブロックの座標を記録するステップを含むことが記載されている。
【先行技術文献】
【特許文献】
【００５６】
【特許文献１】特開２００６−１２１５３８号公報
【特許文献２】国際公開第２００８／０２０４７０号
【特許文献３】国際公開第２０１４／１６７６０９号
【特許文献４】特開２０１２−０７４０７８号公報
【非特許文献】
【００５７】
【非特許文献１】ITU-T Recommendation H.265 “High efficiency video coding”, Apr, 2013.
【非特許文献２】JCTVC（Joint Collaborative Team on Video Coding）-S1002,“High Efficiency Video Coding(HEVC)Test Model 16(HM16)Improved Encoder Description”
【非特許文献３】Q.Chen, H.Wang, S.Zhuang, and B.Liu,“Parallel algorithm of IDCT with GPUs and CUDA for large-scale video quality of 3G”, Journal of computers, vol.7, No.8, pp.1880-1886, Aug, 2012.
【非特許文献４】M.Harris,S.Sengupta,J.D.Owens, “GPU Gems 3”,Chapter.39.
【発明の概要】
【発明が解決しようとする課題】
【００５８】
非特許文献３に記載されている変換処理部の第１の問題点は、gather部が一時領域を有することが求められる点である。例えば、図２８に示すgather部3900は、TUサイズごとにデータをまとめることが求められる。gather部3900は、TUサイズごとにデータを一時領域に格納するため、最大で原画像のサイズ分の一時領域を有することが求められる。【００５９】
すなわち、入力された残差画像自体が格納される領域も含めると、図２８に示す変換処理部3000は、少なくとも残差画像の２倍の領域を有することが求められる場合がある。処理対象の画像のサイズが大きくなるほど大きな領域を有する変換処理部が求められ、余分なコストがかかる。【００６０】
非特許文献３に記載されている変換処理部の第２の問題点は、CPU-GPU間に発生する通信が大きなボトルネックになる点である。4Kまたは8Kのような解像度が大きい画像の処理では、特に大きなボトルネックになる。【００６１】
gather部3900、scatter部3910、およびscatter部3920がそれぞれ実行する処理は、逐次的な処理である。よって、scatter部およびgather部がSIMTアーキテクチャのような超並列アーキテクチャで実現された場合、SIMTアーキテクチャは効率的に処理を実行できない。その理由は、超並列アーキテクチャは、逐次的な処理を効率的に実行できないためである。非特許文献３に記載されている例では、gather部3900、scatter部3910、およびscatter部3920は、それぞれCPUで実現されている。【００６２】
上記の場合、各変換・量子化部および各逆変換・逆量子化部はGPUで実現されているため、CPU-GPU間に通信が大量に発生する。発生する通信量はボトルネックになるほど多いため、全ての構成要素がGPUで実現され、本来の動画像符号化処理の実行に無関係な通信の発生が抑えられるような変換処理部が求められている。【００６３】
そこで、本発明は、上述したような問題を解決する、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる動画像符号化装置、動画像符号化方法およびプログラム記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００６４】
本発明に係る動画像符号化装置は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部と、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部とを備えることを特徴とする。【００６５】
本発明に係る動画像符号化方法は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行うことを特徴とする。【００６６】
本発明に係るプログラム記録媒体は、コンピュータに、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を実行させるためのプログラムを記録することを特徴とする。
【発明の効果】
【００６７】
本発明によれば、並列処理効率を低下させずに動画像符号化処理を並列に実行できる。
【図面の簡単な説明】
【００６８】
【図１】本発明に係る変換処理部の第１の実施形態の構成例を示すブロック図である。
【図２】リスト作成部3300の構成例を示すブロック図である。
【図３】リスト作成部3300が作成する実行TUリストの例を示す説明図である。
【図４】第１の実施形態の変換処理部3000に係る変換量子化処理を示すフローチャートである。
【図５】リスト作成部3300により実行されるリスト作成処理を示すフローチャートである。
【図６】本発明による変換処理部の第２の実施形態の構成例を示すブロック図である。
【図７】第２の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。
【図８】本発明による変換処理部の第３の実施形態の構成例を示すブロック図である。
【図９】第３の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。
【図１０】本発明による変換処理部の第４の実施形態の構成例を示すブロック図である。
【図１１】リスト更新部3600の構成例を示すブロック図である。
【図１２】リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の例を示す説明図である。
【図１３】リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の別の例を示す説明図である。
【図１４】リスト移動部3620により実行されるリスト内の実行TU情報の移動処理のさらに別の例を示す説明図である。
【図１５】第４の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。
【図１６】リスト更新部3600により実行されるリスト更新処理を示すフローチャートである。
【図１７】本発明による変換処理部の第５の実施形態の構成例を示すブロック図である。
【図１８】リスト初期化部3700の構成例を示すブロック図である。
【図１９】第５の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。
【図２０】リスト初期化部3700により実行されるリスト初期化処理を示すフローチャートである。
【図２１】本発明による動画像符号化装置の機能を実現可能な情報処理装置の構成例を示すブロック図である。
【図２２】本発明による動画像符号化装置の概要を示すブロック図である。
【図２３】H.265の規格に基づいた動画像符号化装置の構成例を示すブロック図である。
【図２４】図２３に示す変換処理部3000の構成例を示すブロック図である。
【図２５】H.264の規格に基づく変換ブロックの配置例を示す説明図である。
【図２６】H.265の規格に基づく変換ブロックの配置例を示す説明図である。
【図２７】H.265の規格に基づく変換処理の処理タイミングの例を示すタイムチャートである。
【図２８】非特許文献３に記載されている技術が適用された変換処理部3000の構成例を示すブロック図である。
【図２９】H.265の規格に基づく変換処理の処理タイミングの他の例を示すタイムチャートである。
【図３０】本発明による変換処理部の第６の実施形態の構成例を示すブロック図である。
【図３１】拡張リスト作成部4100の構成例を示すブロック図である。
【図３２】第６の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
【図３３】拡張リスト作成部4100により実行される拡張リスト作成処理を示すフローチャートである。
【図３４】拡張リストと中間データの関係を示す説明図である。
【図３５】変換係数の圧縮順を示す説明図である。
【図３６】本発明による動画像符号化装置の概要を示すブロック図である。
【図３７】インデックスの算出方法の一例を示す図である。
【発明を実施するための形態】
【００６９】
実施形態１．
［構成］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明の第１の実施形態に係る変換処理部の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の４種類であるが、本実施形態のTUサイズパターンはN種類であるとする。また、図１以降のブロック図に示される矢印は、情報の流れの一例を示し、情報の流れを限定することを意図しない。
【００７０】
図１に示すように、本実施形態の動画像符号化装置の変換処理部3000は、図２８に示す変換処理部3000と異なり、gather部3900とscatter部3910〜3920を含んでいない。本実施形態では、一時領域が使用されないため、一時領域に保存されている画像データを元の領域に書き戻すscatter部は含まれていない。
【００７１】
また、図１に示す変換処理部3000は、図２８に示す変換処理部3000と異なり、リスト作成部3300を含む。図１に示す変換処理部3000の構成は、リスト作成部3300を除き、図２８に示す変換処理部3000の構成と同様である。gather部3900には、TUサイズ情報と残差画像が入力される。これに対し、リスト作成部3300には、TUサイズ情報とCBFが入力される。
【００７２】
また、図２８に示す変換・量子化部3101〜310Nのそれぞれには、それぞれが対応するTUサイズの残差画像が集められた一時領域のアドレスと実行TUサイズ数が入力される。これに対し、図１に示す変換・量子化部3101〜310Nのそれぞれには、残差画像と実行TUリストが入力される。逆変換・逆量子化部3201〜320Nのそれぞれにも同様のデータが入力される。
【００７３】
本実施形態のリスト作成部3300は、CBFとTUサイズ情報とを入力とし、TUの位置座標がTUサイズごとに列挙されたリストである実行TUリストを作成する機能を有する。本実施形態では、位置座標が列挙されたリストをリスト作成部3300が作成するため、入力された残差画像のデータに対する加工などの操作が求められない。その理由は、変換・量子化部3101〜310Nのそれぞれが処理対象のサイズのTUに対応するリストの情報を用いて、残差画像内の処理対象のサイズのTUを探索できるからである。
【００７４】
なお、リスト作成部3300は、実行TUリストを並列に作成できる。リスト作成部3300は、32x32が構成するTUの最小サイズである領域ごとに、実行TUリストを並列に作成できる。
すなわち、画面が32x32ブロックの各領域に分割された場合、リスト作成部3300は、画面内の各32x32ブロックを並列に処理できる。
【００７５】
本実施形態の変換・量子化部3101〜310Nのそれぞれは、対応するパターンの複数のTUに関する変換・量子化処理を実行する。よって、変換・量子化部3101〜310NがGPUのようなSIMTアーキテクチャで実現された場合、サイズが同一のTUがワープに割り当てられ、効率的に並列処理が実行される。
【００７６】
また、処理されるデータは、メモリ上に非連続に存在している可能性がある。CPUで用いられるSIMD(Single Instruction Multiple Data)命令では、メモリ上に連続に存在しているデータがまとめて処理されるため、メモリ上に非連続に存在しているデータが処理される場合に並列処理効率が低下する。
【００７７】
しかし、GPUのようなSIMTアーキテクチャでは、各スレッドがそれぞれ独立にレジスタを持ち、各スレッドは自己のレジスタに実行対象のアドレスを保持する。すなわち、処理されるデータがメモリ上に連続に存在しているか否かに関わらず、効率的に並列処理が実行されるという利点もある。
【００７８】
本実施形態の逆変換・逆量子化部3201〜320Nは、対応するパターンの複数のTUに関する逆変換・逆量子化処理を実行する。よって、逆変換・逆量子化部3201〜320NがGPUのようなSIMTアーキテクチャで実現された場合、サイズが同一のTUの変換係数がワープに割り当てられ、効率的に並列処理が実行される。
【００７９】
また、上記と同様に処理されるデータは、メモリ上に非連続に存在している可能性があるが、GPUのようなSIMTアーキテクチャでは、処理されるデータがメモリ上に連続に存在しているか否かに関わらず、効率的に並列処理が実行される。
【００８０】
図２は、リスト作成部3300の構成例を示すブロック図である。図２に示すように、リスト作成部3300は、カウント部3310と、アドレス計算部3320と、リスト格納部3330とを含む。
【００８１】
カウント部3310は、入力されたTUサイズ情報とCBFを用いて、割り当てられた領域内の実行対象のTU（すなわち、CBF≠0）をTUサイズごとに計数する機能を有する。なお、領域は、並列にリスト作成処理が実行されるように割り当てられた、分割された残差画像の領域である。
【００８２】
アドレス計算部3320は、割り当てられた領域内の、各実行TU情報が格納されるリストの各アドレスを計算する機能を有する。
【００８３】
リスト格納部3330は、アドレス計算部3320が求めたリストの各アドレスに対して、各実行TU情報を書き込む機能を有する。実行TU情報は、リスト格納部3330により作成される。
リスト格納部3330は、全ての実行TU情報が書き込まれたリストを、実行TUリストとして出力する。実行TUリストは、変換量子化部3101〜310Nに入力される。
【００８４】
図３は、リスト作成部3300が作成する実行TUリストの例を示す説明図である。図３に示すTUサイズごとの実行TUリストは、図２６に示すTUの配置例に基づいて作成されたリストである。
【００８５】
図３に示すように、実行TU情報には、例えば実行対象TUのx座標とy座標が含まれる。実行TUリストには、画像データ内の実行対象TUのx座標とy座標が列挙される。また、リスト作成部3300は、CBF=0に設定されているTUに関して実行TU情報を作成しないため、変換・量子化処理（変換処理および量子化処理）の実行に要するスレッドを削減できる。
【００８６】
［動作］
以下、本実施形態の変換処理部3000の動作を図４を参照して説明する。図４は、第１の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
【００８７】
変換処理部3000は、残差画像とTUサイズ情報との入力を受け付ける。リスト作成部3300は、入力されたCBFとTUサイズ情報とに基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する（ステップS101）。
【００８８】
次いで、変換・量子化部3101は、リスト作成部3300で作成された実行TUリスト内の、TUサイズパターン１に関するリスト１と残差画像とを入力として、TUサイズパターン１に関するTUのみに対して変換・量子化処理をまとめて実行する（ステップS102）。
【００８９】
次いで、逆変換・逆量子化部3201は、変換・量子化部3101が出力した変換係数を入力として、TUサイズパターン１に関する変換係数のみに対して逆変換・逆量子化処理（逆変換処理および逆量子化処理）をまとめて実行する（ステップS103）。
【００９０】
次いで、変換・量子化部3102は、リスト作成部3300で作成された実行TUリスト内の、TUサイズパターン２に関するリスト２と残差画像とを入力として、TUサイズパターン２に関するTUのみに対して変換・量子化処理をまとめて実行する（ステップS104）。
【００９１】
次いで、逆変換・逆量子化部3202は、変換・量子化部3102が出力した変換係数の入力を受け付け、TUサイズパターン２に関する変換係数のみに対して逆変換逆量子化処理をまとめて実行する（ステップS105）。
【００９２】
変換・量子化処理および逆変換逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される（ステップS102〜S107）。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
【００９３】
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理および逆変換・逆量子化処理は、図４に示すように順次的に実行されてもよいが、並列に実行されてもよい。
【００９４】
以下、本実施形態のリスト作成部3300の動作を図５を参照して説明する。図５は、リスト作成部3300により実行されるリスト作成処理を示すフローチャートである。すなわち、図５に示すステップS111〜S113の処理は、図４に示すステップS101の処理に相当する。リスト作成部3300は、TUサイズ情報とCBFとの入力を受け付け、リスト作成処理を実行した後、上記のTUサイズごとのリストを出力する。
【００９５】
カウント部3310は、入力されたTUサイズ情報とCBFを用いて、割り当てられた領域内に存在する変換・量子化処理の実行対象のTUをTUサイズごとに計数する（ステップS111）。
なお、上記の通り、領域は、並列にリスト作成処理が実行されるように割り当てられた、分割された残差画像の領域である。ステップS111の処理が領域ごとに独立した処理であるため、カウント部3310は、並列処理を効率的に実行できる。
【００９６】
次いで、アドレス計算部3320は、カウント部3310で生成されたTU数情報の入力を受け付け、変換・量子化処理の実行対象のTUの実行TU情報が書き込まれるリストのアドレスを計算する（ステップS112）。アドレス計算部3320は、TUサイズごとにアドレスを計算する。
【００９７】
アドレスの計算方法には、例えば非特許文献４に記載されているParallel Scanがある。Parallel Scanは、並列処理で部分和を効率的に求める方法であり、Stream Compactionで利用される方法である。
【００９８】
Stream Compactionは、有意なデータが不連続に存在している入力データに対して、有意なデータのみを詰めて出力する処理である。すなわち、Stream Compactionは、実行対象のTUに関する座標データを詰めて出力するリスト作成部3300の処理に類似している。なお、Parallel ScanおよびStream Compactionの具体的な内容は、非特許文献４に記載されている。
【００９９】
本例では、アドレス計算部3320は、TU数の部分和をParallel Scanを用いて計算する。
よって、アドレス計算部3320は、実行対象のTUの実行TU情報のみが詰められた形式のリストが作成されるようなアドレスを、並列処理で効率的に計算できる。
【０１００】
次いで、リスト格納部3330は、アドレス計算部3320で生成されたリストのアドレスを示す情報の入力を受け付け、各アドレスに実行TU情報をそれぞれ書き込む（ステップS113）。ステップS113の処理が実行領域ごとに独立した処理であるため、リスト格納部3330は、並列処理を効率的に実行できる。全ての実行TU情報を書き込んだ後、リスト格納部3330は、実行TUリストを出力する。実行TUリストを出力した後、リスト作成部3300は、リスト作成処理を終了する。
【０１０１】
［効果］
次に、本実施形態による効果を説明する。本実施形態のリスト作成部3300は、同じTUサイズのデータが格納されたリストをTUサイズごとに作成する。作成されたリストを用いることで、変換・量子化部3101〜310Nおよび逆変換・逆量子化部3201〜320Nは、gatherやscatterなどの画像データに対する操作を経ずに、同一サイズの複数のTUに関する処理をまとめて実行できる。すなわち、変換・量子化処理および逆変換・逆量子化処理が、効率よく並列に実施される。
【０１０２】
また、リスト作成部3300が作成するリストには、TUの位置情報のみが列挙されている。
そのため、リストの作成に要する一時領域は、図２８に示すgather部3900が要する少なくとも画像全体を記憶可能な一時領域よりも小さい。
【０１０３】
さらに、本実施形態のリスト作成部3300は、分割された画像の各領域に対して効率よく並列にリスト作成処理を実行できるので、GPUのようなメニーコアアーキテクチャで実現される。リスト作成部3300が実現された場合、GPUは、リスト作成処理を効率よく並列に実行できる。すなわち、リスト作成部3300を含め、変換処理部3000の全体がGPUのようなメニーコアアーキテクチャで実現可能であるため、符号化処理が効率的に実行される。
【０１０４】
すなわち、CPU-GPU間に通信が大量に発生するという上記の第２の問題点は解消される。本実施形態の動画像符号化装置は、並列処理効率を低下させずに動画像符号化を実行できるため、高速な動画像符号化処理を実現できる。
【０１０５】
実施形態２．
［構成］
次に、本発明の第２の実施形態を、図面を参照して説明する。図６は、本発明の第２の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の４種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
【０１０６】
図６に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図１に示す変換処理部3000と異なり、実行チェック部3401〜340Nが含まれている。図６に示す変換処理部3000の構成は、実行チェック部3401〜340Nを除き、図１に示す変換処理部3000の構成と同様である。
【０１０７】
本実施形態の変換処理部3000は、変換・量子化部3101〜310Nから出力される変換係数が全て“０”である場合、変換係数に対して逆変換・逆量子化処理を行わないことを特徴とする。変換処理部3000が逆変換・逆量子化処理を行わない理由は、全て“０”の変換係数に逆変換・逆量子化を実行しても全て“０” の結果しか得られず、逆変換・逆量子化処理に要したコストが無駄になるからである。
【０１０８】
本実施形態の実行チェック部3401は、対応するTUサイズのTUに関する変換係数内に非零係数が含まれるか否かを確認する機能を有する。実行チェック部3401は、変換量子化部3101により出力された変換係数と、リスト作成部3300により出力された実行TUリストとの入力を受け付け、入力された変換係数を走査する。
【０１０９】
走査の結果、変換係数が全て“０”である場合、実行チェック部3401は、走査した変換係数に対応するTUの実行TUリスト内のデータ（例えば、リスト１やリスト２）に対して、逆変換・逆量子化処理の対象外のTUであることを示すフラグ情報を付与する。実行チェック部3402〜340Nが有する各機能は、実行チェック部3401が有する機能と同様である。
【０１１０】
［動作］
以下、本実施形態の変換処理部3000の動作を図７を参照して説明する。図７は、第２の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
【０１１１】
ステップS201の処理は、図４に示すステップS101の処理と同様である。すなわち、リスト作成部3300は、入力されたCBFとTUサイズ情報とに基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する。
【０１１２】
変換・量子化部3101は、リスト作成部3300により作成された実行TUリスト内の、TUサイズパターン１に関するリスト１と残差画像との入力を受け付け、TUサイズパターン１に関するTUのみに対して変換・量子化処理をまとめて実行する。次いで、変換・量子化部3101は、実行結果である変換係数を実行チェック部3401に入力する（ステップS202）。
【０１１３】
次いで、実行チェック部3401は、入力された実行TUリストと変換係数とに基づいて、リスト１に記載されている実行TU情報に対応するTUの変換係数に非零係数が含まれるか否かを確認するために、変換係数を走査する。
【０１１４】
変換係数に非零係数が含まれておらず全て“０”である場合、実行チェック部3401は、走査した変換係数に対応するTUのリスト内のデータ（すなわち、リスト１）に対して、逆変換・逆量子化の対象外のTUであることを示すフラグ情報を付与する。変換係数に非零係数が少なくとも１つ含まれている場合、実行チェック部3401は、リスト１に対して処理を行わない。
【０１１５】
次いで、実行チェック部3401は、変換係数と実行TUリストとを逆変換・逆量子化部3201に入力する（ステップS203）。
【０１１６】
次いで、逆変換・逆量子化部3201は、実行チェック部3401から入力された実行TUリストのリスト１を参照する。参照したリスト１にフラグ情報が付与されていれば、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行しない。
【０１１７】
参照したリスト１にフラグ情報が付与されていなければ、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行する。逆変換・逆量子化部3201は、TUサイズパターン１に関する変換係数のみに対して逆変換・逆量子化処理をまとめて実行する（ステップS204）。
【０１１８】
変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される（ステップS202〜S210）。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
【０１１９】
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図７に示すように順次的に実行されてもよいが、並列に実行されてもよい。
【０１２０】
［効果］
次に、本実施形態による効果を説明する。本実施形態の実行チェック部3401〜340Nは、入力された変換係数に対して、逆変換・逆量子化処理の実行対象であるか否かを判定する。実行チェック部3401〜340Nが追加されることによって、逆変換逆量子化処理の実行が不要な変換係数がある場合、逆変換・逆量子化処理に係る演算量が削減される。
【０１２１】
実施形態３．
［構成］
次に、本発明の第３の実施形態を、図面を参照して説明する。図８は、本発明の第３の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の４種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
【０１２２】
図８に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図６に示す変換処理部3000と異なり、実行チェック部3401〜340Nの後段にリスト作成部3500が含まれている。図８に示す変換処理部3000の構成は、リスト作成部3500を除き、図６に示す変換処理部3000の構成と同様である。
【０１２３】
本実施形態の変換処理部3000は、変換係数が逆変換・逆量子化処理の実行対象であることを示すフラグ情報が含まれた実行TU情報を用いて、逆変換・逆量子化処理が実行される前に再び実行TUリストを作成することを特徴とする。
【０１２４】
本実施形態のリスト作成部3500が有する機能は、リスト作成部3300が有する機能と同様である。また、リスト作成部3500の構成は、リスト作成部3300の構成と同様である。
【０１２５】
すなわち、リスト作成部3500は、TUサイズ情報を入力とし、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する機能を有する。なお、リスト作成部3500は、各領域に対する作成処理を並列に実行できる。
【０１２６】
［動作］
以下、本実施形態の変換処理部3000の動作を図９を参照して説明する。図９は、第３の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
【０１２７】
ステップS301〜S302の処理は、図７に示すステップS201〜S202の処理と同様である。すなわち、リスト作成部3300は、入力されたCBFとTUサイズ情報とに基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する。
また、変換・量子化部3101は、リスト作成部3300で作成された実行TUリスト内の、TUサイズパターン１に関するリスト１と残差画像との入力を受け付け、TUサイズパターン１に関するTUのみに対して変換・量子化処理をまとめて実行する。
【０１２８】
実行チェック部3401は、入力された実行TUリストと変換係数とに基づいて、リスト１に記載されている実行TU情報に対応するTUの変換係数に非零係数が含まれるか否かを確認するために、変換係数を走査する。走査された変換係数に非零係数が含まれていた場合、実行チェック部3401は、非零係数に対応するTUのリスト１内の実行TU情報に、逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報を付与する（ステップS303）。
【０１２９】
次いで、実行チェック部3401は、逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が付与された実行TUリストを、リスト作成部3500に入力する。変換・量子化処理および実行チェック処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される（ステップS302〜S307）。
【０１３０】
全ての変換・量子化処理と実行チェック処理が完了した後、リスト作成部3500は、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された、逆変換・逆量子化処理用の実行TUリストを作成する。
【０１３１】
リスト作成部3500は、入力された逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が付与された実行TU情報に基づいて、逆変換・逆量子化処理用の実行TUリストを作成する（ステップS308）。
【０１３２】
リスト作成部3500が作成する実行TUリストは、リスト作成部3300が作成した実行TUリストと比べると、逆変換・逆量子化の実行対象外のTUの実行TU情報が削除されている。すなわち、実行TU情報がより詰めて含まれている形式の実行TUリストが得られる。
【０１３３】
次いで、逆変換・逆量子化部3201は、リスト作成部3500で作成された実行TUリスト内の、TUサイズパターン１に関するリスト１と、変換・量子化部3101により出力された変換係数との入力を受け付け、TUサイズパターン１に関する変換係数のみに対して逆変換・逆量子化処理をまとめて実行する（ステップS309）。
【０１３４】
リスト１には、逆変換・逆量子化処理の実行対象のTUに関する実行TU情報のみが含まれている。よって、逆変換・逆量子化部3201は、リスト１を参照して実行対象のTUに対応する変換係数に対してのみ逆変換・逆量子化処理を実行すればよい。
【０１３５】
逆変換・逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される（ステップS309〜S311）。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
【０１３６】
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図９に示すように順次的に実行されてもよいが、並列に実行されてもよい。
【０１３７】
［効果］
次に、本実施形態による効果を説明する。本実施形態のリスト作成部3500は、逆変換・逆量子化処理が実行される前に実行TUリストを作成し直す。よって、逆変換・逆量子化部3201〜320Nは、逆変換・逆量子化に要するスレッドを削減できる。その理由は、以下の通りである。
【０１３８】
１つのワープには複数のTUの変換係数が割り当てられる。ここにおいて、実行TUリストが作り直されない場合、１つのワープが処理する変換係数に対応するTUに逆変換・逆量子化処理の実行対象のTUと実行対象外のTUとが含まれ、逆変換・逆量子化処理が効率的に実行されない。
【０１３９】
一方、実行TUリストが作り直された場合、リスト内に実行対象外のTUに関する実行TU情報が存在しない。よって、逆変換・逆量子化部3201〜320Nは、この場合、実行対象のTUの変換係数に対する逆変換・逆量子化処理を実行するために要するスレッドのみを稼働すればよい。
【０１４０】
実施形態４．
［構成］
次に、本発明の第４の実施形態を、図面を参照して説明する。図１０は、本発明の第４の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の４種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
【０１４１】
図１０に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図８に示す変換処理部3000と異なり、リスト作成部3500の代わりにリスト更新部3600が含まれている。図１０に示す変換処理部3000の構成は、リスト更新部3600を除き、図８に示す変換処理部3000の構成と同様である。
【０１４２】
本実施形態のリスト更新部3600は、リスト作成部3300により作成された実行TUリストを簡易的に更新することを特徴とする。リスト更新部3600は、逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が含まれたTUサイズ情報を用いて、逆変換・逆量子化処理が実行される前に実行TUリストを更新する。
【０１４３】
本実施形態のリスト更新部3600が有する機能は、リスト作成部3300が有する機能と異なる。リスト更新部3600は、逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報に基づいて、任意の領域のTUサイズごとのリスト内の実行TU情報を、実行対象のTUに関する実行TU情報がまとまるように並び替える。
【０１４４】
なお、リスト更新部3600は、各領域に対する更新処理を並列に実行できる。本実施形態の変換処理部3000は、リスト更新部3600を分割された領域の数だけ含んでもよい。
【０１４５】
上述したように、GPUのようなSIMTアーキテクチャは、ワープに対して命令をフェッチする。なお、フェッチは、マイクロプロセッサが命令を実行する最初の段階で、命令コードをメモリから読み出し、プロセッサ内部のレジスタに転送する処理である。すなわち、ワープ内の全てのスレッドは同じ動作をすることが求められる。
【０１４６】
本実施形態のリスト更新部3600は、ワープ内の全てのスレッドが同じ動作をするように、任意の領域のリスト内の実行TU情報を、実行対象のTUに関する実行TU情報がまとめて配置されるように並び替える。リスト更新部3600がリストを更新しない場合、ワープに割り当てられたTUに実行対象外のTUが含まれていると、ワープ内にストールするスレッドが発生する。
【０１４７】
図１１は、リスト更新部3600の構成例を示すブロック図である。図１１に示すように、リスト更新部3600は、TU実行チェック部3610と、リスト移動部3620とを含む。
【０１４８】
TU実行チェック部3610は、逆変換・逆量子化の実行対象外のTUに関する実行TU情報を探索する機能を有する。TU実行チェック部3610は、逆変換・逆量子化の実行対象のTUであることを示すフラグ情報が含まれた実行TUリスト内の、実行対象外のTUに関する実行TU情報を探索する。
【０１４９】
リスト移動部3620は、割り当てられた領域内の実行対象外のTUに関する実行TU情報のリスト内における位置を変更する機能を有する。すなわち、リスト移動部3620は、実行対象外のTUに関する実行TU情報を、リスト内の別の位置に移動する。
【０１５０】
GPUのようなSIMTアーキテクチャは、ワープ内のスレッドの処理が均一であれば処理を効率よく実行できる。リスト移動部3620は、ワープ内のスレッドの処理が均一になるように、リスト内の実行TU情報を並べ替える。
【０１５１】
リスト移動部3620により実行される移動処理の例を図１２に示す。図１２は、リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の例を示す説明図である。図１２において、ハッチングされていない矩形は、実行対象のTUの実行TU情報を示す。また、ハッチングされている矩形は、実行対象外のTUの実行TU情報を示す。また、矢印は、ワープを示す。矢印を含む矩形は、矢印が示すワープが処理する実行TU情報を示す。
【０１５２】
図１２において、リスト１２ａは、移動前の実行TU情報の例を示す。リスト１２ａにおいて、実行TU情報は、実行対象のTUの実行TU情報と、実行対象外のTUの実行TU情報を含んでいる。また、リスト１２ａには、処理対象のブロックに実行対象のTUと実行対象外のTUが混在するために非効率な処理の実行を強いられるワープが、「非効率なワープ」として示されている。
【０１５３】
リスト移動部3620は、リスト１２ａに含まれる実行TU情報に基づいて、例えばリスト内の実行対象のTUの実行TU情報を“１”、実行対象外のTUの実行TU情報を“０”として、任意の領域のリスト内の実行TU情報全体を順次的にソートする。また、リスト移動部3620は、並列ソートアルゴリズムを用いて、リスト内の実行TU情報全体をソートしてもよい。
【０１５４】
図１２のリスト１２ｂは、移動後の実行TU情報の例を示す。リスト１２ｂにおいて、ソート後の実行TU情報は、実行対象のTUの実行TU情報ごと、および実行対象外のTUの実行TU情報ごとにそれぞれまとめられている。すなわち、リスト移動部3620は、処理対象のブロックに実行対象のTUと実行対象外のTUが混在するために非効率な処理の実行を強いられる「非効率なワープ」を削減できる。
【０１５５】
図１３は、リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の別の例を示す説明図である。
【０１５６】
図１３において、リスト１３ａは、移動前の実行TU情報の別の例を示す。リスト１３ａは、部分リスト１と部分リスト２に分割されている。部分リスト１および部分リスト２には、処理対象のブロックに実行対象のTUと実行対象外のTUが混在する「非効率なワープ」が複数存在する。
【０１５７】
図１３のリスト１３ｂは、移動後の実行TU情報の別の例を示す。リスト１３ｂに示す例では、リスト移動部3620は、各部分リストに含まれる実行TU情報を、それぞれ独立にソートする。部分リストごとにソートされることによって、図１２に示す例よりも少ない計算量で実行TUリストが簡易的に更新される。
【０１５８】
図１４は、リスト移動部3620により実行されるリスト内の実行TU情報の移動処理のさらに別の例を示す説明図である。
【０１５９】
図１４において、リスト１４ａは、移動前の実行TU情報のさらに別の例を示す。リスト１４ａは、部分リスト１と部分リスト２に分割されている。部分リスト１および部分リスト２には、処理対象のブロックに実行対象のTUと実行対象外のTUが混在する「非効率なワープ」であるワープＡ〜Ｅが存在する。
【０１６０】
リスト１４ａに示す例では、リスト移動部3620は、各ワープが処理するそれぞれのTUの実行TU情報を交換する。ワープ内のスレッドが等しい動作をすれば処理が効率的に実行されることに着目すると、ワープ内のスレッドが処理するブロックが実行対象のTUのみになるように実行TU情報を入れ替えることによって、処理が効率的に実行される。
【０１６１】
例えば、リスト移動部3620は、ワープＡが処理する実行対象のTUの実行TU情報と、ワープＢが処理する実行対象外のTUの実行TU情報を交換する。また、リスト移動部3620は、ワープＣが処理する実行対象のTUの実行TU情報と、ワープＥが処理する実行対象外のTUの実行TU情報を交換する。
【０１６２】
図１４のリスト１４ｂは、移動後の実行TU情報のさらに別の例を示す。リスト１４ｂは、実行対象外のTUの実行TU情報がまとめられたため、ワープＡとワープＣに相当するワープは削除されている。すなわち、実行TU情報が交換されることによって、より少ないワープで逆変換・逆量子化処理が実行される。
【０１６３】
［動作］
以下、本実施形態の変換処理部3000の動作を図１５を参照して説明する。図１５は、第４の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
【０１６４】
ステップS401〜S407の処理は、図９に示すステップS301〜S307の処理と同様である。
【０１６５】
リスト更新部3600は、入力された逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が付与された実行TU情報に基づいて、TUサイズごとのリストを、実行対象のTUに関する実行TU情報がまとめて配置されるように更新する（ステップS408）。
【０１６６】
次いで、逆変換・逆量子化部3201は、リスト更新部3600で更新された実行TUリスト内の、TUサイズパターン１に関するリスト１と、変換・量子化部3101が出力した変換係数との入力を受け付け、TUサイズパターン１に関する変換係数のみに対して逆変換・逆量子化処理をまとめて実行する（ステップS409）。
【０１６７】
リスト１には逆変換・逆量子化処理の実行対象であるTUに関する実行TU情報がまとめて配置されている。よって、逆変換・逆量子化部3201は、リスト１を参照して実行対象のTUに対応する変換係数に対してのみ逆変換・逆量子化処理を実行すればよい。
【０１６８】
逆変換・逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される（ステップS409〜S411）。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
【０１６９】
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図１５に示すように順次的に実行されてもよいが、並列に実行されてもよい。
【０１７０】
以下、本実施形態のリスト更新部3600の動作を図１６を参照して説明する。図１６は、リスト更新部3600により実行されるリスト更新処理を示すフローチャートである。すなわち、図１６に示すステップS421〜S422の処理は、図１５に示すステップS408の処理に相当する。
【０１７１】
TU実行チェック部3610は、入力された実行TUリストに対して、逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が付与されたTUサイズ情報に基づいて、実行対象外のTUに関する実行TU情報を探索する（ステップS421）。
【０１７２】
次いで、リスト移動部3620は、TU実行チェック部3610が探索した実行対象外のTUに関するリスト内の実行TU情報がまとまるように、実行TU情報を移動する（ステップS422）。実行TU情報を移動した後、リスト更新部3600は、リスト更新処理を終了する。
【０１７３】
［効果］
次に、本実施形態による効果を説明する。本実施形態のリスト更新部3600は、逆変換・逆量子化処理が実行される前に実行TUリストを簡易的に更新する。本実施形態のリスト更新処理に係る演算量は、例えば第３の実施形態のように部分和をとることによって実行TUリストを作成し直す場合の演算量よりも少ない。よって、本実施形態の変換処理部3000は、逆変換・逆量子化処理に要するスレッドをより少ない演算量で削減できる。
【０１７４】
実施形態５．
［構成］
次に、本発明の第５の実施形態を、図面を参照して説明する。図１７は、本発明の第５の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の４種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
【０１７５】
図１７に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図１０に示す変換処理部3000と異なり、リスト作成部3300の代わりにリスト初期化部3700とリスト更新部3800が含まれている。図１７に示す変換処理部3000の構成は、リスト初期化部3700とリスト更新部3800を除き、図１０に示す変換処理部3000の構成と同様である。
【０１７６】
本実施形態の変換処理部3000は、TUサイズ情報を用いて、簡易的に実行TUリストを作成することを特徴とする。
【０１７７】
本実施形態のリスト初期化部3700は、入力されたTUサイズ情報に基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙されたリストを作成する機能を有する。
【０１７８】
第１の実施形態〜第４の実施形態のリスト作成部3300は、変換・量子化処理の実行対象のTUの数だけ実行TU情報を作成する。一方、本実施形態のリスト初期化部3700は、画面内に理論的に存在するTUの数だけ実行TU情報（以下、エントリともいう。）を作成する。
【０１７９】
なお、リスト初期化部3700は、各領域に対する初期化処理を並列に実行できる。本実施形態の変換処理部3000は、リスト初期化部3700を分割された領域の数だけ含んでもよい。
【０１８０】
リスト更新部3800の構成は、図１１に示すリスト更新部3600の構成と同様である。リスト更新部3800は、前段のリスト初期化部3700で作成されたリストの形式を、変換・量子化部3101〜310Nを実現するワープ内のスレッドが変換・量子化処理を並列に実行し易い形式に更新する機能を有する。
【０１８１】
なお、リスト更新部3800は、各領域に対する更新処理を並列に実行できる。本実施形態の変換処理部3000は、リスト更新部3800を分割された領域の数だけ含んでもよい。
【０１８２】
図１８は、リスト初期化部3700の構成例を示すブロック図である。図１８に示すように、リスト初期化部3700は、TU実行チェック部3710と、エントリ作成部3720とを含む。
【０１８３】
TU実行チェック部3710は、変換・量子化処理の実行対象外のTUを探索する機能を有する。TU実行チェック部3710は、変換・量子化処理の実行対象外のTUを示すCBFとTUサイズ情報を用いて割り当てられた領域内の全TUを走査し、分割された領域の数だけ実行対象外のTUを探索する。
【０１８４】
エントリ作成部3720は、割り当てられた領域の実行TUリストのエントリを作成する機能を有する。エントリ作成部3720は、割り当てられた領域内に存在する全TUに対して、実行対象のTUと実行対象外のTUを区別して、それぞれの実行TUリストのエントリを作成する。
エントリ作成部3720は、作成されたエントリを実行TUリストに格納する。
【０１８５】
［動作］
以下、本実施形態の変換処理部3000の動作を図１９を参照して説明する。図１９は、第５の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
【０１８６】
リスト初期化部3700は、CBFとTUサイズ情報との入力を受け付け、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する（ステップS501）。
【０１８７】
次いで、リスト更新部3800は、入力された変換・量子化処理の実行対象外のTUであることを示すフラグ情報が付与され、TUサイズごとに実行TU情報が列挙されたリストを、実行対象のTUに関する実行TU情報がまとめて配置されるように更新する（ステップS502）。
【０１８８】
ステップS503〜S512の処理は、図１５に示すステップS402〜S411の処理と同様である。
N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
【０１８９】
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図１９に示すように順次的に実行されてもよいが、並列に実行されてもよい。
【０１９０】
以下、本実施形態のリスト初期化部3700の動作を図２０を参照して説明する。図２０は、リスト初期化部3700により実行されるリスト初期化処理を示すフローチャートである。
すなわち、図２０に示すステップS521〜S522の処理は、図１９に示すステップS501の処理に相当する。
【０１９１】
並列に初期化処理が実行されるように、リスト初期化部3700には任意の画像領域が割り当てられる。リスト初期化部3700は、TUサイズ情報とCBFとの入力を受け付ける。
【０１９２】
TU実行チェック部3710は、入力されたTUサイズ情報を用いて、割り当てられた領域内に存在する実行対象のTUおよび実行対象外のTUを、TUサイズごとにそれぞれ計数する（ステップS521）。TU実行チェック部3710は、取得されたTU数をエントリ作成部3720に入力する。
【０１９３】
次いで、エントリ作成部3720は、TU実行チェック部3710が取得したTU数に基づいて、割り当てられた領域の実行TUリストの各エントリを作成する（ステップS522）。エントリ作成部3720は、実行対象のTUと実行対象外のTUを区別して、それぞれのエントリを作成する。エントリ作成部3720は、作成されたエントリを実行TUリストに格納する。全てのエントリを格納した後、リスト初期化部3700は、リスト初期化処理を終了する。
【０１９４】
［効果］
次に、本実施形態による効果を説明する。本実施形態のリスト初期化部3700は、実行TUリストを簡易的に作成し、リスト更新部3800が実行TUリストを更新する。本実施形態のリスト初期化処理およびリスト更新処理に係る演算量は、例えば部分和をとることによって実行TUリストを最初から作成する場合のリスト作成処理に係る演算量よりも少ない。よって、本実施形態の変換処理部3000は、変換・量子化に要するスレッドをより少ない演算量で削減できる。
【０１９５】
実施形態６．
［構成］
一般に、GPUのようなCPUに付随したアクセラレータを使用する場合、CPUとGPUの間におけるバスを介したデータ転送が必須となるため、このデータ転送において発生する転送時間が大きなボトルネックとなる傾向がある。例えば、一般的に用いられるバス通信規格であるPCI（Peripheral Component Interconnect） Expressにおけるデータ転送速度は、CPUやGPU内部のメモリへのデータ転送速度に対して１〜２桁低速である。
【０１９６】
特許文献３に示す技術は、変換・量子化処理後にブロックに含まれる変換係数を、非零値のみに関して、ブロック内の位置情報と値とに分けて格納する。前述の通り、変換・量子化処理の後には多くの変換係数が“０”となるため、特許文献３に記載の技術は、データの圧縮を実現でき、データ転送速度の改善を期待できる。特許文献３に記載の技術は、並列処理の実行単位である、予め定められた画素数を有するブロックに分割し、各ブロックを並列に処理可能である。特許文献３に記載の技術は、ブロックを圧縮する際にブロック内の変換係数を逐次的にスキャンし、非零係数の数が閾値を越えた場合にはブロック内の変換係数全てを間引くことで変換係数のビット数を削減することによって、変換係数の格納に要するデータサイズを削減する。
【０１９７】
本技術をH.265に適用した場合、データを間引いた際の画素への影響を考慮すると、ここでいうブロックはTUとなることが好ましい。そのようにすると、圧縮処理は、TUごとに実行される。加えて、特許文献３では言及されていないが、TUは、図３５に示すように、後段の符号化処理で処理される順に圧縮されることが好ましい（いわゆるＺスキャン）。
尚、前述の通り、変換量子化後には、非有意なTU、すなわち変換係数が“０”でないTUが多数発生するので、圧縮処理は、有意なTUのみに対して実行されればよい。この場合、符号化部は、符号化の際にはフレーム内のTUサイズ情報とCBFとを用いることで各TUの位置を特定できる。あるいは、より簡単にTUの位置を計算するために、圧縮データに対応するTUの位置情報が付加されても良い。
【０１９８】
圧縮処理には、TU内の変換係数をスキャンする処理が含まれる。また、スキャンされるデータの数（およびスキャンに要する時間の長さ）がTUサイズによって異なる。そのため、TUサイズが異なれば、TUに対して実行される処理も異なるので、変換量子化で生じた異なるTUサイズの混在が発生し、結果として並列処理の効率が低下する。したがって、上記圧縮処理においても、上述した第１〜第５の実施形態で説明した変換量子化で使用したリストを用い、TUサイズごとに処理することで、並列処理の効率の向上が期待できる。
【０１９９】
一方で、有意なTUの変換係数のみを圧縮する場合、圧縮されたデータは可変長サイズとなる。そうすると、圧縮処理を並列に実行するためには、圧縮データの書き込み先の位置を事前に計算する必要がある。各TUが変換・量子化処理後に非有意なTUになる可能性があるので、変換量子化後に圧縮順を計算する必要がある。しかし、この時の各TUはリストによってTUサイズごとに分類されているので、図３５に示すような全てのサイズのTUを考慮した圧縮順の計算は困難である。したがって、圧縮処理のために圧縮順を計算し、圧縮用のリストを再作成する必要があるので、これが大きなボトルネックとなる可能性がある。
【０２００】
以下では本発明の第６の実施形態を、図面を参照して説明する。図３０は、本発明の第６の実施形態に係る変換処理部の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の４種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
【０２０１】
図３０に示すように、本実施形態の動画像符号化装置の変換処理部3000は、図６に示す変換処理部3000と異なり、リスト作成部3300に代えて拡張リスト作成部4100を含む。また、変換処理部3000は、中間データ更新部4300と、データ圧縮部4401〜440Nとを含む。また、実行チェック部4201〜420Nは、図６に示す変換処理部3000の実行チェック部3401〜340Nとは異なり、中間データが入出力される。図３０に示す変換処理部3000の構成は、拡張リスト作成部4100、実行チェック部4201〜420N、中間データ更新部4300およびデータ圧縮部4401〜440Nの構成を除き、図６に示す変換処理部3000の構成と同様である。
【０２０２】
本実施形態の変換処理部3000は、実行TUリストおよび中間データを用いることによってCPUに転送する変換係数を圧縮することを一つの特徴とする。
【０２０３】
拡張リスト作成部4100は、TUサイズ情報とCBFとの入力を受け付け、拡張リストと中間データとを出力する機能を有する。拡張リストの要素には、前述のTUの位置情報に加え、4x4ブロック単位の中間データに対応する4x4ブロック単位の位置情報が格納される。ここで、4x4ブロック単位の位置情報とは、中間データの位置を識別するための情報であり、例えばインデックスである。
【０２０４】
拡張リストと中間データは、図３４に例示するように中間データのインデックスによって対応づけられる。換言すれば、中間データのインデックスは、拡張リストから当該インデックスに対応する中間データにアクセスすることを可能にする。例えば、拡張リストにおいて、ブロックの座標（ｘ，ｙ）が（０，０）であるエントリ（要素）は、インデックスが「０」、すなわち中間データにおける先頭（１番目）のエントリに対応する。また、拡張リストにおいて、ブロックの座標（ｘ，ｙ）が（４，０）であるエントリは、インデックスが「１」、すなわち中間データにおける先頭のエントリの次（２番目）のエントリに対応する。このように、中間データのインデックスは、拡張リストと中間データとの対応関係を表している。なお、図３４に例示された中間データのインデックスは、後述するオフセットが「０」である場合のインデックスである。
【０２０５】
また、中間データは、ここでは4x4単位で生成される例を用いて説明されるが、この限りではない。中間データは、各TUとの対応関係が取れるデータであればよい。「4x4ブロック単位の位置情報」及び「インデックス」は、拡張リストと中間データとの対応関係を示す情報であり、本発明における「対応情報」の一例に相当する。
【０２０６】
実行チェック部4201〜420Nは、拡張リスト作成部4100から出力された拡張リストおよび中間データと、変換・量子化部3101〜310Nから出力された変換係数との入力を受け付ける。実行チェック部4201〜420Nは、拡張リストの各エントリが示すTUの変換係数を走査（スキャン）することにより、該TUが非有意かどうかを確認し、エントリ中のインデックスが示す中間データにフラグ情報を書き込む機能を有する。
【０２０７】
中間データ更新部4300は、中間データと変換量子化後のCBFとの入力を受け付け、中間データを更新および出力する機能を有する。更新後の中間データには、データ圧縮部4401〜440Nに関連する圧縮順が格納される。拡張リスト作成部4100は、拡張リストをブロックサイズごとの複数のリストに分割する。一方、中間データ更新部4300は、拡張リストに基づかずに、各ブロックの圧縮順が各ブロックに対応する拡張リストのエントリに記述されたリンク先にあるように中間データを更新することで、ブロックサイズごとに分割された拡張リストを用いずに圧縮順の更新が可能となる。
【０２０８】
具体的には、中間データ更新部4300は、中間データに含まれる実行フラグに基づいて、各ブロックの圧縮順を、各ブロックの拡張リストのエントリに記述されたインデックスが指し示す中間データに格納する。ここで、上記のような処理は、中間データに含まれる実行フラグのエントリにおいて、実行が「１」、非実行が「０」であるような場合に、中間データに含まれる実行フラグの各エントリの部分和を計算することで実現できる。部分和は、先に述べたように、Parallel Scanを用いることで効率的に並列計算することが可能である。なお、中間データ更新部4300による中間データの更新は、実行フラグを圧縮順に書き換えることであってもよいし、実行フラグに加えて圧縮順を書き込むことであってもよい。
【０２０９】
また、中間データ更新部4300は、拡張リスト作成部4100と同様に部分和を計算するので、中間データを並列に更新できる。ここで、中間データ更新部4300は、任意の固定長領域に対して並列に動作する。例えば、画面を32x32ブロックの領域に分割して中間データ更新部4300に与える場合、中間データ更新部4300は、画面内の各32x32ブロックを並列に処理できる。
【０２１０】
データ圧縮部4401〜440Nは、拡張リストと中間データとを用いて拡張リストのエントリに対応する中間データを参照することにより、ブロックサイズごとに一括してデータを圧縮し、圧縮されたデータを出力する。よって、データ圧縮部4201〜420Nが変換・量子化部3101〜310Nや逆変換・逆量子化部3201〜320Nと同様にGPUのようなSIMTアーキテクチャによって実現された場合、サイズが同一のブロックがワープに割り当てられ、並列処理が効率的に実行される。
【０２１１】
図３１は、拡張リスト作成部4100の構成例を示すブロック図である。図３１に示すように、拡張リスト作成部4100は、インデックス計算部4130を含む。また、拡張リスト作成部4100は、図２に示すリスト作成部3300と比較して、リスト格納部3330が拡張リスト格納部4140に置き換わっている点と、出力が拡張リストと中間データである点とが異なる。ブロック数カウント部4110と、アドレス計算部4120の構成は、図２に示すリスト作成部3300と同様である。ただし、アドレス計算部4120は、上記リストのアドレスに代えて拡張リストのアドレスを計算する。
【０２１２】
インデックス計算部4130は、対象ブロックの4x4ブロック単位の位置情報をインデックスとして算出する機能を有する。インデックス計算部4130は、例えば、あるスレッドが担当する領域（担当領域）における各ブロックの相対位置を示す情報（相対位置情報）を、スレッドIDのような各スレッドを識別する値と当該領域内のブロック数とを乗じた値でオフセットすることで、4x4ブロック単位の位置情報を容易に算出できる。
【０２１３】
図３７は、オフセットを含むインデックスの算出方法の一例を示す図である。この例において、スレッドID「１」の担当領域における相対位置情報が「１６」であるブロックのインデックスは、当該相対位置情報の値（１６）にスレッドID（１）とブロック数（６４）の積（６４）をオフセットとして加算した値、すなわち「８０」である。なお、図３４に例示されたインデックスは、スレッドIDが「０」であるので、オフセットも「０」である。
【０２１４】
拡張リスト格納部4140は、アドレス計算部4120により算出された拡張リストの格納先のアドレスと、インデックス計算部4130により計算されたインデックスとの入力を受け付け、ブロックの位置情報とインデックスとをリストデータとして、拡張リストの格納先のアドレスに格納する機能を有する。
【０２１５】
［動作］
以下、本実施形態の変換処理部3000の動作について図３２を参照して説明する。図３２は、第６の実施形態の変換処理部3000により実行される変換量子化処理とデータ圧縮処理を示すフローチャートである。
【０２１６】
変換処理部3000は、残差画像とTUサイズ情報とCBFとの入力を受け付ける。拡張リスト作成部4100は、入力されたTUサイズ情報とCBFとを用いて、実行対象のブロックの位置情報に対応する中間データへの位置情報を含んだリストデータがブロックサイズごとに列挙された拡張リストを作成する（ステップS601）。
【０２１７】
ステップS602の処理は、図７に示すステップS202の処理と同様である。すなわち、変換・量子化部3101は、リスト作成部3300により作成された実行TUリスト内の、TUサイズパターン１に関するリスト１と残差画像との入力を受け付け、TUサイズパターン１に関するTUのみに対して変換・量子化処理をまとめて実行する。
【０２１８】
次いで、実行チェック部4201は、拡張リスト作成部4100により作成された拡張リスト内のTUサイズパターン１に関するリストに対して、変換・量子化処理によってTUサイズパターン１の各TUが非有意になったか確認し、エントリに記述されたインデックスを用いて、中間データの該TU用の領域に実行フラグを書き込む（ステップS603）。
【０２１９】
ステップS604の処理は、図７に示すステップS204の処理と同様である。すなわち、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行する。
【０２２０】
ステップS605の処理は、図７に示すステップS205の処理と同様である。すなわち、変換・量子化部3101は、変換・量子化処理を実行する。
【０２２１】
次いで、実行チェック部4202は、拡張リスト作成部4100により作成された拡張リスト内のTUサイズパターン２に関するリストに対して、変換・量子化処理によってTUサイズパターン２の各TUが非有意になったか確認し、エントリに記述されたインデックスを用いて、中間データ上の該TU用の領域に実行フラグを書き込む（ステップS606）。
【０２２２】
ステップS607の処理は、図７に示すステップS207の処理と同様である。すなわち、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行する。
【０２２３】
変換処理部3000は、TUサイズパターン３以降に関するリストについても、TUサイズパターン１、２の場合と同様に処理を実行する。変換処理部3000は、TUサイズパターンNに関するリストまで、同様の処理を繰り返す（ステップS608〜S610）。
【０２２４】
次いで、中間データ更新部4300は、実行チェック部4201〜420Nにより出力された中間データの入力を受け付け、各TUの圧縮順が対応する拡張リストのエントリに記述されたインデックスにより示される中間データに格納されるように中間データを更新する（ステップS611）。
【０２２５】
次いで、データ圧縮部4401は、実行チェック部4201により出力された拡張リストと、変換・量子化部3101により出力された変換係数と、中間データ更新部4300により出力された中間データとを用いて、画面全体の変換係数のうちTUサイズパターン１に関する変換係数を圧縮する（ステップS612）。
【０２２６】
次いで、データ圧縮部4401は実行チェック部4201の出力である拡張リストと、変換・量子化部3101の出力である変換係数と、中間データ更新部4300の出力である中間データとを入力として、画面全体の変換係数の内TUサイズパターン２に関する変換係数を圧縮する（ステップS613）。
【０２２７】
データ圧縮処理は、N種類のTUサイズパターンに対して同様に繰り返し実行される（ステップS612〜ステップS614）。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換処理を終了する。
【０２２８】
なお、変換処理部3000は、図３２に示すようにN種類のTUサイズパターンそれぞれに対する変換処理とデータ圧縮処理を逐次的に実行してもよいが、N種類のTUサイズパターンそれぞれに対する処理を並列に実行してもよい。
【０２２９】
以下、本実施形態の拡張リスト作成部4100の動作について図３３を参照して説明する。
図３３は、拡張リスト作成部4100により実行される拡張リスト作成処理を示すフローチャートである。すなわち、図３３に示すステップS621〜S624の処理は、図３２に示すステップS601の処理に相当する。
【０２３０】
ブロック数カウント部4110は、TUサイズ情報とCBFを用いて、処理対象の領域内における実行対象のブロック数をカウントする（ステップS621）。
【０２３１】
次いで、アドレス計算部4120は、ブロック数カウント部4110によりカウントされた担当領域内の実行対象ブロック数を用いて、実行対象である各TUの拡張リストのエントリが格納されるアドレスを計算する（ステップS622）。
【０２３２】
次いで、インデックス計算部4130は、TUサイズ情報とCBFを用いて、担当領域内の各実行対象ブロックに対応する4x4ブロック単位の位置情報を計算する（ステップS623）。
【０２３３】
次いで、拡張リスト格納部4140は、ステップS622において計算されたアドレスとステップS623において計算されたインデックスを用いて、担当領域内の各実行対象ブロックに関する拡張リストのエントリを作成し、対応するアドレスに格納する（ステップS624）。全ての実行対象ブロックに関する拡張リストのエントリを格納した後、拡張リスト作成部4100は、拡張リスト作成処理を終了する。
【０２３４】
［効果］
次に、本実施の形態の効果について説明する。
【０２３５】
本実施の拡張リスト作成部4100は、同じブロックサイズのデータが格納されたリストをブロックサイズごとに作成することに加え、中間データへの対応関係を全ブロックサイズについて共通のインデックスとして拡張リストに格納する構成を有する。このような構成を有することで、拡張リスト自体はブロックサイズごとに分離されているものの、中間データを経由することによってブロックサイズ間の依存関係を保持できる。したがって、拡張リスト作成部4100は、変換処理が終了した後に、実行フラグから圧縮順を中間データによって計算できるため、変換・量子化処理とデータ圧縮処理とで同様の拡張リストを使用でき、リストの再作成にかかる計算コストを削減できる。
【０２３６】
また、拡張リスト作成部4100は、全てのブロックサイズに関するデータを同じ中間データによって管理することにより、全てのブロックサイズに関する圧縮順の計算を１回で一括して実行可能である。
【０２３７】
すなわち、拡張リスト作成部4100は、リスト作成にかかる計算量がボトルネックになる問題点を解消することができる。したがって、本実施形態の動画像処理装置は、リスト作成にかかる計算量が削減された動画像処理を実行できるので、高速な動画像処理を実現できる。
【０２３８】
本発明に係る動画像符号化装置の実施形態は、上記の第１の実施形態〜第６の実施形態に限定されない。本発明に係る動画像符号化装置の実施形態は、例えば、同様の処理が実行される他の動画像符号化処理、さらに、変換・量子化処理以外の動き補償予測処理などの他の処理を実行する実施形態でもよい。
【０２３９】
なお、上記の各実施形態ではH.264の規格、またはH.265の規格に基づく変換・量子化部等がGPUで実現される例を説明したが、動画像符号化装置は、GPU以外の並列プロセッサ、または並列処理を実行可能なハードウェア等で実現されてもよい。
【０２４０】
また、上記の各実施形態は、ハードウェアで構成することも可能であるが、例えば記録媒体に記録されたコンピュータプログラムにより実現することも可能である。
【０２４１】
図２１に示す情報処理装置は、プロセッサ1001、プログラムメモリ1002、映像データを格納するための記憶媒体（記録媒体）1003、およびビットストリーム等のデータを格納するための記憶媒体1004を備える。記憶媒体1003と記憶媒体1004とは、別個の記憶媒体であってもよいし、同一の記憶媒体からなる記憶領域であってもよい。これらの記憶媒体としては、ハードディスク等の磁気記憶媒体を用いることができる。記憶媒体1003において、少なくともプログラムが記憶される領域は、一時的でない有形な記憶媒体（non-transitory tangible media）である。
【０２４２】
図２１に示された情報処理装置において、プログラムメモリ1002には、図１、６、８、１０、１７、３０に示された各ブロックの機能を実現するためのプログラムが格納される。そして、プロセッサ1001は、プログラムメモリ1002に格納されているプログラムに従って処理を実行することによって、図１、６、８、１０、１７、３０に示された変換処理部の機能を実現する。
【０２４３】
次に、本発明の概要を説明する。図２２は、本発明に係る動画像符号化装置の概要の一例を示すブロック図である。本発明に係る動画像符号化装置10は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部11（例えば、リスト作成部3300）と、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部12（例えば、変換・量子化部3101〜310Nおよび逆変換・逆量子化部3201〜320N）とを備える。
【０２４４】
そのような構成により、動画像符号化装置10は、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる。
【０２４５】
また、作成部11は、変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、画像処理部12は、位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化部（例えば、変換・量子化部3101〜310N）と、変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部（例えば、逆変換・逆量子化部3201〜320N）とを含んでもよい。
【０２４６】
そのような構成により、動画像符号化装置は、変換処理および量子化処理に要するスレッドを削減できる。
【０２４７】
また、逆変換逆量子化部は、０以外の処理結果に対して逆量子化処理および逆変換処理を行ってもよい。
【０２４８】
そのような構成により、動画像符号化装置は、逆量子化処理および逆変換処理に係る演算量を削減できる。
【０２４９】
また、画像処理部12は、変換量子化部の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第２位置情報を作成する第２作成部（例えば、リスト作成部3500）を含み、逆変換逆量子化部は、第２位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行ってもよい。
【０２５０】
そのような構成により、動画像符号化装置は、逆量子化処理および逆変換処理に要するスレッドを削減できる。
【０２５１】
また、画像処理部12は、変換量子化部の処理結果を用いて、逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第３位置情報を、作成部11が作成した位置情報を更新することによって作成する第３作成部（例えば、リスト更新部3600）を含んでもよい。この場合において、逆変換逆量子化部は、第３位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する変換量子化部の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行ってもよい。
【０２５２】
そのような構成により、動画像符号化装置は、逆量子化処理および逆変換処理に要するワープを削減できる。
【０２５３】
また、作成部11（例えば、リスト初期化部3700およびリスト更新部3800）は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、画像処理部12は、位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化部と、変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部とを含んでもよい。
【０２５４】
そのような構成により、動画像符号化装置は、変換処理および量子化処理に要するワープを削減できる。
【０２５５】
また、作成部11は、分割された画像データである画像領域それぞれに基づいた位置情報を並列に作成してもよい。
【０２５６】
そのような構成により、動画像符号化装置は、残差画像に対するリスト作成処理を並列に実行できる。
【０２５７】
図３６は、本発明に係る動画像符号化装置の概要の別の例を示すブロック図である。動画像符号化装置20は、作成部21（例えば、拡張リスト作成部4100）と、画像処理部22（例えば、変換・量子化部3101〜310N）と、更新部23（例えば、中間データ更新部4300）と、データ圧縮部24（例えば、データ圧縮部4401〜440N）とを含む。作成部21は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報と、位置情報とデータ圧縮部24による画像ブロックの圧縮順が格納されるデータ（例えば、中間データ）との対応関係を示す対応情報（例えば、インデックス）とを作成する。画像処理部22は、作成部21により作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を実行する。更新部23は、画像処理部22による変換処理の結果に基づいて、作成部21により作成されたデータを一括して更新する。データ圧縮部24は、更新部23により更新されたデータを用いて、画像ブロックをサイズごとに圧縮する。
【０２５８】
このような構成により、動画像符号化装置20は、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる。
【０２５９】
［付記］
本発明の実施の形態は、上述した実施形態に限定されず、当業者に理解され得る変形を含み得る。例えば、本発明の実施の形態は、上述した各実施形態の一部または全部を適宜に組み合わせた形態であってもよい。また、本発明の実施形態の一部または全部は、以下の付記のように記載され得るが、これらに限定されない。
【０２６０】
（付記１）
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部と、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部とを備える
ことを特徴とする動画像符号化装置。
【０２６１】
（付記２）
前記作成部は、変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、
前記画像処理部は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化部と、前記変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部とを含む
付記１記載の動画像符号化装置。
【０２６２】
（付記３）
前記逆変換逆量子化部は、０以外の処理結果に対して逆量子化処理および逆変換処理を行う
付記２記載の動画像符号化装置。
【０２６３】
（付記４）
前記画像処理部は、前記変換量子化部の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第２位置情報を作成する第２作成部を含み、
前記逆変換逆量子化部は、前記第２位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う
付記２または付記３記載の動画像符号化装置。
【０２６４】
（付記５）
前記画像処理部は、前記変換量子化部の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第３位置情報を、前記作成部が作成した位置情報を更新することによって作成する第３作成部を含み、
前記逆変換逆量子化部は、前記第３位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化部の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行う
付記２または付記３記載の動画像符号化装置。
【０２６５】
（付記６）
前記作成部は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、
前記画像処理部は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化部と、前記変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部とを含む
付記１記載の動画像符号化装置。
【０２６６】
（付記７）
前記作成部は、前記位置情報と、前記位置情報と前記画像ブロックの圧縮順が格納されるデータとの対応関係を示す対応情報とを作成し、
前記変換処理の結果に基づいて前記データを一括して更新する更新部と、
更新された前記データを用いて、画像ブロックをサイズごとに圧縮するデータ圧縮部とを更に備える  付記１〜６のいずれかに記載の動画像符号化装置。
【０２６７】
（付記８）
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う
ことを特徴とする動画像符号化方法。
【０２６８】
（付記９）
変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、  前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
前記変換処理および量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う
付記８記載の動画像符号化方法。
【０２６９】
（付記１０）
コンピュータに、
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および
前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理
を実行させるための動画像符号化プログラム。
【０２７０】
（付記１１）
コンピュータに、
前記変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成する作成処理、
前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化処理、および
前記変換量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化処理を実行させる
付記１０記載の動画像符号化プログラム。
【０２７１】
この出願は、２０１５年１０月２８日に出願された日本出願特願２０１５−２１１６５９および２０１６年８月４日に出願された日本出願特願２０１６−１５３５７０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０２７２】
本発明は、並列処理効率を低下させずに動画像符号化を高速で実行でき、高解像度映像の高速処理を実現できる。そのため、本発明は、高解像度処理が要求される撮像システムやトランスコードシステムなどに好適に適用可能である。
【符号の説明】
【０２７３】
10、20、100  動画像符号化装置
11  作成部
12  画像処理部
1000  イントラ予測部
1001  プロセッサ
1002  プログラムメモリ
1003、1004  記憶媒体
2000  インター予測部
3000  変換処理部
3100〜310N  変換・量子化部
3200〜320N  逆変換・逆量子化部
3300  リスト作成部
3310  カウント部
3320  アドレス計算部
3330  リスト格納部
3401〜340N、4201〜420N  実行チェック部
3500  リスト作成部
3600  リスト更新部
3610、3710  TU実行チェック部
3620  リスト移動部
3700  リスト初期化部
3720  エントリ作成部
3800  リスト更新部
3900  gather部
3910、3920  scatter部
4000  エントロピー符号化部
4100  拡張リスト作成部
4300  中間データ更新部
4401〜440N  データ圧縮部
5000  減算器
6000  加算器
7000、8000  マルチプレクサ
【図１】
2017073034.tif 000003
【図２】
2017073034.tif 000004
【図３】
2017073034.tif 000005
【図４】
2017073034.tif 000006
【図５】
2017073034.tif 000007
【図６】
2017073034.tif 000008
【図７】
2017073034.tif 000009
【図８】
2017073034.tif 000010
【図９】
2017073034.tif 000011
【図１０】
2017073034.tif 000012
【図１１】
2017073034.tif 000013
【図１２】
2017073034.tif 000014
【図１３】
2017073034.tif 000015
【図１４】
2017073034.tif 000016
【図１５】
2017073034.tif 000017
【図１６】
2017073034.tif 000018
【図１７】
2017073034.tif 000019
【図１８】
2017073034.tif 000020
【図１９】
2017073034.tif 000021
【図２０】
2017073034.tif 000022
【図２１】
2017073034.tif 000023
【図２２】
2017073034.tif 000024
【図２３】
2017073034.tif 000025
【図２４】
2017073034.tif 000026
【図２５】
2017073034.tif 000027
【図２６】
2017073034.tif 000028
【図２７】
2017073034.tif 000029
【図２８】
2017073034.tif 000030
【図２９】
2017073034.tif 000031
【図３０】
2017073034.tif 000032
【図３１】
2017073034.tif 000033
【図３２】
2017073034.tif 000034
【図３３】
2017073034.tif 000035
【図３４】
2017073034.tif 000036
【図３５】
2017073034.tif 000037
【図３６】
2017073034.tif 000038
【図３７】
2017073034.tif 000039
【手続補正書】
【提出日】平成30年4月9日(2018.4.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成手段と、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理手段とを備える
ことを特徴とする動画像符号化装置。
【請求項２】
前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、
前記画像処理手段は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含む
請求項１記載の動画像符号化装置。
【請求項３】
前記逆変換逆量子化手段は、０以外の処理結果に対して逆量子化処理および逆変換処理を行う
請求項２記載の動画像符号化装置。
【請求項４】
前記画像処理手段は、前記変換量子化手段の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第２位置情報を作成する第２作成手段を含み、
前記逆変換逆量子化手段は、前記第２位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う
請求項２または請求項３記載の動画像符号化装置。
【請求項５】
前記画像処理手段は、前記変換量子化手段の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第３位置情報を、前記作成手段が作成した位置情報を更新することによって作成する第３作成手段を含み、
前記逆変換逆量子化手段は、前記第３位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化手段の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行う
請求項２または請求項３記載の動画像符号化装置。
【請求項６】
前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、
前記画像処理手段は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含む
請求項１記載の動画像符号化装置。
【請求項７】
前記作成手段は、前記位置情報と、前記位置情報と前記画像ブロックの圧縮順が格納されるデータとの対応関係を示す対応情報とを作成し、
前記変換処理の結果に基づいて前記データを一括して更新する更新手段と、
更新された前記データを用いて、前記画像ブロックを前記画像ブロックのサイズごとに圧縮するデータ圧縮手段とを更に備える
請求項１〜６のいずれか１項記載の動画像符号化装置。
【請求項８】
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う
ことを特徴とする動画像符号化方法。
【請求項９】
変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、
前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
前記変換処理および量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う
請求項８記載の動画像符号化方法。
【請求項１０】
コンピュータに、
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および
前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理
を実行させるためのプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
そこで、本発明は、上述したような問題を解決する、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる動画像符号化装置、動画像符号化方法およびプログラムを提供することを目的とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
本発明に係るプログラムは、コンピュータに、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を実行させることを特徴とする。
【国際調査報告】
2017073034.tif 000040
2017073034.tif 000041
2017073034.tif 000042
2017073034.tif 000043