ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VLIB / video_macroblock.h
1 #ifndef _VIDEO_MACROBLOCK_H_
2 #define _VIDEO_MACROBLOCK_H_
3
4 #include <VP_Os/vp_os_types.h>
5 #include <VLIB/video_picture.h>
6 #include <VLIB/P264/p264_common.h>
7
8 // Default zigzag ordering matrix
9 extern int32_t video_zztable_t81[MCU_BLOCK_SIZE];
10
11 typedef struct _video_macroblock_t {
12   int32_t   azq;  // All zero coefficients
13   int32_t   dquant;
14   int32_t   num_coeff_y0; // Number of non-zeros coefficients for block y0
15   int32_t   num_coeff_y1; // Number of non-zeros coefficients for block y1
16   int32_t   num_coeff_y2; // Number of non-zeros coefficients for block y2
17   int32_t   num_coeff_y3; // Number of non-zeros coefficients for block y3
18   int32_t   num_coeff_cb; // Number of non-zeros coefficients for block cb
19   int32_t   num_coeff_cr; // Number of non-zeros coefficients for block cr
20
21   // p264 additional data
22   // --> intra data
23   intra_type_t intra_type;
24   intra_4x4_mode_t intra_4x4_mode[16]; // when encoding, intra_4x4_mode[] use a special format (see P6 h264) to handle intra prediction. when decoding intra_4x4_mode[] contains the real intra mode
25   intra_16x16_luma_mode_t intra_luma_16x16_mode;
26   intra_8x8_chroma_mode_t intra_chroma_8x8_mode;
27
28   // --> inter data
29   inter_partition_mode_t inter_partition_mode[16]; // max number of partition per MB is 16 block_4x4
30   MV_XY_t inter_MV[16]; // motion vector array. when encoding inter_MV use MV prediction, when decoding the real MV are stored in this array
31   uint32_t nb_partition; // number of partitions [1:16]
32
33   int16_t*  data;         // macroblock's data
34 } video_macroblock_t;
35
36 #endif // _VIDEO_MACROBLOCK_H_