IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特許7372347データ圧縮方法およびコンピューティングデバイス
<>
  • 特許-データ圧縮方法およびコンピューティングデバイス 図1
  • 特許-データ圧縮方法およびコンピューティングデバイス 図2
  • 特許-データ圧縮方法およびコンピューティングデバイス 図3
  • 特許-データ圧縮方法およびコンピューティングデバイス 図4
  • 特許-データ圧縮方法およびコンピューティングデバイス 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】データ圧縮方法およびコンピューティングデバイス
(51)【国際特許分類】
   H03M 7/30 20060101AFI20231024BHJP
   H03M 7/40 20060101ALI20231024BHJP
【FI】
H03M7/30 Z
H03M7/40
【請求項の数】 27
(21)【出願番号】P 2021568939
(86)(22)【出願日】2020-12-14
(65)【公表番号】
(43)【公表日】2022-07-14
(86)【国際出願番号】 CN2020136231
(87)【国際公開番号】W WO2021129445
(87)【国際公開日】2021-07-01
【審査請求日】2021-12-07
(31)【優先権主張番号】201911385235.6
(32)【優先日】2019-12-28
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】202010261686.5
(32)【優先日】2020-04-04
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【弁理士】
【氏名又は名称】野村 進
(72)【発明者】
【氏名】周 文
(72)【発明者】
【氏名】▲劉▼ 中全
(72)【発明者】
【氏名】▲孫▼ 励天
(72)【発明者】
【氏名】▲蒋▼ 泓峰
【審査官】川口 貴裕
(56)【参考文献】
【文献】特表2018-522457(JP,A)
【文献】特開2005-347780(JP,A)
【文献】米国特許出願公開第2002/0097172(US,A1)
【文献】米国特許第10459954(US,B1)
【文献】米国特許第05941938(US,A)
【文献】特開2014-039256(JP,A)
【文献】国際公開第2002/048870(WO,A1)
【文献】米国特許出願公開第2019/0220533(US,A1)
【文献】米国特許第08429111(US,B1)
【文献】米国特許出願公開第2019/0026637(US,A1)
【文献】Kedar Tatwawadi,DeepZip: Lossless Compression using Recurrent Networks[online],2018年01月28日,https://web.archive.org/web/20180128081546/https://web.stanford.edu/~kedart/files/deepzip.pdf
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/30
H03M 7/40
(57)【特許請求の範囲】
【請求項1】
データ圧縮方法であって、前記方法は、コンピューティングデバイスに適用され、前記方法は、
圧縮されるべきデータを受信し、前記圧縮されるべきデータのデータタイプであって、テキストタイプ、実行可能プログラムタイプ、ピクチャタイプ、ビデオタイプ、データベースタイプ、又は共通タイプから選択されるデータタイプを識別するステップと、
前記データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択するステップと、
前記選択された1つまたは複数のデータ圧縮モデルに基づき、算術符号化を介して、前記圧縮されるべきデータを圧縮するステップと
を含む方法。
【請求項2】
第1のサンプルデータを使用していくつかのデータ圧縮モデルを生成するテップと、
前記いくつかのデータ圧縮モデルのうちの前記1つまたは複数のデータ圧縮モデル前記コンピューティングデバイスに記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記コンピューティングデバイスに記憶された前記1つまたは複数のデータ圧縮モデルをアップグレードするステップ
をさらに含む、請求項2に記載の方法。
【請求項4】
各データ圧縮モデルは、識別子を有し、前記方法は、
前記識別子に基づいて、対応するデータ圧縮モデルを取得するステップ
をさらに含む、請求項1に記載の方法。
【請求項5】
前記圧縮されるべきデータの前記データタイプと前記1つまたは複数のデータ圧縮モデルとの間の対応関係を前記コンピューティングデバイスに記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項6】
前記コンピューティングデバイスは、M個のデータタイプ識別モデルを記憶し、各データタイプ識別モデルは、P個のデータタイプの発生確率を識別するために使用され、前記圧縮されるべきデータのデータタイプを識別する前記ステップは、
前記M個のデータタイプ識別モデルに基づいて、前記圧縮されるべきデータに対応するM個の確率セットを決定するステップであって、各確率セットはP個の初期確率値を含み、前記P個の初期確率値の各々は前記圧縮されるべきデータがデータタイプのものである確率を示すために使用され、Mは1以上の整数であり、Pは1以上の整数である、決定するステップと、
前記M個の確率セットに基づいて、前記圧縮されるべきデータの前記データタイプを決定するステップと
を含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記M個の確率セットに基づいて、前記圧縮されるべきデータの前記データタイプを決定する前記ステップは、
前記M個の確率セット、および前記M個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得するステップと、
前記圧縮されるべきデータの前記データタイプとして、前記P個の中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定するステップと
を含む、請求項6に記載の方法。
【請求項8】
第2のサンプルデータを使用して前記M個のデータタイプ識別モデルを生成するテップ
をさらに含む、請求項6または7に記載の方法。
【請求項9】
コンピューティングデバイスであって、1つまたは複数のプロセッサと、人工知能(AI)チップとを備え、
前記1つまたは複数のプロセッサは、圧縮されるべきデータを受信し、前記圧縮されるべきデータのデータタイプであって、テキストタイプ、実行可能プログラムタイプ、ピクチャタイプ、ビデオタイプ、データベースタイプ、又は共通タイプから選択されるデータタイプを識別することと、
前記データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択することと、
前記選択された1つまたは複数のデータ圧縮モデルに基づき、算術符号化を介して、前記圧縮されるべきデータを圧縮することと
を行うように構成されている、
コンピューティングデバイス。
【請求項10】
前記1つまたは複数のプロセッサは、第1のプロセッサおよび第2のプロセッサを備え、
前記第1のプロセッサは、前記圧縮されるべきデータを受信し、前記圧縮されるべきデータの前記データタイプを識別することと、前記データタイプに基づいて、前記1つまたは複数のデータ圧縮モデルを選択することとを行うように構成されており、
前記第2のプロセッサは、前記選択された1つまたは複数のデータ圧縮モデルに基づいて、前記圧縮されるべきデータを圧縮するように構成されている、
請求項9に記載のコンピューティングデバイス。
【請求項11】
前記コンピューティングデバイスは、メモリをさらに備え、前記第1のプロセッサは、前記圧縮されるべきデータの前記データタイプと前記1つまたは複数のデータ圧縮モデルとの間の対応関係を前記メモリに記憶するようにさらに構成されている、請求項10に記載のコンピューティングデバイス。
【請求項12】
記AIチップは、第1のサンプルデータを使用していくつかのデータ圧縮モデルを生成するうに構成されており、
前記第1のプロセッサは、前記いくつかのデータ圧縮モデルのうちの前記1つまたは複数のデータ圧縮モデル前記コンピューティングデバイスに記憶するようにさらに構成されている、
請求項10に記載のコンピューティングデバイス。
【請求項13】
前記第1のプロセッサまたは前記第2のプロセッサは、前記コンピューティングデバイスに記憶された前記1つまたは複数のデータ圧縮モデルをアップグレードするようにさらに構成されている、請求項12に記載のコンピューティングデバイス。
【請求項14】
各データ圧縮モデルは、識別子を有し、
前記第1のプロセッサは、前記選択されたデータ圧縮モデルの識別子を前記第2のプロセッサに送信するようにさらに構成されており、
前記第2のプロセッサは、前記識別子に基づいて、対応するデータ圧縮モデルを取得するようにさらに構成されている
請求項10に記載のコンピューティングデバイス。
【請求項15】
前記コンピューティングデバイスは、M個のデータタイプ識別モデルを記憶し、各データタイプ識別モデルは、P個のデータタイプの発生確率を識別するために使用され、
前記第1のプロセッサは、前記M個のデータタイプ識別モデルに基づいて、前記圧縮されるべきデータに対応するM個の確率セットを決定することであって、各確率セットはP個の初期確率値を含み、前記P個の初期確率値の各々は前記圧縮されるべきデータがデータタイプのものである確率を示すために使用され、Mは1以上の整数であり、Pは1以上の整数である、決定することと、
前記M個の確率セットに基づいて、前記圧縮されるべきデータの前記データタイプを決定することと
を行うように特に構成されている、
請求項10から14のいずれか一項に記載のコンピューティングデバイス。
【請求項16】
前記第1のプロセッサは、前記M個の確率セット、および前記M個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得することと、
前記圧縮されるべきデータの前記データタイプとして、前記P個の中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定することと
を行うように特に構成されている、請求項15に記載のコンピューティングデバイス。
【請求項17】
記AIチップは、第2のサンプルデータを使用して前記M個のデータタイプ識別モデルを生成するうにさらに構成されている、請求項15または16に記載のコンピューティングデバイス。
【請求項18】
前記第1のプロセッサは、中央処理装置であり、前記第2のプロセッサは、コプロセッサである、請求項10から17のいずれか一項に記載のコンピューティングデバイス。
【請求項19】
人工知能(AI)チップを備えたデータ圧縮装置であって、コンピューティングデバイス内に位置し、第1の処理モジュールおよび第2の処理モジュールを備え、
前記第1の処理モジュールは、圧縮されるべきデータを受信し、前記圧縮されるべきデータのデータタイプであって、テキストタイプ、実行可能プログラムタイプ、ピクチャタイプ、ビデオタイプ、データベースタイプ、又は共通タイプから選択されるデータタイプを識別することと、前記データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択することとを行うように構成されており、
前記第2の処理モジュールは、前記選択された1つまたは複数のデータ圧縮モデルに基づき、算術符号化を介して、前記圧縮されるべきデータを圧縮するように構成されている、
データ圧縮装置。
【請求項20】
前記データ圧縮装置は、記憶モジュールをさらに備え、前記第1の処理モジュールは、前記圧縮されるべきデータの前記データタイプと前記1つまたは複数のデータ圧縮モデルとの間の対応関係を前記記憶モジュールに記憶するようにさらに構成されている、請求項19に記載の装置。
【請求項21】
記AIチップは、第1のサンプルデータを使用して、いくつかのデータ圧縮モデルを生成するうに構成されており、
前記第1の処理モジュールは、前記いくつかのデータ圧縮モデルのうちの前記1つまたは複数を前記コンピューティングデバイスに記憶するようにさらに構成されている
請求項19に記載の装置。
【請求項22】
前記第1の処理モジュールまたは前記第2の処理モジュールは、前記コンピューティングデバイスに記憶された前記1つまたは複数のデータ圧縮モデルをアップグレードするようにさらに構成されている、請求項21に記載の装置。
【請求項23】
各データ圧縮モデルは、識別子を有し、
前記第1の処理モジュールは、前記選択されたデータ圧縮モデルの識別子を前記第2の処理モジュールに送信するようにさらに構成されており、
前記第2の処理モジュールは、前記識別子に基づいて、対応するデータ圧縮モデルを取得するようにさらに構成されている
請求項19に記載の装置。
【請求項24】
前記コンピューティングデバイスは、M個のデータタイプ識別モデルを記憶し、各データタイプ識別モデルは、P個のデータタイプの発生確率を識別するために使用され、
前記第1の処理モジュールは、前記M個のデータタイプ識別モデルに基づいて、前記圧縮されるべきデータに対応するM個の確率セットを決定することであって、各確率セットはP個の初期確率値を含み、前記P個の初期確率値の各々は前記圧縮されるべきデータがデータタイプのものである確率を示すために使用され、Mは1以上の整数であり、Pは1以上の整数である、決定することと、
前記M個の確率セットに基づいて、前記圧縮されるべきデータの前記データタイプを決定することと
を行うように特に構成されている、
請求項19から23のいずれか一項に記載の装置。
【請求項25】
前記第1の処理モジュールは、前記M個の確率セット、および前記M個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得することと、
前記圧縮されるべきデータの前記データタイプとして、前記P個の中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定することと
を行うように特に構成されている、請求項24に記載の装置。
【請求項26】
記AIチップは、第2のサンプルデータを使用して前記M個のデータタイプ識別モデルを生成するうにさらに構成されている、請求項24または25に記載の装置。
【請求項27】
前記第1の処理モジュールは、中央処理装置であり、前記第2の処理モジュールは、コプロセッサである、請求項19から26のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年12月28日に中国国家知識産権局に出願された「DATA COMPRESSION METHOD」という名称の中国特許出願第201911385235.6号に基づく優先権を主張し、2020年4月4日に中国国家知識産権局に出願された「DATA COMPRESSION METHOD AND COMPUTING DEVICE」という名称の中国特許出願第202010261686.5号に基づく優先権をさらに主張し、それらの全体が参照により本明細書に組み込まれる。
【0002】
本出願は、データ圧縮分野に関し、特に、データ圧縮方法およびコンピューティングデバイスに関する。
【背景技術】
【0003】
一般に、データ記憶コストを低減するために、プロセッサは、データ圧縮アルゴリズムに基づいて元のデータを圧縮し、具体的には、データ冗長性を低減し、元のデータによって占有される記憶容量を低減するために、特定の方法に従って元のデータを再構築し得る。一般に使用されるデータ圧縮アルゴリズムとしては、辞書符号化およびエントロピー符号化がある。算術符号化は、エントロピー符号化において最も高い圧縮率を有するエントロピー符号化技術である。いわゆる算術符号化とは、元のデータの各ビット(bit)の確率を0~1の範囲の値に符号化することである。シャノンが提案した情報理論によれば、情報の予測値が実際の確率分布に近いほど、算術符号化の圧縮率は高くなる。現在、プロセッサは、大量のデータ圧縮モデルに基づいて元のデータにおける各ビットの確率を予測し、次いで、圧縮されるべきデータの確率に基づいて、圧縮されるべきデータを圧縮して、圧縮データを取得する。したがって、算術符号化を介してプロセッサがデータ圧縮を実行するためのメモリオーバーヘッドは比較的大きく、符号化時間は比較的長い。したがって、算術符号化を介してデータ圧縮を実行するためのメモリオーバーヘッドおよび時間オーバーヘッドをどのように低減するかが、解決すべき喫緊の問題となっている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願は、算術符号化を介してデータ圧縮を実行するためのメモリオーバーヘッドおよび時間オーバーヘッドをどのように低減するかという問題を解決するための、データ圧縮方法およびコンピューティングデバイスを提供する。
【課題を解決するための手段】
【0005】
上記の目的を達成するために、本出願では以下の技術的解決策が使用される。
【0006】
第1の態様によれば、本出願は、データ圧縮方法を提供する。この方法は、コンピューティングデバイスに適用され、この方法は、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別するステップと、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択するステップと、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するステップとを含む。
【0007】
たとえば、データタイプとしては、限定はしないが、テキストタイプ、ピクチャタイプ、ビデオタイプなどがある。各データタイプは、データ圧縮モデルに対応する。たとえば、テキストタイプに対応するデータ圧縮モデルは、テキストモデル、ワードモデル、またはネストモデルであり、ピクチャタイプに対応するデータ圧縮モデルは、レコードモデル、ピクチャタイプ、またはピクチャフォーマットjpegモデルであり、ビデオタイプに対応するデータ圧縮モデルは、レコードモデル、wavモデル、またはスパースモデルである。各データタイプは2つ以上のデータ圧縮モデルに対応することが理解され得る。
【0008】
本出願では、圧縮されるべきデータをすべてのデータ圧縮モデルに基づいて圧縮する代わりに、圧縮されるべきデータのデータタイプが識別され、圧縮されるべきデータのデータタイプに基づいて適用可能なデータ圧縮モデルが選択されて、選択されたデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する。データタイプに一致する選択されたデータ圧縮モデルの数は、従来技術における算術符号化を介してデータ圧縮を実行するためのデータ圧縮モデルの数よりも少ない。したがって、算術符号化を介してデータ圧縮を実行するためのメモリオーバーヘッドおよび時間オーバーヘッドが低減される。
【0009】
任意選択で、第1の態様において提供される方法は、コンピューティングデバイス内の第1のプロセッサによって実行されることができ、第1のプロセッサは、主に中央処理装置である。あるいは、この方法は、第1のプロセッサおよび第2のプロセッサによって一緒に実行されてもよい。第2のプロセッサもコンピューティングデバイス内に位置し、コンピューティング能力を有し、データ圧縮機能を引き受けるように構成され、コプロセッサと呼ばれる。コプロセッサを使用してデータ圧縮動作を共有することにより、第1のプロセッサの計算の負担をさらに低減することができる。具体的には、第1のプロセッサは、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別し、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択する。第2のプロセッサは、選択されたデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する。
【0010】
可能な実装形態では、データ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する前に、方法は、いくつかのデータ圧縮モデルを生成するために、第1のサンプルデータを訓練するステップと、いくつかのデータ圧縮モデルまたはいくつかのデータ圧縮モデルのサブセットをコンピューティングデバイスに記憶して、データ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するステップとをさらに含む。
【0011】
いくつかのデータ圧縮モデルのサブセットは、基本圧縮機能を有し、いくつかのデータ圧縮モデルから選択されるいくつかのデータ圧縮モデルを指す。基本圧縮機能を有するこれらのデータ圧縮モデルを組み合わせることによって、他のデータ圧縮モデルの機能が実装され得る。
【0012】
任意選択で、コンピューティングデバイス内に人工知能(Artificial Intelligence、AI)チップが配置されてもよく、人工知能チップは、いくつかのデータ圧縮モデルを生成するために、第1のサンプルデータを訓練する。任意選択で、コンピューティングデバイス内に人工知能チップが配置されなくてもよく、いくつかのデータ圧縮モデルを生成するために、第1のプロセッサまたは第2のプロセッサが第1のサンプルデータを訓練する。人工知能チップが配置され、いくつかのデータ圧縮モデルを生成するために、人工知能チップが第1のサンプルデータを訓練する場合、コンピューティングデバイス内の第1のプロセッサまたは第2のプロセッサの計算負担をさらに低減することができる。
【0013】
具体的には、少なくとも3つの実装形態が本明細書に含まれる。実装形態(1): いくつかのデータ圧縮モデルまたはいくつかのデータ圧縮モデルのサブセットは、コンピューティングデバイスのメモリに記憶され、第1のプロセッサおよび/または第2のプロセッサは、メモリから、圧縮されるべきデータのデータタイプに一致するデータ圧縮モデルを取得し得る。実装形態(2): 第2のプロセッサは、第2のプロセッサのキャッシュを有し、いくつかのデータ圧縮モデルまたはいくつかのデータ圧縮モデルのサブセットは、第2のプロセッサのキャッシュに記憶され、第2のプロセッサは、第2のプロセッサのキャッシュから、圧縮されるべきデータのデータタイプに一致するデータ圧縮モデルを取得し得る。実装形態(3): 第2のプロセッサは処理チップであるので、いくつかのデータ圧縮モデルまたはいくつかのデータ圧縮モデルのサブセットは、処理チップがモデルの機能をロードすることができるように、処理チップ製造中に処理チップ内に配置され得る。実装形態(2)または(3)において、各データ圧縮モデルの識別子は、コンピューティングデバイスのメモリおよび第2のプロセッサのキャッシュに記憶(または、チップがモデルの機能をロードすることができるように、チップ製造中に第2のプロセッサに配置)されてもよい。したがって、データタイプに一致するデータ圧縮モデルを選択した後、第1のプロセッサは、データ圧縮モデルの識別子を第2のプロセッサに送信してもよく、第2のプロセッサは、データ圧縮モデルの識別子に基づいてデータ圧縮モデルを取得する。
【0014】
任意選択で、この方法は、コンピューティングデバイスに記憶されたデータ圧縮モデルをアップグレードするステップをさらに含む。本明細書では「アップグレード」とは、新しいデータ圧縮モデルを追加すること、使用されない、もしくは頻繁に使用されないデータ圧縮モデルを削除すること、またはデータ圧縮モデルのうちの1つまたは複数を更新することを指す。
【0015】
任意選択で、この方法は、M個のデータタイプ識別モデルを生成するために第2のサンプルデータを訓練するステップをさらに含む。第2のサンプルデータを訓練する動作は、上述の人工知能チップによって完了されてもよく、または第1のプロセッサもしくは第2のプロセッサによって完了されてもよい。
【0016】
他の可能な実装形態では、コンピューティングデバイスは、M個のデータタイプ識別モデルを記憶し、各データタイプ識別モデルは、P個のデータタイプの発生確率を識別するために使用される。圧縮されるべきデータのデータタイプを識別するステップは、M個のデータタイプ識別モデルに基づいて、圧縮されるべきデータに対応するM個の確率セットを決定するステップであって、各確率セットはP個の初期確率値を含み、P個の初期確率値の各々は圧縮されるべきデータがデータタイプのものである確率を示すために使用され、Mは1以上の整数であり、Pは1以上の整数である、決定するステップと、M個の確率セットに基づいて圧縮されるべきデータのデータタイプを決定するステップとを含む。
【0017】
したがって、コンピューティングデバイスは、データタイプに基づいて、圧縮されるべきデータの複数の可能なデータタイプのものであり、モデルによって出力される確率を識別し、さらに、複数の可能なデータタイプの確率に基づいて、圧縮されるべきデータのデータタイプを決定し、その結果、コンピューティングデバイスは、圧縮されるべきデータのデータタイプに基づいて、適用可能なデータ圧縮モデルを決定し、適用可能なデータ圧縮モデルに基づいて、圧縮されるべきデータに対してデータ圧縮を実行し得る。データタイプに一致する選択されたデータ圧縮モデルの数は、従来技術における算術符号化を介してデータ圧縮を実行するためのデータ圧縮モデルの数よりも少ない。したがって、算術符号化を介してデータ圧縮を実行するためのメモリオーバーヘッドおよび時間オーバーヘッドが低減される。
【0018】
加えて、異なるデータタイプ識別モデルによって異なるデータタイプを識別する精度は、異なり得る。本出願では、複数のデータタイプ識別モデルを使用して、圧縮されるべきデータの複数の可能なデータタイプの異なる確率を出力し、複数の可能なデータタイプの異なる確率に基づいて、圧縮されるべきデータのデータタイプが決定されて、圧縮されるべきデータのデータタイプを識別する精度率が高まる。
【0019】
任意選択で、M個の確率セットに基づいて、圧縮されるべきデータのデータタイプを決定するステップは、M個の確率セット、およびM個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得するステップと、圧縮されるべきデータのデータタイプとして、P個の中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定するステップとを含む。
【0020】
本出願では、圧縮されるべきデータのデータタイプの中間値は、データタイプ識別モデルの重み比と、複数の可能なデータタイプの異なる確率とに基づいて決定され、圧縮されるべきデータのデータタイプは、精度しきい値と中間値とに基づいて決定され、圧縮されるべきデータのデータタイプを識別する精度率が高まる。
【0021】
第2の態様によれば、本出願は、コンピューティングデバイスを提供する。コンピューティングデバイスは、1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別することと、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択することと、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮することとを行うように構成されている。
【0022】
可能な実装形態では、1つまたは複数のプロセッサは、第1のプロセッサおよび第2のプロセッサを含む。第1のプロセッサは、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別することと、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択することとを行うように構成されている。第2のプロセッサは、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するように構成されている。したがって、他のプロセッサによってデータ圧縮処理が実行されるので、算術符号化の圧縮性能が事実上向上する。
【0023】
任意選択で、第1のプロセッサは中央処理装置であり、第2のプロセッサはコプロセッサである。
【0024】
他の可能な実装形態では、コンピューティングデバイスは、AIチップをさらに含み、AIチップは、いくつかのデータ圧縮モデルを生成するために、第1のサンプルデータを訓練するように構成されている。第1のプロセッサは、いくつかのデータ圧縮モデルまたはいくつかのデータ圧縮モデルのサブセットをコンピューティングデバイスに記憶するようにさらに構成されている。
【0025】
任意選択で、第1のプロセッサまたは第2のプロセッサは、コンピューティングデバイスに記憶されたデータ圧縮モデルをアップグレードするようにさらに構成されている。
【0026】
他の可能な実装形態では、AIチップは、M個のデータタイプ識別モデルを生成するために第2のサンプルデータを訓練するようにさらに構成されている。
【0027】
他の可能な実装形態では、各データ圧縮モデルは、識別子を有し、第1のプロセッサは、選択されたデータ圧縮モデルの識別子を第2のプロセッサに送信するようにさらに構成されている。第2のプロセッサは、識別子に基づいて、対応するデータ圧縮モデルを取得するようにさらに構成されている。
【0028】
他の可能な実装形態では、コンピューティングデバイスは、M個のデータタイプ識別モデルを記憶し、各データタイプ識別モデルは、P個のデータタイプの発生確率を識別するために使用される。第1のプロセッサは、M個のデータタイプ識別モデルに基づいて、圧縮されるべきデータに対応するM個の確率セットを決定することであって、各確率セットはP個の初期確率値を含み、P個の初期確率値の各々は圧縮されるべきデータがデータタイプのものである確率を示すために使用され、Mは1以上の整数であり、Pが1以上の整数である、決定することと、M個の確率セットに基づいて、圧縮されるべきデータのデータタイプを決定することとを行うように特に構成されている。
【0029】
任意選択で、第1のプロセッサは、M個の確率セット、およびM個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得することと、圧縮されるべきデータのデータタイプとして、P個の中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定することとを行うように特に構成されている。
【0030】
第3の態様によれば、本出願の一実施形態は、データ圧縮装置をさらに提供する。有益な効果については、第1の態様の説明を参照されたい。詳細は、本明細書では再度説明しない。データ圧縮装置は、第1の態様の一例におけるアクションを実装する機能を有する。この機能は、ハードウェアによって実装されてもよく、または対応するソフトウェアを実行するハードウェアによって実装されてもよい。ハードウェアまたはソフトウェアは、機能に対応する1つまたは複数のモジュールを含む。可能な設計では、データ圧縮装置は、第1の処理モジュールおよび第2の処理モジュールを含む。第1の処理モジュールは、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別することと、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択することとを行うように構成されている。第2の処理モジュールは、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するように構成されている。第1の処理モジュールは、第1のプロセッサの機能を実装してもよい。第2の処理モジュールは、第2のプロセッサの機能を実装してもよい。これらのモジュールは、第1の態様における方法例において、対応する機能を実行することができる。詳細については、例の詳細な説明を参照されたい。詳細は、本明細書では再度説明しない。
【0031】
任意選択で、データ圧縮装置は、記憶モジュールをさらに含み、第1の処理モジュールは、圧縮されるべきデータのデータタイプと1つまたは複数のデータ圧縮モデルとの間の対応関係を記憶モジュールに記憶するようにさらに構成されている。記憶モジュールは、コンピューティングデバイス内のキャッシュ、第2のプロセッサのキャッシュ、または記憶機能を有する他の構成要素とすることができる。
【0032】
任意選択で、データ圧縮装置は、AIチップをさらに含み、AIチップは、いくつかのデータ圧縮モデルを生成するために、第1のサンプルデータを訓練するように構成されている。第1の処理モジュールは、いくつかのデータ圧縮モデルまたはいくつかのデータ圧縮モデルのサブセットをコンピューティングデバイスに記憶するようにさらに構成されている。
【0033】
任意選択で、第1の処理モジュールまたは第2の処理モジュールは、コンピューティングデバイスに記憶されたデータ圧縮モデルをアップグレードするようにさらに構成されている。
【0034】
任意選択で、各データ圧縮モデルは、識別子を有し、第1の処理モジュールは、選択されたデータ圧縮モデルの識別子を第2の処理モジュールに送信するようにさらに構成されている。第2の処理モジュールは、識別子に基づいて、対応するデータ圧縮モデルを取得するようにさらに構成されている。
【0035】
任意選択で、コンピューティングデバイスは、M個のデータタイプ識別モデルを記憶し、各データタイプ識別モデルは、P個のデータタイプの発生確率を識別するために使用される。第1の処理モジュールは、M個のデータタイプ識別モデルに基づいて、圧縮されるべきデータに対応するM個の確率セットを決定することであって、各確率セットはP個の初期確率値を含み、P個の初期確率値の各々は圧縮されるべきデータがデータタイプのものである確率を示すために使用され、Mは1以上の整数であり、Pは1以上の整数である、決定することと、M個の確率セットに基づいて、圧縮されるべきデータのデータタイプを決定することとを行うように特に構成されている。
【0036】
任意選択で、第1の処理モジュールは、M個の確率セット、およびM個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得することと、圧縮されるべきデータのデータタイプとして、P個の中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定することとを行うように特に構成されている。
【0037】
第4の態様によれば、データ圧縮方法が提供される。この方法は、コンピューティングデバイスに適用され、コンピューティングデバイスは、第1のプロセッサおよび第2のプロセッサを含む。第1のプロセッサは、圧縮されるべきデータを受信するように構成され、第2のプロセッサは、圧縮されるべきデータを圧縮するように構成されている。
【0038】
第1の態様において提供されるデータ圧縮方法と比較して、第4の態様において提供される方法では、データ圧縮モデルは、圧縮されるべきデータのデータタイプに基づいてスクリーニングされず、第2のプロセッサのみが、圧縮動作を処理するように特に構成されている。したがって、第1のプロセッサは、他のデータサービスを処理するために解放することができる。これにより、第1のプロセッサの計算負担が低減される。
【0039】
第1のプロセッサおよび第2のプロセッサは、第1の態様において説明したものと一致し、詳細は、本明細書では再度説明しない。
【0040】
第5の態様によれば、第4の態様において提供されるデータ圧縮方法を実行するように構成されたコンピューティングデバイスが提供される。
【0041】
第6の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、コンピュータプログラムコードを含み、コンピュータプログラムコードが実行されると、上記の態様におけるコンピューティングデバイスによって実行される方法が実行される。
【0042】
第7の態様によれば、本出願は、チップシステムを提供する。チップシステムは、上記の態様における方法においてコンピューティングデバイスの機能を実装するように構成されたプロセッサを含む。可能な設計では、チップシステムは、プログラム命令および/またはデータを記憶するように構成されたメモリをさらに含む。チップシステムは、チップを含み得る、またはチップと他の個別構成要素とを含み得る。
【0043】
第8の態様によれば、本出願は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、コンピュータプログラムを記憶する。コンピュータプログラムが実行されると、上記の態様においてコンピューティングデバイスによって実行される方法が実施される。
【0044】
本出願では、コンピューティングデバイスおよびデータ圧縮装置の名称は、デバイス自体を限定するものではない。実際の実装形態では、デバイスの機能が本出願のものと同様であり、デバイスが本出願の特許請求の範囲およびそれらの均等な技術の範囲内に入ることを条件として、デバイスは他の名称を有してもよい。
【図面の簡単な説明】
【0045】
図1】本出願の一実施形態によるコンピューティングデバイスの概略組成図である。
図2】本出願の一実施形態によるデータ圧縮方法のフローチャートである。
図3】本出願の一実施形態によるデータタイプ識別モデルの概略図である。
図4】本出願の一実施形態によるデータ圧縮方法のフローチャートである。
図5】本出願の一実施形態によるデータ圧縮装置の概略組成図である。
【発明を実施するための形態】
【0046】
本出願の明細書、特許請求の範囲、および添付の図面において、「第1」、「第2」、「第3」などの用語は、異なる対象物を区別することを意図しているが、特定の順序を限定するものではない。
【0047】
本出願の実施形態では、「例」または「たとえば」という単語は、例、例示、または説明を与えることを表すために使用される。本出願の実施形態において「例」または「たとえば」として説明される任意の実施形態または設計スキームは、他の実施形態または設計スキームよりも好ましい、またはより多くの利点を有するものとして説明されないものとする。正確には、「例」、「たとえば」などの単語の使用は、特定の方法における相対的概念を提示することを意図している。
【0048】
以下、添付の図面を参照しながら、本出願の実施形態の実装について詳細に説明する。
【0049】
図1は、本出願の一実施形態によるコンピューティングデバイス100の概略組成図である。図1に示されるように、コンピューティングデバイス100は、プロセッサ101、メモリ102、プロセッサ103、および通信バス104を含み得る。
【0050】
以下、図1を参照して、コンピューティングデバイス100の各構成要素について詳細に説明する。
【0051】
コンピューティングデバイス100は、複数のプロセッサ、たとえば、図1に示されるプロセッサ101およびプロセッサ103を含み得る。プロセッサ101は、コンピューティングデバイスの制御センターである。一般に、プロセッサ101は、中央処理装置(central processing unit、CPU)であり、1つまたは複数のCPUコア、たとえば、図1に示されるCPU0およびCPU1を含む。加えて、プロセッサ101は、あるいは、特定用途向け集積回路(application-specific integrated circuit、ASIC)であってもよく、または1つもしくは複数の集積回路、たとえば、ディジタル信号プロセッサ(digital signal processor、DSP)など1つもしくは複数のマイクロプロセッサ、または1つもしくは複数のフィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)として構成されてもよい。プロセッサ101は、メモリ102に記憶されたソフトウェアプログラムを稼働させ、または実行し、メモリ102に記憶されたデータを呼び出すことによって、コンピューティングデバイス100の様々な機能を実行し得る。
【0052】
プロセッサ103は、プロセッサ101と同じ物理的な形を有するプロセッサであってもよく、または、プロセッサ101とは異なる物理的な形を有するプロセッサであってもよい。しかしながら、プロセッサ103は、コンピューティング能力を有する処理チップであり、プロセッサ101の計算負荷を低減するために、データ圧縮機能を担うように構成されている。本出願のこの実施形態では、プロセッサ103は、プロセッサ101が圧縮されるべきデータを圧縮するのを支援するように構成されている。たとえば、プロセッサ103は、プロセッサ101によって示される1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する。実際の用途では、プロセッサ103は、アクセラレーションカード、コプロセッサ、グラフィックス処理ユニット(Graphics Processing Unit、GPU)、ニューラル処理ユニット(Neural Processing Unit、NPU)などであってもよい。この実施形態では、1つまたは複数のプロセッサ101を構成することができ、1つまたは複数のプロセッサ103も構成することができる。しかしながら、プロセッサ103は、この実施形態ではオプションの構成要素であることに留意されたい。1つのプロセッサ101だけがある場合でも、プロセッサ101は、圧縮されるべきデータを独立して受信し、圧縮されるべきデータのデータタイプを識別し、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択し、次いで、1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮することができる。コンピューティングデバイス100がプロセッサ101とプロセッサ103の両方を含むとき、プロセッサ101およびプロセッサ103は、協働して上記の動作を完了し得る。たとえば、プロセッサ101は、主に、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別することと、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択することと、次いで、圧縮されるべきデータをプロセッサ103に送信することと、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するようプロセッサ103に指示することとを行うように構成されている。
【0053】
プロセッサ101とプロセッサ103の両方は、通信バス104を介してメモリ102にアクセスし得る。メモリ102は、データ圧縮モデルセットを記憶し、データ圧縮モデルセットは、複数のデータ圧縮モデルを含む。加えて、メモリ102は、圧縮されるべきデータのデータタイプと1つまたは複数のデータ圧縮モデルとの間の対応関係をさらに記憶する。対応は、圧縮されるべきデータのデータタイプと、1つまたは複数のデータ圧縮モデルのすべてとの間の対応関係であり得ることが理解され得る。あるいは、対応は、圧縮されるべきデータのデータタイプと、1つまたは複数のデータ圧縮モデルにおける各データ圧縮モデルとの間の対応関係であってもよい。プロセッサ101は、メモリ102から対応を呼び出し、データタイプおよび対応に基づいて、1つまたは複数のデータ圧縮モデルを選択し得る。
【0054】
一般に、異なるデータ圧縮モデルは、異なるデータタイプのために設計されてもよい。したがって、データ圧縮モデルは、異なるデータタイプに基づいて分類され得る。メモリ102は、他のデータタイプと1つまたは複数のデータ圧縮モデルとの間の対応関係を記憶し得る。データタイプとデータ圧縮モデルとの間の対応関係の数は、本明細書では限定されない。
【0055】
加えて、メモリ102は、本明細書において解決策を実行するためのソフトウェアプログラムを記憶するようにさらに構成され、プロセッサ101は、ソフトウェアプログラムの実行を制御する。
【0056】
物理的な形では、メモリ102は、読取り専用メモリ(read-only memory、ROM)、または静的な情報および命令を記憶することができる他のタイプの静的記憶デバイス、またはランダムアクセスメモリ(random access memory、RAM)、または情報および命令を記憶することができる他のタイプの動的記憶デバイスとすることができる。メモリ102は、あるいは、電気的消去可能プログラマブル読取り専用メモリ(electrically erasable programmable read-only memory、EEPROM)、コンパクトディスク読取り専用メモリ(compact disc read-only memory、CD-ROM)または他のコンパクトディスクストレージ、光ディスクストレージ(コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、ブルーレイディスクなどを含む)、磁気ディスク記憶媒体または他の磁気記憶デバイス、あるいは命令またはデータ構造の形態で期待されるプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセス可能な任意の他の媒体とすることができる。しかしながら、メモリ102はこれに限定されない。メモリ102は、独立して存在してもよく、通信バス104を介してプロセッサ101に接続される。あるいは、メモリ102は、プロセッサ101と統合されてもよい。これは限定されない。
【0057】
データ圧縮モデルのソースについて、この実施形態は、少なくとも2つの実装形態を提供する。一実装形態では、一般的に使用されるデータ圧縮モデルは、従来技術におけるすべてのデータ圧縮モデルからスクリーニングされるか、または一般的に使用されるデータ圧縮モデルを組み合わせることによって生成される他のデータ圧縮モデルが、データ圧縮モデルとして使用される。一般的に使用されるデータ圧縮モデルを組み合わせることによって生成される他のデータ圧縮モデルとは、主に、低次のデータ圧縮モデルを組み合わせることによって生成される高次のデータ圧縮モデルを指す。
【0058】
これらの一般的に使用されるデータ圧縮モデルとしては、限定はしないが、ネストモデル(nest model)、コンテキストモデル(context model)、間接モデル(indirect model)、テキストモデル(text model)、スパースモデル(sparse model)、拡張可能マークアップ言語モデル(XLM model)、マッチモデル(match model)、距離モデル(distance model)、実行可能プログラムモデル(exe model)、ワードモデル(word model)、レコードモデル(record model)、ピクチャタイプ(picture type)、部分マッチングモデルによる予測(prediction by partial matching model, PPM model)、動的マルコフ圧縮モデル(dynamic markov compression model, DMC model)、バイトモデル(byte model)、線形予測モデル(linear prediction model)、適応予測モデル(adaptive prediction model)、wavモデル(wav model)、および共通モデル(common model)がある。ネストモデルは、予測されるべきバイトに現れるネストされたシンボル(たとえば、[])に関する情報に基づいて後続バイトを予測するためのモデルである。コンテキストモデルは、予測されるべきバイトの前に現れる連続バイトのコンテキストに基づいて後続バイトを予測するためのモデルである。間接モデルは、予測されるべきバイトの最初の1バイトまたは2バイトのビットの履歴情報およびコンテキストに基づいて後続バイトを予測するためのモデルである。テキストモデルは、単語、文、および段落などの情報に基づいて後続バイトを予測するためのモデルである。一般に、テキストモデルは、テキストデータを予測するために使用される。スパースモデルは、予測されるべきバイトの前に不連続バイトを探索し、その不連続バイトをコンテキストとして使用することによって、後続バイトを予測するためのモデルであり、たとえば、予測されるべきバイトの前に1バイトおよび3バイトを探索することによって後続バイトを予測するためのモデルである。拡張可能マークアップ言語モデルは、予測されるべきバイト、たとえばラベルに含まれる特徴情報に基づいて後続バイトを予測するためのモデルである。マッチモデルは、予測されるべきバイトの前のコンテキストにマッチング情報があるかどうかを探索した後、マッチング情報に基づいて後続バイトを予測するためのモデルである。距離モデルは、現在の予測されるべきバイトおよび何らかの特殊バイトに基づいて後続バイトを予測するためのモデルである。たとえば、特殊バイトは、スペース文字の距離である。実行可能プログラムモデルは、特定の命令セットおよび特定のオペレーションコードに基づいて後続バイトを予測するためのモデルである。ワードモデルは、現れるワードに関する情報に基づいて後続のバイトを予測するためのコンテキストモデルである。レコードモデルは、ファイル内の行および列情報を探索することによって後続バイトを予測するためのコンテキストモデルである。テーブルでは、行はレコードと呼ばれ、レコードは通常、データベースおよびテーブルで使用される。ピクチャタイプは、ピクチャの特徴に基づいて後続バイトを予測するためのコンテキストモデル、たとえば、グレースケールまたはピクチャのピクセルに基づいて後続バイトを予測するためのコンテキストモデルである。部分マッチングモデルによる予測は、予測されるべきバイトの前に連続して現れる複数のバイトに基づいて予測されるべきバイトにおける探索およびマッチングを実行し、複数のバイトの一部のバイトを削減し、新たなバイトが見つからない場合、新しいバイトが見つかるか、記録されるまで、削減後に取得されたバイトに基づいて探索およびマッチングを実行することによって予測するためのモデルである。動的マルコフ圧縮モデルは、可変長ビットレベルのコンテキスト履歴テーブルに基づいて次のビットを予測するためのモデルである。バイトモデルは、ビットの履歴情報に基づいて後続ビットを予測するためのモデルである。線形予測モデルは、線形回帰分析に基づいて後続バイトを予測するためのコンテキストモデルである。適応モデルは、他のモデルによって算出された確率と既知のコンテキストとに基づいて、算出された確率を調整するためのモデルである。wavモデルは、オーディオファイル内の特徴情報に基づいて後続バイトを予測するためのコンテキストモデルである。共通モデルとは、新しいデータタイプのデータ、または識別されていないデータタイプのデータに対して確率予測を実行するためのモデルである。共通モデルは、他の複数のモデルを組み合わせることによって生成され得る。データ圧縮モデルセットは、スクリーニングされたデータ圧縮モデルを含み、スクリーニングされたデータ圧縮モデルの数は、元々使用されたデータ圧縮モデルの数よりもはるかに少ないので、占有される記憶空間は、比較的小さい。データ圧縮モデルセットは、プロセッサ103に記憶されてもよく、プロセッサ103は、データ圧縮動作を完了する。これにより、プロセッサ101の計算負担が低減され、メモリオーバーヘッドおよび時間オーバーヘッドが低減される。
【0059】
いくつかの実施形態では、データタイプとデータ圧縮モデルとの間の対応関係は、テーブルの形態で提示されてもよい。具体的には、表1は、データタイプとデータ圧縮モデルとの間の対応関係を示す。圧縮されるべきデータのデータタイプを識別した後、プロセッサ101は、表1を問合せすることによって、圧縮されるべきデータのデータタイプに対応する1つまたは複数のデータ圧縮モデルを決定し得る。
【0060】
【表1】
【0061】
表1から、テキストタイプは、テキストモデル、ワードモデル、およびネストモデルに対応することがわかり得る。プロセッサ101が、圧縮されるべきデータのデータタイプがテキストタイプであると決定した場合、プロセッサ101は、表1に問合せすることによって、テキストタイプがテキストモデル、ワードモデル、およびネストモデルに対応することを学習し、テキストモデル、ワードモデル、およびネストモデルに基づいて、圧縮されるべきデータを圧縮し得る。
【0062】
実行可能プログラムタイプは、実行可能プログラムモデルおよびスパースモデルに対応する。プロセッサ101が、圧縮されるべきデータのデータタイプが実行可能プログラムタイプであると決定した場合、プロセッサ101は、表1に問合せすることによって、実行可能プログラムタイプが実行可能プログラムモデルおよびスパースモデルに対応することを学習し、実行可能プログラムモデルおよびスパースモデルに基づいて、圧縮されるべきデータを圧縮し得る。
【0063】
プロセッサ101が、圧縮されるべきデータのデータタイプを識別せず、圧縮されるべきデータのデータタイプが他の(共通)タイプであると決定した場合、プロセッサ101は、表1に問合せすることによって、他の(共通)タイプがテキストモデル、スパースモデル、およびレコードモデルに対応することを学習し、テキストモデル、スパースモデル、およびレコードモデルに基づいて、圧縮されるべきデータを圧縮し得る。
【0064】
表1は、データタイプとデータ圧縮モデルとの間の対応関係が記憶デバイスに記憶される形式を表形式で示しているに過ぎず、データタイプとデータ圧縮モデルとの間の対応関係が記憶デバイスに記憶される形式を限定するものではないことに留意されたい。もちろん、データタイプとデータ圧縮モデルとの間の対応関係は、他の形式で記憶デバイスに記憶されてもよい。これは、本出願のこの実施形態では限定されない。
【0065】
具体的には、データ圧縮モデルセットは、ソフトウェア様式でプロセッサ103に記憶されてもよい。たとえば、データ圧縮モデルセットに含まれるデータ圧縮モデルは、プロセッサ103に内蔵または結合されたメモリに記憶される。任意選択で、データ圧縮モデルセットは、あるいは、ハードウェア様式でプロセッサ103に記憶されてもよい。たとえば、データ圧縮モデルセットは、プロセッサ103の回路構造を設計することによって、プロセッサ製造中にプロセッサ103に配置され、その結果、プロセッサ103はモデルの機能をロードしうる。
【0066】
科学および技術の発展に伴って、新しいデータタイプが生成されると、上記のデータ圧縮モデルセットがアップグレードされる。たとえば、新しいデータタイプに対応するデータ圧縮モデルがプロセッサ103に記憶される。新しいデータタイプとしては、遺伝子データのデータタイプおよびビッグデータのデータタイプがある。既存のデータ圧縮モデルにおいてあまり頻繁に使用されないモデルは、あるいは除去されてもよく、または1つもしくは複数の既存のデータ圧縮モデルが修正されてもよい。
【0067】
いくつかの実施形態では、新しいデータ圧縮モデルは、既存のデータ圧縮モデルを組み合わせることによって生成されてもよく、プロセッサ103に記憶されたデータ圧縮モデルセットは、ソフトウェアアップグレード様式で更新される。たとえば、より高次のデータ圧縮モデルは、より低次のデータ圧縮モデルを組み合わせることによって実装されてもよい。したがって、ハードウェア回路を再度変更する必要がなく、プロセッサ103のアップグレードコストが大幅に低減される。
【0068】
他の実施形態では、プロセッサ103の回路構造を設計することによって、異なるデータ圧縮モデルが記憶され得る。データ圧縮モデルセットがアップグレードされるとき、プロセッサ103の回路構造は、データ圧縮モデルセットをアップグレードするために変更されてもよい。プロセッサ103は、一般的に使用されるデータ圧縮モデルを記憶しているので、データ圧縮モデルセットがアップグレードされる場合でも、ハードウェア回路がわずかに変更され、アップグレードコストは比較的低い。
【0069】
さらに他の実装形態では、人工知能(Artificial Intelligent、AI)チップ105がコンピューティングデバイス100内に配置される。人工知能チップ105は、受信されたサンプルデータを定期的に訓練していくつかのデータ圧縮モデルを生成し、これらのデータ圧縮モデルを、通信バス104を介してメモリ102に記憶するか、または記憶のためにプロセッサ103にデータを転送する。人工知能チップ105の形態は、チップまたは他の物理的構成要素であってもよい。たとえば、人工知能チップ105は、ニューラルネットワークモデルを構築するように構成された訓練チップであってもよく、ニューラルネットワークモデルに基づいて推論を実行するように構成された推論チップであってもよい。ニューラルネットワークモデルは、人工ニューラルネットワーク、ニューラルネットワーク(Neural Network、NN)、または接続モデル(Connection Model)とも呼ばれ得る。いわゆる「人工ニューラルネットワーク」は、脳神経シナプスによって接続された構造に類似した構造に基づいて、分散並列情報を処理するためのアルゴリズム的数学モデルである。人工ニューラルネットワークは、システムの複雑さに応じて大量の内部ノード間の関係を調整することによって情報を処理する。上記の列挙された実装形態と比較して、サンプルデータは、データ圧縮モデルの変更により良く適応するために、いくつかのデータ圧縮モデルを生成するために、人工知能チップ105に基づいて定期的に訓練される。
【0070】
加えて、各データ圧縮モデルは、識別子を有し、プロセッサ103は、データ圧縮モデルとデータ圧縮モデルの識別子との間の対応関係をさらに記憶する。したがって、プロセッサ103は、データ圧縮モデルのものであり、プロセッサ101によってプロセッサ103に送信される識別子に基づいて、対応するデータ圧縮モデルを取得し、圧縮されるべきデータを圧縮し得る。
【0071】
通信バス104は、業界標準アーキテクチャ(industry standard architecture、ISA)バス、周辺構成要素相互接続(peripheral component interconnect、PCI)バス、拡張業界標準アーキテクチャ(extended industry standard architecture、EISA)バスなどであってもよい。バスは、アドレスバス、データバス、制御バスなどに分類されてもよい。表現を容易にするために、図1では、太線を1本のみ使用してバスを表しているが、これは、バスが1つしかないことを意味するものではなく、また、バスの種類が1つしかないことを意味するものでもない。
【0072】
図1に示されるデバイスの構造は、コンピューティングデバイスを限定するものではない。コンピューティングデバイスは、図に示されるものよりも多いまたは少ない構成要素を含む、またはいくつかの構成要素を組み合わせる、または異なる構成要素構成を有していてもよい。
【0073】
以下、図2を参照して、本出願の一実施形態において提供されるデータ圧縮方法について詳細に説明する。この方法は、図1に示されるコンピューティングデバイス100に適用される。ここでは、説明のための例として、プロセッサ101およびプロセッサ103を使用する。図2に示されるように、この方法は、以下のステップを含み得る。
【0074】
S201: プロセッサ101は、圧縮されるべきデータを受信し、圧縮されるべきデータのデータタイプを識別する。
【0075】
圧縮されるべきデータのデータタイプが識別される前に、データタイプ識別モデルを取得するために、大量のサンプルデータが、機械学習によって、または人工ニューラルネットワーク(Artificial Neural Network、ANN)に基づいて訓練され得る。あるいは、データタイプ識別モデルは、人工知能チップ105によってサンプルデータを訓練することによって取得され得る。データタイプ識別モデルは、圧縮されるべきデータと圧縮されるべきデータのデータタイプとの間のマッピング関係を示すために使用される。さらに、プロセッサ101は、データタイプ識別モデルに基づいて、圧縮されるべきデータのデータタイプを識別してもよい。
【0076】
データタイプ識別モデルとしては、限定はしないが、ナイーブベイズ(Naive Bayes、NB)モデル、極値勾配ブースティング決定木(Extreme Gradient Boosting Tree、XGBoost)モデル、多層パーセプトロン(Multilayer Perceptron、MLP)モデル、および上記のモデルの組合せなどのモデルがある。
【0077】
サンプルデータは、データブロックまたはファイルフラグメントから来てもよい。サンプルデータとしては、限定はしないが、テキストデータ、ピクチャデータ、ビデオデータ、遺伝子データ、実行可能プログラムデータ、仮想ハードディスクデータ、データベースデータなどがある。対応して、サンプルデータのデータタイプとしては、限定はしないが、テキストタイプ、ピクチャタイプ、ビデオタイプ、遺伝子タイプ、実行可能プログラムタイプ、仮想ハードディスクタイプ、データベースタイプなどがある。
【0078】
任意選択で、サンプルデータは、データベースから取得されてもよい。あるいは、サンプルデータは、オープンソースデータまたはテストデータであってもよい。
【0079】
いくつかの実施形態では、既知のデータタイプに基づいてサンプルデータに対して識別子が設定されてもよく、サンプルデータおよびサンプルデータの識別子は、データタイプ識別モデルを取得するための訓練のために人工ニューラルネットワークに入力される。たとえば、サンプルデータは、テキストデータである。ファイル名拡張子に基づいてテキストデータに対して識別子が設定されてもよく、テキストデータおよびテキストデータの識別子は、テキストデータとテキストタイプとの間のマッピング関係を取得するための訓練のために人工ニューラルネットワークに入力される。
【0080】
たとえば、図3は、本出願の一実施形態によるデータタイプ識別モデルの概略図である。圧縮されるべきデータは、データタイプ識別モデルに入力され、テキストタイプ、ピクチャタイプ、ビデオタイプ、遺伝子タイプ、実行可能プログラムタイプ、仮想ハードディスクタイプ、データベースタイプ、および他のタイプが識別されてもよい。他のタイプは、共通のタイプであってもよい。
【0081】
本出願のこの実施形態では、データタイプ識別モデルは、他のデバイスによる事前訓練を介して取得され得、次いで、データタイプ識別モデルは、プロセッサ101にインポートされ、その結果、プロセッサ101は、データタイプ識別モデルに基づいて、圧縮されるべきデータのデータタイプを識別する。
【0082】
任意選択で、データタイプ識別モデルの内部重みが、サンプルデータを訓練することによって最適化された後、データタイプ識別モデルは、訓練を介して取得されたデータタイプ識別モデルが信頼できるかどうかをチェックするために、いくつかのサンプルデータに基づいてさらに検証されてもよく、データタイプ識別モデルの、反復回数および学習率などのパラメータが調整される。データタイプ識別モデルのパラメータは、内部重み、重み比、および精度しきい値を含む。各タイプのデータタイプ識別モデルは、異なるデータタイプについて異なる予測能力を有し得るので、本出願では、異なる精度率に基づいて、異なる重みが、各タイプのデータタイプ識別モデルの予測確率に割り振られ得る。
【0083】
圧縮されるべきデータのデータタイプを識別するとき、プロセッサ101は、まず、データタイプ識別モデルのパラメータを初期化し、次いで、圧縮されるべきデータをデータタイプ識別モデルに入力して、複数のデータタイプの確率を取得し得る。プロセッサ101は、精度しきい値よりも大きく、複数のデータタイプの確率に含まれる確率に対応するデータタイプを、圧縮されるべきデータのデータタイプとして決定してもよい。
【0084】
たとえば、プロセッサ101は、圧縮されるべきデータをデータタイプ識別モデルに入力し、テキストタイプの確率、ピクチャタイプの確率、ビデオタイプの確率、遺伝子タイプの確率、実行可能プログラムタイプの確率、仮想ハードディスクタイプの確率、データベースタイプの確率、および他のタイプの確率を取得し得る。テキストタイプの確率が精度しきい値よりも大きい場合、プロセッサ101は、圧縮されるべきデータのデータタイプがテキストタイプであると決定する。
【0085】
任意選択で、プロセッサ101が圧縮されるべきデータのデータタイプを識別しない場合、圧縮されるべきデータのデータタイプが他のタイプであると決定され得る。
【0086】
いくつかの実施形態では、圧縮されるべきデータのデータタイプを識別する精度率を高めるために、プロセッサ101は、複数のデータタイプ識別モデルに基づいて、圧縮されるべきデータのデータタイプを識別し得る。たとえば、図4に示されるように、圧縮されるべきデータのデータタイプを識別することは、以下に説明するステップに基づいて実施され得る。ここでは、圧縮されるべきデータのデータタイプの識別を説明するための例として、M個のデータタイプ識別モデルが使用される。
【0087】
S201a: プロセッサ101は、圧縮されるべきデータを受信し、M個のデータタイプ識別モデルに基づいて、圧縮されるべきデータに対応するM個の確率セットを決定する。
【0088】
プロセッサ101は、圧縮されるべきデータをM個のデータタイプ識別モデルに別々に入力し、各データタイプ識別モデルは、1つの確率セットを出力することが理解され得る。M個の確率セットの各々は、P個の初期確率値を含み、P個の初期確率値の各々は、圧縮されるべきデータがデータタイプのものである確率を示すために使用される。Pは、データタイプ識別モデルによって識別することができるデータタイプの数を示す。Mは、1以上の整数であり、Pは、1以上の整数である。
【0089】
任意選択で、M個のデータタイプ識別モデルのすべてによって識別することができるデータタイプは同じである。同じデータタイプについて、M個のデータタイプ識別モデルの各々は、データタイプの1つの初期確率値を出力し、M個のデータタイプ識別モデルは、データタイプの合計M個の初期確率値を出力することができることが理解され得る。
【0090】
任意選択で、M個のデータタイプ識別モデルは、合計M×P個の初期確率値を出力する。同じデータタイプ識別モデルによって決定されるP個の初期確率値は、同じであってもよく、または異なっていてもよい。同じデータタイプのものであり、異なるデータタイプ識別モデルによって決定される初期確率値は、同じであってもよく、異なっていてもよい。これは限定されない。
【0091】
たとえば、M=3、P=6と仮定する。プロセッサ101は、圧縮されるべきデータを3つのデータタイプ識別モデルに別々に入力し、各データタイプ識別モデルは、1つの確率セットを出力する。すなわち、3つの確率セットが取得される。3つの確率セットの各々は、6つの初期確率値を含む。3つのデータタイプ識別モデルは、合計18(3×6)の初期確率値を出力する。
【0092】
S201b: プロセッサ101は、M個の確率セットに基づいて、圧縮されるべきデータのデータタイプを決定する。
【0093】
まず、プロセッサ101は、M個の確率セット、およびM個のデータタイプ識別モデルの重み比に基づいて、P個の中間値を取得する。
【0094】
いくつかの実施形態では、P個のデータタイプにおけるj番目のデータタイプについて、プロセッサ101は、j番目のデータタイプに対応するM個の初期確率値、およびM個のデータタイプ識別モデルの重み比に基づいて、j番目のデータタイプの中間値を決定し得る。j番目のデータタイプの中間値は、以下の式(1)を満たす。
【0095】
【数1】
【0096】
式中、
jは、整数であり、j∈[1,P]であり、Pjは、j番目のデータタイプの中間値を表し、Wiは、i番目のデータタイプ識別モデルの重み比を表し、PMiは、j番目のデータタイプのものであり、i番目のデータタイプ識別モデルによって出力される初期確率値を表す。
【0097】
プロセッサ101は、P個のデータタイプの各々の中間値を決定した後、P個のデータタイプの中間値を取得することが理解され得る。任意選択で、P個のデータタイプの中間値は、同じであってもよく、または異なっていてもよい。これは限定されない。
【0098】
また、プロセッサ101は、精度しきい値およびP個のデータタイプの中間値に基づいて、圧縮されるべきデータのデータタイプを決定する。たとえば、プロセッサは、圧縮されるべきデータのデータタイプとして、P個のデータタイプの中間値のうちの、精度しきい値よりも大きい中間値に対応するデータタイプを決定する。
【0099】
S202: プロセッサ101は、圧縮されるべきデータのデータタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択する。
【0100】
一般に、異なるデータ圧縮モデルは、異なるデータタイプのために設計されてもよい。したがって、データ圧縮モデルは、異なるデータタイプに基づいて分類され得る。データタイプとデータ圧縮モデルとの間の対応関係は、あらかじめ定義されてもよい。いくつかの実施形態では、データタイプとデータ圧縮モデルとの間の対応関係は、メモリ102にあらかじめ記憶される。データタイプを決定した後、プロセッサ101は、最初に、メモリ102からデータタイプとデータ圧縮モデルとの間の対応関係を呼び出し、次いで、圧縮されるべきデータのデータタイプに基づいて、データタイプとデータ圧縮モデルとの間の対応関係から1つまたは複数のデータ圧縮モデルを取得し得る。データタイプとデータ圧縮モデルとの間の対応関係は、圧縮されるべきデータのデータタイプと1つまたは複数のデータ圧縮モデルとの間の対応関係を含む。
【0101】
たとえば、圧縮されるべきデータのデータタイプがテキストタイプであると仮定する。プロセッサ101は、テキストタイプに基づいて、テキストタイプに対応するデータ圧縮モデルが、テキストモデル(Text Model)、ワードモデル(Word Model)、およびネストモデル(Nest Model)を含むことを決定する。
【0102】
S203: プロセッサ101は、圧縮されるべきデータをプロセッサ103に送信し、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するようプロセッサ103に指示する。
【0103】
プロセッサ101は、指示情報を送信することによって、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するようプロセッサ103に指示し得る。
【0104】
いくつかの実施形態では、データ圧縮モデルは、識別子を有する。指示情報は、圧縮されるべきデータと、選択されたデータ圧縮モデルの識別子とを含む。プロセッサ103は、データ圧縮モデルとデータ圧縮モデルの識別子との間の対応関係を記憶する。指示情報を受信した後、プロセッサ103は、データ圧縮モデルの識別子に基づいて、データ圧縮モデルを取得し得る。
【0105】
他の実施形態では、圧縮されるべきデータのデータタイプに基づいてプロセッサ101によって選択された1つまたは複数のデータ圧縮モデルがデータ圧縮モデルセットと見なされ得る。データ圧縮モデルセットは、識別子を有する。指示情報は、圧縮されるべきデータと、データ圧縮モデルセットの識別子とを含む。プロセッサ103は、データ圧縮モデルセットとデータ圧縮モデルセットの識別子との間の対応関係を記憶する。指示情報を受信した後、プロセッサ103は、データ圧縮モデルセットの識別子に基づいて、データ圧縮モデルセットを取得し得る。言い換えれば、プロセッサ103は、圧縮されるべきデータのデータタイプに対応する1つまたは複数のデータ圧縮モデルを取得する。
【0106】
S204: プロセッサ103は、圧縮されるべきデータを受信し、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する。
【0107】
いくつかのデータ圧縮モデルがプロセッサ103内にあらかじめ構成されていることが理解され得る。1つまたは複数のデータ圧縮モデルの1つまたは複数の識別子に基づいて1つまたは複数のデータ圧縮モデルを決定した後、プロセッサ103は、いくつかのあらかじめ設定されたデータ圧縮モデルから1つまたは複数のデータ圧縮モデルを取得する。
【0108】
プロセッサ103は、まず、1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータにおける各ビットの確率を決定し、次いで、圧縮されるべきデータにおける各ビットの確率、および算術符号化アルゴリズムに基づいて、圧縮されるべきデータを符号化して、圧縮データを取得する。
【0109】
いくつかの実施形態では、プロセッサ103は、Nが1以上の整数である場合、N個のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮すると仮定する。プロセッサ103は、N個のデータ圧縮モデルに基づいて、圧縮されるべきデータに対応するN個の確率セットを決定し、N個の確率セットに基づいて、圧縮されるべきデータにおける各ビットの確率を決定し得る。
【0110】
プロセッサ103は、圧縮されるべきデータをN個のデータ圧縮モデルに別々に入力し、各データ圧縮モデルは、1つの確率セットを出力する。N個の確率セットの各々は、Q個の初期確率値を含む。Q個の初期確率値の各々は、圧縮されるべきデータにおける1ビットの初期確率値を示すために使用される。Qは、圧縮されるべきデータに含まれるビットの数を表し、Qは、1以上の整数である。
【0111】
同じビットについて、N個のデータ圧縮モデルの各々は、ビットの1つの初期確率値を出力し、N個のデータ圧縮モデルは、ビットの合計N個の初期確率値を出力することができることが理解され得る。
【0112】
初期確率値は、データ圧縮モデルにあらかじめ設定されていることに留意されたい。たとえば、初期確率値は、ビットが1であることをデータ圧縮モデルが予測する確率の初期値である。圧縮されるべきデータの第1のビットについて、データ圧縮モデルは、初期確率値に基づいて、第1のビットの初期確率値を予測し得る。圧縮されるべきデータの第2のビットについて、データ圧縮モデルは、第1のビットの初期確率値に基づいて、第2のビットの初期確率値を予測し得る。圧縮されるべきデータの(y+1)番目のビットについて、データ圧縮モデルは、y番目のビットの初期確率値に基づいて、(y+1)番目のビットの初期確率値を予測し得ることが理解され得る。圧縮されるべきデータにおける各ビットの初期確率値は、yを整数とし、y∈[1,Q]の場合、類推により取得される。
【0113】
任意選択で、N個のデータ圧縮モデルは、合計N×Q個の初期確率値を出力する。同じデータ圧縮モデルによって決定されるQ個の初期確率値は、同じであってもよく、または異なっていてもよい。同じビットのものであり、異なるデータ圧縮モデルによって決定される初期確率値は、同じであってもよく、または異なっていてもよい。これは限定されない。
【0114】
たとえば、N=3、Q=6と仮定する。プロセッサ103は、圧縮されるべきデータを3つのデータ圧縮モデルに別々に入力し、各データ圧縮モデルは、1つの確率セットを出力する。すなわち、3つの確率セットが取得される。3つの確率セットの各々は、6つの初期確率値を含む。3つのデータ圧縮モデルは、合計18(3×6)の初期確率値を出力する。
【0115】
y番目のビットの初期確率値は、(y-1)番目のビットの初期確率値に基づいて、プロセッサ103によって決定され得ることに留意されたい。言い換えれば、y番目のビットの初期確率値は、(y-1)番目のビットの初期確率値に基づく予測を介して、プロセッサ103によって取得され得る。あるいは、プロセッサ103は、y番目のビットの初期確率値に基づいて、(y+1)番目のビットの初期確率値を予測してもよい。
【0116】
さらに、プロセッサ103は、N個の確率セット、およびN個のデータ圧縮モデルの重み比に基づいて、圧縮されるべきデータにおける各ビットの確率を取得する。
【0117】
いくつかの実施形態では、Qビットのy番目のビットについて、プロセッサ103は、N個のデータ圧縮モデルのy番目のビットおよび重み比に対応するN個の初期確率値に基づいて、y番目のビットの確率を決定し得る。y番目のビットの確率は、以下の式(2)を満たす。
【0118】
【数2】
【0119】
式中、
yは、整数であり、y∈[1,Q]であり、Pyは、y番目のビットの確率を表し、Sxは、x番目のデータ圧縮モデルの重み比を表し、PNxは、y番目のビットのものであり、x番目のデータ圧縮モデルによって出力される初期確率値を表す。
【0120】
任意選択で、Qビットの確率は、同じであってもよく、または異なっていてもよい。これは限定されない。
【0121】
圧縮されるべきデータに含まれるビットの確率が予測されるとき、より正確なビットの確率を取得するために、既存の予測値に基づいて、データ圧縮モデルのパラメータが連続的に調整されてもよいことに留意されたい。たとえば、ニューラルネットワークを使用して、データ圧縮モデルの重み比を訓練し、より正確な重み比を取得し、さらにビットのより正確な確率を取得することができる。
【0122】
たとえば、データ圧縮モデルには、データ圧縮モデルの初期重み比があらかじめ設定されている。たとえば、初期重み比は、ビットが1であることをデータ圧縮モデルが予測する確率の重み比である。データ圧縮モデルの重み比は、データ圧縮モデルに基づいて1ビットが予測されるたびに調整される。圧縮されるべきデータの第1のビットについて、データ圧縮モデルは、第1のビットに対応するN個の初期確率値、およびN個のデータ圧縮モデルの初期重み比に基づいて、第1のビットの確率を決定し得る。圧縮されるべきデータの第2のビットについて、データ圧縮モデルは、第2のビットに対応するN個の初期確率値、およびN個のデータ圧縮モデルの調整された重み比に基づいて、第2のビットの確率を決定し得る。(y+1)番目のビットの確率を予測するためにデータ圧縮モデルによって使用される重み比は、データ圧縮モデルがy番目のビットの確率を予測した後に調整される重み比であり得ることが理解され得る。
【0123】
プロセッサが圧縮されるべきデータをすべてのデータ圧縮モデルに基づいて圧縮する従来技術と比較すると、メモリオーバーヘッドおよび時間オーバーヘッドが極めて大きくなる。本出願のこの実施形態で提供されるデータ圧縮方法では、プロセッサ101は、圧縮されるべきデータの確率を予測するための持続時間をさらに低減し、算術符号化を介してデータ圧縮を実行するためのメモリオーバーヘッドおよび時間オーバーヘッドを低減するように、データ圧縮プロセスにおいて使用されるデータ圧縮モデルの数を低減するために、圧縮されるべきデータのデータタイプに基づいて1つまたは複数のデータ圧縮モデルをスクリーニングする。さらに、データ圧縮処理が、実行のためにプロセッサ103にオフロードされるので、算術符号化の圧縮性能が事実上向上する。
【0124】
以下では、本出願のこの実施形態において提供されるデータ圧縮方法を説明する例として、テキストデータを使用する。
【0125】
ここで、サンプルデータは、3つのモデルの内部重み、モデルの重み比、および精度しきい値を取得するために、ナイーブベイズモデル、極値勾配ブースティング決定木モデル、および多層パーセプトロンモデルを訓練し、検証するために使用される。ナイーブベイズモデルの重み比は0.4であり、極値勾配ブースティング決定木モデルの重み比は0.1であり、多層パーセプトロンモデルの重み比は0.5であり、精度しきい値は0.8であると仮定する。サンプルデータのデータタイプとしては、テキストタイプ、ピクチャタイプ、ビデオタイプ、遺伝子タイプ、データベースタイプ、および他のタイプがある。説明を容易にするために、M1は、ナイーブベイズモデルを表し、M2は、極値勾配ブースティング決定木モデルを表し、M3は、多層パーセプトロンモデルを表す。W1は、ナイーブベイズモデルの重み比を表すために使用される。W2は、極値勾配ブースティング決定木モデルの重み比を表すために使用される。W3は、多層パーセプトロンモデルの重み比を表すために使用される。
【0126】
テキストデータのデータタイプを識別するとき、プロセッサ101は、テキストデータを、ナイーブベイズモデル、極値勾配ブースティング決定木モデル、および多層パーセプトロンモデルに別々に入力し、各モデルは、以下に示すように、6つのデータタイプの初期確率値を出力する。
PM1={Ptext=0.8, Ppicture=0.05, Pvideo=0.02, Pgene=0.03, Pdatabase=0.01, Panother type=0.09}、
PM2={Ptext=0.6, Ppicture=0.1, Pvideo=0.02, Pgene=0.08, Pdatabase=0.0, Panother type=0.2}、および
PM3={Ptext=0.9, Ppicture=0.02, Pvideo=0.01, Pgene=0.0, Pdatabase=0.02, Panother type=0.05}。
【0127】
PM1は、ナイーブベイズモデルによって出力される確率セットを表す。PM2は、極値勾配ブースティング決定木モデルによって出力される確率セットを表す。PM3は、多層パーセプトロンモデルによって出力される確率セットを表す。Ptextは、テキストタイプの初期確率値を表す。Ppictureは、ピクチャタイプの初期確率値を表す。Pvideoは、ビデオタイプの初期確率値を表す。Pgeneは、遺伝子タイプの初期確率値を表す。Pdatabaseは、データベースタイプの初期確率値を表す。Panother typeは、他のタイプの初期確率値を表す。
【0128】
プロセッサ101は、データタイプ識別モデルの重み比に基づいて、各データタイプの中間値を算出する。中間値は、以下の式(3)を満たす。
P=W1×PM1+W2×PM2+W3×PM3 (3)
【0129】
テキストタイプの中間値は、P1=0.4×0.8+0.1×0.6+0.5×0.9=0.83である。
【0130】
ピクチャタイプの中間値は、P2=0.4×0.05+0.1×0.1+0.5×0.02=0.04である。
【0131】
ビデオタイプの中間値は、P3=0.4×0.02+0.1×0.02+0.5×0.01=0.015である。
【0132】
遺伝子タイプの中間値は、P4=0.4×0.03+0.1×0.08+0.5×0.0=0.02である。
【0133】
データベースタイプの中間値は、P5=0.4×0.01+0.1×0.0+0.5×0.02=0.014である。
【0134】
他のタイプの中間値は、P6=0.4×0.09+0.1×0.2+0.5×0.05=0.081である。
【0135】
プロセッサ101は、精度しきい値に基づいて、上記の6つの中間値におけるテキストタイプの中間値が0.8よりも大きい(P1=0.85)ことを決定する。したがって、入力データのデータタイプはテキストタイプである。
【0136】
いくつかの実施形態では、テキストタイプに基づいて、テキストタイプに対応するデータ圧縮モデルを取得するために、表1が問合せされ得る。テキストタイプに対応するデータ圧縮モデルとしては、テキストモデル(text model)、ワードモデル(word model)、ネストモデル(nest model)がある。
【0137】
テキストタイプを決定した後、プロセッサ101は、圧縮されるべきデータをプロセッサ103に送信し、テキストタイプに対応するデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮するようにプロセッサ103に指示する。テキストモデルは、次のビットが1である確率の初期値が0.5であると予測し、ワードモデルは、次のビットが1である確率の初期値が0.5であると予測し、ネストモデルは、次のビットが1である確率の初期値が0.2であると予測すると仮定する。テキストモデルの初期重み比は0.33、ワードモデルの初期重み比は0.33、ネストモデルの初期重み比は0.34である。圧縮されるべきデータは、01001101である。圧縮されるべきデータは、8ビット、言い換えれば、Q=8を含み、yは整数であり、y∈[1,8]であることが理解され得る。プロセッサ103がy番目のビットを読み取ると、3つのモデルによって予測され、y番目のビットが1である確率が更新され、そのビットの更新された確率が以下の表2に示される。
【0138】
【表2】
【0139】
同様に、各モデルの重み比の調整が以下の表3に示される。
【0140】
【表3】
【0141】
プロセッサ103は、3つのデータ圧縮モデルに基づいて算出されたビットのものである初期確率値を合成して、圧縮されるべきデータにおける各ビットの確率を取得する。各ビットの確率は、以下の式(4)を満たす。
P=S1×PN1+S2×PN2+S3×PN3 (4)
【0142】
次のビットが1である確率が以下の表4に示される。
【0143】
【表4】
【0144】
任意選択で、プロセッサ103は、確率を取得するために、人工ニューラルネットワークに基づいて、複数の初期確率値に対して重み付け計算を実行し得る。人工ニューラルネットワークとしては、限定はしないが、長短期メモリ(Long Short-Term Memory、LSTM)モデル、ゲート付き回帰型ユニット(gated recurrent unit、GRU)モデル、全結合(full connection、FC)モデル、または他のニューラルネットワークモデルがある。したがって、人工ニューラルネットワークに基づいて複数の初期確率値を合成することによって、より正確なビットの確率を取得して、圧縮されるべきデータの圧縮率を高めることができる。
【0145】
プロセッサ103は、以下の表5に示されるように、圧縮されるべきデータにおける各ビットの確率、および算術符号化アルゴリズムに基づいて、圧縮されるべきデータを符号化して、算術コード化範囲を取得する。
【0146】
【表5】
【0147】
プロセッサ103は、以下の式(5)に従って圧縮データを決定する。
z1≦c×2^(-b)<(c+1)×2^(-c)≦z2 (5)、式中、
cは整数、bはビットの最小数、z1はビットの確率の下限範囲、z2はビットの確率の上限範囲である。予測ビットが1である確率をPと仮定する。読み取られたビットが1である場合、下限z1=z1+(1-P)×(z2-z1)が更新される。読み取られたビットが0の場合、上限z2=z1+(1-P)×(z2-z1)が更新される。
【0148】
この場合、見つかった最小値bは6であり、取得されたcの値は23である。最終出力符号化値は、23の2進値、言い換えれば、圧縮データは、010111である。
【0149】
コンテキストマッチング情報が予測されると、データ圧縮モデルのパラメータは、より正確な予測確率値を出力するために、既存の確率および更新されたコンテキスト情報に基づいて連続的に調整される必要がある。
【0150】
一例では、プロセッサ103は、現在の連続ビットに基づいて次のビットを予測し、現在のビットおよび現在のビットの回数nに関する情報が必要とされる。回数nは、現在のビットと同じであり、前に連続的に現れたビットの回数を示す。nが大きいほど、次のビットが現在のビットと同じである確率が高くなる。現在のビットが前の連続ビットと異なるたびに、現在のビットに関する情報が更新され、現在のビットの回数nも1に更新される。
【0151】
現在のy番目のビットを0とし、連続する3ビットを0、言い換えると、n=3と仮定する。(y+1)番目のビットが1である確率が0.3であると予測した後、プロセッサ103は、算術コーダに確率を書き込む。(y+1)番目のビットを読み取る確率が0であるとき、データ圧縮モデルで必要とされる現在のビットに関する情報は変わらず、回数nは、4に更新される。(y+2)番目のビットが1である確率が予測されると、確率は0.25に変わる。前のビット0の出現の数が増加するので、予測ビットが0である確率が増加し、それに応じて予測ビットが1である確率が減少する。(y+1)番目のビットを読み取る確率が1である場合、現在のビットは1に更新され、nも1に更新される。(y+2)番目のビットが1である確率が予測されると、確率は0.55に増加する。
【0152】
いくつかの実施形態では、確率更新モジュールは、確率予測モジュールによって次のビットを予測する精度を保証するために、確率予測モジュールによって必要とされる特徴情報を、現在読み取られているビットに基づいて、連続的に更新し得る。
【0153】
確率混合モジュールは、ビットの最も正確な確率を取得するために、ビットのものであり、複数の確率統計モデルに基づいて算出される初期確率値を合成し得る。確率混合モジュールは、ビットの確率を取得するために、ニューラルネットワークに基づいて、複数の初期確率値に対して重み付け計算を実行し得る。ニューラルネットワークとしては、限定はしないが、長短期メモリモデル、ゲート付き回帰型ユニット、全結合モデル、または他のニューラルネットワークモデルがある。
【0154】
算術符号化モジュールは、データ圧縮を実施するために、取得された各ビットの確率に対して算術符号化演算を実行する。算術符号化演算は複雑であり、比較的高い計算オーバーヘッドを有し、確率統計モジュールと密接に組み合わされる。計算オーバーヘッドを低減するために、算術圧縮アルゴリズムは、ビット当たりに基づいて符号化され、算術符号化モジュールを実行するためのハードウェアを使用することは、非常に高い効率を有する。圧縮プロセスに反して、元のデータは、解凍フェーズにおいて算術デコーダに基づいて算出される。圧縮フェーズでは、データ圧縮モデルのパラメータは、符号化データ(たとえば、データタイプに対応するデータ圧縮モデル)に記憶される。復号フェーズでは、データ圧縮モデルのみが使用される必要があり、データタイプ識別モデルは、使用される必要がない。したがって、解凍処理は、圧縮処理よりも速い。算術符号化モジュールは、算術コーダによって実施されてもよく、算術コーダは、プロセッサ103内にあってもよい。
【0155】
他の実施形態では、プロセッサ101が圧縮されるべきデータを受信した後、プロセッサ101は、圧縮されるべきデータのデータタイプを識別し、データタイプに基づいて、1つまたは複数のデータ圧縮モデルを選択する。加えて、プロセッサ101は、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する。上記の実施形態との違いは、プロセッサ103が、選択された1つまたは複数のデータ圧縮モデルに基づいて、圧縮されるべきデータを圧縮する必要がないことである。1つまたは複数のデータ圧縮モデルを選択するための具体的な方法、および圧縮されるべきデータを圧縮するための具体的な方法については、上記の実施形態の説明を参照されたい。詳細については再度説明しない。
【0156】
他の実施形態では、いくつかのデータ圧縮モデルがプロセッサ103に記憶され得る。プロセッサ103は、いくつかのデータ圧縮モデルに基づいて、圧縮されるべきデータにおける各ビットの確率を取得し、圧縮されるべきデータにおける各ビットの確率、および算術符号化アルゴリズムに基づいて、圧縮されるべきデータを符号化して、圧縮データを取得する。いくつかのデータ圧縮モデルは、従来技術におけるすべてのデータ圧縮モデルにのうちの一般的に使用されるデータ圧縮モデルと、一般的に使用されるデータ圧縮モデルを組み合わせることによって生成される他のデータ圧縮モデルとを含む。圧縮されるべきデータを圧縮するための具体的な方法については、上記の実施形態の説明を参照されたい。詳細については再度説明しない。
【0157】
上記の実施形態における機能を実装するために、コンピューティングデバイスは、各機能を実行するための対応するハードウェア構造および/またはソフトウェアモジュールを含むことが理解され得る。当業者は、本出願に開示された実施形態において説明された例と組み合わせて、ユニットおよび方法ステップが、ハードウェアによって、またはハードウェアとコンピュータソフトウェアとの組合せによって実装され得ることを容易に認識されたい。機能がハードウェアによって実行されるか、コンピュータソフトウェアによって駆動されるハードウェアによって実行されるかは、特定のアプリケーションシナリオおよび技術的解決策の設計制約に依存する。
【0158】
図5は、本出願の一実施形態による可能なデータ圧縮装置の概略構造図である。データ圧縮装置は、上記の方法実施形態におけるコンピューティングデバイスの機能を実装するように構成されてもよい。したがって、データ圧縮装置は、上記の方法実施形態の有益な効果を実施することもできる。本出願のこの実施形態では、データ圧縮装置は、図1に示されるコンピューティングデバイス100であってもよく、またはコンピューティングデバイスで使用されるモジュール(たとえば、チップ)であってもよい。
【0159】
図5に示されるように、データ圧縮装置500は、第1の処理モジュール510および第2の処理モジュール520を含む。データ圧縮装置500は、図2または図4に示される方法実施形態におけるコンピューティングデバイスの機能を実装するように構成されている。
【0160】
データ圧縮装置500が、図2に示される方法実施形態におけるコンピューティングデバイスの機能を実装するように構成されているとき、第1の処理モジュール510は、S201からS203を実行するように構成され、第2の処理モジュール520は、S204を実行するように構成されている。
【0161】
データ圧縮装置500が、図4に示される方法実施形態におけるコンピューティングデバイスの機能を実装するように構成されているとき、第1の処理モジュール510は、S201a、S201b、S202、およびS203を実行するように構成され、第2の処理モジュール520は、S204を実行するように構成されている。
【0162】
第1の処理モジュール510および第2の処理モジュール520のより詳細な説明については、図2または図4に示される方法実施形態における関連する説明を直接参照されたい。詳細は、本明細書では再度説明しない。
【0163】
たとえば、特定の製品実装形態では、第1の処理モジュール510は、図1に示されるプロセッサ101であってもよく、第2の処理モジュールは、図1に示されるプロセッサ103であってもよい。他の例では、第1の処理モジュール510および第2の処理モジュール520は、コンピューティング能力を有する2つの構成要素とすることができ、または同じ構成要素内の2つのコンピューティングユニットとすることができる。第1の処理モジュール510と第2の処理モジュール520との間の編成形態は、この実施形態では限定されない。
【0164】
本出願の実施形態では、別段に明記されていない限り、または論理の矛盾がない限り、異なる実施形態間の用語および/または説明は一貫しており、相互に参照されてもよく、異なる実施形態の技術的特徴は、新しい実施形態を形成するために、その内部論理関係に基づいて組み合わせられてもよい。
【0165】
本出願において、「少なくとも1つ」は1つまたは複数を意味し、「複数」は2つ以上を意味する。「および/または」という用語は、関連付けられた対象物を説明するための関連付け関係を表し、3つの関係が存在し得ることを表す。たとえば、Aおよび/またはBは、以下のケース、Aのみが存在する、AとBの両方が存在する、Bのみが存在する、を表し得、AおよびBは単数でも複数でもよい。本出願の本文の記述では、文字「/」は、関連付けられたオブジェクト間の「または」関係を示す。本出願の式において、文字「/」は、関連付けられた対象物間の「分割」関係を示す。
【0166】
本出願の実施形態における様々な数字は、単に説明を容易にするために区他のために使用されており、本出願の実施形態の範囲を限定するために使用されていないことが理解され得る。上記のプロセスのシーケンス番号は、実行順序を意味するものではない。プロセスの実行順序は、プロセスの機能および内部論理に基づいて決定されるものとする。
【符号の説明】
【0167】
100 コンピューティングデバイス
101 プロセッサ
102 メモリ
103 プロセッサ
104 通信バス
105 人工知能チップ
500 データ圧縮装置
510 第1の処理モジュール
520 第2の処理モジュール
図1
図2
図3
図4
図5