armVCM4P10_DequantTables_s.S revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
1;//
2;// Copyright (C) 2007-2008 ARM Limited
3;//
4;// Licensed under the Apache License, Version 2.0 (the "License");
5;// you may not use this file except in compliance with the License.
6;// You may obtain a copy of the License at
7;//
8;//      http://www.apache.org/licenses/LICENSE-2.0
9;//
10;// Unless required by applicable law or agreed to in writing, software
11;// distributed under the License is distributed on an "AS IS" BASIS,
12;// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13;// See the License for the specific language governing permissions and
14;// limitations under the License.
15;//
16/*
17 *
18 */
19
20    .eabi_attribute 24, 1
21    .eabi_attribute 25, 1
22
23    .arm
24    .fpu neon
25    .section .rodata
26    .align 4
27
28
29    .global armVCM4P10_QPDivTable
30    .global armVCM4P10_VMatrixQPModTable
31    .global armVCM4P10_PosToVCol4x4
32    .global armVCM4P10_PosToVCol2x2
33    .global armVCM4P10_VMatrix
34    .global armVCM4P10_QPModuloTable
35    .global armVCM4P10_VMatrixU16
36
37    .hidden armVCM4P10_QPDivTable
38    .hidden armVCM4P10_VMatrixQPModTable
39    .hidden armVCM4P10_PosToVCol4x4
40    .hidden armVCM4P10_PosToVCol2x2
41    .hidden armVCM4P10_VMatrix
42    .hidden armVCM4P10_QPModuloTable
43    .hidden armVCM4P10_VMatrixU16
44
45armVCM4P10_PosToVCol4x4:
46    .byte  0, 2, 0, 2
47    .byte  2, 1, 2, 1
48    .byte  0, 2, 0, 2
49    .byte  2, 1, 2, 1
50
51armVCM4P10_PosToVCol2x2:
52    .byte  0, 2
53    .byte  2, 1
54
55armVCM4P10_VMatrix:
56    .byte  10, 16, 13
57    .byte  11, 18, 14
58    .byte  13, 20, 16
59    .byte  14, 23, 18
60    .byte  16, 25, 20
61    .byte  18, 29, 23
62
63;//-------------------------------------------------------
64;// This table evaluates the expression [(INT)(QP/6)],
65;// for values of QP from 0 to 51 (inclusive).
66;//-------------------------------------------------------
67
68armVCM4P10_QPDivTable:
69    .byte  0,  0,  0,  0,  0,  0
70    .byte  1,  1,  1,  1,  1,  1
71    .byte  2,  2,  2,  2,  2,  2
72    .byte  3,  3,  3,  3,  3,  3
73    .byte  4,  4,  4,  4,  4,  4
74    .byte  5,  5,  5,  5,  5,  5
75    .byte  6,  6,  6,  6,  6,  6
76    .byte  7,  7,  7,  7,  7,  7
77    .byte  8,  8,  8,  8,  8,  8
78
79;//----------------------------------------------------
80;// This table contains armVCM4P10_VMatrix[QP%6][0] entires,
81;// for values of QP from 0 to 51 (inclusive).
82;//----------------------------------------------------
83
84armVCM4P10_VMatrixQPModTable:
85    .byte 10, 11, 13, 14, 16, 18
86    .byte 10, 11, 13, 14, 16, 18
87    .byte 10, 11, 13, 14, 16, 18
88    .byte 10, 11, 13, 14, 16, 18
89    .byte 10, 11, 13, 14, 16, 18
90    .byte 10, 11, 13, 14, 16, 18
91    .byte 10, 11, 13, 14, 16, 18
92    .byte 10, 11, 13, 14, 16, 18
93    .byte 10, 11, 13, 14, 16, 18
94
95;//-------------------------------------------------------
96;// This table evaluates the modulus expression [QP%6]*6,
97;// for values of QP from 0 to 51 (inclusive).
98;//-------------------------------------------------------
99
100armVCM4P10_QPModuloTable:
101    .byte 0, 6, 12, 18, 24, 30
102    .byte 0, 6, 12, 18, 24, 30
103    .byte 0, 6, 12, 18, 24, 30
104    .byte 0, 6, 12, 18, 24, 30
105    .byte 0, 6, 12, 18, 24, 30
106    .byte 0, 6, 12, 18, 24, 30
107    .byte 0, 6, 12, 18, 24, 30
108    .byte 0, 6, 12, 18, 24, 30
109    .byte 0, 6, 12, 18, 24, 30
110
111;//-------------------------------------------------------
112;// This table contains the invidual byte values stored as
113;// halfwords. This avoids unpacking inside the function
114;//-------------------------------------------------------
115
116armVCM4P10_VMatrixU16:
117    .hword 10, 16, 13
118    .hword 11, 18, 14
119    .hword 13, 20, 16
120    .hword 14, 23, 18
121    .hword 16, 25, 20
122    .hword 18, 29, 23
123
124    .end
125
126