(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-25
(54)【発明の名称】可逆データ圧縮及び解凍のための方法、デバイス、及びコンピュータプログラム製品
(51)【国際特許分類】
H03M 7/40 20060101AFI20220715BHJP
H03M 7/36 20060101ALI20220715BHJP
G10L 19/00 20130101ALI20220715BHJP
【FI】
H03M7/40
H03M7/36
G10L19/00 250
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021568697
(86)(22)【出願日】2020-05-22
(85)【翻訳文提出日】2022-01-14
(86)【国際出願番号】 SE2020050526
(87)【国際公開番号】W WO2020242364
(87)【国際公開日】2020-12-03
(32)【優先日】2019-05-24
(33)【優先権主張国・地域又は機関】SE
(81)【指定国・地域】
(71)【出願人】
【識別番号】521501130
【氏名又は名称】ヘアレザンズ アーベー
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】フィリップソン ジョン
(72)【発明者】
【氏名】マーティンソン ロジャー
【テーマコード(参考)】
5J064
【Fターム(参考)】
5J064BA01
5J064BA09
5J064BC12
(57)【要約】
可逆データ圧縮方法(1800)が提供され、この方法は、既知の長さ及び既知の特性のデータセグメントの系列(210)を受信するステップと、データセグメントの前記系列を前処理して(1810)、最初の値、1つ以上の差分値及び最後の差分値を含む差分データの系列を生成するステップを含む。この方法は、差分データの前記系列を差分データの少なくとも2つのブロックに分割するステップ(1820)と、ライス符号化を使用して差分データの少なくとも1つのブロックを符号化するステップ(1830)であって、それによって符号化された差分データの少なくとも1つのブロックを提供する、ステップをさらに含む。さらに、符号化された差分データの前記少なくとも1つのブロックと、符号化されていない差分データの任意のブロックとを含むデータパケット(220)を生成するステップ(1840)を含む。可逆データ解凍方法なども提供する。
【選択図】
図18
【特許請求の範囲】
【請求項1】
可逆データ圧縮方法(1800)であって、
既知の長さ及び既知の特性のデータセグメントの系列(210)を受信するステップと、
データセグメントの前記系列(210)を前処理して(1810)、最初の値(520)、1つ以上の差分値(530)及び最後の差分値(540)を含む差分データの系列(510)を生成するステップと、
前記既知の特性に基づいて、差分データの前記系列(510)を差分データの少なくとも2つのブロック(1310)に分割するステップ(1820)と、
ライス符号化を使用して差分データの少なくとも1つのブロック(1310)を符号化するステップ(1830)であって、それによって、符号化された差分データの少なくとも1つのブロック(1510)を提供する、ステップと、
符号化された差分データの前記少なくとも1つのブロック(1510)と、符号化されていない差分データの少なくとも1つのブロック(1310)とを含むデータパケット(220)を生成するステップ(1840)と、
を含む、可逆データ圧縮方法(1800)。
【請求項2】
データセグメントの前記系列(210)の前記既知の特性は、データセグメントの前記系列(210)の一端での分散がデータセグメントの前記系列(210)の他端での分散よりも高いことである、請求項1に記載の可逆データ圧縮方法(1800)。
【請求項3】
前記生成するステップ(1840)において、前記データパケット(220)は、1つ以上のkパラメータ(1520)をさらに含み、各kパラメータ(1520)は、符号化された差分データのブロック(1510)に関連付けられる、請求項1又は2に記載の可逆データ圧縮方法(1800)。
【請求項4】
前記符号化するステップ(1830)は、差分データの少なくとも1つのブロック(1310)を関連するkパラメータ(1520)でライス符号化するステップをさらに含み、前記kパラメータは、差分データの関連する前記ブロック(1310)の前記差分値(530、540)の平均ビット数を計算することによって決定される、請求項3に記載の可逆データ圧縮方法(1800)。
【請求項5】
前記前処理するステップ(1810)において、差分データの前記系列(510)が、データセグメントの前記系列(210)のデルタ符号化の1回以上の反復によって生成される、請求項1~4のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項6】
前記生成するステップ(1840)において、前記データパケット(220)は、前記差分値(530)のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータ(1720)をさらに備える、請求項5に記載の可逆データ圧縮方法(1800)。
【請求項7】
前記デルタ符号化は、前記差分値(530)の絶対値の和が最小化されるまで、あるいは事前定義された平均閾値もしくは構成可能平均閾値を下回るまで繰り返される、請求項6に記載の可逆データ圧縮方法(1800)。
【請求項8】
前記分割するステップ(1820)において、差分データの1つのブロック(1310)は、前記最後の差分値(540)のみを含み、前記差分値(530)及び前記最初の値(520)は、差分データの少なくとも1つの他のブロック(1310)に含まれる、請求項1~7のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項9】
前記符号化するステップ(1830)は、前記最後の差分値(540)を含む差分データの前記ブロック(1310)を符号化しないことを含む、請求項1~8のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項10】
データセグメントの系列の前記特性は、デジタルFIRオーディオフィルタの特性である、請求項1~9のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項11】
請求項1~10のいずれか一項に記載の可逆データ圧縮方法(1800)によって生成されたデータパケット(220)を解凍するための可逆データ解凍方法(1900)であって、前記可逆データ解凍方法(1900)が、
前記データパケット(220)からデータのブロック(1310、1510)を抽出するステップ(1940)であって、データの少なくとも1つのブロック(1310、1510)は、符号化された差分データのブロック(1510)及び符号化されていない差分データの少なくとも1つのブロック(1310)である、ステップと、
符号化された差分データの前記少なくとも1つのブロック(1510)を復号化(1930)し、差分データの1つ以上のブロック(1310)を提供するステップと、
差分データの前記1つ以上のブロック(1310)を、最初の値(520)、差分データの系列(530)及び最後の差分値(540)を含む差分データの1つの系列(510)に付加(1920)するステップと、
前記最初の値(520)に基づいて、差分データの前記系列(510)を後処理して(1910)、データセグメントの系列(210)を生成するステップと、
を含む、可逆データ解凍方法(1900)。
【請求項12】
前記データパケット(220)は、1つ以上のkパラメータ(1520)をさらに含み、各kパラメータ(1520)は、符号化された差分データのブロック(1510)に関連付けられ、
前記抽出するステップ(1940)は、前記データパケット(220)から前記1つ以上のkパラメータ(1520)を抽出することを含み、
前記復号化するステップ(1920)は、それらの関連付けられたkパラメータ(1520)を使用して符号化された差分データのブロック(1510)を復号化することをさらに含む、請求項11に記載の可逆データ解凍方法(1900)。
【請求項13】
前記データパケット(220)に含まれる差分データの前記系列(510)は、データセグメントの前記系列(210)を1回以上デルタ符号化することによって生成され、
前記後処理するステップ(1910)は、差分データの前記系列(510)を1回以上デルタ復号化することを含む、
請求項11又は12に記載の可逆データ解凍方法(1900)。
【請求項14】
前記データパケット(220)は、前記データパケット(220)内の前記差分値(530)のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータ(1720)をさらに備え、
前記抽出するステップ(1940)は、前記データパケット(220)から、前記デルタ符号化反復インジケータ(1720)を抽出することをさらに含み、
前記後処理するステップ(1910)は、前記デルタ符号化反復インジケータ(1720)によって示されるのと同じ回数実行される、
請求項13に記載の可逆データ解凍方法(1900)。
【請求項15】
前記データパケット(220)に含まれる差分データの1つのブロック(1310)は、前記最後の差分値(540)のみを含み、前記差分値(530)は、前記データパケット(220)の差分データの少なくとも1つの他のブロック(1310)に含まれ、
前記抽出するステップ(1940)は、前記最後の差分値(540)を含むデータの1つのブロック(1310、1510)と、1つ以上の差分値(530)及び前記最初の値(520)を含むデータの少なくとも1つの他のブロック(1310、1510)とを抽出することをさらに含む、
請求項11~14のいずれか一項に記載の可逆データ解凍方法(1900)。
【請求項16】
前記データパケット(220)に含まれる前記最後の差分値(540)を含む差分データの前記ブロック(1310)は、符号化されていない差分データの前記少なくとも1つのブロック(1310)の1つであり、
前記復号化するステップ(1920)は、前記最後の差分値(540)を含むデータの前記ブロック(1310)に適用されない、
請求項11~15のいずれか一項に記載の可逆データ解凍方法(1900)。
【請求項17】
コントローラ(2010)と、メモリ(2020)と、通信インターフェイス(2030)とを備える携帯電子デバイス(2000)であって、前記コントローラ(2010)は、前記メモリ(2020)からユーザに適応された聴力プロファイルを取得し、前記聴力プロファイルを請求項1~10のいずれか一項に記載の可逆データ圧縮方法(1800)に従わせて、データパケット(220)を生成するように構成され、前記コントローラ(2010)が、前記データパケット(220)を前記通信インターフェイス(2030)経由で第二の携帯電子デバイスに送信するようにさらに構成される、携帯電子デバイス(2000)。
【請求項18】
コントローラ(2110)と、メモリ(2120)と、通信インターフェイス(2130)とを備える携帯電子デバイス(2100)であって、前記コントローラ(2110)は、データパケット(220)を前記通信インターフェイス(2130)経由で受信し、前記データパケットを請求項11~16のいずれか一項に記載の可逆データ解凍方法(1900)に従わせて、データセグメントの系列(210)を生成するように構成され、前記コントローラ(2110)が、データセグメントの前記系列(210)を聴力プロファイルとして前記メモリに記憶するようにさらに構成される、携帯電子デバイス(2100)。
【請求項19】
コントローラによって実行されると、請求項1~10のいずれか一項に記載の可逆データ圧縮方法(1800)を実行するように構成されたコンピュータプログラム製品(2200)。
【請求項20】
コントローラによって実行されると、請求項11~16のいずれか一項に記載の可逆データ解凍方法(1900)を実行するように構成されたコンピュータプログラム製品(2300)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にデータ圧縮に関し、特に、既知の特性を有する一連のデータの可逆データ圧縮に関する。
【背景技術】
【0002】
接続された装置がますます一般的になっている現代社会では、高速で信頼性のある通信の必要性が高まっている。有線又は無線デバイスのデータの全体的なスループットを向上させ、そのようなデバイス間の通信の待ち時間を短縮することに、多大な時間とお金が費やされている。これにより、通信サービスのユーザは、応答時間が速くなり、アクションがあればすぐに応答することが期待されることを学ぶ。このことは、あらゆる使用事例において期待され、例えば、携帯電話との対話から、スマートホームソリューションを使用してキッチンの照明をオンにするなどである。
【0003】
予測される速度と応答時間が問題となる特定の領域は、低速制御チャネルを使用して、高速データチャネルを制御するために使用されるときである。これは、携帯電子オーディオ又はビデオ装置が異なる使用モード間で切り換えられるときに、あるいは装置内のソフトウェアフィルタが更新されるときに明らかになる。一例として、無線Bluetooth(登録商標)オーディオヘッドセットが、パーソナライズされた聴力プロファイルで更新される場合がある。ユーザは、音声をストリーミングし、聴力プロファイルを使用して、又は使用せずに、シームレスに切り替えたり、パーソナライズされた聴力プロファイルの異なるバージョン間で切り替えたりする。聴力プロファイルは、制御チャネルを使用してオーディオヘッドセットに送信されるので、転送は遅くなり、その結果、ユーザにとって望ましくない待ち時間、場合によっては数秒になる。
【0004】
典型的には、上で詳述した例のような場合には、送信するデータ量を減らすために、圧縮アルゴリズムを利用することができる。圧縮アルゴリズムに伴う問題は、その圧縮アルゴリズムが典型的にはデータの損失を引き起こすことであり、これは、例えば、聴力プロファイルでは受け入れられない。可逆圧縮アルゴリズムは、典型的には、性能が悪く、すなわち、圧縮率が25%未満になる。これは、上述した聴力プロファイルのような150バイト未満のデータよりも小さいデータセットを圧縮するときに、部分的にオーバーヘッド、すなわちメタデータが大きすぎることによって生じるものである。
【0005】
上記の欠点を解決する試みの1つは、特許文献1に詳述されており、ここでは、整数値のリストがユーザ入力のnグラムから生成される。整数値のリストは、ソートされる。リスト内の隣接する整数値間の差が計算される。算出された各差は、Golomb符号を用いて符号化される。Golomb圧縮言語モデルにアクセスして、可能性のあるマッチングを識別する。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来技術に伴う1つの課題は、圧縮比が、データの小さなセットに適用された場合、依然として不十分であることである。
【0008】
本発明の目的は、従来技術よりも改善され、上述の欠点を排除又は少なくとも軽減する新しいタイプの可逆データ圧縮を提供することである。より具体的には、本発明の目的は、小さなデータセットに対しても効率的である可逆データ圧縮方法を提供することである。これらの目的の1つ以上は、添付の独立請求項に記載された技術によって達成され、好ましい実施形態は、それに関連する従属請求項に定義される。
【課題を解決するための手段】
【0009】
第一の態様によれば、可逆データ圧縮方法が提供される。この方法は、既知の長さ及び既知の特性のデータセグメントの系列を受信するステップと、データセグメントの系列を前処理して、最初の値、1つ以上の差分値及び最後の差分値を含む差分データの系列を生成するステップと、を含む。この方法は、差分データの系列を差分データの少なくとも2つのブロックに分割するステップと、ライス符号化を使用して差分データの少なくとも1つのブロックを符号化するステップであって、それによって符号化された差分データの少なくとも1つのブロックを提供する、ステップと、をさらに含む。また、この方法は、符号化された差分データの前記少なくとも1つのブロックと、符号化されていない差分データの任意のブロックとを含むデータパケットを生成するステップも含む。
【0010】
可逆データ圧縮方法の一実施形態では、生成するステップにおいて、データパケットは、1つ以上のkパラメータをさらに備える。各kパラメータは、符号化された差分データのブロックに関連付けられる。kパラメータをデータパケットに含めることは、符号化で任意のkパラメータを使用できるので有益である。なぜなら、この実施形態では、kパラメータは、例えば、事前に知っておく必要も、復号時に再作成する必要もないからである。
【0011】
可逆データ圧縮方法のさらなる実施形態では、符号化するステップは、差分データの少なくとも1つのブロックを関連するkパラメータでライス符号化するステップをさらに含む。kパラメータは、関連する差分データのブロックの差分値の平均ビット数を計算することによって決定される。kパラメータとして平均ビット数を使用することは、差分データのブロックに対する最適な、又は最適に近いkパラメータを迅速に見つける非常に効率的な方法である。
【0012】
可逆データ圧縮方法の別の実施形態では、前処理するステップにおいて、差分データの系列が、データセグメントの系列の1回以上の反復によって生成される。これは、データの分散と平均を減らし、その結果、より効率的な符号化を可能にするので、有益である。
【0013】
可逆データ圧縮方法のさらなる実施形態では、生成するステップにおいて、データパケットは、差分値のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータをさらに備える。デルタ符号化反復インジケータをデータパケットに含めることにより、反復回数を自由に選択できる。これは、復号化がデータパケット内に提供されるため、事前に反復回数を知る必要がないためである。
【0014】
可逆データ圧縮方法のさらなる実施形態では、デルタ符号化は、差分値の絶対値の合計が最小化されるか、あるいは事前定義された平均閾値又は構成可能な平均閾値を下回るまで、繰り返される。絶対値の合計が最小化されるか、あるいは閾値を下回るまで反復的にデルタ符号化することにより、符号化の観点から、差分データの系列が最適になるか、又は最適に近くなる。これは、分散又は標準偏差などのメモリ及びリソースを消費する計算を実行する必要なしに行うことができる。
【0015】
可逆データ圧縮方法のさらに別の実施形態では、分割するステップにおいて、差分データの1つのブロックは、最後の差分値のみを含み、差分値及び最初の値は、差分データの少なくとも1つの他のブロックに含まれる。最後の値を別様に扱うことによって、より効率的な符号化が可能になる。なぜなら、最後の値は、典型的には他の値とは異なる大きさだからである。大きさに差があると、kパラメータに影響が及び、符号化の効率が低下する。
【0016】
可逆データ圧縮方法の一実施形態では、符号化するステップは、最後の差分値を含む差分データのブロックを符号化しないことを含む。これは、最後の差が他の差と比較して異なる大きさであるため、有益である。これは、最後の値を含むブロックのkパラメータが最後の値によって大きく影響され、符号化効率が低下することを意味する。これは、最後の差分値が差分データの1つのブロック内の唯一の値である場合、特に有益である。その理由は、単一の差分データ要素を符号化すると、データ符号化によってデータ要素が削減されるよりも多くのオーバーヘッドが必要になり、圧縮比が低下するためである。
【0017】
可逆データ圧縮方法の別の実施形態では、データセグメントの系列の特性は、デジタルFIRオーディオフィルタの特性である。デジタルFIRオーディオフィルタを記述するデータセグメントの系列を有することは、これらのフィルタが、特に効率的な圧縮を可能にする特定の既知の特性を有するので、特に有益である。
【0018】
第二の態様によれば、可逆データ圧縮方法によって生成されたデータパケットを解凍するための可逆データ解凍方法が提供される。可逆データ解凍方法は、データパケットからデータのブロックを抽出するステップであって、データの少なくとも1つのブロックは、符号化された差分データのブロックである、ステップと、符号化された差分データの少なくとも1つのブロックを復号化し、差分データの1つ以上のブロックを提供するステップと、を含む。この方法は、また、差分データの1つ以上のブロックを、最初の値、差分値の系列、及び最後の差分値を含む差分データの1つの系列に付加するステップと、最初の値に基づいて、差分データの系列を後処理して、データセグメントの系列を生成するステップと、を含む。
【0019】
可逆データ解凍方法の一実施形態では、データパケットは、1つ以上のkパラメータさらに含む。各kパラメータは、符号化された差分データのブロックに関連付けられる。抽出するステップは、データパケットから前記1つ以上のkパラメータを抽出することを含み、復号化するステップは、それらの関連付けられたkパラメータを使用して、符号化された差分データのブロックを復号化することをさらに含む。kパラメータをデータパケットに含めることは、符号化で任意のkパラメータを使用できるので有益である。なぜなら、この態様では、kパラメータは、例えば、事前に知っておく必要も、復号時に再作成する必要もないからである。
【0020】
可逆データ解凍法の別の実施形態では、データパケットに含まれる差分データの系列は、データセグメントの系列を1回以上デルタ符号化することによって生成された。さらに、後処理するステップは、差分データの系列を1回以上デルタ復号化することを含む。これは、データの分散と平均を減らし、その結果、より効率的な符号化を可能にするので、有益である。
【0021】
可逆データ解凍法のさらなる実施形態では、データパケットは、データパケット内の差分値の各々がデルタ符号化された回数を示すデルタ符号化反復インジケータを含む。これに加えて、抽出するステップは、データパケットからデルタ符号化反復インジケータを抽出することを含み、後処理するステップは、デルタ符号化反復インジケータによって示されるのと同じ回数だけ実行される。デルタ符号化反復インジケータをデータパケットに含めることにより、反復回数を自由に選択できる。これは、復号化がデータパケット内に提供されるため、事前に反復回数を知る必要がないためである。
【0022】
可逆データ解凍方法のさらに別の実施形態では、データパケットに含まれる差分データの1つのブロックは、最後の差分値のみを含み、差分値は、データパケットの差分データの少なくとも1つの他のブロックに含まれる。また、抽出するステップは、最後の差分値を含むデータの1つのブロックと、1つ以上の差分値及び最初の値を含むデータの少なくとも1つの他のブロックとを抽出することを含む。最後の値を別様に扱うことによって、より効率的な符号化が可能になる。なぜなら、最後の値は、典型的には他の値とは異なる大きさだからである。大きさに差があると、kパラメータに影響が及び、符号化の効率が低下する。
【0023】
可逆データ解凍方法のさらに別の実施形態では、データパケットに含まれる最後の差分値を含む差分データのブロックは符号化されない。これに加えて、復号化するステップは、最後の差分値を含むデータのブロックには適用されない。これは、最後の差分値が他の差分値と比較して異なる大きさであるため、有益である。これは、最後の値を含むブロックのkパラメータが最後の値によって大きく影響され、符号化効率が低下することを意味する。これは、最後の差分値が差分データの1つのブロック内の唯一の値である場合、特に有益である。その理由は、なぜなら、単一の差分データ要素を符号化すると、データ符号化によってデータ要素が削減されるよりも多くのオーバーヘッドが必要になり、圧縮比が低下するためである。
【0024】
第三の態様によれば、コントローラと、メモリと、通信インターフェイスとを備える携帯電子デバイスが提供される。コントローラは、モリからユーザに適応された聴力プロファイルを取得し、聴力プロファイルを第一の態様の可逆データ圧縮方法に従わせて、データパケットを生成するように構成される。コントローラは、データパケットをインターフェイス経由で第二の携帯電子デバイスに送信するようにさらに構成される。
【0025】
第四の態様によれば、コントローラと、メモリと、通信インターフェイスとを備える携帯電子デバイスが提供される。コントローラは、通信インターフェイス経由でデータパケットを受信し、データパケットを第二の態様の可逆データ解凍方法に従わせて、データセグメントの系列を生成するように構成される。コントローラは、データセグメントの系列を聴力プロファイルとしてメモリに記憶するようにさらに構成される。
【0026】
第五の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、コントローラによって実行されると、第一の態様の可逆データ圧縮方法を実行するように構成される。
【0027】
第六の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、コントローラによって実行されると、第二の態様の可逆データ解凍方法を実行するように構成される。
【図面の簡単な説明】
【0028】
本発明の実施形態を以下に説明するが、本発明の概念をどのように実施することができるかの非限定的な例を示す添付の概略図を参照する。
【0029】
【
図1】通信における2つの携帯電子機器の概観である。
【
図3】本発明の実施形態によるデータ符号化システムのブロック図である。
【
図4】本発明の実施形態によるデータ復号化システムのブロック図である。
【
図5】本発明の実施形態による前処理モジュールの模式図である。
【
図6】本発明の実施形態による前処理のステップの例示的な図である。
【
図7】本発明の実施形態による前処理モジュールのブロック図である。
【
図8】本発明の実施形態による前処理のステップの例示的な図である。
【
図9】本発明の実施形態による前処理のステップの例示的な図である。
【
図10】本発明の実施形態による後処理モジュールの概略的な例である。
【
図11】本発明の実施形態による後処理モジュールのブロック図である。
【
図12】本発明の実施形態による後処理のステップの例示的な図である。
【
図13】本発明の実施形態による分割モジュールのブロック図である。
【
図14】本発明の実施形態による付加モジュールのブロック図である。
【
図15】本発明の実施形態による符号化モジュールの模式図である。
【
図16】本発明の実施形態による復号化モジュールの模式図である。
【
図17】
図17a~eは、本発明の実施形態による異なるデータパケットの模式図である。
【
図18】本発明の実施形態による可逆データ圧縮方法のブロック図である。
【
図19】本発明の実施形態による可逆データ解凍方法のブロック図である。
【
図20】本発明の実施形態による携帯電子機器のブロック図である。
【
図21】本発明の実施形態による携帯電子機器のブロック図である。
【
図22】本発明の実施形態によるコンピュータプログラム製品の模式図である。
【
図23】本発明の実施形態によるコンピュータプログラム製品の模式図である。
【
図25】
図25a~bは、
図17a~e本発明の実施形態による前処理後の差分データの例示的な系列である。
【発明を実施するための形態】
【0030】
しかしながら、本発明は、多くの異なる形態で具現化されてもよく、本明細書に記載された実施形態に限定されるものとして解釈されるべきではなく、むしろ、これらの実施形態は、本開示が十分で完全であり、添付の特許請求の範囲で定義されるような本発明の範囲を当業者に完全に伝えるように、例として提供される。
【0031】
サイズ及び長さのような単語及び用語は、本開示を通して使用されることに言及されるべきである。これらの用語は、それらの文脈から明らかであり、例えば、系列のサイズは、系列の要素の数及び/又は系列を表すバイナリビットの総数であってもよい。系列の長さは、系列のサイズと同じものを意味することがある。当業者は、サイズと長さとの間の差異がある場合、その差異について、あるいは本開示の教示がどのように適用されるべきかを理解することにおいて困難を有さない。
【0032】
開示される発明は、一般にデータ圧縮に関し、特に少量のデータの可逆データ圧縮に関する。本発明の1つの用途を提示するための非限定的な例として、
図1にヘッドセットとして描かれた携帯電子機器120と、
図1に携帯電話として描かれた携帯電子機器110とを考える。ヘッドセット120と携帯電話110は、Bluetoothインターフェイスであり得るインターフェイス130を介して互いに通信しているが、任意の適切なインターフェイスを利用することができる。携帯電話110には、インターフェイス130を介してヘッドセット120のファームウェアの少なくとも一部に接続し、それを制御する制御アプリケーションが設けられている。制御アプリケーションは、オーディオが携帯電話110からインターフェイス130を介してヘッドセット120に転送されている間に、ヘッドセット120の音調整に関する構成を更新するように構成されてもよい。典型的には、インターフェイス130が、例えば、Bluetoothである場合、オーディオデータはインターフェイス130のストリーミングチャネル上でストリーミングされ、構成はインターフェイス130のデータチャネル上で転送される。これは、多くの通信インターフェイスでの典型的な設定である。スレーブデバイスを制御して、更新フェするために使用されるチャネル又は帯域幅は、デバイスへのデータのストリーミングなどに使用される他のインターフェイスと比較して削減される。これは、制御コマンドは、典型的には非常に短く、単一バイトであっても、非常に短いので、理にかなっている。例えば、スレーブデバイスのファームウェアをアップグレードして、構成を更新することはまれであり、典型的には、スレーブデバイスがスタンバイ状態のときに実行されるかあるいはデバイスの使用に影響を与えることなくバックグラウンドで実行される。つまり、転送される構成が小さい場合、例えば、150バイト未満のデータであっても、このために使用されるチャネルは遅くなり、転送に3秒以上かかることもある。転送される構成がヘッドセット120のユーザの聴力プロファイルであり、転送の開始が携帯電話130上のユーザによって行われる場合、3秒の待ち時間は実質的に相当である。ユーザは、オーディオ再生への影響を直接評価するために、異なる構成間で切り替えるときに、ほぼ瞬間的なフィードバックを期待する。逆のシナリオも可能であり、例えば、オーディオプロファイルは、ヘッドセット120から携帯電話110に転送される。インターフェイス130のデータレートが固定されている場合、直接的なアプローチは、データのライス符号化のような標準的な可逆圧縮方法を使用することである。150バイト未満の聴力プロファイルを備える構成を有する上記の非限定的な例では、データは、約85%に圧縮され、これは、構成を切り替えるときに2.5秒を超える転送時間を依然として必要とする。このように圧縮比が低いと、データパケットを圧縮及び解凍するのに必要な計算能力に投資する動機とならない。追加された計算ステップは、電力を消費し、例えば、携帯電子機器の待機時間を減少させるであろう。データのサイズを小さくすることで、データの転送時間が短縮され、その結果、電力消費が減少する。この小さくすることは、圧縮及び解凍の計算コスト及び付加的な電力消費に関連しなければならない。本開示の教示を利用することによって、データは、その元のサイズの平均46%に圧縮される。上記の例では、聴力プロファイルのサンプリングレートが2倍になると、サンプル間の相関が増加し、当業者は、本開示を読んだ後、圧縮比がそのような実施形態ではさらに高くなることを理解するであろう。
【0033】
圧縮されるべきデータ、例えば、上記の例における構成又はオーディオプロファイルは、データセグメントの系列210と呼ばれ、
図2aに示される。データセグメントの系列210は、n個のデータセグメント230を含む。本開示のいくつかの実施形態では、データセグメント230は、それぞれ16ビットのデータを含む。本開示のいくつかの実施形態では、データセグメント230の数nは、32である。しかしながら、本明細書で開示される方法、モジュール、及びデバイスは、データ又はデータセグメントの系列の任意のサイズ又は長さで動作するが、その利点の1つは、本明細書の教示によって必要とされるオーバーヘッド又はメタデータが制限されることであることを強調しておくべきである。データ系列が長ければ長いほど、圧縮比は良好になり、すなわち、本発明は、より大きなデータ系列でも、より良好に機能する。データセグメントの系列210は、データパケット220に変換され、
図2bを参照して、例えば、転送、記憶又は送信され、結果的に受信又は検索され、データセグメントの元の系列210に再び変換される。データパケット220は、m個の出力データセグメント240を含む。少なくとも1つの出力データセグメント240が符号化される。出力データセグメント240は、デジタルフォーマットで表される任意の種類のデータであってもよく、開示される本発明の方法及びシステムは、それらのすべてに適用可能である。
【0034】
データの小さなセットの可逆圧縮を達成するために、本開示の背後にある発明者らは、以下の節で詳述される一連の機能/モジュールを巧みに組み合わせた。
【0035】
図3には、データ符号化システム300が示されている。データ符号化システム300は、前処理モジュール310と、分割モジュール320と、符号化モジュール330と、生成モジュール340とを備える。データ符号化システム300は、データセグメントの系列210を受信し、データパケット220を出力する。
【0036】
データパケット220を復号化するための対応するシステムは、
図4のデータ復号化システム400として示されている。データ復号化システム400は、抽出モジュール440と、復号化モジュール430と、付加モジュール420と、後処理モジュール410とを備える。データ復号化システム400は、データパケット220を受信し、データセグメントの系列210を出力する。
【0037】
モジュール310、320、330、340、440、430、420、410のそれぞれは、例えば、ハードウェア構成要素、ハードウェアとソフトウェアの組み合わせ、又は任意の他の適切な方法を使用して、コンピュータ実装方法として実現されてもよい。モジュール310、320、330、340、440、430、420、410のそれぞれの特定の機能を、以下の節でさらに詳細に説明する。
【0038】
(前処理及び後処理)
前処理モジュール310は、さらなる処理のためにデータ符号化システム300への入力として受信されたデータセグメントの系列210を準備するタスクを有する。同様に、後処理モジュール410は、付加モジュール420によって提供されたデータの系列を受信し、データの系列を処理し、入力として受信された前処理モジュール310と同じデータセグメントの系列210を出力として提供する。要するに、このプロセスは、データ復号化システム400によって出力されるデータセグメントの系列210と、データ符号化システム300によって入力として受信されるデータセグメントの系列210とに差がないという点で、可逆である。
【0039】
データセグメントの系列210の各データセグメント230は、いくつかのバイナリビットである。各データセグメント230内のビット数nbは、データセグメント230によって表現可能な最大数を2nb-1として設定する。説明のためだけに、8ビット(28-1=255)のデータセグメント230を有するデータセグメントの系列210を考えるが、これは、データセグメントの系列210によって表される最高の数が127である。すなわち、系列内のすべての数は、0又は127に等しいか、その間にある。この例では、データに7ビットが使用されることが分かっていると仮定して、データセグメント230は、いかなるデータも失うことなく、7ビット(27-1=127)に縮小することができる。同様に、データセグメントの系列によって表される最小の数が128である場合、すなわち、系列内のすべての数は、128又は255に等しいか、その間にある場合、この数は、データセグメントの系列210のデータセグメント230のそれぞれから減算することができ、その結果、差分データの系列510を得る。減算した後、系列内の全ての数は、0又は127に等しいか、その間にある。この効果の1つは、この例におけるデータセグメント230は、減算された数(128)が既知であると仮定すると、いかなる情報も失うことなく、7ビット(27-1=127)に縮小できることである。
【0040】
上記で与えられた後者の例は、デルタ符号化データの1つの方法として見ることができ、ここで、上記の例では128という定数が、差又はデルタを計算するために使用される。
【0041】
図5には、前処理モジュール310の一実施形態が示されている。前処理モジュール310は、データセグメントの系列210を受信し、最初の値520と、最後の差分値540と、1つ以上の差分値530とを含む差分データの系列510を生成する。差分値530は、典型的には、対応するデータセグメント230と別のデータセグメント230との間の差として計算される。他のデータセグメント230は、典型的には、データセグメントの系列210の差分値に対応するデータセグメント230に隣接するデータセグメント230である。
図5を参照すると、第二の差分値530は、最初の値520の間の差として計算され、これは、データセグメントの系列210における値1であってもよく、データセグメントの系列210における第二のデータセグメント230であってもよい。同様に、第五の差分値530は、
図5において、第五の入力データセグメント230と第四の入力データセグメント230との間の差として計算される。このプロセスは、最後の差分値540が計算されるまで継続され、最後の差分値540は、最後のデータセグメント230と最後から二番目のデータセグメント230との間の差である。
【0042】
図5を参照して説明したデルタ符号化は、デルタ符号化をどのように行うことができるかの一例に過ぎない。最初の値という用語は、値の系列内の最初の値を意味する必要はないが、値の系列内の任意の値を非常によく参照することができる。最初の値520は、差分値530を計算する際に基準として使用される開始値である。最初の値520は、データセグメントの系列210の最後の値であってもよく、いくつかの実施形態では、このことは、特に有益であり得る。同様に、最後の差分値540は、データセグメントの系列210の最後の値の間の差に基づいていなくてもよく、任意のデータセグメント230に基づいてもよい。最後の差分値540は、差分データの系列510内の差分値530、540の最後を単に示す。最後の差分値540、又は最初の値520を、他の差分値530とは異なって処理することは、理解されるように、有益であり得る。これは、データセグメントの系列210が特性を有する場合に特に当てはまる。ここで、データセグメントの系列210の最後又は最初におけるデータセグメント230は、典型的には、データセグメントの系列210の反対側の最後におけるデータセグメント230と比較して、より小さな絶対値を有する。これは、差分データの系列510内の最初の値520及び/又は最後の差分値540を表すビットの数を減らすために開かれる。最初の値は計算されたデルタ値ではないことに注意するべきである。同様に、中央データセグメント230は、データセグメントの系列210が特性を有する場合、最初の値520として使用され得る。ここで、中央データセグメント230は、典型的には、データセグメントの系列210の他のデータセグメント230よりも小さい。当業者は、本開示の教示を完全に消化した後、データセグメントの系列210の特性に応じて最適な最初の値520をどのように選択するかを理解するであろう。
【0043】
図6を参照すると、前処理モジュール310への入力として提供されるデータセグメントの系列210に基づいて、差分データの系列510がどのように見えるかの例が示されている。データセグメントの系列210の最も左のデータセグメント230は、差分データの系列510の最初の値520として使用される。最初の値520は、第二の差分値を生成するために第二のデータセグメントから減算され、
図6では、これは45-35=10である。当然、減算は、
図6の例において正の差分値を生成する最初の値520から第二のデータセグメントを減算することによって実行されてもよい。第三の差分値は、第三のデータセグメントから第二のデータセグメントを減算することによって生成され、
図6では、これは40-45=-5である。同じ減算が、データセグメントの系列210の全てのデータセグメント230に対して繰り返される。
図6に示すデータセグメントの系列210は、デルタ符号化をさらに例示する以下の実施形態で使用されるのと同じ番号を含む。これらの番号は、ランダムであり、前処理モジュール310のすべての実施形態に適しているわけではない。これらの番号は、単に、例を用いて方法を説明するために提示されているに過ぎない。
【0044】
図7には、前処理モジュール310の一実施形態が示されている。この実施形態では、デルタ符号化は複数回繰り返される。第一のデルタ符号化サイクルからの出力は、第二のデルタ符号化サイクルへの入力として使用され、以下同様である。この設定によって、分散、最大絶対差分値、絶対差分値の和、固有差分値の数、及び/又は差分値の平均がさらに小さくなることがある。デルタ符号化の概念における複数の繰り返し、反復、サイクル、及び複数回は、同じことを意味し、すなわち、差分データの系列510又は差分データの系列510の一部がデルタ符号化を受けた回数を意味することに留意されたい。
【0045】
さらなる実施形態では、第一のデルタ符号化サイクルからの最初の値520は、第二のデルタ符号化サイクルで使用される最初の値520と同じである。基本的に、同じデルタ符号化モジュールは、第一の入力としてデータセグメントの系列210を使用し、次いで、第二の反復のための入力として差分データの生成された系列510を使用して、複数回反復される。これは、各デルタ符号化サイクル結果が同じ数の差分値であることを意味する。これは、2つのデルタ符号化サイクルが示されている
図8に例示されている。
【0046】
図9に例示される別のさらなる実施形態では、各サイクルは、異なる最初の値を使用し、以前の反復において最初の値として使用された値は、連続するデルタ符号化反復において無視される。
図9では、これは、デルタ符号化の第一の反復における第一の差分値、すなわち10が、第二のデルタ符号化反復の最初の値として使用されることが分かる。第二の反復から出力される第一の差分値、すなわち-15は、第二の反復の最初の値、すなわち第一の反復の第二の差分値から減算された第一の反復の第一の差分値、すなわち-5-10=-15である。
【0047】
図8及び
図9を参照して与えられた例は、両方とも2つの反復を説明するが、これは、効率的な開示のためだけのものである。
図8に関連する実施形態では、デルタ符号化サイクルの数は無限であってもよく、
図9に関連する実施形態では、データセグメントの系列210にあるデータセグメント230と同数のデルタ符号化サイクルがあってもよい。言及した実施形態を組み合わせることができ、実施形態のうちの1つを第一の反復回数だけ実行し、他の実施形態を第二の反復回数だけ実行することができることにも言及すべきである。
【0048】
本開示の背後にある発明者は、前処理モジュール310が実行すべきデルタ符号化反復の回数を決定する方法には、いくつかの異なる方法があることを熟知している。
【0049】
前処理モジュール310の一実施形態では、デルタ符号化反復の回数は、事前定義された反復回数である。さらなる実施形態では、データセグメントの系列210がデルタ符号化される回数は、2回~10回であり、別の実施形態では、データセグメントの系列210がデルタ符号化される回数は、3回~7回である。デルタ符号化オーディオプロファイルの場合に特に有益であるさらなる実施形態では、データセグメントの系列210がデルタ符号化される事前定義された回数は、4回又は5回である。これらの回数は、本発明者らによって、ヘッドセットのためのオーディオプロファイルを本開示の教示に供する場合に、実験的に、非常に有益であることが示された。
【0050】
前処理モジュール310の一実施形態では、デルタ符号化反復の回数は、適応的な反復回数である。
【0051】
さらなる実施形態では、前処理モジュール310は、一意である差分値230の数が最小化されるまで、デルタ符号化を繰り返す。これを実施する1つの方法は、各反復において、一意である差分値230の数をカウントすることである。一意である差分値230の数が以前の反復と比較して大きくなると、前処理は停止され、前処理モジュールからの出力として提供される差分データの系列510は、以前の反復から生成された差分データの系列510である。あるいは、前処理モジュール310は、一意である差分値230の数が、事前定義された値又は構成可能な一意の値の閾値を下回るまで、デルタ符号化を繰り返す。
【0052】
別の実施形態では、前処理モジュール310は、差分値の絶対値の和が最小化されるまで、デルタ符号化を繰り返す。これを実施する1つの方法は、各反復において差分値230の絶対値を合計することである。差分値の絶対値の合計が以前の反復と比較して大きくなると、前処理は停止され、前処理モジュールからの出力として提供される差分データの系列510は、以前の反復から生成された差分データの系列510である。あるいは、前処理モジュール310は、差分値の絶対値の合計が、事前定義された絶対値閾値又は構成可能な絶対値閾値を下回るまで、デルタ符号化を繰り返す。デルタ符号化が循環されるべき回数を決定するときに差分値の合計を見ることは、デルタ符号化を行うために利用可能なでリソースが限られているときに、例えば、限られた処理能力、メモリ、バッテリなどを有する携帯電話、ヘッドセット、又は他の携帯電子機器において、非常に有益である。
【0053】
さらに別の実施形態では、前処理モジュールによって実行される各デルタ符号化反復は、データパケット220のサイズが最小化されるデータ符号化システム300ユニットのすべてのモジュール320、330、340の対象となる。前述の実施形態のように、これは、データセグメントの系列210のデルタ符号化の各反復から生成される各データパケットのサイズを計算することによって達成され得る。データパケット220のサイズが、以前のデルタ符号化反復からのデータパケットのサイズと比較して大きくなると、前処理は停止され、前処理モジュール310からの出力として提供される差分データの系列510は、以前の反復から生成された差分データの系列510になる。当然、すべてのモジュール320、330、340が実行されたので、以前のデルタ符号化反復からのデータパケット220を、データ符号化システム300からの出力として提供することができる。あるいは、前処理モジュール310は、データパケット220のサイズが事前定義された、又は構成可能なデータパケットサイズ閾値を下回るまで、デルタ符号化を繰り返す。
【0054】
当業者は、上に列挙された前処理モジュール310の実施形態が、組み合わされた実施形態において非常によく組み合わされ得ることを理解するであろう。そのような実施形態では、反復ごとの各実施形態の性能に関する重みの合計を、各反復について、生成することができる。前処理モジュール310は、例えば、重みの合計が最小化されるまで、デルタ符号化サイクルを繰り返し続けることができる。上述のように、これは、現在の重みの合計が以前の重みの合計よりも大きく、前処理モジュール310からの出力として提供される差分データの系列510が、以前の反復から生成された差分データの系列510である場合に、反復を停止することによって実施することができる。あるいは、前処理モジュール310は、重みの合計が事前定義された、又は設定可能なデータパケットサイズ閾値を下回るまで、デルタ符号化を繰り返す。
【0055】
上記の実施形態は、適用可能であれば、各実施形態に関連して述べた停止基準が満たされるまで、又は最大回数、実行することができる。最大回数は、構成可能な最大回数又は事前定義された最大回数とすることができる。前処理が最大回数実行される場合、前処理モジュール310からの出力として提供される差分データの系列510は、反復から生成される差分データの系列510であってもよく、その結果、その特定の実施形態の停止基準に使用される最良の値を得る。さらなる実施形態では、最大回数は6回である。
【0056】
同様に、及び/又はさらに、いくつかの実施形態では、最小回数の反復を指定することができ、すなわち、結果の任意の評価が行われる前に、最小回数の反復について停止基準を無視することができる。
【0057】
実施形態は、さらに、適用可能な場合には、固定回数の反復について実行することができ、前処理モジュール310からの出力として提供される差分データの系列510は、固定回数の反復の最後の反復から生成された差分データの系列510とすることができる。
固定反復回数は、構成可能な、又は事前定義された固定反復回数とすることができる。
【0058】
図10を参照して、後処理モジュール410の実施形態を説明する。後処理モジュール410は、前処理モジュール310と非常によく似た動作をするが、逆の動作をする。後処理モジュール410は、最初の値520及び1つ以上の差分値530、540を含む差分データの系列510を受信する。差分データの系列510は、前処理モジュール310に提供されるデータセグメントの系列210が再作成されるように処理される。
図10において、差分データの系列510における最初の値520は、データセグメントの系列210における第一のデータセグメント230、すなわち、
図10に示されるデータセグメントの系列210における最も左のデータセグメント230になる。最初の値530は、差分データの系列510の第一の差分値530に加算され、データセグメントの系列210における第二のデータセグメント230を提供する。この第二のデータセグメント230は、差分データの系列510の第二の差分値530に加算され、データセグメントの系列210における第三のデータセグメント230、すなわち、
図10に示されるデータセグメントの系列210における第三のデータセグメント230を提供する。これは、後処理モジュール410に提供される差分データ510のリスト内のすべての差分値530、540について繰り返される。差分データのリスト510内の最後の差分値540を処理した後、後処理モジュール410から提供されるデータセグメント210のリストは、対応する前処理モジュール310に提供されるデータセグメント210のリストと同じデータを含む。後処理モジュール410は、デルタ復号化データとして記述されてもよい。
【0059】
後処理モジュール410は、差分データの系列510がどのように編成され、構成されるかについての情報を必要とする。この情報は、例えば、データパケット220内の制御ビットを介して、後処理モジュール410に提供される任意の他の制御を介して、事前構成によって、及び/又は差分データの系列510を分析することによってなど、いくつかの異なる方法で後処理モジュールに提供され得る。
【0060】
図11を参照して、後処理モジュールのさらなる実施形態を説明する。前処理モジュール310と同様に、後処理モジュール410は、デルタ復号化の2回以上の反復を実行することができる。後処理モジュール410は、実行されるべきデルタ復号化の反復回数に関する情報を必要とし、この情報は、前述の手段のいずれか、又はこの情報を後処理モジュール410に伝達するための任意の他の適切な手段を介して提供され得る。
【0061】
2回以上の反復で前処理されたデータを2回以上の反復で後処理するステップは、
図12に例示されている。この例は、
図8を参照して提示されたものとは逆である。当業者は、本開示を読んで、前処理モジュール310に関連して与えられた説明と、
図10~
図12に関連して与えられた後処理に関する詳細とを参照した後に、デルタ復号化の2回以上の反復を用いて後処理を実行することに問題はないであろう。
【0062】
(分割及び付加)
図13に概略的に示されるように、分割モジュール320の一実施形態は、前処理モジュール310から差分データの系列510を受信し、差分データ510を、符号化モジュール330に提供される差分データの少なくとも2つのブロック1310に分割する。差分データのブロック1310は、すべて同じ長さであってもよいが、非常に十分に異なる長さであってもよく、あるいは同じ長さを有する差分データのいくつかのブロック1310と、異なる長さを有する差分データの他のブロック1310とを有してもよい。なお、差分データのいくつかのブロック1310は、差分データ530、540のみを含むことができるが、差分データのブロック1310のうちの少なくとも1つは、例えば、差分値ではない最初の値520も含む。当然、差分データのブロックの1つは、最後の差分値540を含む。
【0063】
分割モジュール320の目的は、差分データの系列510を差分データのブロック1310に分割して、差分データのブロックがデータセグメントの系列210の特性に相関し、その結果、差分データの系列510の特性に相関するようにすることである。データセグメントの系列210の特性は、データセグメントの系列210の端部における分散と比較して、データセグメントの系列210の開始時において、より高い分散が存在するようなものであってもよい。反対のシナリオも、当然、考えられる。いずれにしても、差分データのブロック1310が受ける符号化を考慮すると、差分データのブロック1310内で可能な限り類似の分散を有することが意味をなす。代替又は追加として、差分データのブロック1310は、可能な限り類似の差分値530、すなわち、ブロック内で可能な限り少ない数の固有値を有することができる。
【0064】
分割モジュール320の一実施形態では、差分データのブロック1310の数は、事前定義された数又は構成可能な数である。さらなる実施形態では、差分データのブロック1310の数は4である。これは、ヘッドセットで使用するためのオーディオプロファイルを本開示の教示に従わせる場合、ブロックの特に有益な数であることが示されている。これは、本発明の発明者らが行った経験的研究の結果である。
【0065】
分割モジュール320の一実施形態では、差分データのブロック1310は、事前定義された長さ又は構成可能な長さ、すなわち、事前定義された数の差分値又は構成可能な数の差分値530を有する。
【0066】
分割モジュール320の一実施形態では、差分データの1つのブロック1310は、1の長さを有し、すなわち、ブロックは、1つの値のみを含む。さらなる実施形態では、1の長さを有する差分データのブロック1310は、最初の値520又は最後の差分値540を含む。
【0067】
差分データの系列510の長さは既知であり、分割モジュール320の目的は、生成されるデータパケット220のサイズを最適化することであるので、ブロックの数及び/又は各ブロックの長さを適応的に決定することは、オーバーヘッドを追加することになる。
これは、データ復号化システム400が、その付加モジュール420内にデータを正常に付加するために、この情報を必要とするためである。これは、典型的には、差分データのブロック1310のうちの少なくとも1つに関連付けられた長さインジケータ、及び/又はデータパケット220に含まれるブロックの数を示すブロックインジケータを有することによって達成され得る。これにより、当業者は、以下の実施形態が、例えば、差分データの各ブロック1310の最小長、差分データの各ブロック1310の最大長、差分データの最小ブロック数1310、及び/又は差分データの最大ブロック数1310と、最も良く対になっていることを理解するであろう。先に列挙した最大値及び最小値は、事前定義され、構成可能であり、あるいは反復機械学習プロセスを介して適合させることができる。
【0068】
一実施形態では、差分データの各ブロック1310の長さ及び/又は差分データ1310のブロックの数は、適応的に決定される。
【0069】
さらなる実施形態では、差分データの各ブロック1310の長さ及び/又は差分データのブロックの数は、差分データのそれぞれのブロック1310内の分散を最小化することによって、適応的に決定される。
【0070】
別のさらなる実施形態では、差分データの各ブロック1310の長さ及び/又は差分データのブロックの数は、差分データの各ブロック1310内の固有値の数を最小化することによって、適応的に決定される。
【0071】
さらに別の実施形態では、差分データの各ブロック1310の長さ及び/又は差分データのブロックの数は、差分データの各ブロック1310内の差分値530の絶対値の平均値について、異なる事前定義された構成可能な目標値を有することによって、適応的に決定される。
【0072】
別のさらなる実施形態では、差分データの各ブロック1310の長さ及び/又は差分データのブロックの数は、多数の差分データ値530にわたるスライディング平均及びスライディング分散を計算することによって、適応的に決定される。スライディング平均及びスライディング分散が、事前定義された又は構成可能なスライディング平均及びスライディング分散の閾値を上回るか又は下回る場合、先行する差分データ値530は、差分データのブロック1310に追加される。これは、差分データの各ブロック1310が、その差分値1310に対して、ある期待信頼区間を有することを意味する。
【0073】
例えば、オーディオプロファイルの可逆圧縮に非常に適した好ましい実施形態では、差分データのブロック数は4である。差分データの1つのブロック1310は、1の長さを有する。1の長さを有する差分データのブロック1310は、最後の差分値540を含む。これは、ヘッドセットで使用するためのオーディオプロファイルを本開示の教示に従わせる場合、ブロックの特に有益な数であることが示されている。オーディオプロファイルは、最後の差分値540が、二番目から最後までの差分値と著しく異なるようなものであり、これは、ブロックの符号化がより効率的になることを意味する。これは、本開示において後に与えられる例に関連して、より詳細に示される。
【0074】
完全を期すために、付加モジュール420の一実施形態の概略図を
図14に示す。付加モジュール420は、例えば復号化モジュール430によって提供される差分データのブロック1310を受信し、分割モジュール320のプロセスを逆にする。必要に応じて、復号化モジュール430は、差分データのブロックの数及び/又は長さに関する情報を提供されるか、又は取得する。情報は事前定義することも、または構成可能なこともあり得、代替又は追加として、ブロックインジケータ及び/又はデータパケット220からの長さインジケータとして情報を抽出することができる。
【0075】
(符号化及び復号化)
図15に概略的に示されるように、符号化モジュール330は、例えば、分割モジュール320からの差分データの1つ以上のブロック1310を提供され、符号化された差分データの1つ以上のブロック1510を、例えば、生成モジュール340に提供する。符号化された差分データの1つ以上のブロック1510のそれぞれは、kパラメータ1520に関連付けられる。
【0076】
符号化モジュール330の実施形態では、符号化は、差分データのブロック1310のうちの少なくともいくつかをライス符号化(coding)又はライス符号化(encoding)することによって実行される。完全かつ簡潔にするために、データのライス符号化は、当技術分野から知られており、バイナリ符号化に適合されたGolomb符号化の形態である。ライス符号化では、データ系列を符号化するときにkパラメータ1520を使用し、m=2kを設定することによって数値xを符号化する。符号化には異なる方法があるが、単なる一例として、qをx/mの床関数とし、q個のバイナリ1で始まり、バイナリ0の後に分数の余り、すなわち、x-q、kビットで符号化されたバイナリを付加する。なお、q個のバイナリ0と、バイナリ1を付加する逆の実装も可能である。これは、いくつかのkパラメータについて繰り返され、符号化された差分データの最も短い、すなわち最小のブロック1510をもたらすkパラメータ1520が、選択されたkパラメータ1520とともに、生成モジュール340への出力として提供される。
【0077】
上記のライスアルゴリズムの短い説明から、より小さなkパラメータ1520は、小さな値を有するデータのセットに対してより効率的であり、より大きなkパラメータ1520は、大きな値を有するデータのセットに対してより効率的であることが明らかである。
【0078】
典型的には、オーディオプロファイルを含むデータセグメントの系列210では、符号化モジュール330に供給される差分データのブロック1310は、異なる分散を有する。これは、ライス符号化を使用して符号化する前に、オーディオプロファイルをデルタ符号化し、差分データのブロック1310に分割することが特に有益であることを意味する。差分データ1310の異なるブロックに対して異なるkパラメータ1520を使用する可能性を有することによって、最適な、又は最適に近いkパラメータ1520が、符号化される差分データ1310のブロックに対して別々に選択されることが可能になる。オーディオプロファイルは、典型的には、デルタ符号化されたオーディオプロファイルの平均値がオーディオプロファイルの異なる部分(ブロック)に対して異なるという結果をもたらす特性を有する。同様に、同じ推論を、既知の特性を有するデータセグメントの任意の系列210に適用することができる。
【0079】
符号化モジュール330の一実施形態では、符号化モジュール330に提供される差分データのブロック1310のうちの少なくとも1つは、事前定義された又は構成可能なkパラメータ1520でライス符号化を使用して符号化される。
【0080】
符号化モジュール330の一実施形態では、符号化モジュール330に提供される差分データのブロック1310のうちの少なくとも1つは、ライス符号化を使用して符号化され、符号化モジュール330は、符号化された差分データのブロック1510ごとに1つのkパラメータ1520を提供する。
【0081】
符号化モジュール330のさらなる実施形態では、符号化モジュール330は、符号化モジュール330に提供される差分データのそれぞれのブロック1310について、差分値530、540の平均ビット数を計算する。計算された平均ビット数は、その最も近い整数部分に丸められ、この丸められた平均ビット数は、丸められた平均ビット数に関連する差分データのブロック1310を符号化するためのkパラメータ1520として使用される。この実施形態は、ビット数の単純な平均化のみを必要とし、差分データのブロック1310の完全な符号化は、最適な、又は最適に近いkパラメータ1520を決定するために必要とされない。これは、本発明者らの洞察力のある発明によって、当技術分野のライスアルゴリズムを研究し、処理コスト及び電流消費の両方から、可能な限り効率的になるように実装を適合させることによって実現された。
【0082】
符号化モジュール330の別のさらなる実施形態では、ライス符号化アルゴリズムは、異なるkパラメータ1520で符号化される差分データの各ブロック1310に対して複数回実行され、差分データの最短圧縮ブロック1510をもたらすkパラメータ1520は、その関連するkパラメータ1520とともに符号化モジュール330の出力として提供される。これは、符号化された差分データのブロック1510の現在の長さが、以前のkパラメータを有する差分データの同じブロック1310の以前の符号化の長さよりも長いときに、反復を停止することによって実装され得る。符号化モジュール330からの出力として提供されるのは、その関連するkパラメータ1520と対になった以前の反復から生成された符号化された差分データのブロック1510である。
【0083】
符号化モジュール330のさらなる実施形態では、ライス符号化は、構成可能な又は事前定義された最大回数の符号化のために、異なるkパラメータ1520を用いて反復的に実行される。符号化モジュール330からの出力として、符号化された差分データの最短ブロック1510及びその関連するkパラメータ1520が提供される。
【0084】
符号化モジュール330の任意の実施形態では、符号化モジュール330に提供される差分データのブロック1310のうちの少なくとも1つは、事前定義された又は構成可能なkパラメータ1520を用いたライス符号化を使用して符号化され得る。
【0085】
符号化モジュール330の任意の実施形態では、最初の値520を含む差分データのブロック1310は、符号化されなくてもよい。追加又は代替として、符号化モジュール330の任意の実施形態では、最後の差分値540を含む差分データ0のブロック1310は、符号化されなくてもよい。符号化モジュール330の代替実施形態として、最初の値520を含む差分データのブロック1310及び/又は最後の差分値540を含む差分データのブロック1310は、事前定義された又は構成可能なkパラメータ1520を使用して符号化され得る。最初の値520及び/又は最後の差分値540を含む差分データのブロック1310を別々に扱うことは、最初の値520及び/又は最後の差分値540が典型的には異なり、多くの場合、差分値530よりも大きいので有益である。これは、最初の値520に隣接する、又は最後の差分値540に隣接する差分値530に適したkパラメータ1520が、最初の値520及び/又は最後の差分値540に適していない可能性があり、全体的な圧縮比が低減され得ることを意味する。
【0086】
上述の符号化モジュール330の説明から、復号化モジュール430は、
図16に概略的に示すように、符号化モジュール330の反転として説明することができる。復号化モジュール430は、符号化された差分データの1つ以上のブロック1510を受信し、所定でない場合には、符号化された差分データの1つ以上のブロック1510のそれぞれに関連するkパラメータ1520を受信する。復号化モジュール430は、kパラメータ1520を使用して、ライス復号化によって符号化データの関連ブロック1510を復号化する。要するに、符号化データのブロック1510の最後のkビットを抽出することによって、最初の分数(x-q)を抽出する。バイナリ0を無視し、q個のバイナリ1を抽出し、差分値530は、c/+分数として復号される。これは、符号化データのブロック1510の終わりまで繰り返される。
【0087】
(生成及び抽出)
図17a~eを参照して、生成モジュール340によって生成されるデータパケット220を説明する。参照された図に提示されたデータの順序は、単に例示の目的のためであり、データパケット220内のデータの順序は、本発明の目的にとって重要ではない。生成モジュール340は、符号化モジュール330から、いくつかの実施形態では、関連するkパラメータ1520とともに、符号化差分データのブロック1510を受信する。フレーズ生成(phrase generating)は、符号化モジュール330から受信したバイナリデータを、全てのデータを含む1つのデータパケット220に配置することを意味する。
【0088】
生成モジュール340の一実施形態では、データパケット220(
図17a参照)は、符号化された差分データの1つ以上のブロック1510を備える。この実施形態は、データパケット220に含まれるオーバーヘッドやメタデータを有さず、データパケットを復号化するために必要なすべてのパラメータは、既知、例えば、予め定められたものであるか、又はデータ復号化システム400によって再作成可能である必要がある。
【0089】
生成モジュール340のさらなる実施形態では、データパケット220(
図17b参照)は、符号化された差分データの1つ以上のブロック1510と、符号化された差分データの1つ以上のブロック1510に関連する1つ以上のkパラメータ1520とを備える。
【0090】
生成モジュール340のさらなる実施形態では、データパケット220(
図17c参照)は、また、デルタ符号化が前処理モジュール310によって実行された反復の数を示すデルタ符号化反復インジケータ1720を備える。
【0091】
生成モジュール340のさらなる実施形態では、データパケット220(
図17d参照)は、最初の値520又は最後の差分値540を別個のデータブロックとして含む。
個別のデータブロックは、符号化されることも、符号化されないこともある。
【0092】
生成モジュール340のさらなる実施形態では、データパケット220(
図17e参照)は、ブロック数インジケータ1730及び/又は1つ以上のブロック長インジケータ1740を備える。これらのインジケータは、分割モジュール320によって提供されるブロックの数及び/又は1つ以上のブロックの長さを示す。
【0093】
一実施形態では、デルタ符号化反復インジケータ1720は、4ビットを使用して表される。kパラメータ1520のそれぞれは、4ビットを使用して表される。最初の値520は、符号化されず、16ビットで表される。
【0094】
さらなる実施形態では、デルタ符号化反復インジケータ1720は、3ビットを使用して表される。kパラメータ1520のそれぞれは、4ビットを使用して表される。最後の差分値540は、符号化されず、16ビットで表される。ブロック数インジケータ1730及び/又は1つ以上のブロック長インジケータ1740は、2ビットで表される。
【0095】
抽出モジュール440は、生成モジュール340とは逆の方法で動作する。抽出モジュール440は、データパケット220からkパラメータ1520を抽出する。デルタ符号化反復インジケータ1720、ブロック数インジケータ1730、及び/又は1つ以上のブロック長インジケータ1740などの情報が、データパケット220内で抽出モジュール440に提供される場合、これらのパラメータ1720、1730、1740も抽出される。データパケット220は、典型的には、抽出モジュール440がデータパケット220の構造を知り、それに応じてデータパケットのデータを抽出することができることを意味する既知のフォーマットであろう。あるいは、ヘッダをデータパケット220に含めることができ、これはデータパケット220の構造を記述する。
【0096】
なお、上記で開示されたデータパケット220は、主に例示のためのものである。データパケット220は、任意の適切な方法で解釈されてもよく、例えば、データの順序は、本発明の目的には無関係である。データパケット220の異なる実施形態は、任意の適切な方法で組み合わせることが可能であり、当業者は、本開示の内容を消化した後に、これがどのように行われるか、及び、例えば、データ符号化システム300及びデータ復号化システム400ならびに関連する方法と一緒にどのように結びつくかを理解するであろう。
【0097】
モジュールの説明と、それらが通信可能に接続される方法から、当業者は、ここで、本明細書の教示が、長さにかかわらず、任意のデータセグメントの系列210に適用され得ることを理解する。データセグメントの系列210が既知の特性のものである場合、より多くのデータセグメントは、典型的には、データセグメントの系列210のより高いサンプルレートを意味する。典型的には、データセグメントの系列210は、ユーザの聴力プロファイルに適合されたFIRオーディオフィルタを表すデータを含む。フィルタが長ければ長いほど、ビット間の相関が大きくなり、前処理モジュール310は、非常に低い分散を有する差分データの系列510を生成する。その結果、符号化モジュール330は、より効率的に動作し、全体的な圧縮比が増加する。
【0098】
データのブロック1310、1510、差分データのブロック1310、及び符号化差分データのブロック1510という用語の間の関係は、データのブロック1310、1510という用語が、差分データのブロック1310又は符号化差分データのブロック1510のいずれか又は両方を備えるような関係であることに留意されたい。その理由は、単に、上記で説明したデータパケット220が、符号化された差分データの1つ以上のブロック1510と、差分データの1つ以上のブロック1310とを含むことができ、データのブロック1310、1510という用語が便利になるからである。
【0099】
これに加えて、圧縮の効率及びその関連する解凍アルゴリズムは、圧縮比に加えて、そのリソース消費によって評価されてもよい。リソース消費は、例えば、メモリ消費、それを完了するために必要なプロセッサ動作の数、電流及び/又はエネルギーの消費などであり得る。本明細書で提示される本発明は、必要とされるオーバーヘッド又はメタデータが少ないため、圧縮比の観点からも、リソース消費の観点からも、非常に効率的である。提示された教示は、上記モジュール310、320、330、340、410、420、430、440を実装するソフトウェアコードを実装又は実行するために使用される任意のハードウェア上で、低要件をもたらす単純な算術関数を使用して実装可能である。これは、例えば
図1のヘッドセット120のような限られたリソースを有するシステムによって圧縮又は解凍が実行される場合に特に有益である。先に述べたように、圧縮及び解凍の両方は、
図1のヘッドセット120又は携帯電話110のいずれかにおいて実行されてもよい。これは、本明細書で教示される方法の効率のために可能である。
【0100】
(圧縮及び解凍方法)
提示されたモジュールに基づいて、
図18を参照して、可逆データ圧縮方法1800が提示される。方法1800は、先に提示されたデータ符号化システム300によって実行されるのに適している。方法1800は、例えば、前処理モジュール310によって、データセグメントの系列210を受信する。データセグメントの系列210は、既知の長さ及び既知の特性を有する。既知の特性は、トレンド、振幅、データセグメントの系列210にわたる変化量の変化量(すなわち、データセグメントの系列210にわたって変化量がどのように変化するか)などを含み得る。
【0101】
データセグメントの系列210は、例えば前処理モジュール310によって前処理され1810、差分データの系列510を生成する。差分データの系列510は、最初の値520と1つ以上の差分値530、540とを含む。前処理1810は、例えば、前処理モジュール310に関連して、本明細書に開示されるような任意の方法で実行されてもよい。前処理1810は、反復プロセスであってもよく、前処理するステップは、そのような場合に、前処理1810が実行された反復の数を示すデルタ符号化反復インジケータ1720を提供してもよい。
【0102】
方法1800は、例えば分割モジュール320によって、差分データの系列510を差分データの少なくとも2つのブロック1310に分割するステップ1820をさらに含む。分割1820は、例えば、分割モジュール320に関連して、本明細書に提示された任意の方法で実行されてもよい。分割は、実装に応じて、差分データの少なくとも2つのブロック1310に加えて、ブロック数インジケータ1730及び/又は1つ以上のブロック長インジケータ1740も提供することができる。
【0103】
方法1800は、ライス符号化を使用して、例えば、符号化モジュール330によって、差分データの少なくとも2つのブロック1310のうちの少なくとも1つを符号化するステップ1830をさらに含む。符号化するステップ1830は、符号化された差分データの少なくとも1つのブロック1510を提供する。符号化するステップ1830は、符号化された差分データのブロック1510のうちの少なくとも1つのためのkパラメータ1520をさらに提供することができる。明確にするために、これは、差分データの任意の数のブロック1510が、符号化するステップ1830によって提供されても提供されなくてもよい事前定義されたkパラメータ1520で符号化されてよく、差分データの任意の数のブロック1510が、前節で説明されたように反復的に符号化されてもよく、関連するkパラメータ1520とともに提供されてもよく、差分データのブロックの全部ではないが任意の数が、符号化されないままであってもよいことを意味する。これに加えて、符号化するステップ1830は、例えば、符号化モジュール330に関連して、本明細書で提示された任意の方法で実行されてもよい。
【0104】
方法1800は、例えば、生成モジュール340によって、符号化された差分データのブロック1510と、符号化するステップ1830で符号化されていない差分データの任意のブロック1310とを含むデータパケット220を生成するステップ1840も含む。生成するステップは、符号化された差分データの1つ以上のブロック1510に関連する1つ以上のkパラメータ1520、及び/又は、例えば分割するステップ1820又は前処理するステップ1810に関連する任意のインジケータを含めることをさらに含むことができる。
要するに、生成するステップ1840は、本明細書で開示される任意の方法で実行されてもよく、本明細書で言及されるデータパケット210のいずれかを生成するように構成されてもよい。
【0105】
図19を参照して、可逆データ解凍方法1900について説明する。方法1900は、先に提示されたデータ復号化システム400によって実行されるのに適している。方法1900は、例えば、抽出モジュール410によって、データパケット220を受信する。データパケット220は、先に提示した可逆データ圧縮方法1800によって生成されたデータパケット220である。
【0106】
方法1900は、例えば、抽出モジュール440によって、データの1つ以上のブロックを抽出するステップ1940を含み、データのブロックは、符号化された差分データの少なくとも1つのブロック1510を含む。抽出するステップ1940は、符号化されていない差分データのブロック、符号化された差分データの抽出されたブロック1510の一部又は全部に関連する1つ以上のkパラメータを抽出すること、及び/又は、例えば、可逆データ圧縮方法1800における分割するステップ1820又は前処理するステップ1810に関連する1つ以上のインジケータを抽出することを含むことができる。抽出するステップ1940は、例えば、抽出モジュール440に関連して、本明細書に提示される任意の方法で実行されてもよい。
【0107】
可逆データ解凍方法1900は、例えば、復号化モジュール430によって、符号化された差分データの少なくとも1つのブロック1510を復号化して1930、差分データの少なくとも1つのブロック1310を提供することをさらに含む。復号化するステップは、復号化する1930ために使用されるべき1つ以上のkパラメータ1520とともに提供されてもよいが、事前定義された又は構成可能なkパラメータ1520を使用して復号化してもよい。復号化するステップ1930は、例えば、復号化モジュール430に関連して、本明細書で提示される任意の方法で実行されてもよい。
【0108】
方法1900はさらに、例えば、付加モジュール420によって、差分データの1つ以上のブロック1310及び符号化されていない差分データの任意のブロックを付加して1920、最初の値520及び1つ以上の差分値530、540を含む差分データの系列510を形成することを含む。付加するステップ1920は、例えば、付加モジュール420に関連して、本明細書で提示される任意の方法で実行されてもよい。
【0109】
方法1900は、また、例えば、後処理モジュールによって、差分データの系列510を後処理して1910、データセグメントの系列210を提供するステップも含む。後処理するステップ1910は、データセグメントの系列210内の最初の値520及び差分値530、540を使用して、データセグメントの系列210内の異なるデータセグメント230を生成する。後処理するステップ1910は、例えば、後処理モジュール410に関連して、本明細書で提示する任意の方法で実行することができる。
【0110】
図20を見ると、携帯電子デバイス2000が示されている。携帯電子デバイスは、コントローラ2010と、メモリ2020と、通信インターフェイス2030とを備えることができる。コントローラ2010は、メモリ2020からユーザに適合された聴力プロファイルを取り出すように構成されてもよく、聴力プロファイルは、データセグメントの系列210によって表される。コントローラ2020は、聴力プロファイルを、先に提示された可逆データ圧縮方法1800に従わせることができる。コントローラは、可逆データ圧縮方法1800によって生成されたデータパケット220を、インターフェイス2030経由で第二の携帯電子デバイスに送信するように、さらに構成され得る。携帯電子デバイス2000のいくつかの実施形態では、携帯電子デバイス2000は、
図1の携帯電話110であり、及び/又は第二の携帯電子デバイスは、
図1のヘッドセット120である。他の実施形態では、携帯電子デバイス2000は、
図1のヘッドセット120であり、及び/又は第二の携帯電子機器は、
図1の携帯電話110である。
【0111】
図21では、携帯電子デバイス2100が提示される。この携帯電子デバイス2100は、コントローラ2110と、メモリ2120と、通信インターフェイス2130とを備えることができる。コントローラ2110は、データパケット220を通信インターフェイス2130経由で受信し、データパケットを上述した可逆データ圧縮方法1900に従わせて、データセグメントの系列を生成するように構成されてもよい。データセグメントの系列210は、携帯電子デバイス2100のユーザに関連付けられ得る聴力プロファイルを表し得る。コントローラ2110は、さらに、聴力プロファイルをメモリ2120に記憶するように構成してもよい。携帯電子デバイス2100のいくつかの実施形態では、携帯電子デバイス2100は、
図1のヘッドセット120である。携帯電子デバイス2100の他の実施形態では、携帯電子デバイス2100は、
図1の携帯電話110である。
【0112】
図22に示すのは、コントローラによって実行されると、可逆データ圧縮方法1800が実行されるように構成されたコンピュータプログラム製品2200である。コンピュータプログラム製品2200は、いくつかの実施形態では、方法1800の一部、又はデータ符号化システム300のモジュール310、320、330、340のうちの1つ以上を実装するように構成され得る。
【0113】
図23に示すのは、コントローラによって実行されると、可逆データ解凍方法1900が実行されるように構成されたコンピュータプログラム製品2300である。コンピュータプログラム製品2300は、いくつかの実施形態では、方法1900の一部、又はデータ復号化システム400のモジュール410、420、430、440のうちの1つ以上を実装するように構成され得る。
【0114】
図24及び
図25a~bを参照すると、データセグメントの系列210及び差分データの系列510がどのように見えるかの例を示す。
図24では、ローパスフィルタ関数sin(x)/x[-8π<x<8π]の時間応答が、データセグメントの系列210として示されている。ローパスフィルタ関数は、データセグメントの非常に平滑な系列210を生成する高サンプルレートでサンプリングされるが、当業者は、説明目的のためであり、より効率的なサンプルレートが少なくともナイキスト・シャノンのサンプリング定理を満たして選択され得ることを認識する。
図24から分かるように、また当技術分野で知られているように、時間領域フィルタの1つの特性は、時間領域フィルタが中心周波数の周りにミラーリングされることである。これは、データの第一の半分又は第二の半分のみが、データセグメントの系列210の一部である必要があることを意味する。欠落した部分は、表された部分の鏡であり、容易に再現することができる。特に言及しないが、このようなデータ系列の一部の省略及び再生は、例えば、前処理モジュール310及び/又は後処理モジュール410によって実行されてもよい。
図25aを参照すると、データセグメントの系列210は、
図24のデータセグメントの系列210の前半に縮小されている。このデータセグメントの系列210は、本開示で先に説明したような前処理を受けている。
図25aの実線は、デルタ符号化の1回の反復後の差分データ2510を表し、破線は、デルタ符号化の2回の反復後の差分データ2520を表す。スケーリングの理由から、2回の反復後の差分データ2520は、
図25bの差分データの系列510とともに提供される。これは、デルタ符号化の効果であり、当業者は、
図25aの2回の反復後の差分データ2520のプロットを、
図25bの2回の反復後の差分データ2520と比較することによって、スケールの差分を把握することができる。差分データの系列510は、第三のデルタ符号化反復に対応する。
図25bに見られるように、最初の値520と最後の差分値540の両方が目立つ。典型的には、差分がFIRオーディオフィルタである場合、最後の差分値540は、最初の値520よりも目立つ。このため、この値を他の差分値530から分離することは、符号化モジュール330から提供される分散、平均、及びkパラメータ1520を増加させるので有益である。
【0115】
本明細書に開示された方法及び装置は、いくつかの場合には、2つの携帯電子デバイス110、120の間でオーディオプロファイルを転送するために具体的に説明されてきたことを強調しておくべきである。これは、本発明の概念の1つの使用に過ぎず、本教示は、携帯であるか否かにかかわらず、単一の電子デバイスにおいて非常に良好に使用することができ、例えば、そのデバイス内の収納空間を節約するために、データセグメントの系列210のサイズを小さくできる。これは、同じ電子デバイスが圧縮と解凍の両方を実行することを意味する。その結果、圧縮に関連して、データセグメントの系列210は、任意の適切な記憶手段から、又は任意の適切なインターフェイスを介して受信され、任意の適切な記憶手段に、又は任意の適切なインターフェイスを介して出力され得る。同様に、解凍に関連して、データパケット220は、任意の適切な記憶手段から、又は任意の適切なインターフェイスを介して受信され、任意の適切な記憶手段に、又は任意の適切なインターフェイスを介して出力され得る。
【0116】
(諸項目)
本発明の範囲は、添付の特許請求の範囲において定義され、以下の諸項目は、本発明の例示的な実施形態とみなされるべきである。
(項目1)
可逆データ圧縮方法(1800)であって、
既知の長さ及び既知の特性のデータセグメントの系列(210)を受信するステップと、
データセグメントの前記系列(210)を前処理して(1810)、最初の値(520)、1つ以上の差分値(530)及び最後の差分値(540)を含む差分データの系列(510)を生成するステップと、
差分データの前記系列(510)を差分データの少なくとも2つのブロック(1310)に分割するステップ(1820)と、
ライス符号化を使用して差分データの少なくとも1つのブロック(1310)を符号化するステップ(1830)であって、それによって符号化された差分データの少なくとも1つのブロック(1510)を提供する、ステップと、
符号化された差分データの前記少なくとも1つのブロック(1510)と、符号化されていない差分データの任意のブロック(1310)とを含むデータパケット(220)を生成するステップ(1840)と、
を含む、可逆データ圧縮方法(1800)。
(項目2)
前記生成するステップ(1840)において、前記データパケット(220)は、1つ以上のkパラメータ(1520)をさらに含み、各kパラメータ(1520)は、符号化された差分データのブロック(1510)に関連付けられる、項目1に記載の可逆データ圧縮方法(1800)。
(項目3)
前記符号化するステップ(1830)は、差分データの少なくとも1つのブロック(1310)を関連するkパラメータ(1520)でライス符号化するステップをさらに含み、前記kパラメータは、差分データの関連する前記ブロック(1310)の前記差分値(530、540)の平均ビット数を計算することによって決定される、項目2に記載の可逆データ圧縮方法(1800)。
(項目4)
前記符号化するステップ(1830)は、差分データの各ブロック(1310)を事前定義された又は構成可能な数のkパラメータ(1520)で反復的にライス符号化するステップと、差分データの各ブロック(1310)の符号化された差分データの最短ブロック(1510)を、符号化された差分データの前記最短ブロック(1510)に関連する前記kパラメータ(1520)とともに生成するステップ(1840)に提供するステップとをさらに含む、項目2に記載の可逆データ圧縮方法(1800)。
(項目5)
前記前処理するステップ(1810)において、差分データの前記系列(510)が、データセグメントの前記系列(210)のデルタ符号化の1回以上の反復によって生成される、項目1~4のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目6)
前記生成するステップ(1840)において、前記データパケット(220)は、前記差分値(530)のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータ(1720)をさらに備える、項目5に記載の可逆データ圧縮方法(1800)。
(項目7)
前記前処理(1810)は、いくつかの反復が繰り返され、前記前処理(1810)の各反復から生成された差分データの前記系列(510)のそれぞれは、分割するステップ(1820)及び符号化するステップ(1830)に供され、
前記可逆データ圧縮方法(1800)は、前記生成するステップ(1840)の前に、
符号化された差分データの各系列(1510)のサイズを計算し、生成するステップ(1840)において最小サイズの符号化された差分データの系列(1510)を使用するステップ
をさらに含む、項目6に記載の可逆データ圧縮方法(1800)。
(項目8)。
前記デルタ符号化は、事前設定された反復回数又は構成可能な反復回数だけ繰り返され、前記反復回数は、2回~10回、好ましくは3回~7回、最も好ましくは4回又は5回である、項目5~7のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目9)
前記デルタ符号化は、前記差分値(530)の分散が最小化されるか、事前定義された分散閾値又は構成可能な分散閾値を下回るまで、繰り返される、項目6に記載の可逆データ圧縮方法(1800)。
(項目10)
前記デルタ符号化は、前記差分値(530)の絶対値の和が最小化されるまで、あるいは事前定義された平均閾値もしくは構成可能平均閾値を下回るまで繰り返される、項目6に記載の可逆データ圧縮方法(1800)。
(項目11)
前記デルタ符号化は、事前定義された最大反復回数、又は構成可能な最大反復回数の間、繰り返される、項目6、7、9、又は10のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目12)
前記最大反復回数が6回である、項目11に記載の可逆データ圧縮方法(1800)。
(項目13)
前記分割するステップ(1820)において、差分データの前記ブロック数が事前定義された数又は設定可能な数である、項目1~12のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目14)
前記分割するステップ(1820)において、差分データの前記系列(510)は、差分データの合計4つのブロック(1310)に分割される、項目1~13のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目15)
前記生成するステップ(1840)において、前記データパケット(220)は、差分データの前記系列(510)が分割される差分データの前記ブロック数を示すブロック数インジケータ(1730)をさらに備える、項目1~14のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目16)
前記生成するステップ(1840)において、前記データパケット(220)は、差分データの前記系列(510)が分割されるブロックのうちの少なくとも1つに関連する少なくとも1つのブロック長インジケータ(1740)をさらに備える、項目1~15のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目17)
前記生成するステップ(1840)において、前記データパケット(220)は、符号化された差分データの各ブロック(1510)に関連する1つのブロック長インジケータ(1740)と、前記データパケット(220)に含まれる差分データの任意のブロック(1310)とをさらに備える、項目1~16のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目18)
前記分割するステップ(1820)において、前記ブロック数は、最小分散を反復的に計算することによって適応的に決定される、項目14~16のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目19)
差分データの前記系列(510)は、等しい長さのブロックに分割される、項目1~18のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目20)
差分データの前記ブロック(1310)のうちの少なくとも2つが異なる長さである、項目1~18のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目21)
差分データの1つのブロック(1310)が1の長さを有する、項目1~20のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目22)
前記分割するステップ(1820)において、差分データの1つのブロック(1310)は、前記最後の差分値(540)のみを含み、前記差分値(530)及び前記最初の値(520)は、差分データの少なくとも1つの他のブロック(1310)に含まれる、項目1~21のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目23)
前記符号化するステップ(1830)は、前記最後の差分値(540)を含む差分データの前記ブロック(1310)を符号化しないことを含む、項目1~22のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目24)
データセグメントの前記系列(210)は、32個のセグメントを含む、項目1~23のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目25)
データセグメントの前記系列(210)の特性は、デジタルフィルタの特性である、項目1~24のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目26)
前記デジタルフィルタは、FIRオーディオフィルタである、項目25に記載の可逆データ圧縮方法(1800)。
(項目27)
データセグメントの前記系列(210)は、ユーザに関連付けられた個人聴力プロファイルを記述する、項目1~26のいずれか一項目に記載の可逆データ圧縮方法(1800)。
(項目28)
前記聴力プロファイルは、ヘッドセット(120)での使用に適合される、項目27に記載の可逆データ圧縮方法(1800)。
(項目29)
項目1~28のいずれか一項目に記載の可逆データ圧縮方法(1800)によって生成されたデータパケット(220)を解凍するための可逆データ解凍方法(1900)であって、前記可逆データ解凍方法(1900)が、
前記データパケット(220)からデータのブロック(1310、1510)を抽出するステップ(1940)であって、データの少なくとも1つのブロック(1310、1510)は、符号化された差分データのブロック(1510)である、ステップと、
符号化された差分データの前記少なくとも1つのブロック(1510)を復号化(1930)し、差分データの1つ以上のブロック(1310)を提供するステップと、
差分データの前記1つ以上のブロック(1310)を、最初の値(520)、差分データの系列(530)及び最後の差分値(540)を含む差分データの1つの系列(510)に付加(1920)するステップと、
前記最初の値(520)に基づいて、差分データの前記系列(510)を後処理して(1910)、データセグメントの系列(210)を提供するステップと、
を含む、可逆データ解凍方法(1900)。
(項目30)
前記データパケット(220)は、1つ以上のkパラメータ(1520)をさらに含み、各kパラメータ(1520)は、符号化された差分データのブロック(1510)に関連付けられ、
前記抽出するステップ(1940)は、前記データパケット(220)から前記1つ以上のkパラメータ(1520)を抽出することを含み、
前記復号化するステップ(1920)は、それらの関連付けられたkパラメータ(1520)を使用して符号化された差分データのブロック(1510)を復号化することをさらに含む、項目29に記載の可逆データ解凍方法(1900)。
(項目31)
前記データパケット(220)に含まれる差分データの前記系列(510)は、データセグメントの前記系列(210)を1回以上デルタ符号化することによって生成され、
前記後処理するステップ(1910)は、差分データの前記系列(510)を1回以上デルタ復号化することを含む、
項目29又は30に記載の可逆データ解凍方法(1900)。
(項目32)
前記データパケット(220)は、前記データパケット(220)内の前記差分値(530)のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータ(1720)をさらに備え、
前記抽出するステップ(1940)は、前記データパケット(220)から、前記デルタ符号化反復インジケータ(1720)を抽出することをさらに含み、
前記後処理するステップ(1910)は、前記デルタ符号化反復インジケータ(1720)によって示されるのと同じ回数実行される、
項目29~31のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目33)
前記データパケット(220)に含まれる差分データ(210)の前記系列510が、事前設定された回数又は設定可能な回数でデルタ符号化され、
前記回数は、2回~10回、好ましくは3回~7回、最も好ましくは4回又は5回であり、
前記後処理するステップ(1910)は、事前設定された前記回数又は設定可能な前記回数、実行される、
項目29~32のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目34)
前記データパケットに含まれるデータ(1310、1510)の前記ブロックは、事前定義されたブロック数又は設定可能なブロック数であり、
前記抽出するステップ(1940)は、事前定義された前記ブロック数又は設定可能な前記ブロック数を抽出することをさらに含む、
項目29~33のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目35)
事前定義された前記ブロック数又は設定可能な前記ブロック数が4である、項目34の可逆データ解凍方法(1900)。
(項目36)
前記データパケット(220)は、差分データの前記系列(510)が分割される差分データの前記ブロック数を示すブロック数インジケータ(1730)をさらに備え、
前記抽出するステップ(1940)は、前記データパケット(220)から前記ブロック数インジケータ(1730)を抽出し、前記データパケット(220)から、前記ブロック数インジケータ(1730)によって示されるのと同じブロック数のデータを抽出することをさらに含む、
項目29~35のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目37)
前記データパケット(220)は、差分データの前記系列(510)が分割されるデータの前記ブロック(1310、1510)のうちの少なくとも1つに関連する少なくとも1つのブロック長インジケータ(1740)をさらに備え、
前記抽出するステップ(1940)は、少なくとも1つのブロック長インジケータ(1740)を抽出することと、前記データパケット(220)からデータの前記1つ以上のブロック(1310、1510)を抽出するために前記ブロック長インジケータ(1740)を使用することと、をさらに含む、項目29~36のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目38)
前記データパケット(220)に含まれる差分データの1つのブロック(1310)は、前記最後の差分値(540)のみを含み、前記差分値(530)は、前記データパケット(220)の差分データの少なくとも1つの他のブロック(1310)に含まれ、
前記抽出するステップ(1940)は、前記最後の差分値(540)を含むデータの1つのブロック(1310、1510)と、1つ以上の差分値(530)及び前記最初の値(520)を含むデータの少なくとも1つの他のブロック(1310、1510)とを抽出することをさらに含む、項目29~37のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目39)
前記データパケット(220)に含まれる差分データの系列(510)が、合計4つのブロック(1310、1510)の差分データに分割され、
前記抽出するステップ(1940)は、合計4つのブロック(1310、1510)のデータを抽出することをさらに含む、
項目29~39のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目40)
前記データパケット(220)に含まれる前記最後の差分値(540)を含む差分データの前記ブロック(1310)は符号化されず、
前記復号化するステップ(1920)は、前記最後の差分値(540)を含むデータの前記ブロック(1310)に適用されない、項目29~39のいずれか一項目に記載の可逆データ解凍方法(1900)。
(項目41)
コントローラと、メモリと、通信インターフェイスとを備える携帯電子デバイスであって、前記コントローラは、前記メモリからユーザに適応された聴力プロファイルを取得し、前記聴力プロファイルを項目1~31のいずれか一項目に記載の方法に従わせて、圧縮データパケットを生成するように構成され、前記コントローラは、前記圧縮データパケットを前記通信インターフェイス経由で第二の携帯電子デバイスに送信するようにさらに構成される、携帯電子デバイス。
(項目42)
前記携帯電子デバイスが携帯電話である、項目41に記載の携帯電子デバイス。
(項目43)
コントローラと、メモリと、通信インターフェイスとを備える携帯電子デバイスであって、前記コントローラは、圧縮されたデータパケットを前記通信インターフェイス経由で受信し、前記データパケットを項目32~43のいずれか一項目に記載の方法に従わせて、データセグメントの系列(210)を生成するように構成され、前記コントローラが、提供されたデータセグメントの前記系列(210)を聴力プロファイルとして前記メモリに記憶するようにさらに構成される、携帯電子デバイス。
(項目44)
前記携帯電子デバイスがヘッドセットである、項目43に記載の携帯電子デバイス。
(項目45)
コントローラによって実行されると、項目1~28のいずれか一項目に記載の可逆データ圧縮方法を実行するように構成されたコンピュータプログラム製品。
(項目46)
コントローラによって実行されると、項目29~40のいずれか一項目に記載の可逆データ解凍方法を実行するように構成されたコンピュータプログラム製品。
【手続補正書】
【提出日】2022-01-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
可逆データ圧縮方法(1800)であって、
既知の長さ及び既知の特性のデータセグメントの系列(210)を受信するステップと、
データセグメントの前記系列(210)を前処理して(1810)、最初の値(520)、1つ以上の差分値(530)及び最後の差分値(540)を含む差分データの系列(510)を
、前記差分値(530)の絶対値の合計が最小化されるか、あるいは事前定義された平均閾値又は構成可能な平均閾値を下回るまで、データセグメントの前記系列(210)のデルタ符号化を繰り返すことによって、生成するステップと、
前記既知の特性に基づいて、差分データの前記系列(510)を差分データの少なくとも2つのブロック(1310)に分割するステップ(1820)と、
ライス符号化を使用して差分データの少なくとも1つのブロック(1310)を符号化するステップ(1830)であって、それによって、符号化された差分データの少なくとも1つのブロック(1510)を提供する、ステップと、
符号化された差分データの前記少なくとも1つのブロック(1510)と、符号化されていない差分データの少なくとも1つのブロック(1310)と、
前記差分値(530)のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータ(1720)とを含むデータパケット(220)を生成するステップ(1840)と、
を含む、可逆データ圧縮方法(1800)。
【請求項2】
データセグメントの前記系列(210)の前記既知の特性は、データセグメントの前記系列(210)の一端での分散がデータセグメントの前記系列(210)の他端での分散よりも高いことである、請求項1に記載の可逆データ圧縮方法(1800)。
【請求項3】
前記生成するステップ(1840)において、前記データパケット(220)は、1つ以上のkパラメータ(1520)をさらに含み、各kパラメータ(1520)は、符号化された差分データのブロック(1510)に関連付けられる、請求項1又は2に記載の可逆データ圧縮方法(1800)。
【請求項4】
前記符号化するステップ(1830)は、差分データの少なくとも1つのブロック(1310)を関連するkパラメータ(1520)でライス符号化するステップをさらに含み、前記kパラメータは、差分データの関連する前記ブロック(1310)の前記差分値(530、540)の平均ビット数を計算することによって決定される、請求項3に記載の可逆データ圧縮方法(1800)。
【請求項5】
前記分割するステップ(1820)において、差分データの1つのブロック(1310)は、前記最後の差分値(540)のみを含み、前記差分値(530)及び前記最初の値(520)は、差分データの少なくとも1つの他のブロック(1310)に含まれる、請求項1~
4のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項6】
前記符号化するステップ(1830)は、前記最後の差分値(540)を含む差分データの前記ブロック(1310)を符号化しないことを含む、請求項1~
5のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項7】
データセグメントの系列の前記特性は、デジタルFIRオーディオフィルタの特性である、請求項1~
6のいずれか一項に記載の可逆データ圧縮方法(1800)。
【請求項8】
請求項1~
7のいずれか一項に記載の可逆データ圧縮方法(1800)によって生成されたデータパケット(220)を解凍するための可逆データ解凍方法(1900)であって、前記可逆データ解凍方法(1900)が、
前記データパケット(220)からデータのブロック(1310、1510)を抽出するステップ(1940)であって、データの少なくとも1つのブロック(1310、1510)は、符号化された差分データのブロック(1510)
と、符号化されていない差分データの少なくとも1つのブロック(1310)
と、前記データパケット(220)内の前記差分値(530)のそれぞれがデルタ符号化された回数を示すデルタ符号化反復インジケータ(1720)とである、ステップと、
符号化された差分データの前記少なくとも1つのブロック(1510)を復号化し(1930)、差分データの1つ以上のブロック(1310)を提供するステップと、
差分データの前記1つ以上のブロック(1310)を、最初の値(520)、差分データの系列(530)及び最後の差分値(540)を含む差分データの1つの系列(510)に付加するステップ(1920)と、
前記最初の値(520)に基づいて、
差分データの前記系列(510)を、前記デルタ符号化反復インジケータ(1720)によって示されるのと同じ回数、デルタ符号化することによって、差分データの前記系列(510)を後処理して(1910)、データセグメントの系列(210)を生成するステップと、
を含む、可逆データ解凍方法(1900)。
【請求項9】
前記データパケット(220)は、1つ以上のkパラメータ(1520)をさらに含み、各kパラメータ(1520)は、符号化された差分データのブロック(1510)に関連付けられ、
前記抽出するステップ(1940)は、前記データパケット(220)から前記1つ以上のkパラメータ(1520)を抽出することを含み、
前記復号化するステップ(1920)は、それらの関連付けられたkパラメータ(1520)を使用して符号化された差分データのブロック(1510)を復号化することをさらに含む、請求項
8に記載の可逆データ解凍方法(1900)。
【請求項10】
前記データパケット(220)に含まれる差分データの1つのブロック(1310)は、前記最後の差分値(540)のみを含み、前記差分値(530)は、前記データパケット(220)の差分データの少なくとも1つの他のブロック(1310)に含まれ、
前記抽出するステップ(1940)は、前記最後の差分値(540)を含むデータの1つのブロック(1310、1510)と、1つ以上の差分値(530)及び前記最初の値(520)を含むデータの少なくとも1つの他のブロック(1310、1510)とを抽出することをさらに含む、請求項
8又は9に記載の可逆データ解凍方法(1900)。
【請求項11】
前記データパケット(220)に含まれる前記最後の差分値(540)を含む差分データの前記ブロック(1310)は、符号化されていない差分データの前記少なくとも1つのブロック(1310)の1つであり、
前記復号化するステップ(1920)は、前記最後の差分値(540)を含むデータの前記ブロック(1310)に適用されない、請求項
8~10のいずれか一項に記載の可逆データ解凍方法(1900)。
【請求項12】
コントローラ(2010)と、メモリ(2020)と、通信インターフェイス(2030)とを備える携帯電子デバイス(2000)であって、前記コントローラ(2010)は、前記メモリ(2020)からユーザに適応された聴力プロファイルを取得し、前記聴力プロファイルを請求項1~
7のいずれか一項に記載の可逆データ圧縮方法(1800)に従わせて、データパケット(220)を生成するように構成され、前記コントローラ(2010)が、前記データパケット(220)を前記通信インターフェイス(2030)経由で第二の携帯電子デバイスに送信するようにさらに構成される、携帯電子デバイス(2000)。
【請求項13】
コントローラ(2110)と、メモリ(2120)と、通信インターフェイス(2130)とを備える携帯電子デバイス(2100)であって、前記コントローラ(2110)は、データパケット(220)を前記通信インターフェイス(2130)経由で受信し、前記データパケットを請求項
8~11のいずれか一項に記載の可逆データ解凍方法(1900)に従わせて、データセグメントの系列(210)を生成するように構成され、前記コントローラ(2110)が、データセグメントの前記系列(210)を聴力プロファイルとして前記メモリに記憶するようにさらに構成される、携帯電子デバイス(2100)。
【請求項14】
コントローラによって実行されると、請求項1~
7のいずれか一項に記載の可逆データ圧縮方法(1800)を実行するように構成されたコンピュータプログラム製品(2200)。
【請求項15】
コントローラによって実行されると、請求項
8~11のいずれか一項に記載の可逆データ解凍方法(1900)を実行するように構成されたコンピュータプログラム製品(2300)。
【国際調査報告】