Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5361 serge 1
/*
2
 * Copyright © <2010>, Intel Corporation.
3
 *
4
 * This program is licensed under the terms and conditions of the
5
 * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
6
 * http://www.opensource.org/licenses/eclipse-1.0.php.
7
 *
8
 */
9
// Module name: loadNV12_16x16T.asm
10
//
11
// Load and transpose NV12 16x16 block
12
//
13
//----------------------------------------------------------------
14
//  Symbols need to be defined before including this module
15
//
16
//	Source region in :ud
17
//	SRC_YD:			SRC_YD Base=rxx ElementSize=4 SrcRegion=REGION(8,1) Type=ud			// 8 GRFs
18
//	SRC_UD:			SRC_UD Base=rxx ElementSize=4 SrcRegion=REGION(8,1) Type=ud   (U+V for NV12) 	// 4 GRFs
19
//
20
//	Source region is :ub.  The same region as :ud region
21
//	SRC_YB:			SRC_YB Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub		// 8 GRFs
22
//	SRC_UB:			SRC_UB Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub		// 2 GRFs
23
//	SRC_VB:			SRC_VB Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub		// 2 GRFs
24
//
25
//	Binding table index:
26
//	BI_SRC_Y:		Binding table index of Y surface
27
//	BI_SRC_UV:		Binding table index of UV surface (NV12)
28
//
29
//	Temp buffer:
30
//	BUF_B:			BUF_B Base=rxx ElementSize=1 SrcRegion=REGION(16,1) Type=ub
31
//
32
//----------------------------------------------------------------
33
 
34
#if defined(_DEBUG)
35
	mov		(1)		EntrySignatureC:w			0xDDD1:w
36
#endif
37
 
38
	// Read Y
39
    mov (2)	MSGSRC.0<1>:ud	ORIX_CUR<2;2,1>:w		// Block origin
40
    mov (1)	MSGSRC.2<1>:ud	0x000F000F:ud		// Block width and height (16x16)
41
    send (8) SRC_YD(0)<1>	MSGHDRY	MSGSRC<8;8,1>:ud	DAPREAD	RESP_LEN(8)+DWBRMSGDSC_RC+BI_SRC_Y	// Read 8 GRFs
42
 
43
	// Read U+V
44
    asr (1)	MSGSRC.1:ud		MSGSRC.1:ud			1:w						// NV12 U+V block origin y = half of Y comp
45
    mov (1)	MSGSRC.2<1>:ud	0x0007000F:ud		// NV12 U+V block width and height (16x8)
46
    send (8) SRC_UD(0)<1>	MSGHDRU	MSGSRC<8;8,1>:ud	DAPREAD	RESP_LEN(4)+DWBRMSGDSC_RC+BI_SRC_UV	// Read 4 GRFs
47
 
48
	#include "TransposeNV12_16x16.asm"
49
 
50
//	#include "Transpose_Y_16x16.asm"
51
//	#include "Transpose_NV12_UV_16x8.asm"
52
 
53
// End of loadNV12_16x16T