JP2019528027A - Chanフレームワーク、chanコーディング及びchanコード - Google Patents

Chanフレームワーク、chanコーディング及びchanコード Download PDF

Info

Publication number
JP2019528027A
JP2019528027A JP2019526383A JP2019526383A JP2019528027A JP 2019528027 A JP2019528027 A JP 2019528027A JP 2019526383 A JP2019526383 A JP 2019526383A JP 2019526383 A JP2019526383 A JP 2019526383A JP 2019528027 A JP2019528027 A JP 2019528027A
Authority
JP
Japan
Prior art keywords
code
chan
data
bit
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019526383A
Other languages
English (en)
Other versions
JP7268271B2 (ja
Inventor
フー チャン、カム
フー チャン、カム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of JP2019528027A publication Critical patent/JP2019528027A/ja
Application granted granted Critical
Publication of JP7268271B2 publication Critical patent/JP7268271B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/55Compression Theory, e.g. compression of random number, repeated compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6035Handling of unkown probabilities
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Storage Device Security (AREA)

Abstract

暗号化/復号又は圧縮/解凍、あるいはその両方を含む目的のために、ランダムであるか否かに関わらず、データをロスレス且つ正確なエンコーディング及びデコーディングの方式で処理するためのフレームワーク及び関連方法、スキーマ及び設計である。処理前に処理されるべきデジタル情報の仮定はない。ユニバーサルコーデックが発明され、その結果、鳩ノ巣がブラックホールに合う。

Description

理解している人がその数を数える。
本発明は、本発明者により2016年7月29日に提出されたPCT/IB2016/054562、2016年8月5日に提出されたPCT/IB2016/054732、2017年2月22日に提出されたPCT/IB2017/050985及び2017年7月1日に提出されたPCT/IB2017/053993である4つの早期PCT出願の優先権を要求している。本発明は上記4つのPCT出願に開示され且つ本願に改良された概念及び技術的用途に関し、圧縮/解凍及び暗号化/復号を含むエンコーディング及びデコーディングの目的で、ランダムであるか否かに関わらず、デジタルデータを順序付け、組織及び記述するためのフレームワークを提案する。本発明の単一性は、本願の記述がデジタルデータを順序付け、組織及び記述するためのフレームワークCHANFRAMEWORKであるCHANフレームワークを開示し、それにより、具体的に各種の活動用のデジタルデータの暗号化/復号及び圧縮/解凍における用途を含む各種の用途のデジタルデータを処理するために、前記デジタルデータはCHAN、即ちCHANフレームワークでコーディング手段(エンコーディング/デコーディング手段とも呼ばれる)、方法及び技術を開発及び使用する。CHAN図表の異なる成分(CHAN長方形、CHAN台形、CHAN正方形、CHAN三角形、CHAN直線、CHAN点及びCHANバー又は2進数ビット形態のデジタルデータからなる処理ユニットの基本コンポーネントの関係及び特徴を記述するその他の形状を含む)間の関係を開示し、及び知的所有権の使用・保護の対応技術に用いるために、デジタル情報のコーディング(エンコーディング及びデコーディングを含む)を行う時には、本発明においてはデジタルデータを順序付け及び組織する方式を見つけることができ、前記知的所有権はデジタル情報の形態で表現され、デジタルデータ及び装置用の実行可能コードを含み、装置は実行可能コードを実行し又はデジタルデータを使用できるコンピュータシステム又はコンピュータで制御される装置又はオペレーティングシステムで制御される装置又はシステムを含む。以下、このような装置は装置と呼称される。
具体的には、本発明は、フレームワーク、方法及びそのデジタル情報装置における処理、格納、割り当て及び使用における応用に関し、前記デジタル情報は、デジタルデータ及び実行可能コード、例えばブートコード、プログラム、アプリケーションプログラム、装置ドライバー又はオペレーティングシステムを構成するこのような実行ファイルの集合を含み、前記実行ファイルは、ハードウェア(例えば全てのタイプの記憶媒体に埋め込まれ又は格納される)に埋め込まれ又は格納される実行可能コードの形態となり、前記記憶媒体は、リードオンリー又は書き換え可能又は揮発性又は不揮発性記憶媒体(以下、記憶媒体と呼称される)、例えば物理メモリ又は内部DRAM(ダイナミックランダムアクセスメモリ)又はハードディスク又は固体ディスク(SSD)又はROM(読み出し専用メモリ)、又はリードオンリー又は書き換え可能なCD/DVD/HD−DVD/ブルーレイDVD又はハードウェアチップ又はチップセット等を含む。開示されたコーディング方法、即ちCHANコーディングは、達成する時に、エンコーディングされたコードを発生させ、CHANコードは、ロスレスにデコーディングされてオリジナルコードに復元することができ、このようなコーディングが圧縮に用いられると、このような圧縮コードもその限界に達するまで、何度も再圧縮することができる。
本質的には、本発明は、デジタルデータを新規作成するための順序付けフレームワークを開示し、それにより、デジタル情報の圧縮/解凍又は暗号化/復号を行うために、デジタルデータを記述してその特徴を研究することができる。この関係では、知的所有権を使用及び保護する目的で、ローカルクラウド又はインターネットクラウドにより接続された装置においてデジタル情報の処理、格納、割り当て及び使用を可能にする。他の圧縮方法を使用する場合と同様に、対応する方法を使用して適切に解凍していないと、圧縮コードを正確に復元することができない。圧縮目的で使用されない場合、エンコーディングされたコードは暗号化されたコードと見なされ、正確な対応するデコーディング方法を使用し、このような暗号化されたコードもオリジナルコードにロスレスに復元することができる。CHANコーディング及びCHANコード(概念、方法を含むCHANコーディング及びCHANコード、即ち技術の組み合わせ及び上記PCT出願及び本願に開示されるように生成したコード)はその他の科学、工業及び商業活動等の探求される各種の応用にも用いられる。圧縮分野においては、その驚異的な使用を鮮明に示している。
しかし、本発明に開示されたフレームワーク、関連するスキーマ、設計、方法及びその応用は、クラウド(即ちローカルエリアネットワーク又はインターネット)によりデジタル情報を伝達又は交換することに限られず、その他の情報伝達又は交換モードにおいても使用できる。
圧縮科学分野においては、発行されたデジタル情報を圧縮するための方法及びアルゴリズムが多数あり、http://en.wikipedia.org/wiki/Data_compressionに常用のデータ圧縮方法及びアルゴリズムの説明を見つけることができる。本発明は新型方法を記述し、前記方法はロスレスデータ圧縮(また、暗号化及びロスレス復号の目的に適用できる)及びその復元に使用できる。
上記ウィキロスレス圧縮の関連部分は、参照できるようにここに再現されている。
「ロスレスデータ圧縮アルゴリズムは通常、統計的冗長性を利用して情報を失うことなくデータを簡潔に表現し、前記プロセスを可逆的にする。ほとんどの実際のデータに統計的冗長性があるため、ロスレス圧縮は可能である。例えば、「赤色画素、赤色画素...」をコーディングする代わりに、画像は、複数の画素にわたって変化しない色の領域を有することができ、データは「279個の赤色画素」としてエンコーディングすることができる。これはランレングスエンコーディングの基本実例であり、冗長を解消することでファイルサイズを減少させる多くの手段が存在する。
Lempel−Ziv(LZ)圧縮方法は最も一般的なロスレス格納アルゴリズムの1つである。
DEFLATEはLZの変形であり、解凍速度及び圧縮比を最適化させるが、圧縮が遅くなる可能性がある。DEFLATEは、PKZIP、Gzip及びPNGに用いられる。LZW(Lempel−Ziv−Welch)はGIF画像に用いられる。また、Zip方法の基礎となるLZR(Lempel−Ziv−Renau)アルゴリズムも注目に値する。LZ方法は、テーブル・ベースの圧縮モデルを使用し、データの繰り返し文字列の代わりにテーブルエントリが使用される。ほとんどのLZ方法では、このテーブルは入力の初期データから動的に生成されるものである。テーブルそのものは、一般的にハフマンエンコーディングされる(例えばSHRI、LZX)。現在LZに基づき、良好に動作するコーディング手段LZXは、マイクロのCABフォーマットに用いられる。
現在の最適なロスレスコンプレッサは、部分マッチングにより予測する等の確率モデルを使用する。Burrows−Wheeler変換は、統計モデリングの間接形態と見なすこともできる。
例えば、同じ又は関連する種の生物学的データ収集、巨大バージョンのドキュメントコレクション、インターネットアーカイブ等の反復性の高いテキストを非常に効果的に圧縮することができるため、このような文法ベースのコードは人気がある。文法ベースのコードの基本タスクは単一文字列を導出する文脈自由文法を構築することである。Sequitur及びRe−Pairは共通コードの使用できる実用的な文法圧縮アルゴリズムである。
これらの技術のさらなる改良において、統計的予測は算術コーディングと呼称されるアルゴリズムに結合することができる。算術コーディングはJorma Rissanenにより発明され、Witten、Neal及びClearyにより実用方法に変換され、よく知られているHuffmanアルゴリズムに対する良好な圧縮を実現し、特に予測がコンテキストに依存するアダプティブデータ圧縮タスクに適用できる。算術コーディングは二層画像圧縮基準JBIG及びドキュメント圧縮基準DjVuに用いられる。テキスト入力システムDasherは逆算術エンコーダである。」
上記ウィキにおいて、「LZ方法は、テーブル・ベースの圧縮モデルを使用し、データの繰り返し文字列の代わりにテーブルエントリが使用される」が記載されている。テーブルで変換、暗号化、圧縮及び拡張することは常用であるが、如何にテーブルをこのような目的に用いるかというのは、様々であり、ある方式又はその他の方式により新奇にする可能性がある。
本発明は新型方法であるCHANコーディング法(つまりCHANコーディング)を提案し、一度も公開されていない素晴らしい結果を生み出した。これは挑戦に成功したことを示し、情報理論における鳩ノ巣原理の神話の革命的な終結でもある。CHANコーディングについては、次の節には技術的課題を如何に処理・解決するかを示す。
ロスレスデータ圧縮の挑戦により提案された技術的課題は、如何に短いコードエントリにデジタルデータコードの長いエントリを示すか、及び如何にそれを復元するかということである。短いエントリは長いデータエントリを置換することに用いられるが、縮んだエントリからオリジナルの長いエントリを復元することを可能にするか又はその方法を知らせるように、デジタル形態のその他の情報を追加する必要がある。多すぎるこのようなデジタル情報を追加する必要があると、圧縮の努力が無駄になり、時には結果は圧縮ではなく拡張になってしまう。
このような追加情報の格納方式は圧縮過程に他の挑戦を提案する。デジタル情報の1つ又は複数のエントリに関する追加情報が圧縮データエントリに散在して格納されている場合、如何に追加情報とデジタル情報のオリジナルエントリとを区別するかというのは問題となり、復元期間にデジタル情報の圧縮エントリの分離に他の挑戦を提案し、特にデジタル情報のオリジナルエントリを異なる長さに圧縮した場合、追加情報の長さもそれに従って変化する。
繰り返して再圧縮した後に追加情報及び圧縮デジタルエントリを復元できると、特に問題となる。一般的に、圧縮データは再圧縮できず、再圧縮を試しても、多くの利得を取得できず、通常に結果は圧縮ではなくて拡張になってしまう。
圧縮されるべきデジタル情報は本質的に異なり、一部はテキストファイルであり、他の一部はグラフィック、音楽、音声又は映像ファイル等である。テキストファイルは、通常、ロスレス圧縮する必要があり、さもないとその内容が失われたりスクランブルされたりして、識別できなくなる。
テキストファイルはASCIIベースのものもあり、UNICODEベースのものもある。異なる言語のテキストファイルは、デジタルコードの頻度及び組み合わせに示されるような異なる特徴を有する。これは、適応力がほとんどない(即ち、可能性のある全ての場合を満たすことができない)フレームワーク及び方法が、このような全ての状況に最適に作用できないことを意味する。従って、データ圧縮へ適応性及び柔軟性が高いか又は全てを包含するフレームワーク及び方法を提供することは、課題となっている。
本明細書は、フレームワーク、スキーマ及びコンピュータ達成方法を開示し、前記方法はデータのロスレスエンコーディング及びデコーディングによりランダムデータを含むデジタルデータを処理することに用いられる。前記フレームワーク及び方法は、データを正確に処理し、暗号化/復号又は圧縮/解凍の目的に用いられる。前記フレームワーク及び方法はロスレスデータ圧縮、ロスレスデータ暗号化及びデータのロスレスデコーディング及び復元に用いられる。前記フレームワークがデータを処理する前に処理しようとするデジタルデータについて仮設しない。
本発明までの長い間、データ圧縮分野において、純粋にランダムな2進数データは絶対的に非圧縮性であると証明された。本発明は、異なるタイプ及び異なる言語特徴に適用し、ランダムデジタル情報を問わずにロスレス圧縮用のフレームワーク及び方法を提供することにより、ランダムデジタル情報を圧縮してそれを首尾よく復元することができる。本発明に開示されたフレームワーク(CHANフレームワーク)はランダムであるか否かに関わらずデジタル情報の順序付けを組織的に記述及び新規作成することが可能であり、任意のデジタル情報の特徴を発見、記述、調査及び分析することができ、デジタル情報のこのような特徴及び内容を周期的に重複するロスレス暗号化/復号及び圧縮/解凍を目的とする技術及び方法の開発に用いることができる。これは、情報理論における鳩ノ巣原理の神話を終わらせる。もちろん、それには限界がある。明らかに、1ビットだけのデジタル情報をさらに圧縮することができない。本発明に開示されるように、デジタル情報の圧縮制限は圧縮中の関連達成方式により選択されたスキーマ及び方法に伴って変化し、例えば使用するヘッダーのサイズ、処理ユニット(所定の数のコード単位を含む)のサイズ、又は使用するスーパー処理ユニット(所定の数の処理ユニットを含む)のサイズ、及び完全な処理ユニット又はスーパー処理ユニットを構成するには不十分であり、エンコーディングしていない2進数ビットコードのサイズにより確定される。従って、設計及び関連データ割り当てそのものの性質に基づき、任意のデジタル情報を圧縮する制限は数千の2進数ビット又はそれ未満に保つことができる。
CHANフレームワーク及びCHANコーディングを使用すると、圧縮及び復元されるべきランダムデジタル情報を事前に知る必要はない。CHANフレームワークは、必要に応じて以下における記述中で定義される。例えば、2ビットの固定ビットサイズを用いる従来のデータエンコーダに対してデジタルデータをサンプリングすると、それは常に2ビットフォーマットのデジタルデータを示すことができ、多くとも4個の値、即ち00、01、10及び11を有するので、CHANフレームワークにおけるデータエンコーダと比較すると、前記CHANデータエンコーダの使用するデータエンコーダは収容可能な最大データ値を、データを区別するための主要要因又は基準として用い、コードのビット値サイズ及びその他の基準を非主要要因又は基準とするように設計される。これは、従来のデータエンコーダがCHANフレームワークにおけるデータエンコーダの1つの変形にすぎないことを意味し、CHANフレームワークに置くことができ、最大4個の値(Max4クラス)の数値を有する上記2ビットフォーマットの従来のデータエンコーダを実例として使用する。従って、CHANフレームワークにおけるMax4クラスデータエンコーダは、例えば全ての唯一4個の値用の総ビット数によりビットグループとして定義され、さらに使用するヘッダータイプにより定義される他の変形を有することができ、例えば以下の図表0に示される。
図表0
CHANフレームワークでグループ化された従来のデータエンコーダ
Max4クラス=データ区別用の主要要因又は基準
8ビットグループ 9ビットグループ=非主要要因又は基準
0ヘッド 1ヘッド=非主要要因又は基準
00 0 1
01 10 01
10 110 001
11 111 000
Max4クラスのデータエンコーダの3つの変形のうち注目すべきことは、全ての4個の唯一コード単位値が同じ数の2進数ビット表現を有する同じビットサイズのコード単位(例えば8ビットグループ)以外、9ビットグループの他の2つの変形のコード単位のビット値サイズはいずれも異なる。このCHANフレームワークにおける豊か且つ柔軟なデジタルデータ分類手段は、エンコーディング及びデコーディングの目的のため、データを制御するか又は示すための新型方法及び技術を開発することを可能にし、それにより情報理論における鳩ノ巣原理の神話を破る。
以下の図表は、本発明に開示された、データエンコーダでエンコーディング及びデコーディングする(即ち圧縮/解凍及び暗号化/復号目的を含む)ためのCHANフレームワークの特徴を解釈することに用いられ、前記データエンコーダは、従来のデータエンコーダにより定義された、同じ最大可能数の唯一値を有し、例えばMax4 8ビットグループを2ビット固定サイズの従来のデータエンコーダと等価に使用し、又はMax8 24ビットグループを3ビット固定サイズの従来のデータエンコーダと等価に使用する。簡略化するために、前に使用していないがCHANフレームワークにおけるデータエンコーダを使用する人に対して、処理ユニットの構成部(コンポーネントとも呼ばれる)の概念を説明する。
図表1
処理ユニットコンポーネントの概念を説明するCHANフレームワーク及び図解
Figure 2019528027
a及びbは、それぞれ1つのコード単位(0及び1の所定の数の2進数ビットコードの基本単位)を示す2つのデジタル情報である。所定の数の0及び1の2進数ビットに示されるコード単位の内容又は値は繰り返して読み取られ、例えば、aは第1コード単位として読み取られ、bは第2コード単位として読み取られる。
1つのデジタル情報は1つのコード単位を構成し、図表1中の2つのこのコード単位は1つの処理ユニットを構成する(処理ユニットに含まれたコード単位の数はコーディング設計に使用されたスキーマ及び技術に応じて変化し、これはコード設計者によって決定されるため、図表1を用いる本図に使用された場合とは異なる可能性がある)。
演算の便宜及び容易さのために、各コード単位は、最適には、例えば1つのコーディング過程サイクルのビットサイズに基づき、スケール変換を行うことなく同じ数字スケールを使用する等の同じ定義を有し、エンコーディング及びデコーディングの一致性及び規則性は、エンコーディング後にロスレスにデジタル情報を首尾よく復元することに対して重要である。エンコーディング及びデコーディングの一致性及び規則性とは、デジタル情報の処理が一定の法則に従うことを意味し、そのため、デジタル情報を変換又は切り替えることができるような方法でエンコーディング及びデコーディングを論理的に行うことができることで、データ割り当てを変えることを可能にし、例えば、デジタル情報の2進数ビット0と2進数ビット1の比率を変えたり、動的コードを調整(コード昇格、コード降格、コード省略及びコード復元を含む)したりすることを可能にする。エンコーディング及びデコーディング用のこのような法則はコード単位又は処理ユニット又はスーパー処理ユニットの特徴及び内容、及び使用する関連するスキーマ、設計及びエンコーディング及びデコーディング方法によって決定される。エンコーディング及びデコーディングのこのような法則又は論理は、メインヘッダー内の2進数コード(デジタルデータ入力全体に対して)又は2進数ビットをインジケータとして用いるセクションヘッダー内(デジタルデータ入力全体は2進数ビットコードを含む複数のセクションに分けられ、各セクションのヘッダーが即ちセクションヘッダーと呼称される)に記録でき、エンコーディング及びデコーディングのスキーマ、設計及び方法の一致性及び規則性が許可できる場合、インジケータとするこのような2進数コードはエンコーダ及びデコーダに埋め込むことができる。
コード単位は、2進数スケール、8進数、16進数等を含む任意の適切な数字スケールの選択により表現し及び示すことができる。
コード単位のサイズ、即ちコード単位サイズは、任意の適切なサイズとして選択し得、例えば、4ビット、8ビット、16ビット、32ビット又は64ビットのような2進数スケール、又は任意の演算しやすいビット値サイズがいずれもコード単位サイズとすることができる(コード単位の定義は段落0054からのCHANフレームワークに基づいて改良される)。
各コード単位のデジタル数又はデジタル値はコード単位のデジタル内容を示し、デジタル数はコード単位の全てのビットのビットシンボルを示す。
且つ、使用するコード単位間の関係を設計、見つけ及び記述することができ、CHANコーディングが2つのコード単位を使用する概念及び技術として如何に使用するデモ説明するために、前記関係に使用される数式の定義は以下のとおりである。
a及びbは図表1中のカレントスキーマに応用されたCHANコーディングのうちの、1つの処理ユニットを構成する2つのコード単位であり、各コード単位は各コード単位において伝送されたデジタル情報の内容又は数値を示すデジタル数であり、bの前にaを読み取る。
aはbより大きく又は小さい値であってもよく、他の2つの変数名でこの2つのコード単位の値のランクを示すことができる。
Aは2つのコード単位のうちの大値である。
Bは2つのコード単位のうちの小値である。
且つ、aとbの値が同じであり、まず読み取るのはAであり、次に読み取るのはBであり、従ってAの値はB以上であり、且つaはbに関連してその値に応じてA又はBになる可能性がある。
上記場合に鑑み、必ずビット(RPビット)(即ちランク及び位置ビット)で、第1コード単位が第2コード単位以上又は小さい値を有するか否かを指示し、従って、コードのこのビットコードは2つのコード単位により読み取られた値の位置とランクとの関係を示す。
a及びbをエンコーディングするために、以下のように、a及びbの値を1つの独立値に容易に加算し、コード単位サイズのビット値サイズに1ビットを加算することができる。
図表2
エンコーディングする前、図表2のデータは図表1に示すように、コード単位サイズが64ビットであり、2つのコード単位を有する処理ユニットを有すると仮定する。
Figure 2019528027
図表3
エンコーディングした後、生成したコード、CHANコードはRPピース及びCVピースからなる。
Figure 2019528027
CHANコードのRPビット(1ビット)は、即ち第1ピースであり、RPピース及びaとbの組み合わせ値、A+B(65ビット、即ち64ビットに1を加算し、コード単位サイズのビットサイズに1ビットを加算する)は、即ち第2ピースであり、CHANコードのエンコーディング値ピース又は内容値ピース(CVピース)は、生じたエンコーディング、CHANコードを構成し、さらにオリジナルデジタル情報に対して実行したエンコーディングサイクル数に必要な及び余剰コード処理に必要な関連するヘッダー情報を含むことができる。本発明者は、2015年8月29日に提出された他のPCT特許出願PCT/IB2015/056562においてこのようなヘッダー情報の形成及び処理を提出しているため、本明細書では繰り返さない。
デコーディングの目的で、当業者は、上記PCT特許出願又は他の設計に記載されたヘッダー処理と得られたCHANコード、即ちCHANコードのRPピース及びCVピースを容易に使用できる。以下に本発明に開示されるように、このように設計されたエンコーディング及びデコーディングのスキーマ及び方法に基づき、より多くのコード単位が使用される時には、CVピースをさらにサブブロックに分けることができる。
RPピースは、対応するコード単位のある特性又は特徴を示し、本明細書の処理ユニットの2つの対応するコード単位間のランク及び位置の特徴を示すコードピースである。RPピースは幅広いコードカテゴリーのコードのサブセットであり、特性コード又は特徴コード又は分類コードとして命名される(関連する特性又は特徴が類似した特性又は特徴を有するコード単位を分類又はグループ化するために使用されているためにこのように呼ばれる)。CVピースは1つ又は複数のコード単位の内容のエンコーディングコードを示す。時には、エンコーディング及びデコーディングのスキーマ及び方法に基づき、コード単位の内容の一部は分類コードとして抽出され、CVピースに残っているものはコード単位の内容に対応する残りの部分にすぎない。CVピースはCHANコードの内容コードを構成する。従って、エンコーディング及びデコーディングのスキーマ及び方法に基づき、CHANコードは少なくとも内容コードを含み、適切な場合に分類コードを追加し、適切な場合又は必要がある場合に、内容コードそのものに含まれる、又は内容コードそのものの内部に混在している、又はヘッダーに含まれる、例えばスーパー処理ユニットを処理する時に使用するコーディング方法又はコードマッピングテーブルを指示するその他のインジケータコードを追加する。これは、当然、本発明の説明において明らかになるであろう。
ここまで、CHANフレームワークは、コード単位、処理ユニット、スーパー処理ユニット、エンコーディングしていないコード単位(エンコーディングしていないコードを含む)、ヘッダーユニット(デジタル情報ファイルのヘッダーに使用され、デジタルデータファイル全体に適用されるインジケータを含む)、内容コード単位、セクション及びセクションヘッダー(デジタルデータファイル又はストリーム全体が処理のための複数のセクションに分割される)、適切な場合には分類エンコーディングユニット(以下、上記特性コード又は特徴コード単位を意味する)、及び内容コード内部と混在しているインジケータコード(例えば、対応するスーパー処理ユニットに固有)の元素を含む。前記フレームワークは適切な場合にさらに洗練されて精緻化される。
コンポーネント、処理ユニットの2つの基本コード単位の関係であるランクと位置、及び以上の段落0014にリストされた合計を見つけた後、このような関係はRPピースに示され、CHANコードのCVピースはCVピースにおける最もシンプルな数式であるA+Bを使用する。RPピースは0又は1である1ビットだけを含み、それにより1つの処理ユニットで読み取られた2つのコード単位の第2値bと第1値aを比較し、どれが大きい値であるか又は同じ値であるか又は小さい値であるかを指示する。
前の実例及び現在市場に流行っている64ビットパーソナルコンピュータを使用することで、2進数スケールの各64ビットコード単位が64ビットで示されると、圧縮又は暗号化がない可能性がある。従って、各エンコーディングステップに対して必ず1つより多いコード単位を処理ユニットとして使用する。デジタル情報のデジタルファイル又はデジタルファイルの一部(デジタルファイルがさらに複数のセクションに分けられて処理すると)は必ず1つ又は複数の処理ユニット又はスーパー処理ユニットに分解されて各エンコーディングステップを行い、それにより形成する各処理ユニット又はスーパー処理ユニットのエンコーディングコードはCHANコードの元素となり、各処理ユニットの1つのRPピース及び1つのCVピースからなり、現在のこのような場合には、CHANコードのユニットである。従って、CHANコーディングで圧縮又は暗号化した後のデジタル情報のデジタルファイル(又はデジタルファイルが分けられたセクション)は1つ又は複数のCHANコード単位からなり、即ちCHANコードファイルからなる。CHANコードファイルは、CHANコードを含む以外、さらに、オリジナルデジタル情報の任意の余剰のエンコーディングしていないビット、即ち1つの処理ユニット又は1つのスーパー処理ユニットを構成していない、エンコーディングしていないコード単位と、較正及び及びいつ必ずデコーディングを停止するか、又は何回のエンコーディング又は再エンコーディングのサイクルが行われたか、又はヘッダー又はフッターにおけるID番号又はインジケータに指示されたように、最初又は最後に又はどこかに存在するエンコーディングしていないオリジナルデジタル情報が何ビットであるかに関するサイン又はインジケータを含み、デジタル情報を識別するために通常使用されるヘッダー又はフッターを表すその他の追加されたデジタル情報とを含む。必要があれば、カレントエンコーディングサイクルにエンコーディングしていないこのようなデジタル情報は次のサイクル間にさらにエンコーディングすることができる。本発明では、このような追加されたデジタル情報がどのように設計され、配置され、使用されるべきかが要求されない。これらの追加されたデジタル情報がエンコーディング及びデコーディング過程に利用可能になることができる限り、使用者は自らの目的に応じて自由に自分の設計を作ることができる。これらの追加されたデジタル情報を如何に使用するかを明確にするために、必要に応じてこれらの追加されたデジタル情報の用途が言及される。従って、本発明は主にエンコーディング及びデコーディングに使用された技術及び方法(即ちCHANフレームワーク内のCHANコーディング)で生成したCHANコードを含む。CHANコードは2つ又は複数の格納するセクションに分けることができ、例えば、CHANコードのサブブロックは、容易さ又は安全さのために、デコーディングに用いられ又は引渡しに用いられるように、独立したデジタルデータファイルに独立して格納できる。CHANコードヘッダー又はフッターも他の独立したデジタルデータファイルに格納し且つ同じ目的のため引渡すことができる。このようなCHANコードを構成するファイル及びCHANコードヘッダーとフッターファイルはその他の追加されたデジタル情報が存在しても存在しなくても、CHANコードファイルであり、これは段落0014に定義されたCHANフレームワークに追加する他の元素である。
CHANコードはCHANコーディングを使用したエンコーディングコードである。CHANコーディングはオリジナルコードからエンコーディングコード又は派生コードを生成する。圧縮に用いられると、CHANコードは圧縮コードを示し(使用するスキーマ及び方法で圧縮できると)、データ割り当てがランダムであるか否かに関わらず、オリジナルコードに使用されたビット数より小さい。所定のサイズを超えるランダムデータが均一になり、即ちビット0とビット1との比率は1:1になる。CHANコードはCHANコーディングの結果を示し、本実例においては、対応する数式により指定された演算、即ちRPピースの値及び演算やエンコーディング用の加算演算を用いて発生し、前記数式は(処理ユニット)の基本コンポーネントと、(コード単位)との関係を示し、派生コンポーネントを生成し、即ち図表3中、CVピースにおけるA+Bである。上記エンコーディング法則及び論理を使用することで、オリジナルコードに復元できる。RPピースはインジケータ情報を示し、それによりエンコーダの生じた処理ユニットの2つのコード単位のランク及び位置特徴を指示し、デコーダにより完了するオリジナルコードに復元することに用いられる。デコーディング時にデコーダが従う演算法則を指定する前記インジケータは、生じたエンコーディングコードに含まれる。しかし、数式A+Bに示される演算法則は、エンコーディング及びデコーディングにおいて応用される一致性及び規則性のため、エンコーダ及びデコーダに埋め込まれる。派生コンポーネントは1つ又は複数の基本コンポーネントからなるコンポーネント、又は特定の演算法則(例えば数式に示される)により演算した後にその他の派生コンポーネントと組み合わせたコンポーネントであり、前記演算法則は、例えば加算、減算、乗算又は除算演算を含む。
以上のように、CHANコーディングで処理した後に取得するCHANコードは、デジタル情報のデジタルビットを含み、前記デジタルビットは1つのユニットに組織され又はサブブロックに分解され、それによりオリジナルデジタル情報の内容を示し、オリジナルデジタル情報はデータ割り当て中にランダムであるか否かに関わらず、正確且つロスレスに復元することができる。当然、上記実例はオリジナルデジタル情報の正確且つロスレスな復元が許可されていない。例えば、例えばAマイナスB及び/又はオリジナルデジタル情報に復元できる前に存在する対応する内容コードピースの1つのような他の数式を必要とする。現在、以上の実例は、CHANフレームワーク及びその元素の目的を記述・定義することにしか用いられない。演算用の数字スケールの選択を確定した後、コード単位のビットサイズ及び処理ユニット用のコンポーネント(即ち1つの処理ユニット用のコード単位の数、最もシンプルな場合には、上記1つの処理ユニットの2つのコード単位しか用いない)並びにそれらの関係は数式に定義されており、デジタルコンピュータに使用された実行可能コードにおいて達成され、数式を演算法則として使用する場合、コーディングのためにCHANエンコーディングが行う作業は(使用するその他の技術は必要に応じて開示される)以下のステップを含む。(1)オリジナルデジタル情報を読み込み、(2)デジタル情報を分析してその特徴、即ち圧縮ユニットのコンポーネント及びその関係を取得し、(3)数式又は設計された式で演算する。前記式は、CHANコーディング分析後に取得したオリジナルデジタル情報のコンポーネントの特徴又はオリジナルデジタル情報のコンポーネント間の関係を記述し、即ちオリジナルデジタルデータの特徴はCHANコードに示されている。圧縮すると、CHANコードのデジタルビットはデータ割り当てがランダムであるか否かに関わらず、オリジナルコードに使用されたデジタルビットより小さい。CHANコードはロスレスにエンコーディングされたコードであり、デコーディング時にオリジナルコードにロスレスに復元でき[数式を使用し、且つエンコーディングにおける関連する数学演算は、必ずしもなく圧縮を可能にするとは限らず、例えば使用するスキーマ及び方法と共に設計された式、コード単位定義及びコード配置技術に非常に依存する]、(4)ステップ(1)で読み取られたオリジナルデジタル情報に関連する対応するCHANコードを生成する。
対応するCHANコードを復号してデジタルオリジナルコードに復元するためにCHANコーディングが行う作業は、以下のステップを含む。(5)対応するCHANコードを読み込み、(6)対応するCHANコードの特性を取得し、(7)このように設計された数式を逆様に使用する。前記式は、CHANコードのCHANコーディングを分析した後に得られたオリジナルデジタル情報のコンポーネントの特徴又はコンポーネント間の関係を記述しており、通常の数学及び補数数学の使用を含む。(8)ステップ(7)を使用した後、オリジナルデジタル情報がランダムであるか否かに関わらず、オリジナルデジタル情報のオリジナルコードをロスレスに生成する。このため、復号時に、図表3のCHANコードは図表2のオリジナルデジタルデータコードに正しく且つロスレスに復元される。これは、別の発明特徴を使用して実現することができ、その結果、コード単位の定義を広げて、より柔軟で新しいフレームワークとして、段落0014で説明されたデジタルデータを順序付け、組織、記述するための、そして(後に段落0054から)さらに洗練されて詳述されるCHANフレームワークを提供する。もちろん、これまでこの独創的な特徴をさらに明らかにする前には、AマイナスBを表す別のCVサブピースが以上の図表において存在していない場合はそうではなかった(即ち、このような場合に使用された式はオリジナルデータコードを正しく復元するのに十分ではない)。このCVサブピースが存在していても、従来のコード単位定義(コード単位は統一したビットサイズ又は同じビットサイズで定義されている)を使用して得られたCHANコードのサイズがオリジナルコードより小さくなることは保証できず、それは、例えばコード単位の定義やコード配置手法、及びオリジナルデータ割り当て等、使用されるスキーマ及び方法によって異なる。しかし、対応する欠けている式又は処理ユニットコンポーネントの欠けている部分と共に、数式AマイナスBの演算の結果を表すCVサブピースがある場合、結果として得られるCHANコードは暗号化コードと見なすことができ、前記暗号化コードはオリジナルデジタルコードを正しくそしてロスレスに復元するために使われ得る。しかしながら、そのように生成された暗号化CHANコードは、必ずしも圧縮コードではなく、拡張コードであり得る。ランダムであるか否かに関わらず割り当てられるデジタルデータから圧縮コードを生成するための方法及び関連技術は、情報理論における鳩ノ巣原理の神話を終了させ、前記方法及び関連技術は、新規なコード単位定義の独創的な特徴、及びCHANフレームワークの新規特徴を実現するのに使用される他の技法を議論した後に、必要に応じて説明される。
範囲の概念及びCHANフレームワークの独創的な特徴の使用と一緒に使用されるとランダムデータを圧縮するのを助けることができる絶対アドレス分岐の技術を適用する際のその使用の理解の仕方をパスするために、以下の図表では、補数数学がどのように機能するかについて説明する。
図表4
補数数学
CC−A=A
且つ
+A=CC
又は
+B=CC
且つ
(A+B)=(CC−A)+B
ここで、CCは相補定数又は変数であり、相補定数又は変数(エンコーディング及びデコーディングの異なるサイクルで異なるコード単位サイズが使用されている場合は、変数になる可能性がある)を使用するように定義されている補数数学の演算のために選択された定数値又は変数値である。これは、本発明で説明されるように、数学的計算又は加算及び減算論理を有する演算において使用される。場合によって、複数の相補定数又は変数を設計し、必要に応じて又は適切な場合には、様々な演算又は目的に使用し得る。
Aは演算される値であり、ここで使用されている実例はランク値Aであり、現在2つのコード単位値のみを使用する場合、Aの値はBの値以上であり、このため、最初の式では、
CC−A=A
ここで、CCからAを引いたものは、A補数に等しく、即ち、それぞれの相補定数又は変数を使用したAの補数値、又はミラー値であるAで示される。例えば、CCをコード単位サイズの最大値の定数、例えば256個の値を有する8ビットとすると、CCの値は256とある。Aの値を100とすると、Aは256から100を引いた値である156に相当し、従って、逆の演算はA+A=CCになり、100+156=256の演算を表す。そして、第4式において、(A+B)=(CC−A)+Bであり、そしてBを50とすると、A+B=(256−100)+50=156+50=206となる。
図表4は、後に導入される復号プロセスを作成するのに十分である、本発明者によって発明された補数数学の基本演算の論理を示す。しかしながら、補数数学の加算及び減算演算のより完全な例示のために、そのような論理は以下の図表5に定義されて説明される。
図表5
定義されたより多くの補数数学の理論:
CC−(A+B)=(A+B)又は=CC−A−B。
且つ
CC−(A−B)=A+B
且つ
CC−A+Bは分かりにくいかもしれないが、次のように明確に表すべきである。
(CC−A)+B=A+B
又は
(CC−B)+A=B+A
又は
CC−(A+B)=CC−A−B。
そのため、補数数学の減算演算の上記論理をさらに説明するために、CCを256、Aを100、Bを50とすると、
CC−(A+B)=(A+B)又は=A−B又は=B−A
即ち、256−(100+50)=(100+50)=256−150=106=A−B=156−50=106
又は
=B−A=206−100=106
且つ
CC−(A−B)=A+B
即ち256−(100−50)=256−(50)=206=156+50=206
且つ
(CC−A)+B=A+B
即ち(256−100)+50=156+50=206
又は
(CC−B)+A=B+A
即ち(256−50)+100=206+100=306となる。
従って、補数数学の加算及び減算演算の上記論理を使用して、次の図表6に補数数学がどのように機能するかについてさらに詳細を示すことができる。
図表6
補数数学を使用したデータ値又はデータ範囲に対する演算
CCを256、Aを100、Bを50とすると、
(1)通常の数学処理:
150を2で割り、即ちAとBの平均値を取り、
=(A+B)/2=1/2A+1/2B=75。且つAはA+Bのうちの大値であるため、
=A−1/2(A−B)=100−1/2(100−50)=100−1/2(50)=100−25=75。
=B+1/2(A−B)=50+1/2(100−50)=50+1/2(50)=50+25=75。
(2)補数数学処理:
(CC−A)+Bの演算を行い、即ちBについてではなく、AについてCCに対して演算を行い、
=(CC−A)+B=A+B=(256−100)+50=156+50=206。
このステップで演算を実行するには、最初にAとBを分離する必要があり、このステップでは補数数学の演算をここで説明する。
(3)CHAN数学を使用したCHANコーディング(通常の数学処理及び補数数学処理):
A−1/2(A−B)を使用して、ステップ(1)の結果をステップ(2)の結果に加算する。
=A+B+A−1/2(A−B)=A+A+B−1/2(A−B)
=CC+B−1/2(A−B)=256+50−1/2(100−50)
=256+50−25
=256+25。
(4)CHAN数学を使用したCHANコーディング:
ステップ(3)の結果からCCを引く。
=[CC+B−1/2(A−B)]−CC=B−1/2(A−B)
=[256+50−25]−256
=[50−25]。
(5)CHAN数学を使用したCHANコーディング:
B+1/2(A−B)を使用して、ステップ(1)の結果をステップ(4)に加算する。
=[B−1/2(A−B)]+[B+1/2(A−B)]
=2B
=[50−25]+[50+25]
=25+75
=100
(6)通常の数学処理:
2Bを2で割ってBの値を得る。
=2B/2=B
=100/2=50
(7)通常の数学処理:
A+BからBを引くことで、Aの値を得る。
=A+B−B
=150−50
=100
上記説明は、通常の数学処理、補数数学処理、及びCHAN数学を使用したCHANコーディングの違いを示している。
上記ステップ(2)で実行される補数数学は、AとBが分離され事前に知られた後にのみ行われるので、別のデータ情報である(A−B)(即ち、新しいコード単位定義が発明される前に、それは後で明らかにされる)が追加されなければならない。それによって、A及びBは式(A+B)+(A−B)=2*A及び2*A/2=A並びに(A+B)+(A−B)=2*B及び2*B/2=Bを使用して分離することができる。RPビットを使用すると、分離後のA及びBは、a及びbとして読み取られる第1値及び第2値の位置に正しく復元できる。そしてステップ(2)は、そのような基本コンポーネントを演算する時に補数数学がどのように機能するかを示しているだけである。
補数数学は、情報理論における鳩ノ巣原理の挑戦を解決するのには直接役立たない。ただし、データ値の加減算に範囲を使用するという概念と、相補定数又は値を指定したミラー値の概念を強調している。範囲が絶対アドレス分岐を使用する演算に不可欠であるか、又はデータ値又は数値がどのように表現されて定義されるかという点で潜在的であるので、情報理論における鳩ノ巣原理の挑戦は成功した結果で満たされる。
情報理論における鳩ノ巣原理の神話の終わりを確認する前に、本発明は、CHANフレームワークの下で数式を使用することがエンコーディング及びデコーディングのための無数のアルゴリズムをどのように生成できるかについてより詳細に説明する。図表7から説明し、4つの基本コンポーネントと4つのコード単位が1つの処理ユニットを構成する。
ほとんどの場合、処理ユニットの4つの基本コンポーネントは3つのアーム、即ちロングアーム、ミドルアーム、ショートアームに配置でき、2対の基本コンポーネントは対応したアームの上隅(より大きな合計を持つ1対の2つの基本コンポーネント)及び下隅(より小さな合計を持つ1対の2つの基本コンポーネント)を示す。しかし、まれに、これらの対の値がある方式で同じ値になることがあるため、3本未満のアームが存在でき、例えば2本又は1本だけ、又は点状になることもある。従って、処理ユニットの4つの基本コンポーネントの値の割り当ては、次のように異なるCHAN形状で表すことができる。
図表7
CHAN形状
CHAN点●
これは、4つの基本コンポーネントの全てが同じ値を持つ場所である。
CHAN直線
以下のように2つのCHAN直線がある。
CHAN直線1:3本のアームは全て、[1]+[4]の値が上隅、[2]+[3]の値が下隅にあるショートアームと重なり合っている。
Figure 2019528027
CHAN直線2:3本のアームは全て、[2]+[3]が上隅、[1]+[4]が下隅にあるショートアームと重なり合っている。
Figure 2019528027
CHAN三角形
ロングアームとミドルアームの2本のアームがあり、ショートアームは[1]+[4]と[2]+[3]の値の対が等しいので点になる。
Figure 2019528027
CHAN長方形、台形及び正方形
CHAN長方形1は、4つのコード単位のデータ値の入力ストリームを順々に示す。
Figure 2019528027
CHAN長方形2は、4つのコード単位のデータ値の入力ストリームのランク及び位置を示す。
Figure 2019528027
上記CHAN長方形は、処理ユニットの最初のコード単位値aがBであり、4つのコード単位の中で2番目にランク付けされ、2番目のコード単位値bがCであり、3番目にランク付けされ、3番目のコード単位値cがAであり、1番目にランク付けされ、4番目のコード単位値dがDであり、順位の最後であることを示している。
CHAN台形はCHAN長方形の4つの基本コンポーネント間の関係を示している。
CHAN台形1
3本のアームの上隅は[1]+[2]、[1]+[3]、[1]+[4]であり、且つ、
Figure 2019528027
3本のアームの下隅は[3]+[4]、[2]+[4]、[2]+[3]である。
CHAN台形1は、CHAN長方形2に示された4つのコード単位の4個の値である4つの基本コンポーネントの関係を示しており、ここで、Aは[1]、Bは[2]、Cは[3]、Dは[4]で新たに表され、同様に、(A+B)=[1]+[2]、(A−B)=[1]−[2]等となる。処理ユニット[1]、[2]、[3]及び[4]の4つの基本コンポーネントの値は、([1]+[2])−[3]+[4])であるロングアーム、([1]+[3])−([2]+[4])であるミドルアーム、([1]+[4])−([2]+[3])であるショートアームの3つのアームに配置できることが分かる。[1]+[2]+[3]+[4]の値の合計は、3本のアーム全てで常に同じである。3本のアーム間の差はそれらの長さ、即ち3本のアームの上隅と下隅との間の値の差に反映される。
ロングアーム及びミドルアームはランク付けされた値の配列では常に同じ方法でいる。しかし、ショートアームの上隅及び下隅は、4つの基本コンポーネントの値の割り当てに応じて入れ替わる。従って、2つのシナリオがある。例えば、[1]+[4]の値がCHAN台形1の場合のように[2]+[3]の方よりも大きいか、又は逆に、CHAN台形2で次のように表される。
CHAN台形2
Figure 2019528027
3本のアームの上隅は[1]+[2]、[1]+[3]及び[1]+[4]であり、CHAN台形1では3本のアームの下隅は[3]+[4]、[2]+[4]及び[2]+[3]である。
CHAN台形1では、ロングアーム、ミドルアーム、ショートアームの値は次のように再割り当てすることができる。
ロングアーム=([1]+[2])−([3]+[4])=([1]−[4])+([2]−[3])=([1]−[3])+([2]−[4])
ミドルアーム=([1]+[3])−([2]+[4])=([1]−[4])−([2]−[3])=([1]−[2])+([3]−[4])且つ
ショートアーム=([1]+[4])−([2]+[3])=([1]−[3])−([2]−[4])=([1]−[2])−([3]−[4])。
CHAN台形2では、ロングアーム、ミドルアーム、ショートアームの各値は次のように再割り当てすることもできる。
ロングアーム=([1]+[2])−([3]+[4])=([1]−[4])+([2]−[3])=([2]−[4])+([1]−[3])
ミドルアーム=([1]+[3])−([2]+[4])=([1]−[4])−([2]−[3])=([3]−[4])+([1]−[2])且つ
ショートアーム=([2]+[3])−([1]+[4])=([2]−[4])−([1]−[3])=([3]−[4])−([1]−[2])。
そのため、CHAN台形1及び2では、ロングアームは常にミドルアーム2*([2]−[3])以上である。
しかし、ショートアームの上隅と下隅の値を入れ替える2つのシナリオが考えられるため、CHAN台形1では、ロングアームは常にショートアーム2*([2]−[4])以上であり、且つミドルアームは常にショートアーム2*([3]−[4])以上である。
そしてCHAN台形2では、ロングアームは常にショートアーム2*([1]−[3])以上であり、且つミドルアームは常にショートアーム2*([1]−[2])以上である。
CHAN台形3又はCHAN正方形1
Figure 2019528027
これは、ミドルアームがロングアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[1]+[4]及び[2]+[3]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
CHAN台形4又はCHAN正方形2
これは、ミドルアームがロングアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[2]+[3]及び[1]+[4]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
Figure 2019528027
CHAN台形5又はCHAN正方形3
これは、ショートアームがミドルアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[1]+[4]及び[2]+[3]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
Figure 2019528027
CHAN台形6又はCHAN正方形4
これは、ショートアームがミドルアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[2]+[3]及び[1]+[4]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
Figure 2019528027
本図においてデータのエンコーディング及びデコーディングを可能にするために、4つの基本コンポーネントの4個の値は、次の図表8に示すように、4つの基本コンポーネントの値の位置とランクの関係を示すために使用されるRPピースに加えて、4つのサブピースからなる1つのCVピースで表されなければならない(そのような目的のために設計された4つの式の使用によって作り出される。3つ以下の式を使用しようと試みることができるが、これまでのところその努力は有望な結果を示すようには思われない。しかしながら、本発明がこの出願に示されるように、CHANフレームワークに新しい技術を導入する多くの機会があるので、そのような可能性を排除すべきではない)。
図表8
4つの入力基本コンポーネントの位置とランクの詳細及び結果のCHANコードを示すCHAN長方形S
4つのコード単位のデータ値の入力ストリームのランクと位置、及び使用される64ビットサイズを示すCHAN長方形3
Figure 2019528027
CHAN長方形4CHANコード、CHANコーディングを使用して作成されたRPピースとCVピースの詳細を示す圧縮コード
Figure 2019528027
本発明の1つの非常に際立った特徴として、CVピースを構成する4つのサブピースの値の可変ビットサイズであり、且つRPピースそのものは4ビットから5ビットの間で変化し、また、ビットサイズが異なるにも関わらず、後で開示されるCHANコーディング技術を使用して、関連するCHANコードをデコーディングしてそれをオリジナル入力デジタルデータコードにロスレスに正しく復元することができる。圧縮を行う目的で、使用される可変ビットサイズは、CHANコーディング技術を使用することによって圧縮率をさらに上げることを目的としており、この場合は数式を使用して達成することができる圧縮率よりも優れる。
まず、RPピースについて説明する。RPピースは、処理ユニットの4つの基本コンポーネント(4つのコード単位)の4つのランク値の相対位置を示すために使用される。4つの基本コンポーネントのランクは位置によって異なる可能性があるので、4つの基本コンポーネントの値の位置とランクの関係を決定するための固定している法則がない。次の図表9に示すように、位置とランクの間には全部で24種の組み合わせがある。
図表9
ランクと位置のコード表
4つの基本コンポーネントの位置とランクの可能な組み合わせ
Figure 2019528027
4つの基本コンポーネントの値のランクと位置の間には合計で24個のバリエーションがあるので、分解時に4つの基本コンポーネントの値のランク及び位置を正しく復元できるように、これらランクと位置の24個のバリエーションを収容して指示するために通常5ビットを使用しなければならない。即ち、基本コンポーネントの4個のランク値を、入力デジタルデータ入力におけるこれらの値の位置に対応する正しい位置に戻すことができる。ただし、絶対アドレス分岐と呼ばれる技術を使用して、スペースを無駄にしないようにすることができる。絶対アドレス分岐を使用しないのであれば、24個のバリエーションを収容するために32個の位置があり、8個の位置が空いて無駄になるためである。
最も単純なケースを使用するには、3個の値だけを持つことがある。その場合、3個の値のバリエーションに対して4個の位置を提供するには通常2ビットを使用する必要がある。しかしながら、絶対アドレス分岐が使用される場合、値=1の場合には、1ビットのみが使用され、値=2又は=3の場合には、2ビットが使用されなければならない。例えば、検索プロセスは次のように作動する。(1)まず、1ビットを読み取る。(2)ビット値が0であり、値が1であることを表す場合、2番目のビットを読み取る必要はない。ビット値が1の場合、2番目のビットを読み取る必要がある。2番目のビットが0の場合、値は2であり、2番目のビットが1の場合、値は3になる。それによって、考えられる3個の値を収容するためにスペースを節約する。表示のために、1/3のケース又はバリエーションは1ビットを使用し、他の2/3のケース又はバリエーションは2ビットを使用しなければならない。
従って、絶対アドレス分岐を使用すると、24個のバリエーションのうち8個のバリエーションは、収容するのに4ビットしか必要とせず、残りの16個のバリエーションは5ビットを必要とする。つまり、4ビットでは16個の位置しか提供されず、5ビットでは32個の位置が提供される。また、24個のバリエーションがある場合、4ビットで提供される位置に8個のバリエーションがあるため、4ビットで提供される16個の位置のうち8個の位置が2つのバリエーションを表すために保留する必要がある。従って、まず4ビットを読み取ることができ、前記値が1から8の間であることが分かった場合は、停止して別のビットを読み取らなくてもよい。しかしながら、4ビットを読み取り値が9から16の間である場合、これらの8個のバリエーションに対しては、それがどの値を表すかを決定するために別のビットを読み取らなければならない。例えば9が決定されると、それは9又は17のような別の値を表すことができ、それから、別のビットで読まなければならず、この別のビットが0であれば、それは9のままであることを意味し、1であれば、前記値が17であり、17の値を持つランク位置コードを表し、それによって、[1]、[2]、[3]、[4]の値を、以上の図表9におけるランク位置コード表を参照して検索することによって、3、4、1、及び2の位置に配置する必要があるというRPパターンを示している。従って、絶対アドレス分岐は、アドレス(通常のように1個の値を示すのではなく)、設計によっては1つ以上の余分なビットを使用して2個以上の値を識別するために分岐することができる設計である。範囲制限、即ち、変数値がその決定のために選択される最大の可能な組み合わせ又は選択肢が知られている時に、前記絶対アドレス分岐は使用される。例えば、処理ユニットがRPの組み合わせのどの特定の値を持つかを指示して、[1]、[2]、[3]、[4]の値を入力デジタルデータストリームの1、2、3、4番目の位置にどのように入れるかを示すための範囲制限として使用できることが知られているため、上記RPテーブルでは、ランクと位置の組み合わせは24個しかないことが知られているため、最大の可能な組み合わせは24個だけである。この範囲制限が既知で絶対アドレス分岐が使用されているため、平均して、これら24個の組み合わせには通常必要な5ビットではなく、わずか4.5ビットが必要である。
4つの基本コンポーネントであるA=[1]、B=[2]、C=[3]、D=[4]のランク値を決定する。[1]、[2]、[3]及び[4]の値を決定するために、CHAN長方形及びCHAN台形に関する式を使用して、4つの基本コンポーネントの基本的な関係及び特徴を表すことができ、上記段落0029で説明されたように、RPピース及びCVピースが全体として占めるビットサイズは、4つの入力基本コンポーネントa、b、c、及びdによって占められる合計ビットサイズより小さく、即ち、前記合計ビットサイズは、前記CHAN長方形及びCHAN台形を使用して本発明において提示されるスキーマの下での処理ユニットのコード単位のサイズの4倍である。
CHAN形状で表される処理ユニットを構成する4つの基本コンポーネント間の特徴及び関係を綿密に研究した後、CVピースの3つのサブピースに表される式の以下の組み合わせは、後ろで働く原理を説明するための初めての試みである。他の類似の式を見つけて使用することができる。そのため、制限はないが、CHAN形状を参照して以下に示す式を使用することが含まれる。従って、この初めての試みは次のとおりである。
(1) =([4]−1/2([3]−[4]))
(2) =([1]−[4])
(3) =(([2]−[3])+1/2([3]−[4]))
ステップ(1)からステップ(3)の式で表される上記3個の値は、上記2016年8月5日に出願されたPCT出願PCT/IB2016/054732に提示されているものとは異なる。前記PCT出願では、ランク及び位置処理の用途と組み合わせた補数数学の使用は、情報理論における鳩ノ巣原理の神話に終止符を打つことができると主張されている。より慎重に検討した結果、このように使用された3つの式はその目的を達成するのに十分によくないことが見出された。従って、正しい式及び式の設計は、CHANコーディング技術を適用するために非常に重要なことである。上記PCT出願では、CHAN形状で表されるように、CHANコーディングは、基本コンポーネント(即ち処理ユニットのコード単位)間の特徴及び関係を使用して設計された式を使用して行われる。
式の設計は科学というよりは芸術である。処理ユニットの様々な基本コンポーネントと派生コンポーネントの間の特徴と関係の全ての組み合わせを使い果たすことはできなかったので、新しい考え方が適切な式を正しく使用するのに役立つ。上記PCT出願で使用されている3つの式は、3つの式を使用して、場合によってCHAN台形又はCHAN正方形又はCHAN三角形又はCHAN点又はCHAN直線を含む関連CHAN形状を再現できるように、前向きな考え方に従って設計されるものである。しかし、この考え方を使用すると、前記PCT出願に導入された技術を使用して設計された3つの式で表されるように、基本コンポーネントをそれらの派生コンポーネントから分離できないことはある(又は計算用の組み合わせがほとんど使い果たされないため容易に分離できない)ことが分かった。
情報理論における鳩ノ巣原理の挑戦を満たすために、上記PCT出願には新規な考え方が欠けている。そして、ここで試みられる。物事が前向きに機能しない場合、逆の方式で機能する可能性がある。これは補数数学に関連する考え方やパラダイムでもある。そのため、正しいCHAN形状を再現するように設計された式がよい結果をもたらさない場合、これら3つの式に差異を導入しようと試みることができる。そこで、本発明では、差異導入(異常導入とも呼ばれる)技術が開示されており、それによって、差異導入や相補コーディングのような有用な技術を利用して、CHANコーディングの全ての技術が鳩ノ巣原理の神話を終わらせるようにし、それによって、相補コーディングの有用性及び式設計段階での差異導入自体の有用性を示す。
そのため、設計段階では、最初のステップとして、通常の方法でエンコーディング用の式を設計し、設計された式を使用してCHAN形状を再現できるようにする。例えば、上記PCT出願に与えられた実例を使用して、ステップ(1)からステップ(3)においてCHANコードのCVピースの3つのサブピースの値及びエンコーディングされたコードを導き出す3つの式は以下のとおりである。
(1)=([1]−[4])
(2)=([2]−[3])及び
(3)=([3]+[4])。
通常の数学によって、以下に引用する上記PCT出願のステップ(4)からステップ(9)において、関連するCHAN形状を以下のように再現する。
(4)=(1)+(2)。即ち、ステップ(1)+ステップ(2)
=([1]−[4])+([2]−[3])。これら4個のランク値の再配置又は再割り当て時に、
=([1]+[2])−([3]+[4])となり、ロングアームを得る。
=([1]−[3])+([2]−[4])。長さの違いを他のアームと比較するため。
(5)=(1)−(2)。
=([1]−[4])−([2]−[3])。
=([1]+[3])−([2]+[4])。ミドルアームを得る。
=([1]−[2])+([3]−[4])。
(6)=(1)+(3)。
=([1]−[4])+([3]+[4])。
=([1]+[3])。ミドルアームの上隅。
(7)=(2)+(3)。
=([2]−[3])+([3]+[4])。
=([2]+[4])。ミドルアームの下隅。
(8)=(6)+(7)。
=([1]+[3])+([2]+[4])。[1]+[2]+[3]+[4]の合計であり、ロングアームの上隅を見つけるのに非常に有用である。
=([1]+[2]+[3]+[4])。
(9)=(8)−(3)。
=([1]+[2]+[3]+[4])−([3]+[4])。ここで、[3]+[4]=ステップ(3)をロングアームの下隅として指定する。
=([1]+[2])。ロングアームの上隅。
上記ステップから、ステップ(4)からステップ(9)までの通常の数学を使用して、ロングアーム及びミドルアームの2つの隅並びにアーム自体が適切に再現されることが分かる。ただし、3つの適切な式を使用すると、基本コンポーネントは併合されると共に派生コンポーネント内で非常にうまく結合され、その結果、基本コンポーネントを互いに簡単に分離することはできない。従って、新しい世界を発見できるか否かを確認するためにさらに処理を続けるために、3つの適切に設計された式に差異を導入することを試みることができる。ごみの出し方の原則として、差異をランダムに導入すべきではない。設計された3つの適切な式に有用な情報を提供するために何が必要かに焦点を当てるべきである。
上記実例では、派生コンポーネントから4つの基本コンポーネントを分離するという当面の問題を解決するための追加の情報を提供するのに重要である2つの派生コンポーネントが欠けていることが容易に分かる。これら2つの派生コンポーネントは[1]−[2]と[3]−[4]であると識別される。これら2つの派生コンポーネントのいずれかを有すると、ステップ(9)で得られた([1]−[2])と([1]+[2])及びステップ(3)で得られた([3]−[4])と([3]+[4])の間の加減算によって基本コンポーネントを容易に分離することができる。そのため、[1]−[2]と[3]−[4]のいずれか又は両方を3つの適切な式に導入することを試みることができる。そして、必要に応じて、式をさらに調整することができる。
数え切れないほどの試行や錯誤を経て、これまでに概説したCHANフレームワークの下で、段落0031に記載の式の設計に差異導入又は異常導入の特徴を試みる場合においても、4つのコード単位を処理ユニットとして使用するスキーマでは3つの式だけを使用して正しくデコーティングする式の設計が発見されていない。従って、[1]−[2]又は[3]−[4]等の第4式、つまりステップ(4)=[1]−[2]又はステップ(4)=[3]−[4]は、正しいデコーティングのために導入されている。あるいは、もっと賢い人は3つの式を使うという解決策を思いつくことができるかもしれない。だからこの点でまだ希望がある。CHANフレームワークの革新点は、デジタルデータの順序付けや組織、デジタルデータから記述可能な順序や構造を作成するための様々な方式を可能にして、様々なデータ割り当てのデジタルデータの性質を研究してそれらの特徴の差異を比較し、デジタル情報の保護のための圧縮及び暗号化を目的としたエンコーディング及びデコーディングのために異なる技術を考案することができるように、そのようなデータ特徴の規則性(法則又は規則)を識別することを可能にする。従って、後で見られるように、実りある結果が得られ得る。
RPピースと共に4つの式を使用して発生した4つのCVサブピースを使用して、オリジナルデジタル情報を正しく復元するように、デコーディングする時に4つの基本コンポーネント又は処理ユニットのコード単位の値を首尾よく分離する必要がある場合にも、式の設計やデジタル情報のデータ割り当てに応じて圧縮する機会が得られ得る。後で見られるように、スーパー処理ユニットを使用する別の技術を導入する場合は、他のCHANコーディング技術、例えばCHANフレームワークの下で定義されたデータエンコーダ、特にデジタルデータブラックホールの設計、作成、実現における異常導入及び絶対アドレス分岐技術の使用により、全てのデータ割り当てのデジタルデータ(ランダムデータをも含む)を圧縮しても実り多い結果をもたらす。ただし、CHANフレームワークで使用されている式の設計は、データ保護の目的でデジタルデータの暗号化及び復号を行うための無限の方法又はアルゴリズムを提供するのに役立つ。そして、これは暗号化及び復号を行う簡単な方法で、素人でも簡単に実行できる。それほど賢くない人には、[1]、[2]、[3]、[4]の値は、ステップ(1)から(4)で表される式と、段落0034及び0036において概説された他の派生ステップを使って互いに分離される。スペースの最適化のために式の調整及びステップをさらに設計することができ、適用可能であれば、以下の段落0043及び0044に概説されている実例に基づいてモデリングする。
段落0037のステップ(I)からステップ(IV)に記載された式を使用して計算されたデータの値は、エンコーディングプロセス中にCHANコードのCVピースの4つのサブピースに入れられる。エンコーディングの際に、これら4個の値は、対応するRPピースと共にCVピースの4つのサブピースとしてCHANコードファイルに記憶される。各CVサブピースの値の範囲制限は、それぞれの式を使用して出現可能な全ての値に対応するのに十分な大きさにする必要がある。デコーディング中に、絶対アドレス分岐技術を使用し、且つ、図表9に使用される関連ランク位置コード表に対して、検索値、対応する処理ユニットのランク位置コードを調べることによって、RPピース及びCVピースを読み出してデコーディングを行い、それによって、処理ユニットの[1]、[2]、[3]及び[4]のランク値がデコーディング中にどこに配置されるべきかを決定する。[1]、[2]、[3]及び[4]のランク値は、段落0038に概説された上記ステップに示されるように、段落0037におけるステップ(I)からステップ(IV)で記憶された対応するCVピースの4つのサブピースの値を用いて決定される。CVピースの4つのサブピースは、段落0043及び0044で開示された技術を使用して配置され、これは、CVサブピースの配置の範囲制限を決定して必要に応じて設計を調整することに対して補数数学及び相補コーディングの価値を詳しく説明した。ここで、絶対アドレス分岐技術とは、省スペースを最適化するための技術である。段落0037に記載されている4つの式で[1]、[2]、[3]及び[4]を置き換えるa、b、c、dの単純な置き換えも、RPピースを省略できる可能性を示している。これは、そのような置換によって、段落0037及び0038で概説された式がRP処理なしでも機能できることを意味する。しかしRP処理がなければ、範囲制限の使用から生じる可能性のある省スペース化の利点は失われまる。その結果、RP処理を使用する場合よりも多くのスペースが無駄になる可能性がある。
補数数学及び相補コーディングは、省スペースのためのCVサブピースの配置のための設計を行う際に非常に役立ち、そのため適切な場合にはオリジナルな式設計の調整をもたらす可能性がある。以下の図表10は、次の図表10と共に、段落0031の式設計を使用して、現在の試みにおける式設計段階で補数数学及び相補コーディングを使用することによってもたらされる貢献を示している。
図表10
CHANバー
相補定数CCとしてコード単位サイズを用いた補数数学のパラダイムの下での範囲制限の視覚的表現
Figure 2019528027
以上の図表において、3つのCVサブピースの値を表す段落0031の3つの式で表される範囲が、その相補範囲(未知のデータ)と一緒に示されている。X自体は知られておらず、且つ式([2]−[3])+1/2([3]−[4])の一部としてマージされる。これらの式に導入されている異常又は差異又は調整である1/2([3]−[4])は、主に関連付けられたCHAN形状をきちんと記述する[3]+[4]及び[2]−[3]の適切に設計された式に導入される。[3]+[4]の平均値は、([4]+1/2([3]−[4])又は([3]−1/2([3]−[4])のいずれかであるため、どちらかを使用して、異常又は差異又は調整を導入できる。([4]+1/2([3]−[4])は、式の差異又は調整の導入後に修正された式と見なされ、現在の式はステップ(1)で使用されて、このような差異又は調整のバランスをとるために、それに対応して、ステップ(3)で使用されている第3式が(([2]−[3])+1/2([3]−[4]))に調整される。これは、これまで誰も憲章を作成したことのない新しい世界であるため、試行や錯誤から学ぶしかない。段落0031で設計された式もまた上記課題に対する解決策を提供するのに成功していないので、より多くの調整が必要とされる。より賢い人であれば、CHANコーディングを使用して、マージデータ又は処理ユニットの基本コンポーネントとそれからの派生(又は基本コンポーネントと組み合わせる)コンポーネントとを分離するために適した他の式を設計することもできる。式の差異、式の異常、又は式の調整を導入する技術には、次のステップが含まれる。(i)派生コンポーネント又は基本コンポーネントの値又は関係と特徴を再現するために使用できる式を設計する。(ii)設計された式によって表されるコンポーネントから基本コンポーネントを分離する目的のために、欠けているが追加の値を供給するために不可欠である派生コンポーネント又は基本コンポーネントを見つける。(iii)これらの欠けているコンポーネントを提供できる式を使用して、式の異常、式の調整、又は式の差異を設計する。そのような式の異常又は式の調整又は式の差異は、CHANコードのCVサブピースの値を取得するために使用される式に導入される。(iv)上記ステップ(i)で作成した以前に設計した式に式の異常又は式の調整又は式の差異を組み込み、新しく設計され又は調整された式で表されるコンポーネントから基本コンポーネントを分離する目的で使用するのに適した新しい式のセットを作成する。
段落0038で説明した4つの式を使用すると仮定すると、[1]、[2]、[3]及び[4]のランク値を決定してRPピースを使用した後、対応した処理ユニットのオリジナルデジタルデータ入力はロスレスにデコーディングされて、正しい位置に正しく復元されるようになる。ステップ(I)からステップ(IV)までの式によって表されるコードを、CHANコードのCVピースの4つのサブピースとして記憶するために使用される配置及びビットサイズは、検討されて、エンコーディン中にビットストレージのためにさらに最適化され得る。それには範囲制限の概念が使用される。
CHANコードのCVピースの4つのサブピースのどのサブピースを最初に配置するかを検討するために、記憶スペースを減少させるように1つのサブピースを配置することで他の後続のサブピースの配置に関する情報が得られるか否かを検討できる。以下の検討では、段落0031に記載されている3つの式を使用して説明する。補数数学の価値を把握するように、段落0031におけるステップ(1)から(3)までの自由な式([4]+1/2([3]−[4])、([1]−[4])及び(([2]−[3])+1/2([3]−[4]))を比較した結果、前の2つの式[4]−1/2([3]−[4])及び([1]−[4])で表される範囲が外れていることが分かり、これら範囲において一方に他方が含まれるものがない。このことから明らかなように、これらのいずれも1番目の位置に配置できる。しかし、[4]−1/2([3]−[4])でCCを使用すると、明らかなように、[4]−1/2([3]−[4])、つまり[4]1/2([3]−[4])は、[1]−[4]の範囲を包含できるはずであるため、[4]1/2([3]−[4])、[4]−1/2([3]−[4])のミラー値は、[1]−[4]の値を配置するための範囲制限として使用できる。従って、[4]−1/2([3]−[4])のCC値が第1CVサブピースとして配置されるので、式[1]−[4]の式で表される第2CVサブピースは[4]−1/2([3]−[4])のミラー値(CC演算により起動される)を、[1]−[4]の値を格納するための範囲制限として使用できる。
しかしながら、まれに[4]−1/2([3]−[4])の値が負の値になる可能性があるので、[4]1/2([3]−[4])の値がコード単位サイズを超えている場合は、CC値、つまりコード単位サイズを[1]−[4]の値の範囲制限として使用することに戻すことができる。つまり、[4]1/2([3]−[4])とCC値によって提供される2つの範囲の中から最短範囲を[1]−[4]の値の範囲制限とすることができる。他のほとんどの場合、[4]1/2([3]−[4])で表される範囲制限はCC値よりも小さくなるため、ビットストレージを節約できる。[1]−[4]を([2]−[3])+1/2([3]−[4])の範囲制限として使用することができ、それは、[1]−[4]を相補変数として使用する[2]−[3]のミラー値が[1]−[2]に[3]−[4]を加算したものであり、[3]−[4]が1/2([3]−[4])より大きいため、([2]−[3])+1/2([3]−[4])が[1]−[4]の範囲内にあることが確実であるためである。従って、より多くのビットストレージを節約するために、[1]−[4]を、第3CVサブピース([2]−[3])+1/2([3]−[4])の範囲制限として使用される第2CVサブピースとすることができる。これを基準として使用する前に他の範囲制限はないため、第1CVサブピースを配置するための範囲制限はCC値である。同様に、[4]−1/2([3]−[4])の値が負になる可能性があるいくつかのまれなケースに関しては、追加の符号ビットを使用する必要がある。また、前記値が半分の演算のために0.5の端数であるかもしれないので、そのような表示のために端数ビットも含まれなければならない。従って、全体ではCCビットサイズ+2ビットである。従って、[1]−[4]が最大値2^64ではなく1,000の場合、1,000は([2]−[3])+1/2([3]−[4])を格納するための範囲制限として使用できる。絶対アドレス分岐を使用して、1,024という制限を正確に1,000に減らすこともできるが、この場合には節約は非常に小さくなる。使用されるビットサイズは64ビットコード単位に通常必要とされる64ビットの代わりに10ビットか9ビットである。ただし、第1CVサブピース[4]−1/2([3]−[4])の場合と同様に、第3CVサブピース([2]−[3])+1/2([3]−[4])も半分の演算のために0.5の値の端数を持つことができる。そのため、もう1つの端数ビットを[1]−[4]の値によって設定される範囲制限に割り当てる。次に、CHANコードのCVピースのこれら3つのサブピースの配置は、上記段落0031のステップ(1)から(3)のために行うことができる。従って、範囲制限と絶対アドレス分岐の概念と技術が記憶スペースの最適化にも使用されている場合、CVピースの3つのサブピース、及びそれによりCVピース全体のサイズが処理ユニットごとに異なる。なお、使用される範囲制限が、関連する範囲制限が使用されるように設計されているために現れる可能性のある全ての可能な値を包含できるようにするべきである。場合によっては、範囲制限はそれに数値1を加算して調整する必要がある。これは、ランク値が値自体に従ってランク付けされ、且つ値が等しい場合は、入力デジタルデータストリーム内の位置に従ってランク付けされるためである。従って、特定の値に対する範囲制限をケースバイケースで慎重に検討し、特定の値に対して設計された範囲制限が、発生する可能性のある全ての値をカバーできることを確認する必要がある。
例えば、CHANコードの以下の3つのCVサブピースを配置するために必要なスペース又はビットサイズ(段落0031のものではなく、式(IV)にはコード単位の基準ビットサイズを使用すると仮定)は、例えば暗号化を目的として、次のように設計された式で表される。
式(I)=3*([1]−[2]+[3]−[4])+([2]−[3])+([1]+[3])式(II)=3*([1]−[2]+[3]−[4])+([2]−[3])−([2]+[4])及び
式(III)=[3]−[4]。
それぞれ5つのコード単位、3つのコード単位、1つのコード単位と推定される。24種の組み合わせを提供するRPピースは、さらに5ビットを使い、絶対アドレス分岐が使用されている場合、一部の組み合わせは4ビットだけを使用できる。従って、コード単位サイズを64ビットとすると、式(I)、(II)及び(III)にはそれぞれ68ビット、66ビット及び64ビットが使用され、範囲制限による最適化スペースを計算しない。範囲制限を用いると、式(I)の値が式(II)の値より大きく、式(II)の値が式(III)の値より大きいことは明らかである。そのため、式(I)を最初に配置し、次に式(II)を配置してから式(III)を配置すべきである。そのような配置技術を使用することによって、ビットストレージを最小化することができる。
さらに熟考した結果、補数数学は非常に有用な概念と、記憶スペースを節約するためのより技術的なツールを提供するように思われる。しかし、その重要性はむしろ、範囲処理、ミラー値、ベースシフトを含むパラダイムにあり、例えば、値のミラー値を示すためのベースとしてはCC値、即ちコード単位サイズが通常の数学的処理を行う時は、値0のベースではなく、逆にカウントするためのベースとして使用される。
CHAN形状で開示された特徴及び関係を使用することによって、場合によっては通常の数学処理においてCHANを使用している情報理論における鳩ノ巣原理の挑戦に出会う可能性があるため、処理ユニットのための異なる数のコード単位を使用して式又は他の形を設計することができる。CHANフレームワークの下で構築可能なコード単位と式の設計の無限の組み合わせ(及びそれと共に使用するための他の技術を追加する可能性)を考えると、誰も不可能であると断言できない。そして、これらの他の技術が式設計の特徴を使わなくても情報理論における鳩ノ巣原理の神話を終わらせることができることは後述される。
補数数学及び相補コーディングは、式の設計段階、エンコーディング及びデコーディングに役立つ。そのため、CHAN数学及びCHANコーディングは、CHAN形状、及びデジタル情報のエンコーディング及びデコーディング(ランダムかを問わず)を行う際に開示された特徴及び関係に関連して、組み合わせるか又は別々に使用される通常の数学及び補数数学を含む数学処理のスーパーセットである。
最適化のためにさらなる検討を行う時、段落0037及び0038で概説された式において処理ユニットのa、b、c、及びd値を[1]、[2]、[3]、及び[4]の値に切り替えるだけでRPピース及び関連するRP処理を省くことができるように思われる。ただし、CVサブピースの配置には、RPピース及びRP処理を使用した場合よりも多くのスペースが必要になる。また、RP処理の価値は、[1]、[2]、[3]及び[4]の形態の処理ユニットの4つの基本コンポーネント(a、b、c及びd)間の関係をより明確に示し、CHAN形状を使って表現する時にこれらの値を正しく理解できるようにすることにあることも理解されたい。これはさらに、本発明において概説された他のエンコーディング及びデコーディング技術を適用するための正しい式を設計するための道を開く。そのため、RPピース及びRP処理を使用してエンコーディング及びデコーディングを行うか否かは、ケースバイケースで決める課題である。
そのように設計された4つの式によって表される4つのCVサブピースを使用することは、暗号化のための多変量アルゴリズムを設計することを可能にする。そして、そのような暗号化されたデジタルデータは、導入される他の技術を使用して圧縮されてもよい。この方式によれば、非常に簡単で安全な暗号化/復号及び圧縮/解凍のアルゴリズム及びプロセスの両方を設計して実現することができる。暗号化/復号及び圧縮/解凍のサイクル数も結果コードに影響する。また、設計された式や実現された暗号化/復号及び圧縮/解凍のサイクル数等の情報が送信予定のデータとは別に送信されると、データセキュリティが強化され、前例のないレベルで大きく保護される。データ保護をさらに強化するために、異なるタイプのCHANコードを別々に格納し、オリジナルデジタル情報を復元するために正しい順序で送信することができ、例えば、CVサブピースの符号ビットが1つの符号ビットファイルにあり、各CVサブピースが別々のCVサブピースファイルにあり、RPピースがRPピースファイルにあり、ヘッダー又はフッターには、単独したヘッダーファイル又はフッターファイルにある対応するCHANコードの処理に関する別の情報が含まれる。
4つのCVサブピースを生成する4つの式を使用しても、必ずしも圧縮が達成できないことを意味するわけではない。識別された最短範囲を選択して、圧縮のために追加される第4値の最短範囲を表す式を作ることができる。例えば、[1]がCC値、即ちコード単位の最大値に非常に近い場合、CCマイナス([1]+[2])が、ステップ(1)からステップ(3)における最初の3つの式の処理を通じて識別される最短範囲であり、次に第4式を[1]にして、CCから([1]+[2])の範囲制限を減算して[1]の値を配置できる。この点に関しては、CHANコードの式の設計及び配置について、さらに研究を進めることができる。
4つのCVサブピースを使用しても全ての処理ユニットを圧縮することができなかったとしても、異なるタイプのデータ割り当て(個々のデータ値の頻度及び対応するデータ値、即ち存在する各値の頻度、及び存在する対応する値の数及び同一性を含む)に適した異なる式セットを設計し、ランダムデータのデジタル入力ファイル全体をランダムではないスーパー処理ユニットに分割することができる。式の設計を使用するよりもはるかに単純な他の技術が実現のためにそれに追加される時に、ランダムではないスーパー処理ユニットを使用する技術について後述する。そのような検討過程において、スーパー処理ユニットの関連概念が説明される。異なるデータ割り当てのスーパー処理ユニットに対して異なる組の式設計を使用することによって、これらの他の技術がスーパー処理ユニットと共に使用される場合と同様に、再圧縮を試みることができる。
従って、通常の数学処理及び補数数学を含む非常に単純なCHAN数学の論理を使用することによって、暗号化及び復号、並びに圧縮及び解凍に関して、科学及び芸術の分野において著しい進歩がなされたことが分かった。PCT/IB2016/054562で発表され、PCT/IB2016/054732で確認されているように、情報理論における鳩ノ巣原理の神話を終わらせるために、他の技術が必要であり、以下のように開示されている。
そのような技術を開示する前に、CHANフレームワークはさらに微調整されなければならない。これまで、CHANフレームワークは次のような構造上の特徴を有する。
(a)コード単位(内容コード及び分類コードを含む)
(b)処理ユニット
(c)スーパー処理ユニット
(d)エンコーディングされていないコード単位
(e)(デジタルデータの全セットの)セクション
(f)一部のヘッダー又はフッター
(g)(デジタルデータの全セットの)メインヘッダー又はフッター
(h)CHANファイル(上記(a)〜(g)のデジタルコードを組み合わせるか又は単独で構成したCHANコードを含むデジタルデータファイル)。
このようなCHANフレームワークのスキーマ及び設計とは上記構造要素のいずれかについて選択された定義を指し、使用される場合、処理するために、様々な実施形態の下で組み合わせて使用され、本発明において開示された使用されたCHANコーディングの選択された技術の特定のデジタルデータセットをエンコーディング及びデコーディングすることに用いられる。
コード単位はCHANフレームワークの基本単位である。これまで、そのサイズ、つまりコード単位サイズは、2進数ビット数(ビットサイズ)で測定されている。そして、従来の2進数データエンコーダ(データエンコーダ、特に、本発明において開示されたようなCHANフレームワークの下で設計されたようなデータエンコーダの特徴を持たない、その全ての固有値が同じビットサイズを有するデータエンコーダ)では、コード単位が表すことができる値の最大数(コード内容)は、コード単位のビットサイズによって制限される。例えば、コード単位は、サイズが1ビットしかない場合、2個の値だけを示し、1つの実例では、ビット値0又はビット値1である。コード単位のビットサイズが3である場合、最大8ビット値、即ち000、001、010、011、100、101、110、及び111を表すことができる。これは、2進数ビットを用いてデータ値を表すための一般的な方式である。コード単位は、エンコーディングのためにエンコーダによってデータ入力ストリームから1つずつ読み取られるデータの基本単位である。この一般的なデータの読み取り及び表現方式によって情報の理論における鳩ノ巣原理の神話が生み出される。その詳細について、以下を参照すればよい。
https://en.wikipedia.org/wiki/Pigeonhole_principle
その本質は次のように説明される。
「数学では、鳩ノ巣原理によれば、n>mでは、n個のアイテムがm個の容器に入れられる場合、少なくとも1つの容器に複数のアイテムが含まれている必要がある。」
言い換えれば、1つの容器が1つのアイテムしか取り込めない場合、容器が取り込めるアイテムの数は容器の数によって制限される。即ち、取り込めるアイテムの数は、アイテムを取り込むのに使用される容器の数を超えることはできない。これは、アイテムと容器の間の1対1対応関係である。
ここでのエンコーディングのためのコード単位の使用に適用すると、3ビットのビットサイズのコード単位であれば、8個のアドレスしか提供することができず、従って1回に1個の値で最大8個の固有値を表すためにしか使用できない。一般的な方式によれば、コード単位が持つことができるアドレスの数は2進数ビットサイズで測定され、コード単位に使用される2進数ビットの数が大きいほど、コード単位がコード内容値を1対1で表すために持つことができるアドレスが多くなる。従って、コード単位が有するアドレスの数は、2の(コード単位のビットサイズ(2進数ビット数)、即ちコード単位のサイズを測定する2進数ビット数)の累乗に等しい。
このため、これまで、圧縮を行うためのエンコーディングが可能であることは、データ割り当ての不均一な性質を利用するエンコーディング方法のためである。例えば、3ビットコード単位等の所定のビットサイズのコード単位の場合、データ入力ストリームが、000、001、及び100等、3個の異なる固有コード値のみを含む場合、データ入力ストリームは圧縮され得る。あるいは、データ入力ストリームが8個の異なる固有コード値、即ち000、001、010、011、100、101、110、及び111の全てを含む場合、これら8個のコード値の頻度分布が均一ではなく、即ち、これら8個の固有値の頻度が互いに異なる場合、依然として圧縮され得る。データ割り当ての不均一性が大きいほど、より多くの圧縮を節約できる。ランダムデータは、ランダムに現れるビット0とビット1の間の比率が均一である傾向があり、即ち、これまでいずれの規則性又は予測可能なパターンが開示されていない。そのため、ランダムデータを圧縮することはできないと思われていて、「情報理論における鳩ノ巣原理」神話が生まれた。しかし、CHANフレームワークがランダム割り当てを含むあらゆるタイプの割り当てのデジタルデータを記述する方式を提供するので、ランダムデータのより多くの特徴及びそれらの規則性を調査して明らかにすることができ、それによって、異なるビットサイズを使用する一意のコード単位値を収容するデータコーダ、及び異常導入やCHANフレームワーク下で絶対アドレス分岐又はアドレスアドレス複数分岐を使用したデジタルデータブラックホール等の他のCHANコーディング技術と共に、スーパー処理ユニットの概念及び使用を導入するにつれて、このような長い間収容されてきた神話はアンマスクされる。
情報理論における鳩ノ巣原理は非常に正しいが、それだけでは成り立つ。しかし、その神話は、ランダムデータを圧縮できないか、又はデータを何度も再圧縮できないというこの原理に関連する神話である。神話を終わらせるために、1つの可能な方法はランダムデータから不均一性を作ることである。不均一性を作る基本的な技術の1つは、コード単位とそのコード単位が表すために使用されるそれぞれのコード値を定義及び測定する方法を微調整することによって、不均一性を作ることである。そのため、本発明の重要な新規特徴としては、CHANフレームワークで使用されるコード単位の概念、CHANフレームワークの基本要素、コード単位及びその定義に見られる構造上の変更又は改良を再定義する。そのため、不均一性はランダムデータに容易に生じ得る。このCHANフレームワークの構造上の変化を活用することにより、コード単位が収容すると想定される値よりも多くのアドレスを提供するスキーマを簡単に設計できる。そのため、コード値を表すのに使用できるコードアドレスの数は、ランダムデータセットを周期的に圧縮及び再圧縮するための制限要因にはならない。情報理論における鳩ノ巣原理では、デジタルデータセットの頻度分布特徴が無視される。ランダムデータセットを周期的に圧縮及び再圧縮することを可能にするために、データセットに存在するコード値の頻度分布の性質及びそれらの対応するビット長の両方にも注意を払わなければならない。ランダムデータセットを周期的に圧縮及び再圧縮するためのエンコーディング及びデコーディングにおける従来の努力に反するこれら2つの問題は、異なる固有コード値に利用可能なコードアドレスの数及びデジタルデータセットに存在する異なる固有コード値の頻度分布である。それについては、以下の説明では、1つずつ説明する。
まず、データセット内の異なる固有コード値に利用可能なコードアドレスの数の問題について、コード単位を再定義するという新規な特徴がCHANフレームワークに導入されると、適切な場合には、コードフレームワークの下のコード単位は、まず、1つのコード単位が表現又は収容するために使用される異なる固有コード値の最大数により測定され、次に、コード単位全体の2進数ビット数(個々の固有コード値の可能なビットサイズに影響する)により測定され、さらにコード単位により定義されたヘッドデザインにより区別され、以上については以下の段落0062の図表14に示される。そのため、コード単位の命名法は、ビット数のかわりに、異なる固有コード値を保持する最大数を第1要因又は主要要因としてコード単位(もちろん1つずつ)を命名又は表現するように変化される必要があり、それによって、コード単位を指示する命名は3ビットのコード単位から8値のコード単位(又はMax8コード単位)に変わり、それに対して、ビット数はコード単位のサイズを区別するための二次的要因として使用できる。これはまた、コード単位の個々の固有コード値が同じビットサイズでしか表現できないという従来の定義に加えて、コード単位の個々の固有コード値が異なり得ることを意味する。そして、この新規な特徴は、基準のビットサイズを使用してスキーマを設計して、コード単位の全てのコード値に用いることを妨げるものではなく、従来の定義以外、コード単位の異なる固有コード値ごとに異なるビットサイズを使用してスキーマを設計する機会を提供する。それはまた、コード単位の異なる固有コード値が異なるビット値のサイズを有することができることを意味し、且つ、ビット値のサイズでコード単位の固有コード値のそれぞれに、エンコーディング及びデコーディングの特定のスキーマ及び設計の下で、コード値定義及び特定のエンコーディング及びデコーディングプロセスの時に使用される関連コード単位定義に応じて同じサイズのビット数を与えることを可能にする。例えば、8値コード単位の場合、全ての8つの固有コード値は、図表11のように特定のスキーマ及び設計の下で3ビットの同じビットサイズを持つように定義できる。
図表11
同じビットサイズを持つ8値コード単位のコード値の定義
Max8クラス
24ビットグループ
コード値 ビット数
000 3
001 3
010 3
011 3
100 3
101 3
110 3
111 3
あるいは、別の特定のスキーマ及び設計の下では、図表12のように、コード単位のこれら8個の値は異なるビットサイズを持つものとして再定義できる。
図表12
異なるビットサイズを持つ8値コード単位のコード値の定義
Max8クラス
35ビットグループ
コード値 ビット数
0 1
10 2
110 3
1110 4
11110 5
111110 6
1111110 7
1111111 7
そのため、CHANフレームワーク下でのコード単位は、コード単位が収容又は表現するために使用される固有コード値の最大数によって最初に測定され、コード単位の2進数ビット数は、サイズを測定するための二次的要因である。そのため、コード単位のコード値は、エンコーディング及びデコーディングに使用される特定のスキーマ及び設計における定義によって、同じビットサイズを持つことも、異なるビットサイズを持つこともできる。そのようなコード値定義又はコード単位定義はまた、CHANコーディングのコード調整技術を使用して、エンコーディング及びデコーディングの過程で必要且つ適切な場合には変更してもよい。
CHANフレームワーク下でのコード単位定義及びコード値定義のこの新規な特徴によれば、ランダムデータを含むデータ割り当てに不均一性を作成するための技術を簡単に設計できる。それはまた、ランダムデータの性質を調査し、且つコード値及び特定のデジタルデータ入力ストリームにおいて発生する関連頻度に応じてデータ割り当てを記述する方式を可能にし、それによって、圧縮/解凍のために、適切な技術がエンコーディング及びデコーディングに使用され得る。特定のデータセットに不均一性を作成するための技術を説明する前に、ここで3値コード単位用のスキーマ及び設計を説明して、情報理論における鳩ノ巣原理の神話を終わらせ、つまりコードアドレスの数が固有コード値の数を超えないと仮定する。コードアドレスの数が固有コード値の数以下であることは、コード単位サイズが1ビットコード単位、2ビットコード単位等のようにビットサイズで測定される場合にのみ当てはまる。コード単位が収容するように設計されているコード値の最大数の観点からコード単位を測定できる場合、これは当てはまらない。2進数ビットの数に応じてコード単位を測定する一般的な方法には、コード単位が収容できるコード値の数がコード単位に使用される2進数ビットの数によって決定されるという制限が求められる。例えば、3ビットコード単位は、最大8個の固有コード値を収容し、それぞれのコード値が3ビットで示され、それ以上でもそれ以下でもない。3ビットコード単位は、8個を超える固有コード値を収容することができない。さらに、このように一般的な定義を使用してデータを読み取る時、エンコーダ又はデコーダが存在する場合、エンコーダ又はデコーダが8個の固有コード値を全て読み取ることを避けることができない。つまり、エンコーダ又はデコーダは、3個の固有コード値だけを読み取ることができず、他の5個の固有コード値がデータセットに存在する場合は、無視又は破棄される。これは、従来のコード単位定義を使用すると、関連するエンコーダは常に同じビット長又はビットサイズのコード値を使用してデータセットを処理し、前記ビット長又はビットサイズは、コード単位定義に使用されるビットサイズより短かったり長かったりすることがない。この制限はCHANフレームワークの下で解消される。従って、データの読み取り及び解釈の従来の設計のため、使用可能なコードアドレスの数は、設計上、コード単位が収容するように設計されているコード値の数と完全に同じである。従って、データセットに固有コード値が全て表示されると、全てのコードアドレスが使い果たされ、データセットに含まれるコード値の頻度分布の不均一性を利用するだけの技術ではランダムデータセットの圧縮が不可能になり(CHANコーディングの使用を除く)、ランダムデータセットに関しては、データセットの全てのコード値に対するそのような頻度分布は均一になる傾向があり、即ち、データセット全体のビット0と1との間の比率は1:1であり、コード単位の全てのコード値の頻度はほぼ同じである。従って、ランダムデータセットのコード単位のコード値の頻度分布の不均一性は、これまでに設計された従来技術の技術による圧縮を行うために利用できず(全ての固有コード値がランダムデータセットにも出現するため)、さらにデータセットに存在する固有コード値の数より多くの利用可能なコードアドレスがない。図表13は、CHANフレームワークに導入されたばかりの新規な特徴(つまり、コード単位は最大コード値数で測定され、2進数ビット数はコード単位全体の2次測定として使用される)を使用した3値コード単位、Max3コード単位の設計を示している。
図表13
5ビットを使用する3値コード単位のコード値の2つのバージョン定義のうち、一方は2:3、他方は3:2のビット0とビット1の比率を有する。
Max3クラス
5ビットグループ
0ヘッドデザイン 1ヘッドデザイン
2:3(ビット0:ビット1の比率) 3:2(ビット0:ビット1の比率)
0 1
10 01
11 00
これ2つのバージョンの3値コード単位の定義は、コード単位のためにより多くのコードアドレスを作成でき、収容するように設計されている異なる固有コード値の数より多く、それによってデータセットに表示される固有値の数より多くのアドレスを提供するという点を示すように設計されている。3つの3値コード単位からなる処理ユニットを使用するスキーマは、データ圧縮のためにデジタルデータ入力ストリームをエンコーディング及びデコーディングするように設計されていると仮定する。前記設計では、デジタルデータ入力ストリームのコード単位を1つずつ読み取ると共に、0ヘッドデザインの定義を使用して3つの隣接するコード単位を1つのユニットである処理ユニットにエンコーディング(又はその後の復元のためにデコーディング)する。エンコーディング又はデコーディングの機能としては、0ヘッドデザインのコード単位定義をリーダーとして使用することによって3つの3値コード単位(3つずつ)を読み取り、そして3つのコード単位のコードを1つのコードブロック(1つの処理ユニットのコード)として扱うと共に別のコードブロックを使用してそれを変更し、例えば1ヘッドデザインのコード単位定義をリーダーとして使用することによってエンコーディングする時にそれをエンコーディング又は書き込み、あるいは1ヘッドデザインのコード単位定義を使用してエンコーディングコードを読み取ると共に0ヘッドデザインのコード単位定義を使用してそれを書き返し、デコーディングする時にそれをオリジナルコードに復元し、あるいは他の設計のマッピングテーブルを使用してエンコーディング及びデコーディングする。ここで使用されるコード単位には3個の固有コード値があるため、処理ユニットは表現のために最大27個の固有値(3個の値に3つのコード単位をかけて27個の固有値に等しい)を収容するように設計される。次の数式を使用して利用可能なアドレスの数を計算することができる。
2の(コード単位のコード値の平均ビットサイズ*処理ユニットのコード単位数)乗
そのため、0ヘッドデザインを使用する3つの3値コード単位で構成される処理ユニットの場合、使用可能なアドレス数は次のようになる。
2の(5ビット/3値*3単位)乗=2の5乗=32
27個の固有値に使用可能な32個の固有アドレスがある。これが「情報理論における鳩ノ巣原理」の神話の終わりを綴る最初のサインである。この設計を使用すると、表現する必要がある固有値の数よりも多くのアドレスが存在する可能性がある。そのため、例えば27個の異なる固有値に使用される5ビット値を4ビット値又は5ビット値に減らすことができ[例えば、絶対アドレス単一分岐を使用して、4ビットの値範囲は16(下限値範囲)及び5ビットの値範囲は32(上限値範囲)であり、ここでの処理ユニットの実際の値範囲は27(実際の値範囲)である。従って、27−16=11、4ビット範囲内で単一分岐する必要がある値は11個ある。従って、4ビットを使用する5個の値アドレスと5ビットを使用する22個の値アドレスがあるはずである]。それでいくらかのビット節約が達成される。さらに、別の設計では、行われる特別な処理を示すための特別なアドレスとして使用するために27個の固有アドレスの上に1個又は2個以上(最大5個)のアドレスを収容できる。例えば、エンコーディングコード内に存在する場合、28番目のアドレスは、次の2つの処理ユニットが最後の処理ユニットと同じデータ値、さらに同じエンコーディングコードを含むことを示すことができる。このようにして、暗号化だけでなく圧縮のためにデータをエンコーディング及びデコーディングするためのより高い柔軟性を提供する。28個のアドレス、即ち27個の固有値アドレス及び1個の特殊処理アドレスを使用する場合、4ビットを使用する4個のアドレス[16−12(単一分岐用に収容する)=4]及び5ビットを使用する24個のアドレス[(28−16=12)*2=24]が存在する。後で証拠の提供及びランダムデータセットをいかにして圧縮することができるかの実施例において、3つの3値コード単位の処理ユニット及び対応するエンコーディング及びデコーディングプロセスにおけるこのスキーマ及び設計の使用について、より詳細に詳述する。現在、特定のデータセットに不均一性を作成するための技術は、最初に次のように説明される:
不均一性をそれぞれのデータ割り当てに作成して圧縮可能にするためにデータセットを変更するビット0とビット1の比率を理解するために、以下、コード値の定義が異なる6値コード単位の図表14ではコード値定義及びコード単位定義のさらなる例を示す。
図表14a
20ビット(Max6クラス20ビットグループ)を使用する6値コード単位のコード値の定義:1つの多重分岐は2つのバージョンを有し、一方は5:15、他方は15:5のビット0とビット1の比率を有する。
Max6クラス
20ビットグループ
0ヘッドデザイン 1ヘッドデザイン
5:15(ビット0:ビット1の比率) 15:5(ビット0:ビット1の比率)
0 1
10 01
110 001
1110 0001
11110 00001
11111 00000
図表14b
16ビット(Max6クラス16ビットグループ)を使用する6値コード単位のコード値の定義:3対の単一分岐は2つのバージョンを有し、一方は7:9、他方は9:7(スキュー割り当て)のビット0とビット1の比率を有する。
Max6クラス
16ビットグループ
0ヘッドデザイン 1ヘッドデザイン
7:9(ビット0:ビット1の比率) 9:7(ビット0:ビット1の比率)
00 11
01 10
100 011
101 010
110 001
111 000
図表14c
16ビット(Max6クラス16ビットグループ)を使用する6値コード単位のコード値の定義:2対のノースキュー単一分岐は2つのノースキューバージョンを有し、これらのバージョンはビット0とビット1の比率が等しく、ビット0とビット1の比率がいずれも8:8(ノースキュー)である。
Max6クラス
16ビットグループ
2つの0ヘッドデザイン 3つの1ヘッドデザイン
8:8(ビット0:ビット1の比率) 8:8(ビット0:ビット1の比率)
00 000
11 001
010 01
011 10
101 110
100 111
図表14d
17ビット(Max6クラス17ビットグループ)を使用する6値コード単位のコード値の定義:1対の単一分岐と1対の多重分岐は2つのバージョンを有し、一方は6:11、他方は11:6のビット0とビット1の比率を有する。
Max6クラス
17ビットグループ
0ヘッドデザイン 1ヘッドデザイン
6:11(ビット0:ビット1の比率) 11:6(ビット0:ビット1の比率)
00 11
01 10
10 01
110 001
1110 0001
1111 0000
図表14e
18ビット(Max6クラス18ビットグループ)を使用する6値コード単位のコード値の定義:1対の単一分岐と1対の多重分岐は2つのバージョンを有し、一方は6:12、他方は12:6のビット0とビット1の比率を有する。
Max6クラス
18ビットグループ
0ヘッドデザイン 1ヘッドデザイン
6:12(ビット0:ビット1の比率) 12:6(ビット0:ビット1の比率)
0 1
100 011
101 010
110 001
1110 0001
1111 0000
図表14f
19ビット(Max6クラス19ビットグループ)を使用する6値コード単位のコード値の定義:2対の単一分岐は2つのバージョンを有し、一方は6:13、他方は13:6のビット0とビット1の比率を有する。
Max6クラス
19ビットグループ
0ヘッドデザイン 1ヘッドデザイン
6:13(ビット0:ビット1の比率) 13:6(ビット0:ビット1の比率)
0 1
10 01
1100 0011
1101 0010
1110 0001
1111 0000
図表14から分かるように、異なるビット0とビット1の比率を有する16ビットから20ビットを使用することによって、6値コード単位について複数の定義があり得る。そのため、コード単位は、主にそれが収容する固定データ値の最大数によって分類され、次にビットサイズの数によって分類され、そしてヘッドデザインのバージョン(0ヘッドか1ヘッドか)によって分類される。デジタルデータセットの特性及び特徴を記述するための言語(本発明において開示されるように、CHANフレームワークの構造要素及びCHANコーディング技術の特性又は特徴を記述するために使用される用語を使用するCHANフレームワーク言語)の基本単位として使用されることに加え、コード単位を定義するこのスキーマは、デジタルデータを操作するための基本単位としてコード単位を使用する時に大きな柔軟性を可能にする。これは、ビットサイズのみに基づいてコード単位を定義する従来の方法とは異なり、従来の方法では特定のビットサイズのコード単位は1つのバージョンのコード定義しか持つことができず、ここで表現される固有値の最大の数を変えることはできず(例えば、従来の方法で定義された3ビットコード単位に対しては、表現すべき8個の固有値があり、また8つの可能な組み合わせのうち6個だけの固有値を表し、他の2個の固有値を無視して処理又は処理されないようにすることはできない。つまり、それが従来の方法で定義された3ビットコード単位を持つデータセットに表示される場合、他の2個を処理せずに6個の固有値のみを処理することができない)ヘッドデザインが異なることもない。CHANフレームワークのコード定義スキーマでは、コード単位定義に異なるバージョンを有する定義、コード単位の合計ビットサイズの変更、コード単位の値ビットサイズの変更、またコード単位の対応するように設計されている固有値の数の変更及び0ヘッド又は1ヘッドデザインの変更を含むことができる。
6値コード単位の異なる設計タイプのそれぞれに対して異なるスキーマとコード値の定義との間の上記違いを利用して、既存のデジタルデータセットに不均一性を作成することができ、例えばビット0とビット1の比率を変更する。例えば、図表14cは16ビット6値コード単位の2つのノースキューバージョン(即ち、0ヘッドデザイン及び1ヘッドデザイン)を提供する。特に指定がない限り、以下の説明では0ヘッドデザインバージョンを使用する。それを図表14bの対応する3対のスキュー単一分岐バージョンと比較すると、ノースキューバージョン及び3対のスキュー単一分岐バージョンは両方とも16ビットを使用して6値コード単位の6個の固有値を表す。これらは使用されるビットコードのパターン及びビット0とビット1の比率が異なるだけであり、ノースキューバージョンの比率が8:8であるが、3対のスキュード単一分岐バージョンが7:9である。ノースキューバージョンのビット1の数を増やすために、マッピング変換後の新しいデータセットのビット0とビット1の比率が8:8から7:9に変換されるように、2組の6個のコード値間でクロスマッピングを実行することができる。しかしながら、いくつかの試行をした後、エンコーディング変換を1回使用して、ランダムデータセットに対する前記比率の変更は可能であるが比較的小さいことが分かった。これはランダムデータセットにある6個の固有コード値の頻度分布の性質によるものである。図表15は、2017年2月22日に出願されたPCT出願PCT/IB2016/054732に記載の、自動化プログラムを実行することによって生成された結果の一例を示し(このような自動化プログラムは優先権の主張に従って本PCT出願に含まれているため、それらへのアクセスは上記PCT出願を参照することによって得られ、従って本PCT出願にはもはや記載されない。なお、自動ライブラリヘルプファイルと協働してその使用を論じる時、ランダムデータセットが圧縮され得るという最終的な証拠としてのプログラムがリストされ、それにより、CHANコーディング方法及び技術を使用したCHANコード及びCHANファイルの形成におけるCHANフレームワークの実際の達成方式における暗号化/復号及び圧縮/解凍を目的とするように、エンコーディング及びデコーディング用のデータエンコーダをどのように構成するかは当業者には明らかに見える)、次のように80,000個のランダム2進数ビットを使用する。
図表15
ノースキューバージョンに用いられる3つの0ヘッドデザインの6値コード単位の6個の固有コード値の頻度分布
コード値 頻度
000 3995
001 4019
01 8074
10 7949
110 3980
111 3991
図表15は、このような生成の実例の1つである。それを生成する自動化プログラムを一度実行すると、このような実例が1つ生成される。各実例は他の実例とわずかに異なる。しかし、一般的に、6値コード単位の頻度分布のこのような実例は6個の固有コード値に対して毎回ほぼ同じ割合を維持する。ノースキューバージョンのコード値と6値コード単位の3対の単一分岐バージョンとのクロスマッピング及び関連計算は図表16に示すとおりである。
図表16
ノースキューの6個のコード値と6値コード単位の3対の単一分岐バージョンとのクロスマッピング
ノースキュー 3対の単一分岐
コード値 頻度 コード値 +又は−ビット1
000 3995 101 +3995*2=7990個のビット1
001 4019 100 ブレイクイーブン
01 8074 01 ブレイクイーブン
10 7949 00 −7949個のビット1
110 3980 110 ブレイクイーブン
111 3991 111 ブレイクイーブン
=======
ネット得:+41個のビット1
それで、このようなクロスマッピングによって、ビット1の数は80000の全2進数ビットのうち41ビットだけ増加したことが分かる。これは比較的小さい数字である。しかしながら、ビット1を増加させるそのような傾向が続けられ得るならば、データ割り当ては徐々に乗数効果を伴ってビット1に向かってゆがめられる。スキューが大きければ大きいほど、達成可能な圧縮の節約が大きくなる。そのため、コード単位の異なる設計のコード値間のクロスマッピングのパターンをよく理解するために、より多くの実験を試みる必要がある。この場合、ノースキューと3対の単一分岐の両方のバージョンは16ビットを使用し、そしてマッピングは2ビット値が2ビット値にマッピングされ、3ビット値が3ビット値にマッピングされるように行われ(つまり、対応するコード単位値に同じビットサイズのエンコーダを使用する)、従って、ビット使用数に変化はないが、ビット0とビット1の比率にはわずかな変化しかない。さらに、6値コード単位設計の上記の全てのバージョンに対して、16ビットから20ビットを使用することによって、各ビットサイズにほとんどの場合2つの対応するバージョン(つまり、0ヘッドデザイン及び1ヘッドデザイン)を有する。そのため、これら2つのバージョンのコード値間(又は図表18のように1つのバージョン間でも)のクロスマッピングを1つのエンコーディングサイクルから別のエンコーディングサイクルに利用でき、それによって合計ビット使用数を変更せずに、ビット0とビット1の比率を変更する目的に用いられる。図表16に示すように、最初のエンコーディングサイクルでは16ビットの2つのバージョン間のクロスマッピングを使用でき、次のサイクルでは20ビットバージョンを使用でき、3番目のサイクルでは18ビットバージョンを使用できる等と仮定する。もちろん、このようなクロスマッピングを行う過程で、2つのビット値の間のビット比に従って特定のビット(ビット0又はビット1)を増やす傾向が1つのエンコーディングサイクルから別のエンコーディングサイクルまで維持されるように、コード値読み取りのための頻度分布を最初に見つけ、また最良のクロスマッピングテーブルを設計すべきである。さらに、この目的の実現は同じビットサイズの2つのバージョンのコード単位設計間のクロスマッピングを使用してもよく、図表17に示すように、1つのバージョンのコード単位設計自体のクロスマッピングのみを使用してもよい。
図表17
ノースキューバージョンの6値コード単位自体の6個のコード値間のクロスマッピング
ノースキュー 同様にノースキュー
コード値 頻度 コード値 +又は−ビット1
000 3995 110 +3995*2=7990個のビット1
001 4019 111 +4019*2=8038個のビット1
01 8074 01 ブレイクイーブン
10 7949 10 ブレイクイーブン
110 3980 000 −3980*2=7960個のビット1
111 3991 001 −3991*2=7982個のビット1
=======
ネット得:+86個のビット1
上記図表から分かるように、コード単位設計自体のコード値間のクロスマッピングを使用すると、ビット0とビット1の比率も変更される可能性がある。また、図表17に示すように、この場合の結果は、図表16における2つのバージョンのコード単位設計の変更結果に比べてより優れる。
さらに、ビット0とビット1の比率を一方に傾けることを目的としたこのようなクロスマッピングは、6値コード単位設計を使用できるだけでなく、また異なるエンコーディングサイクルにおいて任意のX値コード単位に対するコード単位設計を使用してもよい。例えば、最初のサイクルでは6値コード単位設計を使用し、次のサイクルでは12値コード単位設計等を使用できる。これは傾斜の傾向が維持される限りである。そのため、データ割り当てスペクトル内のビット0とビット1の比率の任意の点から始まる特定のデータセットに対して、ビット0とビット1の比率を変更する機会は無限にある。そして、このようなクロスマッピングのパターンが見つけられて記録される限り、このようなクロスマッピングの論理及びそれがデータ割り当てスペクトル内のビット0とビット1の比率の任意の点で始まるデータセットがたどる経路をエンコーダ及びデコーダに埋め込むことができる。あるいは、各エンコーディングサイクルに応用されるように、このようなクロスマッピングの論理及び経路はインジケータとしてエンコーディングコードのヘッダー内に置かれ、その結果、後でデコーディングするとオリジナルコードを正確且つロスレスに復元することができる。もちろん、エンコーダ及びデコーダにコード値のクロスマップを埋め込むというこの論理及び経路はビット使用数をさらに最小限に抑え、圧縮エンコーディング段階では圧縮することに役立つ。そのため、合計ビット使用数を変更しない場合に、別々の同一のコード単位設計又は異なるコード単位設計のコード値のクロスマッピングを使用することによって、データセットのビット0とビット1の比率を1回以上変更してデータ割り当てを変更し、データセット内に不均一性を生成する目的の中間ステップとして使用することができ、他の技術を使用して圧縮するエンコーディング段階では特定のデジタルデータセットの圧縮を可能にするか又は強化することができる。さらに、特定の段階又は任意のエンコーディングサイクルにデータセットのビットサイズを変更することはそれほど重要ではなく、重要なのは最終結果である。そのため、データ割り当てやデータセットのビット使用数を変更することは、常にエンコーディングステップに関連する。この開示の新規な特徴は、データ圧縮の目的としてビット0とビット1の比率を変えることに従って任意のデータセットのデータ割り当ての変化が一般的に一方向に傾けるべきであるようにエンコーディングが設計されるべきであることである。コード単位定義をリーダー及びライターとして使用してデジタルデータセットのビット0:ビット1の比率を変更することに加えて、処理ユニット定義は、また段落0115と図表55及び段落0116と図表56に示されるのと同じ目的を果たすことができる。結果ははるかに優れる。従って、より大きなサイズのコード単位又はより大きなサイズの処理ユニットを使用すると、より大きな差が特定のデータセットのデータ割り当てにおける不均一性として生成、捕捉、発生されることになる。
そのため、ビット0:ビット1の比率を一般的に一方向に傾けることに関して(適切な場合には特定の点まで)任意のデータセットのデータ割り当てを変更する中間段階の後に、このような割り当てのデータセットをビット0:ビット1の比率のその点で圧縮するのに適した技術を使用してデジタルデータセットを圧縮することができる。従って、まずランダムデータセットが圧縮を行うために与えられている場合、上記の段落0062から0064又は下記の段落0115及び0116に概説されている技術を使用して、ビット0:ビット1の比率を一方向に傾けるように変更することができる。次に、データ割り当てに応じて、圧縮を行うためにコード値のクロスマッピング技術を使用することができ、そして、例えば、現在使用している実例において同じ値サイズであるが異なるビットサイズのコード単位のコード値のクロスマッピングを使用する。20ビットサイズの6値コード単位(又は適切な場合はその他の任意のビットサイズ)のようなビットサイズの異なる6値コード単位を使用してデータセットを読み取り、またこれらのコード値を、処理中のデータセットのコード値の頻度分布に応じて、エンコーディングの目的で19ビットサイズ(又は適切な場合はその他の任意のビットサイズ)の6値コード単位のコード値とクロスマッピングする。つまり、コード値のクロスマッピングを行う際に、ビット0:ビット1の比率でデータ割り当てを変更するために、コードアドレスが同じビット値サイズのデータ値に1対1に対応するようにマッピングされた同じX値コード単位を使用する。ただし、ビット使用数を減らすためにデータ圧縮を実行するには、1対1のマッピング関係を持つ同じX値のコード単位を代わりに使用する必要があるが、データ値のビット値サイズは異なる。しかしながら、これは、ビット使用数を変更することと、同時にビット0とビット1の比率を変更することとの両方のために、異なるコード値サイズのコード単位を使用することを排除するものではない。このような目的で処理装置を使用する場合も同様である。
従って、以上から分かるように、修正されたCHANフレームワークでは、コード単位サイズは、現在、コード値の数及び図表14に示されている異なるビットサイズを有する6値コード値の実例で示されている2進数ビットの数で測定可能であり、特定の数の値及びビットサイズを有する任意のコード単位定義のためのコード単位の固定コード値のビット0とビット1の比率及び頻度分布等、データセットの他の特徴も研究及び発見することができる。これにより、任意のデジタルデータセットを記述し、並びにデータ暗号化やデータ圧縮をオリジナルデジタルデータの正確且つロスレスな復元と共に行う目的を含むあらゆる目的のために適切なエンコーディング及びデコーディング技術を使用するのに役立つ。
コード単位サイズの定義の変更に伴い、コード単位は、現在、コード単位が収容するように設計されているコードの数に基づいて、そしてコード単位を全体として使用される2進数ビットの数に基づいてサイズを決めることができる。処理ユニット(エンコーディング又は1つのエンコーディングコードブロックを書き込むためのユニット)は1つのコード単位のみで構成でき、図表14に示すように、同数のコード値を有するコード単位は、各コード値及びコード単位全体に対して、異なるビットサイズを有するように設計することができる。そのため、コード単位は、他の読み取りユニットと組み合わせる必要なく単独で使用して処理ユニットを形成できる基本読み取りユニットであり、エンコーディングプロセス中にエンコーディングされたコードを書き込むと共にデコーディングプロセス中に読み返すために用いられる基本書き込み/読み取りユニットでもある。
ランダムデータは非圧縮性であると長い間考えられている。データセット内のビット0とビット1の比率を変えるため、上記CHANフレームワークを使用する時が来た。また、開示すべき他の技術は以下のとおりである。
これらの他の技術は、CHANフレームワークの下のCHANコーディングで使用されるエンコーディング技術として分類することができる。CHANコードの分類コードを生成するため、コード単位の特性又は特徴(単一又は組み合わせのいずれかでもよい)を識別して組織することは、そのような技術の1つであり、例えば、コード単位のランク及び位置を使用してRPコードを生成し、又はコード単位のコード値(単一又は組み合わせ)を記述するために使用できる数式を設計し、そしてエンコーディング及びデコーディングの目的にも使用し、例えば、CHANコードの内容値コード、CVサブブロックを作成するために使用することができる。そのため、CHANフレームワークの下のCHANコードの基本部分(コード単位の特性又は特徴を説明する部分)は、分類コードと内容値コード(あるいは内容コードと略称する)に分けることができる。CHANコードに属すると見なされ得る他の部分は、他の識別コード又はインジケータ(例えば、CHANコードファイルのメインヘッダー内、又はデジタルデータファイルのセクションに使用されるセクションヘッダー内に含まれる)を含み、この識別コード又はインジケータは、CHANコードの基本部分をエンコーディング及びデコーディングするために使用されるクロスマッピングテーブル(マッピングテーブルインジケータ)、特定のデジタルデータ入力に対するエンコーディング及びデコーディングのサイクル数(サイクルインジケータの数)、CHANコードファイルについて計算されたチェックサム(チェックサムインジケータ)、任意特定のエンコーディング及びデコーディングサイクルにおけるデジタルデータ用のエンコーディングされていないコード単位(存在している場合)、及び適切且つ必要な場合でCHANコードの識別、エンコーディング及びデコーディングを目的として使用するために設計者によって設計されたその他のインジケータを識別するために使用される。例えば、このようなインジケータの1つは、エンコーディング及びデコーディングに使用するためのスーパー処理ユニットを構成する処理ユニットの数であり得る。その他は、適切且つ必要な場合で、頻度によるCHANコードの分類コードを調整するためのインジケータ、及び頻度によるCHANコードの内容コードを調整するためのインジケータである(即ち、分類コード及び内容コードを使用する0ヘッド又は1ヘッドデザインを、適切な場合で処理中のデジタルデータセットのビット0:ビット1の比率のパターンの頻度インジケータ(略して頻度インジケータ)に調整する)。スーパー処理ユニットの概念と使用方法、及び頻度によるCHANコードの調整も、以下のように開示される。
CHANコードで使用される1つの基本技術(即ち、絶対アドレス分岐)は、前述の説明のいくつかの箇所で既に説明されている。ランダムデータセットを圧縮する際に、この技術がどのように使用されるべきであるか、即ち、ランダムデータセット全体のビットストレージ使用数を減少させることについて詳しく説明する必要がある。この使用法は、コードアドレス数とコード値数との間の関係に関する問題を議論する際に、段落0060及び0061で簡単に触れられた。記憶をリフレッシュするため、その議論において、3つの3値コード単位からなる処理ユニットは、コードアドレスの数が、エンコーディング及びデコーディングのための処理ユニットが収容するように設計されているコード値の数よりも大きくなり得ることを開示するために使用される。これは、コード単位の新しい定義を使用して実現でき、コード単位のサイズは、コード単位が収容するコード値の数、及びコード単位に使用される異なる固有コード値のビット数並びにコード単位全体のビット数によって測定されるように設計できる。6値コード単位を使用するこの特徴の設計及び定義を図表14に示している。また、絶対アドレス分岐技術を使用するため、この特徴を実現することもできる。
その議論において、処理ユニットの27個の固有コード値がコードアドレスによってどのように表されるか、及びエンコーディング並びにデコーディングの目的で特殊な処理アドレスとしていくつかの代替アドレスを使用することについても簡単に説明される。例えば、1種の設計において、27個の固有コード値は、5個の4ビット基本アドレス及び22個の5ビット単一分岐アドレスによって表すことができる。従って、次の実例は、コード値がコードアドレスとどのようにクロスマッピングされるかを示している。
図表18
27個の値の分類絶対アドレス分岐コード表(CAABCT)
実施例I
Figure 2019528027
上記の分類絶対アドレス分岐コードテーブル(CAABCT)の実施例Iを使用することにより、処理ユニットの3つの3値コード単位の27個のコード値は、クラスビット(分類コード)、ノーマルビット、分岐ビット(内容コード)を含むCHANコードに1つずつクロスマッピングされ得る。ただし、このバージョンのCAABCTの実施例Iを使用すると、ランダムデータの頻度分布のため、ランダムデータセットを圧縮できない可能性がある。しかしながら、デジタルデータセットを圧縮でき、デジタルデータセットの27個の固有コード値の全ての頻度はほぼ同じか、又は、27個の固有コード値の全ての間でほぼ均一である(例えば、特定のデータセット内の27個の固有コード値の全ての頻度が1の場合、以下の図表20に示すように、27個の固有コード値の全てが合計135ビットを使用し、また、上記の図表18で合計130ビットだけを使用してコードアドレスとクロスマッピングされた場合、9ビットの圧縮が節約されるはずである)。そのため、問題となるのはコードアドレスの数だけでなく、固有コード値の頻度分布も、ランダムデータセットを圧縮するための新たな障害となり、さてこの問題を解決しよう。
図表19に示される3値コード単位の定義の性質のため、コード単位のビット0:ビット1の比率は2:3であるので、図表20に示すように、3つの3値コード単位の処理ユニットの27個のコード値の頻度分布は均一分布ではない。
図表19
3値コード単位の定義:0ヘッドデザイン
ビット0:ビット1の比率=2:3
コード値番号 コード値コード
1 0
2 10
3 11
図表20
3つの3値コード単位からなる処理ユニットは、図表19のコード単位の定義を使用して80,000ビットのランダムデータセットから読み取られた27個の固有コード値の未分類頻度分布の実例
Figure 2019528027
別の自動化プログラムを実行して図表20の頻度番号を生成し、結果は図表21にリストされている。
図表21
図表20を生成したプログラムを使用して生成された別の結果
0−0−0:2273
0−0−10:1175
0−0−11:1149
0−10−0:1123
0−10−10:531
0−10−11:593
0−11−0:1060
0−11−10:548
0−11−11:542
10−0−0:1045
10−0−10:542
10−0−11:576
10−10−0:551
10−10−10:276
10−10−11:288
10−11−0:559
10−11−10:266
10−11−11:294
11−0−0:1072
11−0−10:508
11−0−11:561
11−10−0:540
11−10−10:277
11−10−11:279
11−11−0:591
11−11−10:262
11−11−11:304
頻度:2273 1175 1149 1123 1072 1060 1045 593 591 576 561 559 551 548 542 542 540 531 508 304 294 288 279 277 276 266 262
オリジナル:80001
表1のサイズ:82133
表2aのサイズ:80001
表2bのサイズ:84373
表3のサイズ:81444
本実例で使用されている3つの3値コード単位の処理ユニットの27個の固有コード値の頻度分布は、図表20に記載されているものと類似するか又は比例することが分かる。表1のサイズは、図表21の27個の固有コード値間のクロスマッピングによって生成されたビットサイズであり、コード値はビット使用によって分類され(27個の固有コード値の分類は、下の段落0078の図表23にリストされている)、また、分類絶対アドレス分岐コード表(CAABCT)にある27個の固有コードは、段落0073の図表18にリストされている実施例Iで使用されている27個の値に使用される。図表21の表2aのサイズは、以下の図表22の実施例IIに見られるように、別のCAABCTを用いたクロスマッピングの結果である。
図表22
27個の値の分類絶対アドレス分岐コード表(CAABCT)
実施例II
Figure 2019528027
上記の実施例IIでは、その27個の固有テーブルコードに同じビットを使用し、例えば、処理ユニットを構成する3つのコード単位のうち、3値コード単位0ヘッドデザイン(値1=0、値2=10、値3=11)によって読み取られたデータセットで生成された27個の固有コード値(ビット使用で分類)で使用される場合、ビット使用結果は、生成されて図表21にリストされたオリジナルランダムデータセットの実例と同じである。生成されて図表21にリストされ、0ヘッドデザインの上記3つの3値コード単位を使用して読み取られたランダムデータセットは80001ビットを占め、そして、実施例IIにおけるCAABCT(図表23の表2a)のテーブルコードとのクロスマッピングにより読み取られたランダムデータセットをエンコーディングするためのビット使用は同じで、80001ビットである。実施例IIのCAABCTは、27個の固有テーブルコードの全てに最大135ビットを使用し(テーブルコードあたり1カウント)、実施例IのCAABCTでは、130ビットしか使用されていない。しかし、ランダムデータセット内の27個の固有コード値の不均一な頻度分布のため(この不均一は、基準のコード単位の各値及び一致するビットサイズに対して設計された基準及び同じビットサイズでデータを読み取る従来の方法ではなく、読み取り時に3値コード単位の0ヘッドデザインが使用されるためである)、実施例IのCAABCT(その27個の固有テーブルコードの1カウントごとに均一な頻度分布のために130ビットを使用する)は、80001ビットのオリジナルランダムデータセットをエンコーディングする時に、実施例IIで使用されたCAABCTよりも多くのビットを使用し(27個の固有テーブルコードの1カウントごとに均一な頻度分布のために135ビットを使用する)、図表23に示すように81989ビットを使用し、これは圧縮ではなく拡張である。表2aから表3の結果(表2aは、段落0085から0093及び図表29で論じたように、表2aは、CAABCT2を用いたクロスマッピングの結果であり、表2bは、CAABCT1を用いたクロスマッピングの結果であり、そして表3は、CAABCT0を用いたクロスマッピングの結果である)を図表21にリストし、以下のように抽出する。
表2aのサイズ:80001
表2bのサイズ:84373
表3のサイズ:81444
上記は、ランダムデータセットから読み取られたPU値(ビット使用で分類される)を、以下にリストされるような他のビット使用パターンのテーブルコードとクロスマッピングした後のエンコーディングのビット使用結果を提供する。
グローバル$マッピングテーブル1[27]=[4、4、4、4、4、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5、5]
グローバル$マッピングテーブル2a[27]=[3、4、4、4、4、4、4、5、5、5、5、5、5、5、5、5、5、5、5、6、6、6、6、6、6、6、6]
グローバル$マッピングテーブル2b[27]=[3、5、5、5、5、5、5、6、6、6、6、4、4、4、4、4、4、6、6、4、4、4、4、6、6、6、6]
グローバル$マッピングテーブル3[27]=[3、3、4、4、4、4、4、4、5、5、5、5、5、6、6、6、6、6、6、6、6、6、6、6、6、6、6]
従って、27個の固有テーブルコードを有するコードテーブルを設計するのは難しいように思われ、ランダムデータセットから読み取られた27個の固有コード値をエンコーディングすると、ビット使用の節約又は圧縮を達成できる。従って、ランダムデータセットを圧縮するため、そのような目的を達成するために他の技術を設計、開発及び使用しなければならない。以下に開示するように、そのような設計の1つは、スーパー処理ユニットを使用し、特別に設計されたコードテーブルを使用することによってマッピング又はエンコーディングすることである。
スーパー処理ユニットを使用するという概念は、ランダムデータセットが実際にはいくつかの不均一なデータサブセクションから構成されていると考えられ、また、データコード値の頻度分布の性質のため、ランダムデータセットが圧縮されない可能性がある場合、ランダムデータのデジタルデータ入力ファイル全体が不均一なデータのサブセクション(ここでは、スーパー処理ユニットと呼ばれる)に分割される可能性があり、ランダム割り当てのデジタルデータ入力全体を圧縮することを可能にするため、このような単独のスーパー処理ユニットに対して、不均一なデータ割り当てを利用して圧縮を可能にするという技術を適用できる。これは分割統治戦略である。
従って、デジタルデータ入力ファイル全体は、いずれかの極端箇所にランダムからひいては完全に不均一なデータ分布スペクトルの特定の点におけるデジタルデータの全ての処理ユニットからなる巨大処理ユニットと見なすことができる。圧縮科学の分野では、データセットの不均一な性質を利用することによって圧縮技術を実現することのみ可能である。そして、これまでのところ、ランダム割り当てのデータセットは非圧縮性であると考えられている。従って、ランダムデータ全体の処理ユニットからなる単一の巨大処理ユニットは、スーパー処理ユニットと呼ばれるいくつかの処理ユニットからなるサブセクションに分割することができ、それにより、これらのデータサブセクションを圧縮するための技術を設計することができる。そのため、巨大処理ユニットとは、エンコーディング及びデコーディングの対象となる全てのデータコードを含む全体単位と定義され、従って、エンコーディングされていないコード単位が除外され、コード単位は、例えば、適切な場合で1つの処理ユニット又は1つのスーパー処理ユニットのサイズにならないため、エンコーディング及びデコーディング処理をされていないデータコードからなる。巨大処理ユニットは、そのような分割又は他の目的を通じたランダムデータの圧縮等の特定の目的のために、エンコーディング及びデコーディングのためにいくつかのスーパー処理ユニットに分割することができる。スーパー処理ユニット用のデータのエンコーディング及びデコーディングは、処理ユニットに行われるエンコーディング及びデコーディングによって使用されるエンコーディング及びデコーディング技術又はプロセスに対して行われる何らかの調整を必要とし得る。従って、スーパー処理ユニットは、1つ以上の処理ユニットから構成されるデータユニットである。それは、処理ユニットに対して行われたエンコーディング及びデコーディングに対する何らかのエンコーディング調整を受ける可能性がある。
ランダムデータを圧縮する目的でスーパー処理ユニットがどのように使用されるかを理解するため、図表20の0ヘッドデザインの3つの3値コード単位からなる処理ユニットの27個の固有コード値をまず下の図表23に分類して列挙する。
図表23
3つの3値コード単位からなる処理ユニットは、図表19のコード単位定義を使用して80,000ビットのランダムデータセットから読み取られた27個の固有コード値の分類/未分類頻度分布の実例
Figure 2019528027
上記の図表23の27個の固有コード値の分類されたランク値は、ビット使用の観点から4つのグループに分類できる。グループ1の1個のコード値は3ビット、グループ2の6個のコード値は4ビット、グループ3の12個のコード値は5ビット、そしてグループ4の8個のコード値は6ビットである。任意の時点で生成されるランダムデータの頻度分布におけるわずかな変動のため、特定のグループ内の各コード値のランクはランダムデータセットに応じてわずかに変動する可能性がある。しかしながら、ランダムデータの実例と他の実例との間の頻度に関して、コード値はあるグループから別のグループに移動しない。それらの変化が非常に大きい場合、データ割り当てはまったくランダムではない。
ランダムデータはそのような同様のデータコード値の頻度分布を有するので、それらとのクロスマッピングのために異なるバージョンのCAABCTを設計することができ、そのようなCAABCTを使用してエンコーディングした後のビット使用の結果を述べ、図表21に示す。CAABCTのテーブルコードと、あるデータ割り当ての特定のデータセットを処理するためのCHANフレームワークの下での処理ユニット及びコード単位の特定のスキーマ及び設計のデータコード値とのクロスマッピングに対して、27個の固有コード値のデータコード値の頻度ランクは、ランダムデータセットのコード値とは異なり得る。そのため、CAABCTのテーブルコードと27個の固有コード値のクロスマッピングを設計して圧縮の最良の結果が得られるため、そのような27個の固有コード値の頻度の順序を知る必要がある。従って、この順序の固有コード値頻度は、最初に対象データセットを分析することによって得られるべきであり、そのような情報は処理のためにエンコーディング及びデコーディングに利用可能にされなければならない。この情報は、データセットごとに異なる可能性があるため、オリジナルデータセットを適切に復元するために後でデコーダに割り当てるために、エンコーディングされたコードのヘッダーに含めることができる。ランダム割り当てにおけるデータセット、及びエンコーディング及びデコーディングされたデータコード値とテーブルコード値とのクロスマッピングの割り当てについても同様である。しかしながら、ランダムデータセットのグループ内のコード値の頻度ランクにおけるわずかな変化が許容可能であると考えられる場合、そのような情報はヘッダーから省略することができる。ただし、処理するために使用されるCAABCTのインジケータ(又はCAABCT全体の内容)は依然としてヘッダーに収容されているか、又は必要に応じてエンコーダ及びデコーダに利用可能又は組み込まれている。CABCTがここで使用されるのは、0ヘッドデザインの3つの3値コード単位を使用して、処理ユニットの27個の固有コード値に対するマッピングコードテーブルを設計する際にAAB技術が使用されるためである。そのため、AAB技術を使用しない他のマッピングコードテーブルも、適切な場合に使用するように設計できる。従って、この議論の場合に使用するためのCAABCTの言及は、一般にエンコーディング及びデコーディングにおけるマッピングコードテーブルの使用にも適用される。
ランダムデータセットの圧縮を行うためにCAABCTがスーパー処理ユニットのエンコーディングにどのように使用されるかを見てみよう。スーパー処理ユニットの使用はランダムデータセットをデータのサブセクションに分割することを目的としているので、スーパー処理ユニットはランダムデータセットとは異なるデータ割り当てを持つように設計され、不均一なデータを圧縮する技術に使用することができる。例えば、フルセットの処理ユニット(本実例では27個の固有データ値エントリ)と等しいかそれより少ない数の処理ユニットを有するスーパー処理ユニットは、不均一なデータ割り当てを有することが保証される。ただし、データの全ての不均一なサブセクションが圧縮可能であるという意味ではない。これは、あるデータ割り当てのデータを圧縮するのに役立つ圧縮技術又はマッピングコードテーブルは、他の異なるデータ割り当てのデータには適していない可能性があるためである。これは、異なるデータ割り当てのスーパー処理ユニットを圧縮する際に、複数の圧縮技術又はマッピングコードテーブルを使用しなければならないことを意味する。
ランダムデータセットをスーパー処理ユニットの形でデータサブセクションに分割する方法及び技術において、スーパー処理ユニットを2つのグループに分類し、CAABCTを使用して一方のグループのスーパー処理ユニットの処理ユニットをエンコーディング及びデコーディングし、別のCAABCTを使用して他方のグループのスーパー処理ユニットの処理ユニットをエンコーディング及びデコーディングする。このように、2つのグループのうちのいずれかに対してCAABCTが使用されるインジケータをスーパー処理ユニットに適用しなければならない。そのため、この方法を使用して圧縮を行うには、追加のビット使用が必要になる。そして、圧縮を行うために関連するCAABCTを使用して実施されるエンコーディングは、各スーパー処理ユニットのCAABCTビットインジケータ及び他の追加情報(ヘッダーに含まれるもの等)を使用することによってもたらされるビット使用より多いビット使用節約をもたらすはずである。これは今後の非常にやりがいのある作業である。
これまでにこの目的のために使用されることが示唆されている技術は以下のとおりである。
(a)スーパー処理ユニットの使用
(b)スーパー処理ユニットをグループに分割し、ここでは、まず2つのグループに分割する。及び
(c)(2グループのスーパー処理ユニットの)固有データコード値と固有テーブルコード値との間のクロスマッピングのためのCAABCT(この場合は2つ)の使用、及びCAABCTインジケータの使用。
使用のために分割されるべきスーパー処理ユニットのサイズ及びスーパー処理ユニットがどのようにグループ化又は分類されるべきか、及びどのCAABCTが使用されるべきであるかに関して問題が生じる。
これらの問題に対する答えは、図表23の上記の議論の場合に使用されている実例で見つけられなければならず、ここで、処理ユニットは、0ヘッドデザインの3つの3値コード単位を含むように設計され、従って、約80000ビットのランダムデータセットに対して頻度によって分類された27個の固有コード値を有する。図表21は、段落0073から0075まで説明した2つのCAABCTでは、ランダムデータセットに対して圧縮を実行できない可能性があることを示している。これは、エンコーディングのためにランダムデータセットをスーパー処理ユニットに分割することであり、これはこの状況に対する解決策として提案されている。従って、スーパー処理ユニットは、それぞれがランダムデータ割り当てを持たないように分割されなければならない。従って、固定ビットサイズ又は固定範囲のビットサイズ又は固定数の処理ユニットを有するスーパー処理ユニットを使用することができ、それによって各スーパー処理ユニット内のデータ割り当てがランダムではないことが保証される。従って、段落0073から0075までの議論は、27個以下の処理ユニットからなるスーパー処理ユニットは、27個の固有コード値(全て存在するか否かに関わらず)が従来の意味で固定ビット値サイズを使用して設計されたコード単位のランダムデータセットを構成しないため、基準を満たすべきであると判断される。0ヘッドデザインの3つの3値コード単位からなる処理ユニットのスキーマ及び設計を使用して読み取る時に固定ビットサイズを使用して従来の意味で設計されたコード単位のランダムデータセットは、図表18に示される27個の固有値のそれぞれの頻度分布特徴の代わりに、図表23に示される固有データ頻度分布特徴が示される。固定サイズのスーパー処理ユニットを使用すると、分割を実現できる方法の1つである。そのため、まずスーパー処理ユニットを27個の処理ユニットのサイズに仮設定する。
ここで、27個の処理ユニットのサイズを有するスーパー処理ユニットは、そのように分割されたスーパー処理ユニットのそれぞれに27個の固有コード値のそれぞれが存在することを保証するものではない。これらのスーパー処理ユニットでは、それぞれが異なるデータ割り当てを持つことができ、27個の固有コード値の全てを持つものもあり、一部の固有コード値が欠落しているものもあり、複数回出現するものもあり、これらは全て様々な方法で存在する。従って、簡単にするため、ここでの実例は、エンコーディング及びデコーディングの目的でこれらの異なるデータパターンを2つのグループに分割する。図表23の80000ビットのランダムデータセットのビット使用及び頻度分布の統計値は、下記の図表24で次のように改善される。
図表24
3つの3値コード単位からなる処理ユニットは、図表19のコード単位定義を使用して80003ビットのランダムデータセットから読み取られた27個の固有コード値の統計値の実例
処理ユニット
分類コード カテゴリ
番号 コード値 使用したビット 頻度 頻度%(〜) 頻度%(〜)
カテゴリ1 12.1
1 000 3 2155 12.1
カテゴリ2 37.6
2 0011 4 1154 6.5
3 1100 4 1143 6.4
4 0110 4 1132 6.4
5 0010 4 1101 6.2
6 0100 4 1078 6.1
7 1000 4 1074 6.0
カテゴリ3 37.7
8 01111 5 605 3.4
9 01010 5 587 3.3
10 10010 5 574 3.2
11 10011 5 566 3.2
12 11010 5 566 3.2
13 10110 5 564 3.2
14 11100 5 563 3.2
15 01110 5 558 3.1
16 10100 5 552 3.1
17 11011 5 530 3.0
18 11110 5 527 3.0
19 01011 5 506 2.8
カテゴリ4 12.5
20 111010 6 304 1.7
21 101111 6 292 1.6
22 101011 6 290 1.6
23 101010 6 279 1.6
24 111110 6 277 1.6
25 101110 6 263 1.5
26 111111 6 262 1.5
27 111011 6 253 1.4
合計:135 ビット合計:17755 合計:〜100
上の図表24から、27個の固有値は、ビット使用又は頻度特徴の観点から4つのカテゴリに分類できることが分かる。カテゴリ1とカテゴリ2はグループ(グループ0)を構成すると、頻度の数では約49.7%、カテゴリ3とカテゴリ4は別のグループ(グループ1)を構成すると、約50.2%になる。これら2つのグループの頻度の数はほぼ同じである。そのため、ランダムデータセットをデータ処理が不均一になるようにスーパー処理ユニット(27個の処理ユニットを使用)に分割することによって、いくつかのスーパー処理ユニットは、グループ1からよりもグループ0からより多くの固有コード値を有するであろうと予想されるが、他のものは代わりにそうするであろう。従って、マッピングコードテーブル(CAABCT0)が、グループ1ではなくグループ0の固有データコード値にクロスマッピングする時に使用するビット値が少なくなるように設計でき、もう1つのマッピングコードテーブル(CAABCT1)は反対である。そして、グループ0からのより多くの固有データコード値を有するスーパー処理ユニットは、圧縮目的のためにCAABCT0を使用してエンコーディングすることから利益を得、そして同じ目的のために、グループ1からのより多くのスーパー処理ユニットは、CCABCT1を使用することから利益を得る。しかし、各スーパー処理ユニットの追加コストに対してどのマッピングコードテーブルが使用されるかを示すインジケータビットに関する問題がある。一方、グループ0のスーパー処理ユニット(即ち、グループ0からのデータ値がより多いスーパー処理ユニット)は、グループ1からよりもグループ0からの1つより多くのデータ値エントリを有することがある。グループ1のスーパー処理ユニットについても同様である。従って、各スーパー処理ユニットに対するマッピングテーブルインジケータビットのこの追加のコストは、前述のコード値発生パターンによって相殺される機会を依然として有する可能性がある。しかしながら、スーパー処理ユニット及びマッピングコードテーブルを使用するエンコーディング及びデコーディング技術を使用する時、より多くのビット使用を節約するのを助けるためにいくつかの他の技術を使用することができる。
これらの他の技術の1つは、エンコーディング及びデコーディングにおいて各スーパー処理ユニットのためにマッピングコードテーブルビットインジケータを使用することを免除する人工知能(AI)技術(又はむしろヒューマンインテリジェンス(HI)技術)の使用である。ここで使用される人工知能技術は、AI基準を確立することによって、このAI基準によってエンコーディングされた各スーパー処理ユニットの内容を区別することであり、2つのマッピングコードテーブルのうちの一方を使用して対応するスーパー処理ユニットをエンコーディングする。このようにして、AI基準が適切に設定されている場合、マッピングコードテーブルビットインジケータは省略され得る。以下は、使用可能なAI基準に関するいくつかの提案である。
(a)どのCAABCTがそのエンコーディングに使用されているかを識別するために使用可能なスーパー処理ユニット内に存在するコード値(識別コード値)。従って、この基準を考慮すると、そのようなコード値は、2つの異なるCAABCTによって異なるテーブルコード値にエンコーディングされる必要がある。そして、この要件は、問題となっている2つのCAABCTを設計する段階で満たさなければならない。また、この要件のために、スーパー処理ユニットをエンコーディングするための1つのマッピングコードテーブルの使用を停止するための終了条件又は終了基準が変更されるべきである。例えば、まず、スーパー処理ユニットのサイズを27個の処理ユニットコード値に設定した場合、スーパー処理ユニットに存在する27個のコード値の中に識別コード値が必ずしも見つかるとは限らないため、終了条件は、次のように修正する必要がある。
(i)識別コード値を終了値として使用し、CAABCTを使用して前の値コード及び自体をエンコーディングし、コード値の識別後に、次の識別コード値を含むコード値をエンコーディングするためにどのCAABCTが必要であるかを再度評価する。この技術を使用することによって、識別コード値を含まないオリジナルコード値の最後の部分も評価することができ、2つのCAABCTのいずれかを使用してエンコーディングすることができる。しかしながら、そのような方法で、識別コード値はエンコーディング後にこのセクションの終わりに加えられなければならない。そして、この最後の識別コード値が追加されたコードであるのか、又はオリジナルコード値の一部であるのかに関するインジケータがヘッダーに追加され、識別コード値がデコーディング時にデコーディングコードからデコーディング又は削除されなければならない。そして、この部分の後に、処理ユニットコード値を構成しないコードビット(もしあれば)を含むエンコーディングされていないコード単位があり得る。又は
(ii)識別コード値を含むスーパー処理ユニットを終了条件として使用する。つまり、デジタルデータ入力のヘッダーから3番目のスーパー処理ユニット(この場合は27個のコード値)のみに識別コード値が含まれる場合、最初の3つのスーパー処理ユニットの全てのコード値は、評価中にCAABCTを使用してエンコーディングされ、次のコード値のエンコーディングにどのCAABCTを使用する必要があるかを評価するために新しい評価が行われ、これは、次のスーパー処理ユニットがその識別コード値を含むべきであることを意味する。そして最後に、スーパー処理ユニットを構成しないか、又は識別コード値のオリジナルコードを持たないコードの最後の部分は、上記(i)のように処理されるか、又はエンコーディングされていないコード単位に含まれるために残されるだけである。
(b)デコーディング失敗。CAABCTを使用してエンコーディングされたコード値は、別のCAABCTを使用して正常にデコーディングされない場合がある。従って、1つのCAABCTがエンコーディング用に選択されたものでなければならないため、エンコーディングされたコード値は両方のCAABCTを使用してデコーディングする必要がある。デコーディングプロセスは、それをデコーディングに使用するのに成功するはずである。コーディングに使用されていない別のCAABCTを使用したデコーディングは不可能な場合がある。
(c)より短いエンコーディングコード。エンコーディングは圧縮を目的として使用されるため、最も短いエンコーディングコードを生成するCAABCTが確実に選択される。そのため、デコーディング時に、エンコーディングに使用されていないCAABCTを使用すると、全体としてビット使用が長いコードが確実に生成される。
(d)再エンコーディング失敗。従って、2つの異なるCAABCTを使用してデコーディングすると、2グループの異なるデコーディングコードが生成される。これら2グループのデコーディングコードは、2つのCAABCTを交換可能に再使用して再エンコーディングされ、選択したもので再エンコーディングするのではなく、別のCAABCTを使用することもある。特に2つの異なるCAABCTでは、異なるヘッドデザインを使用するトリオ(trio)のコード値が使用される。例えば、次のように0ヘッドデザインを使用する1つのCAABCTである。

10
11
サフィックスとして、そして1ヘッドデザインを使用する別のCAABCTは、コード値として次のトリオを使用するサフィックスである。

01
00
(この点については後で説明する)。エンコーディング失敗の別の証拠は、再エンコーディング時のデコーディングコードの最後のビットが1つのコード値に形成されず、固定ビットサイズ又は固定数の処理ユニットを有するスーパー処理ユニットを使用する場合、再エンコーディングされたコード値は、設計された固定サイズを構成せず、再エンコーディング時に固定サイズのスーパー処理ユニットよりも多い又は少ないコードを生成する。
(e)必要に応じてエンコーディングコードの後に追加される追加ビット。上記のAI基準を用いて評価した後でも、エンコーディングのために選択されたCAABCTを識別することが依然として不可能であり、そのような区別をするためにエンコーディングコードのセクション又は単位の最後に追加ビットを追加しなければならない可能性がある。必要であれば、この追加ビットは、正しく解決されない状況をエスケーピングするための安全なエスケープとしての使用のためにのみ提供される。このエスケープは実現する必要がめったになく、従って、ビットストレージは実際にはこの目的には使用されない可能性があり、曖昧な場合には、前述のAI基準の全てが最終的な答えを提供できない場合にのみ使用される可能性がある。これを考慮して、そのようなAI評価は、エンコーディングプロセスの間、並びにエンコーディングの各セクション又は単位が終了した後にも行われるべきである。及び
(f)適切且つ効果的な使用のために発見され設計されたその他の基準。
上記の説明をより明確に説明するために、2つのそのようなCAABCTが図表25と図表26でさらに詳しく説明するために設計されている。
図表25
27個の値の分類絶対アドレス分岐コード表(CAABCT0)
実施例III
Figure 2019528027
図表26
27個の値の分類絶対アドレス分岐コード表(CAABCT1)
実施例IV
Figure 2019528027
上記2つのCAABCTから分かるように、テーブルコード値のグループ化は、最初の11個のテーブルコードをグループ0にまとめ、残りをグループ1にまとめることに関して少し調整される。このグループ化調整は、より簡単なコード配置の結果である。括弧内のテーブルコード値は、トリオ内のコード値である。CAABCT0では、トリオは1つしかないが、CAABCT1では、トリオは6である。CAABCT0では、トリオは0ヘッドデザインを使用し、つまり、次の形式のサフィックスが付いている。

10
11
一方、CAABCT1では、トリオは1ヘッドデザインを使用し、次の形式のサフィックスが付いている。

01
00
段落0086(d)で説明されているように、異なる設計のサフィックスの使用は、AIを区別するためのものである。サフィックス設計は、AAB技術を使用した結果として生じるもう1つの使用法である。
以下の図表27は、ビットサイズに従って分類された3つの3値コード単位の処理ユニットの27個の固有データコード値と、CAABCT0及びCAABCT1のテーブルコード値とのクロスマッピングの統合図を示す。
図表27
データコード値(図表24)とCAABCT0及びCAABCT1のテーブルコード値とのクロスマッピング
Figure 2019528027
以上の統計データを比較すると、上記2つのCAABCTを使用してランダムデータセットを圧縮することができるか否かは必ずしも明らかではない。マッピングテーブルはランダムデータセット全体には適用されず、その中のいずれか1つのCAABCTに対応し、ビット使用数の点で、より優れて適切なスーパー処理ユニットに適用されるためである。ランダムデータセットを不均一なデータ割り当てのスーパー処理ユニットに分割した後のデータコード値の割り当てパターンは未だ確かめられていない。どのCAABCTを選択していずれか特定のスーパー処理ユニットをエンコーディングすることは、実際のエンコーディング結果に基づくものであり、グループ0及びグループ1のデータコード値の数を数えることによることではない。それぞれのエンコーディングを実際に実現することによって生じるビット使用結果は、どのCAABCTが特定のスーパー処理ユニットに最も適しているかについてのインジケータであることが分かる。
各実施形態によれば、例えば、1つのCAABCTを使用することによって、上記技術に対する強化が可能である。前記CAABCTは、ランダムデータセットの特徴である27個の固有データコード値割り当てを有し、ビット使用数の点で、完全に同じである。そのようなCAABCTの1つがCAABCT1である。CAABCT1を再割り当てしてクロスマッピングに用いられる目的は、図表28に示すとおりである。
図表28
データコード値(図表24)とCAABCT2及びCAABCT1のテーブルコード値とのクロスマッピング
Figure 2019528027
CAABCT2は、CAABCT1と完全に同じであり、その違いは(a)と(b)である。
(a)CAABCT2は、0ヘッドデザインを用いてその6つのトリオ(即ち0、10、11)に用いることに対して、CAABCT1は1ヘッドデザイン(即ち1、01、00)を用いてそれらのそれぞれのトリオサフィックスに用いる。
(b)クロスマッピングに用いられる場合、CAABCT2の固有テーブルコード値は、全く同じビットサイズを有するランダムデータセットの固有データコード値にマッピングされ、即ち、3ビットサイズのテーブルコード値は3ビットサイズのデータコード値にマッピングされ、4ビットサイズのテーブルコード値が4ビットサイズのデータコード値にマッピングされ、5ビットサイズのテーブルコード値が5ビットサイズのデータコード値にマッピングされ、6ビットサイズのテーブルコード値が6ビットサイズのデータコード値にマッピングされる。このような方法でマッピングすると、エンコーディング後も同じビットで使用され、ランダムデータセットのデータサイズは圧縮も拡張もされない。
ランダムデータセットを圧縮するためのエンコーディング及びデコーディングの場合、以下に記載のように、スーパー処理ユニットを用いる際に導入された技術をわずかに調整してもよい。まず、ランダムデータセットをエンコーディングする場合、エンコーディングのためにCAABCT2でランダムデータセットのデータコード値をクロスマッピングしてもよい。即ち、0ヘッドデザインの3値コード単位の定義を用いてランダムデータセットを1つずつ読み取り、このような連続した読み取りユニットのうちの3つが、1つの処理ユニットを形成する。それによってCAABCT2と共にクロスマッピングに用いてエンコーディングを行う。上述したように、処理ユニット及びスーパー処理ユニットは、その後1つずつエンコーディングを行う。これは、未エンコーディングのコード単位の他、即ち残された1つの処理ユニットのサイズを構成せず且つエンコーディングされることが不能な少量のコードビットを除く、全てのランダムデータセットに対する全ての変換であり、それによってCAABCT2に基づく変換コードを生成する。この変換されたデータセットを圧縮し(現在CAABCT2でクロスマッピング変換を行った後、このデータセットはこれまでのようにランダムではない)、CAABCT1は、変換データセットから細分化されたスーパー処理ユニットに用いられ、前記スーパー処理ユニットは選定された終了条件を持ち、例えば、オリジナルコード値000は、現在010、CAABCT2の対応するテーブルコード値に変換される。従って、処理中のスーパー処理ユニットは、どこにあってもCAABCT1でエンコーディングすることができ、それによって同一スーパー処理ユニットの変換コードよりもビット使用数がより少ないエンコーディングコードを生成することができ、前記エンコーディングコードはCAABCT1でエンコーディングを行ってもよい。終了条件には、エンコーディングに用いられるCAABCTテーブルコード値010が含まれるため、CAABCT1でそれをエンコーディングすれば、010を011にエンコーディングする。従って、CAABCT2及びCAABCT1でエンコーディングして得られたエンコーディングコードは、オリジナルデータコード値000が010に変換され、且つその後011に変換される。CAABCT1によってスーパー処理ユニットのCAABCT2のエンコーディングコードのサイズを縮小することができなければ、それらのスーパー処理ユニットのCAABCT2のエンコーディングコード値は、その後、影響されないようにされる。従って、オリジナルデータコード値000は010を維持する。従って、これはCAABCT2コードとCAABCT1コードを区別するためのAI基準の1つとしても使用される。CAABCT2の6つのトリオのサフィックスはCAABCT1のサフィックスとは異なるため、従って数多くのサフィックスインジケータもAIを区別するために用いられる。段落0086に記載されている全てのAI操作もCAABCT1コードとCAABCT2コードを区別するためにも使用されてもよい。AIを区別するためにそれをオリジナルデータコード値に変換する必要はないため、デコーディングプロセスは問題なく成功するはずである。そのため、CAABCT2を用いて行われた全てのマッピングコード及びその後またCAABCT1を用いて選択的クロスマッピングを行って得られたエンコーディングコードをデコーディングするために、AI技術を使用し、それによって段落0086に記載のCAABCT1コードを含むスーパー処理ユニットにAI区別を行ってもよい。そして、CAABCT1コードを含むスーパー処理ユニットが確認された後、その対応するCAABCT1コードは、CAABCT2コードにデコーディングされる。全てのCAABCT1コードがCAABCT2コードに変換された後、CAABCT2のコードテーブルを用いてCAABCT2コードからオリジナルデータコード値へのワンタイムデコーディングを実現することができる。このような方法で、いつでもCAABCT1を使用することによって圧縮することができるコード値を有するスーパー処理ユニットがあれば、このようなスーパー処理ユニットを含むランダムデータセットを圧縮することができると断言してもよい。あるいは、CAABCT1の代わりにCAABCT0を用いてCAABCT2とのクロスマッピングを行い、又は適切な場合に、CAABCT0及びCAABCT1を互換的に用いてCAABCT2とのクロスマッピングを行ってもよい。これらの場合、どのマッピングコードテーブルが任意の特定のスーパー処理ユニットに使用されるかを決定するために、AI基準を適切に調整し又は追加する必要がある。以下の図表29は、全ての3つのCAABCTを用いて完了されたクロスマッピングを示す。
図表29
データコード値(図表24)とCAABCT2、CAABCT0及びCAABCT1のテーブルコード値とのクロスマッピング
Figure 2019528027
スーパー処理ユニットを分割するための終了条件に対する調整又は微調整が可能であるため、例えば、スーパー処理ユニットの固定サイズを27個のデータコード値からそれより小さいもの又はもっと大きいものに変更し、又は使用する終了値を000から別のコード値へ変更し、又は固定サイズを有するスーパー処理ユニットの終了値を使用する代わりに、終了値のみを用いてスーパー処理ユニットのサイズを決定する(このように、スーパー処理ユニットは様々なサイズを有してもよい)。あるいは、3つではなく4つの6値コード単位を用いて処理ユニットとする等、他のサイズのコード単位(6値コード単位とそれに設計されたCAABCTセットを使用する等)又は他のサイズの処理ユニットを使用してもよい。CHANフレームワークでは、このような変形は無限に続く可能性があるため、ランダムデータセットが圧縮されることは決してないとは言えない。逆により確実である。ところで、段落0062から段落0066に記載されているビット0:ビット1の比率を変更する技術は、まずランダムデータセットの頻度分布を不均一なデータセットに変更するために用いられ、前記データセットは、その後不均一なデータ割り当てを利用した技術によって圧縮されるために適用する。
上記進歩性を有する発明は、エンコーディング及びデコーディングがランダムであるか否かに関わらないデジタルデータセットに用いられる多くの新規な技術を開示し、暗号化/復号及び圧縮/解凍に用いられる。設計者、実施者及びユーザに期待されている目的を達成するためにこれらの技術を組み合わせてもよい。CHANフレームワークの下で導入された構造的特徴及びエンコーディング技術を利用するために、また他の技術を設計し且つ実現してもよい。
単独で、又は上記で紹介した技術と組み合わせて使用することができ、より簡単で、有用な別の技術がある。これは、異なるサイズの動的処理ユニットと共に人工知能技術を用いてコード値定義を動的に調整することによるエンコーディング及びデコーディングである。スーパー処理ユニットの上記説明において、スーパー処理ユニットのサイズを決定するために終了値のみを用いると、スーパー処理ユニットのサイズが異なるようになる。即ちデジタルデータセットの異なる位置で、異なる数の処理ユニットによってスーパー処理ユニットを構成する。そのような割り当てに対して適切な終了条件を設計することによって、異なる数のコード単位を処理ユニットとして動的にエンコーディング及びデコーディングすることもできる。エンコーディング及びデコーディングの過程で、サイズ及び処理中のコード値の定義に対する動的な調整も可能である。
段落0096に記載された技術について、即ちデータ割り当てを変更する状況に、異なるサイズの処理ユニット(本実施例において、3つのコード単位及び4つのコード単位の処理ユニットが説明のために使用される)を動的に使用する技術、前記技術は以下の図表30にリストされている0ヘッドデザインの3値コード単位の設計を用いる。
図表30
1つの3値コード単位の処理ユニット
PU PU
値番号 コード値
値1(v1) 0
値2(v2) 10
値3(v3) 11
従って、処理ユニットは、処理中の任意点でのデータ割り当ての変化する状況に応じて、0ヘッドデザインの3つ又は4つの3値コード単位で構成される。この新しい技術は、ランダムであろうとなかろうと、あらゆるタイプのデータ割り当てのデータエンコーディング及びデコーディング処理を豊かにする。
この技術を設計することは、終了条件という概念を使う結果である。考えられている終了条件は、処理ユニットの終了点(ここでは0ヘッドデザインの3値コード単位が用いられる)が、3値コード単位の3つの固有コード値が全て現われたか否かに基づくことである。論理的な推論により、このような終了条件の定義に基づく場合、処理ユニットは、明らかに3値コード単位を備える3つのコード単位のサイズより小さいことはない。従って、全ての3つの固有コード値が3回連続して出現した場合、処理ユニットのサイズは3つのコード単位になる。そうでなければ、処理ユニットのサイズが3つのコード単位を超えるべきである。それは4つ、5つ又は6つ等になってもよい。そのため、終了条件(終了条件は、即ちMax3 5ビットコード単位における全ての3つの固有コード値が現れる)が満たされていない場合、簡単に4つのコード単位を用いて別の終了点としてもよい。つまり、0ヘッドデザインの3値コード単位の定義を用いて3つの連続したコード値を読み取る場合、全ての3つの固有データコード値(即ち図表30にリストされているv1、v2及びv3)を取得することができず、終了点は読み取られた4番目のコード値に終了し、このような状況で、全ての3つの固有コード値が現れるか否かに関わらず、4つのコード単位が処理ユニットになる。3つの連続したコード値を読み取ることによって、全ての3つの固有データコード値が現れる場合、終了点は読み取られた3番目のコード値にあり、且つ処理ユニットは3つのコード単位から構成される。それで、処理ユニットのサイズは、そのコード単位の数に定められ、前記数は、処理中のデジタルデータセットのデータ割り当ての状況に応じて動的に変化する。データ割り当ての状況によれば、処理ユニットが4つのコード単位のサイズであるべき場合、これに関して2つのシナリオがある。
(i)全ての3つの固有コード値が存在する。
(ii)全ての3つの固有コード値が存在するわけではない。
従って、3つのシナリオがある。
(a)3つのコード単位を備える処理ユニットであって、その中に全ての3つの固有コード値が存在する。
(b)4つのコード単位を備える処理ユニットであって、その中に、全ての3つの固有コード値が存在する。
(c)4つのコード単位を備える処理ユニットであって、その中に全ての3つの固有コード値が存在するわけではない。
従って、図表31に示すように、分類コードをこれら3つのシナリオに割り当てることができる。
図表31a
段落0098に記載の3つのシナリオのシナリオ分類コード(CHANコードの一部)
シナリオ分類コード シナリオ
0 (a)
10 (b)
11 (c)
これら3つのシナリオの頻度分布に応じて、最も高い頻度を有するシナリオを最も少ない数の2進数ビットを使用するように調整してもよい。従って、シナリオ(c)は最も高い頻度を有すれば、シナリオ分類コードのシナリオ分布を図表31bに示すように調整してもよい。
図表31b
段落0098に記載の3つのシナリオのシナリオ分類コード(CHANコードの一部)
シナリオ分類コード シナリオ
0 (c)
10 (b)
11 (a)
そのため、デジタルデータ入力ファイル全体のエンコーディング及びデコーディングについて、まずデジタルデータファイル全体を解析し、頻度が最も高いシナリオを見つけて、それを割り当てて最も短い分類コードを使用し且つ他のシナリオを下にプッシュする。従って、デコーディングが正しく行われるように、シナリオデザインインジケータ(どのシナリオ分類スキーマ又はデザインを使用するかを示す)をヘッダーに含める必要がある。
本発明の実施例において、CHANコードの分類コードをどのように使用するかを論じた後、CHANコーディングの別の技術(即ち動的コード調整)を使用することによって、CHANコードの内容コードをどのように設計し且つ操作するかが見られる。シナリオ(a)の場合、シナリオ分類コード+ランク及び位置コードというエンコーディングを使用することができる。
シナリオ(a)は、3つのコード単位の処理ユニットであるため、その中に全ての3つの固有コード値が存在し、2ビット又は3ビット[CHANコーディングのAAB技術を使用して、例えばここでの実際の値範囲は6であり、即ちシナリオ(a)の終了条件を満たす3つのコード単位のうちの6つの固有処理ユニットを有し、下限値範囲は4値に相当する2ビットであり、上限値範囲は8値に相当する3ビットである]を用い、ランク及び位置コードが全ての6つの処理ユニットの可能な組み合わせを被覆する可能であるため、そのうち3つのコード単位はそのランク及び位置に区別される3つの固有コード値を備え、次の図表32に示すとおりである。
図表32
3つの固有コード値を持つ3つのコード単位の処理ユニットに対するランク及び位置の面での6つの可能な組み合わせのRPコード割り当て
RPコード ビット +/− ランク及び位置の面での組み合わせ ビット
00 2+2 −1 v1v2v3 5
01 2+2 −1 v1v3v2 5
100 2+3 v2v1v3 5
101 2+3 v2v3v1 5
110 2+3 v3v1v2 5
111 2+3 v3v2v1 5
シナリオ(b)及び(c)のCHANコードの内容コードに対してCHANコーディングを行うために、これらのシナリオの終了条件によって決定されたように、読み取られた4番目のデータコード値を使用してもよい。前記4番目のデータコード値、即ち終了値は、0ヘッドデザインの3値コード単位の定義に従って読み取られたのと全く同じようにオリジナルコードによって表され、即ちオリジナルコードを変更する必要がない。従って、シナリオ(b)と(c)の内容コード部分のエンコーディングには、それぞれ以下のステップが含まれる[シナリオ(a)は単独で処理されれば]。
(a)係るコード単位の定義を用いることによって4つの連続したデータコード値を読み取る。
(b)4番目のデータコード値を読み取ったとおりに書き込む。
(c)必要に応じてコード調整技術を用いて1番目のデータコード値を書き込む。
(d)必要に応じてコード調整技術を用いて2番目のデータコード値を書き込む。
(e)必要に応じてコード調整技術を用いて3番目のデータコード値を書き込む。及び
(f)ステップ(a)で読み取られた4つの連続したコード値をエンコーディンした後に、エンコーディングされていないコード単位の開始点に戻るまで、ステップ(a)にループバックする。
且つ適切な場合、上記ステップ(c)から(e)で述べたコード調整技術は、内容コードのランク及び位置のエンコーディング、内容コードの昇格及び内容コードの省略、内容コードの降格、並びに適切な場合の内容コードの復元を含む。
シナリオ(b)の場合、4番目のデータコード値は、3つのデータコード値:v1、v2又はv3のうちの1つであってもよい。そのため、シナリオ(b)において、サブシナリオは以下のとおりである。
図表33
シナリオ(b)における3つのサブシナリオ及びRPコーディング
Figure 2019528027
シナリオ(b)における3つのサブシナリオのそれぞれについて、また6つの可能な組み合わせがある。
これらのサブシナリオのそれぞれにランク及び位置エンコーディング技術を用い、図表33に示すように、それらのそれぞれの6つの可能な組み合わせに2ビット又は3ビットを用いる。
あるいは図表34に示すように、適切な状況でコード昇格及びコード省略技術を用いてもよい。
図表34a
シナリオ(b)における3つのサブシナリオ及びコード昇格並びにコード省略
Figure 2019528027
又は、4番目のコード値を配置した後に配置される値は、図表34bのように並べ替えることができる。
図表34b
シナリオ(b)における3つのサブシナリオ及びコード昇格並びにコード省略
Figure 2019528027
コード昇格及びコード省略という技術を使用する場合、一貫性を考慮すると、このような配置は段落0103に説明されるシナリオ(c)により適しているため、図表34bにおけるコード値の配置は、図表34aよりも優先される可能性がある。
上記シナリオ(b)のサブシナリオ(i)を採用することにより、ビット使用数を減らし、コード昇格は論理推定の結果である。例えば、シナリオ(b)は、読み取られた4つの連続したコード値に3つの固有コード値が全て現れなければならないシナリオであるため、図表33bに用いられたシナリオ分類コードと4番目のコード値(例えばv1)を配置した後、エンコーディングされたコードは、図表35に示すように変化する。
図表35
シナリオ分類と4番目のコード値のエンコーディング
シナリオ
(b)4番目のコード値 3番目のコード値 2番目のコード値 1番目のコード値
v1
10 0
そして残りの3つのコード値のエンコーディングコードは記入される。シナリオ(b)であるため、最初の3つのコード値、つまり1番目から3番目のコード値は、4番目のコード値と違わなければならない。シナリオ(b)に設計された終了条件を満たす4番目のコード値であるためである。従って、残りの3つのコード値はv2又はv3である。且つ選択肢は2つしかないため、これら2つの異なる値の出現を表すには、ビット0又はビット1のいずれか1ビットしか必要ない。もともとv2とv3はそれぞれ10と11で表される。そのため、これらのコード値は、ビット使用数を節約するために、それぞれ0と1を用いるように昇格される。これはコード昇格、CHANコーディング技術である。また、3番目と2番目のコード値が全てv2であれば、最初のコード値は、シナリオ(b)に対応して定義されているため、v3でなければならず、そうでなければシナリオ(b)の終了条件を満たすことができない。そのため、上記推論により、論理推定によってv3を省略してもよい。言及したCHANコーディングのコード昇格及びコード省略技術を用いて4つのコード単位から構成される処理ユニットにエンコーディングして得られたエンコーディングコード全体は、図表36に示すとおりである。
図表36
CHANコーディングのコード昇格及びコード省略を用いてエンコーディングを行う
(b)4番目のコード値 3番目のコード値 2番目のコード値 1番目のコード値
v1 v2 v2 v3
10 0 0 0 []
[コード昇格] [コード省略]
コード昇格及びコード省略技術を使用することにより、図表33においてランク及び位置コーディング技術を使用するのと同じビット使用結果(図表34a及び図表34bにリストされている2*2ビット+4*3ビット)が得られることが分かる。この2つの技術は、得られたビットパターンの配列にのみ異なる。
同様にシナリオ(c)の場合、4番目のデータコード値は、v1、v2又はv3という3つのデータコード値の1つであってもよい。従って、シナリオ(c)では、サブシナリオは図表37にリストされている。
図表37
シナリオ(c)の3つのサブシナリオ及びRPコーディング
Figure 2019528027
シナリオ(c)における3つのサブシナリオのそれぞれについて、また15種の可能な組み合わせがある。上記図表37に示すように、これらのサブシナリオのそれぞれにランク及び位置エンコーディング技術を使用することができ、図表35に示すように、それらのそれぞれの15種の可能な組み合わせに3ビット又は4ビットを使用する。
あるいは、必要に応じて、コード昇格、コード省略及びその他の形式のコード調整技術を使用することができる。図表38は、まず4番目のコード値を配置した後に、残りの3つのコード値を3番目のコード値、2番目のコード値、1番目のコード値の順にエンコーディングすることによるコード調整方法を示す。シナリオ(c)では、2つの固有コード値しか存在しないため、4番目のコード値は既に1つとする。そのため、残りの3つの位置は、4番目のコード値と同じである1つと残りの2つの固有コード値のうちの1つを書き込む必要がある。ただし、3つの選択肢に2つの選択があるため、ビット使用数を減らす時にその不確実性を排除するために、4番目のコード値以外のものを最初に決定することが最適である。そのため、残りの3つのコード値を直接エンコーディングするために、処理中のデジタルデータ入力内の処理ユニットの3番目位置のコード値をエンコーディングすることが好ましい選択であるかもしれない。これは、次々に2つ又はそれ以上の同じコード値を有する機会が2つの異なるコード値を有する機会より少ないということに基づく従来の仮定である。当然のことながら、処理中のデジタルデータ入力内の3つの固有コード値に頻度分布パターンに関する利用可能な情報が存在すれば、このような配置選択を調整してもよく、そのうち利用可能な情報が前記変更を保証できる。しかしながら、便宜上、図表38はまず4番目、1番目、2番目及び3番目という順に配置をアレンジする。
4番目のコード値がv3であれば、他の3つの位置の値はv1、v2又はv3のいずれか1つであってもよい。他のコード値の存在が知られていることが早ければ早いほど、コード昇格の技術を使用することによってより多くのビットが節約される。しかしながら、存在する2つのコード値のうちの1つはv1、v2及びv3という3つの値のいずれか1つであり、且つそのうちの1つはv3であってもよいため、v3の昇格は論理に合致する。即ち、まず11から0へ、次にv1をv2に、そしてv2をv3に降格させる。そして、他の1つのコード値が出現した場合、選択肢は既に出現している2つの固有コード値に限定される可能性がある。4番目のコード値は、ビット0のコード値のv1ランクを採用するため、出現する2番目の固有コード値はビット10のコード値を使用することができる。この論理を用いることにより、図表38は次のように生成される。
図表38
シナリオ(c)における3つのサブシナリオ及び1つのビット(ビット0)を用いるシナリオ分類コードのコード調整
Figure 2019528027
ここでシナリオ(c)では、コード昇格及びコード省略技術を使用してランク及び位置エンコーディング技術を使用することとほぼ同じであるビット使用結果(ここでコード昇格技術を使用し、明らかにわずかに優れている)を与えることが分かる。
上記結果から、別の観察結果は、エンコーディング後に拡張をもたらすそれらのコード値エントリは、より多くのv1コード値を有するエントリであるということである。そのため、データセットのデータ割り当てはビット1よりもビット0が多い場合、上記技術を使用してデジタルデータセットを読み取ってエンコーディングに用いるために、1ヘッドデザインをコード単位とする定義を使用するほうが最適である。3つの固有コード値は以下のようになる。

01
00
このようにして、ビット0は、v1になる代わりに、読み取り時にv2及びv3としてサンプリングされる。従って、明らかに上述したようにデジタルデータ入力の変化するデータ割り当てパターンに対応する処理ユニットのサイズに動的調整を行う技法を使用することは、エンコーディング中の動的コード調整のより高い柔軟性を可能にする。より重要なことは、データ解析段階では、シナリオ分類コードを有する3つのシナリオ(a)、(b)、(c)を整理して割り当てるための情報を収集することができ、それによって頻度の最も高いシナリオにビット数を最小にする。また、ビット0とビット1の頻度分布に応じて、コード単位の0ヘッドデザイン又は1ヘッドデザインを選択して使用される。また、段落0062及びその後に説明されたデータセットにおけるビット0とビット1の比率を変更する技術は、圧縮されて上記説明された他の技術と共に用いられる場合、ランダムセットに応用することができる。
図表32及び図表34bにおけるシナリオ(a)及び(b)のビット使用結果を検査することにより、処理ユニットに全ての3つの固有コード値が存在する場合、データ割り当てパターンは変化が少なく、且つ少ないビット使用数でこれらのパターンを示すため、RPコーディングを使用するか、コード昇格及びコード省略によるコード調整技術を使用するかに関わらず、エンコーディングを行うことがより容易である。従って、以下の終了条件を変更することによってさらに前に言及した設計を改善することができる。当該設計は異なる数のコード単位付きの処理ユニットを使用する。
使用されるどの処理ユニットも、v1、v2及びv3の全ての3つの固有コード値(即ち0、10、及び11)を含むべきである。
そのため、v1、v2及びv3の3つの固有コード値が現れるまで、それを5つのコード単位又は6つのコード単位(等)サイズの処理ユニットに置き換え、且つ終了点が当該コード単位に停止させることにより、前に検討したシナリオ(c)を解消し且つ代替しなければならない。前記コード単位は最後に現れる以下のトリオの固有コード値(v1、v2及びv3)を含む。そしてシナリオ分類コードは次のように変更される。
図表39a
最後の固有コード値の出現に基づくサイズが異なる処理ユニットのシナリオ分類コード(a)
シナリオ 処理ユニットのサイズ
分類
コード
0 3つの連続したコード単位(最後のコード単位のみがトリオにおける最後に現れる固有コード値(v1、v2及びv3)を持つ)
10 4つの連続したコード単位
110 5つの連続したコード単位
1110 6つの連続したコード単位
11110 等
図表39b
最後の固有コード値の出現に基づくサイズが異なる処理ユニットのシナリオ分類コード(b)
シナリオ 処理ユニットのサイズ
分類
コード
0 4つの連続したコード単位(最後のコード単位のみがトリオにおける最後に現れる固有コード値(v1、v2及びv3)を持つ。これらのシナリオにおける頻度分布が保証されれば、ビット使用数を最小化するためにここで交換する)
10 3つの連続したコード単位
110 5つの連続したコード単位
1110 6つの連続したコード単位
11110 等
上記シナリオ分類コードは全てビット0で終わる。そのように設計される場合、シナリオ分類コードはビット1で終わることはない。それ以外の場合、ビット1で終了するシナリオ分類コードはシナリオ(c)と類似し、シナリオ(c)の処理ユニットの数は固定であり、前記処理ユニットは前記点まで1つ又は2つの固有値しか含まない。即ちシナリオ(c)の代わりに、4コード単位は3つ未満の固有値を含み、5コード単位は3つ未満の固有値を含み、6コード単位又は7コード単位も、以下同様である。シナリオコードが有する2進数ビットに依存する。
従って、シナリオ(a)と(b)のビット使用図表は、次のように修正できる。
図表40
ランク及び位置に関する3つの固有コード値の6つの可能な組み合わせに対するRPコード割り当て
Figure 2019528027
図表41
シナリオ(b)の3つのサブシナリオ及びコード昇格とコード省略
Figure 2019528027
図表40から分かるように、シナリオ(a)では、1つのビット0が使用されており、現在は、シナリオ3コード単位に改名されているため、エンコーディング結果は、このシナリオに対して、さらに優れる。図表41におけるシナリオ4コード単位のビット使用結果は、以前と同じにすぎない。しかしながら、多くのサイズ(あるいは最悪の場合で、さらには無限大である)の異なる処理ユニットが存在している可能性があることを考慮すると、プログラミングが発生可能な数限りないこのシナリオに適応するようにさせるために、もっと簡単な論理が存在しなければならない。従って、そのようなシナリオを全てエンコーディングするための論理は、次のように修正できる。
(a)関連するコード単位の定義を使用して、記入された3つの連続したデータコード値を読み取り、且つ終了条件が満たされているか否かを判定する。終了条件は、これまでに読み取られた連続したデータコード値であり、それは、設計されたコード単位に従った全ての固有データコード値を含む[即ち、この場合、これまでに読み取られたコード単位には3つの固有コード値が全て含まれていない時に、ステップ(b)に進む;そうでない場合は、ステップ(c)に進む]。
(b)別の1つのデータコード値を読み取り[即ち、これまでに読み取られたコード単位には、3つの固有コード値が全て含まれていない時に]、且つ読み取られたコード単位には、3つの固有コード値[即ち、この場合の終了条件]が全て含まれるまで終了条件が満たされているか否かを毎回評価する。終了条件が満たされた場合、ステップ(c)に進む。
(c)このように読み取られたデータコード値は、全ての固有データコード値[3値コード単位の場合には、3である]を含む時に、このように読み取られたデータコード値の数を計算し、且つ対応するシナリオによる分類コード値を決定して書き込む。次に、最後に読み取られたデータコード値を、読み取ると完全に同じように書き込む。
(d)存在する他の2つの固有コード値のうちどちら[3値コード単位の場合、ビット0は、ステップ(c)で読み書きされた最後の1つの固有データコード値を控除して残った2つの固有データコード値における上位ランクを有する固有データコード値に用いられ、且つビット1は、下位ランクを有する1つのコード値に用いられる。逆もまた同様であり、適切な場合では、設計によって決まる]が、第1位置から読み取られた1つのコード値を先頭から最後の位置の前のコード値に書き込む[即ち、このステップ(d)で述べたビット0又はビット1を使用してそれを置換又はエンコーディングする]までかを識別するために、1ビットコードを使用して書き込む。適切な場合では、内容コード調整のための技術[適切な場合では、内容コードのランク、位置コーディング、内容コードの昇格、内容コードの省略、内容コードの降格及び内容コードの復元を含む]を使用する。
(e)処理中の処理ユニットのためにエンコーディングする。即ち、ステップ(a)で読み取られた最後の1つの位置の前までの1つのデータコードをエンコーディングした後、エンコーディングされていないコード単位の始まる点に達するまでステップ(a)にループバックする。
上記で修正されたエンコーディングステップによれば、シナリオ3コード単位から始まるビット使用図表を以下のように修正できる。
図表42
シナリオ3コード単位のエンコーディングとビット使用
Figure 2019528027
ここで、[]は、論理的な推論によるコード省略を表す。また、それは、第1位置データコード値をエンコーディングするためのビット0とビット1に使用され、適切な場合では、コード昇格を使用するコード調整である。
図表43
シナリオ4コード単位のエンコーディングとビット使用
Figure 2019528027
上記図表から分かるように、シナリオ3コード単位は、シナリオ分類コードとして10を使用して、シナリオ4コード単位は、シナリオ分類コードとして0を使用する場合は、全てのエントリは、いずれも均一な結果又はビット使用数が節約される結果を有する。
シナリオ5のコード単位のエンコーディングとビット使用は、長くて複雑であるため、リストに載られることが不能である。しかしながら、エンコーディングは同じ論理に従うので、ビット使用結果は以下のように簡単に説明することができる。
シナリオ4コード単位は、議論の基礎としてシナリオコード10を使用している。18個のエンコーディングされたエントリについては、ビット使用数は6ビットが減少している(即ち、平均して節約された10ビットから損失された4ビットを引く)。シナリオ5のコード単位がシナリオコード110を使用する場合、それは、各エンコーディングされたエントリに使用されるシナリオコードに1ビットを余分に使用することを意味しているが、それは、別の付加のデータコード値をエンコーディングする機会を有する。
0ヘッドデザインによる3値コード単位の3つの固有データコード値の図表44における頻度分布は、優先権主張の下で実行されている前記PCT出願中に言及した自動プログラムにより生成されるものである。
図表44
80000個のランダムビットを使用した3値コード単位の頻度分布
0:26536
10:13156
11:13576
v2及びv3の頻度カウントは、50%をわずかに上回り、即ち約半分であり、且つv1は、50%をわずかに下回り、約半分であることが分かる。従って、データコード値が現れる確率の約半分はv1であり、残りの半分は、25%がv2であり、25%がv3である。従って、v1が第5データコード値である場合、再び現れる付加のデータコード値はv2かv3のどちらかでなければならないので、1ビットが節約される確率は半分である。そして、v2又はv3が第5データコード値である場合は、v1又はv3は、v2が第5データコード値である時に、それに伴って現れ、あるいは、v1又はv2は、v3が第5データコード値である時に、それに伴って現れ、この場合には、1ビットを節約できる確率は半分の半分である。従って、平均して、1ビットが節約される確率は、約3/4であり、即ち3/4ビットが節約される。同様に、第1値、第2値及び第3値が同じ固有データコード値である場合、論理的な推論によって、第4値が導き出され得る。従って、これらの場合に使用されるビット使用は、2ビット又は1ビットである。従って、全体的に言えば、シナリオの数が4つのコード単位から5つ以上のコード単位まで増えても、多くの欠落はない。シナリオ4コード単位が10(2ビット)を使用する時に、エンコーディングされた18個のエントリで6ビットの使用数を平均して節約するという事実、及びシナリオの数が3つのコード単位から増加し続ける時に、これらのシナリオに使用される80000個のランダムビットの頻度分布が減少しているという事実を考えると、ランダムデータセット全体が全体的なビット使用数を節約できる可能性は非常に高い。ビット使用数を節約する最良の結果が得られるように、最も頻繁に使用される最初の3つのシナリオの分布をさらに再調整してみることができる。
(a)、(b)及び(c)の順序に従って、2ビット(10)、2ビット(11)及び1ビット(ビット0)を有するシナリオコードを割り当てて配置する図表42[即ち、シナリオ3コード単位又は(a)]、図表43[即ち、シナリオ4コード単位又は(b)]及び図表38[即ち、シナリオ(c)]を再検討することにより、シナリオ(a)では、6つのエンコーディングされたエントリのうち2ビットが節約され(2ビットを節約して0ビットを使用する)、シナリオ(b)では、18個のエントリのうち6ビットが節約され(10ビットを節約して4ビットを損失する)、且つ45個のエントリのうち3ビットが節約される(即ち、20ビットを節約して17ビットを損失する)ことが分かる。シナリオ(a)、(b)、(c)の3つの全ては、ビット使用数を節約しているようである。しかしながら、その結果は、これらの3つのシナリオの各々における各エンコーディングされたエントリの頻度分布に依然として依存している。しかしながら、80000個のランダムビットを使用する3つのシナリオの図表45における頻度分布は、優先権主張の下で実行されている前記PCT出願にリストされた自動プログラムによって生成される。
このようにして作成された図表45は、以下のようにリストされる。
図表45
80000個のランダムビットを使用したシナリオの頻度分布
状況 10000
全部:8449
cu3:1606
cu4:1578
cu5:1292
cu6:953
cu7:774
cu8:575
cu9:422
cu10:311
cu11:238
cu12:191
cu13:143
cu14:94
cu15:56
cu16:49
cu17:42
cu18:33
cu19:18
cu20:16
cu21:6
cu22:13
cu23:7
cu24:7
cu25:10
cu26:4
cu27:1
cu28:3
cu29:2
cu30:1
cu31:2
cu32:0
cu33:0
cu34:0
cu35:0
cu36:0
cu37:0
cu38:1
残り:1
上記図表45から分かるように、0ヘッドデザインによる3値コード単位を使用してランダムに生成された80000ビットを読み取る時に、使用終了条件、即ち3つの固有データコード値が処理ユニットに存在すべき終了条件では、最後の固有データコード値(終了値)が現れると、この80000個のランダムビットにより、3つのコード単位から38個のコード単位までのサイズの異なる処理ユニットが生成され、残りが未エンコーディングコード単位である。3から38までのコード単位のサイズの異なるこれらの処理ユニットは、図表45にリストされており、リストされているのは、生成された例の1つであり、80000個のランダムビットにおけるそれらの出現頻度を示している。
処理ユニットの頻度は、一般に、処理ユニットのサイズの増加につれて減少し、且つ3つのコード単位から20個のコード単位までかなり安定していることが分かる。8449個の処理ユニットでは、シナリオ3コード単位又は(a)及び4つのコード単位又は(b)の頻度は、それぞれ1606及び1578である。従って、シナリオ(c)の頻度は、8449−(1606+1578=3184又は37.68%)=5265又は62.32%である。
80000個のランダムビットのデータセットから生成された上記情報を考慮すると、エンコーディング設計に対して別の改善を行うことができる。例えば、データセットでは、ビット0の比率ではなく、ビット1の比率を上げたい場合である。図表46におけるシナリオ(a)、(b)及び(c)について、シナリオ分類コード(又はシナリオコードと略称される)として以下のコードを使用することができる。
図表46
シナリオ(a)、(b)、(c)のシナリオコード割り当て
シナリオコード シナリオ %
1 (c) 62.32
01 (a) 19.01
00 (b) 18.67
シナリオ(c)が処理ユニットの大部分を占めているので、最短のシナリオコードビット1が与えられるべきであり、それはビット1の比率を増加させることを意図しているので、シナリオコードの1ヘッドデザインが採用される。同じ理由で、シナリオ(a)とシナリオ(b)には、シナリオコードビット01とシナリオコードビット00がそれぞれ割り当てられる。
他の改善は、2つの同じデータコード値が互いに隣接していることが存在する確率は少ないと仮定した場合、反対の位置配置、即ち第4、第3、第2、及び第1の反対の位置順序でエンコーディングされたデータコードを配置することである。これは、シナリオ(c)に有利であり、第4データコード値に加えて次の固有データコード値の出現確率を高める。さらに重要なことに、さらに分析した結果、エンコーディングされたデータコードは、相対位置の反対配置に従って、データコードの並べ替えにより、別の特性又は特徴(前記特性は、最後の1つのデータコード値が最後の前の1つのデータコード値と異なっているか否か)を形成でき、ビットを節約して格納する際に十分に利用されるために、前記特性又は特徴を圧縮できることを見出した。前記特徴は、終了条件の設計に関連している。簡単にするために、まず、他の同様の終了条件を使用して説明することができる。ここで、終了条件は、3つのコード単位で停止され、データコード値は、2つのグループ又は2つのクラスのみに分割され、1つは、3値コード単位の全ての固有データコード値を有する3コード単位であり、もう1つは、全ての固有データコード値を有していない3コード単位である。従って、これは、第1クラスには、3つの固有コード値があり、且つ第2クラスには、2つの固有コード値があり、ここで1つの固有コード値が欠落していることを意味している。
従って、図表45の結果によると、これらの2つのクラスは次の頻度を有している(図表47にリストされているとおり)。
図表47
80000ビットのランダムデータセットにおける2つのクラスの処理ユニットの頻度分布:1つのビットは、全ての3つの固有データコード値を有しており(クラスA)、もう1つのビットは、3つ未満の固有データコード値(クラスB)を有している。
クラス 頻度 %
A 1606 19
B 6843 81
合計 8449 100
クラスBは、圧倒的多数のデータコード値を有している。しかしながら、これらの処理ユニットは、この特徴に従って分割され、この特徴は、相対位置に対するデータコード値の反対の配置に関連する。これらのデータコード値を逆に配置するには、スキーマ及び設計の1つは、まず第3データコード値を配置し、次に第2データコード値を配置し、その後第1データコード値を配置することである。従って、全ての3つの固有データコード値を有している処理ユニットについては、第3データコード値と第2データコード値が異なる必要がある。全ての3つの固有データコード値を有していない処理ユニットについては、第3データコード値と第2データコード値が同じでも異なってもよい。この特徴を別の分類基準として使用すると、ビットストレージを節約する点でよりよい結果が得られる可能性がある。従って、シナリオコードを同様に対応して割り当てることができる。従って、サブシナリオコードのビット1を第3データコード値と第2データコード値が同じ処理ユニットに割り当てることができ、ビット0を第3データコード値と第2データコード値が異なる処理ユニットに割り当てることができる。ここでのシナリオクラス0については、追加のサブシナリオコードビットを割り当てることができ、あるいはCHANコーディングの別の新規特徴を使用して、そのようなサブシナリオコードビットと内容コードビットとを組み合わせることができる。前記新規特徴は、事後分類の使用又はCHANコードの内容コード内での事後分類コードの配置である。以下の図表48にリストされるように、このCHANコーディングのエンコーディング技術は、図表47における終了条件を使用して3つの3値コード単位の処理ユニットにおける実際のエンコーディングを使用することにより、よりよく説明される。
図表48
シナリオクラス0とシナリオクラス1に割り当てられたシナリオコード:エンコーディングとビット使用及びビット1/ビット0の変化に伴って変わる。
Figure 2019528027
Figure 2019528027
Figure 2019528027
上記から、結果が非常に近いことが分かる。図表48におけるシナリオコード1が割り当てられたエンコーディング処理ユニットの論理は以下のとおりである。
(a)デジタルデータ入力からデータコード値を読み取った後、及び処理中の処理ユニットにおけるデータ割り当ての性質を決定した後、処理ユニットが第3データコード値と第2データコード値が同じクラスに属する場合、シナリオコードビット1を書き込む。
(b)第3データコード値をそのまま書き込む。
(c)第2データコード値を論理により省略する。第2データコード値は第3データコード値と同じであるので、論理により省略することができる。
(d)コード単位の設計により読み取られた元のデータコード値を使用して第1データコード値を書き込む。処理ユニットが全ての3つの固有データコード値を有していないものであるので、それは1つ又は2つのデータコード値のみを有することができる。1つのデータコード値は既に第3値として現れているが、3つの選択肢がある。従って、第1位置の値は直接読み取り及び書き込むことしかできない(又は、第3位置にあるコード値がビット0に上げられ、他の2つの残りの値は、それらの相対的な順位に従って、ビット10又はビット11に調整され、その後、第1位置の値はこの調整されたコードを使用する)。
図表48におけるシナリオコード0が割り当てられた処理ユニットは以下のようにエンコーディングされる。
(i)デジタルデータ入力からデータコード値を読み取った後、及び処理中の処理ユニットのデータ割り当ての性質を決定した後、処理ユニットが第3データコード値と第2データコード値が同じではなく且つ全ての固有データコード値が存在するクラスに属する場合は、それにシナリオコードビット00を書き込む。処理ユニットが第3データコード値と第2データコード値が同じではないが、全ての固有データコード値が存在していないクラスに属する場合は、それにシナリオコードビット01を書き込む。
(ii)第3データコード値をそのまま書き込む。
(iii)以下のエンコーディング論理を使用して、シナリオコード00を有する処理ユニットに、第2データコード値を書き込む。それは全ての固有データコード値を有し且つ1つのデータコード値が既に第3データコード値として現れた時に、依然として2つの選択肢がある。従って、どちらが第2データコード値として現れるかを示すために、1ビットを使用する(小さい値にはビット0、大きい値にはビット1を使用する。ここで、適切な場合には、0ヘッドデザインでは、v1が最小値であり、v3が最大値であるように設計することができる)。又は、次のようなエンコーディング論理を使用して、シナリオコード01を有する処理ユニットに、第2データコード値を書き込む。全ての固有データコード値を有しなく且つ1つのデータコード値が第3データコード値として現れた時に、依然として2つの選択肢しかない(2つの固有値はまだ存在していない)。ここでは、シナリオクラス0が第3データコード値と第2データコード値が同じでないクラスとして定義されているため、1ビットを使用して、どちらが第2データコードとして現れるかを示す(ビット0は小さい値v1に使用され、ビット1は大きい値v3に使用される)。
(iv)シナリオコード00が割り当てられた処理ユニットについては、第1データコード値を省略することができる。シナリオコード01が割り当てられた処理ユニットについては、次のエンコーディング論理を使用して、第1データコード値をエンコーディングして書き込むことができる。異なる2つのデータコード値が既に第3位置と第2位置に出現した時に、シナリオクラス01には全ての3つの固有データコード値がない。つまり、第1位置におけるデータコード値は、第3位置と第2位置における2つの値のうち1つでなければならない。従って、別のビットを使用して、第1位置データコード値をエンコーディングして書き込む(ビット0は小さい値v1に使用され、ビット1は大きい値v3に使用される)。
一形態での事後分類の使用は、ビットストレージを少しずつさらに減らすのに寄与する。この例では、事後分類コードの配置は2つの方法で完了することができる。
(a)シナリオコード00及び01が割り当てられた処理ユニットについては、第2ビットは、クラスA(全ての固有データコード値を有するクラス)又はクラスB(全ての固有データコード値を有しないクラス)のどちらに属するかを区別するために使用される。シナリオコードの第2ビットは、次の内容コードを組み合わせることで省略することができる。エンコーディングクラスAにおける第2データコード値に使用されるビットとクラスBにおける第1データコード値に使用されるビットとを組み合わせる。これらのエンコーディングコードを表現するための組み合わせは6つあるからである。図表49の以下ので、これら6つの組み合わせのエンコーディングコード値を書き込んだ後に、2ビット又は3ビットが使用される。
図表49
内容コードと組み合わせたシナリオコード
00は、シナリオコード0の下のクラスA処理ユニットに使用され、ここで、ビット0は、第2データコード値に割り当てられる。
01は、シナリオコード0の下のクラスA処理ユニットに使用され、ここで、ビット1は、第2データコード値に割り当てられる。
100は、シナリオコード0の下のクラスB処理ユニットに使用され、ここで、ビット0は、第2データコード値に割り当てられ、且つビット0は、第1データコード値に割り当てられる。
101は、シナリオコード0の下のクラスB処理ユニットに使用され、ここで、ビット0は、第2データコード値に割り当てられ、且つビット1は、第1データコード値に割り当てられる。
110は、シナリオコード0の下のクラスB処理ユニットに使用され、ここで、ビット1は第2データコード値に割り当てられ、且つビット0は、第1データコード値に割り当てられる。
111は、シナリオコード0の下のクラスB処理ユニットに使用され、ここで、ビット1は、第2データコード値に割り当てられ、且つビット0は、第1データコード値に割り当てられる。
上記割り当てを使用することにより、シナリオコード00及び01の第2ビットを削除することができ、これらの処理ユニットに対して書き込まれた第1エンコーディングコードは、シナリオコード0であり、その直後に書き込まれた第3データコード値は、読み取ったものと同じであり、これに続いて、2〜3ビットの組み合わせを使用した上記シナリオコードと内容コードを書き込む。ビットの使用に関しては、ビットの使用結果は、図表48で作成された結果とまったく同じである。
(b)しかし、次の論理を使用して、シナリオコードと内容コードを組み合わせる別の新しい方法がさらにある。
(i)シナリオコード0、及びシナリオコード0の下のそれらの処理ユニットに使用される第3データコード値と第2データコード値をエンコーディングして書き込む時に(その第2ビットは取り消されるように設計される)、終了コードを作成することができる。該終了コードは、シナリオコード0の第2ビットとシナリオコード0の下のクラスBの第1データコード値の内容コードとを組み合わせることにより形成されるものであり、次のように図表50に示すことができる。
図表50
事後ハイブリッド分類と内容コードを終了コードとする。
1は、シナリオコード0の下でクラスB処理ユニットを表す既存コードに使用される。ここで、第1データコード値は、ビット0である。
01は、シナリオコード0の下でクラスB処理ユニットを表す既存コードに使用される。ここで、第1データコード値は、ビット1である。
00は、シナリオコード0の下でクラスA処理ユニットを表す既存コードに使用される。ここで、第3データコード値と第2データコード値がエンコーディングされて書き込まれた後に、終了する際に処理は行われない。
そのような終了コードは、元のデジタルデータ情報を正しく復元するためにデコーディング時に使用されるべきである。
これは、データ割り当てに関与する処理ユニットの頻度分布に依存している。上記技術は、よりよいビットストレージ節約のために使用され得る。80000ビットの例で使用される前記ランダムデータセットについては、クラスB処理ユニットの頻度は、処理ユニットの総数の中で(図表45にリストされているように8449)6843である。この6843の約半分は、シナリオ1に使用され、それらの半分は第1データコード値を有し、ビット0は、エンコーディングに使用され、この値は、現在終了コードのビット1により表され、シナリオコード01の第2ビットは取り除かれる。従って、6843個の処理ユニットの半分に1ビットを節約することは、約3422/2、即ち約1711ビットを節約することに相当する。また、これら6843個の処理ユニットの他の半分の終了コードは、ビット01の終了コードを使用するので、終了コードの2ビットを使用して、シナリオコード01の元の第2ビット及び元の第1データコード値を表すためのエンコーディングコードのビット0/1を置き換える。従って、この半分のクラスB処理ユニットのビット使用数はロスがない。シナリオコード00の下のクラスA処理ユニットについては、ビット00の終了コードが使用される。現在削除されているシナリオコード00の元の第2ビットは、終了コードの2ビットのうち1ビットのみを占めることができる。その第1データコード値は論理により省略されているので、それに使用される終了コードの他のビットは、考慮されず、それはビット使用数の消費を表す。また、これらのクラスA処理ユニットに使用される頻度は1606である。クラスB処理ユニットのために節約した上記1711個のビットに対して、残りの決済は、1711マイナス1606=105ビットのビット使用数の節約である。80000個のランダムビットのうち、その新規特徴のみは、105個のビットを節約するのに役立つ。これまでに提示された技術は、シナリオ(a)、(b)及び(c)又はシナリオ3コード単位、4のコード単位及び残りのコード単位等の使用にも適用され得る。
シナリオ0及びシナリオ1に分割されたクラスA処理ユニット及びクラスB処理ユニットの前の例は、ハイブリッド分類及び内容コードにおいてデータコード値をどのように組み合わせて分類し得るか、且つ事後的に配置し得るかを示している。これは事前位置における通常の配置と反対する。データ分類のもう1つの新規特徴は、埋め込み式分類コード又は内部分類コードにのみ使用されてもよい。図表51は、この新規特徴を使用した結果を示している。
図表51a
事前分類コードとクラスA処理ユニット
Figure 2019528027
これはまさに図表48におけるクラスAの部分である。
図表51b
第3データコード値と第2データコード値が同じ値であるか否かを基準として細分化するためのクラスB処理ユニットの内部分類コード又は埋め込み式分類コード
Figure 2019528027
クラスAに関しては、6つのエントリ組み合わせでは2ビットの節約がある。また、第3データコード値と第2データコード値を有する、値が異なるクラスBについては、12種の組み合わせでは明らかな節約や損失はない。また、第3データコード値と第2データコード値を有する、値が同じクラスBについては、9つのエントリ組み合わせでは明らかな3ビットの節約がある。前述のように、この例の技術を使用する前に、まずビット0:ビット1の比率を修正する技術、又はランダムデータセット全体に使用される不均一なデータを有するスーパー処理ユニットを使用する技術等の他の技術を使用することができる。これは、この例で述べた技術を使用するために設計される多くの可能なシナリオのうちのほんの一例である。
上記分類例は、分類コードの使用に基づくものである。00の4つのクラスは、クラスA処理ユニットに使用される。しかし、斬新なものは、01、10及び11の使用についてである。実際には、それらは、内容コードそのものであり、v1のビット0からビット01までのわずかな修正だけで、これらの内容コードを分類コードとして使用するようにさせる。そして、エンコーディング処理において、内容コードの一部として使用される時、v1のエンコーディングコード値、即ち01は、より短い形式、即ち0のみに復元される。なぜなら、内容コード部分において誤解されず、エンコーディング処理ユニットのヘッドコードとして使用されている分類コードではないからである。上記例では、修正があるが、内容コードを分類コードとして使用したこの技術の有用性を鮮明に示している。これは、CHANコードの作成に使用されるCHANコーディングのもう1つの技術である。
以下に示すように、図表52は、分類コードを内容コード(わずかに修正したもの)に置き換えることができることを示している。
図表52
クラスB処理ユニットを分類するための分類コードとして、第3データコード値と第2データコード値が同じ値であるか否かを基準として修正した内容コードを使用する。
Figure 2019528027
前記様々な分類技術を明らかにした後、どの技術が処理中のデジタルデータセットに最も有用であるかを評価することができる。また、使用するための分類技術の選択に従って、エンコーディング及びデコーディングのためのデータコード値の再分類及び再割り当ては、意図した目的に必要且つ適切であることが見出され得る。図表53はそのような熟考の結果である。最も有用な技術は、データコード値を正しく分類するのに使用できる特性を正しく識別することである。検討されている本設計及びスキーマの下で、前の段落に提示された図表で使用するための多くの技術が開発、設計、実現されてきた。いくつかのコードエントリ組み合わせは、ビットを節約しているが、他のコードによって引き起こされるビットの損失は、これらの節約数を相殺し、さらにはこれらの節約数よりも多いことが観察され得る。従って、この特性又は特徴は、調査が必要なものである。それは、以上で説明したCHANコーディングの様々な技術を使用してエンコーディングする時に、ビットの損失を発生させる問題のあるエントリ組み合わせを見つけることである。損失の原因となった問題のあるエントリ組み合わせを共に組み合わせ、且つ節約の原因となった友好的なエントリ組み合わせを同様に組み合わせると、成功の可能性を高めることができることは明らかである。ここでの図表53では、これをデータ分類の主な基準として使用する。その後のエンコーディングでは、コード昇格、コード省略、コード置換を含むコード調整、及び範囲を使用した最も重要な絶対アドレス分岐技術等のCHANコーディングの他の技術を使用する。
図表53
コードが再割り当てされる前に、圧縮可能及び圧縮不可能なデータ値のエントリに基づくデータ分類は、使用される段落0075における図表21に示す頻度を有する。
Figure 2019528027
Figure 2019528027
上記図表53から、2種のコード調整を行わなければならないことが分かる。
(a)コード交換:v2v1v2及びv3v1v3は、元のコードが使用する5ビットのエンコーディングコードの代わりに、6ビットのエンコーディングコードをそれぞれ使用し、それによりビット損失が発生する。従って、それらのエンコーディングコードは、元のコードが使用する6ビットのv2v2v3及びv3v3v2ではなく、それぞれ使用する5ビットのv2v2v3及びv3v3v2と交換しなければならず、それによってビット利得が発生する。従って、これらのペアコード間でエンコーディングコードを交換することにより、ビット使用数のバランスを実現でき、それによりビット消費やビット利得が発生しない。
(b)コードの再割り当て、再分布、又は再記入:同じ第3値と第2値を有する非圧縮クラスには、2つの空いているコード位置又はアドレスがある。これら2つの空いているコードアドレスであるv1v1v2とv1v1v3のエンコーディングコードは、1100と1101であり、これら2つのエンコーディングコードのそれぞれは、4ビットを使用する。また、異なる第3値と第2値を有する非圧縮クラスには、4つの空いているコード位置又はアドレスがあり、これら4つの空いているコードアドレスに使用されるエンコーディングコードは、次のとおりである。v1v2v1は、エンコーディングコードが10000であり、5ビットを使用し、v1v3v1は、エンコーディングコードが10010であり、5ビットを使用し、v2v1v1は、エンコーディングコードが101000であり、6ビットを使用し、及びv3v1v1は、エンコーディングコードが101100であり、6ビットを使用する。従って、現在6つの空いているコードアドレスを再記入する必要がある。まず、2つの例外エントリ組み合わせを使用して、2つの空いているコード位置(v2v2v2とv3v3v3)を記入することができる。従って、4つの空いているコード位置しか残っていない。2つは、4ビットを使用し、もう2つは、5ビットを使用して、圧縮クラスの6つのエントリ組み合わせの収容に使用される。ここで、処理ユニットは、5ビットを使用した3つの固有データコード値を有する。従って、全ての3つの固有データコード値を有する収容されていない5ビット処理ユニットにおける最初の2つは、2つの空いているコード位置を最初に再記入するために使用される。残りの4つの収容されていない5ビット処理ユニットは、残りの2つの4ビットコードの空きアドレスに残される。そして、図表54は、このコードを再割り当てする時の状況を次のように示している。
図表54
コード再割り当て時に、圧縮及び非圧縮のデータ値エントリに基づくデータ分類は、使用される段落0075における図表21に示す頻度を有する。
Figure 2019528027
Figure 2019528027
Figure 2019528027
だから、これまでのところ、残りの4つの5ビット処理ユニットのうち2つを使用して残りの2つの4ビットの空いているコードアドレスを記入しなければならず、それにより各位置のために1ビットを節約する。また、まだ収容されていない残りの2つの5ビット処理ユニットについては、2つの6ビットのコードアドレス(頻度の最も低いエントリ組み合わせを選択する)を2倍にするために、AAB技術を使用しなければならず、それらは、他の2つのエントリ組み合わせにより占められており、4つの7ビットエントリの組み合わせ及び2*(7−5+7−6)=6ビットの損失をもたらす。しかしながら、それはAAB技術の適切な使用であり、新規な方法で新しいコードアドレスを作成することを目的とする。従って、AAB技術を使用することにより、及び2つの4ビットの空きコードアドレスにもう1つのビットを追加することにより、2*2個の5ビットの空きコードアドレスを取得でき、それにより4つの利用可能な5ビットの空きコードアドレスを構成する。それは、全ての3つの固有データコード値を有する収容されていない4つの5ビット処理ユニットを十分に包容でき、いかなるビットの損失を生じさせることはない。最終的な結果は、ビットの使用においていずれも均一である。この例では、ビット利得又はビット損失がない。これらは、次の図表55に示されている。
図表55
図表53にリストされているコードアドレスとコードエントリ値を再割り当てした後、同等性が生じる。
Figure 2019528027
Figure 2019528027
Figure 2019528027
上記「非圧縮クラス」と「圧縮クラス」の頻度はわずかに異なり、第1クラスが8897個の処理ユニットを有し、第2クラスが8888個の処理ユニットを有する。しかし、第2クラスがシナリオ10と11に割り当てられるため、スキューは、ビット0の比率ではなく、ビット1の比率を増やすことを目的とする。しかしながら、以上の図表55に示すように、1サイクルをエンコーディングした後、ビット1が297ビットを減少するが、ビット0が297ビットを増加するという結果は、非常に驚くことである。そのため、エンコーディングした後にビット利得やビット損失がなくても、ビット0:ビット1の比率を変更することで、データを圧縮する可能性が非常に大きいが、現在エンコーディングした後に、ビット0:ビット1の比率の割り当てがより不均一になる。逆の方式でシナリオコードを割り当てる場合、ビット0:ビット1の利得や損失を次の図表56に示している。
図表56a
図表55で使用されるシナリオコードと異なる逆の割り当てを使用する。
Figure 2019528027
Figure 2019528027
Figure 2019528027
Figure 2019528027
事実により、80000ビットのランダムデータセットに対して、スキューが減少し、ビット1だけに251を減少し、ビット0に同じ数で増加することが証明される。
上記から分かるように、ヘッダー内のインジケータは、シナリオコードがどのように割り当てられるか、またコード単位の0ヘッドデザイン又はコード単位の1ヘッドデザインを使用してデジタルデータが読み取られるか、及びデータ値が読み取られた後にどのようなヘッドデザインがエンコーディングするために用いられることを指示するように保留し、そのため、それらが同じでなくてもよい。そのような変動は、得られるCHANコードエンコーディングにおけるビット0:ビット1の比率に影響を及ぼす可能性がある。そのようなインジケータは、最適なシナリオを選択することで、エンコーディングが要求される目的を達成する。
ビット0:ビット1の比率をさらに変更するために、図表56aをさらにコード単位の1ヘッドデザインに変更して使用でき、以下のように示している。
図表56b
逆の割り当てで、図表56aで使用される0ヘッドデザインと異なる1ヘッドデザインのコード単位の内容コードに用いられる。
Figure 2019528027
Figure 2019528027
Figure 2019528027
コード単位の内容コードのヘッドデザインを変更するための最も簡単な方法は、図表56aから変更された図表56bで行われているように、内容コードのビット0をビット1に変更し、逆には同様である。上記の実例は、CHANコーディングがどのように不均一器エンコーダを作成することで、図表56aでビット1に251を減少してビット0に251を増加するか、又は図表56bでビット1に194を増加してビット0に194を減少する。それは、ビット0:ビット1の比率において、より多くのビット1に向かう傾向が逆転することを示す。完全性のために、図表56cは、0ヘッドシナリオコードと1ヘッド内容コードを使用して80000ビットのオリジナルランダムデータセットをエンコーディングする結果を示すことに用いられ、以下のように示している。
図表56c
図表56bで使用される1ヘッドデザインと異なる0ヘッドデザインシナリオコードを使用する逆の割り当ての使用
Figure 2019528027
Figure 2019528027
Figure 2019528027
そのため、図表55、図表56a、図表56b及び図表56cのビット0とビット1を変更した結果、それぞれ+297/−297、−251/+251、−194/+194、−153/+153である。従って、図表55は、より多くのビット0に向かう最大のスキューを与えることが明らかである。以上に示すように、同じデータ割り当てに対して、異なるヘッドデザイン及び分類コードと内容コードの割り当てを使用すれば、ビット0:ビット1の比率割り当てに影響を及ぼす可能性がある。このような割り当てを任意の固有データセットに対応するビット0:ビット1の異なる比率で割り当てるように調整することができ、1つの割り当て配置が特定の方向に向かってスキューを効果的に継続して行わない場合、スキュー方向を維持できるように変更するか、又は他の手段で行うように設計してもよく、当該不均一割り当ては、所定の点に達するまで、その点においてCHANコーディングを使用することで圧縮される。
例えば、AI区別技術を使用してスーパー処理ユニットをさらに圧縮することができる。又は段落0062で紹介された6値コード単位の異なるコード単位定義を使用し、1つの定義は、データを読み取ることに、もう1つの定義は、データをエンコーディングして書き込むことに用いられる。例えば、ビット1がビット0より多ければ、1ヘッドデザインの17ビット6値コード単位定義は、データを読み取ることに用いられることが可能であり、一方では、エンコーディング及び書き込みに対して、同じヘッドデザインの18ビット6値コード単位定義によって完了させることができる。17ビット定義は、v1の値に用いられる2ビットのビットコード11を使用し、18ビット定義は、v1を表すための1ビットのビットコード1を使用するので、続いて18ビット定義を使用して書き込む時に、読み取られた2ビットのコード11は、17ビット定義で読み取られたv1に用いられる1ビットのビットコード1にエンコーディングされ、それにより2ビットが1ビットに減少される。ビット1の頻度がビット0よりも高ければ、圧縮することに役立つ。
例えば、図表57において、1ヘッドデザインの17ビットから19ビットの6値コード単位を示している。
図表57
17、18、19ビットの1ヘッドデザインの6値コード単位を使用するコード値の定義
データ 17ビット 18ビット 19ビット
値 読み取り 書き込み 書き込み
v1 11 1 1
v2 10 011 01
v3 01 010 0011
v4 001 001 0010
v5 0001 0001 0001
v6 0000 0000 0000
以上説明するように、デジタルデータセットの有するビット1がビット0よりも多ければ、1ヘッドデザインのコード単位リーダーを使用することで、v1は他の独立値よりもはるかに高い頻度を持っている。上記の3つの6値コード単位定義を比較することで、v1が他のものより高い頻度を持っていれば、17ビットをリーダーとして使用し、18ビットのライターで書き込み、v1を読み取るたびに、1ビットを節約するが、v2とv3を読み取るたびに、それぞれ1ビットを損失し、v4、v5、v6に対して、ビット使用がいずれも均一であり、そのため、v1の頻度がv2とv3を足し合わせた頻度よりも高い限り、ビットの節約を達成する。v1の頻度と比較して、v2とv3及びv3とv4の間の頻度分布に応じて、19ビットのライターを使用することができる。
従って、データセット内のビット0:ビット1パターンのわずかな違いを利用して簡単な方式で圧縮を行うために、他の値のサイズのコード単位に用いられる様々なビットサイズの0ヘッドデザインと1ヘッドデザインコード単位定義を構築することができる。例えば、段落0117で使用されるリーダー及びライター又はエンコーダは、6値コード単位に基づいて作成されるもので、7−値、8−値、9−値、10−値等のような他の値のサイズに基づいてこのようなリーダー及びライターを構築して使用することができる。コード単位定義の値が大きいほど、リーダー及びライターの取得可能なビット0:ビット1の差がより正確で、そしてビットストレージの節約になる。また、圧縮のためのエンコーディングを行う前に、数回の不均一処理(即ち、まず一方向に偏ったデジタルデータセット内のビット0:ビット1比率を数回サイクルで変更するために不均一器を使用する)を行うこともできる。不均一器が常にデータ割り当てパターンを一方向に偏らせることができない場合は、分類コードの割り当てパターンを0ヘッドから1ヘッドに変更するか、逆に同様であり、又はリーダー及びライターのヘッドデザインを1つのヘッドデザインから別のヘッドデザインに変更又は交換することができる。そのような変更を行うパスがCHANコードのヘッダーにうまく記録されるか、又はエンコーダ及びデコーダに組み込まれて使用される限り、ビットサイズ及び値の異なるコード単位定義の異なる設計を使用することができる。さらに重要なのは、不均一器が異なる内容コードで構築できることである。例えば、段落0114及び図表54で論じられた不均一器は、非圧縮クラスと圧縮クラスという2つのクラスに分けられる内容コードを使用し、そしてコード割り当ての最適化のために修正される。前記不均一器は、処理中の任意のデータ値に対するそれぞれのエンコーディングコードが対応するオリジナルデータ値のビットサイズと全く同じであるようにするため、ビット利得やビット損失も生じないように、それぞれの固有コードアドレスを同一のビットサイズを有する固有データ値にマッピングする。図表55及び図表56は、同じグループの内容コードの分類コードに対して割り当てる2つの異なる配置を示すが、0ヘッドデザインと1ヘッドデザインを使用することで、ビット0:ビット1割り当てパターンに関する比率が様々に変化する。しかしながら、段落0114に紹介された技術を使用して、類似の方式で異なる内容コードを有する他の不均一器を設計することができ、処理される処理ユニットの性質を定義するための終了条件の選択と、処理ユニットの固有値エントリにより識別される特徴や特性に従って行う分類、コード調整、コード交換及びコード再割り当てにより、図表54から図表56で示すことと類似の別の不均一器エンコーダを作成することができる。別の実例は、段落0091及び図表28においてスーパー処理ユニットについての議論から分かれる。図表28の不均一器を使用して、データセットのビット0:ビット1の比率が図表55又は図表56に使用する不均一器と異なるように変更される。そのため、以上説明したように、1つの不均一器が1つの所定方向に向かってビット1とビット0の比率をこれ以上変更できない場合、そのような単方向変更は、適切に設計された別の不均一器を使用することによってさらに行うことができ、それにより類推する。従って、不均一器エンコーダの役割は、デジタルデータセットのビット0とビット1の割り当てパターンを不均一にすることである。ビット0よりも多いビット1(1:1の比率のビット0:ビット1の均一な割り当てと比較する時)の不均一器エンコーダは、ビット1不均一器と呼ばれ、ビット0をさらに増やす方向に偏ったデータ割り当てを行った後にビット0不均一器と呼ばれる不均一エンコーダと比較する(1:1の比率のビット0:ビット1の均一な割り当てと比較する時)。一方では、エンコーディング前と比較してビット0:ビット1の比率をより均一にする(即ち、ビット0:ビット1の比率を1:1方向に近づける)傾向があるこれらのエンコーダは、均一エンコーダ、又は単に均一器と呼ばれる。
このように、段落0115から0117に説明されるように、圧縮するためにコード単位定義をリーダー及びライターとして使用し、ランダムであるか否かに関わらず、任意のデータセットは、いずれも本発明において解釈したように、限界までのサイクルで圧縮を受けるという終了情報理論における鳩ノ巣原理の神話の確実な証明として段落0118で言及された不均一器と共に使用する。
デジタルデータセットを圧縮する過程でのコンプレッサは、明らかに均一器の役割を果たしているが、そうでなければ(もちろん本発明が開示するようにある限度まで)任意のデータセットを周期的に圧縮可能にすることができる。事実によると、本発明以前には、圧縮分野における方法は、ランダムであるか否かに関わらず、任意のデータ割り当てパターンのデータセットを周期的に圧縮可能であるという長い間望まれる目標を達成していないことを明らかにする。段落0118で議論された方式で、即ち段落0124で議論された周期的に又は他の方式で不均一器及び均一器を使用することによる本発明の開示により、以上の目標は明らかである。
不均一器及び均一器を交互に使用してエンコーディング及びデコーディングすることで、得られたエンコーディングしたCHANコードファイルのヘッダーは、基本的には以下の用途のインジケータを含む。
(a)チェックインジケータ:適切であれば存在してもよく、デコーダはそれを使用してデコーディングされるファイルが有効なCHANコードファイルであるか否か、及びファイルが使用可能な有効ファイルであるか否かを識別し、そのため、エンコーダによって生成された対応するCHANコードファイルに対して設計者によって設計されたインジケータを含む。
(b)リサイクルビット又はインジケータ:エンコーダによってデコーダに使用されるビットを書き込むことで、デコーダに現在処理サイクルをデコーディングした後に停止しなければならないか否かを指示する。
(c)(エンコーダによりエンコーディング中に使用されるか又は)現在のエンコーディングサイクルのデジタルデータ層をデコーディングすることに用いられるマッピングテーブル又はコード単位定義インジケータ:別の指示ビット(不均一器/均一器インジケータ)を用いて現在エンコーディングされたCHANコード層が不均一器マッピングテーブル又は均一器マッピングテーブルを使用することによって完了させるか否かを区別する。
ヘッダー以外に、得られるCHANコードファイルは、さらに他の2つのユニットを含む。
(A)CHANコード単位:エンコーディングしたCHANコードを含み、選択されたコード単位定義のリーダーを用いて入力したデジタルデータを読み取り、デジタルデータをライターで書き込み又はエンコーダで読み取り、ライターは、ヘッダーに示されるコード単位定義又はマッピングテーブルのエンコーダを使用し、エンコードを書き込み又はコード単位定義又はマッピングテーブルを含むプログラミングロジックを実現してエンコーディングするものである。ここでエンコーディングしたCHANコードは、適切な場合に分類コードと内容コードを含む。
(B)エンコーディングされていないコード単位:これは、デジタルデータ部分を入力する2進数ビットの部分を示し、読み取られた時にエンコーディングされず、通常には得られたCHANコードファイルの最後に置かれる。これは、コードの一部に設計され、そのビット数が1つの処理ユニット又は1つのスーパー処理ユニットを構成するのに十分ではないため、使用されるエンコーディング技術を用いてそれをエンコーディングすることができない。
以上説明したように、段落0121及び0122で識別されたそのような別々のデジタル情報は、別々のCHANコードファイルに置かれて別々の個体として記憶される。対応する設計により、デコーダがそれらを正しく識別してデコーディングすることを可能にする。デコーディング時に、デコーダは、関連する得られるCHANコードファイルのヘッダーに示されたコード単位定義やマッピングテーブルを使用することで、入力したエンコーディングされたCHANコードファイルを読み取るか、又はコード単位定義やマッピングテーブルを含むデコーディングのためのプログラミングロジック(即ち、対応するコード単位定義やマッピングテーブル又は対応する内蔵されたプログラミングロジックを使用してエンコーディングされたコードを入力デジタルデータコードに変換すると共にそれを書き出すことに用いられる)を実現することに用いられる。得られるデコーディングコードは、前記エンコーディングサイクルの前の入力デジタルデータコードである。
交互過程に均一器と共に使用されない場合に、不均一器を使用してデジタルデータを圧縮することができ、極端な場合には、全てのデジタル入力2進数ビットは、いずれも不均一器による不均一処理のサイクルによってビット0又はビット1に減少する。そのため、生成した(不均一処理ステップの経路の)CHANコードファイルは、不均一エンコーダにより取られる経路に関する情報のみであり、オリジナルデジタルデータ入力のビットサイズと、必要や適切な場合に形成される不均一処理回数の数と、各不均一サイクルのコード単位定義やマッピングテーブルとを含む。従って、不均一デコーダは、オリジナルデジタルデータを正確且つロスレスに復元するために、不均一デコーダによって採用された不均一経路のそのような情報に依存することができる。このような方式で、エンコーディングプロセスは、1つ以上の不均一エンコーディングのサイクルを含むことができるが、均一器エンコーディング又はコンプレッサエンコーディングは行われない。
不均一器を使用する別の変形は、最後の処理サイクルの前にそれを複数回使用することであり、そして最後のサイクルのエンコーディングは、コンプレッサ(又は圧縮のための均一器)によって行われる。このような方式で、エンコーディングプロセスは、コンプレッサエンコーディングの最後のサイクルの前に1つ以上の不均一エンコーディングサイクルを含む。この変形により得られるCHANコードとCHANコードファイルの構造は、段落0121から0123に記載されているものと同様である。均一器は、データセットのビット0:ビット1の比率をより均一にするコンプレッサであり、最後のサイクル又は最後のエンコーディング層のエンコーダとして使用される時に、このような均一器又はコンプレッサの使用の結果として、データ割り当てがそのスキューの他の方向に偏ったことは重要ではなく、予想されるように圧縮される限り、スキューはいかなる方法であってもよい。使用される用語は、即ち均一器又は均一器エンコーダが本発明のコンプレッサ又はコンプレッサエンコーダと同じであると見なされるべきである。
上記で開示されたこれまでのCHANフレームワーク及びCHANコーディングは、少なくともコードアドレスの数を証明し、固有データ値の数と比較して、データ圧縮に課される要素ではない(以前情報理論における鳩ノ巣の原則の神話により誤解を招く)。重要なのは、入力データセットのデータ値の頻度分布である。上記段落で説明された技術で実施されるCHANコーディング方法を使用し、ランダムであるか否かに関わらず、入力データセットをエンコーディングする時に、以下の効果を達成する。即ちエンコーディング中に、入力データの情報に入力データの特性を示す分類コードが追加され、データの分布が変更されるので、CHANコーディングの対応する技術を使用してエンコーディングされたコードをデコーディングする時に、入力データを正確且つロスレスに復元することができ、ある程度、対応するデジタルデータをサイクルして暗号化及び圧縮することができる。説明された制限は、使用及び実現の設計及びスキーマによって制限され、使用されるヘッダーと関連するインジケータを表すコードビットであり、1つの処理ユニット又は1つのスーパー処理ユニットのCHANコードに置かれることに適し、そして、ある場合に、エンコーディングされていない2進数ビットのエンコーディングされていないコード単位(又はこのようなエンコーディングされていないいずれかの2進数ビットを残さない)の数は、1つの処理ユニット又は1つのスーパー処理ユニットのサイズより小さく、0より大きい。この段落では、そのように言及されているCHANコードは、ヘッダーに含まれる他の追加情報及びインジケータ(及びエンコーダ及びデコーダに内蔵された情報及びプログラミングロジックの一部)のような、オリジナル入力データの内容又はデータ値部分に使用されるエンコーディングコードであり、CHANコードの中核であり、エンコーディングされていないコード単位もCHANコードの周辺部としてCHANコードに属し、エンコーディング及びデコーディング中にCHANコードの中核と共に使用される結果、オリジナル入力データが完全にエンコーディングされ、エンコーディングされたコードが完全にデコーディングされてオリジナル入力データに正確且つロスレスに復元することができる。
そのように使用される方法及び技術は、非ランダムデジタルデータを圧縮するために使用される。そのように設計されていれば、暗号化及び復号も同時に行うことができる。データの拡張及び伸縮を行わずに暗号化及び復号を行うには、最も簡単な方法は、任意のコード単位値に同じビットエンコーダを使用する技術を使用することである。例えば、段落0062では、図表14b及び図表14cにリストされているMax6 16ビットエンコーダの設計がいくつか開示される。開示された4つの設計の各々は、1つの設計で読み取り且つもう1つの設計で書き込みさらにオリジナルコードを変換することにより、暗号化及び復号を行うように、同じビットサイズエンコーダとして働くことができる。その結果、暗号化コードはオリジナルコードと同じサイズを有する。他のMaxクラスに類似の設計を作成できるので、暗号化及び復号には無限のバリエーションがある。どのMaxクラス(及び特定のMaxクラスの下のどのビットグループ)がエンコーディングに使用されたのかを知らずに、エンコーディングされたコードを容易にデコーディングすることはできない。暗号化しない同じビットサイズのエンコーダも使用することができ、それは同じエンコードを単に使用し、前記エンコーダは、デジタルデータを読み取り、一方でそれを書き戻す。もちろん、他の技術と共に使用せずに、それを正確なデータレプリカとする以外は何も機能しない。これまでに開示された技術は、少なくとも暗号化/復号、及び処理されるデジタル情報のデータ割り当てが適切である場合に圧縮/解凍を行うためのものであると見なされる。また、異なる設計やスキーマでのCHANコーディング技術を使用してランダムデータをどのように正確に圧縮及び復元するための方法を提案する。以下にさらに開示されるさらなる技術の発明により、以下の証拠にランダムデータを正確且つロスレスに圧縮及び復元できることが証明される。
最後に、現在は、ランダムデータが圧縮可能で、デコーディングすることで正確且つロスレスに復元することを証明する明らかな証拠を提示する時期である。そのような技術の1つはデジタルデータブラックホールであり、前記技術によりコード単位値又は処理ユニット値をデジタルデータブラックホールとして機能するように識別する。デジタルデータブラックホールをどのように作成することを明らかにするために、Max3 5ビット0ヘッドデザインコード単位エンコーダの実例を再使用し、処理ユニットは、Max3 5ビット0ヘッドデザインコード単位エンコーダによって読み取られる3つのそのようなコード単位からなると定義される。従って、段落0074の図表20にあるものと同じような、27個の固有処理ユニットコード値(PUCV)がある。図表20は、これら27個の固有PUCVの各単一頻度分布を示し、最短のPUCVは000であり、3ビットを有し、さらに4ビットのPUCV、5ビットのPUCV及び6ビットのPUCVもあることが見られる。そのため、これら27個のPUCVもビットクラスに分けられる。また、これらの単一PUCVの頻度は、ビットサイズが1ビット増加するにつれて約半分に減少することが分かる。3つの単一コード単位からなる処理ユニットのMax3 5ビット0ヘッドデザインコード単位エンコーダを使用してランダムデータを読み取る時に、ランダムデータの頻度分布において一般的な規則性(又はランダム性法則)が観察される。さらに調査すると、CHANフレームワークの下で開発された同じスキーマ(即ち、3つの単一コード単位からなる処理ユニットを有するMax3 5ビット0ヘッドデザインコード単位エンコーダ)を使用してランダムデータに関する別の頻度分布法則性又は規則性を発見できる。このランダムデータの頻度分布の別の特徴的な規則又は法則は、以下の図表58に示されている。
図表58a
3つの単一コード単位からなる処理ユニットを有するMax3 5ビット0ヘッドデザインコード単位エンコーダを使用して読み取られた80000ビットのランダムデータセットの処理ユニットの頻度分布
処理ユニットコード値
PUCV 頻度 特殊コード
3ビットクラス
00 2311 クラスにおいて1つだけ
4ビットクラス
1100 1151 クラスにおいて最高
0010 1121
0100 1119
0011 1103
1000 1086
0110 1036 クラスにおいて最低
5ビットクラス
11100 579 クラスにおいて最高
01111 574
11010 569
10011 562
10110 561
10100 556
01011 555
10010 551
01010 539
11110 524
11011 524
01110 523 クラスにおいて最低
6ビットクラス
111111 315 クラスにおいて最高
101010 293
101011 289
111011 288
101110 288
101111 264
111110 262
111010 254 クラスにおいて最低
図表58b
3つの単一コード単位からなる処理ユニットを有するMax3 5ビット0ヘッドデザインコード単位エンコーダを使用して読み取られた80000ビットのランダムデータセットのスーパー処理ユニットの頻度分布−スーパー処理ユニットは2つの連続な処理ユニットからなる(選択されたSPUCVを示す)
Figure 2019528027
Figure 2019528027
図表58a及び図表58bの頻度分布統計値の実例は、以下の図表58c及び図表59dにリストされている自動3プログラムにより生成される。
図表58c
図表58a及び図表58bに示される頻度統計値を生成する自動プログラム
;;;;;;
#include "helper2b.au3"
Func writeln($vVar1 = 0, $vVar2 = 0, $vVar3 = 0, $vVar4 = 0, $vVar5 = 0, $vVar6 = 0,
$vVar7 = 0, $vVar8 = 0, $vVar9 = 0, _
$vVar10 = 0, $vVar11 = 0, $vVar12 = 0, $vVar13 = 0, $vVar14 = 0, $vVar15 = 0,
$vVar16 = 0, $vVar17 = 0, $vVar18 = 0, $vVar19 = 0)
#forceref $vVar1, $vVar2, $vVar3, $vVar4, $vVar5, $vVar6, $vVar7, $vVar8, $vVar9,$vVar10
#forceref $vVar11, $vVar12, $vVar13, $vVar14, $vVar15, $vVar16, $vVar17, $vVar18,$vVar19
Local $sVal = ""
For $i = 1 To @NumParams
$sVal &= Eval("vVar" & $i) & " "
Next
ConsoleWrite($sVal & @CRLF)
EndFunc
Func AABBits1Base($range, $value)
if $value < 1 then PrintError('Invalid input 0')
if $value > $range then PrintError('Invalid range')
Local $max = 1
local $bits = 0
while $max <= $range
$max = $max * 2
$bits = $bits + 1
Wend
$max = $max / 2
$bits = $bits − 1
local $sub = $range − $max
If $value <= $max − $sub Then
Return $bits
Else
Return $bits + 1
EndIf
EndFunc
Func AABBits0Base($range, $value)
return AABBits1Base($range + 1, $value + 1)
EndFunc
local $data[1]
if not FileExists('ff') then GenerateRandomFile('ff', 10000)
ReadDataFile('ff', $data)
local $map[27]
$map[0] = '000'
$map[1] = '11100'
$map[2] = '0100'
$map[3] = '0011'
$map[4] = '1000'
$map[5] = '0010'
$map[6] = '0110'
$map[7] = '1100'
$map[8] = '01011'
$map[9] = '01010'
$map[10] = '11010'
$map[11] = '01111'
$map[12] = '10110'
$map[13] = '10010'
$map[14] = '01110'
$map[15] = '10011'
$map[16] = '10100'
$map[17] = '11011'
$map[18] = '101110'
$map[19] = '101010'
$map[20] = '101111'
$map[21] = '101011'
$map[22] = '11110'
$map[23] = '111010'
$map[24] = '111110'
$map[25] = '111011'
$map[26] = '111111'
local $obj[1]
MapInit($obj, $map)
local $input[1]
InputInit($input, $data)
local $count[27][2]
for $i = 0 to 26
$count[$i][0] = 0
$count[$i][1] = $i
next
local $nums[8000000]
local $numc = 0
while not InputEnded($input)
$v = MapRead($input, $obj)
$nums[$numc] = $v
$numc = $numc + 1
$count[$v][0] = $count[$v][0] + 1
wend
_ArraySort($count, 1)
$t = 0
$bits = 0
for $i = 0 to 26
$aab = StringLen($map[$count[$i][1]]) − AABBits0Base(26, $i)
$bits = $bits + $count[$i][0] * StringLen($map[$count[$i][1]])
$t = $t + $count[$i][0] * $aab
writeln($map[$count[$i][1]], $count[$i][0], '(', $aab, ')')
next
writeln('total bits:', $bits)
writeln('aab delta:', $t)
writeln()
writeln('27x27')
local $count2[27 * 27][2]
for $i = 0 to 27 * 27 − 1
$count2[$i][0] = 0
$count2[$i][1] = $i
next
for $i = 0 to 26
for $j = 0 to 26
$p = 0
while $p < $numc − 1
if $nums[$p] = $i and $nums[$p + 1] = $j then
$count2[$i * 27 + $j][0] = $count2[$i * 27 + $j][0] + 1
$p = $p + 1
endif
$p = $p + 1
wend
next
next
_ArraySort($count2, 1)
for $i = 0 to 27 * 27 - 1
$b = Mod($count2[$i][1], 27)
$a = ($count2[$i][1] − $b) / 27
writeln($map[$a] & '−' & $map[$b], $count2[$i][0])
next
;;;;;;
Diagram 58d
Autoit Programming Library used by Autoit Program listed in Diagram 58c
;;;;;;
#include <Array.au3>
#include <FileConstants.au3>
global const $Mask[8] = [128, 64, 32, 16, 8, 4, 2, 1]
global const $BitLen = 8
global const $MaxNum = 256
func PrintError($msg)
ConsoleWrite($msg & @CRLF)
exit
endfunc
; Input function
func InputInit(byref $obj, byref $data)
redim $obj[5]
$obj[0] = $data
$obj[1] = UBound($data) ; size
$obj[2] = 0 ; byte pos
$obj[3] = 0 ; bit pos
$obj[4] = false ; is ended
endfunc
func InputEnded(byref $obj)
return $obj[4]
endfunc
func InputReadBit(byref $obj)
if $obj[4] then return 0
local $r
if BitAND(($obj[0])[$obj[2]], $Mask[$obj[3]]) <> 0 then
$r = 1
else
$r = 0
endif
$obj[3] = $obj[3] + 1
if $obj[3] >= $BitLen then
$obj[3] = 0
$obj[2] = $obj[2] + 1
if $obj[2] >= $obj[1] then $obj[4] = true
endif
return $r
endfunc
; Internal array function
func ArrayCreate($size)
local $arr[$size]
$arr[0] = 0
return $arr
endfunc
func ArraySetData(byref $arr, $index, $v)
$arr[$index] = $v
endfunc
func ArrayRedim(byref $arr, $size)
redim $arr[$size]
endfunc
; Output function
func OutputInit(byref $obj)
redim $obj[4]
$obj[0] = ArrayCreate(1000)
$obj[1] = UBound($obj[0]) ; size
$obj[2] = 0 ; byte pos
$obj[3] = 0 ; bit pos
endfunc
func OutputWriteBit(byref $obj, $r)
if $r <> 0 then ArraySetData($obj[0], $obj[2], BitOr(($obj[0])[$obj[2]],
$Mask[$obj[3]]))
$obj[3] = $obj[3] + 1
if $obj[3] >= $BitLen then
$obj[3] = 0
$obj[2] = $obj[2] + 1
if $obj[2] >= $obj[1] then
$obj[1] = $obj[1] + 1000
ArrayRedim($obj[0], $obj[1])
endif
ArraySetData($obj[0], $obj[2], 0)
endif
endfunc
func OutputGetData(byref $obj)
$obj[1] = $obj[2]
if $obj[3] <> 0 then $obj[1] = $obj[1] + 1
if $obj[1] = 0 then PrintError('No output data')
ArrayRedim($obj[0], $obj[1])
return $obj[0]
endfunc
; Random data function
func GenerateRandomFile($name, $size)
local $fh = FileOpen($name, BitOr($FO_OVERWRITE, $FO_BINARY))
if $fh = −1 then PrintError('File open fails')
local $i
for $i = 0 to $size − 1
FileWrite($fh, BinaryMid(Binary(Random(0, $MaxNum − 1, 1)), 1, 1))
next
FileClose($fh)
endfunc
func GenerateRandomData(byref $arr, $size)
redim $arr[$size]
local $i
for $i = 0 to UBound($arr) − 1
$arr[$i] = Random(0, $MaxNum − 1, 1)
next
endfunc
; File reader/writer
func ReadDataFile($name, byref $array)
local $fh = FileOpen($name, BitOr($FO_READ, $FO_BINARY))
if $fh = −1 then PrintError('File open fails')
local $data = FileRead($fh)
local $len = BinaryLen($data)
redim $array[$len]
local $i
for $i = 1 to $len
$array[$i − 1] = Int(BinaryMid($data, $i, 1))
next
FileClose($fh)
Endfunc
; File Writer
func WriteDataFile($name, byref $array)
local $fh = FileOpen($name, BitOr($FO_OVERWRITE, $FO_BINARY))
if $fh = −1 then PrintError('File open fails')
for $i = 0 to UBound($array) − 1
FileWrite($fh, BinaryMid(Binary($array[$i]), 1, 1))
next
FileClose($fh)
endfunc
; Array helpers
func DumpArray(byref $arr)
local $i
for $i = 0 to UBound($arr) − 1
ConsoleWrite($arr[$i] & ' ')
next
ConsoleWrite(@CRLF)
endfunc
func ZeroArray(byref $arr)
local $i
for $i = 0 to UBound($arr) − 1
$arr[$i] = 0
next
endfunc
func DumpBinaryArray(byref $data)
local $input[1]
InputInit($input, $data)
local $pos = 0
while not InputEnded($input)
ConsoleWrite(InputReadBit($input))
$pos = $pos + 1
if $pos = 8 then
ConsoleWrite(' ')
$pos = 0
endif
wend
ConsoleWrite(@CRLF)
endfunc
; Map function
func MapInit(byref $obj, byref $map, $title = '')
redim $obj[5]
$obj[0] = ArrayCreate(10) ; 0 branch
$obj[1] = ArrayCreate(10) ; 1 branch
$obj[2] = 0 ; index
$obj[3] = $map
$obj[4] = ArrayCreate(UBound($map)) ; freq
ZeroArray($obj[4])
local $i, $j, $c, $pos, $branch, $v, $len
for $i = 0 to UBound($map) − 1
$pos = 0
$len = StringLen($map[$i])
for $j = 1 to $len
$c = StringMid($map[$i], $j, 1)
if $c = '0' then
$branch = 0
elseif $c = '1' then
$branch = 1
else
PrintError('invalid char in map')
endif
$v = ($obj[$branch])[$pos]
if $v < 0 then
PrintError($title & 'duplicate prefix at line ' & ($i + 1) & ': ' & $map[$i])
elseif $v > 0 then
$pos = $v
elseif $j < $len then
$obj[2] = $obj[2] + 1
if $obj[2] >= UBound($obj[0]) then
ArrayRedim($obj[0], $obj[2] + 10)
ArrayRedim($obj[1], $obj[2] + 10)
endif
ArraySetData($obj[0], $obj[2], 0)
ArraySetData($obj[1], $obj[2], 0)
ArraySetData($obj[$branch], $pos, $obj[2])
$pos = $obj[2]
endif
next
if $v <> 0 then PrintError($title & 'duplicate prefix at line ' & ($i + 1) & ': ' &
$map[$i])
ArraySetData($obj[$branch], $pos, −1 − $i)
next
for $i = 0 to $obj[2]
if ($obj[0])[$i] = 0 or ($obj[1])[$i] = 0 then PrintError($title & 'incomplete')
next
endfunc
func MapRead(byref $input, byref $obj)
local $bit, $pos
$pos = 0
while $pos >= 0
$bit = InputReadBit($input)
$pos = ($obj[$bit])[$pos]
wend
return −$pos − 1
endfunc
func MapClearFreq(byref $obj)
ZeroArray($obj[4])
endfunc
func MapPrintFreq(byref $obj, byref $data, $detail = false)
local $input[1]
local $index, $i, $j
InputInit($input, $data)
MapClearFreq($obj)
while not InputEnded($input)
$index = MapRead($input, $obj)
if $detail then ConsoleWrite(($obj[3])[$index] & ' ')
ArraySetData($obj[4], $index, ($obj[4])[$index] + 1)
wend
if $detail then ConsoleWrite(@CRLF)
local $c0 = 0
local $c1 = 0
for $i = 0 to UBound($obj[3]) − 1
ConsoleWrite(($obj[3])[$i] & ' : ' & ($obj[4])[$i] & @CRLF)
for $j = 1 to StringLen(($obj[3])[$i])
if StringMid(($obj[3])[$i], $j, 1) = '0' then
$c0 = $c0 + ($obj[4])[$i]
else
$c1 = $c1 + ($obj[4])[$i]
endif
next
next
ConsoleWrite('0:1 = ' & $c0 & ':'& $c1 & @CRLF)
endfunc
func MapOutput(byref $obj, byref $data, byref $outmap, $outfile = '')
local $input[1]
local $index, $i, $j
InputInit($input, $data)
MapClearFreq($obj)
if UBound($outmap) <> UBound($obj[3]) then PrintError('map size not match')
local $output[1]
OutputInit($output)
local $o0 = 0
local $o1 = 0
while not InputEnded($input)
$index = MapRead($input, $obj)
$str = $outmap[$index]
for $i = 1 to StringLen($str)
if StringMid($str, $i, 1) = '0' then
OutputWriteBit($output, 0)
$o0 = $o0 + 1
else
OutputWriteBit($output, 1)
$o1 = $o1 + 1
endif
next
ArraySetData($obj[4], $index, ($obj[4])[$index] + 1)
wend
local $c0 = 0
local $c1 = 0
for $i = 0 to UBound($obj[3]) − 1
ConsoleWrite(($obj[3])[$i] & '−>' & $outmap[$i] & ' : ' & ($obj[4])[$i] & @CRLF)
for $j = 1 to StringLen(($obj[3])[$i])
if StringMid(($obj[3])[$i], $j, 1) = '0' then
$c0 = $c0 + ($obj[4])[$i]
else
$c1 = $c1 + ($obj[4])[$i]
endif
next
next
ConsoleWrite('old 0:1 = ' & $c0 & ':'& $c1 & @CRLF)
ConsoleWrite('new 0:1 = ' & $o0 & ':'& $o1 & @CRLF)
if $outfile <> '' then
local $out = OutputGetData($output)
WriteDataFile($outfile, $out)
endif
endfunc
;;;;;;
図表58aは、80,000ビットのランダムデータセットの27個の固有PUCVの頻度分布を示し、図表58bは、同じランダムデータセットの27×27個の固有SPUCVの頻度分布を示す。簡潔にするために、図表58bに各ビットクラスの2つの最も頻繁なSPUCVと2つの最も頻繁でないSPUCVだけがリストされる。3つの単一コード単位からなる処理ユニット及び2つの連続した処理ユニットを有するスーパー処理ユニットを有し、CHANフレームワークを使用して開発されたエンコーダであるMax3 5ビット0ヘッドデザインコード単位エンコーダによって読み取り、サンプリングする時、これは、80,000ビットランダムデータセットの他の頻度分布規則性又は法則性を十分に区別することができる。以上説明したように、CHANフレームワークは、ランダムデータを含む任意のデータ割り当てのデジタルデータの特徴及び特性を説明して調査するためのフレームワークを提供する。これまでに、ランダムデータの特徴は、より詳細且つ明確には開示されず、それはランダムであるため、それが表す値は予測不可能な方式でランダムに現れ、長期的には均一な割り当てのビット0:ビット1比率に近づく傾向を持つが、規則性がないことが分かる。現在使用しているCHANフレームワークは、例えば、設計されたエンコーダの下で、−Max3 5ビット0ヘッドデザインコード単位エンコーダは、3つの単一コード単位からなる処理ユニット及び2つの連続した処理ユニットを有するスーパー処理ユニットを有し、ランダムデータを説明することに用いられる特定の規則性又は法則性を見つけることができる。それは、ランダムデータ及び非ランダムデータを処理することに用いられる法則を作成するための基準として、ランダムデータセットに関する頻度分布の規則性又は法則性を使用することができる。図表58a及び図表58bには、例えば、それぞれ27個の固有処理ユニット及び27×27個の固有スーパー処理ユニットについて、任意の特定コード値の頻度はそのビット長又はビットサイズ又はビットクラスの尺度、高いクラスの1つである識別可能な規則性が存在し、ビット長やサイズは1ビット短縮され、その頻度が約2倍になる。例えば、図表58aでは、3ビットクラスPUCV 000の頻度は2311であり、4ビットクラスの次のPUCV 1100が1151になる。そして27x27 SPUCVに対して、図表58bに規則性も見られる。
しかしながら、図表58a及び図表58bのコード値の間の頻度範囲を比較すると、この規則的な変化を発見することができる。ビットクラス内の頻度の最も高いコード値と隣接するビットクラス内の頻度の最も低いコード値の間の頻度範囲を比較することができる。以下の図表58eに異なるビットクラスにおけるコード値の頻度範囲が示される。
図表58e
Figure 2019528027
従って、それは、ビット長が値の頻度を決定する唯一の要因ではないことを明らかにし、異なるグループ内の値もそれら自体のグループに特有のそれら自体の頻度法則性を有する。例えば、ビットクラスが低くなることにつれて、高いビットクラス内の最も頻繁なコード値と低いビットクラス内の最も頻繁でないコード値との比率は、SPUCVグループ内で増加する傾向がある。
これに基づいて、ランダムであるか否かに関わらず、データを処理する方法及びそれに対応する法則を設計することで、目的に合わせる。ここで、本開示は、この発見が特にランダムデータを含むデジタルデータの圧縮を行うことにどのように使用されることを明らかにする。
ランダムデータを圧縮することについて、段落0128に開示された発見を用いて、連続コード代用(SCS)と共に絶対アドレス分岐エンコーディング(AABC)を使用してデジタルブラックホール技術(DBh)を開発することができる。物理的な世界では、ブラックホールは物質が吸収される場所である。同様に、本発明において開示されたいくつかの実施形態は、他の2進数コードが吸収されるスポットを表すための2進数デジタルコードを使用する。これは、前記役割を果たすことに有利なデジタル2進数コードを識別することに関連する。そのようなスポットを選択するために使用される基準は、人が達成しようとしている目的に依存する。そのため、設定される基準は目的に関連している。データ圧縮を行うため、明らかな基準はデジタル2進数コードの頻度に関する。そのため、デジタル2進数コードブロックが出現する頻度が高ければ高いほど、他のデジタル2進数コードを吸収する頻度が高まるため、より多くのビットを節約することができる。従って、図表58a及び図表58bに示すように、PUCVグループ及びSPUCVグループ内の各ビットクラスに存在する最も頻繁な値を識別することができる。
デジタルブラックホールの発明はAABCの技術を使用する。図表55に示すように、段落0115に記載されている説明の場合、27個の固有PUCVグループは、頻度が約半分の2つのサブグループに分けられる。また、段落0116は、わずかに異なる以上の圧縮クラスと非圧縮クラスの頻度をまとめ、ここで第1クラスは8897個の処理ユニットを有し、第2クラスは8888個の処理ユニットを有する。非圧縮クラスにおいて7個のPUCV、圧縮クラスにおいて20個のPUCVが含まれる。非圧縮クラスは、そのヘッドとして使用される分類コード又はシリナオコード0を含み、圧縮クラスは、1をそのヘッドとして使用する。分類コード又はシナリオコードの使用を省くことができれば、特定の頻度分布の規則性を有するため、特定の頻度分布のランダムデータに対して、データ圧縮を実現する。これは、ここで開示されたデジタルブラックホールの発明によって完了させる。任意のランダムデータセット内の任意のPUCV又はSPUCVの前後には、3/4/5/6ビットクラスとすることが可能な別のPUCVである。図表55の非圧縮クラスは、3ビットクラスと4ビットクラスPUCVで、圧縮クラスは、5ビットクラスと6ビットクラスにある。分類コードビット0/1を使用しなければ、非圧縮クラス及び圧縮クラスのPUCVのための以下のAABコードを使用することができ、図表59に示される。
図表59a
非圧縮クラス3/4ビットクラスPUCVのAABコード
7つの固有PUCV 割り当て
00 −1 3ビットクラスPUCV
010 −1 4ビットクラスPUCV
011 −1 4ビットクラスPUCV
100 −1 4ビットクラスPUCV
101 −1 4ビットクラスPUCV
110 −1 4ビットクラスPUCV
111 −1 4ビットクラスPUCV
図表59b
非圧縮クラス5/6ビットクラスPUCVのAABコード
20個の固有PUCV 割り当て
0000 −1 5ビットクラスPUCV
0001 −1 5ビットクラスPUCV
0010 −1 5ビットクラスPUCV
0011 −1 5ビットクラスPUCV
0100 −1 5ビットクラスPUCV
0101 −1 5ビットクラスPUCV
0110 −1 5ビットクラスPUCV
0111 −1 5ビットクラスPUCV
1000 −1 5ビットクラスPUCV
1001 −1 5ビットクラスPUCV
1010 −1 5ビットクラスPUCV
1011 −1 5ビットクラスPUCV
11000 −1 6ビットクラスPUCV
11001 −1 6ビットクラスPUCV
11010 −1 6ビットクラスPUCV
11011 −1 6ビットクラスPUCV
11100 −1 6ビットクラスPUCV
11101 −1 6ビットクラスPUCV
11110 −1 6ビットクラスPUCV
11111 −1 6ビットクラスPUCV
図表59a及び図表59bの両方において、上記方式で割り当てられたPUCVのそれぞれが、AABCの技術を使用することで1ビットを節約するのを助けることが分かる。しかし、分類又はシリナオコードがないため、これらのAABコードだけで27個の固有PUCVを表すことはできない。そのため、デジタルブラックホールを作成するための技術が役立つ必要がある。以上説明したように、これは、デジタル2進数コードを前のPUCV又は後続のPUCVを吸収するブラックホールとして指定され、一旦デコーディング時に前記デジタル2進数コードが検出されると、図表59a及び図表59bに示されるAABコードを使用して割り当てられたPUCVコードを示す。しかし、非圧縮クラスと圧縮クラスの2つのクラスがあるため、2つのブラックホールがあるべきで、そのうち1つは、AABコードを使用して3ビットクラスと4ビットクラスPUCV及び他の5ビットクラスと6ビットクラスPUCVを示す(従って吸収)ことを担当する。従って、ブラックホール1(SPUCV 0011−11011、頻度19、9ビットクラスにおける最低)と合わせ、ブラックホール0(SPUCV 0010−1100、頻度91、SPUCVグループ中の8ビットクラスにおける最高)とペアリングすることで、それぞれブラックホール0とブラックホール1の前後に2つのハーフコード値(半分は3ビット及び4ビットクラスコード値で、残りの半分は5ビット及び6ビットクラスコード値である)を吸収することに用いられるべきである。ここでは、SPUCV 0010−1100及びSPUCV 0011−11011は、これらが共に頻度範囲(図表58cに示すように、比率が4:1より大きい)を示すため、ブラックホール0及び1として選択され、1つの特徴として、1つの形態のデジタルデータブラックホール技術に適用する。
SPUCVグループの頻度規則性又は法則の発見は、ランダムデータのデータ圧縮のためにこのブラックホール技術を使用するための道を開くのに役立つ。そして、PUCVグループとSPUCVグループの頻度規則性パターンが確かめられたので、頻度振幅と任意の特定のビットクラス又はビットクラス値の頻度範囲を含むこのパターンは、後で開示されるように、他のタイプのデータ割り当てを圧縮する法則を作成するための参照としてこれを使用することができる。
デジタルデータブラックホールは、AABCを使用して、次のキュー中の前の値、後の値又は前後の2つの値を吸収することができる。そのため、デジタルデータブラックホールの技術は、CHANフレームワーク下で定義されたエンコーダのコード値を使用して、AABエンコーディングを使用して他のコード値、即ち、吸収されるコードを表すブラックホールコード値に関連付けられたAABコードを吸収又は表現するため、ブラックホールコード値が、対応するブラックホールによって吸収されるコード値を表すように、AABコードへのインデックス又はポインタであることとして定義される。例えば、ブラックホール0は、3ビットと4ビットのPUCVが後で現れる時(後へ吸収するために用いられる)、それらを吸収するために図表59a中のAABコードを使用する。そのため、ブラックホール0の約半分について(ここで使用される実例ではSPUCV 0010−1100の)1ビットを節約する。例えば、これにより、3ビットと4ビットのPUCVの頻度と5ビットと6ビットのPUCVの頻度の比率に応じて、約46(91/2)ビットを節約する。図表59bでAABコードを使用するブラックホール1としてSPUCV 0011−11011を使用して、SPUCV 0011−11011の後に5ビット又は6ビットのPUCVが続くというパターンを表し、一方で、45(91/2)ビットを節約するが、他方で、45ビットも損失するため、SPUCV 0011−11011、ブラックホール1が9ビットであり、ブラックホール0、SPUCV 0010−1100よりも、1ビット長い。従って、ブラックホール1を使用した結果は均一である。つまり、この技術を使用すると、それは、1ビットとSPUCV 0010−1100頻度の約2分の1との乗算結果、即ち46(91/2)ビットを節約することができる。しかしながら、まだ終わっていない。SPUCV 0011−11011(代用コード0、Scode 0)はSPUCV 0010−1100(後は5/6ビットのPUCVである)を代用するために借用され、且つブラックホール1になる。従って、ブラックホール1のビット長は、ブラックホール0よりも1ビット長くしてはならず、且つその頻度は、ブラックホール0の約4分の1未満であるべきである。そうでなければ、データ圧縮を達成しない可能性がある。且つブラックホール1の位置は他のコードで代用されなければならない。データ圧縮を行うために代用コードを選択して連続コードの代用を行う基準又は法則とは、(1)コードのビット長が短いほどよく、(2)コードの頻度が低いほどよく、そして(3)コードの競合を引き起こす代用コードを選択しない(例えば、SPUCV 0010−1100をブラックホール0として選択すると、それを構成する部分をブラックホール1の構成部分とすることを可能な限り避けるべきである)ということである。従って、選択されたScodeは代用されるコード(被代用コード)よりも頻度が少なく(頻度が少ないほどよい)、そして代用されるコードよりもビット長が1ビット長くならないようにする(代用コードが短いほどよい)。上記の法則は、ランダムデータを圧縮する汎用法則として使用する必要がある。非ランダムデータの圧縮及び解凍について議論する時、段落0134(2)でより多くの内容が議論される。適切な場合に、自体の目的に適用される他の法則を作成することもできる。図表58bに示すように、このコードの代用は、SPUCV 0011−11011がSPUCV 0010−1100(その後に5/6ビットのPUCVである)を代用することから始まり、SPUCV 0011−11011(ブラックホール1及びScode 0)はScode 1等によって代用されなければならない。SPUCVグループの最下位クラス、12ビットクラスに停止する。このビットクラスには、決して発生しないコード値がある。従って、値が欠落したSPUCVは、それを代用する追加のコードなしで最後のScodeとして使用できる。しかしながら、デコーディングする時に、この代用のためのコード値が何であるかを知る必要があるため、Scodeインジケータを使用してそれをメインヘッダー又はセクションヘッダーに記録する必要がある。これはいくらかのビット消費を生み出す。そのため、代用はまたSPUCVグループの特定のビットクラスで停止することができ、そのうち、そのようなビット消費がさらなる代用から生じるビット節約を超える。それが特定のビットクラスで停止する時、最低の頻度を有する次のSPUCVがAABコードを使用してそれ自体を2つのScodeに分割し、1つのScode(最後から2番目のScode)はこのScodeチェーンの前の1つのScodeを代用し、そして後のもう1つ(最後のScode)が自体を代用する。例えば、図表58bにリストされる代用コードを使用して、代用が11ビットクラスで停止した場合、SPUCV 101111−11110(Scode 2)は、そのクラスで次の最低頻度を有するSPUCV 01011−101011(Scode 3a)で代用しなければならず、それがSPUCV 01011−101011−0(SPUCV 01011−101011自体を代用する)とSPUCV 01011−101011−1(Scode 2、SPUCV 101111−11110を代用する)に分けられる。ただし、Scode 3bは値が欠落するコードなので、Scode 2の代わりに使用する場合は、コードを分割する必要はない。従って、これらの特殊コードを使用するために必要なビット消費に応じて、どのビットクラスでそのような連続コード代用を停止するかを決定することができる。しかしながら、この実例において80,000ビットのランダムデータセットを使用することによって、どのコード値をブラックホール0とブラックホール1として使用するかを決定するための選択基準として4:1の頻度範囲比率を使用する場合、デジタルデータブラックホール、AABエンコーディング、及び連続コード代用技術によるビット節約数は、使用される特殊コードのビット消費をカバーするのに十分ではない。ランダムデータセットを800,000ビットに増やすと、明らかに頻度範囲(即ち4:1)をより低い比率に縮小し、このデジタルデータブラックホール技術を用いても、これらのランダムデータを圧縮する可能性がない。
しかしながら、デジタルデータの高い頻度範囲比率及び少ないランダムビットにより、ビット節約数が使用される特殊コードインジケータのビット消費をカバーするのに十分である。例えば、頻度が14である12ビットのSPUCV 111111−101011、12ビットクラスにおける最高のものを、欠落しているSPUCV 111111−111110とペアリングするためのブラックホール0として使用して、(例えば前方吸収を使用して)その前のPUCVを吸収する。このDDBのペアを使用することは非常に簡単である。12ビットクラスの64個の固有コード値が存在し、2つのDDBのそれぞれには、それらを識別するためのそれぞれの特殊コードインジケータとして6ビットが必要である。これは12ビットを必要とする。ブラックホール1は欠落するコード値であるため、Scodeで代用する必要がなくなる。従って、前記80,000ビットのランダムデータセットに対して、ビット節約数は14から12ビットを減算することであり、2ビットに相当する。
これは明確なサインと実例であり、ある場合に、ランダムデータを圧縮することができるため、ランダムデータが決して圧縮できないという情報理論における鳩ノ巣の原則の神話を破る。さらに詳しく調べると、全ての場合にあらゆるサイズのランダムデータを圧縮するための法則のパターンがいくつか見つかることははっきりと言える。そして、別の実例も後の段落0134の、ランダムデータを圧縮する機会を増やすために別の技術をどのように使用するかの図表60の議論に示される。従って、上記の技術の組み合わせは、圧縮に適格なデータセット、即ち4:1よりも大きい頻度範囲比率の頻度範囲要件を満たすデータセットを圧縮するために用いられ、その比率が高いほど、成功した圧縮に使用されるランダムデータセットのサイズが小さくなる。サイズが無限のランダムデータセットを使用してCHANフレームワーク下で設計できる無制限エンコーダがあるため、上記技術を使用する(又は以上に説明された不均一データ技術及びその他の新たに発明された技術等、例えば、以下の段落0134の図表60に導入される技術又は他の賢い人々が設計するそれらの技術のような他の追加技術と組み合わせて使用する)ことを試して、特定サイズの特定のランダムデータセットに対して、対応する頻度範囲比率パターンを識別して圧縮するために使用する。そのため、使用されるデータセットのサイズ(又は処理するためにそのように定義された特定サイズのセクションに分ける)及び高ビットクラスにおける最大頻度コード値と低ビットクラスにおける最小頻度コード値間の頻度範囲比率(例えば図表58cに示される)は、デジタルデータセット(ランダムデジタルデータセットであるか否かに関わらず)の2つの特徴であり、前記特徴は、デジタルデータセットのパターン又は法則を識別し、上記技術の組み合わせにより成功裏に圧縮することを可能にするために用いられる。
上記段落0131はCHANコード技術、即ち連続代用を開示し、デジタルデータブラックホール技術と共に使用される時、ランダムデータセットが対応する頻度範囲特徴の要件を満たす場合に、CHANフレームワーク下で設計された適切なエンコーダの下で、情報理論における鳩ノ巣の原則の神話を破ることに役立つ。従って、適切な場合には、異なるPUCV及びSPUCVグループの異なるMax数及びビット数を使用することによって、本明細書で概述される方法と同じ方法を使用して他の設計されたエンコーダと同じ方法で完了することができる。さらなる実施形態は、CHANフレームワークを使用するエンコーダの異なる組み合わせ、異なる技術又は方法を使用する他の異なる解決手段も含むことができる。
本明細書で紹介されたデジタルデータブラックホール(DDB)は様々な形態を取ることができる。それは、AABコードを使用して前又は後又は前後の両方からバイパスのコード値を吸収(即ち表示)することができる(例えば、ビット0又はビット1を使用して代用コードを、2つのコード値がコード値のバイパス吸収又は表示と見なされることを代表する2つの形態に分割し、そのうち分割代用コードで表されるコード値はデータセット内の任意の箇所に現れてもよい)。後のコード値を吸収するためにDDBを使用する方法がより簡単である。前にコード値を吸収する場合に、2つ又は連続的な複数のDDBが現れることに注意する必要がある。DDBとして指定されたコードがリンクされる時、各DDBに対応するAABコードがまず順に格納されなければならず、且つ最後のDDBのADBコードを処理した後に、このようなAABコードは逆の順序で配置されなければならず(即ちAABコードの逆配置技術を使用して、デコーディング後の前のコード値が別のDDBを形成することができるか否かをチェックし、且つ必要に応じて対応するコードのさらなるデコーディングを行う)、それによりデコーディングする時に、吸収されているコード値をデコーディングするためにAABコードを正しい順序で解釈することができる。また、エンコーディングコード出力ストリームの第1エンコーディングコード値として現れるDDBが、前にコード値のDDBを吸収したか否かを区別するために、ビットコード、即ちビット0又はビット1(関連する区分ビット)を使用する必要もある(もしそうであれば、上記の区別するビットは吸収されるコード値を表すAABコードにも従わなければならず、もしそうでなければ、上記の区別するビットは十分である)。ブラックホールが2つの方向にコード値を吸収することについて、ビット節約数はもっと多くなる可能性があり、それは2つのAABコードが使用でき、そのうち1つは前及び後に吸収される各コード値に用いられる。いくつかのDDBが集まる時、より複雑になる。従って、DDB衝突の各可能な状況又はシナリオをさらに解析し、次にエンコーディングをどのように完了するかを処理する法則を確立すべきである。例えば、何らかの理由でAABコードの逆配置を使用したくないと、例外法則が設定でき、即ち、2つのDDBが連続的に現れる時、一方が、関連コード値(即ち他のDDB)を吸収しないように、対応する吸収方向で停止してAABエンコーディングを行う。この例外法則は一方向又は双方向の吸収のために設計される。DDBを使用して前又は後又は前後の両方にコード値を吸収するために、それに関連するAABコードを正確にデコーディングすることができるように、関連するヘッダーにDDBタイプのインジケータも含むことができる。さらに、前又は後に表されるコード値は、対応するDDBから一定の距離を置くように設計することもでき、通常、直接的に前又は後にあるコード値は、AABエンコーディングによって吸収又は表示されるが、対応するDDBの前又は後に吸収されるか又はAABエンコーディングによって表されるコード値のための一定数の位置を指定することもできる。このようにして、オリジナルのデジタルデータ入力ストリーム内で第1DDBに合ってそのような吸収又は表示を行う時、デコーディングプロセス中に任意の誤解が存在しないようにこの状況を表現するためにより詳細な法則を設計しなければならない。
上記の説明により、ランダムデータと非ランダムデータの両方を圧縮するために用いられる方法又は技術又は技術の組み合わせを以下のようにまとめることができる。
(1)ランダムデータの圧縮及び解凍
(1a)ランダムデータセットの頻度統計値を生成するためにCHANフレームワークで設計されたエンコーダを使用してデータを解析する。
このステップでは、CHANフレームワークで設計されたエンコーダを使用し、例えば、図表58に示す頻度統計値は、Max3 5ビット0ヘッドデザインコード単位エンコーダを使用して生成され、前記エンコーダは、3つの単一コード単位からなる処理ユニットと、2つの処理ユニットからなるスーパー処理ユニットとを有する。
(1b)特殊コード(又は異常コード)としてコード値を指定して特別に処理し、AABエンコーディングを使用するデジタルデータブラックホール技術、及びコード分割を使用するか使用しない連続代用技術を含む方法で新しい代用コードを形成して使用に備える。ランダムデータセットの頻度統計に基づいて、適切な頻度パターンが識別される限り、PUCV及びSPUCVを、ブラックホールコード及び代用コード等の特殊コードとして選択する。この選択は、エンコーディング及びデコーディングのための基準を基とし、例えばこの場合に、これはデジタルデータ、具体的にはランダムデータの圧縮及び解凍に用いられる。この目的のためにコードをどのように選択するかを教示する説明が以上になされ、例えば簡単に言えば、PUCV及びSPUCVグループ内のビットクラスに従って、それらの頻度に基づいて特殊コードを選択し、例えば、各ビットクラスの最高頻度のコード値はブラックホール0の候補であり、各ビットクラスの最低頻度のコード値は代用コードの候補であり、そのうちの1つ(例えば代用コード0)がブラックホール1として使用され、AABエンコーディングを使用して前又は後又は前後の両方のコード値を表示(又は吸収)するためにブラックホール0のコードとペアリングされる。従って前記特別な処理は、コード分割の有無に関わらず、新しい代用コードを形成して使用するために、AABエンコーディング及び連続的に代用されるデジタルデータブラックホールを使用する。ブラックホールコードに関連するAABコードは、単独したAABコードファイルを使用してそのようなAABコードを格納する代わりに、ブラックホールコードの後に配置してメインエンコーディングコード出力ファイルにマージすることができ、且つ単独したAABコードファイルを使用して、適切な場合にAABコードを格納するように決定することもできる。上記特殊コード用のインジケータ(特殊コードインジケータ)はブラックホールインジケータと代用コードインジケータを含み、特殊コードインジケータとセクションサイズインジケータ(下記参照)は関連するヘッダーに記述する必要がある。エンコーディングを容易にするために、その部分がこの特別な処理を行ってビット節約を生み出すのに十分に大きい限り、デジタルデータ入力全体を、少数の2進数ビット、ある一定数の2進数ビットからなるセクションに分割することができ、例えば1つのセクションとして80000ビットを使用して処理し(例えば、1つの部分が1つの2進数ビットだけで構成されると、ビット節約が達成されない可能性があるので、この意味のない仮定は二度と起こさない)、そのセクションが小さければ小さいほど達成可能なビット節約数は少なくなるため、大きいビットサイズを使用するセクションは、その部分に対して、より多くのビット節約数が達成できることを意味し、ただし、データ解析の速度も遅くなる可能性があるため、ビット節約とエンコーディング速度のバランスを取る必要がある。そのため、セクションのサイズインジケータを使用して(対応するセクションヘッダーに書き込む)、処理中のセクションのビットサイズを示す。セクションを使用すると、セクション境界を横切るPUCV又はSPUCV(例えば、80,000ビット)は、セクション境界の前のセクションとして処理され、又は新しいセクションとして処理され、そして、それに応じてセクション境界を調整する。
(1c)ランダムデータを圧縮するためのエンコーディングプロセス:
従って、ランダムデータを圧縮するためのエンコーディングプロセスは、
(i)デジタルデータ入力を読み取って解析して、ランダムデータセットの頻度統計値を生成するために、CHANフレームワークで設計されたエンコーダを使用するステップと、
(ii)特別に処理するために特殊コードとしてコード値を指定し、処理がAABエンコーディングを使用するデジタルデータブラックホール、及びコード分割を伴うか又は伴わない連続代用を含み、それにより新しい代用コードを形成して使用に備えるステップと、
(iii)コード値を読み取り、コードが通常コードか特殊コード(ブラックホール0及びその他のScodeを含む)であるかを区別し、このように読み取られたコード値をエンコーディングし、適切な場合に特別な処理(本明細書の特別な処理は、DDBに合う時にAABエンコーディングを使用するデジタルデータブラックホール、又は特殊コード、即ち代用コードに用いる代用コードマッピングテーブルを含み、それにより適切な場合に連続コード代用を行う)を応用し、且つ適切な場合に上記ステップ(1cii)の指定、コード分割を伴うか又は伴わない連続代用の設計法則、及びAABコードテーブル法則に基づいて、エンコーディングされたコードを出力ファイルに書き込み、ブラックホールによって吸収されたコード値のためのAABコードを生成し、AABコードは、適切な場合に、単独したAABコード出力ファイルとして書き込まれるか又はメインエンコーディングコードファイルにマージするように書き込まれるステップと、
(iv)適切な場合(エンコーダにまだ埋め込まれていない場合)に、メインヘッダー及びセクションヘッダーにインジケータを書き込み、そのようなインジケータが、適切な場合にチェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、周期数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータを含むステップとを含む。
(1d)ランダムデータを圧縮するためのデコーディングプロセス:
ランダムデータを解凍するためのデコーディングプロセスは、
(i)CHANフレームワークで設計されたエンコーダを使用してエンコーディングされたコードファイルを読み取り、解析するステップと、
(ii)適切な場合に、上記ステップ(1cii)の指定、コード分割を伴うか又は伴わない連続代用の設計法則及びAABコードテーブル法則に基づいて、コード値をデコーディングし(即ち、適切な場合にコード値用のコードマッピングテーブルを代用する)、且つデコーディングされたコードをデコーディングされたコードファイルに書き込み、ヘッダーに記録された(又はデコーダに埋め込まれた)AABコード及びインジケータを検索して、ブラックホールによって吸収されたコード値をデコーディングし、且つそれらをデコーディングされたコードファイルにおける適切な位置に書き込むために用いられるステップとを含む。
これは、また、図表58cにリストされるプログラムによって生成された72,003ビットのランダムデータの頻度分布の実例により、前記行を、
if not FileExists('ff') then GenerateRandomFile('ff',10000)を
if not FileExists('ff') then GenerateRandomFile('ff',9000)
に変更することにより、ランダムデータが圧縮可能であることを証明する。
そのような頻度分布の実例は、以下の図表60aにリストされる。
図表60a
Max3 5ビット0ヘッドデザインコード単位エンコーダによって読み取られた72,003ビットランダムデータセットのコード値の頻度分布
000 2004 ( −1 )
1100 1059 ( 0 )
0011 1034 ( 0 )
0110 1023 ( 0 )
0010 987 ( 0 )
1000 982 ( −1 )
0100 914 ( −1 )
10011 546 ( 0 )
11100 541 ( 0 )
11010 523 ( 0 )
10110 517 ( 0 )
01110 506 ( 0 )
01111 502 ( 0 )
01011 499 ( 0 )
10010 484 ( 0 )
01010 477 ( 0 )
11110 476 ( 0 )
11011 470 ( 0 )
10100 470 ( 0 )
111011 264 ( 1 )
101010 261 ( 1 )
111110 259 ( 1 )
111010 250 ( 1 )
101111 248 ( 1 )
101011 244 ( 1 )
111111 237 ( 1 )
101110 227 ( 1 )
合計ビット:72003
aab増加量:−1910

27x27
000−000 199
000−1100 148
000−0100 142
… (リストが非常に長いため関係しないコード値をジャンプする)
11011−10100 17
111111−1100 17
101010−10100 17 11ビットクラスにおける最高頻度
101111−0100 17
10110−10100 17
0011−111110 17
10010−11100 17
0110−111011 17
10100−10011 17
0010−111110 17
10100−01010 17
1000−111010 17
01110−10011 17
111110−0011 17
01010−10110 17
111110−0110 17
10011−01110 17
01111−01011 17
111110−1100 17
01011−01111 17
01010−10011 17
01011−10110 17
11110−10010 17
11100−10010 16
11110−01110 16
10110−10011 16
0100−111010 16
01110−11110 16
11010−10100 16
11100−10100 16
0110−101110 16
101011−1000 16
101111−0110 16
1100−111011 16
111010−0011 16
0011−101011 16
01110−11011 16
101011−11010 16 11ビットクラスにおける2番目に高い頻度
10100−10100 16
01110−10010 16
111011−0011 16
01111−11110 16
11100−01011 15
01010−11010 15
1000−111110 15
11010−11010 15
11010−01111 15
11011−11110 15
101111−0010 15
10011−11010 15
11100−11010 15
11010−01110 15
11011−11010 15
111111−0010 15
101011−1100 15
0011−111011 15
101010−0010 15
1100−111110 15
0100−111011 15
01111−10010 15
1100−101010 15
01110−11010 15
11100−11011 15
101110−10011 15 11ビットクラスにおける3番目に高い頻度
11100−10011 15
10011−11011 15
101110−0110 14
01110−11100 14
10100−10110 14
01110−10110 14
11011−01111 14
101010−1000 14
10011−101010 14
111010−11110 14
111010−01111 14
01010−11011 14
01011−11110 14
111110−0100 14
11110−01011 14
01111−11100 14
11010−111011 14
11110−10100 14
11110−01111 14
111011−11100 14
0100−101010 14
0100−101111 14
111111−0011 14
11100−01110 14
111111−1000 14
0010−111011 14
111011−1100 14
0010−111010 14
1000−101110 14
0010−101010 14
10110−10110 14
10110−01010 14
10110−01011 14
10110−101011 13
10100−11100 13
10011−10100 13
01011−01011 13
01011−10010 13
111110−01010 13
101011−0110 13
0011−111111 13
10010−10100 13
0100−101011 13
11011−11100 13
101111−0011 13
101111−10110 13
0110−101010 13
0010−101011 13
10100−10010 13
10010−10011 13
01011−111111 13
101010−0011 13
111010−10010 13
111010−1100 13
01111−10110 13
111010−0010 13
01010−11100 13
01010−10010 13
11110−01010 12
01111−11010 12
111011−10100 12
111111−10011 12
11010−11110 12
111011−01110 12
1000−111111 12
01110−101011 12
11100−111010 12
11100−101110 12
111111−10110 12
11011−01010 12
10100−11110 12
11100−01111 12
10010−101010 12
101010−01010 12
1100−101111 12
01110−01111 12
111110−10011 12
10011−111110 12
101110−0100 12
01010−11110 12
01110−01011 12
01111−01111 12
111011−01010 12
0110−101011 12
0110−111111 12
101110−0011 11
101011−01010 11
101110−1000 11
111110−11100 11
111111−0110 11
111011−101010 11 12ビットクラスにおける最高頻度
11011−101110 11
111011−10110 11
101010−11100 11
101010−10110 11
101010−10011 11
111010−101011 11 12ビットクラスにおける2番目に高い頻度
10010−01111 11
10010−10010 11
10010−01110 11
01010−101011 11
10100−01011 11
01010−101010 11
01110−111110 11
11100−111111 11
0100−111111 11
01011−11100 11
1100−111111 11
1100−111010 11
11010−10110 11
11100−01010 11
11010−01010 11
11010−11011 11
101011−10110 10
11110−11011 10
111011−0110 10
01110−101111 10
0110−101111 10
0011−101110 10
11010−111111 10
1000−101010 10
101011−10010 10
0010−101111 10
11110−111111 10
101111−11100 10
111010−0100 10
111010−1000 10
111010−11011 10
10010−101011 10
101010−01110 10
11110−11110 10
111110−11110 10
111110−01111 10
111110−10110 10
11011−11011 10
111111−0100 10
11100−111011 10
11100−101111 10
11011−01011 10
111111−11100 10
101110−10100 10
0100−101110 10
11110−10011 9
111010−01011 9
10110−101010 9
10010−111110 9
10011−101111 9
11010−101010 9
11010−101111 9
11100−101010 9
11011−111011 9
10100−101110 9
111111−10010 9
101110−11100 9
01011−111011 9
111111−01010 9
10010−101111 9
101110−01111 9
101110−01010 9
11100−111110 9
101110−10110 9
101011−11110 9
111011−01111 9
111011−11010 9
10100−111011 9
01011−11011 9
10010−111011 9
11010−111110 9
101010−10010 9
111011−0100 9
111010−11100 8
11011−101010 8
111010−01010 8
101111−101111 8 12ビットクラスにおける3番目に高い頻度
101011−111010 8
11010−101110 8
101011−11100 8
101011−11011 8
111111−11110 8
11011−10110 8
11110−101011 8
111111−11011 8
01111−111110 8
111111−101111 8
11010−111010 8
01010−111010 8
111110−11011 8
11100−101011 8
01011−01010 8
01011−111010 8
01011−101011 8
10011−111011 8
101010−01011 8
111011−01011 8
101110−11110 8
111011−101111 8
10011−101110 8
01110−01110 8
01110−111111 8
111010−10100 8
10010−01011 8
111111−01111 8
111111−01110 8
101111−10010 8
101111−01111 8
10011−111111 8
111110−1000 8
11110−101111 7
01111−101011 7
111010−01110 7
01111−111011 7
11110−101110 7
01111−01010 7
111111−10100 7
111110−111010 7
01010−10100 7
01010−01110 7
111111−111011 7
01011−101010 7
01111−111111 7
01110−111011 7
101010−11110 7
11011−111110 7
101011−10011 7
10110−111010 7
11011−111010 7
101110−11011 7
101111−01011 7
101011−01011 7
101010−0100 7
101110−01011 7
101010−11010 7
101010−11011 7
10011−101011 7
101111−10011 7
01110−101110 7
10011−111010 7
111010−10011 6
101111−01110 6
111010−11010 6
01010−111011 6
101111−10100 6
01110−01010 6
101010−101110 6
10010−111010 6
01011−101110 6
111110−111110 6
111110−01110 6
101110−101010 6
101111−11010 6
101110−111111 6
111110−10010 6
01110−111010 6
10110−111011 6
11110−101010 6
10100−111111 6
01111−101010 6
101011−01110 6
10110−10010 6
10110−111110 6
01111−101110 6
11110−111010 6
101011−10100 6
11011−111111 6
01111−101111 6
101010−111110 5
10100−101111 5
10100−101010 5
111110−101010 5
10010−101110 5
101010−111111 5
101011−01111 5
101010−101010 5
01111−111010 5
01110−101010 5
101010−111010 5
111110−10100 5
111110−01011 5
111111−111111 5
01010−111110 5
10110−101111 5
11110−111110 5
111111−01011 5
101111−101011 5
11110−111011 5
101110−11010 5
101111−01010 5
111011−11110 5
101011−111111 5
10010−111111 5
11010−101011 5
111011−111011 5
111010−101110 5
11011−101111 5
10100−101011 5
10100−111010 4
101110−01110 4
111011−111111 4
101110−10010 4
111111−11010 4
111011−10011 4
111011−10010 4
111011−111010 4
111011−11011 4
101111−111110 4
01010−101110 4
101111−111111 4
01011−111110 4
101011−0011 4
01010−111111 4
111010−111010 4
111010−111011 4
101111−11110 4
101111−101010 4
111110−101111 4
111110−101011 4
111110−11010 4
01011−101111 4
10110−111111 3
101111−11011 3
10100−111110 3
111010−101111 3
111010−101010 3
111111−111010 3
101011−111110 3
111111−101010 3
111111−101110 3
101111−111011 3
101011−101010 3
10110−101110 3
101111−111010 3
101010−111011 3
101110−101011 3
101110−101111 3
101110−111110 3
111110−111111 3
111110−111011 3
101010−01111 3
111011−111110 3
111010−111110 2
111111−101011 2
101011−101110 2
101010−101111 2
111110−101110 2
111010−10110 2
111111−111110 2
111010−111111 2
01010−101111 2
101011−101011 1
101011−101111 1
111011−101011 1
101110−111010 1
111011−101110 1
101111−101110 1
101011−111011 1
101010−101011 1
11011−101011 1
101110−111011 1
101110−101110 0 Blackhole1 ブラックホール1
図表60b
図表60aの頻度統計値を用いた12ビットクラスSPUCVの頻度カウントの分布
頻度カウント 12ビットクラスの固有SPUCVの数
0 1 SPUCV 101110−101110をブラックホール1とする
1 9
2 7
3 16
4 9
5 10
6 4
7 2
8 4
9 0
10 0
11 2 SPUCV 111011−101010及び111010−101011のいずれかをブラックホール0とする
合計:64個の固有コード値
上述したように、ランダムデータセットサイズを小さい値ff=9000に調整して図表60aを生成し、且つ図表60bは、図表60aを使用する頻度統計値が12ビットクラスにおけるSPUCVの頻度カウントの分布である。図表60bに示すように、最高頻度のカウントが11個のコード値は2つある。ゼロ頻度カウントを有するブラックホール1とする欠落するSPUCV 101110−101110とペアリングするために、第1個又は第2個(即ちSPUCV 111011−101010及び111010−101011)をブラックホール0として選択する。任意の1つを使用すると、ビット節約数は11ビットだけであり、且つ従来の方法を使用して計算された2つのブラックホールインジケータのビット消費は12ビットである。それは明らかに適切な方法ではない。従って、ブラックホールインジケータに必要なビット長を短縮するために別の新しい技術を設計することができる。これも範囲の概念を使用している。
この12ビットクラスのコード値、即ちブラックホール0である、最高頻度カウントを有するSPUCV 111011−101010を使用し、12ビットクラスのSPUCVの最高頻度のために下限値を提供する。2ビットを使用することができ(ここで使用される2進数ビットの数は、処理されているデジタルデータセットから決定される頻度パターン又は規則性に基づいて調整できる)、それにより第2最高頻度カウントの12ビットコード値が、それに隣接しているビット長に関してどれだけ離れているかをを示すために用いられる。2ビットインジケータは4ビットのビット長スパンを与えることができる。ほとんどの場合に対して十分である。この目的のために十分ではなく、且つ最高頻度の12ビットコード値が設計及び選択されたビット長の範囲外であると、それを非圧縮性ランダムデータと見なすことができる。従って、ビット00は11ビット、ビット01は12ビット、ビット10は13ビット、そして、ビット11は14ビットのSPUCVに用いられる。SPUCV 111011−101010が11ビットであるため、それに使用されるインジケータはビット00である。
ブラックホール0として最高頻度を有するコード値、及びブラックホール1として値が欠落するコード値を選択すると、エンコーディングした後、エンコーディングされたコードを解析し、以下の図表60cに示すように12ビットSPUCVの頻度カウントの分布は1になる。
図表60c
図表60aの頻度統計値を用いたエンコーディングされたコードにおける12ビットクラスのSPUCVの頻度カウントの分布
頻度カウント 12ビットクラスの固有SPUCVの数
0 0
1 9
2 7
3 16
4 9
5 10+1 SPUCV 111011−101010をブラックホール0とする
6 4+1 SPUCV 101110−101110をブラックホール1とする
7 2
8 4
9 0
10 0
11 2−1 SPUCV 111010−101011
合計:64個の固有コード値
この仮定は、ブラックホール0とブラックホール1の3/4ビットのPUCVと5/6ビットのPUCVの頻度カウントの分布が、オリジナルの12ビットのSPUCV 111011−101010の比率を維持することを基とする。
上記の説明が正確であると仮定すると、設計された固定のブラックホール0を使用して3/4ビットのPUCVを吸収し、ブラックホール1を使用して5/6ビットのPUCVを吸収することができる。変動がないと、エンコーディングされたコードを解析して、3/4ビットのPUCVの半分と5/6ビットのPUCVの半分はどちらが大きいことを知ることができる。変更を許可すると、どの12ビットコード値がブラックホール0であるかを示すために1つのビットを使用することができ(例えば、自然数順序で最初に現れるもの)、後にどのコード値が5つの頻度カウントと6つの頻度カウントの各グループから由来するかを決定し識別した後、ブラックホール1は自然に知られている。5つ及び6つの頻度カウントグループからこの2つのDDBを識別するために、合計55個の選択肢(即ち、10+1=11及び4+1=5、及び11*5=55)がある。そのため、それは5〜6ビット(AABエンコーディングを使用する)を使用してこのような識別を行う。従って、ブラックホール0の頻度カウントを示す2ビット、どのDDBコード値が値を欠落させるコード値であるかを示す1つのビット、及び2つのDDBを識別するための5〜6ビット、合計8〜9ビットを使用する。従って、2〜3ビットに相当する11ビットから8〜9ビットを引いたビット節約数が得られる。
しかしながら、2つのDDBがエンコーディングされたコード内のどこ(即ち、どの頻度カウントグループ)に見つかるかについてある程度の変動を許可することができる。可能なグループは5と6個の頻度カウントグループ、4と7個の頻度カウントグループ、3と8個の頻度カウントグループ、2と9個の頻度カウントグループ、1と10個の頻度カウントグループ、合計5個の可能なグループである。しかしながら、2/9グループ及び1/10グループは排他的であることが極めて確実的であるため、4つの可能なグループが依然として存在する。そのため、そのような可能性を示すために2つ以上のビットを与えることができる。しかしながら、2ビットを与えることは、2つのDDBが5/6と6/7の頻度カウントを超えるグループにある機会が少ないので、必要とされないことがある。且つ、それらは再び非圧縮性ランダムデータとして分類することができる。従って、1ビットを使用して、2つのDDBが入る頻度カウントグループのこのような変動を可能にすることができる。
ブラックホール0及びブラックホール1の2つの特殊コードインジケータのビット消費が、異なるグループに入ることは、5/6頻度カウントグループ用の5〜6ビット、4/7頻度カウントグループ用の4〜5ビット(10*3)である。
従って、頻度カウントグループが2つのDDBに用いられると、ビット節約数は2〜3から1〜2ビットまで1ビット削減される。グループが4/7である場合、ビット節約数は、2〜3ビットからDDBの頻度カウントグループを示すための1ビットを引き、且つ2つのDDBの特殊コードインジケータのビット消費の減少による1ビットの増加が発生するため、同じままである。従って、ビット節約数は、1〜2ビット又は2〜3ビットのいずれかである。
従って、これは、処理されているデジタルデータセットから収集された情報(即ち、頻度カウントグループに関する統計データ)を使用して、例えばDDB用の特殊コードインジケータ等のインジケータビット消費を削減する技術である。
圧縮データと非圧縮データを区別するためのインジケータとして使用するために1ビットを与えると、結果は損益分岐点になるか、1〜2ビットの節約になる。使用されているエンコーダによってサンプリングされたPUCVの頻度分布の規則性を考えると、2つのDDBが3/8グループに分類される可能性は非常に小さいか又は低いため、2つのDDBの分類の確率の順位は、まず5/6グループ、後に4/7グループ、次に3/8グループ、さらに2/9グループ又は1/10グループに入る。そして、上記のように、DDBが5/6及び4/7の頻度カウントグループのグループに入らないと、ランダムデータセットは非圧縮データとして分類される。これらのデータは、上記圧縮/非圧縮データビットを使用する。
ff=9,000を用いて上記頻度分布の実例を生成することによって約8つの実例を生成し、値を欠落させていない12ビットのコード値が1しか存在しないことが判明している。従って、これまでに紹介した技術を用いたビット節約の可能性がより高いことを意味する。
別の実施形態では、11ビットクラスの最高頻度のコード値SPUCV 101010−10100をブラックホール0として、ブラックホール1、SPUCV 101110−101110とペアリングすると同時に、適切な場合にも同様の方法でインジケータビット消費を削減する技術を使用する。
CHANフレームワーク下で設計された異なるエンコーダ下でサンプリングされた異なるサイズのランダムデータの頻度分布に関するより規則的なパターンがマージされると予想され、それらの確認された規則に対して、より細かい法則及び新しい技法が開発される。これらのビットインジケータの用途及びその各自のサイズは、異なる実施形態では調整され、調整は、ランダム又は非ランダム、デジタルデータセットのサイズ、特定の頻度パターン又は規則に関わらず、CHANフレームワークで設計された異なるエンコーダを使用することによって確認される。
従って、本発明に導入された技術は、ランダムデータを圧縮する際にそれらの有用性を示した。また、これらの技術は、ランダムデータセットから識別された規則パターンに関する情報を参照として使用して、非ランダムデータを圧縮し、解凍することにも適用される。
(2)非ランダムデータの圧縮及び解凍
以上の(1)に示される方法を用いてランダムデータを圧縮することができるので、非ランダムデータを圧縮するために同じ方法を使用することもできる。特殊コードの指定を決定する際に、非ランダムデータの性質を考慮する必要がある。基本的には、この場合に、ビット使用節約を達成するという目的が同じであるため、特殊コードを指定するための論理は、ランダムデータを圧縮する場合と同様である。しかしながら、ランダムデータは非ランダムデータが従わないいくつかの規則性に従っており、且つ非ランダムデータセットのデータ割り当ては非常に異なる可能性があり、これは特殊コードを指定する時にいくつかのそのような変化を満たすべき原因であり、且つそのような変化に適応するためのより適切な技術の使用がより望ましい。従って、特殊コードを指定するために、適切な場合、以下の法則を作成し、それに従うことができる。
(2a)非ランダムデータセット内のPUCVが欠落する可能性:
非常に少ないランダム又は非ランダム2進数ビットのセクションを処理することは、ビット節約を達成することができない可能性があり、ヘッダーに記録されるインジケータに使用されるビット消費を補償することに十分ではない可能性がある。従って、同様に、非ランダムデータのセクションサイズは非常に小さいべきではない。しかしながら、非常に大きなサイズであっても、非ランダムデータセットは、データセット内に1つ以上のPUCVが欠落する可能性がある。そして、このようなPUCVが欠落した現象は、適切な場合には十分に活用することができ、その結果として、そのような欠落したPUCVを特殊コード、ブラックホール1又は他のScodesとして指定することができる。ブラックホール1として機能するために、基準について、選択されるコード値は、選択されたブラックホール0よりも1ビット長いべきではなく、原因は、ブラックホール1が前又は後のコード値を吸収するためのAABコードを使用し1ビットだけ節約することができることである(現在の議論には、ブラックホールがコード値を単方向に吸収することを仮定し、それに応じて、ブラックホールによる双方向吸収のための規則を調整することができる)。そのため、ビット長が1ビット長いブラックホール1としてScode 0を使用することは、データ拡張を意味し、データ圧縮の目的を達成する方向に向けない。従って、ランダム及び非ランダムデータの両方に対してデータ圧縮を行うための法則(ブラックホールと連続コード代用技術の使用によって影響されない他のコード値が同じビットサイズのエンコーダを使用してエンコーディングされると仮定して、読み取りエンコーダ自体は同じビットサイズのエンコーダクラスの書き込みエンコーダとして使用され、上記のように、エンコーディングするために読み取りエンコーダではなく、同じビットサイズのエンコーダを使用することは、データ拡張もデータ縮小もない暗号化の形式を表す)について、ブラックホールを使用することから生じるビット利得は、代用コードの使用及びヘッダーで使用されるビット消費から生じるビット損失よりも大きくなければならない。
従って、前記トップレベル法則下で、圧縮及び解凍されるデジタルデータセットのデータ割り当て、及びデータ処理が使用されるアクティビティの目的に関する実際の状況に応じて、他の法則を緩和することができる。欠落しているPUCVがない場合を論じた後に、PUCVが欠落する非ランダムデータセットを圧縮するために使用することができる技術についてさらに論じるべきである。
(2b)非ランダムデータセットにPUCVが欠落しない:
上述したようなデジタルデータブラックホール及び連続コード代用がランダムデータの圧縮に用いられるため、このような技術を非ランダムデータの圧縮に使用することもできる。非ランダムデータは大きく変動し、予測もできないが、同じビットサイズのランダムデータセット(例えば実例に使用された80,000個の2進数ビット)の頻度分布統計値を参照(上記のようにCHANフレームワークで定義されたエンコーダを使用して取得される)として使用して閲覧及び比較すると、デジタルデータブラックホール及び連続コード代用技術を使用する方法は、PUCVを欠落させない場合に、非ランダムデータセットを圧縮するためにも使用されると結論づけ、この結論は合理的である。PUCVが欠落していない場合、ブラックホール1として機能する追加のコード値を提供するには、コード分割の有無に関わらず連続コード代用を使用する必要があり、それによりブラックホール0と連携してAABコーディングを使用して他のコード値を吸収する。非ランダムデータセット内の任意のビットクラス内で最高頻度を有するコード値の頻度は、ランダムデータセットの同じビットクラス内の対応するコード値の頻度よりもはるかに高い可能性があると予想される。1つのビットクラスに対してそうでなければ、そのような現象は別のビットクラスにおいて見出されるであろう。頻度が最低のそれらのコード値についても同じであると言える。また、ランダムデータセットの使用から推定される参照を使用して、以下の規則に従うことができる。
(i)非ランダムデータセット用の1対のブラックホール0とブラックホール1の頻度差の範囲は、同じサイズのランダムデータセットよりも大きいべきであり、又はランダムデータセット内の対応する1対の頻度差は、ブラックホール0の頻度がブラックホール1の頻度の4倍以上でなければならず、且つブラックホール1のビット長がブラックホール1のビット長よりも1ビット以上長くてはいけなく、つまり、ブラックホール1は、処理中のデータセットで発生する頻度が少ない可能性があり、本明細書における規定よりもビット長が短くなる可能性があり、これは、他のコード値がこれらの要件を満たすことが発見すると、これらのコード値がブラックホール1としても使用できることも意味する。
ブラックホール0の頻度>=ブラックホール1の頻度の4倍
それに加えて
ブラックホール0のビット長がブラックホール1のビット長よりも1ビット短くない
(ii)この場合に処理中のデータセットにコードが欠落しないので、ブラックホール1のコード値は、ブラックホール0を代用するための借用使用されるコード値(即ち、それ自体はScode 0である)であり、そのうち吸収されたコード値の半分は、対応するAABコードによって表され、あるコード値は別のコード値で代用される必要がある。上記のように、これは連続コード代用が役立つようになるべき場合である。この連続コード代用のための法則は以下のとおりである。
合計された全てのScodeの合計頻度=<Scode 0の頻度
それに加えて
各連続的なScodeの頻度は=<代用されるコード頻度の半分であるべきである
それに加えて
各連続的なScodeのビット長は、代用されるコードのビット長よりも1ビット長くなるべきではなく、それがより長く、1ビット増加すると、1ビット増加するたびに、そのような連続的なScodeの頻度がさらに半分減少すべきである。
全てのScodeの合計頻度が低いほど、ビット長が短いほど、以上の指定法則がよくなる。上記の法則を満たすと、他のコード値をScodeとして使用することもできる。
上記のようなデジタルデータブラックホール及び連続コード代用の方法を使用して、関連する非ランダムデータセットが圧縮処理できないことは稀である。適切な場合には、これに関連して、2017年2月22日に本発明の優先権主張の下に出願されたPCT/IB2017/050985を参照することができる。
上記の法則を使用した後、要件を満たすブラックホールを識別することができない可能性があり、発生するコード値が、特定のビットクラスにかなり集中していることは確かであり、例えば3ビットクラス及び単一コード値(即ち000)に集中する。この場合に、PUCV 000を圧縮するために、次のAABコードテーブルを使用して選択することが検討できる。
図表61a
PUCV 000に高度に集中しているコード値を生成するためのAABコードテーブル

1000
1001
1010
10110
10111
11000
11001
11010
110110
110111
111000
111001
1111000
1111001
11110100
11110101
11110110
11110111
11111000
11111001
11111010
11111011
11111100
11111101
11111110
11111111
図表61b
コード値がPUCV 000に集中するためのAABコードテーブルは、4ビットのPUCVで欠損が発生する時に適用され、数が少ない4ビットのPUCVを有するデータセットに適用される。
00
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
111100
111101
111110
111111
図表61c
コード値がPUCV 000に集中するためのAABコードテーブルは、5ビットのPUCVで欠損が発生する時に適用され、数が少ない5ビットのPUCVを有するデータセットに適用される。
00
0100
0101
0110
0111
1000
1001
101000
101001
101010
101011
1011000
1011001
1011010
1011011
1011100
1011101
1011110
1011111
111000
111001
111010
111011
111100
111101
111110
111111
図表61d
コード値がPUCV 000に集中するためのAABコードテーブルは、6ビットのPUCVで欠損が発生する時に適用され、数が少ない6ビットのPUCVを有するデータセットに適用される。
00
0100
0101
0110
0111
1000
1001
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
111100
111101
11111000
11111001
11111010
11111011
11111100
11111101
11111110
11111111
図表61e
コード値がPUCV 000に集中するためのAABコードテーブルは、残りのPUCVは頻度の減少に従って降順でコード値が割り当てられる。
00
0100
0101
0110
0111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
110100
110101
110110
110111
111000
111001
111010
111011
111100
111101
111110
111111
上記の5つのバージョンのAABコードテーブル設計は、コード値のデータ割り当てに応じて応用する必要があるAABコードタイプの範囲を制限するためにコード値を複数のセクション(例えば、図表61b、図表61c及び図表61dでコード値ビットサイズによって分類する)に分割することができることを示す。従って、それが望ましく適切であると発見する場合には、より多くのこのようなAABコードテーブルを設計することができ、それにより上記の法則及び図表61にリストされるAABコードテーブルを補足する。上記の法則及び図表61は、非ランダムデータを圧縮するためにデジタルデータブラックホール及び連続コード代用技術とAABコーディング技術をどのように設計及び開発するかを証明するために作成され、それは以上の説明が網羅的であることを意味するものではなく、常に最適化するために設計及び開発し、それらを補足する。本明細書で使用されるAABコードテーブルを調整する技術は、DDBを使用して得られるビット使用利得の最大化を達成するためにDDBに関連するAABコードテーブルにも適用される。設計によれば、ビットの使用数が増加するDDBに応じて、それによって吸収されるために頻度がより高いコード値の半分(又は一部)を該DDBに割り当てる必要がある。これは、非ランダムデータセットに対して、コード値の不均一な割り当てのために、処理されているデータセットのコード値の現在の頻度分布に従って、各DDBペアに割り当てられる2つの半分を調整しなければならないことを意味する。従って、AABコードテーブルもそれに応じて調整する必要がある。従って、処理されている非ランダムデータセットのデータ割り当てに従って適切に調整する上記の法則及び上記AABコードテーブルに基づいて、PUCVが欠落しない非ランダムデータのほぼ全ての場合をカバーするのに十分であることは明らかであり、上記のAABコードテーブルは、処理されている非ランダムデータセットのデータ割り当て場合に従って適切に調整される。また、例えば80,000個の2進数ビットから10倍又は100倍に増やす等、セクションサイズを調整することもでき、これは、よりよいビット節約の機会を確実に提供する。非ランダムデータについても、上記の最良の選択肢を使用すると1つのセクションのデータを圧縮しビット節約使用数の減少をもたらし、これはデジタルデータ入力全体にビット使用の利得が存在しないことを意味しない。そのため、法則の補足の機会とさらなる最適化のためのAABコードテーブルを考慮すると、先ほど説明された方法は、PUCVが欠落していない非ランダムデータを圧縮するには十分である。
(2c)PUCVが欠落している非ランダムデータセット:
PUCVが欠落している非ランダムデータセットを圧縮することは比較的簡単で、以下の技術を使用することによって常に達成することができる。
(i)処理されている非ランダムデータセットに欠落するコード値をブラックホール1として使用して、前記ブラックホール1は、同じビットクラス又は1ビット減少したビットクラスでもブラックホール0とペアリングされ、該ブラックホール0が関連するクラスで最大頻度コード値を有し、コード値が欠落した発生頻度はゼロであるため、それを代用するために任意の代用コードを必要としない。
(ii)処理されている非ランダムデータセットに欠落したPUCVを、より長いビット長の別のコード値で代用し、そのような別のコード値は処理されているデータセットに存在する。
さらに、適切な場合に、ランダムデータと非ランダムデータを圧縮するために、1対以上のDDBを使用することを検討する必要がある。上記の方法及び技術を使用して、関連ヘッダーで使用される特殊コードのための関連インジケータを追加するか、又は適切な場合に既に論じたように使用されるエンコーダ及びデコーダにそれらを埋め込む必要がある。エンコーディング又はデコーディングされているデータセットがランダムデータセット又は非ランダムデータセットであるか否か、またどの対のDDBが使用されたか、又はどのAABコードテーブルが使用されたかを示すためにシナリオインジケータ等の他のインジケータも同じ方式で使用される。
上記の実例ではCHANフレームワークで設計されたMax3エンコーダを使用したが、他のMax数を使用したエンコーダ設計も試みることができる。従って、他の特徴の他、最も重要な区分特徴として、CHANフレームワークで設計されたエンコーダと他のエンコーダを区別するための基準は、コード単位、処理ユニット及びスーパー処理ユニットの固有コード値であり、使用される設計に応じて複数のビットサイズ又はビット長を有するか、又は異なるビットサイズ又はビット長を有する。
従って、上記で概説した方法及び技術は、ランダムであるか非ランダムであるかに関わらず、あらゆるタイプのデジタルデータを周期的に圧縮することができる(数千個の2進数ビット未満のランダムデータを含まず、厳密な制限はここでは重要ではない)。従って、上記内容を参照しながら、ユニバーサルエンコーダが本明細書において発明された。
要するには、結論はまた次のとおりである。
理解している人がその数を数える。
入力されるデジタル情報に関する仮定がないため、ランダム数又は均一に割り当てる数を問わず、どんな数でも上記の制限を条件とするリサイクル内に暗号化又は圧縮することができる。情報が爆発する現在、割り当てについてランダムであるか否かを問わず、デジタルデータの暗号化及び圧縮を周期的に可能にする方法は、生活のあらゆる面でデジタルデータの交換及び格納を利用することに頼る人類全体に大きく貢献し、それは確かに宇宙での探索及び転居のための人間の努力に貢献する。
これまで本発明に導入された最良の実施形態は、適切な場合にランダムデータ及び非ランダムデータを圧縮するためにデジタルデータをコード代用(連続又は非連続)と共に使用することである。そして、非ランダムデータについては、処理中のデジタルデータセットのデータ割り当てタイプに適応するように、他の法則及びAABコードテーブルを設計及び開発することができる。これは任意のデジタルデータセットが記述された制限に達するまで周期内にエンコーディング及びデコーディングを行うことができるという明確な証明を提供し、前記証明は、情報理論における鳩ノ巣原理の神話を終わらせ、そして今鳩ノ巣がブラックホールに合う。それは他のモードでの他のCHANコーディング技術が同じ結果及び同じ証明を生成することができないことを意味しない。他のモードを使用しても同じ結果及び同じ証明を提供することができることが予想される。
他のモードは、交互に不均一器と均一器を使用してエンコーディング及びデコーディングすること、スーパー処理ユニットを使用し、特にこのようなサブセクションのAI区別を使用するための基準を設定する技術を使用することにより、ランダムデータセットを圧縮の影響を受けやすい不均一データのサブセクション又はサブユニットに分解すること、及びサイズが異なる処理ユニットを使用し、デジタルデータ値の内容の特性又は特徴に基づいて、終了条件及び分類の基準を適切に使用してエンコーディング及びデコーディングし、且つ、特に暗号化スキーマの設計を容易にするために、数式の使用及びそれらの対応する値の配置によりエンコーディング及びデコーディングを行う。
最も重要なことは、上記の議論から分かるように、CHANフレームワークが、データがランダムであるか否かに関わらず順序を作成するために使用できるフレームワークを提供することであり、それにより該データから、統計情報を生成し、該統計情報は、処理中の特定のデータセットを記述するスキーマ[スキーマ及び設計はコード単位、処理ユニット、スーパー処理ユニットの設計(一部がより大きいサイズのスーパー処理ユニットである)、エンコーディングされていないコード単位、このタイプの情報を使用するために設計された基本インジケータを含むヘッダー、及びエンコーダ及びデコーダに内蔵されるプログラミングロジックを含み、それによりCHANコードを生成して、CHANコードファイル形式のデジタル2進数ビットで表示する]に関連付けられ、且つ適切な場合には、CHANコーディング技術の使用を可能にし、圧縮及び暗号化のためにエンコーディング及びデコーディングする。上記のように、このような前述の統計情報は、コード単位、処理ユニット、スーパー処理ユニットのサイズを含み、それらの頻度分布、データコード値のランク及び位置、及び数式で表されるような異なるデータコード値間の関係等の他の特徴情報、終了値及び終了条件、ビット0とビット1との間の比率、データ範囲等を含む。原因は、データセットのそのような特徴又は特性は、CHANフレームワーク下で記述できるため、エンコーディング及びデコーディングのために関係又は派生特性を作成する。例えば、1つの特別に有用な特性は、絶対アドレス分岐コードであり、例えば、それ自体でコード単位定義として、又は内容コードとして、又はシナリオ分類コードとして、及びAI区別を行うための基準として使用する内容コードのトリオのサフィックスとして使用され、特に、デジタルデータブラックホールと連続コード代用を組み合わせて使用し、それによりランダムデータの圧縮及び解凍を正確且つロスレスに行うことができる。そのため、CHANフレームワークは、任意のデータ割り当てに属する任意のデータセットのために順序を作成し、設計段階中に大きな柔軟性を可能にするリッチなフレームワークであり、これはフレームワーク下で記述可能にされるため、データ値間の差を捕捉するための技術が開発され、これは、例えばデータ圧縮の再循環を可能にする目的でデータ割り当ての不均一性を増加させるために、データセットのビット0とビット1との間の比率を変えるサイクルを通し、又は、対応するデジタルデータセットを(それ自体又はそれをさらに圧縮する前に)暗号化するため、処理ユニットの異なるコンポーネント間の関係を表す数式を設計することにより、真面目に操作することができる。
どのモードを使用するかについて、暗号化又は圧縮、又はその両方のためのエンコーディングの主な目的によって決められる。ただし、サイクルでの再圧縮は簡単に実行できるため、区別することは重要ではない。
本質的に、本発明の実施形態は以下のように特徴付けられる。
(1)ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、コード単位で構成され、前記コード単位は、デジタルデータセットの2進数ビットのビットコンテナの基本ユニットとして使用され、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、コード単位は、主にコード単位が収容又は表現するように定義されるデータ値の最大可能数(コード単位の値サイズ)によって分類され、ここでコード単位の各可能な固有値が同じビットサイズ又は異なるビットサイズを持つ可能性があり、且つコード単位は、後にコード単位の全ての可能な固有データ値が占めるビット数(即ち、コード単位の各可能な固有データ値が占めるビットサイズの合計)によって分類され、且つコード単位はヘッドデザイン(即ちそれが0ヘッドデザインであるか1ヘッドデザインであるか)によってさらに分類され、各実施形態によれば、CHANフレームワーク下で特定の値サイズのコード単位が異なる定義及びバージョンを有することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(2)ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、処理ユニットで構成され、前記処理ユニットが、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、サブユニットとして一定数のコード単位によって構成されることを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(3)ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、スーパー処理ユニットで構成され、前記スーパー処理ユニットが、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、サブユニットとして一定数の処理ユニットによって構成されることを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(4)ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、エンコーディングされていないコード単位で構成され、前記エンコーディングされていないコード単位が一定数の2進数ビットで構成され、これらの2進数ビットが、1つの処理ユニットのサイズにならないため、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、エンコーディングされていないコードに保持するか又はそのまま保持することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(5)ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、エンコーディングされていないコード単位で構成され、前記エンコーディングされていないコード単位が一定数の2進数ビットで構成され、これらの2進数ビットが、1つの処理ユニットのサイズにならないため、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、エンコーディングされていないコードに保持するか又はそのまま保持することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(6)ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、コード単位、処理ユニット、スーパー処理ユニット及びエンコーディングされていないコード単位及びそれらの使用での組み合わせから派生された特性又は特徴又は関係で構成されることを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(7)任意のデジタルデータセットの特性又は特徴又は関係を記述するために使用される記述言語は、コード単位、処理ユニット、スーパー処理ユニット、及びエンコーディングされていないコード単位の特性又は特徴又は関係を記述するための用語を使用することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
(8)CHANフレームワーク下でエンコーディング及びデコーディングを目的としてデータを処理するための技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(9)CHANコーディング技術を使用して任意のデジタルデータセットから作成されたCHANコードを特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(10)範囲を有する絶対アドレス分岐技術を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(11)CHANフレームワーク下で作成されたデータ順序の処理ユニットのコード単位間の関係を表すための数式を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(12)数式で表される値又はエンコーディングされたコード、及びコード単位、処理ユニット、スーパー処理ユニット、及びエンコーディングされていないコード単位のそれらの値又はエンコーディングされたコードを異なる位置で順に配置する配置技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(13)0ヘッドデザイン又は1ヘッドデザイン又はその両方をペアリングするビットパターンを代表する設計で、エンコーディング及びデコーディングの目的で処理のためにデータ値を分類又はグループ化するために使用される、処理中のデジタルデータの特性又は特徴に割り当てる分類技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(14)エンコーディング及びデコーディングの目的で処理のためにデータ値を分類又はグループ化するための処理中のデジタルデータのデータ値の順序付け及び位置に関する特性又は特徴を使用する分類技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(15)エンコーディング及びデコーディングの目的でデジタルデータセットを処理するためにコード交換、コード再割り当て、及びコード再記入を含む技術のいずれか1つを使用することによって、固有データ値及び固有アドレスコードを分類スキームの1つのクラスから別のクラスへ再割り当てするコード再割り当てを使用する分類技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(16)エンコーディング及びデコーディングの目的で処理するためにコード昇格、コード降格、コード省略、及びコード復元を含む技術のいずれか1つを含むコード調整技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(17)エンコーディング及びデコーディングの目的で処理するために終了条件又は終了値を使用して処理ユニット又はスーパー処理ユニットのサイズを定義する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(18)デジタルデータ値又はエンコーディングされたコード値のリーダーとしてコード単位定義を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(19)デジタルデータ値又はエンコーディングされたコード値のライターとしてコード単位定義を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(20)エンコーディング及びデコーディングの目的で処理するためにスーパー処理ユニットを使用して少なくとも1つのサブセクションがランダムではないデータのサブセクションにデジタルデータセットを細分化する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(21)特定のクラスのスーパー処理ユニットに現れる値エントリの数等の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つ以上のクラスにさらに分類することにより、エンコーディング及びデコーディングするためにこれらのクラスの各データ割り当てに適したマッピングテーブルを設計することにより、これらのスーパー処理ユニットの各データ値のデータ割り当てに適したそれぞれのマッピングテーブルを使用することによりこれらのスーパー処理ユニットの各データ値をエンコーディング及びデコーディングし、デコーディングするためにこれらのクラスのスーパー処理ユニットを区別するためにインジケータを使用し、そのようなインジケータはこれらのスーパー処理ユニットのそれぞれのヘッダー又は単独したCHANコードファイルのように他の場所に格納されることを特徴とする(20)に記載の方法。
(22)特定のクラスのスーパー処理ユニットに現れる値エントリの数等の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つ以上のクラスにさらに分類することにより、且つエンコーディング及びデコーディングするためにこれらのクラスの各データ割り当てに適したマッピングテーブルを設計し、これらのスーパー処理ユニットの各データ値のデータ割り当てに適したそれぞれのマッピングテーブルを使用することによりこれらのスーパー処理ユニットの各データ値をエンコーディング及びデコーディングし、そしてスーパー処理ユニットのクラスのデータ割り当てに適した基準及びエンコーディング及びデコーディング用の対応するマッピングテーブルを設定することにより、インジケータの使用が省略できるように、人工知能によるスーパー処理ユニットのクラス間での区別を行うためのエンコーディングされたコードを評価するために用いられることを特徴とする(20)に記載の方法。
(23)特定のクラスのスーパー処理ユニットに現れる値エントリの数等の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つのクラスにさらに分類することにより、且つこれらのクラスの各データ割り当てに適したマッピングテーブルを設計することによりエンコーディング及びデコーディングし、そのためこれらのマッピングテーブルのうちの少なくとも1つが機能することができ、従って、より不均一器として機能するように選択され、且つそのような不均一器がまたコード再割り当てを使用して調整し、前記コード再割り当てが少なくとも1つのクラスのスーパー処理ユニットのデータ値のデータ割り当てを利用することができ、それによりコード再割り当てによるコード調整後の不均一器マッピングテーブルが機能することができ、従って少なくとも1つのクラスのスーパー処理ユニットのコンプレッサのマッピングテーブルとして機能するように選択され、且つ1番目のサイクルに不均一器を使用して全てのスーパー処理ユニットをエンコーディングし、その後にコンプレッサを使用して少なくとも1つのクラスのスーパー処理ユニットをエンコーディングし、そのうち処理中の対応するスーパー処理ユニットのデータの圧縮が2番目のサイクルにおいて実行可能であり、即ち1番目のサイクルに不均一器を使用してエンコーディングし、且つ2番目のサイクルにコンプレッサを使用してエンコーディングし、それによりそれらの圧縮不可能なデータを含むスーパー処理ユニットが不均一器だけを使用してエンコーディングし、且つデコーディングする時に、これらのスーパー処理ユニット中の各データ値のデータ割り当てに適した対応するマッピングテーブルを使用してこれらのスーパー処理ユニット中の各データ値をデコーディングし、それにより1番目のデコーディングサイクルに、不均一器のエンコーディング及びコンプレッサのエンコーディングにより形成されたエンコーディングされたコードがデコーディングされ、コンプレッサのエンコーディング層のエンコーディングがデコーディングされる可能性があり、且つ2番目のデコーディングサイクルに、全てのスーパー処理ユニットの不均一器によってエンコーディングされたコードのみからなるエンコーディングされたコードが、不均一器のデコーダによってデコーディングされ、且つスーパー処理ユニット中の全てのクラスのデータ割り当てに適した基準とエンコーディング及びデコーディング用の対応するマッピングテーブルに適した基準を設定することにより、エンコーディングされたコードを評価し、インジケータの使用が省略できるように、人工知能を応用してスーパー処理ユニットの各クラス間での識別作業を行うことを特徴とする(20)に記載の方法。
(24)マッピングテーブルを構築し、前記マッピングテーブルの固有コードアドレスを使用し、デジタルデータ入力の固有データ値を1対1マッピング方式でマッピングし、不均一器エンコーダ及び不均一器デコーダの技術を確立し、そのため固有データ値によって使用されるビット数と、対応するマッピングされてペアリングされた、対応しマッピングされた固有テーブルコードアドレスによって使用されるビット数は同じであり、エンコーディング及びデコーディングのために前記マッピングテーブルを使用することを特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(25)エンコーディング及びデコーディングの目的で処理するために不均一器エンコーダ及び不均一器デコーダを使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(26)エンコーディング及びデコーディングの目的で処理するために不均一器エンコーダ及び不均一器デコーダを均一器エンコーダ及びデコーダ又はコンプレッサ又はデコンプレッサと共に使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(27)データ割り当てを変更する場合に、処理中に使用される終了条件に従って、処理ユニット又はスーパー処理ユニットのサイズを動的に調整する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(28)処理中のデータ値のデータ割り当てパターンに基づいてコード単位定義を動的に調整する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(29)エンコーディング及びデコーディングの目的で処理するためにCHANコーディング技術を使用して任意のデジタルデータセットから作成された分類コード及び内容コードを特徴とするCHANコード。
(30)エンコーディング及びデコーディングの目的で処理するために、CHANコーディング技術を使用して任意のデジタルデータセットから作成された分類コード、内容コード及びエンコーディングされていないコード単位を特徴とするCHANコード。
(31)ヘッダー、分類コード及び内容コードが、エンコーディング及びデコーディングの目的で処理するためにCHANコーディング技術を使用して任意のデジタルデータセットから作成され、それにより前記ヘッダーがCHANコーディング技術の使用から生じるインジケータを含み、それによりエンコーディング及びデコーディングのために処理することを特徴とするCHANコード。
(32)ヘッダー、分類コード、内容コード及びエンコーディングされていないコード単位が、エンコーディング及びデコーディングの目的で処理するためにCHANコーディング技術を使用して任意のデジタルデータセットから作成され、それにより前記ヘッダーがCHANコーディング技術の使用から生じるインジケータを含み、それによりエンコーディング及びデコーディングのために処理し、このインジケータが、チェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮/非圧縮データインジケータのうちのいずれか1つを含むことを特徴とするCHANコード。
(33)処理するためのCHANコーディング技術が埋め込まれることを特徴とするCHANフレームワークで設計されたエンコーダ、デコーダ及びコーダ。
(34)処理するためのCHANコーディング及びヘッダーインジケータ技術が埋め込まれ、このインジケータが、チェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮/非圧縮データインジケータのうちのいずれか1つを含むことを特徴とするCHANフレームワークで設計されたエンコーダ、デコーダ及びコーダ。
(35)CHANコードを含むデジタル情報ファイルであるCHANコードファイル。
(36)ヘッダー及びその中に含まれるインジケータを含む、CHANコーディング技術による使用のための追加情報を含むデジタル情報ファイルを含み、このインジケータが、チェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮/非圧縮データインジケータのうちのいずれか1つを含むCHANコードファイル。
(37)数学的方法の使用技術により、データ値が対応するCHAN形状に対応する数式で記述されることが可能な順序に入れられ、デジタル情報のマージ及び分離に使用される関連する数学的計算論理及び技術を含み、この数学情報がエンコーディング及びデコーディングの目的で、ランダムであるか否かに関わらず、デジタル情報を処理する際の処理ユニットのコード単位の値を含むことを特徴とするCHANフレームワーク下で使用されるCHAN数学。
(38)エンコーディング及びデコーディングの目的で、基本コンポーネント、コード単位及び派生コンポーネント(例えばCHANコードのRPピースと他の派生コンポーネント)の間の特徴と関係、例えば、ランダムであるか否かに関わらず、デジタル情報を処理するための処理ユニットの基本コンポーネントの値の合計又は差を記述する方法を特徴とするCHANフレームワーク下で使用される式であるCHAN式。
(39)CHAN点、CHAN直線、CHAN三角形、CHAN矩形、及びCHAN台形、CHAN正方形及びCHANバーを含み、CHAN式で記述する処理ユニットの基本コンポーネントの特徴及び関係を表すCHAN形状。
(40)数学的処理のために定数値又は値を含む変数を相補定数又は相補変数として使用して、ある値又はある範囲内又は複数の範囲内の複数の値のミラー値がCHAN式で使用できるようにすることを特徴とする補数数学。
(41)CHANフレームワーク下で設計されたコーダに処理するために、補数数学と通常の数学、又はそれらのいずれかを単独で使用したCHAN数学。
(42)暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANフレームワークの用途。
(43)暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANコーディングの用途。
(44)暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANコードの用途。
(45)暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANコードファイルの用途。
(46)暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHAN数学の用途。
(47)暗号化/復号、又は圧縮/解凍、又はその両方を目的とした補数数学の用途。
(48)暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHAN形状の用途。
(49)CHANフレームワーク下で定義されるデータ順序の設計とスキーマを使用することを特徴とするエンコーディング及びデコーディングの目的で、デジタルデータセットに関する統計情報を収集するための、ランダムであるか否かに関わらず、デジタルデータセットを分析する方法。
(50)CHANフレームワーク言語を使用することを特徴とするランダムであるか否かに関わらず、デジタルデータセットを記述する方法。
(51)分類コードとして事後分類コード、内部分類コード、又は修正された内容コードを使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(52)絶対アドレス分岐コーディング技術により、CHANフレームワーク下で定義されたコーダのコード値を使用して他のコード値を吸収又は表現し、即ちブラックホールコードに関連する絶対アドレス分岐コードを使用して吸収されたコード値を表すデジタルデータブラックホール技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(53)別のコード値を連続的なステップで代用又は表現するためにCHANフレームワーク下で定義されたコーダのコード値を使用する連続コード代用技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(54)絶対アドレス分岐コードの逆配置技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(55)ブラックホールコードとしてCHANフレームワーク下で定義されたコーダの処理中のデータセットに欠落するコード値を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(56)CHANフレームワーク下で定義されたコーダの処理中のデータセットに欠落するコード値を、処理中のデータセットに存在するような、より長いビット長の別のコード値で代用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(57)CHANフレームワーク下で定義されるコーダを使用して、エンコーディング及びデコーディングを行い、使用される技術がデジタルデータブラックホール、絶対アドレスコーディング、インジケータビット消費削減及び連続コード代用又は非連続コード代用の技術を含み、且つ処理されているデータセットにおける欠落するコード値を同じビット長又はより長いビット長で代用する別のコード値に置き換える技術を使用し、この他のコード値が適切な場合に処理されているデータセットに存在することを特徴とするCHANコーディング、固有コード値が欠落するか又は欠落していない場合に、ランダムデータであるか又は非ランダムデータであるかに関わらずデジタルデータを圧縮及び解凍するためのエンコーディング及びデコーディングの方法。
(58)処理されているデジタルデータセットから生成された頻度分布特徴に基づいて、インジケータビット消費を削減する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
(59)使用される設計に応じて、複数のビットサイズ又はビット長を有し、又は異なるビットサイズ又はビット長を有するコード単位、処理ユニット、及びスーパー処理ユニットの固有コード値を特徴とするCHANフレームワークで設計されたコーダ。
ランダムに割り当てるか否かに関わらず、あらゆるタイプのデジタルデータを含むデジタル情報を処理するための全てのコンピュータアプリケーションを含むCHANフレームワーク及びCHANコーディングとその関連する設計及びスキーマを有利に使用することができる多数の産業用アプリケーションがある。
本明細書に記載の実施形態は、任意の適切に構成されたコンピュータハードウェア及び/又はソフトウェアを使用してシステムに実装することができる。例えば、特定の実施形態は、実行可能コード及びオペレーティングシステム及びアプリケーションプログラム、実行可能コードを実行することができるコンピュータシステム又はコンピュータ制御デバイス又はオペレーティングシステム制御デバイス又はシステムを含むネットワークに接続されているかスタンドアロンに関わらず、任意のデバイスのハードウェア、及び本明細書に記載の方法のステップを実行するのを助けるコンピュータ実行可能又はオペレーティングシステム実行可能命令又はプログラムを形成するためのコンピュータ言語及びコンパイラを使用してシステムに実装される。上述の技術的特徴の使用と組み合わせて、本明細書に開示された実施形態は、暗号化/復号、圧縮/解凍、又はその両方のために、デジタルデータ及びデジタル実行可能コードを含む関連するデジタルデータをロスレス且つ正確にエンコーディング及びデコーディングすることによって、ランダムであるか否かに関わらず、デジタル情報を処理するようにCHANコーディングを使用してCHANフレームワークの実装を可能にし、且つこのような関係でその特徴は、特許請求の範囲で示される。
シーケンステーブルのテキスト

Claims (59)

  1. ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、コード単位で構成され、前記コード単位は、デジタルデータセットの2進数ビットのビットコンテナの基本ユニットとして使用され、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、コード単位は、主にコード単位が収容又は表現するように定義されるデータ値の最大可能数(コード単位の値サイズ)によって分類され、ここでコード単位の各可能な固有値が同じビットサイズ又は異なるビットサイズを持つ可能性があり、且つコード単位は、後にコード単位の全ての可能な固有データ値が占めるビット数(即ち、コード単位の各可能な固有データ値が占めるビットサイズの合計)によって分類され、且つコード単位はヘッドデザイン(即ちそれが0ヘッドデザインであるか1ヘッドデザインであるか)によってさらに分類され、各実施形態によれば、CHANフレームワーク下で特定の値サイズのコード単位が異なる定義及びバージョンを有することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  2. ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、処理ユニットで構成され、前記処理ユニットが、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、サブユニットとして一定数のコード単位によって構成されることを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  3. ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、スーパー処理ユニットで構成され、前記スーパー処理ユニットが、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、サブユニットとして一定数の処理ユニットによって構成されることを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  4. ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、エンコーディングされていないコード単位で構成され、前記エンコーディングされていないコード単位が一定数の2進数ビットで構成され、これらの2進数ビットが、1つの処理ユニットのサイズにならないため、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、エンコーディングされていないコードに保持するか又はそのまま保持することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  5. ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、エンコーディングされていないコード単位で構成され、前記エンコーディングされていないコード単位が一定数の2進数ビットで構成され、これらの2進数ビットが、1つの処理ユニットのサイズにならないため、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、エンコーディングされていないコードに保持するか又はそのまま保持することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  6. ランダムであるか否かに関わらず、任意のデジタルデータセットから作成されたデータの順序又はデータ順序又はデータ構造又はデータ組織が、エンコーディング及びデコーディングの目的で処理のために選択された設計及びスキーマに従って、コード単位、処理ユニット、スーパー処理ユニット及びエンコーディングされていないコード単位及びそれらの使用での組み合わせから派生された特性又は特徴又は関係で構成されることを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  7. 任意のデジタルデータセットの特性又は特徴又は関係を記述するために使用される記述言語は、コード単位、処理ユニット、スーパー処理ユニット、及びエンコーディングされていないコード単位の特性又は特徴又は関係を記述するための用語を使用することを特徴とするCHANフレームワーク、ランダムであるか否かに関わらず、デジタルデータ情報から順序を作成する方法。
  8. CHANフレームワーク下でエンコーディング及びデコーディングを目的としてデータを処理するための技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  9. CHANコーディング技術を使用して任意のデジタルデータセットから作成されたCHANコードを特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  10. 範囲を有する絶対アドレス分岐技術を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  11. CHANフレームワーク下で作成されたデータ順序の処理ユニットのコード単位間の関係を表すための数式を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  12. 数式で表される値又はエンコーディングされたコード、及びコード単位、処理ユニット、スーパー処理ユニット、及びエンコーディングされていないコード単位のそれらの値又はエンコーディングされたコードを異なる位置で順に配置する配置技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  13. 0ヘッドデザイン又は1ヘッドデザイン又はその両方をペアリングするビットパターンを代表する設計で、エンコーディング及びデコーディングの目的で処理のためにデータ値を分類又はグループ化するために使用される、処理中のデジタルデータの特性又は特徴に割り当てる分類技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  14. エンコーディング及びデコーディングの目的で処理のためにデータ値を分類又はグループ化するための処理中のデジタルデータのデータ値の順序付け及び位置に関する特性又は特徴を使用する分類技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  15. エンコーディング及びデコーディングの目的でデジタルデータセットを処理するためにコード交換、コード再割り当て、及びコード再記入を含む技術のいずれか1つを使用することによって、固有データ値及び固有アドレスコードを分類スキームの1つのクラスから別のクラスへ再割り当てするコード再割り当てを使用する分類技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  16. エンコーディング及びデコーディングの目的で処理するためにコード昇格、コード降格、コード省略、及びコード復元を含む技術のいずれか1つを含むコード調整技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  17. エンコーディング及びデコーディングの目的で処理するために終了条件又は終了値を使用して処理ユニット又はスーパー処理ユニットのサイズを定義する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  18. デジタルデータ値又はエンコーディングされたコード値のリーダーとしてコード単位定義を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  19. デジタルデータ値又はエンコーディングされたコード値のライターとしてコード単位定義を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  20. エンコーディング及びデコーディングの目的で処理するためにスーパー処理ユニットを使用して少なくとも1つのサブセクションがランダムではないデータのサブセクションにデジタルデータセットを細分化する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  21. 特定のクラスのスーパー処理ユニットに現れる値エントリの数等の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つ以上のクラスにさらに分類することにより、エンコーディング及びデコーディングするためにこれらのクラスの各データ割り当てに適したマッピングテーブルを設計することにより、これらのスーパー処理ユニットの各データ値のデータ割り当てに適したそれぞれのマッピングテーブルを使用することによりこれらのスーパー処理ユニットの各データ値をエンコーディング及びデコーディングし、デコーディングするためにこれらのクラスのスーパー処理ユニットを区別するためにインジケータを使用し、そのようなインジケータはこれらのスーパー処理ユニットのそれぞれのヘッダー又は単独したCHANコードファイルのように他の場所に格納されることを特徴とする請求項20に記載の方法。
  22. 特定のクラスのスーパー処理ユニットに現れる値エントリの数等の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つ以上のクラスにさらに分類することにより、且つエンコーディング及びデコーディングするためにこれらのクラスの各データ割り当てに適したマッピングテーブルを設計し、これらのスーパー処理ユニットの各データ値のデータ割り当てに適したそれぞれのマッピングテーブルを使用することによりこれらのスーパー処理ユニットの各データ値をエンコーディング及びデコーディングし、そしてスーパー処理ユニットのクラスのデータ割り当てに適した基準及びエンコーディング及びデコーディング用の対応するマッピングテーブルを設定することにより、インジケータの使用が省略できるように、人工知能によるスーパー処理ユニットのクラス間での区別を行うためのエンコーディングされたコードを評価するために用いられることを特徴とする請求項20に記載の方法。
  23. 特定のクラスのスーパー処理ユニットに現れる値エントリの数等の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つのクラスにさらに分類することにより、且つこれらのクラスの各データ割り当てに適したマッピングテーブルを設計することによりエンコーディング及びデコーディングし、そのためこれらのマッピングテーブルのうちの少なくとも1つが機能することができ、従って、より不均一器として機能するように選択され、且つそのような不均一器がまたコード再割り当てを使用して調整し、前記コード再割り当てが少なくとも1つのクラスのスーパー処理ユニットのデータ値のデータ割り当てを利用することができ、それによりコード再割り当てによるコード調整後の不均一器マッピングテーブルが機能することができ、従って少なくとも1つのクラスのスーパー処理ユニットのコンプレッサのマッピングテーブルとして機能するように選択され、且つ1番目のサイクルに不均一器を使用して全てのスーパー処理ユニットをエンコーディングし、その後にコンプレッサを使用して少なくとも1つのクラスのスーパー処理ユニットをエンコーディングし、そのうち処理中の対応するスーパー処理ユニットのデータの圧縮が2番目のサイクルにおいて実行可能であり、即ち1番目のサイクルに不均一器を使用してエンコーディングし、且つ2番目のサイクルにコンプレッサを使用してエンコーディングし、それによりそれらの圧縮不可能なデータを含むスーパー処理ユニットが不均一器だけを使用してエンコーディングし、且つデコーディングする時に、これらのスーパー処理ユニット中の各データ値のデータ割り当てに適した対応するマッピングテーブルを使用してこれらのスーパー処理ユニット中の各データ値をデコーディングし、それにより1番目のデコーディングサイクルに、不均一器のエンコーディング及びコンプレッサのエンコーディングにより形成されたエンコーディングされたコードがデコーディングされ、コンプレッサのエンコーディング層のエンコーディングがデコーディングされる可能性があり、且つ2番目のデコーディングサイクルに、全てのスーパー処理ユニットの不均一器によってエンコーディングされたコードのみからなるエンコーディングされたコードが、不均一器のデコーダによってデコーディングされ、且つスーパー処理ユニット中の全てのクラスのデータ割り当てに適した基準とエンコーディング及びデコーディング用の対応するマッピングテーブルに適した基準を設定することにより、エンコーディングされたコードを評価し、インジケータの使用が省略できるように、人工知能を応用してスーパー処理ユニットの各クラス間での識別作業を行うことを特徴とする請求項20に記載の方法。
  24. マッピングテーブルを構築し、前記マッピングテーブルの固有コードアドレスを使用し、デジタルデータ入力の固有データ値を1対1マッピング方式でマッピングし、不均一器エンコーダ及び不均一器デコーダの技術を確立し、そのため固有データ値によって使用されるビット数と、対応するマッピングされてペアリングされた、対応しマッピングされた固有テーブルコードアドレスによって使用されるビット数は同じであり、エンコーディング及びデコーディングのために前記マッピングテーブルを使用することを特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  25. エンコーディング及びデコーディングの目的で処理するために不均一器エンコーダ及び不均一器デコーダを使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  26. エンコーディング及びデコーディングの目的で処理するために不均一器エンコーダ及び不均一器デコーダを均一器エンコーダ及びデコーダ又はコンプレッサ又はデコンプレッサと共に使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  27. データ割り当てを変更する場合に、処理中に使用される終了条件に従って、処理ユニット又はスーパー処理ユニットのサイズを動的に調整する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  28. 処理中のデータ値のデータ割り当てパターンに基づいてコード単位定義を動的に調整する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  29. エンコーディング及びデコーディングの目的で処理するためにCHANコーディング技術を使用して任意のデジタルデータセットから作成された分類コード及び内容コードを特徴とするCHANコード。
  30. エンコーディング及びデコーディングの目的で処理するために、CHANコーディング技術を使用して任意のデジタルデータセットから作成された分類コード、内容コード及びエンコーディングされていないコード単位を特徴とするCHANコード。
  31. ヘッダー、分類コード及び内容コードが、エンコーディング及びデコーディングの目的で処理するためにCHANコーディング技術を使用して任意のデジタルデータセットから作成され、それにより前記ヘッダーがCHANコーディング技術の使用から生じるインジケータを含み、それによりエンコーディング及びデコーディングのために処理することを特徴とするCHANコード。
  32. ヘッダー、分類コード、内容コード及びエンコーディングされていないコード単位が、エンコーディング及びデコーディングの目的で処理するためにCHANコーディング技術を使用して任意のデジタルデータセットから作成され、それにより前記ヘッダーがCHANコーディング技術の使用から生じるインジケータを含み、それによりエンコーディング及びデコーディングのために処理し、このインジケータが、チェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮/非圧縮データインジケータのうちのいずれか1つを含むことを特徴とするCHANコード。
  33. 処理するためのCHANコーディング技術が埋め込まれることを特徴とするCHANフレームワークで設計されたエンコーダ、デコーダ及びコーダ。
  34. 処理するためのCHANコーディング及びヘッダーインジケータ技術が埋め込まれ、このインジケータが、チェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮/非圧縮データインジケータのうちのいずれか1つを含むことを特徴とするCHANフレームワークで設計されたエンコーダ、デコーダ及びコーダ。
  35. CHANコードを含むデジタル情報ファイルであるCHANコードファイル。
  36. ヘッダー及びその中に含まれるインジケータを含む、CHANコーディング技術による使用のための追加情報を含むデジタル情報ファイルを含み、このインジケータが、チェック及びインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮/非圧縮データインジケータのうちのいずれか1つを含むCHANコードファイル。
  37. 数学的方法の使用技術により、データ値が対応するCHAN形状に対応する数式で記述されることが可能な順序に入れられ、デジタル情報のマージ及び分離に使用される関連する数学的計算論理及び技術を含み、この数学情報がエンコーディング及びデコーディングの目的で、ランダムであるか否かに関わらず、デジタル情報を処理する際の処理ユニットのコード単位の値を含むことを特徴とするCHANフレームワーク下で使用されるCHAN数学。
  38. エンコーディング及びデコーディングの目的で、基本コンポーネント、コード単位及び派生コンポーネント(例えばCHANコードのRPピースと他の派生コンポーネント)の間の特徴と関係、例えば、ランダムであるか否かに関わらず、デジタル情報を処理するための処理ユニットの基本コンポーネントの値の合計又は差を記述する方法を特徴とするCHANフレームワーク下で使用される式であるCHAN式。
  39. CHAN点、CHAN直線、CHAN三角形、CHAN矩形、及びCHAN台形、CHAN正方形及びCHANバーを含み、CHAN式で記述する処理ユニットの基本コンポーネントの特徴及び関係を表すCHAN形状。
  40. 数学的処理のために定数値又は値を含む変数を相補定数又は相補変数として使用して、ある値又はある範囲内又は複数の範囲内の複数の値のミラー値がCHAN式で使用できるようにすることを特徴とする補数数学。
  41. CHANフレームワーク下で設計されたコーダに処理するために、補数数学と通常の数学、又はそれらのいずれかを単独で使用したCHAN数学。
  42. 暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANフレームワークの用途。
  43. 暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANコーディングの用途。
  44. 暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANコードの用途。
  45. 暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHANコードファイルの用途。
  46. 暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHAN数学の用途。
  47. 暗号化/復号、又は圧縮/解凍、又はその両方を目的とした補数数学の用途。
  48. 暗号化/復号、又は圧縮/解凍、又はその両方を目的としたCHAN形状の用途。
  49. CHANフレームワーク下で定義されるデータ順序の設計とスキーマを使用することを特徴とするエンコーディング及びデコーディングの目的で、デジタルデータセットに関する統計情報を収集するための、ランダムであるか否かに関わらず、デジタルデータセットを分析する方法。
  50. CHANフレームワーク言語を使用することを特徴とするランダムであるか否かに関わらず、デジタルデータセットを記述する方法。
  51. 分類コードとして事後分類コード、内部分類コード、又は修正された内容コードを使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  52. 絶対アドレス分岐コーディング技術により、CHANフレームワーク下で定義されたコーダのコード値を使用して他のコード値を吸収又は表現し、即ちブラックホールコードに関連する絶対アドレス分岐コードを使用して吸収されたコード値を表すデジタルデータブラックホール技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  53. 別のコード値を連続的なステップで代用又は表現するためにCHANフレームワーク下で定義されたコーダのコード値を使用する連続コード代用技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  54. 絶対アドレス分岐コードの逆配置技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  55. ブラックホールコードとしてCHANフレームワーク下で定義されたコーダの処理中のデータセットに欠落するコード値を使用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  56. CHANフレームワーク下で定義されたコーダの処理中のデータセットに欠落するコード値を、処理中のデータセットに存在するような、より長いビット長の別のコード値で代用する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  57. CHANフレームワーク下で定義されるコーダを使用して、エンコーディング及びデコーディングを行い、使用される技術がデジタルデータブラックホール、絶対アドレスコーディング、インジケータビット消費削減及び連続コード代用又は非連続コード代用の技術を含み、且つ処理されているデータセットにおける欠落するコード値を同じビット長又はより長いビット長で代用する別のコード値に置き換える技術を使用し、この他のコード値が適切な場合に処理されているデータセットに存在することを特徴とするCHANコーディング、固有コード値が欠落するか又は欠落していない場合に、ランダムデータであるか又は非ランダムデータであるかに関わらずデジタルデータを圧縮及び解凍するためのエンコーディング及びデコーディングの方法。
  58. 処理されているデジタルデータセットから生成された頻度分布特徴に基づいて、インジケータビット消費を削減する技術を特徴とするCHANコーディング、エンコーディング及びデコーディングの方法。
  59. 使用される設計に応じて、複数のビットサイズ又はビット長を有し、又は異なるビットサイズ又はビット長を有するコード単位、処理ユニット、及びスーパー処理ユニットの固有コード値を特徴とするCHANフレームワークで設計されたコーダ。
JP2019526383A 2016-07-29 2017-07-25 Chanフレームワーク、chanコーディング及びchanコード Active JP7268271B2 (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
PCT/IB2016/054562 WO2018020299A1 (en) 2016-07-29 2016-07-29 Lossless compression and decompression methods
IBPCT/IB2016/054562 2016-07-29
PCT/IB2016/054732 WO2018020300A1 (en) 2016-07-29 2016-08-05 Chan mathematics and chan coding and chan code
IBPCT/IB2016/054732 2016-08-05
PCT/IB2017/050985 WO2018020328A1 (en) 2016-07-29 2017-02-22 Chan framework, chan coding and chan code
IBPCT/IB2017/050985 2017-02-22
PCT/IB2017/053993 WO2018020342A1 (en) 2016-07-29 2017-07-01 Chan framework, chan coding and chan code
IBPCT/IB2017/053993 2017-07-01
PCT/IB2017/054500 WO2018020414A1 (en) 2016-07-29 2017-07-25 Chan framework, chan coding and chan code

Publications (2)

Publication Number Publication Date
JP2019528027A true JP2019528027A (ja) 2019-10-03
JP7268271B2 JP7268271B2 (ja) 2023-05-08

Family

ID=61017037

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2019526383A Active JP7268271B2 (ja) 2016-07-29 2017-07-25 Chanフレームワーク、chanコーディング及びchanコード
JP2020501826A Pending JP2020530674A (ja) 2016-07-29 2018-07-24 デジタルレンズング
JP2022115555A Pending JP2022160484A (ja) 2016-07-29 2022-07-20 デジタルレンズング

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2020501826A Pending JP2020530674A (ja) 2016-07-29 2018-07-24 デジタルレンズング
JP2022115555A Pending JP2022160484A (ja) 2016-07-29 2022-07-20 デジタルレンズング

Country Status (8)

Country Link
US (3) US11515888B2 (ja)
EP (2) EP3491525A4 (ja)
JP (3) JP7268271B2 (ja)
KR (2) KR20190038601A (ja)
CN (2) CN109416655A (ja)
AU (3) AU2017304894A1 (ja)
CA (2) CA3031600C (ja)
WO (6) WO2018020299A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018007809A1 (en) * 2016-07-04 2018-01-11 Sisp Technologies Ltd Data processing method and apparatus
WO2018020299A1 (en) * 2016-07-29 2018-02-01 Chan Kam Fu Lossless compression and decompression methods
EP3941435A1 (fr) 2019-03-21 2022-01-26 BASF Beauty Care Solutions France SAS Nouvelle utilisation non thérapeutique d'un extrait de nephelium lappaceum pour prévenir l'apparition et/ou diminuer les odeurs désagréables au niveau de la peau et/ou des muqueuses et/ou des annexes cutanées
US11375253B2 (en) * 2019-05-15 2022-06-28 Intel Corporation Link bandwidth improvement techniques
CN111723059B (zh) * 2020-05-25 2021-03-16 深圳市科楠科技开发有限公司 一种数据压缩方法、装置、终端设备及存储介质
CN112559462A (zh) * 2020-12-14 2021-03-26 深圳供电局有限公司 一种数据压缩方法、装置、计算机设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6460112A (en) * 1987-08-31 1989-03-07 Nec Corp Data compressing system
JPH08512438A (ja) * 1993-03-12 1996-12-24 ザ ジエイムス グループ,インク データ圧縮方法
JP2001136524A (ja) * 1999-11-02 2001-05-18 Ricoh Co Ltd 圧縮伸長装置
US6411228B1 (en) * 2000-09-21 2002-06-25 International Business Machines Corporation Apparatus and method for compressing pseudo-random data using distribution approximations
JP2004247909A (ja) * 2003-02-13 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム
JP2008536410A (ja) * 2005-04-13 2008-09-04 フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. コンパクトなコードブックを用いるエントロピー符号化
JP2009049895A (ja) * 2007-08-22 2009-03-05 Shinichiro Yumura データ圧縮方法及び画像表示方法及び表示画像拡大方法
CN103607207A (zh) * 2013-11-11 2014-02-26 大连理工大学 一种即插即用的多接口数据压缩设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5260693A (en) * 1991-10-11 1993-11-09 Spacelabs Medical, Inc. Method and system for lossless and adaptive data compression and decompression
US5384598A (en) * 1992-10-20 1995-01-24 International Business Machines Corporation System and method for frame differencing video compression and decompression with frame rate scalability
US6094454A (en) * 1997-06-19 2000-07-25 International Business Machines Corporation Multi-spectral image compression and transformation
FR2785757B1 (fr) * 1998-11-10 2001-01-26 Canon Kk Procede et dispositif de compression, procede et dispositif de decompression de format numerique
CN1129232C (zh) * 2001-03-22 2003-11-26 谭伟祥 一种对数据库中的数据进行压缩与解压缩的方法
CN1207917C (zh) * 2003-07-03 2005-06-22 复旦大学 适用于jpeg2000标准的高速低功耗mq编码器
EP1713063B1 (en) 2003-12-19 2011-03-16 Creative Technology Ltd. A printable audio format
US20060218201A1 (en) 2005-03-24 2006-09-28 International Business Machines Corporation System and method for effecting thorough disposition of records
CN100454234C (zh) * 2005-07-08 2009-01-21 华为技术有限公司 一种处理数据宽度的方法及其应用
US7541950B2 (en) * 2006-07-20 2009-06-02 Samplify Systems, Inc. Enhanced time-interleaved A/D conversion using compression
CN100495318C (zh) * 2007-01-30 2009-06-03 金蝶软件(中国)有限公司 整型数据的压缩方法、装置及解压缩方法、装置
CN101442671B (zh) 2007-11-21 2010-12-08 华为技术有限公司 一种数字信息嵌入和提取的方法及装置
KR100949519B1 (ko) * 2007-12-18 2010-03-24 한국전자통신연구원 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
CN101252694B (zh) * 2008-03-31 2011-08-17 清华大学 基于块的视频解码的帧存储压缩和地址映射系统
US8341184B2 (en) * 2008-05-07 2012-12-25 Smooth Productions Inc. Communications network system and service provider
US8005152B2 (en) * 2008-05-21 2011-08-23 Samplify Systems, Inc. Compression of baseband signals in base transceiver systems
US20100043024A1 (en) 2008-08-15 2010-02-18 Mana Digital Corporation Channel switching module
JP2010237822A (ja) * 2009-03-30 2010-10-21 Toshiba Corp メモリコントローラおよび半導体記憶装置
BR112012025407B1 (pt) * 2010-04-13 2022-03-22 Samsung Electronics Co, Ltd Método de decodificação de vídeo baseado em unidades de codificação determinadas de acordo com uma estrutura de árvore
CN103125119B (zh) * 2010-10-04 2016-10-26 松下知识产权经营株式会社 图像处理装置、图像编码方法以及图像处理方法
US9348385B2 (en) * 2012-07-09 2016-05-24 L. Pierre deRochement Hybrid computing module
US10085034B2 (en) 2013-07-12 2018-09-25 Sony Corporation Image coding apparatus and method
WO2015053120A1 (ja) * 2013-10-08 2015-04-16 シャープ株式会社 画像復号装置、画像復号方法、画像符号化装置、及び画像符号化方法
GB2523347B (en) * 2014-02-20 2016-01-13 Gurulogic Microsystems Oy Encoder, decoder and method
WO2016031103A1 (ja) 2014-08-25 2016-03-03 日本電気株式会社 セキュリティシステム、セキュリティ方法、及びコンピュータ可読媒体
US10628255B1 (en) * 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
CN205039173U (zh) 2015-09-30 2016-02-17 佛山市国星光电股份有限公司 一种led支架及其制成的led器件与led显示模组
WO2018020299A1 (en) * 2016-07-29 2018-02-01 Chan Kam Fu Lossless compression and decompression methods

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6460112A (en) * 1987-08-31 1989-03-07 Nec Corp Data compressing system
JPH08512438A (ja) * 1993-03-12 1996-12-24 ザ ジエイムス グループ,インク データ圧縮方法
JP2001136524A (ja) * 1999-11-02 2001-05-18 Ricoh Co Ltd 圧縮伸長装置
US6411228B1 (en) * 2000-09-21 2002-06-25 International Business Machines Corporation Apparatus and method for compressing pseudo-random data using distribution approximations
JP2004247909A (ja) * 2003-02-13 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム
JP2008536410A (ja) * 2005-04-13 2008-09-04 フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. コンパクトなコードブックを用いるエントロピー符号化
JP2009049895A (ja) * 2007-08-22 2009-03-05 Shinichiro Yumura データ圧縮方法及び画像表示方法及び表示画像拡大方法
CN103607207A (zh) * 2013-11-11 2014-02-26 大连理工大学 一种即插即用的多接口数据压缩设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FELIX JURASCHEK ET AL.: "DES-Chan: A Framework for distributed channel assignment in wireless mesh networks", ATNAC 2011 IEEE, JPN6020012201, 9 November 2011 (2011-11-09), ISSN: 0004245152 *
S HALPERT ET AL.: "CHAN code :modifications introduced for the transient calculation when the fuel is vapor cooled", INTERNET, JPN6020012199, 31 December 1992 (1992-12-31), ISSN: 0004245151 *

Also Published As

Publication number Publication date
US20190013825A1 (en) 2019-01-10
JP2022160484A (ja) 2022-10-19
US20200151051A1 (en) 2020-05-14
CN109416655A (zh) 2019-03-01
EP3491525A1 (en) 2019-06-05
CA3031600C (en) 2022-12-13
WO2018020299A1 (en) 2018-02-01
CN110771161A (zh) 2020-02-07
JP2020530674A (ja) 2020-10-22
KR20200031159A (ko) 2020-03-23
EP3659336A4 (en) 2021-04-21
US11671113B2 (en) 2023-06-06
US11515888B2 (en) 2022-11-29
KR20190038601A (ko) 2019-04-08
EP3491525A4 (en) 2019-08-28
WO2018020342A1 (en) 2018-02-01
AU2017304894A1 (en) 2019-02-21
JP7268271B2 (ja) 2023-05-08
CA3031600A1 (en) 2018-02-01
WO2018020300A1 (en) 2018-02-01
AU2018306486A1 (en) 2020-02-13
CA3068631A1 (en) 2019-01-31
WO2018020328A1 (en) 2018-02-01
US20230223952A1 (en) 2023-07-13
EP3659336A1 (en) 2020-06-03
AU2020289753A1 (en) 2021-01-21
WO2018020414A1 (en) 2018-02-01
WO2019021160A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
JP2019528027A (ja) Chanフレームワーク、chanコーディング及びchanコード
US9853660B1 (en) Techniques for parallel data compression
CN110266316A (zh) 一种数据压缩、解压方法、装置和设备
US20030210164A1 (en) Method of generating Huffman code length information
JP2009199048A (ja) ベクトル符号化/復号化方法、装置、及びストリーム・メディア・プレイヤー
JP6467937B2 (ja) 文書処理プログラム、情報処理装置および文書処理方法
JP4037875B2 (ja) コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法
CN111611214A (zh) 一种大数据存储算法
US7898444B2 (en) Decoding method
US20090256730A1 (en) Advanced Lossless Bit Coding
JP2019047450A (ja) 圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラム
JP5200854B2 (ja) 符号化装置、復号装置、及び画像処理システム
CN113177638B (zh) 用于生成神经网络的二值化权重的处理器和方法
CN109698704B (zh) 比对型基因测序数据解压方法、系统及计算机可读介质
Huang et al. VQ Coding in Data Hiding Using Correlated Neighboring Blocks in Security Performance
Furht et al. Lossless JPEG image compression
RU2423785C2 (ru) Способ кодирования информации
JP2005175926A (ja) 復号装置及び方法
JP5585336B2 (ja) 圧縮装置、圧縮方法、圧縮プログラムおよび復元装置
JP2018046518A (ja) データ処理装置及びデータ処理方法
WO2017037502A1 (en) Compression code and method by location
JPH0715349A (ja) 符号化方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211116

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211116

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20211130

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220114

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220118

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20220311

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20220315

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220510

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220705

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221115

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20230221

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20230322

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20230322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230327

R150 Certificate of patent or registration of utility model

Ref document number: 7268271

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150