h264hwd_neighbour.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*------------------------------------------------------------------------------
  2. -- --
  3. -- This software is confidential and proprietary and may be used --
  4. -- only as expressly authorized by a licensing agreement from --
  5. -- --
  6. -- Hantro Products Oy. --
  7. -- --
  8. -- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY --
  9. -- ALL RIGHTS RESERVED --
  10. -- --
  11. -- The entire notice above must be reproduced --
  12. -- on all copies and should not be removed. --
  13. -- --
  14. --------------------------------------------------------------------------------
  15. --
  16. -- Abstract : Get neighbour blocks
  17. --
  18. --------------------------------------------------------------------------------
  19. --
  20. -- Version control information, please leave untouched.
  21. --
  22. -- $RCSfile: h264hwd_neighbour.h,v $
  23. -- $Date: 2008/03/13 12:48:06 $
  24. -- $Revision: 1.1 $
  25. --
  26. ------------------------------------------------------------------------------*/
  27. /*------------------------------------------------------------------------------
  28. Table of contents
  29. 1. Include headers
  30. 2. Module defines
  31. 3. Data types
  32. 4. Function prototypes
  33. ------------------------------------------------------------------------------*/
  34. #ifndef H264HWD_NEIGHBOUR_H
  35. #define H264HWD_NEIGHBOUR_H
  36. /*------------------------------------------------------------------------------
  37. 1. Include headers
  38. ------------------------------------------------------------------------------*/
  39. #include "basetype.h"
  40. #include "h264hwd_macroblock_layer.h"
  41. /*------------------------------------------------------------------------------
  42. 2. Module defines
  43. ------------------------------------------------------------------------------*/
  44. typedef enum {
  45. MB_A = 0,
  46. MB_B,
  47. MB_C,
  48. MB_D,
  49. MB_CURR,
  50. MB_NA = 0xFF
  51. } neighbourMb_e;
  52. /*------------------------------------------------------------------------------
  53. 3. Data types
  54. ------------------------------------------------------------------------------*/
  55. typedef struct
  56. {
  57. neighbourMb_e mb;
  58. u8 index;
  59. } neighbour_t;
  60. /*------------------------------------------------------------------------------
  61. 4. Function prototypes
  62. ------------------------------------------------------------------------------*/
  63. void h264bsdInitMbNeighbours(mbStorage_t *pMbStorage, u32 picWidth,
  64. u32 picSizeInMbs);
  65. /*@null@*/ mbStorage_t* h264bsdGetNeighbourMb(mbStorage_t *pMb,
  66. neighbourMb_e neighbour);
  67. u32 h264bsdIsNeighbourAvailable(mbStorage_t *pMb,
  68. /*@null@*/ mbStorage_t *pNeighbour);
  69. const neighbour_t* h264bsdNeighbour4x4BlockA(u32 blockIndex);
  70. const neighbour_t* h264bsdNeighbour4x4BlockB(u32 blockIndex);
  71. const neighbour_t* h264bsdNeighbour4x4BlockC(u32 blockIndex);
  72. const neighbour_t* h264bsdNeighbour4x4BlockD(u32 blockIndex);
  73. #endif /* #ifdef H264HWD_NEIGHBOUR_H */