A dot code
By employing a block arrangement of upright or oblique crosses and dual-dot encoding in the dot matrix code, the problems of dot matrix code recognition interference and insufficient page space are solved, achieving the effects of high decoding rate and large-capacity page space.
Patent Information
- Application Number
- CN202610478074.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-04-13
- Publication Date
- 2026-07-10
AI Technical Summary
In existing technologies, the consistent arrangement of dot matrix codes leads to interference in the identification of positioning dot codes, and the insufficient page space cannot meet the needs of multiple users and multiple scenarios.
The dot code unit arrangement adopts a combination of upright cross or diagonal cross, and the encoded value is represented by four 2x2 blocks in a 4x4 grid. Double dot code encoding is used to increase page space, avoid horizontal/vertical consistency, and improve decoding rate.
It effectively avoids interference from the identification of location dot codes, improves the dot code decoding rate, and significantly increases page space to meet the needs of multiple users and multiple scenarios.
Smart Images

Figure CN122366488A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of dot matrix coding technology, and in particular to a dot matrix code. Background Technology
[0002] A dot-matrix pen is a type of smart pen that uses a camera to capture dot-matrix codes printed on a medium to obtain information such as the pen tip's position and page number. The camera is a miniature unit mounted at the pen tip. An infrared LED at the pen tip emits infrared light, which is reflected from the medium surface and into the miniature camera, forming a dot-matrix image. The dot-matrix consists of small dots arranged according to a specific pattern on the medium surface. These dots can be square or circular, with a side length or diameter of approximately 0.1 millimeters, and their size does not significantly interfere with the user's writing. In writing trajectory applications, to obtain the pen's writing path, the dot-matrix continuously captures information such as the pen tip's position and page number. Typically, the dot-matrix is arranged in units of dot code primitives, covering the entire writing medium. Each dot code primitive occupies a small area, and this small area's encoding contains information such as coordinates and page number.
[0003] In existing technologies, when the arrangement of dot codes in the page number space is consistent, it is possible to form equally spaced dots, which may interfere with the identification of the positioning dot codes. Summary of the Invention
[0004] To address the aforementioned problems, the purpose of this invention is to provide a dot matrix code.
[0005] A dot matrix code, comprising:
[0006] At least one dot code unit, the dot code unit comprising multiple blocks; wherein each block represents a coded value through an arrangement of upright crosses or diagonal crosses;
[0007] The dotted code unit consists of a 4x4 grid, including four 2x2 blocks, designated as block A. Block B Block C and Block D, Each 2x2 grid contains at least one black dot code. The four positions of the dot code in each grid are arranged to form a cross "+" or a diagonal cross "X". The encoding value is 0-3. Two of the four blocks are used to represent coordinate information, and one of the four blocks has a different position arrangement than the other three blocks.
[0008] Preferably, the coordinate encoding uses blocks A and C, that is:
[0009] X=a 00 +a 10 *4+a20 *16+a 30 *64, Y=a 01 +a 11 *4+a 21 *16+a 31 *64.
[0010] Preferably, a 00 The dot code in the image is arranged in a regular cross pattern, a 01 a 10 a 11 The dot codes are arranged in a diagonal cross pattern. The dot codes in blocks B, C, and D do not use a single upright cross or three diagonal crosses.
[0011] Preferably, the dot code a in block B 13 a 12 a 03 a 02 There are 10 possible arrangements: ++++, +++x, ++x+, ++xx, +x++, +x+x, +xx+, x+++, x++x, and x+x+.
[0012] Preferably, the dot code a of block C 31 a 30 a 21 a 20 There are 10 possible arrangements: ++++, +++x, +++x+, ++xx, +x++, +x+x, +xx+, x+++, x++x, and xx++.
[0013] Preferably, the dot code a of block D 33 a 32 a 23 a 22 There are two possible arrangements: +xx+ and x++x.
[0014] Preferably, the 2x2 grid of blocks B and D contains two black dot codes.
[0015] According to specific embodiments provided by the present invention, the present invention discloses the following technical effects:
[0016] This invention relates to a dot matrix code, comprising: at least one dot code unit, wherein the dot code unit includes multiple blocks; wherein each block represents an encoded value through an arrangement of upright or diagonal crosses. This invention effectively "scatters" the information dot codes, avoiding consistency in the horizontal / vertical directions, thus clearly distinguishing them from neatly arranged positioning dot codes and improving the decoding rate of the dot code. Furthermore, through dual dot code encoding, the overall page space can be significantly increased, meeting the needs of large-capacity page spaces in multi-user, multi-scenario applications.
[0017] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description
[0018] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0019] Figure 1 This is a schematic diagram of a slanted cross code or a diagonal cross code provided by the present invention;
[0020] Figure 2 A schematic diagram illustrating the arrangement of information point codes that interfere with positioning point codes, as provided by this invention.
[0021] Figure 3 This is a schematic diagram of single-point code encoding provided by the present invention;
[0022] Figure 4 This is a schematic diagram of the double-dot code encoding provided by the present invention. Detailed Implementation
[0023] In the description of this invention, it should be understood that the terms "center," "longitudinal," "lateral," "length," "width," "thickness," "upper," "lower," "front," "rear," "left," "right," "vertical," "horizontal," "top," "bottom," "inner," "outer," "clockwise," and "counterclockwise," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are only for the convenience of describing this invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this invention.
[0024] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this invention, "a plurality of" means two or more, unless otherwise explicitly specified.
[0025] In this invention, unless otherwise explicitly specified and limited, the terms "installation," "connection," "linking," and "fixing," etc., should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral connection; they can refer to a mechanical connection or an electrical connection; they can refer to a direct connection or an indirect connection through an intermediate medium; and they can refer to the internal connection of two components. Those skilled in the art can understand the specific meaning of the above terms in this invention according to the specific circumstances.
[0026] Please see Figure 1 The present invention provides a dot matrix code, comprising:
[0027] At least one dot code unit, the dot code unit comprising multiple blocks; wherein each block represents a coded value through an arrangement of upright crosses or diagonal crosses;
[0028] The dotted code unit consists of a 4x4 grid, including four 2x2 blocks, designated as block A. Block B Block C and Block D, Each 2x2 block contains at least one black dot code. The four positions of the dot code are arranged to form a regular cross "+" or a diagonal cross "X", which are called dot code pattern codes, with code values of 0 and 1 respectively. Within each cell, the code value is 0-3 depending on the position of the dot code. Two blocks out of the four blocks are used to represent coordinate information, and one of the four blocks has a different position arrangement than the other three blocks.
[0029] It should be noted that the blocks with different positions are used to represent the arrangement direction of the dot code. They must be in the pattern of 1 "+" 3 "X", or 3 "X" 1 "+" (without rotational symmetry) so that the orientation of the dot code image can be determined when the dot matrix pen is rotated.
[0030] The principles of the present invention will be further explained below with reference to specific embodiments:
[0031] For a coding unit consisting of a 4x4 grid, it is as follows:
[0032] <![CDATA[a 00 ]]> <![CDATA[a 01 ]]> <![CDATA[a 02 ]]> <![CDATA[a 03 ]]> <![CDATA[a 10 ]]> <![CDATA[a 11 ]]> <![CDATA[a 12 ]]> <![CDATA[a 13 ]]> <![CDATA[a 20 ]]> <![CDATA[a 21 ]]> <![CDATA[a 22 ]]> <![CDATA[a 23 ]]> <![CDATA[a 30 ]]> <![CDATA[a 31 ]]> <![CDATA[a 32 ]]> <![CDATA[a 33 ]]>
[0033] Divide it into four 2x2 blocks, labeled A, B, C, and D. , , , .
[0034] Where a ijThe encoding value is 0-3. Since the position of each dot code is in a regular cross (represented by 0) or a diagonal cross (represented by 1), its corresponding pattern code is 0 or 1.
[0035] The coordinate encoding uses two blocks, A and C, namely:
[0036] X=a 00 +a 10 *4+a 20 *16+a 30 *64
[0037] Y=a 01 +a 11 *4+a 21 *16+a 31 *64
[0038] Coordinate encoding does not utilize pattern-coded values, but it must ensure that a 00 It is a regular cross, and it is a 01 a 10 a 11 It is a diagonal cross.
[0039] Referring to Table 1, the left side shows the pattern arrangement of each value, and the right side shows the pattern encoding value corresponding to each block.
[0040] Table 1
[0041] <![CDATA[a 13 a 12 a 03 a 02 a 33 a 32 a 23 a 22 a 31 a 30 a 21 a 20 ]]> Corresponding binary value Block mode encoding value b; Block mode encoding value d; Block mode encoding value c ++++ 0 0 +++x 1 1 ++x+ 2 2 ++xx 3 3 +x++ 4 4 +x+x 5 5 +xx+ 6 6 x+++ 8 7 x++x 9 8 x+x+ 10 9 xx++ 12 10 xxxx 15 11
[0042] The pattern values in the three blocks avoid using a single "+" and three "X" forms. This is to avoid confusion with blocks representing direction. The total page number value can be calculated as follows:
[0043] page0= a 02 +a 03 *4+a 12 *16+a 13 *64 + 256*b = pageb + 256*b
[0044] page1= a 22 +a 23 *4+a 32 *16+a 33 *64+256*d=paged+256*d
[0045] page2=c
[0046] Here, pageb and paged represent the actual encoded page number values (excluding pattern encoding) of the dot code in blocks B and D, respectively. The actual encoded dot code value of page2 is used to calculate the X and Y coordinates, so it cannot be used to calculate the page number, but its dot code pattern value c can be used.
[0047] The actual page number is calculated as follows:
[0048] page=page0+page1*PAGE_B+page2*PAGE_B*PAGE_D
[0049] PAGE_B is the maximum number of pages that block B can encode. PAGE_B = 256 + 256 * 11 = 3072
[0050] PAGE_D is the maximum number of pages that block D can encode. PABE_D = (256 + 256 * 11) * PAGE_B = 3072 * 3072 = 9437184
[0051] The total page number encoding is PAGE_C=12*9437184=113246208. Methods to further expand the page number will be proposed later.
[0052] During encoding, based on the page number value, an actual dot code arrangement is determined. The values of b, d, and c are calculated, and then the corresponding binary values are looked up in a table and encoded into the actual pattern. The specific method is as follows:
[0053] 1. Divide the 4x4 dot code unit into four 2x2 blocks A, B, C, and D.
[0054] 2. Calculate the maximum page number value that each block, excluding the first block A, can represent. These values will vary depending on the encoding mode chosen for each block. (See the table above for an example.)
[0055] Block B contains the lowest page number. The maximum page number value for block B is PAGE_B = 256 + 256 * 11 = 3072.
[0056] Block D contains the median page number value. The maximum page number value in block D is PABE_D = (256 + 256 * 11) * PAGE_B = 3072 * 3072 = 9437184.
[0057] Block C contains the high-order bits of the page number value, with all page numbers being PAGE_C. A method to increase the page number space will be discussed later.
[0058] 3. Give an arbitrary value for page that is less than PAGE_C.
[0059] 4. Use the following method to obtain the actual values of b, d, c, and their corresponding page numbers.
[0060] c=page / PAGE_D
[0061] d=(page%PAGE_D) / PAGE_B
[0062] b=((page%PAGE_D)%PAGE_B) / 256
[0063] The actual page number value (actual dot value) is calculated as follows:
[0064] First, calculate the page number value for each block.
[0065] The page number value of block D is paged = ((page%PAGE_D)%PAGE_B)%256
[0066] a 33 =paged / 64, a 32 =(paged%64) / 16, a 23 =((paged%64)%16) / 4, a 22 =paged%4
[0067] The page number value of block B is pageb = page%256
[0068] a 13 =pageb / 64, a 12 =(pageb%64) / 16, a 03 =((pageb%64)%16) / 4, a 02 =pageb%4
[0069] In the above calculation formulas, " / " indicates integer division and "%" indicates taking the remainder.
[0070] 5. Based on the values of b, c, and d, the corresponding dot pattern arrangement can be found in the table.
[0071] 6. Based on the actual page number value and dot code pattern of each block, the dot codes can be encoded.
[0072] During decoding, the process is the opposite of the encoding method described above. First, the dot code pattern value and the actual page number value of each block are calculated using the encoded value. Then, the corresponding b, d, and c values are obtained based on the dot code pattern. Finally, the page number value is obtained using the page number calculation formula.
[0073] Example 1
[0074] Objective: To avoid interference between information point codes and location point codes.
[0075] like Figure 2 As shown, when applying the page number encoding method described above, it is possible for all dot codes in a certain row or column to have the same dot code pattern (both even or odd cells) and the same dot code value. In this case, the arrangement of the information dots is completely consistent with the positioning dots in that direction. This will interfere with the dot code decoding algorithm.
[0076] To avoid this arrangement pattern, the arrangement of sections B, C, and D can be modified.
[0077] Table 3
[0078] <![CDATA[a 13 a 12 a 03 a 02 ]]> Corresponding binary value b value ++++ 0 0 +++x 1 1 ++x+ 2 2 ++xx 3 3 +x++ 4 4 +x+x 5 5 +xx+ 6 6 x+++ 8 7 x++x 9 8 x+x+ 10 9
[0079] Table 4
[0080] <![CDATA[a 31 a 30 a 21 a 20 ]]> Corresponding binary value c value ++++ 0 0 +++x 1 1 ++x+ 2 2 ++xx 3 3 +x++ 4 4 +x+x 5 5 +xx+ 6 6 x+++ 8 7 x++x 9 8 xx++ 12 9
[0081] Table 5
[0082] <![CDATA[a 33 a 32 a 23 a 22 ]]> Corresponding binary value d value +xx+ 6 0 x++x 9 1
[0083] This arrangement avoids the situation where no row or column within the dot code unit will have the same pattern of information dot codes, thus eliminating the possibility of information dot codes appearing completely identically in rows and columns. This ensures that the decoding algorithm is not affected by the arrangement of information codes when searching for and locating dot codes.
[0084] Besides the above examples, there are other arrangements of b, c, d values that can satisfy the above requirements, all of which are within the scope of the method of this invention.
[0085] Example 2
[0086] Page number encoding space refers to the size of the page number encoding range. Dot matrix encoding technology has practical characteristics. In addition to simple encoding arrangement and low decoding error, it also needs a sufficiently large page number encoding space to meet the needs of a large number of users.
[0087] To increase the page number encoding space, this invention proposes a double dot code.
[0088] Figure 3 This is a diagram of single-point code encoding. The top row is a diagonal cross code with values from 0 to 3, and the bottom row is a regular cross code with values from 0 to 3.
[0089] The double-dot code is encoded as follows: Adding a dot to a grid results in two black dots in the grid. The encoded value is as follows: Figure 4 As shown.
[0090] Double dot codes do not change the decoded value of the dot code, nor do they change the dot code pattern; their only function is to increase the encoding space for page numbers.
[0091] To avoid affecting coordinate decoding, double dot codes can be added only to the page number area, specifically to the B and D areas of the dot code unit, which total 8 cells. Based on the global double dot code, and assuming the original single dot code's encoding space is K, a double dot code can increase the value of K by 8 times.
[0092] Depending on the needs, two or more double-dot codes can be added to the page number encoding area. Assuming two double-dot codes are used, the number of double-dot codes can be increased based on their arrangement. =28 times.
[0093] According to specific embodiments provided by the present invention, the present invention discloses the following technical effects:
[0094] This invention effectively "disperses" the information dot codes, avoiding consistency in the horizontal / vertical directions, thus clearly distinguishing them from neatly arranged positioning dots and improving the decoding rate of the dot codes. Furthermore, by using dual dot code encoding, the overall page space can be significantly increased, meeting the needs of multi-user, multi-scenario applications requiring large-capacity page spaces.
[0095] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in the present invention should be included within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.
Claims
1. A dot matrix code, characterized in that, include: At least one dotted code unit, the dotted code unit being composed of a 4x4 grid, including four 2x2 blocks, designated as block A. Block B Block C and Block D, Each 2x2 grid contains at least one black dot code. The four positions of the dot codes are arranged to form a cross "+" or a diagonal cross "X". The dot code in each grid is encoded as 0-3 according to its position. Two of the four blocks are used to represent coordinate information, and one of the four blocks has a different position arrangement than the other three blocks.
2. The dot matrix code according to claim 1, characterized in that, Coordinate encoding uses blocks A and C, namely: X=a 00 +a 10 *4+a 20 *16+a 30 *64,Y=a 01 +a 11 *4+a 21 *16+a 31 *64。 3. A dot matrix code according to claim 1, characterized in that, a 00 The dot code in the image is arranged in a regular cross pattern, a 01 a 10 a 11 The dot codes are arranged in a diagonal cross pattern. The dot codes in blocks B, C, and D do not use a single upright cross or three diagonal crosses.
4. A dot matrix code according to claim 1, characterized in that, The dot code a in block B 13 a 12 a 03 a 02 There are 10 possible arrangements: ++++, +++x, ++x+, ++xx, +x++, +x+x, +xx+, x+++, x++x, and x+x+.
5. A dot matrix code according to claim 1, characterized in that, The dot code a in block C 31 a 30 a 21 a 20 There are 10 possible arrangements: ++++, +++x, +++x+, ++xx, +x++, +x+x, +xx+, x+++, x++x, and xx++.
6. A dot matrix code according to claim 1, characterized in that, The dot code a in block D 33 a 32 a 23 a 22 There are two possible arrangements: +xx+ and x++x.
7. A dot matrix code according to any one of claims 4 and 6, characterized in that, Blocks B and D each contain a 2x2 grid with two black dot codes.
