summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/on2/h264dec/omxdl/arm_neon/vc/m4p10/src_gcc/armVCM4P10_DequantTables_s.S
blob: 5bc7875a05e84fb77ea54dfea793eb5185cdc4ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*
 * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved.
 *
 */

    .eabi_attribute 24, 1
    .eabi_attribute 25, 1

    .arm
    .fpu neon
    .section .rodata
    .align 4


    .global armVCM4P10_QPDivTable
    .global armVCM4P10_VMatrixQPModTable
    .global armVCM4P10_PosToVCol4x4
    .global armVCM4P10_PosToVCol2x2
    .global armVCM4P10_VMatrix
    .global armVCM4P10_QPModuloTable
    .global armVCM4P10_VMatrixU16

    .hidden armVCM4P10_QPDivTable
    .hidden armVCM4P10_VMatrixQPModTable
    .hidden armVCM4P10_PosToVCol4x4
    .hidden armVCM4P10_PosToVCol2x2
    .hidden armVCM4P10_VMatrix
    .hidden armVCM4P10_QPModuloTable
    .hidden armVCM4P10_VMatrixU16

armVCM4P10_PosToVCol4x4:
    .byte  0, 2, 0, 2
    .byte  2, 1, 2, 1
    .byte  0, 2, 0, 2
    .byte  2, 1, 2, 1

armVCM4P10_PosToVCol2x2:
    .byte  0, 2
    .byte  2, 1

armVCM4P10_VMatrix:
    .byte  10, 16, 13
    .byte  11, 18, 14
    .byte  13, 20, 16
    .byte  14, 23, 18
    .byte  16, 25, 20
    .byte  18, 29, 23

;//-------------------------------------------------------
;// This table evaluates the expression [(INT)(QP/6)],
;// for values of QP from 0 to 51 (inclusive).
;//-------------------------------------------------------

armVCM4P10_QPDivTable:
    .byte  0,  0,  0,  0,  0,  0
    .byte  1,  1,  1,  1,  1,  1
    .byte  2,  2,  2,  2,  2,  2
    .byte  3,  3,  3,  3,  3,  3
    .byte  4,  4,  4,  4,  4,  4
    .byte  5,  5,  5,  5,  5,  5
    .byte  6,  6,  6,  6,  6,  6
    .byte  7,  7,  7,  7,  7,  7
    .byte  8,  8,  8,  8,  8,  8

;//----------------------------------------------------
;// This table contains armVCM4P10_VMatrix[QP%6][0] entires,
;// for values of QP from 0 to 51 (inclusive).
;//----------------------------------------------------

armVCM4P10_VMatrixQPModTable:
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18
    .byte 10, 11, 13, 14, 16, 18

;//-------------------------------------------------------
;// This table evaluates the modulus expression [QP%6]*6,
;// for values of QP from 0 to 51 (inclusive).
;//-------------------------------------------------------

armVCM4P10_QPModuloTable:
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30
    .byte 0, 6, 12, 18, 24, 30

;//-------------------------------------------------------
;// This table contains the invidual byte values stored as
;// halfwords. This avoids unpacking inside the function
;//-------------------------------------------------------

armVCM4P10_VMatrixU16:
    .hword 10, 16, 13
    .hword 11, 18, 14
    .hword 13, 20, 16
    .hword 14, 23, 18
    .hword 16, 25, 20
    .hword 18, 29, 23

    .end