YUV YUV4:1:1 4K Angus Dorbie YUV4:1:1文件格式
this reffers to common terms for y'cbcr format
which separates the 'luminance' information in an
image from the chroma information, allowing the resolution of
chroma information to be reduced, exploiting the lack of color
acuity inherent in the human visual system.
there are a couple of issues with the terms in this description
as explained to me by charles poynton. firstly the common use of
the term luminance for y' is a misrepresentation and a distinction
should be drawn between this term and true cie luminance, for
example by using the term "luma", secondly the u v terms for
historical reasons are associated with adjusted levels as
broadcast from television transmitters and digital systems
actually use y'cbcr.
so yuv should more accurately mean y'cbcr.
the 4:1:1 denotes the degree of compression of chroma information
and makes less sense with newer formats, suffice to say that 4:1:1
stores full resolution y'(luma) but 1/4 resolution of cb and cr
information sampled along the horizontal axis or line.
y'cbcr 4:2:2 is actually a more commonly used professional
format where chroma components are only halved along the
horizontal axis or line.
y'cbcr 4:2:0 is used for 1/4 resolution chroma but with half
resolution horizontally and half resolution vertically.
4:4:4 denotes equal resolution of luminance and chroma.
to generate the standard cie luminance term, from an rgb triplet
y = .2125r + .7154g + .0721b, this is *different* from the y'
luma as stored in these video formats is actually
y' = .299r'+.587g'+.114b' where the r' g' and b' terms
represent scalar values which are non linear and represent
gamma corrected perceptually uniform values when represented
by an integer (gamma == .45).
chroma terms can then be produced from these valuse:
cb = b'-y'
cr = r'-y'
to reconstruct an rgb image from a 'yuv4:1:1' you must
first resample the single cbcr sample to 4 cbcr samples
to match the luminance, once this is done you should
regenerate rgb triplets by reversing the above arithmetic:
b' = cb +y'
r' = cr +y'
g' = (y'-.299r'-.114b')/.587
r' b' g' represent an rgb triplet with a built in gamma
correction of .45, this should look perfect when displayed
on a machine with no gamma correction and a crt display
(which typically have gamma transfer functions of around
note that because chroma information may be negative, the
cb cr values stored in any file format mey have to be adjusted
accordingly. for example you would subtract 127 from an 8 bit
chroma value stored in a file.
don't use the luminance equation above, it is included to show
the difference between luminance and luma or y' which is
actually stored in the file.
for more in depth information read charles a. poyntons
excellent book "a technical introduction to digital video"
pub, john wiley & sons, inc. isbn 0-471-12253-x