I have discussed with Dubcat how these curves were obtained, I believe I can now explain why the Corona curve seems to be weird, but in reality it is IMHO not.
In order to obtain the curves, the following HALD_256 image was placed in Corona VFB.
Since Corona VFB doesn't support direct loading of images, the same effect was achieved by rendering plane lit by uniform environment map and using the above image as a texture.
This however introduced noise to the image, which then results in the non-smoothness of the obtained curve. Please note that the contrast curve that Corona uses in reality is perfectly smooth.
Once the above image has been displayed in Corona VFB and contrast was applied, it is then saved and the curve is extracted from it using the 3D LUT Creator Pro
http://3dlutcreator.com/.
Unfortunately, the original Corona contrast curve can't be obtained this way. This is caused by the fact that Corona applies contrast in linear space, while the 3D LUT Creator Pro works in sRGB space.
This fact can be easily observed by the following experiment:
We took the above HALD_256 image, and we set all its values lower than 0.5 to 0. When we have computed the resulting curve, we obtained the following result:
As you can see, in the image the threshold below which all is set to 0 seems to be higher than 0.5. In fact it roughly corresponds to 0.5^(1 / 2.2).
If we first map HALD_256 image to linear space, apply the same thresholding and convert back we then receive this result, where the threshold seems to be at the middle as intended:
So when we apply the Corona contrast curve which works nicely in linear space and try to obtain it using the above way without considering linear/sRGB space, we recieve this mishapened curve:
If we first map HALD_256 image to linear space, use Corona curve and map it back, we can obtain the correct nicely shaped Corona contrast curve:
I hope this makes any sense to you guys :) If you think I have made some error in the above reasoning, let me know.