Home | History | Annotate | Download | only in src
      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 ----------------------------------------------------------------------------*/
     44 const 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