視頻的知識,本身和計算機語言無關(guān)。但考慮到大量的視頻開源軟件用C/C++語言編寫,因此將本講歸到C/C++語言系列。
對于視頻,大家都不陌生,我們的手機,就帶有攝像頭,可以拍視頻。下面介紹一些視頻相關(guān)的基礎(chǔ)知識。
像素的英文是Pixel,是Picture Element兩個單詞的縮寫,所以像素就是圖片單元。
在數(shù)字技術(shù)中,所有數(shù)據(jù),包括圖像數(shù)據(jù),都是用離散的二進制數(shù)字表示。因此,在計算機中,圖像也由一些列離散的點組成。用通俗的語言說,像素就是組成圖像的一個個帶有顏色的點。
對于像素的概念,用過老式電腦或者游戲機的朋友體會比較深,當(dāng)年一副圖像就像一組馬賽克點:
當(dāng)然,我們用Windows自帶的mspaint軟件隨便打開一幅高清jpg圖片,不斷放大,最后發(fā)現(xiàn)高清的jpg照片,其實也是類似于馬賽克的照片。例如下面這張趙麗穎的漂亮照片:
用mspaint打開,然后將眼部放大到最大,會發(fā)現(xiàn)圖像還是由一個個帶有顏色的點組成,這就是像素:
大家知道,我們可見的顏色,都可以用紅、綠、藍三種顏色組合得到。
紅色Red用R表示,綠色Green用G表示,藍色Blue用B表示,所以我們常常用RGB表示三種顏色的取值。
當(dāng)我們對R、G、B三個值都用一個字節(jié)來存儲時,共需要3個字節(jié),也就是24bit來表示圖像的RGB值。
使用24bit來表示顏色,可以表示1600萬顏色,遠遠超出了我們?nèi)庋蹖︻伾姆直娉潭?,因此我們常常稱24bit以上的RGB顏色為真彩色。
PPI用于表示物理設(shè)備上顯示圖像的清晰程度。
PPI是Pixels Per Inch的縮寫,即“每英寸像素數(shù)”。
72 PPI指每英寸的物理長度,有72像素;300 PPI指每英寸物理長度,有300個像素。
72 PPI和300 PPI的差別挺大。舉例:如果顯示設(shè)備大小等于一張A4紙,在300 PPI下的像素尺寸為 3508px * 2480px,而在72 PPI下則只有 842px * 595px。
分辨率,是顯示設(shè)備可以顯示的像素數(shù)量。
對于電腦顯示器,早期的分辨率一般為320×240、640×480,現(xiàn)在的分辨率一般為1024×768、1280×1024。
對于手機設(shè)備,現(xiàn)在比較流行的是智能手機,分辨率一般用PPI和手機液晶尺寸兩個指標來表示。
很多人小時候可能都做過這樣的游戲,在一本書的每頁上都畫一幅圖像,每相鄰兩頁圖像變化很少,當(dāng)我們快速切換當(dāng)前被展示頁面時,我們看到的圖畫就變成動畫了:
其實真正的視頻,原理也和這個游戲類似。
大量的圖片連續(xù)起來,就是視頻。
在視頻中,一個幀(Frame)就是指一幅靜止的古董畫面。幀率,就是指視頻每秒鐘包括的畫面數(shù)量(FPS,F(xiàn)rame Per Second)。
幀率越高,視頻就越逼真、越流暢。
如果計算機或攝像設(shè)備不做任何處理,機械地生成視頻,則視頻的尺寸會相當(dāng)巨大。
如果一個視頻的分辨率為1920×1280,幀率為30,每個像素用3字節(jié)表示RGB顏色,則一秒的視頻需要的字節(jié)量為:
1920×1280×3×30=211MB
如果一部電影放映100分鐘,則需要的字節(jié)數(shù)為211×60×100=1236GB,超過了1TB。
這樣巨大尺寸的視頻,是沒有辦法存儲和傳輸?shù)?,必須對視頻進行編碼處理。
視頻編碼的主要目標就是為了壓縮。
為了便于視頻的壓縮,首先需要將RGB顏色方案變?yōu)楦菀讐嚎s的YUV方案。YUV中的字母Y表示亮度,UV則表示色度。
視頻編碼的算法比較復(fù)雜,但是我們可以從邏輯上推測,最起碼可以通過下面的方式去掉視頻中的冗余信息:
?。?)極端情況下,如果視頻中某幀全部為黃色,實際上我們不用存儲每個像素的值,我們只需要存儲一個顏色值(黃色)和連續(xù)的像素數(shù)即可;
?。?)如果視頻中連續(xù)多個幀的圖片都基本相同,實際上我們除了第一幀之外,其它各幀只需要存儲圖像的變動信息。
國際上視頻編碼的標準主要有兩個系列,MPEG標準系列和H.26X系列。目前比較有名的H.265的壓縮率達到了1:500,前面描述的原始視頻1236G,使用H.265壓縮后只有2.4G。
視頻除了圖像,還需要聲音。
封裝就是將已經(jīng)編碼壓縮好的視頻軌和音頻軌按照一定的格式放到一個文件中。
我們常說的MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS就是視頻的封裝格式。
聯(lián)系客服