OSDN Git Service

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