主题 : 6410将YUV420硬编码为JPEG 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 51030
精华: 0
发帖: 13
金钱: 65 两
威望: 13 点
综合积分: 26 分
注册时间: 2011-06-28
最后登录: 2011-10-09
楼主  发表于: 2011-09-27 19:26

 6410将YUV420硬编码为JPEG

在做S3C6410图片编码的工作,编码成JPEG格式文件。看测试代码,都是将YUV422数据变成JPEG格式,现在我想将YUV420数据编成JPEG格式。
我看代码,明明有420的个选项,说明应该是可以编420数据的。YUV422数据一帧的大小是WIDTH*HEIGHT*2,而YUV420格式的数据一帧是WIDTH*HEIGHT*3/2。代码运行通过,但是结果发现编码出来的图片都是绿色的,而且编码出来的图像大小不对...
级别: 总版主
UID: 45585
精华: 3
发帖: 628
金钱: 3375 两
威望: 675 点
综合积分: 1316 分
注册时间: 2011-05-06
最后登录: 2018-10-18
1楼  发表于: 2011-09-27 21:57
建议仔细看看6410芯片手册
级别: 新手上路
UID: 51030
精华: 0
发帖: 13
金钱: 65 两
威望: 13 点
综合积分: 26 分
注册时间: 2011-06-28
最后登录: 2011-10-09
2楼  发表于: 2011-09-28 09:54

 回 1楼(xoom) 的帖子

友善之臂弄的一个《JPEG硬件编解码开发指南》中有这么一段话:
步骤1) 首先调用 SspSipJPEGEncodeInit 进行初始化,会返回一个句柄(整型)。
步骤2) 调用 SspSipJPEGGetEncodeInBuf获得输入缓冲区的地址,该地址用于存放将要进行编码的数据,例如,从摄像头上读取的数据,注意,这个数据必须是YCbCr4:2:2 格式的,否则编码会失败。
SspSipJPEGGetEncodeInBuf需要传入一个参数,指定要分配多少空间,一般指定width * height * bpp 即可,比如480x272、16位色的图像,可指定为480 * 272 * 2。
那按数据这个手册来的华就是说6410不支持将YUV420硬编码为JPEG,我给他们发邮件问了,等他们给我回的邮件哦。
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
3楼  发表于: 2011-09-28 10:17
不用等邮件了,我们的编程手册说明和6410芯片手册描述是一致的
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 51030
精华: 0
发帖: 13
金钱: 65 两
威望: 13 点
综合积分: 26 分
注册时间: 2011-06-28
最后登录: 2011-10-09
4楼  发表于: 2011-09-28 15:57
我查了6410的手册有这么一句话
1.2.4.3 JPEG Codec
• Compression/decompression up to UXGA size
• Encoding format: YCbCr 4:2:2 / RGB565
• Decoding format: YCbCr 4:4:4/4:2:2/4:2:0 or gray

但同时在手册的其他页又有:
The JPEG CODEC includes the following features:
• Compression/decompression up to (4096 x 4096).
• Encoding Output format : YCbCr4:2:2 or YCbCr4:2:0
• Decoding Input format : YCbCr4:4:4, YCbCr4:2:2, YCbCr4:2:0 or Gray.
• Support the compression of memory data in YCbCr4:2:2(interleaving only) or RGB565 format.(Input raw data)
• Support the general-purpose color converter.

如果按找第一段话就是说编码器不支持YUV420的。

YUV4:2:2                                                      JPG file    
                  ->           JPEG Codec          ->         (YUV4:2:2
RGB565                                                         YUV4:2:0)

就不知道JPG file底下的YUV4:2:2和YUV4:2:0是什么意思?