X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=gamma_expansion_effect_test.cpp;h=dc50f911f9dca122e1e6e67a1eee6131b1305dbd;hb=9a00101dbb6f98d21c6b8ce4d33200af840ea908;hp=6fc0252c8c5a28780e7d6127790a0e942543a9f5;hpb=37f56fcbe571b2322243f6de59494bf9e0cbb37a;p=movit diff --git a/gamma_expansion_effect_test.cpp b/gamma_expansion_effect_test.cpp index 6fc0252..dc50f91 100644 --- a/gamma_expansion_effect_test.cpp +++ b/gamma_expansion_effect_test.cpp @@ -95,3 +95,24 @@ TEST(GammaExpansionEffectTest, Rec709_AlphaIsUnchanged) { expect_equal(data, out_data, 5, 1); } + +TEST(GammaExpansionEffectTest, Rec2020_12BitIsVeryCloseToRec709) { + float data[256]; + for (unsigned i = 0; i < 256; ++i) { + data[i] = i / 255.0f; + } + float out_data_709[256]; + float out_data_2020[256]; + + EffectChainTester tester(data, 256, 1, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_REC_709); + tester.run(out_data_709, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR); + EffectChainTester tester2(data, 256, 1, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_REC_2020_12_BIT); + tester2.run(out_data_2020, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR); + + double sqdiff = 0.0; + for (unsigned i = 0; i < 256; ++i) { + EXPECT_NEAR(out_data_709[i], out_data_2020[i], 1e-3); + sqdiff += (out_data_709[i] - out_data_2020[i]) * (out_data_709[i] - out_data_2020[i]); + } + EXPECT_GT(sqdiff, 1e-6); +}