Removed DMRE Format 12x48 as it requires special placement algorithm

This commit is contained in:
Harald Oehlmann 2015-08-18 14:54:01 +02:00
parent b7f9a7a6e4
commit 216eb6c993
3 changed files with 77 additions and 112 deletions

View File

@ -66,7 +66,7 @@ static void ecc200placementbit(int *array, int NR, int NC, int r, int c, int p,
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr,"r >= NR:%i,%i at r=%i->",p,b,r); fprintf(stderr,"r >= NR:%i,%i at r=%i->",p,b,r);
#endif #endif
r = r - NR; r -= NR;
#ifdef DEBUG #ifdef DEBUG
fprintf(stderr,"%i,c=%i\n",r,c); fprintf(stderr,"%i,c=%i\n",r,c);
#endif #endif
@ -874,8 +874,9 @@ int dm200encode_remainder(unsigned char target[], int target_length, unsigned ch
if(debug) if(debug)
{ {
int i;
printf("\n\n"); printf("\n\n");
for(int i = 0; i < target_length; i++) for(i = 0; i < target_length; i++)
printf("%03d ", target[i]); printf("%03d ", target[i]);
printf("\n"); printf("\n");
@ -916,6 +917,7 @@ int data_matrix_200(struct zint_symbol *symbol, unsigned char source[], int leng
int H, W, FH, FW, datablock, bytes, rsblock; int H, W, FH, FW, datablock, bytes, rsblock;
int last_mode; int last_mode;
unsigned char *grid = 0; unsigned char *grid = 0;
int symbols_left;
inputlen = length; inputlen = length;
binlen = dm200encode(symbol, source, binary, &last_mode, inputlen, process_buffer, &process_p); binlen = dm200encode(symbol, source, binary, &last_mode, inputlen, process_buffer, &process_p);
@ -939,40 +941,10 @@ int data_matrix_200(struct zint_symbol *symbol, unsigned char source[], int leng
} }
} }
if(symbol->option_3 == DM_SQUARE) { /* Skip rectangular symbols in square only mode */
/* Force to use square symbol */ while(symbol->option_3 == DM_SQUARE && matrixH[calcsize] != matrixW[calcsize]) {
switch(calcsize) {
/* Without DMRE
case 2:
case 4:
case 6:
case 9:
case 11:
case 14:
*/
case 2:
case 4:
case 6:
case 8:
case 9:
case 10:
case 11:
case 13:
case 14:
case 16:
case 18:
case 19:
case 20:
case 21:
case 23:
case 24:
case 25:
case 27:
case 28:
case 30:
calcsize++; calcsize++;
} }
}
symbolsize = optionsize; symbolsize = optionsize;
if(calcsize > optionsize) { if(calcsize > optionsize) {
@ -985,7 +957,7 @@ int data_matrix_200(struct zint_symbol *symbol, unsigned char source[], int leng
} }
// Now we know the symbol size we can handle the remaining data in the process buffer. // Now we know the symbol size we can handle the remaining data in the process buffer.
int symbols_left = matrixbytes[symbolsize] - binlen; symbols_left = matrixbytes[symbolsize] - binlen;
binlen = dm200encode_remainder(binary, binlen, source, inputlen, last_mode, process_buffer, process_p, symbols_left); binlen = dm200encode_remainder(binary, binlen, source, inputlen, last_mode, process_buffer, process_p, symbols_left);
H = matrixH[symbolsize]; H = matrixH[symbolsize];

View File

@ -60,8 +60,6 @@ extern int data_matrix_200(struct zint_symbol *symbol, unsigned char source[], i
#define DM_EDIFACT 5 #define DM_EDIFACT 5
#define DM_BASE256 6 #define DM_BASE256 6
#define DM_SYMBOL_OPTION_MAX 43
static const int c40_shift[] = { static const int c40_shift[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -90,23 +88,23 @@ static const int text_value[] = {
// The position in the option array is by increasing total data codewords with square first // The position in the option array is by increasing total data codewords with square first
static const int intsymbol[] = { static const int intsymbol[] = {
0, /* 1: 10x10 , 3*/ 1, /* 2: 12x12 , 5*/ 3, /* 3: 14x14 , 8*/ 5, // 4: 16x16 , 12 0, /* 1: 10x10 , 3*/ 1, /* 2: 12x12 , 5*/ 3, /* 3: 14x14 , 8*/ 5, /* 4: 16x16 , 12*/
7, /* 5: 18x18 , 18*/ 9, /* 6: 20x20 , 22*/ 12, /* 7: 22x22 , 30*/ 15, // 8: 24x24 , 36 7, /* 5: 18x18 , 18*/ 9, /* 6: 20x20 , 22*/ 12, /* 7: 22x22 , 30*/ 14, /* 8: 24x24 , 36*/
17, /* 9: 26x26 , 44*/ 22, /* 10: 32x32 , 62*/ 26, /* 11: 36x36 , 86*/ 29, // 12: 40x40 ,114 16, /* 9: 26x26 , 44*/ 21, /* 10: 32x32 , 62*/ 25, /* 11: 36x36 , 86*/ 28, /* 12: 40x40 ,114*/
31, /* 13: 44x44 ,144*/ 32, /* 14: 48x48 ,174*/ 33, /* 15: 52x52 ,204*/ 34, // 16: 64x64 ,280 30, /* 13: 44x44 ,144*/ 31, /* 14: 48x48 ,174*/ 32, /* 15: 52x52 ,204*/ 33, /* 16: 64x64 ,280*/
35, /* 17: 72x72 ,368*/ 36, /* 18: 80x80 ,456*/ 37, /* 19: 88x88 ,576*/ 38, // 20: 96x96 ,696 34, /* 17: 72x72 ,368*/ 35, /* 18: 80x80 ,456*/ 36, /* 19: 88x88 ,576*/ 37, /* 20: 96x96 ,696*/
39, /* 21:104x104,816*/ 40, /* 22:120x120,1050*/41, /* 23:132x132,1304*/42, // 24:144x144,1558 38, /* 21:104x104,816*/ 39, /* 22:120x120,1050*/40, /* 23:132x132,1304*/41, /* 24:144x144,1558*/
2, /* 25: 8x18 , 5*/ 4, /* 26: 8x32 , 10*/ 6, /* 27: 12x26 , 16*/ 10, // 28: 12x36 , 22 2, /* 25: 8x18 , 5*/ 4, /* 26: 8x32 , 10*/ 6, /* 27: 12x26 , 16*/ 10, /* 28: 12x36 , 22*/
13, /* 29: 16x36 , 32*/ 18, /* 30: 16x48 , 49*/ 8, /* 31: 8x48 , 18*/ 11, // 32: 8x64 , 24 13, /* 29: 16x36 , 32*/ 17, /* 30: 16x48 , 49*/ 8, /* 31: 8x48 , 18*/ 11, /* 32: 8x64 , 24*/
14, /* 33: 12x48 , 32*/ 16, /* 34: 12x64 , 43*/ 23, /* 35: 16x64 , 62*/ 19, // 36: 24x32 , 49 15, /* 33: 12x64 , 43*/ 22, /* 34: 16x64 , 62*/ 18, /* 35: 24x32 , 49*/ 20, /* 36: 24x36 , 55*/
21, /* 37: 24x36 , 55*/ 25, /* 38: 24x48 , 80*/ 28, /* 39: 24x64 ,108*/ 20, // 40: 26x32 , 52 24, /* 37: 24x48 , 80*/ 27, /* 38: 24x64 ,108*/ 19, /* 39: 26x32 , 52*/ 23, /* 40: 26x40 , 70*/
24, /* 41: 26x40 , 70*/ 27, /* 42: 26x48 , 90*/ 30, /* 43: 26x64 ,118*/ 26, /* 41: 26x48 , 90*/ 29, /* 42: 26x64 ,118*/
0 }; 0 };
// Number of DM Sizes // Number of DM Sizes
#define DMSIZESCOUNT 44 #define DMSIZESCOUNT 42
// Number of 144x144 for special interlace // Number of 144x144 for special interlace
#define INTSYMBOL144 42 #define INTSYMBOL144 41
// Horizontal matrix size // Horizontal matrix size
@ -114,14 +112,14 @@ static const int matrixH[] = {
/*0*/ 10, /* 10x10 ,3 */ 12, /* 12x12 ,5 */ 8, /* 8x18 ,5 */ 14, /* 14x14 , 8 */ /*0*/ 10, /* 10x10 ,3 */ 12, /* 12x12 ,5 */ 8, /* 8x18 ,5 */ 14, /* 14x14 , 8 */
/*4*/ 8, /* 8x32 ,10 */ 16, /* 16x16 ,12 */ 12, /* 12x26 ,16 */ 18, /* 18x18 ,18 */ /*4*/ 8, /* 8x32 ,10 */ 16, /* 16x16 ,12 */ 12, /* 12x26 ,16 */ 18, /* 18x18 ,18 */
/*8*/ 8, /* 8x48 ,18 */ 20, /* 20x20 ,22 */ 12, /* 12x36 ,22 */ 8, /* 8x64 ,24 */ /*8*/ 8, /* 8x48 ,18 */ 20, /* 20x20 ,22 */ 12, /* 12x36 ,22 */ 8, /* 8x64 ,24 */
/*12*/ 22, /* 22x22 ,30 */ 16, /* 16x36 ,32 */ 12, /* 12x48 ,32 */ 24, /* 24x24 ,36 */ /*12*/ 22, /* 22x22 ,30 */ 16, /* 16x36 ,32 */ 24, /* 24x24 ,36 */ 12, /* 12x64 ,43 */
/*16*/ 12, /* 12x64 ,43 */ 26, /* 26x26 ,44 */ 16, /* 16x48 ,49 */ 24, /* 24x32 ,49 */ /*16*/ 26, /* 26x26 ,44 */ 16, /* 16x48 ,49 */ 24, /* 24x32 ,49 */ 26, /* 26x32 ,52 */
/*20*/ 26, /* 26x32 ,52 */ 24, /* 24x36 ,55 */ 32, /* 32x32 ,62 */ 16, /* 16x64 ,62 */ /*20*/ 24, /* 24x36 ,55 */ 32, /* 32x32 ,62 */ 16, /* 16x64 ,62 */ 26, /* 26x40 ,70 */
/*24*/ 26, /* 26x40 ,70 */ 24, /* 24x48 ,80 */ 36, /* 36x36 ,86 */ 26, /* 26x48 ,90 */ /*24*/ 24, /* 24x48 ,80 */ 36, /* 36x36 ,86 */ 26, /* 26x48 ,90 */ 24, /* 24x64 ,108*/
/*28*/ 24, /* 24x64 ,108*/ 40, /* 40x40 ,114*/ 26, /* 26x64 ,118*/ 44, /* 44x44 ,144*/ /*28*/ 40, /* 40x40 ,114*/ 26, /* 26x64 ,118*/ 44, /* 44x44 ,144*/ 48, /* 48x48,174 */
/*32*/ 48, /* 48x48,174 */ 52, /* 52x52,204 */ 64, /* 64x64,280 */ 72, /* 72x72,368 */ /*32*/ 52, /* 52x52,204 */ 64, /* 64x64,280 */ 72, /* 72x72,368 */ 80, /* 80x80,456 */
/*36*/ 80, /* 80x80,456 */ 88, /* 88x88,576 */ 96, /* 96x96,696 */ 104,/*104x104,816*/ /*36*/ 88, /* 88x88,576 */ 96, /* 96x96,696 */ 104,/*104x104,816*/ 120,/*120x120,1050*/
/*40*/ 120,/*120x120,1050*/132,/*132x132,1304*/144/*144x144,1558*/ /*40*/ 132,/*132x132,1304*/144/*144x144,1558*/
}; };
// Vertical matrix sizes // Vertical matrix sizes
@ -130,14 +128,14 @@ static const int matrixW[] = {
/*0*/ 10, /* 10x10 */ 12, /* 12x12 */ 18, /* 8x18 */ 14, /* 14x14 */ /*0*/ 10, /* 10x10 */ 12, /* 12x12 */ 18, /* 8x18 */ 14, /* 14x14 */
/*4*/ 32, /* 8x32 */ 16, /* 16x16 */ 26, /* 12x26 */ 18, /* 18x18 */ /*4*/ 32, /* 8x32 */ 16, /* 16x16 */ 26, /* 12x26 */ 18, /* 18x18 */
/*8*/ 48, /* 8x48 */ 20, /* 20x20 */ 36, /* 12x36 */ 64, /* 8x64 */ /*8*/ 48, /* 8x48 */ 20, /* 20x20 */ 36, /* 12x36 */ 64, /* 8x64 */
/*12*/ 22, /* 22x22 */ 36, /* 16x36 */ 48, /* 12x48 */ 24, /* 24x24 */ /*12*/ 22, /* 22x22 */ 36, /* 16x36 */ 24, /* 24x24 */ 64, /* 12x64 */
/*16*/ 64, /* 12x64 */ 26, /* 26x26 */ 48, /* 16x48 */ 32, /* 24x32 */ /*16*/ 26, /* 26x26 */ 48, /* 16x48 */ 32, /* 24x32 */ 32, /* 26x32 */
/*20*/ 32, /* 26x32 */ 36, /* 24x36 */ 32, /* 32x32 */ 64, /* 16x64 */ /*20*/ 36, /* 24x36 */ 32, /* 32x32 */ 64, /* 16x64 */ 40, /* 26x40 */
/*24*/ 40, /* 26x40 */ 48, /* 24x48 */ 36, /* 36x36 */ 48, /* 26x48 */ /*24*/ 48, /* 24x48 */ 36, /* 36x36 */ 48, /* 26x48 */ 64, /* 24x64 */
/*28*/ 64, /* 24x64 */ 40, /* 40x40 */ 64, /* 26x64 */ 44, /* 44x44 */ /*28*/ 40, /* 40x40 */ 64, /* 26x64 */ 44, /* 44x44 */ 48, /* 48x48 */
/*32*/ 48, /* 48x48 */ 52, /* 52x52 */ 64, /* 64x64 */ 72, /* 72x72 */ /*32*/ 52, /* 52x52 */ 64, /* 64x64 */ 72, /* 72x72 */ 80, /* 80x80 */
/*36*/ 80, /* 80x80 */ 88, /* 88x88 */ 96, /* 96x96 */ 104,/* 104x104 */ /*36*/ 88, /* 88x88 */ 96, /* 96x96 */ 104,/*104x104*/ 120,/*120x120*/
/*40*/ 120,/*120x120*/ 132,/*132x132*/ 144 /*144x144*/ /*40*/ 132,/*132x132*/ 144 /*144x144*/
}; };
// Horizontal submodule size (including subfinder) // Horizontal submodule size (including subfinder)
@ -146,14 +144,14 @@ static const int matrixFH[] = {
/*0*/ 10, /* 10x10 */ 12, /* 12x12 */ 8, /* 8x18 */ 14, /* 14x14 */ /*0*/ 10, /* 10x10 */ 12, /* 12x12 */ 8, /* 8x18 */ 14, /* 14x14 */
/*4*/ 8, /* 8x32 */ 16, /* 16x16 */ 12, /* 12x26 */ 18, /* 18x18 */ /*4*/ 8, /* 8x32 */ 16, /* 16x16 */ 12, /* 12x26 */ 18, /* 18x18 */
/*8*/ 8, /* 8x48 */ 20, /* 20x20 */ 12, /* 12x36 */ 8, /* 8x64 */ /*8*/ 8, /* 8x48 */ 20, /* 20x20 */ 12, /* 12x36 */ 8, /* 8x64 */
/*12*/ 22, /* 22x22 */ 16, /* 16x36 */ 12, /* 12x48 */ 24, /* 24x24 */ /*12*/ 22, /* 22x22 */ 16, /* 16x36 */ 24, /* 24x24 */ 12, /* 12x64 */
/*16*/ 12, /* 12x64 */ 26, /* 26x26 */ 16, /* 16x48 */ 24, /* 24x32 */ /*16*/ 26, /* 26x26 */ 16, /* 16x48 */ 24, /* 24x32 */ 26, /* 26x32 */
/*20*/ 26, /* 26x32 */ 24, /* 24x36 */ 16, /* 32x32 */ 16, /* 16x64 */ /*20*/ 24, /* 24x36 */ 16, /* 32x32 */ 16, /* 16x64 */ 26, /* 26x40 */
/*24*/ 26, /* 26x40 */ 24, /* 24x48 */ 18, /* 36x36 */ 26, /* 26x48 */ /*24*/ 24, /* 24x48 */ 18, /* 36x36 */ 26, /* 26x48 */ 24, /* 24x64 */
/*28*/ 24, /* 24x64 */ 20, /* 40x40 */ 26, /* 26x64 */ 22, /* 44x44 */ /*28*/ 20, /* 40x40 */ 26, /* 26x64 */ 22, /* 44x44 */ 24, /* 48x48 */
/*32*/ 24, /* 48x48 */ 26, /* 52x52 */ 16, /* 64x64 */ 18, /* 72x72 */ /*32*/ 26, /* 52x52 */ 16, /* 64x64 */ 18, /* 72x72 */ 20, /* 80x80 */
/*36*/ 20, /* 80x80 */ 22, /* 88x88 */ 24, /* 96x96 */ 26, /*104x104*/ /*36*/ 22, /* 88x88 */ 24, /* 96x96 */ 26, /*104x104*/ 20, /*120x120*/
/*40*/ 20, /*120x120*/ 22, /*132x132*/ 24 /*144x144*/ /*40*/ 22, /*132x132*/ 24 /*144x144*/
}; };
// Vertical submodule size (including subfinder) // Vertical submodule size (including subfinder)
@ -162,14 +160,14 @@ static const int matrixFW[] = {
/*0*/ 10, /* 10x10 */ 12, /* 12x12 */ 18, /* 8x18 */ 14, /* 14x14 */ /*0*/ 10, /* 10x10 */ 12, /* 12x12 */ 18, /* 8x18 */ 14, /* 14x14 */
/*4*/ 16, /* 8x32 */ 16, /* 16x16 */ 26, /* 12x26 */ 18, /* 18x18 */ /*4*/ 16, /* 8x32 */ 16, /* 16x16 */ 26, /* 12x26 */ 18, /* 18x18 */
/*8*/ 24, /* 8x48 */ 20, /* 20x20 */ 18, /* 12x36 */ 16, /* 8x64 */ /*8*/ 24, /* 8x48 */ 20, /* 20x20 */ 18, /* 12x36 */ 16, /* 8x64 */
/*12*/ 22, /* 22x22 */ 18, /* 16x36 */ 24, /* 12x48 */ 24, /* 24x24 */ /*12*/ 22, /* 22x22 */ 18, /* 16x36 */ 24, /* 24x24 */ 16, /* 12x64 */
/*16*/ 16, /* 12x64 */ 26, /* 26x26 */ 24, /* 16x48 */ 16, /* 24x32 */ /*16*/ 26, /* 26x26 */ 24, /* 16x48 */ 16, /* 24x32 */ 16, /* 26x32 */
/*20*/ 16, /* 26x32 */ 18, /* 24x36 */ 16, /* 32x32 */ 16, /* 16x64 */ /*20*/ 18, /* 24x36 */ 16, /* 32x32 */ 16, /* 16x64 */ 20, /* 26x40 */
/*24*/ 20, /* 26x40 */ 24, /* 24x48 */ 18, /* 36x36 */ 24, /* 26x48 */ /*24*/ 24, /* 24x48 */ 18, /* 36x36 */ 24, /* 26x48 */ 16, /* 24x64 */
/*28*/ 16, /* 24x64 */ 20, /* 40x40 */ 16, /* 26x64 */ 22, /* 44x44 */ /*28*/ 20, /* 40x40 */ 16, /* 26x64 */ 22, /* 44x44 */ 24, /* 48x48 */
/*32*/ 24, /* 48x48 */ 26, /* 52x52 */ 16, /* 64x64 */ 18, /* 72x72 */ /*32*/ 26, /* 52x52 */ 16, /* 64x64 */ 18, /* 72x72 */ 20, /* 80x80 */
/*36*/ 20, /* 80x80 */ 22, /* 88x88 */ 24, /* 96x96 */ 26, /*104x104*/ /*36*/ 22, /* 88x88 */ 24, /* 96x96 */ 26, /*104x104*/ 20, /*120x120*/
/*40*/ 20, /*120x120*/ 22, /*132x132*/ 24 /*144x144*/ /*40*/ 22, /*132x132*/ 24 /*144x144*/
}; };
// Total Data Codewords // Total Data Codewords
@ -178,14 +176,14 @@ static const int matrixbytes[] = {
/*0*/ 3, /* 10x10 */ 5, /* 12x12 */ 5, /* 8x18 */ 8, /* 14x14 */ /*0*/ 3, /* 10x10 */ 5, /* 12x12 */ 5, /* 8x18 */ 8, /* 14x14 */
/*4*/ 10, /* 8x32 */ 12, /* 16x16 */ 16, /* 12x26 */ 18, /* 18x18 */ /*4*/ 10, /* 8x32 */ 12, /* 16x16 */ 16, /* 12x26 */ 18, /* 18x18 */
/*8*/ 18, /* 8x48 */ 22, /* 20x20 */ 22, /* 12x36 */ 24, /* 8x64 */ /*8*/ 18, /* 8x48 */ 22, /* 20x20 */ 22, /* 12x36 */ 24, /* 8x64 */
/*12*/ 30, /* 22x22 */ 32, /* 16x36 */ 32, /* 12x48 */ 36, /* 24x24 */ /*12*/ 30, /* 22x22 */ 32, /* 16x36 */ 36, /* 24x24 */ 43, /* 12x64 */
/*16*/ 43, /* 12x64 */ 44, /* 26x26 */ 49, /* 16x48 */ 49, /* 24x32 */ /*16*/ 44, /* 26x26 */ 49, /* 16x48 */ 49, /* 24x32 */ 52, /* 26x32 */
/*20*/ 52, /* 26x32 */ 55, /* 24x36 */ 62, /* 32x32 */ 62, /* 16x64 */ /*20*/ 55, /* 24x36 */ 62, /* 32x32 */ 62, /* 16x64 */ 70, /* 26x40 */
/*24*/ 70, /* 26x40 */ 80, /* 24x48 */ 86, /* 36x36 */ 90, /* 26x48 */ /*24*/ 80, /* 24x48 */ 86, /* 36x36 */ 90, /* 26x48 */ 108, /* 24x64 */
/*28*/ 108, /* 24x64 */ 114, /* 40x40 */ 118, /* 26x64 */ 144, /* 44x44 */ /*28*/ 114, /* 40x40 */ 118, /* 26x64 */ 144, /* 44x44 */ 174, /* 48x48 */
/*32*/ 174, /* 48x48 */ 204, /* 52x52 */ 280, /* 64x64 */ 368, /* 72x72 */ /*32*/ 204, /* 52x52 */ 280, /* 64x64 */ 368, /* 72x72 */ 456, /* 80x80 */
/*36*/ 456, /* 80x80 */ 576, /* 88x88 */ 696, /* 96x96 */ 816, /*104x104*/ /*36*/ 576, /* 88x88 */ 696, /* 96x96 */ 816, /*104x104*/ 1050, /*120x120*/
/*40*/ 1050, /*120x120*/ 1304, /*132x132*/ 1558 /*144x144*/ /*40*/ 1304, /*132x132*/ 1558 /*144x144*/
}; };
// Data Codewords per RS-Block // Data Codewords per RS-Block
@ -194,14 +192,14 @@ static const int matrixdatablock[] = {
/*0*/ 3, /* 10x10 */ 5, /* 12x12 */ 5, /* 8x18 */ 8, /* 14x14 */ /*0*/ 3, /* 10x10 */ 5, /* 12x12 */ 5, /* 8x18 */ 8, /* 14x14 */
/*4*/ 10, /* 8x32 */ 12, /* 16x16 */ 16, /* 12x26 */ 18, /* 18x18 */ /*4*/ 10, /* 8x32 */ 12, /* 16x16 */ 16, /* 12x26 */ 18, /* 18x18 */
/*8*/ 18, /* 8x48 */ 22, /* 20x20 */ 22, /* 12x36 */ 24, /* 8x64 */ /*8*/ 18, /* 8x48 */ 22, /* 20x20 */ 22, /* 12x36 */ 24, /* 8x64 */
/*12*/ 30, /* 22x22 */ 32, /* 16x36 */ 32, /* 12x48 */ 36, /* 24x24 */ /*12*/ 30, /* 22x22 */ 32, /* 16x36 */ 36, /* 24x24 */ 43, /* 12x64 */
/*16*/ 43, /* 12x64 */ 44, /* 26x26 */ 49, /* 16x48 */ 49, /* 24x32 */ /*16*/ 44, /* 26x26 */ 49, /* 16x48 */ 49, /* 24x32 */ 52, /* 26x32 */
/*20*/ 52, /* 26x32 */ 55, /* 24x36 */ 62, /* 32x32 */ 62, /* 16x64 */ /*20*/ 55, /* 24x36 */ 62, /* 32x32 */ 62, /* 16x64 */ 70, /* 26x40 */
/*24*/ 70, /* 26x40 */ 80, /* 24x48 */ 86, /* 36x36 */ 90, /* 26x48 */ /*24*/ 80, /* 24x48 */ 86, /* 36x36 */ 90, /* 26x48 */ 108,/* 24x64 */
/*28*/ 108,/* 24x64 */ 114,/* 40x40 */ 118,/* 26x64 */ 144,/* 44x44 */ /*28*/ 114,/* 40x40 */ 118,/* 26x64 */ 144,/* 44x44 */ 174,/* 48x48 */
/*32*/ 174,/* 48x48 */ 102,/* 52x52 */ 140,/* 64x64 */ 92, /* 72x72 */ /*32*/ 102,/* 52x52 */ 140,/* 64x64 */ 92, /* 72x72 */ 114,/* 80x80 */
/*36*/ 114,/* 80x80 */ 144,/* 88x88 */ 174,/* 96x96 */ 136,/*104x104*/ /*36*/ 144,/* 88x88 */ 174,/* 96x96 */ 136,/*104x104*/ 175,/*120x120*/
/*40*/ 175,/*120x120*/ 163,/*132x132*/ 156 /*144x144*/ /*40*/ 163,/*132x132*/ 156 /*144x144*/
}; };
// ECC Codewords per RS-Block // ECC Codewords per RS-Block
@ -210,14 +208,14 @@ static const int matrixrsblock[] = {
/*0*/ 5, /* 10x10 */ 7, /* 12x12 */ 7, /* 8x18 */ 10, /* 14x14 */ /*0*/ 5, /* 10x10 */ 7, /* 12x12 */ 7, /* 8x18 */ 10, /* 14x14 */
/*4*/ 11, /* 8x32 */ 12, /* 16x16 */ 14, /* 12x26 */ 14, /* 18x18 */ /*4*/ 11, /* 8x32 */ 12, /* 16x16 */ 14, /* 12x26 */ 14, /* 18x18 */
/*8*/ 15, /* 8x48 */ 18, /* 20x20 */ 18, /* 12x36 */ 18, /* 8x64 */ /*8*/ 15, /* 8x48 */ 18, /* 20x20 */ 18, /* 12x36 */ 18, /* 8x64 */
/*12*/ 20, /* 22x22 */ 24, /* 16x36 */ 23, /* 12x48 */ 24, /* 24x24 */ /*12*/ 20, /* 22x22 */ 24, /* 16x36 */ 24, /* 24x24 */ 27, /* 12x64 */
/*16*/ 27, /* 12x64 */ 28, /* 26x26 */ 28, /* 16x48 */ 28, /* 24x32 */ /*16*/ 28, /* 26x26 */ 28, /* 16x48 */ 28, /* 24x32 */ 32, /* 26x32 */
/*20*/ 32, /* 26x32 */ 33, /* 24x36 */ 36, /* 32x32 */ 36, /* 16x64 */ /*20*/ 33, /* 24x36 */ 36, /* 32x32 */ 36, /* 16x64 */ 38, /* 26x40 */
/*24*/ 38, /* 26x40 */ 41, /* 24x48 */ 42, /* 36x36 */ 42, /* 26x48 */ /*24*/ 41, /* 24x48 */ 42, /* 36x36 */ 42, /* 26x48 */ 46, /* 24x64 */
/*28*/ 46, /* 24x64 */ 48, /* 40x40 */ 50, /* 26x64 */ 56, /* 44x44 */ /*28*/ 48, /* 40x40 */ 50, /* 26x64 */ 56, /* 44x44 */ 68, /* 48x48 */
/*32*/ 68, /* 48x48 */ 42, /* 52x52 */ 56, /* 64x64 */ 36, /* 72x72 */ /*32*/ 42, /* 52x52 */ 56, /* 64x64 */ 36, /* 72x72 */ 48, /* 80x80 */
/*36*/ 48, /* 80x80 */ 56, /* 88x88 */ 68, /* 96x96 */ 56, /*104x104*/ /*36*/ 56, /* 88x88 */ 68, /* 96x96 */ 56, /*104x104*/ 68, /*120x120*/
/*40*/ 68, /*120x120*/ 62, /*132x132*/ 62 /*144x144*/ /*40*/ 62, /*132x132*/ 62 /*144x144*/
}; };
#endif /* __IEC16022ECC200_H */ #endif /* __IEC16022ECC200_H */

View File

@ -217,11 +217,6 @@
<string>8 x 64</string> <string>8 x 64</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>12 x 48</string>
</property>
</item>
<item> <item>
<property name="text"> <property name="text">
<string>12 x 64</string> <string>12 x 64</string>