加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1、視頻
    • 2、色彩空間
    • 3、音頻
    • 4、FFmpeg
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

干貨 | 音視頻相關(guān)技術(shù)基礎(chǔ)知識(shí)總結(jié)

2021/10/26
446
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

前陣子寫了很多筆記,由于忙于研究生課程學(xué)習(xí),故很少有時(shí)間整理筆記分享到公眾號(hào)上,今天整理的筆記是我之前學(xué)習(xí)音視頻技術(shù)相關(guān)的筆記整理。

1、視頻

 

1.1、視頻幀

幀,是視頻的一個(gè)基本概念,表示一張畫面,一個(gè)視頻就是由許許多多的幀組成的。

1.2、幀率

即單位內(nèi)幀的數(shù)量,單位為:幀/秒 或 fps(frames per second),一秒內(nèi)包含多少?gòu)垐D片,圖片越多,畫面越順滑,過(guò)渡越自然。

常見的幀率典型值:

(1)24/25 fps:1秒24/25幀,一般的電影頻率。

(2)30/60 fps:1秒30/60幀,游戲的頻率,30幀可以接受,60幀會(huì)感覺更加流暢逼真

(3)85fps:這個(gè)幀率及以上人眼基本無(wú)法察覺出來(lái),更高的幀率在視頻里沒有太大意義。

2、色彩空間

 

2.1、RGB

通過(guò)R、G、B三種基礎(chǔ)色,可以混合出所有的顏色

2.2、YUV

也叫,YCbCr,是一種亮度與色度分離的色彩格式

(1)Y:亮度,就是灰度值,出了表示亮度信號(hào)外,還含有較多的綠色通道量

(2)U:藍(lán)色通道與亮度的差值

(3)V:紅色通道與亮度的差值

優(yōu)勢(shì):

人眼對(duì)亮度敏感,對(duì)色度不敏感,因此減少部分UV的數(shù)據(jù)量,人眼卻無(wú)法感知出來(lái),這樣可以通過(guò)壓縮UV分辨率,在不影響感觀的前提下,減少視頻的體積。

2.3、RGBYUV的換算

(1)RGB轉(zhuǎn)YUV算法

Y = 0.299R + 0.587G + 0.114B

U = -0.147R - 0.289G + 0.436B

V = 0.635R - 0.515G - 0.100B

(2)YUV轉(zhuǎn)RGB算法

R = Y + 1.14V

G = Y - 0.39U - 0.58V

B = Y + 2.03U

3、音頻

 

3.1、基本知識(shí)

人類能夠聽到的所有聲音都稱之為音頻,在計(jì)算機(jī)中,音頻只是存儲(chǔ)在計(jì)算機(jī)里的聲音。

PCM:音頻數(shù)據(jù)的承載方式最常用的是脈沖編碼調(diào)制。

在自然界中,聲音是連續(xù)不斷的,是一種模擬信號(hào),那怎樣才能把聲音保存下來(lái)呢?就是將這些模擬信號(hào)數(shù)字化,即模數(shù)轉(zhuǎn)換,將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)

聲音是一種波,由自己的振幅和頻率,那么要保存聲音,就要保存聲音在各個(gè)時(shí)間點(diǎn)上的振幅。而數(shù)字信號(hào)并不能連續(xù)保存所有時(shí)間點(diǎn)的振幅。

奈奎斯特采樣定理:為了不失真地恢復(fù)模擬信號(hào),采樣頻率應(yīng)該不小于模擬信號(hào)頻率中最高頻率的2倍。

3.2、采樣率和采樣位數(shù)

(1)采樣率

根據(jù)奈奎斯特采樣定理,人耳能聽到的最高頻率為20KHz,所以為了滿足人耳的聽覺要求,采樣率至少為40KHz,通常為44.1KHz,更高的通常為48KHz。

注意:人耳聽覺頻率范圍[20Hz,20KHz]。

(2)采樣位數(shù)

波形振幅在模擬信號(hào)上也是連續(xù)的樣本值,而在數(shù)字信號(hào)中,信號(hào)一般是不連續(xù)的,所以模擬信號(hào)量化后,只能取一個(gè)近似的整數(shù)值,為了記錄這些振幅值,采樣器會(huì)采用一個(gè)固定的位數(shù)來(lái)記錄這些振幅值,通常有8位、16位、32位。

注意:位數(shù)越多,記錄的值越準(zhǔn)確,還原度越高,但是占用的硬盤空間越大。

位數(shù) 最小值 最大值
8 0 255
16 -32768 32767
32 -2147483648 2147483647
 

3.3、音頻編碼

由于數(shù)字信號(hào)是由0、1組成的,因此,需要將幅度值轉(zhuǎn)化為一系列0和1進(jìn)行存儲(chǔ),也就是編碼。

3.4、PCM的采集步驟

模擬信號(hào)->采樣(奈奎斯特采樣定理)->量化->編碼->數(shù)字信號(hào)

3.5、聲道數(shù)

聲道數(shù)是指支持能不同發(fā)聲(注意是不同聲音)的音響的個(gè)數(shù)。

  • 單聲道:1個(gè)聲道雙聲道:2個(gè)聲道立體聲道:默認(rèn)為2個(gè)聲道立體聲道(4聲道):4個(gè)聲道

3.6、碼率

碼率是指一個(gè)數(shù)據(jù)量中每秒鐘能通過(guò)的信息量,單位bps(bit per second)

碼率 = 采樣率 * 采樣位數(shù) * 聲道數(shù)

3.7、常見的音頻格式

CD格式、WAVE(*.WAV)、AIFF、MP3、MIDI、AAC、WMA、OggVorbis

4、FFmpeg

 

4.1、FFmpeg是什么?

是一套可以用來(lái)記錄、轉(zhuǎn)化數(shù)字音頻、視頻、并能將其轉(zhuǎn)化為流的開源計(jì)算機(jī)程序。它有著非常強(qiáng)大的功能,主要包括:視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等。

4.2、FFmpeg的組成

FFmpeg由三個(gè)部分組成:

(1)工具

分別是ffmpeg、ffplay、ffserverffprobe

ffmpeg:音視頻轉(zhuǎn)碼、轉(zhuǎn)換器

ffplay:簡(jiǎn)單的音視頻播放器

ffserver流媒體服務(wù)器

ffprobe:簡(jiǎn)單的多媒體碼流分析器

(2)SDK

提供開發(fā)者使用的SDK,我們可以根據(jù)自己的需求使用這些庫(kù)開發(fā)自己的應(yīng)用程序,這些庫(kù)主要有:

libavcodec:包含音視頻編碼器解碼器

libavutil:包含多媒體應(yīng)用常用的簡(jiǎn)化編程的工具,如隨機(jī)數(shù)生成器、數(shù)據(jù)結(jié)構(gòu)、數(shù)學(xué)函數(shù)等功能

libavformat:包含多種多媒體容器格式的封裝、解封裝工具

libavfilter:包含多媒體處理常用的濾鏡功能

libavdevice:用于音視頻數(shù)據(jù)采集和渲染等功能的設(shè)備相關(guān)

libswscale:用于圖像縮放和色彩空間和像素格式轉(zhuǎn)換功能

libswresample:用于音頻量采樣和格式轉(zhuǎn)換等功能

libpostproc:用于后期處理,當(dāng)我們使用filter的時(shí)候,需要打開這個(gè)模塊,filter會(huì)用到這個(gè)模塊里的一些基礎(chǔ)函數(shù)

(3)源代碼

整個(gè)工程的源代碼,無(wú)論是編譯出來(lái)的可執(zhí)行程序還是SDK

它的源代碼由C語(yǔ)言實(shí)現(xiàn),主要在Linux平臺(tái)上進(jìn)行開發(fā)。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

本科畢業(yè)于華南理工大學(xué),現(xiàn)美國(guó)卡羅爾工商管理碩士研究生在讀,曾就職于世界名企偉易達(dá)、聯(lián)發(fā)科技等,多年嵌入式產(chǎn)品開發(fā)經(jīng)驗(yàn),在智能玩具、安防產(chǎn)品、平板電腦、手機(jī)開發(fā)有豐富的實(shí)戰(zhàn)開發(fā)經(jīng)驗(yàn),現(xiàn)任深圳市云之手科技有限公司副總經(jīng)理、研發(fā)總工程師。