DIGITAL LENSING
20200151051 ยท 2020-05-14
Inventors
Cpc classification
G06F11/10
PHYSICS
H03M7/30
ELECTRICITY
H04N19/90
ELECTRICITY
H03M7/55
ELECTRICITY
H03M7/3084
ELECTRICITY
International classification
Abstract
A method, and the associated design, schema and techniques for processing digital data, whether random or not, through encoding and decoding losslessly and correctly for purposes of encryption/decryption or compression/decompression or both, including the use of Digital Lensing, Unlimited Code System, and other associated techniques. There is no assumption of or requirement for the digital information to be processed before processing.
Claims
1. A method of organizing or ordering digital information represented in binary bits being characterized by using Digital Lensing;
2. Digital Lensing, a method of organizing or ordering digital information represented in binary bits, being characterized by designing and creating Digital Construct whereby codes of different code values in binary bits are placed in different parts of the Digital Construct, including at least a Digital Reservoir and a Digital Dam;
3. Digital Construct, being characterized by: being digital structure for organizing or ordering digital information represented in binary bits, created by using Digital Lensing; being digital structure consisting of at least a Digital Reservoir and a Digital Dam; and being digital structure holding digital information input represented in binary bits in the form of un-encoded Digital Construct having original binary bits of the digital information input under processing;
4. Digital Construct, being characterized by: being digital structure for organizing or ordering digital information represented in binary bits, created by using Digital Lensing; and being digital structure holding encoded codes in binary bits in the form of encoded Digital Construct representing digital information input under processing plus additional digital information represented in binary bits, where appropriate, that is used for decoding the whole encoded Digital Construct and restoring it to the respective corresponding un-encoded Digital Construct(s);
5. Digital Reservoir, being characterized by being a digital structure for holding digital codes represented in binary bits having selected code values, one or more, according to the Digital Lensing Design used; and being further characterized by being a variable digital structure inside which the number of digital codes held having selected code values designed for it varies from zero to an unlimited number as long as the digital information input under processing has such digital codes represented in binary bits;
6. Digital Dam, being characterized by being a digital structure for holding digital codes represented in binary bits having selected code values, one or more, according to the Digital Lensing Design used; and being further characterized by being a fixed digital structure inside which the number of digital codes held having selected code values designed for it varies from one to an unlimited number as long as the digital information input under processing has such digital codes represented in binary bits;
7. Processing Unit designed using Digital Lensing, being characterized by being consisting of one or more Digital Constructs;
8. Digital Codes, being characterized by being codes represented in binary bits and representing one or more units of Digital Construct being stored in any storage medium readable by device(s), including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s) that is/are capable of running executable code or using digital data;
9. Digital Codes, being characterized by being codes represented in binary bits and representing one or more units of Digital Reservoir being stored in any storage medium readable by device(s), including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s) that is/are capable of running executable code or using digital data;
10. Digital Codes, being characterized by being codes represented in binary bits and representing one or more units of Digital Dam being stored in any storage medium readable by device(s), including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s) that is/are capable of running executable code or using digital data;
11. Pyramid Head Unlimited Code System, being characterized by an unlimited number of digital code(s), each code being ended by a binary bit Bit 0;
12. Pyramid Head Unlimited Code System, being characterized by an unlimited number of digital code(s), each code being ended by a binary bit Bit 1; (13) Flat Head Unlimited Code System, being characterized by combining a binary code system at the upper level(s) and a Pyramid Head Unlimited Code System at the lower levels;
13. Flat Head Unlimited Code System, being characterized by combining a binary code system at the upper level(s) of the code system and a Pyramid Head Unlimited Code System at the lower level(s) of the code system;
14. Counting technique, being characterized by counting a series of unlimited number using Pyramid Head Unlimited Code System;
15. Counting technique, being characterized by counting a series of unlimited number using Flat Head Unlimited Code System;
16. Counting technique, being characterized by using Multiple counting systems, that is more than one counting system in the form of Parallel Counting Systems for counting one series of unlimited number;
17. Counting technique, being characterized by using Multiple counting systems, that is more than one counting system in the form of Successive Counting Systems for counting one series of unlimited number;
18. Counting technique, being characterized by using Multiple counting systems, that is more than one counting system in the form of Parallel Counting Systems and Successive Counting Systems for counting one series of unlimited number;
19. Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Digital Blackholing;
20. Encoding and decoding method, being characterized by the use of Digital Lensing and the use of one or more unlimited counting systems;
21. Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Absolute Address Branching for creating new address(es) for use, including its use for creating new counting system or its use for Code Promotion or its use for Code Demotion;
22. Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Code Promotion;
23. Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Code Demotion;
24. Encoding and decoding method, being characterized by the use of Digital Lensing, the use of Digital Blackholing and the use of one or more unlimited counting systems;
25. Encoding and decoding method, being characterized by the use of Digital Lensing, the use of Code Promotion and the use of Code Demotion; and
26. Encoding and decoding method, being characterized by the use of Digital Lensing.
Description
BEST MODE
[0857] The best of the embodiments introduced so far in the PCT Application, PCT/IB2017/054500, under priority claim of the present invention is the use of Digital Data Blackholing together with Code Surrogating (Successive or not) for compressing random and non random data where appropriate. And for non-random data, further rules and AAB Code Tables could be designed and developed to suit the type of data distribution of digital data set under processing. This provides a definite proof that any digital data set could be encoded and decoded in cycle up to a limit described, a proof that puts an end to the myth of Pigeonhole Principle in Information Theory and now Pigeonhole meets Blackhole. That does not mean that other techniques of CHAN CODING in other modes could not produce the same result or the same. It is predicted that same result and same proof could also be provided using other modes.
MODE FOR INVENTION
[0858] Other modes include the use of Unevener and Evener in alternation for encoding and decoding, the use of Super Processing Units for breaking down random data set into sub-sections or sub-units of uneven data that is susceptible to compression, especially through the technique of setting criteria for using AI distinction of such sub-sections, and the use of Processing Units of varying sizes with appropriate use of Terminating Condition and criteria of classification according traits or characteristics of the content of the digital data values for encoding and decoding, as well as the use of mathematical formula(e) and the placement of their corresponding values for encoding and decoding, especially for easy design of encrypting schema. In addition, the present invention reveals its most novel method of using Digital Lensing for creating digital structures or contructs for select code values for manipulation for the purpose of encoding and decoding, including encryption cum decryption as well as compression and decompression in a lossless way regardless the digital data set under processing is random or non-random as seen in Paragraph 142 and below.
[0859] What is of the most importance is that CHAN FRAMEWORK as seen from the above discussion provides a framework that could be used to create order from data whether random or not, allowing statistics be generated from it in terms of the schema and design one chooses for describing the particular data set under processing [the schema and design including the design of Code Unit, Processing Unit, Super Processing Unit (Sections being a bigger size Super Processing Unit), Un-encoded Code Unit, Header containing essential indicators designed for the use or such information and programming logic built into the Encoder and Decoder, resulting in CHAN CODE to be represented in digital binary bits in the form of CHAN CODE FILES], and allowing the use of techniques of CHAN CODING for encoding and decoding for the purposes of compression and encryption where appropriate. Such aforesaid statistics include the sizes of the Code Unit, Processing unit, Super Processing Unit, their frequency distribution, the rank and position of the data code values, and other characteristic information such as the relations between different data code values as expressed in mathematical formula, the terminating value and terminating condition, ratio between bit 0 and bit 1, the data ranges, etc etc as discussed above. Because such characteristics or traits of the data set could be described under CHAN FRAMEWORK so that relations or derived traits could be created for encoding and decoding purposes. For instance, one particular useful trait is the Absolute Address Branching Code, which could also be used, for example, as a Code Unit Definition by itself, or as the Content Code, or as the Scenario Classification Code as well as as suffix to trios of Content Code for use as criterion in making AI Distinction, and in particular teaming up with the use of Digital Data Blackholing and Successive Code Surrogating, making possible compressing and decompressing random data correctly and losslessly. So CHAN FRAMEWORK is a rich framework allowing great flexibility during the design stage when used in creating order out of any data set of whatever data distribution, which is made describable under the Framework so that techniques be developed for seizing differences between data values, which could then be conscientiously manipulated, such as through cycles of altering the ratio between bit 0 and bit 1 of a data set so that the unevenness of the data distribution could be multiplied for the purpose of making re-cycling data compression possible, or through the design of mathematical formula(e) expressing the relationship between different components of a Processing Unit for the purpose of encrypting the corresponding digital data set either in itself or before making further compression for it again.
[0860] Which mode to use is a matter of choice, depending on the primary purpose of encoding and encoding, be it for encryption or for compression or both. The method of Digital Lensing to be revealed in Paragraph [142] and below is definitely the method of choice because it provides digital constructs that one could make use of it for selecting code values to be manipulated taking into account the data distribution of the digital data set under processing. Digital Lensing and the digital constructs it creates enables one firstly to find out and examine the characteristics as exhibited in the digital constructs formed out of the digital data set under processing and then apply other techniques appropriate for encoding and decoding the digital data set losslessly regardless whether it is random or non-random data.
[0861] In essence, embodiments of the PCT Application, PCT/IB2017/054500, under priority claim of the present invention are characterized by:
[0862] (1) CHAN FRAMEWORK, method of creating order out of digital data information, whether random or not, being characterized by an order of data or a data order or a data structure or a data organization created from any digital data set, whether random or not, consisting of Code Unit as the basic unit of bit container containing binary bits of a digital data set for use; according to the design and schema chosen for processing for the purpose of encoding and decoding, Code Unit being classified primarily by the maximum possible number of data values a Code Unit is defined to hold or to represent, i.e. the value size of a Code Unit, where each of the possible unique values of a Code Unit could have the same bit size or different bit sizes; and Code Unit then being classified by the number of bits all the possible unique data values altogether of a Code Unit occupy, i.e. the sum of the bit size of each of the possible unique data values of a Code Unit takes up; and Code Unit being further classified by the Head Design, i.e. whether it is of 0 Head Design or 1 Head Design; whereby Code Unit of a certain value size under CHAN FRAMEWORK having different definitions and versions according to embodiments;
[0863] (2) CHAN FRAMEWORK, method of creating order out of digital data information, whether random or not, being characterized by an order of data or a data order or a data structure or a data organization created from any digital data set, whether random or not, consisting of Processing Unit(s) which is made up by a certain number of Code Units as sub-units according to the design and schema chosen for processing for the purpose of encoding and decoding;
[0864] (3) CHAN FRAMEWORK, method of creating order out of digital data information, whether random or not, being characterized by an order of data or a data order or a data structure or a data organization created from any digital data set, whether random or not, consisting of Super Processing Unit(s) which is made up by a certain number of Processing Unit(s) as sub-units according to the design and schema chosen for processing for the purpose of encoding and decoding;
[0865] (4) CHAN FRAMEWORK, method of creating order out of digital data information, whether random or not, being characterized by an order of data or a data order or a data structure or a data organization created from any digital data set, whether random or not, consisting of Un-encoded Code Unit which is made up by a certain number of binary bits, which do not make up to the size of one Processing Unit, thus left as un-encoded or left as it is according to the design and schema chosen for processing for the purpose of encoding and decoding;
[0866] (5) [Deleted as it is a duplicate of (4) above.]
[0867] (6) CHAN FRAMEWORK, method of creating order out of digital data information, whether random or not, being characterized by an order of data or a data order or a data structure or a data organization created from any digital data set, whether random or not, consisting of traits or characteristics or relations that are derived from Code Unit(s), Processing Unit(s), Super Processing Unit(s) and Un-encoded Code Unit as well as their combination in use according to the design and schema chosen for processing for the purpose of encoding and decoding;
[0868] (7) CHAN FRAMEWORK, method of creating order out of digital data information, whether random or not, being characterized by a descriptive language that is used to describe the traits or characteristics or relations of any digital data set using the terminology for describing the traits or characteristics or relations of Code Unit, Processing Unit, Super Processing Unit and Un-encoded Code Unit;
[0869] (8) CHAN CODING, method of encoding and decoding, being characterized by techniques for processing data for the purpose of encoding and decoding under CHAN FRAMEWORK;
[0870] (9) CHAN CODING, method of encoding and decoding, being characterized by the resultant CHAN CODE created out of any digital data set using techniques of CHAN CODING;
[0871] (10) CHAN CODING, method of encoding and decoding, being characterized by the technique using Absolute Address Branching Technique with range;
[0872] (11) CHAN CODING, method of encoding and decoding, being characterized by the technique using mathematical formula(e) for representing the relations between Code Units of a Processing Unit of the data order created under CHAN FRAMEWORK;
[0873] (12) CHAN CODING, method of encoding and decoding, being characterized by the technique of placement, placing the values or encoded codes as represented by mathematical formula(e) as well as those values or encoded codes of Code Unit, Processing Unit, Super Processing Unit and Un-encoded Code Unit in different position order;
[0874] (13) CHAN CODING, method of encoding and decoding, being characterized by a technique of classification, i.e. the assignment of 0 Head Design or 1 Head Design or both, represent by the associated bit pattern, to trait(s) or characteristic(s) of the digital data under processing that is/are used to classify or group data values for processing for the purpose of encoding and decoding;
[0875] (14) CHAN CODING, method of encoding and decoding, being characterized by a technique of classification, i.e. the use of trait(s) or characteristic(s) in terms of Rank and Position of the data values of the digital data under processing for classifying or grouping data values for processing for the purpose of encoding and decoding;
[0876] (15) CHAN CODING, method of encoding and decoding, being characterized by a technique of classification, i.e. the use of code re-distribution, including re-distribution of unique data values as well as unique address codes from one class to another class of the classification scheme by use of any one of the following techniques including code swapping, code re-assignment and code re-filling for processing digital data set for the purpose of encoding and decoding;
[0877] (16) CHAN CODING, method of encoding and decoding, being characterized by techniques of code adjustment, including any one of the following techniques including code promotion, code demotion, code omission as well as code restoration for processing for the purpose of encoding and decoding;
[0878] (17) CHAN CODING, method of encoding and decoding, being characterized by technique of using Terminating Condition or Terminating Value for defining the size of a Processing Unit or a Super Processing Unit for processing for the purpose of encoding and decoding;
[0879] (18) CHAN CODING, method of encoding and decoding, being characterized by technique of using Code Unit Definition as Reader of digital data values or encoded code values;
[0880] (19) CHAN CODING, method of encoding and decoding, being characterized by technique of using Code Unit Definition as Writer of digital data values or encoded code values;
[0881] (20) CHAN CODING, method of encoding and decoding, being characterized by technique of using Super Processing Unit for sub-dividing a digital data set into sub-sections of data of which at least one sub-section is not in random for processing for the purpose of encoding and decoding;
[0882] (21) A method of Claim [20] being characterized by further classifying the Super Processing Units of the digital data set into classes, two or more, using a classifying condition, such as the number of value entries appearing in the Super Processing Unit for a particular class; and by designing mapping tables which are appropriate to the data distribution of each of these classes for encoding and decoding; and by encoding and decoding the data values of each of these Super Processing Units with the use of their respective mapping table appropriate to the data distribution of the data values of each of these Super Processing Units; and using indicators to make distinction between these classes of Super Processing Units for the use in decoding, such indicators being kept at the head of each of these Super Processing Units or elsewhere as in separate CHAN CODE FILES;
[0883] (22) A method of Claim [20] being characterized by further classifying the Super Processing Units of the digital data set into classes, two or more, using a classifying condition, such as the number of value entries appearing in the Super Processing Unit for a particular class; and by designing mapping tables which are appropriate to the data distribution of each of these classes for encoding and decoding; and by encoding and decoding the data values of each of these Super Processing Units with the use of their respective mapping table appropriate to the data distribution of the data values of each of these Super Processing Units; and by setting criteria appropriate to the data distribution of the classes of Super Processing Units and the corresponding mapping tables used for encoding and decoding for use in assessing the encoded code for making Artificial Intelligence distinction between the classes of Super Processing Units so that the use of indicators could be dispensed with;
[0884] (23) A method of Claim [20] being characterized by further classifying the Super Processing Units of the digital data set into two classes, using a classifying condition, such as the number of value entries appearing in the Super Processing Unit for a particular class; and by designing mapping tables which are appropriate to the data distribution of each of these classes for encoding and decoding, whereby at least one of these mapping tables could serve and thus be chosen to serve as an unevener and such an unevener could also be adjusted through the use of code re-distribution that it could take advantage of the data distribution of the data values of at least one class of Super Processing Units so that the unevener mapping table after code adjustment through code re-distribution could serve and thus be chosen as the mapping table of a compressor for at least one class of Super Processing Units; and by encoding all the Super Processing Units using the unevener in the first cycle; and then by encoding at least one class of the Super Processing Units using the compressor where compression of data of the respective Super Processing Unit under processing is feasible in the second cycle, i.e. encoded with the use of the unevener in the first cycle and the compressor in the second cycle, leaving those Super Processing Unit with data incompressible as it is, i.e. encoded with the use of the unevener only; and decoding the data values of each of these Super Processing Units with the use of their respective mapping table(s) appropriate to the data distribution of the data values of each of these Super Processing Units, whereby in the first cycle of decoding, the encoded code formed out of unevener encoding and compressor encoding is decoded so that the layer of compressor encoding is removed, and in the second cycle of decoding, the encoded code, consisting of only unevener encoded code, of all the Super Processing Units is decoded by the unevener decoder; and by setting criteria appropriate to the data distribution of the classes of Super Processing Units and the corresponding mapping tables used for encoding and decoding for use in assessing the encoded code for making Artificial Intelligence distinction between the classes of Super Processing Units so that the use of indicators could be dispensed with;
[0885] (24) CHAN CODING, method of encoding and decoding, being characterized by the technique of creating Unevener Encoder and Unevener Decoder by building a mapping table and using the unique code addresses of the said mapping table for mapping the unique data values of the digital data input in one to one mapping whereby the number of bit(s) used by the unique data values and that used by the corresponding mapped unique table code addresses of the corresponding mapped pair is the same; by using the said mapping table for encoding and decoding;
[0886] (25) CHAN CODING, method of encoding and decoding, being characterized by the technique of using Unevener Encoder and Unevener Decoder for processing for the purpose of encoding and decoding;
[0887] (26) CHAN CODING, method of encoding and decoding, being characterized by the technique of using Unevener Encoder and Unevener Decoder together with an Evener Encoder and Decoder or a Compressor and Decompressor for processing for the purpose of encoding and decoding;
[0888] (27) CHAN CODING, method of encoding and decoding, being characterized by technique of dynamic adjustment of the size of Processing Unit or Super Processing Unit in the context of changing data distribution and in accordance with the Terminating Condition used under processing;
[0889] (28) CHAN CODING, method of encoding and decoding, being characterized by technique of dynamic adjustment of Code Unit Definition in accordance with the data distribution pattern of the data values under processing;
[0890] (29) CHAN CODE being characterized by Classification Code and Content Code, which are created out of any digital data set using techniques of CHAN CODING for processing for the purpose of encoding and decoding;
[0891] (30) CHAN CODE being characterized by Classification Code, Content Code and Un-encoded Code Unit, which are created out of any digital data set using techniques of CHAN CODING for processing for the purpose of encoding and decoding;
[0892] (31) CHAN CODE being characterized by Header, Classification Code and Content Code, which are created out of any digital data set using techniques of CHAN CODING for processing for the purpose of encoding and decoding, whereby the said Header contains indicator(s) resulting from the use of CHAN CODING technique(s) for processing for the purpose of encoding and decoding;
[0893] (32) CHAN CODE being characterized by Header, Classification Code, Content Code and Un-encoded Code Unit, which are created out of any digital data set using techniques of CHAN CODING for processing for the purpose of encoding and decoding, whereby the said Header contains indicator(s) resulting from the use of CHAN CODING technique(s) for processing for the purpose of encoding and decoding, such indicator(s) including any of the following: Checksum Indicator, Signature for CHAN CODE FILES, Mapping Table Indicator, Number of Cycle Indicator, Code Unit, Definition Indicator, Processing Unit Definition Indicator, Super Processing Unit Definition Indicator, Last Identifying Code Indicator, Scenario Design Indicator, Unevener/Evener Indicator, Recycle Indicator, Frequency Indicator, Special Code Indicators, Section Size Indicator, Digital Data Blackhole Type Indicator, and Compressible/Incompressible Data Indicator;
[0894] (33) Encoder and Decoder, coders designed using CHAN FRAMEWORK, being characterized by being embedded with techniques of CHAN CODING for processing;
[0895] (34) Encoder and Decoder, coders designed using CHAN FRAMEWORK, being characterized by being embedded with techniques of CHAN CODING and Header Indicator(s) for processing, such indicator(s) including any of the following: Checksum Indicator, Signature for CHAN CODE FILES, Mapping Table Indicator, Number of Cycle Indicator, Code Unit, Definition Indicator, Processing Unit Definition Indicator, Super Processing Unit Definition Indicator, Last Identifying Code Indicator, Scenario Design Indicator, Unevener/Evener Indicator, Recycle Indicator, Frequency Indicator, Special Code Indicators, Section Size Indicator, Digital Data Blackhole Type Indicator, and Compressible/Incompressible Data Indicator;
[0896] (35) CHAN CODE FILES, being digital information files containing CHAN CODE;
[0897] (36) CHAN CODE FILES, being digital information files containing additional information for the use by CHAN CODING techniques, including Header and the indicator(s) contained therein, such indicator(s) including any of the following: Checksum Indicator, Signature for CHAN CODE FILES, Mapping Table Indicator, Number of Cycle Indicator, Code Unit, Definition Indicator, Processing Unit Definition Indicator, Super Processing Unit Definition Indicator, Last Identifying Code Indicator, Scenario Design Indicator, Unevener/Evener Indicator, Recycle Indicator, Frequency Indicator, Special Code Indicators, Section Size Indicator, Digital Data Blackhole Type Indicator, and Compressible/Incompressible Data Indicator;
[0898] (37) CHAN MATHEMATICS, used under CHAN FRAMEWORK, being characterized by mathematical method using techniques whereby data values are put into an order that is being able to be described in mathematical formula(e) corresponding to the respective CHAN SHAPE, including the associated mathematical calculation logic and techniques used in merging and separating digital information, such digital information including values of Code Units of a Processing Unit in processing digital information, whether at random or not, for the purpose of encoding and decoding;
[0899] (38) CHAN FORMULA(E) being formula(e), used under CHAN FRAMEWORK, being characterized by method of describing the characteristics and relations between basic components, the Code Units and derived components such RP Piece of CHAN CODE and other derived components, such as the Combined Values or sums or differences of values of basics components of a Processing Unit for processing digital information, whether at random or not, for the purpose of encoding and decoding;
[0900] (39) CHAN SHAPES including CHAN DOT, CHAN LINES, CHAN TRIANGLE, CHAN RECTANGLES, CHAN TRAPEZIA AND CHAN SQUARES AND CHAN BARS representing the characteristics and relations of the basic components of a Processing Unit as described using CHAN FORMULA(E);
[0901] (40) COMPLEMENTARY MATHEMATICS being characterized by using a constant value or a variable containing a value as a COMPLEMENTARY CONSTANT or COMPLEMENTARY VARIABLE for mathematical processing, making the mirror value of a value or a range or ranges of values being obtainable for use in CHAN FORMULA(E);
[0902] (41) CHAN MATHEMATICS using COMPLEMENTARY MATHEMATICS and normal mathematics or either of them alone for processing using coders designed under CHAN FRAMEWORK;
[0903] (42) Use of CHAN FRAMEWORK for the purpose of encryption/decryption or compression/decompression or both;
[0904] (43) Use of CHAN CODING for the purpose of encryption/decryption or compression/decompression or both;
[0905] (44) Use of CHAN CODE for the purpose of encryption/decryption or compression/decompression or both;
[0906] (45) Use of CHAN CODE FILE(S) for the purpose of encryption/decryption or compression/decompression or both;
[0907] (46) Use of CHAN MATHEMATICS for the purpose of encryption/decryption or compression/decompression or both;
[0908] (47) Use of COMPLEMENTARY MATHEMATICS for the purpose of encryption/decryption or compression/decompression or both;
[0909] (48) Use of CHAN SHAPE(S) for the purpose of encryption/decryption or compression/decompression or both;
[0910] (49) A method of parsing digital data set, whether random or not, for collecting statistics about digital data set for the purpose of encoding and decoding, characterized by using design and schema of data order defined under CHAN FRAMEWORK;
[0911] (50) A method of describing digital data set, whether random or not, characterized by using CHAN FRAMEWORK LANGUAGE;
[0912] (51) CHAN CODING, method of encoding and decoding, being characterized by technique of using Posterior Classification Code or Interior Classification Code or Modified Content Code as Classification Code;
[0913] (52) CHAN CODING, method of encoding and decoding, being characterized by technique of Digital Data Blackholing, using a code value of a coder defined under CHAN FRAMEWORK to absorb or represent other code value(s) by using Absolute Address Branching Coding, i.e. the Absolute Address Branching Code associated with the Blackhole code representing the absorbed code value;
[0914] (53) CHAN CODING, method of encoding and decoding, being characterized by technique of Successive Code Surrogating, successive steps of using a code value of a coder defined under CHAN FRAMEWORK to surrogate or represent another code value in succession;
[0915] (54) CHAN CODING, method of encoding and decoding, being characterized by technique of Reverse Placement of Absolute Address Branching Codes;
[0916] (55) CHAN CODING, method of encoding and decoding, being characterized by technique of using a code value missing in the data set being processed of a coder defined under CHAN FRAMEWORK to act as a Blackhole code;
[0917] (56) CHAN CODING, method of encoding and decoding, being characterized by technique of substituting a code value missing in the data set being processed of a coder defined under CHAN FRAMEWORK for another code value of a longer bit length, such another code value being present in the data set being processed;
[0918] (57) CHAN CODING, method of encoding and decoding for compressing and decompressing digital data, whether random or non random data with or without missing unique code value(s), being characterized by using coders defined under CHAN FRAMEWORK for encoding and decoding, using the technique of Digital Data Blackholing, Absolute Address Coding, Shortening Indicator Bit Expenditure, and Code Surrogating, whether successive or not, as well as using the technique of substituting a code value missing in the data set being processed for another code value of the same or a longer bit length, such another code value being present in the data set being processed where appropriate;
[0919] (58) CHAN CODING, method of encoding and decoding, being characterized by technique of Shortening Indicator Bit Expenditure based on frequency distribution characteristics generated from digital data set being processed; and
[0920] (59) Coders designed using CHAN FRAMEWORK, being characterized by that the unique code values of the Code Units, Processing Units and Super Processing Units have more than one bit size or bit length or have different bit sizes or bit lengths according to the design used.
[0921] Digital Lensing is the power or ability of discerning patterns in digital data as represented in a series of Bit 0 and Bit 1 without having to know the data distribution of the digital information beforehand whether it is random or non-random data, i.e. it is applicable to all types of digital data mentioned above. The present invention is to reveal how such power or ability could be exercised and applied in digital data processing so that random data is no longer a nightmare and Pigeonhole Principle in Information Theory rendered into dustbin. In essence, Digital Lensing does not in itself change the digital data. However, it is able not only to create digital constructs out of the same digital data set, but it is also able to select different code values according to different designs into the same digital constructs it creates so that the digital data set could be further manipulated by using appropriate techniques for encoding and decoding the digital data set under processing. The digital data set is the same, but through using the power of Digital Lensing, one could see, and thus create, different digital constructs out of the same data set and by being able to put different digital code values into such constructs, different distributions of digital bit patterns are created for different specific encoding and decoding purposes according to design. This is like wearing different lenses, one could be able to see different shapes or different colours of the same object under the scope of view. For example, Diagram 87 in Paragraph [191] below shows statistics for different frequency distribution patterns of the same random digital data generated using Digital Lensing.
[0922] With this ability of digital lensing, one is able to organize all types of digital data, regardless its distribution patterns, including random and non-random data. And by putting and organizing the digital data set under processing into the digital constructs one creates, one is able to study its characteristics, such as frequency distributions of different elements of the digital constructs into which the digital data set has been put, so that manipulation for encoding and decoding of it could be attempted.
[0923] In order to better comprehend how the power of Digital Lensing could be developed and used, techniques of creating different digital constructs out of the same digital data set have to be revealed. There are many levels of organizing digital information, the first level is by organizing digital information into Bit 1s and Bit 1s as commonly done in the conventional way of using the Binary System. No digital structures or constructs or patterns are formed out of it, except it being just a series of binary digital bits. In the PCT Application, PCT/IB2017/054500, under priority claim of the present invention, CHAN SHAPES as well as CHAN FRAMEWORK have been introduced as another level on top of the Binary System as digital structures that digital information is to be put into for further manipulation. However, it does not specify the use of Digital Lensing for selecting digital code values to fall into those digital structures. What is novel about Digital Lensing to be introduced here is that besides creating digital constructs, the power of Digital Lensing enables one to selectively put different set of code values into the same digital constructs according to design for further processing.
[0924] So Digital Lensing is distinguished from the previous ways of organizing and ordering digital information by being able not just to create digital structures but also to select code values at will according to design and put the code values selected into those digital structures and turn them into constructs for further manipulation. So there are two elements (in combination) of Digital Lensing, one is being able to create digital structures and the other being able to select which code values to be put into the digital structures thus created to form digital constructs at will according to design. The power of being able to select code values or digital bits and put them into different parts or elements of the digital structures created is the key to Digital Lensing.
[0925] Diagram 62 shows a Binary System Code Table and it is used to demonstrate how Digital Lensing is used with code values of a Binary System:
[0926] Diagram 62 Binary System Code Table
TABLE-US-00086 Code Value 1st Bit 2nd Bit 1st value 0 0 2nd value 0 1 3rd value 1 0 4th value 1 1
[0927] As shown above, there are four code values, each of which is consisting of two bits, i.e. 00, 01, 10 and 11.
[0928] The key to using the power and the method of Digital Lensing is the ability to select chosen code values to be put into digital constructs. As an example here, to use Digital Lensing, one has to stretch the imaginative power and design digital structure(s) for digital bits that come along to go into. Referring to Diagram 62, there are only four code values to select from. And there could be only 3 choices where one could opt to put into the first digital structure, i.e. selecting one code value, or two code values or three code values; and if all four code values are opted to be put into the first digital structure, nothing could come out of the first digital structure; and if it is so, it appears no manipulation of code values could be done. And if one opts to select one code value to be put into the first digital structure, the other three values could come out of the first digital structure and appear in the second digital structure. If one opts to select two code values to be put into the first digital structure, two code values could come out from the first digital structure and appear in the second digital structure. Finally, if one opts to select three code values to be put into the first digital structure, only one code value could come out from the first digital structure and appear in the second digital structure.
[0929] So as an analogy, the first digital construct could be regarded a Digital Reservoir, and the second digital construct a Digital Dam. A series of digital bits consisting of Bit 0s and Bit 1s (Digital Rain) in whatever distributional patterns rains onto the land, when it comes to the first reservoir, raindrops of code values (Digital Raindrops) that are designed to be selected to be kept in the first reservoir are retained in there. Those digital raindrops not of the chosen code values are allowed to come out of the first Digital Reservoir and become (or solidify to form) the Digital Dam after it. In this way, the Digital Reservoir is a variable digital construct, i.e. with or without Digital Raindrops, the Digital Dam is a fixed digital construct as long as there are Digital Raindrops of code values not chosen to be kept into the Digital Reservoir. The Digital Reservoir therefore could retain no Digital Raindrops or as many as Digital Raindrops as it could be, depending on the makeup of the Digital Rain that comes along. Digital Dam is made up of solidified Digital Raindrops. Digital Raindrops that are selected to be kept in the Digital Reservoir is termed as Digital Water and those that are let coming out of the Digital Reservoir is called Digital Ice. There could be two pieces of Digital Ice (i.e. two non-chosen digital code values) coming adjacent to each other and form two Digital Dams with empty Digital Reservoir inbetween. So Digital Dam is a fixed construct consisting of only one Digital Ice each as long as the Digital Rain that comes along contains Digital Ice.
[0930] For better appreciation of what is revealed above, one could design two Digital Constructs, one Digital Reservoir and one Digital Dam so that digital raindrops of 3 digital code values are selected to be retained in the Digital Reservoir and only digital raindrops of the remaining digital code value is to be released out of the Digital Reservoir. Diagram 63 illustrates a Processing Unit, Digital Construct, made up of two sub Digital Constructs, 1 Digital Reservoir and 1 Digital Dam:
[0931] Diagram 63
[0932] A Processing Unit, Digital Construct 1, consisting of 1 Digital Reservoir and 1 Digital Dam
TABLE-US-00087 Digital Reservoir retaining Digital Dam 00/01/10 11
[0933] So the Digital Reservoir above retains digital raindrops of 3 digital code unit values (code values), i.e. 00, 01 and 10 out of the 4 digital code values, i.e. 00, 01, 10 and 11, of the Binary System Code Table of Diagram 62. Digital raindrops of digital code value 11 is then released to form Digital Dam after the Digital Reservoir. One however could select another set of selection, such as selecting 01, 10, and 11 to be retained in the Digital Reservoir and releasing 00 to become Digital Dam as shown in Diagram 64:
[0934] Diagram 64
[0935] A Processing Unit, Digital Construct 2, having same structure of Diagram 63 but being a different Digital Construct with different digital bit patterns in different sub-Digital Construct
TABLE-US-00088 Digital Reservoir retaining Digital Dam 01/10/11 00
[0936] So because of different sets of digital raindrops are designed and chosen as such to form the Digital Reservoir and Digital Dam, the same Digital Structure becomes two different Digital Constructs even if the digital data set is the same. For instance, Digital Dam in Diagram 63 could only be made up of digital code value 11, whereas it is 00 in Diagram 64.
[0937] So a Processing Unit could be designed to be made up of one or more units of one or more Digital Constructs. For instance, one could make a Processing Unit consisting of two units of Digital Construct 1 in succession or two units of Digital Construct 2 in succession or one unit of Digital Construct 1 plus one unit of Digital Construct 2 in succession or one unit of Digital Construct 2 plus one unit of Digital Construct 1 in succession as that shown in Diagram 63 and 64. However, the above analogy and design are just examples used for illustrating the power of Digital Lensing, which is not limited to the aforesaid examples. For instance, one could also make the Digital Dam in Digital Construct 1 or 2 above into a fixed Digital Dam with variable width, by allowing it to retain as many instances of the selected digital code values of 11 or 00 when it comes along as shown in Diagram 65 below:
[0938] Diagram 65
[0939] A Processing Unit, Digital Construct 3, having different digital structure with three digital code values to be retained in Digital Reservoir and the remaining one digital code value to form a fixed Digital Dam with variable width
TABLE-US-00089 Digital Dam with Digital Reservoir variable width retaining retaining 01 10 00 00 11 11 11 as many as it as many of 11 as it comes happens to along to form a fixed come along digital dam but with variable width
[0940] Or instead one could design to make Digital Reservoir to retain 2 digital code values and release the remaining 2 digital code values to form Digital Dam, which takes up only one code instance of either of the 2 digital code values that happens to come along to emerge from Digital Reservoir as shown in Diagram 66 below:
[0941] Diagram 66a
[0942] A Processing Unit, Digital Construct 4, having different digital structure with two digital code values to be retained in Digital Reservoir and two digital code values, either of which, to form Digital Dam
TABLE-US-00090 Digital Reservoir Digital Dam retaining formed out of either of 10/11 00/01 as many as it either one of which happens to to form a Digital Dam come along and the second one, if it happens to follow, becomes the second Digital Dam as found in Diagram 66b
[0943] Diagram 66b
[0944] A Processing Unit, Digital Construct 4, having different digital structure with two digital code values to be retained in Digital Reservoir (DR) and two digital code values, either of which, to form Digital Dam (DD)
TABLE-US-00091 DR retaining DD DR DD DR DD 10 11 11 11 10 00 [ ] 01 [ ] 01
[0945] So in Diagram 66b, the Digital Reservoirs in between the last 2 Digital Reservoirs are empty and denoted by [ ] as shown above.
[0946] What is to be noted above is that a variable digital structure, Digital Reservoir, is a structure which is either present [as long as there are codes with such digital code value(s) as selected by design to go into the Digital Reservoir under concern] or not present, when present, there could be one or more codes of such selected digital code values inside, depending on the data distribution of the digital data set under processing by which the digital data set is sampled or read using the Digital Construct under design as shown in Diagram 66b, which also shows that a Digital Dam is formed out of the remaining codes of digital code value(s) coming out of the Digital Reservoir before it, so unless there is no such remaining digital code value(s) coming out of the Digital Reservoir before it, there must be one or more Digital Dam, in that sense Digital Dam is a fixed digital structure, but also could be of variable width as shown in Diagram 65.
[0947] So one could design many different combinations of digital structures consisting of different number and patterns of digital code value(s). One could use not only 2 bit Code Values of Binary System in the conventional way as shown in the 2 bit Code Table (4 code values) of Binary System in Diagram 62, but could also use 3 bit Code Table having 8 code values using Binary System or the code value systems (code values of uneven bit width or size) under CHAN FRAMEWORK as introduced in the PCT Application under priority claim of the present invention.
[0948] For instance, the following code table is a 3-value code table of CHAN FRAMEWORK code system:
[0949] Diagram 67
[0950] 3-value Code Table of CHAN FRAMEWORK code system
TABLE-US-00092 Code Value 1st Bit 2nd Bit 1st value 0 2nd value 1 0 3rd value 1 1
[0951] One could select code values 10 and 11 to be put into the Digital Reservoir and release the remaining code value 0 to be the Digital Dam. So a Digital Construct consisting of two sub-digital constructs, one Digital Reservoir (storing code values 10 and 11) and one Digital Dam (storing code value 0) is formed using a 3-value code system under CHAN FRAMEWORK.
[0952] The code system under CHAN FRAMEWORK could also be made up of unlimited code values as shown in Diagram 68 below:
[0953] Diagram 68a
[0954] 0 Tail Code Table of CHAN FRAMEWORK code system for unlimited code values
TABLE-US-00093 Code Value Bit(s) 1st value 0 2nd value 10 3rd value 110 4th value 1110 etc etc
[0955] Diagram 68b
[0956] 1 Tail Code Table of CHAN FRAMEWORK code system for unlimited code values
TABLE-US-00094 Code Value Bit(s) 1st value 1 2nd value 01 3rd value 001 4th value 0001 etc etc
[0957] So if digital data is sampled using either of the unlimited value code tables as shown in Diagram 68 above and the Digital Construct mentioned in Paragraph [151] (which uses 0 Tail code system under CHAN FRAMEWORK), i.e. the Processing Unit consisting of two sub-digital constructs, one Digital Reservoir (storing unlimited 0 Tail code values, i.e. code values ending with Bit 0, including 10, 110, 1110 so one and so forth) and one Digital Dam (storing code value 0), the size of the Digital Reservoir not only depends on the number of codes having 0 Tail code values lying adjacent to each other but also the size or width of each of the 0 Tail code values as code values under CHAN FRAMEWORK code system is characterized by uneven bit sizes.
[0958] One could also design a sampling system or a Digital Lensing system in which the first Digital Construct is made up of the code system under Binary System (i.e. one in which the number of digital code values is fixed) and the second Digital Construct a code system under CHAN FRAMEWORK (in which the number of digital code values could be fixed or unlimited). So one in fact could design countless number of Digital Lensing system for sampling digital data sets, whether random or not, for further manipulating for different encoding and decoding purposes.
[0959] So the series of digital bits making up Diagram 66 is reproduced as follows in Diagram 69a:
[0960] Diagram 69a
[0961] A series of digital bits digitally lensed using the Digital Construct design as shown in Diagram 66
TABLE-US-00095 DR retaining DD DR DD DR DD 10 11 11 11 10 00 [ ] 01 [ ] 01
[0962] If the same series of digital bits shown above in Diagram 69a is lensed (i.e. sampled or read using the Digital Lens) with the Digital Construct design as shown in Diagram 63, in which the Digital Reservoir retains code values 00/01/10 and releases code value 11 to form the Digital Dam, instead of using the Digital Lens of the Digital Construct design as shown in Diagram 66, it then appears in a different way as that shown in Diagram 69b below:
[0963] Diagram 69b
[0964] A series of digital bits digitally lensed using the Digital Construct design as shown in Diagram 63
TABLE-US-00096 DR retaining DD DR DD DR DD DR 10 11 [ ] 11 [ ] 11 10 00 01 01
[0965] In Diagram 69a, there are 3 Digital Reservoirs and the last two of which are empty, the first one retains 5 codes, two of which are 10 and the remaining 3 are 11; and 3 Digital Dams, two of which are made up of one code of code value 01 and the remaining one Digital Dam made up of another code of code value 00. Whereas in Diagram 69b, after changing the Digital Lens, the same series of digital bits forms 4 Digital Reservoirs, two of which are empty, the remaining two filled with either 1 code of 10 or 4 codes of 10, 00, 01 and 01 in succession; and there are 3 Digital Dams made up of 1 code of code value 11.
[0966] So technically, the same digital data set in the form of a series of digital bits of 0s and 1s is sampled or read or digitally lensed using the Digital Construct design as considered appropriate for different encoding and decoding purposes and such technical steps include: (1) reading the series of digital bits according to the code table of the code system under design, i.e. reading the series of digital bits and match them with code values of the code table used, and form or recognize as each unit of code in succession in accordance with such bit patterns that are matched with the bit patterns of the code values inside the code table used, and according to the Digital Lensing system designed and used, and (2) classifying or grouping (i.e. retaining or releasing) the codes read in accordance with code values which are designed to be selected into the corresponding digital structure or sub-Digital-Construct. In this way, the series of digital bits could be described or grouped or classified according to the Digital Lensing system used even though no actual manipulation has been done on the digital data set itself.
[0967] As seen in Paragraph [154], one could find out the statistical characteristics of the digital data set under processing according to the Digital Lens used, such as how many Digital Reservoir and Digital Dams are formed out of the digital data set under processing as well as the number of codes and their code values present in the Digital Reservoirs and Digital Dams thus formed. So in short, one is able to count the digital structures and elements of the digital data set under processing without having to know the nature of the digital data set beforehand. That means any type of digital data, whether random or non-random, could be counted in terms of the Digital Lensing under design and use.
[0968] So a whole new approach is opened for the study of any type of digital data, including the notorious nightmare of random data with the power of Digital Lensing. And the present invention reveals how the power of Digital Lensing could be developed and used technically. As Digital Lensing itself as the initial level of sampling system does not change the digital information under processing, for the purposes of encoding and decoding, other techniques, including additional level(s) or layer(s) of Digital Lensing as to be described in Paragraph [162] below, have to be used together with the initial level of Digital Lensing as a sampling or organizing system for changing the digital data under concern.
[0969] So having the power of Digital Lensing, one is able to design and create Digital Constructs at will and use techniques revealed in the PCT Application, PCT/IB2017/054500 under priority claim of the present invention, for encoding and decoding the digital content, i.e. the binary bits with digital code values designed to be selected into those Digital Constructs created.
[0970] As an example for illustration of using one such technique, Digital Blackholing, for encoding and decoding the content of Digital Constructs created using the power of Digital Lensing, the definition of the Digital Construct mentioned in Diagram 63 in Paragraph [148] is used, that is a Processing Unit, Digital Construct 1, consisting of 1 Digital Reservoir and 1 Digital Dam, whereby codes with digital code values 00/01/10 are selected to be retained in the Digital Reservoir of Digital Construct 1 and codes with digital code value 11 is released to form the Digital Dam of Digital Construct 1. Paragraph [129] reveals how Digital Blackholing could be used. In short, one has to identify a digital pattern upon which Digital Blackholing, by which binary bit(s) of the digital pattern identified could be absorbed, is applied. So after creating Digital Construct 1 of Diagram 63, one further identifies digital patterns of binary bits of the Digital Reservoir and Digital Dam thus formed. It is found that the Digital Reservoir retains codes, where available, of 3 digital code values, i.e. 00/01/10 and Digital Dam is formed by only 1 code, where available, of digital code value 11. So when the technique of Digital Blackholing is applied upon these two digital sub-constructs, absorption of digital bits could be achieved as shown in Diagram 70 below:
[0971] Diagram 70a
[0972] Result of applying Digital Blackholing upon Digital Construct 1 of Diagram 63, consisting of 1 Digital Reservoir and 1 Digital Dam
TABLE-US-00097 Digital Reservoir retaining Digital Dam 00/01/1 [0] [11]
[0973] Binary bits that could be absorbed using Digital Blackholing is put into [ ] as shown in Diagram 70a above. In the Digital Reservoir of Digital Construct 1, the digital code value 10 becomes 1, so the digital bit Bit 0 of code value 10 is absorbed. And the digital code value 11 of the Digital Dam of Digital Construct 1 is absorbed entirely.
[0974] So encoding the aforesaid Digital Reservoir, whenever digital code values 00/01 are encountered, these two digital code values stay intact, whereas digital code value 10 is to be encoded using Bit 1 to stand for 10; whereas the digital code value 11 of the aforesaid Digital Dam is absorbed entirely, so the digital code value 11 disappears altogether. The series of digital bits making up Diagram 69b is encoded as shown in Diagram 70b as follows:
[0975] Diagram 70b
[0976] Encoding, using Digital Blackholing, the series of digital bits digitally lensed using the Digital Construct design as shown in Diagram 63
TABLE-US-00098 DR retaining DD DR DD DR DD DR 1[0] [11] [ ] [11] [ ] [11] 1[0] 00 01 01
[0977] Digital bits in [ ] in the above Diagram 70b are absorbed and made disappeared, so the above series of digital bits: 1011111110000101 is encoded as 11000101, shortening it from 16 bits to 8 bits. However, one could not successfully decode the resultant 8 binary bits and restore it losslessly and correctly back to the original 16 bits of digital information without using or adding classification information or classification data together with the resultant 8 bits of encoded code for its correct decoding.
[0978] Since the design of Digital Construct 1 is known, for the correct restoration of the aforesaid 16 binary bits of digital information, one therefore has to know the number of Digital Reservoirs and Digital Dams formed out of the aforesaid series of digital bits, where the Digital Reservoir has to stop and where the Digital Dam is to begin, and also which Digital Reservoirs are empty and which are not, etc. Though Digital Blackholing helps to shorten the original digital information from 16 bits to 8 bits, information has to be added back into the resultant series of encoded digital bits for the correct and lossless restoration of the original digital information, represented by aforesaid series of 16 digital bits. Therefore, besides Digital Blackholing, other techniques have to be used as well.
[0979] At this point, one has to use the power of Digital Lensing again for designing and creating another Digital Construct (Digital Construct containing encoded digital codes, hereafter referred to as encoded DC) for holding the encoded digital codes and other added digital codes representing information that have to be used for correct and lossless restoration of the original digital information during the decoding process. So encoded digital codes and other added digital codes are selected and organized as such to be placed in the appropriate parts of the aforesaid encoded DC designed and created for Digital Construct 1, DC1.
[0980] For the above example, first of all, one has to ascertain what information has to be used or added to the 8 encoded digital bits for its correct and loseless restoration back to the original 16 digital bits. One such piece of information is an identifier for the Digital Dams of DC 1. Therefore, the encoded 8 bits have to be revised and the original digital code values and the corresponding encoded digital code values could take the form as shown in Diagram 71 as follows:
[0981] Diagram 71
[0982] Revised Code Table for encoding the original digital code values of DC1
TABLE-US-00099 Original digital Encoded digital DC1 structure code values code values DR 00 00 01 01 10 1[0] DD 11 1[1]
[0983] In Diagram 71, Bit 1 is used both for identifying the digital code values of 10 and 11. So there must be a way of distinguishing them in the series of resultant encoded digital codes. As there is only 1 digital code for DD of DC1, so if one knows how many units of digital code value 10 is retained in DR of DC 1, one is able to identify correctly which Bit 1 in that series of resultant encoded digital code bits is a DD. Thus during encoding process, one has to do counting of the number of digital codes having the code value of 10 found in DR of DC1 and the encoded DC has to have a structural element representing such information of counting. Such structural element is referred to as Digital Count Information (DCI) hereafter. After DCI, it comes the encoded digital codes representing the original digital codes found in DR and DD of DC 1, referred to as encoded DR and encoded DD. So for the Processing Unit of DC 1, the encoded Processing Unit representing the encoded DC for DC1 has 3 structural elements: DCI, encoded DR (EDR) and encoded DD (EDD). DCI gives the information of the number of digital codes having code value of 10 as retained in DR of DC 1.
[0984] So counting technique is another most important technique to be used for this design after using Digital Lensing and Digital Blackholing. As the number of counts of digital codes having code value 10 in DR of DC1 (or of any other digital code values in DR or DD therein) varies according to the digital information input, so using the conventional binary numbering system based on fixed bit size is inappropriate as this could lead to a lot of wastage in bit usage, and such numbering system is limited by the fixed bit size used; for instance, using 2-bit binary numbering system gives an upper limit of 4 counts and 3-bit binary numbering system an upper limit of 8 counts, etc etc. By logic as well as in fact, the number of counts of the digital codes having code value 10 in DR of DC1 (or of any other digital code values in DR or DD therein) could be unlimited depending on the digital information input, so a numbering system of fixed upper limit of counts is inappropriate for use.
[0985] The coding systems developed under CHAN FRAMEWORK however could be used for counting unlimited numbers, such as the code systems listed in Diagram 68 of Paragraph [152]. The following example uses Tail 0 Unlimited Code System listed in Diagram 68a for encoding DCI and the Code Table of Diagram 71 for encoding DR and DD of DC1 into encoded DC1, which has the following digital structure as shown in Diagram 72:
[0986] Diagram 72
[0987] Digital structure of encoded DC 1
[0988] DCI EDR EDD
[0989] where:
[0990] DCI is the count (using Tail 0 Unlimited Code System in Diagram 68a) of the number of digital code(s) having code value of 10 selected to be retained in DR of DC 1, code value of 10 therein being encoded as 1[0], where the Bit 0 in [ ] is to be omitted;
[0991] EDR contains as many as available in the series of digital information the encoded codes (i.e. 00/01/1[0]) for the original digital codes having code values of 00/01/10 to be retained in Digital Reservoir of DC 1;
[0992] EDD contains only 1 encoded code, 1, representing Digital Dam of DC1 for the code of the original digital code value 11;
[0993] So original series of digital bits as listed in Diagram 70 is represented again as Diagram 73a and encoded Digital Constructs of which is shown in Diagram 73b as follows:
[0994] Diagram 73a
[0995] Digital Constructs using the series of digital bits in Diagram 70
TABLE-US-00100 DR retaining DD DR DD DR DD DR 1[0] [11] [ ] [11] [ ] [11] 1[0] 00 01 01
[0996] Diagram 73b
[0997] Encoded Digital Constructs for the same series of digital bits in Diagram 73a
TABLE-US-00101 DCI retaining EDR EDD DCI EDR EDD DCI EDR EDD DCI EDR 10 1[0] 1[1] 0 [ ] 1[1] 0 [ ] 1[1] 10 1[0] 00 01 01
[0998] It could be seen from Diagram 73b that there are 3 completed encoded DC1 and two remaining digital structural elements of DCI and EDR, which do not form a complete encoded DC1. The [ ] and the bits Bit 0 and Bit 1 inside [ ] actually are not present in the encoded series of digital bits, which appears as:
[0999] 10110101101000101
[1000] It could be seen that the encoded series of digital bits is 17 bits, one bit more than the original series of original digital bits. This is because the last DCI and EDR, without an ensuing code of 11, could not form into a complete DC1. If there is an ensuing DD, then it could form into a complete DC 1; as such the bit usage of the encoded code would be the same as the original series of digital bits.
[1001] DCI in Diagram 73 represents the count (using Tail 0 Unlimited Code System in Diagram 68a) of the number of digital code having code value of 10 selected into DR of DC1. Diagram 74 below shows how the Tail 0 Unlimited Code System is used for counting digital codes having code value of 10 in DR of DC 1:
[1002] Diagram 74
[1003] Digital Count Information (DCI) counting the number of digital codes having a selected code value of 10 selected to be retained in DR of DC1
TABLE-US-00102 Tail 0 DCI code Number of Count of code value 10 0 0; there being no codes having code value of 10 in DR 10 1; there being 1 code having code value of 10 in DR 110 2; there being 2 codes having code value of 10 in DR 1110 3; there being 3 codes having code value of 10 in DR etc etc
[1004] In this example, using this technique of counting unlimited number of digital blackholes in DR of DC1, i.e. using Tail 0 Unlimited Code System designed using CHAN FRAMEWORK, one could encode a complete Digital Construct into an encoded Digital Construct made up of Digital Count Information, encoded Digital Reservoir and encoded Digital Dam with the same bit usage as the bit usage of the original series of digital bits. It is further elaborated using Diagram 75 as follows:
[1005] Diagram 75a
[1006] Encoding DC1 of Diagram 71 into an encoded DC1 with the use of the technique of Blackholing and the technique of Unlimited Counting using Tail 0 Unlimited Code System designed under CHAN FRAMEWORK where there being no code having code value of 10 in DR of DC 1
[1007] DCI [1008] 0; there being no code with code value of 10 in DR [1009] 00; there being no code with value of 10 in DR and also no other code values in DR [1010] ; so there is only 1 DD code value 11, this default value could be omitted [1011] 01; there being no code with value of 10 in DR but there being code(s) with other code values, i.e. codes having code values of 00/01 [1012] ; so after 01, the number of codes having codes values of 00/01 is counted again using Tail 0 Unlimited Code System of CHAN FRAMEWORK [1013] 01 0; there being 1 code with value of either 00 or 01 [1014] 01 10; there being 2 codes with values of 00/01 [1015] 01 110; there being 3 codes with values of 00/01 etc; etc [1016] ; such above codes having values of 00/01 could be represented by ensuing Bit Map whereby Bit 0 represents code value 00 and Bit 1 code value 01, so: [1017] Bit Map [1018] 01 0 [ ]; no need for Bit Map [1019] 01 10 0; there being 1 code with code value 00 [1020] 01 10 1; there being 1 code with code value 01 [1021] 01 110 00; there being 2 codes both of which with code value 00 [1022] 01 110 11; there being 2 codes both of which with code value 01 [1023] 01 110 01; there being 2 codes the first of which with code value 00, the second with 01 [1024] 01 110 10; there being 2 codes the first of which with code value 01, the second with 00 [1025] etc; etc [1026] ; so it could be seen from above that a complete DC1 having no code with code value of 10 in DR of DC1 is encoded into an encoded DC1 (EDC1) having the following digital structural elements: [1027] Digital Count Information: indicating the number of codes having code value of 10 (in this case there being no such code value) and the number of codes having other code values of 00/01 in DR of DC1; [1028] DR Bit Map: indicating the last bit of the codes having the code values of either 00 or 01; [1029] DD=[ ]: there being no need for representing DD as the Digital Count Information is sufficient for indicating where the DR ends in DC1 and the DR should be followed by 1 code of DD, which is code value 11; such code of 1[1] could be omitted in encoded code and could be correctly restored into the respective corresponding position upon decoding using Digital Count Information
[1030] Diagram 75b
[1031] Encoding DC1 of Diagram 71 into an encoded DC1 with the use of the technique of Blackholing and the technique of Unlimited Counting using Tail 0 Unlimited Code System designed under CHAN FRAMEWORK where there being code(s) having code value of 10 in DR of DC 1
TABLE-US-00103 DCI 10 ; there being 1 code with code value of 10 in DR 110 ; there being 2 codes with code value of 10 in DR 1110 ; there being 3 codes with code value of 10 in DR etc ; etc DCI EDR EDD 10 {00/01...00/01} 1 {00/01...00/01} 1 110 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 1110 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in EDR as found or not found (if not found, then there being no such codes) in the original series of digital bits under processing
[1032] For DC1 having code(s) of code value 10 in its DR in Diagram 75b, the revised Code Table in Diagram 71 is used for encoding and decoding the code values of DR and DD in DC1. So the digital structure of the encoded DC1 has 3 parts: Digital Count Information of code(s) having code value of 10, the encoded codes of DR (EDR) and DD (EDD) using the revised Code Table of Diagram 71. The encoded codes having code values of 00/01 of DR are the same in code values as the original codes. And they are put in the natural order as they are listed in the original series of digital bits under processing. The codes having code value of 11 in the DD of DC1 is encoded as 1, representing a stop code for the DR of DC1. So where the EDR is to stop could be known from the Digital Count Information about the number of codes having code values 10; i.e. the EDR stops just before the next Bit 1 representing the DD; and as code value of 10 is represented by 1, so by counting the number of Bit 1 encountered in the EDR as registered in the Digital Count Information plus another Bit 1 representing the EDD, the whole EDC 1 could be determined and deciphered during the decoding process.
[1033] The codes having code values of 00/01 in DR could also be put in the reverse order to the natural order as a form of encryption. Or such codes having code values of 00/01 could also be split into two parts, i.e. the Head Bit and the Tail Bit as shown in Diagram 75c, in which the Head Bit of 0 Head code(s) remain in the EDR and the corresponding Tail Bit as Bit Map is listed after the EDD as follows:
[1034] Diagram 75c
[1035] Encoding DC1 of Diagram 71 into an encoded DC1 with the use of the technique of Blackholing and the technique of Unlimited Counting using Tail 0 Unlimited Code System designed under CHAN FRAMEWORK where there being code(s) having code value of 10 in DR of DC 1 with split codes for 0 Head code values
TABLE-US-00104 DCI 10 ; there being 1 code with code value of 10 in DR 110 ; there being 2 codes with code value of 10 in DR 1110 ; there being 3 codes with code value of 10 in DR etc ; etc DCI EDR EDD Bit Map of 0 Head Codes 10 {0...0} 1 {0...0} 1 {0/1...0/1} 110 {0...0} 1 {0...0} 1 {0...0} 1 {0/1...0/1} 1110 {0...0} 1 {0...0} 1 {0...0} 1 {0...0} 1 {0/1...0/1} ;
where {0 . . . 0} represents a series of Head Bits of codes having code values of 00/01 in EDR as found or not found (if not found, then there being no such codes) in the original series of digital bits under processing
[1036] ; where {0/1 . . . 0/1} represents a series of Tail Bits of codes having code values of 00/01 as found or not found in EDR and the number of bits in {0/1 . . . 0/1} in the Bit Map part of the EDC corresponds to the number of bits in {0 . . . 0} of EDR in the same order of position arrangement
[1037] The encoding and decoding technique in Diagram 75b and 75c is therefore different from that used in Diagram 75a. In the encoded Digital Construct formed in Diagram 75a, there is only Digital Count Information of codes having code value 10 (there being none) and that of codes having code values of 00/01 and the bit map, i.e. Bit 0/Bit 1, the Tail Bit of the corresponding code(s) having 0 Head code values, i.e. 00/01.
[1038] According to the aforesaid schema of encoding and decoding as described in Paragraph [167] and [168], any complete DC1 could be encoded into a corresponding EDC1 with the same number of digital bits used, i.e. the same bit usage and the EDC1 could also be decoded correctly and loselessly back to the original DC1. It serves adequately for the purpose of encoding and decoding for encryption and decryption. The use of Digital Count Information, the Unlimited Code System used for the Digital Count Information (i.e. whether using 0 Tail or 1 Tail Code System), the position arrangement of encoded codes having 0 Head code values, and the use of split codes and bit map for codes having 0 Head code values as well as the Blackholing of the code values 10 and 11 into [ ] or 1 [0] or 1 [1] could be combined in different ways to represent many different schema of encryption and decryption.
[1039] Furthermore, as described previously, one could design Digital Construct in different ways, select different code values to be retained in DR and DD, and use one or more than one Digital Construct Design in one or more than one cycle of encoding and decoding, the combination of encryption and decryption schema could be unlimited. It is so not to mention that the code values inside DR and DD could also be mapped in different ways such as shown in Diagram 76 below:
[1040] Diagram 76
[1041] Mapping Scenarios of code values of Digital Constructs
[1042] Scenario 1 of Digital Construct Design in Diagram 63
TABLE-US-00105 Original Code Values Encoded Code Values 00 00 01 01 10 1[0] 11 1[1] ;
codes of the first 3 code values listed above being selected into DR and codes of the fourth code value being selected as DD of the DC
[1043] Scenario 2 of Digital Construct Design in Diagram 63
TABLE-US-00106 Original Code Values Encoded Code Values 00 1[0] 01 00 10 01 11 1[1] ;
codes of the first 3 code values listed above being selected into DR and codes of the fourth code value being selected as DD of the DC
[1044] Scenario 3 of Digital Construct Design in Diagram 63
TABLE-US-00107 Original Code Values Encoded Code Values 00 01 01 1[0] 10 00 11 1[1] ;
codes of the first 3 code values listed above being selected into DR and codes of the fourth code value being selected as DD of the DC
[1045] Scenario 1 of Digital Construct Design in Diagram 64
TABLE-US-00108 Original Code Values Encoded Code Values 00 1 01 01 10 1[0] 11 00 ;
codes of the first 3 code values listed above being selected into DR and codes of the fourth code value being selected as DD of the DC
[1046] Scenario 2 of Digital Construct Design in Diagram 64
TABLE-US-00109 Original Code Values Encoded Code Values 00 1 01 00 10 01 11 1[0] ;
codes of the first 3 code values listed above being selected into DR and codes of the fourth code value being selected as DD of the DC
[1047] Scenario 3 of Digital Construct Design in Diagram 64
TABLE-US-00110 Original Code Values Encoded Code Values 00 1 01 1[0] 10 00 11 01 ;
codes of the first 3 code values listed above being selected into DR and codes of the fourth code value being selected as DD of the DC
[1048] Besides for the purpose of encryption and decryption, to attempt making encoding and decoding for the purpose of compression and decompression for any types of digital data, one could use two or more than two units of Digital Construct for processing. The following example uses two units of the same Digital Construct as used in Diagram 75 of Paragraph [168] for making encoding and decoding for compressing and decompressing digital random data set to further demonstrate how different techniques of counting could be combined together, besides the use of Digital Lensing and Digital Blackholing, to make it possible for correct and lossless compression and decompression of digital random data.
[1049] To use the two units of the same Digital Construct for making encoding and decoding, the counting of codes, for instance codes having code value 10, has to be carried out in DR1 and DR2, i.e. two adjacent units of DC under design; so the Digital Counting Information should contain the sum of the number count of codes having code value of 10 in both DR1 and DR2; and it should also contain an information, i.e. the Count Distribution Information, about the distribution of such codes in DR1 and DR2 so that such codes could be restored correctly and losslessly upon decoding. So the Digital Count Information now is further enhanced to be consisting of Count Number Information (represented by Count Number Code) and Count Distribution Information (represented by Count Distribution Code) because of the use of two units of the same Digital Construct for encoding and decoding purpose.
[1050] So Diagram 75a and 75b in Paragraph [168] are to be revised as shown in Diagram 77a and Diagram 77b. Diagram 75c could also be revised in the same way (together with the use of code splitting) according to the way that Diagram 75b is to be revised to Diagram 77b as follows:
[1051] Diagram 77a
[1052] Encoding two adjacent units of DC1 of Diagram 71 into one unit of encoded DC with the using the technique of Blackholing and the technique of Unlimited Counting using Tail 0 Unlimited Code System designed using CHAN FRAMEWORK where there being no code having code value of 10 in DR1 and DR2 of two adjacent units of DC 1
[1053] DCI [1054] 00; there being no codes with value of 10 in DR1 and DR2 [1055] 00 0 0; there being no codes with code values of 00/01 in DR1 and DR2 as well [1056] 00 0 10; there being no code with value of 10 in DR1 and DR2 and there being no codes with code values of 00/01 in DR1 but there being 1 code with code value of either 00 or 01 in DR2 [1057] ; so there should be a bit map for using the Tail Bit for such a code [1058] 00 0 10 0; such a code having the code value of 00 [1059] 00 0 10 1; such a code having the code value of 01 [1060] 00 0 110; there being no code with value of 10 in DR1 and DR2 and there being no codes with code values of 00/01 in DR1 but there being 2 codes with code value of either 00 or 01 in DR2 [1061] ; so there should be a bit map for using the Tail Bit for such two codes [1062] 00 0 110 00; such two codes having the code value of 00 [1063] 00 0 110 01; such two codes having the code values in the order of 00 and 01 [1064] 00 0 110 10; such two codes having the code values in the order of 01 and 00 [1065] 00 0 110 11; such two codes having the code value of 01 etc; etc [1066] 00 10 0; there being no code with value of 10 in DR1 and DR2 and there being no codes with code values of 00/01 in DR2 but there being 1 code with code value of either 00 or 01 in DR1 [1067] ; so there should be a bit map for using the Tail Bit for such a code [1068] 00 10 0 0; such a code having the code value of 00 [1069] 00 10 0 1; such a code having the code value of 01 [1070] 00 110 0; there being no code with value of 10 in DR1 and DR2 and there being no codes with code values of 00/01 in DR2 but there being 2 codes with code value of either 00 or 01 in DR1 [1071] ; so there should be a bit map for using the Tail Bit for such two codes [1072] 00 110 0 00; such two codes having the code value of 00 [1073] 00 110 0 01; such two codes having the code values in the order of 00 and 01 [1074] 00 110 0 10; such two codes having the code values in the order of 01 and 00 [1075] 00 110 0 11; such two codes having the code value of 01 etc; etc
[1076] ; the above coding shows that the count number and count distribution of code value 10 and code values of 00/01 are separately represented by Tail 0 Unlimited Code System designed under CHAN FRAMEWORK and followed by Tail Bit of the codes having code values of 00/01
[1077] ;using this coding schema, two adjacent units of DC1 with no codes having code value of 10 are encoded into one unit of encoded DC 1 having the same bit usage as the original two adjacent units of DC 1
[1078] Diagram 77b
[1079] Encoding two adjacent units of DC1 of Diagram 71 into one unit of encoded DC1 with the using the technique of Blackholing and the technique of Unlimited Counting using Tail 0 Unlimited Code System designed using CHAN FRAMEWORK where there being 1 or more codes having code value of 10 in either or both of DR1 and DR2 of the two adjacent units of DC 1
TABLE-US-00111 DCI 01 ; there being 1 code with code value of 10 in DR1 and DR2 taken together 10 ; there being 2 codes with code value of 10 in DR1 and DR2 taken together 110 ; there being 3 codes with code value of 10 in DR1 and DR2 taken together etc ; etc DCI CNC CDC; CNC being Count Number and CDC being Count Distribution Code 01 0; standing for the distribution (0, 1), i.e. no code in DR1 and 1 code in DR2 ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 01 1; standing for the distribution (1, 0), i.e. no code in DR2 and 1 code in DR1 ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in and EDR2 as found or not found in the original series of digital bits under processing
[1080] ; up to here, the bit usage of the coding for the part of CNC=01 is also the same as the bit usage of the original two units of DC1
TABLE-US-00112 CNC CDC 10 0; standing for the distribution (0,2) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 10 10; standing for the distribution (1,1) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 10 11; standing for the distribution (2,0) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 100/01...00/011 ; 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in EDR1 and EDR2 as found or not found in the original series of digital bits under processing
[1081] ; up to here, the bit usage of the coding for the part of CNC=10 has some bit saving, i.e. one third of the encoded Digital Constructs of CDC=(0,2) uses 1 bit less than the bit usage of the original two units of DC1
TABLE-US-00113 CNC CDC 110 00; standing for the distribution (0,3) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 110 01; standing for the distribution (1,2) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 110 10; standing for the distribution (2,1) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 110 11; standing for the distribution (3,0) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in EDR1 and EDR2 as found or not found in the original series of digital bits under processing
[1082] ; up to here, the bit usage of the coding for the part of CNC=110 is also the same as the bit usage of the original two units of DC1
TABLE-US-00114 CNC CDC 1110 00; standing for the distribution (0,4) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2, such coding could be modeled on the coding illustrated in the parts for CNC=01/10/110 1110 01; standing for the distribution (1,3) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2, such coding could be modeled on the coding illustrated in the parts for CNC=01/10/110 1110 10; standing for the distribution (2,2) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2, such coding could be modeled on the coding illustrated in the parts for CNC=01/10/110 1110 110; standing for the distribution (3,1) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2, such coding could be modeled on the coding illustrated in the parts for CNC=01/10/110 1110 111; standing for the distribution (4,0) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2, such coding could be modeled on the coding illustrated in the parts for CNC=01/10/110 CNC CDC 11110 .... etc etc ;
it could be noted that where CNC=1110 and thereafter, some bit wastage appears as the bit usage of CDC becomes more than 2 bits
[1083] It is apparent above that the bit saving due to one third of encoded Digital Constructs of CNC=10 and CDC=(0,2), which uses Count Distribution Code of less than two bits has to be offset with the bit wastage due to those encoded Digital Constructs whose CDC bit usage is more than 2 bits. Those encoded Digital Constructs with CDC bit usage more than two bits come from where CNC=1 110 and below in the hierarchy of Tail 0 Coding System under CHAN FRAMEWORK.
[1084] Before jumping to the result of the offsetting, a summary of the counting techniques so far used is listed below:
[1085] a. using Unlimited Code System under CHAN FRAMEWORK for use as Count Number
[1086] Code;
[1087] b. using Unlimited Code System of different forms as appropriate, such as Pyramid Head Tail 0 Unlimited Code System used in Paragraph [167];
[1088] DCI
[1089] 0
[1090] 10
[1091] 110
[1092] etc
[1093] c. using Unlimited Code System of Flat Head [Flat Head Unlimited Code System, being characterized by combining a binary code system at the upper level(s) and a Pyramid Head Unlimited Code System at the lower level(s) as shown below] as used in Paragraph [168] and [173] as follows:
[1094] DCI
[1095] 00
[1096] 01
[1097] 10
[1098] 110
[1099] 1110
[1100] etc
[1101] or
[1102] DCI
[1103] 11
[1104] 10
[1105] 01
[1106] 001
[1107] 0001
[1108] etc
[1109] d. using Flat Head Unlimited Code System in Paragraph [168] and [173] for accommodating the need for the counting of codes having code values 00/01, representing a merging of more than one counting systems;
[1110] So the counting system used in any design schema could take different forms as appropriate to the purpose of design. It could be easily done using CHAN FRAMEWORK for designing code systems for different counting purposes, such as for counting digital data set with different frequency distribution.
[1111] Using the techniques described in Paragraph [169] and [170], one is able to do encoding and decoding for the purpose of encryption and decryption with the same bit usage as the original digital data set for any types of digital data, whether random or not. And since the such coding as revealed in Paragraph [169] and [170] includes Count Information as well as the digital data itself. So the content of information contained in the encoded code is obviously more than the digital data itself even if it is a random set of digital data. So it is a solid proof that Pigeonhole Principle in Information Theory is a mere myth.
[1112] Inadequate addresses is also used an explanation for the truth of Pigeonhole Principle in Information Theory. And such an explanation is also a mistake to lead people away from studying the characteristics of random data. Actually, addresses could be created where appropriate and where opportunity arising.
[1113] Looking at the offsetting of bit saving and bit wastage from the coding illustrated in Diagram 77, it could be seen that codes having code values of 00/01 have no change in bit usage before or after coding. What contributes to bit saving is the use of Digital Blackholing upon the codes having code values of 10 and 11, which become 1[0] and 1[1], i.e. 10 and 11 becoming 1 and 1, saving of 1 bit for each code having code value of either 10 or 11. What contributes to bit wastage is the use of Digital Count Information in the form of Count Number Code and Count Distribution Code. So if the number of bits used in Digital Count Information (Digital Count Information Bit Usage, DCIBU) is less than Bit Saving due to Digital Blackholing (BSDB), i.e. the number of counts of codes having code values of 10 plus 2 in bit for two adjacent units of Digital Construct, there is bit saving; if DCIBU is equal to BSDB, bit usage breaks even; and if DCIBU is more than BSDB, there is bit wastage. The balance between bit saving and bit wastage for coding illustrated in Diagram 77 is shown in Diagram 78 below:
[1114] Diagram 78
[1115] Balance of Bit Saving and Bit Wastage for coding in Diagram 77
TABLE-US-00115 DCI Offsetting Result 00 breaking even CNC CDC 01 0 breaking even 01 1 breaking even 10 0 +1 bit (bit saving) 10 10 breaking even 10 11 breaking even 110 00 breaking even 110 01 breaking even 110 10 breaking even 110 11 breaking even 1110 00 breaking even 1110 01 breaking even 1110 10 breaking even 1110 110 1 bit (bit wastage) 1110 111 1 bit (bit wastage) 11110 ... etc etc etc etc
[1116] The explanation of Inadequate Addresses for the truth of Pigeonhole Principle in Information Theory is also a myth as Address could be created. The technique of Absolute Address Branching could be used again for such a purpose as it could be identified from Diagram 78 that where CNC=10 and CDC=0, there is a bit saving of 1 bit, one could make use of this address to create an address for setting up another series of Unlimited Code System for the use of counting as shown in Diagram 79 below:
[1117] Diagram 79
[1118] Creating Address for the use of another Unlimited Code System for the use of counting using coding example in Diagram 78
TABLE-US-00116 CNC CDC [10 0]; CDC=0 here could be branched into 2 codes to form and to be replaced by the following 2 codes 10 00: used for the original code of CNC+CDC=100, which becomes 1000 10 01; a new address for creating another Unlimited Code System by use of Absolute Address Branching technique for the use of counting as follows: 10 010 10 0110 10 01110 etc etc ;
so the newly formed Unlimited Code System begins with its first element of code value of 10010, followed by 100110, 1001110, so on and so forth
[1119] So this Unlimited Code System beginning with its first element, 10010, having 5 bits could be used for counting of another series of unlimited numbers. Referring to Diagram 78, therefore one could open up a parallel system of 2 Unlimited Counting Series of number at the level where CNC=1110 or CNC=11110 as shown in Diagram 80 below:
[1120] Diagram 80a
[1121] Parallel Unlimited Counting System counting the same series of unlimited numbers using two Unlimited Code Systems beginning at the level of original CNC=1110
TABLE-US-00117 DCI Offsetting Result 00 breaking even CNC CDC 01 0 breaking even 01 1 breaking even 10 00 breaking even 10 010 ; new address created as the first element of a new Unlimited Code System for counting 10 10 breaking even 10 11 breaking even 110 00 breaking even 110 01 breaking even 110 10 breaking even 110 11 breaking even 1110 00 breaking even 1110 01 breaking even 1110 10 breaking even 1110 110 1 bit (bit wastage) 1110 111 1 bit (bit wastage) ;
Where at the level of CNC=1110, another Unlimited Code System joining in to share the task of counting and the CNC and CDC are revised as follows:
TABLE-US-00118 CNC1 CDC1 1110 00 breaking even 1110 01 breaking even 1110 10 breaking even 1110 11 breaking even CNC2 CDC2 10010 [ ] +1 (bit saving); [ ] being omitted as no need for it because of it being the only remaining Count Distribution Combination etc etc etc etc ;
so CNC 1 and CDC 1 represent the original Unlimited Code System for counting, at the original level of CNC=1 110, there being 4 codes having the code value of 10 in DR1 and DR2, the original CDC being 5 combinations of (0,4), (1,3), (2,2), (3,1) and (4,0) with the codes of 00, 01, 10, 110 and 111
[1122] ; the original CNC and CDC could be revised to become CNC1 and CNC2 as well as CDC1 and CDC2 accordingly as shown above
[1123] Or the newly created Unlimited Code System could be used at the level of original CNC=11110
[1124] Diagram 80b
[1125] Parallel Unlimited Counting System counting the same series of unlimited numbers using two Unlimited Code Systems beginning at the level of original CNC=11110
TABLE-US-00119 DCI Offsetting Result 00 breaking even CNC CDC 01 0 breaking even 01 1 breaking even 10 00 breaking even 10 010 ; new address created as the first element of a new Unlimited Code System for counting 10 10 breaking even 10 11 breaking even 110 00 breaking even 110 01 breaking even 110 10 breaking even 110 11 breaking even 1110 00 breaking even 1110 01 breaking even 1110 10 breaking even 1110 110 1 bit (bit wastage) 1110 111 1 bit (bit wastage) ;
where at the level of CNC=1 1110, another Unlimited Code System joining in to share the task of counting and the CNC and CDC are revised as follows:
TABLE-US-00120 CNC1 CDC1 11110 00 breaking even 11110 01 breaking even 11110 10 breaking even 11110 11 breaking even CNC2 CDC2 10010 0 +1 (bit saving); 10010 1 +1 (bit saving); etc etc etc etc ;
so CNC1 and CDC1 represent the original Unlimited Code System for counting, at the original level of CNC=1 1110, there being 5 codes having the code value of 10 in DR1 and DR2, the original CDC being 6 combinations of(0,5), (1,4), (2,3), (3,2), (4,1) and (5,0) with the codes of 00, 01, 100, 101, 110 and 111
[1126] ; the original CNC and CDC could be revised to become CNC1 and CNC2 as well as CDC1 and CDC2 accordingly as shown above
[1127] However, even though at this level, there are 2 combinations having bit saving of 1 bit, this results in 2 combinations having bit wastage of 1 bit at an upper level of original CNC=1110. So Code Demotion could be done to correct this undesirable situation. And Diagram 80b could be revised as follows as in Diagram 80c:
[1128] Diagram 80c
[1129] Parallel Unlimited Counting System counting the same series of unlimited numbers using two Unlimited Code Systems beginning at the level of original CNC=1 1110 with the use of Code Demotion
TABLE-US-00121 DCI Offsetting Result 00 breaking even CNC CDC 01 0 breaking even 01 1 breaking even 10 00 breaking even 10 010 ; new address created as the first element of a new Unlimited Code System for counting 10 10 breaking even 10 11 breaking even 110 00 breaking even 110 01 breaking even 110 10 breaking even 110 11 breaking even 1110 00 breaking even 1110 01 breaking even 1110 10 breaking even 1110 11 breaking even [1110 110].sup. ; coding changed into 1110 11 as shown above because of the code demotion of the next combination below [1110 111].sup. ; this combination being moved to one level below using the technique of code demotion ;
where at the level of CNC=1 1110, another Unlimited Code System joining in to share the task of counting and the CNC and CDC are revised as follows:
TABLE-US-00122 CNC1 CDC1 11110 00 breaking even 11110 01 breaking even 11110 10 breaking even 11110 11 breaking even CNC2 CDC2 10010 0 breaking even; standing for the original combination of 1110 111 moved here 10010 10 breaking even; 10010 11 breaking even; CNC1 CDC1 111110 00 breaking even 111110 01 breaking even 111110 10 breaking even 111110 11 breaking even CNC2 CDC2 100110 0 +1 (bit saving); 100110 10 breaking even; 100110 11 breaking even; etc etc etc etc ;
so at the original level of CNC=1 11110, there being 6 codes having the code value of 10 in DR1 and DR2, the original CDC being 7 combinations of (0,6), (1,5), (2,4), (3,3), (4,2), (5,1) and (6,0) with the codes of 00, 010, 011, 100, 101, 110 and 111 are changed to become CNC1 and CNC2 as well as CDC1 and CDC2 accordingly as shown above
[1130] The revision as shown in Diagram 80c above shows that at the original level of CNC=1110, there is no bit wastage anymore and there is still one bit saving at the new level of CNC2+CDC2=100110 0. And if necessary or appropriate, another new address could be created here likewise for making the third Unlimited Coding System for joining in to help in the tasking of counting at levels further lower down, for instance at the level where there are 8 codes having code value of 10 in DR1+DR2 and at those levels below. At level where there are 7 codes having code value of 10 in DR1+DR2, there are only 8 combinations and the offsetting result is all breaking even. Likewise, this could be accompanied with the use of the technique of Code Demotion at levels where necessary or appropriate.
[1131] Or the Parallel Unlimited Code Systems could be created as early as possible shown below in Diagram 80d at the level of original CNC=110. And the new address used for the setting the second Unlimited Code System could occupy the place of CNC=01, using 010 for the first element of the second Unlimited Code System for use at the level of CNC1=110 level.
[1132] Diagram 80d
[1133] Parallel Unlimited Counting System counting the same series of unlimited numbers using two Unlimited Code Systems beginning at the level of original CNC=10
TABLE-US-00123 DCI Offsetting Result 00 breaking even CNC CDC [01 0] ; used as new address for setting up a new Unlimited Code System CNC1 CDC1 010 [ ] breaking even; being 1 code with code value CNC2 CDC2 of 10, with 2 combinations only 10 0 breaking even 10 10 ; another new address for setting up the third Parallel Unlimited Code System for use at level where being 3 codes with code value of 10 CNC1 CDC1 0110 [ ] breaking even; being 2 codes with code value of 10 CNC2 CDC2 110 0 breaking even 110 1 breaking even CNC1 CDC1 0110 [ ] breaking even; being 3 codes with code value of 10 CNC2 CDC2 1110 0 breaking even; 1110 1 breaking even; CNC3 CDC3 1010 [ ] +1 bit (bit saving); or it could be used to make for setting up the fourth Parallel Unlimited Code System CNC1 CDC1 011110 [ ] breaking even; being 4 codes with code value of 10 CNC2 CDC2 11110 0 breaking even; 11110 1 breaking even; CNC3 CDC3 10110 0 breaking even: 10110 1 breaking even: etc etc etc etc
[1134] From Diagram 80 above, it could be seen that new addresses and new Unlimited Coding System(s) could be created to help in the tasking of counting unlimited numbers if the digital data set under processing requires. It is apparent that there is no shortage of new addresses for such a purpose.
[1135] In the above example, the parallel unlimited code systems used for counting the same series of digital data starts somewhere in some levels after the first level, for instance at the level of the original CNC=1 110 in Diagram 80a. However, depending on the characteristics of the frequency distribution of the digital data set under processing, one could consider starting it at levels where appropriate. Other ways that could be done are also shown in Diagram 81 as follows:
[1136] Diagram 81a
[1137] Parallel Unlimited Code Systems used for counting codes having code value of 10 at the first level where the count of codes having code value of 10 is equal to One
TABLE-US-00124 DCI 00 ; there being no codes with values of 10/00/11 in DR1 and DR2 010 ; there being no codes with value of 10 in DR1 and DR2 but being code(s) with value of 00/01 CNC1 CDC1 CNC2 CDC2 10 ... [ ] [ ]; there being one code with value of 10 in DR1+DR2 110 ... [ ] [ ]; there being two codes with value of 10 in DR1+DR2 1110 ... 0110 ...; there being three codes with value of 10 in DR1+DR2 etc etc etc etc; etc ;
the original CDC codes have to be shared between CDC1 and CDC2 beginning at the level of there being three codes with value of 10 in DR1+DR2
[1138] ; or the Parallel Unlimited Code Systems could be made into Successive Unlimited Code Systems for counting the same series of unlimited numbers
[1139] Diagram 81b
[1140] Successive Unlimited Code Systems used for counting codes having code value of 10 at the first level where the count of codes having code value of 10 is equal to One
TABLE-US-00125 DCI 00 ; there being no codes with values of 10/00/11 in DR1 and DR2 010 ; there being no codes with value of 10 in DR1 and DR2 but being code(s) with value of 00/01 10 ; there being one code with value of 10 in DR1 and DR2 110 ; there being two codes with value of 10 in DR1+DR2 1110 ; there being three codes with value of 10 in DR1+DR2 0110 ; there being four codes with value of 10 in DR1+DR2 11110 ; there being five codes with value of 10 in DR1+DR2 01110 ; there being six codes with value of 10 in DR1+DR2 etc ; etc
[1141] The coding technique as found in the above Diagram 80 and Diagram 81 is a demonstration of how the technique of Absolute Address Branching and the technique of using a new address for opening up another Unlimited Code System for the purpose of sharing the task of counting the same series of unlimited number. The new address could also be used in another way as illustrated below in Diagram 82:
[1142] Diagram 82
[1143] New Address created for use in Code Promotion
TABLE-US-00126 DCI Offsetting Result 00 breaking even CNC CDC 01 0 breaking even 01 1 breaking even 10 00 breaking even 10 01 ; new address created used for accommodating a Count Distribution Combination from the level of CNC=110 standing for the original CNC+CDC=11000, resulting in +1 (bit saving) here and at the level of the new CNC+CDC=1100 10 10 breaking even 10 11 breaking even 110 0 +1 (bit saving) 110 10 breaking even 110 11 breaking even 1110 00 breaking even 1110 01 breaking even 1110 10 breaking even 1110 110 1 bit (bit wastage) 1110 111 1 bit (bit wastage)
[1144] So the new address thus created could be used for opening another Unlimited Code System for sharing the task of counting, making Parallel or Successive Counting Systems with two Unlimited Code Systems (or more if more addresses are made available) counting the same series of unlimited numbers or used for Code Promotion. So depending upon the characteristics of the frequency distribution of the digital data information under processing, one could make a choice about how the new address could be used for so that bit saving could be made more than bit wastage. This is so bearing in mind that the frequency distribution of random data varies even with the same bit size, not to mention random data with different sizes. The technique of dividing random data set into smaller sections for encoding and decoding in order to increase its non-randomness has been revealed in the PCT Application, PCT/IB2017/054500, under priority claim of the present invention. And one could also use different mapping scenarios as revealed in Paragraph [170] for the same Digital Construct Design or use different Digital Construct Design to suit for the characteristics of the frequency distribution of the digital data set under processing. Such techniques of coding as revealed is useful and applicable to all types of digital data whether random or not.
[1145] The same counting techniques could also be implemented for counting codes with code values of 00/01. For instance, at the level where being no codes with value of 10 in DR1 and DR2, one could use Pyramid Head Unlimited Code System for counting the number of 0 head codes (i.e. codes having code value of 00/01) or Flat Head Unlimited Code System in DR1+DR2 taken together as in Diagram 83a and Diagram 83b below:
[1146] Diagram 83a
[1147] Counting the number of 0 Head codes inside DR1+DR2 taken together using Pyramid Head Unlimited Code System (Tail 0)
TABLE-US-00127 DCI DCI Bit Map for for Code 10 Code 0 1 Tail Bit of 0 Head code CNC10 CNC0 CDC0 00 0 [ ] [ ]; no code 10 and no 0 Head code 00 10 0 0; no code 10 and one 0 Head code being 00 in DR1+DR2 00 10 0 1; no code 10 and one 0 Head code being 01 in DR1+DR2 ; the 0 Head code being in DR1 00 10 1 0; no code 10 and one 0 Head code being 00 in DR1+DR2 00 10 1 1; no code 10 and one 0 Head code being 01 in DR1+DR2 ; the 0 Head code being in DR2 00 110 0 00; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 00 and 00 00 110 0 01; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 00 and 01 00 110 0 10; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 01 and 00 00 110 0 11; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 01 and 01 00 110 10 00; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 00 and 00 00 110 10 01; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 00 and 01 00 110 10 10; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 01 and 00 00 110 10 11; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 01 and 01 00 110 11 00; the Count Distribution Combination being (2,0) ; i.e. two 0 Head code in DR1 and no 0 Head code in DR2 ; those two codes being 00 and 00 00 110 11 01; the Count Distribution Combination being (2,0) ; i.e. two 0 Head code in DR1 and no 0 Head code in DR2 ; those two codes being 00 and 01 00 110 11 10; the Count Distribution Combination being (2,0) ; i.e. two 0 Head code in DR1 and no 0 Head code in DR2 ; those two codes being 01 and 00 00 110 11 11; the Count Distribution Combination being (2,0) ; i.e. two 0 Head code in DR1 and no 0 Head code in DR2 ; those two codes being 01 and 01 etc etc
[1148] Diagram 83b
[1149] Counting the number of 0 Head codes inside DR1+DR2 taken together using Flat Head Unlimited Code System (Tail 0)
TABLE-US-00128 DCI DCI Bit Map for for Code 10 Code 0 Tail Bit of 0 Head code CDC10 CNC0 CDC0 00 00 [ ] [ ]; no code 10 and no 0 Head code 00 01 0 0; no code 10 and one 0 Head code being 00 in DR1+DR2 00 01 0 1; no code 10 and one 0 Head code being 01 in DR1+DR2 ; the 0 Head code being in DR1 00 01 1 0; no code 10 and one 0 Head code being 00 in DR1+DR2 00 01 1 1; no code 10 and one 0 Head code being 01 in DR1+DR2 ; the 0 Head code being in DR2 00 10 0 00; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 00 and 00 00 10 0 01; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 00 and 01 00 10 0 10; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 01 and 00 00 10 0 11; the Count Distribution Combination being (0,2) ; i.e. no 0 Head code in DR1 and two 0 Head codes in DR2 ; those two codes being 01 and 01 00 10 10 00; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 00 and 00 00 10 10 01; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 00 and 01 00 10 10 10; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 01 and 00 00 10 10 11; the Count Distribution Combination being (1,1) ; i.e. one 0 Head code in DR1 and one 0 Head code in DR2 ; those two codes being 01 and 01 00 10 11 00; the Count Distribution Combination being (2,0) ; i.e. two 0 Head codes in DR1 and no 0 Head code in DR2 ; those two codes being 00 and 00 00 10 11 01; the Count Distribution Combination being (2,0) ; i.e. two 0 Head codes in DR1 and no 0 Head code in DR2 ; those two codes being 00 and 01 00 10 11 10; the Count Distribution Combination being (2,0) ; i.e. two 0 Head codes in DR1 and no 0 Head code in DR2 ; those two codes being 01 and 00 00 10 11 11; the Count Distribution Combination being (2,0) ; i.e. two 0 Head codes in DR1 and no 0 Head code in DR2 ; those two codes being 01 and 01 etc etc
[1150] Techniques of Code Promotion, Code Demotion, creating new addresses for using two or more Parallel or Successive Code Systems for counting, mentioned earlier for the counting of codes having code value of 10 in Paragraph [179] to Paragraph [184], could also be added into the coding framework as illustrated in Paragraph [185] where appropriate according to the characteristics of the digital data set under processing.
[1151] Likewise, same techniques which are revealed in Paragraphs [185] and [186] for counting of 0 Head codes could also be applied to level where there are codes having code value of 10. At those levels with codes having code value of 10, sections of 0 Head codes (including there being no 0 Head code or there being one or more 0 Head codes) are separated by either code 1[0] or code 1[1], one could therefore applied the techniques introduced in Paragraphs [185] and [186] for the level of there being no codes having code value of 10 wherever there are two such sections of 0 Head codes. If there are odd numbers of 0 Head code section, the one that is not paired up could be counted using a Pyramid Head Unlimited Code System. In that way, the Bit 1, representing the codes having code values of 10 or 11 could be omitted and upon decoding, their position could be determined using the Digital Count Information for 0 Head codes. For instance, how the coding for those levels with codes having code value of 10 is explained as shown in Diagram 84, which uses the coding illustrated in Diagram 77b for explanation, as follows:
[1152] Diagram 84
[1153] Counting of number of codes having code values of 00/01 using coding extracted from Diagram 77b
TABLE-US-00129 DCI CNC CDC; CNC being Count Number and CDC being Count Distribution Code 01; there being 1 code with value of 10 01 0; standing for the distribution (0, 1), i.e. no code in DR1 and 1 code in DR2 ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 01 1; standing for the distribution (1, 0), i.e. no code in DR2 and 1 code in DR1 ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in EDR1 and EDR2 as found or not found in the original series of digital bits under processing
[1154] In the above coding for the level where being one code with code value of 10 in DR1+DR2, there are 3 sections of {00/01 . . . 00/01} for each Count Distribution Combination, such as for each of 010 and 011. For every 2 sections of {00/01 . . . 00/01}, the number of codes (being 0 to as many as there are in the digital data set under processing) having code values of 00/01 is counted, using CNC for 0 Head Code for indication, and also CDC for 0 Head Code should also be added afterward for distinguishing how many codes are in the first section and how many in the section section of {00/01 . . . 00/01}; in such a way, the Bit 1 inbetween these two sections of {00/01 . . . 00/01} and the first stop code, another Bit 1, standing for DD1 could be omitted as it could be determined using the Paired Section CNC for 0 Head Code and Paired Section CDC for 0 Head Code. As there is the third section of {00/01 . . . 00/01}, its number of codes (being 0 to as many as there are in the digital data set under processing) having code values of 00/01 is also counted using another Single Section CNC for 0 Head Code. For such a single, non-paired section of {00/01 . . . 00/01}, CDC for it is not necessary. The last Bit 1, standing for DD2, could also be determined using the Single Section CNC and omitted in the coding. And the Tail Bit of the codes inside each section of {00/01 . . . 00/01} is listed as Tail Bit Map Code for 0 Head Code, corresponding to each of the 0 Head code(s) counted and present in Paired Section CNC and Single Section CNC for identifying such 0 Head code(s) as being 00/01. So the coding of a resultant Encoded Digital Construct for two adjacent units of Digital Construct of design used in Diagram 84 then becomes series of bits as recorded in CNC for Code 10, CDC for Code 10, Paired Section CNC for 0 Head Code, Paired Section CDC for 0 Head Code, Single Section CNC for 0 Head Code, and Tail Bit Map Code for 0 Head Code.
[1155] The Paired Section CNC and the Single Section CNC each uses an Unlimited Code System for counting the corresponding number of codes having code values of 00/01 within the Paired Section and the Single Section of {00/01 . . . 00/01}.
TABLE-US-00130 CNC CDC 10; there being 2 codes with value of 10 10 0; standing for the distribution (0,2) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 10 10; standing for the distribution (1,1) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 10 11; standing for the distribution (2,0) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in EDR1 and EDR2 as found or not found in the original series of digital bits under processing
[1156] At CNC=10 for Code 10, there being 2 codes having code value of 10 in DR1+DR2, so there are four sections of {00/01 . . . 00/01}; so 2 Paired Section CNC and CDC for 0 Head Code plus Tail Bit Map Code for 0 Head Code are used.
TABLE-US-00131 CNC CDC 110; there being 3 codes with value of 10 110 00; standing for the distribution (0,3) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 110 01; standing for the distribution (1,2) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 110 10; standing for the distribution (2,1) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 {00/01...00/01} 1 110 11; standing for the distribution (3,0) ; to be followed by codes in EDR1, EDD1, EDR2, EDD2 EDR1 EDD1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 {00/01...00/01} 1 EDR2 EDD2 {00/01...00/01} 1 ;
where {00/01 . . . 00/01} represents a series of codes having code values of 00/01 in EDR1 and EDR2 as found or not found in the original series of digital bits under processing
[1157] At CNC=110 for Code 10, there being 3 codes having code value of 10 in DR1+DR2, so there are five sections of {00/01 . . . 00/01}; so 2 Paired Section CNC and CDC for 0 Head Code plus 1 Single Section CNC plus Tail Bit Map Code for 0 Head Code are used. For level having more codes of Code 10 in DR1+DR2, the coding could be modeled upon coding described above.
[1158] And as discussed earlier, same other techniques, including Code Promotion, Code Demotion, creating new addresses, and setting up new Parallel and or Successive Unlimited Code System(s) for counting, which are revealed in the preceding paragraphs concerning counting of number of Code 10 and number of 0 Head Code, could also be applied here for counting the number of 0 Head Code for levels having codes of Code 10.
[1159] The use of Digital Count Information, including Count Number Information and its associated Count Number Code as well as Count Distribution Information and its associated Count Distribution Code, provides a very flexible digital structure that could be easily adjusted according to the characteristics of the digital data set under processing, especially its frequency distribution of codes having different code values. For instance in the aforesaid example, one could adjust the CNC and CDC of the Digital Count Information for codes having code values being counted according to the frequency distribution of such codes at different levels. In Diagram 85 below, different assignments of DCI could be easily achieved where appropriate to the frequency distribution of the digital data set under processing:
[1160] Diagram 85
[1161] Assigning DCI code according to frequency distribution of digital data set under processing
TABLE-US-00132 DCI CNC1 CNC2 00 0 ; there being no codes with value of 10 in DR1 and DR2 01 10 ; there being 1 code with value of 10 in DR1 and DR2 taken together 10 110; there being 2 codes with value of 10 in DR1 and DR2 taken together 110 1110; there being 3 codes with value of 10 in DR1 and DR2 taken together etc ; etc
[1162] In Diagram 85, there are two different assignments of Count Number Code, CNC1 and CNC2, which are appropriate to two different frequency distributions of digital data set under processing. For a random data set, in the aforesaid example using 4 code values from a binary code table of 00/01/10/11, CNC1 is found to be more appropriate as random data set tends to be even in frequency distribution for all such 4 code values. However, for non random data set having codes with higher frequency for 0 Head code values, CNC2 is found to be more appropriate for use for the purpose of making data compression. CNC 1 assigns two digits 00 for the level in which there are no codes having value of 10 in DR; all other codes, if found, have code values of 00/01 in DR. And in CNC2, the assignment of bits 00 is reduced to bit 0, reducing the bit usage by 1 bit for every Digital Construct code. This shows how code assignment could be attempted to make adjustment of bit usage in accordance with the frequency distribution of digital data set under processing. Other adjustment of code could be made as well; for instance if one finds that, besides there being more codes having values of 00/01 in DR, Digital Constructs having 2 codes with value 10 in DR are much more frequent than those having 1 code with value 10 in DR, then after adjusting the first level where there being no codes having value of 10 from being assigned with bits 00 to bit 0, one could swap CNC2=10 with CNC2=110, assigning CNC2=10 to the level where there are 2 codes having code value of 10 in DR and CNC2=110 to the level where there are only 1 code having code value of 10 in DR.
[1163] The change of assignment of CNC and CDC for Code Promotion and Code Demotion as discussed in Paragraphs [181] and [183] is another form of adjustment of code assignment in response to the limit of the use of binary system and the need for bit usage saving.
[1164] Diagram 86 is a text listing of a Google language go file for demonstrating the use of the technique of Digital Lensing in reading or sampling digital data expressed in binary system as contained in computer file in the form of a series of digital bits of Bit 0 and Bit 1 for generating frequency statistics of the digital data information under processing so as to facilitate designing appropriate Encoded Digital Construct in accordance with the respective digital data read or sampled:
[1165] Diagram 86
[1166] Program Code Listing of Google Language go file using Digital Lensing for generating frequency statistics of digital data read
TABLE-US-00133 // +build package main import ( fmt strconv ) var pattern1 = [ ]string{00, 01, 10} var pattern2 = [ ]string{11, 01, 10) type pufreq struct { table [16][200]int max [16]int count [13]int table2 [4][30][30]int max2 [4][30]int } func (c *pufreq) inc(n, v int) { if v > c.max[n] { c.max[n] = v } c.table[n][v]++ } func (c *pufreq) inc2(n, v1, v2 int) { if v2 > c.max2[n][v1] { c.max2[n][v1] = v2 } c.table2[n][v1][v2]++ } func (freq *pufreq) add(base, len1, len2 int) { if len1+len2 == 0 { freq.count[base*4+0]++ } else { freq.count[base*4+1]++ freq.inc(base*6+5, len1+len21) } if base == 1 { if len1 == 0 && len2 >= 1 { freq.count[8]++ freq.inc(12, len21) } if len1 >= 1 && len2 == 0 { freq.count[9]++ freq.inc(13, len11) } if len1 >= 1 && len2 >= 1 { freq.count[12]++ } if len1 == 1 && len2 >= 1 { freq.count[10]++ freq.inc(14, len21) } if len1 >= 1 && len2 == 1 { freq.count[11]++ freq.inc(15, len11) } } if len1 == 0 && len2 >= 1 { freq.count[base*4+2]++ freq.inc(base*6+3, len21) } if len1 >= 1 && len2 == 0 { freq.count[base*4+3]++ freq.inc(base*6+4, len11) } if len1 == len2 && len1 > 0 { freq.inc(base*6, len11) } if len1 >= 1 && len2 >= len1 { freq.inc(base*6+1, len11) freq.inc2(base*2, len11, len2len1) } if len2 >= 1 && len1 >= len2 { freq.inc(base*6+2, len21) freq.inc2(base*2+1, len21, len1len2) } } func (freq *pufreq) print( ) { strs := [2][2]string{{1head, 0head}, {0head, count}} for base := 0; base < 2; base++ { s0 := strs[base][0] // s1 := strs[base][1] c := strconv.Itoa(base + 1) fmt.Println(Result + c + A:) fmt.Println( 1r +s0+=0 and 2r +s0+=0:, freq.count[base*4+0]) fmt.Println( 1r +s0+>0 or 2r +s0+>0:, freq.count[base*4+1]) for i := 0; i <= freq.max[base*6+5]; i++ { fmt.Println( len1+len2=+strconv.Itoa(i+1)+:, freq.table[base*6+5][i]) } if base == 1 { fmt.Println( len1=0,len2>=1:, freq.count[8]) for j := 0; j <= freq.max[12]; j++ { fmt.Println( len2=+strconv.Itoa(j + 1)+:, freq.table[12][j]) } fmt.Println( len1>=1,len2=0:, freq.count[9]) for j := 0; j <= freq.max[13]; j++ { fmt.Println( len1=+strconv.Itoa(j+1)+:, freq.table[13][j]) } fmt.Println( len1>=1,len2>=1, freq.count[12]) fmt.Println( len1=1,len2>=1:, freq.count[10]) for j := 0; j <= freq.max[14]; j++ { fmt.Println( len2=+strconv.Itoa(j + 1)+: freq.table[14][j]) } fmt.Println( len1>=1,len2=1, freq.count[11]) for j := 0; j <= freq.max[15]; j++ { fmt.Println( len1=+strconv.Itoa(j+1)+:, freq.table[15][j]) } } fmt.Println(Result + c + B: 1r + s0 + =0 and 2r + s0 + )>=1) fmt.Println( sum, freq.count[base*4+2]) for i := 0; i <= freq.max[base*6+3]; i++ { fmt.Println( n=+strconv.Itoa(i+1)+:, freq.table[base*6+3][i]) } fmt.Println(Result + c + C: 1r + s0 + >=1 and 2r + s0 + =0) fmt.Println( sum, freq.count[base*4+3]) for i := 0; i <= freq.max[base*6+4]; i++ { fmt.Println( n=+strconv.Itoa(i+1)+:, freq.table[base*6+4][i]) } fmt.Println(Result + c + D: 1r + s0 + = 2r + s0) for i := 0; i <= freq.max[base*6+0]; i++ { fmt.Println( n=+strconv.Itoa(i+1)+:, freq.table[base*6+0][i]) } fmt.Println(Result + c + E: 1r + s0 + =n and 2r + s0 + >=n) for i := 0; i <= freq.max[base*6+1]; i++ { fmt.Println( n=+strconv.Itoa(i+1)+:, freq.table[base*6+0][i]) for j := 0; j <= freq.max2[base*2][i]; j++ { fmt.Println( n=+strconv.Itoa(j+i+1)+:, freq.table2[base*2][i][j]) } } fmt.Println(Result + c + F: 1r + s0 + >=n and 2r + s0 + =n) for i := 0; i <= freq.max[base*6+2]; i++ { fmt.Println( n=+strconv.Itoa(i+1)+:, freq.table[base*6+2][i]) for j := 0; j <= freq.max2[base*2+1][i]; j++ { fmt.Println( n=+strconv.Itoa(j+i+1)+:, freq.table2[base*2+1][i][j]) } } } fmt.Println( ) } func encode(input *inputBitArray, p1, p2 [ ]string) { var freq pufreq input.reset( ) for !input.isEnded( ) { a1 := input.getPattern(p1) input.readBit( ) input.readBit( ) a2 := input.getPattern(p2) input.readBit( ) input.readBit( ) var lens [3]int for _, v := range a1 { if v == 2 { lens[0]++ } } for _, v := range a2 { if v == 2 { lens[1]++ } } lens[2] = lens[0] + lens[1] if lens[2] == 0 { freq.add(1, len(a1), len(a2)) } freq.add(0, lens[0], lens[1]) } freq.print( ) } func main( ) { input := newInputBitArray(ff) for i := 0; i < 3; i++ { fmt.Println(File 1, i+1) fmt.Println(mapping1) encode(input, pattern1, pattern1) frnt.Println( mapping2) encode(input, pattern2, pattern1) input.rand( ) } }
[1167] Diagram 87 is an extract of the result of frequency statistics produced by the go program listed in Diagram 86 after processing a digital data file consisting of 80,000 random binary bits:
[1168] Diagram 87
[1169] Frequency statistics of random digital data generated using Digital Lensing
[1170] File 1
[1171] mapping1
[1172] Result 1A: [1173] 1r 1head=0 and 2r 1head=0: 1262 [1174] 1r 1head>0 or 2r 1head>0: 3773 [1175] len1+len2=1: 1241 [1176] len1+len2=2: 929 [1177] len1+len2=3: 639 [1178] len1+len2=4: 439 [1179] len1+len2=5: 224 [1180] len1+len2=6: 138 [1181] len1+len2=7: 73 [1182] len1+len2=8: 45 [1183] len1+len2=9: 24 [1184] len1+len2=10: 16 [1185] len1+len2=11: 1 [1186] len1+len2=12: 3 [1187] len1+len2=13: 1
[1188] Result 1B: 1r 1head=0 and 2r 1head>=1 [1189] sum 1273 [1190] n=1: 638 [1191] n=2: 290 [1192] n=3: 172 [1193] n=4: 101 [1194] n=5: 32 [1195] n=6: 22 [1196] n=7: 8 [1197] n=8: 6 [1198] n=9: 3 [1199] n=10: 1
[1200] Result 1C: 1r 1head>=1 and 2r 1head=0 [1201] sum 1217 [1202] n=1: 603 [1203] n=2: 309 [1204] n=3: 148 [1205] n=4: 88 [1206] n=5: 30 [1207] n=6: 28 [1208] n=7: 7 [1209] n=8: 1 [1210] n=9: 1 [1211] n=10: 2
[1212] Result 1D: 1r 1head=2r 1head [1213] n=1: 330 [1214] n=2: 73 [1215] n=3: 15 [1216] n=4: 5
[1217] Result 1E: 1r 1head=n and 2r 1head>=n [1218] n=1: 660 [1219] n=1: 330 [1220] n=2: 166 [1221] n=3: 85 [1222] n=4: 36 [1223] n=5: 20 [1224] n=6: 14 [1225] n=7: 8 [1226] n=8: 0 [1227] n=9: 1 [1228] n=2: 155 [1229] n=2: 73 [1230] n=3: 38 [1231] n=4: 22 [1232] n=5: 13 [1233] n=6: 5 [1234] n=7: 4 [1235] n=3: 35 [1236] n=3: 15 [1237] n=4: 8 [1238] n=5: 7 [1239] n=6: 3 [1240] n=7: 2 [1241] n=4: 7 [1242] n=4: 5 [1243] n=5: 1 [1244] n=6: 1
[1245] Result 1F: 1r 1head>=n and 2r 1head=n [1246] n=1: 662 [1247] n=1: 330 [1248] n=2: 153 [1249] n=3: 92 [1250] n=4: 48 [1251] n=5: 18 [1252] n=6: 11 [1253] n=7: 2 [1254] n=8: 4 [1255] n=9: 3 [1256] n=10: 0 [1257] n=11: 0 [1258] n=12: 1 [1259] n=2: 145 [1260] n=2: 73 [1261] n=3: 40 [1262] n=4: 13 [1263] n=5: 5 [1264] n=6: 7 [1265] n=7: 4 [1266] n=8: 3 [1267] n=3: 29 [1268] n=3: 15 [1269] n=4: 7 [1270] n=5: 4 [1271] n=6: 1 [1272] n=7: 2 [1273] n=4: 12 [1274] n=4: 5 [1275] n=5: 3 [1276] n=6: 1 [1277] n=7: 1 [1278] n=8: 2 [1279] n=5: 1 [1280] n=5: 0 [1281] n=6: 0 [1282] n=7: 1
[1283] Result 2A: [1284] 1r 0head=0 and 2r 0head=0: 327 [1285] 1r 0head>0 or 2r 0head>0: 935 [1286] len1+len2=1: 291 [1287] len1+len2=2: 265 [1288] len1+len2=3: 154 [1289] len1+len2=4: 93 [1290] len1+len2=5: 51 [1291] len1+len2=6: 40 [1292] len1+len2=7: 18 [1293] len1+len2=8: 9 [1294] len1+len2=9: 7 [1295] len1+len2=10: 5 [1296] len1+len2=11: 1 [1297] len1+len2=12: 0 [1298] len1+len2=13: 1 [1299] len1=0,len2>=1: 326 [1300] len2=1: 141 [1301] len2=2: 98 [1302] len2=3: 46 [1303] len2=4: 19 [1304] len2=5: 10 [1305] len2=6: 6 [1306] len2=7: 3 [1307] len2=8: 1 [1308] len2=9: 2 [1309] len1>=1,len2=0: 299 [1310] len1=1: 150 [1311] len1=2: 77 [1312] len1=3: 41 [1313] len1=4: 13 [1314] len1=5: 6 [1315] len1=6: 6 [1316] len1=7: 4 [1317] len1=8: 0 [1318] len1=9: 1 [1319] len1=10: 1 [1320] len1>=1,len2>=1 310 [1321] len1=1,len2>=1: 170 [1322] len2=1: 90 [1323] len2=2: 39 [1324] len2=3: 18 [1325] len2=4: 10 [1326] len2=5: 9 [1327] len2=6: 1 [1328] len2=7: 0 [1329] len2=8: 1 [1330] len2=9: 1 [1331] len2=10: 0 [1332] len2=11: 0 [1333] len2=12: 1 [1334] len1>=1,len2=1 160 [1335] len1=1: 90 [1336] len1=2: 28 [1337] len1=3: 19 [1338] len1=4: 13 [1339] len1=5: 8 [1340] len1=6: 1 [1341] len1=7: 0 [1342] len1=8: 0 [1343] len1=9: 0 [1344] len1=10: 1
[1345] Result 2B: 1r 0head=0 and 2r 0head>=1 [1346] sum 326 [1347] n=1: 141 [1348] n=2: 98 [1349] n=3: 46 [1350] n=4: 19 [1351] n=5: 10 [1352] n=6: 6 [1353] n=7: 3 [1354] n=8: 1 [1355] n=9: 2
[1356] Result 2C: 1r 0head>=1 and 2r 0head=0 [1357] sum 299 [1358] n=1: 150 [1359] n=2: 77 [1360] n=3: 41 [1361] n=4: 13 [1362] n=5: 6 [1363] n=6: 6 [1364] n=7: 4 [1365] n=8: 0 [1366] n=9: 1 [1367] n=10: 1
[1368] Result 2D: 1r 0head=2r 0head [1369] n=1: 90 [1370] n=2: 24 [1371] n=3: 4 [1372] n=4: 1
[1373] Result 2E: 1r 0head=n and 2r 0head>=n [1374] n=1: 170 [1375] n=1: 90 [1376] n=2: 39 [1377] n=3: 18 [1378] n=4: 10 [1379] n=5: 9 [1380] n=6: 1 [1381] n=7: 0 [1382] n=8: 1 [1383] n=9: 1 [1384] n=10: 0 [1385] n=11: 0 [1386] n=12: 1 [1387] n=2: 44 [1388] n=2: 24 [1389] n=3: 7 [1390] n=4: 3 [1391] n=5: 4 [1392] n=6: 4 [1393] n=7: 1 [1394] n=8: 1 [1395] n=3: 7 [1396] n=3: 4 [1397] n=4: 2 [1398] n=5: 1 [1399] n=4: 2 [1400] n=4: 1 [1401] n=5: 1
[1402] Result 2F: 1r 0head>=n and 2r 0head=n [1403] n=1: 160 [1404] n=1: 90 [1405] n=2: 28 [1406] n=3: 19 [1407] n=4: 13 [1408] n=5: 8 [1409] n=6: 1 [1410] n=7: 0 [1411] n=8: 0 [1412] n=9: 0 [1413] n=10: 1 [1414] n=2: 36 [1415] n=2: 24 [1416] n=3: 5 [1417] n=4: 4 [1418] n=5: 3 [1419] n=3: 8 [1420] n=3: 4 [1421] n=4: 0 [1422] n=5: 2 [1423] n=6: 1 [1424] n=7: 1 [1425] n=4: 2 [1426] n=4: 1 [1427] n=5: 0 [1428] n=6: 1
[1429] mapping2
[1430] Result 1A: [1431] 1r 1head=0 and 2r 1head=0: 1195 [1432] 1r 1head>0 or 2r 1head>0: 3780 [1433] len1+len2=1: 1302 [1434] len1+len2=2: 916 [1435] len1+len2=3: 586 [1436] len1+len2=4: 404 [1437] len1+len2=5: 248 [1438] len1+len2=6: 156 [1439] len1+len2=7: 85 [1440] len1+len2=8: 44 [1441] len1+len2=9: 16 [1442] len1+len2=10: 12 [1443] len1+len2=11: 4 [1444] len1+len2=12: 4 [1445] len1+len2=13: 2 [1446] len1+len2=14: 1
[1447] Result 1B: 1r 1head=0 and 2r 1head>=1 [1448] sum 1208 [1449] n=1: 587 [1450] n=2: 287 [1451] n=3: 163 [1452] n=4: 84 [1453] n=5: 46 [1454] n=6: 22 [1455] n=7: 11 [1456] n=8: 6 [1457] n=9: 2
[1458] Result 1C: 1r 1head>=1 and 2r 1head=0 [1459] sum 1306 [1460] n=1: 715 [1461] n=2: 310 [1462] n=3: 128 [1463] n=4: 79 [1464] n=5: 37 [1465] n=6: 14 [1466] n=7: 13 [1467] n=8: 5 [1468] n=9: 2 [1469] n=10: 1 [1470] n=11: 1 [1471] n=12: 0 [1472] n=13: 1
[1473] Result 1D: 1r 1head=2r 1head [1474] n=1: 319 [1475] n=2: 82 [1476] n=3: 20 [1477] n=4: 5 [1478] n=5: 1 [1479] n=6: 2
[1480] Result 1E: 1r 1head=n and 2r 1head>=n [1481] n=1: 611 [1482] n=1: 319 [1483] n=2: 140 [1484] n=3: 72 [1485] n=4: 40 [1486] n=5: 20 [1487] n=6: 13 [1488] n=7: 4 [1489] n=8: 2 [1490] n=9: 1 [1491] n=2: 170 [1492] n=2: 82 [1493] n=3: 46 [1494] n=4: 24 [1495] n=5: 12 [1496] n=6: 4 [1497] n=7: 0 [1498] n=8: 0 [1499] n=9: 1 [1500] n=10: 0 [1501] n=11: 0 [1502] n=12: 1 [1503] n=3: 35 [1504] n=3: 20 [1505] n=4: 6 [1506] n=5: 3 [1507] n=6: 2 [1508] n=7: 3 [1509] n=8: 0 [1510] n=9: 1 [1511] n=4: 9 [1512] n=4: 5 [1513] n=5: 1 [1514] n=6: 1 [1515] n=7: 1 [1516] n=8: 1 [1517] n=5: 1 [1518] n=5: 1 [1519] n=6: 2 [1520] n=6: 2
[1521] Result 1F: 1r 1head>=n and 2r 1head=n [1522] n=1: 658 [1523] n=1: 319 [1524] n=2: 155 [1525] n=3: 87 [1526] n=4: 43 [1527] n=5: 30 [1528] n=6: 15 [1529] n=7: 6 [1530] n=8: 2 [1531] n=9: 0 [1532] n=10: 0 [1533] n=11: 0 [1534] n=12: 1 [1535] n=2: 161 [1536] n=2: 82 [1537] n=3: 36 [1538] n=4: 26 [1539] n=5: 10 [1540] n=6: 4 [1541] n=7: 1 [1542] n=8: 1 [1543] n=9: 1 [1544] n=3: 35 [1545] n=3: 20 [1546] n=4: 5 [1547] n=5: 7 [1548] n=6: 2 [1549] n=7: 1 [1550] n=4: 10 [1551] n=4: 5 [1552] n=5: 2 [1553] n=6: 3 [1554] n=5: 1 [1555] n=5: 1 [1556] n=6: 2 [1557] n=6: 2
[1558] Result 2A: [1559] 1r 0head=0 and 2r 0head=0: 307 [1560] 1r 0head>0 or 2r 0head>0: 888 [1561] len1+len2=1: 274 [1562] len1+len2=2: 212 [1563] len1+len2=3: 155 [1564] len1+len2=4: 111 [1565] len1+len2=5: 49 [1566] len1+len2=6: 34 [1567] len1+len2=7: 28 [1568] len1+len2=8: 13 [1569] len1+len2=9: 7 [1570] len1+len2=10: 2 [1571] len1+len2=11: 2 [1572] len1+len2=12: 0 [1573] len1+len2=13: 0 [1574] len1+len2=14: 0 [1575] len1+len2=15: 0 [1576] len1+len2=16: 1 [1577] len1=0,len2>=1: 286 [1578] len2=1: 150 [1579] len2=2: 70 [1580] len2=3: 30 [1581] len2=4: 17 [1582] len2=5: 6 [1583] len2=6: 8 [1584] len2=7: 4 [1585] len2=8: 1 [1586] len1>=1,len2=0: 279 [1587] len1=1: 124 [1588] len1=2: 67 [1589] len1=3: 39 [1590] len1=4: 28 [1591] len1=5: 7 [1592] len1=6: 5 [1593] len1=7: 5 [1594] len1=8: 3 [1595] len1=9: 0 [1596] len1=10: 0 [1597] len1=11: 1 [1598] len1>=1,len2>=1 323 [1599] len1=1,len2>=1: 159 [1600] len2=1: 75 [1601] len2=2: 44 [1602] len2=3: 19 [1603] len2=4: 11 [1604] len2=5: 4 [1605] len2=6: 3 [1606] len2=7: 0 [1607] len2=8: 3 [1608] len1>=1,len2=1 155 [1609] len1=1: 75 [1610] len1=2: 42 [1611] len1=3: 19 [1612] len1=4: 9 [1613] len1=5: 3 [1614] len1=6: 3 [1615] len1=7: 4
[1616] Result 2B: 1r 0head=0 and 2r 0head>=1 [1617] sum 286 [1618] n=1: 150 [1619] n=2: 70 [1620] n=3: 30 [1621] n=4: 17 [1622] n=5: 6 [1623] n=6: 8 [1624] n=7: 4 [1625] n=8: 1
[1626] Result 2C: 1r 0head>=1 and 2r 0head=0 [1627] sum 279 [1628] n=1: 124 [1629] n=2: 67 [1630] n=3: 39 [1631] n=4: 28 [1632] n=5: 7 [1633] n=6: 5 [1634] n=7: 5 [1635] n=8: 3 [1636] n=9: 0 [1637] n=10: 0 [1638] n=11: 1
[1639] Result 2D: 1r 0head=2r 0head [1640] n=1: 75 [1641] n=2: 28 [1642] n=3: 2 [1643] n=4: 2
[1644] Result 2E: 1r 0head=n and 2r 0head>=n [1645] n=1: 159 [1646] n=1: 75 [1647] n=2: 44 [1648] n=3: 19 [1649] n=4: 11 [1650] n=5: 4 [1651] n=6: 3 [1652] n=7: 0 [1653] n=8: 3 [1654] n=2: 46 [1655] n=2: 28 [1656] n=3: 8 [1657] n=4: 6 [1658] n=5: 3 [1659] n=6: 1 [1660] n=3: 7 [1661] n=3: 2 [1662] n=4: 3 [1663] n=5: 1 [1664] n=6: 1 [1665] n=4: 3 [1666] n=4: 2 [1667] n=5: 1 [1668] n=5: 1 [1669] n=5: 0 [1670] n=6: 1
[1671] Result 2F: 1r 0head>=n and 2r 0head=n [1672] n=1: 155 [1673] n=1: 75 [1674] n=2: 42 [1675] n=3: 19 [1676] n=4: 9 [1677] n=5: 3 [1678] n=6: 3 [1679] n=7: 4 [1680] n=2: 47 [1681] n=2: 28 [1682] n=3: 8 [1683] n=4: 6 [1684] n=5: 4 [1685] n=6: 0 [1686] n=7: 0 [1687] n=8: 1 [1688] n=3: 7 [1689] n=3: 2 [1690] n=4: 3 [1691] n=5: 1 [1692] n=6: 1 [1693] n=4: 5 [1694] n=4: 2 [1695] n=5: 1 [1696] n=6: 1 [1697] n=7: 0 [1698] n=8: 0 [1699] n=9: 0 [1700] n=10: 0 [1701] n=11: 0 [1702] n=12: 1
[1703] The frequency statistics of Mapping1 listed in Diagram 87 is generated by reading a random digital data file consisting of 80,000 binary bits using mapping scenario 1 (as listed in scenario 1 of DC Design of Diagram 63) of two units of DC as a Processing Unit; whereas Mapping 2 lists out the frequency statistics produced out of the same random digital data file making use of two units of DC Design (as listed in scenario 1 of DC Design of Diagram 64 followed by scenario 1 of DC Design of Diagram 63) as a Processing Unit in the same way. Random data used all along in the present invention is generated by using the random data generating function of a general purpose operating system used in a general purpose computer.
[1704] The listing of frequency statistics in Diagram 87 above shows that the same digital data file consisting of random digital binary bits exhibits different patterns of frequency statistics using different mapping scenarios of Digital Construct Design. Such different frequency patterns could also be produced using different non random digital data of binary bits in the same way. So one could make adjustment in designing different digital constructs of different mapping scenarios for use as appropriate to the digital data under processing by using Digital Lensing as revealed in the present invention.
[1705] So far as from Paragraphs [158] to [193], it has been shown that:
[1706] (1) Digital Lensing could be used for designing Digital Constructs for organizing digital binary data consisting of binary bits of Bit 0 and Bit 1 and reading and generating frequency statistics out of the binary data file, whether random or not, under processing;
[1707] (2) Encoded Digital Constructs could be designed and created using Digital Lensing for holding the result of encoding the original digital data read; and decoding of such Encoded Digital Constructs could restore the original digital data correctly and losslessly regardless the digital data being random or non random;
[1708] (3) using Digital Lensing with other techniques such as Digital Blackholing, Counting, Absolute Address Branching for new addresses, Code Promotion, Code Demotion, Encoded Digital Constructs could be created to accommodate the digital information read, using the same bit usage as the corresponding Digital Constructs formed out of the digital binary data read, whether random or not, being processed using Digital Lensing;
[1709] (4) the digital information contained inside the Encoded Digital Constructs includes the original digital information as found inside the digital binary data file under processing plus additional information generated using such other techniques mentioned in (3) above, proving that Pigeonhole Principle in Information Theory is merely a myth because Encoded Digital Constructs use the same bit usage as that of the Digital Constructs created using Digital Lensing out of the original digital data under processing; and also because there is no shortage of addresses as new addresses could be created using Absolute Address Branching technique for use in Code Promotion or making new unlimited code system(s) for counting purpose; and
[1710] (5) as the coding schema, including the use of different Digital Construct Design, the adjustable Digital Count Information, such as adjustable assignment of Count Number Codes and Count Distribution Codes, the use of Code Demotion, the use of addresses for Code Promotion or for creating new address(es) for setting up new unlimited code system(s) for counting, revealed in the present invention is adjustable, it opens up possibility of using less bit usage for encoding and decoding digital data correctly and losslessly whether the digital data is random or not; this is so because random data could be divided into smaller sections of non-random data for encoding and decoding and random data itself exhibits different frequency statistics when organized using different Digital Constructs designed under different Digital Lenses so that appropriate coding schema could be developed to take advantage of the frequency patterns thus obtained from the random digital data under processing in order to serve the purpose of encoding and decoding for lossless compression and decompression.
[1711] Correct and lossless compression and decompression of any digital binary data, including random and non random data, is therefore made possible by the method of using such adjustable coding schema as revealed in Paragraph [194] above. Such adjustable coding schema as revealed so far has been illustrated with using binary system code table of 4 code values as found in Diagram 71 in Paragraph [163], which is re-produced in Diagram 88a below:
[1712] Diagram 88a
[1713] Digital Construct using Binary System Code Table of 4 code values
TABLE-US-00134 Original digital Encoded digital DC structure code values code values DR 00 00 01 01 10 1[0] DD 11 1[1]
[1714] In Diagram 88a, the Digital Construct uses 8 bits for storing the original data using binary bits. The original 8 binary bits are stored into the Encoded Digital Construct using 6 bits of encoded code values by and large on a broad scale, leaving 2 bits for the use of storing other additional information, such as the Count Number Codes and Count Distribution Codes. An example of Digital Construct using CHAN Code System of 4 code values is shown in Diagram 88b as follows:
[1715] Diagram 88b
[1716] Digital Construct using CHAN Code Table of 4 code values
TABLE-US-00135 Original digital Encoded digital DC structure code values code values DR 10 1[0] 110 00 111 01 DD 0 1
[1717] It could be seen above, in this example codes of the original 4 code values use 9 binary bits and codes of the 4 corresponding encoded code values use 6 binary bits. So as compared the binary system code table in Diagram 88a, the same encoded code values using 6 bits used in Diagram 88b using CHAN Code Table represent 9 original binary bits instead of 8 binary bits in Diagram 88a on a broad scale. So this represents roughly 1 more bit for storing additional classification data. If the additional classification data required uses less than this one more bit, then the possibility for lossless compression and decompression of random data is highly increased. Two units of such Digital Constructs in Diagram 88a, each of 8 binary bits of random data, each requires 2 bits for such additional classification information for correct encoding and decoding. As a comparison, using the same logic, 2 units of Digital Constructs in Diagram 88b, each of 9 binary bits of random data, each would require on a broad scale 2*9/8=2.25 bit, so there could be 0.75 bit of bit saving achievable for one unit of Digital Construct using CHAN Code Table in Diagram 88b for reading binary data. So if the method and techniques as revealed above are implemented, encoding and decoding for lossless compression and decompression is proven to be certainly possible.
[1718] The situation of using 3-values code table, an example of which, is shown as follows:
[1719] Diagram 88c
[1720] Digital Construct using CHAN Code Table of 3 code values DC structure Original digital code values Encoded digital code values
TABLE-US-00136 DC structure Original digital code values Encoded digital code values DR 10 1[0] 11 0 DD 0 1
[1721] In the case of Diagram 88c, codes of the original 3 code values use 5 binary bits and codes of the 3 corresponding encoded code values use 3 binary bits. It is apparent that the bit usage saving ratio is better than using 4-values code table of binary system. The use of Unlimited Code System as revealed in Diagram 68 of Paragraph [152] for representing unlimited code values could also be attempted instead of limiting the use of code values to 4 or 3.
[1722] One could also attempt to use 3 or more units of Digital Constructs as a Processing Unit for processing digital data in binary bits and make adjustment to Digital Count Information in the Encoded Digital Constructs where appropriate.
[1723] In essence, embodiments of the present invention are characterized by:
[1724] (1) A method of organizing or ordering digital information represented in binary bits being characterized by using Digital Lensing;
[1725] (2) Digital Lensing, a method of organizing or ordering digital information represented in binary bits, being characterized by designing and creating Digital Construct whereby codes of different code values in binary bits are placed in different parts of the Digital Construct, including at least a Digital Reservoir and a Digital Dam;
[1726] (3) Digital Construct, being characterized by: being digital structure for organizing or ordering digital information represented in binary bits, created by using Digital Lensing; being digital structure consisting of at least a Digital Reservoir and a Digital Dam; and being digital structure holding digital information input represented in binary bits in the form of un-encoded Digital Construct having original binary bits of the digital information input under processing;
[1727] (4) Digital Construct, being characterized by: being digital structure for organizing or ordering digital information represented in binary bits, created by using Digital Lensing; and being digital structure holding encoded codes in binary bits in the form of encoded Digital Construct representing digital information input under processing plus additional digital information represented in binary bits, where appropriate, that is used for decoding the whole encoded Digital Construct and restoring it to the respective corresponding un-encoded Digital Construct(s);
[1728] (5) Digital Reservoir, being characterized by being a digital structure for holding digital codes represented in binary bits having selected code values, one or more, according to the Digital Lensing Design used; and being further characterized by being a variable digital structure inside which the number of digital codes held having selected code values designed for it varies from zero to an unlimited number as long as the digital information input under processing has such digital codes represented in binary bits;
[1729] (6) Digital Dam, being characterized by being a digital structure for holding digital codes represented in binary bits having selected code values, one or more, according to the Digital Lensing Design used; and being further characterized by being a fixed digital structure inside which the number of digital codes held having selected code values designed for it varies from one to an unlimited number as long as the digital information input under processing has such digital codes represented in binary bits;
[1730] (7) Processing Unit designed using Digital Lensing, being characterized by being consisting of one or more Digital Constructs;
[1731] (8) Digital Codes, being characterized by being codes represented in binary bits and representing one or more units of Digital Construct being stored in any storage medium readable by device(s), including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s) that is/are capable of running executable code or using digital data;
[1732] (9) Digital Codes, being characterized by being codes represented in binary bits and representing one or more units of Digital Reservoir being stored in any storage medium readable by device(s), including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s) that is/are capable of running executable code or using digital data;
[1733] (10) Digital Codes, being characterized by being codes represented in binary bits and representing one or more units of Digital Dam being stored in any storage medium readable by device(s), including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s) that is/are capable of running executable code or using digital data;
[1734] (11) Pyramid Head Unlimited Code System, being characterized by an unlimited number of digital code(s), each code being ended by a binary bit Bit 0;
[1735] (12) Pyramid Head Unlimited Code System, being characterized by an unlimited number of digital code(s), each code being ended by a binary bit Bit 1;
[1736] (13) Flat Head Unlimited Code System, being characterized by combining a binary code system at the upper level(s) of the code system and a Pyramid Head Unlimited Code System at the lower level(s) of the code system;
[1737] (14) Counting technique, being characterized by counting a series of unlimited number using Pyramid Head Unlimited Code System;
[1738] (15) Counting technique, being characterized by counting a series of unlimited number using Flat Head Unlimited Code System;
[1739] (16) Counting technique, being characterized by using Multiple counting systems, that is more than one counting system in the form of Parallel Counting Systems for counting one series of unlimited number;
[1740] (17) Counting technique, being characterized by using Multiple counting systems, that is more than one counting system in the form of Successive Counting Systems for counting one series of unlimited number;
[1741] (18) Counting technique, being characterized by using Multiple counting systems, that is more than one counting system in the form of Parallel Counting Systems and Successive Counting Systems for counting one series of unlimited number;
[1742] (19) Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Digital Blackholing;
[1743] (20) Encoding and decoding method, being characterized by the use of Digital Lensing and the use of one or more unlimited counting systems;
[1744] (21) Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Absolute Address Branching for creating new address(es) for use, including its use for creating new counting system or its use for Code Promotion or its use for Code Demotion;
[1745] (22) Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Code Promotion;
[1746] (23) Encoding and decoding method, being characterized by the use of Digital Lensing and the use of Code Demotion;
[1747] (24) Encoding and decoding method, being characterized by the use of Digital Lensing, the use of Digital Blackholing and the use of one or more unlimited counting systems;
[1748] (25) Encoding and decoding method, being characterized by the use of Digital Lensing, the use of Code Promotion and the use of Code Demotion; and
[1749] (26) Encoding and decoding method, being characterized by the use of Digital Lensing.
INDUSTRIAL APPLICABILITY
[1750] There are numerous industrial applications that could use CHAN FRAMEWORK and CHAN CODING, including Digital Lensing and the associated design, schema, and techniques revealed above in combination at an advantage, including all computer applications that process digital information, including all types of digital data, whether in random distribution or not, and in particular applications designed or having processes for the purpose of encoding and decoding for making data encryption, data decryption, data compression and data decompression.
[1751] Embodiments described herein may be implemented into a system using any suitably configured computer hardware and/or software. For example, certain embodiments may be implemented into a system using computer languages and compilers for making executable code and operating systems as well as applications or programs; the hardware of any device(s), whether networked or standalone, including computer system(s) or computer-controlled device(s) or operating-system-controlled device(s) or system(s), capable of running executable code; and computer-executable or operating-system-executable instructions or programs that help perform the steps for the methods described herein. In combination with the use of the technical features stated above, embodiments disclosed herein make possible the implementation of CHAN FRAMEWORK using CHAN CODING, including Digital Lensing for the processing of digital information, whether at random or not, through encoding and decoding losslessly and correctly the relevant digital data, including digital data and digital executable codes, for the purpose of encryption/decryption or compression/decompression or both; and in this relation, is characterized by the following claims:
SEQUENCE LIST TEXT
[1752] [ ]