基于DM642的JPEG压缩初步设计

 
JPEG材料整理
 
处理目标:将1600 *1200大小的YUV 4:2:0 8bit文件压缩成为JPEG文件,并通过网口传输。
 
编码参数设定
设定视频图像的基本信息,包括:
视频起始帧号:
视频结束帧号:
当前帧位置:
图像的宽:
图像的高:
采样格式:4:4:4,4:2:2,4:2:0或灰度……
图像色彩类型:单分量或多分量
DCT类型:
量化质量(5~95):
量化类型(整型、浮点):
是否使用自有量化表:
 
PS:量化质量系数(quality)的测定:
Quality<50: quality=5000/quality
Quality>50: quality=200-quality*2
对与量化系数的处理是:(basictable[i]*quality+50)/100
 
l        图像预处理
对于已采样好的4:2:0图像,我需要将其处理成适合做JPEG的大小。
1.        将它的宽和高分别扩展为8的倍数,便于分块。
Jpeg_frame_expandborder_mod8()
CCD目前采入图像为1688*1236 
2.        设定分块方法。
 
PS:考虑是否要将8bit数据扩展为16bit进行运算呢?TI IMGLIB中提供了IMG_pix_expand函数,对于一帧1600 Í1200图像进行扩展的运算量为3 Í(1600 Í1200 Í1.5)/16+15= 540,015.
 
l        前向DCT变换
TI的IMGLIB里提供了IMG_fdct_8 Í8()函数(16位输入),一帧1600 Í1200图像运算量约为76 *((1600 *1200 *1.5)/64)+50=3,420,050.
目前对FDCT的优化方法主要有:
 
 
l        量化
         TI的IMGLIB里提供了IMG_quantize()函数(16位输入),一帧1600 Í1200图像运算量约为64/16 Í((1600 *1200 *1.5)/64)*8+26= 1,440,026.
         JPEG对DC和AC提供不同的量化表,JPEG标准给量化表给出了建议,标准本身也支持使用用户自定义的量化表。
 
l        行程编码
JPEG对与DC和AC系数采用不同的处理方法。
对DC系数采用DPCM编码,去除DC中的冗余,因为图像中的DC系数通常变化是连续的。
对AC系数采用Zigzag扫描,对扫描结果进行行程编码。
 
l        熵编码
JPEG建议使用huffman编码或算术编码。多份资料显示算术编码并不能对编码效果有显著提高暂定采用huffman编码。使用huffman编码,JPEG支持对DC和AC系数采用不同的huffman表。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值