|
jabcode
|
Data decoding. More...
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include "jabcode.h"#include "detector.h"#include "decoder.h"#include "ldpc.h"#include "encoder.h"Functions | |
| void | copyAndInterpolateSubblockFrom16To32 (jab_byte *palette, jab_int32 dst_offset, jab_int32 src_offset) |
| Copy 16-color sub-blocks of 64-color palette into 32-color blocks of 256-color palette and interpolate into 32 colors. More... | |
| void | interpolatePalette (jab_byte *palette, jab_int32 color_number) |
| Interpolate 64-color palette into 128-/256-color palette. More... | |
| jab_int32 | readColorPaletteInMaster (jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map, jab_int32 *module_count, jab_int32 *x, jab_int32 *y) |
| Read the color palettes in master symbol. More... | |
| jab_int32 | readColorPaletteInSlave (jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map) |
| Read the color palettes in master symbol. More... | |
| jab_byte | decodeModuleHD (jab_byte *palette, jab_int32 color_number, jab_byte r, jab_byte g, jab_byte b) |
| Decode a module using hard decision. More... | |
| jab_byte | decodeModule (jab_byte *palette, jab_int32 color_number, jab_float *ths, jab_float *rp, jab_byte *rgb, jab_float *p) |
| Decode a module using soft decision. More... | |
| jab_boolean | getPaletteThreshold (jab_byte *palette, jab_int32 color_number, jab_float **palette_ths, jab_float **palette_rp) |
| Get the pixel value thresholds and reference points for each channel of the colors in the palette. More... | |
| void | getNextMetadataModuleInMaster (jab_int32 matrix_height, jab_int32 matrix_width, jab_int32 next_module_count, jab_int32 *x, jab_int32 *y) |
| Get the coordinate of the next metadata module in master symbol. More... | |
| jab_int32 | decodeSlaveMetadata (jab_decoded_symbol *host_symbol, jab_int32 docked_position, jab_data *data, jab_int32 offset) |
| Decode slave symbol metadata. More... | |
| jab_int32 | decodeMasterMetadata (jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map) |
| Decode master symbol metadata. More... | |
| jab_data * | readRawModuleData (jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map, jab_float **bits_p) |
| Decode data modules. More... | |
| jab_data * | rawModuleData2RawData (jab_data *raw_module_data, jab_int32 bits_per_module) |
| Convert multi-bit-per-byte raw module data to one-bit-per-byte raw data. More... | |
| void | fillDataMap (jab_byte *data_map, jab_int32 width, jab_int32 height, jab_int32 type) |
| Mark the positions of finder patterns and alignment patterns in the data map. More... | |
| jab_int32 | loadDefaultMasterMetadata (jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map) |
| Load default metadata values and color palettes for master symbol. More... | |
| jab_int32 | decodeSymbol (jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map, jab_int32 type) |
| Decode symbol. More... | |
| jab_int32 | decodeMaster (jab_bitmap *matrix, jab_decoded_symbol *symbol) |
| Decode master symbol. More... | |
| jab_int32 | decodeSlave (jab_bitmap *matrix, jab_decoded_symbol *symbol) |
| Decode slave symbol. More... | |
| jab_int32 | readData (jab_data *data, jab_int32 start, jab_int32 length, jab_int32 *value) |
| Read bit data. More... | |
| jab_data * | decodeData (jab_data *bits) |
| Interpret decoded bits. More... | |
Data decoding.
libjabcode - JABCode Encoding/Decoding Library
Copyright 2016 by Fraunhofer SIT. All rights reserved. See LICENSE file for full terms of use and distribution.
Contact: Huajian Liu liu@sit.fraunhofer.de Waldemar Berchtold waldemar.berchtold@sit.fraunhofer.de
| void copyAndInterpolateSubblockFrom16To32 | ( | jab_byte * | palette, |
| jab_int32 | dst_offset, | ||
| jab_int32 | src_offset | ||
| ) |
Copy 16-color sub-blocks of 64-color palette into 32-color blocks of 256-color palette and interpolate into 32 colors.
| palette | the color palette |
| dst_offset | the start offset in the destination palette |
| src_offset | the start offset in the source palette |
Interpret decoded bits.
| bits | the input bits |
| jab_int32 decodeMaster | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol | ||
| ) |
Decode master symbol.
| matrix | the symbol matrix |
| symbol | the master symbol |
| jab_int32 decodeMasterMetadata | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol, | ||
| jab_byte * | data_map | ||
| ) |
Decode master symbol metadata.
| matrix | the symbol matrix |
| symbol | the master symbol |
| data_map | the data module positions |
| jab_byte decodeModule | ( | jab_byte * | palette, |
| jab_int32 | color_number, | ||
| jab_float * | ths, | ||
| jab_float * | rp, | ||
| jab_byte * | rgb, | ||
| jab_float * | p | ||
| ) |
Decode a module using soft decision.
| palette | the color palette |
| color_number | the number of colors |
| ths | the pixel value thresholds |
| rp | the reference pixel values |
| rgb | the pixel value in RGB format |
| p | the probability of the reliability of the decoded bits |
| jab_byte decodeModuleHD | ( | jab_byte * | palette, |
| jab_int32 | color_number, | ||
| jab_byte | r, | ||
| jab_byte | g, | ||
| jab_byte | b | ||
| ) |
Decode a module using hard decision.
| palette | the color palette |
| color_number | the number of colors |
| r | the red channel value |
| g | the green channel value |
| b | the blue channel value |
| jab_int32 decodeSlave | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol | ||
| ) |
Decode slave symbol.
| matrix | the symbol matrix |
| symbol | the slave symbol |
| jab_int32 decodeSlaveMetadata | ( | jab_decoded_symbol * | host_symbol, |
| jab_int32 | docked_position, | ||
| jab_data * | data, | ||
| jab_int32 | offset | ||
| ) |
Decode slave symbol metadata.
| host_symbol | the host symbol |
| docked_position | the docked position |
| data | the data stream of the host symbol |
| offset | the metadata start offset in the data stream |
| jab_int32 decodeSymbol | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol, | ||
| jab_byte * | data_map, | ||
| jab_int32 | type | ||
| ) |
Decode symbol.
| matrix | the symbol matrix |
| symbol | the symbol to be decoded |
| data_map | the data module positions |
| type | the symbol type, 0: master, 1: slave |
| void fillDataMap | ( | jab_byte * | data_map, |
| jab_int32 | width, | ||
| jab_int32 | height, | ||
| jab_int32 | type | ||
| ) |
Mark the positions of finder patterns and alignment patterns in the data map.
| data_map | the data module positions |
| width | the width of the data map |
| height | the height of the data map |
| type | the symbol type, 0: master, 1: slave |
| void getNextMetadataModuleInMaster | ( | jab_int32 | matrix_height, |
| jab_int32 | matrix_width, | ||
| jab_int32 | next_module_count, | ||
| jab_int32 * | x, | ||
| jab_int32 * | y | ||
| ) |
Get the coordinate of the next metadata module in master symbol.
| matrix_height | the height of the matrix |
| matrix_width | the width of the matrix |
| next_module_count | the index number of the next module |
| x | the x coordinate of the current and the next module |
| y | the y coordinate of the current and the next module |
| jab_boolean getPaletteThreshold | ( | jab_byte * | palette, |
| jab_int32 | color_number, | ||
| jab_float ** | palette_ths, | ||
| jab_float ** | palette_rp | ||
| ) |
Get the pixel value thresholds and reference points for each channel of the colors in the palette.
| palette | the color palette |
| color_number | the number of colors |
| palette_ths | the pixel value thresholds |
| palette_rp | the reference pixel values |
| void interpolatePalette | ( | jab_byte * | palette, |
| jab_int32 | color_number | ||
| ) |
Interpolate 64-color palette into 128-/256-color palette.
| palette | the color palette |
| color_number | the number of colors |
| jab_int32 loadDefaultMasterMetadata | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol, | ||
| jab_byte * | data_map | ||
| ) |
Load default metadata values and color palettes for master symbol.
| matrix | the symbol matrix |
| symbol | the master symbol |
| data_map | the data module positions |
Convert multi-bit-per-byte raw module data to one-bit-per-byte raw data.
| raw_module_data | the input raw module data |
| bits_per_module | the number of bits per module |
| jab_int32 readColorPaletteInMaster | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol, | ||
| jab_byte * | data_map, | ||
| jab_int32 * | module_count, | ||
| jab_int32 * | x, | ||
| jab_int32 * | y | ||
| ) |
Read the color palettes in master symbol.
| matrix | the symbol matrix |
| symbol | the master symbol |
| data_map | the data module positions |
| module_count | the start module index |
| x | the x coordinate of the start module |
| y | the y coordinate of the start module |
| jab_int32 readColorPaletteInSlave | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol, | ||
| jab_byte * | data_map | ||
| ) |
Read the color palettes in master symbol.
| matrix | the symbol matrix |
| symbol | the slave symbol |
| data_map | the data module positions |
| jab_int32 readData | ( | jab_data * | data, |
| jab_int32 | start, | ||
| jab_int32 | length, | ||
| jab_int32 * | value | ||
| ) |
Read bit data.
| data | the data buffer |
| start | the start reading offset |
| length | the length of the data to be read |
| value | the read data |
| jab_data* readRawModuleData | ( | jab_bitmap * | matrix, |
| jab_decoded_symbol * | symbol, | ||
| jab_byte * | data_map, | ||
| jab_float ** | bits_p | ||
| ) |
Decode data modules.
| matrix | the symbol matrix |
| symbol | the symbol to be decoded |
| data_map | the data module positions |
| bits_p | the probability of the reliability of the decoded bits |