mb_access.h 5.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*!
  2. *************************************************************************************
  3. * \file mb_access.h
  4. *
  5. * \brief
  6. * Functions for macroblock neighborhoods
  7. *
  8. * \author
  9. * Main contributors (see contributors.h for copyright, address and affiliation details)
  10. * - Karsten Sühring <[email protected]>
  11. * - Alexis Michael Tourapis <[email protected]>
  12. *************************************************************************************
  13. */
  14. #ifndef _MB_ACCESS_H_
  15. #define _MB_ACCESS_H_
  16. extern void CheckAvailabilityOfNeighbors(Macroblock *currMB);
  17. /* MB Aff */
  18. extern void getAffNeighbour (const Macroblock *currMB, int xN, int yN, const int mb_size[2], PixelPos *pix);
  19. extern void getAffNeighbourLuma (const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  20. extern void getAffNeighbourXPLuma (const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  21. extern void getAffNeighbourPPLumaNB (const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  22. extern void getAffNeighbourNPLuma (const Macroblock *currMB, int yN, PixelPos *pix);
  23. extern void getAffNeighbourN0Luma (const Macroblock *currMB, PixelPos *pix);
  24. extern void getAffNeighbourNXLuma (const Macroblock *currMB, int xN, PixelPos *pix);
  25. extern void getAffNeighbour0X (const Macroblock *currMB, int yN, const int mb_size[2], PixelPos *pix);
  26. extern void getAffNeighbour0XLuma (const Macroblock *currMB, int yN, PixelPos *pix);
  27. extern void getAffNeighbour0N (const Macroblock *currMB, const int mb_size[2], PixelPos *pix);
  28. extern void getAffNeighbourX0 (const Macroblock *currMB, int xN, const int mb_size[2], PixelPos *pix);
  29. extern void getAffNeighbourNX (const Macroblock *currMB, int yN, const int mb_size[2], PixelPos *pix);
  30. extern void getAffNeighbourN0 (const Macroblock *currMB, const int mb_size[2], PixelPos *pix);
  31. extern void getAffNeighbour0NLuma (const Macroblock *currMB, PixelPos *pix);
  32. extern void getAffNeighbourPXLumaNB(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  33. extern void getAffNeighbourPXLumaNB_NoPos(const Macroblock *currMB, int yN, PixelPos *pix);
  34. /* normal */
  35. extern void getNonAffNeighbour (const Macroblock *currMB, int xN, int yN, const int mb_size[2], PixelPos *pix);
  36. extern void getNonAffNeighbourXP_NoPos(const Macroblock *currMB, int xN, int yN, const int mb_size[2], PixelPos *pix);
  37. extern void getNonAffNeighbourPX_NoPos(const Macroblock *currMB, int xN, int yN, const int mb_size[2], PixelPos *pix);
  38. extern void getNonAffNeighbourLuma (const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  39. extern void getNonAffNeighbourXPLuma(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  40. extern void getNonAffNeighbourPXLuma(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  41. extern void getNonAffNeighbourN0Luma(const Macroblock *currMB, PixelPos *pix);
  42. extern void getNonAffNeighbourNXLuma(const Macroblock *currMB, int yN, PixelPos *pix);
  43. extern void getNonAffNeighbourN0 (const Macroblock *currMB, const int mb_size[2], PixelPos *pix);
  44. extern void getNonAffNeighbour0N (const Macroblock *currMB, const int mb_size[2], PixelPos *pix);
  45. extern void getNonAffNeighbourNX (const Macroblock *currMB, int yN, const int mb_size[2], PixelPos *pix);
  46. extern void getNonAffNeighbourNP (const Macroblock *currMB, int yN, const int mb_size[2], PixelPos *pix);
  47. extern void getNonAffNeighbourNPChromaNB(const Macroblock *currMB, int yN, const int mb_size[2], PixelPos *pix);
  48. extern void getNonAffNeighbour0X (const Macroblock *currMB, int yN, const int mb_size[2], PixelPos *pix);
  49. extern void getNonAffNeighbour0XLuma(const Macroblock *currMB, int yN, PixelPos *pix);
  50. extern void getNonAffNeighbourX0 (const Macroblock *currMB, int xN, const int mb_size[2], PixelPos *pix);
  51. extern void getNonAffNeighbour0NLuma(const Macroblock *currMB, PixelPos *pix);
  52. extern void getNonAffNeighbourNPLumaNB(const Macroblock *currMB, int yN, PixelPos *pix);
  53. extern void getNonAffNeighbourXPLumaNB(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  54. extern void getNonAffNeighbourPPLumaNB(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  55. extern void getNonAffNeighbourXPLumaNB_NoPos(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  56. extern void getNonAffNeighbourPXLumaNB(const Macroblock *currMB, int xN, int yN, PixelPos *pix);
  57. extern void getNonAffNeighbourPXLumaNB_NoPos(const Macroblock *currMB, int yN, PixelPos *pix);
  58. extern void get4x4Neighbour (const Macroblock *currMB, int xN, int yN, const int mb_size[2], PixelPos *pix);
  59. extern void get4x4NeighbourLuma (const Macroblock *currMB, int block_x, int block_y, PixelPos *pix);
  60. extern Boolean mb_is_available (int mbAddr, const Macroblock *currMB);
  61. extern void get_mb_pos (VideoParameters *p_Vid, int mb_addr, const int mb_size[2], short *x, short *y);
  62. extern void get_mb_block_pos_normal (const h264_pic_position *PicPos, int mb_addr, short *x, short *y);
  63. extern void get_mb_block_pos_mbaff (const h264_pic_position *PicPos, int mb_addr, short *x, short *y);
  64. #endif