int main() { initialize_buffers(); printf("\n\nHej from " ALT_CPU_NAME "!\n"); //declare communication variables here // three dct and huffman_encode steps here smaller_block dct_y01_input; smaller_block dct_y10_input; smaller_block dct_y11_input; smaller_block dct_y01_output; smaller_block dct_y10_output; smaller_block dct_y11_output; huffman_encoding_output huffman_y01_output; huffman_encoding_output huffman_y10_output; huffman_encoding_output huffman_y11_output; while (1) { receive_token(2, 9, &dct_y01_input); dct_func(&dct_y01_output, &dct_y01_input); receive_token(2, 11, &dct_y10_input); dct_func(&dct_y10_output, &dct_y10_input); receive_token(2, 13, &dct_y11_input); dct_func(&dct_y11_output, &dct_y11_input); huffman_encode_func(&huffman_y01_output, &dct_y01_output); send_token(10, 15, &huffman_y01_output); huffman_encode_func(&huffman_y10_output, &dct_y10_output); send_token(12, 15, &huffman_y10_output); huffman_encode_func(&huffman_y11_output, &dct_y11_output); send_token(14, 15, &huffman_y11_output); //receive_token(sender, receiver, pointer_to_data); //call process functions here //send_token(sender, receiver, pointer_to_data); } }
/** * \brief forward transform (2D) * \param block input residual * \param coeff transform coefficients * \param block_size width of transform */ void kvz_transform2d(const encoder_control_t * const encoder, int16_t *block, int16_t *coeff, int8_t block_size, int32_t mode) { dct_func *dct_func = kvz_get_dct_func(block_size, mode); dct_func(encoder->bitdepth, block, coeff); }