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

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 
)

Decode set of type 'I'

This function is inverse to speck_encode_I.

Parameters:
channelChannel
channel_sizeChannel size
ISet of type I
LIS_slotsArray of LIS slots
LSPList of Significant Pixels
bbBit-buffer
thresholdThreshold
Returns:
Either BIT_BUFFER_OK or BIT_BUFFER_UNDERFLOW

Definition at line 813 of file speck.c.

References alloc_list_node(), assign_set(), BIT_BUFFER_UNDERFLOW, free_list_node(), speck_unprocess_I(), speck_unprocess_S(), split_set(), and STAGE_I.

Referenced by speck_unprocess_I().

{
    pixel_set new_sets[3];
    int result;
    int i;

    /* Split parent set */
    split_set(I, I, &new_sets[0], &new_sets[1], &new_sets[2], channel_size);

    /* Unprocess sets of type 'S' */
    for (i = 0; i < 3; i++) {
        list_node *node = alloc_list_node(sizeof(pixel_set));
        assign_set(node, &new_sets[i]);

        result = speck_unprocess_S(channel, channel_size, node,
                                   NULL, LIS_slots, LSP, bb,
                                   threshold, STAGE_I);

        if (result == BIT_BUFFER_UNDERFLOW) {
            free_list_node(node);
            return result;
        }
    }

    /* Unprocess set of type 'I' */
    result = speck_unprocess_I(channel, channel_size, I,
                               LIS_slots, LSP, bb, threshold);

    return result;
}

Here is the call graph for this function:

Here is the caller graph for this function:


Generated by  Doxygen 1.6.0   Back to index