Logo Search packages:      
Sourcecode: librasterlite version File versions  Download package

Classes | Defines | Typedefs | Functions

speck.h File Reference

SPECK wavelet codec. More...

#include <common.h>
#include <list.h>
#include <bit_io.h>
Include dependency graph for speck.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pixel_set_tag

Defines

#define BREAK_IF_OVERFLOW(_x)   if (_x == BIT_BUFFER_OVERFLOW) break
#define BREAK_IF_UNDERFLOW(_x)   if (_x == BIT_BUFFER_UNDERFLOW) break
#define CONTINUE_IF_EMPTY(_x)   if (LIST_IS_EMPTY(_x)) continue
#define MIN_SPECK_BUF_SIZE   1
#define PIXEL_SET(_set)   ((pixel_set *) (_set->data))
#define RETURN_IF_OVERFLOW(_x)   if (_x == BIT_BUFFER_OVERFLOW) return _x
#define RETURN_IF_UNDERFLOW(_x)   if (_x == BIT_BUFFER_UNDERFLOW) return _x
#define SLOT_INDEX(_set)   (number_of_bits(MIN(_set->width, _set->height)) - 1)
#define STAGE_I   1
#define STAGE_S   0
#define THRESHOLD_BITS   6
#define TYPE_EMPTY   3
#define TYPE_I   2
#define TYPE_POINT   0
#define TYPE_S   1

Typedefs

typedef struct pixel_set_tag pixel_set

Functions

local linked_list ** alloc_LIS_slots (int channel_size)
local void assign_set (list_node *node, pixel_set *set)
local int decode_refinement_pass (int **channel, linked_list *LSP, bit_buffer *bb, int threshold)
local int decode_sorting_pass (int **channel, int channel_size, linked_list **LIS_slots, linked_list *LSP, pixel_set *I, bit_buffer *bb, int threshold)
local int encode_refinement_pass (int **channel, linked_list *LSP, bit_buffer *bb, int threshold)
local int encode_sorting_pass (int **channel, int channel_size, linked_list **LIS_slots, linked_list *LSP, pixel_set *I, bit_buffer *bb, int threshold)
local void free_LIS_slots (linked_list **LIS_slots, int channel_size)
local int max_coeff (int **channel, int channel_size)
local void select_part_type (pixel_set *set)
local int significance_test (pixel_set *set, int threshold, int **channel, int channel_size)
void speck_decode (unsigned char *buf, int buf_size, int **channel, int channel_size)
local int speck_decode_I (int **channel, int channel_size, pixel_set *I, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold)
local int speck_decode_S (int **channel, int channel_size, pixel_set *set, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold)
int speck_encode (int **channel, int channel_size, unsigned char *buf, int buf_size)
local int speck_encode_I (int **channel, int channel_size, pixel_set *I, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold)
local int speck_encode_S (int **channel, int channel_size, pixel_set *set, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold)
local void speck_init (linked_list **LIS_slots, pixel_set *I, int channel_size, int mode)
local int speck_process_I (int **channel, int channel_size, pixel_set *I, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold)
local int speck_process_S (int **channel, int channel_size, list_node *node, linked_list *slot, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold, int coding_stage)
local int speck_unprocess_I (int **channel, int channel_size, pixel_set *I, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold)
local int speck_unprocess_S (int **channel, int channel_size, list_node *node, linked_list *slot, linked_list **LIS_slots, linked_list *LSP, bit_buffer *bb, int threshold, int coding_stage)
local void split_set (pixel_set *set, pixel_set *part1, pixel_set *part2, pixel_set *part3, pixel_set *part4, int channel_size)
local int validate_set (pixel_set *set, int channel_size)
local void zero_channel (int **channel, int channel_size)

Detailed Description

SPECK wavelet codec.

This file represents SPECK - The Set-Partitioning Embedded Block wavelet codec. To understand the algorithm you have to read original article from William Pearlman and Asad Islam. Also it is highly recommended to get familar with coding example.

Warning:
The Set-Partitioning Embedded Block (SPECK) algorithm is protected by US Patent #6,671,413 and also may be patented in your country.

References

William A. Pearlman home page

A. Islam and W. A. Pearlman, An Embedded and Efficient Low-Complexity Hierarchical Image Coder, Visual Communications and Image Processing 99, Proceedings of SPIE Vol. 3653, pp. 294-305, Jan. 1999.

SPECK coding example

Definition in file speck.h.


Generated by  Doxygen 1.6.0   Back to index