3 ms·
Interesting that the "NTSC" look you describe is essentially rounded versions of the coefficients quoted in the comment mentioning ppm2pgm. I don't know the li
by ycombiredd 9mo ago
Interesting that the "NTSC" look you describe is essentially rounded versions of the coefficients quoted in the comment mentioning ppm2pgm. I don't know the lineage of the values you used of course, but I found it interesting nonetheless. I imagine we'll never know, but it would be cool to be able to trace the path that lead to their formula, as well as the path to you arriving at yours
- reactordev 9mo agoI’m sure it has its roots in amiga or TV broadcasting. ppm2pgm is old school too so we all tended to use the same defaults. Like q3_sqrt
- zinekeller 9mo agoThe NTSC color coefficients are the grandfather of all luminance coefficients. It is necessary that it was precisely defined because of the requirements of backwards-compatible color transmission (YIQ is the common abbreviation for the NTSC color space, I being ~reddish and Q being ~blueish), basically they treated B&W (technically monochrome) pictures like how B&W film and videotubes treated them: great in green, average in red, and poorly in blue. A bit unrelated: pre-color transition, the makeups used are actually slightly greenish too (which appears nicely in monochrome).
- shagie 9mo agoTo the "the grandfather of all luminance coefficients" ... https://www.earlytelevision.org/pdf/ntsc_signal_specifications.pdf https://www.earlytelevision.org/pdf/ntsc_signal_specificatio... from 1953. Page 5 has: Eq' = 0.41 (Eb' - Ey') + 0.48 (Er' - Ey') Ei' = -0.27(Eb' - Ey') + 0.74 (Er' - Ey') Ey' = 0.30Er' + 0.59Eg' + 0.11Eb' The last equation are those coefficients.
- zinekeller 9mo agoI was actually researching why PAL YUV has the same(-ish) coefficients, while forgetting that PAL is essentially a refinement of the NTSC color standard (PAL stands for phase-alternating line, which solves much of NTSC's color drift issues early in its life).
- adrian_b 9mo agoIt is the choice of the 3 primary colors and of the white point which determines the coefficients. PAL and SECAM use different color primaries than the original NTSC, and a different white, which lead to different coefficients. However, the original color primaries and white used by NTSC had become obsolete very quickly so they no longer corresponded with what the TV sets could actually reproduce. Eventually even for NTSC a set of primary colors was used that was close to that of PAL/SECAM, which was much later standardized by SMPTE in 1987. The NTSC broadcast signal continued to use the original formula, for backwards compatibility, but the equipment processed the colors according to the updated primaries. In 1990, Rec. 709 has standardized a set of primaries intermediate between those of PAL/SECAM and of SMPTE, which was later also adopted by sRGB.
- zinekeller 9mo agoWorse, "NTSC" is not a single standard, Japan deviated it too much that the primaries are defined by their own ARIB (notably ~9000 K white point). ... okay, technically PAL and SECAM too, but only in audio (analogue Zweikanalton versus digital NICAM), bandwidth placement (channel plan and relative placement of audio and video signals, and, uhm, teletext) and, uhm, teletext standard (French Antiope versus Britain's Teletext and Fastext).
- zinekeller 9mo ago(this is just a rant) Honestly, the weird 16-239 (on 8-bit) color range and 60000/1001 fps limitations stem from the original NTSC standard, which considering both the Japanese NTSC adaptation and European standards do not have is rather frustating nowadays. Both the HDVS and HD-MAC standards define it in precise ways (exactly 60 fps for HDVS and 0-255 color range for HD-MAC*) but America being America... * I know that HD-MAC is analog(ue), but it has an explicit digital step for transmission and it uses the whole 8 bits for the conversion!
- reactordev 9mo agoYa’ll are a gold mine. Thank you. I only knew it from my forays into computer graphics and making things look right on (now older) LCD TV’s. I pulled it from some old academia papers about why you can’t just max(uv.rgb) to do greyscale nor can you do float val = uv.r This further gets funky when we have BGR vs RGB and have to swivel the bytes beforehand. Thanks for adding clarity and history to where those weights came from, why they exist at all, and the decision tree that got us there. People don’t realize how many man hours went into those early decisions.
- ycombiredd 9mo agoCool. I could have been clearer in my post; as I understand it actual NTSC circuitry used different coefficients for RGBx and RGBy values, and I didn't take time to look up the official standard. My specific pondering was based on an assumption that neither the ppm2pgm formula nor the parent's "NTSC" formula were exact equivalents to NTSC, and my "ADHD" thoughts wondered about the provenance of how each poster came to use their respective approximations. While I write this, I realize that my actual ponderings are less interesting than the responses generated because of them, so thanks everyone for your insightful responses.
- reactordev 9mo agoThere are no stupid questions, only stupid answers. It’s questions that help us understand and knowledge is power.