Chinaunix首页 | 论坛 | 博客
  • 博客访问: 440597
  • 博文数量: 177
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-22 19:16
文章分类

全部博文(177)

文章存档

2017年(1)

2016年(12)

2015年(112)

2014年(52)

我的朋友

分类: LINUX

2015-05-18 16:54:25

我们都知道,视频本质上源于电影。2014年冯导的《私人订制》里葛大爷对“全球最俗大导”说了那么一番话,印象比较深刻:“经过考证,电影是大众娱乐,起源于走马灯。本身就是一俗艺术,和雅压根儿就不沾边。”而当代科学史研究者们大都依据文学家范成大(1126—1193)的诗文记载,认为南宋时才有走马灯。走马灯的两个主要特点分别是:

一、利用热气流作动力;

二、以涡轮装置带动灯上画面转动。


以这两点继续追溯可以到北宋年间,著名北宋诗人吴潜观灯有感,写下:“半勺兰膏暖焰生,恍疑赤壁夜鏖兵。骑乘猛燎奔驰疾,人运长枪转战轻。旗影静移云母帐,剑铓微掣水晶营。何人幻此圆机妙,独向元宵策美名。”从内容到形式详述走马灯闪亮登场的过程。也就是说走马灯距今已有将近1300多年的历史了。然而,在当代电影起源发展史上走马灯却很少被人提起。

关于电影的起源,美国人会告诉你说是爱迪生发明的;法国人会说是卢米埃尔兄弟发明的。其实电影是建立在一种名为“视觉暂留原理”的基础上。人脑保留视像的时间会比眼睛真正记录它的时间略长一点。如果不是这样,我们对世界的视觉感知就会不断被眨眼的动作打断。但实际上,在双眼闭上的那一刹那,大脑会“保存”视像。类似地,当静止的图像以最短的间隔从人眼前闪过时,大脑也会发挥保存图像的作用。电影不是真的在动,而是一组以每秒24格的速度放映的静止画面,这样的速度使人觉得动作是连续的。


该原理是比利时著名物理学家约瑟夫普拉多于1829年发现。随后,普拉多依据此原理于1832年发明了“诡盘”。“诡盘”能使被描画在锯齿形的硬纸盘上的画片因运动而活动起来,而且能使视觉上产生的活动画面分解为各种不同的形象。“诡盘”的出现,标志着电影的发明进入到了科学实验阶段。随后的美国人霍尔纳、奥地利的冯乌却迪奥斯、法国的W尼埃普斯、美国旧金山摄影师爱德华幕布里奇、法国生理学家马莱都为随后电影业的发展做出过巨大的贡献。

    1889年,美国发明大王爱迪生在发明了电影留影机后,又经过5年的实验后,发明了电影视镜。他将摄制的胶片影像在纽约公映,轰动了美国。但他的电影视镜每次仅能供一人观赏,一次放几十英尺的胶片,内容是跑马、舞蹈表演等。他的电影视镜是利用胶片的连续转动,造成活动的幻觉,电影视镜传到我国后被称之为 “西洋镜”。如果大家看过徐克导演,李连杰、关之琳主演的《黄飞鸿》,“十三姨”手里经常拿着的那个拍电影的东西就是西洋镜。但“十三姨”那会儿用的西洋镜已经是法国卢米埃尔兄弟改良过之后的版本。
   1895年,法国的奥古斯特卢米埃尔和路易卢米埃尔兄弟,在爱迪生的 “电影视镜”和他们自己研制的 “连续摄影机”的基础上,研制成功了“活动电影机”。“活动电影机”有摄影、放映和洗印等三种主要功能。它以每秒16画格的速度拍摄和放映影片,图像清晰稳定。1895年3月22日,他们在巴黎法国科技大会上首放影片《卢米埃尔工厂的大门》获得成功。同年12月28日,他们在巴黎的卡普辛路14号大咖啡馆里,正式向社会公映了他们自己摄制的一批纪实短片,有《火车到站》、《水浇园丁》、《婴儿的午餐》、《工厂的大门》等12部影片。卢米埃尔兄弟是第一个利用银幕进行投射式放映电影的人,因此他们也被后人誉为近代电影的开山鼻祖。


这里我们来看一下电影中“帧”的概念。根据“视觉残留原理”24帧/秒是可以给人带来基本流畅、感觉不到卡顿的基本体验的最低播放频率。传统的电影都是用连续长胶片拍摄,主要在银幕上播放。另外还有一点,就是电影在放映时胶片是连续的。例如,前面一个胶片离放映窗还有2/3的距离时,下一张胶片的1/3就已经进入放映窗了。这样一来老式电影播放时会经常出现时快时慢,无连续感等现象。所以在放映电影时通常都会给放映窗口增加一个遮光器,即放映窗有个电机带动着一个黑色的扇叶不停的转动,将每格胶片遮挡两次,这样就将每秒24帧的频率提升一倍到48Hz(注意:早期电影的拍摄和放映仍旧是以24帧/秒的帧率进行的),这样一来我们的眼睛就会觉得图像更加连贯和流畅了。

当模拟电视出现后,出现了一对名词“隔行扫描”和“逐行扫描”,以及PAL制和NTSC制两个概念。为了不冲淡主题,关于这两个知识点大家可以如果想进一步了解,可以点击“这里”。简而言之,在隔行扫描的显示设备中,每一帧图像被分割为两场画面交替显示。第一场(奇数场)电子枪只扫一帧图像的所有描奇数行,依次扫描1、3、5…行,而第二场(偶数场)电子枪只扫描偶数行,依次扫描2、4、6…行等等。逐行扫描显示一帧图像时,电子枪只要一行接着一行扫,不用区分奇偶场,扫完所有行就OK了。关于PAL制和NTSC制区别记住下述两点:

PAL制电视机供电频率50Hz,场频50场/秒,帧频率25帧/秒,扫描线625行。代表国家中国、德国、新加坡等;

NTSC制电视机供电频率60Hz,场频60场/秒,帧频30帧/秒,扫描线525行。代表地区美国日本等。

当然,不管是通过无线电还是互联网来传输电影或者视频,都避不开数字化的话题。现在的数字摄像机已不像传统的胶片摄像机那样简陋,数字摄像机在拍摄的时候我们只要设置好我们需要的参数就可以了。那么在数字视频中,帧的概念已经不同于传统胶卷上一个图像的意义了。之前我们计算过,一部1024×768分辨率,采用aRGB色彩空间存储,8位深度,时常90分钟的视频,需要占用的带宽是3Mbps,占用的存储空间是15.83GB左右。

所以,对于数字图像,我们一般有两方面的压缩。一是帧内压缩,就是采用YUV色彩空间,然后配合各种压缩算法(例如H.264,mpeg4等等)在不影响用户视觉体验的前提下,最大限度的降低图像本身所占用的空间;二是帧间压缩,因为通常情况下,相邻两帧图像之间其实有很多重复,相似信息,可以采用帧间自适应、行程编码、预测编码、运动补偿等方式。

采用压缩算法时,在制作或者转换视频时一般将几帧图像分为一个组GOP,为了防止运动变化,帧数不宜过多。在用ffmpeg转换视频时有一个参数可以设置这个GOP。数字视频里每个帧都被归成三类:关键帧I,非关键帧P或者B。一个GOP就是一个I帧、数个P、B帧的分组。

I帧:表示关键帧,是一帧画面的完整的所有信息;解码时只需要本帧数据就可以显示画面;

P帧:表示前向预测帧,表示的是这一帧跟之前的一个关键帧I(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面;

B帧:是双向预测帧,即B帧是本帧与前后帧的差别。B帧一般需要参考其前向的I帧或者P帧,以及后一个P帧的数据才能完整解码一帧图像数据。
   所以说,只有关键帧才可以独立的完整复原图像,P帧和B帧都是图像的相对信息差量,他们单独存在时并不能完整解码视频文件的一帧图像信息。

说的云里雾里的,让我们看个实际的例子。那就是本周五即将上映的《美国队长2》的宣传片:

    我们用Elecard截取其中一个片段,看一下它的帧编码、显示顺序情况:

这个文件的帧编码信息是,红色为I帧,蓝色为P帧,绿色为B帧,其帧编码顺序是:

IPPPPPPPPPPPPPPPPPPPBBPBBPBBPBBBPBBPBPBPBBP…

但是显示设备解码显示时却不能按照这样的顺序进行,为什么?因为解码B帧时需要参考其前面的I帧或者P帧,以及后面的P帧才可以完整解码B帧的画面。下面我们将用表格分析一下帧的显示顺序和编码顺序的区别:(为了画表格方便,我将I帧后面紧挨着的19个P帧缩减为3个,但这并不影响分析效果)。修改后的编码顺序为:

   视频帧编码顺序和显示顺序分别如下表所示:
   本文只是简单对视频文件中基本帧的概念作了介绍,方便入门的朋友学习了解。至于编解码、音视频同步、显示等技术领域暂时还不涉及,有需要再说吧。



阅读(1270) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~