LIBJXL
butteraugli.h
Go to the documentation of this file.
1 /* Copyright (c) the JPEG XL Project Authors. All rights reserved.
2  *
3  * Use of this source code is governed by a BSD-style
4  * license that can be found in the LICENSE file.
5  */
6 
11 #ifndef JXL_BUTTERAUGLI_H_
12 #define JXL_BUTTERAUGLI_H_
13 
14 #if defined(__cplusplus) || defined(c_plusplus)
15 extern "C" {
16 #endif
17 
18 #include "jxl/jxl_export.h"
19 #include "jxl/memory_manager.h"
20 #include "jxl/parallel_runner.h"
21 #include "jxl/types.h"
22 
29 typedef struct JxlButteraugliApiStruct JxlButteraugliApi;
30 
37 typedef struct JxlButteraugliResultStruct JxlButteraugliResult;
38 
45 
59  const JxlMemoryManager* memory_manager);
60 
70  JxlButteraugliApi* api, JxlParallelRunner parallel_runner,
71  void* parallel_runner_opaque);
72 
80  float v);
81 
89  float v);
90 
97 
115  const JxlButteraugliApi* api, uint32_t xsize, uint32_t ysize,
116  const JxlPixelFormat* pixel_format_orig, const void* buffer_orig,
117  size_t size_orig, const JxlPixelFormat* pixel_format_dist,
118  const void* buffer_dist, size_t size_dist);
119 
128  const JxlButteraugliResult* result);
129 
138  const JxlButteraugliResult* result, float pnorm);
139 
149  const JxlButteraugliResult* result, const float** buffer,
150  uint32_t* row_stride);
151 
152 #if defined(__cplusplus) || defined(c_plusplus)
153 }
154 #endif
155 
156 #endif /* JXL_BUTTERAUGLI_H_ */
JXL_EXPORT float JxlButteraugliResultGetMaxDistance(const JxlButteraugliResult *result)
JXL_EXPORT float JxlButteraugliResultGetDistance(const JxlButteraugliResult *result, float pnorm)
JXL_EXPORT JxlButteraugliApi * JxlButteraugliApiCreate(const JxlMemoryManager *memory_manager)
JXL_EXPORT void JxlButteraugliResultDestroy(JxlButteraugliResult *result)
JXL_EXPORT void JxlButteraugliApiSetIntensityTarget(JxlButteraugliApi *api, float v)
JXL_EXPORT void JxlButteraugliApiDestroy(JxlButteraugliApi *api)
JXL_EXPORT void JxlButteraugliResultGetDistmap(const JxlButteraugliResult *result, const float **buffer, uint32_t *row_stride)
JXL_EXPORT void JxlButteraugliApiSetHFAsymmetry(JxlButteraugliApi *api, float v)
struct JxlButteraugliResultStruct JxlButteraugliResult
Definition: butteraugli.h:37
JXL_EXPORT JxlButteraugliResult * JxlButteraugliCompute(const JxlButteraugliApi *api, uint32_t xsize, uint32_t ysize, const JxlPixelFormat *pixel_format_orig, const void *buffer_orig, size_t size_orig, const JxlPixelFormat *pixel_format_dist, const void *buffer_dist, size_t size_dist)
struct JxlButteraugliApiStruct JxlButteraugliApi
Definition: butteraugli.h:29
JXL_EXPORT void JxlButteraugliApiSetParallelRunner(JxlButteraugliApi *api, JxlParallelRunner parallel_runner, void *parallel_runner_opaque)
Abstraction functions used by JPEG XL to allocate memory.
JxlParallelRetCode(* JxlParallelRunner)(void *runner_opaque, void *jpegxl_opaque, JxlParallelRunInit init, JxlParallelRunFunction func, uint32_t start_range, uint32_t end_range)
Definition: parallel_runner.h:116
Definition: memory_manager.h:48
Definition: types.h:85
Data types for the JPEG XL API, for both encoding and decoding.