JP5083579B2 - 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム - Google Patents
復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム Download PDFInfo
- Publication number
- JP5083579B2 JP5083579B2 JP2010517811A JP2010517811A JP5083579B2 JP 5083579 B2 JP5083579 B2 JP 5083579B2 JP 2010517811 A JP2010517811 A JP 2010517811A JP 2010517811 A JP2010517811 A JP 2010517811A JP 5083579 B2 JP5083579 B2 JP 5083579B2
- Authority
- JP
- Japan
- Prior art keywords
- prefix
- length
- decoding
- address
- suffix
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 201
- 238000003672 processing method Methods 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims description 189
- 230000006870 function Effects 0.000 claims description 95
- 230000015654 memory Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 24
- 238000005516 engineering process Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 238000013075 data extraction Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000009469 supplementation Effects 0.000 description 2
- 238000007630 basic procedure Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
1番目の処理では、4×4ブロックに出現する0でない係数の数(TC:Total Coefficient)と、4×4ブロックに出現する連続する±1の数(T1s:Trailing ones)を求める処理を行う。
2番目の処理では、0でない係数の値(レベル値)を求める処理を行う。
3番目の処理では、連続する0の係数の数(ラン)の総和を求める処理を行う。
4番目の処理では、自身のランを復号する際に残っているラン数を求める処理を行う。
これら4つの処理の中で、計算に時間がかかる処理は1番目の段階である、TCとT1sを求める処理である。
この一連の処理においては、プリフィックス長やサフィックスを求めるために、ビットストリームから指定したビット幅のデータを切り出す操作(アンパッキング処理)が必要となる。アンパッキング処理を行う装置の一例が、特許文献2に記載されている。
このプロセッサ1031は、5段のパイプラインを有し、命令を取り込むIFステージ,この命令をデコードし、コアレジスタ(Core Reg)からデータを取り出すREGステージ、数値演算ユニット(ALU)によるEXEステージ、バス(BUS)を解してメモリ1033との間でデータを入出力するMEMステージ、コアレジスタ(Core Reg)にデータを書き戻すWBステージにより構成される。
これにより命令、及びデータを順次転送して数値演算ユニット(ALU)により処理するようになされている。
また、プロセッサ1031は、REGステージにそれぞれ専用レジスタ(Reg)1034、EXEステージに演算器1035を設け、これら専用レジスタ(Reg)1034、演算器1035による処理装置1032が追加されるようになされている。
また、この追加の構成に対応して、プロセッサ1031は、専用レジスタ(Reg)1034から指定したビット幅のデータを切り出すアンパッキング命令が追加される。
同様に、CAVLC処理部は、ストリームデータを格納したMビットバッファを有するデータアクセス回路に対して、所定の要求ビット数を付加したgetリクエストを発行し、データ取得回路からデータを取得した上で「0係数」の連続個数を検出する。そして、不要なビットについては、ungetリクエストによりデータアクセス回路に返却する(特許文献3の段落番号0108〜0114)。
このように、CAVLC処理部は、データアクセス回路のストリームデータから「0係数」の個数や「0係数」の連続個数を検出する毎に逐次データを取得し、返却するという前記「データの切り出し」処理を行う。
この問題が発生する原因は、ビットの切り出し幅がビットストリーム内のビットパターンに依存するために、ビットストリームからデータを読み出して、ビットパターンを調べなければならないことに起因する。
すなわち、第2の課題は、復号結果を得るためのテーブル参照に必要なアドレス計算に、多くのサイクル数が必要となるということである。
この問題が発生する原因は、復号結果を得るためのテーブル参照に必要なアドレスを求めるために、まず、プリフィックス長からローインデックスを、サフィックスからはコラムインデックスを計算し、さらに、ローインデックスとコラムインデックスからテーブルを参照する復号用アドレスを計算しなければならないことに起因する。
まず、第1クロックから第5クロックにかけては、プロセッサはローインデックスとサフィックス長を求める処理を行う。
具体的には、プロセッサがメモリからデータをロードし、プリフィックス長を計算し、求めたプリフィックス長からローインデックステーブルとサフィックス長テーブルを参照するアドレスを求め、ローインデックスとサフィックス長をテーブル参照により求める。
次に、第6クロックから第8クロックにかけては、プロセッサはサフィックスを上記読み出したデータから切り出し、コラムインデックスを求める処理を行う。具体的には、ALUが上記読み出したデータの、プリフィックス部をマスクして消去し、データをシフトしてサフィックスのみを取り出し、コラムインデックスを計算する。
第9クロックから第10クロックにかけては、プロセッサはTCとT1sの復号を行う。具体的には、数値演算ユニット(ALU)が上記までの処理で求めたローインデックスとコラムインデックスから復号用アドレスを計算し、そのアドレスを用いたロード処理によりTCとT1sを求める。
最後に、第11クロックから第13クロックにかけて、プロセッサは、図47の専用レジスタ(Reg)1034を更新する処理を行う。
具体的には、数値演算ユニット(ALU)がプリフィックス長とサフィックス長を加算して更新するビット量を計算し、ビット読み出し命令によって、専用レジスタ(Reg)1034を更新する。
このように、特許文献2に開示の処理装置においては、全サイクル数の半分以上が、プリフィックス長の計算やアドレスの計算などにかかってしまう。
〔第1の実施の形態〕
(プロセッサの全体構成)
先ず、本実施形態の係る復号処理装置を備えたプロセッサの具体的構成について、全体構成から説明し、続いて各部の詳細構成について説明することとする。図1は、本発明における第1実施形態に係る復号処理装置を備えたプロセッサの全体の概略構成の一例を示すブロック図である。
この復号処理装置50は、プロセッサパイプライン処理におけるREGステージにおいてビットストリームを格納し、このビットストリームを読み進める機能を持つビット格納器52と、プロセッサパイプライン処理におけるEXEステージにてローインデックス及びビット格納器52がバッファを制御するための情報を生成する制御情報・ローインデックス生成器53と、制御情報・ローインデックス生成器53から情報を受け取って、アドレスを生成する復号用アドレス生成器54と、を含む構成としている。
前記REGステージは、Registerステージ(レジスタステージ)の略称であり、前記REGステージでは、数値演算ユニット(ALU)23が、コアレジスタ(Core Reg)22からデータを取り出す処理を行う。
前記EXEステージは、Executionステージ(実行ステージ)の略称であり、前記EXEステージでは、数値演算ユニット(ALU)23が演算処理を行う。
前記MEMステージは、Memoryステージ(メモリステージ)の略称であり、前記MEMステージでは、Load/Store Unit24が、バス(BUS)を介してメモリ10との間でデータを入出力する処理を行う。
前記WBステージは、Write Backステージ(ライトバックステージ)の略称であり、前記WBステージでは、コアレジスタ(Core Reg)22がデータを格納する処理を行う。
以上の各ステージに命令、及びデータを順次転送して、数値演算ユニット(ALU)23による処理が実行される。
図2を用いて、図1に示すビット格納器52について詳細を説明する。
ビット格納器52は、ビットバッファコントローラ61と、ビットバッファコントローラ61により制御されるビットバッファ62とを有している。
INST_CNTLがビットバッファ62の初期化を示す命令である場合、ビットバッファコントローラ61は、前記命令内に示されたアドレスを用いて、メモリ10からデータを読み込み、その読み込んだデータをビットバッファ62に格納する。
INST_CNTLが可変長符号の復号処理を行う命令である場合、ビットバッファコントローラ61は、ビットバッファ62から読み出したデータREG_DATAを出力すると同時に、そのデータREG_DATAに出力ビット幅BIT_WIDTHを付加して出力する。
ここで、ビット数が少ないと判断する場合とは、ビットバッファ62に書き込むデータのビット数が読み出すデータのビット数より少ない場合をいう。その判断条件は、特定期間におけるビットバッファ62のデータの格納ビット数が、ビットバッファ62の格納可能容量の例えば3分の1以下にすることが好ましい。
より具体的には、例えば96ビット等のビットバッファに対して例えば32ビット以下等となる場合にビット補充を行う。
ビットバッファコントローラ61がビット補充処理を行うことにより、ビットバッファ62からのデータ(可変長ビットストリーム)の読み出し処理が停止することを防止し、復号処理における高速化に寄与できる。
ビット補充処理を行う際、ビットバッファコントローラ61は初期化を行う命令を実行した際に保持したアドレスを用いて命令MEM_LOADを発行し、メモリ10から新しいビットデータを取得する。メモリ10から読み出されたビットデータは、図2に示すMEM_STとしてビットバッファ62に入力して、そのビットバッファ62に格納される。
図3に、図1の制御情報・ローインデックス生成器53の詳細な構成を示す。
制御情報・ローインデックス生成器53は図3に示すように、4段のパイプライン構成となっており、ビットバッファ62から読み出したデータREG_DATAのプリフィックス長を計数するプリフィックス計数器71と、前記計数したプリフィックス長から後述のテーブルを参照するためのアドレスを生成するプリフィックスアドレス生成器72と、ローインデックスを格納した複数のテーブルからなるローインデックステーブル(第1テーブル)群73と、サフィックス長を格納した複数のテーブルからなるサフィックス長テーブル(第2テーブル)群74と、ローインデックステーブル群73のうちの選択されたテーブルからプリフィックスアドレスに基づいて対応するローインデックスを取得する取得部77と、サフィックス長テーブル群74のうちの選択されたテーブルからプリフィックスアドレスに基づいて対応するサフィックス長を取得する取得部78と、プリフィックス長と取得部78にて取得されたサフィックス長を加算する加算器76と、プリフィックス長とサフィックス長とビットバッファ62から読み出したデータREG_DATAと、入力したBIT_WIDTHから制御情報の一例である図2に示すビットバッファ62を更新する命令を生成する更新命令生成器75とを有している。なお、ローインデックステーブル(第1テーブル)群73とサフィックス長テーブル(第2テーブル)群74とは記憶部に記憶されており、前記取得部77と78は、前記記憶部にそれぞれアクセスすることにより、前記ローインデックステーブル(第1テーブル)群73からの前記ローインデックスと前記サフィックス長テーブル(第2テーブル)群74からの前記サフィックス長をそれぞれ取得する。制御情報・ローインデックス生成器53は、制御情報とローインデックスとを生成する。
制御情報・ローインデックス生成器53において、1段目のパイプラインステージにおいて、ビットバッファ62から読み出されたデータREG_DATAがプリフィックス計数器71に入力すると、プリフィックス計数器71は、前記REG_DATAのプリフィックス長を計数する。プリフィックス計数器71は、前記計数したREG_DATAのプリフィックス長をパイプラインレジスタ81Aに出力する。
前記取得部77は、前記取得したローインデックスをパイプラインレジスタ81Cに通してROW_INDEXとして出力する。
図4に、図1の復号用アドレス生成器54の詳細を示す。
図4に示す復号用アドレス生成器54は、REG_DATA、COD_WIDTH、BIT_WIDTHを入力として、REG_DATAのビットを調整してコラムインデックスを生成するビット調整・コラムインデックス生成器91と、生成されたコラムインデックスと入力したROW_INDEXを加算する加算器92とから構成され、復号用アドレスADDRESSを生成して出力する。
ビット調整・コラムインデックス生成器91は、まず図5のステップS101において、COD_WIDTH(プリフィックス長とサフィックス長とを加算したもの)とBIT_WIDTH(ビットバッファから出力される可変長符号ビットストリームのビット数)の差分を求める(差分算出ステップないしは差分算出機能)。
ここでは結果をXとする。
ここで、結果をSH_DATAとする。これにより、ビット調整を行うことができる。
ビット調整・コラムインデックス生成器91は、ビット調整を行い、これに加えて、ビット調整・コラムインデックス生成器91は、コラムインデックスを生成する。
さらに、本実施の形態の制御情報・ローインデックス生成器53は、「第1の生成制御部」の一例ということもできる。また、本実施の形態の復号用アドレス生成器54は、「第2の生成制御部」の一例ということもできる。
その理由は、各処理を同時に行うことにより、各処理を逐次的に行う場合に比してサイクル数が低減し、処理速度の向上が図れるからである。
ここで、複数の処理を「同時に行う」とは、複数の処理を並列的に行う場合を含む。さらに、複数の処理を「同時に行う」場合には、コンピュータの処理ライクに「擬似的に並行して行う」場合を含むことができる。
また、複数の処理を同時に行う場合に限らず、複数の処理が同時にスタートし、各処理終了のタイミングがそれぞれ異なるようしてもよい。
さらには、各処理の各スタートのタイミングがそれぞれ異なり、各処理の各終了のタイミングがそれぞれ異なる場合であってもよい。
さらにまた、各処理は逐次実行であってもよい。
以降、本明細書における「同時に行う」ことが可能な制御では、いま述べた種々の形態の制御手法を包含することもできるものとする。
さらに、プロセッサの制御情報・ローインデックス生成器53が、前記プロセッサパイプライン処理における実行ステージにおいて、これらを生成した後に前記制御情報の一例であるビット格納器52内の可変長符号ビットストリームを更新する更新命令を生成する。
この場合、前記ビット制御部が、前記ビットストリーム一時保持部にて保持した前記可変長符号ビットストリームから予め決められたビット数のビットデータを読み出し、読み出し後の残りビット数が少ない場合に、新たなデータを保持した前記可変長符号ビットストリームの一部の末尾に連接して格納するビット補充機能と、前記更新する制御情報である更新命令に基づいて保持した前記可変長符号ビットストリームを更新する処理を行う更新処理機能と、を有することができる。
この場合、前記第1の制御手段が、前記種類を選択するテーブル選択制御情報を生成して前記第1の生成制御部(制御情報・ローインデックス生成器)に対して供給することができる。また、前記テーブル情報取得部が、前記テーブル選択制御情報に基づいて、前記第1のテーブルにおける前記複数のテーブルの中からいずれか一つを選択するとともに、前記第2のテーブルにおける前記複数のテーブルの中からいずれか一つを選択することができる。
すなわち、ビットストリーム内のビットパターンによって、アンパッキング命令で指定するビット幅を自動的に決定し、符号コードを復号するためのテーブル参照で使用するアドレスを生成できる。
次に、本発明にかかる第2の実施の形態について、図6及び図7に基づいて説明する。以下には、前記第1の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図6は、本発明の第2の実施の形態による制御情報・ローインデックス生成器の詳細構成の一例を示すブロック図である。
これに伴い、制御情報・ローインデックス生成器153では、テーブル選択信号SEL_TABは不要となり、前記第1の実施の形態の制御情報・ローインデックス生成器53からテーブル選択信号SEL_TABが削除された構成となっている。
第2の実施形態によるビット格納器152は、第1の実施形態と同様の入出力から、テーブル選択信号SEL_TABが削除された構成となっている。すなわち、ビットバッファコントローラ161は、テーブル選択信号を出力しない構成となる。
次に、本発明にかかる第3の実施の形態について、図8乃至図23に基づいて説明する。ここでは前記第1の実施形態のさらに詳細な具体例を第3の実施形態として説明する。
また、ビット格納器52における入力INST_CNTLは、例えば16ビットを入力することができるように構成される。
メモリから読み出されたビットストリームは、ビットバッファ62の左端がビットストリームの先頭となるように格納される。
ここで、出力SEL_TABに関して、SEL_TABの値、0、1、2はそれぞれローインデックス及びサフィックス長テーブルの0番目、1番目、2番目のテーブルを選択するものとする。
INST_UPD(ビットバッファの更新命令)の本実施の形態における内容を図11に記載の例を用いて説明する。
INST_UPDは、図11に記載のとおり、先頭1ビットを制御情報として使用し、先頭1ビットを除いた5ビットを更新するビット数データとして使用する。
ビットバッファコントローラは、制御情報が1のときにビットバッファの更新を行い、0のときには何も行わない。
図11の例では、制御情報が1のため、ビットバッファの更新が行われ、後続のビット数更新データに示されたビット数である7ビット分、ビットバッファが左シフトにより更新される。
プロセッサからの命令INST_CNTLについて本実施の形態における構成例を図13に示す。
図12に示されたDEC_CODE命令、図13に示されたINITIALIZE命令は16ビット幅の命令である。
DEC_CODE命令(復号開始命令)は、8ビットのオペランドコードOPCODE、生成されたアドレスを格納するレジスタ番号を指定する3ビットのREGNUM1と、SEL_TABに出力する値を格納したレジスタを指定する3ビットのREGNUM2と、2ビットの0とから構成される。
この命令は、前記の可変長復号処理を開始する命令であり、この命令によってビットバッファコントローラ61は、ビットバッファ62から32ビットのデータをロードしてREG_DATAに出力し、読み出したビット数すなわち32をBIT_WIDTHに出力し、さらに、REGNUM2で指定されたレジスタから読み出した値をSEL_TABに出力する。
また、命令実行の結果について、REGNUM1で指定したレジスタに結果のアドレスが格納されて返される。
INITIALIZE命令が発行されると、メモリのREGNUMで指定されたレジスタが格納するアドレスからデータを96ビット分ロードし、ビットバッファ62にデータを格納する。
また、ビットバッファ62の本実施の形態におけるビット補充方法について説明する。
本実施の形態においては、DEC_CODE命令を受け取り、ビットバッファ62から32ビットのデータを読み出した後、ビットバッファ62に格納されているビット数から32ビットを引いたビット数が32ビットを下回った場合に、ビットバッファコントローラ61はビット補充処理を行う。
MEM_LOADは、ロード命令であることを示す8ビットのオペランドコードOPCODEと、ビットバッファ62が保持するアドレスを示すADDRESSフィールドを持つ。
また、メモリから読み出した32ビットのデータは入力MEM_STを通じてビットバッファコントローラに受け渡される。
さらに、ビットバッファコントローラ61は、入力MEM_STから得たデータを、ビットバッファ62が保持するデータの末尾に追加する。
従って、例えば図15に示すB1、B2、B3、B4のように、ビット補充が行われる。
制御情報・ローインデックス生成器53は、図9に示すように、プリフィックス計数器71の出力は4ビット、プリフィックスアドレス生成器72の出力は32ビットである。
ローインデックステーブル群73は、テーブル0、テーブル1、テーブル2の3つのテーブルを持ち、出力は例えば32ビットである。
サフィックス長テーブル群74は、テーブル0、テーブル1、テーブル2の3つのテーブルをもち、出力は例えば3ビットである。
制御情報・ローインデックス生成器53の出力COD_WIDTHは、6ビットである。
今、図16に示したコードはプリフィックスとして5個の連続する0を持っている。
本実施の形態におけるプリフィックス計数器71は、この連続する0の数を数え、プリフィックス長を5として出力する。
ここで、本実施の形態においては連続する0をプリフィックスとしたが、連続する1をプリフィックスとしても差し支えない。
本実施の形態においては、これら3つのテーブルを必要に応じて、適宜切り替えて使用するものとする。これは、H.264のCAVLCがNumVLCテーブルを適宜選択して復号を進めるためである。
UPD_ROW命令及びUPD_SUF命令は、それぞれ、32ビットの命令であり、それぞれ、オペランドを示す8ビットのOPCODEとテーブルの更新する位置を示すアドレスを格納したレジスタを指定するREGNUM1、更新する内容を格納したレジスタを示すREGNUM2、テーブルを選択する内容を格納したレジスタを示すREGNUM3フィールドを有する。
図17及び図18に示したとおり、テーブルのアドレスはプリフィックス長に対応しており、プリフィックスが1増加すれば、アドレスは4増加するようになっている。
よって、本実施の形態のプリフィックスアドレス生成器は入力したプリフィックス長を2ビット左シフトすることによって、アドレスを生成する。
復号用アドレス生成器54の本実施の形態における構成を述べる。
ビット調整・コラムインデックス生成器91は、図10に示すように、32ビットの出力であり、出力されたコラムインデックスは入力ROW_INDEXと加算され、32ビットの復号用アドレスとして出力される。
まず、図5のステップS101において、ビット調整・コラムインデックス生成器91は、入力されたBIT_WIDTHとCOD_WIDTHの差分をとり、結果をXとする(差分算出ステップないしは差分算出機能)。
ビット調整・コラムインデックス生成器91は、このアドレスをコラムインデックスCOL_INDEXとして出力する(コラムインデックス算出ステップないしはコラムインデックス算出機能)。
本実施の形態における復号処理装置のプログラム例を図21及び図22に示す。図21は、CAVLCのTC、T1sを復号するための処理手順の一例を示すフローチャートである。図22は、CAVLCのTC、T1sを復号するアセンブラコードの例である。
続いて、プロセッサは、NumVLCの種類に応じた複数種のサフィックス長テーブルの中からいずれか一つのサフィックス長テーブルを選択し、選択されたサフィックス長テーブルを更新する処理を行う(ステップS220)。
さらに、プロセッサは、可変長符号復号装置(復号処理装置)を初期化する処理を行う(ステップS230)。
プロセッサは、この判定処理の結果が「Yes」の場合には、処理を終了する。一方、プロセッサは、この判定処理の結果が「No」の場合には、次のステップS250に処理を進める。
すなわち、プロセッサは、1つの4×4ブロックにおけるTC、T1sを復号する処理を行う(ステップS250)。
そして、プロセッサは、1つの4×4ブロックにおけるその他の復号処理を行う(ステップS260)。プロセッサは、この1つの4×4ブロックにおける復号処理が完了すると、ステップS240に戻り、他の4×4ブロックにおける復号処理を行うために、ステップS240〜ステップS260を繰り返す。
まず図22で使用する命令について説明する。
プログラム1行目の「Load dp3++,r0;」は、プロセッサが、アドレスが格納されたレジスタdp3を利用してメモリにアクセスしてデータを取得し、取得したデータをレジスタr0に格納し、さらに、レジスタdp3に格納されたアドレスを4バイト分進める命令である。
また、Loop r3は、プロセッサが、レジスタr3に格納された値だけ、Loop命令から繰り返し終端までに記述された処理を繰り返す命令である。
なお、繰り返し終端は、命令Loop endで記述される。
レジスタr3には、プロセッサが、繰り返しの回数、すなわち、4×4ブロックの数を格納する。
レジスタdp1には、プロセッサが、可変長符号ビットストリームの先頭アドレスを格納する。
レジスタdp3には、プロセッサが、ローインデックステーブルの更新内容を示すメモリ内のデータのアドレスを格納する。
レジスタdp4には、プロセッサが、ローインデックステーブルの更新する位置を示すデータのアドレスを格納する。
レジスタdp5には、プロセッサが、サフィックステーブルの更新内容を示すデータのアドレスを格納する。
レジスタdp6には、プロセッサが、サフィックステーブルの更新する位置を示すデータのアドレスを格納する。
はじめに、プロセッサがローインデックステーブルの更新を行う(ステップS210)。更新の第1、2命令、すなわち、図22のプログラム1、2行目では、プロセッサがローインデックステーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS211、S212)。
3行目の命令では、プロセッサがUPD_ROW命令を用いて、ローインデックスを更新する(ステップS213)。
4、5行目の命令では、プロセッサが、次のローインデックステーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS214、S215)。
すなわち、プログラム6、7行目では、プロセッサが、サフィックス長テーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS221、S222)。
8行目の命令では、プロセッサが、UPD_SUF命令を用いて、サフィックス長を更新する(ステップS223)。
9、10行目の命令では、プロセッサが、次のサフィックス長テーブルの内容と、更新する位置を示すアドレスをメモリから読み込む(ステップS224、S225)。
サフィックステーブルの更新が終わると、プロセッサはINITIALIZE命令で復号処理装置を初期化する(ステップS230)。
復号処理ではまず、プロセッサが、プログラム12行目で示されたLoop命令を使って、Loop以下の命令をレジスタr3に格納された値だけ、すなわち、4×4ブロックの数だけ繰り返すことを宣言する(ステップS240)。
次の命令では、プロセッサが、可変長符号を復号する命令を実行し、復号用アドレスを計算して結果をレジスタdp2に格納する(ステップS251)。
さらに、プロセッサが、レジスタdp2に格納されたアドレスを用いてデータをロードし、TCとT1sをメモリから得て、レジスタr0に格納する(ステップS252)。
このとき、プロセッサが、r3に示す値だけ繰り返し処理が行われていると判断した場合には、プロセッサはLoopを抜けて、次の処理に移る。また、プロセッサが、r2に示す値だけ繰り返し処理が行われていないと判断した場合には、プロセッサはLoop先頭に戻って、繰り返して処理を行う。
次に、図23のタイミングチャートを用いて、DEC_CODE命令による本発明の可変長符号の復号処理装置の動作を説明する。図23は、クロック信号に同期して動作する可変長符号の復号処理装置の、各クロックにおける各部の出力を示す。
また、同時に、制御情報・ローインデックス生成器53の取得部78が選択されたサフィックス長テーブルを参照し、プリフィックスアドレスに対応するサフィックス長を取得する(サフィックス長取得ステップないしはサフィックス長取得機能)。
同時に、復号用アドレス生成器54がコラムインデックスを生成し、生成したコラムインデックスをローインデックスと加算して出力する(ステップS17)(コラムインデックスローインデックス加算ステップ又は復号用アドレス算出ステップ、ないしはコラムインデックスローインデックス加算機能又は復号用アドレス算出機能)。
このように、制御情報・ローインデックス生成器53により、復号用アドレスを生成する処理と、ビットバッファ62に保持される可変長符号ビットストリームを更新する処理とを同時に(単位クロック期間に並行して)行うことができる。
次に、本発明にかかる第4の実施の形態について、図24乃至図30に基づいて説明する。ここでは前記第2の実施形態のさらに詳細な具体例を第4の実施形態として説明する。また、第1の実施の形態と同様の構成の箇所については、説明を省略する。
この変更により、テーブルを選択する信号SEL_TABは不要となる。
また、図25に示すように、ビット格納器152におけるビットバッファコントローラ161の出力にもテーブルを選択する信号SEL_TABは不要となる。
本実施の形態のDEC_CODE命令では、前記第3の実施の形態におけるDEC_CODE命令の構成からテーブルを選択する信号を含んだレジスタを指定する部分REG_NUM2が消去され、代わりに0値が格納される構成となっている。
本実施の形態のUPD_ROW及びUPD_SUF命令は、16ビットの命令であり、8ビットのオペランドOPCODEと、テーブルの更新する位置を示すアドレスを格納したレジスタを指定するREGNUM1と、更新する内容を格納したレジスタを示すREGNUM2と、2ビットの0と、から構成される。
本実施の形態における復号処理装置のプログラム例を図29及び図30に示す。図29は、CAVLCのTC、T1sを復号するための処理手順の一例を示すフローチャートである。図30は、CAVLCのTC、T1sを復号するアセンブラコードの例である。
本プログラムと第3の実施の形態で示したプログラムの違いは、複数種のローインデックステーブルの中からいずれか一つのローインデックステーブルを選択する必要がない点である。また、複数種のサフィックス長テーブルの中からいずれか一つのサフィックス長テーブルを選択する必要がない点である。
続いて、プロセッサは、サフィックス長テーブルを更新する処理を行う(ステップS320)。
さらに、プロセッサは、可変長符号復号装置(復号処理装置)を初期化する処理を行う(ステップS330)。
プロセッサは、この判定処理の結果が「Yes」の場合には、処理を終了する。一方、プロセッサは、この判定処理の結果が「No」の場合には、次のステップS350に処理を進める。
すなわち、プロセッサは、1つの4×4ブロックにおけるTC、T1sを復号する処理を行う(ステップS350)。
そして、プロセッサは、1つの4×4ブロックにおけるその他の復号処理を行う(ステップS360)。プロセッサは、この1つの4×4ブロックにおける復号処理が完了すると、ステップS340に戻り、他の4×4ブロックにおける復号処理を行うために、ステップS340〜ステップS360を繰り返す。
本例では前提として、レジスタr3には、プロセッサが、繰り返しの回数、すなわち、4×4ブロックの数を格納する。
レジスタdp1には、プロセッサが、可変長符号ビットストリームの先頭アドレスを格納する。
レジスタdp3には、プロセッサが、ローインデックステーブルの更新内容を示すメモリ内のデータのアドレスを格納する。
レジスタdp4には、プロセッサが、ローインデックステーブルの更新する位置を示すデータのアドレスを格納する。
レジスタdp5には、プロセッサが、サフィックステーブルの更新内容を示すデータのアドレスを格納する。
レジスタdp6には、プロセッサが、サフィックステーブルの更新する位置を示すデータのアドレスを格納する。
まず、ローインデックステーブル、サフィックス長テーブルを更新するUPD_ROW、及びUPD_SUF命令について、命令で指定するレジスタは更新する位置と更新に使用する値を格納したレジスタ2つとなっている(ステップS313、ステップS323)。
また、復号命令DEC_CODEについても同様に、第3の実施の形態のDEC_CODE命令からテーブルを選択する信号を除いたものとなっている(ステップS351)。
他のステップS311、S312、S314、S315、S321、S322、S324、S325、S330、S340、S352、S360は、前記第3の実施の形態におけるS211、S212、S214、S215、S221、S222、S224、S225、S230、S240、S252、S260と同様となっている。
また、本発明にかかる装置及び方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。
(変形例1)
まず、プリフィックスの計数について、第3、第4実施の形態では制御情報・ローインデックス生成器内にプリフィックス計数器を設け、それを用いて計数を行っていたが、ビットバッファコントローラがこれを行うこともできる。
この場合、ビットバッファ262に格納されているビットデータのプリフィックスを、あらかじめビットバッファコントローラ261が計数しておき、復号処理命令の実行によりビットデータがビットバッファ262から読み出されると同時に計数したプリフィックス長(例えば4bit)を出力する。
また、制御情報・ローインデックス生成器253では、3段のパイプライン構成で済み、生成器用パイプラインレジスタ281B、281Cのみの構成でよい。
その他の構成であるプリフィックスアドレス生成器272、ローインデックステーブル群273、サフィックス長テーブル群274と、取得部277、取得部278、加算器276、更新命令生成器275は、前記実施の形態と同一となっている。
さらに、計数したプリフィックス長をそのまま用いて、テーブル参照を行うこともできる。この構成の場合、図33に示すように、制御情報・ローインデックス生成器353では、プリフィックスアドレス生成器は不要となる。
また、制御情報・ローインデックス生成器353の取得部378は、サフィックス長テーブル群374のうちの選択されたテーブルからプリフィックス長に基づいて対応するサフィックス長を取得する。
その他の構成である加算器376、更新命令生成器375は、前記実施の形態と同一となっている。
さらに、復号用アドレス生成器で行っていた、復号用のアドレス生成を、制御情報・ローインデックス生成器の4段目のパイプラインステージ、すなわち、更新命令の生成と同時に行うことも可能である。
この場合、図35に示すように、復号用アドレス生成器453を制御情報・ローインデックス生成器453内に搭載することができる。
その他の構成であるプリフィックス計数器471、プリフィックスアドレス生成器472、ローインデックステーブル群473、サフィックス長テーブル群474、取得部477、取得部478、加算器476、更新命令生成器475、生成器用パイプラインレジスタ481A、481B、481Cは、前記実施の形態と同一となっている。
上述のような構成を有する復号処理装置における各部の処理は、方法としても実現可能であり、復号処理方法としての各種の処理手順について、図36を参照しつつ説明する。図36は、本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。
この復号処理方法では、例えば、上述の実施の形態の図22におけるステップS251の詳細処理手順の一例ということもできる。
すなわち、コンピュータが、前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持する処理を行う。
次に、コンピュータが、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御を行う(例えば図36に示すステップS402の制御情報・ローインデックス生成ステップなど)。
続いて、コンピュータが、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御を行う(例えば図36に示すステップS403の復号用アドレス生成ステップなど)。
図36に示す制御情報・ローインデックス生成ステップS402の詳細処理手順の一例を図37に示す。図37は、本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。
そして、コンピュータが、前前記可変長符号ビットストリームの前記プリフィックス長を計数する(ステップS501)(プリフィックス計数ステップないしはプリフィックス計数機能)。
図36に示す復号用アドレス生成ステップS403詳細処理手順の一例を図38を示す。図38は、本発明のその他の実施の形態の復号処理装置における処理手順の一例を示すフローチャートである。
この具体的例は、前記実施の形態の図5に示す処理を行う。
この「第2の制御ステップ」では、コンピュータが、前記ビットストリーム一時保持部から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御をすることができる。
また、前記第2の制御をする際に、前記復号用アドレスを生成する処理と、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する処理とを同時に行うことができる。
また、上述の実施の形態では、復号処理装置をプロセッサに搭載した構成例を示したが、図39に示すように、復号処理装置単独による構成も可能である。
すなわち、復号処理装置550は、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段(例えば図39に示す符号552のビット格納器など)と、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御手段(例えば図39に示す符号551など)とを含む構成としている。
この第2の制御手段551が、前記復号用アドレスを生成する処理と、前記第1の制御手段に保持される前記可変長符号ビットストリームを更新する処理とを同時に(例えば単位クロック期間に並行して)行うことができる。
さらに、上述の実施の形態における復号処理装置とプロセッサとを分けて構成することもできる。
この場合、図40に示すように、プロセッサ620におけるプロセッサ制御部625が、復号開始命令(DEC_CODE)生成機能625a、ビットバッファの更新命令(INST_UPD)生成機能625b、ビット補充命令(MEM_LOAD)生成機能625c、ローインデックステーブルの更新命令(UPD_ROW)生成機能625d、サフィックス長テーブルの更新命令(UPD_SUF)生成機能625e、初期化命令(INITIALIZE)生成機能、などを有することもできる。
すなわち、上記実施の形態では、1つのプロセッサに復号処理装置が1つ備える場合を示したが、本発明は、これらの個数を制限するものではない。例えば、複数のプロセッサで1つの復号処理装置を処理する構成や、一つのプロセッサで複数の復号処理装置を処理する構成であってもよい。
さらには、1つのプロセッサの場合、パイプラインプロセッサを用いたが、複数のプロセッサの場合、パイプラインプロセッサ以外のプロセッサを用いても良い。
また、パイプラインプロセッサは、並列処理の無い場合、並列度kの並列処理の有る場合(スーパースケーラ)のいずれであってもよい。
例えば、H.264で用いられる2×2サイズのブロックであってもよい。2×2サイズのブロックの復号処理では、2×2サイズ用のNumVLCテーブルを用いて復号を行うことと、ブロック係数の復号に必要な繰り返し回数以外は、4×4サイズのブロックの復号処理と同等の処理となる。
さらに、符号化処理がCAVLC方式に従うならば、ブロックサイズにかかわりなく、上記実施の形態の手法を用いることができる。
各種通信装置としては、パーソナルコンピュータに限らず、各種サーバ、EWS(エンジニアリングワークステーション)、中型コンピュータ、メインフレーム、携帯型情報端末、各種モバイル端末、PDA、携帯電話機、ウエアラブル情報端末、種々のテレビ・DVDレコーダ・各種音響機器、各種情報通信機能を搭載した家電機器、ネットワーク機能を有するゲーム機器等としても構わない。
また、前述した実施形態の機能を実現する本発明の復号処理プログラムは、前述した各実施の形態における各種ブロック図などに示された処理部(処理手段)、機能などに対応したプログラムや、フローチャートなどに示された処理手順、処理手段、機能などに対応したプログラムや、各種テーブルを利用するプログラムなどにおいて各々処理される各処理プログラム、本明細書で全般的に記述される方法(ステップ)、説明された処理、データの全体もしくは各部を含む。
また、上述のプログラムを、情報記録媒体に記録した構成であってもよい。情報記録媒体には、上述のプログラムを含むアプリケーションプログラムが格納されており、コンピュータが当該情報記録媒体からアプリケーションプログラムを読み出し、当該アプリケーションプログラムをハードディスクにインストールすることが可能である。これにより、上述のプログラムは、磁気記録媒体、光記録媒体あるいはROMなどの情報記録媒体に記録してプログラムを提供することができる。そのようなプログラムが記録された情報記録媒体を、コンピュータにおいて使用することは、好都合な情報処理装置を構成する。
さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含む。この場合において、本実施形態において特に記載しなくとも、各実施の形態及びそれらの変形例に開示した各構成から自明な作用効果については、当然のことながら実施の形態の作用効果として含めることができる。逆に、本実施の形態に記載されたすべての作用効果を奏することのできる構成が、本発明の本質的特徴部分の必須構成要件であるとは限らない。また、実施の形態に示される全構成要件から幾つかの構成要件が削除された構成による実施の形態並びにその構成に基づく技術的範囲も発明になりうる。
従って、上記に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物を含む趣旨である。
20 プロセッサ
50 復号処理装置
51 第2の制御手段
52 ビット格納器(第1の制御手段)
53 制御情報・ローインデックス生成器(第1の生成制御部)
54 復号用アドレス生成器(第2の生成制御部)
55 生成器用パイプラインレジスタ
61 ビットバッファコントローラ(ビット制御部)
62 ビットバッファ(ビットストリーム一時格納部)
71 プリフィックス計数器(プリフィックス計数部)
72 プリフィックスアドレス生成器(プリフィックスアドレス計算部)
73 ローインデックステーブル(第1テーブル)群
74 サフィックス長テーブル(第2テーブル)群
75 更新命令生成器(更新命令生成部)
76 加算器(加算部)
77、78 取得部(テーブル情報取得部)
91 ビット調整・コラムインデックス生成器(コラムインデックス生成部)
92 加算器(加算部)
Claims (10)
- 少なくともプリフィックスと前記プリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理装置であって、
前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段と、
前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御手段と、
を含み、
前記第2の制御手段は、
前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御部と、
前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御部と、
を含み、
前記第1の生成制御部が、
前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御部における復号用アドレスを生成する処理と、前記第1の制御手段における前記可変長符号ビットストリームを更新する処理とを実行することを特徴とする復号処理装置。 - 請求項1に記載の復号処理装置において、
前記第1の生成制御部は、
前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、
前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、
前記プリフィックス長を用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得部と、
を含み、
前記テーブル情報取得部が、前記ローインデックスと前記サフィクス長を取得することを特徴とする復号処理装置。 - 請求項1に記載の復号処理装置において、
前記第1の生成制御部は、
前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、
前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、
前記第1の制御手段から読み出された前記可変長符号ビットストリームの前記プリフィックス長を計数するプリフィックス計数部と、
前記プリフィックス計数部にて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算するプリフィックスアドレス計算部と、
前記プリフィックスアドレス計算部にて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得部と、
前記テーブル情報取得部にて取得された前記サフィックス長と、前記プリフィックス計数部にて計数した前記プリフィックス長と、前記第1の制御手段から読み出された前記可変長符号ビットストリームとに基づいて、前記更新する制御情報である更新命令を生成する更新命令生成部と、
を含むことを特徴とする復号処理装置。 - 請求項1に記載の復号処理装置において、
前記第2の生成制御部は、
前記サフィックス長に基づいて前記コラムインデックスを生成するコラムインデックス生成部と、
前記コラムインデックスと前記ローインデックスとを加算する加算部と、
を含むことを特徴とする復号処理装置。 - 請求項3に記載の復号処理装置において、
前記第1テーブル及び前記第2テーブルは、
コンテキスト適応型可変長符号化方式における復号用NumVLCテーブルの種類に応じた複数のテーブルを各々有し、
前記第1の制御手段が、
前記種類を選択するテーブル選択制御情報を生成して前記第1の生成制御部に対して供給し、
前記テーブル情報取得部が、
前記テーブル選択制御情報に基づいて、前記第1のテーブルにおける前記複数のテーブルの中からいずれか一つを選択するとともに、前記第2のテーブルにおける前記複数のテーブルの中からいずれか一つを選択することを特徴とする復号処理装置。 - 少なくともプリフィックスと前記プリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理装置を搭載したパイプライン処理を実行可能なプロセッサであって、
プロセッサパイプライン処理におけるレジスタステージにおいて、前記可変長符号ビットストリームの一部を一時保持するとともに、保持するための入出力処理を制御する第1の制御手段と、
前記プロセッサパイプライン処理における実行ステージにおいて、前記第1の制御手段から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記第1の制御手段に対し前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御手段と、
を含み、
前記第2の制御手段が、
前記プロセッサパイプライン処理における実行ステージにおいて、前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御部と、
前記プロセッサパイプライン処理における実行ステージにおいて、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御部と、
を含み、
前記第1の生成制御部が、
前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御部における復号用アドレスを生成する処理と、前記第1の制御手段における前記可変長符号ビットストリームを更新する処理とを実行することを特徴とするプロセッサ。 - 請求項6に記載のプロセッサにおいて、
前記第1の生成制御部は、
前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、
前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、
プロセッサパイプライン処理における実行ステージ内であって、インデックス生成パイプライン処理における第1ステージにて、前記第1の制御手段から読み出された前記可変長符号ビットストリームの前記プリフィックス長を計数するプリフィックス計数部と、
前記インデックス生成パイプライン処理における第2ステージにて、前記プリフィックス計数部にて計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算するプリフィックスアドレス計算部と、
前記インデックス生成パイプライン処理における第3ステージにて、前記プリフィックスアドレス計算部にて求めた前記プリフィックスアドレスを用いて、前記第1テーブルと前記第2テーブルとを各々参照し、対応する前記ローインデックスと前記サフィックス長を取得するテーブル情報取得部と、
前記インデックス生成パイプライン処理における第4ステージにて、前記テーブル情報取得部にて取得された前記サフィックス長と前記プリフィックス計数部にて計数した前記プリフィックス長と、前記第1の制御手段から読み出された前記可変長符号ビットストリームとに基づいて、前記更新する制御情報である更新命令を生成する更新命令生成部と、
を含むことを特徴とするプロセッサ。 - 少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行う復号処理方法であって、
前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御をし、
続いて、前記ビットストリーム一時保持部から入力される前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部に対し前記可変長符号ビットストリームを更新するための制御情報を供給する第2の制御をし、
前記第2の制御をする際に、
前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御をし、
続いて、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御をし、
前記第1の生成制御をする際に、
前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御における復号用アドレスを生成する処理と、前記第1の制御における前記可変長符号ビットストリームを更新する処理とを実行させることを特徴とする復号処理方法。 - 請求項8に記載の復号処理方法において、
前記プリフィックス長に応じたローインデックスを格納した第1テーブルと、前記プリフィックス長に応じたサフィックス長を格納した第2テーブルと、を設け、
前記第1の生成制御をする際に、
前記可変長符号ビットストリームの前記プリフィックス長を計数し、
続いて、計数した前記プリフィックス長から前記第1テーブル、前記第2テーブルを参照するためのプリフィックスアドレスを計算し、
次に、計算した前記プリフィックスアドレスを用いて前記第1テーブルと前記第2テーブルとを各々参照して対応する前記ローインデックスと前記サフィックス長を取得し、
しかる後、取得した前記サフィックス長と計数した前記プリフィックス長とに基づいて前記更新する制御情報である更新命令を生成することを特徴とする復号処理方法。 - 少なくともプリフィックスとこのプリフィックスに後続するサフィックスとを含む符号化データ列である可変長符号ビットストリームを復号する処理を行うコンピュータが諸機能を実現可能な復号処理プログラムであって、
前記可変長符号ビットストリームの一部をビットストリーム一時保持部に一時保持するための入出力処理を行う第1の制御機能と、
前記ビットストリーム一時保持部に保持された前記可変長符号ビットストリームの前記プリフィックスと前記サフィックスとに基づいて、復号に必要な復号用テーブル参照に用いる復号用アドレスを生成するとともに、前記ビットストリーム一時保持部の前記可変長符号ビットストリームを更新する制御情報を生成する第2の制御機能と、
を含む機能を前記コンピュータに実行させ、
前記第2の制御をする際に、
前記可変長符号ビットストリームの前記プリフィックスに基づいて、前記復号用アドレスを求めるためのローインデックスを生成するとともに、プリフィックス長に対応したサフィックス長を生成し、これらを生成した後に前記制御情報を生成する第1の生成制御をし、続いて、前記サフィックス長から前記復号用アドレスを求めるためのコラムインデックスを生成し、このコラムインデックスと前記ローインデックスとに基づいて前記復号用アドレスを生成する第2の生成制御を前記コンピュータに実行させ、
前記第1の生成制御をする際に、
前記ローインデックスと前記サフィックス長の生成後に、前記第2の生成制御における復号用アドレスを生成する処理と、前記第1の制御における前記可変長符号ビットストリームを更新する処理とを前記コンピュータに実行させることを特徴とする復号処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010517811A JP5083579B2 (ja) | 2008-06-23 | 2009-04-20 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008163161 | 2008-06-23 | ||
JP2008163161 | 2008-06-23 | ||
JP2010517811A JP5083579B2 (ja) | 2008-06-23 | 2009-04-20 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
PCT/JP2009/057832 WO2009157250A1 (ja) | 2008-06-23 | 2009-04-20 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2009157250A1 JPWO2009157250A1 (ja) | 2011-12-08 |
JP5083579B2 true JP5083579B2 (ja) | 2012-11-28 |
Family
ID=41444320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010517811A Expired - Fee Related JP5083579B2 (ja) | 2008-06-23 | 2009-04-20 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5083579B2 (ja) |
WO (1) | WO2009157250A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX337232B (es) * | 2011-06-28 | 2016-02-18 | Samsung Electronics Co Ltd | Metodo y aparato para codificar video y metodo y aparato para decodificar video acompañados por una codificacion aritmetica. |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3772976B2 (ja) * | 2002-05-22 | 2006-05-10 | ソニー株式会社 | プロセッサ、エンコーダ、デコーダ及び電子機器 |
JP2006254225A (ja) * | 2005-03-11 | 2006-09-21 | Toshiba Corp | 可変長符号の復号装置及び復号方法 |
JP2007049670A (ja) * | 2005-08-09 | 2007-02-22 | C & S Technology Co Ltd | 高速のcavlcのためのh.264デコーディング方法 |
JP2007060199A (ja) * | 2005-08-24 | 2007-03-08 | Matsushita Electric Ind Co Ltd | 可変長復号装置およびそれを含む集積回路 |
JP2008124926A (ja) * | 2006-11-14 | 2008-05-29 | Renesas Technology Corp | 画像復号装置、画像符号化装置、およびシステムlsi |
-
2009
- 2009-04-20 WO PCT/JP2009/057832 patent/WO2009157250A1/ja active Application Filing
- 2009-04-20 JP JP2010517811A patent/JP5083579B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3772976B2 (ja) * | 2002-05-22 | 2006-05-10 | ソニー株式会社 | プロセッサ、エンコーダ、デコーダ及び電子機器 |
JP2006254225A (ja) * | 2005-03-11 | 2006-09-21 | Toshiba Corp | 可変長符号の復号装置及び復号方法 |
JP2007049670A (ja) * | 2005-08-09 | 2007-02-22 | C & S Technology Co Ltd | 高速のcavlcのためのh.264デコーディング方法 |
JP2007060199A (ja) * | 2005-08-24 | 2007-03-08 | Matsushita Electric Ind Co Ltd | 可変長復号装置およびそれを含む集積回路 |
JP2008124926A (ja) * | 2006-11-14 | 2008-05-29 | Renesas Technology Corp | 画像復号装置、画像符号化装置、およびシステムlsi |
Also Published As
Publication number | Publication date |
---|---|
JPWO2009157250A1 (ja) | 2011-12-08 |
WO2009157250A1 (ja) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7051189B2 (en) | Method and apparatus for processor code optimization using code compression | |
Lefurgy et al. | Evaluation of a high performance code compression method | |
JP2009026106A (ja) | 命令コード圧縮方法と命令フェッチ回路 | |
US20080091921A1 (en) | Data prefetching in a microprocessing environment | |
TWI498818B (zh) | 指示可變長度指令集的指令長度之技術 | |
WO2006094289A2 (en) | Speculative load of look up table entries based upon coarse index calculation in parallel with index calculation | |
KR20190129702A (ko) | 부동 소수점 데이터를 압축하기 위한 시스템 | |
JP3837289B2 (ja) | 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ | |
US9154157B2 (en) | Search unit to accelerate variable length compression/decompression | |
JP2003249029A (ja) | データ書き込み装置及びdvdフォーマットデータ生成方法 | |
US8151096B2 (en) | Method to improve branch prediction latency | |
CN114721720A (zh) | 一种指令集扩展方法、装置、电子设备及存储介质 | |
US8549266B2 (en) | System and method of instruction modification | |
US20240273163A1 (en) | Accelerator for sparse matrix multiplication in neural networks | |
JP5083579B2 (ja) | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム | |
US7630585B2 (en) | Image processing using unaligned memory load instructions | |
US20140052960A1 (en) | Apparatus and method for generating vliw, and processor and method for processing vliw | |
KR20030007480A (ko) | 컴퓨터 시스템 및 컴퓨터 프로그램 | |
JP2005244928A (ja) | 可変長復号化装置および可変長復号化方法ならびに再生システム | |
JP2002519957A (ja) | 符号関数を処理する方法および装置 | |
US6427200B1 (en) | Multiple changeable addressing mapping circuit | |
US7075462B2 (en) | Speeding up variable length code decoding on general purpose processors | |
US20020087839A1 (en) | System and method for executing variable latency load operations in a date processor | |
US6922773B2 (en) | System and method for encoding constant operands in a wide issue processor | |
JP2007073067A (ja) | プロセッサ集積回路及びプロセッサ集積回路を用いた製品開発方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120515 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120717 |
|
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: 20120808 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120821 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5083579 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150914 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |