作者jk21234 ()
站内PC_Shopping
标题Re: [请益] webcam的速度?
时间Tue May 26 05:34:50 2009
※ 引述《wahaha99 (此方不可长)》之铭言:
: → kuninaka:640*480*8*3 这样呢 05/23 00:38
: → kuninaka:一个像素应该至少存255,255,255 05/23 00:39
: → kuninaka:所以是三个8bit 请webcam专业人士出来回答吧XD 05/23 00:41
: → kuninaka:那三组是RGB 05/23 00:41
: → kuninaka:有请图学专家XD 05/23 00:41
: → kuninaka:所以才说请专业人士回答XDD 没碰过这块XD 05/23 01:00
通常不会是RGB格式....一般影像会用YUV或者是YCbCr储存,
其中Y是亮度,後两个是彩度....组成彩色影像.
会这样做的主要原因是符合大多数过去的影片或者是电视系统等,
而过去用YUV也有包袱问题,也就是从黑白电视电影时代,系统只传送
亮度.为了跟这些相容,彩色电视电影影片等也就以YUV为主.黑白电视
系统接受到Y以外的讯号会无视.
不过,现在在电脑上数位化後,即使电脑大量采用RGB为基础的LCD/CCD
来显示/储存影像.影片压缩格式仍然会以YUV/YCbCr为主.不会回到RGB.
这有一个明显的好处.人眼对亮度比较敏感,对彩度比较不敏感,所以影像
格式可以只把资料空间留给Y值,将剩下两个彩度值缩减,对影像的品质
影响还不大.
自从MPEG出来後,应该没有多少电脑上的影像格式还保留在RGB的..
(古早dos的抓图软体自定格式,以及Win 3.1的MS"原始AVI"是RGB格式.....)
不过,640x480全彩,即使用YUV 各8bit/4bit/4bit储存,再用字典压缩法
也顶多只能把一个画面900KB压缩成300KB而已,这仍然不够.
所以.....进阶的影像压缩是怎麽做的呢 ??
只要从JPEG/MJPEG/MPEG开始介绍起,再介绍到MPEG4/H.264就差不多了,
技术概念上要理解的部分不算很多啦.....
为什麽我们看的见颜色 ??颜色的物理性质是 ??
R,G,B在物理上是三种不同频率的光,不过为什麽是这三种颜色是
基本色
主要是生理性质而非物理性质.人眼中负责感光的细胞有四种.
一种是只会感应光的亮度的杆状细胞,三种是感应特定波长的光的
锥状细胞,这三种当然最会产生反应的对象范围在是R,G,B三个
波长附近....
红外 ||红 橙 黄 绿 蓝 紫 || 紫外
弱弱弱强强弱弱无无无无 锥1
无无弱弱弱强强弱弱无无 锥2
无无无无无无弱弱强弱弱 锥3
视觉的黄色,可能是完全反射了570nm,纯的黄色光.
(但是除非用雷射直接打眼睛,否则应该没机会:: )
让锥状1跟锥状2两种细胞各产生强弱的反应,在脑部神经中
组合成"看见黄色"的感觉.
也可以是看到一定比例的红光(仅锥状1有反应),一定比例的
绿光(锥状2有反应,其他无).这两种到了脑部认知中会完全等价.
所以说,用RGB三种光的强弱也可以调配出各种颜色.不是因为
红光加上绿光两个频率会互相中和变成黄光(物理上不可能)
色彩学有点离题.反正只要先知道YUV或者是YCbCr,一个是亮度,
後面两个代表的彩度..可以组成跟RGB系统几乎等价的座标轴就好.
接着前面已经说过了,彩度的储存资料量可以减少,人眼比较不敏感.
这个过程可以以4:4:4(不缩减彩度),4:2:2(彩度精确度是亮度的一半),以及
更进阶的4:2:0....这个要稍微解释一下,不是只留下一种彩度,而是彩度轮流
储存,没存的跟隔壁扫描线补.所以正确的4:2:0应该说是4:2:0和4:0:2交错
扫描线N 4:2:0 ----------->
N+1 4:0:2 ----------->
N+2 4:2:0 ----------->
当然,要做比较简单的4:1:1也可以.
不过只这样,相对RGB好像只减少了1/3~1/2的资料量吧 ??
接下来就是失真影像压缩最重要的观念,量化表(Quantilation Table)
基本观念就是....任何连续的资料stream如影像,声音等.
把它资料化以後,也和富立叶转换一样.可以以无限个不同频率/振幅的波表示.
只是影像部分是2D的波,声音以及其他是1D的波
那......如果我觉得我只要尝试用少量的波型去趋近原来的资料分布,
少部分失真没关系,但是省去大量的资料量,这样可行吗?
可行的,如果省略的是分析出的波里面的高频部分,只留下低频部分.
那麽实际上跟原本的资料分部只会有少部分误差...也就是
2D资料 --> 频率资料(也是NxN) -->量化
N 低
* * * * 低* * * *高 * * * *
N * * * * * * * * * * *
* * * * * * * * * * 留下这些就好了,其他当0,不用存
* * * * * * * * *
高
这样又可以省去大量的资料量,而得到略为失真的结果.
接下来.把这些资料以无失真压缩法储存起来,才会是最後的结果.
这个过程中,总共的压缩率达到5~10倍以上.
补充一下,jpeg是用变相的4:2:0储存彩度问题,接着在量化时候以DCT
而非富立叶转换处理,最後的非失真压缩则以huffman encoding处理.
使用DCT/FFT的压缩会有甚麽问题呢?由於他们用的都是SIN/COS波.
在数位资料上.瞬间变化很大的部分只能以高频率表示.比如我们以黑底
(RGB=0,0,0)红字(RGB=255,0,0)当例子
----黑红红黑--->
255 |-----|
| |
| |
| |
| |
0----| |-----
这个不管以SIN/COS波来模拟,都需要以频率近乎无限大的
波.如果只使用低频率的波那麽就.............
----浅浅红浅浅--->
255 ---
/ \
/ \
/ \
/ \
0--| |--
中间会留下一大段范围是浅红色.这个自行拿jpeg压缩一个X底红字
然後放大看就知道了.相当於本来明确的边缘,会被破坏的很模糊...
所以说JPEG/MPEG,只适合自然拍摄的影像.不适合人工产生的如动画,CG
等等.当然如果压缩率设太高,也就是中高频资料砍的差不多,只剩下最低频
的来还原原本资料....那不管本来是甚麽都会很模糊.
上面介绍完了JPEG,用同样的方法,把静态影像每张都存起来,变成动态.
就成为Motion-JPEG了,但是到真正的MPEG,技术上还缺了一个称为动作补偿
的东西.
OK,这动作补偿又是甚麽 ??
由於是动态影像,所以每张图取的都是相差一点点时间的动作,那麽一般而言,
这些图应该是大同小异的变化.比如说拍电影,取景的背景不变,只有人物在前面演戏.
那麽就这一串影像而言,只有前景的人物是有改变的.背景几乎都和之前相同.....
有没有甚麽办法节省这些画面上不动的部分,告诉他们"其实取上一个画面
来补充"就好了 ??
相对於完整的frame(称为I),MPEG设计了P(向前一个画面参考),以及B(向前面以及
"後面"的frame参考资料).如果MPEG中不使用P/B两种frame,就相当於Motion JPEG,
使用到的话..在B/P frame里面保存的资料只有有变化的区块,所以实际资料量比较少.
但是B/P使用太多的话,那麽要跳着存取就不方便了,因要这样就得跨很大量的资料
帮你重新组合出完整的资料.所以一个考量过的平衡的标准是IBBPBBP的循环.
MPEG1/MPEG2的动作补偿只以区块为单位,会造成的缺陷是,如果是整个画面都有变化
(摄影机的视角变化,转动就造成如此现象).这时候对整个影像会有相当大的影响.
比如说视角一转动就满萤幕马赛克现象.
上面大概介绍完了MPEG-1,那麽...MPEG-2相对於MPEG-1的技术有改进吗?
其实只以技术来看,技术上两者差不多,资料量上以及门槛两者就有差了.
MPEG-2是希望能对应当时的完整的SDTV/5.1声道,以
及可接受至少超过LD的影像品质.
而MPEG-1却要适应当时的CD容量以制作VCD,也要适应当时硬体处理的能力.
所以MPEG-1比较像是过渡规格.这也是很多高收入地方不曾流行过VCD,直接
转到DVD的原因.
MPEG 1/2後的後继者.MPEG 3/4/7等.其中3原本希望对应HDTV,但是後来
发现并不需要特别订出MPEG-3,因为MPEG-2提高资料量後,也可以很好的对应
HDTV的传送.因此MPEG-3并没有推展.另外MPEG-7个人理解为一种资料库检索影像
的方式.跟影像规格没有直接关系.....所以MPEG2最重要的後继者就是
MPEG-4
MPEG-4当然包含了前面在MPEG-1/MPEG-2中介绍的做法.同时也定义了
从简单到完整的多个层次的实作以给不同的厂商遵循,不过若只要谈技术
上最大改进的话....
相比之前,最大的改进还是更好的动作补偿.前面说过MPEG 1/2的动作补偿.
主要以区块为主,然後跟前一个/後一个frame比较.但是MPEG-4把分别的标准
设定为前景物件们跟背景.当一个物件移动的时候,MPEG 1/2的所有被影响到的
范围内的区块都会有变化,但是MPEG-4却会把这个当成"物件的影像变化"+"物件的
移动方向"来处理.所以在低流量的时候,可以做到更好更低流量的动作补偿.
不过,要是输入的影像是拍摄的,如何侦测分离出前景物件来储存呢?
这就是在mpeg-4技术规格中的shape coding以及texture coding了.
(略...webcam应该没有即时压缩mpeg-4的)
至於其他很多大家会听到的规格啦,不过很多都是MJPEG-->MPEG4这一条线
为基础衍生出来的.比如说Quicktime衍生自MJPEG,WCDMA手机的3GP影像衍生自MPEG4等.
基本上.......
H.261 H.262 -->H.263 \
/\ /\ \
|| || \
Motion JPEG --> MPEG -->MPEG 2 -->MPEG 4 --> H.264/AVC
|| || | || ||
\/ \/ | \/ \/
QuickTime VC-1 | 3GP FLV
最早最早的 |
V
WMV,ASF
技术上比较独立无关的:
Intel Indeo Video(低流量为主),同时也被VfW跟Quicktime支援
RealMedia RealVideo(一开始低流量为主,而且被评为品质比MPEG-1还惨,
直到做出rmvb後才有改善)
webcam有些采用现成的codec,有些采用自家的codec...不过大多数自家的
codec,也大量采用了现成的技术.所以说从MJPEG-->MPEG-->MPEG4开始理解起的话,
就可以对大部分的影像压缩技术有个七八成的理解了.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.62
※ 编辑: jk21234 来自: 140.114.78.62 (05/26 05:37)
1F:→ kuninaka:专业的出来了 O.O 05/26 05:38
2F:→ kuninaka:专业好文 收起来 科科 05/26 05:39
3F:→ PlayStation3:好文 收了 05/26 05:41
4F:→ PlayStation3:解决我一直以来的疑问 科科 05/26 05:42
5F:推 kuninaka:想出这些解决方法的人真厉害@@ 05/26 05:45
6F:推 highway4625:其实还是有基於RGB格式的cam....只不过嘛= = 05/26 06:52
7F:→ highway4625:记得没错的话 使用BNC接头的cam还是有一部份有用到 05/26 06:53
8F:→ highway4625:RGB型.... 05/26 06:54
9F:→ highway4625:不过那个已经不是普通人能玩的鬼东西了 05/26 06:54
10F:推 besttrevor:这个不推不行.. 05/26 07:46
11F:推 jerrysula:好文推! 05/26 08:14
12F:推 dreaming7768:这才是专业的!!! 05/26 08:45
13F:推 rock9527:感觉我在上课一样,专业推 05/26 08:48
14F:推 HDview:目前webcam 多直接是rgb 24吧... 05/26 09:10
15F:推 HDview:而且除非有到高像素30frames的webcam才会预先压缩 05/26 09:15
16F:推 HDview:普通的webcam usb2.0都还够传输 所以都没有预先codec 05/26 09:17
17F:推 HDview:所以你说的东西 似乎都跟目前商业化webcam没有多大关系 05/26 09:23
18F:推 QuentinHu:太专业啦!!! 推推 05/26 10:40
19F:推 gt1724:推 05/26 10:54
20F:推 pig:出来是 RGB 的传的时候也一定会压缩的 05/26 10:56
21F:→ pig:原文问的是传输的部份,所以还 ok 啦 05/26 10:56
22F:推 DarkAlex:深入浅出的好文 赞 05/26 12:15
23F:推 HDview:传输的部分也是RGB阿... 05/26 12:23
24F:推 tonyatta:真的说出所有该说的了! 赞!!! 05/26 13:10
25F:推 tonysan:没想到在这里看到Multimedia课程的内容XD 05/26 13:13
26F:推 VictorTom:推:) 05/26 13:25
27F:推 kaj1983:原po是在搞影像压缩的吗?XD 05/26 14:13
28F:推 lewisgb:快推 不然别人以为我看不懂 05/26 14:54
29F:推 Alexboo:深入浅出 05/26 15:07
30F:推 pig:过网路都会经过压缩的,你进来RGB一定得转space再压 05/26 15:35
31F:→ pig:不然网路频宽会吃不消。 05/26 15:35
32F:推 alanguo:原po专业,推一个 ~ 05/26 15:54
33F:推 dolphinus:YUV420 或 YUY2. 05/26 15:58
34F:推 wch6858:推 05/26 18:26
35F:推 feisky:清新、健康、专业(拜 05/26 21:37
36F:推 kau:推 <(_ _)> 05/26 22:30
37F:推 vixen:好强 05/27 02:37
38F:推 jeonjh:干,这不推对不起自已啊!用心的好文... 05/27 02:53
39F:推 DouTakeLu:吃不消阿XD 06/01 02:43
40F:推 pussycat2009:好威 XD 06/12 20:46
41F:推 Biboy:专业好文!! 08/09 21:04
42F:推 c4681209:专业到看不懂............. 12/23 01:31