JP7268271B2 - Chanフレームワーク、chanコーディング及びchanコード - Google Patents
Chanフレームワーク、chanコーディング及びchanコード Download PDFInfo
- Publication number
- JP7268271B2 JP7268271B2 JP2019526383A JP2019526383A JP7268271B2 JP 7268271 B2 JP7268271 B2 JP 7268271B2 JP 2019526383 A JP2019526383 A JP 2019526383A JP 2019526383 A JP2019526383 A JP 2019526383A JP 7268271 B2 JP7268271 B2 JP 7268271B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- bit
- data
- encoding
- values
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 600
- 238000000034 method Methods 0.000 claims description 497
- 238000013461 design Methods 0.000 claims description 237
- 238000013507 mapping Methods 0.000 claims description 129
- 238000009826 distribution Methods 0.000 claims description 83
- 238000013473 artificial intelligence Methods 0.000 claims description 25
- 230000008520 organization Effects 0.000 claims description 13
- 230000008901 benefit Effects 0.000 claims description 9
- 238000011835 investigation Methods 0.000 claims description 4
- 102000002067 Protein Subunits Human genes 0.000 claims 1
- 108010001267 Protein Subunits Proteins 0.000 claims 1
- 238000007906 compression Methods 0.000 description 115
- 230000006835 compression Effects 0.000 description 114
- 238000010586 diagram Methods 0.000 description 69
- 230000000295 complement effect Effects 0.000 description 54
- 230000008569 process Effects 0.000 description 53
- 230000006837 decompression Effects 0.000 description 41
- 238000006467 substitution reaction Methods 0.000 description 38
- 230000008859 change Effects 0.000 description 29
- 238000013144 data compression Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 13
- 230000002441 reversible effect Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 8
- 238000010521 absorption reaction Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 241000272201 Columbiformes Species 0.000 description 2
- 108091029480 NONCODE Proteins 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012067 mathematical method Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000001729 chan in Nutrition 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012627 multivariate algorithm Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/55—Compression Theory, e.g. compression of random number, repeated compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3077—Sorting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6035—Handling of unkown probabilities
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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)
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進数ビット形態のデジタルデータからなる処理ユニットの基本コンポーネントの関係及び特徴を記述するその他の形状を含む)間の関係を開示し、及び知的所有権の使用・保護の対応技術に用いるために、デジタル情報のコーディング(エンコーディング及びデコーディングを含む)を行う時には、本発明においてはデジタルデータを順序付け及び組織する方式を見つけることができ、前記知的所有権はデジタル情報の形態で表現され、デジタルデータ及び装置用の実行可能コードを含み、装置は実行可能コードを実行し又はデジタルデータを使用できるコンピュータシステム又はコンピュータで制御される装置又はオペレーティングシステムで制御される装置又はシステムを含む。以下、このような装置は装置と呼称される。
上記ウィキロスレス圧縮の関連部分は、参照できるようにここに再現されている。
「ロスレスデータ圧縮アルゴリズムは通常、統計的冗長性を利用して情報を失うことなくデータを簡潔に表現し、前記プロセスを可逆的にする。ほとんどの実際のデータに統計的冗長性があるため、ロスレス圧縮は可能である。例えば、「赤色画素、赤色画素...」をコーディングする代わりに、画像は、複数の画素にわたって変化しない色の領域を有することができ、データは「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は逆算術エンコーダである。」
本発明までの長い間、データ圧縮分野において、純粋にランダムな2進数データは絶対的に非圧縮性であると証明された。本発明は、異なるタイプ及び異なる言語特徴に適用し、ランダムデジタル情報を問わずにロスレス圧縮用のフレームワーク及び方法を提供することにより、ランダムデジタル情報を圧縮してそれを首尾よく復元することができる。本発明に開示されたフレームワーク(CHANフレームワーク)はランダムであるか否かに関わらずデジタル情報の順序付けを組織的に記述及び新規作成することが可能であり、任意のデジタル情報の特徴を発見、記述、調査及び分析することができ、デジタル情報のこのような特徴及び内容を周期的に重複するロスレス暗号化/復号及び圧縮/解凍を目的とする技術及び方法の開発に用いることができる。これは、情報理論における鳩ノ巣原理の神話を終わらせる。もちろん、それには限界がある。明らかに、1ビットだけのデジタル情報をさらに圧縮することができない。本発明に開示されるように、デジタル情報の圧縮制限は圧縮中の関連達成方式により選択されたスキーマ及び方法に伴って変化し、例えば使用するヘッダーのサイズ、処理ユニット(所定の数のコード単位を含む)のサイズ、又は使用するスーパー処理ユニット(所定の数の処理ユニットを含む)のサイズ、及び完全な処理ユニット又はスーパー処理ユニットを構成するには不十分であり、エンコーディングしていない2進数ビットコードのサイズにより確定される。従って、設計及び関連データ割り当てそのものの性質に基づき、任意のデジタル情報を圧縮する制限は数千の2進数ビット又はそれ未満に保つことができる。
図表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フレームワーク及び図解
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つのコード単位を有する処理ユニットを有すると仮定する。
エンコーディングした後、生成したコード、CHANコードはRPピース及びCVピースからなる。
デコーディングの目的で、当業者は、上記PCT特許出願又は他の設計に記載されたヘッダー処理と得られたCHANコード、即ちCHANコードのRPピース及びCVピースを容易に使用できる。以下に本発明に開示されるように、このように設計されたエンコーディング及びデコーディングのスキーマ及び方法に基づき、より多くのコード単位が使用される時には、CVピースをさらにサブブロックに分けることができる。
RPピースは、対応するコード単位のある特性又は特徴を示し、本明細書の処理ユニットの2つの対応するコード単位間のランク及び位置の特徴を示すコードピースである。RPピースは幅広いコードカテゴリーのコードのサブセットであり、特性コード又は特徴コード又は分類コードとして命名される(関連する特性又は特徴が類似した特性又は特徴を有するコード単位を分類又はグループ化するために使用されているためにこのように呼ばれる)。CVピースは1つ又は複数のコード単位の内容のエンコーディングコードを示す。時には、エンコーディング及びデコーディングのスキーマ及び方法に基づき、コード単位の内容の一部は分類コードとして抽出され、CVピースに残っているものはコード単位の内容に対応する残りの部分にすぎない。CVピースはCHANコードの内容コードを構成する。従って、エンコーディング及びデコーディングのスキーマ及び方法に基づき、CHANコードは少なくとも内容コードを含み、適切な場合に分類コードを追加し、適切な場合又は必要がある場合に、内容コードそのものに含まれる、又は内容コードそのものの内部に混在している、又はヘッダーに含まれる、例えばスーパー処理ユニットを処理する時に使用するコーディング方法又はコードマッピングテーブルを指示するその他のインジケータコードを追加する。これは、当然、本発明の説明において明らかになるであろう。
ここまで、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フレームワークの新規特徴を実現するのに使用される他の技法を議論した後に、必要に応じて説明される。
図表4
補数数学
CC-A=Ac
且つ
Ac+A=CC
又は
Bc+B=CC
且つ
(Ac+B)=(CC-A)+B
ここで、CCは相補定数又は変数であり、相補定数又は変数(エンコーディング及びデコーディングの異なるサイクルで異なるコード単位サイズが使用されている場合は、変数になる可能性がある)を使用するように定義されている補数数学の演算のために選択された定数値又は変数値である。これは、本発明で説明されるように、数学的計算又は加算及び減算論理を有する演算において使用される。場合によって、複数の相補定数又は変数を設計し、必要に応じて又は適切な場合には、様々な演算又は目的に使用し得る。
Aは演算される値であり、ここで使用されている実例はランク値Aであり、現在2つのコード単位値のみを使用する場合、Aの値はBの値以上であり、このため、最初の式では、
CC-A=Ac
ここで、CCからAを引いたものは、A補数に等しく、即ち、それぞれの相補定数又は変数を使用したAの補数値、又はミラー値であるAcで示される。例えば、CCをコード単位サイズの最大値の定数、例えば256個の値を有する8ビットとすると、CCの値は256とある。Aの値を100とすると、Acは256から100を引いた値である156に相当し、従って、逆の演算はAc+A=CCになり、100+156=256の演算を表す。そして、第4式において、(Ac+B)=(CC-A)+Bであり、そしてBを50とすると、Ac+B=(256-100)+50=156+50=206となる。
図表5
定義されたより多くの補数数学の理論:
CC-(A+B)=(A+B)c又は=CC-A-B。
且つ
CC-(A-B)=Ac+B
且つ
CC-A+Bは分かりにくいかもしれないが、次のように明確に表すべきである。
(CC-A)+B=Ac+B
又は
(CC-B)+A=Bc+A
又は
CC-(A+B)=CC-A-B。
そのため、補数数学の減算演算の上記論理をさらに説明するために、CCを256、Aを100、Bを50とすると、
CC-(A+B)=(A+B)c又は=Ac-B又は=Bc-A
即ち、256-(100+50)=(100+50)c=256-150=106=Ac-B=156-50=106
又は
=Bc-A=206-100=106
且つ
CC-(A-B)=Ac+B
即ち256-(100-50)=256-(50)=206=156+50=206
且つ
(CC-A)+B=Ac+B
即ち(256-100)+50=156+50=206
又は
(CC-B)+A=Bc+A
即ち(256-50)+100=206+100=306となる。
図表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=Ac+B=(256-100)+50=156+50=206。
このステップで演算を実行するには、最初にAとBを分離する必要があり、このステップでは補数数学の演算をここで説明する。
(3)CHAN数学を使用したCHANコーディング(通常の数学処理及び補数数学処理):
A-1/2(A-B)を使用して、ステップ(1)の結果をステップ(2)の結果に加算する。
=Ac+B+A-1/2(A-B)=Ac+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コーディングの違いを示している。
ほとんどの場合、処理ユニットの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]の値が下隅にあるショートアームと重なり合っている。
ロングアームとミドルアームの2本のアームがあり、ショートアームは[1]+[4]と[2]+[3]の値の対が等しいので点になる。
CHAN長方形1は、4つのコード単位のデータ値の入力ストリームを順々に示す。
CHAN台形はCHAN長方形の4つの基本コンポーネント間の関係を示している。
CHAN台形1
3本のアームの上隅は[1]+[2]、[1]+[3]、[1]+[4]であり、且つ、
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
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
CHAN台形4又はCHAN正方形2
これは、ミドルアームがロングアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[2]+[3]及び[1]+[4]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
これは、ショートアームがミドルアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[1]+[4]及び[2]+[3]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
これは、ショートアームがミドルアームと重なる場所であり、ショートアームの上隅及び下隅がそれぞれ[2]+[3]及び[1]+[4]である。2本のアームの長さが等しくない場合は台形、それ以外の場合は正方形である。
図表8
4つの入力基本コンポーネントの位置とランクの詳細及び結果のCHANコードを示すCHAN長方形S
4つのコード単位のデータ値の入力ストリームのランクと位置、及び使用される64ビットサイズを示すCHAN長方形3
図表9
ランクと位置のコード表
4つの基本コンポーネントの位置とランクの可能な組み合わせ
(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コーディングは、基本コンポーネント(即ち処理ユニットのコード単位)間の特徴及び関係を使用して設計された式を使用して行われる。
(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])。ロングアームの上隅。
図表10
CHANバー
相補定数CCとしてコード単位サイズを用いた補数数学のパラダイムの下での範囲制限の視覚的表現
式(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)を配置すべきである。そのような配置技術を使用することによって、ビットストレージを最小化することができる。
(a)コード単位(内容コード及び分類コードを含む)
(b)処理ユニット
(c)スーパー処理ユニット
(d)エンコーディングされていないコード単位
(e)(デジタルデータの全セットの)セクション
(f)一部のヘッダー又はフッター
(g)(デジタルデータの全セットの)メインヘッダー又はフッター
(h)CHANファイル(上記(a)~(g)のデジタルコードを組み合わせるか又は単独で構成したCHANコードを含むデジタルデータファイル)。
このようなCHANフレームワークのスキーマ及び設計とは上記構造要素のいずれかについて選択された定義を指し、使用される場合、処理するために、様々な実施形態の下で組み合わせて使用され、本発明において開示された使用されたCHANコーディングの選択された技術の特定のデジタルデータセットをエンコーディング及びデコーディングすることに用いられる。
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進数ビット数)の累乗に等しい。
図表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
図表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の(コード単位のコード値の平均ビットサイズ*処理ユニットのコード単位数)乗
そのため、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値コード単位の処理ユニット及び対応するエンコーディング及びデコーディングプロセスにおけるこのスキーマ及び設計の使用について、より詳細に詳述する。現在、特定のデータセットに不均一性を作成するための技術は、最初に次のように説明される:
図表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
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
図表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つのバージョンのコード単位設計の変更結果に比べてより優れる。
27個の値の分類絶対アドレス分岐コード表(CAABCT)
実施例I
図表19
3値コード単位の定義:0ヘッドデザイン
ビット0:ビット1の比率=2:3
コード値番号 コード値コード
1 0
2 10
3 11
図表20
3つの3値コード単位からなる処理ユニットは、図表19のコード単位の定義を使用して80,000ビットのランダムデータセットから読み取られた27個の固有コード値の未分類頻度分布の実例
図表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
表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つは、スーパー処理ユニットを使用し、特別に設計されたコードテーブルを使用することによってマッピング又はエンコーディングすることである。
図表23
3つの3値コード単位からなる処理ユニットは、図表19のコード単位定義を使用して80,000ビットのランダムデータセットから読み取られた27個の固有コード値の分類/未分類頻度分布の実例
(a)スーパー処理ユニットの使用
(b)スーパー処理ユニットをグループに分割し、ここでは、まず2つのグループに分割する。及び
(c)(2グループのスーパー処理ユニットの)固有データコード値と固有テーブルコード値との間のクロスマッピングのためのCAABCT(この場合は2つ)の使用、及びCAABCTインジケータの使用。
使用のために分割されるべきスーパー処理ユニットのサイズ及びスーパー処理ユニットがどのようにグループ化又は分類されるべきか、及びどのCAABCTが使用されるべきであるかに関して問題が生じる。
図表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
(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である。
0
10
11
サフィックスとして、そして1ヘッドデザインを使用する別のCAABCTは、コード値として次のトリオを使用するサフィックスである。
1
01
00
(この点については後で説明する)。エンコーディング失敗の別の証拠は、再エンコーディング時のデコーディングコードの最後のビットが1つのコード値に形成されず、固定ビットサイズ又は固定数の処理ユニットを有するスーパー処理ユニットを使用する場合、再エンコーディングされたコード値は、設計された固定サイズを構成せず、再エンコーディング時に固定サイズのスーパー処理ユニットよりも多い又は少ないコードを生成する。
(e)必要に応じてエンコーディングコードの後に追加される追加ビット。上記のAI基準を用いて評価した後でも、エンコーディングのために選択されたCAABCTを識別することが依然として不可能であり、そのような区別をするためにエンコーディングコードのセクション又は単位の最後に追加ビットを追加しなければならない可能性がある。必要であれば、この追加ビットは、正しく解決されない状況をエスケーピングするための安全なエスケープとしての使用のためにのみ提供される。このエスケープは実現する必要がめったになく、従って、ビットストレージは実際にはこの目的には使用されない可能性があり、曖昧な場合には、前述のAI基準の全てが最終的な答えを提供できない場合にのみ使用される可能性がある。これを考慮して、そのようなAI評価は、エンコーディングプロセスの間、並びにエンコーディングの各セクション又は単位が終了した後にも行われるべきである。及び
(f)適切且つ効果的な使用のために発見され設計されたその他の基準。
図表25
27個の値の分類絶対アドレス分岐コード表(CAABCT0)
実施例III
27個の値の分類絶対アドレス分岐コード表(CAABCT1)
実施例IV
0
10
11
一方、CAABCT1では、トリオは1ヘッドデザインを使用し、次の形式のサフィックスが付いている。
1
01
00
段落0086(d)で説明されているように、異なる設計のサフィックスの使用は、AIを区別するためのものである。サフィックス設計は、AAB技術を使用した結果として生じるもう1つの使用法である。
図表27
データコード値(図表24)とCAABCT0及びCAABCT1のテーブルコード値とのクロスマッピング
図表28
データコード値(図表24)とCAABCT2及びCAABCT1のテーブルコード値とのクロスマッピング
(a)CAABCT2は、0ヘッドデザインを用いてその6つのトリオ(即ち0、10、11)に用いることに対して、CAABCT1は1ヘッドデザイン(即ち1、01、00)を用いてそれらのそれぞれのトリオサフィックスに用いる。
(b)クロスマッピングに用いられる場合、CAABCT2の固有テーブルコード値は、全く同じビットサイズを有するランダムデータセットの固有データコード値にマッピングされ、即ち、3ビットサイズのテーブルコード値は3ビットサイズのデータコード値にマッピングされ、4ビットサイズのテーブルコード値が4ビットサイズのデータコード値にマッピングされ、5ビットサイズのテーブルコード値が5ビットサイズのデータコード値にマッピングされ、6ビットサイズのテーブルコード値が6ビットサイズのデータコード値にマッピングされる。このような方法でマッピングすると、エンコーディング後も同じビットで使用され、ランダムデータセットのデータサイズは圧縮も拡張もされない。
図表29
データコード値(図表24)とCAABCT2、CAABCT0及びCAABCT1のテーブルコード値とのクロスマッピング
図表30
1つの3値コード単位の処理ユニット
PU PU
値番号 コード値
値1(v1) 0
値2(v2) 10
値3(v3) 11
従って、処理ユニットは、処理中の任意点でのデータ割り当ての変化する状況に応じて、0ヘッドデザインの3つ又は4つの3値コード単位で構成される。この新しい技術は、ランダムであろうとなかろうと、あらゆるタイプのデータ割り当てのデータエンコーディング及びデコーディング処理を豊かにする。
(i)全ての3つの固有コード値が存在する。
(ii)全ての3つの固有コード値が存在するわけではない。
従って、3つのシナリオがある。
(a)3つのコード単位を備える処理ユニットであって、その中に全ての3つの固有コード値が存在する。
(b)4つのコード単位を備える処理ユニットであって、その中に、全ての3つの固有コード値が存在する。
(c)4つのコード単位を備える処理ユニットであって、その中に全ての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)
そのため、デジタルデータ入力ファイル全体のエンコーディング及びデコーディングについて、まずデジタルデータファイル全体を解析し、頻度が最も高いシナリオを見つけて、それを割り当てて最も短い分類コードを使用し且つ他のシナリオを下にプッシュする。従って、デコーディングが正しく行われるように、シナリオデザインインジケータ(どのシナリオ分類スキーマ又はデザインを使用するかを示す)をヘッダーに含める必要がある。
シナリオ(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
(a)係るコード単位の定義を用いることによって4つの連続したデータコード値を読み取る。
(b)4番目のデータコード値を読み取ったとおりに書き込む。
(c)必要に応じてコード調整技術を用いて1番目のデータコード値を書き込む。
(d)必要に応じてコード調整技術を用いて2番目のデータコード値を書き込む。
(e)必要に応じてコード調整技術を用いて3番目のデータコード値を書き込む。及び
(f)ステップ(a)で読み取られた4つの連続したコード値をエンコーディンした後に、エンコーディングされていないコード単位の開始点に戻るまで、ステップ(a)にループバックする。
且つ適切な場合、上記ステップ(c)から(e)で述べたコード調整技術は、内容コードのランク及び位置のエンコーディング、内容コードの昇格及び内容コードの省略、内容コードの降格、並びに適切な場合の内容コードの復元を含む。
図表33
シナリオ(b)における3つのサブシナリオ及びRPコーディング
これらのサブシナリオのそれぞれにランク及び位置エンコーディング技術を用い、図表33に示すように、それらのそれぞれの6つの可能な組み合わせに2ビット又は3ビットを用いる。
あるいは図表34に示すように、適切な状況でコード昇格及びコード省略技術を用いてもよい。
図表34a
シナリオ(b)における3つのサブシナリオ及びコード昇格並びにコード省略
図表34b
シナリオ(b)における3つのサブシナリオ及びコード昇格並びにコード省略
上記シナリオ(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つの技術は、得られたビットパターンの配列にのみ異なる。
図表37
シナリオ(c)の3つのサブシナリオ及びRPコーディング
あるいは、必要に応じて、コード昇格、コード省略及びその他の形式のコード調整技術を使用することができる。図表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)を用いるシナリオ分類コードのコード調整
上記結果から、別の観察結果は、エンコーディング後に拡張をもたらすそれらのコード値エントリは、より多くのv1コード値を有するエントリであるということである。そのため、データセットのデータ割り当てはビット1よりもビット0が多い場合、上記技術を使用してデジタルデータセットを読み取ってエンコーディングに用いるために、1ヘッドデザインをコード単位とする定義を使用するほうが最適である。3つの固有コード値は以下のようになる。
1
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進数ビットに依存する。
図表40
ランク及び位置に関する3つの固有コード値の6つの可能な組み合わせに対するRPコード割り当て
シナリオ(b)の3つのサブシナリオ及びコード昇格とコード省略
(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コード単位のエンコーディングとビット使用
図表43
シナリオ4コード単位のエンコーディングとビット使用
シナリオ5のコード単位のエンコーディングとビット使用は、長くて複雑であるため、リストに載られることが不能である。しかしながら、エンコーディングは同じ論理に従うので、ビット使用結果は以下のように簡単に説明することができる。
0ヘッドデザインによる3値コード単位の3つの固有データコード値の図表44における頻度分布は、優先権主張の下で実行されている前記PCT出願中に言及した自動プログラムにより生成されるものである。
図表44
80000個のランダムビットを使用した3値コード単位の頻度分布
0:26536
10:13156
11:13576
図表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つの固有コード値が欠落していることを意味している。
図表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の変化に伴って変わる。
(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に使用される)。
(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のコード単位及び残りのコード単位等の使用にも適用され得る。
図表51a
事前分類コードとクラスA処理ユニット
図表51b
第3データコード値と第2データコード値が同じ値であるか否かを基準として細分化するためのクラスB処理ユニットの内部分類コード又は埋め込み式分類コード
上記分類例は、分類コードの使用に基づくものである。00の4つのクラスは、クラスA処理ユニットに使用される。しかし、斬新なものは、01、10及び11の使用についてである。実際には、それらは、内容コードそのものであり、v1のビット0からビット01までのわずかな修正だけで、これらの内容コードを分類コードとして使用するようにさせる。そして、エンコーディング処理において、内容コードの一部として使用される時、v1のエンコーディングコード値、即ち01は、より短い形式、即ち0のみに復元される。なぜなら、内容コード部分において誤解されず、エンコーディング処理ユニットのヘッドコードとして使用されている分類コードではないからである。上記例では、修正があるが、内容コードを分類コードとして使用したこの技術の有用性を鮮明に示している。これは、CHANコードの作成に使用されるCHANコーディングのもう1つの技術である。
図表52
クラスB処理ユニットを分類するための分類コードとして、第3データコード値と第2データコード値が同じ値であるか否かを基準として修正した内容コードを使用する。
図表53
コードが再割り当てされる前に、圧縮可能及び圧縮不可能なデータ値のエントリに基づくデータ分類は、使用される段落0075における図表21に示す頻度を有する。
(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に示す頻度を有する。
図表55
図表53にリストされているコードアドレスとコードエントリ値を再割り当てした後、同等性が生じる。
図表56a
図表55で使用されるシナリオコードと異なる逆の割り当てを使用する。
上記から分かるように、ヘッダー内のインジケータは、シナリオコードがどのように割り当てられるか、またコード単位の0ヘッドデザイン又はコード単位の1ヘッドデザインを使用してデジタルデータが読み取られるか、及びデータ値が読み取られた後にどのようなヘッドデザインがエンコーディングするために用いられることを指示するように保留し、そのため、それらが同じでなくてもよい。そのような変動は、得られるCHANコードエンコーディングにおけるビット0:ビット1の比率に影響を及ぼす可能性がある。そのようなインジケータは、最適なシナリオを選択することで、エンコーディングが要求される目的を達成する。
ビット0:ビット1の比率をさらに変更するために、図表56aをさらにコード単位の1ヘッドデザインに変更して使用でき、以下のように示している。
図表56b
逆の割り当てで、図表56aで使用される0ヘッドデザインと異なる1ヘッドデザインのコード単位の内容コードに用いられる。
図表56c
図表56bで使用される1ヘッドデザインと異なる0ヘッドデザインシナリオコードを使用する逆の割り当ての使用
例えば、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
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ビットのライターを使用することができる。
(a)チェックインジケータ:適切であれば存在してもよく、デコーダはそれを使用してデコーディングされるファイルが有効なCHANコードファイルであるか否か、及びファイルが使用可能な有効ファイルであるか否かを識別し、そのため、エンコーダによって生成された対応するCHANコードファイルに対して設計者によって設計されたインジケータを含む。
(b)リサイクルビット又はインジケータ:エンコーダによってデコーダに使用されるビットを書き込むことで、デコーダに現在処理サイクルをデコーディングした後に停止しなければならないか否かを指示する。
(c)(エンコーダによりエンコーディング中に使用されるか又は)現在のエンコーディングサイクルのデジタルデータ層をデコーディングすることに用いられるマッピングテーブル又はコード単位定義インジケータ:別の指示ビット(不均一器/均一器インジケータ)を用いて現在エンコーディングされたCHANコード層が不均一器マッピングテーブル又は均一器マッピングテーブルを使用することによって完了させるか否かを区別する。
(A)CHANコード単位:エンコーディングしたCHANコードを含み、選択されたコード単位定義のリーダーを用いて入力したデジタルデータを読み取り、デジタルデータをライターで書き込み又はエンコーダで読み取り、ライターは、ヘッダーに示されるコード単位定義又はマッピングテーブルのエンコーダを使用し、エンコードを書き込み又はコード単位定義又はマッピングテーブルを含むプログラミングロジックを実現してエンコーディングするものである。ここでエンコーディングしたCHANコードは、適切な場合に分類コードと内容コードを含む。
(B)エンコーディングされていないコード単位:これは、デジタルデータ部分を入力する2進数ビットの部分を示し、読み取られた時にエンコーディングされず、通常には得られたCHANコードファイルの最後に置かれる。これは、コードの一部に設計され、そのビット数が1つの処理ユニット又は1つのスーパー処理ユニットを構成するのに十分ではないため、使用されるエンコーディング技術を用いてそれをエンコーディングすることができない。
不均一器を使用する別の変形は、最後の処理サイクルの前にそれを複数回使用することであり、そして最後のサイクルのエンコーディングは、コンプレッサ(又は圧縮のための均一器)によって行われる。このような方式で、エンコーディングプロセスは、コンプレッサエンコーディングの最後のサイクルの前に1つ以上の不均一エンコーディングサイクルを含む。この変形により得られるCHANコードとCHANコードファイルの構造は、段落0121から0123に記載されているものと同様である。均一器は、データセットのビット0:ビット1の比率をより均一にするコンプレッサであり、最後のサイクル又は最後のエンコーディング層のエンコーダとして使用される時に、このような均一器又はコンプレッサの使用の結果として、データ割り当てがそのスキューの他の方向に偏ったことは重要ではなく、予想されるように圧縮される限り、スキューはいかなる方法であってもよい。使用される用語は、即ち均一器又は均一器エンコーダが本発明のコンプレッサ又はコンプレッサエンコーダと同じであると見なされるべきである。
図表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を示す)
図表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及び図表58bのコード値の間の頻度範囲を比較すると、この規則的な変化を発見することができる。ビットクラス内の頻度の最も高いコード値と隣接するビットクラス内の頻度の最も低いコード値の間の頻度範囲を比較することができる。以下の図表58eに異なるビットクラスにおけるコード値の頻度範囲が示される。
図表58e
これに基づいて、ランダムであるか否かに関わらず、データを処理する方法及びそれに対応する法則を設計することで、目的に合わせる。ここで、本開示は、この発見が特にランダムデータを含むデジタルデータの圧縮を行うことにどのように使用されることを明らかにする。
デジタルブラックホールの発明は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つの形態のデジタルデータブラックホール技術に適用する。
しかしながら、デジタルデータの高い頻度範囲比率及び少ないランダムビットにより、ビット節約数が使用される特殊コードインジケータのビット消費をカバーするのに十分である。例えば、頻度が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つの特徴であり、前記特徴は、デジタルデータセットのパターン又は法則を識別し、上記技術の組み合わせにより成功裏に圧縮することを可能にするために用いられる。
(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コードテーブル
0
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進数ビット未満のランダムデータを含まず、厳密な制限はここでは重要ではない)。従って、上記内容を参照しながら、ユニバーサルエンコーダが本明細書において発明された。
理解している人がその数を数える。
(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フレームワークで設計されたコーダ。
シーケンステーブルのテキスト
(項目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フレームワークで設計されたコーダ。
Claims (17)
- CHANフレームワークとも称される、記録媒体にアクセス可能なコンピュータが、前記記録媒体に格納されたランダムであるか否かを問わないデジタルデータ情報をロスレスにエンコーディング及びデコーディングするためのフレームワークであって、前記フレームワークは、ランダムであるか否かを問わない任意のデジタルデータセットから前記コンピュータにより作成されたデータの順序又はデータ構造又はデータ編成で特徴付けられ、前記デジタルデータセットは、前記コンピュータが使用するデジタルデータセットの2進数ビットを収容するビットコンテナの基本ユニットとしてのコード単位を含み、
前記コンピュータによるロスレスのエンコーディング及びデコーディングのために、前記コード単位は、1つのコード単位が収容可能又は表現可能な一意のデータ値の最大数、即ち、1つのコード単位の値のサイズで規定され、ここで1つのコード単位の前記一意のデータ値の各々は同じビットサイズ又は異なるビットサイズを持ち、
且つ前記コード単位は、1つのコード単位の全ての前記一意のデータ値が総計で占めるビット数、即ち、1つのコード単位の前記一意のデータ値の各々が占めるビットサイズの合計で規定され、
且つ前記コード単位はヘッドデザイン、即ち、前記コード単位の全ての前記一意のデータ値の全ての2進数ビットのビットパターン及びビット0とビット1とのビット比率でさらに規定される、
フレームワーク。 - 記録媒体にアクセス可能なコンピュータが、前記記録媒体に格納されたランダムであるか否かを問わないデジタルデータ情報から順序を作成する方法であって、
前記コンピュータが、ランダムであるか否かを問わない任意のデジタルデータセットから、データ順序を作成する段階であって、前記デジタルデータセットは、前記コンピュータが使用するデジタルデータセットの2進数ビットを収容するビットコンテナの基本ユニットとしてのコード単位を含む、段階を特徴とし、
前記コンピュータによるロスレスのエンコーディング及びデコーディングのために、前記コード単位は、1つのコード単位が収容可能又は表現可能な一意のデータ値の最大数、即ち、1つのコード単位の値のサイズで規定され、ここで1つのコード単位の前記一意のデータ値の各々は同じビットサイズ又は異なるビットサイズを持ち、
且つ前記コード単位は、1つのコード単位の全ての前記一意のデータ値が総計で占めるビット数、即ち、1つのコード単位の前記一意のデータ値の各々が占めるビットサイズの合計で規定され、
且つ前記コード単位はヘッドデザイン、即ち、前記コード単位の全ての前記一意のデータ値の全ての2進数ビットのビットパターンおよびビット0とビット1とのビット比率でさらに規定される、
方法。 - 前記デジタルデータセットが、さらに
サブユニットとしての一定数のコード単位によって構成される処理ユニット、
サブユニットとしての一定数の処理ユニットによって構成されるスーパー処理ユニット、及び
一定数の2進数ビットで構成されるエンコーディングされていないコード単位であって、前記一定数の2進数ビットが1つの処理ユニットのサイズを構成しないため、エンコーディングされないものとしてそのまま残されている、エンコーディングされていないコード単位
を1つ又はこれらの任意の組み合わせで有する、請求項2に記載の方法。 - 前記デジタルデータセットが、さらに、コード単位、一定数のコード単位によって構成される処理ユニット、一定数の処理ユニットによって構成されるスーパー処理ユニット及びエンコーディングされていないコード単位並びにこれらの組み合わせから導出された特性又は関係を有する、請求項2または3に記載の方法。
- 記録媒体にアクセス可能なコンピュータが、以下、CHANコーディングとも称される、請求項1のCHANフレームワーク下でデータをエンコーディング及びデコーディングする方法であって、前記エンコーディング及びデコーディングする方法は、
エンコーディング及びデコーディングのために、前記コード単位の全ての前記一意のデータ値の全ての2進数ビットの関連付けられた前記ビットパターン及びビット0とビット1との前記ビット比率によって表わされるヘッドデザインを、エンコーディング及びデコーディングされるデジタルデータの特性に割り当てて、前記特性に基づいてデータ値を分類することを含む、
方法。 - 前記コンピュータが、任意のデジタルデータセットからCHANコードを生成することをさらに特徴とする、請求項5に記載の方法。
- 前記コンピュータが、エンコーディング及びデコーディングのために、スーパー処理ユニットを使用して、少なくとも1つのサブセクションがランダムではないデータのサブセクションにデジタルデータセットを細分化する技術を特徴とする、請求項5に記載の方法。
- 前記コンピュータが、特定のクラスのスーパー処理ユニットに現れる一意のデータ値のエントリの数の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つ以上のクラスにさらに分類すること、エンコーディング及びデコーディングするために、これらのクラスの各々のデータ分布に適したマッピングテーブルを設計すること、これらのスーパー処理ユニットの各々のデータ値のデータ分布に適したそれぞれのマッピングテーブルを用いて、これらのスーパー処理ユニットの各々のデータ値をエンコーディング及びデコーディングすること、並びに、デコーディングに用いるこれらのクラスのスーパー処理ユニットを区別するためにインジケータを使用することであって、そのようなインジケータはこれらのスーパー処理ユニットの各々のヘッダーに又は別のCHANコードファイルのような他の場所に格納される、こと、を特徴とする、請求項7に記載の方法。
- 前記コンピュータが、特定のクラスのスーパー処理ユニットに現れる一意のデータ値のエントリの数の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つ以上のクラスにさらに分類すること、エンコーディング及びデコーディングするために、これらのクラスの各々のデータ分布に適したマッピングテーブルを設計すること、これらのスーパー処理ユニットの各々のデータ値のデータ分布に適したそれぞれのマッピングテーブルを用いて、これらのスーパー処理ユニットの各々のデータ値をエンコーディング及びデコーディングすること、並びに、スーパー処理ユニットの前記クラスのデータ分布に適した基準と、エンコーディング及びデコーディング用の対応するマッピングテーブルとを、エンコーディングされたコードの評価に用いるために設定することにより、人工知能によるスーパー処理ユニットのクラス間での区別を行い、インジケータの使用が省略できるようにする、ことを特徴とする請求項7に記載の方法。
- 前記コンピュータが、特定のクラスのスーパー処理ユニットに現れる一意のデータ値のエントリの数の分類条件を使用して、デジタルデータセットのスーパー処理ユニットを2つのクラスにさらに分類すること、エンコーディング及びデコーディングのために、これらのクラスの各々のデータ分布に適したマッピングテーブルを設計することであって、そのためこれらのマッピングテーブルのうちの少なくとも1つが機能することができ、従って、不均一器として機能するように選択され、且つそのような不均一器がまたコード再分布を使用して調整され得、前記コード再分布が少なくとも1つのクラスのスーパー処理ユニットのデータ値のデータ分布を利用することができ、それによりコード再分布によるコード調整後の不均一器マッピングテーブルが機能することができ、従って少なくとも1つのクラスのスーパー処理ユニットのコンプレッサのマッピングテーブルとして選択される、こと、1番目のサイクルに不均一器を使用して全てのスーパー処理ユニットをエンコーディングし、その後にコンプレッサを使用して少なくとも1つのクラスのスーパー処理ユニットをエンコーディングすることであって、エンコーディング中のそれぞれのスーパー処理ユニットのデータの圧縮が2番目のサイクルにおいて実行可能であり、即ち1番目のサイクルに不均一器を使用してエンコーディングし、且つ2番目のサイクルにコンプレッサを使用してエンコーディングし、圧縮不可能なデータを持つスーパー処理ユニットをそのままにし、即ち不均一器だけを使用してエンコーディングする、こと、これらのスーパー処理ユニットの各々のデータ値のデータ分布に適したそれぞれのマッピングテーブルを使用して、これらのスーパー処理ユニットの各々のデータ値をデコーディングすることであって、それにより1番目のデコーディングサイクルで、不均一器のエンコーディング及びコンプレッサのエンコーディングにより形成されたエンコーディングされたコードをデコーディングし、その結果、コンプレッサのエンコーディング層が除去され、2番目のデコーディングサイクルで、全てのスーパー処理ユニットの不均一器によってエンコーディングされたコードのみからなるエンコーディングされたコードが、不均一器のデコーダによってデコーディングされる、こと、並びに、スーパー処理ユニットのクラスのデータ分布に適した基準と、エンコーディング及びデコーディング用の対応するマッピングテーブルとを、エンコーディングされたコードの評価に用いるために設定することにより、人工知能によるスーパー処理ユニットのクラス間での区別を行い、インジケータの使用が省略できるようにする、ことを特徴とする、請求項7に記載の方法。
- エンコーディング及びデコーディングするための、請求項5から10のいずれか一項に記載のCHANコーディングの方法の1または複数の技術が埋め込まれることを特徴とする、請求項1に記載のCHANフレームワークで設計された、コーダ。
- 前記コーダには、さらに、エンコーディング及びデコーディングのためのヘッダーインジケータが埋め込まれ、前記ヘッダーインジケータが、チェックサムインジケータ、CHANコードファイル署名、マッピングテーブルインジケータ、サイクル数インジケータ、コード単位定義インジケータ、処理ユニット定義インジケータ、スーパー処理ユニット定義インジケータ、最後識別コードインジケータ、シナリオ設計インジケータ、不均一器/均一器インジケータ、リサイクルインジケータ、頻度インジケータ、特殊コードインジケータ、セクションサイズインジケータ、デジタルデータブラックホールタイプインジケータ及び圧縮可能/非圧縮可能データインジケータのうちのいずれかを含む、請求項11に記載のコーダ。
- ランダムであるか否かを問わないデジタルデータセットに関する統計を収集して、用いられる調査対象のデジタル情報の特徴を分析、調査又は記述するための、デジタルデータセットの分析方法であって、請求項1のCHANフレームワーク下で定義されるデータ順序のスキーマを使用することを特徴とする、方法。
- コード単位、処理ユニット及びスーパー処理ユニットの前記一意のデータ値が、使用される設計に応じて、複数のビットサイズ若しくはビット長を有し、又は、異なるビットサイズ若しくはビット長を有することを特徴とする、請求項1のCHANフレームワークで設計されたコーダ。
- 請求項2から4のいずれか一項に記載の方法を実行するための手段を備える、装置。
- 前記装置は、ローカルクラウド、インターネットクラウド、ローカルエリアネットワーク又はインターネット上で接続される、請求項15に記載の装置。
- コンピュータに、請求項2から10のいずれか一項に記載の方法を実行させるための、プログラム。
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 | ||
IBPCT/IB2016/054732 | 2016-08-05 | ||
PCT/IB2016/054732 WO2018020300A1 (en) | 2016-07-29 | 2016-08-05 | Chan mathematics and chan coding and chan code |
IBPCT/IB2017/050985 | 2017-02-22 | ||
PCT/IB2017/050985 WO2018020328A1 (en) | 2016-07-29 | 2017-02-22 | Chan framework, chan coding and chan code |
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 JP2019528027A (ja) | 2019-10-03 |
JP7268271B2 true 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)
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 | 深圳市科楠科技开发有限公司 | 一种数据压缩方法、装置、终端设备及存储介质 |
CN112559462B (zh) * | 2020-12-14 | 2024-08-20 | 深圳供电局有限公司 | 一种数据压缩方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. | コンパクトなコードブックを用いるエントロピー符号化 |
CN103607207A (zh) | 2013-11-11 | 2014-02-26 | 大连理工大学 | 一种即插即用的多接口数据压缩设备 |
JP6460112B2 (ja) | 2014-08-25 | 2019-01-30 | 日本電気株式会社 | セキュリティシステム、セキュリティ方法およびプログラム |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6460112A (en) * | 1987-08-31 | 1989-03-07 | Nec Corp | Data compressing system |
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 |
US5533051A (en) * | 1993-03-12 | 1996-07-02 | The James Group | Method for data compression |
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编码器 |
ATE485672T1 (de) | 2003-12-19 | 2010-11-15 | Creative Tech Ltd | Digitale standbildkamera mit audio-decodierung und -codierung, einem druckbaren audioformat und verfahren |
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 | 金蝶软件(中国)有限公司 | 整型数据的压缩方法、装置及解压缩方法、装置 |
JP4717860B2 (ja) * | 2007-08-22 | 2011-07-06 | 眞一郎 湯村 | データ圧縮方法及び画像表示方法及び表示画像拡大方法 |
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 | メモリコントローラおよび半導体記憶装置 |
CN106162178B (zh) * | 2010-04-13 | 2019-08-13 | 三星电子株式会社 | 执行去块滤波的对视频进行解码的设备 |
JPWO2012046435A1 (ja) * | 2010-10-04 | 2014-02-24 | パナソニック株式会社 | 画像処理装置、画像符号化方法および画像処理方法 |
US9348385B2 (en) * | 2012-07-09 | 2016-05-24 | L. Pierre deRochement | Hybrid computing module |
MX348561B (es) | 2013-07-12 | 2017-06-20 | Sony Corp | Aparato y método para la codificación de imágenes. |
US10075720B2 (en) * | 2013-10-08 | 2018-09-11 | Sharp Kabushiki Kaisha | Image decoding device, image decoding method, image coding device, and image coding method |
GB2523347B (en) * | 2014-02-20 | 2016-01-13 | Gurulogic Microsystems Oy | Encoder, decoder and method |
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显示模组 |
US10819997B2 (en) | 2016-01-20 | 2020-10-27 | Arris Enterprises Llc | Encoding video data according to target decoding device decoding complexity |
WO2018020299A1 (en) * | 2016-07-29 | 2018-02-01 | Chan Kam Fu | Lossless compression and decompression methods |
-
2016
- 2016-07-29 WO PCT/IB2016/054562 patent/WO2018020299A1/en active Application Filing
- 2016-08-05 WO PCT/IB2016/054732 patent/WO2018020300A1/en active Application Filing
-
2017
- 2017-02-22 WO PCT/IB2017/050985 patent/WO2018020328A1/en active Application Filing
- 2017-07-01 WO PCT/IB2017/053993 patent/WO2018020342A1/en active Application Filing
- 2017-07-25 US US16/067,412 patent/US11515888B2/en active Active
- 2017-07-25 CN CN201780040973.XA patent/CN109416655A/zh active Pending
- 2017-07-25 JP JP2019526383A patent/JP7268271B2/ja active Active
- 2017-07-25 WO PCT/IB2017/054500 patent/WO2018020414A1/en unknown
- 2017-07-25 EP EP17833674.9A patent/EP3491525A4/en active Pending
- 2017-07-25 KR KR1020197006211A patent/KR20190038601A/ko not_active Application Discontinuation
- 2017-07-25 AU AU2017304894A patent/AU2017304894A1/en not_active Abandoned
- 2017-07-25 CA CA3031600A patent/CA3031600C/en active Active
-
2018
- 2018-07-24 EP EP18839355.7A patent/EP3659336A4/en active Pending
- 2018-07-24 US US16/631,081 patent/US11671113B2/en active Active
- 2018-07-24 CA CA3068631A patent/CA3068631A1/en active Pending
- 2018-07-24 CN CN201880041407.5A patent/CN110771161A/zh active Pending
- 2018-07-24 AU AU2018306486A patent/AU2018306486A1/en not_active Abandoned
- 2018-07-24 WO PCT/IB2018/055479 patent/WO2019021160A1/en unknown
- 2018-07-24 JP JP2020501826A patent/JP2020530674A/ja active Pending
- 2018-07-24 KR KR1020207005366A patent/KR20200031159A/ko not_active Application Discontinuation
-
2020
- 2020-12-15 AU AU2020289753A patent/AU2020289753A1/en not_active Abandoned
-
2022
- 2022-07-20 JP JP2022115555A patent/JP2022160484A/ja active Pending
- 2022-09-27 US US17/935,757 patent/US12095487B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. | コンパクトなコードブックを用いるエントロピー符号化 |
CN103607207A (zh) | 2013-11-11 | 2014-02-26 | 大连理工大学 | 一种即插即用的多接口数据压缩设备 |
JP6460112B2 (ja) | 2014-08-25 | 2019-01-30 | 日本電気株式会社 | セキュリティシステム、セキュリティ方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US12095487B2 (en) | 2024-09-17 |
KR20190038601A (ko) | 2019-04-08 |
WO2018020414A1 (en) | 2018-02-01 |
EP3659336A1 (en) | 2020-06-03 |
WO2018020300A1 (en) | 2018-02-01 |
JP2020530674A (ja) | 2020-10-22 |
AU2020289753A1 (en) | 2021-01-21 |
CA3031600A1 (en) | 2018-02-01 |
CN110771161A (zh) | 2020-02-07 |
CA3068631A1 (en) | 2019-01-31 |
US11671113B2 (en) | 2023-06-06 |
US20190013825A1 (en) | 2019-01-10 |
AU2017304894A1 (en) | 2019-02-21 |
US20230223952A1 (en) | 2023-07-13 |
EP3659336A4 (en) | 2021-04-21 |
US20200151051A1 (en) | 2020-05-14 |
WO2018020299A1 (en) | 2018-02-01 |
JP2022160484A (ja) | 2022-10-19 |
WO2018020342A1 (en) | 2018-02-01 |
EP3491525A4 (en) | 2019-08-28 |
CA3031600C (en) | 2022-12-13 |
KR20200031159A (ko) | 2020-03-23 |
AU2018306486A1 (en) | 2020-02-13 |
JP2019528027A (ja) | 2019-10-03 |
WO2019021160A1 (en) | 2019-01-31 |
US11515888B2 (en) | 2022-11-29 |
WO2018020328A1 (en) | 2018-02-01 |
EP3491525A1 (en) | 2019-06-05 |
CN109416655A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7268271B2 (ja) | Chanフレームワーク、chanコーディング及びchanコード | |
US11258459B2 (en) | Methods and apparatus to parallelize data decompression | |
US9853660B1 (en) | Techniques for parallel data compression | |
US20240121447A1 (en) | Systems, apparatus, and methods for bit level representation for data processing and analytics | |
EP1832000A1 (en) | Device and data method for selective compression and decompression and data format for compressed data | |
US11677416B2 (en) | Hardware implementable data compression/decompression algorithm | |
US8515882B2 (en) | Efficient storage of individuals for optimization simulation | |
US7683809B2 (en) | Advanced lossless bit coding | |
JP4776489B2 (ja) | 画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム、画像符号化方法、および画像復号方法 | |
CN113177638B (zh) | 用于生成神经网络的二值化权重的处理器和方法 | |
JP5200854B2 (ja) | 符号化装置、復号装置、及び画像処理システム | |
US7155062B1 (en) | System and method for performing pattern matching image compression | |
Huang et al. | VQ Coding in Data Hiding Using Correlated Neighboring Blocks in Security Performance | |
KR20210119907A (ko) | 가중치 값의 압축 및 압축 해제 | |
CODING | A NOVEL COMPRESSION SCHEME BASED ON SMVQ | |
Huang | Shape-oriented test set compression method using ideal vector sorting and shapes | |
WO2017037502A1 (en) | Compression code and method by location | |
Khan | A novel image compression technique using gradual change of neighboring pixels |
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 |