音視頻開發(fā)基礎(chǔ)知識

其實音視頻開發(fā)要掌握圖像狭郑,視頻腹暖,音頻的基礎(chǔ)知識,并學會如何對他們進行采集翰萨,渲染脏答,處理,傳 輸?shù)纫幌盗虚_發(fā)和應(yīng)用亩鬼。

采集解決了數(shù)據(jù)從哪里來的問題以蕴,渲染解決的是數(shù)據(jù)怎么嶄新的問題,處理解決 的是數(shù)據(jù)怎么加工的問題辛孵,傳輸解決的是數(shù)據(jù)怎么共享的問題。這里的每一個門類都可以深挖赡磅,衍生出一 個個充滿技術(shù)挑戰(zhàn)的話題魄缚。

音頻

因為音頻技術(shù)是為了記錄、存儲和回放聲學現(xiàn)象才發(fā)明的焚廊,所以先了解聲學現(xiàn)象對學習數(shù)字音頻是有很大幫助的冶匹。我們必須要對聲學現(xiàn)象有基礎(chǔ)的了解,若只研究數(shù)字音頻而忽略了聲學現(xiàn)象咆瘟,那就本末倒置了嚼隘。

聲音的基礎(chǔ)知識

聲音的產(chǎn)生是由于物體的振動,造成空間內(nèi)空氣的波動而共鳴發(fā)音袒餐,再由大氣的傳播飞蛹,使人的聽覺神經(jīng)感受到的一種物理現(xiàn)象。

聲波就形同水波灸眼,聲波雖然看不到卧檐,但其傳送能量形式和水波卻是雷同的。

聲音的三要素是響度焰宣,音調(diào)和音色霉囚。頻率代表音階的高低,振幅代表響度匕积,波形代表音色盈罐。

響度又叫做音量,是人耳對聲音強弱的主觀感覺闪唆。響度和聲音震動的幅度有關(guān)盅粪,用的力越大,人的鼓 膜震動幅度就越大苞氮,發(fā)出的聲音越響湾揽。

音調(diào)其實就是人耳對聲音高低的感覺,音調(diào)主要是和頻率有關(guān)。聲波的頻率越高库物,音調(diào)也越高霸旗,比如 我們分別敲大鼓和小鼓,會感覺它們所發(fā)出的聲音不同戚揭。小鼓被敲擊后振動頻率快诱告,發(fā)出的聲音比較清脆, 即音調(diào)較高民晒;而大鼓被敲擊后振動頻率較慢精居,發(fā)出的聲音比較低沉,即音調(diào)較低潜必。

音色在同樣的音調(diào)(頻率)和響度(振幅)下靴姿,鋼琴和小提琴的聲音聽起來是完全不相同的,因為它 們的音色不同磁滚。

聲音傳播的介質(zhì)是 固體佛吓、液體、氣體垂攘。介質(zhì)不同维雇,傳播的速度也不同。真空的情況下聲音是無法傳播 的晒他。

數(shù)字音頻

首先我們要對自然界的聲音(模擬信號)進行采樣吱型,采樣就是根據(jù)奈奎斯特定理在時間軸上對信號進 行數(shù)字化信號。采樣也稱抽樣陨仅,是連續(xù)信號在時間上的離散化津滞,即按照一定時間間隔△t 在模擬信號 x(t)上 逐點采取其瞬時值。采樣率越高掂名,聲音的還原程度越高据沈,質(zhì)量就越好,同時占用空間會變大饺蔑。

量化是用有限個幅度值近似原來連續(xù)變化的幅度值锌介,把模擬信號的連續(xù)幅度變?yōu)橛邢迶?shù)量的有一定間 隔的離散值。

編碼是按照一定的規(guī)律猾警,把量化后的值用二進制數(shù)字表示孔祸,然后轉(zhuǎn)化成二值或多值的數(shù)字信號流。這 樣得到的數(shù)字信號通過可以通過電纜发皿,衛(wèi)星通道等數(shù)字線路傳輸崔慧。在接收端與上述模擬信號數(shù)字化過程相 反,再經(jīng)過后置濾波再恢復(fù)成原來的模擬信號穴墅。

上面數(shù)字化的過程又叫做脈沖編碼調(diào)制惶室,通常我們說的音頻的裸數(shù)據(jù)格式就是脈沖編碼調(diào)制(PCM)數(shù) 據(jù)温自。描述一段 PCM 數(shù)據(jù)需要幾個量化指標,常用的量化指標是采樣率皇钞,位深度悼泌,字節(jié)序,聲道數(shù)夹界。

采樣率(Sample rate):每秒鐘采樣多少次馆里,以 Hz 為單位。

位深度(Bit-depth):表示用多少個二進制位來描述采樣數(shù)據(jù)可柿,一般為 16bit鸠踪。

字節(jié)序:表示音頻 PCM 數(shù)據(jù)存儲的字節(jié)序是大端存儲(big-endian)還是小端存儲(little-endian),為了數(shù)據(jù)處理效率的高效复斥,通常為小端存儲营密。

聲道數(shù)(channel number):當前 PCM 文件中包含的聲道數(shù),是單聲道(mono)目锭、雙聲道

音頻編碼

以 CD 音質(zhì)來說卵贱,量化格式是 2 字節(jié),采樣率是 44100侣集,聲道數(shù)是 2,這些信息就描述了 CD 的音質(zhì)兰绣。那么 CD 的數(shù)據(jù)采樣率 =44100162=1378.125kbps, 在 1 分鐘的時間里 世分,需要占用的存儲空間=1378.125 * 60/8/1024=10.09MB。并不小缀辩。

壓縮算法包括有損壓縮和無損壓縮臭埋。

常用的音頻編碼方式有以下幾種:

MP3,英文全稱 MPEG-1 or MPEG-2 Audio Layer III臀玄,是曾經(jīng)非常流行的一種數(shù)字音頻編碼和有損壓縮格 式 瓢阴, 它 被 設(shè) 計 來 大 幅 降 低 音 頻 數(shù) 據(jù) 量 。 它 是 在 1991 年 健无, 由 位 于 德 國 埃 爾 朗 根 的 研 究 組 織 Fraunhofer-Gesellschaft 的一組工程師發(fā)明和標準化的荣恐。

AAC,英文全稱 Advanced Audio Coding累贤,是由 Fraunhofer IIS叠穆、杜比實驗室、AT&T臼膏、Sony 等公司共同開發(fā)硼被, 在 1997 年推出的基于 MPEG-2 的音頻編碼技術(shù)。2000 年渗磅,MPEG-4 標準出現(xiàn)后嚷硫,AAC 重新集成了其特性检访, 加入了 SBR 技術(shù)和 PS 技術(shù),為了區(qū)別于傳統(tǒng)的 MPEG-2 AAC 又稱為 MPEG-4 AAC仔掸。AAC 比 MP3 有更高的壓 縮比脆贵,同樣大小的音頻文件,AAC 的音質(zhì)更高嘉汰。

WMA丹禀,英文全稱 Windows Media Audio,由微軟公司開發(fā)的一種數(shù)字音頻壓縮格式鞋怀,本身包括有損和無 損壓縮格式双泪。

視頻

首先我們了解下像素的基本概念,屏幕顯示的原理密似,其實是把有效面積化為為很多個小格子焙矛,每個格 子只顯示一種顏色,是成像的最小元素残腌,因此就叫做“像素”村斟。那么分辨率又是啥意思呢?屏幕在長度和寬度這倆個方向上各有多少像素抛猫,就叫做分辨率蟆盹,一般用 AXB 來表示。分辨率越高闺金,每個像素的面積越小逾滥,顯示效果就越平滑細膩。每一個像素點的 RGB 通道分別對應(yīng)屏幕位置上的子像素點繪制到屏幕上败匹,進而顯示整個圖像寨昙。

RGB 表示圖像

一張圖像是由每個像素點繪成的,那么一像素點的 RGB 又該如何表示呢掀亩?

浮點表示

歸一化表示舔哪,取值范圍 0.0~1.0,如 openGL 對每個子像素點的表示方式槽棍。

整數(shù)表示

取值范圍 0~255 或者 00~FF捉蚤,8bit 表示一個子像素。

如圖像格式 RGBA_8888炼七,表示 4*8bit 表示一個像素外里,而 RGB_565 用 5 + 6 + 5 bit 表示一個像素。一張 1280 * 720特石, RGBA_8888 格式的圖片的大小= 1280 * 720 * 32bit = 1280 * 720 * 32 / 8 byte盅蝗,也是位圖在內(nèi)存中占用 的大小。所以每一張圖像的裸數(shù)據(jù)都是很大的姆蘸。

YUV 表示圖像

YUV墩莫,是另外一種顏色編碼方法芙委,視頻的裸數(shù)據(jù)一般使用 YUV 數(shù)據(jù)格式表示。Y 表示明亮度狂秦,也稱灰度 值(灰階值)灌侣。UY 表示色度,均表示影響的色彩和飽和度裂问,用于指定像素的顏色侧啼。

亮度需要透過 RGB 輸入信號建立,方式為將 RGB 信號的特定部分(g 分量信號)疊加到一起堪簿。

色度定義了顏色的色調(diào)和飽和度痊乾,分別用 Cr、Cb 表示椭更,(C 代表分量(是 component 的縮寫))哪审。 Cr 反映 RGB 輸入信號紅色部分與 RGB 信號亮度值之間的差異。Cb 反映 RGB 輸入信號藍色部分與 RGB 信號亮度值之間的差異虑瀑。

視頻幀裸數(shù)據(jù)之所以采用 YUV 色彩空間湿滓,使用為亮度信號 Y 和色度信號 UV 是分離的。當無 UV 色度信號舌狗,只有 Y 亮度信號時叽奥,那么這樣表示的圖像就是黑白灰度圖像。彩色電視正是使用 YUV 空間使用 Y 亮度 信號解決彩色電視與黑白電視的兼容問題痛侍、使黑白電視也能接收彩色電視信號而线。最常用的 YUV 都使用 8 個 字節(jié)來表示,所以取值范圍就是 0~255恋日。

音頻最開始需要采樣,圖像也是一樣的嘹狞,YUV 最常用的采樣格式是 4:2:0岂膳。

YUV 格式有兩大類:planar 和 packed

1.對于 planar 的 YUV 格式,先連續(xù)存儲所有像素點的 Y磅网,緊接著存儲所有像素點的 U谈截,隨后是所有像素 點的 V。

2.對于 packed 的 YUV 格式涧偷,每個像素點的 Y,U,V 是連續(xù)存儲的簸喂。 YUV420(YUV420-Package),分辨率為 84(wh)的 YUV 圖像燎潮,則內(nèi)存分布如下

YUV420P(YUV420-Planar) 分辨率為 84(wh)的 YUV 圖像喻鳄,則內(nèi)存分布如下

YUV 碼流的存儲格式其實與其采樣的方式密切相關(guān),主流的采樣方式有三種确封,YUV4:4:4除呵,YUV4:2:2再菊, YUV4:2:0,YUV 4:4:4 采樣颜曾,每一個 Y 對應(yīng)一組 UV 分量纠拔。YUV 4:2:2 采樣,每兩個 Y 共用一組 UV 分量泛豪。 YUV 4:2:0 采樣稠诲,每四個 Y 共用一組 UV 分量。

YUV 和 RGB 轉(zhuǎn)化

凡是渲染到屏幕上的東西(文字诡曙、圖片或者其他)臀叙,都要轉(zhuǎn)換為 RGB 的表示形式,那么 YUV 的表示形 式和 RGB 的表示形式之間是如何進行轉(zhuǎn)換的呢岗仑?

為了實現(xiàn)格式轉(zhuǎn)換匹耕,我們首先要明確待轉(zhuǎn)換格式和目標格式的特點和相互轉(zhuǎn)換關(guān)系,這是編程實現(xiàn)轉(zhuǎn)換的核心荠雕。對于 RGB 轉(zhuǎn) YUV 的過程稳其,我們要首先拿到 RGB 文件的數(shù)據(jù),再通過上圖的 YUV 計算公式對其做 運算炸卑,得到 YUV 數(shù)據(jù)既鞠,從而實現(xiàn)轉(zhuǎn)換。而對于 YUV 轉(zhuǎn) RGB 則要首先獲得 YUV 數(shù)據(jù)盖文,用第二組 RGB 公式計 算得到 RGB 數(shù)據(jù)嘱蛋。在本實驗中,轉(zhuǎn)換公式如下五续。

Y?=0.298R?+0.612G?+0.117B;

U?=-0.168R?-0.330G?+0.498B+128;

V?=0.449R?-0.435G?-0.083B+128;

R?=?Y?+1.4075(?V?-128);

G?=?Y?-0.3455(?U?-128)?-0.7169(?V?-128);

B?=?Y?+1.779(?U?-128);

視頻編碼

我們?yōu)槭裁匆幋a呢洒敏?原因很簡單,因為 YUV RGB 形式的視頻數(shù)據(jù)太大了疙驾。編碼的目的就是為了壓縮凶伙, 讓各種視頻的體積變得更小,有利于存儲和傳輸它碎。編碼的核心思想是去除冗余信息函荣。

冗余信息是指各方面的冗余,比如:

空間冗余:圖像內(nèi)部相鄰像素之間存在較強的相關(guān)性造成的冗余扳肛。比如一張圖片中有很多的像素點是 一樣的傻挂。

時間冗余:視頻圖像序列中的不同幀之間相關(guān)性所造成的冗余。比如挖息,一段視頻中金拒,此時的圖像和 1S 之后的圖像可能部分圖片是重復(fù)的。

視覺冗余:是指人眼不能感知或不敏感的那部分圖像信息套腹。

信息熵冗余“也叫編碼冗余殖蚕。人們用于表達某一信息所需要的比特數(shù)總比理論上表示該信息所需要的 最少比特數(shù)要大轿衔,他們之間的差距就是信息熵冗余。

知識冗余:是指在有些圖像中還包含與某些驗證知識有關(guān)的信息睦疫。

.......

視頻編碼的作用:將視頻像素數(shù)據(jù)(RGB害驹,YUV 等)壓縮成視頻碼流,從而降低視頻的數(shù)據(jù)量蛤育。視頻編碼方式有以下幾種方式:

編碼標準

在 20 年前國際上主流制定視頻編解碼技術(shù)的組織有兩個宛官,一個是“國際電聯(lián)(ITU-T)”,它制定的標準 有 H.261瓦糕、H.263底洗、H.263+、H.264 等咕娄,另一個是“國際標準化組織(ISO)”它制定的標準有 MPEG-1亥揖、MPEG-2、 MPEG-4 等圣勒。

1990:H.261(ITU)

1993:MEPG-1(ISO)

1995:H.263(ITU)

1996:MPEG-2(ISO)

2003:H.264

2017:H265 (HEVC)

WMV 是微軟推出的一種流媒體格式费变,它是在“同門”的 ASF 格式升級延伸來得。在同等視頻質(zhì)量下圣贸,WMV 格式的文件可以邊下載邊播放挚歧,因此很適合在網(wǎng)上播放和傳輸。

VP8 來自 On2 的 WebM, VPX(VP6,VP7,VP8,VP9)吁峻,這個編碼設(shè)計用于 web 視頻滑负。

WebRTC。在 2010 年 5 月用含,Google 以大約 6820 萬美元收購了 VoIP 軟件開發(fā)商 Global IP Solutions 公司矮慕,并因此獲得了該公司擁有的 WebRTC 技術(shù)。WebRTC 集成 VP8, VP9啄骇。

AV1 是一個開放痴鳄,免專利的視頻編碼格式,針對互聯(lián)網(wǎng)傳輸視頻而設(shè)計肠缔。

AVS 是中國具備自主知識產(chǎn)權(quán)的第二代信源編碼標準,是《信息技術(shù)先進音視頻編碼》系列標準的簡稱哼转, 其包括系統(tǒng)明未、視頻、音頻壹蔓、數(shù)字版權(quán)管理等四個主要技術(shù)標準和符合性測試等支撐標準趟妥。

H265與 H.264 編解碼器相比,HEVC 在壓縮方面提供了重大的改進佣蓉。HEVC 壓縮視頻的效率比 H.264 要高出兩倍披摄。使用 HEVC亲雪,相同視覺質(zhì)量的視頻只占用一半的空間。

VP9 是由 Google 開發(fā)的開放式疚膊、無版權(quán)費的視頻編碼標準义辕,VP9 也被視為是 VP8 的下一代視頻編碼 標準。

H.265 與 VP9

H.265 與 VP9 編碼質(zhì)量的對比測試寓盗,數(shù)值越小灌砖,則表示編碼質(zhì)量越好。從對比中我們發(fā)現(xiàn) H.265傀蚌、VP9 兩者的差別并不大基显,整體平均分只差了 0.001,在實際應(yīng)用中幾乎不存在差異善炫。

在編碼時間對比中撩幽,VP9 完勝 H.265,無論是 4K 視頻還是 1920箩艺、1280 分辨率的視頻窜醉,VP9 的編碼 耗時都比 H.265 短很多。但是 H.265 的解碼效率略高于 VP9 舅桩。

H.265 繼承了 H.264 的視頻編碼標準體系酱虎,在商業(yè)應(yīng)用中更加廣泛,多使用于安防擂涛、軍政读串、企業(yè)等場 景中,但由于其專利持有者過多撒妈,導(dǎo)致其商用費用過高恢暖,在推廣中面臨較大阻力。

VP9 由 Google 研發(fā)狰右,可以免費使用杰捂。在實際推廣中,微軟棋蚌、蘋果等公司不愿看到 VP9 一家獨大嫁佳,其 他互聯(lián)網(wǎng)廠商也不希望主流視頻編碼格式被壟斷,因此目前在主要在 Google 自家的產(chǎn)品中得到支持谷暮,其他 使用 VP9 的大廠并不多蒿往。

就目前而言,H.265 在企業(yè)湿弦、安防中使用較為廣泛瓤漏,而 VP9 因其簡易、實用的解決方案以及開發(fā)免費 的特性在互聯(lián)網(wǎng)應(yīng)用場景中使用較多。不論是 H.265 還是 VP9蔬充,都有著其優(yōu)勢領(lǐng)域蝶俱,用戶可以根據(jù)實際的 應(yīng)用場景選擇使用的格式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末饥漫,一起剝皮案震驚了整個濱河市榨呆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌趾浅,老刑警劉巖愕提,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異皿哨,居然都是意外死亡浅侨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門证膨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來如输,“玉大人,你說我怎么就攤上這事央勒〔患” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵崔步,是天一觀的道長稳吮。 經(jīng)常有香客問我,道長井濒,這世上最難降的妖魔是什么灶似? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮瑞你,結(jié)果婚禮上酪惭,老公的妹妹穿的比我還像新娘。我一直安慰自己者甲,他們只是感情好春感,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虏缸,像睡著了一般鲫懒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刽辙,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天窥岩,我揣著相機與錄音,去河邊找鬼扫倡。 笑死谦秧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的撵溃。 我是一名探鬼主播疚鲤,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缘挑!你這毒婦竟也來了集歇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤语淘,失蹤者是張志新(化名)和其女友劉穎诲宇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惶翻,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡姑蓝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吕粗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纺荧。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颅筋,靈堂內(nèi)的尸體忽然破棺而出宙暇,到底是詐尸還是另有隱情,我是刑警寧澤议泵,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布占贫,位于F島的核電站,受9級特大地震影響先口,放射性物質(zhì)發(fā)生泄漏型奥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一池充、第九天 我趴在偏房一處隱蔽的房頂上張望桩引。 院中可真熱鬧,春花似錦收夸、人聲如沸坑匠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厘灼。三九已至,卻和暖如春咽瓷,著一層夾襖步出監(jiān)牢的瞬間设凹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工茅姜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闪朱,地道東北人月匣。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像奋姿,于是被迫代替她去往敵國和親锄开。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一称诗、顏色模式RGBYUV:YUV4:4:4 YUV4:2:2 YUV4:2:0RGB與YUV轉(zhuǎn)換公式HSV 二萍悴、視...
    ccccr閱讀 535評論 0 0
  • 前段時間項目中使用到了發(fā)布視頻動態(tài)功能,使用ffmpeg做了簡單壓縮裁剪寓免,發(fā)現(xiàn)很有必要補一下音視頻方面知識癣诱。今天學...
    JianLee閱讀 1,274評論 0 3
  • 音視頻入門前,需要了解下一些基礎(chǔ)概念袜香,不必死記硬背撕予,可之后再補再翻閱。 一. 顏色模式 RGB[https://z...
    Benhero閱讀 16,176評論 0 25
  • 概要QQ20180806-142933@2x.png我們?nèi)粘I钪械囊曨l文件 avi, rmvb, mp4, fl...
    GeorgeMR閱讀 2,614評論 0 2
  • 音視頻基礎(chǔ)知識 一蜈首、音頻入門 1.1 音頻量化與編碼 采樣大行崾摺:一個采樣使用多少 bit 存放,常用的是 16 b...
    csranger閱讀 1,319評論 0 2