JP2008227946A - 画像復号装置 - Google Patents

画像復号装置 Download PDF

Info

Publication number
JP2008227946A
JP2008227946A JP2007063827A JP2007063827A JP2008227946A JP 2008227946 A JP2008227946 A JP 2008227946A JP 2007063827 A JP2007063827 A JP 2007063827A JP 2007063827 A JP2007063827 A JP 2007063827A JP 2008227946 A JP2008227946 A JP 2008227946A
Authority
JP
Japan
Prior art keywords
run
syntax
decoding
bitstream
zerosleft
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.)
Pending
Application number
JP2007063827A
Other languages
English (en)
Inventor
Tatsuhiro Suzumura
竜広 鈴村
Takaya Ogawa
貴也 小川
Akihiro Ogami
晃弘 大上
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007063827A priority Critical patent/JP2008227946A/ja
Priority to US12/045,977 priority patent/US20080225954A1/en
Priority to CN2008100829476A priority patent/CN101267561B/zh
Publication of JP2008227946A publication Critical patent/JP2008227946A/ja
Pending legal-status Critical Current

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/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】run_beforeシンタックスをより少ないサイクル数でデコードを行うことが可能な画像復号装置を提供することである。
【解決手段】ビットストリームを入力し、ビットストリームの先頭にあるシンタックスをその符号長に応じて更新して出力する更新出力部101と、デコード要求に応じてビットストリーム更新出力部101からのシンタックスの可変長符号をデコードするデコード部102と、デコードされた特定のシンタックスでzerosLeftを更新するzerosLeft更新部103と、デコードされた特定のシンタックスでrun_beforeの残数を更新するrun_before残数更新部104と、デコードすべきシンタックスを選択するシンタックス選択部105とを備え、複数のゼロであるrun_beforeのシンタックスおよび、1つの非ゼロrun_before、または複数のゼロであるrun_beforeのシンタックスを一度にデコードする。
【選択図】図1

Description

本発明は、H.264形式で符号化された画像符号化ビットストリーム(符号化された画像データ)を復号する画像復号装置に関するものである。
ITU-T勧告H.264 /AVC(Advanced video coding)と呼ばれている技術(以下単にH.264 と称する)では、符号化されたデータ列(ビットストリーム)の設定ルールを示す規則(シンタックス)でDCT係数や動きベクトルなどを伝送することが規定されている。
例えば動画像データを圧縮符号化して伝送するには、輝度又は色差の入力データと、1画面前のデータに基づく動き補償出力とのブロックごとの動き予測誤差(残差ブロック)を得、その残差ブロックのDCT係数を量子化及び可変長符号化してデコーダ側に伝送する。
DCT係数には、高度な符号化方法としてCAVLC(Context-Adaptive Variable Length Coding、コンテキスト適応型可変長符号化方式)が用いられる。DCT変換の処理ブロックサイズ(処理単位)は例えば4×4であり、16個のDCT係数は、次のような6つの情報(run_before,level,TotalCoeff,total_zeros,TrailingOnes,trailing_ones_sign_flag)に分解され、これらの6つの情報により16個の全ての係数を一意に確定できる。
run_beforeは非ゼロ係数値の前の0の連続個数,levelは非ゼロ係数値,TotalCoeffは非ゼロ係数の個数、total_zerosは最後の非ゼロ係数以前の0の個数、TrailingOnesは最後に連続する絶対値1の係数の個数、trailing_ones_sign_flagは最後に連続する絶対値1の係数の符号である。
デコーダ側では、上記の6つの情報(run_before,level,TotalCoeff,total_zeros,TrailingOnes,trailing_ones_sign_flag)から例えばジグザグ・スキャン順に量子化された全てのDCT係数を、復号(デコード)することができる。
run_beforeシンタックスは(非ゼロ係数の個数−1)個、残差ブロック中に存在し、H.264規格書に定められたテーブルを用いてデコードを行った場合、一度のデコードコマンドで複数個のrun_beforeシンタックスの内の1つしかデコードできない。つまり、従来では、非ゼロrun_before(run_before≠0)、ゼロrun_before(run_before=0)それぞれ1つにつきデコード動作を行う必要があった。
従って、非ゼロ係数の個数(即ち係数データの個数)が多いほどその残差ブロックの処理サイクル数が増大し、デコード性能の劣化につながる問題があった。
なお、1つの符号列(ビットストリーム)では(非ゼロ係数の個数−1)個だけrun_beforeが存在している。(非ゼロ係数の個数−1)個は、(TotalCoeff)−1と表現することもできる。
一方、H.264の符号化及び復号化についての先行技術としては、例えば特許文献1に記載されているものがある。しかしながら、特許文献1にはデコード処理サイクル数の増大を抑える技術については記載されていない。
特開2006−135786号公報
そこで、本発明は上記の問題に鑑み、run_beforeシンタックスを従来より少ないサイクル数でデコードを行うことが可能な画像復号装置を提供することを目的とするものである。
本願発明の一態様によれば、ビットストリームを入力し、該ビットストリームの先頭にあるシンタックスをその符号長に応じて更新して出力するビットストリーム更新出力部と、デコード要求に応じて前記ビットストリーム更新出力部からのシンタックスの可変長符号をデコードするビットストリームデコード部と、前記ビットストリームデコード部にてデコードされた特定のシンタックスでzerosLeftを更新するzerosLeft更新部と、前記ビットストリームデコード部にてデコードされた特定のシンタックスでrun_beforeの残数を更新するrun_before残数更新部と、前記ビットストリームデコード部にてデコードすべきシンタックスを選択するシンタックス選択部とを具備し、複数のゼロであるrun_beforeのシンタックスおよび、1つの非ゼロrun_before、または複数のゼロであるrun_beforeのシンタックスを一度にデコードすることを特徴とする画像復号装置が提供される。
本発明によれば、run_beforeシンタックスを従来より少ないサイクル数でデコードを行うことが可能な画像復号装置を提供できる。
発明の実施の形態について図面を参照して説明する。
図1乃至図7を参照して本発明の実施形態を説明する前に、図8乃至図11を参照して本発明の関連技術について説明する。
図8は、符号化されたデータであるビットストリームの一例を示す図であ。ビットストリームは、その設定ルールを示す複数のシンタックスで構成されている。例えば、ビットストリームは、 図8のようにシンタックスA、シンタックスE、…‥run_beforeシンタックス、……のように複数のシンタックスが連続的に流れてくる。↓はここからが(非ゼロ係数の個数−1)個のrun_beforeのシンタックスを含むrun_beforeシンタックス群であることを示している。この所定数のrun_beforeを含むシンタックス群を個々のシンタックスと区別するためにrun_beforeシンタックス全体と呼ぶことがある。つまり、run_beforeシンタックスの全体は、所定個数の個々のrun_beforeのシンタックスを有している。run_beforeシンタックスが始まることはrun_beforeシンタックスの前の別のシンタックス部分で検出可能となっている。
画像復号装置には、run_beforeシンタックスを含む複数の種々のシンタックスで構成されるビットストリームが入力データとして供給される。ビットストリームは、先頭から後端部まで全てシンタックスで構成されるが、画像復号装置内のデコード部にて各シンタックスのデコードが終了するごとにデコード済みのシンタックスは破棄されるので、画像復号装置内のデコード部には各シンタックスのデコード終了ごとにビットストリームの先頭に相当する次のシンタックスが入力される。
図9は、本発明の関連技術である画像復号装置のブロック図を示している。
図9に示す画像復号装置400は、run_beforeシンタックスのデコードを行うためのハードウェア構成であって、FIFO装置401と、可変長符号デコード装置402と、zerosLeft更新装置403と、シンタックス選択装置404と、を備えている。可変長符号デコード装置402は、テーブル501〜507のテーブル群を備えている。
図9の動作を説明する。
FIFO装置401は、ビットストリーム(bitstream)を取り込み、入力した順に出力していく。FIFO装置401では、次々とビットストリームの先頭にあるシンタックスを更新しながら可変長符号デコード装置402に入力していく。可変長符号デコード装置402は、FIFO装置401からビットストリームの先頭が来たときにはどのシンタックスが来たかということを知り、そのシンタックスのデコード処理を行い終了すると、符号長を検出する。そして、検出した符号長をFIFO装置401に通知する。FIFO装置401は符号長の通知を受けてその符号長分のシンタックスはデコード処理済みであるとして破棄する。これによって次のビットストリームのデータ(次のシンタックス)の先頭をFIFO装置401から出力して、可変長符号デコード装置402に送る。可変長符号デコード装置402では再び次のシンタックスのデコード処理及び符号長通知を行って、各シンタックスごとにデコードを行っていく。
可変長符号デコード装置402は、シンタックス選択装置404よりtotal_zerosのデコード指示を受けると、total_zerosシンタックスをデコードしてバリッド信号(valid)と共にzerosLeft更新装置403へ送出する。zerosLeft更新装置103は、zerosLeft(自身のrun_beforeをデコードする際に存在しているrun_beforeの数であり、初期値はtotal_zerosに等しい)を更新する。
次に可変長符号デコード装置402は、シンタックス選択装置404よりrun_beforeのデコード指示を受けると、zerosLeft更新装置403からzerosLeftを受け取り、zerosLeft情報に基づき図10に示すテーブル群501〜507の中から使用するテーブルを決定(選択)する。このとき、zerosLeft情報に対応したテーブルが選択される。決定されたテーブルを用いてrun_beforeのデコード出力を得ることができる。
そして、valid信号と共に、テーブルから取得されたrun_beforeの値(デコード出力)を、zerosLeft更新装置403へ送出する。zerosLeft更新装置403はrun_beforeの値を用いてzerosLeftを更新する。更新されたzerosLeftが非ゼロであれば、シンタックス選択装置404は再度run_beforeのデコードを行う。zerosLeftが0になるまでrun_beforeのデコードを繰り返す。
次に、図9の可変長符号デコード装置402の動作を、図10のテーブル群501〜507と図11の動作説明図を参照して説明する。
ビットストリーム(bitstream)として示しているrun_beforeシンタックス全体が図8のように‘11111110010’である場合を例として説明する。
図11で、‘bitstream’はビットストリームとしてのrun_beforeシンタックス‘11111110010’を示し、‘table’は図10のテーブル群(501〜507)内でシンタックスごとに選択される各テーブルの番号を示し、‘値’はrun_before(rbと略記することがある)の値を示し、‘更新’はzerosLeft(zLと略記することがある)の更新即ち使用されるtableの更新に対応している。なお、図11中で、また、zL−rb(=zerosLeft−run_before)はzerosLeft更新装置403の更新演算式を示し、下線はデコード処理の1サイクル分を示している。
まず、可変長符号デコード装置402では、run_beforeのシンタックスよりも前に送られてくるzerosLeftシンタックスに基づいて、図10に示した、run_beforeのテーブルを選択し参照することになる。zerosLeftシンタックスの初期値がzerosLeft=3(=total_zeros)とすると、テーブル503が選択される。テーブル503では、入力として先頭の2桁が示されているので、bitstreamの先頭の2桁のシンタックス‘11’が入力されると、テーブル503によってデコード出力としてのrun_beforeは‘0’(rb=0)となる。この場合の符号長は2である。このときの更新演算式の結果は、zL−rb=3となり、zerosLeftは初期値と同じになり、tableの更新はない。その結果、次の2桁のシンタックス‘11’についても同じテーブル503を使用するので、同様にrb=0、zL−rb=3となり、zerosLeftは初期値と同じになり、tableの更新はない。従って、その次の3つ目の2桁のシンタックス‘11’についても同様となり、同じテーブル503を使用する。そして、更に次の4つ目の2桁のシンタックス‘10’については、テーブル503によってデコード出力としてのrun_beforeは‘1’(rb=1)となる。このときの更新演算式はzL−rb=2となり、zerosLeft=2となってzerosLeftの値が更新される。
従って、次に使用するテーブルは、zerosLeft=2に対応したテーブル502となる。bitstreamの5つ目の2桁のシンタックス‘01’が入力されると、テーブル502によってデコード出力としてのrun_beforeは‘1’(rb=1)となり、更新演算式はzL−rb=1となり、zerosLeft=1となってzerosLeftの値が更新される。
従って、次に使用するテーブルは、zerosLeft=1に対応したテーブル501となる。テーブル501は入力が1桁のものとなっている。bitstreamの6つ目の1桁のシンタックス‘0’が入力されると、テーブル501によってデコード出力としてのrun_beforeは‘1’(rb=1)となる。この場合の符号長は1である。このときの更新演算式はzL−rb=0となり、デコード処理は終了する。
図9のハードウェア構成で、かつ図10に示したデコード処理用のテーブル群を使用すると、4つのシンタックスに亘って同じテーブル503を用いるにも係わらず1つのシンタックスごとにデコード指示及び更新演算が必要となる結果、全体のデコード処理のサイクル数(デコード指示及び更新演算)は6つとなっている。
[第1の実施形態]
図1は本発明の第1の実施形態の画像復号装置のブロック図を示している。
図1に示す画像復号装置100は、run_beforeシンタックスのデコードを行うためのハードウェア構成である。
画像復号装置100は、ビットストリームを入力し、ビットストリームの先頭にあるシンタックスをその符号長に応じて更新して出力するビットストリーム更新出力部としてのFIFO装置101と、デコード要求に応じてFIFO装置101からのシンタックスの可変長符号をデコードするビットストリームデコード部としての可変長符号デコード装置102と、可変長符号デコード装置102でデコードされた特定のシンタックスでzerosLeftを更新するzerosLeft更新装置103と、可変長符号デコード装置102でデコードされた特定のシンタックスでrun_beforeの残数を更新するrun_beforeの残数更新装置104と、可変長符号デコード装置102でデコードすべきシンタックスを選択するシンタックス選択装置105とを備え、複数のゼロであるrun_beforeのシンタックスおよび、1つの非ゼロrun_before、または複数のゼロであるrun_beforeのシンタックスを一度にデコードすることを特徴とする。可変長符号デコード装置102はテーブル201a〜207bのテーブル群を備えている。また図7に示すようにrun_beforeの残数更新装置104は、選択回路であるマルチプレクス(MUX)301と、レジスタ302と、減算器303とを備えている(図7については後述する)。
図1の動作を説明する。
可変長符号デコード装置102は、FIFO装置101からbitstreamの先頭部分を入力データ(シンタックス)として受け取る。
可変長符号デコード装置102は、シンタックス選択装置105よりtotal_coeffのデコード指示を受けると、total_coeffシンタックスをデコードしてvalid信号と共にrun_beforeの残数更新装置104へ送出する。run_beforeの残数更新装置104は、図7に示すようにMUX301でtotal_coeffを選択し、初期値としてrun_beforeの個数の最大値に相当する(total_coeff−1)をレジスタ302へ書き込む。
次に可変長符号デコード装置102は、シンタックス選択装置105よりtotal_zerosのデコード指示を受けると、total_zerosをデコードしてvalid信号と共にzerosLeft更新装置103へ送出する。zerosLeft更新装置103は、zerosLeftを更新する。
次に可変長符号デコード装置102は、シンタックス選択装置105よりrun_beforeのデコード指示を受けると、zerosLeft更新装置103、run_beforeの残数更新装置104から、それぞれzerosLeft、run_beforeの残数を受け取り、まずzerosLeft情報からテーブルの番号(201a〜207b)(図2及び図3参照)を決定する(201a〜201bを添え字aのものとbのものとに分けて20Xaおよび20Xbと表記する)。
続いてbitstreamの先頭、run_beforeの残数から選択されたテーブル番号の添え字bのテーブル(20Xb)を引く。bitstreamの先頭、およびrun_beforeの残数で、20Xbのテーブルの入力に一致すれば、この入力に対応するrun_beforeの個数およびrun_before = 0を出力として選択する。20Xbのテーブルの入力に一致するものがなければ、20Xaのテーブルを引き入力bitstreamに対応するrun_beforeの数およびrun_beforeの値を出力として選択する。
そして、valid信号、選択されたrun_beforeの値を、zerosLeft更新装置103へ、valid信号、選択されたrun_beforeの個数をrun_beforeの残数更新装置104へ送出する。
zerosLeft更新装置103はzerosLeftを更新し、run_beforeの残数更新装置104は図7に示すようにMUX301でレジスタ302にあるrun_beforeの残数から、装置102にて取得したrun_beforeの個数を減算器303で減算した値を選択し、レジスタ302の値を更新する。更新されたzerosLeftが非ゼロでかつrun_beforeの残数が非ゼロであれば、シンタックス選択装置105は再度run_beforeのデコードを行う。zerosLeftもしくはrun_beforeの残数が0になるまでrun_beforeのデコードを繰り返す。
以上のようなデコード動作を行った場合、run_before =0のrun_beforeシンタックスのデコードを1cycleで行うことができる。例えばrun_beforeのデコード段階でbitstreamの先頭が‘1101’、zerosLeftが2、run_beforeの残数が6であった場合、本実施形態の画像復号装置を用いてデコードを行うと、まずzerosLeft情報‘2’をもとにテーブル202a/202bが選択される。run_beforeの残数が6であることから202bに該当する入力項目は無く、続いて202aのテーブルを引く。‘1101’は202aのテーブルの入力項目の上から5番目に一致し、出力としてrun_beforeの個数が3(2)であるので、run_before = 0のrun_beforeシンタックスが2個、run_before = 1のrun_beforeシンタックスが1個がデコードされる。
上記例のような場合、本発明の実施形態では、3つのrun_beforeシンタックスデコードが1回のデコード指示で済んでしまう。これに対して、図10に示したようにH.264規格書どおりにテーブル501〜507を用いてデコードをすると、このような場合3回デコード指示を行う必要がある。
なお、構成の補足として20Xa/20Xbのテーブルを同時に選択し、20Xbの入力項目に一致すれば20Xbの出力値を、それ以外は20Xaの出力値を選択する構成にもすることができる。また、20Xa/20Xbの2種類のテーブルを合わせたテーブル(仮に20Xとする)を用いた構成とすることもできる。
次に、図1の画像復号装置100の動作を、図2及び図3のテーブル群201a〜207bと図4の動作説明図を参照して説明する。なお、図2及び図3は、連続したテーブル番号で示されるテーブル群201a〜207bを紙面の都合で2つの図面に分けて記載したものである。
ビットストリーム(bitstream)として示しているrun_beforeシンタックス全体が図8のように‘11111110010’である場合を例として説明する。
図4で、‘bitstream’はビットストリームとしてのrun_beforeシンタックス‘11111110010’を示し、‘table’は図2及び図3のテーブル群(201a〜207b)の各テーブルの番号を示し、‘値’はrun_before(rbと略記することがある)の値を示し、‘個数’はrun_beforeの個数、‘更新’はzerosLeft(zLと略記することがある)の更新(即ち使用されるtableの更新)に対応している。なお、zL−rb(=zerosLeft−run_before)は図1のzerosLeft更新装置403の更新演算式を示し、下線はデコード処理の1サイクル分を示している。また、‘個数’で例えば4(3)は‘4’がrun_beforeの個数で‘3’がrun_before=0の個数である。
zerosLeftの初期値を与えるtotal_zerosシンタックスは、run_beforeシンタックスが来る前に可変長符号デコード装置102に入力される。
まず、可変長符号デコード装置102は、zerosLeftシンタックスに基づいて図2及び図3に示した、run_beforeのテーブルを選択し参照することになる。zerosLeftシンタックスの初期値がzerosLeft=3(=total_zeros)とすると、テーブル203a/203bが選択される。bitstreamとしてrun_beforeシンタックスの先頭の8桁の‘11111110’の入力はテーブル203aに存在している。先頭の8桁‘11111110’が入力されると、テーブル203aを参照することによってデコード出力としてのrun_beforeは‘1’(rb=1)となる。この場合の符号長は8である。このときの更新演算式の結果は、zL−rb=2となり、zerosLeft=2となってzerosLeftが更新される。
なお、この場合、先頭の8桁の‘11111110’については、H.264規格書どおりに図10のテーブル501〜507を用いてデコードをすると、入力‘11’‘11’‘11’‘10’のそれぞれのシンタックスについて出力としてのrun_beforeが0,0,0,1となるので、図2のテーブル203aにおけるrun_beforeの個数としては4(3)と表記される。
上述の先頭の8桁に対するデコード出力(rb=1)に基づく演算結果から、次に使用するテーブルは、zerosLeft=2に対応したテーブル202a/202bが選択される。bitstreamとして次の2桁のシンタックス‘01’が入力されると、入力‘01’はテーブル202aに存在している。テーブル202aを参照することによってデコード出力としてのrun_beforeは‘1’(rb=1)となり、更新演算式はzL−rb=1となり、zerosLeft=1となってzerosLeftが更新される。
従って、次に使用するテーブルは、zerosLeft=1に対応したテーブル201a/201bが選択される。bitstreamとして最後の1桁のシンタックス‘0’が入力されると、入力‘0’はテーブル201aに存在しているので、テーブル201aを参照することによってデコード出力としてのrun_beforeは‘1’(rb=1)となる。このとき更新演算式はzL−rb=0となり、デコード処理は終了する。
図1のハードウェア構成で、かつ図2及び図3に示したデコード処理用のテーブル群(201a〜207b)を使用すると、同じテーブル203aを用いるデコード処理サイクルが1つとなる結果、4つのシンタックスについてデコード指示及び更新演算が1回で済み、全体のデコード処理のサイクル数(デコード指示及び演算処理回数)は3つとなる。つまり、run_beforeシンタックスを、図9乃至図11の関連技術に示したもの(6つ)より少ない処理サイクル数でデコードすることが可能となる。
図5は可変長符号デコード装置102における、テーブル20Xaと20Xb(例えば上述のテーブル203aと203b)の一方のテーブルの選択を行うハードウェア構成を示し、図6は図5のハードウェアに入力されるrun_beforeの残数を説明する図を示している。
図5において、可変長符号デコード装置102には、bitstreamとしてrun_beforeシンタックス全体‘11111110010’の内の‘11111110’が入力される。この入力はテーブル203aに供給されると共にテーブル203bに供給される。テーブル203aにおける入力‘11111110’に対しては出力としてrun_beforeの個数‘4(3)’でかつrun_before=1が出力可能である。また、テーブル203bにおける入力‘111111’に対しては出力としてrun_beforeの個数‘3(3)’でかつrun_before=0が出力可能である。そして、装置102内に設けられた選択装置102Aにてテーブル203a及び203bの出力の内の一方の出力を、後述するrun_beforeの残数に応じて切り換えて出力する。選択装置102Aでは、run_beforeの残数が3より大きければ、テーブル203aの出力を選択し、run_beforeの残数が3に等しければ、テーブル203bの出力を選択して出力する。
run_beforeの残数について、図6を参照して説明する。bitstreamとしてrun_beforeシンタックス‘11111110010’について考えると、run_beforeの残数が6とはこの11桁のデコード前の数‘11111110010’をデコード処理単位として先頭から2桁ずつに区切った‘11’‘11’‘11’‘10’‘01’‘0’の6つのシンタックスを指し、run_beforeの残数が5とはデコード前の数‘11111110010’をデコード処理単位として先頭から2桁ずつに区切った‘11’‘11’‘11’‘10’‘01’の5つのシンタックスを指し、run_beforeの残数が4とはデコード前の数‘11111110010’をデコード処理単位として先頭から2桁ずつに区切った‘11’‘11’‘11’‘10’の4つのシンタックスを指し、run_beforeの残数が3とはデコード前の数‘11111110010’をデコード処理単位として先頭から2桁ずつに区切った‘11’‘11’‘11’の3つのシンタックスを指し、run_beforeの残数が2とはデコード前の数‘11111110010’をデコード処理単位として先頭から2桁ずつに区切った‘11’‘11’の2つのシンタックスを指し、run_beforeの残数が1とはデコード前の数‘11111110010’をデコード処理単位として先頭から2桁分‘11’の1つのシンタックスを指している。run_beforeの残数が、5,4,3,2,1となっている場合は、これからデコードするrun_beforeの個数がそれぞれ5,4,3,2,1であることを意味している。従って、例えばrun_beforeの残数が4の場合は、‘11111110’のつぎに来る‘010’はrun_beforeとは異なる別のシンタックスであると解釈される。
図7は、run_beforeの残数更新装置104のブロック図を示している。
図7に示すようにrun_beforeの残数更新装置104は、特定のシンタックスを、run_beforeの残数の初期値として更新可能に保持するレジスタ302と、レジスタ302に保持したrun_beforeの残数から可変長符号デコード装置102で得られるrun_beforeの個数を減算する減算器303と、レジスタ302で用いた特定のシンタックスの初期値と減算器303からのrun_beforeの個数と前記レジスタ302の出力とを入力し、有効の有無に応じていずれか1つの入力を選択してレジスタ302に供給する選択回路であるマルチプレク(MUX)301と、を備えている。
run_beforeの残数更新装置104は、可変長符号デコード装置102からのtotal_coeffのバリッド信号(valid)に基づいてMUX301で装置102からのtotal_coeffを選択し、初期値として(total_coeff−1)をレジスタ302へ書き込む。次に、run_beforeのバリッド信号(valid)が入ると、レジスタ302にあるrun_beforeの残数(最初は初期値)からrun_beforeの個数を減算器303で減算した値を、MUX301で選択して出力することによって、レジスタ302の値を更新する。つまり、可変長符号デコード装置102でrun_beforeのデコード処理単位ごとにデコード処理が済むごとに可変長符号デコード装置102からのrun_beforeの個数とrun_beforeのバリッド信号(valid)が、run_beforeの残数更新装置104へ入力されて、レジスタ302の値即ちrun_beforeの残数を更新する。
次に、本発明の実施形態による効果を説明する。
図9の画像復号装置400では、非ゼロrun_before、ゼロrun_beforeそれぞれ1つにつきデコード動作を行う必要があった。そのため、デコード処理サイクル数が増大し、デコード性能の劣化につながっていた。
図1の画像復号装置100では、FIFO装置101の出力であるbitstreamの先頭、zerosLeft更新装置103の出力であるzerosLeft、run_beforeの残数更新装置104の出力であるrun_beforeの残数の3つを入力としてテーブル201a〜207bのうち適切なテーブルを選択し、入力に合致する値を出力させることで、非ゼロrun_before(run_before≠0)に先行するゼロrun_before(run_before=0)を一度のデコード動作でデコードすることができる。つまり、run_beforeシンタックスをより少ない処理サイクル数でデコードすることができる。このことは、本発明が、run_beforeのシンタックスとして0が続けば続くほど、従来よりデコード動作サイクル数が少なくなることを意味している。また、原理的に非ゼロ残差係数の数が多いほどrun_before = 0が続く。従って、非ゼロ残差係数の数が多い、言い換えれば残差係数のデコード処理サイクル数が多くなってしまうような場合に、run_beforeのデコード処理サイクル数を抑えることができ、特に有益となる。このことは1マクロブロックにかかる最高処理サイクル数を抑えることになるのでデコード装置全体の処理能力向上に貢献する。
本発明の第1の実施形態の画像復号装置のブロック図。 本発明の第1の実施形態で用いられる、テーブル20Xaおよび20Xb を示す図。 本発明の第1の実施形態で用いられる、テーブル20Xaおよび20Xb を示すものであって、図2の続きを示す図。 図1のデコード処理動作の説明図。 可変長符号デコード装置における、テーブル20Xaと20Xbの一方の選択を行うハードウェア構成を示すブロック図。 un_beforeの残数を説明する説明図。 本発明の実施形態で用いるrun_beforeの残数更新回路のブロック図。 符号化されたデータ列であるビットストリームの一例を示す図。 本発明の関連技術である画像復号装置のブロック図。 図9の関連技術で用いるテーブル群(規格書に同じ)を示す図。 図9のデコード処理動作の説明図。
符号の説明
100…画像復号装置
101…FIFO装置(ビットストリーム更新出力部)
102…可変長符号デコード装置(ビットストリームデコード部)
103…zerosLeft更新装置(zerosLeft更新部)
104…run_beforeの残数更新装置(run_before残数更新部)
105…シンタックス選択装置(シンタックス選択部)

Claims (5)

  1. ビットストリームを入力し、該ビットストリームの先頭にあるシンタックスをその符号長に応じて更新して出力するビットストリーム更新出力部と、
    デコード要求に応じて前記ビットストリーム更新出力部からのシンタックスの可変長符号をデコードするビットストリームデコード部と、
    前記ビットストリームデコード部にてデコードされた特定のシンタックスでzerosLeftを更新するzerosLeft更新部と、
    前記ビットストリームデコード部にてデコードされた特定のシンタックスでrun_beforeの残数を更新するrun_before残数更新部と、
    前記ビットストリームデコード部にてデコードすべきシンタックスを選択するシンタックス選択部とを具備し、
    複数のゼロであるrun_beforeのシンタックスおよび、1つの非ゼロrun_before、または複数のゼロであるrun_beforeのシンタックスを一度にデコードすることを特徴とする画像復号装置。
  2. 前記zerosLeftおよび前記ビットストリームの先頭を入力とし、複数のゼロであるrun_beforeおよび1つの非ゼロrun_beforeを一度にデコードできる第1のテーブル群(20Xa)を有していることを特徴とする請求項1に記載の画像復号装置。
  3. 前記zerosLeftおよび前記ビットストリームの先頭および前記run_beforeの残数を入力とし、複数のゼロであるrun_beforeを一度にデコードできる第2のテーブル群(20Xb)を有していることを特徴とする請求項1に記載の画像復号装置。
  4. 前記run_before残数更新部は、
    特定のシンタックスを、run_beforeの残数の初期値として更新可能に保持するレジスタと、
    前記レジスタに保持したrun_beforeの残数から前記ビットストリームデコード部で得られるrun_beforeの個数を減算する減算器と、
    前記特定のシンタックスの初期値と前記減算器からのrun_beforeの個数と前記レジスタの出力とを入力し、有効の有無に応じていずれか1つの入力を選択して前記レジスタに供給する選択回路と、
    を備えたことを特徴とする請求項1乃至3のいずれか1つに記載の画像復号装置。
  5. 前記zerosLeft更新部における特定のシンタックスは、total_zerosであり、
    前記run_before残数更新部における特定のシンタックスは、total_coeffであることを特徴とする請求項1乃至4のいずれか1つに記載の画像復号装置。
JP2007063827A 2007-03-13 2007-03-13 画像復号装置 Pending JP2008227946A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007063827A JP2008227946A (ja) 2007-03-13 2007-03-13 画像復号装置
US12/045,977 US20080225954A1 (en) 2007-03-13 2008-03-11 Image decoding apparatus and image decoding method
CN2008100829476A CN101267561B (zh) 2007-03-13 2008-03-13 图像解码装置和图像解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007063827A JP2008227946A (ja) 2007-03-13 2007-03-13 画像復号装置

Publications (1)

Publication Number Publication Date
JP2008227946A true JP2008227946A (ja) 2008-09-25

Family

ID=39762658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007063827A Pending JP2008227946A (ja) 2007-03-13 2007-03-13 画像復号装置

Country Status (3)

Country Link
US (1) US20080225954A1 (ja)
JP (1) JP2008227946A (ja)
CN (1) CN101267561B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011188431A (ja) * 2010-03-11 2011-09-22 Hitachi Kokusai Electric Inc 可変長復号装置
US8477051B2 (en) 2011-05-31 2013-07-02 Kabushiki Kaisha Toshiba Variable-length code decoding apparatus, decoding system, and variable-length code decoding method
JP2015515802A (ja) * 2012-03-29 2015-05-28 インテル コーポレイション 並列デコード前マルチシンボルランを有するcalvcデコーダ

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
LT3849198T (lt) * 2011-11-07 2023-01-25 Tagivan Ii Llc Vaizdo dekodavimo būdas ir vaizdo dekodavimo įrenginys
CN102572437B (zh) * 2012-02-16 2014-08-06 复旦大学 一种快速解码CAVLC run_before码字的硬件实现方法
US9495968B2 (en) 2013-05-29 2016-11-15 Qualcomm Incorporated Identifying sources from which higher order ambisonic audio data is generated
US9489955B2 (en) * 2014-01-30 2016-11-08 Qualcomm Incorporated Indicating frame parameter reusability for coding vectors
US10770087B2 (en) 2014-05-16 2020-09-08 Qualcomm Incorporated Selecting codebooks for coding vectors decomposed from higher-order ambisonic audio signals

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006157678A (ja) * 2004-11-30 2006-06-15 Canon Inc 可変長符号化装置及び可変長符号化方法
JP2006287862A (ja) * 2005-04-05 2006-10-19 Canon Inc 復号化装置
JP2008034920A (ja) * 2006-07-26 2008-02-14 Sony Corp 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
KR100959532B1 (ko) * 2003-12-18 2010-05-27 엘지전자 주식회사 Cavlc 복호 방법
US7573407B2 (en) * 2006-11-14 2009-08-11 Qualcomm Incorporated Memory efficient adaptive block coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006157678A (ja) * 2004-11-30 2006-06-15 Canon Inc 可変長符号化装置及び可変長符号化方法
JP2006287862A (ja) * 2005-04-05 2006-10-19 Canon Inc 復号化装置
JP2008034920A (ja) * 2006-07-26 2008-02-14 Sony Corp 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011188431A (ja) * 2010-03-11 2011-09-22 Hitachi Kokusai Electric Inc 可変長復号装置
US8477051B2 (en) 2011-05-31 2013-07-02 Kabushiki Kaisha Toshiba Variable-length code decoding apparatus, decoding system, and variable-length code decoding method
JP2015515802A (ja) * 2012-03-29 2015-05-28 インテル コーポレイション 並列デコード前マルチシンボルランを有するcalvcデコーダ

Also Published As

Publication number Publication date
CN101267561A (zh) 2008-09-17
US20080225954A1 (en) 2008-09-18
CN101267561B (zh) 2010-09-15

Similar Documents

Publication Publication Date Title
JP2008227946A (ja) 画像復号装置
US8487791B2 (en) Parallel entropy coding and decoding methods and devices
US6842124B2 (en) Variable length decoder
US9521433B2 (en) Video encoding device, video decoding device, video encoding method, video decoding method, video encoding or decoding program
US7501964B2 (en) Entropy coding for digital codecs
US8400336B2 (en) Methods and devices for reordered parallel entropy coding and decoding
JPH0685689A (ja) デコーダ
US9001882B2 (en) System for entropy decoding of H.264 video for real time HDTV applications
JPH06252775A (ja) 復号化装置
EP0798931B1 (en) Variable length decoder and method for decoding two codes per clock cycle
US8625677B2 (en) Apparatus processing video stream
JP3940672B2 (ja) 画像処理装置及び画像処理方法
JP4896944B2 (ja) 画像復号装置
US7602319B2 (en) Image decoding apparatus and decoding method
KR100858245B1 (ko) 결정 비트를 이용한 부호화/복호화 장치 및 그에 따른프로그램이 기록된 매체
US20170064321A1 (en) System and method for decoding a video digital data stream using a table of range values and probable symbols
JP2013016897A (ja) 可変長符号復号装置、符号システムおよび可変長符号復号方法
KR20200006908A (ko) 변환 모드용 엔트로피 부호화 그룹의 분류 방법 및 시스템
WO2011138912A1 (ja) 映像符号装置、映像復号装置、映像符号方法、映像復号方法及びプログラム
JP2007158698A (ja) 画像復号装置及び画像復号方法
JPH10145789A (ja) 動画像符号化方法及び動画像復号方法
JP6382728B2 (ja) 復号方法及び復号装置
JP4095454B2 (ja) データ復号装置及びデータ復号方法
KR20090113208A (ko) 정수들의 시퀀스를 인코딩하기 위한 방법, 인코딩된 정수 시퀀스를 운반하는 저장 디바이스 및 신호, 그리고 정수들의 시퀀스를 디코딩하기 위한 방법
JP2008113348A (ja) 符号化復号装置、復号方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110421

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110531