VideoCodec/Modules/Quantization/DCTCoefficientQuantizer.h

#ifndef DCTCOEFFICIENTQUANTIZER_H_ #define DCTCOEFFICIENTQUANTIZER_H_ #include <math.h> #include "../Module.h" #include "../../Logger.h" #include "../../Data/Constants.h" #include "../../Data/PictureInfo.h" namespace VideoCodec {    class DCTCoefficientQuantizer : public VideoCodec::Module    {    public:       DCTCoefficientQuantizer();       virtual ~DCTCoefficientQuantizer();       ConfigurationStatus Configure(ConfigurationElement* configuration);       void QuantizeDCTCoefficients(PictureInfo* picture, bool isInter);       void DequantizeDCTCoefficients(PictureInfo* picture, bool isInter);       void SetQuantizationMethod(DCTCoefficientQuantizationMethod intraQuantizationMethod, DCTCoefficientQuantizationMethod interQuantizationMethod);       void SetIntraQuantizationMethod(DCTCoefficientQuantizationMethod intraQuantizationMethod);       void SetInterQuantizationMethod(DCTCoefficientQuantizationMethod interQuantizationMethod);       DCTCoefficientQuantizationMethod GetInterQuantizationMethod();       DCTCoefficientQuantizationMethod GetIntraQuantizationMethod();       UnsignedByte GetInterQuantizationScale();       UnsignedByte GetIntraQuantizationScale();       void SetInterQuantizationScale(UnsignedByte quantizationScale);       void SetIntraQuantizationScale(UnsignedByte quantizationScale);       inline void QuantizeIntraACValues(SignedShort* block, int* quantizationMatrix);       inline void DequantizeIntraACValues(SignedShort* block, int* quantizationMatrix);    private:       DCTCoefficientQuantizationMethod intraQuantizationMethod;       DCTCoefficientQuantizationMethod interQuantizationMethod;       UnsignedByte intraQuantizationScale;       UnsignedByte interQuantizationScale;    }; } #endif /*DCTCOEFFICIENTQUANTIZER_H_*/