QuantizerOJPH.h
Go to the documentation of this file.
/*
* Copyright (C) 2016-2023 Grok Image Compression Inc.
*
* This source code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This source code is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*
* This source code incorporates work covered by the following license:
*/
// This software is released under the 2-Clause BSD license, included
// below.
//
// Copyright (c) 2019, Aous Naman
// Copyright (c) 2019, Kakadu Software Pty Ltd, Australia
// Copyright (c) 2019, The University of New South Wales, Australia
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//***************************************************************************/
// This file is part of the OpenJPH software implementation.
// File: ojph_expand.cpp
// Author: Aous Naman
// Date: 28 August 2019
//***************************************************************************/
#pragma once
#include <Quantizer.h>
namespace ojph
{
struct QuantizerOJPH : public grk::Quantizer
{
public:
QuantizerOJPH(bool reversible, uint8_t guard_bits);
void generate(uint32_t decomps, uint32_t max_bit_depth, bool color_transform,
bool is_signed) override;
bool write(grk::BufferedStream* stream) override;
private:
uint32_t get_MAGBp() const;
void set_rev_quant(uint32_t bit_depth, bool is_employing_color_transform);
void set_irrev_quant();
float base_delta;
};
} // namespace ojph
Quantizer.h
ojph
Definition ojph_block_common.cpp:48
grk::BufferedStream
Definition BufferedStream.h:35
grk::Quantizer
Definition Quantizer.h:39
ojph::QuantizerOJPH
Definition QuantizerOJPH.h:61
ojph::QuantizerOJPH::get_MAGBp
uint32_t get_MAGBp() const
Definition QuantizerOJPH.cpp:242
ojph::QuantizerOJPH::set_rev_quant
void set_rev_quant(uint32_t bit_depth, bool is_employing_color_transform)
Definition QuantizerOJPH.cpp:175
ojph::QuantizerOJPH::generate
void generate(uint32_t decomps, uint32_t max_bit_depth, bool color_transform, bool is_signed) override
Definition QuantizerOJPH.cpp:160
ojph::QuantizerOJPH::set_irrev_quant
void set_irrev_quant()
Definition QuantizerOJPH.cpp:195
ojph::QuantizerOJPH::base_delta
float base_delta
Definition QuantizerOJPH.h:72
ojph::QuantizerOJPH::write
bool write(grk::BufferedStream *stream) override
Definition QuantizerOJPH.cpp:260