ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VLIB / video_macroblock.h
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VLIB/video_macroblock.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VLIB/video_macroblock.h
new file mode 100644 (file)
index 0000000..976ec38
--- /dev/null
@@ -0,0 +1,36 @@
+#ifndef _VIDEO_MACROBLOCK_H_
+#define _VIDEO_MACROBLOCK_H_
+
+#include <VP_Os/vp_os_types.h>
+#include <VLIB/video_picture.h>
+#include <VLIB/P264/p264_common.h>
+
+// Default zigzag ordering matrix
+extern int32_t video_zztable_t81[MCU_BLOCK_SIZE];
+
+typedef struct _video_macroblock_t {
+  int32_t   azq;  // All zero coefficients
+  int32_t   dquant;
+  int32_t   num_coeff_y0; // Number of non-zeros coefficients for block y0
+  int32_t   num_coeff_y1; // Number of non-zeros coefficients for block y1
+  int32_t   num_coeff_y2; // Number of non-zeros coefficients for block y2
+  int32_t   num_coeff_y3; // Number of non-zeros coefficients for block y3
+  int32_t   num_coeff_cb; // Number of non-zeros coefficients for block cb
+  int32_t   num_coeff_cr; // Number of non-zeros coefficients for block cr
+
+  // p264 additional data
+  // --> intra data
+  intra_type_t intra_type;
+  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
+  intra_16x16_luma_mode_t intra_luma_16x16_mode;
+  intra_8x8_chroma_mode_t intra_chroma_8x8_mode;
+
+  // --> inter data
+  inter_partition_mode_t inter_partition_mode[16]; // max number of partition per MB is 16 block_4x4
+  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
+  uint32_t nb_partition; // number of partitions [1:16]
+
+  int16_t*  data;         // macroblock's data
+} video_macroblock_t;
+
+#endif // _VIDEO_MACROBLOCK_H_