發(fā)布者:聯(lián)誠(chéng)發(fā) 時(shí)間:2022-06-28 16:46 瀏覽量:1767
音視頻是一個(gè)很好玩,也是一個(gè)發(fā)展了很久的技術(shù),現(xiàn)在的很多技術(shù)知識(shí)都還是沿用原來(lái)的。不過(guò)音頻的東西,是挺好玩的。下面就由聯(lián)誠(chéng)發(fā)LED顯示屏小編帶大家一起看看音視頻方面的知識(shí)資料。
音視頻開(kāi)發(fā)要掌握?qǐng)D像,視頻,音頻的基礎(chǔ)知識(shí),并學(xué)會(huì)如何對(duì)他們進(jìn)行采集,渲染,處理,傳輸等一系列開(kāi)發(fā)和應(yīng)用。
采集解決了數(shù)據(jù)從哪里來(lái)的問(wèn)題,渲染解決的是數(shù)據(jù)怎么嶄新的問(wèn)題,處理解決的是數(shù)據(jù)怎么加工的問(wèn)題,傳輸解決的是數(shù)據(jù)怎么共享的問(wèn)題。這里的每一個(gè)門(mén)類(lèi)都可以深挖,衍生出一 個(gè)個(gè)充滿技術(shù)挑戰(zhàn)的話題。
音頻技術(shù)是為了記錄、存儲(chǔ)和回放聲學(xué)現(xiàn)象才發(fā)明的,所以先了解聲學(xué)現(xiàn)象對(duì)學(xué)習(xí)數(shù)字音頻是有很大幫助的。
聲音的產(chǎn)生是由于物體的振動(dòng),造成空間內(nèi)空氣的波動(dòng)而共鳴發(fā)音,再由大氣的傳播,使人的聽(tīng)覺(jué)神經(jīng)感受到的一種物理現(xiàn)象。
聲音的三要素是響度,音調(diào)和音色。
響度,和聲音震動(dòng)的幅度有關(guān),用的力越大,人的鼓膜震動(dòng)幅度就越大,發(fā)出的聲音越響。
音調(diào),主要是和頻率有關(guān)。聲波的頻率越高,音調(diào)也越高。
音色在同樣的音調(diào)(頻率)和響度(振幅)下,鋼琴和小提琴的聲音聽(tīng)起來(lái)是完全不相同的,因?yàn)樗鼈兊囊羯煌?/p>
聲音傳播的介質(zhì)是固體、液體、氣體。介質(zhì)不同,傳播的速度也不同。真空的情況下聲音是無(wú)法傳播的。
對(duì)自然界的聲音(模擬信號(hào))進(jìn)行采樣,采樣就是根據(jù)奈奎斯特定理在時(shí)間軸上對(duì)信號(hào)進(jìn)行數(shù)字化信號(hào),即按照一定時(shí)間間隔△t 在模擬信號(hào) x(t)上逐點(diǎn)采取其瞬時(shí)值。采樣率越高,聲音的還原程度越高,質(zhì)量就越好,同時(shí)占用空間會(huì)變大。
量化是用有限個(gè)幅度值近似原來(lái)連續(xù)變化的幅度值,把模擬信號(hào)的連續(xù)幅度變?yōu)橛邢迶?shù)量的有一定間隔的離散值。
編碼是按照一定的規(guī)律,把量化后的值用二進(jìn)制數(shù)字表示,然后轉(zhuǎn)化成二值或多值的數(shù)字信號(hào)流。這樣得到的數(shù)字信號(hào)通過(guò)可以通過(guò)電纜,衛(wèi)星通道等數(shù)字線路傳輸。在接收端與上述模擬信號(hào)數(shù)字化過(guò)程相反,再經(jīng)過(guò)后置濾波再恢復(fù)成原來(lái)的模擬信號(hào)。
上面數(shù)字化的過(guò)程又叫做脈沖編碼調(diào)制,通常我們說(shuō)的音頻的裸數(shù)據(jù)格式就是脈沖編碼調(diào)制(PCM)數(shù)據(jù)。描述一段 PCM 數(shù)據(jù)需要幾個(gè)量化指標(biāo),常用的量化指標(biāo)是采樣率,位深度,字節(jié)序,聲道數(shù)。
采樣率(Sample rate):每秒鐘采樣多少次,以 Hz 為單位。
位深度(Bit-depth):表示用多少個(gè)二進(jìn)制位來(lái)描述采樣數(shù)據(jù),一般為 16bit。
字節(jié)序:表示音頻 PCM 數(shù)據(jù)存儲(chǔ)的字節(jié)序是大端存儲(chǔ)(big-endian)還是小端存儲(chǔ)(little-endian),為了數(shù)據(jù)處理效率的高效,通常為小端存儲(chǔ)。
聲道數(shù)(channel number):當(dāng)前 PCM 文件中包含的聲道數(shù),是單聲道(mono)、雙聲道
以 CD 音質(zhì)來(lái)說(shuō),量化格式是 2 字節(jié),采樣率是 44100,聲道數(shù)是 2,這些信息就描述了 CD 的音質(zhì)。那么 CD 的數(shù)據(jù)采樣率 =44100*16*2=1378.125kbps, 在 1 分鐘的時(shí)間里 ,需要占用的存儲(chǔ)空間=1378.125 * 60/8/1024=10.09MB。并不小。
壓縮算法包括有損壓縮和無(wú)損壓縮。
常用的音頻編碼方式有以下幾種:
MP3,MPEG-1 or MPEG-2 Audio Layer III,是曾經(jīng)非常流行的一種數(shù)字音頻編碼和有損壓縮格式 , 它被設(shè)計(jì)來(lái)大幅降低音頻數(shù)據(jù)量 。
AAC,Advanced Audio Coding,是由 Fraunhofer IIS、杜比實(shí)驗(yàn)室、AT&T、Sony 等公司共同開(kāi)發(fā), 在 1997 年推出的基于 MPEG-2 的音頻編碼技術(shù)。AAC 比 MP3 有更高的壓縮比,同樣大小的音頻文件,AAC 的音質(zhì)更高。
WMA,Windows Media Audio,由微軟公司開(kāi)發(fā)的一種數(shù)字音頻壓縮格式,本身包括有損和無(wú) 損壓縮格式。
像素:屏幕顯示是把有效面積化為為很多個(gè)小格子,每個(gè)格子只顯示一種顏色,是成像的最小元素,因此就叫做“像素”。
分辨率:屏幕在長(zhǎng)度和寬度這倆個(gè)方向上各有多少像素,就叫做分辨率,一般用 AXB 來(lái)表示。分辨率越高,每個(gè)像素的面積越小,顯示效果就越平滑細(xì)膩。
每一個(gè)像素點(diǎn)的 RGB 通道分別對(duì)應(yīng)屏幕位置上的子像素點(diǎn)繪制到屏幕上,進(jìn)而顯示整個(gè)圖像。
一張圖像是由每個(gè)像素點(diǎn)繪成的,那么一像素點(diǎn)的 RGB 又該如何表示呢?
浮點(diǎn)表示
歸一化表示,取值范圍 0.0~1.0,如 openGL 對(duì)每個(gè)子像素點(diǎn)的表示方式。
整數(shù)表示
取值范圍 0~255 或者 00~FF,8bit 表示一個(gè)子像素。
如圖像格式 RGBA_8888,表示 4*8bit 表示一個(gè)像素,而 RGB_565 用 5 + 6 + 5 bit 表示一個(gè)像素。一張 1280 * 720, RGBA_8888 格式的圖片的大小= 1280 * 720 * 32bit = 1280 * 720 * 32 / 8 byte,也是位圖在內(nèi)存中占用 的大小。所以每一張圖像的裸數(shù)據(jù)都是很大的。
YUV,是另外一種顏色編碼方法,視頻的裸數(shù)據(jù)一般使用 YUV 數(shù)據(jù)格式表示。Y 表示明亮度,也稱灰度 值(灰階值)。UY 表示色度,均表示影響的色彩和飽和度,用于指定像素的顏色。
亮度需要透過(guò) RGB 輸入信號(hào)建立,方式為將 RGB 信號(hào)的特定部分(g 分量信號(hào))疊加到一起。
色度定義了顏色的色調(diào)和飽和度,分別用 Cr、Cb 表示,(C 代表分量(是 component 的縮寫(xiě)))。Cr 反映 RGB 輸入信號(hào)紅色部分與 RGB 信號(hào)亮度值之間的差異。Cb 反映 RGB 輸入信號(hào)藍(lán)色部分與 RGB 信號(hào)亮度值之間的差異。
視頻幀裸數(shù)據(jù)之所以采用 YUV 色彩空間,使用為亮度信號(hào) Y 和色度信號(hào) UV 是分離的。當(dāng)無(wú) UV 色度信號(hào),只有 Y 亮度信號(hào)時(shí),那么這樣表示的圖像就是黑白灰度圖像。彩色電視正是使用 YUV 空間使用 Y 亮度信號(hào)解決彩色電視與黑白電視的兼容問(wèn)題、使黑白電視也能接收彩色電視信號(hào)。最常用的 YUV 都使用 8 個(gè) 字節(jié)來(lái)表示,所以取值范圍就是 0~255。
音頻最開(kāi)始需要采樣,圖像也是一樣的,YUV 最常用的采樣格式是 4:2:0。
YUV 格式有兩大類(lèi):planar 和 packed
1.對(duì)于 planar 的 YUV 格式,先連續(xù)存儲(chǔ)所有像素點(diǎn)的 Y,緊接著存儲(chǔ)所有像素點(diǎn)的 U,隨后是所有像素 點(diǎn)的 V。
2.對(duì)于 packed 的 YUV 格式,每個(gè)像素點(diǎn)的 Y,U,V 是連續(xù)存儲(chǔ)的。YUV420(YUV420-Package),分辨率為 84(wh)的 YUV 圖像,則內(nèi)存分布如下
YUV420P(YUV420-Planar) 分辨率為 84(wh)的 YUV 圖像,則內(nèi)存分布如下
YUV 碼流的存儲(chǔ)格式其實(shí)與其采樣的方式密切相關(guān),主流的采樣方式有三種,YUV4:4:4,YUV4:2:2, YUV4:2:0。
YUV 4:4:4 采樣,每一個(gè) Y 對(duì)應(yīng)一組 UV 分量。YUV 4:2:2 采樣,每?jī)蓚€(gè) Y 共用一組 UV 分量。YUV 4:2:0 采樣,每四個(gè) Y 共用一組 UV 分量。
凡是渲染到屏幕上的東西(文字、圖片或者其他),都要轉(zhuǎn)換為 RGB 的表示形式,那么 YUV 的表示形 式和 RGB 的表示形式之間是如何進(jìn)行轉(zhuǎn)換的呢?
為了實(shí)現(xiàn)格式轉(zhuǎn)換,我們首先要明確待轉(zhuǎn)換格式和目標(biāo)格式的特點(diǎn)和相互轉(zhuǎn)換關(guān)系,這是編程實(shí)現(xiàn)轉(zhuǎn)換的核心。對(duì)于 RGB 轉(zhuǎn) YUV 的過(guò)程,我們要首先拿到 RGB 文件的數(shù)據(jù),再通過(guò)上圖的 YUV 計(jì)算公式對(duì)其做 運(yùn)算,得到 YUV 數(shù)據(jù),從而實(shí)現(xiàn)轉(zhuǎn)換。而對(duì)于 YUV 轉(zhuǎn) RGB 則要首先獲得 YUV 數(shù)據(jù),用第二組 RGB 公式計(jì) 算得到 RGB 數(shù)據(jù)。在本實(shí)驗(yàn)中,轉(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呢?原因很簡(jiǎn)單,因?yàn)?YUV RGB 形式的視頻數(shù)據(jù)太大了。編碼的目的就是為了壓縮, 讓各種視頻的體積變得更小,有利于存儲(chǔ)和傳輸。
視頻編碼的作用:將視頻像素?cái)?shù)據(jù)(RGB,YUV 等)壓縮成視頻碼流,從而降低視頻的數(shù)據(jù)量。視頻編碼方式有以下幾種方式:
國(guó)際上主流制定視頻編解碼技術(shù)的組織有兩個(gè),一個(gè)是“國(guó)際電聯(lián)(ITU-T)”,它制定的標(biāo)準(zhǔn) 有 H.261、H.263、H.263+、H.264 等,另一個(gè)是“國(guó)際標(biāo)準(zhǔn)化組織(ISO)”它制定的標(biāo)準(zhǔn)有 MPEG-1、MPEG-2、 MPEG-4 等。
WMV 是微軟推出的一種流媒體格式,它是在“同門(mén)”的 ASF 格式升級(jí)延伸來(lái)得。在同等視頻質(zhì)量下,WMV 格式的文件可以邊下載邊播放,因此很適合在網(wǎng)上播放和傳輸。
VP8 來(lái)自 On2 的 WebM, VPX(VP6,VP7,VP8,VP9),這個(gè)編碼設(shè)計(jì)用于 web 視頻。
WebRTC,在 2010 年 5 月,Google 以大約 6820 萬(wàn)美元收購(gòu)了 VoIP 軟件開(kāi)發(fā)商 Global IP Solutions 公司,并因此獲得了該公司擁有的 WebRTC 技術(shù)。WebRTC 集成 VP8, VP9。
AV1 是一個(gè)開(kāi)放,免專利的視頻編碼格式,針對(duì)互聯(lián)網(wǎng)傳輸視頻而設(shè)計(jì)。
AVS 是中國(guó)具備自主知識(shí)產(chǎn)權(quán)的第二代信源編碼標(biāo)準(zhǔn),是《信息技術(shù)先進(jìn)音視頻編碼》系列標(biāo)準(zhǔn)的簡(jiǎn)稱, 其包括系統(tǒng)、視頻、音頻、數(shù)字版權(quán)管理等四個(gè)主要技術(shù)標(biāo)準(zhǔn)和符合性測(cè)試等支撐標(biāo)準(zhǔn)。
H265與 H.264 編解碼器相比,HEVC 在壓縮方面提供了重大的改進(jìn)。HEVC 壓縮視頻的效率比 H.264 要高出兩倍。使用 HEVC,相同視覺(jué)質(zhì)量的視頻只占用一半的空間。
VP9 是由 Google 開(kāi)發(fā)的開(kāi)放式、無(wú)版權(quán)費(fèi)的視頻編碼標(biāo)準(zhǔn),VP9 也被視為是 VP8 的下一代視頻編碼標(biāo)準(zhǔn)。
H.265 與 VP9 編碼質(zhì)量的對(duì)比測(cè)試,數(shù)值越小,則表示編碼質(zhì)量越好。從對(duì)比中我們發(fā)現(xiàn) H.265、VP9 兩者的差別并不大,整體平均分只差了 0.001,在實(shí)際應(yīng)用中幾乎不存在差異。
在編碼時(shí)間對(duì)比中,VP9 完勝 H.265,無(wú)論是 4K 視頻還是 1920、1280 分辨率的視頻,VP9 的編碼 耗時(shí)都比 H.265 短很多。但是 H.265 的解碼效率略高于 VP9 。
H.265 繼承了 H.264 的視頻編碼標(biāo)準(zhǔn)體系,在商業(yè)應(yīng)用中更加廣泛,多使用于安防、軍政、企業(yè)等場(chǎng) 景中,但由于其專利持有者過(guò)多,導(dǎo)致其商用費(fèi)用過(guò)高,在推廣中面臨較大阻力。
VP9 由 Google 研發(fā),可以免費(fèi)使用。在實(shí)際推廣中,微軟、蘋(píng)果等公司不愿看到 VP9 一家獨(dú)大,其 他互聯(lián)網(wǎng)廠商也不希望主流視頻編碼格式被壟斷,因此目前在主要在 Google 自家的產(chǎn)品中得到支持,其他 使用 VP9 的大廠并不多。
在聯(lián)誠(chéng)發(fā)LED顯示屏小編看來(lái),就目前而言,H.265 在企業(yè)、安防中使用較為廣泛,而 VP9 因其簡(jiǎn)易、實(shí)用的解決方案以及開(kāi)發(fā)便捷的特性在互聯(lián)網(wǎng)應(yīng)用場(chǎng)景中使用較多。