JP2016131280A - Decoding method and decoding device - Google Patents

Decoding method and decoding device Download PDF

Info

Publication number
JP2016131280A
JP2016131280A JP2015004198A JP2015004198A JP2016131280A JP 2016131280 A JP2016131280 A JP 2016131280A JP 2015004198 A JP2015004198 A JP 2015004198A JP 2015004198 A JP2015004198 A JP 2015004198A JP 2016131280 A JP2016131280 A JP 2016131280A
Authority
JP
Japan
Prior art keywords
decoding
code string
code
entropy conversion
entropy
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.)
Granted
Application number
JP2015004198A
Other languages
Japanese (ja)
Other versions
JP6382728B2 (en
Inventor
鈴木 芳典
Yoshinori Suzuki
芳典 鈴木
ブン チュンセン
Chunsen Bun
チュンセン ブン
フランク ジャン ボッセン
Jan Bossen Frank
フランク ジャン ボッセン
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/en
Publication of JP2016131280A publication Critical patent/JP2016131280A/en
Application granted granted Critical
Publication of JP6382728B2 publication Critical patent/JP6382728B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

PROBLEM TO BE SOLVED: To provide a decoding method and a decoding device which executes decoding processing parallelly by using plural threads, without using a coding method of a coding device side.SOLUTION: A decoding device 1 receives an input of a bit stream by a bit stream receiver 2, converts the bit stream to VLC data with low dependence between CTUs by an entropy converter 3, assigns a VLC data decoding process to two or more operation threads by the CTU unit, decodes in the two or more operation threads the VLC data of the CTU unit assigned by the entropy converter 3, and recovers a reproduced image.SELECTED DRAWING: Figure 1

Description

本発明は、復号方法及び復号装置に関する。   The present invention relates to a decoding method and a decoding apparatus.

一般的に、動画復号処理は複雑な処理であり、動画コンテンツの解像度拡大に伴い、高効率な動画復号処理は難しくなってきている。一方、単一のコンピュータ装置により供給される動画復号の処理能力は限られており、複数のコンピュータ装置または複数の処理コアを使う傾向がある。例えば、スマートフォンでは通常2個または4個のコアを含む中央処理装置(CPU(Central Processor Unit))を有する。   In general, the moving image decoding process is a complicated process, and with the increase in the resolution of the moving image content, a highly efficient moving image decoding process has become difficult. On the other hand, the video decoding processing capability supplied by a single computer device is limited, and there is a tendency to use a plurality of computer devices or a plurality of processing cores. For example, a smartphone usually has a central processing unit (CPU (Central Processor Unit)) that includes two or four cores.

高解像度のコンテンツをリアルタイムで滑らかな再生のために十分速く復号できるように、連続するビデオビットストリームの処理に複数コアを使う要求がある。最新の動画符号化標準方式であるH.265/HEVCは、複数コアへの復号処理の分散を促進するようにビットストリームを構成する特徴(例えば、Tiles、Wavefrontsと呼ばれる技術を利用)を有している。復号する方法として、ビットストリームのビット列を一度に復号し、復号したデータをメモリに蓄積し、復号したデータを複数コアに分散して並列に復号する方法がある。また、並列プロセッサ技術を利用する別の復号方法として、互いに並列に復号されるべきビデオブロックのバッチを定義し、複数のバッチを互いに並列に復号する復号方法が知られている(例えば、特許文献1参照)。   There is a need to use multiple cores for processing consecutive video bitstreams so that high-resolution content can be decoded fast enough for smooth playback in real time. H., the latest video encoding standard. H.265 / HEVC has a feature (for example, using a technique called Tires or Wavefronts) that configures a bit stream so as to promote the distribution of decoding processing to a plurality of cores. As a decoding method, there is a method in which a bit stream of a bit stream is decoded at a time, the decoded data is stored in a memory, and the decoded data is distributed to a plurality of cores and decoded in parallel. As another decoding method using parallel processor technology, there is known a decoding method in which batches of video blocks to be decoded in parallel are defined and a plurality of batches are decoded in parallel with each other (for example, Patent Documents). 1).

特表2009−540680号公報Special table 2009-540680

しかしながら、特許文献1に記載の復号方法では、予めバッチが定義されている必要があるが、符号化方法によって、このような特徴を利用してすべてのビットストリームが生成されるとは限らない。そのため、このような特徴を利用しないビットストリームの復号が複数コアによる処理に対応する機能を備えることが望ましい。   However, in the decoding method described in Patent Document 1, it is necessary to define a batch in advance, but not all bit streams are generated using such characteristics by the encoding method. For this reason, it is desirable that the decoding of a bitstream that does not use such features has a function corresponding to processing by a plurality of cores.

また、ビットストリームのビット列を一度に復号し、復号したデータをメモリに蓄積し、復号したデータを複数コアに分散して並列に復号する方法では、復号データを蓄積するためのメモリサイズが非常に大きくなってしまう。そのため、メモリコストの増加だけのみならず、メモリバンド幅の拡張やキャッシュミスの増加にもつながる。   Also, in the method of decoding the bit stream bitstream at a time, storing the decoded data in the memory, and distributing the decoded data to multiple cores in parallel, the memory size for storing the decoded data is very large It gets bigger. For this reason, not only the memory cost increases but also the memory bandwidth and the cache miss increase.

上記の課題を解決するために、符号化装置側の符号化方法によらずに、複数のスレッドを用いて並列的に復号処理を実行し得る復号方法及び復号装置を提供することを目的とする。   In order to solve the above-described problem, an object is to provide a decoding method and a decoding apparatus capable of performing decoding processing in parallel using a plurality of threads, regardless of the encoding method on the encoding apparatus side. .

本発明に係る復号方法は、復号装置により実行される復号方法であって、第1の符号列を入力する入力ステップと、入力ステップで入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換ステップと、2つ以上の作業スレッドにて、エントロピー変換ステップにより割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理ステップと、を備える。   A decoding method according to the present invention is a decoding method executed by a decoding apparatus, and includes an input step for inputting a first code string and a dependency between encoded blocks on the first code string input in the input step. An entropy conversion step for converting the second code string into a second code string having low reliability and assigning decoding processing of the second code string to two or more work threads in units of coding blocks, and entropy in two or more work threads An image processing step of decoding the second code string in block units allocated in the conversion step and restoring the reproduced image.

本発明に係る復号装置は、第1の符号列を入力する入力手段と、入力手段により入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換手段と、2つ以上の作業スレッドにて、エントロピー変換手段により割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理手段と、を備える。   The decoding device according to the present invention converts an input unit that inputs a first code string, and a first code string that is input by the input unit into a second code string that has low dependency between coding blocks. Entropy conversion means for assigning the decoding process of the second code string to two or more work threads in units of encoded blocks, and a second block unit assigned by the entropy conversion means in two or more work threads. Image processing means for decoding the code string and restoring the reproduced image.

本発明に係る復号方法におけるエントロピー変換ステップでは、エントロピー変換ステップでは、復号装置は、第2の符号列として、第1の符号列をビット間の依存性が低い第2の符号列に変換してもよい。   In the entropy conversion step in the decoding method according to the present invention, in the entropy conversion step, the decoding device converts the first code string as a second code string into a second code string having low inter-bit dependency. Also good.

本発明に係る復号方法におけるエントロピー変換ステップでは、復号装置は、第2の符号列として、第1の符号列を符号化要素間の依存性が低い第2の符号列に変換してもよい。   In the entropy conversion step in the decoding method according to the present invention, the decoding apparatus may convert the first code string as the second code string into a second code string having low dependency between coding elements.

本発明に係る復号方法におけるエントロピー変換ステップは、第1の符号列を解読し、第2の符号列として、符号化ブロック毎に分離して解読可能な第2の符号列に変換するサブステップと、符号化ブロック毎の第2の符号列の復号処理を、復号処理の待ち行列に追加すると共に、その復号処理を符号化ブロックの列に基づいて定まるスレッドに関連付けるサブステップと、各スレッドに関連付けられた全ての第2の符号列が復号処理されたかを判定し、処理されていない第2の符号列が存在する場合には、待ち処理を行うサブステップと、を含んでもよい。   The entropy conversion step in the decoding method according to the present invention includes a sub-step of decoding the first code string and converting it as a second code string into a second code string that can be separated and decoded for each coding block; Adding a decoding process of the second code string for each coding block to a queue of decoding processes, associating the decoding process with a thread determined based on the coding block string, and associating with each thread A sub-step of performing a waiting process may be included if it is determined whether all the second code strings that have been decoded have been decoded, and there is a second code string that has not been processed.

本発明に係る復号方法では、画像処理ステップにおける一の作業スレッドの処理は、対象の作業スレッドに関連付けられた第2の符号列の復号処理が存在するか否かを判定し、存在するまで処理待ちするサブステップと、対象の作業スレッドに関連付けられた復号対象の符号化ブロックの復元に必要な全ての符号化ブロックが復元済みであるかを判定し、全ての符号化ブロックが復元されるまで処理待ちするサブステップと、復号対象の符号化ブロックに対応して取得した第2の符号列を解読し、復号対象のブロックの再生画像を復元するサブステップと、を含んでもよい。   In the decoding method according to the present invention, the process of one work thread in the image processing step determines whether or not there is a decoding process of the second code string associated with the target work thread, and the process is performed until it exists. It is determined whether all the encoding blocks necessary for the restoration of the decoding target encoding block associated with the substep to be waited and the target work thread have been restored, and until all the coding blocks are restored. A sub-step of waiting for processing and a sub-step of decoding the second code string acquired corresponding to the encoded block to be decoded and restoring the reproduced image of the block to be decoded may be included.

本発明に係る復号方法では、第1の符号列が算術符号にて符号化されており、エントロピー変換ステップでは、復号装置は、第1の符号列を可変長符号に変換してもよい。   In the decoding method according to the present invention, the first code string is encoded with an arithmetic code, and in the entropy conversion step, the decoding apparatus may convert the first code string into a variable length code.

本発明に係る復号方法では、第1の符号列が符号化ブロックの列を跨ぐ予測を適用する差分パラメータ値の符号を含んでおり、エントロピー変換ステップでは、復号装置は、第1の符号列を、第1の符号列が符号化ブロックの列を跨ぐ予測を適用する差分パラメータを含まない第2の符号列に変換してもよい。   In the decoding method according to the present invention, the first code string includes a code of the difference parameter value to which the prediction across the sequence of the encoded block is applied, and in the entropy conversion step, the decoding apparatus converts the first code string to the first code string. The first code string may be converted into a second code string that does not include a difference parameter to which prediction is applied across a sequence of encoded blocks.

本発明に係る復号方法では、第1の符号列は可変長符号を用いて符号化されており、エントロピー変換ステップでは、復号装置は、第1の符号列の一部を固定長符号に変換してもよい。   In the decoding method according to the present invention, the first code string is encoded using a variable-length code, and in the entropy conversion step, the decoding apparatus converts a part of the first code string into a fixed-length code. May be.

本発明に係る復号方法では、第1の符号列では、復号済みデータから復元可能な一部の符号化要素の符号が省略されており、エントロピー変換ステップでは、復号装置は、第1の符号列を、省略された符号化要素の符号を省略せずに含めた符号列に変換してもよい。   In the decoding method according to the present invention, in the first code string, codes of some of the encoding elements that can be restored from the decoded data are omitted, and in the entropy conversion step, the decoding apparatus uses the first code string. May be converted into a code string including the code of the omitted encoding element without being omitted.

本発明によれば、第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換するので、符号化装置側の符号化方法によらずに、複数のスレッドを用いて並列的に復号処理を実行することができる。   According to the present invention, since the first code string is converted into the second code string having low dependency between the coding blocks, a plurality of threads are used regardless of the coding method on the coding device side. Decoding processing can be executed in parallel.

本発明の実施形態に係る復号装置1のブロック図である。It is a block diagram of the decoding apparatus 1 which concerns on embodiment of this invention. 復号装置1のハードウェア構成図である。2 is a hardware configuration diagram of a decoding device 1. FIG. CTUの例を概念的に説明する図である。It is a figure which illustrates the example of CTU conceptually. 復号装置1による処理のフローチャートである。10 is a flowchart of processing by the decoding device 1. エントロピー変換部3による処理のフローチャートである。4 is a flowchart of processing by an entropy conversion unit 3. 画像処理部5による処理のフローチャートである。5 is a flowchart of processing by the image processing unit 5.

以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明は省略する。   Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements will be denoted by the same reference numerals, and redundant description will be omitted.

図1は本発明の実施形態に係る復号装置1のブロック図である。図1に示すように、復号装置1は、ビットストリーム受付部2(入力手段)と、エントロピー変換部3(エントロピー変換手段)と、記憶部4と、画像処理部5(画像処理手段)と、表示部6とを備える。   FIG. 1 is a block diagram of a decoding apparatus 1 according to an embodiment of the present invention. As shown in FIG. 1, the decoding device 1 includes a bitstream reception unit 2 (input unit), an entropy conversion unit 3 (entropy conversion unit), a storage unit 4, an image processing unit 5 (image processing unit), And a display unit 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におけるデータの読み出しおよび書き込みを行うことで実現することができる。   Here, the hardware configuration of the decoding device 1 will be described with reference to FIG. FIG. 2 is a hardware configuration diagram of the decoding device 1. As shown in FIG. 2, the decoding device 1 physically includes one or a plurality of CPUs (Central Processing Units) 21, a main storage device such as a RAM (Random Access Memory) 22, and a ROM (Read Only Memory) 23. Hardware such as a communication module 24 that is a data transmission / reception device, an auxiliary storage device 25 such as a semiconductor memory, an input device 26 that receives user input such as an operation panel (including operation buttons) and a touch panel, and an output device 27 such as a display. It can comprise as a computer provided with the wear. Each function of the decoding device 1 in FIG. 2 is, for example, by reading one or a plurality of predetermined computer software on hardware such as the CPU 21 and the RAM 22, thereby controlling the communication module 24 and the input device 26 under the control of the CPU 21. This can be realized by operating the output device 27 and reading and writing data in the RAM 22 and the auxiliary storage device 25.

ビットストリーム受付部2は、ビットストリーム(第1の符号列)の入力を受け付ける部分である。具体的には、ビットストリーム受付部2は、符号化装置によって符号化されたビットストリームの入力を受け付ける。ビットストリーム受付部2は、ビットストリームとして、例えば、CABAC(Context-based Adaptive Binary Arithmetic Coding)データを入力する。CABACデータは、算術符号を用いて符号化されたデータである。ビットストリーム受付部2が入力を受け付けたCABACデータを記憶手段(例えば、RAM22、補助記憶装置25)に記憶しておくようにしてもよい。ビットストリーム受付部2は、CABACデータが入力された後に、当該CABACデータをエントロピー変換部3へ送出する。なお、CABACデータは、その一部(例えばスライスヘッダのデータ)が可変長符号にて符号化されている場合も含むこととする。   The bit stream receiving unit 2 is a part that receives an input of a bit stream (first code string). Specifically, the bit stream reception unit 2 receives an input of a bit stream encoded by the encoding device. The bit stream reception unit 2 inputs, for example, CABAC (Context-based Adaptive Binary Arithmetic Coding) data as a bit stream. The CABAC data is data encoded using an arithmetic code. The CABAC data received by the bitstream receiving unit 2 may be stored in a storage unit (for example, the RAM 22 or the auxiliary storage device 25). After the CABAC data is input, the bit stream reception unit 2 sends the CABAC data to the entropy conversion unit 3. The CABAC data includes a case where a part of the CABAC data (for example, slice header data) is encoded with a variable length code.

エントロピー変換部3は、ビットストリーム受付部2で入力されたビットストリームを符号化ブロック間の依存性が低い符号列に変換すると共に、変換した符号列の復号処理(ビットストリームを再生画像に復元する処理)を符号化ブロック単位で2つ以上の作業スレッドに割り当てる部分である。具体的には、エントロピー変換部3は、ビットストリーム受付部2によってCABACデータが入力されると、スライスヘッダを解析すると共に、入力されたCABACデータを解読する。また、エントロピー変換部3は、当該CABACデータを符号化ブロック間の依存性が低い符号列として、VLC(Variable Length Coding)データ(可変長符号)に変換する。すなわち、エントロピー変換部3は、算術符号であるCABACデータを可変長符号に変換する。   The entropy conversion unit 3 converts the bit stream input by the bit stream reception unit 2 into a code string having low dependency between coding blocks, and decodes the converted code string (restoring the bit stream into a reproduced image) Process) is assigned to two or more work threads in units of encoded blocks. Specifically, when CABAC data is input by the bitstream reception unit 2, the entropy conversion unit 3 analyzes the slice header and decodes the input CABAC data. Further, the entropy conversion unit 3 converts the CABAC data into VLC (Variable Length Coding) data (variable length code) as a code string having low dependency between coding blocks. That is, the entropy conversion unit 3 converts CABAC data, which is an arithmetic code, into a variable length code.

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(復号の要素)に関連したメモリを示す必要がある。   The arithmetic processing load (for example, the amount of calculation) required for reading / writing VLC data is smaller than the arithmetic processing load required for reading / writing CABAC data. Since the entropy conversion unit 3 converts the CABAC data into VLC data, each segment of the VLC data (for example, VLC data corresponding to each CTU (Coding Tree Unit)) can be read independently. The entropy conversion unit 3 converts VLC data in units of CTUs. Here, the CTU is a predetermined coding unit (coding element unit) constituting a picture, and is a block of 64 × 64 pixels, for example. This block size is not limited to 64 × 64 pixels, and may be 8 × 8 pixels, 16 × 16 pixels, and 32 × 32 pixels. Note that the data of each CTU is not necessarily a fixed length. That is, the boundary between two consecutive CTU data is usually not known from the data size. Therefore, it is necessary to store an additional pointer in order to randomly access the boundary between CTU data. For example, one pointer needs to indicate the memory associated with one or a group of CTUs (decoding elements) defined in one element of decoding.

このように、エントロピー変換部3は、CABACデータを、符号化要素間の依存性が低い符号列であるVLCデータに変換(再符号化)する。すなわち、エントロピー変換部3は、中間の圧縮されたストリームである中間の圧縮フォーマットとして、VLCデータに変換する。この結果、エントロピー変換部3は、CTU間の依存性が低く、ビット間の依存性も低いデータに変換することができる。なお、エントロピー変換部3は、変換したVLCデータを記憶部4へ蓄積する。すなわち、記憶部4は、VLCデータを記憶し、画像処理部5がアクセス可能な状態にする。よって、エントロピー変換部3は、画像処理部5に対して、CTU単位で分離して変換したVLCデータを解読させることができる。   In this way, the entropy conversion unit 3 converts (re-encodes) the CABAC data into VLC data that is a code string with low dependency between encoding elements. That is, the entropy conversion unit 3 converts the data into VLC data as an intermediate compression format that is an intermediate compressed stream. As a result, the entropy conversion unit 3 can convert data with low dependency between CTUs and low dependency between bits. The entropy conversion unit 3 accumulates the converted VLC data in the storage unit 4. That is, the storage unit 4 stores the VLC data and makes the image processing unit 5 accessible. Therefore, the entropy conversion unit 3 can cause the image processing unit 5 to decode the VLC data separated and converted in units of CTUs.

なお、VLCデータの代わりにCABACデータを復号したデータもCTU間の依存性が低いデータであるが、VLCデータに比較してデータ量が非常に大きい。CABACデータをVLCデータに変換することにより、記憶部4に蓄積するデータサイズを大幅に低減し、復号装置1のメモリバンド幅を小さくし、キャッシュミスの発生を抑制できる。   Note that data obtained by decoding CABAC data instead of VLC data is also data with low dependency between CTUs, but the amount of data is very large compared to VLC data. By converting the CABAC data into VLC data, the data size accumulated in the storage unit 4 can be greatly reduced, the memory bandwidth of the decoding device 1 can be reduced, and the occurrence of a cache miss can be suppressed.

続いて、エントロピー変換部3が、再符号化する具体例を説明する。ビットストリーム受付部2が受け付けたビットストリームがバイナリー算術符号器にて圧縮されていると仮定する。この場合、エントロピー変換部3は、1つの手法として、H.265/HEVC符号化標準方式にみられるように、ビットストリームから得られるBIN列を取得し、ビット列として蓄積することが考えられる。しかしながら、この手法はランダムアクセス性が制限されるため十分ではない。例えば、量子化パラメータQPの復元については、過去に復号した要素との依存性がある(例えば、あるCTU列の最初の要素のQP値は,直前に復元されたCTU列の最後の要素のQP値と依存性がある)。このように、量子化パラメータQP値は、符号化ブロックの列を跨ぐ予測を適用する差分パラメータ値である。   Subsequently, a specific example in which the entropy conversion unit 3 performs re-encoding will be described. It is assumed that the bit stream received by the bit stream receiving unit 2 is compressed by a binary arithmetic encoder. In this case, the entropy conversion unit 3 uses H.264 as one method. As seen in the H.265 / HEVC encoding standard system, it is conceivable to acquire a BIN string obtained from a bit stream and store it as a bit string. However, this method is not sufficient because random accessibility is limited. For example, the restoration of the quantization parameter QP depends on the elements decoded in the past (for example, the QP value of the first element of a certain CTU sequence is the QP of the last element of the CTU sequence restored immediately before. Value and dependency). As described above, the quantization parameter QP value is a difference parameter value to which a prediction across a sequence of encoded blocks is applied.

ここで、中間の圧縮フォーマット(中間の圧縮ストリーム)でQP値を別の方法で符号化することによって独立性を高める手段(差分パラメータを含まない手段)がいくつかあり、以下に3つの方法を列挙する。
(1)全てのQP値を差分QP値ではなく絶対値として符号化する。
(2)CTU列の最初の要素について差分QP値ではなくQP値そのものを符号化する。
(3)CTU列の最初の要素では、ある定義した参照値からの差分QP値を伝送する。例えば、定義した参照値を26のような中間値(QP値の範囲は0〜51)やスライスヘッダの情報から得られる初期値とする。
Here, there are some means (means not including a difference parameter) for increasing independence by encoding the QP value by another method in an intermediate compression format (intermediate compressed stream). Enumerate.
(1) All QP values are encoded as absolute values instead of differential QP values.
(2) The QP value itself is encoded instead of the differential QP value for the first element of the CTU sequence.
(3) In the first element of the CTU sequence, a differential QP value from a defined reference value is transmitted. For example, the defined reference value is an intermediate value such as 26 (QP value range is 0 to 51) or an initial value obtained from slice header information.

上記(1)〜(3)のような処理をすることにより、エントロピー変換部3が、CTU間の依存性が低いビットストリームに変換するので、画像処理部5が変換したビットストリームを符号化ブロック単位で分離して解読することが可能となる。   The entropy conversion unit 3 converts the bit stream converted by the image processing unit 5 into a coding block because the entropy conversion unit 3 converts the bit stream having low dependency between the CTUs by performing the processes (1) to (3). It becomes possible to separate and decipher in units.

続いて、H.265/HEVC標準のコンテキストについて,エントロピー変換部3が、中間の圧縮フォーマット(中間の圧縮ストリーム)を簡単化する方法について説明する。   Subsequently, H.C. Regarding the context of the H.265 / HEVC standard, a method in which the entropy conversion unit 3 simplifies an intermediate compression format (intermediate compressed stream) will be described.

例えば、ビットストリーム受付部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で入力されたビットストリームが可変長符号である場合に、ビットストリームの一部を固定長符号に変換するようにしてもよい。   For example, when the bit stream input by the bit stream reception unit 2 is encoded using a variable length code, the entropy conversion unit 3 uses a variable length code instead of the variable length code for a certain syntax element (encoding element). A fixed length code may be used. For example, the last (significant) coefficient position in the block (last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix and last_sig_coeff_y_suffix syntax elements) can be represented by a fixed length code. Here, the code length depends on the conversion size. By this processing, the stream can be converted into a stream with low dependency between encoded blocks. For example, even when an arithmetic code is used for the intermediate format, by making the last coefficient of the block a fixed-length code, the boundary between the CTUs of the bit string becomes clear and the first bit of the CTU can be accessed at random. Thus, the entropy conversion unit 3 may convert a part of the bit stream into a fixed length code when the bit stream input by the bit stream reception unit 2 is a variable length code.

また、エントロピー変換部3は、Significance map flag sig_coeff_flagのための推測ルールを中間の圧縮フォーマット(中間の圧縮ストリーム)に含めず、4×4サブブロックに常に16個のsignificance map bitsを伝送するようにしてもよい(例えば、1〜15番目のビット値が0であっても、16番目のビットを1であると推察せずに、0を伝送する)。エントロピー変換部3は、上述の処理により、符号化要素間の依存性が少ない中間の圧縮ストリームに変換するので、復号処理の複雑さを緩和させることができる。このように、エントロピー変換部3は、入力されたビットストリームに、符号済みデータから復元可能な一部の符号化要素の符号が省略されていても、省略された符号を省略せずに含めた符号列に変換する。   Further, the entropy conversion unit 3 does not include the estimation rule for the significance map flag sig_coeff_flag in the intermediate compression format (intermediate compressed stream), and always transmits 16 significance map bits to the 4 × 4 sub-block. (For example, even if the 1st to 15th bit values are 0, the 16th bit is not inferred as 1 and 0 is transmitted). The entropy conversion unit 3 converts the compressed stream into an intermediate compressed stream with less dependency between the encoded elements by the above-described processing, so that the complexity of the decoding process can be reduced. In this way, the entropy conversion unit 3 includes the omitted codes without omitting the codes of some of the encoding elements that can be restored from the encoded data in the input bitstream. Convert to code string.

また、エントロピー変換部3は、サインフラグ coeff_sign_flagのための推測ルールを中間の圧縮フォーマット(中間の圧縮ストリーム)に含めないようにしてもよい。ある条件の元では、4×4サブブロックの最後のサインフラグは自明となるため符号化する必要がないが、エントロピー変換部3は、中間の圧縮フォーマットにはすべての係数のサインビットを含める。エントロピー変換部3は、この処理により、ビット間の依存性が低く、復号時の推測処理が少ないストリームに変換するので、復号処理の複雑さを緩和させることができる。このように、エントロピー変換部3は、入力されたビットストリームに、符号済みデータから復元可能な一部の符号化要素の符号が省力されていても、省略された符号を省略せずに含めた符号列に変換する。   Further, the entropy conversion unit 3 may not include the estimation rule for the sign flag coeff_sign_flag in the intermediate compression format (intermediate compressed stream). Under certain conditions, the last sign flag of the 4 × 4 sub-block is self-explanatory and need not be encoded, but the entropy conversion unit 3 includes the sign bits of all the coefficients in the intermediate compression format. With this process, the entropy conversion unit 3 converts the stream into a stream having low dependency between bits and less guessing processing at the time of decoding, and thus the complexity of the decoding process can be reduced. In this way, the entropy conversion unit 3 includes the omitted code without omission even if the codes of some encoding elements that can be restored from the encoded data are saved in the input bitstream. Convert to code string.

また、エントロピー変換部3は、単純で規則的な可変長コード(例えば,Exponential Golomb code)を係数の符号化に利用するようにしてもよい(ただし、ライスパラメータの適応化を使用しない)。この処理によりビット間の依存性が低いストリームに変換できる。   Further, the entropy conversion unit 3 may use a simple and regular variable length code (for example, Exponential Golomb code) for encoding the coefficient (however, adaptation of the Rice parameter is not used). By this processing, it can be converted into a stream with low dependency between bits.

また、エントロピー変換部3は、中間圧縮ストリームの解読を容易にするために,シンタックス要素の順番を入れ替えてもよい。例えば、エントロピー変換部3は、4×4ブロック内の1つのcoefficientの位置のパスを考慮するときには、1より大きい係数や2より大きい係数のフラグや残りの係数の中間にサインビットを挟まないようにしてもよい。この処理はsingle unary decode演算の利用により実現できる。エントロピー変換部3は、上述の処理により、符号化要素間の依存性が少ないストリームに変換できるので、復号処理の複雑さを緩和させることができる。このように、エントロピー変換部3は、ビットストリームの一部が1つの単項演算で復号可能となるように入れ替えた符号列に変換する。   In addition, the entropy conversion unit 3 may change the order of the syntax elements in order to facilitate the decoding of the intermediate compressed stream. For example, when the entropy conversion unit 3 considers a path at the position of one coefficient in a 4 × 4 block, the entropy conversion unit 3 does not put a sign bit between a flag of a coefficient greater than 1, a coefficient greater than 2, or the remaining coefficient. It may be. This processing can be realized by using a single unary decode operation. Since the entropy conversion unit 3 can convert the stream into a stream with less dependency between the encoding elements by the above-described process, the complexity of the decoding process can be reduced. As described above, the entropy conversion unit 3 converts the bit stream into a replaced code string so that a part of the bit stream can be decoded by one unary operation.

また、エントロピー変換部3は、符号化ブロック毎に対応するVLCデータの解読処理(復号処理)を待ち行列(キュー)へ追加すると共に、復号処理を符号化ブロックの列に基づいて対応する作業スレッドを関連付け(マッピング)を行い、その旨を画像処理部5へ通知する。上記待ち行列は、後述する画像処理部5が実行する複数の作業スレッドについての待ち行列である。ここで、作業スレッドとは、VLCデータを解読し、対応する要素(CTU)の復元処理を実行するためのスレッドである。また、複数の作業スレッドが存在し、それぞれの作業スレッドは独立して並列に動作するものとする。   In addition, the entropy conversion unit 3 adds a decoding process (decoding process) of VLC data corresponding to each encoded block to a queue (queue), and also performs a decoding process based on the sequence of encoded blocks. Are associated (mapped) and notified to the image processing unit 5. The queue is a queue for a plurality of work threads executed by the image processing unit 5 described later. Here, the work thread is a thread for decoding the VLC data and executing a corresponding element (CTU) restoration process. Also, there are a plurality of work threads, and each work thread operates independently and in parallel.

ここで、エントロピー変換部3が、符号化ブロックの列に基づいて作業スレッドを関連付ける例について、図3を用いて説明する。図3は、CTUの列(横並びの符号化ブロックで構成される符号化ブロック列)を示す。各CTUは、ラベル付けがなされている(各CTUを一意に識別される識別子が定まっている)。図3の例では、各CTUに対して、各列と、同一列の順番(図3の左から右方向へ付される番号)とからなるラベル付けがなされる。例えば、A列の最も左のCTUには、「A1」というラベルが付けられている。   Here, an example in which the entropy conversion unit 3 associates work threads based on a sequence of encoded blocks will be described with reference to FIG. FIG. 3 shows a sequence of CTUs (encoded block sequence composed of side-by-side encoded blocks). Each CTU is labeled (an identifier that uniquely identifies each CTU is determined). In the example of FIG. 3, each CTU is labeled with each column and the order of the same column (number given from left to right in FIG. 3). For example, the leftmost CTU in column A is labeled “A1”.

エントロピー変換部3は、CTUの列と、作業スレッド番号(作業スレッド毎に一意に定められている番号)とに基づいて、各作業スレッドが処理対象とするCTUを定める。すなわち、エントロピー変換部3は、CTUと作業スレッドとを関連付ける。   The entropy conversion unit 3 determines a CTU to be processed by each work thread based on the CTU column and the work thread number (a number uniquely determined for each work thread). That is, the entropy conversion unit 3 associates the CTU and the work thread.

エントロピー変換部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の再生画像の復元処理を実施する。   When the entropy conversion unit 3 assumes that the number of work threads is N, a thread number is assigned to a CTU in the CTU sequence R (for example, a remainder value obtained by dividing the sequence R by N). For example, when the number of work threads constituting the image processing unit 5 described later is two, the entropy conversion unit 3 assigns odd-numbered CTUs to the first work thread, and assigns even-numbered CTUs to the second Assign to a work thread. As described above, when the entropy conversion unit 3 associates each work thread with the CTU, the associated result is registered in the storage unit 4 (even if the entropy conversion unit 3 and the image processing unit 5 store the result). Good). The image processing unit 5 performs the decoding process for each work thread based on this association. That is, in the example of FIG. 3, the image processing unit 5 performs restoration processing of the reproduction images of the CTUs indicated by A1, A2, A3, A4, and C1 as the first work thread, and B1 as the second work thread. And CTU reconstructed image data indicated by B2.

また、エントロピー変換部3は、各スレッドに関連付けられた全ての第2の符号列(VLCデータ)が復号されたか否かを判定し、処理されていないVLCデータが存在する場合には、待ち処理を行う。この処理は、エントロピー変換部3による処理と、上述の作業スレッドによる処理とを同期するための処理となる。エントロピー変換部3は、待ち処理として、公知のsleepコマンドを実行することにより実現する。また、エントロピー変換部3は、pthreadライブラリによる条件変数を使って待ち処理を行ってもよい。   Also, the entropy conversion unit 3 determines whether all the second code strings (VLC data) associated with each thread have been decoded, and when there is unprocessed VLC data, wait processing I do. This process is a process for synchronizing the process by the entropy conversion unit 3 and the process by the above-described work thread. The entropy conversion unit 3 is realized by executing a known sleep command as a waiting process. Further, the entropy conversion unit 3 may perform a waiting process using a condition variable by the pthread library.

記憶部4は、エントロピー変換部3が変換したVLCデータを記憶する部分である。また、記憶部4は、エントロピー変換部3によって定義された、各スレッドとCTUとの関連付けを記憶する部分である。画像処理部5は、記憶部4が記憶する各作業スレッドとCTUとの関連付けに基づいて、各作業スレッド単位でCTUの再生画像の復元処理を行う(画像処理部5に各作業スレッドとCTUとの関連付けを記録しておいてもよい)。   The storage unit 4 is a part that stores the VLC data converted by the entropy conversion unit 3. The storage unit 4 is a part that stores the association between each thread and the CTU defined by the entropy conversion unit 3. Based on the association between each work thread stored in the storage unit 4 and the CTU, the image processing unit 5 performs restoration processing of the reconstructed image of the CTU in units of each work thread (the image processing unit 5 is provided with each work thread and CTU). Record the association).

画像処理部5は、2つ以上の作業スレッドにて、エントロピー変換部3により割り当てられたブロック単位のVLCデータを解読し、再生画像を復元する(すなわち、復号処理をする)部分である。画像処理部5は、複数の作業スレッドについて、各作業スレッドに割り当てられた要素の復元処理を並列に実施する。画像処理部5は、例えば、複数のCPUにより実装され、CPUそれぞれが、作業スレッドに割り当てられたCTUの再生画像の復元処理をする。また、画像処理部5は、エントロピー変換部3からの通知に応じて、復号処理をする。   The image processing unit 5 is a part that decodes VLC data in block units allocated by the entropy conversion unit 3 and restores a reproduced image (that is, performs decoding processing) by two or more work threads. The image processing unit 5 performs, in parallel, a restoration process of elements assigned to each work thread for a plurality of work threads. The image processing unit 5 is implemented by, for example, a plurality of CPUs, and each of the CPUs performs a restoration process of the reproduced image of the CTU assigned to the work thread. The image processing unit 5 performs a decoding process in response to the notification from the entropy conversion unit 3.

画像処理部5は、対象の処理スレッドに関連付けられたVLCデータが存在するか否かを判定し、存在するまで処理を待つ。具体的には、画像処理部5は、記憶部4を参照して、自己のスレッドに割り当てられたCTUがあるか否かを判定し、存在するまで処理を待つ。この待ち処理としては、上述の公知のsleepコマンドを実行したり、polling処理を実行したりする。また、画像処理部5は、条件変数に基づいた待ち処理をしてもよい。   The image processing unit 5 determines whether there is VLC data associated with the target processing thread, and waits for processing until it exists. Specifically, the image processing unit 5 refers to the storage unit 4 to determine whether there is a CTU assigned to its own thread, and waits for processing until it exists. As this waiting process, the above-mentioned known sleep command is executed, or a polling process is executed. Further, the image processing unit 5 may perform a waiting process based on the condition variable.

画像処理部5は、対象の処理スレッドに関連付けられたVLCデータが存在する場合、対象の作業スレッドに関連付けられた復号対象の符号化ブロックの復元に必要な全ての符号化ブロックが復元済みであるかを判定し、全ての符号化ブロックが復元されるまで処理待ちをする。   When there is VLC data associated with the target processing thread, the image processing unit 5 has restored all the encoding blocks necessary for restoring the decoding target encoding block associated with the target work thread. And waits until all the encoded blocks are restored.

具体的には、画像処理部5は、処理対象となるVLCデータの復号により復元されるCTUに関わる(すなわち依存する)全ての要素(CTU)が復元済みであるか否かを判定する。このような依存性は、イントラ予測や動きベクトル復元、あるいは交差する要素演算を伴うほかの処理から発生し得る。   Specifically, the image processing unit 5 determines whether all the elements (CTUs) related to (that is, dependent on) the CTU restored by decoding the VLC data to be processed have been restored. Such dependencies can arise from other processes involving intra prediction, motion vector reconstruction, or intersecting element operations.

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を復元処理する。   H. In the H.265 / HEVC standard, restoration of CTUs is required after restoration of neighboring CTUs (when belonging to the same tile). Reconstructed adjacent CTUs indicate the CTUs immediately to the left, upper left, immediately above, and upper right of the current CTU. This will be described using the example of the CTU shown in FIG. For example, assume that 3 threads have restored 3 CTU sequences and that elements A1, A2, A3 and B1 (blocks darkly drawn in the figure) are marked as restored. Thread 1 restores element A4 and thread 2 processes element B2 (all dependent elements A1, A2, A3 and B1 are marked as processed). Since the dependency of the element C1 on B2 has not yet been resolved, the thread 3 is waiting for the restoration process of the element C1. If B2 is marked as processed by thread 2, thread 3 restores element C1.

画像処理部5は、処理対象となるVLCデータの復号により復元されるCTUに関わる(依存する)全ての要素(CTU)が復元されたと判定した場合、復号対象のCTUに対応して取得したVLCデータを解読し、復号対象のCTUの再生画像を復元する。具体的には、画像処理部5は、当該復号処理として、対象となるVLCデータを解析したり、動き補償を実施したり、イントラ予測、逆量子化、逆変換、残差信号と予測信号の加算等を実施する。なお、画像処理部5は、復元した再生画像を表示部6へ送出する。表示部6は、画像処理部5から取得した再生画像を表示する。   If the image processing unit 5 determines that all elements (CTUs) related to (relied upon) the CTU restored by decoding the VLC data to be processed have been restored, the VLC acquired corresponding to the CTU to be decoded The data is decoded, and the reproduced image of the decoding target CTU is restored. Specifically, as the decoding processing, the image processing unit 5 analyzes target VLC data, performs motion compensation, intra prediction, inverse quantization, inverse transformation, residual signal and prediction signal Addition is performed. The image processing unit 5 sends the restored reproduced image to the display unit 6. The display unit 6 displays the reproduced image acquired from the image processing unit 5.

続いて、図4〜6のフローチャートを用いて、本実施形態に係る復号装置1で実行される復号方法の処理及び動作を説明する。図4に記載のフローチャートは、復号装置1による復号処理全体のフローチャートである。   Subsequently, processing and operations of the decoding method executed by the decoding device 1 according to the present embodiment will be described using the flowcharts of FIGS. The flowchart illustrated in FIG. 4 is a flowchart of the entire decoding process performed by the decoding device 1.

まず、ビットストリーム受付部2は、CABACデータの入力を受け付けられる(ステップS1:入力ステップ)。そして、エントロピー変換部3は、CABACデータを解析してVLCデータに変換する(ステップS2:エントロピー変換ステップ)。続いて、エントロピー変換部3は、変換したVLCデータをCTU単位で作業スレッドに関連付ける(ステップS3:エントロピー変換ステップ)。続いて、画像処理部5は、各CTUのVLCデータを解読し、復号画像(再生画像)を復元し(ステップS4:画像処理ステップ)、処理を終了する。なお、画像処理部5は、復号画像を表示部6へ送出し、表示部6に復号画像が表示される。   First, the bitstream accepting unit 2 accepts input of CABAC data (step S1: input step). Then, the entropy conversion unit 3 analyzes the CABAC data and converts it into VLC data (step S2: entropy conversion step). Subsequently, the entropy conversion unit 3 associates the converted VLC data with the work thread in units of CTU (step S3: entropy conversion step). Subsequently, the image processing unit 5 decodes the VLC data of each CTU, restores the decoded image (reproduced image) (step S4: image processing step), and ends the process. The image processing unit 5 sends the decoded image to the display unit 6, and the decoded image is displayed on the display unit 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)、処理を終了する。   Next, details of the process performed by the entropy conversion unit 3 among the processes and operations executed by the decoding device 1 according to the present embodiment will be described using the flowchart of FIG. 5. The flowchart shown in FIG. 5 is a flowchart showing details of the processing in steps S2 and S3 of the flowchart shown in FIG. First, when the entropy conversion unit 3 receives input of CABAC data by the bitstream reception unit 2, the entropy conversion unit 3 analyzes the slice header (step S11). Subsequently, the entropy conversion unit 3 analyzes the CABAC data (step S12). The amount of data analyzed at this time corresponds to one element (CTU). Then, the entropy conversion unit 3 re-encodes the CABAC data as VLC data, and accumulates the VLC data in the storage unit 4 (step S13). Then, the entropy conversion unit 3 adds a restoration process of an element (CTU) corresponding to the converted (recoded) VLC data to the queue (step S14). The entropy conversion unit 3 determines whether there is additional data (step S15). If there is additional data (step S15; YES), the process proceeds to step S12. When there is no additional data (step S15; NO), the entropy conversion unit 3 has restored all the elements (CTU) necessary for restoring the element (CTU) to be decoded by the image processing unit 5 It is determined whether or not (step S16). When all the elements have not been restored (step S16; NO), the entropy conversion unit 3 performs a waiting process (step S17), and determines again whether all the elements have been restored (step S16). On the other hand, when all the elements have been restored (step S16; YES), the process ends.

続いて、図6のフローチャートを用いて、本実施形態に係る復号装置1で実行される処理及び動作の内、画像処理部5が行う処理の詳細を説明する。図6に示すフローチャートは、図4に示したフローチャートのステップS4の処理の詳細を示すフローチャートである。まず、画像処理部5は、キュー内に処理対象の要素(CTU)があるか否かを判定する(ステップS21)。キュー内に処理対象の要素が無い場合(ステップS21;NO)、画像処理部5は、キュー内に処理対象の要素が存在するまで待ち処理を行い(ステップS22)、再度ステップS21へ進む。   Next, details of processing performed by the image processing unit 5 among processing and operations executed by the decoding device 1 according to the present embodiment will be described using the flowchart of FIG. 6. The flowchart shown in FIG. 6 is a flowchart showing details of the process in step S4 of the flowchart shown in FIG. First, the image processing unit 5 determines whether or not there is an element to be processed (CTU) in the queue (step S21). When there is no element to be processed in the queue (step S21; NO), the image processing unit 5 performs a waiting process until the element to be processed exists in the queue (step S22), and the process proceeds to step S21 again.

キュー内に処理対象の要素がある場合(ステップS21;YES)、画像処理部5は、キューから要素(CTU)に対応するVLCデータを取得する(ステップS23)。続いて、画像処理部5は、当該要素の復元に必要な全ての要素が復元されたか否かを判定する(ステップS24)。画像処理部5は、処理対象の要素の復元に必要な全ての要素が復元されていない場合(ステップS24;NO)、待ち処理を実行し(ステップS25)、再度ステップS24へ進む。   When there is an element to be processed in the queue (step S21; YES), the image processing unit 5 acquires VLC data corresponding to the element (CTU) from the queue (step S23). Subsequently, the image processing unit 5 determines whether or not all the elements necessary for restoring the element have been restored (step S24). If all the elements necessary for restoring the processing target element have not been restored (step S24; NO), the image processing unit 5 executes a waiting process (step S25), and proceeds to step S24 again.

処理対象の要素に関わる全ての要素が復元されている場合(ステップS24;YES)、画像処理部5は、当該要素に関するVLCデータを解析する(ステップS26)。続いて、画像処理部5は、復号した動きデータを保存し(ステップS27)、動き補償を実施する(ステップS28)。続いて、画像処理部5は、予測信号加算や、イントラ予測、逆量子化、逆変換処理による残差信号(誤差信号)の復元、並びに残差信号と予測信号との加算による画像復元を実施する(ステップS29)。続いて、画像処理部5は、デブロッキング処理を実施する(ステップS30)。続いて、画像処理部5は、インループフィルタ処理を実施する(ステップS31)。続いて、画像処理部5は、要素が復元済みである旨のマークをする(ステップS32)。続いて、画像処理部5は、該当スレッドにおける処理が全て終了したか否かを判定し(ステップS33)、終了していない場合(ステップS33;NO)、ステップS21へ進み、全て終了している場合(ステップS33;YES)、処理を終了する。   When all the elements related to the element to be processed have been restored (step S24; YES), the image processing unit 5 analyzes the VLC data related to the element (step S26). Subsequently, the image processing unit 5 stores the decoded motion data (step S27) and performs motion compensation (step S28). Subsequently, the image processing unit 5 performs prediction signal addition, restoration of a residual signal (error signal) by intra prediction, inverse quantization, and inverse transformation processing, and image restoration by adding the residual signal and the prediction signal. (Step S29). Subsequently, the image processing unit 5 performs a deblocking process (step S30). Subsequently, the image processing unit 5 performs an in-loop filter process (step S31). Subsequently, the image processing unit 5 marks that the element has been restored (step S32). Subsequently, the image processing unit 5 determines whether or not all the processes in the thread have been completed (step S33). If the process has not been completed (step S33; NO), the process proceeds to step S21, where all the processes are completed. If so (step S33; YES), the process is terminated.

上述のように、復号装置1は、CABACデータをVLCデータへ変換することにより、入力を受け付けたビットストリームを再符号化し、当該再符号化したデータを記憶部4で記憶するので、圧縮処理をして少ないメモリサイズで記憶することができる。また、復号装置1は、複数の作業スレッドが並行して動作するように、変換したVLCデータの復号処理をCTU単位で作業スレッドに関連付けており、データ間の依存性を極力減らすことができる。   As described above, the decoding device 1 converts the CABAC data into VLC data, re-encodes the bit stream that has received the input, and stores the re-encoded data in the storage unit 4. And can be stored with a small memory size. In addition, the decoding apparatus 1 associates the decoded processing of the VLC data with the work threads in units of CTUs so that a plurality of work threads operate in parallel, and can reduce the dependency between the data as much as possible.

なお、上述の実施形態では、H.265/HEVC動画符号化標準方式に基づいて記載したが、H.264/AVCのような他の符号化方式に適用してもよい。この場合、CTUの代わりにマクロブロックを適用することになる。また、上述の実施形態では、エントロピー変換部3にて変換されるVLCデータに対応する要素や画像処理部5における処理対象の要素を1CTU単位とする場合について述べたが、複数のCTUからなる1グループのCTUとして画像信号処理を行うことも可能である。   In the above-described embodiment, the H.264 standard. Although described based on the H.265 / HEVC video encoding standard system, The present invention may be applied to other encoding schemes such as H.264 / AVC. In this case, a macroblock is applied instead of the CTU. In the above-described embodiment, the case where the element corresponding to the VLC data converted by the entropy conversion unit 3 or the element to be processed in the image processing unit 5 is set as one CTU unit is described. It is also possible to perform image signal processing as a group CTU.

1…復号装置、2…ビットストリーム受付部、3…エントロピー変換部、4…記憶部、5…画像処理部、6…表示部。   DESCRIPTION OF SYMBOLS 1 ... Decoding apparatus, 2 ... Bit stream reception part, 3 ... Entropy conversion part, 4 ... Memory | storage part, 5 ... Image processing part, 6 ... Display part.

Claims (10)

復号装置により実行される復号方法であって、
第1の符号列を入力する入力ステップと、
前記入力ステップで入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換ステップと、
前記2つ以上の作業スレッドにて、前記エントロピー変換ステップにより割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理ステップと、
を備える、復号方法。
A decoding method executed by a decoding device,
An input step of inputting a first code string;
The first code string input in the input step is converted into a second code string having low dependency between coding blocks, and the decoding process of the second code string is performed in two or more coding block units. An entropy conversion step assigned to the work thread;
In the two or more work threads, an image processing step of decoding a second code string in block units allocated by the entropy conversion step and restoring a reproduced image;
A decryption method.
前記エントロピー変換ステップでは、前記復号装置は、前記第2の符号列として、第1の符号列をビット間の依存性が低い第2の符号列に変換する、請求項1に記載の復号方法。   2. The decoding method according to claim 1, wherein, in the entropy conversion step, the decoding apparatus converts the first code string into a second code string having low dependency between bits as the second code string. 前記エントロピー変換ステップでは、前記復号装置は、前記第2の符号列として、第1の符号列を符号化要素間の依存性が低い第2の符号列に変換する、請求項1又は2に記載の復号方法。   The said entropy conversion step WHEREIN: The said decoding apparatus converts a 1st code sequence into a 2nd code sequence with low dependence between encoding elements as said 2nd code sequence. Decryption method. 前記エントロピー変換ステップは、
第1の符号列を解読し、前記第2の符号列として、符号化ブロック毎に分離して解読可能な第2の符号列に変換するサブステップと、
前記符号化ブロック毎の第2の符号列の復号処理を、復号処理の待ち行列に追加すると共に、その復号処理を符号化ブロックの列に基づいて定まるスレッドに関連付けるサブステップと、
各スレッドに関連付けられた全ての第2の符号列が復号処理されたかを判定し、処理されていない第2の符号列が存在する場合には、待ち処理を行うサブステップと、
を含む、請求項1〜3の何れか一項に記載の復号方法。
The entropy conversion step includes
A sub-step of decoding a first code string and converting the second code string into a second code string that can be separated and decoded for each coding block;
Adding a decoding process of the second code string for each coding block to a queue of decoding processes and associating the decoding process with a thread determined based on the coding block string;
It is determined whether all the second code strings associated with each thread have been decoded. If there is a second code string that has not been processed, a sub-step for performing a waiting process;
The decoding method according to any one of claims 1 to 3, further comprising:
前記画像処理ステップにおける一の作業スレッドの処理は、
対象の作業スレッドに関連付けられた第2の符号列の復号処理が存在するか否かを判定し、存在するまで処理待ちするサブステップと、
対象の作業スレッドに関連付けられた復号対象の符号化ブロックの復元に必要な全ての符号化ブロックが復元済みであるかを判定し、全ての符号化ブロックが復元されるまで処理待ちするサブステップと、
前記復号対象の符号化ブロックに対応して取得した第2の符号列を解読し、復号対象のブロックの再生画像を復元するサブステップと、
を含む請求項1〜3の何れか一項に記載の復号方法。
The processing of one work thread in the image processing step is as follows:
A sub-step of determining whether there is a decoding process of the second code string associated with the target work thread and waiting for the process until it exists;
A sub-step of determining whether all the coding blocks necessary for restoring the decoding target coding block associated with the target work thread have been restored, and waiting for processing until all the coding blocks are restored; and ,
A sub-step of decoding a second code string acquired corresponding to the encoded block to be decoded and restoring a reproduced image of the block to be decoded;
The decoding method according to any one of claims 1 to 3, further comprising:
前記第1の符号列が算術符号にて符号化されており、
前記エントロピー変換ステップでは、前記復号装置は、
前記第1の符号列を可変長符号に変換する、請求項1〜5の何れか一項に記載の復号方法。
The first code string is encoded with an arithmetic code;
In the entropy conversion step, the decoding device comprises:
The decoding method according to any one of claims 1 to 5, wherein the first code string is converted into a variable length code.
前記第1の符号列が符号化ブロックの列を跨ぐ予測を適用する差分パラメータ値の符号を含んでおり、
前記エントロピー変換ステップでは、前記復号装置は、
前記第1の符号列を、前記符号化ブロックの列を跨ぐ予測を適用する差分パラメータを含まない第2の符号列に変換する、請求項1〜5の何れか一項に記載の復号方法。
The first code sequence includes a sign of a difference parameter value to apply prediction across a sequence of encoded blocks;
In the entropy conversion step, the decoding device comprises:
The decoding method according to any one of claims 1 to 5, wherein the first code string is converted into a second code string that does not include a difference parameter to which prediction across the coded block string is applied.
前記第1の符号列は可変長符号を用いて符号化されており、
前記エントロピー変換ステップでは、前記復号装置は、
前記第1の符号列の一部を固定長符号に変換する、請求項1〜5の何れか一項に記載の復号方法。
The first code string is encoded using a variable-length code;
In the entropy conversion step, the decoding device comprises:
The decoding method according to any one of claims 1 to 5, wherein a part of the first code string is converted into a fixed-length code.
前記第1の符号列では、復号済みデータから復元可能な一部の符号化要素の符号が省略されており、
前記エントロピー変換ステップでは、前記復号装置は、
前記第1の符号列を、前記省略された符号化要素の符号を省略せずに含めた符号列に変換する、請求項1〜5の何れか一項に記載の復号方法。
In the first code string, codes of some coding elements that can be restored from the decoded data are omitted,
In the entropy conversion step, the decoding device comprises:
The decoding method according to any one of claims 1 to 5, wherein the first code string is converted into a code string including a code of the omitted encoding element without being omitted.
第1の符号列を入力する入力手段と、
前記入力手段により入力された第1の符号列を符号化ブロック間の依存性が低い第2の符号列に変換すると共に、第2の符号列の復号処理を符号化ブロック単位で2つ以上の作業スレッドに割り当てるエントロピー変換手段と、
前記2つ以上の作業スレッドにて、前記エントロピー変換手段により割り当てられたブロック単位の第2の符号列を解読し、再生画像を復元する画像処理手段と、を備える復号装置。
Input means for inputting the first code string;
The first code string input by the input means is converted into a second code string having low dependency between coding blocks, and the decoding process of the second code string is performed in two or more coding block units. An entropy conversion means assigned to a work thread;
A decoding apparatus comprising: image processing means for decoding a second code string in block units allocated by the entropy conversion means and restoring a reproduced image in the two or more work threads.
JP2015004198A 2015-01-13 2015-01-13 Decoding method and decoding apparatus Active JP6382728B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015004198A JP6382728B2 (en) 2015-01-13 2015-01-13 Decoding method and decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015004198A JP6382728B2 (en) 2015-01-13 2015-01-13 Decoding method and decoding apparatus

Publications (2)

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

Family

ID=56414856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015004198A Active JP6382728B2 (en) 2015-01-13 2015-01-13 Decoding method and decoding apparatus

Country Status (1)

Country Link
JP (1) JP6382728B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219072A1 (en) * 2002-05-14 2003-11-27 Macinnis Alexander G. System and method for entropy code preprocessing
JP2011515880A (en) * 2008-03-28 2011-05-19 シャープ株式会社 Method, apparatus and system for parallel encoding and decoding of moving images

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030219072A1 (en) * 2002-05-14 2003-11-27 Macinnis Alexander G. System and method for entropy code preprocessing
JP2011515880A (en) * 2008-03-28 2011-05-19 シャープ株式会社 Method, apparatus and system for parallel encoding and decoding of moving images

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HENRYK RICHTER, ET.AL.: "Architectural Decomposition of Video Decoders for Many Core Architectures", PROCEEDINGS OF THE 2012 CONFERENCE ON DESIGN AND ARCHITECTURES FOR SIGNAL AND IMAGE PROCESSING, JPN6018018478, 25 October 2012 (2012-10-25), ISSN: 0003799876 *
SATOSHI SHIMADA, ET.AL.: "On derivation of luma QP predictor for Wavefront Parallel Processing", JCTVC-H0226, JPN6018018479, 9 February 2012 (2012-02-09), ISSN: 0003799877 *

Also Published As

Publication number Publication date
JP6382728B2 (en) 2018-08-29

Similar Documents

Publication Publication Date Title
US10623742B2 (en) Method of determining binary codewords for transform coefficients
US9866850B2 (en) Method of determining binary codewords for transform coefficients
CN113615182B (en) Method, apparatus, and non-volatile computer readable storage medium for video decoding
RU2612600C2 (en) Method for content adaptive entropy coding of data on operating conditions and reference types for next generation video
KR102072165B1 (en) Video encoding and decoding method and apparatus using same
US9270988B2 (en) Method of determining binary codewords for transform coefficients
US9167245B2 (en) Method of determining binary codewords for transform coefficients
US9635358B2 (en) Method of determining binary codewords for transform coefficients
WO2013109026A1 (en) Method and device for entropy coding/decoding
WO2007010901A1 (en) Dynamic image encoding device, dynamic image decoding device, and code string format
JP2014509160A (en) Conversion in video coding
CN1953552A (en) Coding apparatus and decoding apparatus
US20130188729A1 (en) Method of determining binary codewords for transform coefficients
CN108353179A (en) Encoding device, decoding device and its coding method and coding/decoding method
CN113475067B (en) Video decoding method, device, computer equipment and storage medium
CN112235573A (en) Video coding and decoding method and device, electronic equipment and storage medium
JP4896944B2 (en) Image decoding device
JP2010178319A (en) Image coding apparatus and image coding method
KR20090113103A (en) Method and Apparatus of Decoding Image
JP4823090B2 (en) Image encoding device
KR20150034203A (en) Video decoding method and apparatus using the same
US20140185671A1 (en) Video encoding and decoding method and apparatus using the same
JP6382728B2 (en) Decoding method and decoding apparatus
JP6704194B2 (en) Moving picture coding apparatus and moving picture coding method
US20120147972A1 (en) Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program

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