JP4104615B2 - キーデータの符号化及び復号化方法、並びに装置 - Google Patents

キーデータの符号化及び復号化方法、並びに装置 Download PDF

Info

Publication number
JP4104615B2
JP4104615B2 JP2005134609A JP2005134609A JP4104615B2 JP 4104615 B2 JP4104615 B2 JP 4104615B2 JP 2005134609 A JP2005134609 A JP 2005134609A JP 2005134609 A JP2005134609 A JP 2005134609A JP 4104615 B2 JP4104615 B2 JP 4104615B2
Authority
JP
Japan
Prior art keywords
key
key data
data
encoding
linear
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
JP2005134609A
Other languages
English (en)
Other versions
JP2005348395A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020020064007A external-priority patent/KR100552665B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005348395A publication Critical patent/JP2005348395A/ja
Application granted granted Critical
Publication of JP4104615B2 publication Critical patent/JP4104615B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/98Adaptive-dynamic-range coding [ADRC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/25Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • 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
    • 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
    • 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

Landscapes

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

Description

本発明は、キーデータを符号化して復号化する装置及び方法に関する。具体的には、キーデータの線形に増える領域を処理することで符号化効率を高める符号化方法及び装置と、符号化されたキーデータを復号化する方法及び装置とに関する。
3次元表現技法は、3次元コンピュータゲームやコンピュータシステムの仮想現実環境においてひろく用いられている。3次元アニメーションを表わす手段としては、仮想現実モデリング言語(VRML)がある。
VRML及びMPEG−4のBIFS(Binary Format for Scene)は、キーフレーミング方式に基づくアニメーション表現方式を支援する。このアニメーション表現方式では、所定のキーフレームが任意の時間軸上において決められ、各キーフレーム間のアニメーションデータは線形補間法により補間される。この方式において用いられるキーフレームは、インタポレータノードにより定義され、インタポレータノードは、与えられた範囲(−∞〜+∞)の実数(floating point number)値として表わされ、キーフレームの時間軸上の位置を示すキーデータと、該当キーにおいてキーフレームの属性及び動き情報などを示すキー値データとによりフィールドを構成する。
一方、区分(piecewise)線形補間特性を有するキーフレーミング方法により実際に動く物体と類似したスムーズなアニメーションを具現するためには、インタポレータノードを通じて相当のキーフレーム情報が供給されなければならず、これは、コスト面及び効率面で深刻な問題を招く。キーフレーミング方法がオフライン上において用いられる時、莫大な量の3次元アニメーションデータを記憶するための大容量の記憶機器が必要である。キーフレーミング方法がオンライン上において用いられる時には、大容量の記憶装置だけではなく、サーバから端末機へと3次元アニメーション情報を伝送するために高速の大容量の伝送線路が要され、伝送エラーが生じる可能性が高まるに伴い、データの信頼性も落ちてしまう。このため、インタポレータノードデータの量を減らし得る効率的な圧縮及び符号化方法が望まれる。
MPEG−4のBIFSは、アニメーションデータを符号化するための2種の方法を提案する。一つは、量子化だけでアニメーションデータを符号化するBIFS−Q方式であり、他の一つは、予測MFフィールド符号化(PMFC)方法と呼ばれる、データの差を符号化するDPCM方法である。BIFS−Qは、量子化だけを用いるため、効率的な符号化方法であるとは言えず、PMFCは、DPCMを行った後にデータ冗長性を減らすエントロピ符号化を行うので、BIFS−Qより効率的である。キーに対するPMFCの符号化及び復号化器が図1に示してある。しかし、PMFCは、エントロピ符号化に先立ってDPCMのみを行うだけであって、キーの性質や相関関係を全く考慮しないため、アニメーションデータの符号化の上であまり効率的ではない。
図1を参照すれば、入力キーデータ105は、インタポレータノードから符号化装置100に入力される。量子化器110は、入力キーデータを受け取り、データを整数値で量子化する。DPCMプロセッサ115は、量子化されたキーデータを受け取って差分データを生成する。エントロピ符号化器120は、差分データを受け取り、シンボル発生の可能性に対してビット間冗長性を除去し、圧縮されたビットストリーム125を生じる。図1の符号化装置100により生じたビットストリーム125は、符号化装置150のエントロピ復号化器155に入力されてエントロピ復号化され、エントロピ復号化された差分データは、逆DPCMプロセッサ160により量子化された差分データとして出力され、逆量子化器165は、量子化されたキーデータを入力されて逆量子化を行い、復号化されたキーデータを出力する。
しかしながら、前述したような構造を有する符号化装置100は、キーの性質を考慮しておらず、エントロピ符号化に先立ってDPCMのみを行う。このため、高い圧縮率の効率的な符号化が達成し難い。
本発明が解決しようとする第1の技術的な課題は、キーデータの性質を考慮してデータ冗長性を除去することにより、高効率のアニメーションキーデータの圧縮が可能な符号化装置及び方法を提供するところにある。
本発明が解決しようとする第2の技術的な課題は、前記符号化装置及び方法により符号化されたビットストリームを復号化する装置及び方法を提供するところにある。
前記技術的課題を達成するために、本発明の符号化装置は、入力された全体キーデータのうちキーデータが線形に増える領域を識別して符号化する線形キー符号化器と、前記線形キー符号化器から入力され、且つ、2進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータを10進数の体系の実数に変換する実数変換部と、前記全体キーデータのうち前記線形キー領域が除かれたキーデータを入力され、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化部と、前記線形キー符号化器から線形キーデータ領域に含まれるキーデータの数を入力され、前記実数変換部から変換された線形キー領域の開始キーデータ及び終了キーデータを入力されてキーヘッダとして符号化するキーヘッダ符号化器と、を備える。
前記技術的課題を達成するために、本発明の復号化装置は、入力されたビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化器と、前記ビットストリームをエントロピ復号化して量子化されたキーデータを出力するエントロピ復号化部と、10進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力され、2進数の体系に変換して出力する実数逆変換部と、前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、前記実数逆変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、線形キーデータを復号化して前記逆量子化器から出力されたキーデータに加える線形キー復号化器と、を備える。
また、前記技術的課題を達成するために、本発明の符号化方法は、符号化すべき全体キーデータのうちキーデータが線形に増える線形キー領域を識別して符号化する線形キー符号化段階と、2進数の体系で表わされた前記線形キー領域の開始キーデータ及び終了キーデータを10進数の体系の実数に変換する実数変換段階と、前記全体キーデータのうち前記線形キー領域が除かれたキーデータを所定の量子化ビットで量子化する量子化段階と、前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化段階と、前記線形キー領域に含まれるキーデータの数、及び前記変換された線形キー領域の開始キーデータ及び終了キーデータをキーヘッダとして符号化するキーヘッダ符号化段階と、を含む。
また、前記技術的課題を達成するために、本発明の復号化方法は、ビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化段階と、前記ビットストリームをエントロピ復号化し、量子化されたキーデータを生成するエントロピ復号化段階と、10進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力されて2進数の体系に変換する実数逆変換段階と、前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、前記線形キー領域の開始キーデータ及び終了キーデータを用いて線形キーデータを復号化し、前記逆量子化されたキーデータに加える線形キー復号化段階と、を含む。
本発明は、キーデータを符号化するに際し、キーデータの性質を用いるために、まず、キーデータの散布度を測定する。上述したように、キーデータは、時間軸上のキーフレームの位置を示すため、最初のキーフレームを示すキーデータから最後のキーフレームを示すキーデータまでキーデータ値は単調増加する。このため、第1次のDPCMを行った後の差分データはいずれも正数値を有し、第2次のDPCMを行った後には正数値または負数値を有する。
一般に、キーデータの最大値と最小値との間の範囲が狭いほど重なる値が多くなり、重なる値が多いほどエントロピ符号化器の圧縮率が高まる。このような性質を用いた本発明の符号化方法は、キーデータの範囲を狭めた後にエントロピ符号化を行う。キーデータの範囲を狭めるために、最小散布度を生成するDPCM及びDND次数、及び該当次数における演算結果が用いられる。キーデータの散布度が小さいほどキーデータ冗長性が高まる。
上述した本発明のキーデータ符号化及び復号化方法、並びに装置は、DPCM演算のみを行ってキーデータを符号化する従来の符号化及び復号化装置とは異なって、キーデータの線形に増える領域を処理することによって、キーデータの符号化効率を大幅に改善した。よって、本発明によれば、3次元アニメーションの記憶空間を大幅に縮めることができ、高速のアニメーションデータ伝送が可能となる。
以下、添付した図面に基づき、本発明の好ましい実施の形態を説明する。
図2は、本発明の好ましい実施の形態による符号化器の構成を示す図である。
本発明の符号化器は、キーヘッダ符号化器270及びキーデータ符号化器を備える。また、キーデータ符号化器は、線形キー符号化器200、量子化器210、DPCM処理部220、シフト部230、フォルド処理部240、DND処理部250及びエントロピ符号化器260を備える。
線形キー符号化器200は、全体のキーデータの範囲においてキーデータが線形に増える領域を識別して符号化する。量子化器210は、量子化誤差を最小化する方法を用いて入力されたキーデータを量子化する。DPCM処理部220は、量子化されたキーデータを受け取り、キーデータの差分データを生成する。シフト部230は、全ての差分データから頻度数が最も高い差分データを引く。フォルド処理部240は、全ての差分データを正数の領域または負数の領域に移動させる。DND処理部250は、ディバイド、ディバイド-アップ、及びディバイド-ダウンの3種の演算を選択的に行ってキーデータの差分データの範囲を狭める。キーデータに対するエントロピ符号化器260は、ビットプレイン単位に差分データを符号化するSignedAAC及びUnsignedAAC関数を用いて差分データを符号化する。
以下、図9及び図10をさらに参照し、本発明の好ましい実施の形態によるキーデータ符号化方法を説明する。図9及び図10は、本発明のキーデータ符号化方法を示すフローチャートである。
キーデータが符号化器に入力されれば、キーデータの総数及び各キーデータの桁数などの情報はキーヘッダ符号化器270に入力されて符号化され、入力されたキーデータは線形キー符号化器200において線形キー領域、すなわち、一定の時間間隔をおいてキーフレームが存在してキーデータが同じ差を有し、キーデータが線形に変わる領域の存否を検索し、検索された線形領域を先に符号化する(S3000)。
3Dmax、Mayaなどの有名な3次元アプリケーションソフトウェアは、特定の領域が一定の時間間隔を有するキーを用い、キーフレームに基づくアニメーションを生成する。この場合、線形キーデータ領域は、線形領域が始まるキーデータ、終わるキーデータ及び中間に存在するキーフレームの数さえ分かれば簡単にキーデータを符号化できるので、インタポレータにおいて特定領域のキーの符号化のために線形予測を用いることは極めて有用である。
線形予測に用いられる数式は、下記式1の通りである。
Figure 0004104615
ここで、tSは部分的に線形である領域が始まるキーのデータを示し、tEは、部分的に線形である領域が終わるキーのデータを示し、Sは、tSのインデックスを、Eは、tEのインデックスを各々示す。第S番目のキーデータ及び第E番目のキーデータに対応する特定の領域において前記式1により線形的に予測されたキーデータと実際のキーデータとの誤差は、下記式2により計算できる。
Figure 0004104615
もし、前記式2により計算された誤差値のうち最大誤差値が所定の臨界値以下であれば、tiは[tS,tE]区間及び所定の誤差内において類似線形であると言える。最大誤差値及び特定の領域が類似線形であるか否かは、下記式3により決められる。
Figure 0004104615
もし、
Figure 0004104615
であれば、tiは、[tS,tE]区間において類似線形である。ここで、nBitsは符号化に用いられる符号化ビット数を示す。
線形キー符号化器200は、部分的に線形である領域を見つけると、領域の開始点のキーデータ及び終了点のキーデータを実数変換部205に出力し、線形キー領域に含まれるキーの数はキーヘッダ符号化器270に出力して符号化する。このように、線形符号化を用いることにより、符号化するデータの量を大いに低減できるということが分かる。開始キーデータ及び終了キーデータは、実数変換部205において後述する実数変換過程により符号化される。
実数変換部205は、開始キーデータ及び終了キーデータを符号化するために2進数の体系で表わされたキーデータを10進数の体系に変換する。
コンピュータは、実数を32ビットの2進数の形で記憶する。実数が2進数の形で与えられれば、実数変換部205は、実数を10進数の体系の仮数及び指数に変換する。すなわち、下記式4のように変換される。
Figure 0004104615
例えば、実数12.34をコンピュータにて2進数の形で表わせば、下記の通りである。
Figure 0004104615
1: 符号
2: 2進数の体系における仮数
3: 2進数の体系における指数
この数を前記式4により10進数で表わせば、下記の通りである。
Figure 0004104615
1: 符号
2: 10進数の体系における仮数
3: 10進数の体系における指数
10進数の体系の仮数及び指数をビットストリームに含めるためには、各々が必要とするビット数を計算しなければならない。まず、指数は−38〜38の範囲の値を有するため、指数は符号を含んで7ビットで表わせる。また、仮数は、桁数に応じて必要なビットの数が決められる。仮数の値及びこれに必要なビット数(但し、符号ビットは除く。)を下記表1に示す。
Figure 0004104615
一方、前記のような過程により検索されて変換された線形キー領域の開始キーデータ及び終了キーデータは、図11及び図12に示されたような符号化過程により符号化され、キーヘッダ符号化器270に出力されてビットストリームに記憶される。
図11及び図12は、実数変換部205が入力された2つの実数を符号化する過程を示す。図11及び図12を参照し、実数変換部205が変換された実数を符号化する過程を説明する。
実数変換部205は、線形キー符号化器200から元のキーデータの桁数(original key digit)Kd、線形領域が始まるキーデータ(Start key)S、線形領域が終わるキーデータ(end key)Eを入力され、前記式4によりキーデータを変換する(S3040)。
実数変換部205は、まず、Sを符号化するが、Sの桁数がKdと異なるかを判断し、桁数が異なれば、Sの桁数を求めてキーヘッダ符号化器270に出力する(S3042)。この時、実数変換部205は、digit()関数を用いてSの桁数を求める。
その後、実数変換部205は、Sの桁数が7より大きければ、所定のビット数を本発明では、IEEE標準754のfloating-point number方式により32ビットを用い、Sの桁数がビットストリームに含まれるようにキーヘッダ符号化器270に出力する(S3043)。
一方、Sの桁数が0でなくて7より小さければ、実数変換部205は、Sの符号をキーヘッダ符号化器270に出力し(S3044)、Sの仮数の絶対値の符号化に必要なビット数を前記表1から求め、求められたビット数として仮数の絶対値をキーヘッダ符号化器270に出力する(S3045)。その後、Sの指数を求め、符号をキーヘッダ符号化器270に出力し、指数を所定のビット数として本発明の実施の形態では6ビットとしてキーヘッダ符号化器270に出力する(S3046)。このように、キーデータの変換により、ビットストリームに含まれるビット数は大幅に減る。
一方、Sの桁数が0であれば、開始キーデータの符号化過程は終わり、終了キーデータを変換するための過程へ進む。なぜならば、桁数が0であれば、実数は0を意味するため、それ以上の符号化過程が不要であるからである。
実数変換部205は、開始キーデータを変換して符号化した後に終了キーデータEを変換する。Eの変換は、Sの変換と同じ過程を繰り返すが、単に、Eの指数がSの指数と同じ値を有するか否かを判別し(S3047)、両値が同じであれば、これを示すフラグビットのみをキーヘッダ符号化器270に出力し、両値が相異なれば、フラグビット及びEの指数をSの指数と同じ方式によりキーヘッダ符号化器270に出力する(S3048)。
一方、入力キーデータにおいて線形領域を除いたキーデータは量子化器210に入力され、所定の量子化ビットサイズであるnKeyQbitにより量子化される。
しかしながら、復号化器において量子化されたキーデータを復号化して用いる時には、元のキーデータと量子化されたキーデータとの誤差により元のキーデータが完全に復元できない。したがって、本発明の量子化器210は、単に入力されるキーデータから最大値及び最小値を求め、求められた値を用いて量子化可能であるだけではなく、量子化誤差最小化部215を含んで、量子化誤差が最小化可能に修正された最大値及び最小値を用いて量子化できる。
量子化誤差最小化部215は、量子化誤差を最小化するために入力されたデータに対して予め量子化及び逆量子化を行い、量子化の誤差が最小となる量子化の範囲を制御する方法を用いる(S3100)。
具体的に説明すれば、固定された量子化に用いられる最大値をMaxとし、調節される量子化に用いられる最小値をMinとした時、Xiを入力値、nQuantBitを量子化に用いられるビットとした時、
Figure 0004104615
は、各々下記式5により計算する。
Figure 0004104615
誤差の和eiを減らす方法には2種類があるが、一つは誤差の和が最小となるまでMin値を調節することであり、他の一つは、下記の通りである。
まず、ΔXが入力データの基本ステップサイズであり、nが任意の整数であり、iが0平均乱数ノイズであるとした時、入力キーデータシーケンスXiをXi=(i+n)ΔX+εiのように表わされる量子化された値であると仮定する。
その後、di=Xi-Xi-1=ΔX+(εi-εi-1)であるとした時、Δ'x=E[di]であり、最小値Minは、Max-Δ'x*(2nQuantBit−1)となる。
このような過程を通じて求められた量子化誤差を最小化するMin値は、Max値及び量子化器210に入力されてキーデータの量子化に用いられる。
量子化誤差が最小となる最大値Max及び最小値Minを受け取った量子化器210は、下記式6を用いてキーデータfKeyiの量子化を行う(S3200)。
Figure 0004104615
ここで、iは、量子化されたキーデータのインデックスを、nQKeyiは、量子化されたデータの整数配列を、fKeyiは、入力キーデータとしての実数配列を、fKeyMax及びfKeyMinは、量子化誤差最小化部215において受け取られた最大値Max及び最小値Minを、nKeyQBitは量子化ビットサイズを各々示す。一方、前記式6において用いられた関数floor(v)は実数vを入力され、v以下の最大整数を出力する関数である。
一方、本発明の量子化器210は、前記量子化誤差を最小化するアルゴリズムを用いず、簡単に、入力されたキーデータのうち最大値fKeyMax及び最小値fKeyMinを求めて量子化を行うこともできる。
本発明の量子化過程を示す図13を参照し、量子化過程を詳細に説明する。
量子化器210は、キーデータを入力され(S3210)、量子化誤差最小化部215から最大値及び最小値が入力されたか否かをチェックする(S3220)。
量子化器210は、量子化誤差最小化部215から最大値Max及び最小値Minが入力されたならば、量子化に用いる最大値fKeyMax及び最小値fKeyMinをMax及びMinとして設定し(S3230)、設定された最大値及び最小値を前記実数変換部205に出力する。量子化に用いられる最大値及び最小値は、前記実数変換過程を通じて変換され符号化されてキーヘッダ符号化器270に出力されることにより、復号化に利用可能に最大値及び最小値をキーヘッダに含める。
量子化器210は、量子化誤差最小化部215から入力された値がなければ、入力されたキーデータのうち最初のキーデータfKey0を最小値fKeyMinとして、そして最後のキーデータfKeyN-1を最大値fKeyMaxとして設定する(S3240)。
その後、量子化器210は、設定された最大値が1より小さく、且つ、最小値が0より大きいか否かを判断し(S3250)、そうでなければ、最大値及び最小値を前記実数変換部205に出力し、前記過程を通じて変換して符号化した後、キーヘッダ符号化器270に出力して復号化に利用可能に最大値及び最小値をキーヘッダに含める(S3260)。
一方、最大値及び最小値が第S3250段階の条件を満足すれば、最大値及び最小値を復号化に利用可能にキーヘッダデータに含めるか否かを示すフラグをチェックする(S3270)。もし、フラグが最大値及び最小値をキーヘッダに含めるように設定されていれば、前記第S3260段階を行って最大値fKeyMax及び最小値fKeyMinを符号化した後にキーヘッダ符号化器270に出力し、そうでなければ、量子化器210は、最大値及び最小値をキーヘッダに含めない。
最大値及び最小値をキーヘッダに含めない場合は、キーデータ符号化器及びキーデータ復号化器が互いに最大値を1として、且つ、最小値を0として設定して符号化及び復号化を行うことを規約したケースに当たるため、量子化器210は、最小値fKeyMinを0として、そして最大値fKeyMaxを1として各々設定する(S3280)。このように設定された量子化に用いられる最大値及び最小値は、既に復号化器に知られているため、別途にキーヘッダに含めない。
一方、量子化器210は、前記過程を通じて設定されたfKeyMax及びfKeyMinを前記式6に代入して入力されたキーデータを量子化し、量子化されたキーデータをDPCM処理部220に出力する(S3290)。
量子化されたキーデータを受け取ったDPCM処理部220は、所定回数のDPCMを行って最小の散布度が生成される次数及びイントラキーデータをキーヘッダ符号化器270に出力し、DPCM演算の行われたキーデータの差分データをシフト部230に出力する(S3300)。
以下、図14を参照し、DPCM処理過程を説明する。DPCM処理部220は、入力されたキーデータに対してまず所定の回数だけDPCM演算を行い、DPCMが行われた回数はDPCM次数として記憶する(S3310)。本発明の好ましい実施の形態では、3回のDPCM演算を行った。
その後、DPCM処理部220は、各次数のDPCM演算の結果に対して散布度を計算する(S3320)。この時の散布度を示す統計値として分散、標準偏差、及び四分偏差などが用いられ、本発明の好ましい実施の形態では、四分偏差が散布度として用いられる。
各次数のDPCM演算の結果に対する散布度が計算されば、DPCM処理部220は、散布度が最小となるDPCM次数及び該当次数のDPCM結果を選択し、DPCM演算の結果はシフト部230に出力し、DPCM次数、各次数のイントラキーデータ及びその他のDPCM演算において必要な情報はキーヘッダ符号化器270に出力する(S3330)。但し、本発明の好ましい実施の形態では、キーの数が5より小さければ、1次DPCMのみを行った。例えば、1次DPCMが行われる時には、下記式7を用いてDPCM演算を行った。
Figure 0004104615
ここで、iは、量子化されたキーデータのインデックスを、nQKeyiは整数配列を、そしてiは差分データを各々示す。
一方、DPCM処理部220は、選択されたDPCMの結果、及びDPCMされたキーデータの差分データを符号化する時に必要なビット数を計算し、所定の記憶場所(本発明の実施の形態では、nQStep_DPCM)に記憶する(S3340)。但し、符号化に必要なビット数を計算する段階は、後述する符号化すべきキーデータを選択する段階において行っても良いということは当業者に取って自明である。
DPCM結果を受け取ったシフト部230は、入力された差分データのうち頻度数が最も高い差分データ(以下、モードと称する)を選択して全ての差分データからモードを引くことにより、符号化されるべきデータを0の周りに集中的に分布せしめて符号化に必要なビット数を減らす(S3400)。
シフト演算は、量子化された全てのキーデータの差分データからモードnKeyShiftを引くことにより行われる。このようなシフト演算は、下記式8で表わされる。
Figure 0004104615
iは、量子化されたキーデータのインデックスを示し、nQKeyiは、整数配列を示し、nKeyShiftは、モード値を示す。シフト演算が行われた後には、キーデータの差分データのうち頻度数が最も高い差分データは0となるので、符号化に必要なビット数を大幅に低減できる。
シフト演算が行われたキーデータは、フォルド処理部240及びDND処理部250に出力され、モード値nKeyShiftは、キーヘッダ符号化器270に出力されてキーヘッダに含まれる。
シフトされたデータを受け取ったフォルド処理部240は、DND演算を行うための前処理段階としてフォルド演算を行い、フォルド演算されたキーデータをDND処理部250に出力する(S3500)。
フォルド演算は、0を中心として負数領域及び正数領域に様々に分布される差分データを正数領域または負数領域に集中させて差分データの範囲を狭めるためのものであり、この実施の形態では、下記式9によりフォルド演算を行って差分データの分布を正数領域に集中させた。
Figure 0004104615
ここで、iは、量子化されたキーデータのインデックスを示し、nQKeyiは、整数配列を示す。フォルド演算により、シフトされたキーデータの差分データのうち正数データは正の偶数に、負数のデータは正の奇数に各々変換される。
フォルド処理部240は、フォルド演算が行われたデータを符号化する時に必要なビット数を計算して所定の記憶場所nQStep_foldに記憶する。第S3300段階と同じく、符号化に必要なビット数の計算は、後述するエントロピ符号化する差分データを選択する段階において行っても良いということは当業者に取って自明である。一方、フォルド処理部240においてフォルト演算が行われたデータは、DND処理部250に出力される。
DND処理部250は、エントロピ符号化の効率を高めるために、入力されたキーデータの差分データに対してDND演算を所定の回数だけ行ってデータの範囲を狭める(S3600)。
以下、図3を参照し、DND処理部250を説明する。 DND処理部は、DND演算を行うDND演算部252、符号化ビット数に応じてエントロピ符号化すべき差分データを選択する第1の差分データ選択部254、第1の差分データ選択部においてDND演算の行われた差分データが選択されれば、DND演算の行われた差分データに対してシフト-アップ演算を行うシフト-アップ演算部256、及びDND演算された差分データ及びシフト-アップ演算された差分データのうち散布度が小さい差分データを選択してエントロピ符号化器260に出力する第2の差分データ選択部258を備える。
まず、DND演算部252において行われるDND演算について説明する。
フォルド演算された差分データがDND演算部252に入力されれば、入力された差分データは半分に分けられ、上位範囲に位置する差分データはディバイド関数によって負数領域に移動する。ディバイド関数は、下記式10のように定義される。
Figure 0004104615
ここで、jは、入力された差分データのインデックスであり、nQKeyjは、整数配列を示し、nKeyMaxは、入力されたフォルド演算された差分データのうち最大値を示す。差分データの分布が全体差分データが占める範囲の境界領域に集中している場合、DND演算はデータの全体領域を大幅に狭める効果がある。
ディバイド演算後に散布度が計算されるが、この場合、最小限の符号化ビットサイズが選択されるように符号化に必要なビットサイズが散布度として用いられる。
ディバイド演算が行われた後、ディバイド演算と類似した他のDND演算のディバイド-アップ演算またはディバイド-ダウン演算が行われるが、行われるべき演算はディバイド演算後のデータの正数側及び負数側の範囲によって決められる。
正数側の範囲の方が大きければ、下記式11により定義されるディバイド-ダウン演算が行われる。
Figure 0004104615
一方、負数側の範囲の方が大きければ、下記式12により定義されるディバイド-アップ演算が行われる。
Figure 0004104615
前記式において、jは、量子化されたキーデータのインデックスであり、nQKeyjは、整数配列であり、nKeyMaxは、nQKeyjの最大値であり、nKeyMinは、nQKeyjの最小値である。
以下、DND演算部252の演算過程を示す図15を参照し、DND演算過程を説明する。
DND演算部252は、フォルド処理部240からキーデータの差分データが入力されれば、入力された差分データのうち最大値nKeyMax及び最小値nKeyMinを求める(S3610)。その後、DND演算部252は、最大値及び最小値の絶対値を比較し(S3620)、最大値が最小値の絶対値以上であれば、求められた最大値を現在のDND演算次数の最大値として設定する(S3622)。
DND演算部252は、DND演算次数が1であるか否かをチェックし(S3624)、次数が1であれば、前記式10に最大値nKeyMaxを代入してDND演算部252に入力された差分データに対してディバイド演算を行う(S3630)。
ディバイド演算を行ったDND演算部252は、符号化に必要なビットサイズを求めるための関数getQBit()を用い、ディバイド演算を行って狭まった差分データの範囲を符号化するために必要なビットサイズを測定する(S3640)。その後、現在のDND演算次数が1であれば(S3650)、前記値をDND演算後に最小符号化ビットサイズを示す値nQBitDNDに一旦記憶し、DND次数を1だけインクリメントする(S3655)。
その後、DND演算部252は、前記過程を再び行うが、第S3624段階において次数が1でなければ、前記式11にnKeyMax値を代入してディバイド-ダウン演算を行う(S3634)。DND演算部252は、ディバイド-ダウン演算が行われた差分データの符号化に必要なビット数を計算し(S3640)、この値が以前の次数のDND演算により記憶された符号化に必要な最小値nQBitDNDより小さければ(S3652)、DND演算後に符号化に必要な最小ビットサイズをこの値に代える(S3658)。
一方、第S3620段階において、最小値の絶対値が最大値より大きければ、当該次数の最大値を入力された最小値に更新し(S3623)、最小値を前記式12に代入してディバイド-アップ演算を行う(S3638)。その後、DND演算部252は、ディバイド-アップ演算の行われた差分データの符号化に必要なビット数を計算し(S3640)、この値が以前の次数のDND演算により記憶された符号化に必要な最小値nQBitDNDより小さければ(S3652)、DND演算後に符号化に必要な最小ビットサイズをこの値に代える(S3658)。
DND演算部252は、所定の回数となるまで前記過程を繰り返すが、DND演算を行う回数は可変的である。例えば、この実施の形態は、DND演算を行う回数を7回として設定した。DND演算部252は、符号化に必要な最小ビットサイズnQBitDND及びその時のDND演算された差分データを第1の差分データ選択部254に出力し、その時の次数をキーヘッダ符号化器270に出力してビットストリームに含める。
第1の差分データ選択部254は、シフト演算された差分データ、フォルド演算された差分データ及びDND演算された差分データを入力され、いかなる演算の結果をエントロピ符号化するかを決める。
図9及び図10をさらに参照すれば、第1の差分データ選択部254は、DND演算後に符号化に必要な最小ビット数nQBitDNDがDPCM演算後の符号化ビットサイズnQStep_DPCM以上であれば(S3700)、DPCM演算の結果を選択してシフト演算を行った後、シフトされた差分データをエントロピ符号化器260に出力してエントロピ符号化する(S3710)。この場合、DND次数は、−1として設定され、キーヘッダ復号化器270に出力されてキーヘッダに含まれる。
しかし、nQBitDNDがDPCM後の符号化ビットサイズより小さいものの、フォルド演算後の符号化ビットサイズ以上であれば(S3720)、第1の差分データ選択部254は、フォルド演算された差分データをエントロピ符号化器260に出力してエントロピ符号化する(S3730)。この場合、DND次数は、0として設定され、キーヘッダ符号化器270に出力されてキーヘッダに含まれる。
もし、DND演算された後の差分データの符号化ビット数が最小であれば、第1の差分データ選択部254は、DND演算された差分データをシフト-アップ演算部256に出力し、シフト-アップ演算部256は、差分データを入力され、DND演算された差分データに対して第1の散布度を計算すると共に(S3740)、DND演算された差分データに対して下記式13で定義されるシフト-アップ演算を行った後(S3800)、シフト-アップ演算された差分データの第2の散布度を再び計算する(S3810)。
Figure 0004104615
ここで、jは、量子化されたキーデータの差分データのインデックスであり、nQKeyjは、整数配列であり、そしてnKeyMaxは、差分データのうち最大値を示す。
DND演算された差分データ及びシフト-アップ演算された差分データを入力された第2の差分データ選択部258は、第1の散布度及び第2の散布度を比較し(S3900)、シフト-アップ演算後の第2の散布度がDND演算後の第1の散布度より小さければ、シフト-アップ演算が行われた差分データをエントロピ符号化器260に出力してエントロピ符号化し(S3910)、DND演算に用いられた最大値nKeyMax及び最小値nKeyMin、そして、シフト-アップ演算に用いられた最大値nKeyMaxをキーヘッダ符号化器270に出力してキーヘッダに含める。
しかし、DND演算後の第1の散布度がシフト-アップ演算後の第2の散布度より小さければ、第2の差分データ選択部258は、DND演算が行われた差分データをエントロピ符号化器260に出力してエントロピ符号化し(S3920)、DND演算に用いられた最大値nKeyMax及び最小値nKeyMinのみがキーヘッダ符号化器270に出力される。本発明の好ましい実施の形態では、前記第1及び第2の散布度として標準偏差を用いた。
エントロピ符号化器260は、符号化すべき差分データの性質に応じて2種の関数演算を行って差分データを符号化する。例えば、DPCMが行われてシフト演算が行われた差分データ及びディバイド演算が行われた差分データは、正数及び負数を共に有するため、差分データの符号を含む符号化を行い、フォルド演算された差分データ及びシフト-アップ演算された差分データは正数値のみを有するため、符号を含まない符号化を行う。
本発明の好ましい実施の形態では、符号を含む符号化関数としてencodeSignedAAC関数を用い、符号を含まない符号化関数としてencodeUnsignedAAC関数を用いて差分データを符号化する。
図16は、encodeSignedAAC関数の一例を示す図面である。図16を参照すれば、入力値が74であり、この値に対する符号化ビット数が8であれば、この値の符号は0であり、この値の2進数は1001010となる。符号及び全てのビットプレインは下記のような過程を通じて符号化される。
第1の段階:2進数をMSBからLSBにビットプレイン単位に符号化する。
第2の段階:符号化中に現在符号化されるビットが0でないか否かをチェックする。
第3の段階:もし、最初の0ではない値であれば、2進数の現在符号化ビットを符号化した後に符号を符号化する。
第4の段階:2進数の残りのビットを符号化する。
encodeUnsignedAAC関数は、符号無き値に対するコンテキストを用いて適応算術符号化ビットストリームに符号化する。これは、符号コンテキストがあるという点を除ければ、前記encodeSignedAAC関数の処理過程と類似している。
図17ないし図26は、本発明の好ましい実施の形態による演算が行われた後のキーデータを示す図面である。図17ないし図26において、横軸は各キーデータのインデックスを示し、縦軸はキーデータの値を示す。
図17は、本発明の符号化器に入力された元のキーデータを示す図面である。図17に示されたキーデータが量子化器210に出力されて9ビットの量子化ビットで量子化されれば、図18に示されたように、量子化されたキーデータが得られる。量子化されたキーデータに対してDPCMを行えば、図19のように、キーデータの差分データが得られる。
その後、量子化されたキーデータの差分データを約7のモード値にシフトすれば、図20に示されたように、キーデータの差分データが得られ、シフトされた差分データにフォルド演算を行えば、図21に示されたように、いずれも正数に変換されたデータが得られる。
フォルドされたデータにDND演算を行ったデータを図22ないし図24に示す。
フォルドされたデータに対してまずDND演算のうちディバイド演算を行った後の差分データを図22に示す。示されたように、正数側の範囲は0〜28であり、負数側の範囲は0〜−29であるため、負数側の範囲がより広い。したがって、図22に示されたデータに対してディバイド-アップ演算が行われ、ディバイド-アップ演算の結果を図23に示す。
ディバイド-アップ演算によりキーデータの負数側の範囲は正数側の範囲に比べて相当狭まり、DNDの次の次数においてディバイド-アップ演算された差分データに対してディバイド-ダウン演算が行われる。図24は、図23の差分データに対してディバイド-ダウン演算を行った結果を示す図面である。一方、ディバイド-ダウン演算されたキーデータに対してシフト-アップ演算を行った結果を図25に示す。
前記図17ないし図23では、キーデータ及び差分データの範囲が次第に狭まるということが分かる。しかし、シフト-アップ演算結果を示す図25及び図24を比較してみれば、シフト-アップ演算後の符号化されるべき差分データの範囲がより広がったということが分かる。したがって、最終的に符号化すべきキーデータの差分データは、ディバイド-ダウン演算が行われた差分データであることが図26から分かる。
一方、キーヘッダ符号化器270において符号化されてキーヘッダに記憶される情報を説明する。
符号化されるべきキーデータらが入力されれば、キーヘッダ符号化器270は、入力キーデータからキーデータの桁数及び符号化されるべきキーの総数を入力されて符号化する。その後、キーヘッダ符号化器270は、線形キー符号化器200から線形キー符号化された線形キー領域の存否を示す情報及び線形キー領域のキーデータの数を入力され、実数変換部205から実数変換された線形キー領域の開始キーデータ及び終了キーデータを入力される。
併せて、実数変換部205が量子化誤差最小化部215から量子化誤差が最小化となる最大値及び最小値を入力されて実数変換した場合には、変換された最大値及び最小値は逆量子化に利用可能に実数変換部205からキーヘッダ符号化器270に入力されてキーヘッダに含まれる。また、量子化に用いられた量子化ビットサイズもキーヘッダ符号化器270に入力されてキーヘッダに含まれる。
また、キーヘッダ符号化器270は、DPCM処理部220からDPCM演算次数及び各次数におけるイントラキーデータを入力され、シフト部230からシフト演算に用いられたモード値を入力され、DND処理部250からシフト-アップ演算が行われたか否か、散布度が最小となるDND次数及び各DND次数における最大値及び最小値を入力される。
最後に、キーヘッダ符号化器270は、エントロピ符号化器260から符号化に用いられた符号化ビット数を入力されてキーヘッダに符号化する。
以上、本発明の好ましい実施の形態によるキーデータ符号化装置の一例を説明した。当該技術分野の通常の知識を有した者は、前記好ましい実施の形態による符号化装置の様々な変形実施の形態が存在するということが分かるであろう。以下、図4ないし図8を参照し、キーデータの符号化効率を高めるための好ましい実施の形態の変形実施の形態を説明する。一方、前記図2及び図3と同じ機能を行う構成要素には、同じ参照符号を使用した。
図4を参照すれば、本発明の符号化装置の第2の実施の形態は、量子化器210、DPCM処理部220、シフト部230、フォルド処理部240、DND処理部250、及びエントロピ符号化器260を備える。
本発明の符号化装置に入力されたキーデータは、まず、量子化器210に入力されて所定の量子化ビットで量子化される。量子化されたキーデータは、DPCM処理部220に入力され、DPCM処理部220は、キーデータにDPCM演算を行って生成された差分データをシフト部230に出力する。シフト部230は、入力された差分データのうち頻度数が最も高い差分データ(モード)を求め、入力された差分データから前記モードを引くシフト演算を行ってフォルド処理部240に出力する。フォルド処理部240は、入力された差分データを正数領域または負数領域に変換してDND処理部250に出力する。DND処理部250は、入力されたフォルド演算された差分データに対して前記DND演算を行い、シフト演算された差分データ、フォルド演算された差分データ、及びDND演算された差分データのうち符号化に必要なビット数が最小となる差分データをエントロピ符号化器260に出力してキーデータを符号化することができる。この時、前記DND処理部250は、DND演算された差分データに対してシフト-アップ演算を行うことを省略でき、前記符号化器は、従来のキーデータ符号化装置と比較して顕著な符号化効率を示す。
図5を参照すれば、本発明の符号化装置の第3の実施の形態は、量子化器210、DPCM処理部220、シフト部230、DND処理部250、及びエントロピ符号化器260を備える。
本発明の符号化装置に入力されたキーデータは、まず、量子化器210に入力されて所定の量子化ビットで量子化される。量子化されたキーデータは、DPCM処理部220に入力され、DPCM処理部220は、キーデータに対してDPCM演算を行って生成された差分データをシフト部230に出力する。シフト部230は、入力された差分データのうち頻度数が最も高い差分データ(モード)を求め、入力された差分データから前記モードを引くシフト演算を行ってDND処理部250に出力する。DND処理部250は、シフトされた差分データに対して前記DND演算を行い、シフト演算された差分データ及びDND演算された差分データのうち符号化に必要なビット数がより小さい差分データを選択し、DND演算された差分データが選択されたならば、DND演算された差分データに対してシフト-アップ演算を行い、DND演算された差分データ及びシフト-アップ演算された差分データのうち符号化に必要なビット数がより小さい差分データをエントロピ符号化器260に出力する。エントロピ符号化器260は、差分データに対してエントロピ符号化を行ってビットストリームを生成する。前記符号化器は、前記好ましい実施の形態の符号化装置においてフォルド演算過程を省略したが、前記構成だけでも従来のキーデータ符号化装置と比較して顕著な符号化効率を示す。
図6を参照すれば、本発明の符号化装置の第4の実施の形態は、符号化装置にキーデータの差分データが入力される時、入力された差分データを符号化して出力する符号化装置を説明する。
第4の実施の形態の符号化装置は、シフト部230、フォルド処理部240、DND処理部250、及びエントロピ符号化器260を備える。入力された差分データは、シフト部230において差分データのうち頻度数が最も高い差分データが引かれてフォルド処理部240に出力される。フォルド処理部240は、入力された差分データを正数領域または負数領域に変換してDND処理部250に出力する。DND処理部250は、入力されたフォルド演算された差分データに対して前記DND演算を行い、シフト演算された差分データ、フォルド演算された差分データ、及びDND演算された差分データのうち符号化に必要なビット数が最小となる差分データを選択する。DND処理部250においてシフトされた差分データまたはフォルド演算された差分データが選択された場合には、選択された差分データはエントロピ符号化器260に出力してキーデータを符号化することができる。一方、DND処理部250においてDND演算された差分データを選択した場合には、DND演算された差分データに対してシフト-アップ演算を行い、DND処理部250は、DND演算された差分データ及びシフト-アップ演算された差分データのうち符号化に必要なビット数がより小さい差分データを選択してエントロピ符号化器260に出力する。エントロピ符号化器260は、入力された差分データをエントロピ符号化してビットストリームを生成する。第4の実施の形態の符号化装置もまた、従来の符号化装置と比較して高い符号化効率を示すということが分かる。
図7に示された第5の実施の形態の符号化装置は、入力されたキーデータの差分データに対してDND演算のみを行って符号化する。第5の実施の形態の符号化装置は、DND演算部252、シフト-アップ演算部256、差分データ選択部258b及びエントロピ符号化器260を備える。
入力されたキーデータの差分データは、DND演算部252において前記DND演算が所定回数行われてDND演算された差分データは、シフト-アップ演算部256及び差分選択部に各々入力される。シフト-アップ演算部256は、入力されたDND演算された差分データに対して前記シフト-アップ演算を行って差分データ選択部258bに出力し、差分データ選択部258bは、入力されたDND演算された差分データ及びシフト-アップ演算された差分データの符号化に必要なビット数を比較して符号化に必要なビット数がより小さい差分データをエントロピ符号化器260に出力してキーデータのビットストリームを出力する。第5の実施の形態の符号化装置もまた、従来の符号化装置と比較して高い符号化効率を示すということが分かる。
図8に示された第6の実施の形態の符号化装置は、入力差分データから線形キー領域を識別して符号化することにより、全体キーデータの符号化効率を高める符号化装置である。第6の実施の形態の符号化装置は、線形キー符号化器200、実数変換部205、量子化器210、エントロピ符号化部280、及びキーヘッダ符号化器270を備える。
キーデータが第6の実施の形態の符号化装置に入力されれば、線形キー符号化器200は、入力されたキーデータのうちキーデータが線形に増える領域の存否を検索して線形キー領域として判断される領域の開始キーデータ及び終了キーデータを実数変換部205に出力し、入力キーデータのうち線形キー領域を除いたキーデータを量子化器210に入力する。量子化器210に入力されたキーデータは、所定のビットサイズで量子化されてエントロピ符号化部280に出力され、エントロピ符号化部280は、入力された量子化されたキーデータに対して所定の演算を行ってエントロピ符号化してビットストリームに出力する。
一方、実数変換部205は、2進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータを10進数の体系に変換してキーヘッダ符号化器270に出力してビットストリームに含める。一方、第6の実施の形態は、前記量子化誤差最小化部215をさらに備えることもできる。
図27(a)及び図27(b)は、キーデータ及びキー値データを用いてアニメーションデータを符号化する過程を簡略に示す図面である。
キー値のアニメーションの経路において、キー値符号化器は、近似化した経路を示す点の集合を見つける。この場合、多数のキー値がデクリメントされ、残りの点は、キー選択フラグにより表わされる。例えば、与えられたキー値曲線が図27(a)の通りであり、4つの点が選択された時、キー選択フラグの配列は、図27(b)のような値を有する。そして、キー選択フラグは、エントロピ符号化器260により符号化され、キー選択フラグに当たるキー値データのみが符号化される。
以下、図35ないし図39を参照し、前記符号化のためのプログラムコード及び各パラメータの意味の一例を説明する。プログラムコード及び各パラメータの意味は、SDL言語の形で後述する。
キーヘッダのプログラムコードは、図35に示してある。図35に示されたプログラムコードに用いられた各パラメータの意味を説明する。
キーヘッダデータは、キーデータを復号化するために必要な情報である。キーヘッダの主たる情報は、キーの数、量子化ビット、イントラキーデータ、DNDヘッダ及び符号化に必要な実際のビット数である。nKeyQBitは、実数のキー値を復元する逆量子化に用いられる量子化ビットである。nNumKeyCodingBitは、キーデータの数を示すnNumberOfKeyのビットサイズを示す。nKeyDigitは、元のキーデータの最大重要桁数を示し、復号化された値の切り上げに用いられる。キーヘッダに線形キー領域に関する情報が含まれた場合、blsLinearKeySubRegionフラグが1として設定される。この場合、全体キーに含まれる所定のキー領域に含まれたキーは、blsLinearKeySubRegionフラグに追従する復号化されたヘッダ情報を用いて計算できる。bRangeFlagは、キーデータの範囲が0ないし1であるか否かを示す。もし、範囲が0ないし1でなければ、最小値及び最大値はKeyMinMaxから復号化される。KeyMinMaxクラスは、逆量子化のために最小値及び最大値を再構成する。各値は、仮数及び指数に分けられる。nBitSizeは、nQIntraKeyのビットサイズであり、nKeyShiftは、nKeyMaxの最初のビットサイズである。nQIntraKeyは、第1の量子化されたイントラデータの大きさである。これは、nQIntraKeyの符号を示すnQIntraKeySignと共に結合される。これは、残りの量子化されたキーデータを復元するためのベースとして用いられる。インタポレータ圧縮に用いられる全ての符号ビットにおいて、0は正数を、1は負数を各々意味する。nKDPCMOrderは、DPCM次数−1である。次数の範囲は、1ないし3である。量子化されたイントラデータの数は、DPCMの次数と同じである。
nkeyShiftは、符号ビットであるnKeyShiftSignと共にキーデータ復号化器のシフト量を示す整数である。これら両値は、bShiftFlagが1として設定されれば復号化される。nDNDOrderは、DND(Divide-and-Divide)の次数である。DNDは、キーデータ復号化器において説明する。もし、nDNDOrder値が7であれば、bNoDNDが復号化される。このブール値は、逆DNDが処理されるか否かを示す。nKeyMax及びnKeyMinは、連続した逆DND演算中にそれぞれ用いられる最大値及び最小値である。nKeyCodingBitは、キーデータの符号化に用いられるビットである。bSignedAACFlagは、AAC復号化のためにいかなる復号化方法が用いられるかを示す。もし、値が0であれば、unsignedAAC復号化が行われる。そうでなければ、signedAAC復号化が行われる。bKeyInvertDownFlagは、nKeyInvertDownが用いられるのか否かを示すブール値である。nKeyInvertDownは整数値であり、これを超える全ての量子化されたキーデータを−1以下の負数値に反転させる。nKeyInvertDownが−1であれば、シフト-ダウン演算は行われない。
図36は、LinearKeyのプログラムコードを示す図面である。
LinearKeyのパラメータの意味を説明すれば、nNumLinearKeyCodingBitは、線形に予測可能なキーの数を符号化するために必要なビットの数を示す値である。
図37は、KeySelectionFlagのプログラムコードを示す図面である。
KeySelectionFlagに用いられたパラメータを説明すれば、keyFlagは、ブール配列で第i番目のキーのキー値が符号化されたか否かを示す。nNumOfKeyValueは整数値であって、復号化されるキー値の数を示す。
図38は、KeyMinMaxのプログラムコードを示す図面である。
KeyMinMaxに用いられたパラメータの意味を説明すれば、まず、bMinKeyDigitSameは、全体キーの最も高い重要桁数nKeyDigit及びキーの最大値の最も高い重要桁数が同じであるか否かを示す。nMinKeyDigitは、キーの最大値の最も高い重要桁数を示す。nMinKeyMantissaSignは、nMinKeyMantissaの符号を示す。nMinKeyMantissaは、キーの最小値の仮数をを示す。
nMinKeyExponentSignは、nMinKeyExponentの符号を示す。nMinKeyExponentは、キーの最小値の指数を示す。
fKeyMinは、キーの最小値を示す。nMaxKeyDigitSameは、全体キーの最も高い重要桁数nKeyDigit及びキーの最大値の最も高い重要桁数が同じであるかを示す。nMaxKeyDigitは、キーの最大値の重要桁数を示す。nMaxKeyMantissaSignは、nMaxKeyMantissaの符号を示す。nMaxKeyMantissaは、キーの最大値の仮数を示す。
bSameExponentは、キーの最大値の指数がnMinKeyExponentと同じであるかを示す。nMaxKeyExponentSignは、nMaxKeyExponentの符号を示す。nMaxKeyExponentは、キーの最大値の指数を示す。fKeyMaxは、キーの最大値を示す。
図39は、Keyのプログラムコードを示す図面である。
Keyに用いられたパラメータの意味を説明すれば、nQKeyはビットストリームから復号化される量子化されたキーデータを記憶した配列を示す。KeyContextは、nQKeyの大きさを読み込むのに用いられるコンテキストを意味する。KeySignContextは、nQKeyの符号を読み込むのに用いられるコンテキストを意味する。
decodeUnsignedAACは、後述する与えられたコンテキストであって、適応的な算術符号化に対して符号無き復号化を行う関数である。decodeSignedAACは、後述する与えられたコンテキストであって、適応的な算術符号化に対して符号あり復号化を行う関数である。
以下、図28及び図33を参照し、本発明の好ましい実施の形態による復号化装置及び方法を説明する。
図28は、本発明の好ましい実施の形態による復号化装置の構成を示すブロック図である。本発明の復号化器は、符号化されたビットストリームを受け取り、復号化されたキーデータにより再構成する。
本発明の復号化器は、キーヘッダ復号化器370及びキーデータ復号化器の2部分を備える。また、キーデータ復号化器は、エントロピ復号化器360、逆DND処理部350、逆フォルド処理部340、逆シフト部330、逆DPCM処理部320、逆量子化器310、線形キー復号化器300及び実数逆変換部305を備える。
図33は、本発明の好ましい実施の形態による復号化方法を説明するフローチャートである。
まず、キーデータを圧縮したビットストリームは、キーヘッダ復号化器370及びエントロピ復号化器360に入力される。
キーヘッダ復号化器370は、各復号化段階別に必要な情報を復号化して各段階に与えるが、キーヘッダ復号化器370において復号化される情報は各段階ごとに説明する(S4000)。
ビットストリームを入力されたエントロピ復号化器360は、キーヘッダ復号化器370から復号化すべき差分データの数と符号化に用いられたビット数、すなわち、復号化すべきビット数を入力され、ビットストリームをエントロピ復号化する(S4100)。この時、復号化すべき差分データの数は、与えられたキーデータの数からDPCM演算のイントラキーデータの数だけ引いた数となる。
エントロピ復号化器360は、ビットストリームを復号化する時、ビットストリームに含まれた所定の情報(この実施の形態では、bSignedAACFlag)に基づき符号化された差分データが負数であるか、それとも正数であるかを識別し、負数であれば、decodeSignedAAC()関数を用いて復号化し、正数であれば、decodeUnsignedAAC()関数を用いて復号化する。このようにして復号化された差分データは、逆DND処理部350に送られる。
本発明の好ましい実施の形態において、ビットストリームを復号化するための関数を具現するプログラムコードの一例は後述する。
エントロピ復号化された差分データを受け取った逆DND処理部350は、キーヘッダ復号化器370からDND次数及び各DND次数における最大値nKeyMaxを入力される。
もし、DND次数が−1であれば、これは、符号化器がDND演算された差分データの代わりにDPCM演算されてシフトされた差分データをエントロピ符号化したことを示すため、逆シフト演算を行う過程へ直ちに進む。一方、DND次数が0であれば、これは、符号化器がDND演算された差分データの代わりにフォルドされた差分データをエントロピ符号化したことを示すために、逆フォルド演算を行う過程へ直ちに進む。しかし、DND次数が0より大きければ、逆DND演算を行う(S4150)。
まず、逆DND処理部350は、シフト-アップ演算の行われた差分データが符号化されたか否かを判断する(S4170)。本発明の好ましい実施の形態においては、ビットストリームに含まれたnKeyInvertDown値が0より大きいか否かをチェックすることにより、シフト-アップ演算の行われた差分データが符号化されたか否かを判断する。
もし、シフト-アップ演算の行われていない差分データが符号化されたならば、逆DND処理部350は、逆DND演算を行う過程へ進む。しかし、シフト-アップ演算の行われた差分データが符号化されたならば、シフト-アップ演算により正数の領域に移動した差分データをさらに元の負数領域に戻す(S4200)。本発明の実施の形態は、下記式14で表わされるシフト-ダウン(以下、“インバート−ダウン”と同じ意味で使用する)演算を行ってシフト-アップ演算された差分データを復元する。
Figure 0004104615
ここで、nKeyInvertDownは、シフト-アップ演算における最大値nKeyMaxと同じ値が用いられる。シフト-ダウン演算によりnKeyInvertDownを超える差分データは−1以下の負数値に変わる。
シフト-ダウン演算の行われた差分デーに対して各DND次数における値に応じて逆ディバイド-ダウンまたは逆ディバイド-アップ演算が選択的に行われる。
図34をさらに参照し、この逆DND演算過程を説明すれば、逆DND処理部350は、符号化過程において行われたDND演算の次数の回数だけ逆DND演算を行う。すなわち、逆DND処理部350は、逆DND次数の初期値をDND次数として設定し、逆DND演算を行う都度1ずつデクリメントし、逆DND次数が1となるまで逆DND演算を行う。まず、逆DND処理部350は、各次数におけるnKeyMax値をチェックしてnKeyMax値が0以上であるか否かを判断する(S4310)。
nKeyMax値が0より小さければ、符号化過程においてディバイド-アップ演算が行われた旨を意味するために、逆DND処理部350は、逆ディバイド-アップ演算を行って差分データの範囲を負数領域に広める(S4320)。本発明の好ましい実施の形態は、下記式15のような逆ディバイド-アップ演算を用いた。
Figure 0004104615
しかしながら、もし、nKeyMaxが0以上であれば、逆DND処理部350は、逆DND演算の次数が1であるか否かをチェックする。逆DND次数が1でなければ、符号化する時にディバイド-ダウン演算が行われた旨を意味するために、逆DND処理部350は、逆ディバイド-ダウン演算を行って差分データの範囲を正数領域に広める(S4340)。
本発明の好ましい実施の形態は、下記式16のような逆ディバイド-ダウン演算を用いた。
Figure 0004104615
もし、nKeyMaxが0以上であり、且つ、逆DND演算の次数が1であれば、逆DND処理部350は、逆ディバイド演算を行うことにより逆DND演算を終える(S4350)。本発明の好ましい実施の形態は、下記式17のような逆ディバイド演算を用いた。
Figure 0004104615
逆DND演算の行われたキーデータの差分データは、逆フォルド処理部340に入力され、逆フォルド処理部340は、逆フォルド演算を行い、正数領域にのみ位置する差分データの範囲を正数及び負数に分離する(S4400)。本発明の好ましい実施の形態は、下記式18のような逆フォルド演算を用いた。
Figure 0004104615
逆フォルドされた差分データは、逆シフト部330に出力され、逆シフト部330は、キーヘッダ復号化器370から符号化器に用いられたモードnKeyShiftを入力され、下記式19のように入力されたnKeyMax差分データにモードを加える(S4500)。
Figure 0004104615
逆シフト部330から差分データを入力された逆DPCM処理部320は、キーヘッダ符号化器370からDPCM次数を入力され、差分データを量子化されたキーデータに復元する(S4600)。逆シフト部330は、下記式20を用いてDPCM次数だけ逆DPCM演算を行う。
Figure 0004104615
ここで、iは、差分データ及びキーデータのインデックスを、vは整数配列を、delta(i)は差分データを各々示す。
逆DPCM処理されて生成された量子化されたキーデータは、逆量子化器310に入力され、逆量子化器310は、キーヘッダ復号化器370から量子化ビットサイズnKeyQBit及び逆量子化に用いられる最大値及び最小値が量子化過程において実数変換部205により符号化されたか否かを入力され、下記式21を用いて入力された量子化されたキーデータを逆量子化されたキーデータに変換する(S4700)。
Figure 0004104615
符号化器においてキーデータを量子化する時、量子化に用いられた最大値及び最小値が実数変換部205において変換されなかったならば、前記式21のfKeyMin及びfKeyMaxは0及び1として各々設定される。しかし、量子化に用いられた最大値及び最小値が実数変換部205において変換されたならば、逆量子化に用いられる最大値及び最小値は、後述する実数逆変換部305において逆変換されて入力される最小値及び最大値が各々用いられる。
上述した逆DND演算過程から逆量子化過程をプログラムコードにて具現した一例は後述する。
一方、逆量子化器310から出力される復号化されたキーデータは、線形キー復号化器300において復号化された線形キーデータに加えられて復号化されたキーデータを構成する。
以下、線形キー復号化過程を説明する。
キーヘッダ復号化器370は、ビットストリームからキーヘッダ情報を復号化して線形キーに関する情報があれば、線形キー領域の開始キー及び終了キーを復号化するために必要な情報を実数逆変換部305に出力し、線形キー復号化器300に線形キーとして符号化されたキーの数を出力する。
線形キー復号化に用いられる開始キー及び終了キー情報を入力された実数逆変換部305は。10進数の体系で表わされた開始キー及び終了キーをさらに2進数の体系に逆変換して線形キー復号化器300に出力する。
復号化すべき2つの実数をfKeyMin及びfKeyMaxとすれば、最初の値fKeyMinを逆変換する過程は、下記の通りである。
キーヘッダ復号化器370は、fKeyMinの桁数をビットストリームから読み込む。もし、桁数が0であれば、fKeyMinの値を0として設定した後、fKeyMaxの値を復号化するためにfKeyMaxの桁数をビットストリームから読み込む。もし、桁数が8以上であれば、IEEE標準754方式に従って符号化されたものであるため、実数を32ビットだけ読み込んだ後、fKeyMaxの値を復号化する過程へ進む。
しかしながら、もし、桁数が1と7との間の値を有すれば、キーヘッダ復号化器370は、符号ビットをビットストリームから読み込む。本発明の実施の形態においては、符号ビットが1であれば、MinKeyMantissaSignを−1として、0であれば、MinKeyMantissaSignを1として設定して符号を読み込む。そして、仮数を前記表1の桁数と必要なビット数との関係に基づき必要なビット数を得た後、そのビット数だけビットストリームから読み込み、読み込まれた値をnMinKeyMantissaに記憶する。その後、ビットストリームから1ビットのみを読み込んでMinKeyExponentSignに記憶するが、MinKeyMantissaSignと同じ方式により記憶する。そして、ビットストリームから6ビットのみの指数値を読み込んでnMinKeyExponentに記憶する。
実数逆変換部305は、キーヘッダ復号化器370から入力された値を下記式22に代入してfKeyMinを復元する。
Figure 0004104615
fKeyMaxを復元する過程は、fKeyMinのそれと同じである。但し、fKeyMaxの指数をビットストリームから読み込む前に、fKeyMaxの指数としてfKeyMinと同じ指数が用いられたか否かを判読し、同じ値が用いられたならば、fKeyMinの指数を用い、そうでなければ、fKeyMinの指数をビットストリームから読み込む方式と同じく、fKeyMaxの指数を読み込む。
一方、実数逆変換部305から線形キー領域の開始キー及び終了キーを入力された線形キー復号化器300は、下記式23を用いて線形キー領域を復号化する。
Figure 0004104615
ここで、fKeyMin及びfKeyMaxは、線形キー領域の開始キーデータ及び終了キーデータを意味する。
このようにして復号化された線形キー領域のキーデータは、逆量子化器310から出力されたキーデータに加えられて復号化された最終キーデータとして出力される。
以上、本発明の好ましい実施の形態によるキーデータ復号化装置の一例を説明した。当該技術分野における通常の知識を有した者は、上述した好ましい実施の形態による復号化装置の様々な変形された実施の形態が存在するということが分かるであろう。以下、図29ないし図32を参照し、好ましいキーデータ復号化装置の実施の形態を説明する。一方、前記図28に示された構成要素と同じ機能を行う構成要素には同じ参照符号を使用した。
図29を参照すれば、本発明の復号化装置の第2の実施の形態は、エントロピ復号化器360、逆DND演算部352、逆フォルド処理部340、逆シフト部330、逆DPCM処理部320、及び逆量子化器310を備える。
キーデータを符号化したビットストリームが第2の実施の形態の復号化装置に入力されれば、エントロピ復号化器360は、入力されたビットストリームをエントロピ復号化し、復号化された差分データを逆DND演算部352に出力する。逆DND演算部352は、入力された差分データのDND次数をチェックし、入力された差分データがDND演算の行われた差分データであるか否かを判断し、DND演算が行われたならば、前記逆DND演算を行って出力し、そうでなければ、バイパスする。
逆DND演算部352から差分データを入力された逆フォルド処理部340は、DND次数をチェックして入力された差分データがフォルド演算の行われた差分データであれば、逆フォルド演算を行って逆シフト部330に出力し、そうでなければ、逆シフト部330にバイパスする。
一方、逆シフト部330は、入力された差分データに対して前記逆シフト演算を行って逆DPCM処理部320に出力し、逆DPCM処理部320は、差分データを量子化されたキーデータに変換して逆量子化器310に出力する。逆量子化器310は、量子化された差分データを逆量子化し、復号化されたキーデータを出力する。
図30を参照すれば、本発明の復号化装置の第3の実施の形態は、エントロピ復号化器360、逆DND処理部350、逆シフト部330、逆DPCM処理部320、及び逆量子化器310を備える。
キーデータを符号化したビットストリームが第3の実施の形態の復号化装置に入力されれば、エントロピ復号化器360は、入力されたビットストリームをエントロピ復号化した後、復号化された差分データを逆DND処理部350に出力する。逆DND処理部350は、入力された差分データに対して符号化過程においてシフト-アップ演算が行われたか否かをチェックし、シフト-アップ演算が行われたならば、前記シフト-ダウン演算を行った後に前記逆DND演算を行って出力し、そうでなければ、逆DND演算を行って逆シフト部330に出力する。
一方、逆シフト部330は、入力された差分データに対して前記逆シフト演算を行って逆DPCM処理部320に出力し、逆DPCM処理部320は、差分データを量子化されたキーデータに変換して逆量子化器310に出力する。逆量子化器310は、量子化された差分データを逆量子化し、復号化されたキーデータを出力する。
図31を参照すれば、本発明の復号化装置の第4の実施の形態は、エントロピ復号化器360、逆シフト-アップ演算部356、及び逆DND演算部352を備える。
入力されたビットストリームは、エントロピ復号化器360において復号化されて差分データに変換された後に逆シフト-アップ演算部356に入力される。逆シフト-アップ演算部356は、入力された差分データに対して前記シフト-ダウン演算を行い、DND演算された差分データを生成して逆DND演算部352に出力する。逆DND演算部352は、前記逆DND演算を行って復号化されたキーデータの差分データを出力する。復号化されたキーデータの差分データは、通常の復号化器の構成を用いて復号化されたキーデータを出力することができる。
図32を参照すれば、本発明の復号化装置の第5の実施の形態は、線形キー符号化器を用いる符号化装置において符号化されたビットストリームを復号化する復号化装置である。
入力ビットストリームは、エントロピ復号化部380及びキーヘッダ復号化器370に入力される。エントロピ復号化部380は、ビットストリームにおいてキーデータに当たる部分をエントロピ復号化して所定の演算を行って逆量子化器310に出力し、キーヘッダ復号化器370は、入力されたビットストリームからキーヘッダに当たるビットストリームを復号化して線形キー復号化器に線形キー領域に含まれるキーデータの数を出力し、実数逆変換部305に線形キー領域の開始キーデータ及び終了キーデータ情報を出力する。
逆量子化器310は、入力された量子化されたキーデータを逆量子化して出力し、線形キー復号化器は、実数逆変換部305から入力された線形キー領域の開始キーデータ及び終了キーデータを入力されて線形キー領域を復号化し、復号化された線形キー領域を逆量子化器310から出力されたキーデータに加えて復号化されたキーデータを出力する。
図40ないし図42を参照し、復号化過程を行う演算を具現したプログラムコードの例を説明する。
図40は、符号及び値に対するコンテキストを用いた、適応的算術符号化されたビットストリームから符号あり値を復号化するdecodeSignedAAC()関数を具現するプログラムコードの一例を示す図面である。
図41は、符号及び値に対するコンテキストを用いた、適応的算術符号化されたビットストリームから符号なき値を復号化するdecodeUnsignedAAC()関数を具現するプログラムコードの一例を示す図面である。図41において、qf_decode()は、ビットストリームから1ビットを読み込む関数である。
図42は、前記逆DND演算過程から逆量子化過程をプログラムコードにて具現した一例を示す図面である。
本発明はまた、コンピュータにて読取り可能な記録媒体にコンピュータにて読取り可能なコードとして具現可能である。コンピュータにて読取り可能な記録媒体は、コンピュータシステムによって読取り可能なデータが記憶されるあらゆる種類の記録装置を含む。コンピュータにて読取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピーディスク、光データ記憶装置などがあり、また、キャリアウェーブ(例えば、インターネットを通じた伝送)の形で具現されるものも含む。また、コンピュータにて読取り可能な記録媒体は、ネットワークにより結ばれたコンピュータシステムに分散され、分散方式によりコンピュータにて読取り可能なコードが記憶されて実行できる。
今まで本発明についてその好ましい実施の形態を中心として説明した。本発明が属する技術分野における通常の知識を有した者は、本発明が本発明の本質的な特性から逸脱しない範囲において変形された形態で具現できることが理解できるであろう。よって、開示された実施の形態は限定的な観点ではなく、説明的な観点からら考慮されるべきである。本発明の範囲は、以上の説明ではなく、特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる違いは、本発明に含まれたものとして解釈されるべきである。
通常のキーデータ符号化及び復号化装置の構成を示すブロック図である。 本発明の好ましい実施の形態による符号化装置の構成を示すブロック図である。 図2に示されたDND処理部の構成を示すブロック図である。 本発明の符号化装置の第2の実施の形態の構成を示すブロック図である。 本発明の符号化装置の第3の実施の形態の構成を示すブロック図である。 本発明の符号化装置の第4の実施の形態の構成を示すブロック図である。 本発明の符号化装置の第5の実施の形態の構成を示すブロック図である。 本発明の符号化装置の第6の実施の形態の構成を示すブロック図である。 本発明の好ましい実施の形態による符号化方法(前半部)を説明するフローチャートである。 本発明の好ましい実施の形態による符号化方法(後半部)を説明するフローチャートである。 本発明の好ましい実施の形態による実数変換過程(前半部)を説明するフローチャートである。 本発明の好ましい実施の形態による実数変換過程(後半部)を説明するフローチャートである。 本発明の好ましい実施の形態による量子化過程を説明するフローチャートである。 本発明の好ましい実施の形態によるDPCM演算過程を説明するフローチャートである。 本発明の好ましい実施の形態によるDND演算過程を説明するフローチャートである。 本発明の好ましい実施の形態によるエントロピ符号化方法の一例を示す図面である。 本発明の好ましい実施の形態による演算過程における、本発明の符号化器に入力される元のキーデータを示す。 本発明の好ましい実施の形態による演算過程における、量子化されたキーデータを示す。 本発明の好ましい実施の形態による演算過程における、DPCMを行った後のキーデータの差分データを示す。 本発明の好ましい実施の形態による演算過程における、シフトされたキーデータの差分データを示す。 本発明の好ましい実施の形態による演算過程における、フォルド演算後の差分データを示す。 本発明の好ましい実施の形態による演算過程における、ディバイド演算後の差分データを示す。 本発明の好ましい実施の形態による演算過程における、ディバイド−アップ演算後の差分データを示す。 本発明の好ましい実施の形態による演算過程における、ディバイド−ダウン演算後の差分データを示す。 本発明の好ましい実施の形態による演算過程における、シフト−アップ演算後の差分データを示す。 本発明の好ましい実施の形態による演算過程において確定した、最終的に符号化すべきキーデータを示す。 (a)及び(b)は、キーデータ及びキー値データを用いてアニメーションデータを符号化する過程を簡略に示す図面である。 Aは、本発明の好ましい実施の形態によるキーデータ復号化装置の構成を示すブロック図であり、そして 本発明の復号化装置の第2の実施の形態の構成を示すブロック図である。 本発明の復号化装置の第3の実施の形態の構成を示すブロック図である。 本発明の復号化装置の第4の実施の形態の構成を示すブロック図である。 本発明の復号化装置の第5の実施の形態の構成を示すブロック図である。 本発明の好ましい実施の形態による復号化方法を説明するフローチャートである。 本発明の好ましい実施の形態による逆DND演算過程を説明するフローチャートである。 符号化のためのKeyheaderプログラムコードの一例を説明する図面である。 符号化のためのLinearKeyプログラムコードの一例を説明する図面である。 符号化のためのKeySelectionFlagプログラムコードの一例を説明する図面である。 符号化のためのKeyMinMaxプログラムコードの一例を説明する図面である。 符号化のためのKeyプログラムコードの一例を説明する図面である。 復号化過程を行う演算を具現したプログラムコードの一例として、decodeSignedAAC関数を説明する図面である。 復号化過程を行う演算を具現したプログラムコードの一例として、decodeUnsignedAAC関数を説明する図面である。 復号化過程を行う演算を具現したプログラムコードの一例として、逆DND演算過程から逆量子化過程を説明する図面である。
符号の説明
280 エントロピ符号化部
290 線形キーデータ符号化部

Claims (7)

  1. キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化装置であって、
    入力された全体キーデータのうちキーデータが線形に増える領域を識別して符号化する線形キー符号化器と、
    前記線形キー符号化器から入力され、且つ、2進数の体系で表わされた線形キー領域の開始キーデータ及び終了キーデータを10進数の体系の実数に変換する実数変換部と、
    前記全体キーデータのうち前記線形キー領域が除かれたキーデータを入力され、入力されたキーデータを所定の量子化ビットで量子化する量子化器と、
    前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化部と、
    前記線形キー符号化器から線形キーデータ領域に含まれるキーデータの数を入力され、前記実数変換部から変換された線形キー領域の開始キーデータ及び終了キーデータを入力されてキーヘッダとして符号化するキーヘッダ符号化器と、を備えることを特徴とする符号化装置。
  2. 量子化誤差が最小化可能に前記量子化器に入力されるキーデータの最大値及び最小値を調整して前記量子化器に出力する量子化誤差最小化部をさらに備え、前記量子化器は、前記量子化誤差最小化部から入力された最大値及び最小値を用いて入力されたキーデータを所定の量子化ビットで量子化することを特徴とする請求項1に記載の符号化装置。
  3. キーフレームの時間軸上の位置情報であるキーデータを符号化したビットストリームを復号化する復号化装置であって、
    入力されたビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化器と、前記ビットストリームをエントロピ復号化して量子化されたキーデータを出力するエントロピ復号化部と、
    10進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力され、2進数の体系に変換して出力する実数逆変換部と、
    前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを出力する逆量子化器と、
    前記実数逆変換部から線形キー領域の開始キーデータ及び終了キーデータを入力され、線形キーデータを復号化して前記逆量子化器から出力されたキーデータに加える線形キー復号化器と、を備えることを特徴とする復号化装置。
  4. キーフレームの時間軸上の位置情報であるキーデータを符号化する符号化方法であって、
    符号化すべき全体キーデータのうちキーデータが線形に増える線形キー領域を識別して符号化する線形キー符号化段階と、
    2進数の体系で表わされた前記線形キー領域の開始キーデータ及び終了キーデータを10進数の体系の実数に変換する実数変換段階と、
    前記全体キーデータのうち前記線形キー領域が除かれたキーデータを所定の量子化ビットで量子化する量子化段階と、
    前記量子化されたキーデータに所定の演算を行ってエントロピ符号化するエントロピ符号化段階と、
    前記線形キー領域に含まれるキーデータの数、及び前記変換された線形キー領域の開始キーデータ及び終了キーデータをキーヘッダとして符号化するキーヘッダ符号化段階と、を含むことを特徴とする符号化方法。
  5. 前記量子化段階は、
    量子化誤差が最小化可能に前記量子化すべきキーデータの最大値及び最小値を調整する量子化誤差最小化段階をさらに含み、前記量子化誤差最小化段階において調整された前記最大値及び最小値を用いて量子化すべきキーデータを所定の量子化ビットで量子化することを特徴とする請求項4に記載の符号化方法。
  6. キーフレームの時間軸上の位置情報であるキーデータを符号化したビットストリームを復号化する復号化方法であって、
    前記ビットストリームから符号化されたキーデータの復号化に必要なキーヘッダ情報を復号化するキーヘッダ復号化段階と、
    前記ビットストリームをエントロピ復号化し、量子化されたキーデータを生成するエントロピ復号化段階と、
    10進数の体系に符号化された線形キーデータ領域の開始キーデータ及び終了キーデータと前記量子化されたキーデータを逆量子化するのに用いられる最大値及び最小値とを前記キーヘッダ復号化器から入力されて2進数の体系に変換する実数逆変換段階と、
    前記最大値及び最小値を用いて前記量子化されたキーデータを逆量子化し、復号化されたキーデータを生成する逆量子化段階と、
    前記線形キー領域の開始キーデータ及び終了キーデータを用いて線形キーデータを復号化し、前記逆量子化されたキーデータに加える線形キー復号化段階と、を含むことを特徴とする復号化方法。
  7. 請求項6に記載の復号化方法をコンピュータにて読取り可能で且つ、実行可能なプログラムコードにて記録した記録媒体。

JP2005134609A 2001-11-27 2005-05-02 キーデータの符号化及び復号化方法、並びに装置 Expired - Fee Related JP4104615B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US33313001P 2001-11-27 2001-11-27
US33454101P 2001-12-03 2001-12-03
US34210101P 2001-12-26 2001-12-26
US36959702P 2002-04-04 2002-04-04
KR1020020064007A KR100552665B1 (ko) 2001-11-27 2002-10-19 키 데이터 부호화/복호화 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002343162A Division JP3733107B2 (ja) 2001-11-27 2002-11-27 キーデータの符号化及び復号化方法、並びに装置

Publications (2)

Publication Number Publication Date
JP2005348395A JP2005348395A (ja) 2005-12-15
JP4104615B2 true JP4104615B2 (ja) 2008-06-18

Family

ID=37635681

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002343162A Expired - Fee Related JP3733107B2 (ja) 2001-11-27 2002-11-27 キーデータの符号化及び復号化方法、並びに装置
JP2005134609A Expired - Fee Related JP4104615B2 (ja) 2001-11-27 2005-05-02 キーデータの符号化及び復号化方法、並びに装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002343162A Expired - Fee Related JP3733107B2 (ja) 2001-11-27 2002-11-27 キーデータの符号化及び復号化方法、並びに装置

Country Status (3)

Country Link
EP (2) EP1761065A3 (ja)
JP (2) JP3733107B2 (ja)
CN (1) CN100414996C (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698352B2 (en) * 2005-09-15 2010-04-13 International Business Machines Corporation System and method for converting from scaled binary coded decimal into decimal floating point
CN102014285B (zh) * 2009-11-10 2012-10-03 钰创科技股份有限公司 多次dpcm讯号编码装置及方法
EP3200455B1 (en) * 2016-01-28 2018-09-05 intoPIX Method and device for compression and decompression of binary data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60237738A (ja) * 1984-05-11 1985-11-26 Sony Corp デイジタル信号伝送装置
JPS62262533A (ja) * 1986-04-30 1987-11-14 ジ−メンス・アクチエンゲゼルシヤフト Dpcm値伝送方法
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
WO2001041156A1 (en) * 1999-12-01 2001-06-07 Ivast, Inc. Optimized bifs encoder

Also Published As

Publication number Publication date
JP2004007380A (ja) 2004-01-08
EP1761065A2 (en) 2007-03-07
EP1322118A2 (en) 2003-06-25
CN1568012A (zh) 2005-01-19
JP3733107B2 (ja) 2006-01-11
CN100414996C (zh) 2008-08-27
EP1322118A3 (en) 2005-08-10
EP1322118B1 (en) 2012-11-14
JP2005348395A (ja) 2005-12-15
EP1761065A3 (en) 2009-08-26

Similar Documents

Publication Publication Date Title
KR100552665B1 (ko) 키 데이터 부호화/복호화 방법 및 장치
JP4002502B2 (ja) 座標インタポレータの符号化/復号化装置及びその方法
US7746249B2 (en) Method and apparatus for encoding and decoding key data
JP4191706B2 (ja) データ符号化及び復号化方法、並びに装置
JP4104615B2 (ja) キーデータの符号化及び復号化方法、並びに装置
US7436889B2 (en) Methods and systems for reducing requantization-originated generational error in predictive video streams using motion compensation
JP3699066B2 (ja) グラフィックアニメーションデータの符号化及び復号装置並びにその方法
JP3953411B2 (ja) 座標インタポレータのキー値データ符号化/復号化方法及び装置
JP4205426B2 (ja) 回転インタポレータのキー値データ復号化方法
JP4555271B2 (ja) 位置インタポレータの符号化/複合化方法、及び装置
EP1750447A2 (en) Method and apparatus for encoding and decoding key data
JPS62193382A (ja) 画像信号符号化復号化方式とその装置
JPH09214356A (ja) 可変長符号化方法・復号方法および可変長符号化装置・復号装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061114

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080325

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140404

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees