- 【宣告】課程學習地址:https://ke.qq.com/course/468797
目錄
【音視頻錄制原理】
【音視頻播放原理】
影像表示-RGB格式
影像表示-YUV格式
影像表示-YUV格式1
影像表示-YUV格式2
影像表示
視頻的主要概念
視頻的主要概念:I P B幀
常用視頻壓縮演算法
聲音的物理性質
數字音頻
數字音頻-采樣頻率
音頻常見名詞
音頻編碼原理簡介
壓縮編碼方法
封裝格式的概念
音視頻同步基礎
【音視頻錄制原理】
【音視頻播放原理】
影像表示-RGB格式
- 紅光(R)
- 綠光(G)
- 藍光(B)
- 每個像素用8bit表示
色彩:256*256*256=16,777,216
- RGB方式
- 對于一幅影像,一般使用整數表示方法來進行描述,比如計算一張的RGB_888影像的大小,可采用如下方式:
- 1280×720 * 3 = 2.637 MB,4分鐘就達到了15G的容量,
- 假如是一部90分鐘的電影,每秒25幀,則一部電影為
- 2.637MB*90分鐘*60秒*25FPS= 347.651GB
影像表示-YUV格式
- 數字影像表示 YUV格式
- 用途:
- 主要用于視頻信號的壓縮、傳輸和存盤,和向后相容老式黑白電視,
- 其中“Y”表示明亮度(Luminance或Luma),也稱灰階值;
- “U”和“V”表示的則是色度(Chrominance或Chroma)
- 作用是描述影像色彩及飽和度,用于指定像素的顏色,
影像表示-YUV格式1
- YUV格式有兩大類:
- planar和packed,
- 對于planar的YUV格式:
- 先連續存盤所有像素點的Y,緊接著存盤所有像素點的U,隨后是所有像素點的V,
- 對于packed的YUV格式:
- 每個像素點的Y,U,V是連續交替存盤的,
- libyuv,Google開源的實作各種YUV與RGB間相互轉換、旋轉、縮放的庫
影像表示-YUV格式2
- YUV存在多種格式,比如YUV420p,YUV420sp等,不同的YUV格式的資料在存盤時的排列順序是不一樣的,在開發的程序中必須非常注意,否則畫面會顯示不正常,比如花屏,綠屏等現象,
- YUV 4:4:4采樣,每一個Y對應一組UV分量,
- YUV 4:2:2采樣,每兩個Y共用一組UV分量,
- YUV 4:2:0采樣,每四個Y共用一組UV分量,
- 參考:
- 詳解yuv系列(一)---YUV444
- YUV420P/I420 stride 計算方式
- 最簡單解釋 YUV444,YUV422,YUV420中的4,2,0
影像表示
- 相較于RGB,我們可以計算一幀為1280×720的視頻幀,用YUV420P的格式來表示,其每個像素點資料量的大小如下:
- (4+2 ) / 4 = 1.5 Byte
- 1280 * 720 * 1 + 1280 * 720 * 0.5 = 1.318MB
- 如果fps(1秒的視頻幀數目)是25,按照一般電影的長度90分鐘來計算,那么這部電影用YUV420P的資料格式來表示的話,其資料量的大小就是:
- 1.318MB * 25fps * 90min * 60s = 173.76GB
視頻的主要概念
- 視頻碼率:kb/s,是指視頻檔案在單位時間內使用的資料流量,也叫碼流率,碼率越大,說明單位時間內取樣率越大,資料流精度就越高,
- 視頻幀率:fps,通常說一個視頻的25幀,指的就是這個視頻幀率,即1秒中會顯示25幀,幀率越高,給人的視覺就越流暢,
- 視頻解析度:解析度就是我們常說的640x480解析度、1920x1080解析度,解析度影響視頻影像的大小,
視頻的主要概念:I P B幀
- I 幀(Intra coded frames):I幀不需要參考其他畫面而生成,解碼時僅靠自己就重構完整影像;
- I幀影像采用幀內編碼方式;
- I幀所占資料的資訊量比較大;
- I幀影像是周期性出現在影像序列中的,出現頻率可由編碼器選擇;
- I幀是P幀和B幀的參考幀(其質量直接影響到同組中以后各幀的質量);
- I幀是幀組GOP的基礎幀(第一幀),在一組中只有一個I幀;
- I幀不需要考慮運動矢量;
- P 幀(Predicted frames):根據本幀與相鄰的前一幀(I幀或P幀,不能是B幀)的不同點來壓縮本幀資料,同時利用了空間和時間上的相關性,
- P幀屬于前向預測的幀間編碼,
- 它需要參考前面最靠近它的I幀或P幀來解碼,
- B 幀(Bi-directional predicted frames):B 幀影像采用雙向時間預測,可以大大提高壓縮倍數,
常用視頻壓縮演算法
- MPEG2 MPEG陣營
- H264 MPEG陣營
- H265 MPEG陣營
- AVS 中國陣營
- VP8 Google陣營
- VP9 Google陣營
聲音的物理性質
頻率
- 聲音的頻率是周期的倒數,它表示的是聲音在1秒鐘內的周期數,單位是赫茲(Hz),
- 千赫(kHz),即1000Hz,表示每秒振動1000次,聲音按頻率可作如下劃分:
- 次聲 0~20Hz
- 人耳能聽見的聲音 20Hz~20KHz
- 超聲 20KHz~1GHz
- 特超聲 1GHz~10THz
- 振幅
- 聲音有振幅,振幅的主觀感覺是聲音的大小,
- 聲音的振幅大小取決于空氣壓力波距平均值(也稱平衡態)的最大偏移量,
數字音頻
- 為了將模擬信號數字化,本節將分為3個概念:
- 采樣頻率、采樣量化、編碼
- 計算機并不直接使用連續平滑的波形來表示聲音,它是每隔固定的時間對波形的幅值進行采樣,用得到的一系列數字量來表示聲音,右圖 是經過數字采樣的波形示意圖,
- PCM脈沖編碼調制
- PCM(Pulse Code Modulation),脈沖編碼調制,
- 人耳聽到的是模擬信號,PCM是把聲音從模擬信號轉化為數字信號的技術,
數字音頻-采樣頻率
- 根據Nyguist采樣定律,要從采樣中完全恢復原始信號波形,采樣頻率必須至少是信號中最高頻率的兩倍,
- 前面提到人耳能聽到的頻率范圍是[20H~20kHz],所以采樣頻率一般為44.1Khz,這樣就能保證聲音到達20Khz也能被數字化,從而使得經過數字化處理之后,人耳聽到的聲音質量不會被降低,
- 采樣頻率:每秒鐘采樣的點的個數,常用的采樣頻率有:
- 22000(22kHz): 無線廣播,
- 44100(44.1kHz): CD音質,
- 48000(48kHz): 數字電視,DVD,
- 96000(96kHz): 藍光,高清DVD,
- 192000(192kHz): 藍光,高清DVD,
- 采樣是在離散的時間點上進行的,而采樣值本身在計算機中也是離散的,
- 采樣值的精度取決于它用多少位來表示,這就是量化,
- 例如8位量化可以表示256個不同值,而CD質量的16位量化可以表示65 536個值,范圍為[-32768, 32767],
- 下圖是一個3位量化的示意圖,可以看出3位量化只能表示8個值:0.75,0.5,0.25,0,─0.25,─0.5,─0.75和 ─1,因而量化位數越少,波形就越難辨認,還原后的聲音質量也就越差(可能除了一片嗡嗡聲之外什么都沒有)
音頻常見名詞
- 采樣頻率:每秒鐘采樣的點的個數,常用的采樣頻率有:
- 22000(22kHz): 無線廣播,
- 44100(44.1kHz):CD音質,
- 48000(48kHz): 數字電視,DVD,
- 96000(96kHz): 藍光,高清DVD,
- 192000(192kHz): 藍光,高清DVD,
- 采樣精度(采樣深度):每個“樣本點”的大小,
- 常用的大小為8bit, 16bit,24bit,
- 通道數:單聲道,雙聲道,四聲道,5.1聲道,
- 位元率:每秒傳輸的bit數,單位為:bps(Bit Per Second)
- 間接衡量聲音質量的一個標準,
- 沒有壓縮的音頻資料的位元率 = 采樣頻率 * 采樣精度 * 通道數,
- 碼率: 壓縮后的音頻資料的位元率,常見的碼率:
- 6kbps: FM質量
- 128-160kbps:一般質量音頻,
- 192kbps: CD質量,
- 256-320Kbps:高質量音頻
- 碼率越大,壓縮效率越低,音質越好,壓縮后資料越大,
- 碼率 = 音頻檔案大小 / 時長,
- 比如:采樣頻率44100,采樣精度16bit,2通道(聲道),采集4分鐘的資料
- 44100*16*2*4*60= ?338688000?bit
- ?338688000?/8/1024/1024 = 40M位元組
- 位元率:采樣頻率 * 采樣精度 * 通道數 = 44100*16*2= 1411200bit/s
- 幀:每次編碼的采樣單元數,
- 比如MP3通常是1152個采樣點作為一個編碼單元,AAC通常是1024個采樣點作為一個編碼單元,
- 幀長:
- 可以指每幀播放持續的時間:
- 每幀持續時間(秒) = 每幀采樣點數 / 采樣頻率(HZ)
- 比如:MP3 48k, 1152個采樣點,每幀則為 24毫秒
- 1152/48000= 0.024 秒 = 24毫秒;
- 也可以指壓縮后每幀的資料長度,
- 所以講到幀的時候要注意他適用的場合,
- 交錯模式:數字音頻信號存盤的方式,
- 資料以連續幀的方式存放,即首先記錄幀1的左聲道樣本和右聲道樣本,再開始幀2的記錄...
- 非交錯模式:首先記錄的是一個周期內所有幀的左聲道樣本,再記錄所有右聲道樣本
音頻編碼原理簡介
- 數字音頻信號如果不加壓縮地直接進行傳送,將會占用極大的帶寬,例如,一套雙聲道數字音頻若取樣頻率為44.1KHz,每樣值按16bit量化,則其碼率為:
- 2*44.1kHz*16bit=1.411Mbit/s
- 如此大的帶寬將給信號的傳輸和處理都帶來許多困難和成本(阿里云服務器帶寬大于5M后,每M價格是100元/月),因此必須采取音頻壓縮技術對音頻資料進行處理,才能有效地傳輸音頻資料,
- 數字音頻壓縮編碼在保證信號在聽覺方面不產生失真的前提下,對音頻資料信號進行盡可能大的壓縮,降低資料量,
- 數字音頻壓縮編碼采取去除聲音信號中冗余成分的方法來實作,所謂冗余成分指的是音頻中不能被人耳感知到的信號,它們對確定聲音的音色,音調等資訊沒有任何的幫助,
- 冗余信號包含人耳聽覺范圍外的音頻信號以及被掩蔽掉的音頻信號等,
- 例如,人耳所能察覺的聲音信號的頻率范圍為20Hz~20KHz,除此之外的其它頻率人耳無法察覺,都可視為冗余信號,
- 此外,根據人耳聽覺的生理和心理聲學現象,當一個強音信號與一個弱音信號同時存在時,弱音信號將被強音信號所掩蔽而聽不見,這樣弱音信號就可以視為冗余信號而不用傳送,
- 這就是人耳聽覺的掩蔽效應,主要表現在頻譜掩蔽效應和時域掩蔽效應,
【頻譜掩蔽效應】
- 一個頻率的聲音能量小于某個閾值之后,人耳就會聽不到,
- 當有另外能量較大的聲音出現的時候,該聲音頻率附近的閾值會提高很多,即所謂的掩蔽效應,如圖所示:
- 由圖中我們可以看出人耳對2KHz~5KHz的聲音最敏感,而對頻率太低或太高的聲音信號都很遲鈍,當有一個頻率為0.2KHz、強度為60dB的聲音出現時,其附近的閾值提高了很多,
- 由圖中我們可以看出在0.1KHz以下、1KHz以上的部分,由于離0.2KHz強信號較遠,不受0.2KHz強信號影響,閾值不受影響;而在0.1KHz~1KHz范圍,由于0.2KHz強音的出現,閾值有較大的提升,人耳在此范圍所能感覺到的最小聲音強度大幅提升,
- 如果0.1KHz~1KHz范圍內的聲音信號的強度在被提升的閾值曲線之下,由于它被0.2KHz強音信號所掩蔽,那么此時我們人耳只能聽到0.2KHz的強音信號而根本聽不見其它弱信號,這些與0.2KHz強音信號同時存在的弱音信號就可視為冗余信號而不必傳送,
【時域掩蔽效應】
- 當強音信號和弱音信號同時出現時,還存在時域掩蔽效應,即兩者發生時間很接近的時候,也會發生掩蔽效應,時域掩蔽程序曲線如圖所示,分為前掩蔽、同時掩蔽和后掩蔽三部分,
- 時域掩蔽效應可以分成三種:前掩蔽,同時掩蔽,后掩蔽,
- 前掩蔽是指人耳在聽到強信號之前的短暫時間內,已經存在的弱信號會被掩蔽而聽不到,
- 同時掩蔽是指當強信號與弱信號同時存在時,弱信號會被強信號所掩蔽而聽不到,
- 后掩蔽是指當強信號消失后,需經過較長的一段時間才能重新聽見弱信號,稱為后掩蔽,
- 這些被掩蔽的弱信號即可視為冗余信號,
- 總結:強壓制弱,弱的不編碼,
壓縮編碼方法
- 當前數字音頻編碼領域存在著不同的編碼方案和實作方式, 但基本的編碼思路大同小異, 如圖所示,
- 對每一個音頻聲道中的音頻采樣信號:
- 將它們映射到頻域中,這種時域到頻域的映射可通過子帶濾波器實作,每個聲道中的音頻采樣塊首先要根據心理聲學模型來計算掩蔽門限值;
- 由計算出的掩蔽門限值決定從公共位元池中分配給該聲道的不同頻率域中多少位元數,接著進行量化以及編碼作業;
- 將控制引數及輔助資料加入資料之中,產生編碼后的資料流,
【音頻編解碼器選型】
- OPUS(語音通話)
- MP3(音樂)
- AAC(直播)
- AC3和EAC3 杜比公司的方案
- 參考:https://www.jianshu.com/p/6b4c481f4294
封裝格式的概念
- 封裝格式(也叫容器)就是將已經編碼壓縮好的視頻流、音頻流及字幕按照一定的方案放到一個檔案中,便于播放軟體播放,
- 一般來說,視頻檔案的后綴名就是它的封裝格式,
- 封裝的格式不一樣,后綴名也就不一樣,
- 比如:同樣的陷可以做成餃子也可以做成包子,對于視頻也是一個道理,同樣的音視頻流可以用不同容器來承載,
【封裝格式示例】
- 這里的壓縮演算法:
- 視頻Video:使用了H264/AVC壓縮演算法
- 音頻Audio:使用了AAC壓縮演算法
- 封裝則使用MP4封裝格式
【常見的視頻封裝格式】
- AVI、MKV、MPE、MPG、MPEG
- MP4、WMV、MOV、3GP
- M2V、M1V、M4V、OGM
- RM、RMS、RMM、RMVB、IFO
- SWF、FLV、F4V、
- ASF、PMF、XMB、DIVX、PART
- DAT、VOB、M2TS、TS、PS
- H264+AAC封裝為FLV或MP4是最為流行的模式,
音視頻同步基礎
【音視頻同步概念】
- DTS(Decoding Time Stamp):即解碼時間戳,這個時間戳的意義在于告訴播放器該在什么時候解碼這一幀的資料,
- PTS(Presentation Time Stamp):即顯示時間戳,這個時間戳用來告訴播放器該在什么時候顯示這一幀的資料(音頻資料和視屏資料),
【音視頻同步方式】
- Audio Master:同步視頻到音頻
- Video Master:同步音頻到視頻
- External Clock Master:同步音頻和視頻到外部時鐘,
- 一般情況下 Audio Master > External Clock Master > Video Master ,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241052.html
標籤:其他



















