Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Decode Intra_16x16 macroblock
  3.  * Copyright © <2010>, Intel Corporation.
  4.  *
  5.  * This program is licensed under the terms and conditions of the
  6.  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
  7.  * http://www.opensource.org/licenses/eclipse-1.0.php.
  8.  *
  9.  */
  10. // Kernel name: Intra_16x16.asm
  11. //
  12. // Decoding of Intra_16x16 macroblock
  13. //
  14. //  $Revision: 8 $
  15. //  $Date: 10/18/06 4:10p $
  16. //
  17.  
  18. // ----------------------------------------------------
  19. //  Main: Intra_16x16
  20. // ----------------------------------------------------
  21.  
  22. #define INTRA_16X16
  23.  
  24. .kernel Intra_16x16
  25. INTRA_16x16:
  26.  
  27. #ifdef _DEBUG
  28. // WA for FULSIM so we'll know which kernel is being debugged
  29. mov (1) acc0:ud 0x00aa55a5:ud
  30. #endif
  31.  
  32. #include "SetupForHWMC.asm"
  33.  
  34. #ifdef SW_SCOREBOARD    
  35.    CALL(scoreboard_start_intra,1)
  36. #endif
  37.  
  38. #ifdef SW_SCOREBOARD
  39.         wait    n0:ud           //      Now wait for scoreboard to response
  40. #endif
  41.  
  42. //
  43. //  Decode Y blocks
  44. //
  45. //      Load reference data from neighboring macroblocks
  46.    CALL(load_Intra_Ref_Y,1)
  47.  
  48. //      Intra predict Intra_16x16 luma block
  49.         #include "intra_pred_16x16_Y.asm"
  50.  
  51. //      Add error data to predicted intra data
  52.         #include "add_Error_16x16_Y.asm"
  53.  
  54. //      Save decoded Y picture
  55.         CALL(save_16x16_Y,1)
  56. //
  57. //  Decode U/V blocks
  58. //
  59. //      Note: The decoding for chroma blocks will be the same for all intra prediction mode
  60. //
  61.         CALL(decode_Chroma_Intra,1)
  62.  
  63. #ifdef SW_SCOREBOARD
  64.    #include "scoreboard_update.asm"
  65. #endif
  66.  
  67. // Terminate the thread
  68. //
  69.    #include "EndIntraThread.asm"
  70.  
  71. // End of Intra_16x16
  72.