JP6791158B2 - 動画像符号化装置、動画像符号化方法、およびプログラム - Google Patents

動画像符号化装置、動画像符号化方法、およびプログラム Download PDF

Info

Publication number
JP6791158B2
JP6791158B2 JP2017547609A JP2017547609A JP6791158B2 JP 6791158 B2 JP6791158 B2 JP 6791158B2 JP 2017547609 A JP2017547609 A JP 2017547609A JP 2017547609 A JP2017547609 A JP 2017547609A JP 6791158 B2 JP6791158 B2 JP 6791158B2
Authority
JP
Japan
Prior art keywords
conversion
processing
quantization
inverse
image
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.)
Active
Application number
JP2017547609A
Other languages
English (en)
Other versions
JPWO2017073034A1 (ja
Inventor
博昭 五十嵐
博昭 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2017073034A1 publication Critical patent/JPWO2017073034A1/ja
Application granted granted Critical
Publication of JP6791158B2 publication Critical patent/JP6791158B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、動画像符号化装置、動画像符号化方法およびプログラム記録媒体に関する。本発明は、特に、並列処理の効率を低下させずにデータに依存する処理を並列に実行できる動画像符号化装置、動画像符号化方法およびプログラム記録媒体に関する。
いわゆる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の符号化効率の2倍である。符号化効率が高いため、H.265では符号化に係る演算量も大きく増加している。
H.265では、符号ブロック(CU: Coding Unit)単位で符号化が行われる。また、予測は予測ブロック(PU: Prediction Unit)単位で行われ、変換は変換ブロック(TU: Transform Unit)単位で行われる。H.264に比べてH.265では処理可能な各ブロックのパターンが増えており、より適切に符号化が実行される。
例えばH.264におけるTUのパターンは、4x4と8x8の2パターンである。H.265におけるTUのパターンは、4x4、8x8、16x16、および32x32の4パターンであり、H.264に比べて2パターン追加されている。なお、4x4等は、TUのサイズを表す。例えば、4x4は、縦方向に4画素、横方向に4画素を有するTUを意味する。処理可能なTUのパターンが増えたことによって、H.265の規格に基づいて行われる符号化では、処理対象の画面上に様々なTUが混在する。
動画像符号化装置の例として、特許文献1には、符号化効率に対して最適なモード、および量子化パラメータを選択する画像符号化装置が記載されている。
また、非特許文献1には、H.265の規格に基づいた処理の内容が記載されている。H.265の規格に基づいた動画像符号化装置(エンコーダ)の構成の一例を図23に示す。図23は、H.265の規格に基づいた動画像符号化装置の構成例を示すブロック図である。
図23に示す動画像符号化装置100は、イントラ予測部1000と、インター予測部2000と、変換処理部3000と、エントロピー符号化部4000と、減算器5000と、加算器6000と、マルチプレクサ7000と、マルチプレクサ8000とを備える。
イントラ予測部1000は、入力画像の空間成分に関してフレーム内の冗長度を下げる予測処理を行う機能を有する予測処理部である。インター予測部2000は、入力画像の空間成分に関してフレーム間の冗長度を下げる予測処理を行う機能を有する予測処理部である。イントラ予測部1000およびインター予測部2000は、予測処理により生成された予測画像を出力する。
変換処理部3000は、入力画像と予測画像との差分である残差画像の空間成分を周波数成分に変換する変換処理を行う。変換処理部3000は、変換処理により生成された変換係数を出力する。
また、変換処理部3000は、前のフレームの画像を利用するインター予測部2000用に、変換係数を画素情報に逆変換する。加算器6000が、逆変換された画素情報と予測画像とを足し合わせることによって、再構築画像を求める。求められた再構築画像は、図23に示すようにインター予測部2000に入力される。
エントロピー符号化部4000は、変換係数をスキャンし、データの出現確率に基づいて変換係数を可変長符号化し、ビットストリームを出力する機能を有する符号化処理部である。エントロピー符号化部4000には、変換処理部3000において符号化されやすい形式に変換された周波数成分情報がビットストリームとして入力される。エントロピー符号化部4000は、例えば入力されたビットストリームを、“0”または“1”の出現確率に基づいて符号化する。
さらに、図23に示す動画像符号化装置100では、TU単位でCBF(Coded Block Flag)が設定される。CBF=0に設定されているTUに対して、変換処理、量子化処理、逆変換処理、逆量子化処理の一連の処理は実行されなくてもよい。CBFは、例えば非特許文献2に記載されているH.265の規格に基づいたリファレンスソフトウェアHM(HEVC Test Model)では、インター予測処理で残差画像を要しないと判断されたTUに対して0に設定される。
図24は、図23に示す変換処理部3000の構成例を示すブロック図である。図24に示す変換処理部3000は、変換・量子化部3100と、逆変換・逆量子化部3200とを含む。
変換・量子化部3100は、上述したように、入力された残差画像の空間成分を周波数成分に変換し、変換結果に対応する変換係数を生成する。次いで、変換・量子化部3100は、変換係数を量子化し、量子化された変換係数を逆変換・逆量子化部3200に入力する。
逆変換・逆量子化部3200は、一度符号化された画像が次のフレームに対するインター予測処理で使用されるように、入力された変換係数を基に画像を再構築する。逆変換・逆量子化部3200は、変換・量子化部3100から入力された、周波数成分である量子化された変換係数を逆量子化する。次いで、逆変換・逆量子化部3200は、逆量子化された変換係数を空間成分に逆変換する。
以下、図24に示す変換処理部3000により実行される変換・量子化を説明する。H.265の規格では、変換方式として整数DCT(Discrete Cosine Transform:離散コサイン変換)と整数DST(Discrete Sine Transform:離散サイン変換)が採用されている。
変換処理は、TUごとに実行される。H.265の規格では、DCTとDSTのいずれにおいても整数精度の直交変換が定義されている。すなわち、変換処理の処理結果は、TUに含まれる画素値とTUのサイズ(以下「TUサイズ」ともいう。)ごとに定義された変換行列との行列積になる。処理結果がTU単位の行列積になるため、変換処理は、行単位または列単位の画素間の関係に依存する処理になる。なお、変換式の具体的な内容は、非特許文献1に記載されている。
量子化処理は、入力された量子化パラメータに基づいて実行される。量子化処理は、画素間の関係に依存しない。逆変換処理は変換処理の逆処理であり、逆量子化処理は量子化処理の逆処理である。
動画像符号化のような信号処理は、処理量が多い。また、動画像符号化は、高い並列度で実行される処理である。よって、動画像符号化は、並列処理で高速に実行されることが求められている。
並列処理の例に、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アーキテクチャでは、32スレッドの1まとまりがワープと呼ばれる。Keplerアーキテクチャでは、命令はワープ単位で実行される。すなわち、32スレッドのうち1スレッドでも異なる処理をする場合、同じワープの他のスレッドがストールする。なお、ストールは、動作が停止して操作を受け付けなくなる状態である。従って、SIMTアーキテクチャは、大量のデータに対して同じ処理を実行するアプリケーションの実現に適している技術である。
H.264の規格およびH.265の規格に基づくような動画像符号化がGPUのようなメニーコアアーキテクチャで実現される場合、予測処理で用いられるブロックマッチング等は、画素単位で並列に実行可能であるため高い並列度で効率よく処理される。
しかし、動画像符号化における変換処理は、TUの行間の画素の関係または列間の画素の関係に依存する処理であるため、高い並列度での実行が困難であり、処理効率が低下する。さらに、変換処理は、TUのサイズに依存する処理であるため、各スレッドへの各TUの変換処理の割り振りが複雑になる。
特許文献2には、処理の対象になる符号化された画像データに対して複数の処理部でマクロブロック単位の処理を行う復号化方法が記載されている。特許文献2に記載されている復号化方法は、プロセッサ間の通信を削減するために依存関係にあるブロックをまとめて実行することを特徴としている。しかし、特許文献2に記載されている復号化方法では、プロセッサが担当する処理が均一になるように処理を割り振ることは想定されていない。
H.264の規格に基づく変換ブロックの配置例を図25に示す。図25は、H.264の規格に基づく変換ブロックの配置例を示す説明図である。図25に示すように、処理対象の画像は、4x4、または8x8で構成される。
図25に示すように、H.264には、マクロブロックに対するTUの配置パターンが、16個の4x4が配置されるパターンと4個の8x8が配置されるパターンの2種類しかない。1列または1行に1スレッドが割り当てられる場合、4x4が配置されるパターンの並列度は64になる。また、8x8が配置されるパターンの並列度は32になる。
すなわち、マクロブロックあたりの並列度は、いずれの配置パターンであっても32以上になる。そのため、1マクロブロックに関する処理が1ワープに割り当てられる。よって、ワープが用いられた場合のH.264の規格に基づく変換・量子化処理において、オーバヘッドは生じない。
H.265では、TUのパターンが増えたため、オーバヘッドが発生しないようにスレッドに変換処理を割り振ることは困難である。H.265の規格に基づく変換ブロックの配置例を図26に示す。図26は、H.265の規格に基づく変換ブロックの配置例を示す説明図である。
図26に示すように、処理対象の画像は、4x4、8x8、16x16、および32x32の、全パターンのTUで構成される場合がある。また、8x8のTUには、CBF=0に設定されており、変換処理、量子化処理、逆変換処理、および逆量子化処理が実行されなくてもよいTUが存在する。
本例では、どのパターンのTUにも、変換処理等が実行されなくてもよいTUが存在する可能性がある。
図26に示す各TU内の矢印は、それぞれのTUを変換するスレッドを表す。一つのTUに対して、一つのスレッドが割り当てられている。なお、CBF=0に設定されているTUにはスレッドが割り当てられていないため、矢印が示されていない。
図27は、H.265の規格に基づく変換処理の処理タイミングの例を示すタイムチャートである。図27は、スレッドが図26に示すように割り当てられて変換処理が実行される場合のタイムチャートである。図27に示す矢印は、スレッドによるTUの変換処理を表す。また、図27に示す空白は、スレッドがストールしている期間を表す。
上述したように、ワープ単位で命令が実行される場合、32スレッド内の処理実行スレッド全てに同じ処理を割り振ることが求められる。変換処理はTUのサイズに依存する処理であるため、ワープが一度に変換できる各TUのサイズは、必然的に全て同じになる。
具体的には、図27に示すように、t=0では1個の32x32のTUが変換される。また、t=1では1個の16x16のTUが変換される。t=2では6個の8x8のTUが変換される。サイズが同じであれば処理が同じになるため、CBF=0のTUに対する処理も実行対象のTUに対する変換処理と共に割り当てられる。t=3では24個の4x4のTUが変換される。なお、各TUを変換するスレッドは異なる。
図27に示すように、SIMTのようなアーキテクチャは異なるサイズのTUを同時に変換できない。すなわち、変換処理において大きなオーバヘッドが発生する。その理由は、以下の通りである。
図27に示すスレッドの粒度は大きいが、スレッドの粒度を小さくした場合であっても、1列または1行に1スレッドを割り当てることが求められる。1列または1行に1スレッドが割り当てられる場合、サイズが最小の4x4のTUの変換処理の並列度は4である。すなわち、H.265の規格に基づく変換処理ではブロックあたりの並列度が小さくなる可能性があり、32スレッドに同じ処理を割り振ることが困難な場合が多いと考えられる。
また、H.265の規格に基づく動画像符号化では、変換ブロックが適応的に配置されるため、変換処理が32個以上生じないパターンが発生する可能性が高い。変換処理が32個以上生じないパターンが発生した場合、GPUは、符号化対象の画像を効率的に処理できない。
上記の問題を解決し、変換処理部に適用可能な技術の一例が、非特許文献3に記載されている。図28は、非特許文献3に記載されている技術が適用された変換処理部3000の構成例を示すブロック図である。
非特許文献3には、H.264の規格に基づくデコーダ(復号器)を対象とした技術が記載されている。非特許文献3には、各スレッドに同じ処理を割り振るために同じTUサイズのデータを一時領域に集め、データをまとめて処理することによって全スレッドに同じ処理を割り当てる技術が記載されている。図28には、非特許文献3に記載されている変換処理部を変換・量子化処理を行うエンコーダ(符号化器)用に拡張した変換処理部が記載されている。
図28に示す変換処理部3000は、変換・量子化部3101〜変換・量子化部310Nと、逆変換・逆量子化部3201〜320Nと、gather部3900と、scatter部3910〜3920とを含む。
なお、変換・量子化部3101〜310N、および逆変換・逆量子化部3201〜320Nは、それぞれTUのパターンの数だけ含まれる。すなわち、NがTUのパターンの数に相当する。各々が、対応するサイズのTUを処理する。
図28に示す変換処理部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で主に実現される。
上記のように、図28に示す各変換・量子化部および各逆変換・逆量子化部は、それぞれ同じサイズのTUに関するデータのみをまとめて処理する。すなわち、図28に示す変換処理部3000がGPUで実現される場合、変換・量子化処理や逆変換・逆量子化処理を行うワープに対して、複数の同じ処理が割り振られる。
図29は、H.265の規格に基づく変換処理の処理タイミングの他の例を示すタイムチャートである。図29は、図26に示す配置例のTUに対して、図28に示す変換処理部3000が変換処理を実行する場合のタイムチャートである。
図29に示すように変換処理部3000が変換処理を実行する場合、TUサイズごとにワープが分割され、使用されるスレッドが詰められる。よって、ストールするスレッドが減少し、より効率よく変換処理が実行される。なお、処理されるTUの数が1ワープあたりのスレッド数の倍数でない場合、ストールするスレッドが発生する。
上述したように非特許文献2で対象にされているH.264では、マクロブロックに対して変換・量子化処理を行うワープが割り当てられてもオーバヘッドが発生しない。非特許文献2には、図27に示すように2種類のTUを順次的に処理する構成の性能と、図29に示すように2種類のTUを並列に処理する構成の性能のそれぞれの評価が記載されている。非特許文献2には、並列に処理する構成の性能の方がより優れていることが記載されている。
その理由は、上記のようにH.264ではマクロブロックに対してワープが割り当てられた場合、ワープ内の全スレッドが同じ処理を実行することにより、オーバヘッドなしで変換処理が実行されるためである。
H.265では並列度の異なるTUが適応的に配置されるため、ワープ内の全スレッドが同じ処理を実行するようにスレッドに処理を割り振ることは困難であり、効率的な変換処理の実行は難しい。よって、H.265のようにTUが適応的に配置される符号化方式では、図28に示す非特許文献3に記載されている技術が特に有効であると考えられる。
なお、特許文献4には、イメージを分析する方法において、イメージブロックの座標を記録するステップを含むことが記載されている。
特開2006−121538号公報 国際公開第2008/020470号 国際公開第2014/167609号 特開2012−074078号公報
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.
非特許文献3に記載されている変換処理部の第1の問題点は、gather部が一時領域を有することが求められる点である。例えば、図28に示すgather部3900は、TUサイズごとにデータをまとめることが求められる。gather部3900は、TUサイズごとにデータを一時領域に格納するため、最大で原画像のサイズ分の一時領域を有することが求められる。
すなわち、入力された残差画像自体が格納される領域も含めると、図28に示す変換処理部3000は、少なくとも残差画像の2倍の領域を有することが求められる場合がある。処理対象の画像のサイズが大きくなるほど大きな領域を有する変換処理部が求められ、余分なコストがかかる。
非特許文献3に記載されている変換処理部の第2の問題点は、CPU-GPU間に発生する通信が大きなボトルネックになる点である。4Kまたは8Kのような解像度が大きい画像の処理では、特に大きなボトルネックになる。
gather部3900、scatter部3910、およびscatter部3920がそれぞれ実行する処理は、逐次的な処理である。よって、scatter部およびgather部がSIMTアーキテクチャのような超並列アーキテクチャで実現された場合、SIMTアーキテクチャは効率的に処理を実行できない。その理由は、超並列アーキテクチャは、逐次的な処理を効率的に実行できないためである。非特許文献3に記載されている例では、gather部3900、scatter部3910、およびscatter部3920は、それぞれCPUで実現されている。
上記の場合、各変換・量子化部および各逆変換・逆量子化部はGPUで実現されているため、CPU-GPU間に通信が大量に発生する。発生する通信量はボトルネックになるほど多いため、全ての構成要素がGPUで実現され、本来の動画像符号化処理の実行に無関係な通信の発生が抑えられるような変換処理部が求められている。
そこで、本発明は、上述したような問題を解決する、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる動画像符号化装置、動画像符号化方法およびプログラムを提供することを目的とする。
本発明に係る動画像符号化装置は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部と、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部とを備えることを特徴とする。
本発明に係る動画像符号化方法は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行うことを特徴とする。
本発明に係るプログラムは、コンピュータに、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を実行させることを特徴とする。

本発明によれば、並列処理効率を低下させずに動画像符号化処理を並列に実行できる。
本発明に係る変換処理部の第1の実施形態の構成例を示すブロック図である。 リスト作成部3300の構成例を示すブロック図である。 リスト作成部3300が作成する実行TUリストの例を示す説明図である。 第1の実施形態の変換処理部3000に係る変換量子化処理を示すフローチャートである。 リスト作成部3300により実行されるリスト作成処理を示すフローチャートである。 本発明による変換処理部の第2の実施形態の構成例を示すブロック図である。 第2の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。 本発明による変換処理部の第3の実施形態の構成例を示すブロック図である。 第3の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。 本発明による変換処理部の第4の実施形態の構成例を示すブロック図である。 リスト更新部3600の構成例を示すブロック図である。 リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の例を示す説明図である。 リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の別の例を示す説明図である。 リスト移動部3620により実行されるリスト内の実行TU情報の移動処理のさらに別の例を示す説明図である。 第4の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。 リスト更新部3600により実行されるリスト更新処理を示すフローチャートである。 本発明による変換処理部の第5の実施形態の構成例を示すブロック図である。 リスト初期化部3700の構成例を示すブロック図である。 第5の実施形態の変換処理部3000により実行される変換量子化処理を示すフローチャートである。 リスト初期化部3700により実行されるリスト初期化処理を示すフローチャートである。 本発明による動画像符号化装置の機能を実現可能な情報処理装置の構成例を示すブロック図である。 本発明による動画像符号化装置の概要を示すブロック図である。 H.265の規格に基づいた動画像符号化装置の構成例を示すブロック図である。 図23に示す変換処理部3000の構成例を示すブロック図である。 H.264の規格に基づく変換ブロックの配置例を示す説明図である。 H.265の規格に基づく変換ブロックの配置例を示す説明図である。 H.265の規格に基づく変換処理の処理タイミングの例を示すタイムチャートである。 非特許文献3に記載されている技術が適用された変換処理部3000の構成例を示すブロック図である。 H.265の規格に基づく変換処理の処理タイミングの他の例を示すタイムチャートである。 本発明による変換処理部の第6の実施形態の構成例を示すブロック図である。 拡張リスト作成部4100の構成例を示すブロック図である。 第6の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。 拡張リスト作成部4100により実行される拡張リスト作成処理を示すフローチャートである。 拡張リストと中間データの関係を示す説明図である。 変換係数の圧縮順を示す説明図である。 本発明による動画像符号化装置の概要を示すブロック図である。 インデックスの算出方法の一例を示す図である。
実施形態1.
[構成]
以下、本発明の実施形態を、図面を参照して説明する。図1は、本発明の第1の実施形態に係る変換処理部の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の4種類であるが、本実施形態のTUサイズパターンはN種類であるとする。また、図1以降のブロック図に示される矢印は、情報の流れの一例を示し、情報の流れを限定することを意図しない。
図1に示すように、本実施形態の動画像符号化装置の変換処理部3000は、図28に示す変換処理部3000と異なり、gather部3900とscatter部3910〜3920を含んでいない。本実施形態では、一時領域が使用されないため、一時領域に保存されている画像データを元の領域に書き戻すscatter部は含まれていない。
また、図1に示す変換処理部3000は、図28に示す変換処理部3000と異なり、リスト作成部3300を含む。図1に示す変換処理部3000の構成は、リスト作成部3300を除き、図28に示す変換処理部3000の構成と同様である。gather部3900には、TUサイズ情報と残差画像が入力される。これに対し、リスト作成部3300には、TUサイズ情報とCBFが入力される。
また、図28に示す変換・量子化部3101〜310Nのそれぞれには、それぞれが対応するTUサイズの残差画像が集められた一時領域のアドレスと実行TUサイズ数が入力される。これに対し、図1に示す変換・量子化部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アーキテクチャでは、処理されるデータがメモリ上に連続に存在しているか否かに関わらず、効率的に並列処理が実行される。
図2は、リスト作成部3300の構成例を示すブロック図である。図2に示すように、リスト作成部3300は、カウント部3310と、アドレス計算部3320と、リスト格納部3330とを含む。
カウント部3310は、入力されたTUサイズ情報とCBFを用いて、割り当てられた領域内の実行対象のTU(すなわち、CBF≠0)をTUサイズごとに計数する機能を有する。なお、領域は、並列にリスト作成処理が実行されるように割り当てられた、分割された残差画像の領域である。
アドレス計算部3320は、割り当てられた領域内の、各実行TU情報が格納されるリストの各アドレスを計算する機能を有する。
リスト格納部3330は、アドレス計算部3320が求めたリストの各アドレスに対して、各実行TU情報を書き込む機能を有する。実行TU情報は、リスト格納部3330により作成される。
リスト格納部3330は、全ての実行TU情報が書き込まれたリストを、実行TUリストとして出力する。実行TUリストは、変換量子化部3101〜310Nに入力される。
図3は、リスト作成部3300が作成する実行TUリストの例を示す説明図である。図3に示すTUサイズごとの実行TUリストは、図26に示すTUの配置例に基づいて作成されたリストである。
図3に示すように、実行TU情報には、例えば実行対象TUのx座標とy座標が含まれる。実行TUリストには、画像データ内の実行対象TUのx座標とy座標が列挙される。また、リスト作成部3300は、CBF=0に設定されているTUに関して実行TU情報を作成しないため、変換・量子化処理(変換処理および量子化処理)の実行に要するスレッドを削減できる。
[動作]
以下、本実施形態の変換処理部3000の動作を図4を参照して説明する。図4は、第1の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
変換処理部3000は、残差画像とTUサイズ情報との入力を受け付ける。リスト作成部3300は、入力されたCBFとTUサイズ情報とに基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する(ステップS101)。
次いで、変換・量子化部3101は、リスト作成部3300で作成された実行TUリスト内の、TUサイズパターン1に関するリスト1と残差画像とを入力として、TUサイズパターン1に関するTUのみに対して変換・量子化処理をまとめて実行する(ステップS102)。
次いで、逆変換・逆量子化部3201は、変換・量子化部3101が出力した変換係数を入力として、TUサイズパターン1に関する変換係数のみに対して逆変換・逆量子化処理(逆変換処理および逆量子化処理)をまとめて実行する(ステップS103)。
次いで、変換・量子化部3102は、リスト作成部3300で作成された実行TUリスト内の、TUサイズパターン2に関するリスト2と残差画像とを入力として、TUサイズパターン2に関するTUのみに対して変換・量子化処理をまとめて実行する(ステップS104)。
次いで、逆変換・逆量子化部3202は、変換・量子化部3102が出力した変換係数の入力を受け付け、TUサイズパターン2に関する変換係数のみに対して逆変換逆量子化処理をまとめて実行する(ステップS105)。
変換・量子化処理および逆変換逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される(ステップS102〜S107)。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理および逆変換・逆量子化処理は、図4に示すように順次的に実行されてもよいが、並列に実行されてもよい。
以下、本実施形態のリスト作成部3300の動作を図5を参照して説明する。図5は、リスト作成部3300により実行されるリスト作成処理を示すフローチャートである。すなわち、図5に示すステップS111〜S113の処理は、図4に示すステップS101の処理に相当する。リスト作成部3300は、TUサイズ情報とCBFとの入力を受け付け、リスト作成処理を実行した後、上記のTUサイズごとのリストを出力する。
カウント部3310は、入力されたTUサイズ情報とCBFを用いて、割り当てられた領域内に存在する変換・量子化処理の実行対象のTUをTUサイズごとに計数する(ステップS111)。
なお、上記の通り、領域は、並列にリスト作成処理が実行されるように割り当てられた、分割された残差画像の領域である。ステップS111の処理が領域ごとに独立した処理であるため、カウント部3310は、並列処理を効率的に実行できる。
次いで、アドレス計算部3320は、カウント部3310で生成されたTU数情報の入力を受け付け、変換・量子化処理の実行対象のTUの実行TU情報が書き込まれるリストのアドレスを計算する(ステップS112)。アドレス計算部3320は、TUサイズごとにアドレスを計算する。
アドレスの計算方法には、例えば非特許文献4に記載されているParallel Scanがある。Parallel Scanは、並列処理で部分和を効率的に求める方法であり、Stream Compactionで利用される方法である。
Stream Compactionは、有意なデータが不連続に存在している入力データに対して、有意なデータのみを詰めて出力する処理である。すなわち、Stream Compactionは、実行対象のTUに関する座標データを詰めて出力するリスト作成部3300の処理に類似している。なお、Parallel ScanおよびStream Compactionの具体的な内容は、非特許文献4に記載されている。
本例では、アドレス計算部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の位置情報のみが列挙されている。
そのため、リストの作成に要する一時領域は、図28に示すgather部3900が要する少なくとも画像全体を記憶可能な一時領域よりも小さい。
さらに、本実施形態のリスト作成部3300は、分割された画像の各領域に対して効率よく並列にリスト作成処理を実行できるので、GPUのようなメニーコアアーキテクチャで実現される。リスト作成部3300が実現された場合、GPUは、リスト作成処理を効率よく並列に実行できる。すなわち、リスト作成部3300を含め、変換処理部3000の全体がGPUのようなメニーコアアーキテクチャで実現可能であるため、符号化処理が効率的に実行される。
すなわち、CPU-GPU間に通信が大量に発生するという上記の第2の問題点は解消される。本実施形態の動画像符号化装置は、並列処理効率を低下させずに動画像符号化を実行できるため、高速な動画像符号化処理を実現できる。
実施形態2.
[構成]
次に、本発明の第2の実施形態を、図面を参照して説明する。図6は、本発明の第2の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の4種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
図6に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図1に示す変換処理部3000と異なり、実行チェック部3401〜340Nが含まれている。図6に示す変換処理部3000の構成は、実行チェック部3401〜340Nを除き、図1に示す変換処理部3000の構成と同様である。
本実施形態の変換処理部3000は、変換・量子化部3101〜310Nから出力される変換係数が全て“0”である場合、変換係数に対して逆変換・逆量子化処理を行わないことを特徴とする。変換処理部3000が逆変換・逆量子化処理を行わない理由は、全て“0”の変換係数に逆変換・逆量子化を実行しても全て“0” の結果しか得られず、逆変換・逆量子化処理に要したコストが無駄になるからである。
本実施形態の実行チェック部3401は、対応するTUサイズのTUに関する変換係数内に非零係数が含まれるか否かを確認する機能を有する。実行チェック部3401は、変換量子化部3101により出力された変換係数と、リスト作成部3300により出力された実行TUリストとの入力を受け付け、入力された変換係数を走査する。
走査の結果、変換係数が全て“0”である場合、実行チェック部3401は、走査した変換係数に対応するTUの実行TUリスト内のデータ(例えば、リスト1やリスト2)に対して、逆変換・逆量子化処理の対象外のTUであることを示すフラグ情報を付与する。実行チェック部3402〜340Nが有する各機能は、実行チェック部3401が有する機能と同様である。
[動作]
以下、本実施形態の変換処理部3000の動作を図7を参照して説明する。図7は、第2の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
ステップS201の処理は、図4に示すステップS101の処理と同様である。すなわち、リスト作成部3300は、入力されたCBFとTUサイズ情報とに基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する。
変換・量子化部3101は、リスト作成部3300により作成された実行TUリスト内の、TUサイズパターン1に関するリスト1と残差画像との入力を受け付け、TUサイズパターン1に関するTUのみに対して変換・量子化処理をまとめて実行する。次いで、変換・量子化部3101は、実行結果である変換係数を実行チェック部3401に入力する(ステップS202)。
次いで、実行チェック部3401は、入力された実行TUリストと変換係数とに基づいて、リスト1に記載されている実行TU情報に対応するTUの変換係数に非零係数が含まれるか否かを確認するために、変換係数を走査する。
変換係数に非零係数が含まれておらず全て“0”である場合、実行チェック部3401は、走査した変換係数に対応するTUのリスト内のデータ(すなわち、リスト1)に対して、逆変換・逆量子化の対象外のTUであることを示すフラグ情報を付与する。変換係数に非零係数が少なくとも1つ含まれている場合、実行チェック部3401は、リスト1に対して処理を行わない。
次いで、実行チェック部3401は、変換係数と実行TUリストとを逆変換・逆量子化部3201に入力する(ステップS203)。
次いで、逆変換・逆量子化部3201は、実行チェック部3401から入力された実行TUリストのリスト1を参照する。参照したリスト1にフラグ情報が付与されていれば、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行しない。
参照したリスト1にフラグ情報が付与されていなければ、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行する。逆変換・逆量子化部3201は、TUサイズパターン1に関する変換係数のみに対して逆変換・逆量子化処理をまとめて実行する(ステップS204)。
変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される(ステップS202〜S210)。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図7に示すように順次的に実行されてもよいが、並列に実行されてもよい。
[効果]
次に、本実施形態による効果を説明する。本実施形態の実行チェック部3401〜340Nは、入力された変換係数に対して、逆変換・逆量子化処理の実行対象であるか否かを判定する。実行チェック部3401〜340Nが追加されることによって、逆変換逆量子化処理の実行が不要な変換係数がある場合、逆変換・逆量子化処理に係る演算量が削減される。
実施形態3.
[構成]
次に、本発明の第3の実施形態を、図面を参照して説明する。図8は、本発明の第3の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の4種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
図8に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図6に示す変換処理部3000と異なり、実行チェック部3401〜340Nの後段にリスト作成部3500が含まれている。図8に示す変換処理部3000の構成は、リスト作成部3500を除き、図6に示す変換処理部3000の構成と同様である。
本実施形態の変換処理部3000は、変換係数が逆変換・逆量子化処理の実行対象であることを示すフラグ情報が含まれた実行TU情報を用いて、逆変換・逆量子化処理が実行される前に再び実行TUリストを作成することを特徴とする。
本実施形態のリスト作成部3500が有する機能は、リスト作成部3300が有する機能と同様である。また、リスト作成部3500の構成は、リスト作成部3300の構成と同様である。
すなわち、リスト作成部3500は、TUサイズ情報を入力とし、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する機能を有する。なお、リスト作成部3500は、各領域に対する作成処理を並列に実行できる。
[動作]
以下、本実施形態の変換処理部3000の動作を図9を参照して説明する。図9は、第3の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
ステップS301〜S302の処理は、図7に示すステップS201〜S202の処理と同様である。すなわち、リスト作成部3300は、入力されたCBFとTUサイズ情報とに基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する。
また、変換・量子化部3101は、リスト作成部3300で作成された実行TUリスト内の、TUサイズパターン1に関するリスト1と残差画像との入力を受け付け、TUサイズパターン1に関するTUのみに対して変換・量子化処理をまとめて実行する。
実行チェック部3401は、入力された実行TUリストと変換係数とに基づいて、リスト1に記載されている実行TU情報に対応するTUの変換係数に非零係数が含まれるか否かを確認するために、変換係数を走査する。走査された変換係数に非零係数が含まれていた場合、実行チェック部3401は、非零係数に対応するTUのリスト1内の実行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サイズパターン1に関するリスト1と、変換・量子化部3101により出力された変換係数との入力を受け付け、TUサイズパターン1に関する変換係数のみに対して逆変換・逆量子化処理をまとめて実行する(ステップS309)。
リスト1には、逆変換・逆量子化処理の実行対象のTUに関する実行TU情報のみが含まれている。よって、逆変換・逆量子化部3201は、リスト1を参照して実行対象のTUに対応する変換係数に対してのみ逆変換・逆量子化処理を実行すればよい。
逆変換・逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される(ステップS309〜S311)。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図9に示すように順次的に実行されてもよいが、並列に実行されてもよい。
[効果]
次に、本実施形態による効果を説明する。本実施形態のリスト作成部3500は、逆変換・逆量子化処理が実行される前に実行TUリストを作成し直す。よって、逆変換・逆量子化部3201〜320Nは、逆変換・逆量子化に要するスレッドを削減できる。その理由は、以下の通りである。
1つのワープには複数のTUの変換係数が割り当てられる。ここにおいて、実行TUリストが作り直されない場合、1つのワープが処理する変換係数に対応するTUに逆変換・逆量子化処理の実行対象のTUと実行対象外のTUとが含まれ、逆変換・逆量子化処理が効率的に実行されない。
一方、実行TUリストが作り直された場合、リスト内に実行対象外のTUに関する実行TU情報が存在しない。よって、逆変換・逆量子化部3201〜320Nは、この場合、実行対象のTUの変換係数に対する逆変換・逆量子化処理を実行するために要するスレッドのみを稼働すればよい。
実施形態4.
[構成]
次に、本発明の第4の実施形態を、図面を参照して説明する。図10は、本発明の第4の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の4種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
図10に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図8に示す変換処理部3000と異なり、リスト作成部3500の代わりにリスト更新部3600が含まれている。図10に示す変換処理部3000の構成は、リスト更新部3600を除き、図8に示す変換処理部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が含まれていると、ワープ内にストールするスレッドが発生する。
図11は、リスト更新部3600の構成例を示すブロック図である。図11に示すように、リスト更新部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により実行される移動処理の例を図12に示す。図12は、リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の例を示す説明図である。図12において、ハッチングされていない矩形は、実行対象のTUの実行TU情報を示す。また、ハッチングされている矩形は、実行対象外のTUの実行TU情報を示す。また、矢印は、ワープを示す。矢印を含む矩形は、矢印が示すワープが処理する実行TU情報を示す。
図12において、リスト12aは、移動前の実行TU情報の例を示す。リスト12aにおいて、実行TU情報は、実行対象のTUの実行TU情報と、実行対象外のTUの実行TU情報を含んでいる。また、リスト12aには、処理対象のブロックに実行対象のTUと実行対象外のTUが混在するために非効率な処理の実行を強いられるワープが、「非効率なワープ」として示されている。
リスト移動部3620は、リスト12aに含まれる実行TU情報に基づいて、例えばリスト内の実行対象のTUの実行TU情報を“1”、実行対象外のTUの実行TU情報を“0”として、任意の領域のリスト内の実行TU情報全体を順次的にソートする。また、リスト移動部3620は、並列ソートアルゴリズムを用いて、リスト内の実行TU情報全体をソートしてもよい。
図12のリスト12bは、移動後の実行TU情報の例を示す。リスト12bにおいて、ソート後の実行TU情報は、実行対象のTUの実行TU情報ごと、および実行対象外のTUの実行TU情報ごとにそれぞれまとめられている。すなわち、リスト移動部3620は、処理対象のブロックに実行対象のTUと実行対象外のTUが混在するために非効率な処理の実行を強いられる「非効率なワープ」を削減できる。
図13は、リスト移動部3620により実行されるリスト内の実行TU情報の移動処理の別の例を示す説明図である。
図13において、リスト13aは、移動前の実行TU情報の別の例を示す。リスト13aは、部分リスト1と部分リスト2に分割されている。部分リスト1および部分リスト2には、処理対象のブロックに実行対象のTUと実行対象外のTUが混在する「非効率なワープ」が複数存在する。
図13のリスト13bは、移動後の実行TU情報の別の例を示す。リスト13bに示す例では、リスト移動部3620は、各部分リストに含まれる実行TU情報を、それぞれ独立にソートする。部分リストごとにソートされることによって、図12に示す例よりも少ない計算量で実行TUリストが簡易的に更新される。
図14は、リスト移動部3620により実行されるリスト内の実行TU情報の移動処理のさらに別の例を示す説明図である。
図14において、リスト14aは、移動前の実行TU情報のさらに別の例を示す。リスト14aは、部分リスト1と部分リスト2に分割されている。部分リスト1および部分リスト2には、処理対象のブロックに実行対象のTUと実行対象外のTUが混在する「非効率なワープ」であるワープA〜Eが存在する。
リスト14aに示す例では、リスト移動部3620は、各ワープが処理するそれぞれのTUの実行TU情報を交換する。ワープ内のスレッドが等しい動作をすれば処理が効率的に実行されることに着目すると、ワープ内のスレッドが処理するブロックが実行対象のTUのみになるように実行TU情報を入れ替えることによって、処理が効率的に実行される。
例えば、リスト移動部3620は、ワープAが処理する実行対象のTUの実行TU情報と、ワープBが処理する実行対象外のTUの実行TU情報を交換する。また、リスト移動部3620は、ワープCが処理する実行対象のTUの実行TU情報と、ワープEが処理する実行対象外のTUの実行TU情報を交換する。
図14のリスト14bは、移動後の実行TU情報のさらに別の例を示す。リスト14bは、実行対象外のTUの実行TU情報がまとめられたため、ワープAとワープCに相当するワープは削除されている。すなわち、実行TU情報が交換されることによって、より少ないワープで逆変換・逆量子化処理が実行される。
[動作]
以下、本実施形態の変換処理部3000の動作を図15を参照して説明する。図15は、第4の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
ステップS401〜S407の処理は、図9に示すステップS301〜S307の処理と同様である。
リスト更新部3600は、入力された逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が付与された実行TU情報に基づいて、TUサイズごとのリストを、実行対象のTUに関する実行TU情報がまとめて配置されるように更新する(ステップS408)。
次いで、逆変換・逆量子化部3201は、リスト更新部3600で更新された実行TUリスト内の、TUサイズパターン1に関するリスト1と、変換・量子化部3101が出力した変換係数との入力を受け付け、TUサイズパターン1に関する変換係数のみに対して逆変換・逆量子化処理をまとめて実行する(ステップS409)。
リスト1には逆変換・逆量子化処理の実行対象であるTUに関する実行TU情報がまとめて配置されている。よって、逆変換・逆量子化部3201は、リスト1を参照して実行対象のTUに対応する変換係数に対してのみ逆変換・逆量子化処理を実行すればよい。
逆変換・逆量子化処理は、N種類のTUサイズパターンそれぞれに対して同様に繰り返し実行される(ステップS409〜S411)。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図15に示すように順次的に実行されてもよいが、並列に実行されてもよい。
以下、本実施形態のリスト更新部3600の動作を図16を参照して説明する。図16は、リスト更新部3600により実行されるリスト更新処理を示すフローチャートである。すなわち、図16に示すステップS421〜S422の処理は、図15に示すステップS408の処理に相当する。
TU実行チェック部3610は、入力された実行TUリストに対して、逆変換・逆量子化処理の実行対象のTUであることを示すフラグ情報が付与されたTUサイズ情報に基づいて、実行対象外のTUに関する実行TU情報を探索する(ステップS421)。
次いで、リスト移動部3620は、TU実行チェック部3610が探索した実行対象外のTUに関するリスト内の実行TU情報がまとまるように、実行TU情報を移動する(ステップS422)。実行TU情報を移動した後、リスト更新部3600は、リスト更新処理を終了する。
[効果]
次に、本実施形態による効果を説明する。本実施形態のリスト更新部3600は、逆変換・逆量子化処理が実行される前に実行TUリストを簡易的に更新する。本実施形態のリスト更新処理に係る演算量は、例えば第3の実施形態のように部分和をとることによって実行TUリストを作成し直す場合の演算量よりも少ない。よって、本実施形態の変換処理部3000は、逆変換・逆量子化処理に要するスレッドをより少ない演算量で削減できる。
実施形態5.
[構成]
次に、本発明の第5の実施形態を、図面を参照して説明する。図17は、本発明の第5の実施形態に係る変換処理部3000の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の4種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
図17に示すように、本実施形態の動画像符号化装置の変換処理部3000には、図10に示す変換処理部3000と異なり、リスト作成部3300の代わりにリスト初期化部3700とリスト更新部3800が含まれている。図17に示す変換処理部3000の構成は、リスト初期化部3700とリスト更新部3800を除き、図10に示す変換処理部3000の構成と同様である。
本実施形態の変換処理部3000は、TUサイズ情報を用いて、簡易的に実行TUリストを作成することを特徴とする。
本実施形態のリスト初期化部3700は、入力されたTUサイズ情報に基づいて、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙されたリストを作成する機能を有する。
第1の実施形態〜第4の実施形態のリスト作成部3300は、変換・量子化処理の実行対象のTUの数だけ実行TU情報を作成する。一方、本実施形態のリスト初期化部3700は、画面内に理論的に存在するTUの数だけ実行TU情報(以下、エントリともいう。)を作成する。
なお、リスト初期化部3700は、各領域に対する初期化処理を並列に実行できる。本実施形態の変換処理部3000は、リスト初期化部3700を分割された領域の数だけ含んでもよい。
リスト更新部3800の構成は、図11に示すリスト更新部3600の構成と同様である。リスト更新部3800は、前段のリスト初期化部3700で作成されたリストの形式を、変換・量子化部3101〜310Nを実現するワープ内のスレッドが変換・量子化処理を並列に実行し易い形式に更新する機能を有する。
なお、リスト更新部3800は、各領域に対する更新処理を並列に実行できる。本実施形態の変換処理部3000は、リスト更新部3800を分割された領域の数だけ含んでもよい。
図18は、リスト初期化部3700の構成例を示すブロック図である。図18に示すように、リスト初期化部3700は、TU実行チェック部3710と、エントリ作成部3720とを含む。
TU実行チェック部3710は、変換・量子化処理の実行対象外のTUを探索する機能を有する。TU実行チェック部3710は、変換・量子化処理の実行対象外のTUを示すCBFとTUサイズ情報を用いて割り当てられた領域内の全TUを走査し、分割された領域の数だけ実行対象外のTUを探索する。
エントリ作成部3720は、割り当てられた領域の実行TUリストのエントリを作成する機能を有する。エントリ作成部3720は、割り当てられた領域内に存在する全TUに対して、実行対象のTUと実行対象外のTUを区別して、それぞれの実行TUリストのエントリを作成する。
エントリ作成部3720は、作成されたエントリを実行TUリストに格納する。
[動作]
以下、本実施形態の変換処理部3000の動作を図19を参照して説明する。図19は、第5の実施形態の変換処理部3000により実行される変換・量子化処理を示すフローチャートである。
リスト初期化部3700は、CBFとTUサイズ情報との入力を受け付け、割り当てられた領域におけるTUの実行TU情報がTUサイズごとに列挙された実行TUリストを作成する(ステップS501)。
次いで、リスト更新部3800は、入力された変換・量子化処理の実行対象外のTUであることを示すフラグ情報が付与され、TUサイズごとに実行TU情報が列挙されたリストを、実行対象のTUに関する実行TU情報がまとめて配置されるように更新する(ステップS502)。
ステップS503〜S512の処理は、図15に示すステップS402〜S411の処理と同様である。
N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換・量子化処理を終了する。
なお、N種類のTUサイズパターンそれぞれに対する変換・量子化処理、実行チェック処理、および逆変換・逆量子化処理は、図19に示すように順次的に実行されてもよいが、並列に実行されてもよい。
以下、本実施形態のリスト初期化部3700の動作を図20を参照して説明する。図20は、リスト初期化部3700により実行されるリスト初期化処理を示すフローチャートである。
すなわち、図20に示すステップS521〜S522の処理は、図19に示すステップ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は、変換・量子化に要するスレッドをより少ない演算量で削減できる。
実施形態6.
[構成]
一般に、GPUのようなCPUに付随したアクセラレータを使用する場合、CPUとGPUの間におけるバスを介したデータ転送が必須となるため、このデータ転送において発生する転送時間が大きなボトルネックとなる傾向がある。例えば、一般的に用いられるバス通信規格であるPCI(Peripheral Component Interconnect) Expressにおけるデータ転送速度は、CPUやGPU内部のメモリへのデータ転送速度に対して1〜2桁低速である。
特許文献3に示す技術は、変換・量子化処理後にブロックに含まれる変換係数を、非零値のみに関して、ブロック内の位置情報と値とに分けて格納する。前述の通り、変換・量子化処理の後には多くの変換係数が“0”となるため、特許文献3に記載の技術は、データの圧縮を実現でき、データ転送速度の改善を期待できる。特許文献3に記載の技術は、並列処理の実行単位である、予め定められた画素数を有するブロックに分割し、各ブロックを並列に処理可能である。特許文献3に記載の技術は、ブロックを圧縮する際にブロック内の変換係数を逐次的にスキャンし、非零係数の数が閾値を越えた場合にはブロック内の変換係数全てを間引くことで変換係数のビット数を削減することによって、変換係数の格納に要するデータサイズを削減する。
本技術をH.265に適用した場合、データを間引いた際の画素への影響を考慮すると、ここでいうブロックはTUとなることが好ましい。そのようにすると、圧縮処理は、TUごとに実行される。加えて、特許文献3では言及されていないが、TUは、図35に示すように、後段の符号化処理で処理される順に圧縮されることが好ましい(いわゆるZスキャン)。
尚、前述の通り、変換量子化後には、非有意なTU、すなわち変換係数が“0”でないTUが多数発生するので、圧縮処理は、有意なTUのみに対して実行されればよい。この場合、符号化部は、符号化の際にはフレーム内のTUサイズ情報とCBFとを用いることで各TUの位置を特定できる。あるいは、より簡単にTUの位置を計算するために、圧縮データに対応するTUの位置情報が付加されても良い。
圧縮処理には、TU内の変換係数をスキャンする処理が含まれる。また、スキャンされるデータの数(およびスキャンに要する時間の長さ)がTUサイズによって異なる。そのため、TUサイズが異なれば、TUに対して実行される処理も異なるので、変換量子化で生じた異なるTUサイズの混在が発生し、結果として並列処理の効率が低下する。したがって、上記圧縮処理においても、上述した第1〜第5の実施形態で説明した変換量子化で使用したリストを用い、TUサイズごとに処理することで、並列処理の効率の向上が期待できる。
一方で、有意なTUの変換係数のみを圧縮する場合、圧縮されたデータは可変長サイズとなる。そうすると、圧縮処理を並列に実行するためには、圧縮データの書き込み先の位置を事前に計算する必要がある。各TUが変換・量子化処理後に非有意なTUになる可能性があるので、変換量子化後に圧縮順を計算する必要がある。しかし、この時の各TUはリストによってTUサイズごとに分類されているので、図35に示すような全てのサイズのTUを考慮した圧縮順の計算は困難である。したがって、圧縮処理のために圧縮順を計算し、圧縮用のリストを再作成する必要があるので、これが大きなボトルネックとなる可能性がある。
以下では本発明の第6の実施形態を、図面を参照して説明する。図30は、本発明の第6の実施形態に係る変換処理部の構成例を示すブロック図である。なお、H.265のTUサイズパターンは4x4、8x8、16x16、および32x32の4種類であるが、本実施形態のTUサイズパターンはN種類であるとする。
図30に示すように、本実施形態の動画像符号化装置の変換処理部3000は、図6に示す変換処理部3000と異なり、リスト作成部3300に代えて拡張リスト作成部4100を含む。また、変換処理部3000は、中間データ更新部4300と、データ圧縮部4401〜440Nとを含む。また、実行チェック部4201〜420Nは、図6に示す変換処理部3000の実行チェック部3401〜340Nとは異なり、中間データが入出力される。図30に示す変換処理部3000の構成は、拡張リスト作成部4100、実行チェック部4201〜420N、中間データ更新部4300およびデータ圧縮部4401〜440Nの構成を除き、図6に示す変換処理部3000の構成と同様である。
本実施形態の変換処理部3000は、実行TUリストおよび中間データを用いることによってCPUに転送する変換係数を圧縮することを一つの特徴とする。
拡張リスト作成部4100は、TUサイズ情報とCBFとの入力を受け付け、拡張リストと中間データとを出力する機能を有する。拡張リストの要素には、前述のTUの位置情報に加え、4x4ブロック単位の中間データに対応する4x4ブロック単位の位置情報が格納される。ここで、4x4ブロック単位の位置情報とは、中間データの位置を識別するための情報であり、例えばインデックスである。
拡張リストと中間データは、図34に例示するように中間データのインデックスによって対応づけられる。換言すれば、中間データのインデックスは、拡張リストから当該インデックスに対応する中間データにアクセスすることを可能にする。例えば、拡張リストにおいて、ブロックの座標(x,y)が(0,0)であるエントリ(要素)は、インデックスが「0」、すなわち中間データにおける先頭(1番目)のエントリに対応する。また、拡張リストにおいて、ブロックの座標(x,y)が(4,0)であるエントリは、インデックスが「1」、すなわち中間データにおける先頭のエントリの次(2番目)のエントリに対応する。このように、中間データのインデックスは、拡張リストと中間データとの対応関係を表している。なお、図34に例示された中間データのインデックスは、後述するオフセットが「0」である場合のインデックスである。
また、中間データは、ここでは4x4単位で生成される例を用いて説明されるが、この限りではない。中間データは、各TUとの対応関係が取れるデータであればよい。「4x4ブロック単位の位置情報」及び「インデックス」は、拡張リストと中間データとの対応関係を示す情報であり、本発明における「対応情報」の一例に相当する。
実行チェック部4201〜420Nは、拡張リスト作成部4100から出力された拡張リストおよび中間データと、変換・量子化部3101〜310Nから出力された変換係数との入力を受け付ける。実行チェック部4201〜420Nは、拡張リストの各エントリが示すTUの変換係数を走査(スキャン)することにより、該TUが非有意かどうかを確認し、エントリ中のインデックスが示す中間データにフラグ情報を書き込む機能を有する。
中間データ更新部4300は、中間データと変換量子化後のCBFとの入力を受け付け、中間データを更新および出力する機能を有する。更新後の中間データには、データ圧縮部4401〜440Nに関連する圧縮順が格納される。拡張リスト作成部4100は、拡張リストをブロックサイズごとの複数のリストに分割する。一方、中間データ更新部4300は、拡張リストに基づかずに、各ブロックの圧縮順が各ブロックに対応する拡張リストのエントリに記述されたリンク先にあるように中間データを更新することで、ブロックサイズごとに分割された拡張リストを用いずに圧縮順の更新が可能となる。
具体的には、中間データ更新部4300は、中間データに含まれる実行フラグに基づいて、各ブロックの圧縮順を、各ブロックの拡張リストのエントリに記述されたインデックスが指し示す中間データに格納する。ここで、上記のような処理は、中間データに含まれる実行フラグのエントリにおいて、実行が「1」、非実行が「0」であるような場合に、中間データに含まれる実行フラグの各エントリの部分和を計算することで実現できる。部分和は、先に述べたように、Parallel Scanを用いることで効率的に並列計算することが可能である。なお、中間データ更新部4300による中間データの更新は、実行フラグを圧縮順に書き換えることであってもよいし、実行フラグに加えて圧縮順を書き込むことであってもよい。
また、中間データ更新部4300は、拡張リスト作成部4100と同様に部分和を計算するので、中間データを並列に更新できる。ここで、中間データ更新部4300は、任意の固定長領域に対して並列に動作する。例えば、画面を32x32ブロックの領域に分割して中間データ更新部4300に与える場合、中間データ更新部4300は、画面内の各32x32ブロックを並列に処理できる。
データ圧縮部4401〜440Nは、拡張リストと中間データとを用いて拡張リストのエントリに対応する中間データを参照することにより、ブロックサイズごとに一括してデータを圧縮し、圧縮されたデータを出力する。よって、データ圧縮部4201〜420Nが変換・量子化部3101〜310Nや逆変換・逆量子化部3201〜320Nと同様にGPUのようなSIMTアーキテクチャによって実現された場合、サイズが同一のブロックがワープに割り当てられ、並列処理が効率的に実行される。
図31は、拡張リスト作成部4100の構成例を示すブロック図である。図31に示すように、拡張リスト作成部4100は、インデックス計算部4130を含む。また、拡張リスト作成部4100は、図2に示すリスト作成部3300と比較して、リスト格納部3330が拡張リスト格納部4140に置き換わっている点と、出力が拡張リストと中間データである点とが異なる。ブロック数カウント部4110と、アドレス計算部4120の構成は、図2に示すリスト作成部3300と同様である。ただし、アドレス計算部4120は、上記リストのアドレスに代えて拡張リストのアドレスを計算する。
インデックス計算部4130は、対象ブロックの4x4ブロック単位の位置情報をインデックスとして算出する機能を有する。インデックス計算部4130は、例えば、あるスレッドが担当する領域(担当領域)における各ブロックの相対位置を示す情報(相対位置情報)を、スレッドIDのような各スレッドを識別する値と当該領域内のブロック数とを乗じた値でオフセットすることで、4x4ブロック単位の位置情報を容易に算出できる。
図37は、オフセットを含むインデックスの算出方法の一例を示す図である。この例において、スレッドID「1」の担当領域における相対位置情報が「16」であるブロックのインデックスは、当該相対位置情報の値(16)にスレッドID(1)とブロック数(64)の積(64)をオフセットとして加算した値、すなわち「80」である。なお、図34に例示されたインデックスは、スレッドIDが「0」であるので、オフセットも「0」である。
拡張リスト格納部4140は、アドレス計算部4120により算出された拡張リストの格納先のアドレスと、インデックス計算部4130により計算されたインデックスとの入力を受け付け、ブロックの位置情報とインデックスとをリストデータとして、拡張リストの格納先のアドレスに格納する機能を有する。
[動作]
以下、本実施形態の変換処理部3000の動作について図32を参照して説明する。図32は、第6の実施形態の変換処理部3000により実行される変換量子化処理とデータ圧縮処理を示すフローチャートである。
変換処理部3000は、残差画像とTUサイズ情報とCBFとの入力を受け付ける。拡張リスト作成部4100は、入力されたTUサイズ情報とCBFとを用いて、実行対象のブロックの位置情報に対応する中間データへの位置情報を含んだリストデータがブロックサイズごとに列挙された拡張リストを作成する(ステップS601)。
ステップS602の処理は、図7に示すステップS202の処理と同様である。すなわち、変換・量子化部3101は、リスト作成部3300により作成された実行TUリスト内の、TUサイズパターン1に関するリスト1と残差画像との入力を受け付け、TUサイズパターン1に関するTUのみに対して変換・量子化処理をまとめて実行する。
次いで、実行チェック部4201は、拡張リスト作成部4100により作成された拡張リスト内のTUサイズパターン1に関するリストに対して、変換・量子化処理によってTUサイズパターン1の各TUが非有意になったか確認し、エントリに記述されたインデックスを用いて、中間データの該TU用の領域に実行フラグを書き込む(ステップS603)。
ステップS604の処理は、図7に示すステップS204の処理と同様である。すなわち、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行する。
ステップS605の処理は、図7に示すステップS205の処理と同様である。すなわち、変換・量子化部3101は、変換・量子化処理を実行する。
次いで、実行チェック部4202は、拡張リスト作成部4100により作成された拡張リスト内のTUサイズパターン2に関するリストに対して、変換・量子化処理によってTUサイズパターン2の各TUが非有意になったか確認し、エントリに記述されたインデックスを用いて、中間データ上の該TU用の領域に実行フラグを書き込む(ステップS606)。
ステップS607の処理は、図7に示すステップS207の処理と同様である。すなわち、逆変換・逆量子化部3201は、入力された変換係数に対して逆変換・逆量子化処理を実行する。
変換処理部3000は、TUサイズパターン3以降に関するリストについても、TUサイズパターン1、2の場合と同様に処理を実行する。変換処理部3000は、TUサイズパターンNに関するリストまで、同様の処理を繰り返す(ステップS608〜S610)。
次いで、中間データ更新部4300は、実行チェック部4201〜420Nにより出力された中間データの入力を受け付け、各TUの圧縮順が対応する拡張リストのエントリに記述されたインデックスにより示される中間データに格納されるように中間データを更新する(ステップS611)。
次いで、データ圧縮部4401は、実行チェック部4201により出力された拡張リストと、変換・量子化部3101により出力された変換係数と、中間データ更新部4300により出力された中間データとを用いて、画面全体の変換係数のうちTUサイズパターン1に関する変換係数を圧縮する(ステップS612)。
次いで、データ圧縮部4401は実行チェック部4201の出力である拡張リストと、変換・量子化部3101の出力である変換係数と、中間データ更新部4300の出力である中間データとを入力として、画面全体の変換係数の内TUサイズパターン2に関する変換係数を圧縮する(ステップS613)。
データ圧縮処理は、N種類のTUサイズパターンに対して同様に繰り返し実行される(ステップS612〜ステップS614)。N種類のTUサイズパターンそれぞれに対して処理が実行された後、変換処理部3000は、変換処理を終了する。
なお、変換処理部3000は、図32に示すようにN種類のTUサイズパターンそれぞれに対する変換処理とデータ圧縮処理を逐次的に実行してもよいが、N種類のTUサイズパターンそれぞれに対する処理を並列に実行してもよい。
以下、本実施形態の拡張リスト作成部4100の動作について図33を参照して説明する。
図33は、拡張リスト作成部4100により実行される拡張リスト作成処理を示すフローチャートである。すなわち、図33に示すステップS621〜S624の処理は、図32に示すステップS601の処理に相当する。
ブロック数カウント部4110は、TUサイズ情報とCBFを用いて、処理対象の領域内における実行対象のブロック数をカウントする(ステップS621)。
次いで、アドレス計算部4120は、ブロック数カウント部4110によりカウントされた担当領域内の実行対象ブロック数を用いて、実行対象である各TUの拡張リストのエントリが格納されるアドレスを計算する(ステップS622)。
次いで、インデックス計算部4130は、TUサイズ情報とCBFを用いて、担当領域内の各実行対象ブロックに対応する4x4ブロック単位の位置情報を計算する(ステップS623)。
次いで、拡張リスト格納部4140は、ステップS622において計算されたアドレスとステップS623において計算されたインデックスを用いて、担当領域内の各実行対象ブロックに関する拡張リストのエントリを作成し、対応するアドレスに格納する(ステップS624)。全ての実行対象ブロックに関する拡張リストのエントリを格納した後、拡張リスト作成部4100は、拡張リスト作成処理を終了する。
[効果]
次に、本実施の形態の効果について説明する。
本実施の拡張リスト作成部4100は、同じブロックサイズのデータが格納されたリストをブロックサイズごとに作成することに加え、中間データへの対応関係を全ブロックサイズについて共通のインデックスとして拡張リストに格納する構成を有する。このような構成を有することで、拡張リスト自体はブロックサイズごとに分離されているものの、中間データを経由することによってブロックサイズ間の依存関係を保持できる。したがって、拡張リスト作成部4100は、変換処理が終了した後に、実行フラグから圧縮順を中間データによって計算できるため、変換・量子化処理とデータ圧縮処理とで同様の拡張リストを使用でき、リストの再作成にかかる計算コストを削減できる。
また、拡張リスト作成部4100は、全てのブロックサイズに関するデータを同じ中間データによって管理することにより、全てのブロックサイズに関する圧縮順の計算を1回で一括して実行可能である。
すなわち、拡張リスト作成部4100は、リスト作成にかかる計算量がボトルネックになる問題点を解消することができる。したがって、本実施形態の動画像処理装置は、リスト作成にかかる計算量が削減された動画像処理を実行できるので、高速な動画像処理を実現できる。
本発明に係る動画像符号化装置の実施形態は、上記の第1の実施形態〜第6の実施形態に限定されない。本発明に係る動画像符号化装置の実施形態は、例えば、同様の処理が実行される他の動画像符号化処理、さらに、変換・量子化処理以外の動き補償予測処理などの他の処理を実行する実施形態でもよい。
なお、上記の各実施形態ではH.264の規格、またはH.265の規格に基づく変換・量子化部等がGPUで実現される例を説明したが、動画像符号化装置は、GPU以外の並列プロセッサ、または並列処理を実行可能なハードウェア等で実現されてもよい。
また、上記の各実施形態は、ハードウェアで構成することも可能であるが、例えば記録媒体に記録されたコンピュータプログラムにより実現することも可能である。
図21に示す情報処理装置は、プロセッサ1001、プログラムメモリ1002、映像データを格納するための記憶媒体(記録媒体)1003、およびビットストリーム等のデータを格納するための記憶媒体1004を備える。記憶媒体1003と記憶媒体1004とは、別個の記憶媒体であってもよいし、同一の記憶媒体からなる記憶領域であってもよい。これらの記憶媒体としては、ハードディスク等の磁気記憶媒体を用いることができる。記憶媒体1003において、少なくともプログラムが記憶される領域は、一時的でない有形な記憶媒体(non-transitory tangible media)である。
図21に示された情報処理装置において、プログラムメモリ1002には、図1、6、8、10、17、30に示された各ブロックの機能を実現するためのプログラムが格納される。そして、プロセッサ1001は、プログラムメモリ1002に格納されているプログラムに従って処理を実行することによって、図1、6、8、10、17、30に示された変換処理部の機能を実現する。
次に、本発明の概要を説明する。図22は、本発明に係る動画像符号化装置の概要の一例を示すブロック図である。本発明に係る動画像符号化装置10は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部11(例えば、リスト作成部3300)と、作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部12(例えば、変換・量子化部3101〜310Nおよび逆変換・逆量子化部3201〜320N)とを備える。
そのような構成により、動画像符号化装置10は、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる。
また、作成部11は、変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、画像処理部12は、位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化部(例えば、変換・量子化部3101〜310N)と、変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部(例えば、逆変換・逆量子化部3201〜320N)とを含んでもよい。
そのような構成により、動画像符号化装置は、変換処理および量子化処理に要するスレッドを削減できる。
また、逆変換逆量子化部は、0以外の処理結果に対して逆量子化処理および逆変換処理を行ってもよい。
そのような構成により、動画像符号化装置は、逆量子化処理および逆変換処理に係る演算量を削減できる。
また、画像処理部12は、変換量子化部の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第2位置情報を作成する第2作成部(例えば、リスト作成部3500)を含み、逆変換逆量子化部は、第2位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行ってもよい。
そのような構成により、動画像符号化装置は、逆量子化処理および逆変換処理に要するスレッドを削減できる。
また、画像処理部12は、変換量子化部の処理結果を用いて、逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第3位置情報を、作成部11が作成した位置情報を更新することによって作成する第3作成部(例えば、リスト更新部3600)を含んでもよい。この場合において、逆変換逆量子化部は、第3位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する変換量子化部の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行ってもよい。
そのような構成により、動画像符号化装置は、逆量子化処理および逆変換処理に要するワープを削減できる。
また、作成部11(例えば、リスト初期化部3700およびリスト更新部3800)は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、画像処理部12は、位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化部と、変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部とを含んでもよい。
そのような構成により、動画像符号化装置は、変換処理および量子化処理に要するワープを削減できる。
また、作成部11は、分割された画像データである画像領域それぞれに基づいた位置情報を並列に作成してもよい。
そのような構成により、動画像符号化装置は、残差画像に対するリスト作成処理を並列に実行できる。
図36は、本発明に係る動画像符号化装置の概要の別の例を示すブロック図である。動画像符号化装置20は、作成部21(例えば、拡張リスト作成部4100)と、画像処理部22(例えば、変換・量子化部3101〜310N)と、更新部23(例えば、中間データ更新部4300)と、データ圧縮部24(例えば、データ圧縮部4401〜440N)とを含む。作成部21は、画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報と、位置情報とデータ圧縮部24による画像ブロックの圧縮順が格納されるデータ(例えば、中間データ)との対応関係を示す対応情報(例えば、インデックス)とを作成する。画像処理部22は、作成部21により作成された位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を実行する。更新部23は、画像処理部22による変換処理の結果に基づいて、作成部21により作成されたデータを一括して更新する。データ圧縮部24は、更新部23により更新されたデータを用いて、画像ブロックをサイズごとに圧縮する。
このような構成により、動画像符号化装置20は、並列処理の効率を低下させずに動画像符号化処理を並列に実行できる。
[付記]
本発明の実施の形態は、上述した実施形態に限定されず、当業者に理解され得る変形を含み得る。例えば、本発明の実施の形態は、上述した各実施形態の一部または全部を適宜に組み合わせた形態であってもよい。また、本発明の実施形態の一部または全部は、以下の付記のように記載され得るが、これらに限定されない。
(付記1)
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成部と、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理部とを備える
ことを特徴とする動画像符号化装置。
(付記2)
前記作成部は、変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、
前記画像処理部は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化部と、前記変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部とを含む
付記1記載の動画像符号化装置。
(付記3)
前記逆変換逆量子化部は、0以外の処理結果に対して逆量子化処理および逆変換処理を行う
付記2記載の動画像符号化装置。
(付記4)
前記画像処理部は、前記変換量子化部の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第2位置情報を作成する第2作成部を含み、
前記逆変換逆量子化部は、前記第2位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う
付記2または付記3記載の動画像符号化装置。
(付記5)
前記画像処理部は、前記変換量子化部の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第3位置情報を、前記作成部が作成した位置情報を更新することによって作成する第3作成部を含み、
前記逆変換逆量子化部は、前記第3位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化部の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行う
付記2または付記3記載の動画像符号化装置。
(付記6)
前記作成部は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、
前記画像処理部は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化部と、前記変換量子化部の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化部とを含む
付記1記載の動画像符号化装置。
(付記7)
前記作成部は、前記位置情報と、前記位置情報と前記画像ブロックの圧縮順が格納されるデータとの対応関係を示す対応情報とを作成し、
前記変換処理の結果に基づいて前記データを一括して更新する更新部と、
更新された前記データを用いて、画像ブロックをサイズごとに圧縮するデータ圧縮部とを更に備える 付記1〜6のいずれかに記載の動画像符号化装置。
(付記8)
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う
ことを特徴とする動画像符号化方法。
(付記9)
変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成し、 前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
前記変換処理および量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う
付記8記載の動画像符号化方法。
(付記10)
コンピュータに、
画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および
前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理
を実行させるための動画像符号化プログラム。
(付記11)
コンピュータに、
前記変換処理および量子化処理の対象である画像ブロックの位置を示す位置情報を作成する作成処理、
前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化処理、および
前記変換量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化処理を実行させる
付記10記載の動画像符号化プログラム。
この出願は、2015年10月28日に出願された日本出願特願2015−211659および2016年8月4日に出願された日本出願特願2016−153570を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、並列処理効率を低下させずに動画像符号化を高速で実行でき、高解像度映像の高速処理を実現できる。そのため、本発明は、高解像度処理が要求される撮像システムやトランスコードシステムなどに好適に適用可能である。
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 マルチプレクサ

Claims (10)

  1. 画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成手段と、
    作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理手段とを備え、
    前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す第1位置情報を作成し、
    前記画像処理手段は、前記第1位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含み、
    前記画像処理手段は、前記変換量子化手段の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第2位置情報を作成する第2作成手段を含み、
    前記逆変換逆量子化手段は、前記第2位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う
    ことを特徴とする動画像符号化装置。
  2. 画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成手段と、
    作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理手段とを備え、
    前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す第1位置情報を作成し、
    前記画像処理手段は、前記第1位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含み、
    前記画像処理手段は、前記変換量子化手段の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第3位置情報を、前記作成手段が作成した第1位置情報を更新することによって作成する第3作成手段を含み、
    前記逆変換逆量子化手段は、前記第3位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換量子化手段の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行う
    ことを特徴とする動画像符号化装置。
  3. 前記逆変換逆量子化手段は、0以外の処理結果に対して逆量子化処理および逆変換処理を行う
    請求項1または2記載の動画像符号化装置。
  4. 前記作成手段は、変換処理および量子化処理の対象である画像ブロックの位置を示す情報が連続して含まれている位置情報を作成し、
    前記画像処理手段は、前記位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を所定の単位ごとに行う変換量子化手段と、前記変換量子化手段の処理結果に対して逆量子化処理および逆変換処理を行う逆変換逆量子化手段とを含む
    請求項1または2記載の動画像符号化装置。
  5. 画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成手段と、
    作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行う画像処理手段とを備え、
    前記作成手段は、前記位置情報と、前記位置情報と前記画像ブロックの圧縮順が格納されるデータとの対応関係を示す対応情報とを作成し、
    前記変換処理の結果に基づいて前記データを一括して更新する更新手段と、
    更新された前記データを用いて、前記画像ブロックを前記画像ブロックのサイズごとに圧縮するデータ圧縮手段とを更に備える
    ことを特徴とする動画像符号化装置。
  6. 画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
    作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行い、
    変換処理および量子化処理の対象である画像ブロックの位置を示す第1位置情報を作成し、
    前記第1位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
    前記変換処理および前記量子化処理の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第2位置情報を作成し、
    前記第2位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換処理および前記量子化処理の処理結果に対して逆量子化処理および逆変換処理を行う
    ことを特徴とする動画像符号化方法。
  7. 画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
    作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行い、
    変換処理および量子化処理の対象である画像ブロックの位置を示す第1位置情報を作成し、
    前記第1位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
    前記変換処理および前記量子化処理の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第3位置情報を、前記第1位置情報を更新することによって作成し、
    前記第3位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換処理および前記量子化処理の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理を行う
    ことを特徴とする動画像符号化方法。
  8. 画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成し、
    作成された前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理を行い、
    前記位置情報と、前記位置情報と前記画像ブロックの圧縮順が格納されるデータとの対応関係を示す対応情報とを作成し、
    前記変換処理の結果に基づいて前記データを一括して更新し、
    更新された前記データを用いて、前記画像ブロックを前記画像ブロックのサイズごとに圧縮する
    ことを特徴とする動画像符号化方法。
  9. コンピュータに、
    画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および
    前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理と、
    変換処理および量子化処理の対象である画像ブロックの位置を示す第1位置情報を作成し、
    前記第1位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
    前記変換処理および前記量子化処理の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を画像ブロックのサイズごとに示す第2位置情報を作成し、
    前記第2位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換処理および前記量子化処理の処理結果に対して逆量子化処理および逆変換処理と
    を実行させるためのプログラム。
  10. コンピュータに、
    画像における複数の画像ブロックの各々の位置を画像ブロックのサイズごとに示す位置情報を作成する作成処理、および
    前記位置情報が示す位置における所定のサイズの画像ブロックに対する変換処理と、
    変換処理および量子化処理の対象である画像ブロックの位置を示す第1位置情報を作成し、
    前記第1位置情報を参照して所定のサイズの画像ブロックに対する変換処理および量子化処理を行い、
    前記変換処理および前記量子化処理の処理結果を用いて逆量子化処理および逆変換処理の対象である画像ブロックの位置を示す情報が連続して含まれている第3位置情報を、前記第1位置情報を更新することによって作成し、
    前記第3位置情報を参照して逆量子化処理および逆変換処理の対象である画像ブロックに対応する前記変換処理および前記量子化処理の処理結果に対して所定の単位ごとに逆量子化処理および逆変換処理と
    を実行させるためのプログラム。
JP2017547609A 2015-10-28 2016-10-19 動画像符号化装置、動画像符号化方法、およびプログラム Active JP6791158B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2015211659 2015-10-28
JP2015211659 2015-10-28
JP2016153570 2016-08-04
JP2016153570 2016-08-04
PCT/JP2016/004631 WO2017073034A1 (ja) 2015-10-28 2016-10-19 動画像符号化装置、動画像符号化方法およびプログラム記録媒体

Publications (2)

Publication Number Publication Date
JPWO2017073034A1 JPWO2017073034A1 (ja) 2018-08-23
JP6791158B2 true JP6791158B2 (ja) 2020-11-25

Family

ID=58631491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017547609A Active JP6791158B2 (ja) 2015-10-28 2016-10-19 動画像符号化装置、動画像符号化方法、およびプログラム

Country Status (3)

Country Link
US (1) US20180316920A1 (ja)
JP (1) JP6791158B2 (ja)
WO (1) WO2017073034A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771783B2 (en) 2018-06-11 2020-09-08 Google Llc Transforms for large video and image blocks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012147293A (ja) * 2011-01-13 2012-08-02 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
JP6528765B2 (ja) * 2014-03-28 2019-06-12 ソニー株式会社 画像復号装置および方法

Also Published As

Publication number Publication date
US20180316920A1 (en) 2018-11-01
JPWO2017073034A1 (ja) 2018-08-23
WO2017073034A1 (ja) 2017-05-04

Similar Documents

Publication Publication Date Title
JP4182442B2 (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
US8218640B2 (en) Picture decoding using same-picture reference for pixel reconstruction
US10542276B2 (en) Data caching method and apparatus for video decoder
CN103918273B (zh) 确定用于变换系数的二进制码字的方法
TWI533676B (zh) 動畫像編碼裝置、動畫像解碼裝置、動畫像編碼方法、動畫像解碼方法及記憶媒體
KR102317760B1 (ko) 이미지들을 코딩 및 디코딩하는 방법, 코딩 및 디코딩 디바이스 및 그에 대응하는 컴퓨터 프로그램들
CN103931197B (zh) 确定用于变换系数的二进制码字的方法
US20140153635A1 (en) Method, computer program product, and system for multi-threaded video encoding
US8902994B1 (en) Deblocking filtering
US20210203978A1 (en) Merge mode-based inter-prediction method and apparatus
US20100246665A1 (en) Parallelization of high-performance video encoding on a single-chip multiprocessor
JP2022008349A (ja) 低減されたメモリアクセスを用いてfrucモードでビデオデータを符号化又は復号する方法及び装置
JP2013150215A (ja) 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
CN112019842A (zh) 点云压缩的方法、装置、计算机设备和存储介质
CN105794208B (zh) 编码解码图像方法、编码解码图像设备及相应计算机可读介质
JP6962193B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
JP6791158B2 (ja) 動画像符号化装置、動画像符号化方法、およびプログラム
CN116600134B (zh) 一种适配图形引擎的并行视频压缩方法和装置
JP6202912B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP7141535B2 (ja) 点群圧縮の方法および装置
CN116389741A (zh) 用于对图像或视频数据的当前块进行编码的方法
JP4182426B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
KR20140031974A (ko) 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 화상 부호화 프로그램 및 화상 복호 프로그램
JP6992815B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200923

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201019

R150 Certificate of patent or registration of utility model

Ref document number: 6791158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150