[go: up one dir, main page]

JP2011507037A - 5点dct−ii、dct−iv、およびdst−ivの計算のための高速アルゴリズム、ならびにアーキテクチャ - Google Patents

5点dct−ii、dct−iv、およびdst−ivの計算のための高速アルゴリズム、ならびにアーキテクチャ Download PDF

Info

Publication number
JP2011507037A
JP2011507037A JP2010538219A JP2010538219A JP2011507037A JP 2011507037 A JP2011507037 A JP 2011507037A JP 2010538219 A JP2010538219 A JP 2010538219A JP 2010538219 A JP2010538219 A JP 2010538219A JP 2011507037 A JP2011507037 A JP 2011507037A
Authority
JP
Japan
Prior art keywords
point
dct
discrete cosine
cosine transform
transforms
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010538219A
Other languages
English (en)
Other versions
JP5269908B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011507037A publication Critical patent/JP2011507037A/ja
Application granted granted Critical
Publication of JP5269908B2 publication Critical patent/JP5269908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

N点MDCT変換をより小さいサイズのN/2点DCT−IV、DST−IVおよび/またはDCT−II変換にマッピングする、より効率的なエンコーダ/デコーダを提供する。オーディオコーデックにおける多くの既存のMDCT設計で使用されるDCT−IVまたはFFTコアとは反対に、一様にスケーリングされた5点DCT−IIコア関数を利用することによって、MDCTを2分の1に系統的にデシメートすることができる。5点変換の様々な変換の因数分解を実装して、変換をより効率的に実装することができる。

Description

米国特許法第119条に基づく優先権の主張
本特許出願は、両方とも本出願の譲受人に譲渡され、参照により本明細書に明白に組み込まれる、2007年12月13日に出願された「Fast Algorithms for Computation of 5-Point DCT-II, DCT-IV, and DST-V, and Architecture for Design of Transforms of Size N=5*2K」と題する米国特許仮出願第61/013,579号、および2008年3月25日に出願された「G.EV-VBR MDCT Module」と題する米国特許仮出願第61/039,194号の優先権を主張する。
以下の説明は、一般に、エンコーダおよびデコーダに関し、特に、ボイスおよびオーディオコーデックのための効率的なMDCT/IMDCT実装(implementation)に関する。
オーディオコーディングの1つの目的は、元のサウンド品質をできる限り保ちながら、オーディオ信号を所望の限られた情報量に圧縮することである。符号化プロセスでは、時間領域におけるオーディオ信号を周波数領域に変換し、対応する復号プロセスでは、そのような演算を逆算する。
そのような符号化プロセスの一部として、モディファイド離散コサイン変換(MDCT)によって信号を処理することができる。モディファイド離散コサイン変換(MDCT)は、タイプIVの離散コサイン変換(DCT−IV)に基づくフーリエ関連の変換であり、あるブロックの終了が次のブロックの開始と一致するように複数のブロックが重なるという追加の特性をもつ。この重なりは、エイリアシングアーティファクトを回避するのに役立ち、DCTのエネルギー圧縮品質に加えて、特に信号圧縮の適用例にとってMDCTを魅力的にする。
ボコーダは、10あるいは20ミリセコンドフレームおよび、8kHzあるいは16kHzのいずれかの入力サンプリングレートで動作する。それゆえ、それらのMDCTフィルタバンクは、160あるいは320点の変換となる。
しかしながら、将来のスピーチコーダがブロックスイッチング機能をサポートするようになれば、デシメートされたサイズ(たとえば、160、80、40点)のサポートも必要になることがある。したがって、小さいサイズのコア変換を使用してより大きい変換を実装するためには、小さい変換サイズの効率的な実装が望ましい。
以下で、いくつかの実施形態の基本的な理解を与えるために、1つまたは複数の実施形態の簡単な概要について説明する。この概要は、すべての企図される実施形態の包括的な概観ではなく、すべての実施形態の主要または重要な要素を識別するものでも、いずれかまたはすべての実施形態の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、1つまたは複数の実施形態のいくつかの概念を簡略化された形式で提示することである。
変換値を計算するための符号化方法および/またはデバイスを提供する。オーディオ信号を表す時間領域入力値を受信する。複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、入力値をスペクトル係数に変換する。5点変換を効率的に処理するために、様々な因数分解を実装することができる。
一例(図5)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、8回乗算演算、および3回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含む。
w0=x0−x4、
w4=x0+x4、
w1=x1−x3、
w3=x1+x3、
u2=x2+w3+w4、
u3=−d*w3+c*w4、
u4=d*w4+c*w3、
ここで、
X0=u2、
X1=b*w1+a*w0、
X2=u3−x0、
X3=a*w1−b*w0、
X4=u4+x0、
上式で、
Figure 2011507037
である。
別の例(図6)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、5回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含む。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含む。
w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
u2=z2+z4、
ここで、
X0=u2+x2、
X1=b*w1+a*w0、
X2=c*u2+0.5*z2−x2、
X3=a*w1−b*w0、
X4==−c*u2−0.5*z4+x2、
上式で、
Figure 2011507037
である。
別の例(図7)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果を有することによって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含む。
w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
t2=z2+z4、
t4=z2−z4、
c’=c+0.25、
ここで、
X0=t2+x2、
X1=b*w1+a*w0、
X2=c’*t2−0.25*t4−x2=0.25*t4+c’*t2−x2)、
X3=a*w1−b*w0、
X4=−c’*t2−0.25*t4+x2=0.25*t4−(c’*t2−x2)、
上式で、
Figure 2011507037
である。
別の例(図8)では、複数の5点変換のうちの少なくとも1つは、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含む。
w1=x0+x4、
w2=x4−x0、
w3=x3−x1、
w4=x3+x1、
w5=w1+w4、
w6=w4−w1、
u1=x2−αw5、
u2=x2+w5、
u3=βw2+γw3、
u4=βw3−γw2、
u5=δw6、
ここで、
X0=u2、
X1=u4、
X2=u4−u1、
X3=u3、
X4=u1+u5、
上式で、
Figure 2011507037
である。
代替的に、複数の5点変換のうちの少なくとも1つは、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの変換(802)を含むことができる。
別の例(図9)では、複数の5点変換のうちの少なくとも1つは、20回加算演算、16回乗算演算、および3回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(902)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(902)を含むことができる。
k1=g*x1+h*x3、
k2=h*x1+g*x3、
k3=f*x0+i*x4、
k4=i*x0+f*x4、
k5=i*x1−f*x3、
k6=−f*x1+i*x3、
k7=g*x0−h*x4、
k8=h*x0−g*x4、
j1=x0+x4、
j2=x3−x1、
ここで、
X0=k3+k1+x2、
X1=k7+k5−x2、
X2=j1+j2−x2、
X3=h*x0−g*x4−f*x1+i*x3+x2、
X4=k4−k2+x2。
上式で、
Figure 2011507037
である。
別の例(図10)では、複数の5点変換のうちの少なくとも1つは、20回加算演算、12回乗算演算、および4回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1002)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1002)を含むことができる。
q1=x0+x4、
q2=x3−x1、
p1=(x1−x3)*g−x1*(g+h)=q2*g−x1*(g+h)、
p2=(x1−x3)*g+x3*(h+g)=q2*g+x3*(g+h)、
p3=(x0+x4)*f+x0*(i−f)=q1*f+x0*(i−f)、
p4=(x0+x4)*f+x4*(i−f)=q1*f+x4*(i−f)、
p5=(x3−x1)*f+x3*(i−f)=q2*f+x3*(i−f)、
p6=(x3−x1)*f−x1*(i−f)=q2*f−x1*(i−f)、
p7=(x0+x4)*g+x0*(h+g)=q1*g+x0*(h+g)、
p8=(x0+x4)*g+x4*(h+g)=q1*g+x4*(h+g)、
ここで、
X0=p2+p4+x2、
X1=p5+p7−x2、
X2=q1+q2−x2、
X3=p6+p8+x2、
X4=p1+p3+x2、
上式で、
Figure 2011507037
である。
別の例(図14)では、複数の5点変換のうちの少なくとも1つは、16回加算演算、9回乗算演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1402)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1402)を含むことができる。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=2c*v2+z2−2*x2、
y4=−2c*v2−z4+2*x2、
ここで、
X0=v2+x2、
X1=v1−2*X0、
X2=y2−X1、
X3=v3−X2、
X4=y4−X3、
上式で、
Figure 2011507037
および
Figure 2011507037
である。
別の例(図15)では、複数の5点変換のうちの少なくとも1つは、15回加算演算、10回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1502)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1502)を含むことができる。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=(2c+2)*v2+z2、
y4=2c*v2+z4、
ここで、
X0=v2+x2、
X1=v1−2*X0、
X2=y2−v1、
X3=v3−X2、
X4=−y4+2*x2−X3、
上式で、
Figure 2011507037
および
Figure 2011507037
である。
別の例(図16)では、複数の5点変換のうちの少なくとも1つは、15回加算演算、11回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1602/1702)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1602)を含むことができる。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
d2=(2c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2、
ここで、
X0=z2+z4+x2、
X1=v1−2*X0、
X2=d2−v1、
X3=v3−X2、
X4=−d4+2*x2−X3、
上式で、
Figure 2011507037
および
Figure 2011507037
である。
別の例(図17)では、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1702)を含むことができる。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
d2=2(c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2、
ここで、
X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−d2、
X4=−d4+2*x2−X3、
上式で、
Figure 2011507037
および
Figure 2011507037
である。
別の例(図18)では、複数の5点変換のうちの少なくとも1つは、15回加算演算、12回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1802)を含むことができる。たとえば、複数の5点変換のうちの少なくとも1つは、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1802)を含むことができる。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
r2=(2c+2)*z2+(2c+2)*z4、
r4=4(c+1)*z2+4(c+1)*z4、
ここで、
X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−r2、
X4=−r4+2*x2−z3、
上式で、
Figure 2011507037
および
Figure 2011507037
である。
さらに、変換方法および/またはデバイスは、変換を実行する前に入力値に対してウィンドウイング(windowing)演算を実行することができ、ウィンドウイング演算は、非対称ウィンドウ関数を実装する。
いくつかの実装形態では、MDCTは、5点離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
他の実装形態では、MDCTは、5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
さらに他の実装形態では、MDCTは、5点離散コサイン変換タイプIIおよび5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
さらに他の実装形態では、MDCTは、5点離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する。
逆変換値を計算するための復号方法および/またはデバイスを提供する。オーディオ信号を表すスペクトル係数入力値が受信される。次いで、スペクトル係数入力値は、複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、時間領域出力値に変換される。
一例(図32)では、複数の5点逆変換のうちの少なくとも1つは、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含むことができる。たとえば、複数の5点逆変換のうちの少なくとも1つは、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含むことができる。
u1=X4−X2、
u5=X4+X2、
w0=X0+u1、
w5=X0−αu1、
w2=βX3−γX1、
w3=γX3−βX1、
w6=δu5、
w1=w5−w6、
w4=w5+w6、
ここで、
x0=w1−w2、
x1=w4+w3、
x2=w0、
x3=w4−w3、
x4=w1+w2、
上式で、
Figure 2011507037
である。
さらに、復号方法および/またはデバイスは、逆変換を実行した後に入力値に対してウィンドウイング演算を実行することができ、ウィンドウイング演算は、非対称ウィンドウ関数を実装する。
一実装形態では、IMDCTは、5点逆離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
別の実装形態では、IMDCTは、5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
さらに別の実装形態では、IMDCTは、5点逆離散コサイン変換タイプIIおよび5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
一実装形態では、IMDCTは、5点逆離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装することができる。
様々な特徴、性質、および利点は、全体を通じて同様の参照符号が同様のものを指す図面とともに、以下に記載する詳細な説明を読めば明らかになろう。
MDCT分析フィルタバンクを含むことができるエンコーダの一例を示すブロック図。 どのように、より小さい変換によって変換を実装することができるかの一例を示すブロック図。 IMDCT合成フィルタバンクを含むことができるデコーダの一例を示すブロック図。 どのように、より小さい逆変換によって逆変換を実装することができるかの一例を示すブロック図。 5点DCT−II変換の因数分解の第1の例を示す流れ図。 5点DCT−II変換の因数分解の第2の例を示す流れ図。 5点DCT−II変換の因数分解の第3の例を示す流れ図。 5点DCT−II変換の因数分解の代替例を示す流れ図。 5点DCT−IV変換の因数分解の第1の例を示す流れ図。 どのように5点DCT−IV変換を実装することができるかの第2の例を示す流れ図。 どのようにDCT−IV変換をDCT−II変換にマッピングして、入力係数を出力係数に変換することができるかを示すブロック図。 5点DCT−II変換を使用して5点DCT−IV変換を実装して、入力係数を出力係数に変換することができることを示すブロック図。 5点DCT−II変換を使用して実装することができる図12の5点DCT−IV変換の因数分解の一例を示すブロック図。 どのように図13のDCT−IV変換のマッピングを図6のDCT−II変換と組み合わせることができるかを示すブロック図。 どのように図14のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。 どのように図15のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。 どのように図16のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。 どのように図17のDCT−IV変換をさらにモディファイして等価変換にすることができるかを示すブロック図。 Nサイズ変換が複数の5点変換によって表されるまで、どのようにNサイズ変換をより小さいN/2サイズ変換に再帰的に分割することができるかを示すブロック図。 10点DCT−IV変換を複数のより小さい5点DCT−II変換に再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図。 Nサイズ逆変換が複数の5点逆変換によって表されるまで、どのようにNサイズ逆変換をより小さいN/2サイズ逆変換に再帰的に分割することができるかを示すブロック図。 10点IDCT−IV逆変換を複数のより小さい5点IDCT−II逆変換に再帰的に分割する、逆変換デシメーションおよび分割の一例を示すブロック図。 同数の周波数係数を保ちながら、変換段に関連する遅延を10msに低減するために使用することができる非対称ウィンドウ形状を示す図。 変換値を計算するためのデバイスを示すブロック図。 5点コア変換に基づくMDCT変換を使用して信号を符号化するための方法の一例を示す図。 変換値を計算するためのデバイスを示すブロック図。 コアIDCT−II変換に基づくIMDCT変換を使用して信号を復号するための方法の一例を示す図。 10点DCT−IV変換を複数のより小さい5点DCT−II変換に再帰的に分割する、変換デシメーションおよび分割の代替例を示す図。 図28の変換の逆である10点IDCT−IV変換を示す図。 10点DCT−IV逆変換を複数のより小さい5点DCT−II変換および5点DCT−IVに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図。 図30の順変換に対する逆変換の一例を示すブロック図。 図8の順変換に対応する逆変換を示す図。
次に、図面を参照しながら様々な実施形態について説明するが、全体にわたって同様の要素を指すのに同様の参照符号を使用する。以下の記述では、説明の目的で、1つまたは複数の実施形態の完全な理解を与えるために多数の具体的な詳細を記載する。ただし、そのような(1つまたは複数の)実施形態は、これらの具体的な詳細なしに実施できることは明らかであろう。他の例では、1つまたは複数の実施形態の説明を円滑にするために、よく知られた構造およびデバイスはブロック図の形態で示す。
概観
1つの特徴は、(ある整数K>=1に対して、N=5*2^Kである)N点MDCT変換をより小さいサイズのN/2点DCT−IV、DST−IVおよび/またはDCT−II変換にマッピングすることによって、N点MDCT変換を実装することを提供する。一例では、スケーリングされた5点コア関数を最後の段で利用することによって、MDCTを2分の1に系統的にデシメートすることができる。1つの特徴は、サイズ5のDCT−II、DCT−IV、およびDST−IVコア変換を計算するためのいくつかの高速アルゴリズムを提供する。本明細書で請求する全体的な変換アーキテクチャは、N=5*2^Kである、サイズNの変換をサイズN/2の2つの変換に再帰的に分割し、本明細書で説明する高速の技法を使用することによって最終の(最小の)5点変換を実装する、一般的なデシメーションプロセスである。そのようなサイズの変換は、最近および新興の規格G.729.1、G.718、EVRC−WBなどのスピーチおよびオーディオコーディングの適用例のためのMDCTフィルタバンクの設計において発生する。
別の特徴は、MDCTを計算するための上記のアーキテクチャと、同数の周波数係数を保ちながら、変換段に関連する遅延を低減するための非対称ウィンドウとを組み合わせる、MDCTのモディファイドウィンドウイング段を使用することを提供する。
コーデック構造
図1は、MDCT分析フィルタバンクを含むことができるエンコーダの一例を示すブロック図である。エンコーダ102は入力オーディオ信号104を受信することができる。MDCT分析フィルタバンク106(すなわち、タイプIVの離散コサイン変換に基づくモディファイド離散コサイン変換)は、時間領域入力オーディオ信号104を複数のサブバンド信号に分解し、それらの信号を周波数領域に変換するように動作し、各サブバンド信号は、サブバンドごとに、ブロックごとに、変換係数に変換される。次いで、得られた信号は、量子化器108によって量子化され、エントロピーエンコーダ110によって符号化されて、デジタルオーディオ信号のビットストリーム112が生成される。一例によれば、MDCT分析フィルタバンク106は、ウィンドウイング関数114、(たとえば、時間領域から周波数領域への)変換116、および/またはスケーリング関数118によって実装することができる。ウィンドウイング関数114、変換116、および/またはスケーリング関数116を含むMDCT分析フィルタバンク106は、ハードウェア(たとえば、プロセッサ、回路、プログラマブル論理デバイスなどとして)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、および/またはそれらの組合せで実装することができる。
図2は、どのように、より小さい変換によって変換を実装することができるかの一例を示すブロック図である。この例では、図1の変換116は、複数の入力202を受信し、複数の出力204を生成することができる。これを達成するために、変換116は、同じサイズまたはより小さいサイズの1つまたは複数の変換によって表すことができる。たとえば、変換116は、複数のk点DCT−IV変換206aおよび206bによって実装することができる。今度は、各k点DCT−IV変換206aおよび206bは、1つまたは複数のn点DCT−II変換208a、208b、または210a、210bによって実装することができる。いくつかの実装形態では、DCT−IV変換の代わりに、離散サイン変換(DST)−IVを使用できることに留意されたい。より大きい変換116を複数のより小さい変換208に再帰的に分割することによって、より大きい変換116の実装が簡単になる。ただし、演算を最小限に抑える高速変換パフォーマンスを達成するためには、より小さい変換の効率的なアルゴリズムの実装が望ましい。一例では、変換116は、オーディオ信号を表す時間領域入力値x(0)...x(m)202を受信し、それらを周波数領域スペクトル係数X(0)...X(m)204に変換することができる。これらのより小さい変換のための様々な実装形態について以下で説明する。
図3は、IMDCT合成フィルタバンクを含むことができるデコーダの一例を示すブロック図である。デコーダ302はビットストリーム304を受信することができる。エントロピーデコーダ306はビットストリーム304を復号し、次いで、ビットストリーム304は、逆量子化器308によって逆量子化されて、周波数領域信号が生成される。IMDCT合成フィルタバンク310(すなわち、タイプIVの離散コサイン変換に基づく逆モディファイド離散コサイン変換)は、周波数領域信号304を変換して時間領域オーディオ信号312に戻すように動作する。IMDCT合成フィルタバンク310はMDCT分析フィルタバンク106の演算を逆算することができる。一例によれば、IMDCT合成フィルタバンク310は、スケーリング関数314、(たとえば、周波数領域から時間領域への)逆変換316、ならびにウィンドウイング+重なりおよび追加関数318によって実装することができる。スケーリング関数314、逆変換316、および/またはウィンドウイング関数318を含むIMDCT合成フィルタバンク310は、ハードウェア(たとえば、プロセッサ、回路、プログラマブル論理デバイスなどとして)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、および/またはそれらの組合せで実装することができる。
図4は、どのように、より小さい逆変換によって逆変換を実装することができるかの一例を示すブロック図である。この例では、図3の逆変換316は、複数の入力402を受信し、複数の出力404を生成することができる。これを達成するために、逆変換316は、同じサイズまたはより小さいサイズの1つまたは複数の変換によって表すことができる。たとえば、逆変換316は、複数のk点IDCT−IV逆変換406aおよび406bによって実装することができる。今度は、各k点IDCT−IV逆変換406aおよび406bは、1つまたは複数のn点IDCT−II変換408a、408b、または410a、410bによって実装することができる。いくつかの実装形態では、IDCT−IV変換の代わりに、逆離散サイン変換(IDST)−IVを使用できることに留意されたい。一例では、変換316は、オーディオ信号を表す周波数領域スペクトル係数X(0)...X(m)402を受信し、それらを時間領域に再構成された出力値x(0)...x(m)404に変換することができる。ただし、演算を最小限に抑える高速の変換パフォーマンスを達成するためには、より小さい逆変換の効率的なアルゴリズムの実装が望ましい。
MDCT102およびIMDCT302変換への入力は、複数のデータポイントを有するフレームまたはブロックとして処理できることに留意されたい。したがって、MDCTベースのボコーダ(たとえば、G.722.1やG.722.1Cなど)が、320よりも小さいフレーム長を有するデータブロックをサポートするためには、デシメートされたサイズの変換が必要になる。160、80、40などのフレーム長を有するブロックでは、これらのサイズがすべて5の倍数になることがわかる。したがって、(デシメーション技法による)最後の可約でないブロックサイズは、サイズ5の変換を使用することができる。計算複雑性の見地から、DCT−IV変換またはFFF変換のいずれかよりも、5点DCT−II変換を設計するほうが、はるかに効率的であることがわかる。
MDCT変換の定義
行列表記法を使用して、MDCT変換を行列Mによって表すことができる。
Figure 2011507037
上式で、
Figure 2011507037
である。
したがって、
Figure 2011507037
となり、上式で、xは、入力サンプルの行列
Figure 2011507037
を表し、Xは、得られたMDCTの係数の行列
Figure 2011507037
を表し、
Figure 2011507037
は、再構成された出力の行列
Figure 2011507037
を表す。
MDCT変換を実装するために、MDCT変換をN/2点コア変換関数にマッピングすることができる。たとえば、図1の変換116を、1つまたは複数のN/2点DCT−IV変換として実装することができる。
DCT−IV変換は、次のように定義することができる。
Figure 2011507037
一方、IDCT−IV変換は、次のように定義することができる。
Figure 2011507037
MDCT変換は、次のようにN/2点DCT−IV変換にマッピングすることができ、
Figure 2011507037
IMDCT変換は、次のようにN/2点IDCT−IV変換にマッピングすることができ、
Figure 2011507037
上式で、
Figure 2011507037
上式で、IN/4は、N/4×N/4の単位行列であり、JN/4は、N/4×N/4の順序反転行列であり、行列Sは次のように定義され、
Figure 2011507037
Figure 2011507037
は、次のように定義することができるN/2×N/2のDCT−IV行列である。
Figure 2011507037
DCT−IV行列の対称性およびインボリュートの性質を使用することによって、それをDCT−II変換にマッピングすることができる。DCT−II変換は、次のように定義することができる。
Figure 2011507037
同様に、IDCT−II変換は、次のように定義することができる。
Figure 2011507037
上式で、k=0の場合は
Figure 2011507037
であり、他の場合は1である。
DCT−IV、DST−IV、およびDCT−II変換の定義
1つの特徴によれば、1つまたは複数のDCT−II(およびIDCT−II)変換としてそれぞれ実装することができる1つまたは複数のDCT−IVまたはDST−IV(およびIDCT−IVまたはDST−IV)によって、変換116(図1)および逆変換316(図3)をデシメートし、実装することができる。
DCT−IVおよびIDCT−IVは、対応して、次のように定義することができる。
Figure 2011507037
Figure 2011507037
DST−IVおよびIDST−IVは、対応して、次のように定義することができる。
Figure 2011507037
Figure 2011507037
同様に、DCT−IIおよびその逆変換は、対応して、次のように定義することができる
Figure 2011507037
Figure 2011507037
上式で、k=0の場合はλ(k)=1/2であり、他の場合は1である。
式1〜式6において、n=0、1、...N−1に対する{x(n)}は、サンプルの入力シーケンスを表し、Nはフレーム長を示し、X(k)は得られたMDCTの係数である。
N=5の場合、DCT−IV変換のための行列C_IV、DST−IV変換のための行列S_IV、およびDCT−II変換のための行列C_IIは、対応して、次のように表すことができる。
Figure 2011507037
Figure 2011507037
Figure 2011507037
DCT−IIの表現を簡単にするために、因数
Figure 2011507037
を無視することができ、すべての係数は、
Figure 2011507037
で乗じ、同時に以下の表記法を使用することができる。
Figure 2011507037
それによって、以下が生成される。
Figure 2011507037
ここで、a+b=1.25であり、c+d=0.75であることに留意されたい。さらに、c−d=0.5であることにも留意されたい。これは、関連するコサイン値に関する代数式から得られる。
Figure 2011507037
同様に、DCT−IVの場合、すべての係数は、
Figure 2011507037
で乗じ、以下の表記法を使用する。
Figure 2011507037
以下が生成される。
Figure 2011507037
+i=2であり、同様に、g+h=2であることに留意されたい。さらに、
Figure 2011507037
であり、
Figure 2011507037
であることに注意されたい。これは、関連するコサイン値に関する代数式から得られる。
Figure 2011507037
最後に、DST−IVの場合、すべての係数は、
Figure 2011507037
で乗じ、以下の表記法を使用することができる。
Figure 2011507037
以下が生成される。
Figure 2011507037
DCT−IVの場合と同様に、ここでもf+i=2であり、同様に、g+h=2であることに留意されたい。
5点DCT−IIを計算するための高速アルゴリズムの導出
処理効率を達成するためには、より大きい変換によって使用される最小サイズ変換が高速で効率的であるべきである。これは、これらの小さいサイズの変換によって実行される演算(たとえば、乗算、加算、およびシフト)を最小限に抑えることによって達成される。したがって、最小サイズ変換のための様々な因数分解を実装して、これを達成することができる。どの変換の因数分解を実装するかの選択は、使用されているプロセッサの能力を含む様々なファクタに依存することができる。
効率的なDCT−II変換は、様々な方法で実装することができる。たとえば、変換への入力が入力ベクトルxによって与えられると仮定すると、以下のようになり、
Figure 2011507037
ベクトルxと、スケーリングされたDCT−II行列(行列Dに記載の
Figure 2011507037
によってスケーリングされた行列)との積が、DCT−II行列Xを生成する。
Figure 2011507037
上式で、
Figure 2011507037
である。
この行列Xにおける奇数の係数X1およびX3の計算を考察する。
Figure 2011507037
これは、x0−x4とx1−x3による単純なバタフライとして係数X1とX3の両方を計算できることを示唆している。次に、この行列Xにおける偶数の係数X2およびX4の計算を考察する。
Figure 2011507037
ここでも、やはり、x0+x4とx1+x3による単純なバタフライとして計算を編成できるように見える。
実際の変換演算は、加算、乗算および/またはシフトの全体的な数を低減するために内部変換演算を並べ替えることによって、効率的に実装することができる。したがって、変換の異なる因数分解によって異なる中間結果が達成され、そのような中間結果は、対応する各変換を特徴付ける。
図5は、5点DCT−II変換502の因数分解の第1の例を示す流れ図である。この例では、以下の中間結果が計算されるように、5点DCT II変換502を表すために上記の行列Xの奇数の係数X1およびX3と偶数の係数X2およびX4との間の関係を利用する。
w0=x0−x4、
w4=x0+x4、
w1=x1−x3、
w3=x1+x3、
および、
u2=x2+w3+w4、
u3=−d*w3+c*w4、
u4=d*w4+c*w3、
そして、以下の出力を得る。
X0=u2、
X1=b*w1+a*w0、
X2=u3−x0、
X3=a*w1−b*w0、
X4=u4+x0、
上式で、入力係数504(x0,x1,x2,x3,x4)は、出力係数506(X0,X1,X2,X3,およびX4)に変換される。図5のこの方式の複雑さは、12回加算および8回乗算にある。特に、第1のバタフライ508を実装して出力係数X1およびX3を得て、第2のバタフライ510を実装して出力係数X2およびX4を得る。この変換502における最長経路は、3回演算(バタフライが各経路につきわずか1つのMACを必要とすると仮定すると、加算および/または乗算)のみである。「バタフライ」によって実行される演算は、しばしば平面回転またはギブンス回転と呼ばれる。
図6は、5点DCT−II変換602の因数分解の第2の例を示す流れ図である。この変換602は、入力係数504を出力係数506に変換するための図5の変換502から導出することができる。この実装形態では、第2のバタフライ510(図5)への入力は、値z4=x0+x4およびz2=x1+x3として表され、X0に向かう順方向経路に沿って追加することができる。
したがって、中間結果は次のように計算される。
w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
u2=z2+z4。
さらに、c−d=0.5であることを使用して、次のように出力X0、X2、およびX4を表す。
X0=z4+z2+x2、
X2=c*z4−d*z2−x2=c*(z4+z2)+(c−d)*z2−x2=c*(z4+z2)+0.5*z2−x2、
X4=d*z4−c*z2+x2=−c*(z4+z2)−(c−d)*z4+x2=−c*(z4+z2)−0.5*z4+x2。
したがって、5点DCT II変換602は、以下によって特徴付けられる。
X0=u2+x2、
X1=b*w1+a*w0、
X2=c*u2+0.5*z2−x2、
X3=a*w1−b*w0、
X4==−c*u2−0.5*z4+x2。
この変換602の複雑さは、12回加算、5回乗算、および2回シフトにある。この変換における1/2因数は2進分数であり、したがって、そのような1/2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。ここでの最長経路長は4回演算である。
図7は、5点DCT−II変換702の因数分解の第3の例を示す流れ図である。この変換702は、入力係数504を出力係数506に変換するための図6の変換602から導出することができる。係数X2およびX4を求める式は、次のように表すことができる。
X2=c*(z4+z2)+0.5*z2−x2=c’*(z4+z2)+d’*(z4−z2)−x2、
X4=−c*(z4+z2)−0.5*z4+x2=−c’*(z4+z2)+d’*(z4−z2)+x2、
上式で、値c’およびd’は以下のように選択される。
Figure 2011507037
式7は、以下のように並べ替えることができる。
z4*c+z2*(c+0.5)=z4*(c’+d’)+z2*(c’−d’)。
したがって、以下を示すことができる。
c=c’+d’、および、
c+0.5=c’−d’。
これらの式の両方を減算することによって、以下を示すことができる。
0.5=−2d’、または、
d’=−0.25、および、
c’=c−d’=c+0.25。
したがって、出力係数X2およびX4は、次のように表すことができる。
X2=c’*(z4+z2)−0.25*(z4−z2)−x2=0.25*(z2−z4)+(c’*(z4+z2)−x2)、
X4=−c’*(z4+z2)−0.25*(z4−z2)+x2=0.25*(z2−z4)−(c’*(z4+z2)−x2)、
この結果、図7の変換702がもたらされる。
したがって、中間結果は次のように計算される。
w0=x0−x4、
w1=x1−x3、
z2=x1+x3、
z4=x0+x4、
t2=z2+z4、
t4=z2−z4、
c’=c+0.25。
したがって、5点DCT II変換702は、以下によって特徴付けられる。
X0=t2+x2、
X1=b*w1+a*w0、
X2=c’*t2−0.25*t4−x2=0.25*t4+c’*t2−x2)、
X3=a*w1−b*w0、
X4=−c’*t2−0.25*t4+x2=0.25*t4−(c’*t2−x2)。
この変換702は、12回加算、5回乗算、および1回シフトで実装することができる。この変換702における1/4因数は2進分数であり、したがって、そのような1/4で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。ここでの最長経路長も4回演算である。
図8は、5点DCT−II変換802の因数分解の代替例を示す流れ図である。この変換における因数αは2進分数であり、したがって、そのようなαで乗じる乗算は、2値シフト演算にすぎないことに留意されたい。この5点変換は、平面回転および5回乗算を使用するか、または、平面回転の因数分解による4回乗算を使用するか、またはリフティングステップを使用することによって実装することができる。入力x504の5点シーケンスでは、4回非自明乗算、12回加算、および2回シフトまたは5回乗算、12回加算、および1回シフトを使用して、5点DCT−II変換802に関する出力X506を生成することができる。
この例では、以下が乗数である。
Figure 2011507037
DCT−II変換802は、以下のようになる中間結果を含むことができる。
w1=x0+x4、
w2=x4−x0、
w3=x3−x1、
w4=x3+x1、
w5=w1+w4、
w6=w4−w1、
u1=x2−αw5、
u2=x2+w5、
u3=βw2+γw3、
u4=βw3−γw2、
u5=δw6。
したがって、DCT−II変換802に関する出力X0、X1、X2、X3、およびX4は、次のように表すことができる。
X0=u2、
X1=u4、
X2=u4−u1、
X3=u3、
X4=u1+u5。
図5〜図9に示す変換(および、本明細書での他の変換)に関する中間結果は、その変換の流れ図中で異なる点が選択された場合、変化することがあることに留意されたい。したがって、これらの変換の流れ図からは、(たとえば、流れ図中の異なる点において)より大きいもしくはより小さい中間結果および/または異なる結果が企図され、理解される。
逆変換の導出
図4〜図20に示す変換は、それらの図に示す順変換を逆にするように反転することができる。図32は、図8の順変換に対応する逆変換(5点IDCT−II逆変換)を示している。逆変換3202は、入力3204(スペクトル係数)を出力(時間領域値)3206に変換し、以下の中間結果によって特徴付けることができる。
u1=X4−X2、
u5=X4+X2、
w0=X0+u1、
w5=X0−αu1、
w2=βX3−γX1
w3=γX3−βX1、フローグラフと比較したソフトウェアの否定因数を使用する。
w6=δu5、
w1=w5−w6、
w4=w5+w6、
上式で、
Figure 2011507037
である。
したがって、IDCT−II変換3202に関する出力3206であるX0、X1、X2、X3、およびX4は、次のように計算することができる。
x0=w1−w2、
x1=w4+w3、
x2=w0、
x3=w4−w3、
x4=w1+w2。
5点DCT−IVおよびDST−IVを計算するための高速アルゴリズムの導出
効率的なDCT−IV変換および/またはDST−IVは、様々な方法で実装することができる。たとえば、変換への入力がベクトルxによって与えられると仮定すると、以下のようになり、
Figure 2011507037
ベクトルxと、スケーリングされたDCT−IV行列(行列Eに記載の
Figure 2011507037
によってスケーリングされた行列)との積が、DCT−IV行列Xを生成する。
Figure 2011507037
図9は、5点DCT−IV変換902の因数分解の第1の例を示す流れ図である。変換902は、入力係数x904を出力係数X906に変換(convert)する。変換902は、以下の単純な項の再配列によって得られる。
X0=f*x0+i*x4+g*x1+h*x3+x2、
X1=g*x0−h*x4+i*x1−f*x3−x2、
X2=−x1+x3−x2+x0+x4、
X3=h*x0−g*x4−f*x1+i*x3+x2、
X4=i*x0+f*x4−h*x1−g*x3+x2、
上式で、
Figure 2011507037
である。
以下の中間結果を使用して、変換902を計算できることに留意されたい。
k1=g*x1+h*x3、
k2=h*x1+g*x3、
k3=f*x0+i*x4、
k4=i*x0+f*x4、
k5=i*x1−f*x3、
k6=−f*x1+i*x3、
k7=g*x0−h*x4、
k8=h*x0−g*x4、
j1=x0+x4、
j2=x3−x1。
したがって、変換902は次のように表すことができる。
X0=k3+k1+x2、
X1=k7+k5−x2、
X2=j1+j2−x2、
X3=h*x0−g*x4−f*x1+i*x3+x2、
X4=k4−k2+x2。
したがって、図9の変換902に示すように、出力係数X0、X1、X2、X3、およびX4は、4つのバタフライ908a、908b、908c、および908dを使用することによって計算することができる。この実装形態の複雑さは、20回加算および16回乗算にある。この実装形態における最長経路長は3回演算のみである。
図10は、どのように5点DCT−IV変換1002を実装することができるかの第2の例を示す流れ図である。図9の変換902における各バタフライが実行すべき3回乗算のみを必要とするように、各バタフライをモディファイすることができる。たとえば、出力係数X0およびX4に関する成分演算は、次のように書くことができる。
f*x0+i*x4=(x0+x4)*f+x4*(i−f)、
i*x0+f*x4=(x0+x4)*f+x0*(i−f)、
g*x1+h*x3=(x1−x3)*g+x3*(h+g)、
−h*x1−g*x3=(x1−x3)*g−x1*(g+h)。
同様に、出力係数X1およびX3に関する成分演算は、次のように書くことができる。
g*x0−h*x4=(x3−x1)*f+x3*(i−f)、
i*x1−f*x3=(x0+x4)*g+x0*(h+g)、
h*x0−g*x4=(x3−x1)*f−x1*(i−f)、
−f*x1+i*x3=(x0+x4)*g+x4*(h+g)。
そのような分解を使用することによって、変換1002に関する出力係数は、以下によって特徴付けることができる。
X0=(x0+x4)*f+x4*(i−f)+(x1−x3)*g+x3*(h+g)+x2、
X1=(x3−x1)*f+x3*(i−f)+(x0+x4)*g+x0*(h+g)−x2
X2=−x1+x3−x2+x0+x4、
X3=(x3−x1)*f−x1*(i−f)+(x0+x4)*g+x4*(h+g)+x2、
X4=(x0+x4)*f+x0*(i−f)+(x1−x3)*g−x1*(g+h)+x2。
以下の中間結果を使用して、変換1002を計算できることに留意されたい。
q1=x0+x4、
q2=x3−x1、
p1=(x1−x3)*g−x1*(g+h)=q2*g−x1*(g+h)、
p2=(x1−x3)*g+x3*(h+g)=q2*g+x3*(g+h)、
p3=(x0+x4)*f+x0*(i−f)=q1*f+x0*(i−f)、
p4=(x0+x4)*f+x4*(i−f)=q1*f+x4*(i−f)、
p5=(x3−x1)*f+x3*(i−f)=q2*f+x3*(i−f)、
p6=(x3−x1)*f−x1*(i−f)=q2*f−x1*(i−f)、
p7=(x0+x4)*g+x0*(h+g)=q1*g+x0*(h+g)、
p8=(x0+x4)*g+x4*(h+g)=q1*g+x4*(h+g)。
したがって、変換902は次のように表すことができる。
X0=p2+p4+x2、
X1=p5+p7−x2、
X2=q1+q2−x2、
X3=p6+p8+x2、
X4=p1+p3+x2。
ここで、この変換1002の複雑さは20回加算および12回乗算にある。ここでの最長経路の長さは4回演算である。
代替手法では、DCT−IV変換をDCT−II変換にマッピングすることによって、DCT−IV変換を導出することができる。
たとえば、図11は、どのようにDCT−IV変換1102をDCT−II変換1104にマッピングして、入力係数1106を出力係数1108に変換することができるかを示すブロック図である。
図12は、5点DCT−II変換を使用して5点DCT−IV変換1202を実装して、入力係数1206を出力係数1208に変換することができることを示すブロック図である。これは、図11に示す変換マッピングの特定の場合である。この例では、角度に関する表記法を次のように表すことができる。
Figure 2011507037
図13は、5点DCT−II変換を使用して実装することができる図12の5点DCT−IV変換の因数分解の一例を示すブロック図である。この例では、図12の5点DCT−IV変換を2で乗じ、
Figure 2011507037
因数を周囲に移動している。このマッピングは、図12のマッピングと等価である。
図14は、どのように図13のDCT−IV変換1202のマッピングを図6のDCT−II変換602と組み合わせることができるかを示すブロック図である。すなわち、DCT変換1402は、図6のDCT−II変換602として実装することができる、図13の変換1202の組合せとすることができる。したがって、変換1402に関する出力係数は、以下によって特徴付けることができる。
X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[2c*(f*x0+i*x4+g*x1+h*x3)+(g*x1+h*x3)−2*x2]−[X1]、
X3=[2b*(f*x0−i*x4)−2a*(g*x1−h*x3)]−[X2]、
X4=[−2c*(f*x0+i*x4+g*x1+h*x3)−(f*x0+i*x4)+2*x2]−[X3]、
上式で、
Figure 2011507037
である。
中間結果は次のように計算できることに留意されたい。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=2c*v2+z2−2*x2、
y4=−2c*v2−z4+2*x2。
したがって、出力は次のように表すことができる。
X0=v2+x2、
X1=v1−2*X0、
X2=y2−X1、
X3=v3−X2、
X4=y4−X3。
このDCT−IV変換1402は、16回加算、9回乗算、および2回シフトのみを使用する。この変換における2因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。
図15は、どのように図14のDCT−IV変換1402をさらにモディファイして等価変換1502にすることができるかを示すブロック図である。この例では、変換1502における最後のカスケード演算により、追加の簡略化が可能になる。したがって、変換1502に関する出力係数は、以下によって特徴付けることができる。
X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[(2c+2)*(f*x0+i*x4+g*x1+h*x3)]+(g*x1+h*x3)−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[2b*(f*x0−i*x4)−2a*(g*x1−h*x3)]−[X2]、
X4=[−2c*(f*x0+i*x4+g*x1+h*x3)−(f*x0+i*x4)+2*x2]−[X3]。
中間結果は次のように計算できることに留意されたい。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
y2=(2c+2)*v2+z2、
y4=2c*v2+z4。
したがって、出力は次のように表すことができる。
X0=v2+x2、
X1=v1−2*X0、
X2=y2−v1、
X3=v3−X2、
X4=−y4+2*x2−X3。
したがって、このDCT−IV変換1502は、15回加算、10回乗算、および2回シフトのみを使用する。この変換における「2」因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。この実装形態における最長経路長は5回演算のみである。
図16は、どのように図15のDCT−IV変換1502をさらにモディファイして等価変換1602にすることができるかを示すブロック図である。変換1602に関する出力係数は、以下によって特徴付けることができる。
X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[(2c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[2b*(f*x0−i*x4)−2a*(g*x1−h*x3)]−[X2]、
X4=[−(2c+2)*(f*x0+i*x4)−2c*(g*x1+h*x3)+2*x2]−[X3]。
中間結果は次のように計算できることに留意されたい。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
v1=2b*w1+2a*w0、
v2=z2+z4、
v3=2b*w0−2a*w1、
d2=(2c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2。
したがって、出力は次のように表すことができる。
X0=z2+z4+x2、
X1=v1−2*X0、
X2=d2−v1、
X3=v3−X2、
X4=−d4+2*x2−X3。
したがって、このDCT−IV変換1602は、15回加算、11回乗算、および2回シフトのみを使用する。この変換における2因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。この実装形態における最長経路長は5回演算のみである。
図17は、どのように図16のDCT−IV変換1602をさらにモディファイして等価変換1702にすることができるかを示すブロック図である。変換1702に関する出力係数は、以下によって特徴付けることができる。
X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[(2b+2a)*(f*x0−i*x4)−(2a−2b)*(g*x1−h*x3)]−[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]、
X4=[−(2c+2)*(f*x0+i*x4)−2c*(g*x1+h*x3)+2*x2]−[X3]。
中間結果は次のように計算できることに留意されたい。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
d2=2(c+2)*z2+(2c+2)*z4、
d4=(2c+2)*z4+2c*z2。
したがって、出力は次のように表すことができる。
X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−d2、
X4=−d4+2*x2−X3。
したがって、このDCT−IV変換1702は、15回加算、11回乗算、および2回シフトのみを使用する。この変換における「2」因数は2進分数であり、したがって、そのような2で乗じる「乗算」は、2値シフト演算(すなわち、シフト)にすぎないことに留意されたい。この実装形態における最長経路長は5回演算のみである。
図18は、どのように図17のDCT−IV変換1702をさらにモディファイして等価変換1802にすることができるかを示すブロック図である。この例では、最終段における再帰的加算の除去により、はるかに短くなった経路長および改善された数値安定度が達成される。変換1802に関する出力係数は、以下によって特徴付けることができる。
X0=(f*x0+i*x4)+(h*x3+g*x1)+x2、
X1=[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]−[2*X0]、
X2=[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]−[2a*(f*x0−i*x4)+2b*(g*x1−h*x3)]、
X3=[(2b+2a)*(f*x0−i*x4)−(2a−2b)*(g*x1−h*x3)]−[2(c+2)*(g*x1+h*x3)+(2c+2)*(f*x0+i*x4)]、
X4=[−4(c+1)*(f*x0+i*x4)−4(c+1)*(g*x1+h*x3)+2*x2]−[(2b+2a)*(f*x0−i*x4)−(2a−2b)*(g*x1−h*x3)]。
中間結果は次のように計算できることに留意されたい。
w0=f*x0−i*x4、
w1=g*x1−h*x3、
z2=g*x1+h*x3、
z4=f*x0+i*x4、
z1=2a*w0+2b*w1
z3=(2b+2a)*w0−(2a−2b)*w1、
r2=(2c+2)*z2+(2c+2)*z4、
r4=4(c+1)*z2+4(c+1)*z4。
したがって、出力は次のように表すことができる。
X0=z2+z4+x2、
X1=z1−2*X0、
X2=d2−z1、
X3=z3−r2、
X4=−r4+2*x2−z3。
この変換1802は、15回加算、12回乗算、および2回シフトのみを使用する。「2」で乗じる乗算は、シフトであると考えられることに留意されたい。この実装形態における最長経路長は5回演算のみである。
図5〜図18に示すDCTおよびDST変換は、それらの図におけるDCTおよびDST変換演算を元に戻すまたは逆算するためのIDCTおよびIDST変換として可逆的とすることができることに留意されたい。
サイズN=5*2の変換の計算
一実装形態によれば、N=5*2KであるNサイズ変換は、DCT−II、DCT−IV、DST−IV、または同様の核に基づくことができる、一連のより小さいN/2サイズ変換に再帰的に分割することができ、最後の5点カスケードは、5点変換を計算するための記載の高速アルゴリズムのうちの1つを使用することによって実装する。
図19は、Nサイズ変換が複数の5点変換によって表されるまで、どのようにNサイズ変換をより小さいN/2サイズ変換に再帰的に分割することができるかを示すブロック図である。たとえば、Nサイズ(点)変換1902は、N個の入力係数1910を受信し、それらをN個の出力係数1912に変換する。Nサイズ変換1902は、2つのN/2サイズ変換1904aおよび1904bにデシメートすることができる。同様に、各N/2サイズ変換1904aおよび1904bは、最小の変換が5点変換1906a、1906b、1908a、および1908bになるまで、複数のより小さい変換にさらにデシメートすることができる。様々な実装形態では、5点変換1906a、1906b、1908a、および1908bは、図5〜図18に示す5点変換のうちのいずれかによって実装することができる。
図20は、10点DCT−IV変換を複数のより小さい5点DCT−II変換2004aおよび2004bに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。この例では、10個の入力係数2006が、1対のより小さい5点変換2004aおよび2004bによって変換され、10個の出力係数2008が生成される。
図28は、10点DCT−IV変換を複数のより小さい5点DCT−II変換2804aおよび2804bに再帰的に分割する、変換デシメーションおよび分割の代替例を示す図である。この例では、10個の入力係数2806が、1対のより小さい5点変換2804aおよび2804bによって変換され、10個の出力係数2808が生成される。図20と比較して、DCT−IVのためのこの代替デシメーションプロセスは、より多くの演算を必要とするが、数値的によりロバストである。すなわち、方式図20において変換2004bの後に減算のシーケンスを実行することは、中間変数の大きさを、Nが変換のサイズであるN/2だけ潜在的に増大させることがある。図28の代替方式は、そのような実行を有さず、(正規直交演算である)平面回転のみを使用して、変換を計算する。DCT−IIのための分割プロシージャも、そのような性質を有する。また、分割プロセスにおいて、最終のアルゴリズムが変換タイプを再帰的に交互にすることができることに留意されたい。すなわち、分割プロセスは、DCT−IIをDCT−IIおよびDCT−IVまたは半分のサイズに分割することができ、次いで、DCT−IVを2つのDCT−IIに分割し、一方、複数のDCT−IIをより小さいDCT−IIおよびDCT−IVにさらに分割する、などである。
図29は、図28の変換の逆である10点IDCT−IV変換を示している。
図21は、Nサイズ逆変換が複数の5点逆変換によって表されるまで、どのようにNサイズ逆変換をより小さいN/2サイズ逆変換に再帰的に分割することができるかを示すブロック図である。たとえば、Nサイズ(点)逆変換2102は、N個の入力係数2110を受信し、それらをN個の出力係数2112に変換する。Nサイズ逆変換2102は、2つのN/2サイズ逆変換2104aおよび2104bにデシメートすることができる。同様に、各N/2サイズ逆変換2104aおよび2104bは、最小の逆変換が5点逆変換2106a、2106b、2108a、および2108bになるまで、複数のより小さい逆変換にさらにデシメートすることができる。様々な実装形態では、5点逆変換2106a、2106b、2108a、および2108bは、図5〜図18に示す変換に対応するいずれかの5点逆変換によって実装することができる。
図22は、10点IDCT−IV逆変換2202を複数のより小さい5点IDCT−II逆変換2204aおよび2204bに再帰的に分割する、逆変換デシメーションおよび分割の一例を示すブロック図である。この例では、10個の入力係数2206が、1対のより小さい5点逆変換2204aおよび2204bによって変換され、10個の出力係数2208が生成される。
図30は、10点DCT−IV逆変換を複数のより小さい5点DCT−II変換および5点DCT−IVに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。
図30は、10点DCT−IV逆変換を複数のより小さい5点DCT−II変換および5点DCT−IVに再帰的に分割する、変換デシメーションおよび分割の一例を示すブロック図である。
図31は、図30の順変換に対する逆変換の一例を示すブロック図である。
非対称ウィンドウイング段をもつMDCTフィルタバンク
別の特徴によれば、MDCTフィルタバンクの一部として非対称ウィンドウイング段を実装することができる。適用例によっては、MDCTフィルタバンクは、複数の層を有するスケーラブルなスピーチコーデックで実装することができ、いくつかのそのような層は、MDCTを使用して、前の層からの誤差信号を変換することができる。40ミリ秒ウィンドウイング段を用いた重み付き誤差信号werr_sp(k)のMDCTは、以下によって与えられる。
Figure 2011507037
図23は、同数の周波数係数を保ちながら、変換段に関連する遅延を10msに低減するために使用することができる非対称ウィンドウ形状を示している。そのような非対称ウィンドウ関数において最初の80の因数が0になることにより、遅延の低減が可能になる。したがって、それらのサンプルにアクセスする必要はない。
従来のMDCTウィンドウとは反対に、このウィンドウ2302は対称的でなく、したがって、ウィンドウの第2のハーフは第1のハーフの時間反転バージョンとは異なる。分析非対称ウィンドウ形状は、以下の式によって与えられる。
Figure 2011507037
上式で、
Figure 2011507037
および、D(n)は以下によって定義され、
Figure 2011507037
上式で、M=320はMDCT周波数成分の数を示し、M=M/4は後続のゼロの量である。
MDCTのDCT−IVへのマッピングについての行列の説明
MDCTの係数werr_sp(k)の計算を行うには、まず、ウィンドウおよび正規化因数
Figure 2011507037
を入力信号werr(n)に適用し、次いで、M×2M行列Tによる積を計算し、
Figure 2011507037
以下においてその分解を使用する。
Figure 2011507037
上式で、
Figure 2011507037
は、DCT−IV変換のM×M行列であり、
Figure 2011507037
上式で、IN/2およびJN/2は、対応して、N/2×N/2の単位行列および順序反転行列を示す。
DCT−IVの計算
サイズM=5*2(k=1、...、6)のDCT−IVの計算は、DCT−IVを2分の1サイズのDCT−II変換に分割することによって行われる。
Figure 2011507037
上式で、
は、再配列を生成する置換行列であり、
Figure 2011507037
は対角交代符号行列であり、
Figure 2011507037
はギブンス回転行列であり、
Figure 2011507037
Figure 2011507037
は、残りのDCT−II変換の行列を示す。
Figure 2011507037
サイズM=10のDCT−IV変換を、2分の1(M=5)のDCT−II変換に分割する、そのようなプロセスの例示的な実装形態を図20に示す。
サイズM=5*2(k=1、...、5)のDCT−II変換の計算も、DCT−II変換をより小さい変換に分割することによって行うことができる。
Figure 2011507037
サイズM=10のDCT−II変換を、より小さい変換(M=5)に分割する、そのようなプロセスの例示的な実装形態を図30に示す。
5点変換のみが残るまで、上記のプロセスを再帰的に繰り返すことができる。残りの5点変換は、以下によって効率的に実装することができる。
DCT−IIによって5点DCT−IVの計算を次のように行う。
Figure 2011507037
最後に、入力ベクトルx=[x0,x1,x2,x3,x4]に対して、5点DCT−IIの計算
Figure 2011507037
は次のように行われる。
DCT−II変換802は、以下のようになる中間結果を含むことができる。
a0=x0+x4、
a4=x4−x0、
a3=x3−x1、
a1=x3+x1、
b0=a0+a1、
b1=δ(a0−a1)、
b2=x2−αb0、
y0=b0+x2、
y1=γa3−βa4、
y2=b1−b2、
y3=βa3+γa4、
上式で、
Figure 2011507037
この変換に関するフローグラフの一例を図8に示す。
MDCT変換を使用した符号化の例
図24は、変換値を計算するためのデバイスを示すブロック図である。デバイス2402は、入力モジュール2406、ウィンドウモジュール2410、および/または変換モジュール2414を含むことができる。入力モジュール2406は、オーディオ信号2404を受信し、そのオーディオ信号を表す時間領域入力値2408を与えるように適合することができる。ウィンドウモジュール2410は、図23に示すような非対称ウィンドウイング関数を生成することができる。
変換モジュール2414は、たとえば、モディファイド離散コサイン変換(MDCT)を使用して、ウィンドウイングされた(windowed)入力値2412をスペクトル係数2416に変換することができる。MDCTは、各々の寸法がMDCTよりも小さい、離散コサイン変換タイプIV(DCT−IV)、離散コサイン変換タイプII(DCT−II)、またはDCT−IVとDCT−IIとの両方のうちの少なくとも1つに再帰的に分割することができる。一例では、DCT−IIは、異なるサイズのMDCTを実装する5点変換とすることができる。MDCTは、同じコアDCT−IIを使用して、320、160、80、40点変換のうちの少なくとも2つを実装することができる。デバイス2402の構成要素は、ハードウェア、ソフトウェアおよび/またはそれらの組合せとして実装することができる。たとえば、デバイス2402は、その構成要素またはモジュールの機能を実装するプロセッサおよび/または回路とすることができる。
図25は、5点コア変換に基づくMDCT変換を使用して信号を符号化するための方法の一例を示している。2502において、オーディオ信号を表す時間領域入力値を受信することができる。たとえば、アナログオーディオ信号(たとえば、ボイス信号、ミュージック、ビデオなど)をサンプリングして、入力値を得ることができる。一例では、2504において、非対称ウィンドウ関数を入力値に適用するモディファイドウィンドウイング関数を生成することができる。次いで、複数の5点変換に再帰的に分割されるモディファイド離散コサイン変換(MDCT)を使用して、(ウィンドウイングされた)入力値をスペクトル係数に変換することができる。たとえば、図5〜図22に示す5点変換のうちのいずれかを使用することができる。
IMDCT変換を使用した復号の例
図26は、変換値を計算するためのデバイスを示すブロック図である。デバイス2602は、入力モジュール2606、逆変換モジュール2608、および/またはウィンドウモジュール2612を含むことができる。逆変換モジュール2608は、スペクトル係数2604を出力値2610に変換するように適合することができる。たとえば、逆変換モジュールは、各々の寸法が逆モディファイド離散コサイン変換(IMDCT)よりも小さい、逆離散コサイン変換タイプIV(IDCT−IV)、逆離散コサイン変換タイプII(IDCT−II)、またはIDCT−IVとIDCT−IIとの両方のうちの少なくとも1つに再帰的に分割されるIMDCTを使用して、スペクトル係数を時間領域出力値2610に変換することができる。
ウィンドウモジュール2612は、出力値2610に対して非対称ウィンドウ関数を実装するモディファイドウィンドウイング関数を生成し、ウィンドウイングされた(windowed)出力値2614を生成することができる。デバイス2602の構成要素は、ハードウェア、ソフトウェアおよび/またはそれらの組合せとして実装することができる。たとえば、デバイス2602は、その構成要素またはモジュールの機能を実装するプロセッサおよび/または回路とすることができる。
図27は、コアIDCT−II変換に基づくIMDCT変換を使用して信号を復号するための方法の一例を示している。2702において、オーディオ信号を表すスペクトル係数を受信するまたは得る。2704において、複数の5点逆変換に再帰的に分割される逆モディファイド離散コサイン変換(IMDCT)を使用して、スペクトル係数を時間領域出力値に変換することができる。複数の5点逆変換の各々は、同じコア変換を使用して実装することができる。IMDCTは、同じコア変換を使用して、320、160、80、40点逆変換のうちの少なくとも2つを実装する。様々な実装形態では、コア変換は、図5〜図22における5点変換のうちのいずれか1つとすることができる。さらに、2706において、非対称ウィンドウイング関数を変換されたスペクトル係数に適用するモディファイドウィンドウイング関数を生成することができる。
本明細書で提供する例に加えて、デシメートされた変換を実装する本明細書で説明するアルゴリズムは、2の倍数である任意の他の変換を実装するために使用することができる。さらに、本明細書で説明する技法は、オーディオ、ボイス、ビデオ、データなどを含む様々なタイプの信号に適用できることに留意されたい。
本明細書に示す変換に関する中間結果は、その変換の流れ図中で異なる点が選択された場合、変化することがあることを理解されたい。したがって、本明細書で説明し、請求する変換の流れ図の範囲内で、(たとえば、流れ図中の異なる点において)より大きいもしくはより小さい中間結果、および/または異なる中間結果が企図される。
情報および信号は、様々な異なる技術および技法のうちのいずれかを使用して表すことができる。たとえば、上記の説明全体にわたって言及されるデータ、命令、コマンド、情報、信号などは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光粒子、またはそれらの任意の組合せによって表すことができる。
本明細書で説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、ソフトウェア、または両方の組合せとして実装または実施することができる。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。構成を、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明することがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行できる。さらに、動作の順序を並び替えることができる。プロセスは、その動作が完了すると終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、プロセスの終了は、関数が発呼側関数またはメイン関数に戻ることに対応する。
ハードウェアに実装されるとき、様々な例は、本明細書で説明する機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェア構成要素、またはそれらの任意の組合せを採用することができる。汎用プロセッサはマイクロプロセッサとすることができるが、代替として、プロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいはそのような任意の他の構成として実装することもできる。
ソフトウェアに実装されるとき、様々な例は、ファームウェア、ミドルウェア、またはマイクロコードを採用することができる。必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または(1つまたは複数の)他の記憶装置などのコンピュータ可読媒体中に記憶することができる。プロセッサは必要なタスクを実行することができる。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を引き渡すおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合できる。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む適切な手段を介して引き渡す、転送する、または送信することができる。
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができるが、これらに限定されない。例として、コンピューティングデバイス上で実行されるアプリケーションと、そのコンピューティングデバイスの両方を構成要素とすることができる。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に常駐することができ、1つの構成要素を1つのコンピュータ上に配置し、および/または2つ以上のコンピュータ間に分散することができる。さらに、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム中、および/または他のシステムを用いたインターネットなどのネットワークにわたって信号を介して別の構成要素と相互作用する1つの構成要素からのデータ)を有する信号によるなど、ローカルおよび/またはリモートプロセスを介して通信することができる。
本明細書における1つまたは複数の例、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を可能にするいかなる媒体をも含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体でよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、命令もしくはデータ構造の形態の所望のプログラムコードを運搬または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書では、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、この場合、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)はデータをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。ソフトウェアは、単一の命令、または多数の命令を備えることができ、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散できる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合することができる。代替として、記憶媒体はプロセッサに一体化することができる。
本明細書で開示する方法は、記載の方法を達成するための1つまたは複数のステップまたは動作を備える。方法のステップおよび/または動作は、特許請求の範囲の範囲から逸脱することなく互いに交換することができる。すなわち、本明細書で説明している実施形態の適切な動作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲の範囲を逸脱することなくモディファイすることができる。
図に示す構成要素、ステップ、および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、または機能に再構成し、および/または組み合わせることができ、あるいは、いくつかの構成要素、ステップ、もしくは機能で実施することができる。追加の要素、構成要素、ステップ、および/または機能を追加することもできる。いくつかの図に示す装置、デバイス、および/または構成要素は、他の図で説明する方法、特徴、またはステップのうちの1つまたは複数を実行するように構成または適合することができる。本明細書で説明するアルゴリズムは、たとえばソフトウェアおよび/または組込みハードウェアで効率的に実装することができる。
上記の構成は例にすぎず、特許請求の範囲を限定するものと解釈すべきではないことに留意されたい。構成についての説明は、例示的なものであり、特許請求の範囲の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、修正あるいは変形形態、および変更形態に容易に適用できることが当業者には明らかであろう。

Claims (52)

  1. 変換値を計算する方法であって、
    オーディオ信号を表す時間領域入力値を受信することと、
    複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換すること
    を備える方法。
  2. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、8回乗算演算、および3回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含む、請求項1に記載の方法。
  3. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(502)を含み、
    w0=x0−x4、
    w4=x0+x4、
    w1=x1−x3、
    w3=x1+x3、
    u2=x2+w3+w4、
    u3=−d*w3+c*w4、
    u4=d*w4+c*w3、
    ここで、
    X0=u2、
    X1=b*w1+a*w0、
    X2=u3−x0、
    X3=a*w1−b*w0、
    X4=u4+x0、
    上式で、
    Figure 2011507037
    である、請求項1に記載の方法。
  4. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含む、請求項1に記載の方法。
  5. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(602)を含み、
    w0=x0−x4、
    w1=x1−x3、
    z2=x1+x3、
    z4=x0+x4、
    u2=z2+z4、
    ここで、
    X0=u2+x2、
    X1=b*w1+a*w0、
    X2=c*u2+0.5*z2−x2、
    X3=a*w1−b*w0、
    X4==−c*u2−0.5*z4+x2、
    上式で、
    Figure 2011507037
    である、請求項1に記載の方法。
  6. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含む、請求項1に記載の方法。
  7. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果を有することによって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(702)を含み、
    w0=x0−x4、
    w1=x1−x3、
    z2=x1+x3、
    z4=x0+x4、
    t2=z2+z4、
    t4=z2−z4、
    c’=c+0.25、
    ここで、
    X0=t2+x2、
    X1=b*w1+a*w0、
    X2=c’*t2−0.25*t4−x2=0.25*t4+c’*t2−x2)、
    X3=a*w1−b*w0、
    X4=−c’*t2−0.25*t4+x2=0.25*t4−(c’*t2−x2)、
    上式で、
    Figure 2011507037
    である、請求項1に記載の方法。
  8. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含む、請求項1に記載の方法。
  9. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、
    w1=x0+x4、
    w2=x4−x0、
    w3=x3−x1、
    w4=x3+x1、
    w5=w1+w4、
    w6=w4−w1、
    u1=x2−αw5、
    u2=x2+w5、
    u3=βw2+γw3、
    u4=βw3−γw2、
    u5=δw6、
    ここで、
    X0=u2、
    X1=u4、
    X2=u4−u1、
    X3=u3、
    X4=u1+u5、
    上式で、
    Figure 2011507037
    である、請求項1に記載の方法。
  10. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの変換(802)を含む、請求項1に記載の方法。
  11. 前記複数の5点変換のうちの少なくとも1つが、20回加算演算、16回乗算演算、および3回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(902)を含む、請求項1に記載の方法。
  12. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(902)を含み、
    k1=g*x1+h*x3、
    k2=h*x1+g*x3、
    k3=f*x0+i*x4、
    k4=i*x0+f*x4、
    k5=i*x1−f*x3、
    k6=−f*x1+i*x3、
    k7=g*x0−h*x4、
    k8=h*x0−g*x4、
    j1=x0+x4、
    j2=x3−x1、
    ここで、
    X0=k3+k1+x2、
    X1=k7+k5−x2、
    X2=j1+j2−x2、
    X3=h*x0−g*x4−f*x1+i*x3+x2、
    X4=k4−k2+x2、
    上式で、
    Figure 2011507037
    である、請求項1に記載の方法。
  13. 前記複数の5点変換のうちの少なくとも1つが、20回加算演算、12回乗算演算、および4回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1002)を含む、請求項1に記載の方法。
  14. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1002)を含み、
    q1=x0+x4、
    q2=x3−x1、
    p1=(x1−x3)*g−x1*(g+h)=q2*g−x1*(g+h)、
    p2=(x1−x3)*g+x3*(h+g)=q2*g+x3*(g+h)、
    p3=(x0+x4)*f+x0*(i−f)=q1*f+x0*(i−f)、
    p4=(x0+x4)*f+x4*(i−f)=q1*f+x4*(i−f)、
    p5=(x3−x1)*f+x3*(i−f)=q2*f+x3*(i−f)、
    p6=(x3−x1)*f−x1*(i−f)=q2*f−x1*(i−f)、
    p7=(x0+x4)*g+x0*(h+g)=q1*g+x0*(h+g)、
    p8=(x0+x4)*g+x4*(h+g)=q1*g+x4*(h+g)、
    ここで、
    X0=p2+p4+x2、
    X1=p5+p7−x2、
    X2=q1+q2−x2、
    X3=p6+p8+x2、
    X4=p1+p3+x2、
    上式で、
    Figure 2011507037
    である、請求項1に記載の方法。
  15. 前記複数の5点変換のうちの少なくとも1つが、16回加算演算、9回乗算演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1402)を含む、請求項1に記載の方法。
  16. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1402)を含み、
    w0=f*x0−i*x4、
    w1=g*x1−h*x3、
    z2=g*x1+h*x3、
    z4=f*x0+i*x4、
    v1=2b*w1+2a*w0、
    v2=z2+z4、
    v3=2b*w0−2a*w1、
    y2=2c*v2+z2−2*x2、
    y4=−2c*v2−z4+2*x2、
    ここで、
    X0=v2+x2、
    X1=v1−2*X0、
    X2=y2−X1、
    X3=v3−X2、
    X4=y4−X3、
    上式で、
    Figure 2011507037
    であり、
    Figure 2011507037
    である、請求項1に記載の方法。
  17. 前記複数の5点変換のうちの少なくとも1つが、15回加算演算、10回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1502)を含む、請求項1に記載の方法。
  18. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1502)を含み、
    w0=f*x0−i*x4、
    w1=g*x1−h*x3、
    z2=g*x1+h*x3、
    z4=f*x0+i*x4、
    v1=2b*w1+2a*w0、
    v2=z2+z4、
    v3=2b*w0−2a*w1、
    y2=(2c+2)*v2+z2、
    y4=2c*v2+z4、
    ここで、
    X0=v2+x2、
    X1=v1−2*X0、
    X2=y2−v1、
    X3=v3−X2、
    X4=−y4+2*x2−X3、
    上式で、
    Figure 2011507037
    であり、
    Figure 2011507037
    である、請求項1に記載の方法。
  19. 前記複数の5点変換のうちの少なくとも1つが、15回加算演算、11回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1602/1702)を含む、請求項1に記載の方法。
  20. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1602)を含み、
    w0=f*x0−i*x4、
    w1=g*x1−h*x3、
    z2=g*x1+h*x3、
    z4=f*x0+i*x4、
    v1=2b*w1+2a*w0、
    v2=z2+z4、
    v3=2b*w0−2a*w1、
    d2=(2c+2)*z2+(2c+2)*z4、
    d4=(2c+2)*z4+2c*z2、
    ここで、
    X0=z2+z4+x2、
    X1=v1−2*X0、
    X2=d2−v1、
    X3=v3−X2、
    X4=−d4+2*x2−X3、
    上式で、
    Figure 2011507037
    であり、
    Figure 2011507037
    である、請求項1に記載の方法。
  21. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1702)を含み、
    w0=f*x0−i*x4、
    w1=g*x1−h*x3、
    z2=g*x1+h*x3、
    z4=f*x0+i*x4、
    z1=2a*w0+2b*w1
    z3=(2b+2a)*w0−(2a−2b)*w1、
    d2=2(c+2)*z2+(2c+2)*z4、
    d4=(2c+2)*z4+2c*z2、
    ここで、
    X0=z2+z4+x2、
    X1=z1−2*X0、
    X2=d2−z1、
    X3=z3−d2、
    X4=−d4+2*x2−X3、
    上式で、
    Figure 2011507037
    であり、
    Figure 2011507037
    である、請求項1に記載の方法。
  22. 前記複数の5点変換のうちの少なくとも1つが、15回加算演算、12回乗算演算、2回シフト演算、および5回演算の最長経路長によって因数分解される、離散コサイン変換タイプIV(DCT−IV)(1802)を含む、請求項1に記載の方法。
  23. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、以下の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプIV(DCT−IV)(1802)を含み、
    w0=f*x0−i*x4、
    w1=g*x1−h*x3、
    z2=g*x1+h*x3、
    z4=f*x0+i*x4、
    z1=2a*w0+2b*w1
    z3=(2b+2a)*w0−(2a−2b)*w1、
    r2=(2c+2)*z2+(2c+2)*z4、
    r4=4(c+1)*z2+4(c+1)*z4、
    ここで、
    X0=z2+z4+x2、
    X1=z1−2*X0、
    X2=d2−z1、
    X3=z3−r2、
    X4=−r4+2*x2−z3、
    上式で、
    Figure 2011507037
    であり、
    Figure 2011507037
    である、請求項1に記載の方法。
  24. 前記変換を実行する前に前記入力値に対してウィンドウイング演算を実行することをさらに備え、前記ウィンドウイング演算が非対称ウィンドウ関数を実装する請求項1に記載の方法。
  25. 前記MDCTが、5点離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
  26. 前記MDCTが、5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
  27. 前記MDCTが、5点離散コサイン変換タイプIIおよび5点離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
  28. 前記MDCTが、5点離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項1に記載の方法。
  29. スケーラブルなスピーチおよびオーディオエンコーダデバイスであって、
    オーディオ信号を表す時間領域入力値を得ることと、
    複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換すること
    を行うように適合された離散コサイン変換(DCT)タイプ変換層モジュール
    を備えるデバイス。
  30. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含む、請求項29に記載のデバイス。
  31. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、
    w1=x0+x4、
    w2=x4−x0、
    w3=x3−x1、
    w4=x3+x1、
    w5=w1+w4、
    w6=w4−w1、
    u1=x2−αw5、
    u2=x2+w5、
    u3=βw2+γw3、
    u4=βw3−γw2、
    u5=δw6、
    ここで、
    X0=u2、
    X1=u4、
    X2=u4−u1、
    X3=u3、
    X4=u1+u5、
    上式で、
    Figure 2011507037
    である、請求項29に記載のデバイス。
  32. 前記複数の5点変換のうちの少なくとも1つが、12回加算演算、5回乗算演算、1回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの変換(802)を含む、請求項29に記載のデバイス。
  33. スケーラブルなスピーチおよびオーディオエンコーダデバイスであって、
    オーディオ信号を表す時間領域入力値を得る手段と、
    複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換する手段と
    を備えるデバイス。
  34. 前記複数の5点変換のうちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、
    w1=x0+x4、
    w2=x4−x0、
    w3=x3−x1、
    w4=x3+x1、
    w5=w1+w4、
    w6=w4−w1、
    u1=x2−αw5、
    u2=x2+w5、
    u3=βw2+γw3、
    u4=βw3−γw2、
    u5=δw6、
    ここで、
    X0=u2、
    X1=u4、
    X2=u4−u1、
    X3=u3、
    X4=u1+u5、
    上式で、
    Figure 2011507037
    である、請求項33に記載のデバイス。
  35. オーディオ信号を表す時間領域入力値を得ることと、
    複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換すること
    を行うように適合されたスケーラブルなスピーチおよびオーディオ符号化回路を含むプロセッサであって、前記複数の5点変換うちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、
    w1=x0+x4、
    w2=x4−x0、
    w3=x3−x1、
    w4=x3+x1、
    w5=w1+w4、
    w6=w4−w1、
    u1=x2−αw5、
    u2=x2+w5、
    u3=βw2+γw3、
    u4=βw3−γw2、
    u5=δw6、
    ここで、
    X0=u2、
    X1=u4、
    X2=u4−u1、
    X3=u3、
    X4=u1+u5、
    上式で、
    Figure 2011507037
    である、プロセッサ。
  36. スケーラブルなスピーチおよびオーディオ符号化のために動作可能な命令を備える機械可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたときに、
    オーディオ信号を表す時間領域入力値を得ることと、
    複数の5点変換に再帰的にデシメートされるモディファイド離散コサイン変換(MDCT)を使用して、前記入力値をスペクトル係数に変換すること
    を前記プロセッサに行わせ、前記複数の5点変換うちの少なくとも1つが、入力ベクトル[x0,x1,x2,x3,x4]をとって出力ベクトル[X0,X1,X2,X3,X4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの離散コサイン変換タイプII(DCT−II)(802)を含み、
    w1=x0+x4、
    w2=x4−x0、
    w3=x3−x1、
    w4=x3+x1、
    w5=w1+w4、
    w6=w4−w1、
    u1=x2−αw5、
    u2=x2+w5、
    u3=βw2+γw3、
    u4=βw3−γw2、
    u5=δw6、
    ここで、
    X0=u2、
    X1=u4、
    X2=u4−u1、
    X3=u3、
    X4=u1+u5、
    上式で、
    Figure 2011507037
    である、機械可読媒体。
  37. 逆変換値を計算する方法であって、
    オーディオ信号を表すスペクトル係数入力値を受信することと、
    複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
    を備える方法。
  38. 前記複数の5点逆変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含む、請求項37に記載の方法。
  39. 前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、
    u1=X4−X2、
    u5=X4+X2、
    w0=X0+u1、
    w5=X0−αu1、
    w2=βX3−γX1、
    w3=γX3−βX1、
    w6=δu5、
    w1=w5−w6、
    w4=w5+w6、
    ここで、
    x0=w1−w2、
    x1=w4+w3、
    x2=w0、
    x3=w4−w3、
    x4=w1+w2、
    上式で、
    Figure 2011507037
    である、請求項37に記載の方法。
  40. 前記逆変換を実行した後に前記入力値に対してウィンドウイング演算を実行することをさらに備え、前記ウィンドウイング演算が非対称ウィンドウ関数を実装する請求項37に記載の方法。
  41. 前記IMDCTが、5点逆離散コサイン変換タイプIIを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
  42. 前記IMDCTが、5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
  43. 前記IMDCTが、5点逆離散コサイン変換タイプIIおよび5点逆離散コサイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
  44. 前記IMDCTが、5点逆離散サイン変換タイプIVを使用して、640、320、160、80、40点変換のうちの少なくとも1つを実装する、請求項37に記載の方法。
  45. スケーラブルなスピーチおよびオーディオデコーダデバイスであって、
    オーディオ信号を表すスペクトル係数入力値を受信することと、
    複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
    を行うように適合された逆離散コサイン変換(DCT)タイプ変換層モジュール
    を備えるデバイス。
  46. 前記複数の5点逆変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含む、請求項45に記載のデバイス。
  47. 前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、
    u1=X4−X2、
    u5=X4+X2、
    w0=X0+u1、
    w5=X0−αu1、
    w2=βX3−γX1、
    w3=γX3−βX1、
    w6=δu5、
    w1=w5−w6、
    w4=w5+w6、
    ここで、
    x0=w1−w2、
    x1=w4+w3、
    x2=w0、
    x3=w4−w3、
    x4=w1+w2、
    上式で、
    Figure 2011507037
    である、請求項45に記載のデバイス。
  48. スケーラブルなスピーチおよびオーディオデコーダデバイスであって、
    オーディオ信号を表すスペクトル係数入力値を受信する手段と、
    複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換する手段
    を備えるデバイス。
  49. 前記複数の5点逆変換のうちの少なくとも1つが、12回加算演算、4回乗算演算、2回シフト演算、および4回演算の最長経路長によって因数分解される、少なくとも1つの逆離散コサイン変換タイプII(DCT−II)(3202)を含む、請求項48に記載のデバイス。
  50. 前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、
    u1=X4−X2、
    u5=X4+X2、
    w0=X0+u1、
    w5=X0−αu1、
    w2=βX3−γX1、
    w3=γX3−βX1、
    w6=δu5、
    w1=w5−w6、
    w4=w5+w6、
    ここで、
    x0=w1−w2、
    x1=w4+w3、
    x2=w0、
    x3=w4−w3、
    x4=w1+w2、
    上式で、
    Figure 2011507037
    である、請求項48に記載のデバイス。
  51. オーディオ信号を表すスペクトル係数入力値を受信することと、
    複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
    を行うように適合されたスケーラブルなスピーチおよびオーディオ復号回路を含むプロセッサであって、
    前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、
    u1=X4−X2、
    u5=X4+X2、
    w0=X0+u1、
    w5=X0−αu1、
    w2=βX3−γX1、
    w3=γX3−βX1、
    w6=δu5、
    w1=w5−w6、
    w4=w5+w6、
    ここで、
    x0=w1−w2、
    x1=w4+w3、
    x2=w0、
    x3=w4−w3、
    x4=w1+w2、
    上式で、
    Figure 2011507037
    である、プロセッサ。
  52. スケーラブルなスピーチおよびオーディオ復号のために動作可能な命令を備える機械可読媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたときに、
    オーディオ信号を表すスペクトル係数入力値を受信することと、
    複数の5点逆変換に再帰的にデシメートされる逆モディファイド離散コサイン変換(IMDCT)を使用して、前記スペクトル係数入力値を時間領域出力値に変換すること
    を前記プロセッサに行わせ、
    前記複数の5点逆変換のうちの少なくとも1つが、入力ベクトル[X0,X1,X2,X3,X4]をとって出力ベクトル[x0,x1,x2,x3,x4]を生成し、少なくとも以下の複数の中間結果によって特徴付けられる、少なくとも1つの逆離散コサイン変換タイプII(IDCT−II)(3202)を含み、
    u1=X4−X2、
    u5=X4+X2、
    w0=X0+u1、
    w5=X0−αu1、
    w2=βX3−γX1、
    w3=γX3−βX1、
    w6=δu5、
    w1=w5−w6、
    w4=w5+w6、
    ここで、
    x0=w1−w2、
    x1=w4+w3、
    x2=w0、
    x3=w4−w3、
    x4=w1+w2、
    上式で、
    Figure 2011507037
    である、機械可読媒体。
JP2010538219A 2007-12-13 2008-12-13 5点dct−ii、dct−iv、およびdst−ivの計算のための高速アルゴリズム、ならびにアーキテクチャ Active JP5269908B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US1357907P 2007-12-13 2007-12-13
US61/013,579 2007-12-13
US1610607P 2007-12-21 2007-12-21
US61/016,106 2007-12-21
US3919408P 2008-03-25 2008-03-25
US61/039,194 2008-03-25
US12/334,238 2008-12-12
US12/334,238 US8631060B2 (en) 2007-12-13 2008-12-12 Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
PCT/US2008/086739 WO2009076666A1 (en) 2007-12-13 2008-12-13 Fast algorithms for computation of 5-point dct-ii, dct-iv, and dst-iv, and architectures

Publications (2)

Publication Number Publication Date
JP2011507037A true JP2011507037A (ja) 2011-03-03
JP5269908B2 JP5269908B2 (ja) 2013-08-21

Family

ID=40754681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010538219A Active JP5269908B2 (ja) 2007-12-13 2008-12-13 5点dct−ii、dct−iv、およびdst−ivの計算のための高速アルゴリズム、ならびにアーキテクチャ

Country Status (12)

Country Link
US (1) US8631060B2 (ja)
EP (1) EP2225755A1 (ja)
JP (1) JP5269908B2 (ja)
KR (1) KR101226094B1 (ja)
CN (1) CN101896966B (ja)
AU (1) AU2008334935A1 (ja)
BR (1) BRPI0820703A2 (ja)
CA (1) CA2706283A1 (ja)
IL (1) IL205835A0 (ja)
MX (1) MX2010006471A (ja)
TW (1) TWI405185B (ja)
WO (1) WO2009076666A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100172409A1 (en) * 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
BR112012009446B1 (pt) 2009-10-20 2023-03-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V Método e aparelho de armazenamento de dados
CN102104776A (zh) * 2009-12-21 2011-06-22 康佳集团股份有限公司 一种网络电视平台mpeg音频多相合成滤波方法
MY160067A (en) 2010-01-12 2017-02-15 Fraunhofer Ges Forschung Audio encoder, audio decoder, method for encoding and audio information, method for decording an audio information and computer program using a modification of a number representation of a numeric previous context value
CN101894557B (zh) * 2010-06-12 2011-12-07 北京航空航天大学 一种用于aac编码的窗型判别方法
US8417045B2 (en) 2010-07-29 2013-04-09 Infoprint Solutions Company Llc Mechanism for processing order-16 discrete cosine transforms
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
KR101362696B1 (ko) * 2011-10-19 2014-02-17 전북대학교산학협력단 하이브리드 아키텍쳐가 적용된 신호 변환 장치, 신호 변환 방법 및 기록매체
CN102568485B (zh) * 2011-12-30 2013-12-11 展讯通信(上海)有限公司 音频信号的频时转换方法及装置
TWI443527B (zh) * 2012-01-02 2014-07-01 Univ Nat Cheng Kung 遞迴式第四型離散餘弦之系統
CN103257953B (zh) * 2013-05-06 2016-04-13 福州瑞芯微电子股份有限公司 Imdct36运算模块及方法
WO2015172337A1 (en) 2014-05-14 2015-11-19 Mediatek Singapore Pte. Ltd. Alternative transforms for data compression
CN107005695B (zh) 2014-11-28 2020-01-07 联发科技股份有限公司 用于视频编码的替代变换的方法及装置
EP4300968A1 (en) * 2016-05-13 2024-01-03 Sony Group Corporation Image processing device and method
KR102357329B1 (ko) * 2016-07-14 2022-02-03 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 변환 기반 잔차 코딩을 이용한 예측 화상 코딩
US10536720B2 (en) * 2018-05-07 2020-01-14 Tencent America LLC Method, apparatus and medium for decoding or encoding
CN111294782B (zh) * 2020-02-25 2022-02-08 北京百瑞互联技术有限公司 一种加速编解码专用集成电路及方法
WO2022158943A1 (ko) 2021-01-25 2022-07-28 삼성전자 주식회사 다채널 오디오 신호 처리 장치 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2131169C1 (ru) 1993-06-30 1999-05-27 Сони Корпорейшн Устройство кодирования сигнала, устройство декодирования сигнала, носитель записи и способ кодирования и декодирования
TW321810B (ja) * 1995-10-26 1997-12-01 Sony Co Ltd
US6496795B1 (en) * 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6513004B1 (en) 1999-11-24 2003-01-28 Matsushita Electric Industrial Co., Ltd. Optimized local feature extraction for automatic speech recognition
TW507194B (en) 2000-05-24 2002-10-21 Nat Science Council Variable-rate residual-transform vocoders using auditory perception approximation
DE60132853D1 (de) 2000-07-07 2008-04-03 Nokia Siemens Networks Oy Verfahren und Vorrichtung für die perzeptuelle Tonkodierung von einem mehrkanal Tonsignal mit Verwendung der kaskadierten diskreten Cosinustransformation oder der modifizierten diskreten Cosinustransformation
US20020040299A1 (en) * 2000-07-31 2002-04-04 Kenichi Makino Apparatus and method for performing orthogonal transform, apparatus and method for performing inverse orthogonal transform, apparatus and method for performing transform encoding, and apparatus and method for encoding data
US7216140B1 (en) * 2000-09-30 2007-05-08 Intel Corporation Efficient implementation of n-point DCT, n-point IDCT, SA-DCT and SA-IDCT algorithms
US6636830B1 (en) 2000-11-22 2003-10-21 Vialta Inc. System and method for noise reduction using bi-orthogonal modified discrete cosine transform
RU2216791C1 (ru) 2002-04-29 2003-11-20 Военный университет связи Способ сжатия и восстановления речевых сообщений
KR100462611B1 (ko) 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
CN100570597C (zh) 2003-09-29 2009-12-16 新加坡科技研究局 将数字信号从时间域变换到频率域及其反向变换的方法
EP1711938A1 (en) 2004-01-28 2006-10-18 Koninklijke Philips Electronics N.V. Audio signal decoding using complex-valued data
TWI321810B (en) 2005-01-07 2010-03-11 Hon Hai Prec Ind Co Ltd Plasma enhanced sputtering method and apparatus
US8233727B2 (en) * 2007-10-19 2012-07-31 Research In Motion Limited Arbitrary ratio image resizing in the DCT domain

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012029259; Vladimir Britanak and K.R.Rao: 'An Efficient Implementation of the Forward and Inverse MDCT in MPEG Audio Coding' IEEE Signal Processing Letters, Vol.8,No.2, 200102, pp.48-51 *

Also Published As

Publication number Publication date
IL205835A0 (en) 2010-11-30
BRPI0820703A2 (pt) 2015-06-16
CN101896966B (zh) 2012-11-21
US20090157785A1 (en) 2009-06-18
MX2010006471A (es) 2010-09-28
KR20100103580A (ko) 2010-09-27
US8631060B2 (en) 2014-01-14
TWI405185B (zh) 2013-08-11
CN101896966A (zh) 2010-11-24
EP2225755A1 (en) 2010-09-08
WO2009076666A1 (en) 2009-06-18
KR101226094B1 (ko) 2013-01-24
TW200947419A (en) 2009-11-16
CA2706283A1 (en) 2009-06-18
JP5269908B2 (ja) 2013-08-21
AU2008334935A1 (en) 2009-06-18

Similar Documents

Publication Publication Date Title
JP5269908B2 (ja) 5点dct−ii、dct−iv、およびdst−ivの計算のための高速アルゴリズム、ならびにアーキテクチャ
KR101286329B1 (ko) 저 복잡도의 스펙트럼 대역 복제 (sbr) 필터뱅크
TWI398854B (zh) 用於計算轉換值及執行定窗運算之方法、裝置、電路及電腦可讀媒體,及用於提供一解碼器之方法
KR100778349B1 (ko) 이산값의 시퀀스를 갖는 신호 처리 장치 및 방법
CN100416553C (zh) 用于转换为变换表示或对变换表示进行反转换的设备和方法
JP3814611B2 (ja) 時間離散オーディオサンプル値を処理する方法と装置
JP6089878B2 (ja) 直交変換装置、直交変換方法及び直交変換用コンピュータプログラムならびにオーディオ復号装置
RU2464540C2 (ru) Быстрые алгоритмы для вычисления 5-точечного dct-ii, dct-iv и dst-iv, и архитектуры
HK1145563A (en) Fast algorithms for computation of 5-point dct-ii, dct-iv, and dst-iv, and architectures
HK1143240B (en) Efficient design of mdct / imdct filterbanks for speech and audio coding applications

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5269908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250