1、幾個基礎概念
1)視頻
根據人眼視覺暫留原理,每秒超過24幀的圖像變化看上去是平滑連續的,這樣的連續畫面叫視頻。
所謂視頻其實就是由很多的靜態圖片組成的。由於人類眼睛的特殊結構,畫面快速切換時,畫面會有殘留,所以靜態圖片快速切換的時候感覺起來就是連貫的動作。這就是視頻的原理。
2)幀(Frame)
簡單的理解幀就是視頻或者動畫中的每一張畫面,而視頻和動畫特效就是由無數張畫面組合而成,每一張畫面都是一幀。
既然視頻是由許多靜態圖片組成的,那么視頻的每一張靜態圖片就叫一幀。
視頻幀又分為I幀、B幀和P幀:
I幀:幀內編碼幀,大多數情況下I幀就是關鍵幀,是一個完整幀,無需任何輔助就能獨立完整顯示的畫面。
B幀:雙向預測幀。參考前后圖像幀編碼生成。需要前面的I/P幀或者后面的P幀來協助形成一個畫面。
P幀:前向預測編碼幀。是一個非完整幀,通過參考前面的I幀或P幀生成畫面。
3)幀數(Frames)
幀數其實就是幀生成數量的簡稱,可以解釋為靜止畫面的數量。其定義為用於測量顯示幀數的量度。單位為FPS(Frames per Second,每秒顯示幀數)或者赫茲(HZ)。
幀率越高,畫面越流暢、逼真,對顯卡的處理能力要求越高,數據量越大。
前面提到每秒超過24幀的圖像變化看上去是平滑連續的,這是針對電影等視頻而言,對游戲來說24幀是不流暢的。
4)幀率(Frame Rate)
幀率 = 幀數/時間,單位為幀每秒(f/s,frames per second, fps)。
10-12fps:由於人類眼睛的特殊生理結構,如果看到畫面的幀率高於每秒10-12幀的時候,就會認為是連貫的,此現象稱之為視覺暫留。
24fps:一般電影的拍攝及播放幀數是每秒24幀。
60fps:這個幀率對人眼識別來說已經具備較高的平滑度。
85fps:人類大腦處理視頻的極限,人眼無法分辨更高頻率的差異。
在做頁面性能優化時,常用60fps作為一個基准,所以需要盡量讓每一幀的渲染控制在16ms內,這樣才能達到一秒60幀的流暢度。
5)刷新率
屏幕每秒被刷新的次數,分為垂直刷新率和水平刷新率,一般我們提到的都是垂直刷新率,以赫茲(Hz)為單位,刷新率越高,圖像就越穩定,圖像顯示就越自然清晰。
目前,大多數顯示器根據其設定按30Hz、60Hz、120Hz或者144Hz的頻率進行刷新。而其中最常見的刷新頻率是60Hz。這樣做是為了繼承以前電視機刷新頻率為60Hz的設定。
6)分辨率
視頻、圖片的畫面大小或尺寸。分辨率是以橫向和縱向的像素數量來衡量的,表示平面圖像的精細程度。視頻精細程度並不只取決於視頻分辨率,還取決於屏幕分辨率。
1080P的P指Progressive scan(逐行掃描),即垂直方向像素點,也就是“高”,所以以1920X1080叫1080P,不叫1920P。當720P的視頻在1080屏幕上播放時,需要將圖像放大,放大操作也叫上采樣。
7)碼率/比特率
單位時間播放連續的媒體如壓縮后的音頻或視頻的比特數量。比特率越高,帶寬消耗越多。單位為bps(bits per second),每秒傳輸的數據量,常用單位有:kbps、mbps等。計算公式:碼率(kbps)=文件大小(kb)/時長(s)。
比特率即碼率,在不同領域有不同的含義,在多媒體領域,指單位時間內播放音頻或視頻的比特數,可以理解成吞吐量或帶寬。
通俗一點理解就是取樣率,取樣率越大,精度就越高,圖像質量越好,但數據量也越大,所以要找到一個平衡點,用最低的比特率達到最少的失真。
在一個視頻中,不同時段畫面的復雜程度是不同的,比如高速變化的場景和幾乎靜止的場景,所需的數據量也是不同的,若都使用同一種比特率是不太合理的,所以引入了動態比特率。
a、動態比特率
簡稱VBR(Varaiable Bit Rate),比特率可以隨着圖像復雜程度的不同而隨之變化。圖像內容簡單的片段采用較小的碼率,圖像內容復雜的片段采用較大的碼率,這樣既保證了播放質量,又兼顧了數據量的限制。
比如RMVB視頻文件,其中VB就是指VBR,表示采用動態比特率編碼方式,達到播放質量與體積兼得的效果。
b、靜態比特率
簡稱CBR(Constant Bit Rate),比特率恆定。圖像內容復雜的片段質量不穩定,圖像內容簡單的片段質量較好。
除了VBR和CBR外,還有CVBR(Constrained Varaiable Bit Rate)、ABR(Average Bit Rate)等等。
2、顏色模式(顏色空間)
1)RGB
RGB是三原色,通過RGB三種基礎顏色,可以混合出所有的顏色。該顏色模型的主要目的是在電子系統中檢測,表示和顯示圖像,比如電視和計算機,但是在傳統攝影中也有應用。
2)YUV
YUV的發明是位於彩色電視與黑白電視的過渡時期。黑白電視只有Y(Luma,Luminance)視頻,也就是灰階值。到了彩色電視規格的制定,是以YUV/YIQ的格式來處理彩色電視的圖像,把UV視作表示彩度的C(Chrominance或Chroma),如果忽略C信號,那么剩下的Y(Luma)信號就跟之前的黑白電視視頻相同,這樣一來便解決了彩色電視機與黑白電視機的兼容問題。YUV最大的優點在於只需占用極少的帶寬,因為人眼對亮度敏感,對色度不敏感,因此減少部分UV的數據量時,人眼可能感知不到。
YUV也稱為YCbCr,對於每個分量如下:
-
Y:亮度,也就是灰度值。除了表示亮度信號外,還含有較多的綠色通道量;
-
U:Cb,藍色通道與亮度的差值;
-
V:Cr,紅色通道與亮度的差值。
3)HSV(Hue Saturation Value)
色調H:用角度度量,取值范圍為0度-360度,從紅色開始按逆時針方向計算,紅色為0度,綠色為120度,藍色為240度。它們的補色是:黃色為60度,青色為180度,品紅為300度;
飽和度S:表示顏色接近光譜色的程度。一種顏色可以看成是某種光譜色與白色混合的結果。其中光譜色所占的比例越大,顏色接近光譜色的程度越高,顏色的飽和度就越高。飽和度越高,顏色則深而艷。光譜色的白光成分為0,飽和度達到最高。最高通常取值范圍為0%-100%,值越大,顏色越飽和。
明度V:表示顏色明亮的程度,對於光源色,明度值與發光體的光亮度有關;對於物體色,此值和物體的透射比或反射比有關。通常取值范圍為0%(黑)到100%(白)。
RGB和YUV顏色模型都是面向硬件的,而HSV顏色模型是面向用戶的。
3、視頻文件格式、封裝格式以及編碼方式
1)視頻文件格式
簡稱文件格式,常見的視頻格式如1.avi,2.mpg,這些都叫做視頻的文件格式,它與你電腦上安裝的視頻播放器關聯。
2)視頻封裝格式
簡稱視頻格式。AVI、MPEG、VOB是一種視頻封裝格式,相當於一種儲存視頻信息的容器。它是由相應的公司開發出來的。
-
AVI格式(后綴為.avi):它的英文全稱為Audio Video Interleaved,即音頻視頻交錯格式。它於1992年被Microsoft公司推出。這種視頻格式的優點是圖像質量好。由於無損AVI可以保存alpha通道,所以應用廣泛。但是缺點也很多,比如體積多余龐大,更糟糕的是壓縮標准不統一。
-
DV-AVI格式(后綴為.avi):DV的英文全稱是Digital Video Format,是由索尼、松下、JVC等多家廠商聯合提出的一種家用數字視頻格式。數字攝像機就是使用這種格式記錄視頻數據的。它可以通過電腦的IEEE 1394端口傳輸視頻數據到電腦,也可以將電腦中編輯好的視頻數據回錄到數碼攝像機中。電視台采用錄像帶記錄模擬信號,通過EDIUS由IEEE 1394端口采集卡從錄像帶中采集出來視頻就是這種格式。
-
QuickTime File Format格式(后綴為.mov):美國Apple公司開發的一種視頻格式,默認的播放器就是蘋果的QucikTime。具有較高的壓縮比率和較完美的視頻清晰度等特點,並可以保存alpha通道。
-
MPEG格式(文件后綴可以是.mpg、.mpeg、.mpe、.dat、.vob、.asf、.3gp、.mp4等):英文全稱為Moving Picture Experts Group,即運動圖像專家組格式,該專家組建於1998年,專門負責為CD建立視頻和音頻標准,而成員都是視頻、音頻及系統領域的技術專家。MPEG文件格式是運動圖像壓縮算法的國際標准,MPEG格式目前有三個壓縮標准, 分別是MPEG-1/MPEG-2和MPEG-4,前兩者目前使用較少。MPEG-4定制於1998 年,是為了播放流媒體的高質量視頻而專門設計的,以求使用最少的數據獲得最佳的圖像質量。目前MPEG-4最優吸引力的地方在於它能夠保存接近於DVD畫質的小體積視 頻文件。你可能注意到了,為什么沒有MPEG-3編碼,因為這個項目原本目標是為高分辨率電 視(HDTV)設計,隨后發現MPEG-2已足夠HDTV應用,故MPEG-3的研發中止。
-
WMV格式(后綴為.wmv、.asf):英文全稱為Windows Media Video,也是微軟推出的一種采用獨立編碼方式並且可以直接在網上實時觀看視頻節目的文件壓縮格式。其主要優點包括:本地或網絡回放,豐富的流間關系以及擴展性等。WMV如果在網站上播放,需要安裝Windows Media Player(WMP),很不方便,現在已經幾乎沒有網站采用了。
-
Flash Video格式(后綴為.flv):由Adobe Flash延伸出來的一種流行網絡視頻封裝格式。隨着視頻網站的豐富,這個格式已經非常普及。
-
Matroska格式(后綴為.mkv):是一種新的多媒體封裝格式,這個封裝格式可以把多種不同編碼的視頻及16條或以上不同格式的音頻和語言不同的字幕封裝在一個Matroska Media文檔內。它也是其中一種開源代碼的多媒體封裝格式。同時還可以提供非常友好的交互功能,而且比MPEG更方便、強大。
3)視頻編碼方式
簡稱視頻編碼,所謂視頻編碼方式就是指能夠對數字視頻進行壓縮或者解壓縮的程序或者設備。通常這種壓縮屬於有損數據壓縮。也可以指通過特定的壓縮技術,將某個視頻格式轉換成另一種視頻格式。常見的編碼方式有:
a、H.26x系列(由ITU[國際電傳視訊聯盟]主導),包括H.261、H.262、H.263、H.264和H.265。
-
H.261:主要在老的視頻會議和視頻電話產品中使用;
-
H.263:主要用在視頻會議、視頻電話和網絡視頻中;
-
H.264:H.264/MPEG-4第十部分,或稱為AVC(Advanced Video Coding,高級視頻編碼),是一種視頻壓縮標准,一種被廣泛使用的高精度視頻的錄制、壓縮和發布格式。
-
H.265:高效率視頻編碼(High Efficiency Video Coding,簡稱HEVC)是一種視頻壓縮標准,H264/MPEG-4 AVC的繼任者。HEVC被認為不僅提升圖像質量,同時也能達到H264/MPEG-4 AVC兩倍的壓縮率(等同於同樣畫面質量下比特率減少了50%),可支持4K分辨率甚至超高畫質電視,最高分辨率可達8192x4320(8K分辨率),這是目前發展的趨勢。
b、MPEG系列(有ISO[國際標准組織機構]下屬的MPEG[運動圖像專家組]開發),視頻編碼方面主要由:
-
MPEG-1第二部分:該部分的主要使用在VCD上,有些在線視頻也使用這種格式。該編解碼器的質量大致上和原有的VHS錄像帶相當。
-
MPEG-2第二部分:該部分等同於H.262,使用在DVD、SVCD和大多數數字視頻廣播系統和有線分布系統(cable distribution systems)中。
-
MPEG-4第二部分:該部分標准可以使用在網絡傳輸、廣播和媒體存儲上。比起MPEG-2和第一版的H.263,它的壓縮性能有所提高。
-
MPEG-4第十部分:該部分技術上和ITU-TH.264是相同的標准,有時候也被叫做AVC,最后這兩個編碼組織合作,誕生了H.264/AVC標准。ITU-T給這個標准命名為H.264,而ISO/IEC稱它為MPEG-4高級視頻編碼(Advanced Video Coding, AVC)
視頻的編碼格式才是一個視頻文件的本質所在,不要簡單的通過文件格式和封裝形式來區分視頻。
4、CPU & GPU
CPU:中央處理器(Central Processing Unit),包括運算器(算術邏輯運算單元,ALU, Arithmetic Logic Unit)和高速緩沖處理器(Cache)及實現它們之間聯系的數據(Data)、控制及狀態的總線(Bus)。
GPU:圖像處理器(Graphics Processing Unit),專為執行復雜的數學和幾何計算而設計的,擁有2D或3D圖形加速功能。
GPU相比於CPU,更強大的2D、3D圖形計算能力,可以讓CPU從圖形處理的任務中解放出來,執行其他更多的系統任務,這樣可以大大提高計算機的整體性能。
硬件加速(Hardware acceleration)就是利用硬件模塊來替代軟件算法以充分利用硬件所固有的快速特性。硬件加速通常比軟件算法的效率要高。將2D、3D圖形計算相關工作交給GPU處理,從而釋放CPU的壓力,也是屬於硬件加速的一種。