TransferCharacteristics.h 682 B

12345678910111213141516171819202122232425
  1. /*
  2. * Copyright (c) 2022, Gregory Bertilson <zaggy1024@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibGfx/Vector4.h>
  8. #include <LibVideo/Color/CodingIndependentCodePoints.h>
  9. namespace Video {
  10. class TransferCharacteristicsConversion {
  11. public:
  12. static float to_linear_luminance(float value, TransferCharacteristics transfer_function);
  13. static float to_non_linear_luminance(float value, TransferCharacteristics transfer_function);
  14. // https://en.wikipedia.org/wiki/Hybrid_log-gamma
  15. // See "HLG reference OOTF"
  16. static FloatVector4 hlg_opto_optical_transfer_function(FloatVector4 const& vector, float gamma, float gain);
  17. };
  18. }