erc_globals.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*!
  2. ************************************************************************
  3. * \file erc_globals.h
  4. *
  5. * \brief
  6. * global header file for error concealment module
  7. *
  8. * \author
  9. * - Viktor Varsa <[email protected]>
  10. * - Ye-Kui Wang <[email protected]>
  11. ************************************************************************
  12. */
  13. #ifndef _ERC_GLOBALS_H_
  14. #define _ERC_GLOBALS_H_
  15. #include "defines.h"
  16. /* "block" means an 8x8 pixel area */
  17. /* Region modes */
  18. #define REGMODE_INTER_COPY 0 //!< Copy region
  19. #define REGMODE_INTER_PRED 1 //!< Inter region with motion vectors
  20. #define REGMODE_INTRA 2 //!< Intra region
  21. #define REGMODE_SPLITTED 3 //!< Any region mode higher than this indicates that the region
  22. //!< is splitted which means 8x8 block
  23. #define REGMODE_INTER_COPY_8x8 4
  24. #define REGMODE_INTER_PRED_8x8 5
  25. #define REGMODE_INTRA_8x8 6
  26. //! YUV pixel domain image arrays for a video frame
  27. typedef struct frame_s
  28. {
  29. VideoParameters *p_Vid;
  30. imgpel *yptr;
  31. imgpel *uptr;
  32. imgpel *vptr;
  33. } frame;
  34. //! region structure stores information about a region that is needed for concealment
  35. typedef struct object_buffer
  36. {
  37. byte regionMode; //!< region mode as above
  38. int xMin; //!< X coordinate of the pixel position of the top-left corner of the region
  39. int yMin; //!< Y coordinate of the pixel position of the top-left corner of the region
  40. short mv[3]; //!< motion vectors in 1/4 pixel units: mvx = mv[0], mvy = mv[1],
  41. //!< and ref_frame = mv[2]
  42. } objectBuffer_t;
  43. #endif