jpeg算法
首先你需要了解几个概念,有损压缩,量化,行程编码。
对一副图片来说,bitmap就是原始格式,没经过任何压缩的。
量化就是把所有0-255的像素值进行归类,然后分成尽量少的积累,这要存储量就小很多了,对于JEPG来说量化是有损压缩的起源。
最后就是对所有的已经归类过的点进行行程编码,然后就压缩完了
Ⅱ MPEG和JPEG分别采用了什么算法
MPEG视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT( Discrete Cosine Transform )的压缩技术,这种算法与JPEG压缩算法类似。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。
在保证图像质量的前提下实现高压缩的压缩算法,仅靠帧内压缩是不能实现的,MPEG采用了帧间和帧内相结合的压缩算法。 P帧法是一种前向预测算法,它考虑相邻帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。
然而,只有采用B帧压缩才能达到200:1的高压缩。B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。B帧数据只有I帧数据的百分之十五、P帧数据的百分之五十以下。
MPEG标准采用类似4:2:2的采用格式,压缩后亮度信号的分辨率为352×240,两个色度信号分辨率均为176×120,这两种不同分辨率信息的帧率都是每秒30帧。其编码的基本方法是在单位时间内,首先采集并压缩第一帧的图像为I帧。然后对于其后的各帧,在对单帧图像进行有效压缩的基础上,只存储其相对于前后帧发生变化的部分。帧间压缩的过程中也常间隔采用帧内压缩法,由于帧内(关键帧)的压缩不基于前一帧,一般每隔15帧设一关键帧,这样可以减少相关前一帧压缩的误差积累。MPEG编码器首先要决定压缩当前帧为I帧或P帧或B帧,然后采用相应的算法对其进行压缩。一个视频序列经MPEG全编码压缩后可能的格式为:......
压缩成B帧或P帧要比压缩成I帧需要多得多的计算处理时间。有的编码器不具备B帧甚至P帧的压缩功能,显然其压缩效果不会很好。
JPEG(Joint Photographic Experts Group) 是一个由 ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。
JPEG专家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在V-CD和DVD-Video电视图像压缩技术中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。为了在保证图像质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定JPEG 2000(简称JP 2000)标准,这个标准中将采用小波变换(wavelet)算法。
JPEG压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。压缩编码大致分成三个步骤:
1.使用正向离散余弦变换(forward discrete cosine transform,FDCT)把空间域表示的图变换成频率域表示的。
2.使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。
3.使用霍夫曼可变字长编码器对量化系数进行编码。
译码或者叫做解压缩的过程与压缩编码过程正好相反。
JPEG算法与彩色空间无关,因此“RGB到YUV变换”和“YUV到RGB变换”不包含在JPEG算法中。JPEG算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同彩色空间的数据,如RGB, YCbCr和CMYK。
JPEG压缩编码算法的主要计算步骤如下:
1.正向离散余弦变换(FDCT)。
2.量化(quantization)。
3.Z字形编码(zigzag scan)。
4.使用差分脉冲编码调制(differential pulse code molation,DPCM)对直流系数(DC)进行编码。
5.使用行程长度编码(run-length encoding,RLE)对交流系数(AC)进行编码。
6.熵编码(entropy coding)。
Ⅲ JPEG2000算法的主要特点有哪些
JPEG 2000 与传统 JPEG 最大的不同,在于它放弃了 JPEG 所采用的以离散馀弦转换(Discrete Cosine Transform) 为主的区块编码方式,而改采以小波转换(Wavelet transform) 为主的多解析编码方式。小波转换的主要目的是要将影像的频率成分抽取出来。
Ⅳ JPEG图片大小怎么计算
1.57MB是图像的原始大小,740*740*3(RGB图像通常每像素3字节)=1642800字节=1.566696MB,大约等于其BMP格式的大小,而307.7KB是JPEG格式的大小,是压缩过的。
JPG图片的大小,与压缩质量系数有关,与图片的内容有关。640*480的JPG图片,文件大小可能只有几KB,也可能有上百KB。
256色,即每个像素用8位(一个字节)来描述,640*480共307200像素(约30万像素),因此图像大小就是307200字节,即300KB。
BMP文件实际是由位图文件头、位图信息头、彩色板、图像数据阵列四个部分构成,上面的300KB是图像数据阵列部分,加上文件前面的部分(一般为几十个字节),会比300KB略大。
(4)jpeg算法扩展阅读:
JPEG也是最常见的一种图像格式,它是由联合照片专家组开发并以命名为“ISO 10918-1”,JPEG仅仅是一种俗称而已。
JPEG文件的扩展名为.jpg或.jpeg,因其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。
Ⅳ 用java能实现JPEG压缩算法吗
BufferedImageimage=newBufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
image.getGraphics().drawImage(img,0,0,w,h,null);//绘制缩小后的图
FiledestFile=newFile("C:\tmp1.jpg");
FileOutputStreamout=newFileOutputStream("C:\tmp2.jpg");//输出到文件流
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
Ⅵ 什么是JPEG
JPEG(Joint Photographic Experts Group)
联合图象专家组规范
JPEG 是一个由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图象数据压缩编码标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图象数据压缩标准,既可用于灰度图象又可用于彩色图象。JPEG专家组开发了两种基本的压缩算法,一种是采用以DCT(Discrete Cosine Transform)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图象与原始图象相比较,非图象专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在V-CD和DVD-Video电视图象压缩技术中,就使用JPEG的有损压缩算法来取消空间冗余数据。为了在保证图象质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定JPEG2000(简称JP2000)标准,这个标准中将采用小波变换(wavelet)算法。
JPEG是一个有损耗的图象压缩算法,经常通过10个或更多因子中的一个来减少位图化图象的大小,它产生很小或根本不产生能够被分辨出来的图象损耗。JPEG压缩按照以下方式工作:滤掉一个图象的高频信息以减少数据量,然后通过一个无损耗的压缩算法对得到的结果数据进行压缩。低频信息在定义一个图象的特性方面贡献更大,因此丢失一些高频信息未必会影响图象质量。
Ⅶ 算法JPEG的数学表达式是
我们这个学期有教过,对正向离散余弦变换数学公式看起来很头痛。
=
=!如果你只是应付考试,记住JPEG压缩编码算法的主要计算步骤,理解大概就行了。
(1)正向离散余弦变换(FDCT)。
(2)量化(Quantization)。
(3)Z字形编码(Zigzag
Scan)。
(4)使用差分脉冲编码调制(Differential
Pulse
Code
Molation,DPCM)对直流系数(DC)进行编码。
(5)使用行程长度编码(Run-Length
Encoding,RLE)对交流系数(AC)进行编码。
(6)熵编码(Entropy
Eoding)。
公式的网址:
http://blog.csdn.net/crfoxzl/archive/2007/11/03/1865072.aspx
Ⅷ 关于JPEG算法的原理框图和JPEG压缩编码算法的主要步骤
这是个有水平的问题
参考下这篇有水平的文章http://edwin-wang.com/2006/06/jpeg%E5%8E%8B%E7%BC%A9%E7%BC%96%E7%A0%81%E7%AC%94%E8%AE%B0/
Ⅸ JAVA能实现JPEG压缩算法吗
想100%重写jpeg算法,这个帮不了。
压缩、调整,可以看BufferedImage和ImageIO
Ⅹ JPEG算法具有哪四种操作方式
(1)基于DCT的顺序模式:编码、解码通过一次扫描完成;
(2)基于DCT的渐进模式:编码、解码需要多次扫描完成,扫描效果由粗到精,逐级递增;
(3)无损模式:基于DPCM,保证解码后完全精确恢复到原图像采样值;
(4)层次模式:图像在多个空间分辨率中进行编码,可以根据需要只对低分辨率数据做解码,放弃高分辨率信息;