X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=gamma_expansion_effect_test.cpp;h=dc50f911f9dca122e1e6e67a1eee6131b1305dbd;hb=9b95345e8e1dde29991638ed69def0cf187e28de;hp=6fc0252c8c5a28780e7d6127790a0e942543a9f5;hpb=6dea8d2a6695a45aa6209425cdcfb4eabf704340;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); +}