JP6382728B2 - 復号方法及び復号装置 - Google Patents

復号方法及び復号装置 Download PDF

Info

Publication number
JP6382728B2
JP6382728B2 JP2015004198A JP2015004198A JP6382728B2 JP 6382728 B2 JP6382728 B2 JP 6382728B2 JP 2015004198 A JP2015004198 A JP 2015004198A JP 2015004198 A JP2015004198 A JP 2015004198A JP 6382728 B2 JP6382728 B2 JP 6382728B2
Authority
JP
Japan
Prior art keywords
code string
decoding
code
entropy conversion
string
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
JP2015004198A
Other languages
English (en)
Other versions
JP2016131280A (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2015004198A priority Critical patent/JP6382728B2/ja
Publication of JP2016131280A publication Critical patent/JP2016131280A/ja
Application granted granted Critical
Publication of JP6382728B2 publication Critical patent/JP6382728B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、復号方法及び復号装置に関する。
一般的に、動画復号処理は複雑な処理であり、動画コンテンツの解像度拡大に伴い、高効率な動画復号処理は難しくなってきている。一方、単一のコンピュータ装置により供給される動画復号の処理能力は限られており、複数のコンピュータ装置または複数の処理コアを使う傾向がある。例えば、スマートフォンでは通常2個または4個のコアを含む中央処理装置(CPU(Central Processor Unit))を有する。
高解像度のコンテンツをリアルタイムで滑らかな再生のために十分速く復号できるように、連続するビデオビットストリームの処理に複数コアを使う要求がある。最新の動画符号化標準方式であるH.265/HEVCは、複数コアへの復号処理の分散を促進するようにビットストリームを構成する特徴(例えば、Tiles、Wavefrontsと呼ばれる技術を利用)を有している。復号する方法として、ビットストリームのビット列を一度に復号し、復号したデータをメモリに蓄積し、復号したデータを複数コアに分散して並列に復号する方法がある。また、並列プロセッサ技術を利用する別の復号方法として、互いに並列に復号されるべきビデオブロックのバッチを定義し、複数のバッチを互いに並列に復号する復号方法が知られている(例えば、特許文献1参照)。
特表2009−540680号公報
しかしながら、特許文献1に記載の復号方法では、予めバッチが定義されている必要があるが、符号化方法によって、このような特徴を利用してすべてのビットストリームが生成されるとは限らない。そのため、このような特徴を利用しないビットストリームの復号が複数コアによる処理に対応する機能を備えることが望ましい。
また、ビットストリームのビット列を一度に復号し、復号したデータをメモリに蓄積し、復号したデータを複数コアに分散して並列に復号する方法では、復号データを蓄積するためのメモリサイズが非常に大きくなってしまう。そのため、メモリコストの増加だけのみならず、メモリバンド幅の拡張やキャッシュミスの増加にもつながる。
上記の課題を解決するために、符号化装置側の符号化方法によらずに、複数のスレッドを用いて並列的に復号処理を実行し得る復号方法及び復号装置を提供することを目的とする。
本発明に係る復号方法は、復号装置により実行される復号方法であって、第1の符号列を入力する入力ステップと、入力ステップで入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換ステップと、2つ以上の作業スレッドにて、エントロピー変換ステップにより割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理ステップと、を備え、第1の符号列では、復号済みデータから復元可能な一部の符号化要素の符号が省略されており、エントロピー変換ステップでは、復号装置は、第1の符号列を、省略された符号化要素の符号を省略せずに含めた符号列に変換する
本発明に係る復号装置は、第1の符号列を入力する入力手段と、入力手段により入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換手段と、2つ以上の作業スレッドにて、エントロピー変換手段により割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理手段と、を備え、第1の符号列では、復号済みデータから復元可能な一部の符号化要素の符号が省略されており、エントロピー変換手段は、第1の符号列を、省略された符号化要素の符号を省略せずに含めた符号列に変換する
本発明に係る復号方法におけるエントロピー変換ステップでは、エントロピー変換ステップでは、復号装置は、第2の符号列として、第1の符号列をビット間の依存性が低い第2の符号列に変換してもよい。
本発明に係る復号方法におけるエントロピー変換ステップでは、復号装置は、第2の符号列として、第1の符号列を符号化要素間の依存性が低い第2の符号列に変換してもよい。
本発明に係る復号方法におけるエントロピー変換ステップは、第1の符号列を解読し、第2の符号列として、符号化ブロック毎に分離して解読可能な第2の符号列に変換するサブステップと、符号化ブロック毎の第2の符号列の復号処理を、復号処理の待ち行列に追加すると共に、その復号処理を符号化ブロックの列に基づいて定まるスレッドに関連付けるサブステップと、各スレッドに関連付けられた全ての第2の符号列が復号処理されたかを判定し、処理されていない第2の符号列が存在する場合には、待ち処理を行うサブステップと、を含んでもよい。
本発明に係る復号方法では、画像処理ステップにおける一の作業スレッドの処理は、対象の作業スレッドに関連付けられた第2の符号列の復号処理が存在するか否かを判定し、存在するまで処理待ちするサブステップと、対象の作業スレッドに関連付けられた復号対象の符号化ブロックの復元に必要な全ての符号化ブロックが復元済みであるかを判定し、全ての符号化ブロックが復元されるまで処理待ちするサブステップと、復号対象の符号化ブロックに対応して取得した第2の符号列を解読し、復号対象のブロックの再生画像を復元するサブステップと、を含んでもよい。
本発明に係る復号方法では、第1の符号列が算術符号にて符号化されており、エントロピー変換ステップでは、復号装置は、第1の符号列を可変長符号に変換してもよい。
本発明に係る復号方法では、第1の符号列が符号化ブロックの列を跨ぐ予測を適用する差分パラメータ値の符号を含んでおり、エントロピー変換ステップでは、復号装置は、第1の符号列を、第1の符号列が符号化ブロックの列を跨ぐ予測を適用する差分パラメータを含まない第2の符号列に変換してもよい。
本発明に係る復号方法では、第1の符号列は可変長符号を用いて符号化されており、エントロピー変換ステップでは、復号装置は、第1の符号列の一部を固定長符号に変換してもよい。
本発明によれば、第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換するので、符号化装置側の符号化方法によらずに、複数のスレッドを用いて並列的に復号処理を実行することができる。
本発明の実施形態に係る復号装置1のブロック図である。 復号装置1のハードウェア構成図である。 CTUの例を概念的に説明する図である。 復号装置1による処理のフローチャートである。 エントロピー変換部3による処理のフローチャートである。 画像処理部5による処理のフローチャートである。
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明は省略する。
図1は本発明の実施形態に係る復号装置1のブロック図である。図1に示すように、復号装置1は、ビットストリーム受付部2(入力手段)と、エントロピー変換部3(エントロピー変換手段)と、記憶部4と、画像処理部5(画像処理手段)と、表示部6とを備える。
ここで、図2を参照して、復号装置1のハードウェア構成について説明する。図2は、復号装置1のハードウェア構成図である。図2に示されるように、復号装置1は、物理的には、1または複数のCPU(Central Processing unit)21、主記憶装置であるRAM(Random Access Memory)22およびROM(Read Only Memory)23、データ送受信デバイスである通信モジュール24、半導体メモリなどの補助記憶装置25、操作盤(操作ボタンを含む)やタッチパネルなどのユーザの入力を受け付ける入力装置26、ディスプレイなどの出力装置27、などのハードウェアを備えるコンピュータとして構成することができる。図2における復号装置1の各機能は、たとえば、CPU21、RAM22などのハードウェア上に1または複数の所定のコンピュータソフトウェアを読み込ませることにより、CPU21の制御のもとで通信モジュール24、入力装置26、出力装置27を動作させるとともに、RAM22および補助記憶装置25におけるデータの読み出しおよび書き込みを行うことで実現することができる。
ビットストリーム受付部2は、ビットストリーム(第1の符号列)の入力を受け付ける部分である。具体的には、ビットストリーム受付部2は、符号化装置によって符号化されたビットストリームの入力を受け付ける。ビットストリーム受付部2は、ビットストリームとして、例えば、CABAC(Context-based Adaptive Binary Arithmetic Coding)データを入力する。CABACデータは、算術符号を用いて符号化されたデータである。ビットストリーム受付部2が入力を受け付けたCABACデータを記憶手段(例えば、RAM22、補助記憶装置25)に記憶しておくようにしてもよい。ビットストリーム受付部2は、CABACデータが入力された後に、当該CABACデータをエントロピー変換部3へ送出する。なお、CABACデータは、その一部(例えばスライスヘッダのデータ)が可変長符号にて符号化されている場合も含むこととする。
エントロピー変換部3は、ビットストリーム受付部2で入力されたビットストリームを符号化ブロック間の依存性が低い符号列に変換すると共に、変換した符号列の復号処理(ビットストリームを再生画像に復元する処理)を符号化ブロック単位で2つ以上の作業スレッドに割り当てる部分である。具体的には、エントロピー変換部3は、ビットストリーム受付部2によってCABACデータが入力されると、スライスヘッダを解析すると共に、入力されたCABACデータを解読する。また、エントロピー変換部3は、当該CABACデータを符号化ブロック間の依存性が低い符号列として、VLC(Variable Length Coding)データ(可変長符号)に変換する。すなわち、エントロピー変換部3は、算術符号であるCABACデータを可変長符号に変換する。
VLCデータの読み書きに必要とする算術演算の処理負荷(例えば、演算量)は、CABACデータの読み書きに必要とする算術演算の処理負荷よりも少ない。エントロピー変換部3は、CABACデータをVLCデータに変換するので、VLCデータの各セグメント(例えば、各CTU(Coding Tree Unit)に対応するVLCデータ)を独立して読み込み可能にすることができる。なお、エントロピー変換部3は、CTU単位でVLCデータに変換する。ここでCTUとは、ピクチャを構成する予め定められた符号化単位(符号化要素単位)であって、例えば64×64画素のブロックである。このブロックサイズは、64×64画素には限定されず、8×8画素、16×16画素、32×32画素でもよい。なお、各CTUのデータが固定長とは限らない。つまり、連続する2つのCTUのデータの境界はデータサイズからは通常は分からない。そのため,CTUデータ間の境界にランダムにアクセスにするため、追加のポインターを保存することが必要となる。例えば、1つのポインターは、復号の1要素に定義される1つまたは1グループのCTU(復号の要素)に関連したメモリを示す必要がある。
このように、エントロピー変換部3は、CABACデータを、符号化要素間の依存性が低い符号列であるVLCデータに変換(再符号化)する。すなわち、エントロピー変換部3は、中間の圧縮されたストリームである中間の圧縮フォーマットとして、VLCデータに変換する。この結果、エントロピー変換部3は、CTU間の依存性が低く、ビット間の依存性も低いデータに変換することができる。なお、エントロピー変換部3は、変換したVLCデータを記憶部4へ蓄積する。すなわち、記憶部4は、VLCデータを記憶し、画像処理部5がアクセス可能な状態にする。よって、エントロピー変換部3は、画像処理部5に対して、CTU単位で分離して変換したVLCデータを解読させることができる。
なお、VLCデータの代わりにCABACデータを復号したデータもCTU間の依存性が低いデータであるが、VLCデータに比較してデータ量が非常に大きい。CABACデータをVLCデータに変換することにより、記憶部4に蓄積するデータサイズを大幅に低減し、復号装置1のメモリバンド幅を小さくし、キャッシュミスの発生を抑制できる。
続いて、エントロピー変換部3が、再符号化する具体例を説明する。ビットストリーム受付部2が受け付けたビットストリームがバイナリー算術符号器にて圧縮されていると仮定する。この場合、エントロピー変換部3は、1つの手法として、H.265/HEVC符号化標準方式にみられるように、ビットストリームから得られるBIN列を取得し、ビット列として蓄積することが考えられる。しかしながら、この手法はランダムアクセス性が制限されるため十分ではない。例えば、量子化パラメータQPの復元については、過去に復号した要素との依存性がある(例えば、あるCTU列の最初の要素のQP値は,直前に復元されたCTU列の最後の要素のQP値と依存性がある)。このように、量子化パラメータQP値は、符号化ブロックの列を跨ぐ予測を適用する差分パラメータ値である。
ここで、中間の圧縮フォーマット(中間の圧縮ストリーム)でQP値を別の方法で符号化することによって独立性を高める手段(差分パラメータを含まない手段)がいくつかあり、以下に3つの方法を列挙する。
(1)全てのQP値を差分QP値ではなく絶対値として符号化する。
(2)CTU列の最初の要素について差分QP値ではなくQP値そのものを符号化する。
(3)CTU列の最初の要素では、ある定義した参照値からの差分QP値を伝送する。例えば、定義した参照値を26のような中間値(QP値の範囲は0〜51)やスライスヘッダの情報から得られる初期値とする。
上記(1)〜(3)のような処理をすることにより、エントロピー変換部3が、CTU間の依存性が低いビットストリームに変換するので、画像処理部5が変換したビットストリームを符号化ブロック単位で分離して解読することが可能となる。
続いて、H.265/HEVC標準のコンテキストについて,エントロピー変換部3が、中間の圧縮フォーマット(中間の圧縮ストリーム)を簡単化する方法について説明する。
例えば、ビットストリーム受付部2で入力されたビットストリームが可変長符号を用いて符号化されている場合、エントロピー変換部3は、あるシンタックス要素(符号化要素)について、可変長符号の代わりに固定長符号を利用してもよい。例えば、ブロック内の最後の(有意)係数位置(last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix and last_sig_coeff_y_suffix シンタックス要素で表現)は固定長コードで表現され得る。ここでコード長は変換サイズに依存する。この処理により、符号化ブロック間の依存性が低いストリームに変換できる。例えば、中間フォーマットに算術符号を用いる場合でも、ブロックの最後の係数を固定長符号にすることにより、ビット列のCTU間の境界が明確となり、CTUの先頭ビットをランダムにアクセスできるようになる。このように、エントロピー変換部3は、ビットストリーム受付部2で入力されたビットストリームが可変長符号である場合に、ビットストリームの一部を固定長符号に変換するようにしてもよい。
また、エントロピー変換部3は、Significance map flag sig_coeff_flagのための推測ルールを中間の圧縮フォーマット(中間の圧縮ストリーム)に含めず、4×4サブブロックに常に16個のsignificance map bitsを伝送するようにしてもよい(例えば、1〜15番目のビット値が0であっても、16番目のビットを1であると推察せずに、0を伝送する)。エントロピー変換部3は、上述の処理により、符号化要素間の依存性が少ない中間の圧縮ストリームに変換するので、復号処理の複雑さを緩和させることができる。このように、エントロピー変換部3は、入力されたビットストリームに、符号済みデータから復元可能な一部の符号化要素の符号が省略されていても、省略された符号を省略せずに含めた符号列に変換する。
また、エントロピー変換部3は、サインフラグ coeff_sign_flagのための推測ルールを中間の圧縮フォーマット(中間の圧縮ストリーム)に含めないようにしてもよい。ある条件の元では、4×4サブブロックの最後のサインフラグは自明となるため符号化する必要がないが、エントロピー変換部3は、中間の圧縮フォーマットにはすべての係数のサインビットを含める。エントロピー変換部3は、この処理により、ビット間の依存性が低く、復号時の推測処理が少ないストリームに変換するので、復号処理の複雑さを緩和させることができる。このように、エントロピー変換部3は、入力されたビットストリームに、符号済みデータから復元可能な一部の符号化要素の符号が省力されていても、省略された符号を省略せずに含めた符号列に変換する。
また、エントロピー変換部3は、単純で規則的な可変長コード(例えば,Exponential Golomb code)を係数の符号化に利用するようにしてもよい(ただし、ライスパラメータの適応化を使用しない)。この処理によりビット間の依存性が低いストリームに変換できる。
また、エントロピー変換部3は、中間圧縮ストリームの解読を容易にするために,シンタックス要素の順番を入れ替えてもよい。例えば、エントロピー変換部3は、4×4ブロック内の1つのcoefficientの位置のパスを考慮するときには、1より大きい係数や2より大きい係数のフラグや残りの係数の中間にサインビットを挟まないようにしてもよい。この処理はsingle unary decode演算の利用により実現できる。エントロピー変換部3は、上述の処理により、符号化要素間の依存性が少ないストリームに変換できるので、復号処理の複雑さを緩和させることができる。このように、エントロピー変換部3は、ビットストリームの一部が1つの単項演算で復号可能となるように入れ替えた符号列に変換する。
また、エントロピー変換部3は、符号化ブロック毎に対応するVLCデータの解読処理(復号処理)を待ち行列(キュー)へ追加すると共に、復号処理を符号化ブロックの列に基づいて対応する作業スレッドを関連付け(マッピング)を行い、その旨を画像処理部5へ通知する。上記待ち行列は、後述する画像処理部5が実行する複数の作業スレッドについての待ち行列である。ここで、作業スレッドとは、VLCデータを解読し、対応する要素(CTU)の復元処理を実行するためのスレッドである。また、複数の作業スレッドが存在し、それぞれの作業スレッドは独立して並列に動作するものとする。
ここで、エントロピー変換部3が、符号化ブロックの列に基づいて作業スレッドを関連付ける例について、図3を用いて説明する。図3は、CTUの列(横並びの符号化ブロックで構成される符号化ブロック列)を示す。各CTUは、ラベル付けがなされている(各CTUを一意に識別される識別子が定まっている)。図3の例では、各CTUに対して、各列と、同一列の順番(図3の左から右方向へ付される番号)とからなるラベル付けがなされる。例えば、A列の最も左のCTUには、「A1」というラベルが付けられている。
エントロピー変換部3は、CTUの列と、作業スレッド番号(作業スレッド毎に一意に定められている番号)とに基づいて、各作業スレッドが処理対象とするCTUを定める。すなわち、エントロピー変換部3は、CTUと作業スレッドとを関連付ける。
エントロピー変換部3は、作業スレッド数をN個と仮定した場合に、CTU列R内のCTUにはスレッド番号が割り当てられる(例えば、列RをNで割った余りの値)。例えば、後述する画像処理部5を構成する作業スレッドの数が2つである場合、エントロピー変換部3は、奇数列のCTUを第1の作業スレッドに割り当てて、偶数列のCTUを第2の作業スレッドに割り当てる。このように、エントロピー変換部3が、各作業スレッドとCTUとを関連付けると、この関連付けた結果を、記憶部4に登録する(エントロピー変換部3と画像処理部5にそれぞれ記憶しておいてもよい)。画像処理部5は、この関連付けに基づいて各作業スレッド単位に復号処理を行う。すなわち、図3の例では、画像処理部5が、第1作業スレッドとして、A1、A2、A3、A4、C1で示されるCTUの再生画像の復元処理を実施し、第2作業スレッドとして、B1とB2で示されるCTUの再生画像の復元処理を実施する。
また、エントロピー変換部3は、各スレッドに関連付けられた全ての第2の符号列(VLCデータ)が復号されたか否かを判定し、処理されていないVLCデータが存在する場合には、待ち処理を行う。この処理は、エントロピー変換部3による処理と、上述の作業スレッドによる処理とを同期するための処理となる。エントロピー変換部3は、待ち処理として、公知のsleepコマンドを実行することにより実現する。また、エントロピー変換部3は、pthreadライブラリによる条件変数を使って待ち処理を行ってもよい。
記憶部4は、エントロピー変換部3が変換したVLCデータを記憶する部分である。また、記憶部4は、エントロピー変換部3によって定義された、各スレッドとCTUとの関連付けを記憶する部分である。画像処理部5は、記憶部4が記憶する各作業スレッドとCTUとの関連付けに基づいて、各作業スレッド単位でCTUの再生画像の復元処理を行う(画像処理部5に各作業スレッドとCTUとの関連付けを記録しておいてもよい)。
画像処理部5は、2つ以上の作業スレッドにて、エントロピー変換部3により割り当てられたブロック単位のVLCデータを解読し、再生画像を復元する(すなわち、復号処理をする)部分である。画像処理部5は、複数の作業スレッドについて、各作業スレッドに割り当てられた要素の復元処理を並列に実施する。画像処理部5は、例えば、複数のCPUにより実装され、CPUそれぞれが、作業スレッドに割り当てられたCTUの再生画像の復元処理をする。また、画像処理部5は、エントロピー変換部3からの通知に応じて、復号処理をする。
画像処理部5は、対象の処理スレッドに関連付けられたVLCデータが存在するか否かを判定し、存在するまで処理を待つ。具体的には、画像処理部5は、記憶部4を参照して、自己のスレッドに割り当てられたCTUがあるか否かを判定し、存在するまで処理を待つ。この待ち処理としては、上述の公知のsleepコマンドを実行したり、polling処理を実行したりする。また、画像処理部5は、条件変数に基づいた待ち処理をしてもよい。
画像処理部5は、対象の処理スレッドに関連付けられたVLCデータが存在する場合、対象の作業スレッドに関連付けられた復号対象の符号化ブロックの復元に必要な全ての符号化ブロックが復元済みであるかを判定し、全ての符号化ブロックが復元されるまで処理待ちをする。
具体的には、画像処理部5は、処理対象となるVLCデータの復号により復元されるCTUに関わる(すなわち依存する)全ての要素(CTU)が復元済みであるか否かを判定する。このような依存性は、イントラ予測や動きベクトル復元、あるいは交差する要素演算を伴うほかの処理から発生し得る。
H.265/HEVC標準では、CTUの復元には、隣接CTUの復元後に行うことが必要とされる(同じタイルに属する場合)。復元済みの隣接CTUは現CTUの直左,左上,直上,右上のCTUを示す。図3に示したCTUの例を用いて説明する。例えば、3スレッドが3つのCTU列を復元処理し,要素A1、A2、A3とB1(図で濃く塗られたブロック)が復元済みとマークされていると仮定する。スレッド1は要素A4を復元処理し,スレッド2は要素B2(依存性のある全要素A1、A2、A3とB1が処理済みとマークされている)を処理する。スレッド3は,要素C1のB2への依存性がまだ解決されていないため、要素C1の復元処理待ちとなっている。B2がスレッド2によって処理済みとマークされれば、スレッド3は要素C1を復元処理する。
画像処理部5は、処理対象となるVLCデータの復号により復元されるCTUに関わる(依存する)全ての要素(CTU)が復元されたと判定した場合、復号対象のCTUに対応して取得したVLCデータを解読し、復号対象のCTUの再生画像を復元する。具体的には、画像処理部5は、当該復号処理として、対象となるVLCデータを解析したり、動き補償を実施したり、イントラ予測、逆量子化、逆変換、残差信号と予測信号の加算等を実施する。なお、画像処理部5は、復元した再生画像を表示部6へ送出する。表示部6は、画像処理部5から取得した再生画像を表示する。
続いて、図4〜6のフローチャートを用いて、本実施形態に係る復号装置1で実行される復号方法の処理及び動作を説明する。図4に記載のフローチャートは、復号装置1による復号処理全体のフローチャートである。
まず、ビットストリーム受付部2は、CABACデータの入力を受け付けられる(ステップS1:入力ステップ)。そして、エントロピー変換部3は、CABACデータを解析してVLCデータに変換する(ステップS2:エントロピー変換ステップ)。続いて、エントロピー変換部3は、変換したVLCデータをCTU単位で作業スレッドに関連付ける(ステップS3:エントロピー変換ステップ)。続いて、画像処理部5は、各CTUのVLCデータを解読し、復号画像(再生画像)を復元し(ステップS4:画像処理ステップ)、処理を終了する。なお、画像処理部5は、復号画像を表示部6へ送出し、表示部6に復号画像が表示される。
続いて、図5のフローチャートを用いて、本実施形態に係る復号装置1で実行される処理及び動作の内、エントロピー変換部3が行う処理の詳細を説明する。図5に示すフローチャートは、図4に示したフローチャートのステップS2とステップS3の処理の詳細を示すフローチャートである。まず、エントロピー変換部3は、ビットストリーム受付部2によって、CABACデータの入力を受け付けると、スライスヘッダを解析する(ステップS11)。続いて、エントロピー変換部3は、CABACデータを解析する(ステップS12)。この際に解析されるデータの量は1つの要素(CTU)に対応する。そして、エントロピー変換部3は、CABACデータをVLCデータとして再符号化し、VLCデータを記憶部4へ蓄積する(ステップS13)。そして、エントロピー変換部3は、変換した(再符号化した)VLCデータに対応する要素(CTU)の復元処理をキューに追加する(ステップS14)。エントロピー変換部3は、追加のデータがあるか否かを判定し(ステップS15)、追加のデータがある場合には(ステップS15;YES)、ステップS12へ進む。エントロピー変換部3は、追加のデータが無い場合には(ステップS15;NO)、画像処理部5によって、復号対象とする要素(CTU)の復元に必要となる全ての要素(CTU)が復元済みであるか否かを判定する(ステップS16)。全ての要素が復元されていない場合(ステップS16;NO)、エントロピー変換部3は、待ち処理を行い(ステップS17)、再度全ての要素が復元されたか否かを判定する(ステップS16)。一方、全ての要素が復元されている場合(ステップS16;YES)、処理を終了する。
続いて、図6のフローチャートを用いて、本実施形態に係る復号装置1で実行される処理及び動作の内、画像処理部5が行う処理の詳細を説明する。図6に示すフローチャートは、図4に示したフローチャートのステップS4の処理の詳細を示すフローチャートである。まず、画像処理部5は、キュー内に処理対象の要素(CTU)があるか否かを判定する(ステップS21)。キュー内に処理対象の要素が無い場合(ステップS21;NO)、画像処理部5は、キュー内に処理対象の要素が存在するまで待ち処理を行い(ステップS22)、再度ステップS21へ進む。
キュー内に処理対象の要素がある場合(ステップS21;YES)、画像処理部5は、キューから要素(CTU)に対応するVLCデータを取得する(ステップS23)。続いて、画像処理部5は、当該要素の復元に必要な全ての要素が復元されたか否かを判定する(ステップS24)。画像処理部5は、処理対象の要素の復元に必要な全ての要素が復元されていない場合(ステップS24;NO)、待ち処理を実行し(ステップS25)、再度ステップS24へ進む。
処理対象の要素に関わる全ての要素が復元されている場合(ステップS24;YES)、画像処理部5は、当該要素に関するVLCデータを解析する(ステップS26)。続いて、画像処理部5は、復号した動きデータを保存し(ステップS27)、動き補償を実施する(ステップS28)。続いて、画像処理部5は、予測信号加算や、イントラ予測、逆量子化、逆変換処理による残差信号(誤差信号)の復元、並びに残差信号と予測信号との加算による画像復元を実施する(ステップS29)。続いて、画像処理部5は、デブロッキング処理を実施する(ステップS30)。続いて、画像処理部5は、インループフィルタ処理を実施する(ステップS31)。続いて、画像処理部5は、要素が復元済みである旨のマークをする(ステップS32)。続いて、画像処理部5は、該当スレッドにおける処理が全て終了したか否かを判定し(ステップS33)、終了していない場合(ステップS33;NO)、ステップS21へ進み、全て終了している場合(ステップS33;YES)、処理を終了する。
上述のように、復号装置1は、CABACデータをVLCデータへ変換することにより、入力を受け付けたビットストリームを再符号化し、当該再符号化したデータを記憶部4で記憶するので、圧縮処理をして少ないメモリサイズで記憶することができる。また、復号装置1は、複数の作業スレッドが並行して動作するように、変換したVLCデータの復号処理をCTU単位で作業スレッドに関連付けており、データ間の依存性を極力減らすことができる。
なお、上述の実施形態では、H.265/HEVC動画符号化標準方式に基づいて記載したが、H.264/AVCのような他の符号化方式に適用してもよい。この場合、CTUの代わりにマクロブロックを適用することになる。また、上述の実施形態では、エントロピー変換部3にて変換されるVLCデータに対応する要素や画像処理部5における処理対象の要素を1CTU単位とする場合について述べたが、複数のCTUからなる1グループのCTUとして画像信号処理を行うことも可能である。
1…復号装置、2…ビットストリーム受付部、3…エントロピー変換部、4…記憶部、5…画像処理部、6…表示部。

Claims (9)

  1. 復号装置により実行される復号方法であって、
    第1の符号列を入力する入力ステップと、
    前記入力ステップで入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換ステップと、
    前記2つ以上の作業スレッドにて、前記エントロピー変換ステップにより割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理ステップと、
    を備え、
    前記第1の符号列では、復号済みデータから復元可能な一部の符号化要素の符号が省略されており、
    前記エントロピー変換ステップでは、前記復号装置は、
    前記第1の符号列を、前記省略された符号化要素の符号を省略せずに含めた符号列に変換する、
    復号方法。
  2. 前記エントロピー変換ステップでは、前記復号装置は、前記第2の符号列として、第1の符号列をビット間の依存性が低い第2の符号列に変換する、請求項1に記載の復号方法。
  3. 前記エントロピー変換ステップでは、前記復号装置は、前記第2の符号列として、第1の符号列を符号化要素間の依存性が低い第2の符号列に変換する、請求項1又は2に記載の復号方法。
  4. 前記エントロピー変換ステップは、
    第1の符号列を解読し、前記第2の符号列として、符号化ブロック毎に分離して解読可能な第2の符号列に変換するサブステップと、
    前記符号化ブロック毎の第2の符号列の復号処理を、復号処理の待ち行列に追加すると共に、その復号処理を符号化ブロックの列に基づいて定まるスレッドに関連付けるサブステップと、
    各スレッドに関連付けられた全ての第2の符号列が復号処理されたかを判定し、処理されていない第2の符号列が存在する場合には、待ち処理を行うサブステップと、
    を含む、請求項1〜3の何れか一項に記載の復号方法。
  5. 前記画像処理ステップにおける一の作業スレッドの処理は、
    対象の作業スレッドに関連付けられた第2の符号列の復号処理が存在するか否かを判定し、存在するまで処理待ちするサブステップと、
    対象の作業スレッドに関連付けられた復号対象の符号化ブロックの復元に必要な全ての符号化ブロックが復元済みであるかを判定し、全ての符号化ブロックが復元されるまで処理待ちするサブステップと、
    前記復号対象の符号化ブロックに対応して取得した第2の符号列を解読し、復号対象のブロックの再生画像を復元するサブステップと、
    を含む請求項1〜3の何れか一項に記載の復号方法。
  6. 前記第1の符号列が算術符号にて符号化されており、
    前記エントロピー変換ステップでは、前記復号装置は、
    前記第1の符号列を可変長符号に変換する、請求項1〜5の何れか一項に記載の復号方法。
  7. 前記第1の符号列が符号化ブロックの列を跨ぐ予測を適用する差分パラメータ値の符号を含んでおり、
    前記エントロピー変換ステップでは、前記復号装置は、
    前記第1の符号列を、前記符号化ブロックの列を跨ぐ予測を適用する差分パラメータを含まない第2の符号列に変換する、請求項1〜5の何れか一項に記載の復号方法。
  8. 前記第1の符号列は可変長符号を用いて符号化されており、
    前記エントロピー変換ステップでは、前記復号装置は、
    前記第1の符号列の一部を固定長符号に変換する、請求項1〜5の何れか一項に記載の復号方法。
  9. 第1の符号列を入力する入力手段と、
    前記入力手段により入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換手段と、
    前記2つ以上の作業スレッドにて、前記エントロピー変換手段により割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理手段と、
    を備え、
    前記第1の符号列では、復号済みデータから復元可能な一部の符号化要素の符号が省略されており、
    前記エントロピー変換手段は、
    前記第1の符号列を、前記省略された符号化要素の符号を省略せずに含めた符号列に変換する、
    復号装置。
JP2015004198A 2015-01-13 2015-01-13 復号方法及び復号装置 Active JP6382728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015004198A JP6382728B2 (ja) 2015-01-13 2015-01-13 復号方法及び復号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015004198A JP6382728B2 (ja) 2015-01-13 2015-01-13 復号方法及び復号装置

Publications (2)

Publication Number Publication Date
JP2016131280A JP2016131280A (ja) 2016-07-21
JP6382728B2 true JP6382728B2 (ja) 2018-08-29

Family

ID=56414856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015004198A Active JP6382728B2 (ja) 2015-01-13 2015-01-13 復号方法及び復号装置

Country Status (1)

Country Link
JP (1) JP6382728B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305036B2 (en) * 2002-05-14 2007-12-04 Broadcom Corporation System and method for entropy code preprocessing
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding

Also Published As

Publication number Publication date
JP2016131280A (ja) 2016-07-21

Similar Documents

Publication Publication Date Title
US9866850B2 (en) Method of determining binary codewords for transform coefficients
US10623742B2 (en) Method of determining binary codewords for transform coefficients
RU2612600C2 (ru) Способ контентно-адаптивного энтропийного кодирования данных о режимах и опорных типах для видео следующего поколения
US9167245B2 (en) Method of determining binary codewords for transform coefficients
US9270988B2 (en) Method of determining binary codewords for transform coefficients
CN102783035B (zh) 并行熵编码方法和设备
US9635358B2 (en) Method of determining binary codewords for transform coefficients
JP6315911B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2013109026A1 (ko) 엔트로피 부호화/복호화 방법 및 그 장치
WO2013100694A1 (ko) 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치
WO2007010901A1 (ja) 動画像符号化装置、動画像復号装置および符号列フォーマット
CN1953552A (zh) 编码装置及解码装置
US20130188729A1 (en) Method of determining binary codewords for transform coefficients
CN108353179A (zh) 编码设备、解码设备及其编码方法和解码方法
WO2012017945A1 (ja) 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法及びプログラム
JP5116704B2 (ja) 画像符号化装置及び画像符号化方法
CN118118690A (zh) 视频解码方法、装置、计算机设备及存储介质、方法
JP4896944B2 (ja) 画像復号装置
KR20090113103A (ko) 영상의 복호화 방법 및 장치
JP4823090B2 (ja) 画像符号化装置
JP6469277B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2008294669A (ja) 画像符号化装置
JP6382728B2 (ja) 復号方法及び復号装置
US20120147972A1 (en) Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program
WO2013114826A1 (ja) 画像復号装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180710

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: 20180724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180802

R150 Certificate of patent or registration of utility model

Ref document number: 6382728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250