JP4739167B2 - 正規化処理装置 - Google Patents

正規化処理装置 Download PDF

Info

Publication number
JP4739167B2
JP4739167B2 JP2006296501A JP2006296501A JP4739167B2 JP 4739167 B2 JP4739167 B2 JP 4739167B2 JP 2006296501 A JP2006296501 A JP 2006296501A JP 2006296501 A JP2006296501 A JP 2006296501A JP 4739167 B2 JP4739167 B2 JP 4739167B2
Authority
JP
Japan
Prior art keywords
bit
output
value
codllow
shift amount
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
Application number
JP2006296501A
Other languages
English (en)
Other versions
JP2008113375A (ja
JP2008113375A5 (ja
Inventor
紘一 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2006296501A priority Critical patent/JP4739167B2/ja
Priority to US11/924,866 priority patent/US8046395B2/en
Publication of JP2008113375A publication Critical patent/JP2008113375A/ja
Publication of JP2008113375A5 publication Critical patent/JP2008113375A5/ja
Application granted granted Critical
Publication of JP4739167B2 publication Critical patent/JP4739167B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

本発明は算術符号化における正規化処理装置に関するものである。
近年、動画像の圧縮符号化方式として「H.264」と呼ばれる方式が規格化された。このH.264符号化方式では、MPEG2およびMPEG4などの従来の圧縮符号化方式に比べて、多くの演算量が要求されるが、より高い符号化効率が実現されることが知られている。このH.264符号化方式では可変長符号化方式として、コンテキスト適応型算術符号化(CABAC)方式が定義されている(非特許文献1参照)。
算術符号化ではシンボル系列を数直線状で0.0から1.0までの間にマッピングし、その座標を2進表示したものを符号語として符号化する。
シンボルとして「1」が出現する確率を「r」、「0」が出現する確率を「1-r」とし、第I時点でのシンボル系列の数直線上での範囲をcodlRangeその範囲の最小の座標をcodlLowとする。出現したシンボルが「0」のときはcodlRange,codlLowは以下のように更新される。
codlRange = (1-r)* codlRange
codlLow= codlLow +r* codlRange
一方、出現したシンボルが1のときはcodlRange,codlLowは以下のように更新される。
codlRange = r* codlRange
codlLow= codlLow
ここでマッピングが順次繰り返されるにつれ、範囲codlRangeは次第に小さくなっていくので、演算の精度を保つために正規化処理が必要になる。
CABAC方式における正規化処理のフローを図2に示す。数直線上での範囲codlRange, その範囲の最小の座標codlLow, 未出力ビット数bitsOutStanding, 出力ビットがスライスの最初の出力ビットか否かを示すfirstBitFlagが入力される。
そして、正規化処理が行われ後に数直線上での範囲codlRange、その範囲の最小の座標codlLow、未出力ビット数bitsOutStanding、出力ビットがスライスの最初の出力ビットか否かを示すfirstBitFlag及び、符号化ビット列が出力される。
ステップS201においてcodlRangeが0x100よりも小さいか否かを判定する。0x100よりも小さい場合には正規化処理を終了する。0x100以上である場合にはステップS202に進む。
ステップS202においてcodlLowが0x100よりも小さいか否かを判定する。0x100よりも小さい場合にはステップS204に進み、後述の関数PutBit(0)を実行しステップS208に進む。0x100以上である場合にはステップS203に進み、codlLowが0x200以上であるか否かを判定する。
codlLowが0x200よりも小さい場合にはステップS205に進み、codlLowから0x100を減算する。
また、bitsOutStandingをインクリメントし、ステップS208に進む。ステップS203において、codlLowが0x200以上である場合にはステップS206に進み、codlLowから0x200を減算し、ステップS207に進む。
続いてステップS207において後述の関数PutBit(1)を実行しステップS208に進む。ステップS208では、codlRange,codlLowを1ビット左シフトすることで2倍に拡大し、ステップS201に戻る。
続いて、関数PutBit(B)の内容について図3を用いて説明する。引数Bは0か1の値をとる。ステップS301において、firstBitFlagが0であるか否かを判定する。0である場合にはステップS302に進み、firstBitFlagを0にしてステップS304に進む。0でない場合にはステップS303に進み、1ビットBを出力しステップS304に進む。
ステップS304においてbitsOutStandingが0より大きいか否かを判定する。0以下である場合には処理を終了する。0より大きい場合にはステップS305に進み、1-Bの値を1ビット出力し、bitsOutStandingをデクリメントしてステップS304に戻る。
従来の正規化処理装置の一例を図10に示す。記憶手段1001は信号codlRange, codlLow, bitsOutStanding, firstBitFlag, 及び出力ビット列を記憶しておくレジスタアレイである。判定器1002は記憶手段1001に記録されたcodlRangeの値を0x100と比較する判定器である。
判定機1002はcodlRangeの値が0x100以上であれば出力器1004に記憶手段1001の内容を転送し、codlRangeの値が0x100より小さければビット列算出器1003に記憶手段1001の内容を転送する。
ビット列算出器1003は図2のフローチャートのステップS202からS208までの処理を行う回路である。ビット列算出器1003で算出されたcodlRange, codlLow, bitsOutStanding, firstBitFlag 及び出力ビット列は記憶手段1001に転送され、その結果記憶手段1001の内容が更新される。
出力器1004は判定器1002から転送されてきたcodlRange, codlLow, bitsOutStanding, firstBitFlag 及び出力ビット列を外部に出力する回路である。
ITU-T H.264 Advanced video coding for generic audiovisual services
しかしながら、上記従来の正規化処理においては、ビット列算出器1003においてcodlRangeを2倍するごとに記憶手段1001にcodlRangeの値を戻し、判定器1002にて終了判定をする必要があった。そのため、一括して正規化を行えず符号化・復号化処理を高速に実行できないという問題があった。
例えばcodlRangeの値が1であった場合には、記憶手段1001の内容の更新および判定器1002での終了判定を8回繰り替えすので、一回の判定処理に1サイクルかかる回路であっても、正規化処理全体では8サイクルも要してしまっていた。
一方、すべてのcodlRange, codlLow, firstBitFlag, bitsOutStandingに対応する出力値をテーブルとして予め用意する場合も考えられる。この場合、大容量のメモリが必要となってしまいコストがかかるという問題があった。
そこで本発明は大容量のメモリを使わずに一括して高速に正規化処理を行う手段を提供することを目的とする。
本発明の正規化処理装置は、算術符号化処理において現行シンボルの出現値により選択される数直線上の領域のサイズ、領域の下端値、及び未出力ビット数を入力し正規化処理を行う正規化処理装置であって、前記領域のサイズが設定値以上となるシフト量を算出するシフト量算出手段と、前記シフト量に基づいて前記領域のサイズ及び前記領域の下端値にシフト処理を施すシフト手段と、前記未出力ビット数及び前記領域の下端値を用いて、前記領域の下端値の最上位ビットと、それに続く未出力ビット数分のビットを出力ビット列のプレフィックスとして算出すると共にプレフィックス長を算出するプレフィックス生成手段と、前記領域の下端値を用いて、前記領域の下端値のビット列の一部を出力ビット列のサフィックスとして算出するサフィックス生成手段と、前記未出力ビット数及び前記領域の下端値及び前記シフト量を用いて、該正規化処理装置に再び入力する未出力ビット数を算出すると共に未出力ビット加算数を算出する未出力ビット算出手段と、前記シフト量及び前記プレフィックス長及び前記未出力ビット加算数を用いて、前記プレフィックスと前記サフィックスを結合して出力するビット列結合手段とを備えることを特徴とする。
本発明によれば、領域のサイズから算出したシフト量と、領域の下端値および未出力ビット数を用いて算出した出力ビット列のプレフィックスとサフィックスとから、正規化処理後の領域のサイズおよび領域の下端値および未出力ビット数、出力ビット列を一括して算出することが可能である。その結果、大容量のメモリを使わずに、高速に正規化処理を行うことが可能になる。
図1は本発明の実施形態の構成を示した図である。図1において本発明にかかわる正規化処理装置107はシフト量算出手段101、シフト手段102、未出力ビット算出手段103、プレフィックス生成手段104、サフィックス生成手段105、及びビット列結合手段106を備える。
正規化処理装置107には数直線上での範囲として9ビットの信号codlRange(領域のサイズ)、その範囲の最小の座標として10ビットの信号codlLow(領域の下端値)、未出力ビット数として十分に大きなビット数の信号bitsOutStanding、出力ビットがスライスの最初の出力ビットか否かを示す1ビットの信号firstBitFlag(先頭ビットフラグ)が入力される。
シフト量算出手段101は、codlRangeの値をデコードし、シフト量Nを算出する回路である。ここでシフト量とは、図2のフローチャートにおいて、ステップS208でのシフトを行う回数を表す値である。
シフト手段102は、シフト量算出手段101で算出されたシフト量だけcodlRangeおよびcodlLowを左シフト(シフト処理)して出力するバレルシフタ回路である。
未出力ビット算出手段103はcodlLow, firstBitFlag, bitsOutStanding, 前記シフト量からbitsOutStanding, firstBitFlag を算出して出力する回路である。
プレフィックス生成手段104はbitsOutStanding、codlLow、firstBitFlagから出力ビット列のプレフィックスを算出する回路である。
サフィックス生成手段105はcodlLowから出力ビット列のサフィックスを算出する回路である。
ビット列結合手段106はプレフィックス生成手段104で算出されたプレフィックスおよびサフィックス生成手段105で算出されたサフィックスを結合してビット列を生成し、出力する回路である。
次にcodlRangeおよびシフト量Nの算出について説明する。図2のステップS201でcodlRangeの値が0x100以上(設定値以上)と判定されるまで、codlRangeの値を左シフトするので、codlRangeを2進数で表現した際に値が1となるビットの最大ビット位置をXとすると、シフト量は以下の式で表される。
N=Max(8-X,0)
例えば図5のように、codlRange= 0b000001010の時は、値が1となる最大ビット位置はLSBから数えて3ビット目であるため、X=3,N=5となる。
図4にシフト量算出手段101の構成を示す。図4において401はcodlRangeからXを算出するビット位置デコーダ(以下、単にデコーダとも称す)である。デコーダ401で算出されたXの値は減算器402へ入力され、8-Xの値が算出される。
さらに8-Xの値は比較器403へ入力される。比較器403において0と比較され、大きいほうの値がシフト量Nとして出力される。このシフト量Nはシフト手段102へ入力される。シフト手段102においてcodlRangeはNビット左シフトされ、出力される。
次にcodlLowの算出について説明する。図2のステップS202からステップS208により、一回のループ内でのcodlLowへの処理は以下のように表される。
if codlLow < 0x100 then
codlLow = codlLow<<1
else if codlLow < 0x200 then
codlLow = (codlLow-0x100) <<1
else
codlLow = (codlLow-0x200) << 1
ここでcodlLow[9:8]の2ビットに着目すると、この2ビットのとりうる値は00, 01, 10, 11の4種類が存在する。codlLow[9:8]の2ビットの値を現在の状態とし、codlLow[7:7]の値を遷移条件と考えると、codlLowの変化の様子は図5の状態遷移図で表される。
状態遷移図において状態501はcodlLow[9:8]が10の値をとる状態を表している。状態502はcodlLow[9:8]が11の値をとる状態を表している。同様に状態503はcodlLow[9:8]が01の値をとる状態を表し, 状態504はcodlLow[9:8]が00の値をとる状態を表す。
505は終了状態を表す。また内部変数Kは初期値が0であり、一回遷移するたびに1ずつインクリメントされる変数である。Kがシフト量Nに到達した場合には、直ちに状態505へ進み、処理を終了する。
また、シフト量Nが0の場合にも直ちに状態505へ進み、処理を終了する。現在の状態が状態501であるときは、codlLow >=0x200であるためPutBit(1)が実行される。また、codlLow= codlLow-0x200 << 1により、codlLow[9:9]を1から0に変更して1ビット左シフトが行われる。
これにより、現在のcodlLow[7:7]の値が1ならば状態503へ進む。またcodlLow[7:7]の値が0ならば状態504に進む。現在の状態が状態502であるときは、codlLow >=0x200であるためPutBit(1)が実行される。また、codlLow= codlLow-0x200 << 1により、codlLow[9:9]を1から0に変更して1ビット左シフトが行われる。
これにより、現在のcodlLow[7:7]の値が1ならば状態502へ進む。またcodlLow[7:7]の値が0ならば状態501に進む。現在の状態が状態503であるときは、 0x100 <=codlLow <0x200であるためbitsOutStanding がインクリメントされる。また、codlLow= codlLow-0x100 << 1により、codlLow[8:8]を1から0に変更して1ビット左シフトが行われる。
これにより、現在のcodlLow[7:7]の値が1ならば状態503へ進む。またcodlLow[7:7]の値が0ならば状態504に進む。現在の状態が状態504であるときは、 0x100 > codlLow であるためPutBit(0) が実行される。
また、codlLow= codlLow << 1により、1ビット左シフトが行われる。これにより、現在のcodlLow[7:7]の値が1ならば状態503へ進む。またcodlLow[7:7]の値が0ならば状態504に進む。
この状態遷移図より、状態501、502、503、504において現在のcodlLow[7:7]の値は遷移後のcodlLow[8:8]の値と必ず同じになることが分かる。
また、遷移後のcodlLow[7:0]の値は現在のcodlLow[6:0]を1ビット左シフトしたものと同じである。
一方、いったん状態503、および504に遷移すると、状態501、および502に戻ることはないことから、最終的にcodlLow[9:9]が1であるのはcodlLow[9:9-N]のすべてのビットが1である場合のみであることが分かる。
図6にシフト手段102の構成を示す。601はcodlRangeの値をNビット左シフトするためのバレルシフタである。602はcodlLowの値をNビット左シフトするためのバレルシフタである。603はバレルシフタ602からの出力の上位ビットN+1ビットから、codlLow[9:9]を算出するためのデコーダ回路である。
デコーダ603での処理は、バレルシフタ602からの出力の上位N+1ビットの各ビットの論理積をとって出力することにより可能である。
604はバレルシフタ602の下位9ビットと、デコーダ603からの出力を結合し、codlLowとして出力する回路である。
次にbitsOutStandingの算出について説明する。また、図3のフローチャートから、bitsOutStandingはPutBit関数により0にクリアされる。そのため、codlLow[9:9-N]の下位ビットから数えて連続する1の個数を未出力ビット加算数MとするとbitsOutStandingの出力値は以下で与えられる。
if N==M+1 then
bitsOutStanding = bitsOutStanding + M
else if N = 0 then
bitsOutStanding = bitsOutStanding
else if N = M then
bitsOutStanding = 0
else
bitsOutStanding = M
また図3のフローチャートから、firstBitFlagはPutBit関数により0にクリアされるので、firstBitFlagとして1が出力されるのは、入力のfirstBitFlag の値が1で、かつPutBit関数が一度も実行されない場合である。PutBit関数が一度も呼ばれないのは、図5の状態遷移図で、codlLow[9:8]が常に01である場合である。即ち、codlLow[9:9-N] = 0b01111..1の場合あるいはシフト量Nが0の場合である場合である。firstBitFlagの出力は以下の式で表される。
if N = 0 then
firstBitFlag = firstBitFlag
else if N = M+1 then
firstBitFlag = firstBitFlag
else
firstBitFlag = 0
これにより、codlLowの値から未出力ビット加算数Mを算出すれば, bitsOutStanding およびfirstBitFlagを直ちに求めることができる。
未出力ビット算出手段103の構成を図7に示す。701はcodlLow,およびシフト量Nから未出力ビット加算数Mを算出するビット数デコーダ回路である。702はbitsOutStanding , firstBitFlag およびシフト量N, 未出力ビット加算数Mの値から式を計算してbitsOutStandingおよびfirstBitFlagを出力する回路である出力算出器である。
続いて出力ビット列の算出について説明する。まずcodlLowの値を図7のように表現する。MSBからみて連続する1の個数をP0, t続いて連続する0の個数をQ0、続いて連続する1の個数をP1、さらに続いて連続する0の個数をQ1のように定義する。
例えばcodlLowの値が0b1110001001の場合には、P0=3, Q0=3, P1=1, Q1=2, P2=1, Q2=0で表される。また、codlLowの値が0b0000011010の場合にはP0=0, Q0=5, P1=2, Q1=1, P2=1, Q2=1で表される。
ここで、図5の状態遷移図より以下のことが分かる.遷移の数がシフト量Nを超えない範囲でPutBit(1)がP0回実行される。続いて、遷移の数がシフト量Nを超えない範囲でPutBit(0)がQ0-1回実行される。続いて、遷移の数がシフト量Nを超えない範囲でbitsOutStandingがP1回インクリメントされる。
以下、遷移の数がシフト量Nを超えない範囲で0が現われるたびにPutBit(0)が実行され、1が現われるたびにbitsOutStandingへのインクリメントが行われる。例えば、N=7、codlLow=0b1110001001の場合には、正規化中に実行される処理を並べると以下のようになる。
PutBit(1), PutBit(1), PutBit(1), PutBit(0), PutBit(0), bitsOutStanding++, PutBit(0)
この場合に出力のビット列は図3のフローチャートより以下のようになる。
入力firstbitFlagが0ならば、1ビット1が出力される。
0 が入力bitsOutStandingビット分だけ出力される。
1が2ビット出力される。
0 が2ビット出力される。
bitsOutStandingが1になる。
0が1ビット出力され、続いて1が1ビット出力される。
例えば、入力firstBitFlagが0、bitsOutStandingが3の場合には,出力ビット列は以下のようになる。
1,0,0,0,1,1,0,0,0,1
ここで、最初の4ビットについては入力のbitsOutStandingおよびfirstBitFlagに依存して出力が変化する。この部分をプレフィックスとよび、残りの部分をサフィックスと呼ぶ。
プレフィックスは以下のように算出する。firstbitFlagが1の時はcodlLow[9:9]の値を反転したものを入力bitsOutStandingビットつなげたものとする。firstBitFlagが0のときはcodlLow[9:9]の値1ビットと、 codlLow[9:9]の値を反転したものを入力bitsOutStandingビット分とをつなげたものとする。
プレフィックス生成手段104ではfirstBitFlag , codlLowを入力し、以下の値を出力する。
図8にプレフィックス算出手段104の構成を示す。801はcodlLowの最上位ビットとfirstBitFlagの排他的論理和をとるためのXOR回路である。802はcodlLowの最上位ビットの反転値を得るためのNOT回路である。
803はXOR回路801で出力されたビットとNOT回路802により出力されたビットを入力し、プレフィックスの最上位ビットをXOR回路801から出力されたビットとする結合回路である。結合回路803は、さらに、それ以外のビットをNOT回路802から出力されたビットにして出力する。
また804はfirstBitFlagおよびbitsOutStandingの値を加算し、プレフィックス長Lengthとして出力する回路(加算器)である。
サフィックスは、入力codlLowから最上位ビットを取り除いたものとする。本実施形態ではサフィックス生成手段105は1ビットの左シフタ回路で構成する。
続いてビット列結合手段106での動作を説明する。図9にビット列結合手段の構成を示す。901はプレフィックス生成手段104で算出されたプレフィックスおよびプレフィックス長Lengthおよびサフィックス生成手段105で算出されたサフィックスを入力して、プレフィックスの後にサフィックスを結合する結合回路(結合器)である。
902は結合回路901から出力されたビット列および、プレフィックス長Lengthおよびシフト量算出手段101で算出されたシフト量Nおよび未出力ビット算出手段103で算出された未出力ビット加算数Mを入力しビット列の一部のビットを切り出して出力する回路である。出力するビット数BitNumは以下の式により算出する。
if N=M+1 or N == 0 then
BitNum = 0
else if N = M then
BitNum = Length + N-1
else
BitNum = Length + N-M-1
この式に基づいて出力ビット数を算出し、ビット列から上位BitNumビット分を出力する。上述したそれぞれの処理はいずれもデコーダ、シフタ、加減算回路、選択回路などの簡単な組み合わせ回路で1サイクルで実現することが可能である。
以上説明してきたように本発明は、codlRangeおよびcodlLow, bitsOutStandingおよびfirstBitFlagからシフト量N、未出力ビット加算数M、プレフィックス、サフィックスを算出する。これにより、繰り返し処理を行わずにcodlRangeおよびcodlLow, bitsOutStandingおよびfirstBitFlagおよび出力ビット列を算出することが出来る。即ち、算術符号化(算術符号化処理)における正規化処理を一括して高速に行うことが可能になる。
なお、本実施形態ではfirstBitFlagを正規化装置に入力する例を示した。ここで、firstBitFlagが1となるのはスライスの先頭の場合のみであるのでfirstBitFlagを入力せずに0として扱って出力ビット列を算出し、スライスの先頭のビットを正規化装置外部の手段によって変更する構成にしても良い。
また、本実施形態では未出力ビット算出手段103で算出された未出力ビット加算数とシフト量算出手段101で算出されたシフト量から出力ビット数を算出する手段をビット列結合手段の内部に設ける例を示した。ここで、出力ビット数の算出は別の所で行ってもかまわない。例えば出力ビット数の算出を未出力ビット算出手段内部で行い、その値に基づいてビット列結合手段からビット列を出力する構成にしてもかまわない。
また、本実施形態ではプレフィックス生成手段104で算出されたプレフィックス長を用いてビット列結合手段106でプレフィックスとサフィックスを結合する例を示したが、プレフィックス長の算出は別の所で行ってもかまわない。例えば、プレフィックス長の算出はビット列結合手段内部で行う構成にしてもよい。
また、本実施形態ではサフィックス生成手段105は1ビットのシフタを用いて構成したが、ビット切り出し回路など、別の回路を用いて構成してもかまわない。
なお、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を用いても良い。この場合には記憶媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによって本発明の目的が達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)等が実際の処理の一部又は全部を行う場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。この場合には、書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行ってもよい。
本発明の実施の形態に係る正規化処理装置の構成を示す図である。 CABAC方式における正規化処理を示すフローチャートである。 CABAC方式における正規化処理を示すフローチャートである。 本発明の実施の形態に係るシフト量算出手段の構成を示す図である。 本発明の実施の形態に係るcodlLowの変化の様子を示す状態遷移図である。 本発明の実施の形態に係るシフト手段の構成を示す図である。 本発明の実施の形態に係る未出力ビット算出手段の構成を示す図である。 本発明の実施の形態に係るプレフィックス算出手段の構成を示す図である。 本発明の実施の形態に係るビット列結合手段の構成を示す図である。 従来の正規化処理装置の構成を示す図である。
符号の説明
101 シフト量算出手段
102 シフト手段
103 未出力ビット算出手段
104 プレフィックス生成手段
105 サフィックス生成手段
106 ビット列結合手段
107 正規化処理装置
401 ビット位置デコーダ
402 減算器
403 比較器
601 バレルシフタ
602 バレルシフタ
603 デコーダ
604 結合器
701 ビット数デコーダ
702 出力算出器
801 XOR回路
802 NOT回路
803 結合器
804 加算器
901 結合器
902 出力制御器
1001 記憶手段
1002 判定器
1003 ビット列算出器
1004 出力器

Claims (5)

  1. 算術符号化処理において現行シンボルの出現値により選択される数直線上の領域のサイズ、領域の下端値、及び未出力ビット数を入力し正規化処理を行う正規化処理装置であって、
    前記領域のサイズが設定値以上となるシフト量を算出するシフト量算出手段と、
    前記シフト量に基づいて前記領域のサイズ及び前記領域の下端値にシフト処理を施すシフト手段と、
    前記未出力ビット数及び前記領域の下端値を用いて、前記領域の下端値の最上位ビットと、それに続く未出力ビット数分のビットを出力ビット列のプレフィックスとして算出すると共にプレフィックス長を算出するプレフィックス生成手段と、
    前記領域の下端値を用いて、前記領域の下端値のビット列の一部を出力ビット列のサフィックスとして算出するサフィックス生成手段と、
    前記未出力ビット数及び前記領域の下端値及び前記シフト量を用いて、該正規化処理装置に再び入力する未出力ビット数を算出すると共に未出力ビット加算数を算出する未出力ビット算出手段と、
    前記シフト量及び前記プレフィックス長及び前記未出力ビット加算数を用いて、前記プレフィックスと前記サフィックスを結合して出力するビット列結合手段とを備えることを特徴とする正規化処理装置。
  2. 出力ビットが最初の出力ビットか否かを示す先頭ビットフラグを更に入力し、前記未出力ビット算出手段は、前記領域の下端値及び前記シフト量から前記先頭ビットフラグを算出することを特徴とする請求項1に記載の正規化処理装置。
  3. 前記シフト量算出手段は、前記領域のサイズを2進数で表現した際に値が1となる最もMSBに近いビットの位置を算出するデコード手段を有することを特徴とする請求項1又は請求項2に記載の正規化処理装置。
  4. 前記未出力ビット算出手段は、前記領域の下端値を2進数で表現した際に値が0となる最もLSBに近いビットの位置を算出するデコード手段を有することを特徴とする請求項1〜3のいずれか1項に記載の正規化処理装置。
  5. 記ビット列結合手段は、前記プレフィックスと前記サフィックスが結合されたビット列から、力ビット数分を出力することを特徴とする請求項1〜のいずれか1項に記載の正規化処理装置。
JP2006296501A 2006-10-31 2006-10-31 正規化処理装置 Expired - Fee Related JP4739167B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006296501A JP4739167B2 (ja) 2006-10-31 2006-10-31 正規化処理装置
US11/924,866 US8046395B2 (en) 2006-10-31 2007-10-26 Normalization processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006296501A JP4739167B2 (ja) 2006-10-31 2006-10-31 正規化処理装置

Publications (3)

Publication Number Publication Date
JP2008113375A JP2008113375A (ja) 2008-05-15
JP2008113375A5 JP2008113375A5 (ja) 2009-12-17
JP4739167B2 true JP4739167B2 (ja) 2011-08-03

Family

ID=39331646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006296501A Expired - Fee Related JP4739167B2 (ja) 2006-10-31 2006-10-31 正規化処理装置

Country Status (2)

Country Link
US (1) US8046395B2 (ja)
JP (1) JP4739167B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2900004A1 (fr) * 2006-04-18 2007-10-19 Thomson Licensing Sas Procede et dispositif de decodage arithmetique
JP4739167B2 (ja) * 2006-10-31 2011-08-03 キヤノン株式会社 正規化処理装置
CN101500164B (zh) * 2008-12-31 2011-09-28 深圳市同洲电子股份有限公司 算术编码的打包输出的方法和装置
PT2884749T (pt) * 2011-06-28 2018-01-18 Samsung Electronics Co Ltd Aparelho para descodificar vídeo acompanhado com descodificação aritmética e sinalização do último coeficiente significativo de duas dimensões

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08154059A (ja) * 1994-11-28 1996-06-11 Fuji Xerox Co Ltd 符号化装置および復号化装置
JPH10173545A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 算術符号化装置およびそのフラッシュ処理方法
JP2000350043A (ja) * 1999-06-04 2000-12-15 Matsushita Graphic Communication Systems Inc 算術符号化装置および算術復号化装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3620506B2 (ja) * 2002-02-28 2005-02-16 ソニー株式会社 Mq−coder方式の算術符号化/復号装置及び再正規化方法
JP2005184232A (ja) * 2003-12-17 2005-07-07 Sony Corp 符号化装置、プログラム、およびデータ処理方法
JP4739167B2 (ja) * 2006-10-31 2011-08-03 キヤノン株式会社 正規化処理装置
JP4865509B2 (ja) * 2006-11-01 2012-02-01 キヤノン株式会社 復号装置及び復号方法
JP4785706B2 (ja) * 2006-11-01 2011-10-05 キヤノン株式会社 復号装置及び復号方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08154059A (ja) * 1994-11-28 1996-06-11 Fuji Xerox Co Ltd 符号化装置および復号化装置
JPH10173545A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 算術符号化装置およびそのフラッシュ処理方法
JP2000350043A (ja) * 1999-06-04 2000-12-15 Matsushita Graphic Communication Systems Inc 算術符号化装置および算術復号化装置

Also Published As

Publication number Publication date
US8046395B2 (en) 2011-10-25
US20080104154A1 (en) 2008-05-01
JP2008113375A (ja) 2008-05-15

Similar Documents

Publication Publication Date Title
KR100403035B1 (ko) 비터비복호방법및비터비복호회로
US7289047B2 (en) Decoding variable length codes while using optimal resources
JP3227292B2 (ja) 符号化装置、符号化方法、復号化装置、復号化方法、符号化復号化装置及び符号化復号化方法
US7286066B1 (en) Acceleration of bitstream decoding
US8306108B2 (en) Adaptive canonical Huffman decoder and method thereof and video decoder
US7343542B2 (en) Methods and apparatuses for variable length encoding
JP4739167B2 (ja) 正規化処理装置
JP2010130407A (ja) 算術復号装置
JP4785706B2 (ja) 復号装置及び復号方法
JP3748003B2 (ja) 符号化方法及び圧縮/伸長システム
US6844834B2 (en) Processor, encoder, decoder, and electronic apparatus
TWI416959B (zh) 編碼視訊壓縮的方法與系統
WO2005024636A1 (ja) 半導体装置
JP6159240B2 (ja) 二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラム
JPH08340263A (ja) イン・プレイス現状態/次状態レジスタ
US7148822B2 (en) Decoder and decoding method
US9009209B2 (en) Processor, control method of processor, and computer readable storage medium storing processing program for division operation
KR19990060481A (ko) 움직임 벡터 디코더
JP2008118303A (ja) 復号装置及び復号方法
JPWO2012137428A1 (ja) データ処理装置、及びデータ処理方法
US6781528B1 (en) Vector handling capable processor and run length encoding
TWI669945B (zh) 專用算術編碼指令
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP2601822B2 (ja) 圧縮された信号を処理する伸長処理装置
US6707397B1 (en) Methods and apparatus for variable length codeword concatenation

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091030

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110419

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees