Image Encoding
What are the different ways to encode an image?
There are 2 things that I am confused about:
- How are images stored? How are they encoded? Are these 2 tied strongly together? What is NV12 and NV24?
I talked briefly about this through Peiliang.
Resources
These are Image Resolutions:
These are Image Compression things:
How do these relate to image encodings?
Generally, the image that you get from a camera is bgr8
I got some experience working with different kinds of cameras
Some of the most common encodings:
8UC1 = 8-bit unsigned, one channel
16-bit signed
32-bit Float (FP32)
64-bit float, a.k.a. double (FP64)
Bayer Encoding (see Bayer Filter)
- Notice that there are two
g
channels, does that have to do with the fact that there are 50% more green channels?
I also saw in VPI, there was NV12 and NV24.
Other Formats
There is NV12
and NV24
that I saw at NVIDIA. This is equivalent to YUV Image Format.
Converting between Formats
I am running into this issue while working on my VR Headset Logs SLAM project. Since the raw disparity image is encoded in signed 16 format
However, I want to convert this disparity to depth, which I would store in F32 (float). Therefore, I need to first convert the values to F32. The question is, are those values still the same?