00001 00002 /*! 00003 ************************************************************************************* 00004 * \file quantChroma.c 00005 * 00006 * \brief 00007 * Quantization initialization function for Chroma blocks 00008 * 00009 * \author 00010 * Main contributors (see contributors.h for copyright, address and affiliation details) 00011 * - Alexis Michael Tourapis <alexismt@ieee.org> 00012 * 00013 ************************************************************************************* 00014 */ 00015 00016 #include "contributors.h" 00017 00018 #include "global.h" 00019 #include "quant4x4.h" 00020 #include "quantChroma.h" 00021 00022 /*! 00023 ************************************************************************ 00024 * \brief 00025 * Quantization initialization function 00026 * 00027 ************************************************************************ 00028 */ 00029 void init_quant_Chroma(InputParameters *params, ImageParameters *img, Slice *currSlice) 00030 { 00031 if (params->UseRDOQuant == 1 && params->RDOQ_CR == 1) 00032 { 00033 quant_ac4x4cr = quant_ac4x4_trellis; 00034 if (params->RDOQ_DC_CR) 00035 { 00036 if (img->yuv_format == YUV422) 00037 quant_dc_cr = quant_dc4x2_trellis; 00038 else 00039 quant_dc_cr = quant_dc2x2_trellis; 00040 } 00041 else 00042 { 00043 if (img->yuv_format == YUV422) 00044 quant_dc_cr = quant_dc4x2_normal; 00045 else 00046 quant_dc_cr = quant_dc2x2_normal; 00047 } 00048 if (currSlice->symbol_mode == CABAC) 00049 rdoq_dc_cr = rdoq_dc_cr_CABAC; 00050 else 00051 rdoq_dc_cr = rdoq_dc_cr_CAVLC; 00052 } 00053 else if (params->UseRDOQuant == 1 || (!img->AdaptiveRounding)) 00054 { 00055 quant_ac4x4cr = quant_ac4x4_normal; 00056 if (img->yuv_format == YUV422) 00057 quant_dc_cr = quant_dc4x2_normal; 00058 else 00059 quant_dc_cr = quant_dc2x2_normal; 00060 } 00061 else 00062 { 00063 quant_ac4x4cr = quant_ac4x4_around; 00064 if (img->yuv_format == YUV422) 00065 quant_dc_cr = quant_dc4x2_around; 00066 else 00067 quant_dc_cr = quant_dc2x2_around; 00068 } 00069 } 00070 00071