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*  ih264e_globals.c
248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief
268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  Contains definitions of global variables used across the encoder
278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author
298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*  ittiam
308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par List of functions
328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*
348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks
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 "ih264e_defs.h"
478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264e_globals.h"
488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Extern global definitions                                                 */
518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/
528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  lamda for varying quantizer scales that would be used to
568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* compute the RD cost while deciding on the MB modes.
578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : qp
588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : lambda
598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks lambda = 0.85 * pow(2, (qp - 12)/3), when SSD is used as metric
608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* for computing distortion (Bit rate estimation for cost function of H.264/
618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* AVC by Mohd Golam Sarwer et. al.)  If the use of distortion metric is SAD
628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* rather than SSD in the stage of encoding, consider sqrt(lambda) simply to
638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* adjust lambda for the lack of squaring operation in the error computation
648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* (from rate distortion optimization for video compression by sullivan).
658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD16 gu2_qp_lambda[52]=
688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       0,      0,      0,      0,      0,      0,      0,      1,
708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       1,      1,      1,      1,      1,      1,      1,      1,
718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       1,      2,      2,      2,      2,      3,      3,      3,
728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       4,      4,      5,      5,      6,      7,      7,      8,
738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       9,     10,     12,     13,     15,     17,     19,     21,
748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      23,     26,     30,     33,     37,     42,     47,     53,
758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      59,     66,     74,     83,
768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  Lamda for varying quantizer scales that would be used to
818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* compute the RD cost while deciding on the MB modes.
828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : qp
838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : lambda
848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks lambda = pow(2, (qp - 12)/6)
858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gu1_qp0[52]=
888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       0,      0,      0,      0,      0,      0,      0,      0,
908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       0,      0,      0,      0,      1,      1,      1,      1,
918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       2,      2,      2,      2,      3,      3,      3,      4,
928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S       4,      4,      5,      6,      6,      7,      8,      9,
938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      10,     11,     13,     14,     16,     18,     20,     23,
948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      25,     29,     32,     36,     40,     45,     51,     57,
958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S      64,     72,     81,     91,
968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  unsigned exp. goulumb codelengths to assign cost to a coefficient of
1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* mb types.
1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : Integer
1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : codelength
1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks Refer sec. 9-1 in h264 specification
1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 u1_uev_codelength[32] =
1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     1,      3,      3,      5,      5,      5,      5,      7,
1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     7,      7,      7,      7,      7,      7,      7,      9,
1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     9,      9,      9,      9,      9,      9,      9,      9,
1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     9,      9,      9,      9,      9,      9,      9,      11,
1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  Look up table to assign cost to a coefficient of a residual block
1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* basing on its surrounding coefficients
1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : Numbers of T1's
1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : coeff_cost
1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks Refer Section 2.3 Elimination of single coefficients in inter
1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* macroblocks in document JVT-O079
1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gu1_coeff_cost[6] =
1278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     3, 2, 2, 1, 1, 1
1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  Indices map to raster scan for luma 4x4 block
1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : scan index
1358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : scan location
1368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks None
1378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gu1_luma_scan_order[16] =
1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0,  1,  4,  8,  5,  2,  3,  6,  9,  12, 13, 10, 7,  11, 14, 15
1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  Indices map to raster scan for chroma AC block
1478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : scan index
1488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : scan location
1498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks None
1508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gu1_chroma_scan_order[15] =
1538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     1,  4,  8,  5,  2,  3,  6,  9,  12, 13, 10, 7,  11, 14, 15
1558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  Indices map to raster scan for luma 4x4 dc block
1608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : scan index
1618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : scan location
1628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks : None
1638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gu1_luma_scan_order_dc[16] =
1668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0, 1,  4,  8,  5,  2,  3,  6,  9,  12, 13, 10, 7,  11, 14, 15
1688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  Indices map to raster scan for chroma 2x2 dc block
1738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : scan index
1748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : scan location
1758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks None
1768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gu1_chroma_scan_order_dc[4] =
1798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     0, 1,  2,  3
1818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
1838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/**
1848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief  choice of motion vectors to be used during mv prediction
1868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* input  : formatted reference idx comparison metric
1878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* output : mv prediction has to be median or a simple straight forward selec
1888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* tion from neighbors.
1898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks If only one of the candidate blocks has a reference frame equal to
1908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    the current block then use the same block as the final predictor. A simple
1918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S    look up table to assist this mv prediction condition
1928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************
1938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/
1948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst WORD8 gi1_mv_pred_condition[8] =
1958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
1968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S     -1,    0,    1,    -1,    2,    -1,    -1,    -1
1978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
1988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
199134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K
200134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/*******************************************************************************
201134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Translation of MPEG QP to H264 QP
202134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K ******************************************************************************/
203134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K/*
204134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Note : RC library models QP and bits assuming the QP to be MPEG2.
205134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        Since MPEG qp varies linearly, when the relationship is computed,
206134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        it learns that delta(qp) => delta(bits). Now what we are doing by the
207134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        transation of qp is that
208134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *              QPrc = a + b*2^(QPen)
209134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        By not considering the weight matrix in both MPEG and H264 we in effect
210134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        only changing the relation to
211134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *              QPrc = c + d*2^(QPen)
212134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        This will only entatil changin the RC model parameters, and this will
213134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *        not affect rc relation at all
214134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
215134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
216134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * We have MPEG qp which varies from 0-228. The quantization factor has a linear
217134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * relation ship with the size of quantized values
218134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
219134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * We also have H264 Qp, which varies such that for a change in QP of 6 , we
220134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * double the corresponding scaling factor. Hence the scaling is linear in terms
221134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * of 2^(QPh/6)
222134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
223134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Now we want to have translation between QPm and QPh. Hence we can write
224134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
225134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * QPm = a + b*2^(QPh/6)
226134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
227134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Appling boundary condition that
228461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *      1) QPm = 0.625 if QPh = 0
229461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *      2) QPm =   224 if QPh = 51,
230134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
231134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * we will have
232461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *  a = 0.0063, b = 0.6187
233134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
234134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Hence the relatiohship is
235134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *  QPm = a + b*2^(Qph/6)
236134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *  QPh = 6*log((Qpm - a)/b)
237134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
238134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
239134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K * Unrounded values for gau1_h264_to_mpeg2_qmap[H264_QP_ELEM] =
240134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
241461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   0.625       0.70077     0.78581     0.88127     0.98843     1.10870
242461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   1.24370     1.39523     1.56533     1.75625     1.97055     2.21110
243461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   2.48110     2.78417     3.12435     3.50620     3.93480     4.41589
244461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   4.95590     5.56204     6.24241     7.00609     7.86330     8.82548
245461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   9.90550     11.11778    12.47851    14.00588    15.72030    17.64467
246461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   19.80470    22.22925    24.95072    28.00547    31.43430    35.28304
247461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   39.60310    44.45221    49.89514    56.00463    62.86230    70.55978
248461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   79.19990    88.89811    99.78398    112.00296   125.71830   141.11325
249461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   158.39350   177.78992   199.56167   223.99963
250461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *
251134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
252134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
253461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K * Unrounded values for gau1_mpeg2_to_h264_qmap[MPEG2_QP_ELEM]
254134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K *
255461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   0         4.1014    10.1288   13.6477   16.1425   18.0768   19.6568
256461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   20.9925   22.1493   23.1696   24.0822   24.9078   25.6614   26.3546
257461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   26.9964   27.5938   28.1527   28.6777   29.1726   29.6408   30.0850
258461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   30.5074   30.9102   31.2951   31.6636   32.0171   32.3567   32.6834
259461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   32.9983   33.3021   33.5957   33.8795   34.1544   34.4208   34.6793
260461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   34.9303   35.1742   35.4114   35.6423   35.8671   36.0863   36.3001
261461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   36.5087   36.7124   36.9115   37.1060   37.2963   37.4825   37.6648
262461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   37.8433   38.0182   38.1896   38.3577   38.5226   38.6844   38.8433
263461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   38.9993   39.1525   39.3031   39.4511   39.5966   39.7397   39.8804
264461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   40.0189   40.1553   40.2895   40.4217   40.5518   40.6801   40.8065
265461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   40.9310   41.0538   41.1749   41.2943   41.4121   41.5283   41.6430
266461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   41.7561   41.8678   41.9781   42.0870   42.1946   42.3008   42.4057
267461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   42.5094   42.6118   42.7131   42.8132   42.9121   43.0099   43.1066
268461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   43.2023   43.2969   43.3905   43.4831   43.5747   43.6653   43.7550
269461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   43.8438   43.9317   44.0187   44.1049   44.1901   44.2746   44.3582
270461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   44.4411   44.5231   44.6044   44.6849   44.7647   44.8438   44.9221
271461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   44.9998   45.0767   45.1530   45.2286   45.3035   45.3779   45.4515
272461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   45.5246   45.5970   45.6689   45.7401   45.8108   45.8809   45.9504
273461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   46.0194   46.0878   46.1557   46.2231   46.2899   46.3563   46.4221
274461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   46.4874   46.5523   46.6166   46.6805   46.7439   46.8069   46.8694
275461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   46.9314   46.9930   47.0542   47.1150   47.1753   47.2352   47.2947
276461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   47.3538   47.4125   47.4708   47.5287   47.5862   47.6433   47.7001
277461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   47.7565   47.8125   47.8682   47.9235   47.9785   48.0331   48.0874
278461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   48.1413   48.1949   48.2482   48.3011   48.3537   48.4060   48.4580
279461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   48.5097   48.5611   48.6122   48.6629   48.7134   48.7636   48.8135
280461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   48.8631   48.9124   48.9615   49.0102   49.0587   49.1069   49.1549
281461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   49.2026   49.2500   49.2972   49.3441   49.3908   49.4372   49.4834
282461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   49.5293   49.5750   49.6204   49.6656   49.7106   49.7553   49.7998
283461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   49.8441   49.8882   49.9320   49.9756   50.0190   50.0622   50.1051
284461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   50.1479   50.1904   50.2327   50.2749   50.3168   50.3585   50.4000
285461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   50.4413   50.4825   50.5234   50.5641   50.6047   50.6450   50.6852
286461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   50.7252   50.7650   50.8046   50.8440   50.8833   50.9224   50.9613
287461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K *   51.0000
288134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K */
289134291ea0b1b9794b4d7feee2c3ffdbd941c5237Harinarayanan K K
2908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_h264_to_mpeg2_qmap[H264_QP_ELEM] =
2918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
292461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     1,    1,    1,    1,   1,    1,    1,   1,
293461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     2,    2,    2,    2,   2,    3,    3,   4,
294461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     4,    4,    5,    6,   6,    7,    8,   9,
295461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     10,   11,   12,   14,  16,   18,   20,  22,
296461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     25,   28,   31,   35,  40,   44,   50,  56,
297461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     63,   71,   79,   89,  100,  112,  126, 141,
298461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     158,  178,  200,  224
2998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
3018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Sconst UWORD8 gau1_mpeg2_to_h264_qmap[MPEG2_QP_ELEM] =
3028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{
303461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     0,    4,    10,  14,   16,   18,  20,  21,
304461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     22,   23,   24,  25,   26,   26,  27,  28,
305461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     28,   29,   29,  30,   30,   31,  31,  31,
306461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     32,   32,   32,  33,   33,   33,  34,  34,
307461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     34,   34,   35,  35,   35,   35,  36,  36,
308461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     36,   36,   37,  37,   37,   37,  37,  37,
309461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     38,   38,   38,  38,   38,   39,  39,  39,
310461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     39,   39,   39,  39,   40,   40,  40,  40,
311461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     40,   40,   40,  41,   41,   41,  41,  41,
312461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     41,   41,   41,  42,   42,   42,  42,  42,
313461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     42,   42,   42,  42,   43,   43,  43,  43,
314461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     43,   43,   43,  43,   43,   43,  43,  44,
315461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     44,   44,   44,  44,   44,   44,  44,  44,
316461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     44,   44,   45,  45,   45,   45,  45,  45,
317461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     45,   45,   45,  45,   45,   45,  45,  46,
318461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     46,   46,   46,  46,   46,   46,  46,  46,
319461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     46,   46,   46,  46,   46,   46,  47,  47,
320461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     47,   47,   47,  47,   47,   47,  47,  47,
321461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     47,   47,   47,  47,   47,   47,  48,  48,
322461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     48,   48,   48,  48,   48,   48,  48,  48,
323461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     48,   48,   48,  48,   48,   48,  48,  48,
324461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     49,   49,   49,  49,   49,   49,  49,  49,
325461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     49,   49,   49,  49,   49,   49,  49,  49,
326461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     49,   49,   49,  49,   49,   50,  50,  50,
327461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     50,   50,   50,  50,   50,   50,  50,  50,
328461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     50,   50,   50,  50,   50,   50,  50,  50,
329461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     50,   50,   50,  50,   51,   51,  51,  51,
330461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     51,   51,   51,  51,   51,   51,  51,  51,
331461adb94c9972c032095f16d0d071006a2fed447Harinarayanan K K     51
3328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S};
3338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S
334