18d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/******************************************************************************
28d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
38d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Copyright (C) 2015 The Android Open Source Project
48d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
58d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Licensed under the Apache License, Version 2.0 (the "License");
68d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * you may not use this file except in compliance with the License.
78d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * You may obtain a copy of the License at:
88d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
98d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * http://www.apache.org/licenses/LICENSE-2.0
108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Unless required by applicable law or agreed to in writing, software
128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * distributed under the License is distributed on an "AS IS" BASIS,
138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * See the License for the specific language governing permissions and
158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * limitations under the License.
168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *****************************************************************************
188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*******************************************************************************
228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @file
238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  ih264_common_tables.c
248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief
268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Contains common global tables
278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author
298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Harish M
308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par List of Functions:
328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks
348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  None
358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*******************************************************************************
378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* File Includes                                                             */
418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* User include files */
448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_typedefs.h"
458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_defs.h"
468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_macros.h"
478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_structs.h"
488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_common_tables.h"
498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Extern global definitions                                                 */
538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ******************************************************************************
578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief  while encoding, basing on the input configuration parameters, the
588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * the level of the bitstream is computed basing on the table below.
598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * input  : table_idx
608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * output : level_idc or cpb size
618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @remarks Table A-1 � level table limits
628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ******************************************************************************
638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst level_tables_t gas_ih264_lvl_tbl[16] =
658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_10,    1485,       99,         297,       64,         175,         64  },
67329d7714ba4d26745fbef4463d891992043fe066Martin Storsjo    { IH264_LEVEL_1B,    1485,       99,         297,       128,        350,         64  },
68329d7714ba4d26745fbef4463d891992043fe066Martin Storsjo    { IH264_LEVEL_11,    3000,       396,        675,       192,        500,         128 },
698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_12,    6000,       396,        1782,      384,        1000,        128 },
708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_13,    11880,      396,        1782,      768,        2000,        128 },
718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_20,    11880,      396,        1782,      2000,       2000,        128 },
728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_21,    19800,      792,        3564,      4000,       4000,        256 },
738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_22,    20250,      1620,       6075,      4000,       4000,        256 },
748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_30,    40500,      1620,       6075,      10000,      10000,       256 },
758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_31,    108000,     3600,       13500,     14000,      14000,       512 },
768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_32,    216000,     5120,       15360,     20000,      20000,       512 },
778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_40,    245760,     8192,       24576,     20000,      25000,       512 },
788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_41,    245760,     8192,       24576,     50000,      62500,       512 },
798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_42,    522240,     8704,       26112,     50000,      62500,       512 },
808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_50,    589824,     22080,      82800,     135000,     135000,      512 },
818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    { IH264_LEVEL_51,    983040,     36864,      138240,    240000,     240000,      512 },
828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Array containing supported levels
878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst WORD32 gai4_ih264_levels[] =
898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_10,
918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_11,
928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_12,
938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_13,
948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_20,
958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_21,
968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_22,
978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_30,
988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_31,
998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_32,
1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_40,
1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_41,
1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_42,
1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_50,
1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    IH264_LEVEL_51,
1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Array giving size of max luma samples in a picture for a given level
1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst WORD32 gai4_ih264_max_luma_pic_size[] =
1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1 */
1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    25344,
1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.1 */
1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    101376,
1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.2 */
1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    101376,
1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.3 */
1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    101376,
1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2 */
1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    101376,
1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2.1 */
1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    202752,
1258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2.2 */
1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    414720,
1278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3 */
1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    414720,
1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3.1 */
1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    921600,
13123461c3cb019e6246ed841ac82564742ae288db3Martin Storsjo    /* Level 3.2 */
1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    1310720,
1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4 */
1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    2097152,
1358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4.1 */
1368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    2097152,
1378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4.2 */
1388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    2228224,
1398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 5 */
1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    5652480,
1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 5.1 */
1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    9437184
1438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Max width and height allowed for a given level */
1478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** This is derived as SQRT(8 * gai4_ih264_max_luma_pic_size[]) */
1488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst WORD32 gai4_ih264_max_wd_ht[] =
1498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1 */
1518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    451,
1528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.1 */
1538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    901,
1548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.2 */
1558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    901,
1568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.3 */
1578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    901,
1588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2 */
1598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    901,
1608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2.1 */
1618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    1274,
1628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2.2 */
1638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    1822,
1648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3 */
1658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    1822,
1668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3.1 */
1678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    2716,
1688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3.2 */
1698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    3239,
1708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4 */
1718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    4096,
1728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4.1 */
1738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    4096,
1748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4.2 */
1758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    4223,
1768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 5 */
1778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    6725,
1788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 5.1 */
1798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    8689
1808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Min width and height allowed for a given level */
1838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** This is derived as gai4_ih264_max_luma_pic_size[]/gai4_ih264_max_wd_ht[] */
1848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst WORD32 gai4_ih264_min_wd_ht[] =
1858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1 */
1878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    57,
1888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.1 */
1898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    113,
1908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.2 */
1918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    113,
1928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 1.3 */
1938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    113,
1948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2 */
1958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    113,
1968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2.1 */
1978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    160,
1988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 2.2 */
1998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    228,
2008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3 */
2018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    228,
2028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3.1 */
2038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    340,
2048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 3.2 */
2058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    405,
2068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4 */
2078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    512,
2088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4.1 */
2098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    512,
2108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 4.2 */
2118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    528,
2128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 5 */
2138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    841,
2148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* Level 5.1 */
2158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    1087
2168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
2188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-11 Macroblock types for I slices */
2218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sintra_mbtype_info_t gas_ih264_i_mbtype_info[] =
2228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
2238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* For first entry, if transform_size_8x8_flag is 1, mode will be MBPART_I8x8 */
2248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    /* This has to be taken care while accessing the table */
2258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I4x4,   VERT_I16x16,     0,  0},
2268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, VERT_I16x16,     0,  0},
2278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, HORZ_I16x16,     0,  0},
2288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, DC_I16x16,       0,  0},
2298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, PLANE_I16x16,    0,  0},
2308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, VERT_I16x16,     1,  0},
2318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, HORZ_I16x16,     1,  0},
2328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, DC_I16x16,       1,  0},
2338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, PLANE_I16x16,    1,  0},
2348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, VERT_I16x16,     2,  0},
2358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, HORZ_I16x16,     2,  0},
2368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, DC_I16x16,       2,  0},
2378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, PLANE_I16x16,    2,  0},
2388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, VERT_I16x16,     0,  15},
2398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, HORZ_I16x16,     0,  15},
2408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, DC_I16x16,       0,  15},
2418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, PLANE_I16x16,    0,  15},
2428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, VERT_I16x16,     1,  15},
2438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, HORZ_I16x16,     1,  15},
2448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, DC_I16x16,       1,  15},
2458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, PLANE_I16x16,    1,  15},
2468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, VERT_I16x16,     2,  15},
2478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, HORZ_I16x16,     2,  15},
2488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, DC_I16x16,       2,  15},
2498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_I16x16, PLANE_I16x16,    2,  15},
2508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_IPCM,   VERT_I16x16,     0,  0}
2518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
2528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-13 Macroblock types for P slices */
2548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sinter_mbtype_info_t gas_ih264_p_mbtype_info[] =
2558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
2568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_L0,  MBPART_NA,  16, 16},
2578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,  MBPART_L0,  16, 8},
2588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,  MBPART_L0,  8,  16},
2598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_NA,  MBPART_NA,  8,  8},
2608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_NA,  MBPART_NA,  8,  8},
2618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
2628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-14 Macroblock types for B slices */
2648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sinter_mbtype_info_t gas_ih264_b_mbtype_info[] =
2658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
2668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {0, MBPART_DIRECT,  MBPART_NA,  8,  8,  },
2678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_L0,      MBPART_NA,  16, 16, },
2688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_L1,      MBPART_NA,  16, 16, },
2698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_BI,      MBPART_NA,  16, 16, },
2708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      MBPART_L0,  16, 8,  },
2718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      MBPART_L0,  8,  16, },
2728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      MBPART_L1,  16, 8,  },
2738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      MBPART_L1,  8,  16, },
2748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      MBPART_L1,  16, 8,  },
2758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      MBPART_L1,  8,  16, },
2768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      MBPART_L0,  16, 8,  },
2778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      MBPART_L0,  8,  16, },
2788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      MBPART_BI,  16, 8,  },
2798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      MBPART_BI,  8,  16, },
2808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      MBPART_BI,  16, 8,  },
2818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      MBPART_BI,  8,  16, },
2828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      MBPART_L0,  16, 8,  },
2838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      MBPART_L0,  8,  16, },
2848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      MBPART_L1,  16, 8,  },
2858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      MBPART_L1,  8,  16, },
2868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      MBPART_BI,  16, 8,  },
2878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      MBPART_BI,  8,  16, },
2888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_NA,      MBPART_NA,  8,  8,  },
2898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
2908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
2918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-17 � Sub-macroblock types in P macroblocks */
2928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Ssubmbtype_info_t gas_ih264_p_submbtype_info[] =
2938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
2948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S   {1, MBPART_L0, 8,  8},
2958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S   {2, MBPART_L0, 8,  4},
2968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S   {2, MBPART_L0, 4,  8},
2978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S   {4, MBPART_L0, 4,  4},
2988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
2998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-18 � Sub-macroblock types in B macroblocks */
3018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Ssubmbtype_info_t gas_ih264_b_submbtype_info[] =
3028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_DIRECT,  4,  4},
3048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_L0,      8,  8},
3058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_L1,      8,  8},
3068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {1, MBPART_BI,      8,  8},
3078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      8,  4},
3088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L0,      4,  8},
3098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      8,  4},
3108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_L1,      4,  8},
3118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      8,  4},
3128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {2, MBPART_BI,      4,  8},
3138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_L0,      4,  4},
3148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_L1,      4,  4},
3158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {4, MBPART_BI,      4,  4},
3168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_inv_scan_prog4x4[] =
3228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    0,   1,  4,  8,
3248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    5,   2,  3,  6,
3258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    9,  12, 13, 10,
3268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    7,  11, 14, 15
3278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_inv_scan_int4x4[] =
3308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0, 4,  1,  8,
3328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    12, 5,  9,  13,
3338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     2, 6, 10,  14,
3348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     3, 7, 11,  15
3358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Inverse scan tables for individual 4x4 blocks of 8x8 transform coeffs of CAVLC */
3388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* progressive */
3398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_inv_scan_prog8x8_cavlc[64] =
3408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0,  9, 17, 18, 12, 40, 27,  7,
3428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    35, 57, 29, 30, 58, 38, 53, 47,
3438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     1,  2, 24, 11, 19, 48, 20, 14,
3448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    42, 50, 22, 37, 59, 31, 60, 55,
3458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     8,  3, 32,  4, 26, 41, 13, 21,
3468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    49, 43, 15, 44, 52, 39, 61, 62,
3478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 10, 25,  5, 33, 34,  6, 28,
3488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    56, 36, 23, 51, 45, 46, 54, 63
3498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* interlace */
3528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_inv_scan_int8x8_cavlc[64] =
3538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0,  9,  2, 56, 18, 26, 34, 27,
3558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    35, 28, 36, 29, 45,  7, 54, 39,
3568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     8, 24, 25, 33, 41, 11, 42, 12,
3578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    43, 13, 44, 14, 53, 15, 62, 47,
3588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 32, 40, 10, 49,  4, 50,  5,
3598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    51,  6, 52, 22, 61, 38, 23, 55,
3608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     1, 17, 48,  3, 57, 19, 58, 20,
3618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    59, 21, 60, 37, 30, 46, 31, 63
3628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*Inverse scan tables for individual 8x8 blocks of 8x8 transform coeffs of CABAC */
3678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* progressive */
3688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_inv_scan_prog8x8_cabac[64] =
3708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0,  1,  8, 16,  9, 2,   3, 10,
3728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    17, 24, 32, 25, 18, 11,  4,  5,
3738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    12, 19, 26, 33, 40, 48, 41, 34,
3748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    27, 20, 13,  6,  7, 14, 21, 28,
3758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    35, 42, 49, 56, 57, 50, 43, 36,
3768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    29, 22, 15, 23, 30, 37, 44, 51,
3778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    58, 59, 52, 45, 38, 31, 39, 46,
3788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    53, 60, 61, 54, 47, 55, 62, 63
3798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* interlace */
3838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_inv_scan_int8x8_cabac[64] =
3858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0,  8, 16,  1,  9, 24, 32, 17,
3878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     2, 25, 40, 48, 56, 33, 10, 3,
3888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    18, 41, 49, 57, 26, 11,  4, 19,
3898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    34, 42, 50, 58, 27, 12,  5, 20,
3908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    35, 43, 51, 59, 28, 13,  6, 21,
3918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    36, 44, 52, 60, 29, 14, 22, 37,
3928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    45, 53, 61, 30,  7, 15, 38, 46,
3938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    54, 62, 23, 31, 39, 47, 55, 63
3948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
39791d2783e2b9be47c69960ffeaf77dd3c11473f1dMartin Storsjoconst UWORD8 *const gpau1_ih264_inv_scan8x8[] =
3988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
3998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     gau1_ih264_inv_scan_prog8x8_cavlc,
4008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     gau1_ih264_inv_scan_int8x8_cavlc,
4018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     gau1_ih264_inv_scan_prog8x8_cabac,
4028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     gau1_ih264_inv_scan_int8x8_cabac
4038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
4048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
40591d2783e2b9be47c69960ffeaf77dd3c11473f1dMartin Storsjoconst UWORD8 *const gpau1_ih264_inv_scan4x4[] =
4068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
4078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     gau1_ih264_inv_scan_prog4x4,
4088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     gau1_ih264_inv_scan_int4x4,
4098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
4108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_8x8_subblk_idx[] =
4128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
4138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      0,    1,   4,  5,
4148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      2,    3,   6,  7,
4158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      8,    9,  12, 13,
4168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     10,   11,  14, 15
4178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
4188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Table 8-15 Chroma QP offset table */
4218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_chroma_qp[] =
4228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
4238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      0,  1,  2,  3,  4,  5,  6,  7,
4248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      8,  9, 10, 11, 12, 13, 14, 15,
4258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     16, 17, 18, 19, 20, 21, 22, 23,
4268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     24, 25, 26, 27, 28, 29, 29, 30,
4278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     31, 32, 32, 33, 34, 34, 35, 35,
4288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     36, 36, 37, 37, 37, 38, 38, 38,
4298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     39, 39, 39, 39
4308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
4318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
4348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
4358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  look up table to compute neigbour availability of 4x4 blocks
4368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : subblk idx, mb neighbor availability
4378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : sub blk neighbor availability
4388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks
4398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
4408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
4418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_4x4_ngbr_avbl[16][16] =
4428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
4438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x0, 0x1, 0xc, 0x7, 0x1, 0x1, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x1, 0x1, 0xf, 0x7, 0x1, 0x1, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x2, 0x1, 0xc, 0x7, 0x1, 0x1, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x3, 0x1, 0xf, 0x7, 0x1, 0x1, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xd, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xe, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x0, 0x1, 0xc, 0x7, 0x1, 0x9, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x1, 0x1, 0xf, 0x7, 0x1, 0x9, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x2, 0x1, 0xc, 0x7, 0x1, 0x9, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x3, 0x1, 0xf, 0x7, 0x1, 0x9, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xc, 0xf, 0xc, 0x7, 0xf, 0xf, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xd, 0xf, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xe, 0xf, 0xc, 0x7, 0xf, 0xf, 0xf, 0x7, 0xc, 0xf, 0xc, 0x7, 0xf, 0x7, 0xf, 0x7 },
4618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xf, 0xf, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0xf, 0xf, 0x7, 0xf, 0x7, 0xf, 0x7 },
4628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
4638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
4668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
4678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  look up table to compute neigbour availability of 8x8 blocks
4688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : subblk idx, mb neighbor availability
4698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : sub blk neighbor availability
4708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks
4718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
4728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
4738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_ih264_8x8_ngbr_avbl[16][4] =
4748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
4758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x0, 0x1, 0xc, 0x7 },
4768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x1, 0x1, 0xf, 0x7 },
4778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x2, 0x1, 0xc, 0x7 },
4788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x3, 0x1, 0xf, 0x7 },
4798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xc, 0x7, 0xc, 0x7 },
4818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xd, 0x7, 0xf, 0x7 },
4828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xe, 0x7, 0xc, 0x7 },
4838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xf, 0x7, 0xf, 0x7 },
4848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x0, 0x9, 0xc, 0x7 },
4868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x1, 0x9, 0xf, 0x7 },
4878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x2, 0x9, 0xc, 0x7 },
4888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0x3, 0x9, 0xf, 0x7 },
4898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xc, 0xf, 0xc, 0x7 },
4918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xd, 0xf, 0xf, 0x7 },
4928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xe, 0xf, 0xc, 0x7 },
4938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    {  0xf, 0xf, 0xf, 0x7 },
4948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
4958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
4968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-3 Default intra 4x4 scaling list */
4978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_intra4x4_scaling_list[] =
4988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
4998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     6, 13, 13, 20,
5008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    20, 20, 28, 28,
5018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    28, 28, 32, 32,
5028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    32, 37, 37, 42
5038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-3 Default inter 4x4 scaling list */
5068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_inter4x4_scaling_list[] =
5078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    10, 14, 14, 20,
5098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    20, 20, 24, 24,
5108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    24, 24, 27, 27,
5118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    27, 30, 30, 34
5128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inverse scanned output of gau2_ih264_default_intra4x4_scaling_list */
5158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_intra4x4_weight_scale[] =
5168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     6, 13, 20, 28,
5188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    13, 20, 28, 32,
5198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    20, 28, 32, 37,
5208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    28, 32, 37, 42
5218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inverse scanned output of gau2_ih264_default_inter4x4_scaling_list */
5248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_inter4x4_weight_scale[] =
5258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     10, 14, 20, 24,
5278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     14, 20, 24, 27,
5288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     20, 24, 27, 30,
5298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     24, 27, 30, 34
5308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-4 Default intra 8x8 scaling list */
5338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_intra8x8_scaling_list[] =
5348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     6, 10, 10, 13, 11, 13, 16, 16,
5368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 18, 18, 18, 18, 18, 23,
5378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    23, 23, 23, 23, 23, 25, 25, 25,
5388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    25, 25, 25, 25, 27, 27, 27, 27,
5398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    27, 27, 27, 27, 29, 29, 29, 29,
5408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    29, 29, 29, 31, 31, 31, 31, 31,
5418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    31, 33, 33, 33, 33, 33, 36, 36,
5428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    36, 36, 38, 38, 38, 40, 40, 42
5438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** Table 7-4 Default inter 8x8 scaling list */
5468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_inter8x8_scaling_list[] =
5478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    9,  13, 13, 15, 13, 15, 17, 17,
5498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    17, 17, 19, 19, 19, 19, 19, 21,
5508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    21, 21, 21, 21, 21, 22, 22, 22,
5518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    22, 22, 22, 22, 24, 24, 24, 24,
5528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    24, 24, 24, 24, 25, 25, 25, 25,
5538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    25, 25, 25, 27, 27, 27, 27, 27,
5548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    27, 28, 28, 28, 28, 28, 30, 30,
5558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    30, 30, 32, 32, 32, 33, 33, 35
5568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inverse scanned output of gau2_ih264_default_intra8x8_scaling_list */
5598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_intra8x8_weight_scale[] =
5608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     6, 10, 13, 16, 18, 23, 25, 27,
5628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    10, 11, 16, 18, 23, 25, 27, 29,
5638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    13, 16, 18, 23, 25, 27, 29, 31,
5648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 18, 23, 25, 27, 29, 31, 33,
5658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    18, 23, 25, 27, 29, 31, 33, 36,
5668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    23, 25, 27, 29, 31, 33, 36, 38,
5678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    25, 27, 29, 31, 33, 36, 38, 40,
5688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    27, 29, 31, 33, 36, 38, 40, 42
5698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inverse scanned output of gau2_ih264_default_inter8x8_scaling_list */
5728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_default_inter8x8_weight_scale[] =
5738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     9, 13, 15, 17, 19, 21, 22, 24,
5758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    13, 13, 17, 19, 21, 22, 24, 25,
5768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    15, 17, 19, 21, 22, 24, 25, 27,
5778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    17, 19, 21, 22, 24, 25, 27, 28,
5788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    19, 21, 22, 24, 25, 27, 28, 30,
5798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    21, 22, 24, 25, 27, 28, 30, 32,
5808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    22, 24, 25, 27, 28, 30, 32, 33,
5818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    24, 25, 27, 28, 30, 32, 33, 35
5828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Eq 7-8 Flat scaling matrix for 4x4 */
5848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_flat_4x4_weight_scale[] =
5858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16,
5878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16,
5888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16,
5898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16
5908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
5918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
5928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Eq 7-9 Flat scaling matrix for 8x8 */
5938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_flat_8x8_weight_scale[] =
5948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
5958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
5968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
5978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
5988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
5998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
6008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
6018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16,
6028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    16, 16, 16, 16, 16, 16, 16, 16
6038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
6048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
6078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ******************************************************************************
6088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief  Scale Table for inverse quantizing 4x4 subblock. To inverse quantize
6098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * a given 4x4 quantized block, the coefficient at index location (i,j) is scaled
6108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * by one of the constants in this table and right shift the result by abs (4 -
6118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * floor(qp/6)), here qp is the quantization parameter used to quantize the mb.
6128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
6138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * input   : 16 * qp%6, index location (i,j)
6148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * output  : scale constant.
6158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
6168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @remarks 16 constants for each index position of the subblock and 6 for each
6178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * qp%6 in the range 0-5 inclusive.
6188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ******************************************************************************
6198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
6208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_iquant_scale_matrix_4x4[96] =
6228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
6238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      10,  13,  10,  13,
6248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      13,  16,  13,  16,
6258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      10,  13,  10,  13,
6268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      13,  16,  13,  16,
6278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      11,  14,  11,  14,
6298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      14,  18,  14,  18,
6308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      11,  14,  11,  14,
6318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      14,  18,  14,  18,
6328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      13,  16,  13,  16,
6348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      16,  20,  16,  20,
6358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      13,  16,  13,  16,
6368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      16,  20,  16,  20,
6378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      14,  18,  14,  18,
6398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      18,  23,  18,  23,
6408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      14,  18,  14,  18,
6418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      18,  23,  18,  23,
6428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      16,  20,  16,  20,
6448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      20,  25,  20,  25,
6458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      16,  20,  16,  20,
6468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      20,  25,  20,  25,
6478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      18,  23,  18,  23,
6498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      23,  29,  23,  29,
6508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      18,  23,  18,  23,
6518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      23,  29,  23,  29,
6528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
6548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
6568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ******************************************************************************
6578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @brief  Scale Table for inverse quantizing 8x8 subblock. To inverse quantize
6588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * a given 8x8 quantized block, the coefficient at index location (i,j) is scaled
6598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * by one of the constants in this table and right shift the result by abs (4 -
6608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * floor(qp/6)), here qp is the quantization parameter used to quantize the mb.
6618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
6628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * input   : qp%6, index location (i,j)
6638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * output  : scale constant.
6648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S *
6658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * @remarks 64 constants for each index position of the subblock and 6 for each
6668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * qp%6 in the range 0-5 inclusive.
6678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ******************************************************************************
6688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */
6698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gau2_ih264_iquant_scale_matrix_8x8 [384] =
6708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
6718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      20,  19,  25,  19,  20,  19,  25,  19,
6728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      19,  18,  24,  18,  19,  18,  24,  18,
6738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      25,  24,  32,  24,  25,  24,  32,  24,
6748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      19,  18,  24,  18,  19,  18,  24,  18,
6758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      20,  19,  25,  19,  20,  19,  25,  19,
6768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      19,  18,  24,  18,  19,  18,  24,  18,
6778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      25,  24,  32,  24,  25,  24,  32,  24,
6788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      19,  18,  24,  18,  19,  18,  24,  18,
6798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      22,  21,  28,  21,  22,  21,  28,  21,
6818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      21,  19,  26,  19,  21,  19,  26,  19,
6828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      28,  26,  35,  26,  28,  26,  35,  26,
6838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      21,  19,  26,  19,  21,  19,  26,  19,
6848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      22,  21,  28,  21,  22,  21,  28,  21,
6858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      21,  19,  26,  19,  21,  19,  26,  19,
6868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      28,  26,  35,  26,  28,  26,  35,  26,
6878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      21,  19,  26,  19,  21,  19,  26,  19,
6888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      26,  24,  33,  24,  26,  24,  33,  24,
6908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      24,  23,  31,  23,  24,  23,  31,  23,
6918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      33,  31,  42,  31,  33,  31,  42,  31,
6928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      24,  23,  31,  23,  24,  23,  31,  23,
6938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      26,  24,  33,  24,  26,  24,  33,  24,
6948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      24,  23,  31,  23,  24,  23,  31,  23,
6958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      33,  31,  42,  31,  33,  31,  42,  31,
6968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      24,  23,  31,  23,  24,  23,  31,  23,
6978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
6988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      28,  26,  35,  26,  28,  26,  35,  26,
6998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      26,  25,  33,  25,  26,  25,  33,  25,
7008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      35,  33,  45,  33,  35,  33,  45,  33,
7018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      26,  25,  33,  25,  26,  25,  33,  25,
7028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      28,  26,  35,  26,  28,  26,  35,  26,
7038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      26,  25,  33,  25,  26,  25,  33,  25,
7048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      35,  33,  45,  33,  35,  33,  45,  33,
7058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      26,  25,  33,  25,  26,  25,  33,  25,
7068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
7078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      32,  30,  40,  30,  32,  30,  40,  30,
7088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      30,  28,  38,  28,  30,  28,  38,  28,
7098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      40,  38,  51,  38,  40,  38,  51,  38,
7108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      30,  28,  38,  28,  30,  28,  38,  28,
7118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      32,  30,  40,  30,  32,  30,  40,  30,
7128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      30,  28,  38,  28,  30,  28,  38,  28,
7138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      40,  38,  51,  38,  40,  38,  51,  38,
7148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      30,  28,  38,  28,  30,  28,  38,  28,
7158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
7168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      36,  34,  46,  34,  36,  34,  46,  34,
7178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      34,  32,  43,  32,  34,  32,  43,  32,
7188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      46,  43,  58,  43,  46,  43,  58,  43,
7198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      34,  32,  43,  32,  34,  32,  43,  32,
7208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      36,  34,  46,  34,  36,  34,  46,  34,
7218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      34,  32,  43,  32,  34,  32,  43,  32,
7228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      46,  43,  58,  43,  46,  43,  58,  43,
7238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      34,  32,  43,  32,  34,  32,  43,  32,
7248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
7258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
726