(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-22
(54)【発明の名称】回転の補間と量子化による空間化オーディオコーディング
(51)【国際特許分類】
G10L 19/008 20130101AFI20220415BHJP
【FI】
G10L19/008 200
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021552656
(86)(22)【出願日】2020-02-10
(85)【翻訳文提出日】2021-11-02
(86)【国際出願番号】 EP2020053264
(87)【国際公開番号】W WO2020177981
(87)【国際公開日】2020-09-10
(32)【優先日】2019-03-05
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】591034154
【氏名又は名称】オランジュ
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ステファーヌ・ラゴ
(72)【発明者】
【氏名】ピエール・マエ
(57)【要約】
本発明は、0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレームを形成するオーディオ信号の圧縮のための符号化方法に関し、方法は、チャネルに基づいて、現在のフレームについて、チャネル間共分散の行列を形成し、固有ベクトルの行列を得るために共分散行列の固有ベクトルを探索するステップ(S3)と、固有ベクトルの行列をテスト(S5)して、該行列がN次元空間における回転を表していることを検証し、そうでない場合は、現在のフレーム(t)について、回転行列が得られるまで固有ベクトルの行列を修正する(S6)ステップと、信号の個別チャネル符号化の前に回転行列をN個のチャネルの信号に適用する(S7)ステップとを備える。
【特許請求の範囲】
【請求項1】
0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレーム(t-1,t)を形成するオーディオ信号の圧縮のための符号化方法であって、
前記チャネルに基づいて、現在のフレーム(t)について、チャネル間共分散の行列を形成し、固有ベクトルの行列を得るために共分散行列の固有ベクトルを探索するステップと、
前記固有ベクトルの行列をテストして、該行列がN次元空間における回転を表していることを検証し、そうでない場合は、現在のフレーム(t)について、回転行列が得られるまで前記固有ベクトルの行列を修正するステップと、
信号の個別チャネル符号化の前に前記回転行列を前記N個のチャネルの信号に適用するステップと
を備える、方法。
【請求項2】
前記現在のフレーム(t)について得られた固有ベクトルの前記行列を、前記現在のフレームの前のフレーム(t-1)について得られた回転行列と比較するステップと、
前記前のフレーム(t-1)の前記回転行列との整合性を確保するために、前記現在のフレーム(t)の固有ベクトルの前記行列の列を順列化するステップと
をさらに備える、請求項1に記載の方法。
【請求項3】
前記列の順列化により、ベクトルの軸の整合性が確保され、前記方法は、
前記現在のフレーム(t)の各固有ベクトルについて、前記前のフレーム(t-1)の前記回転行列の対応する位置の列ベクトルとの方向の整合性を検証するステップと、
一致しない場合、前記現在のフレームの固有ベクトルの前記行列におけるこの固有ベクトルの要素の符号を反転させるステップと
をさらに備える、請求項2に記載の方法。
【請求項4】
前記現在のフレーム(t)について得られた前記回転行列と、前記現在のフレームの前のフレーム(t-1)について得られた回転行列との間の差を推定するステップと、
前記推定された差に基づいて、前記現在のフレーム(t)の前記回転行列と前記前のフレーム(t-1)の前記回転行列との間で、少なくとも1つの補間を実行すべきか否かを判定するステップと
をさらに備える、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記推定された差に基づいて、前記現在のフレーム(t)の前記回転行列と前記前のフレーム(t-1)の前記回転行列との間で実行される補間の数が決定され、
前記現在のフレームが、実行すべき補間の数に対応する数のサブフレームに分割され、
少なくともこの数の補間が、ネットワークを介した送信のために符号される、請求項4に記載の方法。
【請求項6】
固有ベクトルの前記行列の列間を順列化して、前記固有ベクトルの行列式の符号を反転させ、回転行列の行列式が1になる場合、固有ベクトルの前記行列式が1に等しい場合、前記固有ベクトルの行列の選択した列の要素の符号が反転し、前記行列式が1に等しくなり、回転行列が形成される、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記アンビソニックス表現は1次であり、チャネル数Nは4であり、前記現在のフレームの回転行列が、2つの四元数で表される、請求項1~6のいずれか一項に記載の方法。
【請求項8】
現在のサブフレームに対する各補間が、前記現在のサブフレームの前のサブフレームの補間の関数として、前記前のサブフレームの四元数に基づいて実施される球形線形補間(SLERP)である、請求項6を引用する請求項7に記載の方法。
【請求項9】
前記現在のサブフレームの前記球形線形補間が、前記サブフレームの四元数を取得するために、
【数1】
のように実施され、ここで、
Q
L,t-1が、前記前のサブフレーム(t-1)の四元数の1つであり、
Q
R,t-1が、前記前のサブフレーム(t-1)のもう一方の四元数であり
Q
L,tが、現在のサブフレーム(t)の四元数の1つであり、
Q
R,tが、現在のサブフレーム(t)のもう一方の四元数であり、
Ω
L=Arccos(Q
L,t-1・Q
L,t); Ω
R=Arccos(Q
R,t-1・Q
R,t)であり、
αは補間係数に相当する、請求項8に記載の方法。
【請求項10】
固有ベクトルの探索が、主成分分析(PCA)またはカルーネン・レーベ変換(KLT)によって、時間領域で行われる、請求項1~9のいずれか一項に記載の方法。
【請求項11】
アンビソニックスチャネルごとのビット割り当てバジェットを予測する前のステップが実施され、前記方法は、
各アンビソニックスチャネルについて、前記チャネルにおける前記現在の音響エネルギーを推定するステップと、
メモリ内において、このアンビソニックスチャネルおよびネットワーク内の現在のビットレートに基づいて、所定の品質スコア(MOS)を選択するステップと、
前記選択されたスコアに推定されたエネルギーを乗じることによって、このチャネルへのビット割り当てに適用される重み付けを推定するステップと
をさらに備える、請求項1~10のいずれか一項に記載の方法。
【請求項12】
0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレーム(t-1,t)を形成するオーディオ信号の復号方法であって、
現在のフレーム(t)について、この現在のフレームのN個のチャネルの信号に加えて、回転行列のパラメータを受信するステップと、
前記パラメータから逆回転行列を構築するステップと、
信号の個別チャネル復号化の前に、受信したN個のチャネルの信号に前記逆回転行列を適用するステップと
を備える、方法。
【請求項13】
請求項1~11のいずれか一項に記載の方法を実施するための処理回路を備えた符号化デバイス。
【請求項14】
請求項12に記載の方法を実施するための処理回路を備えた複合デバイス。
【請求項15】
処理回路のプロセッサによって実行されると、請求項1~12のいずれか一項に記載の方法を実施する命令を備えたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特にアンビフォニックな(ambiophonic)状況(以下、「アンビソニックス」とも呼ぶ)での、空間化されたオーディオコーディングの符号化/復号化に関連する。
【背景技術】
【0002】
携帯電話で現在使用されるエンコーダ/デコーダ(以下「コーデック」と呼ぶ)は、モノラル(単一のスピーカ上で再生される単一の信号チャネル)である。3GPP EVSコーデック(「拡張音声サービス」のための)は、32または48kHzでサンプリングされた信号のためのスーパーワイドバンド(SWB)オーディオバンド、あるいは48kHzでサンプリングされた信号のためのフルバンド(FB)を有する「スーパーHD」音質(「ハイデフィニション+」音声またはHD+とも呼ばれる)を提供できる。オーディオ帯域は、SWBモード(9.6~128kbps)では14.4~16kHzであり、FBモード(16.4~128kbps)では20kHzである。
【0003】
事業者が提供する会話サービスの品質の次の進化は、例えば複数のマイクを搭載したスマートフォン、あるいは空間化された音声会議やテレプレゼンス型のビデオ会議のためのデバイスなどの端末を使って、さらには「ライブ」コンテンツを共有するためのツールを用いて、単純な2次元ステレオ再生よりもはるかに没入感のある空間化された3次元オーディオレンダリングを行う没入型のサービスである。オーディオヘッドセットによって携帯電話上でコンテンツを聴くことが普及し、高度なオーディオ機器(3次元マイクなどのアクセサリ、音響アンテナ付きボイスアシスタント、バーチャルリアリティヘッドセットなど)や特定のツール(360度ビデオコンテンツの制作など)が登場したことで、空間化された音のシーンのキャプチャとレンダリングは、没入型のコミュニケーション体験を提供するのに十分なほど一般的である。
【0004】
このため、将来の3GPP標準規格である「IVAS」(「Immersive Voice And Audio Services」)では、EVSコーデックを拡張してイマージョンに対応することを提案している。そのためには、少なくとも以下のような空間化されたオーディオフォーマット(およびその組み合わせ)をコーデックの入力フォーマットとして受け入れる必要がある。
-ステレオタイプのマルチチャネルフォーマット(「チャネルベース」)5.1であり、各チャネルがスピーカに供給される(例えば、ステレオではLとR、5.1ではL、R、Ls、Rs、およびC)、および
-アンビソニックス・フォーマット(「シーンベース」)であり、一般的には球形のマイクで捉えられるか、または球形のハーモニクスの領域で合成される、所与の地点の音場を表現する。
【発明の概要】
【課題を解決するための手段】
【0005】
以下では、例示的な実施形態として、典型的には、アンビソニックス・フォーマットの音のコーディングに関心がある(以下の本発明に関連して提示される少なくともいくつかの態様はまた、アンビソニックス以外のフォーマットに適用可能である)。
【0006】
アンビソニックスとは、空間化された音を記録(音響的な意味での「符号化」)する方法と、再生システム(音響的な意味での「デコード」)のことである。アンビソニックスマイク(第1次)は、正四面体の頂点などの球形のグリッド上に配置された少なくとも4つのカプセル(通常はカーディオイド型またはサブカーディオイド型)を備える。これらのカプセルに関連するオーディオチャネルを「Aフォーマット」と呼ぶ。このフォーマットを「Bフォーマット」に変換すると、音場はW、X、Y、Zと表記される4つの成分(球形ハーモニクス)に分割され、これらは4つの一致した仮想マイクに対応する。W成分は音場の無指向性に相当し、X、Y、Z成分はより指向性が強く、3つの空間次元に向けられた圧力勾配に相当する。アンビソニックスシステムは、録音と再生が分離・独立しているという意味で、フレキシブルなシステムである。例えば、バイノーラル、タイプ5.1サラウンド、タイプ7.1.4ペリフォニック(高さ付き)など、どのようなスピーカ構成でも(音響的な意味で)デコードすることができる。もちろん、アンビソニックスのアプローチは、Bフォーマットの4チャネル以上にも一般化でき、この一般化された表現は「HOA」(「高次アンビソニックス(Higher-Order Ambisonics)」)と呼ばれる。音がより球状のハーモニクスに分解されることで、スピーカでレンダリングする際の再生の空間精度が向上する。
【0007】
N次のアンビソニックス信号は(N+1)2成分を有し、1次(N=1の場合)ではオリジナルのアンビソニックスの4つの成分があり、一般にFOA(1次アンビソニックス(First-Order Ambisonics))と呼ばれる。また、アンビソニックスには、定義された音を一般的に水平面である平面に分解する「プラナー」と呼ばれるものもある。この場合、チャネル数は2N+1チャネルとなる。以下、読みやすくするために、1次アンビソニックス(4チャネル:W、X、Y、Z)と1次平面アンビソニックス(3チャネル:W、X、Y)を総称して「アンビソニックス」と呼ぶが、提示したこの処理は平面型であるか否かに関係なく適用できる。しかしながら、本文中で区別する必要がある場合は、「1次アンビソニックス」「1次平面アンビソニックス」が使用される。なお、1次のBフォーマットからは、ブルームラインクロスペア(Blumlein Crossed Pair)(X+Y、X-Y)やミッドサイド(Mid-Side)(MidにWとXを組み合わせ、YをSideとする)といったタイプの同時計数のステレオキャプチャーに対応したステレオ信号(2チャネル)を導き出すことができることに留意されたい。
【0008】
以下、所定の順序のBフォーマットの信号を「アンビソニックスサウンド」と呼ぶ。いくつかの変形例では、アンビソニックスサウンドは、後述するように、Aフォーマットなどの他のフォーマットや、固定の行列化(チャネル数を維持したり、3チャネルや2チャネルの場合に縮小したりすること)によって予め組み合わされたチャネルで定義される。
【0009】
エンコーダ/デコーダによって処理される信号は、以下では「フレーム」または「サブフレーム」と呼ばれる音のサンプルのブロックの連続として提示される。
【0010】
なお、以下では、数学的表記はこの慣例に従う。
-ベクトル: u(小文字、太字)
-行列: A(大文字、太字)
【0011】
ステレオ信号またはアンビソニックス信号を符号化する最も簡単なアプローチは、モノラルエンコーダを使い、チャンネルに応じて異なるビットの割り当てを有する可能性のあるすべてのチャネルに並行して適用することである。このアプローチを「マルチモノ」と呼ぶ(実際には、マルチステレオや、同じコアコーデックの複数の並列インスタンスを使用するアプローチに一般化できる)。
【0012】
このような実施形態を
図1に示す。入力信号は、ブロック100で(モノラル)チャネルに分割される。これらのチャネルは、ブロック120~122において、所定の割り当てに従って個別に符号化される。それらのビットストリームは多重化され(ブロック130)、送信および/または格納した後に、逆多重化され(ブロック140)、チャネルの各々に復号を適用し(ブロック150から152)、再結合される(ブロック160)。
【0013】
関連する品質は使用するモノラルコーディングによって異なり、一般的には非常に高いビットレートでのみ満足できるものであり、例えば、EVSコーディングではモノラルチャネルあたり少なくとも48 kbpsのビットレートが必要である。したがって、1次の場合、最小ビットレートは4×48=192kbpsである。
【0014】
現在、より高度なコーデック、特にアンビソニックス空間化のために提案されているソリューションは、アンビソニックスチャネル間の効果的な相関除去を確保するために、複雑さ、遅延、およびビットレートの効率的な使用という点で、特に満足のいくものではない。
【0015】
例えば、アンビソニックスサウンド用のMPEG-Hコーデックでは、遅延と複雑さを増加させるオーバーラップ加算演算と、最適ではなく欠陥をもたらす方向ベクトルの線形補間が使用されている。このコーデックの基本的な問題点は、主成分が環境と知覚的に区別されることを意味するため、主成分と環境への分解を実装しているが、この分解は完全には定義されていないことである。また、MPEG-Hエンコーダでは、フレーム間で主成分の方向が一致しないという問題があり、成分(信号)の順序を入れ替えたり、関連する方向を入れ替えたりできる。この問題を解決するために、MPEG-Hコーデックでは、マッチングとオーバーラップ加算の技術を使用している。
【0016】
さらに、MPEG-Hコーデックのように時間的なコーディングではなく、(FFTやMDCT領域において)周波数的コーディングのアプローチを使用することが可能であるが、周波数領域(サブバンド)で信号処理を行うと、サブバンドごとにデコーダにデータを伝送する必要があり、伝送に必要なビットレートが増大する。
【0017】
本発明はこの状況を改善するものである。
この目的のために、本発明は、0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレームを形成するオーディオ信号の圧縮のための符号化方法を提案しており、この方法は、
-チャネルに基づいて、現在のフレームについて、チャネル間共分散の行列を形成し、固有ベクトルの行列を得るために共分散行列の固有ベクトルを探索するステップと、
-固有ベクトルの行列をテストして、該行列がN次元空間における回転を表していることを検証し、そうでない場合は、現在のフレームについて、回転行列が得られるまで固有ベクトルの行列を修正するステップと、
-信号の個別チャネル符号化の前に回転行列をN個のチャネルの信号に適用するステップとを含む。
【0018】
このように、本発明では、後に個別に符号化されるN個のチャネル間の相関除去を改善することが可能である。この個別の符号化は、以下、「マルチモノ符号化」とも呼ばれる。
【0019】
一実施形態では、方法はさらに、
-ネットワーク経由で送信するために、回転行列から取得したパラメータを符号化するステップを含み得る。
これらのパラメータは、典型的には、後述するように、四元数および/または回転角および/またはオイラー角の値であるか、あるいは、例えば、単にこの行列の要素である。
【0020】
一実施形態では、本方法は、さらに、
-現在のフレームについて得られた固有ベクトルの行列を、現在のフレームの前のフレームについて得られた回転行列と比較するステップと、
-前のフレームの回転行列との整合性を確保するために、現在のフレームの固有ベクトルの行列の列を順列化するステップとを含み得る。
【0021】
このような実施形態により、全体の均質性を維持することが可能となり、特に音声再生中に、フレーム間のクリック音を回避することができる。
【0022】
しかし、共分散行列から固有ベクトルを得るために実施されるある種の変換(後述の「PCA/KLT」など)は、特定の固有ベクトルの方向を逆にする可能性が高く、その場合、現在のフレームの行列の各固有ベクトルについて、軸の整合性、次にこの軸上の方向の整合性を同時に検証することが望ましい。このため、一実施形態では、前述の列の順列化により、ベクトルの軸の整合性を確保することが既に可能になっているため、本方法はさらに、
-現在のフレームの各固有ベクトルについて、前のフレームの回転行列の対応する位置の列ベクトルとの方向の整合性を検証するステップと、
-一致しない場合、現在のフレームの固有ベクトルの行列におけるこの固有ベクトルの要素の符号を反転させるステップとを含む。
【0023】
典型的には、固有ベクトルの行列の列間を順列にして、固有ベクトルの行列式の符号を反転させ、回転行列の行列式が1になるようにすれば、固有ベクトルの行列式を推定し、それが-1になれば、その行列式が1になるように、固有ベクトルの行列の列の要素の符号を反転させて、回転行列を形成することができる。
【0024】
一実施形態において、本方法は、さらに、
-現在のフレームについて得られた回転行列と、現在のフレームの前のフレームについて得られた回転行列との間の差を推定するステップと、
-推定された差に基づいて、現在のフレームの回転行列と前のフレームの回転行列との間で、少なくとも1つの補間を実行すべきか否かを判定するステップとを含み得る。
【0025】
このような補間を行うことで、前のフレームと現在のフレームにそれぞれ適用される回転行列を平滑化(「漸進的平均化」)することができ、再生中のフレーム間のクリック音効果を軽減することができる。
【0026】
このような実装では、
-推定された差に基づいて、現在のフレームの回転行列と前のフレームの回転行列との間で実行される補間の数が決定され、
-現在のフレームが、実行すべき補間の数に対応する数のサブフレームに分割され、
-少なくともこの数の補間が、前述のネットワークを介した送信のために符号化され得る。
【0027】
1つの実施形態では、アンビソニックス表現は1次で、チャネル数Nは4であり、現在のフレームの回転行列は2つの四元数で表される。
【0028】
本実施形態では、補間の場合、現在のサブフレームに対する各補間は、現在のサブフレームの前のサブフレームの補間の関数として、前のサブフレームの四元数に基づいて実施される球形線形補間(すなわち「SLERP」)である。
【0029】
例えば、現在のサブフレームの球面線形補間を行って、以下のように現在のサブフレームの四元数を得ることができる。
【数1】
ここで、
Q
L,t-1は、前のサブフレームt-1の四元数の1つであり、
Q
R,t-1は、前のサブフレームt-1のもう一方の四元数であり
Q
L,tは、現在のサブフレームtの四元数の1つであり、
Q
R,tは、現在のサブフレームtのもう一方の四元数であり、
Ω
L=Arccos(Q
L,t-1・Q
L,t); Ω
R=Arccos(Q
R,t-1・Q
R,t)であり、
αは補間係数に相当する。
【0030】
一実施形態では、固有ベクトルの探索は、主成分分析(「PCA」)またはカルーネン・レーベ変換(「KLT」)によって、時間領域で行われる。
もちろん、(特異値分解など)他の実施形態も考えられる。
【0031】
一実施形態では、本方法は、アンビソニックスチャネルごとのビット割り当てバジェットを予測する前のステップであって、
-各アンビソニックスチャネルについて、チャネルにおける現在の音響エネルギーを推定するステップと、
-メモリ内において、このアンビソニックスチャネルおよびネットワーク内の現在のビットレートに基づいて、所定の品質スコア(MOS)を選択するステップと、
-選択されたスコアに推定されたエネルギーを乗じることによって、このチャネルへのビット割り当てに適用される重み付けを推定するステップとを含む。
【0032】
次いで、本実施形態では、コーディングされる各チャネルに割り当てるビットの最適な割り当てを管理することが可能となる。これはそれ自体が有利であり、恐らく別の保護の対象となる可能性がある。
【0033】
また、本発明は、0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレーム(t-1,t)を形成するオーディオ信号の復号方法に関連し、方法は、
-現在のフレーム(t)について、この現在のフレームのN個のチャネルの信号に加えて、回転行列のパラメータを受信するステップと、
-パラメータから逆回転行列を構築するステップと、
-信号の個別チャネル復号化の前に、受信したN個のチャネルの信号に逆回転行列を適用するステップとを含む。
これにより、復号化の際に、Nチャネル間の相関除去を向上させることができる。
【0034】
また、本発明は、上に提示した符号化方法を実施するための処理回路を備えた符号化デバイスに関する。
【0035】
また、上記の復号方法を実施するための処理回路を備えた復号デバイスに関する。
【0036】
また、上記の方法を実行するための命令を含むコンピュータプログラムであって、これらの命令が処理回路のプロセッサによって実行される場合のコンピュータプログラムにも関する。
また、このようなコンピュータプログラムの命令を記憶した非一時的なメモリ記憶媒体に関するものである。
【0037】
本発明の他の特徴および利点は、以下の詳細な説明で提示される例示的な実施形態を読み、添付の図面を検討することで明らかになろう。
【図面の簡単な説明】
【0038】
【
図1】マルチモノコーディングを示す図である(先行技術)。
【
図2】本発明の意味における例示的な方法の連続する主要なステップを示す図である。
【
図3】本発明によるエンコーダの一例の一般的な構造を示す図である。
【
図4】
図3のエンコーダのブロック310によって実行されるPCA/KLT分析および変換の詳細を示す図である。
【
図5】本発明によるデコーダの一例を示す図である。
【
図6】復号において、
図4の逆である復号およびPCA/KLT合成を示す図である。
【
図7】本発明の範囲内でのエンコーダおよびデコーダの構造上の例示的実施形態を示す図である。
【発明を実施するための形態】
【0039】
本発明は、以下の方法で最適化された符号化を可能にすることを目的とする。
-適応的時間行列化(特にPCA/KLT(「PCA」は主成分分析、「KLT」はカルーネン・レーベ変換を表す)によって得られる適応的変換を用いる)。
-好ましくは続いてマルチモノ符号化を行うこと。
【0040】
適応的行列化により、固定的な行列化よりも効率的にチャネルに分解できる。本発明による行列化は、有利なことに、マルチモノ符号化の前にチャネルを相関除去することを可能にし、デコーディングにおいてアンビソニックス信号を再構成するためにチャネルを再結合するとき、各チャネルの符号化により入るコーディングノイズが空間イメージを全体的に可能な限り歪ませないようにする。
【0041】
さらに、本発明では、フレームの端での「クリック」タイプのアーチファクトや、空間イメージの急激な変動、さらには、モノ・コーデックの異なるインスタンスによって符号化される行列化の結果生じる様々な個々のチャネルの過度に強い変動(例えば、チャネル間のオーディオ・ソースの時宜を失した順列化に関連する)によるコーディングアーチファクトを回避するために、行列化パラメータの緩やかな適応を確保することができる。以下に提示されるマルチモノ符号化は、好ましくは(適応型行列化の後に)チャネル間の可変ビット割り当てを行うが、いくつかの変形例では、ステレオコアコーデックなどの複数のインスタンスを使用することができる。
【0042】
本発明の理解を容易にするために、n次元回転とPCA/KLTまたはSVD型分解(「SVD」は特異値分解を表す)に関する特定の説明概念を以下に再要約する。
【0043】
回転と「四元数」
信号はオーディオ・サンプルの連続したブロックによって表現され、これらのブロックを以下「サブフレーム」と呼ぶ。
本発明では、フレームごとの量子化と、特にサブフレームによる効率的な補間に適したパラメータを持つ、n次元の回転の表現を使用する。2次元、3次元、4次元で使用される回転の表現を以下に定義する。
【0044】
(原点を中心とした)回転とは、あるベクトルを別のベクトルに変えるn次元空間の変換であり、その結果、
-ベクトルの振幅が保存され、
-回転前の直交座標系を定義するベクトルのクロス積は,回転後も保存される(反射はない)。
【0045】
大きさn×nの行列Mが回転行列であるのは、MT.M=Inである場合に限られ、ここで、Inは大きさn×nの単位行列を表し(すなわち、Mはユニタリ行列であり、MTはMの転置を表す)、その行列式は+1である。
【0046】
本発明では、回転行列による表現と同等のいくつかの表現が用いられる。
【0047】
2次元(2次元平面上)(n=2)において、以下のように、回転角を表現に用いる。
【0048】
回転角θが与えられれば、回転行列が演繹される。
【数2】
【0049】
回転行列が与えられると、その行列のトレースが2cosθであることを観測することによって、角度θを計算できる。なお,以下に提示される主成分分解(PCA)および固有値分解(EVD)を適用する前に、共分散行列から直接θを推定することも可能であることに留意されたい。
【0050】
それぞれの角度θ1とθ2の2つの回転の間の補間は、これらの2つの角度の間の単位円上の最短経路の制約を考慮して、θ1とθ2の間の線形補間によって行うことができる。
【0051】
三次元(3D)空間(n=3)では、オイラー角と四元数が表現として使われる。また、ここでは触れないが、軸角表現を用いる場合もある。
【0052】
3×3サイズの回転行列は、x、y、またはz軸に沿った角度θの3つの基本的な回転の積に分解できる。
【数3】
【0053】
軸の組み合わせによって、オイラー角またはカルダン角と言われる
【0054】
しかし、3次元回転の別の表現が四元数によって与えられる。四元数とは、4つの成分を持つ複素数による表現を一般化したもので、数q=a+bi+cj+dkという形で表現され、i2=j2=k2=ijk=-1である。
【0055】
実数部のaはスカラと呼ばれ、3つの虚数部(b,c,d)は3次元ベクトルを形成する。四元数のノルムは、
【数4】
である。単位四元数(ノルム1である)は回転を表すが、この表現は一意ではなく、qが回転を表す場合、-qは同じ回転を表す。
【0056】
単位四元数q=a+bi+cj+dk(ここで、a
2+b
2+c
2+d
2=1)が与えられたとき、関連する回転行列は以下である。
【数5】
【0057】
オイラー角では3次元の回転を正しく補間することができないため,代わりに四元数や軸角表現を用いる。SLERP(「球面線形補間」)と呼ばれる補間法は,次の式に基づいて補間を行う。
【数6】
ここで、0≦α≦1はq
1からq
2に行くための補間係数、Ωは2つの四元数の間の角度Ω=arccos(q
1.q
2)である。
ここで、q
1.q
2は、2つの四元数の間のドットプロダクトを表す(2つの4次元ベクトルの間のドットプロダクトと同じである)。
【0058】
これは、4次元球面上の大きな円を、αの関数として一定の角速度でたどって補間することに相当する。q1.q2<0の時に四元数の1つの符号を変えることによって、最短経路が補間に使用されるようにする必要がある。なお、四元数補間には他の方法(正規化線形補間、nlerp、splineなど)も使用できることに留意されたい。
【0059】
この場合、角度は2次元の場合と同様に補間され、軸は例えばSLERP法(3次元の場合)によって補間することができるが、その際、3次元の単位球上で最短経路を取ることを保証し、軸rと角度θで与えられる表現は、反対方向の軸-rと角度2π-θで与えられる表現と同等であることを考慮することに留意されたい。
【0060】
4次元(n=4)では、回転は6つの角度(n(n-1)/2))でパラメータ化でき、四元数q
1=a+bi+cj+dkとq
2=w+xi+yj+zkに関連する四元数(Q
1)と反四元数(
【数7】
)と呼ばれるサイズ4×4の2つの行列の乗算が、サイズ4×4の回転行列を与えることを示す。
【0061】
関連する四元数のペア(q
1,q
2)と、以下のような関連する四元数および反四元数の行列を見つけることができる。
【数8】
それらの積は、4×4サイズの行列
【数9】
を提供する。この行列が回転行列の性質(ユニタリ行列で行列式が1に等しい)を満たしていることを確認することができる。
【0062】
逆に、4×4の回転行列が与えられた場合、この行列は、例えば「ケイリーの因数分解」として知られている方法で、
【数10】
の形式の行列の積に因数分解することができる。この方法では、「正方変換」(または関連行列)と呼ばれる中間的な行列を計算し、2つの四元数の符号に多少の不確定性を持たせた上で、そこから四元数を演繹する(これは、後述する追加の「最短経路」制約によって取り除くことができる)ことを含む。
【0063】
特異値分解(Singular value decomposition「SVD」)
特異値分解(SVD)は、大きさがm×nの実数行列Aを、A=UΣVTの形で因数分解する。ここで、Uは大きさm×mのユニタリ行列(UTU=Im)、Σは実数かつ正の係数σi≧0(i=1...p、p=min(m,n))を持つ大きさm×nの長方形の対角線行列、Vは大きさn×nのユニタリ行列(VTV=In)、VTはVの転置である。Σの対角線上にあるσi係数は、行列Aの特異値である。慣習的に、それらは一般的に降順に並べられ、この場合、Aに関連する対角行列Σは一意である。
【0064】
Aのランクrは、非ゼロの係数σ
iの数で与えられる。したがって、特異値分解を次のように書き換えることができる。
【数11】
ここで,U
r=[u
1, u
2,...,u
r]はAの左側の特異ベクトル(または出力ベクトル)、Σ
r=diag(σ
1,...,σ
r)およびV
r=[v
1, v
2,...,v
r]は、Aの右側の特異ベクトル(または入力ベクトル)である。この行列式は,次のように書き換えることもできる。
【数12】
和がインデックスi<rに限定される場合、「優勢な」情報のみを表す「フィルタリングされた」行列が得られる。
【数13】
と書くことができ、行列Aはv
iをσ
iu
iに変換することを示している。
【0065】
AのSVDは、A
TAやAA
Tの固有値分解と関係があり、なぜなら、
【数14】
であるからである。
Σ
TΣとΣΣ
Tの固有値は、
【数15】
である。Uの列はAA
Tの固有ベクトルであり、Vの列はA
TAの固有ベクトルである。
【0066】
SVDは幾何学的に解釈することができ、行列Aによるn次元の球の像は、m次元では、方向u1, u2, ..., umの長さσ1,...,σmの主軸を持つ超楕円になる。
【0067】
カルーネン・レーベ変換(「KLT」)
0を中心としたランダムベクトルxと共分散行列R
xx=E[xx
T]のカルーネン・レーベ変換(KLT)は、
y=V
Tx
によって定義され、ここで、Vは、R
xxを固有値
【数16】
に分解して得られる固有ベクトルの行列(固有ベクトルは列ベクトルであることを前提として)である。
ここで、Λ=diag(λ
1, ..., λ
n)は対角線上の行列で、その係数は固有値である。行列V=[v
1, v
2,..., v
n]は、R
xxの固有ベクトル(列)を含み、
【数17】
のようになる。
【0068】
積VTxは、ベクトルxを固有ベクトルで与えられた基底で表現しているので、KLTは基底の変更であると見ることができる。
逆行列は、x=Vyによって与えられる。
【0069】
KLTは、xの成分を相関除去することが可能であり、変換後のベクトルyの分散は、Rxxの固有値となる。
【0070】
主成分分析(Principal component analysis「PCA」)
主成分分析(PCA)は、直交する変数を生成し、投影後の変数の分散を最大化する(または同等に再構成誤差を最小化する)次元削減技術である。
【0071】
以下に提示するPCAは、KLTのような固有値への分解にも基づいているが、次元nのN個の観測ベクトルx
i, i=1...Nから推定共分散行列
【数18】
を算出するようになっている。
【数19】
これらのベクトルが中央に配置されていると仮定する:
【数20】
【0072】
【数21】
の形で
【数22】
の固有値に分解することで、主成分:y
n=V
Tx
nを計算することができる。
【0073】
PCAは,投影後の変数の分散を最大化するために,データを新しい基底に投影する行列VTによる変換である。
なお、PCAは、サイズn×Nの行列Xの形で置かれた信号xiのSVDからも得ることができることに留意されたい。この場合、X=UDVTと書くことができる。
【0074】
XXT=UDDTUTであることが確認され、これはXXTの対角化に相当する。したがって、PCAの投影ベクトルはUの列ベクトルに対応し、投影によりUTX= DVTが結果として得られる。
【0075】
また、PCAは一般的に、高次元のデータセットを少数の主成分からなるセットに「圧縮」するための次元削減技術とみなされていることにも留意されたい。本発明では、PCAによって多次元の入力信号を有利に相関除去することができるが、アーチファクトの発生を避けるために、チャネルの削除(したがってチャネル数の削減)は避けている。これにより、固有値が非常に低いためにゼロレートが許容される特定の変形例を除いて、空間イメージの「切り捨て」を避けるために、最小の符号化ビットレートが強制される(例えば、合成的に空間化された単一のソースで人工的に作成されたアンビソニックスサウンドをより良く符号化するため)。
【0076】
次に、
図2を参照して、現在のフレームtについて、本発明の意味の範囲内の方法で実施されるステップの一般原則を説明する。
【0077】
ステップS1は、各フレームtについて、アンビソニックスチャネル(ここでは、ACN(Ambisonics Channel Number)チャネル順序規則を用いて説明した例では、4つのチャネルW、Y、Z、X)のそれぞれの信号を取得することからなる。これらの信号は、n×L行列(n個のアンビソニックスチャネル(ここでは4個)とフレームあたりL個のサンプルのため)の形で表すことができる。
【0078】
次のステップS2では、これらのチャネルの信号は、任意に、例えば、
図3を参照して以下に説明するようなハイパスフィルタによって、前処理されることができる。
【0079】
次のステップS3では、主成分分析PCAまたは同等の方法でカルーネン・レーベ変換KLTをこれらの信号に適用して、n個のチャネルの共分散行列から固有値および固有ベクトルの行列を得る。本発明の変形例では、SVDを使用することができる。
【0080】
ステップS4では、現在のフレームtについて得られたこの固有ベクトルの行列を、前のフレームt-1の同じ性質の行列とできる限り揃えるように、符号付きの順列処理を行う。原則として、固有ベクトルの行列の列ベクトルの軸が、前のフレームの行列の同じ場所にある列ベクトルの軸とできるだけ一致するようにし、一致しない場合は、現在のフレームtの行列の固有ベクトルのうち、一致しない位置を順列化する。次いで、ある行列から別の行列への固有ベクトルの方向も一致するようにする。言い換えれば、最初は、固有ベクトルを持つ直線(向きだけ、方向を含まない)にのみ興味があり、各直線について、前のフレームt-1の行列で最も近い直線を探す。これを行うために、現在のフレームの行列でベクトルを順列化する。次いで、第2ステップとして、ベクトルの向きを一致させる(方向性)ようにする。これを行うために、正しい方向性を持たないであろう固有ベクトルの符号を逆にする。
【0081】
このような実施形態では、2つの行列間の整合性を最大限に確保することが可能となり、音声再生中の2つのフレーム間のクリック音を回避することができる。
【0082】
ステップS5ではまた、このように符号付き順列によって補正された現在のフレームtの固有ベクトルの行列が、実際に回転(n=2チャネルの場合は角度の、3つのオイラー角の、軸と角度の回転、またはn=3の場合は1次平面アンビソニックス表現W、Y、Zに対応する四元数の回転、n=4の場合はタイプW、Y、Z、Xの1次アンビソニックス表現の2つの四元数の回転)の適用を表していることを確認する。
【0083】
これが実際に回転であることを確認するためには、ステップS6において、順列によって補正された現在のフレームtの固有ベクトルの行列式が正であり、+1に等しい(または、実際には近い)必要がある。行列式が-1に等しい(あるいは近い)場合は、次のようにする。
-2つの固有ベクトルを再び並べ替える(例えば、低エネルギーのチャネルに関連しているため、あまり代表的ではない)、または
-好ましくは、ステップS6において、列の全要素の符号を反転させる(例えば、低エネルギーのチャネルに関連する)。
【0084】
次いで、ステップS7での回転に効果的に対応する、現在のフレームtの固有ベクトルの行列を得る。
【0085】
この行列のパラメータ(例えば、角度の値、軸と角度の値、またはこの行列の四元数の値など)は、ステップS8でこの目的のために割り当てられた数のビットで符号化することができる。任意ではあるが、有利な別の実施形態では、ステップS9において、現在のフレームtに対して推定された回転行列と前のフレームt-1の回転行列との間に有意な差(例えば閾値よりも大きい)が観測された場合には、可変数の補間サブフレームを決定することができ、そうでない場合には、このサブフレームの数は所定の値に固定される。ステップS10は、
-現在のフレームを複数のサブフレームに分割するステップと
-2つの行列の差を時間的に平滑化するために、前のフレームt-1の行列から現在のフレームtの行列に連続するサブフレームに適用する行列を補間するステップとから構成される。
【0086】
ステップS11では、ステップS14のマルチモノ符号化の前に、これらの信号を可能な限り相関除去するために、ステップS1(または任意でS2)のアンビソニックスチャネルの信号のK個のサブフレームのそれぞれを表す行列nX(L/K)に、補間された回転行列が適用される。実際には、一般的なアプローチに従って、このマルチモノ変換の前に、これらの信号を可能な限り相関除去したいと考えていることを思い出されたい。個別のチャネルへのビット割り当ては、ステップS12で行われ、ステップS13で符号化される。
【0087】
ステップS14では、ステップS15の多重化を実施して圧縮符号化の方法を終了する前に、このチャネルの代表性とネットワークRES(
図7)上の利用可能なビットレートの関数として、チャネルごとに割り当てるビット数を決定することが可能である。一実施形態では、各チャネルのエネルギーが現在のフレームについて推定され、このエネルギーに、このチャネルおよび所定のビットレートについて事前に定義されたスコアが乗算される(このスコアは、例えば、
図3を参照して以下に説明するMOSスコアである)。このようにして、各チャネルに割り当てられるビット数が重み付けされる。このような実施形態は、そのままで有利であり、恐らくアンビソニックスの文脈において別の保護の対象となり得る。
【0088】
図7に図示されているのは、本発明の意味における符号化デバイスDCODと復号デバイスDDECであり、これらのデバイスは互いに相対的に二重化されており(「可逆」を意味する)、通信ネットワークRESによって互いに接続されている。
【0089】
符号化デバイスDCODは、典型的には以下を含む処理回路からなる。
-本発明の意味におけるコンピュータプログラムの命令データを格納するメモリMEM1(これらの命令は、エンコーダDCODとデコーダDDECの間で分散されてもよい)、
-異なるチャネル(例えば、4つの1次チャネルW、Y、Z、X)に分散されたアンビソニックス信号を、本発明の意味での圧縮符号化の観点から受信するためのインターフェースINT1、
-これらの信号を受信し、符号化を考慮して、メモリMEM1に格納されたコンピュータプログラム命令を実行することにより、信号を処理するプロセッサPROC1、および
-符号化された信号をネットワーク経由で送信するための通信インターフェースCOM1である。
【0090】
復号デバイスDDECは、それ自身の処理回路を備え、典型的には以下を含む。
-本発明の意味でのコンピュータプログラムの命令データを格納するためのメモリMEM2(これらの命令は、上記のようにエンコーダDCODとデコーダDDECの間で分散されることがある)、
-本発明の意味での圧縮から復号するために、符号化された信号をRESネットワークから受信するインターフェースCOM2、
-メモリMEM2に格納されたコンピュータプログラム命令を実行することにより、これらの信号を処理するプロセッサPROC2、および
-復号された信号を、例えば再生のためにアンビソニックスチャネルW′、Y′、Z′、X′の形で配信するための出力インターフェースINT2である。
【0091】
もちろん、この
図7は、本発明の意味におけるコーデック(エンコーダまたはデコーダ)の構造的な実施形態の一例を示している。以下に述べる
図3から
図6は、むしろより機能的なこれらのコーデックの実施形態を詳細に示している。
【0092】
次に、
図3を参照して、本発明の意味におけるエンコーダデバイスを説明する。
【0093】
エンコーダの戦略は、アンビソニックス信号のチャネルを可能な限り相関除去し、コアコーデックで符号化することである。この戦略により、復号されたアンビソニックス信号のアーチファクトを制限することが可能になる。特にここでは、マルチモノ符号化の前に、入力チャネルの最適な相関除去を行うことを目指している。加えて、特定の領域(2次元では角度、3次元では四元数、4次元では四元数ペア)で行われるため、エンコーダとデコーダの計算コストが制限される補間により、固有値と固有ベクトルへの分解をフレームごとに数回繰り返すのではなく、PCA/KLT分析のために計算された共分散行列を補間することができる。
【0094】
しかし、本発明の意義の範囲内で実行されるコア符号化について説明する前に、有利なエンコーダのいくつかの特徴をここに提示し、特に以下に見られる、知覚基準の機能として符号化のために割り当てられたビットバジェットの最適化などについて説明する。
【0095】
ここで説明するエンコーダの実施形態では、後者は標準化された3GPP EVS(Enhanced Voiced Services)エンコーダを拡張したものである。有利なことに、EVS符号化ビットレートは、EVSビットストリームの構造を変更することなく使用することができる。したがって、マルチモノ符号化(後述の
図3のブロック340)は、ここでは、超広帯域のオーディオバンドでの符号化のためにビットレート:9.6、13.2、16.4、24.4、32、48、64、96、および128kbpsに制限された、各変換チャネルへの可能な割り当てにより機能する。
【0096】
もちろん、EVSコーデックを変更することによって、ビットレートを追加することが可能である(より細かい粒度での割り当てが可能である)。また、OPUS(登録商標)コーデックなど、EVS以外のコーデックを使用することも可能である。
【0097】
一般的に、符号化の粒度が細かいほど、可能なビットレートの組み合わせを表現するために、より多くのビットを確保する必要があることを覚えておかれたい。割り当ての細かさと、ビットの割り当てを説明する追加情報との間で妥協しなければならない。この割り当ては、後述する
図3のブロック320によってここで最適化される。これは、それ自体が有利な機能であり、本発明の意味するところの回転行列を確立するための固有ベクトルへの分解とは独立している。このように、ブロック320によって実行されるビット割り当ては、別個の保護の対象とすることができる。
【0098】
図3を参照すると、ブロック300は、インデックスtの現在のフレームにおける入力信号Yを受信する。インデックスは、ラベルを複雑にしないように、ここでは示されていない。これは、サイズn×Lの行列であり、1次アンビソニックスコンテキストに適応した実施形態では、SN3D規則に従って正規化できるn=4個のチャネルW、Y、Z、X(このようにACN順序に従って定義される)がある。変形例では、チャネルの順序は、例えば、W、X、Y、Z(FuMaの規則に従う)とすることができ、正規化は異なる(N3DまたはFuMa)ことができる。したがって、チャネルW、Y、Z、Xは、連続する行y
1,l、y
2,l、y
3,l、y
4,lに対応しており、これらは1次元信号y
i(l),l=1,...,Lの形で表されている。したがって、これはフレームtを占める1からLまでの連続したサンプルである。
【0099】
一般性を損なわないように、(各チャネルの)信号は48kHzでサンプリングされていると仮定する。フレーム長は20msに固定されており、一般性を損なわない範囲で、L=960の連続したサンプルである。また、32kHzでサンプリングする場合には,L=640のサンプルのフレーム長を使用することが可能である。
【0100】
以下に説明するPCA/KLT分析およびPCA/KLT変換は、時間領域で実行される。したがって、本明細書では必ずしもサブバンド変換や、より一般的には周波数変換を行わなくても、時間領域のままであることが理解されよう。
【0101】
各フレームにおいて、エンコーダのブロック300は、前処理(オプション)を適用して、Yと表記された前処理された入力信号を得る。これは、入力信号チャネルの各新しい20msフレームのハイパスフィルタリング(典型的には20Hzのカットオフ周波数を有する)であってもよい。この操作により、ブロック300から出力される信号がゼロ平均を持つと考えられるように、共分散行列の推定値を偏らせる可能性の高い連続成分を除去することができる。伝達関数はHpre(z)と表記されるので、各チャネルについてXi(z)=Hpre(z)Yi(z)となる。ブロック300を適用しない場合、X=Yとなる。ブロック340におけるローパスフィルタは、マルチモノ符号化を実行するためにも適用することができるが、ブロック300が適用される場合には、同じ前処理の繰り返しを避けて全体の複雑さを軽減するために、ブロック340で使用することができるモノラル符号化の前処理中のハイパスフィルタリングは、好ましくは無効にされる。
【0102】
上記のH
pre(z)と表記された伝達関数は、
【数23】
というタイプとなり、このフィルタを、入力信号のn個のチャネルの各々に適用することで、以下の表に示すような係数を得ることができる。
【表1】
【0103】
また、別の種類のフィルタを使用することもでき、例えば、周波数50Hzの6次バターワースフィルタを使用することができる。
【0104】
いくつかの変形例では、前処理に固定の行列化ステップが含まれており、同じチャネル数を維持したり、チャネル数を減らしたりすることができる。以下に、Bフォーマットのアンビソニックス信号の4チャネルに適用される行列化の例を示す。
【数24】
なお、この場合、復号時にはこの前処理を逆に行い、復号信号をM
A→B=M
B→A
-1で行列化して、元のフォーマットのチャネルを探す必要があることに留意されたい。
【0105】
次のブロック310は、各フレームtにおいて、PCA/KLTによって固有ベクトルを決定することによって得られる変換行列を推定し、これらの固有ベクトルによって形成される変換行列が実際に回転を特徴づけることを検証する。ブロック310の動作の詳細は、
図4を参照してさらに以下に示す。この変換行列は、チャネルを相関除去するためにチャネルの行列化を行い、ブロック340による独立したマルチモノタイプの符号化の適用を可能にする。以下にも詳述するように、ブロック310は、マルチプレクサに、変換行列を表す量子化インデックスと、任意に、現在のフレームtのサブフレームごとに、変換行列の補間数を符号化する情報を送る。
【0106】
ブロック320は、所与のBビットのバジェットに基づいて、各チャネル(PCA/KLT変換後)の最適なビットレート割り当てを決定する。このブロックは、ビットレートの可能な組み合わせごとにスコアを計算することによって、チャネル間のビットレートの分布を探し、このスコアを最大化する組み合わせを探すことで、最適な割り当てを見つける。
各組み合わせのスコアを定義するために、いくつかの基準を使用することができる。
【0107】
例えば、チャネルのモノラル符号化のための可能なビットレートの数は、超広帯域のオーディオバンドを有するEVSコーデックの9つの離散的なビットレート:9.6、13.2、16.4、24.4、32、48、64、96、128kbpsに限定することができる。しかし、本発明によるコーデックが、インデックスtの現在のフレームにおけるBビットのバジェットに関連する所与のビットレートで動作する場合、一般的には、これらのリストされたビットレートのサブセットのみを使用することができる。例えば、コーデックのビットレートが4つのチャネルを表すために4×13.2=52.8kbpsに固定され、各チャネルが、チャネルの各々に対して超広帯域を保証するために9.6kbpsの最小バジェットを受け取る場合、別々のチャネルを符号化するためのビットレートの可能な組み合わせは、使用されるビットレートがBmultimono=B-Boverheadに対応する利用可能なビットレートよりも低いままであるという制約を尊重しなければならない。
ここで、Boverheadは、後述するフレームごとに符号化される付加情報(ビット割り当て+回転データ)のビットバジェットである。例えば、4チャネルのアンビソニック符号化の場合、Boverheadは、20msフレーム(2.75kbps)あたり、Boverhead=55ビットとなり、これには、回転行列を符号化するための51ビットと、別々のチャネルを符号化するためのビット割り当てを符号化するための4ビット(後述)が含まれる。したがって、全体のビットレートが4×13.2=52.8kbpsの場合、Bmultimono=50.05kbpsのバジェットが残されていることになる。
【0108】
チャネルあたりのビットレートについては、次のような順列になる。
-シングルトン(9.6, 9.6, 9.6, 9.6) - 合計 = 38.4
-(13.2, 9.6, 9.6, 9.6)の順列 - 合計 = 42 kbps
-(13.2, 13.2, 9.6, 9.6)の順列 - 合計 = 45.6 kbps
-(13.2, 13.2, 13.2, 9.6)の順列 - 合計 = 49.2 kbps
-(16.4, 9.6, 9.6, 9.6)の順列 - 合計 = 45.2 kbps
-(16.4, 13.2, 9.6, 9.6)の順列 - 合計 = 48.8 kbps
【0109】
最大バジェットの制限を守る組み合わせの中には、他の組み合わせよりもはるかに低いビットレートを持つものがあり、最終的には2つの関連する組み合わせのみを残すことができることがわかる:
-(13.2, 13.2, 13.2, 9.6)の順列 - 4ケースであり、未使用のビットレートは50.5 - 49.2 = 1.3 kbpsである。
-16.4, 13.2, 9.6, 9.6)の順列 - 12ケースであり、未使用のビットレートは50.5 - 48.8 = 1.7 kbpsである。
【0110】
これにより、4ビット(16値)で符号化できる16通りの組み合わせを例示することができる。また、割り当て方によっては、潜在的に未使用のビットが残る場合もある。
【0111】
PCA/KLT処理に基づく適応型行列の符号化で、柔軟なビット割り当てを可能にすると、未使用のビットが発生し、一部のチャネルでは、各チャネルに均等に分布したビットレート(例えば、1チャネルあたり13.2kbps)よりも低いビットレート(例えば、9.6kbps)になることがわかる。
【0112】
この状況を改善するために、ブロック320は、次いでPCA/KLT変換(ブロック310からの出力)から得られた4つのチャネルに対するビットレートのすべての可能な(関連する)組み合わせを評価し、それらにスコアを割り当てることができる。このスコアは、以下に基づいて計算される。
-各チャネルのエネルギー、および
-主観的または客観的なテストから得られた、事前に保存可能な平均スコアである。このスコアは、MOS(「平均オピニオンスコア(Mean Opinion Score)」であり、テスターパネルの平均スコア)と呼ばれ、割り当てられたビットレートと関連付けられる。
【0113】
このスコアは、
【数25】
によって定義され、ここで、E
iは、チャネルi上の信号s(l),l=....L-1の(インデックスtの)現在のフレームにおけるエネルギーであり、以下のようになる。
【数26】
【0114】
最適な割り当ては、
【数27】
のようになる。
あるいは、係数E
iは、ブロック310に入力され、可能な符号付き順列の後の信号の固有値に分解した結果、チャネルiに関連する固有値が取る値に固定することができる。
【0115】
MOSスコアQ(b
i)は、好ましくは、ビットレートR
i=50b
i(ビット/秒)に対応する20msフレームあたりのバジェットb
i(ビット数)に対して、ブロック340のマルチモノ符号化に使用されるコーデックの主観的な品質スコアである。まず始めに、EVS標準化エンコーダの(平均)主観的MOSスコアを次のように与えて使用することができる。
【表2】
【0116】
あるいは、コーデックの品質を予測する他のテスト(主観的または客観的)から、リストされたビットレートの各々に対する他のMOSスコア値を導き出すことができる。また、EVSコーデックによって実装された分類方法を再利用し、ビット割り当てを行う前にアンビソニックス入力信号のWチャネルに適用することで、信号の種類の分類(例えば、背景ノイズのない音声信号、または周囲ノイズのある音声、または音楽、または混合コンテンツ)に応じて、現在のフレームに使用されるMOSスコアを適応させることも可能である。また、MOSスコアは、異なる種類の方法論や評価尺度:MOS(絶対値)1~5、DMOS(1~5)、MUSHRA(0~100)から得られる平均スコアに対応することもできる。
【0117】
EVSエンコーダが別のコーデックで置き換えられる変形例では、ビットレートbiとスコアQ(bi)のリストは、この別のコーデックに基づいて置き換えることができる。また、EVSエンコーダに追加の符号化ビットレートを追加して、ビットレートとMOSスコアのリストを補足する、あるいはEVSエンコーダと潜在的には関連するMOSスコアを変更することさえ可能である。
【0118】
別の方法では、αが0から1の間の値をとるように、エネルギーを冪αで重み付けすることによって、チャンネル間の割り当ての精度が上がる。αの値を変化させることで、割り当てにおけるエネルギーの影響を制御できる。αが1に近いほど、スコアにおけるエネルギーの影響が増し、チャネル間の割り当てが不均等になる。逆に、αが0に近いほど、エネルギーの影響は小さくなり、チャネル間の割り当てがより均等になる。したがって、スコアは次のような形で表される。
【数28】
【0119】
別の方法では、割り当てをより安定させるために、第2の重み付けをスコア関数に追加して、フレーム間のビットレート変化にペナルティを課すことができる。ビットレートの組み合わせがフレームtでフレームt-1と同じでない場合、ペナルティがスコアに追加される。そして、スコアは以下の形式で表される。
【数29】
ここで、β
iは、b
t,i=b
t-1,iのときにその値(例えば0.1)とて所定の定数を有し、b
t,i≠b
t-1,iのときにβ
i=0である。
【0120】
この追加の重み付けにより、チャネル間のビットレートの過度な変動を制限できる。この重み付けでは、エネルギーの大きな変化のみがビットレートの変化につながる。加えて、定数の値を変えることで、割り当ての安定性を調整することができる。
【0121】
再び
図3を参照すると、各フレームについてビットレートが計算されると、このビットレートはブロック330によって、例えばすべてのビットレートの組み合わせについて網羅的に符号化される。9つのビットレートと4つのチャネルの場合、必要なビットレートは
【数30】
ビットであり、
【数31】
は次の整数への切り上げに対応する。4つのビットレートの組み合わせは、インデックスの形:
【数32】
で符号化できる。しかし、与えられたビットバジェットに関連するビットレートのさまざまな組み合わせを(最初はオフラインで)列挙し、これらの組み合わせを表現するために最小のビットレートを使用することが望ましい場合もある。例えば、4ビットのインデックスを使用して、4つの順列(13.2, 13.2, 9.6)と12の順列(16.4, 13.2, 9.6)で構成される16のビットレートの組み合わせを符号化する例では、インデックスは「順列コード」+「組み合わせオフセット」タイプの符号化で表すことができ、最初の4通りの順列を符号化するためにインデックス0~3を使用し(オフセットは0、コードは0~3)、その他の12通りの順列を符号化するためにインデックス4~15を使用することができる(オフセットは4、コードは0~11である)。
【0122】
再び
図3を参照すると、多重化ブロック350は、ブロック310から来るn個の行列化されたチャネルと、ブロック320から来る各チャネルに割り当てられたビットレートを入力として、例えばEVSコーデックに対応するコアコーデックで異なるチャネルを別々に符号化するためのものである。使用するコアコーデックがステレオまたはマルチチャネルの符号化を可能にする場合、マルチモノのアプローチは、マルチステレオまたはマルチチャネルの符号化に置き換えることができる。チャネルが符号化されると、関連するビットストリームがマルチプレクサに送られる(ブロック350)。
【0123】
全体のバジェットの一部が完全に使用されていないフレームでは、マルチプレクサ(ブロック350)は、現在のフレームに割り当てられたビットバジェット、すなわち
【数33】
ビットに到達するために、ゼロビットスタッフィングを適用することができる。あるいは、利用可能なバジェットをすべて使用するために残りのビットバジェットを変換後のチャネルの符号化に再分配することができ、マルチモノ符号化がEVSタイプの技術に基づいている場合は、追加のビットレートを導入するために、指定された3GPP EVS符号化アルゴリズムを変更することもできる。この場合、b
iとQ(b
i)の対応を定義するテーブルに、これらの追加ビットレートを統合することも可能である。
【0124】
また、以下の2つの符号化モードを切り替えることができるように、ビットを予約することができる。
-回転行列の符号化を伴う本発明による符号化、および
-前のフレームの回転行列が単位行列であった場合、直接マルチモノ符号化となる、回転行列を単位行列に限定した本発明による符号化(例えば、アンビソニックス信号が非常に拡散した音源や、特定の好ましい方向に空間的に広がった複数の音源で構成されている場合、この場合、アンビソニックスチャネルは、より分離した点音源を混合した音よりも相関性が低い)である。
【0125】
この2つのモードの選択は、現在のフレームが回転パラメータを送信せずに単位行列に制限された回転行列を使用しているか(ビット=0)、回転行列が符号化されているか(ビット=1)を示すために、ストリームのビットを使用することを意味する。ビット=0の場合、いくつかの変形例では、別々のチャネルに固定ビットの割り当てを使用し、ビット割り当てを送信しないことができる。
【0126】
次に、
図4を参照して、PCA/KLT分析および変換を適用するブロック310について詳細に説明する。このブロックでは、エンコーダは、ブロック400でアンビソニックス(前処理済みの)チャネルから共分散行列を計算する。
【数34】
【0127】
また、この行列を相関行列に置き換えることもでき、この場合、チャネルはそれぞれの標準偏差で事前に正規化されるが、一般的には相対的な重要性を反映した重みを各チャネルに適用することができる。さらに、正規化項1/(L-1)を省略するか、別の値(例えば1/L)に置き換えることもできる。値Cijは、xiとxjの間の分散に相当する。
【0128】
次に、エンコーダは、ブロック410において、行列Cの固有値と固有ベクトルを計算することにより、固有値への分解(EVD:「固有値分解(Eigenvalue Decomposition)」)を行う。固有ベクトルは、インデックスt-1の前のフレームで得られた固有ベクトルVt-1が記憶され、その後に使用されることが好ましいので、本明細書ではフレームtのインデックスを示すためにVtと表記される。固有値は、λ1, λ2, ..., λnと表記する。
【0129】
また,前処理されたチャネルXの特異値分解(SVD)を用いることもできる。これにより,特異ベクトル(左がU,右がV)と特異値σiを得る。この場合,固有値λiはλi=σi
2であり、固有ベクトルVtは左のUのn個の特異ベクトル(列)で与えられると考えることができる。
【0130】
次に、エンコーダは、ブロック420において、前のフレームt-1の変換行列とのずれが大きくなりすぎて、前のフレームとの境界でのクリックに問題が生じるのを避けるために、フレームtの変換行列の列(列は固有ベクトルである)の第1の符号付き順列を適用する。
【0131】
このように、フレームtについて変換行列のラフドラフトが得られると、ブロック430は、インデックスtの現在のフレームからのn個の推定固有ベクトルVt=vt,0, ..., vt,nと、インデックスt-1の前のフレームから格納されたn個の固有ベクトルVt-1とを取り、推定ベクトルVtに対して、Vt-1にできるだけ近くなるように符号付きの順列処理を施す。このようにして、フレームtの固有ベクトルは、関連する基底がフレームt-1の基底にできるだけ近くなるように順列化される。これは、変換された信号のフレームの連続性を向上させる効果がある(変換行列がチャネルに適用された後)。
【0132】
もう一つの制約は、変換行列が回転に対応していなければならないということである。この制約は、エンコーダが変換行列を一般化されたオイラー角に変換し(ブロック430)、上述のように所定のビットバジェットで量子化する(ブロック440)ことができることを保証するものである。この目的のために、この行列の行列式は正でなければならない(通常は+1に等しい)。
【0133】
好ましくは、最適な符号付き順列は次の2つのステップで得られる。
-第1のステップ(上述の
図2のS4)では、軸にのみ注意を払い、軸の方向(向き)には注意を払わずに、2つのフレーム間で最も近いベクトルをマッチングさせる。この問題は、タスク割り当ての組合せ問題として定式化することができ、ここでは、コストを最小化する構成を見つけることが目標となる。このコストは、フレームtとt-1の固有ベクトル行列の相互相関の絶対値のトレースと定義できる。
【数35】
ここで、tr(.)は行列のトレースを表し、abs(.)は行列のすべての係数に絶対値演算を適用したものであり、corr(V1, V2)はベクトルV1とV2の相関行列を表す。
【0134】
一実施形態では、「ハンガリー」法(または「ハンガリーアルゴリズム」)を使用して、フレームtの固有ベクトルの順列を与える最適な割り当てを決定する。
-第2のステップ(
図2のS6)は、各順列化された固有ベクトルの方向/向きを決定することからなる。ブロック420は、フレームtの順列化された固有ベクトル
【数36】
と、フレームt-1の固有ベクトルとの間の相互相関を計算する。
【数37】
【0135】
相互相関行列Γ
tの対角線上の値が負であれば、これは固有ベクトルの方向間で符号が変化していることを示す。そして、
【数38】
の対応する固有ベクトルに対して符号反転が行われる。
【0136】
2つのステップが終了した時点で、フレームtにおける変換行列をVtとし、次のフレームでは格納された行列がVt-1となる。
【0137】
また、最適な符号付き順列の探索は、基底行列
【数39】
を3次元または4次元に変換した変化量を計算し、この変化量をそれぞれ単位四元数または2つの単位四元数に変換することで行うことができる。探索は、可能な符号付き順列の組を表す辞書を用いた最近傍探索となる。例えば、4次元の場合、4つの値の12の可能な偶数の順列(全24の順列のうち)は、4次元ベクトルとして書かれた以下の単位四元数のペアに関連付けられている。
・(1, 0, 0, 0)および(1, 0, 0, 0)
・(0, 0, 0, 1)および(0, 0, -1, 0)
・(0, 1, 0, 0)および(0, 0, 0, -1)
・(0, 0, 1, 0)および(0, -1, 0, 0)
・(0.5, -0.5, -0.5, -0.5)および(0.5, 0.5, 0.5, 0.5)
・(0.5, 0.5, 0.5, 0.5)および(0.5, -0.5, -0.5, -0.5)
・(0.5, -0.5, 0.5, -0.5)および(0.5, -0.5, 0.5, 0.5)
・(0.5, -0.5, 0.5, 0.5)および(0.5, -0.5, -0.5, 0.5)
・(0.5, 0.5, -0.5, 0.5)および(0.5, 0.5, -0.5, -0.5)
・(0.5, -0.5, -0.5, 0.5)および(0.5, 0.5, -0.5, 0.5)
・(0.5, 0.5, -0.5, -0.5)および(0.5, 0.5, 0.5, -0.5)
・(0.5, 0.5, 0.5, -0.5)および(0.5, -0.5, 0.5, -0.5)
(偶数の)最適な順列の探索は、上記のリストを定義済みの四元数ペアの辞書として使用し、基底行列の変更に関連する四元数ペアに対して最近傍探索を行うことで行うことができる。この方法の利点は、四元数および四元数ペアタイプの回転パラメータを再利用できることである。
【0138】
次のブロック460で実行される操作は、符号付き順列化後の変換行列が実際に回転行列であることを前提としている。変換行列は必然的にユニタリであるが、その行列式も1に等しくなければならない。
【数40】
【0139】
しかし、ブロック410および420から得られる変換行列(EVDおよび符号付き順列化後)は、行列式が-1または1である直交(ユニタリ)行列であり、反射行列または回転行列を意味する。
【0140】
変換行列が反射行列である場合(その行列式が-1に等しい場合)、固有ベクトル(例えば、最も低い値に関連する固有ベクトル)を反転させるか、2つの列(固有ベクトル)を反転させることによって、回転行列に修正することができる。
【0141】
固有ベクトル分解(例えば、ギブンス回転)や特異値分解のある方法では、本質的に回転行列(行列式が+1)である変換行列が得られることがあるが、この場合、行列式が+1であることを検証するステップは任意である。
【0142】
ブロック430は、回転行列をパラメータに変換する。好ましい実施形態では、量子化のために角度表現が使用される(4次元のケースでは6つの一般化されたオイラー角、3次元のケースでは3つのオイラー角、2次元では1つの角)。アンビソニックスの場合(4チャネル)は、Journal of Mathematical Physics 13, 528(1972年)に掲載されたDavid K. Hoffman、 Richard C. Raffenetti、およびKlaus Ruedenbergの論文「Generalization of Euler Angles to N-Dimensional Orthogonal Matrices」に記載されている方法に従って6つの一般化されたオイラー角を求め、平面アンビソニックスの場合(3チャネル)は3つのオイラー角を求め、ステレオの場合は当該技術分野でよく知られている方法に従って回転角を求めている。角度の値は、ブロック440において、所定のビットバジェットを用いて量子化される。好ましい実施形態では、スカラ量子化が使用され、量子化ステップサイズは、例えば、各角度に対して同一である。例えば、4チャネルの場合、3x(8+9)=51ビットで6つの一般化されたオイラー角を符号化する([-π/2,π/2]の区間で定義される3つの角は、π/256のステップサイズで8ビットで符号化され、[-π,π]の区間で定義される他の3つの角は、π/256のステップサイズで9ビットで符号化される)。変換行列の量子化インデックスはマルチプレクサに送られる(ブロック350)。さらに、ブロック440は、量子化に用いたパラメータが補間に用いたパラメータと一致しない場合、量子化されたパラメータを量子化された回転行列
【数41】
に変換してもよい。
【0143】
代わりに、ブロック430と440を以下のように置き換えることができる。
-ブロック430は、回転行列の単位四元数の組への変換(4チャネルの場合)、単位四元数への変換(3チャネルの場合)、および角度への変換(2チャネルの場合)を実行することができる。
【0144】
この4次元の場合の四元数のペアへの変換は、係数をR[i,j](i,j=0...3)とする回転行列に対して、以下のような擬似コードで行うことができる。
関連する行列A[i,j]の計算
A[0,0] = R[0,0] + R[1,1] + R[2,2] + R[3,3]
A[1,0] = R[1,0] - R[0,1] + R[3,2] - R[2,3]
A[2,0] = R[2,0] - R[3,1] - R[0,2] + R[1,3]
A[3,0] = R[3,0] + R[2,1] - R[1,2] - R[0,3]
A[0,1] = R[1,0] - R[0,1] - R[3,2] + R[2,3]
A[1,1] = -R[0,0] - R[1,1] + R[2,2] + R[3,3]
A[2,1] = -R[3,0] - R[2,1] - R[1,2] - R[0,3]
A[3,1] = R[2,0] - R[3,1] + R[0,2] - R[1,3]
A[0,2] = R[2,0] + R[3,1] - R[0,2] - R[1,3]
A[1,2] = R[3,0] - R[2,1] - R[1,2] + R[0,3]
A[2,2] = -R[0,0] + R[1,1] - R[2,2] + R[3,3]
A[3,2] = -R[1,0] - R[0,1] - R[3,2] - R[2,3]
A[0,3] = R[3,0] - R[2,1] + R[1,2] - R[0,3]
A[1,3] = -R[2,0] - R[3,1] - R[0,2] - R[1,3]
A[2,3] = R[1,0] + R[0,1] - R[3,2] - R[2,3]
A[3,3] = -R[0,0] + R[1,1] + R[2,2] - R[3,3]
A=A/4
関連する行列から2つの四元数を計算する
A2 = square (A) # 係数の二乗
q1 = sqrt (A2.sum (axis = 1)) # 行の合計
q2 = sqrt (A2.sum (axis = 0)) # 列の合計
符号の決定
For k=0..3 : If sign(A[i,k])<0, Then q2[k] = -q2[k]
For k=0..3 : If sign(A[k,j])!=sign(q1[k]*q2[j]), Then q1[k] = -q1[k]
3次元の場合の四元数への変換は、行列の場合は以下のように行う。
3x3サイズのR[i,j] i,j=0…2
簡略化された関連行列の計算
q[0]=(R[0,0]+R[1,1]+R[2,2]+1)^2 + (R[2,1]-R[1,2])^2 + (R[0,2]-R[2,0])^2 + (R[1,0]-R[0,1])^2
q[1]=(R[2,1]-R[1,2])^2 + (R[0,0]-R[1,1]-R[2,2]+1)^2 + (R[1,0]+R[0,1])^2 + (R[2,0]+R[0,2])^2
q[2]=(R[0,2]-R[2,0])^2 + (R[1,0]+R[0,1])^2 + (R[1,1]-R[0,0]-R[2,2]+1)^2 + (R[2,1]+R[1,2])^2
q[3]=(R[1,0]-R[0,1])^2 + (R[2,0]+R[0,2])^2 + (R[2,1]+R[1,2])^2 + (R[2,2]-R[0,0]-R[1,1]+1)^2
For i=0..3: q[i] = sqrt(q[i])/4
四元数qの計算
If (R[2,1]-R[1,2])<0, q[1]=-q[1]
If (R[0,2]-R[2,0])<0, q[2]=-q[2]
If (R[1,0]-R[0,1])<0, q[3]=-q[3]
2x2 行列の場合、角度は従来から知られている方法で計算される。
いくつかの変形例では、単位四元数q1、q2(4次元の場合)およびq(3次元の場合)を、従来から知られている軸-角度表現に変換することができる。
-ブロック440は、指示された領域で量子化を行うことができる。
*4チャネルの場合:単位量子のペアq1とq2は、4次元の球形量子化辞書によって量子化される。慣習的に、q1は半球形の辞書で量子化され(q1と-q1は同じ3次元回転に対応するため)、q2は球形の辞書で量子化される。辞書の例としては、4次元の多面体をベースにした定義済みのポイントが挙げられる。いくつかの変形例では、四元数のペアに相当する、二重に関連付けられた軸-角度表現を量子化することが可能である。
*3チャネルの場合:単位四元数は,4次元の球形量子化辞書によって量子化される - 辞書の例は,4次元の多面体に基づいて定義された点で与えられる。
*2チャネルの場合:角度は一様なスカラ量子化によって量子化される。
【0145】
次に、連続する2つのフレーム間の回転行列の補間を行うブロック460について説明する。これは、これらの行列を適用した後のチャネルの不連続性を平滑化するものである。典型的には、角度または四元数の2つのセットが、前のフレームt-1から次のフレームtまであまりにも異なる場合、これらの2つのフレーム間のサブフレームで、スムーズな移行が適用されていないと、クリック音が懸念される。そこで、フレームt-1に対して算出された回転行列と、フレームtに対して算出された回転行列との間で推移補間が行われる。エンコーダは、ブロック460において、変換後の様々なチャネルの過度に急激な変動を避けるために、現在のフレームと前のフレームとの間の回転の(量子化された)表現を補間する。補間の回数は、固定(所定の値に等しい)または適応的にできる。次いで、各フレームは、ブロック450で決定された補間数の関数として、サブフレームに分割される。したがって、適応的な補間が使用される場合、ブロック450は、選択された数のビットで、実行される補間の数、したがって、この数が適応的に決定される場合には、提供されるサブフレームの数を符号化することができ、固定された補間の場合には、情報を符号化する必要はない。
【0146】
次に、ブロック460は、回転行列を表す特定のドメインに変換する。フレームはサブフレームに分割され、選択されたドメインでは、各サブフレームに対して補間が行われる。
【0147】
1次のアンビソニックス入力信号(4チャネルのW、X、Y、Z)の場合、ブロック460で、エンコーダは6つの量子化されたオイラー角から量子化された4次元回転行列を再構成し、これを補間のために2つの単位四元数に変換する。エンコーダへの入力が平面アンビソニックス信号(3チャネルW、X、Y)である変形例では、ブロック460において、エンコーダは、3つの量子化されたオイラー角から量子化された3次元回転行列を再構成し、これを補間目的のために単位四元数に変換する。エンコーダの入力がステレオ信号である変形例では、エンコーダはブロック460で、回転角で量子化された2次元回転の表現を使用する。
【0148】
4チャネルの場合、フレームtとフレームt-1の間の回転行列の補間には、フレームtで計算された回転行列をケイリーの因数分解により2つの四元数(四元数ペア)に因数分解し、前のフレームt-1について記憶されている四元数ペアを使用し、(QL,t-1,QR,t-1)と表記する。
【0149】
各サブフレームにおいて、四元数は2つずつ補間される。
左の四元数(Q
L,t)に対して、ブロックは2つの可能な(Q
L,tまたは-Q
L,t)間の最短経路を決定する。場合によっては、現在のフレームの四元数の符号が反転される。次に,球形線形補間(SLERP)を用いて,左の四元数に対して補間計算が行われる。
【数42】
ここで、αは補間係数(α=1/K, 2/K, ... 1)に相当し、Ω
L=arccos(Q
L,t-1・Q
L,t)である。
【0150】
右の四元数(Q
R,t)については、左の四元数に反転があった場合、パリティを維持して右の四元数の符号を強制的に変えなければならない。以下、この符号の制約を「合同最短経路制約」と呼ぶ。その後、左の四元数と同様に補間計算を行う。
【数43】
ここで、αは補間係数(α=1/K, 2/K, ... 1)に相当し、Ω
L=arccos(Q
L,t-1・Q
L,t)である。
【0151】
2つの四元数に対して補間計算が行われると、4x4次元の回転行列が計算される(平面アンビソニックスの場合は3x3、ステレオの場合は2x2)。
この回転行列への変換は、以下の疑似コードに従って実行することができる。
4次元の場合:四元数ペアに対して、
-前述のように、四元数行列とアンチ四元数行列が計算され、行列積が計算される。
3次元の場合:四元数q = (w, x, y, z)について、サイズ3x3の行列M[i,j], i,j=0...2を得る。
xy=2*x*y
xz=2*x*z
yz=2*y*z
wx=2*w*x
wy=2*w*y
wz=2*w*z
xx=2*x*x
yy=2*y*y
zz=2*z*z
M[0][0] = 1-(yy+zz)
M[0][1] = (xy-wz)
M[0][2] = (xz+wy)
M[1][0] = (xy+wz)
M[1][1] = 1-(xx+zz)
M[1][2] = (yz-wx)
M[2][0] = (xz-wy)
M[2][1] = (yz+wx)
M[2][2] = 1-(xx+yy);
【0152】
最後に、補間ブロック460でサブフレームごとに計算された行列
【数44】
(またはその転置形)は、次に、ブロック300によって前処理されたアンビソニックスチャネルに、このようにして求められた回転行列を適用することによって変換されたn個のチャネルを生成する変換ブロック470で使用される。
【0153】
以下、ブロック450で決定されるサブフレームの数Kについて、この数が適応的である場合の話に戻る。現在のフレームと前のフレームの間の最終的な差は、測定されるか、または回転行列を記述するパラメータの角度差から直接決定される。後者の場合、連続するサブフレーム間の角度の変化が知覚できないことを確保したい。適応的なサブフレーム数の実装は、コーデックの平均的な複雑さを減らすために特に有利であるが、複雑さを減らすことが選択された場合、固定のサブフレーム数を持つ補間を使用することが好ましい場合がある。
【0154】
フレームtの補正された回転行列とフレームt-1の回転行列の最終的な差は、2つのフレーム間のチャネル行列の差の大きさを示す。この差が大きければ大きいほど、ブロック460で行われる補間のためのサブフレームの数が多くなる。この差を測定するために、次のように、現在のフレームの変換行列と前のフレームの間の相互相関行列の絶対値の合計を使用する。
【数45】
ここで、I
nは単位行列、V
tはインデックス t のフレームの固有ベクトル、
【数46】
は行列Mのノルムで、ここではすべての係数の絶対値の合計に相当する。他の行列ノルムを使用することもできる(例えば、フロベニウスノルム)。
【0155】
2つの行列が同一の場合、この差は0になる。行列が似ていないほど、差δtの値は大きくなる。δtには所定のしきい値を適用することができ、各しきい値は、例えば以下の決定論理に従って、所定の補間数と関連付けられる:
しきい値:{4.0, 5.0, 6.0, 7.0}
補間を行うサブフレームの数K:{10, 48, 96, 192}。
【0156】
このように、サブディビジョン(サブフレーム)の数を示す4つの可能な値を符号化するには、わずか2ビットで十分である。
ブロック450によって決定された補間の数Kは、その後、補間モジュール460に送られ、適応的な場合には、サブフレームの数は、マルチプレクサ(ブロック350)に送られるバイナリインデックスの形で符号化される。
【0157】
補間を行うことで、最終的には、マルチモノ符号化の前に、入力チャネルの相関除去を最適化することができる。実際、前のフレームt-1と現在のフレームtに対してそれぞれ計算された回転行列は、この相関除去の探索に起因して大きく異なることがあるが、それでも補間によってこの違いを滑らかにすることができる。
【0158】
この補間は、特定の領域(2次元では角度、3次元では四元数、4次元では四元数ペア)で行われるため、エンコーダとデコーダの計算コストは限られている。このアプローチは、PCA/KLT分析で算出された共分散行列を補間し、EVDタイプの固有値分解をフレームごとに数回繰り返すよりも有利である。
【0159】
次いで、ブロック470は、ブロック460で計算された変換行列を用いて、サブフレームごとにアンビソニックスチャネルの行列化を行う。この行列化は、サブフレームごとに
【数47】
を計算することになり、ここで、X(α))は、α=1/K、2/K、...1のサイズn×(L/K)のサブブロックに対応する。これらのチャネルに含まれる信号は、次にブロック340に送られ、マルチモノ符号化が行われる。
【0160】
次に、
図5を参照して、本発明の例示的な実施形態におけるデコーダを説明する。
【0161】
ブロック500による現在のフレームtのビットストリームの逆多重化の後、割り当て情報がデコードされ(ブロック510)、これにより、n個の変換されたチャネルの各々について受信したビットストリーム(複数可)を逆多重化およびデコードすることが可能になる(ブロック520)。
【0162】
ブロック520は、別々に実行されるコアデコーディングの複数のインスタンスを呼び出す。コアデコーディングはEVSタイプとすることができ、オプションでその性能を向上させるように修正される。マルチモノアプローチを使用して、各チャネルは別々にデコードされる。以前に使用されていた符号化がステレオまたはマルチチャネル符号化であった場合、マルチモノアプローチは復号のためにマルチステレオまたはマルチチャネルに置き換えることができる。このようにして復号されたチャネルはブロック530に送られ、ブロック530は現在のフレームの回転行列を復号し、任意で補間に使用するサブフレームの数Kを復号する(補間が適応的である場合)。各行列に対して、補間ブロック460はフレームをサブフレームに分割し、ブロック610(
図6)で符号化されたストリームからK個の数字を読み取り、回転行列を補間する。その目的は、伝送エラーがない場合、ブロック470で先に行われた変換を元に戻すことができるように、エンコーダのブロック460と同じ行列を見つけることである。
【0163】
ブロック530は、
図6を参照して以下に詳述するように、復号された信号を再構成するために、ブロック470とは逆の行列化を行う。この行列化は、サブフレームごとに
【数48】
を計算することになり、ここで
【数49】
は、α=1/K、2/K、...1のサイズn×(L/K)の連続したサブブロックに対応する。
【0164】
ブロック530は、一般的には、
図3のブロック310によって実行されたものに対して、復号および逆のPCA/KLT合成を行う。ブロック600では、現在のフレームにおける回転量子化パラメータの量子化インデックスが復号される。スカラ量子化を使用することができ、量子化ステップサイズは各角度に対して同じである。適応的なケースでは、補間サブフレームの数が復号され(ブロック610)、セット{10, 48, 96, 192}の中からサブフレームの数Kが求められる。フレーム長Lが異なるいくつかの変形例では、このセットの値を適応させることができる。デコーダの補間は、エンコーダで行ったものと同じである(ブロック460)。
【0165】
ブロック620は、ブロック460で算出された変換行列の逆数(実際には転置)を用いて、サブフレームごとにアンビソニックスチャネルの逆行列化を行う。
【0166】
このように、本発明では、時間領域において、あるフレームから別のフレームへの回転行列に限定された変換行列の特定の表現に基づいて、オーバーラップ加算を行うMPEG-Hコーデックとは全く異なるアプローチを使用し、特に、方向の一貫性を確保するマッピング(符号による方向を考慮することを含む)で変換行列の補間を可能にしている。
【0167】
本発明の一般的なアプローチは、PCAによる時間領域でのアンビソニックスサウンドの符号化であり、特にPCA変換行列を回転行列に行い、品質を向上させるために最適化された方法(特に四元数/四元数のペアの領域)でサブフレームごとに補間するものである。補間ステップサイズは、相互相関行列と参照行列(単位行列)の差、または補間対象の行列間の差を基準に、固定または適応的に設定される。回転行列の量子化は、一般化されたオイラー角の領域で実施することができる。しかし、好ましくは、3次元および4次元の行列を四元数および四元数ペアの領域で(それぞれ)定量化することを選択することができ、これにより、量子化および補間のために同じ領域にとどまることが可能になる。
【0168】
また、固有ベクトルのアライメントを使用して、フレーム間のクリックやチャネル反転の問題を回避する。
【0169】
もちろん、本発明は、例として上述した実施形態に限定されるものではなく、他の変形例にも及ぶものである。
【0170】
以上の説明では、4チャネルの場合について説明した。
しかし、いくつかの変形例では、4つ以上のチャネル数を符号化することも可能である。実装はn=4の場合と(機能ブロックとしては)同じだが、四元数ペアによる補間を以下の一般的な方法に置き換えている。
【0171】
フレームt-1およびtにおける変換行列をV
t-1およびV
tとする。補間は、V
t-1とV
tの間に、以下のような係数αで行うことができる。
【数50】
【0172】
【数51】
という項は、
【数52】
の固有値分解によって直接計算できる。確かに、
【数53】
であれば、
【数54】
となる。
【0173】
また、この変形例では、単位四元数のペア(4次元の場合)、単位四元数(3次元の場合)、または角度による補間に置き換えることもできるが、対角化ステップと冪乗計算が追加で必要になるため、利点が少なくなる。一方、2、3、または4チャネルの場合は、上述の実施形態がより効率的である。
【符号の説明】
【0174】
100 分割
130 多重化
140 逆多重化
160 結合
【手続補正書】
【提出日】2021-11-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレーム(t-1,t)を形成するオーディオ信号の圧縮のための符号化方法であって、
前記チャネルに基づいて、現在のフレーム(t)について、チャネル間共分散の行列を形成し、固有ベクトルの行列を得るために共分散行列の固有ベクトルを探索するステップと、
前記固有ベクトルの行列をテストして、該行列がN次元空間における回転を表していることを検証し、そうでない場合は、現在のフレーム(t)について、回転行列が得られるまで前記固有ベクトルの行列を修正するステップと、
信号の個別チャネル符号化の前に前記回転行列を前記N個のチャネルの信号に適用するステップと
を備える、方法。
【請求項2】
前記回転行列を量子化するステップをさらに備え、前記N個のチャネルの信号に適用された前記回転行列が量子化された表現である、請求項1に記載の方法。
【請求項3】
前記回転行列を量子化するステップおよび量子化された行列を補間するステップをさらに備え、前記N個のチャネルの信号に適用された前記回転行列が量子化された補間された表現である、請求項1または2に記載の方法。
【請求項4】
前記補間が四元数の領域で実施される、請求項3に記載の方法。
【請求項5】
前記現在のフレーム(t)について得られた固有ベクトルの前記行列を、前記現在のフレームの前のフレーム(t-1)について得られた回転行列と比較するステップと、
前記前のフレーム(t-1)の前記回転行列との整合性を確保するために、前記現在のフレーム(t)の固有ベクトルの前記行列の列を順列化するステップと
をさらに備える、請求項1に記載の方法。
【請求項6】
前記列の順列化により、ベクトルの軸の整合性が確保され、前記方法は、
前記現在のフレーム(t)の各固有ベクトルについて、前記前のフレーム(t-1)の前記回転行列の対応する位置の列ベクトルとの方向の整合性を検証するステップと、
一致しない場合、前記現在のフレームの固有ベクトルの前記行列におけるこの固有ベクトルの要素の符号を反転させるステップと
をさらに備える、請求項
5に記載の方法。
【請求項7】
前記現在のフレーム(t)について得られた前記回転行列と、前記現在のフレームの前のフレーム(t-1)について得られた回転行列との間の差を推定するステップと、
前記推定された差に基づいて、前記現在のフレーム(t)の前記回転行列と前記前のフレーム(t-1)の前記回転行列との間で、少なくとも1つの補間を実行すべきか否かを判定するステップと
をさらに備える、請求項1~
6のいずれか一項に記載の方法。
【請求項8】
前記推定された差に基づいて、前記現在のフレーム(t)の前記回転行列と前記前のフレーム(t-1)の前記回転行列との間で実行される補間の数が決定され、
前記現在のフレームが、実行すべき補間の数に対応する数のサブフレームに分割され、
少なくともこの数の補間が、ネットワークを介した送信のために符号される、請求項
7に記載の方法。
【請求項9】
固有ベクトルの前記行列の列間を順列化して、前記固有ベクトルの行列式の符号を反転させ、回転行列の行列式が1になる場合、固有ベクトルの前記行列式が1に等しい場合、前記固有ベクトルの行列の選択した列の要素の符号が反転し、前記行列式が1に等しくなり、回転行列が形成される、請求項
1~8のいずれか一項に記載の方法。
【請求項10】
前記アンビソニックス表現は1次であり、チャネル数Nは4であり、前記現在のフレームの回転行列が、2つの四元数で表される、請求項1~
9のいずれか一項に記載の方法。
【請求項11】
現在のサブフレームに対する各補間が、前記現在のサブフレームの前のサブフレームの補間の関数として、前記前のサブフレームの四元数に基づいて実施される球形線形補間(SLERP)である、請求項
9を引用する請求項
10に記載の方法。
【請求項12】
前記現在のサブフレームの前記球形線形補間が、前記サブフレームの四元数を取得するために、
【数1】
のように実施され、ここで、
Q
L,t-1が、前記前のサブフレーム(t-1)の四元数の1つであり、
Q
R,t-1が、前記前のサブフレーム(t-1)のもう一方の四元数であり
Q
L,tが、現在のサブフレーム(t)の四元数の1つであり、
Q
R,tが、現在のサブフレーム(t)のもう一方の四元数であり、
Ω
L=Arccos(Q
L,t-1・Q
L,t); Ω
R=Arccos(Q
R,t-1・Q
R,t)であり、
αは補間係数に相当する、請求項
11に記載の方法。
【請求項13】
固有ベクトルの探索が、主成分分析(PCA)またはカルーネン・レーベ変換(KLT)によって、時間領域で行われる、請求項1~
12のいずれか一項に記載の方法。
【請求項14】
アンビソニックスチャネルごとのビット割り当てバジェットを予測する前のステップが実施され、前記方法は、
各アンビソニックスチャネルについて、前記チャネルにおける前記現在の音響エネルギーを推定するステップと、
メモリ内において、このアンビソニックスチャネルおよびネットワーク内の現在のビットレートに基づいて、所定の品質スコア(MOS)を選択するステップと、
前記選択されたスコアに推定されたエネルギーを乗じることによって、このチャネルへのビット割り当てに適用される重み付けを推定するステップと
をさらに備える、請求項1~
13のいずれか一項に記載の方法。
【請求項15】
0よりも高い次数のアンビソニックス表現におけるN個のチャネルの各々において、時間の経過とともに連続したサンプルフレーム(t-1,t)を形成するオーディオ信号の復号方法であって、
現在のフレーム(t)について、この現在のフレームのN個のチャネルの信号に加えて、回転行列のパラメータを受信するステップと、
前記パラメータから逆回転行列を構築するステップと、
信号の個別チャネル復号化の前に、受信したN個のチャネルの信号に前記逆回転行列を適用するステップと
を備える、方法。
【請求項16】
請求項1~
14のいずれか一項に記載の方法を実施するための処理回路を備えた符号化デバイス。
【請求項17】
請求項
15に記載の方法を実施するための処理回路を備えた複合デバイス。
【請求項18】
処理回路のプロセッサによって実行されると、請求項1~
15のいずれか一項に記載の方法を実施する命令を備えたコンピュータプログラム。
【国際調査報告】