[Week2.2]数据压缩之经典——哈夫曼编码(Huffman)

(笔记图片截图自课程Image and video processing: From Mars to Hollywood with a stop at the hospital的教学视频,使用时请注意版权要求。)

JPEG用哈夫曼编码(Huffman Encoder)作为其符号编码。哈弗曼编码是压缩算法中的经典,它理论上可以将数据编成平均长度最小的无前缀码(Prefix-Free Code)。

为什么要进行编码?

图像处理
关于Lena:莱娜图(Lenna)是指刊于1972年11月号《花花公子》(Playboy)杂志上的一张裸体插图照片的一部分,是一张大小为512x512像素的标准测试图。该图在数位影像处里学习与研究中颇为知名,常被用作数位影像处里各种实验(例如资料压缩和降噪)及科学出版物的例图。(几乎每一本图像处理相关的书都会出现这张图片~)
Lena的直方图(Histogram):从Lena的直方图中可以看出,图片中每个灰度值出现的概率是不相同的。这里,中间灰度值部分出现的概率比较高,两边灰度值出现概率非常低。所以,如果每个灰度值都进行同样长度的编码,似乎就太浪费了。

继续阅读“[Week2.2]数据压缩之经典——哈夫曼编码(Huffman)”

[Week2.1]图像为什么非压缩不可?

图像和视频的压缩技术应用广泛,每天刷微博的图片,盗版回来的小电影,无一不用压缩技术。

压缩的必要性

图像压缩
  某天陈老师要录动作大片,经过长期艰苦奋斗,他制成了这样一段视频:画面大小1000×1000pixel,24位真彩色,每秒30帧,时长2小时。
  如果不进行任何压缩,存储这段视频需要1000*1000*24*30*60*120=5.184 ×1012 bit ≈ 648GB的空间。(2014年4月5日,500GB硬盘最低价格是299元~)
  用4M宽带下载这部大片,最少需要360小时 = 15天。
  可见,要保障人民群众的切身利益,压缩技术非常有必要。
继续阅读“[Week2.1]图像为什么非压缩不可?”

【MATLAB】P图神器,初露锋芒:第一周作业(剧透)

做完第一周Matlab作业,深感MatLab之强大。(都第几周了,才做第一周作业...)
不在上图像处理这门课的同学,也可以试试在Matlab敲这些代码哦~ 用Matlab P图可有意思呢~

第一周是粗略地体验图像处理,先把题目要求贴上来:

Write a computer program capable of reducing the number of intensity levels in an image from 256 to 2, in integer powers of 2. The desired number of intensity levels needs to be a variable input to your program.
Using any programming language you feel comfortable with (it is though recommended to use the provided free Matlab), load an image and then perform a simple spatial 3x3 average of image pixels. In other words, replace the value of every pixel by the average of the values in its 3x3 neighborhood. If the pixel is located at (0,0), this means averaging the values of the pixels at the positions (-1,1), (0,1), (1,1), (-1,0), (0,0), (1,0), (-1,-1), (0,-1), and (1,-1). Be careful with pixels at the image boundaries. Repeat the process for a 10x10 neighborhood and again for a 20x20 neighborhood. Observe what happens to the image (we will discuss this in more details in the very near future, about week 3).
Rotate the image by 45 and 90 degrees (Matlab provides simple command lines for doing this).
For every 3×3 block of the image (without overlapping), replace all corresponding 9 pixels by their average. This operation simulates reducing the image spatial resolution. Repeat this for 5×5 blocks and 7×7 blocks. If you are using Matlab, investigate simple command lines to do this important operation.
=======================

实验用图

图像处理的第一件事,是找张图片。
盗用一张自诩为艺术家的好基友拍的照片,这是我们在拉萨约会时拍的.()
图片版权归好基友,转图请注明出处。
goof
所谓的牦牛肉牛排,好韧的肉,要用好大力气吃... 还是肉牛做的牛排比较靠谱。
继续阅读“【MATLAB】P图神器,初露锋芒:第一周作业(剧透)”

[Week1.3]采样和量化——数字图像之所以是数字图像

数字图像与模拟图像的重要区别,在与它是数字的。(还能有更废的话吗...)
数字,意味着它的离散的:图像空间上的像素点是离散的,像素点的灰度值(颜色值)也是离散的。
相反,模拟图像(比如胶卷)出来的图像空间上和数值上都是连续的。

下图是JPEG的压缩编码流程,本节介绍的,是其中的“量化”(Quantizer)部分。
JPEG压缩流程
JPEG的压缩方法,可以所是非常聪明。
人眼看图像,不会太注重细节。左边一个像素与右边一个像素灰度值相差10或是11,基本不会影响理解。
简单地说,JPEG用最多的空间,来存储对人理解最重要的信息,而一些微乎其微的小细节,基本不会储存。
继续阅读“[Week1.3]采样和量化——数字图像之所以是数字图像”

[Week1.2]人类视觉系统——人是怎样看见东西的

(笔记图片截图自课程视频,使用时请注意版权要求。)
Those who wish to succeed must ask the right preliminary questions. ——Aristotle

眼球结构

眼睛通过把光投射到对光敏感的视网膜成像,在那里,光线被接受并转化成信号并通过视神经传递到脑部。通常眼睛是球状的,当中充满透明的凝胶状的物质,有一个聚焦用的晶状体,通常还有一个可以控制进入眼睛光线多少的虹膜。
课程还讲到眼睛不同结构对光的感知,哎呀我真心听乱了。
人类视觉
继续阅读“[Week1.2]人类视觉系统——人是怎样看见东西的”

[Week1.1]图像和视频处理是干啥的?

(笔记图片截图自课程Image and video processing: From Mars to Hollywood with a stop at the hospital的教学视频,使用时请注意版权要求。)

One picture is worth more than ten thousand words. ——Anonymous
生活中处处都是图像,图像也是人类感知外界的一大途径。
计算机图像和视频处理,一方面是帮助人们获得更直观的图像(将人无法直接看到的信息反映到人可以直观看见的图像上),另一方面则是让计算机去读懂图像(计算机的图像识别)。

==============

消费者图像(Consumer Image)

==============

图像压缩

如果直接存储一张未压缩的图像,它占用的存储空间会相当大。
例如,卫星拍摄一副图像,如果直接传回地球,则要占用相当大的资源,非常不划算。而如果经过压缩,它的体积可以变得比较小,传输的成本就降低了。

电影后期制作

图像处理
电影拍摄之后,总会有那么些瑕疵(或曰穿帮镜头),使用视频后期制作,它们就可以轻松拜拜了。
继续阅读“[Week1.1]图像和视频处理是干啥的?”