ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VLIB / Platform / arm9_P6 / UVLC / uvlc_mb_layer_p6.c
1 #include "../video_utils_p6.h"
2 #include "uvlc_mb_layer_p6.h"
3
4 #ifdef HAS_UVLC_WRITE_BLOCK
5 void uvlc_write_block( video_stream_t* const stream, int16_t* data, int32_t num_coeff)
6 {
7    int32_t code, run;
8
9   // DC coeff
10   code = *data++;
11   video_write_data( stream, code, 10 );
12   num_coeff--;
13   // AC coeff
14   run = 0;
15   while( num_coeff > 0 )
16     {
17       code = *data++;
18       if( code == 0 )
19       {
20         run ++;
21       }
22       else
23       {
24         num_coeff--;
25         uvlc_encode( stream, code, run, num_coeff );
26         run = 0;
27       }
28     }
29 }
30 #endif // HAS_UVLC_WRITE_BLOCK