1/* ------------------------------------------------------------------
2 * Copyright (C) 1998-2009 PacketVideo
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
13 * express or implied.
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 * -------------------------------------------------------------------
17 */
18
19#include    "mp4dec_api.h"
20#include    "mp4def.h"
21#include    "zigzag.h"
22/*----------------------------------------------------------------------------
23; MACROS
24; Define module specific macros here
25----------------------------------------------------------------------------*/
26
27
28/*----------------------------------------------------------------------------
29; DEFINES
30; Include all pre-processor statements here. Include conditional
31; compile variables also.
32----------------------------------------------------------------------------*/
33
34/*----------------------------------------------------------------------------
35; LOCAL FUNCTION DEFINITIONS
36; Function Prototype declaration
37----------------------------------------------------------------------------*/
38
39
40/*----------------------------------------------------------------------------
41; LOCAL STORE/BUFFER/POINTER DEFINITIONS
42; Variable declaration - defined here and used outside this module
43----------------------------------------------------------------------------*/
44const int zigzag_inv[3*NCOEFF_BLOCK] =
45{
46    0,  1,  8, 16,  9,  2,  3, 10,
47    17, 24, 32, 25, 18, 11,  4,  5,
48    12, 19, 26, 33, 40, 48, 41, 34,
49    27, 20, 13,  6,  7, 14, 21, 28,
50    35, 42, 49, 56, 57, 50, 43, 36,
51    29, 22, 15, 23, 30, 37, 44, 51,
52    58, 59, 52, 45, 38, 31, 39, 46,
53    53, 60, 61, 54, 47, 55, 62, 63,
54//};
55
56    /* Vertical inverse zigzag */
57//const static Int zigzag_v_inv[NCOEFF_BLOCK] = {
58    0, 8, 16, 24, 1, 9, 2, 10,
59    17, 25, 32, 40, 48, 56, 57, 49,
60    41, 33, 26, 18, 3, 11, 4, 12,
61    19, 27, 34, 42, 50, 58, 35, 43,
62    51, 59, 20, 28, 5, 13, 6, 14,
63    21, 29, 36, 44, 52, 60, 37, 45,
64    53, 61, 22, 30, 7, 15, 23, 31,
65    38, 46, 54, 62, 39, 47, 55, 63,
66//};
67    /* Horizontal inverse zigzag*/
68//const static Int zizag_h_inv[NCOEFF_BLOCK] = {
69    0, 1, 2, 3, 8, 9, 16, 17,
70    10, 11, 4, 5, 6, 7, 15, 14,
71    13, 12, 19, 18, 24, 25, 32, 33,
72    26, 27, 20, 21, 22, 23, 28, 29,
73    30, 31, 34, 35, 40, 41, 48, 49,
74    42, 43, 36, 37, 38, 39, 44, 45,
75    46, 47, 50, 51, 56, 57, 58, 59,
76    52, 53, 54, 55, 60, 61, 62, 63
77};
78
79/*----------------------------------------------------------------------------
80; EXTERNAL FUNCTION REFERENCES
81; Declare functions defined elsewhere and referenced in this module
82----------------------------------------------------------------------------*/
83
84
85/*----------------------------------------------------------------------------
86; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES
87; Declare variables used in this module but defined elsewhere
88----------------------------------------------------------------------------*/
89
90
91/*----------------------------------------------------------------------------
92; FUNCTION CODE
93----------------------------------------------------------------------------*/
94
95
96/*----------------------------------------------------------------------------
97; Define all local variables
98----------------------------------------------------------------------------*/
99
100
101/*----------------------------------------------------------------------------
102; Function body here
103----------------------------------------------------------------------------*/
104
105
106/*----------------------------------------------------------------------------
107; Return nothing or data or data pointer
108----------------------------------------------------------------------------*/
109
110
111