(Cross发布到libjpeg-turbo-users列表。)
我遇到了libjpeg-turbo的问题。
tjCompress2函数需要压缩RGB或灰度图像。
http://libjpeg-turbo.sourceforge.net/ljtdoc.branches_1.3.x/turbojpeg-c/group___turbo_j_p_e_g.html#gaba62b7a98f960839b588579898495cf2
(抱歉,您必须粘贴该链接,因为它会打破降价。)
我的网络摄像头(PS3 EyeToy)具有以下特点:
chris@raspberrypi ~ $ v4l2-ctl --get-fmt-video
Format Video Capture:
Width/Height : 320/240
Pixel Format : 'YUYV'
Field : None
Bytes per Line: 640
Size Image : 153600
Colorspace : SRGB
从http://en.wikipedia.org/wiki/JPEG#Color_space_transformation看起来YUYV相当于JPEG所需的YCbCr(尽管它有一半的Cb和Cr数据,与亮度相比)。我理解正确吗?
我知道如何使用矩阵将YUYV转换为RGB,但似乎浪费了稀缺的CPU周期和颜色精度,在不需要时执行两个颜色空间更改。
是否有可以直接将YUYV图像压缩为JPEG的功能?
答案 0 :(得分:2)
自提出问题以来,已在TurboJPEG API中实施tjCompressFromYUV
功能。它采用YCbCr
或YUV
格式的图片并将其转换为JPEG图片。
但是,要使用TurboJPEG API压缩YUYV
图像,您仍然需要将YUYV
转换为Y-Cb-Cr
像素格式。
可能还有一点机会将YUYV
图片用作YUV
图像,其中子采样为4:2:2
,因为这会导致两个{每Y
个组件{1}}个组件,但如果this source是准确的,则有四种不同的方式来放置UV
组件。但要积极起见,这个工作有可能达到1/4。
否则,在将图像转换为JPEG之前,您也可以使用PNGU或类似的方法对图像进行变换,因为此库能够以png RGB8格式保存YCbYCr图像。"