mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 06:08:21 +01:00
29cc95ce4c
It's self contained apart from a dependency on src/webp/types.h and src/dsp/cpu.h For now it's only set up as an internal library, not an installable one. Webp doesn't depend on it yet, the code is only duplicated. Change-Id: I752799894f9d4105d0d296ddebd9f9641181a1ec
41 lines
1.5 KiB
C
41 lines
1.5 KiB
C
// Copyright 2022 Google Inc. All Rights Reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style license
|
|
// that can be found in the COPYING file in the root of the source
|
|
// tree. An additional intellectual property rights grant can be found
|
|
// in the file PATENTS. All contributing project authors may
|
|
// be found in the AUTHORS file in the root of the source tree.
|
|
// -----------------------------------------------------------------------------
|
|
//
|
|
// Sharp RGB to YUV conversion.
|
|
|
|
#ifndef WEBP_SHARPYUV_SHARPYUV_H_
|
|
#define WEBP_SHARPYUV_SHARPYUV_H_
|
|
|
|
#include <inttypes.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Converts RGB to YUV420 using a downsampling algorithm that minimizes
|
|
// artefacts caused by chroma subsampling.
|
|
// This is slower than standard downsampling (averaging of 4 UV values).
|
|
// Assumes that the image will be upsampled using a bilinear filter. If nearest
|
|
// neighbor is used instead, the upsampled image might look worse than with
|
|
// standard downsampling.
|
|
// TODO(maryla): add 10 bits and handling of various colorspaces. Add YUV444 to
|
|
// YUV420 conversion. Maybe also add 422 support (it's rarely used in practice,
|
|
// especially for images).
|
|
int SharpArgbToYuv(const uint8_t* r_ptr, const uint8_t* g_ptr,
|
|
const uint8_t* b_ptr, int step, int rgb_stride,
|
|
uint8_t* dst_y, int dst_stride_y, uint8_t* dst_u,
|
|
int dst_stride_u, uint8_t* dst_v, int dst_stride_v,
|
|
int width, int height);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // WEBP_SHARPYUV_SHARPYUV_H_
|