aboutsummaryrefslogtreecommitdiff
path: root/files/util/yuvconstants.c
diff options
context:
space:
mode:
Diffstat (limited to 'files/util/yuvconstants.c')
-rw-r--r--files/util/yuvconstants.c106
1 files changed, 0 insertions, 106 deletions
diff --git a/files/util/yuvconstants.c b/files/util/yuvconstants.c
deleted file mode 100644
index 4e5185af..00000000
--- a/files/util/yuvconstants.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 2021 The LibYuv Project Authors. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE 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.
- */
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-// This utility computes values needed to generate yuvconstants based on
-// white point values.
-// The yuv formulas are tuned for 8 bit YUV channels.
-
-// See Also
-// https://mymusing.co/bt601-yuv-to-rgb-conversion-color/
-
-// BT.709 full range YUV to RGB reference
-// R = Y + V * 1.5748
-// G = Y - U * 0.18732 - V * 0.46812
-// B = Y + U * 1.8556
-// KR = 0.2126
-// KB = 0.0722
-
-// // Y contribution to R,G,B. Scale and bias.
-// #define YG 16320 /* round(1.000 * 64 * 256 * 256 / 257) */
-// #define YB 32 /* 64 / 2 */
-//
-// // U and V contributions to R,G,B.
-// #define UB 113 /* round(1.77200 * 64) */
-// #define UG 22 /* round(0.34414 * 64) */
-// #define VG 46 /* round(0.71414 * 64) */
-// #define VR 90 /* round(1.40200 * 64) */
-//
-// // Bias values to round, and subtract 128 from U and V.
-// #define BB (-UB * 128 + YB)
-// #define BG (UG * 128 + VG * 128 + YB)
-// #define BR (-VR * 128 + YB)
-
-int main(int argc, const char* argv[]) {
- if (argc < 3) {
- printf("yuvconstants [KR] [KB]\n");
- printf(" e.g. yuvconstants 0.2126 0.0722\n");
- printf(" MC BT KR KB\n");
- printf(" 1 BT.709 KR = 0.2126; KB = 0.0722\n");
- printf(" 4 FCC KR = 0.30; KB = 0.11\n");
- printf(" 6 BT.601 KR = 0.299; KB = 0.114\n");
- printf(" 7 SMPTE 240M KR = 0.212; KB = 0.087\n");
- printf(" 9 BT.2020 KR = 0.2627; KB = 0.0593\n");
- return -1;
- }
- float kr = (float)atof(argv[1]);
- float kb = (float)atof(argv[2]);
- float kg = 1 - kr - kb;
-
- float vr = 2 * (1 - kr);
- float ug = 2 * ((1 - kb) * kb / kg);
- float vg = 2 * ((1 - kr) * kr / kg);
- float ub = 2 * (1 - kb);
-
- printf("Full range\n");
- printf("R = Y + V * %5f\n", vr);
- printf("G = Y - U * %6f - V * %6f\n", ug, vg);
- printf("B = Y + U * %5f\n", ub);
-
- printf("KR = %4f; ", kr);
- printf("KB = %4f\n", kb);
- // printf("KG = %4f\n", kg);
- // #define YG 16320 /* round(1.000 * 64 * 256 * 256 / 257) */
- // #define YB 32 /* 64 / 2 */
- //
- // // U and V contributions to R,G,B.
-
- printf("UB %-3.0f /* round(%f * 64 = %8.4f) */\n", round(ub * 64), ub, ub * 64);
- printf("UG %-3.0f /* round(%f * 64 = %8.4f) */\n", round(ug * 64), ug, ug * 64);
- printf("VG %-3.0f /* round(%f * 64 = %8.4f) */\n", round(vg * 64), vg, vg * 64);
- printf("VR %-3.0f /* round(%f * 64 = %8.4f) */\n", round(vr * 64), vr, vr * 64);
-
- vr = 255.f / 224.f * 2 * (1 - kr);
- ug = 255.f / 224.f * 2 * ((1 - kb) * kb / kg);
- vg = 255.f / 224.f * 2 * ((1 - kr) * kr / kg);
- ub = 255.f / 224.f * 2 * (1 - kb);
-
- printf("\nLimited range\n");
- printf("R = (Y - 16) * 1.164 + V * %5f\n", vr);
- printf("G = (Y - 16) * 1.164 - U * %6f - V * %6f\n", ug, vg);
- printf("B = (Y - 16) * 1.164 + U * %5f\n", ub);
-
- // printf("KG = %4f\n", kg);
- // #define YG 16320 /* round(1.000 * 64 * 256 * 256 / 257) */
- // #define YB 32 /* 64 / 2 */
- //
- // // U and V contributions to R,G,B.
-
- printf("UB %-3.0f /* round(%f * 64 = %8.4f) */\n", round(ub * 64), ub, ub * 64);
- printf("UG %-3.0f /* round(%f * 64 = %8.4f) */\n", round(ug * 64), ug, ug * 64);
- printf("VG %-3.0f /* round(%f * 64 = %8.4f) */\n", round(vg * 64), vg, vg * 64);
- printf("VR %-3.0f /* round(%f * 64 = %8.4f) */\n", round(vr * 64), vr, vr * 64);
-
- return 0;
-}