音視頻學(xué)習(xí)

多媒體屬性簡(jiǎn)介

1、音頻

1.1 音頻基礎(chǔ)知識(shí)

1.1.1 聲學(xué)的物理特征

聲音信號(hào)通常是一種連續(xù)的波形來(lái)表示。波形的最大位移稱為振幅A,反應(yīng)音量。波形中兩個(gè)連續(xù)波峰(或波谷)之間的距離稱為周期T。周期的倒數(shù)即為頻率f,以赫茲(Hz)為單位。頻率反應(yīng)了聲音的音調(diào)。

聲音可按頻率分為三類:

  • 次聲波:頻率低于20Hz。
  • 音頻;頻率在20-20kHz。
  • 超聲:頻率高于20kHz。

1.1.2 音頻屬性

音頻(Audio)指頻率在20Hz-20kHz范圍內(nèi)的可聽聲音,是多媒體信息中的一種媒體類型 - 可聽類媒體。

目前多媒體計(jì)算機(jī)中的音頻主要由波形音頻、CD音頻和MIDE音樂(lè)3種形式。重點(diǎn)應(yīng)該是波形音頻。

1、波形音頻

波形音頻是由外部聲音源通過(guò)數(shù)字化過(guò)程采集到多媒體計(jì)算機(jī)的所有聲音形式。語(yǔ)音是波形聲音中人說(shuō)話的聲音,具有內(nèi)在的語(yǔ)言學(xué)、語(yǔ)音學(xué)的內(nèi)涵。多媒體計(jì)算機(jī)可以利用特殊的方法分析、研究、抽取語(yǔ)音的相關(guān)特征,實(shí)現(xiàn)對(duì)不同語(yǔ)音的分辨、識(shí)別以及通過(guò)文字合成語(yǔ)音波形等。

2、CD音頻

CD音頻(CD-Audio)是存儲(chǔ)在音樂(lè)CD光盤中的數(shù)字音頻,可以通過(guò)CD-ROM驅(qū)動(dòng)器讀取并采集到多媒體計(jì)算機(jī)系統(tǒng)中,并以波形音頻的相應(yīng)形式存儲(chǔ)和處理。

3、MIDI

MIDI音頻(musical instrument digital interface),它將音樂(lè)符號(hào)化并保存在MIDI文件中,通過(guò)因?yàn)楹铣善鳟a(chǎn)生相應(yīng)的聲音波形來(lái)還原播放。

音頻是時(shí)間的函數(shù),具有很強(qiáng)的前后相關(guān)性,所以實(shí)時(shí)性是音頻處理的基本要求。

1.1.3 音頻的數(shù)字化

計(jì)算機(jī)處理音頻信號(hào)前,必須將模擬的聲音信號(hào)數(shù)字化,產(chǎn)生數(shù)字音頻。具體過(guò)程包括采樣、量化與編碼。圖示基本如下;

[站外圖片上傳中...(image-5f9f10-1598062459460)]

1、采樣與采樣頻率

采樣就是每間隔一段時(shí)間讀取一次聲音信號(hào)幅度,使聲音信號(hào)在時(shí)間上被離散化。

采樣頻率就是將模擬聲音波形數(shù)字化時(shí),每秒鐘抽取聲波幅度樣本的次數(shù),其計(jì)算單位是kHz(千赫茲)。一般來(lái)說(shuō),采樣頻率越高,聲音失真越小,用于存儲(chǔ)的數(shù)字音頻的數(shù)據(jù)量也越大。

乃奎斯特(Nyquist)采樣理論:采樣頻率不應(yīng)低于聲音信號(hào)最高頻率的兩倍。這樣就能把以數(shù)字表達(dá)的聲音還原成原來(lái)的聲音。例如:電話話音的信號(hào)頻率約為 3.4 kHz,采樣頻率一般選用 8 kHz。

音頻抽樣率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz。

2、量化與量化位數(shù)

量化就是把采樣得到的信號(hào)幅度轉(zhuǎn)化為數(shù)字值,是聲音信號(hào)在幅度上被離散化。量化位數(shù)(位深)是每個(gè)采樣點(diǎn)能夠表示的數(shù)據(jù)范圍,常用的有8位、12位和16位。圖示一個(gè):

[圖片上傳失敗...(image-c9ebfd-1598062459460)]

3、聲道

反映音頻數(shù)字化質(zhì)量的另一個(gè)因素是聲道個(gè)數(shù)。記錄音頻時(shí),如果每次生成一個(gè)聲波的數(shù)據(jù),稱為單聲道;每次記錄兩個(gè)聲波數(shù)據(jù),稱為雙聲道(立體聲);每次生成二個(gè)以上的聲波數(shù)據(jù),稱為多聲道(環(huán)繞立體聲)。

4、音頻采樣的數(shù)據(jù)量

數(shù)字音頻的采樣數(shù)據(jù)量主要取決兩方面的因素:

  • 音質(zhì)因素:采樣頻率、量化位數(shù)和聲道數(shù)三個(gè)參數(shù)決定。
  • 時(shí)間:采樣時(shí)間長(zhǎng)短。

單位時(shí)間的數(shù)據(jù)量可用下面的公式表示:

v=f*b*s/8

v:?jiǎn)挝粫r(shí)間的數(shù)據(jù)量(KB/s)。
f:采樣頻率(kHz)。
b:量化位數(shù)(bit)。
s:聲道數(shù)。

auf=audio/L16;rate=16000

40ms的單聲道、16Khz、量化位數(shù)為16的數(shù)據(jù):(16*16*1)/8 * 40 =1280B

1.1.4 音頻的編碼

音頻數(shù)據(jù)壓縮編碼的方法有多種,可分為無(wú)損壓縮和有損壓縮兩大類。無(wú)損壓縮主要包含各種熵編碼;有損壓縮則分為波形編碼、參數(shù)編碼、感知編碼和混合編碼。

  • 波形編碼:模擬音頻數(shù)字化(抽樣和量化)的過(guò)程中,根據(jù)人耳的聽覺(jué)特性進(jìn)行編碼,并使編碼后的音頻信號(hào)與原始信號(hào)的波形盡可能匹配,實(shí)現(xiàn)數(shù)據(jù)壓縮。

    • PCM (Pulse Code Modulation)、脈沖編碼調(diào)制。
    • DPCM (Differential Pulse Code Modulation)。
    • APCM (Adaptive Pulse Code Modulation)。
    • ADPCM (Adaptive Differential Pulse Code Modulation)。
  • 參數(shù)編碼:把音頻信號(hào)表示成模型的輸出,利用特征的方法抽取必要的模型參數(shù)和激勵(lì)信號(hào)的信息,且對(duì)這些信息編碼,最后在輸出端合成原始信號(hào)。

這里可以看這篇文章了解下:音頻處理的狗屋,可能需要翻個(gè)墻。

音頻開發(fā)基礎(chǔ)知識(shí)簡(jiǎn)介

1.2 常見(jiàn)音頻格式

1.3 音頻后處理概念

  • NS(Noise Suppression):噪音抑制。

  • NLP(Nonlinear Procession):去除殘留的回音和背景噪聲。

  • NC(Noise Controller):噪音控制。

  • CC(Clarity Controller):清晰度控制。

  • VAD(Voice Activity Detection):靜音檢測(cè),將檢測(cè)被編碼的音頻數(shù)據(jù)是語(yǔ)音還是靜音或背景噪音。這個(gè)特性在用變比特率(VBR)進(jìn)行編碼是總是開啟的,所以選項(xiàng)設(shè)置只對(duì)非變比特率(VBR)起作用。

  • DRC(Dynamic Range Controller)

  • AGC(Automatic Gain Controller):自動(dòng)增益控制。

  • VBR(Variable Bit-Rate):變比特率,變比牲率(VBR)允許編解碼器動(dòng)態(tài)調(diào)整比特率以適應(yīng)的音頻解碼的“難度”,拿Speex來(lái)說(shuō),像元音和瞬間高音則需較高比特率(Bit-rate)來(lái)達(dá)到最佳效果,而摩擦音則用較少的比特(bits)即可完成編碼。

  • CBR(Constant Bit-Rate):平均比特率(ABR)通過(guò)動(dòng)態(tài)調(diào)整變比特率(VBR)的質(zhì)量來(lái)獲得一個(gè)特定目標(biāo)的比特率,解決了VBR中存在的問(wèn)題之一。

  • CNG(Comfort Noise Generator):舒適噪音生成。在非變比特率的情況下,檢測(cè)非語(yǔ)音周期并對(duì)用足夠的比特?cái)?shù)重新生成的背景噪聲進(jìn)行編碼。這個(gè)叫“舒適噪聲生成(CNG)。

  • postprocess:后處理。

    • punctuation process:標(biāo)點(diǎn)處理。
    • smooth process:順滑處理。
    • number process:數(shù)字處理。 對(duì)應(yīng)模塊:nlp.dll。
    • replace process:替換處理。
    • pargraph process:段落處理。
    • language type:處理語(yǔ)言,0 - 中文,1 - 粵語(yǔ),2 - 英語(yǔ),3 - 維語(yǔ),4 - 藏語(yǔ)。
    • output type:0 - next-g聽寫引擎JSON格式, 1 - 常規(guī)(文本格式), 2 - next-g聽寫引擎JSON格式,帶cm
    • useAttribute:根據(jù)詞性優(yōu)化標(biāo)點(diǎn)。

音頻后處理基本概念

語(yǔ)音處理檢測(cè)技術(shù)中的熱點(diǎn)--端點(diǎn)檢測(cè)、降噪和壓縮

2、視頻

2.1 視頻基礎(chǔ)知識(shí)

2.1.1 視頻簡(jiǎn)介

視頻(Video)泛指將一系列靜態(tài)影像以電信號(hào)的方式加以捕捉、紀(jì)錄、處理、儲(chǔ)存、傳送與重現(xiàn)的各種技術(shù)。連續(xù)的圖像變化每秒超過(guò)24幀(frame)畫面以上時(shí),根據(jù)視覺(jué)暫留原理,人眼無(wú)法辨別單幅的靜態(tài)畫面;看上去是平滑連續(xù)的視覺(jué)效果,這樣連續(xù)的畫面叫做視頻。視頻與電影屬于不同的技術(shù),后者是利用照相術(shù)將動(dòng)態(tài)的影像捕捉為一系列的靜態(tài)照片。

人眼在觀察景物時(shí),光信號(hào)傳入大腦神經(jīng),需經(jīng)過(guò)一段短暫的時(shí)間,光的作用結(jié)束后,視覺(jué)形象并不立即消失,這種殘留的視覺(jué)稱“后像”,視覺(jué)的這一現(xiàn)象則被稱為“視覺(jué)暫留”。

2.1.2 視頻屬性

1、幀率

幀率(Frame rate)是用于測(cè)量顯示幀數(shù)的量度。所謂的測(cè)量單位為每秒顯示幀數(shù)(Frames per Second,F(xiàn)PS)或“赫茲”(Hz)。

幀率表示圖形處理器處理時(shí)每秒鐘能夠更新的次數(shù)。高的幀率可以得到更流暢、更逼真的動(dòng)畫。一般來(lái)說(shuō)30fps就是可以接受的,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來(lái)說(shuō)超過(guò)75fps一般就不容易察覺(jué)到有明顯的流暢度提升了。如果幀率超過(guò)屏幕刷新率只會(huì)浪費(fèi)圖形處理的能力,因?yàn)楸O(jiān)視器不能以這么快的速度更新,這樣超過(guò)刷新率的幀率就浪費(fèi)掉了。

我們可以根據(jù)幀率得出連續(xù)兩幀的時(shí)間間隔。比如幀率為30FPS,那么相鄰兩幀的時(shí)間間隔為33ms。

屏幕刷新率是指電子束對(duì)屏幕上的圖像重復(fù)掃描的次數(shù)。

刷新率越高,所顯示的圖象(畫面)穩(wěn)定性就越好。刷新率高低將直接決定其價(jià)格,但是由于刷新率與分辨率兩者相互制約,因此只有在高分辨率下達(dá)到高刷新率這樣的顯示器才能稱其為性能優(yōu)秀。

2、分辨率

像素:每張圖片都是由色點(diǎn)組成的,每個(gè)色點(diǎn)稱為一個(gè)像素。

一張圖片由30萬(wàn)個(gè)色點(diǎn)組成,這個(gè)圖片的像素就是30W。我們常說(shuō)相機(jī)是多少像素,這個(gè)像素就是說(shuō)這款照相機(jī)的感光器件有多少個(gè),有100W個(gè)感光器件的相機(jī)就是100W像素的相機(jī)。一臺(tái)100W像素的相機(jī)拍攝的照片洗成5寸的照片會(huì)比洗成6寸清晰一點(diǎn)。

分辨率=畫面水平方向的像素值 * 畫面垂直方向的像素值。

分辨率可以分為兩方面:屏幕分辨率和圖像分辨率。

屏幕分辨率:屏幕分辨率是屏幕每行的像素點(diǎn)數(shù)每列的像素點(diǎn)數(shù),每個(gè)屏幕有自己的分辨率。*

屏幕分辨率是1024×768,也就是說(shuō)設(shè)備屏幕的水平方向上有1024個(gè)像素點(diǎn),垂直方向上有768個(gè)像素點(diǎn)。像素的大小是沒(méi)有固定長(zhǎng)度的,不同設(shè)備上一個(gè)單位像素色塊的大小是不一樣的。例如,尺寸面積大小相同的兩塊屏幕,分辨率大小可以是不一樣的,分辨率高的屏幕上面像素點(diǎn)(色塊)就多,所以屏幕內(nèi)可以展示的畫面就更細(xì)致,單個(gè)色塊面積更小。而分辨率低的屏幕上像素點(diǎn)(色塊)更少,單個(gè)像素面積更大,可以顯示的畫面就沒(méi)那么細(xì)致。

由于屏幕上的點(diǎn)、線和面都是由像素組成的,顯示器可顯示的像素越多,畫面就越精細(xì),同樣的屏幕區(qū)域內(nèi)能顯示的信息也越多,所以分辨率是個(gè)非常重要的性能指標(biāo)之一。可以把整個(gè)圖像想象成是一個(gè)大型的棋盤,而分辨率的表示方式就是所有經(jīng)線和緯線交叉點(diǎn)的數(shù)目。顯示分辨率一定的情況下,顯示屏越小圖像越清晰,反之,顯示屏大小固定時(shí),顯示分辨率越高圖像越清晰。

常見(jiàn)的分辨率有: 1080P(1920 x 1080) 、720P(1280 x 720) 、480P(640 x 480)、360P,外語(yǔ)字母P意為逐行掃描(progressive scanning)

圖像分辨率:指每英寸圖像內(nèi)的像素點(diǎn)數(shù)。圖像分辨率是有單位的,叫像素每英寸。

分辨率越高,像素的點(diǎn)密度越高,圖像越逼真。一張圖片分辨率是500x200,也就是說(shuō)這張圖片在屏幕上按1:1放大時(shí),水平方向有500個(gè)像素點(diǎn)(色塊),垂直方向有200個(gè)像素點(diǎn)(色塊)。在同一臺(tái)設(shè)備上,圖片分辨率越高,這張圖片1:1放大時(shí),圖片面積越大;圖片分辨率越低,這張圖片1:1縮放時(shí),圖片面積越小。但是,在屏幕上把圖片超過(guò)100%放大時(shí),為什么圖片上像素色塊也變的越大,其實(shí)是設(shè)備通過(guò)算法對(duì)圖像進(jìn)行了像素補(bǔ)足,我們把圖片放的很大后看到的一塊一塊的方格子,雖然理解為一個(gè)圖像像素,但是其實(shí)是已經(jīng)補(bǔ)充了很多個(gè)屏幕像素;同理,把圖片小于100%縮小時(shí),也是通過(guò)算法將圖片像素進(jìn)行減少。

3、碼率(比特率)

由于保存完整的一幀一幀圖片的視頻原文件太大,必須要通過(guò)某種視頻壓縮算法將視頻中的圖片壓縮,以減小視頻文件大小,那么壓縮比越大,解壓縮還原后用來(lái)播放的視頻就會(huì)有越嚴(yán)重的失真,因?yàn)閴嚎s的同時(shí)不可避免的丟失了視頻中原來(lái)圖像的數(shù)據(jù)信息。

碼率又稱比特率bps(bit per second),是指視頻文件在單位時(shí)間內(nèi)使用的數(shù)據(jù)流量,即用平均每秒多少bit來(lái)衡量一個(gè)視頻大小。

4、計(jì)算視頻碼率

我們可以根據(jù)一個(gè)視頻的長(zhǎng)度和大小來(lái)推斷該視頻的碼率是多少。

一段1080P的視頻長(zhǎng)度為100min,大小為1G,該視頻碼率?

100min = 100 * 60 = 6000s
1G = 1024M = 1024 * 1024KB = 1024 * 1024 * 1024KB = 1024 * 1024 * 1024 * 8 bit = 8589934592bit
比特率 = 8589934592/6000s = 1431655b/s = 1.4Mbit/s

2.1.3 音視頻同步

音視頻混合一起播放,就呈現(xiàn)了我們常??吹降膹V義的視頻。在音頻一起播放的時(shí)候,我們通常還要面臨一個(gè)問(wèn)題:怎么進(jìn)行同步,以免出現(xiàn)畫不同聲的情況。

要實(shí)現(xiàn)因頻頻同步,通常要選擇一個(gè)參考時(shí)鐘,參考時(shí)鐘的時(shí)間上是線性增長(zhǎng)的。編碼音視頻流時(shí)依據(jù)參考時(shí)鐘上的時(shí)間給每幀數(shù)據(jù)打上一個(gè)時(shí)間戳。在播放時(shí),讀物數(shù)據(jù)幀上的時(shí)間戳,同時(shí)參考當(dāng)時(shí)參考時(shí)鐘上的時(shí)間來(lái)安排播放。

這里說(shuō)的時(shí)間戳即下文會(huì)提到的PTS,實(shí)踐中,我們可以選擇:同步視頻到音頻、同步音頻到視頻或同步音視頻到外部時(shí)鐘。

1、DTS/PTS

DTS(decoding time stamp):解碼時(shí)間戳,是解碼器進(jìn)行解碼時(shí)相對(duì)于SCR(系統(tǒng)參考時(shí)間)的時(shí)間戳,它主要標(biāo)識(shí)讀入內(nèi)存bit流在什么時(shí)刻開始送入解碼器中進(jìn)行解碼。

PTS(presentation time stamp):顯示時(shí)間戳。PTS主要用于視頻的tongue和輸出,在display的時(shí)候使用。在沒(méi)有B幀的情況下,DTS和PTS的輸出順序是一致的。

DTS 時(shí)間戳決定了解碼器在SCR時(shí)間等于DTS時(shí)間時(shí)進(jìn)行解碼,PTS時(shí)間戳也是類似的。通常,DTS/PTS時(shí)間戳指示的是晚于音視頻包中的SCR的一個(gè)時(shí) 間。例如,如果一個(gè)視頻數(shù)據(jù)包的SCR是100ms(意味著此包是播放100ms以后從磁盤中讀取的),那么DTS/PTS值就差不多是200 /280ms,表明當(dāng)SCR到200ms時(shí)這個(gè)視頻數(shù)據(jù)應(yīng)該被解碼并在80ms以后被顯示出來(lái)(視頻數(shù)據(jù)在一個(gè)buffer中一直保存到開始解碼)
下 溢通常發(fā)生在設(shè)置的視頻數(shù)據(jù)流相關(guān)mux率太高。如果mux率是1000000bits/sec(意味著解碼器要以1000000bits/sec的速率 讀取文件),可是視頻速率是2000000bits/sec(意味著需要以2000000bits/sec的速率顯示視頻數(shù)據(jù)),從磁盤中讀取視頻數(shù)據(jù)時(shí) 速度不夠快以至于1秒鐘內(nèi)不能夠讀取足夠的視頻數(shù)據(jù)這種情況下DTS/PTS時(shí)間戳就會(huì)指示視頻在從硬盤中讀出來(lái)之前進(jìn)行解碼或顯示(DTS/PTS時(shí)間戳就要比包含它們的數(shù)據(jù)包中的SCR時(shí)間要早了)。

如今依靠解碼器,著基本已經(jīng)不是什么問(wèn)題了(盡管MPEG文件因?yàn)閼?yīng)該沒(méi)有下溢而并不完全符合MPEG標(biāo)準(zhǔn))。一些解碼器(很多著名的基于PC的播放器)盡可能快的讀取文件以便顯示視頻,可以的話直接忽略SCR。
注意在你提供的列表中,平均的視頻流速率為~3Mbps(3000000bits/sec)但是它的峰值達(dá)到了14Mbps(相當(dāng)大,DVD限制在 9.8Mbps內(nèi))。這意味著mux率需要調(diào)整足夠大以處理14Mbps的部分, bbMPEG計(jì)算出來(lái)的mux率有時(shí)候太低而導(dǎo)致下溢。
你計(jì)劃讓視頻流速率這么高么?這已經(jīng)超過(guò)了DVD的說(shuō)明了,而且很可能在大多數(shù)獨(dú)立播放其中都不能播放。如果你不是這么計(jì)劃,我會(huì)從1增加mquant的值并且在視頻設(shè)置中將最大碼流設(shè)置為9Mbps以保持一個(gè)小一點(diǎn)的碼流。

如果你確實(shí)想讓視頻

那么高,你需要增大mux率。從提供的列表可以得出bbMPEG使用14706800bits/sec或者1838350bytes /sec的mux率(總數(shù)據(jù)速率為:1838350bytes/sec(14706800bits/sec)行)。你在強(qiáng)制mux率字段設(shè)置的值應(yīng)該是以 bytes/sec為單位并被50整除。所以我會(huì)從36767(1838350/50)開始,一直增加直到不會(huì)再出現(xiàn)下溢錯(cuò)誤為止;

DTS主要用于視頻的解碼,PTS主要用于視頻的同步和輸出。在display的時(shí)候使用,在沒(méi)有B frame情況下,DTS和PTS的輸出順序是一致的。

舉個(gè)栗子:

下為GOP為15的例子,其解碼的參數(shù)frame及解碼的順序都在上面:

[圖片上傳失敗...(image-a70084-1598062459460)]

如上圖,I frame的解碼不依賴于其它任何的幀,而P幀的解碼則依賴前面的I幀或P幀。B幀的解碼則依賴于其前的最近的一個(gè)I幀或P幀即其后最近的P幀。

2.2 視頻解碼

2.2.1 解碼概念

play process
  • 解協(xié)議:流媒體協(xié)議的數(shù)據(jù),解析為標(biāo)準(zhǔn)的相應(yīng)的封裝格式數(shù)據(jù)。
  • 解封裝:將輸入的封裝格式的數(shù)據(jù),分離成音頻流和視頻流壓縮編碼數(shù)據(jù)。
  • 解碼:將視頻和音頻壓縮編碼數(shù)據(jù),解碼稱為非壓縮的音頻/視頻原始數(shù)據(jù)。
  • 音視頻同步:根據(jù)封裝模塊處理過(guò)程中獲取到的參數(shù)信息,同步解碼出來(lái)的視頻和音頻數(shù)據(jù),并將音視頻數(shù)據(jù)傳送至系統(tǒng)的顯卡和聲卡播放出來(lái)。

2.2.1.1 軟解碼

軟解碼:使用CPU進(jìn)行解碼。時(shí)間直接,簡(jiǎn)單,參數(shù)調(diào)整方便,升級(jí)容器,但CPU負(fù)載重,性能相對(duì)較低,低碼率情況下通常較硬編碼好些。

2.2.1.2 硬解碼

硬解碼:使用顯卡GPU,專用的DSP、FPGA、ASIC芯片等硬件進(jìn)行解碼。性能好。

典型應(yīng)用來(lái)說(shuō)明如何使用硬件解碼接口,該應(yīng)用場(chǎng)景是從網(wǎng)絡(luò)處傳來(lái)H264編碼后的視頻碼流,最后顯示在手機(jī)屏幕上。

場(chǎng)景:network -> compressed video samples -> phone

2.2.2 H.264編碼原理

2.2.2.1 編碼原理概念介紹

H.264簡(jiǎn)介

H.264/MPEG-4AVC(H.264)是1995年字MPEG-2視頻壓縮標(biāo)準(zhǔn)之后發(fā)布的最新、最優(yōu)前途的視頻壓縮標(biāo)準(zhǔn)。它是ITU-T和ISO/IEC的聯(lián)合開發(fā)組共同開發(fā)的最新國(guó)際視頻編碼標(biāo)準(zhǔn)。通過(guò)該標(biāo)準(zhǔn),在同等圖像質(zhì)量的壓縮效率比以前的標(biāo)準(zhǔn)提高了2倍以上。

國(guó)際上制定視頻編解碼技術(shù)的組織有兩個(gè),一個(gè)是國(guó)際電聯(lián)(ITU-T),它制定的標(biāo)準(zhǔn)有H.261、H.263、H.263+等,另一個(gè)是國(guó)際標(biāo)準(zhǔn)化組織(ISO)。它制定的標(biāo)準(zhǔn)有MPEG-1、MPEG-2、MPEG-4等。而H.264則是由兩個(gè)組織聯(lián)合組建的聯(lián)合視頻組(JVT)共同制定的新數(shù)字視頻編碼標(biāo)準(zhǔn),所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級(jí)視頻編碼(Advanced Video Coding,AVC)的第10 部分。因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。

1、H.264的高級(jí)技術(shù)背景

H.264標(biāo)準(zhǔn)的主要目標(biāo)是在于現(xiàn)有的視頻編解碼標(biāo)準(zhǔn)相比,在相同的帶寬下提供更加優(yōu)秀的圖像質(zhì)量。

而H.264與以前的國(guó)際保準(zhǔn)如H.263和MPEG-4相比,主要優(yōu)勢(shì)體現(xiàn)在下面幾個(gè)部分:

  • 將每個(gè)視頻分離成有像素組成的快,因此視頻幀的編碼處理過(guò)程可以到達(dá)塊的級(jí)別。
  • 采用空間冗余方法,對(duì)視頻幀的一些原始快進(jìn)行空間預(yù)測(cè)、轉(zhuǎn)換、優(yōu)化和熵編碼(可變長(zhǎng)編碼)。
  • 對(duì)連續(xù)幀不同塊采用的臨時(shí)存放的方法,這樣,只需對(duì)連續(xù)幀中有改變的部分進(jìn)行編碼。該算法采用動(dòng)態(tài)預(yù)測(cè)和運(yùn)動(dòng)補(bǔ)償來(lái)完成。對(duì)于特定的塊,在一個(gè)或多個(gè)已經(jīng)進(jìn)行了編碼的幀進(jìn)行搜索來(lái)決定塊的運(yùn)動(dòng)向量,并由此在后面的編碼和解碼中預(yù)測(cè)主塊。

2、H.264的特征和高優(yōu)先級(jí)

H.264是國(guó)際標(biāo)準(zhǔn)化組織和國(guó)際電信聯(lián)盟共同提出的及MPEG4新一代數(shù)字視頻壓縮格式,它既保留了以往壓縮技術(shù)的有點(diǎn)和精華,又具有其他壓縮技術(shù)無(wú)法比擬的許多優(yōu)點(diǎn)。

  • 低碼流(low bit rate):在同等圖像質(zhì)量下,采用H.264技術(shù)壓縮后的數(shù)據(jù)量只有MPEG2的1/8,MPWG的1/3。顯然,H.264壓縮技術(shù)的采用將大大節(jié)省用戶的下載時(shí)間和數(shù)據(jù)流量收費(fèi)。
  • 高質(zhì)量圖像:H.264能提供連續(xù)、流暢的高質(zhì)量圖像。
  • 容錯(cuò)能力強(qiáng):H.264能提供解決在不穩(wěn)定網(wǎng)絡(luò)環(huán)境下容易發(fā)生丟包等錯(cuò)誤的必要工具。
  • 網(wǎng)絡(luò)適應(yīng)性強(qiáng):H.264提供了網(wǎng)絡(luò)適應(yīng)層(network adaptation layer),使得H.264的文件能容器地在不同的網(wǎng)絡(luò)上傳輸。

3、H.264標(biāo)準(zhǔn)的關(guān)鍵技術(shù)

a、幀內(nèi)預(yù)測(cè)編碼

幀內(nèi)編碼用來(lái)縮減圖像空間的冗余度。相鄰的宏塊通常含有相似的屬性。在對(duì)一給定宏塊編碼時(shí),可以根據(jù)周圍的宏塊預(yù)測(cè),然后對(duì)預(yù)測(cè)值與實(shí)際值的差值進(jìn)行編碼。

幀內(nèi)預(yù)測(cè)編碼

b、幀間預(yù)測(cè)編碼

幀間預(yù)測(cè)編碼利用連續(xù)幀的時(shí)間冗余來(lái)進(jìn)行運(yùn)動(dòng)估計(jì)和補(bǔ)償。除了P幀,B幀外,還支持一種新的流間傳送幀 - SP幀,碼流包含SP幀后后,能在有類似內(nèi)容但碼率不同的碼流見(jiàn)快速切換,同時(shí)支持隨機(jī)接入和快速回放的模式。

c、整數(shù)變換

H.264使用以證書為基礎(chǔ)的空間變換。

d、量化

H.264有32種不同的量化步長(zhǎng),且以12.5%的復(fù)合率遞增,不是一個(gè)常數(shù)。

e、熵編碼

兩種不同的熵編碼方法:通過(guò)可變長(zhǎng)的編碼和基于文本的自適應(yīng)二進(jìn)制算術(shù)編碼。

2.2.2.2 通俗理解

H.264為新一代編碼標(biāo)準(zhǔn),以高壓縮質(zhì)量和支持多種網(wǎng)絡(luò)的流媒體傳輸著稱,其編碼理論依據(jù)可以白話如下:參照一段時(shí)間內(nèi)圖像的統(tǒng)計(jì)結(jié)果,在相鄰幾幅圖像畫中,一般有差別的像素只有10%以內(nèi)的點(diǎn),量度差值不超過(guò)2%,而色度差值只有1%內(nèi)。所以對(duì)一段變化不大圖像畫面,我們可以先編碼一個(gè)完整的圖像幀A,隨后的B幀就不編碼全部圖像,只寫入A幀的差別,這樣B幀的大小就只有完整幀的1/10甚至更小。B幀之后C幀如果變化不大,我們可以繼續(xù)參考B的方式編碼C幀,這樣循環(huán)下去。這段圖像我們稱之為一個(gè)序列(序列就是有相同特點(diǎn)的一段數(shù)據(jù)),當(dāng)某個(gè)圖像與之前的圖像差別很大時(shí),無(wú)法參考之前的幀來(lái)生成,那我們結(jié)束上一個(gè)序列,開始下一個(gè)序列。

H.264中定義三種幀,完整編碼的幀叫I幀,參考之前生成的I幀只包含差異部分叫做P幀,還有一種參考前后編碼的幀叫做B幀。

1、對(duì)序列的說(shuō)明

在H.264中圖像以序列為單位進(jìn)行組織,一個(gè)序列是一段圖像編碼后的數(shù)據(jù)流,以I幀開始到下一個(gè)I幀結(jié)束。

一個(gè)序列的第一個(gè)圖像叫做IDR圖像(立即刷新圖像),IDR都是I幀圖像。H.264引入IDR圖像為了解碼的重同步,當(dāng)解碼器解碼到IDR圖像時(shí),立即將參考幀隊(duì)列清空,將已編碼的數(shù)據(jù)全部輸出或拋棄,重新查找參數(shù)集,開始一個(gè)新的序列。這樣,當(dāng)前一個(gè)序列出現(xiàn)重大錯(cuò)誤時(shí),這里可以獲得重新同步的機(jī)會(huì)。IDR圖像永遠(yuǎn)不會(huì)使用IDR之前的圖像的數(shù)據(jù)來(lái)解碼。

一個(gè)序列就是一段內(nèi)容差異不太大的圖像編碼后生成的一串?dāng)?shù)據(jù)流。當(dāng)運(yùn)動(dòng)變化比較少時(shí),一個(gè)序列可以很長(zhǎng),因?yàn)檫\(yùn)動(dòng)變化少就代表圖像畫面的內(nèi)容變動(dòng)很小,所以就可以編一個(gè)I幀,然后一直P幀、B幀了。當(dāng)運(yùn)動(dòng)變化多時(shí),可能一個(gè)序列就比較短了,比如就包含一個(gè)I幀和3、4個(gè)P幀。

2、對(duì)三種幀的介紹

a、I幀

為了更好的理解I幀,這里羅列兩種解釋:

  • 幀內(nèi)編碼幀,I幀表示關(guān)鍵幀,你可以理解為這一陣畫面的完整保留,解碼時(shí)只需要本幀數(shù)據(jù)就可以完成。
  • 幀內(nèi)編碼幀,intra frame,I幀通常是每個(gè)GOP(MPEG所使用的一種視頻壓縮技術(shù))的第一個(gè)幀,經(jīng)過(guò)適度的進(jìn)行壓縮,作為隨機(jī)訪問(wèn)的參考點(diǎn),可以當(dāng)成圖像。I幀可以看成是一個(gè)圖像經(jīng)過(guò)壓縮后的產(chǎn)物。

I幀的特點(diǎn):

  • 它是一個(gè)全幀壓縮編碼幀。它將全幀圖像信息進(jìn)行JPEG壓縮編碼及傳輸。
  • 解碼時(shí)僅用I幀的數(shù)據(jù)就可以重構(gòu)完整圖像。
  • I幀描述了圖像背景和運(yùn)動(dòng)主體的詳情。
  • I幀不需要參考其它畫面而生成。
  • I幀是B幀和P幀的參考幀(其質(zhì)量直接影響通序列其它幀的質(zhì)量)。
  • I幀是幀組GOP的基礎(chǔ)幀(第一幀),在一組中只有一個(gè)I幀。
  • I幀不需要考慮運(yùn)動(dòng)矢量。
  • I幀所占據(jù)的信息量比較大。

b、P幀

為了更好的了解P幀,這里同樣羅列兩種解釋:

  • 前項(xiàng)預(yù)測(cè)編碼幀。P著呢表示的這一幀跟之前的一個(gè)關(guān)鍵幀(或P幀)的差別,解碼時(shí)需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面。
  • 前項(xiàng)預(yù)測(cè)編碼幀,predictive frame,通過(guò)充分將低于圖像序列中前面已編碼幀的時(shí)間冗余信息來(lái)壓縮傳輸數(shù)據(jù)量的編碼圖像,也叫預(yù)測(cè)幀。

P幀的預(yù)測(cè)和重構(gòu):P幀是以I幀為參考幀,在I幀中找出P幀某點(diǎn)的預(yù)測(cè)值和運(yùn)動(dòng)矢量,取預(yù)測(cè)差值和運(yùn)動(dòng)矢量一起傳送。在接收端根據(jù)根據(jù)運(yùn)動(dòng)矢量從I幀中找出P幀的某點(diǎn)的預(yù)測(cè)值并與差值相加得到P幀某點(diǎn)樣值,從而得到完整的P幀。

  • P幀是I幀后相隔1-2幀的編碼幀。
  • P幀采用運(yùn)動(dòng)補(bǔ)償?shù)姆椒▊魉退c前面的I或P幀的差值及運(yùn)動(dòng)矢量。
  • 解碼時(shí)必須將I幀中的預(yù)測(cè)值與預(yù)測(cè)誤差求和才能完整重構(gòu)P幀圖像。
  • P幀屬于前項(xiàng)預(yù)測(cè)的幀間編碼,它只參考前面最靠近的I幀或P幀。
  • P幀可以是其后面的P幀的參考幀,也可以是其前后的B幀的參考幀。
  • 由于P幀是參考幀,它可能造成編解碼錯(cuò)誤的擴(kuò)散。
  • 由于是差值傳輸,P幀的壓縮比比較高。

c、B幀

為了更好的了解B幀,這里同樣羅列兩種解釋:

  • 雙向預(yù)測(cè)內(nèi)插編碼幀。B幀是雙向差別幀,也就是B幀記錄的是本幀與前后幀的差別。換言之,要解碼B幀,不僅要取得之前的緩存畫面,還要解碼后面的畫面,通過(guò)前后畫面與本幀數(shù)據(jù)的疊加取得最終畫面。B幀的壓縮率比較高,但是解碼會(huì)比較累。
  • 雙向預(yù)測(cè)內(nèi)插編碼幀,bi-directional interpolated prediction frame,既考慮與源圖像序列前面的已編碼幀,也估計(jì)源圖像序列后面的已編碼幀之間的時(shí)間冗余信息來(lái)壓縮傳輸數(shù)據(jù)量的源碼圖像。

B幀的特點(diǎn):

  • B幀是由前面的I或P幀和后面的P幀來(lái)進(jìn)行預(yù)測(cè)的。
  • B幀傳送的是與它前面的I幀或P幀和后面P幀之間的預(yù)測(cè)誤差及運(yùn)動(dòng)矢量。
  • B幀是雙向預(yù)測(cè)幀。
  • B幀壓縮比最高,因?yàn)樗环从硡⒖紟g運(yùn)動(dòng)主體的變化情況,預(yù)測(cè)比較準(zhǔn)確。
  • B幀不是參考幀,不會(huì)造成解碼錯(cuò)誤的擴(kuò)散。

I、B、P各幀是根據(jù)壓縮算法的需要,是人為定義的,他們都是實(shí)實(shí)在在的物理幀。一般來(lái)說(shuō),I幀的壓縮率是7,P幀是20,B幀可以達(dá)到50。

3、對(duì)壓縮算法的說(shuō)明

H.264的壓縮算法:

  • 分組:把幾幀圖像分為一組(GOP,也是一個(gè)序列),為防止運(yùn)動(dòng)變化,幀數(shù)不宜過(guò)多。
  • 定義幀:將每組內(nèi)的各幀圖像定義為三種類型,I、P、B幀。
  • 預(yù)測(cè)幀:以I幀與基礎(chǔ)幀,I幀預(yù)測(cè)P幀,再有I幀和P幀預(yù)測(cè)B幀。
  • 數(shù)據(jù)傳輸:最后將I幀數(shù)據(jù)和預(yù)測(cè)的差值信息進(jìn)行存儲(chǔ)和傳送。

幀內(nèi)壓縮及空間壓縮,當(dāng)壓縮一幀圖像是,僅考慮本幀的數(shù)據(jù)而不考慮相鄰幀之間的冗余信息,與靜態(tài)壓縮類似。

幀間壓縮是相鄰幾幀的數(shù)據(jù)有很大的相關(guān)性,即連續(xù)的視頻其相鄰幀之間有冗余信息,根據(jù)這一特性,壓縮相鄰幀之間的冗余量就可以提高壓縮量。
幀間壓縮也稱為時(shí)間壓縮,它通過(guò)比較本幀與相鄰幀之間的差異, 僅記錄本幀與其它相鄰幀的差值。

有損(Lossy )壓縮和無(wú)損(Lossy less)壓縮。無(wú)損壓縮也即壓縮前和解壓縮后的數(shù)據(jù)完全一致。多數(shù)的無(wú)損壓縮都采用RLE行程編碼算法。有損壓縮意味著解壓縮后的數(shù)據(jù)與壓縮前的數(shù)據(jù)不一致。在壓縮的過(guò)程中要丟失一些人眼和人耳所不敏感的圖像或音頻信息,而且丟失的信息不可恢復(fù)。幾乎所有高壓縮的算法都采用有損壓縮,這樣才能達(dá)到低數(shù)據(jù)率的目標(biāo)。

2.2.3 H.264碼流結(jié)構(gòu)

存疑部分

H.264編碼器輸出的bit流中,每個(gè)bit都屬于某個(gè)句法元素。句法元素被組織成有層次的結(jié)構(gòu),分別面熟各個(gè)層次的信息。

H.263中,句法元素被組織成序列、圖像、片、宏塊、子宏塊五個(gè)層次。這樣的結(jié)構(gòu)中,每一層頭部和它的數(shù)據(jù)部分形成管理和被管理的強(qiáng)依賴關(guān)系,頭部的句法元素是該層數(shù)據(jù)的核心,而一旦頭部丟失,數(shù)據(jù)部分的信息幾乎不可能再被正確的解碼出來(lái),尤其在序列層和圖像層。

[圖片上傳失敗...(image-bb418c-1598062459460)]

[圖片上傳失敗...(image-e96aa6-1598062459460)]


刷新圖像概念:實(shí)際生活中,一張圖片就是一張圖像,而在H.264中圖像是個(gè)集合的概念。

幀、頂場(chǎng)、底場(chǎng)都可以成為圖像。一幀就是一幅完整的圖像。當(dāng)采集視頻信號(hào)時(shí),如果采用逐行掃描,則每次掃描到的信號(hào)就是一幅圖像,也就是一。當(dāng)采集視頻信號(hào)時(shí),如果采用隔行掃描,則掃描下來(lái)的一幀圖像就被分為了兩個(gè)部分,這每部分就稱為場(chǎng)。根據(jù)次序分為頂場(chǎng)和底場(chǎng)。幀和場(chǎng)的概念又帶來(lái)了不同的編碼方式:幀編碼、場(chǎng)編碼。逐行掃描適合運(yùn)動(dòng)圖像,故對(duì)運(yùn)動(dòng)圖像采用幀編碼更好;隔行掃描適合非運(yùn)動(dòng)圖像,故對(duì)非運(yùn)動(dòng)圖像采用場(chǎng)編碼更好。

H.264原始碼流

  • 結(jié)構(gòu):由一個(gè)接一個(gè)的NALU組成的,而它的功能分為兩層,VCL(視頻編碼層)和NAL(網(wǎng)絡(luò)提取層)。

    • VCL:包括核心壓縮引擎和塊,宏塊和片的語(yǔ)法級(jí)別定義,設(shè)計(jì)目標(biāo)是盡可能地獨(dú)立于網(wǎng)絡(luò)進(jìn)行高效的編碼。
    • NAL:負(fù)責(zé)將VCL產(chǎn)生的比特字符串適配到各個(gè)的網(wǎng)絡(luò)和多元環(huán)境中,覆蓋了所有片級(jí)以上的語(yǔ)法級(jí)別。
H.264碼流
  • 組成:NALU(nal unit) = NALU頭 + RBSP

NALU頭部類型

enum nal_unit_type_e
{
NAL_UNKNOWN = 0, // 未使用
NAL_SLICE = 1, // 不分區(qū)、非 IDR 圖像的片(片的頭信息和數(shù)據(jù))
NAL_SLICE_DPA = 2, // 片分區(qū) A
NAL_SLICE_DPB = 3, // 片分區(qū) B
NAL_SLICE_DPC = 4, // 片分區(qū) C
NAL_SLICE_IDR = 5, / ref_idc != 0 / // IDR 圖像中的片
NAL_SEI = 6, / ref_idc == 0 / // 補(bǔ)充增強(qiáng)信息單元
-
參數(shù)集是 H.264 標(biāo)準(zhǔn)的一個(gè)新概念,是一種通過(guò)改進(jìn)視頻碼流結(jié)構(gòu)增強(qiáng)錯(cuò)誤恢復(fù)能力的方法。
NAL_SPS = 7, // 序列參數(shù)集 (包括一個(gè)圖像序列的所有信息,即兩個(gè) IDR 圖像間的所有圖像信息,如圖像尺寸、視頻格式等)
NAL_PPS = 8, // 圖像參數(shù)集 (包括一個(gè)圖像的所有分片的所有相關(guān)信息, 包括圖像類型、序列號(hào)等,解碼時(shí)某些序列號(hào)的丟失可用來(lái)檢驗(yàn)信息包的丟失與否)
-
NAL_AUD = 9, // 分界符
NAL_FILLER = 12, // 填充(啞元數(shù)據(jù),用于填充字節(jié))
/ ref_idc == 0 for 6,9, 10 (表明下一圖像為 IDR 圖像),11(表明該流中已沒(méi)有圖像),12 /
};
ps: 以上括號(hào)()中的為類型描述

在VCL數(shù)據(jù)傳輸或存儲(chǔ)之前,這些編碼的VCL數(shù)據(jù),先被映射或封裝進(jìn)NAL單元(簡(jiǎn)稱NALU nal unit)。每個(gè)NALU包括一個(gè)原始字節(jié)序列負(fù)荷(RBSP,raw nyte sequence payload),一組對(duì)應(yīng)于視頻編碼的NALU信息。

RBSP的基本結(jié)構(gòu)是在原始編碼數(shù)據(jù)后面添加了結(jié)尾比特。一個(gè)bit 1 若干個(gè)比特0,以便對(duì)齊字節(jié)。

一個(gè)原始的H.264 NALU單元常由StartCode、NALU Header、NALU Payload三部分組成。

NALU組成
  • StartCode表示一個(gè)NALU單元的開始,必須是“00 00 00 01”或“00 00 01”。
    • 每個(gè)NALU之間通過(guò)startcode(起始碼)進(jìn)行分隔,起始碼分成兩種:0x000001(3Byte)或者0x00000001(4Byte)。如果NALU對(duì)應(yīng)的Slice為一幀的開始就用0x00000001,否則就用0x000001。
  • NALU Header Type
NALU Header Type

RBSP:NAL包將其負(fù)載數(shù)據(jù)存儲(chǔ)在RBSP中,RBSP是系列SODB(string of data bits)。

RBSP
  • 一幀圖片和NALU的關(guān)聯(lián)

NALU是H.264在網(wǎng)絡(luò)上傳輸?shù)慕Y(jié)構(gòu),一幀圖片經(jīng)過(guò)H.264編碼之后,就被編碼為一個(gè)或多個(gè)片(slice),而裝著這些片的載體,就是NALU了。

片(slice)與幀(frame)是不同的概念,幀(frame)是用作描述一張圖片的,一幀(frame)對(duì)應(yīng)一張圖片,而片是H.264提出的新概念,是通過(guò)編碼圖片后切分通過(guò)高效的方式整合出來(lái)的概念,一張圖片至少有一個(gè)片或多個(gè)片。片都是由NALU裝載并進(jìn)行網(wǎng)絡(luò)傳輸,但NALU并不一定是切片,它可能還包含其它用作描述視頻的信息。

片的數(shù)據(jù)結(jié)構(gòu)

上圖可以看出,每個(gè)分片包含片頭和數(shù)據(jù)兩部分?jǐn)?shù)據(jù)。

  • 切片,片的作用主要是用作宏塊(macroblock)的再提。片之所以被創(chuàng)造出來(lái),主要目的就是限制誤碼的擴(kuò)散和傳輸。

    • 分片頭中包含分片類型、分片中的宏塊類型,分片幀的數(shù)量、分片屬于哪個(gè)圖像及對(duì)應(yīng)幀的設(shè)置和參數(shù)等信息。
    • 分頻數(shù)據(jù)中則是宏塊,就是存儲(chǔ)像素?cái)?shù)據(jù)的地方。
  • 宏塊(macroblock)

    • 宏塊是視頻信息的主要承載著,它包含每個(gè)像素的亮度和色度信息。視頻編碼的主要工作就是提高高校的方式從碼流中獲取宏塊的像素陣列。
    • 宏塊的組成:一個(gè)宏塊由16x6 亮度像素和附加的8x8CB和一個(gè)8x8Cr彩色像素塊組成,每個(gè)圖像中,若干宏塊被排列成片的形式。
宏塊結(jié)構(gòu)圖
  • 切片與宏塊的關(guān)系
    • I片:只包 I宏塊,I 宏塊利用從當(dāng)前片中已解碼的像素作為參考進(jìn)行幀內(nèi)預(yù)測(cè)(不能取其它片中的已解碼像素作為參考進(jìn)行幀內(nèi)預(yù)測(cè))。
    • P片:可包 P和I宏塊,P 宏塊利用前面已編碼圖象作為參考圖象進(jìn)行幀內(nèi)預(yù)測(cè),一個(gè)幀內(nèi)編碼的宏塊可進(jìn)一步作宏塊的分割:即 16×16、16×8、8×16 或 8×8 亮度像素塊(以及附帶的彩色像素);如果選了 8×8 的子宏塊,則可再分成各種子宏塊的分割,其尺寸為 8×8、8×4、4×8 或 4×4 亮度像素塊(以及附帶的彩色像素)。
    • B片:可包 B和I宏塊,B 宏塊則利用雙向的參考圖象(當(dāng)前和 來(lái)的已編碼圖象幀)進(jìn)行幀內(nèi)預(yù)測(cè)。
    • SP片(切換P):用于不同編碼流之間的切換,包含 P 和/或 I 宏塊
    • SI片:擴(kuò)展檔次中必須具有的切換,它包含了一種特殊類型的編碼宏塊,叫做 SI 宏塊,SI 也是擴(kuò)展檔次中的必備功能。
碼流分層結(jié)構(gòu)

H.264的碼流結(jié)構(gòu)并沒(méi)有那么復(fù)雜,編碼后視頻的每一組圖像(GOP, 圖片組)都給與傳輸序列(PPS)和本身這個(gè)幀的圖像參數(shù)(SPS),故如下。

一幀圖像

感謝

ffmpeg
ffmpeg 入門教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言: 記載資料多為網(wǎng)絡(luò)搜集,侵刪。 根據(jù)最近接觸的整機(jī)項(xiàng)目做了一些整機(jī)音頻相關(guān)基礎(chǔ)知識(shí)的總結(jié),如有不足或表述問(wèn)題...
    Gawain_Knowknow閱讀 8,663評(píng)論 0 4
  • Android音視頻之旅 -- 數(shù)字音頻基礎(chǔ)1 由于簡(jiǎn)書目前不支持LaTeX,所以有些公式使用圖片代替,需要看原本...
    福later閱讀 1,086評(píng)論 0 0
  • 摘要 該配置文件定義了支持高質(zhì)量音頻分發(fā)所需的Bluetooth?設(shè)備的要求。這些要求以終端用戶服務(wù)的方式表達(dá),并...
    公子小水閱讀 10,399評(píng)論 0 4
  • 要在計(jì)算機(jī)內(nèi)播放或是處理音頻文件,也就是要對(duì)聲音文件進(jìn)行數(shù)、模轉(zhuǎn)換,這個(gè)過(guò)程同樣由采樣和量化構(gòu)成,人耳所能聽到的聲...
    Viking_Den閱讀 10,569評(píng)論 1 10
  • 概述 本片文章主要介紹音頻基礎(chǔ),在做音頻開發(fā)之前首先必須要對(duì)音頻的相關(guān)概念了解。以下是具體內(nèi)容概述: 常見(jiàn)的音頻格...
    iosmedia閱讀 2,966評(píng)論 0 1

友情鏈接更多精彩內(nèi)容