版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TCC8900VPU分析---星恒教育--何偉整理——常見視頻編解碼格式及RGB和YUV存儲(chǔ)格式預(yù)研常見視頻編解碼格式1視頻文件類別 常言道:物以類聚,人以群分。視頻文件也不例外,細(xì)細(xì)算起來,視頻文件可以分成兩大類:其一是影像文件,比如說常見的VCD便是一例。其二是流式視頻文件,這是隨著國際互聯(lián)網(wǎng)的發(fā)展而誕生的后起視頻之秀,比如說在線實(shí)況轉(zhuǎn)播,就是構(gòu)架在流式視頻技術(shù)之上的。1.1影像格式日常生活中接觸較多的VCD、多媒體CD光盤中的動(dòng)畫……這些都是影像文件。影像文件不僅包含了大量圖像信息,同時(shí)還容納大量音頻信息。所以,影像文件的“身材”往往不可小覷。AVI格式MOV格式MPEG/MPG/DAT格式1.2流式視頻格式目前,很多視頻數(shù)據(jù)要求通過Internet來進(jìn)行實(shí)時(shí)傳輸,前面我們?cè)峒暗剑曨l文件的體積往往比較大,而現(xiàn)有的網(wǎng)絡(luò)帶寬卻往往比較“狹窄”,千軍萬馬要過獨(dú)木橋,其結(jié)果當(dāng)然可想而知??陀^因素限制了視頻數(shù)據(jù)的實(shí)時(shí)傳輸和實(shí)時(shí)播放,于是一種新型的流式視頻(StreamingVideo)格式應(yīng)運(yùn)而生了。這種流式視頻采用一種“邊傳邊播”的方法,即先從服務(wù)器上下載一部分視頻文件,形成視頻流緩沖區(qū)后實(shí)時(shí)播放,同時(shí)繼續(xù)下載,為接下來的播放做好準(zhǔn)備。這種“邊傳邊播”的方法避免了用戶必須等待整個(gè)文件從Internet上全部下載完畢才能觀看的缺點(diǎn)。到目前為止,Internet上使用較多的流式視頻格式主要是以下三種:RM(RealMedia)格式RM格式是RealNetworks公司開發(fā)的一種新型流式視頻文件格式,它麾下共有三員大將:RealAudio、RealVideo和RealFlash。RealAudio用來傳輸接近CD音質(zhì)的音頻數(shù)據(jù),RealVideo用來傳輸連續(xù)視頻數(shù)據(jù),而RealFlash則是RealNetworks公司與Macromedia公司新近合作推出的一種高壓縮比的動(dòng)畫格式。RealMedia可以根據(jù)網(wǎng)絡(luò)數(shù)據(jù)傳輸速率的不同制定了不同的壓縮比率,從而實(shí)現(xiàn)在低速率的廣域網(wǎng)上進(jìn)行影像數(shù)據(jù)的實(shí)時(shí)傳送和實(shí)時(shí)播放。這里我們主要介紹RealVideo,它除了可以以普通的視頻文件形式播放之外,還可以與RealServer服務(wù)器相配合,首先由RealEncoder負(fù)責(zé)將已有的視頻文件實(shí)時(shí)轉(zhuǎn)換成RealMedia格式,RealServer則負(fù)責(zé)廣播RealMedia視頻文件。在數(shù)據(jù)傳輸過程中可以邊下載邊由RealPlayer播放視頻影像,而不必像大多數(shù)視頻文件那樣,必須先下載然后才能播放。目前,Internet上已有不少網(wǎng)站利用RealVideo技術(shù)進(jìn)行重大事件的實(shí)況轉(zhuǎn)播。MOV文件格式(QuickTime)MOV也可以作為一種流文件格式。QuickTime能夠通過Internet提供實(shí)時(shí)的數(shù)字化信息流、工作流與文件回放功能,為了適應(yīng)這一網(wǎng)絡(luò)多媒體應(yīng)用,QuickTime為多種流行的瀏覽器軟件提供了相應(yīng)的QuickTimeViewer插件(Plug-in),能夠在瀏覽器中實(shí)現(xiàn)多媒體數(shù)據(jù)的實(shí)時(shí)回放。該插件的“快速啟動(dòng)(FastStart)”功能,可以令用戶幾乎能在發(fā)出請(qǐng)求的同時(shí)便收看到第一幀視頻畫面,而且,該插件可以在視頻數(shù)據(jù)下載的同時(shí)就開始播放視頻圖像,用戶不需要等到全部下載完畢就能進(jìn)行欣賞。此外,QuickTime還提供了自動(dòng)速率選擇功能,當(dāng)用戶通過調(diào)用插件來播放QuickTime多媒體文件時(shí),能夠自己選擇不同的連接速率下載并播放影像,當(dāng)然,不同的速率對(duì)應(yīng)著不同的圖像質(zhì)量。此外,QuickTime還采用了一種稱為QuickTimeVR的虛擬現(xiàn)實(shí)(VR,VirtualReality)技術(shù),用戶只需通過鼠標(biāo)或鍵盤,就可以觀察某一地點(diǎn)周圍360度的景象,或者從空間任何角度觀察某一物體。ASF(AdvancedStreamingFormat)格式Microsoft公司推出的AdvancedStreamingFormat(ASF,高級(jí)流格式),也是一個(gè)在Internet上實(shí)時(shí)傳播多媒體的技術(shù)標(biāo)準(zhǔn),Microsoft公司的野心很大,希圖用ASF取代QuickTime之類的技術(shù)標(biāo)準(zhǔn)。ASF的主要優(yōu)點(diǎn)包括:本地或網(wǎng)絡(luò)回放、可擴(kuò)充的媒體類型、部件下載、以及擴(kuò)展性等。ASF應(yīng)用的主要部件是NetShow服務(wù)器和NetShow播放器。有獨(dú)立的編碼器將媒體信息編譯成ASF流,然后發(fā)送到NetShow服務(wù)器,再由NetShow服務(wù)器將ASF流發(fā)送給網(wǎng)絡(luò)上的所有NetShow播放器,從而實(shí)現(xiàn)單路廣播或多路廣播。這和Real系統(tǒng)的實(shí)時(shí)轉(zhuǎn)播則是大同小異。2常見的視頻的編碼及封裝格式2.1常見視頻編碼格式 常見的編碼格式有H.264、H.263、MPEG-1、MPEG-2、MPEG、4、SorensonSpark、VC-1、JPEG、RV、DivX、On2TrueMotionVP6。對(duì)于高清視頻來說,主流的編碼技術(shù)目前主要有MPEG-2、DivX、XVID、H264/AVC、VC-1、RMVB和WMV-HD等等。其中,H264/AVC、VC-1、MPEG-2是藍(lán)光(Blu-rayDisc)所選擇的編碼格式,也是目前最流行的高清視頻編碼格式。另外就是高清視頻的封裝格式,封裝格式和編碼格式是互相區(qū)別的,許多人會(huì)把它們混淆。下圖為常見編碼格式的logo:圖1.1常見編碼格式logoH264/X264/AVC編碼格式絕大多數(shù)視聽玩家對(duì)于H264編碼都不會(huì)感到陌生,H264編碼的身世顯赫,是ITU-T(國際電信聯(lián)盟視頻編碼專家組)與ISO/IEC(國際標(biāo)準(zhǔn)化組織動(dòng)態(tài)圖像專家組)合作組成的JVT(聯(lián)合視頻組)推動(dòng)的新一代數(shù)字視頻編碼標(biāo)準(zhǔn),也稱為MPEG-4/AVC編碼。H264編碼依托雄厚的背景,在技術(shù)上獨(dú)樹一幟,大幅領(lǐng)先于其它編碼算法。X264編碼,是H264編碼的一個(gè)開源分支,它符合H264標(biāo)準(zhǔn),其功能在于編碼,而不作為解碼器使用,X264編碼最大的特點(diǎn)在于注重實(shí)用,它在不明顯降低編碼性能的前提下,努力降低編碼的計(jì)算復(fù)雜度,X264對(duì)于H264編碼中的一些復(fù)雜編碼特性做了折衷處理,其壓縮視頻體積小于XVID(MPEG-4)編碼視頻,以小體積、高畫質(zhì)的特點(diǎn)得到了廣泛認(rèn)可。H.263編碼格式 H.263是國際電聯(lián)ITU-T的一個(gè)標(biāo)準(zhǔn)草案,是為低碼流通信而設(shè)計(jì)的。但實(shí)際上這個(gè)標(biāo)準(zhǔn)可用在很寬的碼流范圍,而非只用于低碼流應(yīng)用,它在許多應(yīng)用中可以認(rèn)為被用于取代H.261。H.263的編碼算法與H.261一樣,但做了一些改善和改變,以提高性能和糾錯(cuò)能力。1998年IUT-T推出的H.263+是H.263建議的第2版,它提供了12個(gè)新的可協(xié)商模式和其他特征,進(jìn)一步提高了壓縮編碼性能。如H.263只有5種視頻源格式,H.263+允許使用更多的源格式,圖像時(shí)鐘頻率也有多種選擇,拓寬應(yīng)用范圍;另一重要的改進(jìn)是可擴(kuò)展性,它允許多顯示率、多速率及多分辨率,增強(qiáng)了視頻信息在易誤碼、易丟包異構(gòu)網(wǎng)絡(luò)環(huán)境下的傳輸。另外,H.263+對(duì)H.263中的不受限運(yùn)動(dòng)矢量模式進(jìn)行了改進(jìn),加上12個(gè)新增的可選模式,不僅提高了編碼性能,而且增強(qiáng)了應(yīng)用的靈活性。H.263已經(jīng)基本上取代了H.261MPEG-1編碼格式 MPEG-1是MPEG組織制定的第一個(gè)視頻和音頻有損壓縮標(biāo)準(zhǔn)。視頻壓縮算法于1990年定義完成。1992年底,MPEG-1正式被批準(zhǔn)成為國際標(biāo)準(zhǔn)。MPEG-1是為CD光碟介質(zhì)定制的的視頻和音頻壓縮格式。一張70分鐘的CD光碟傳輸速率大約在1.4Mbps。而MPEG-1采用了塊方式的運(yùn)動(dòng)補(bǔ)償、離散馀弦變換(DCT)、量化等技術(shù),并為1.2Mbps傳輸速率進(jìn)行了優(yōu)化。MPEG-1隨后被VideoCD采用作為核心技術(shù)。MPEG-1的輸出質(zhì)量大約和傳統(tǒng)錄像機(jī)VCR,信號(hào)質(zhì)量相當(dāng),這也許是VideoCD在發(fā)達(dá)國家未獲成功的原因。MPEG-2編碼格式MPEG-2編碼標(biāo)準(zhǔn)是由MPEG(MovingPictureExpertsGroup)工作組發(fā)布的視頻與音頻壓縮國際標(biāo)準(zhǔn)。MPEG-2編碼于1994年發(fā)布,常用于廣播信號(hào)(衛(wèi)星電視、有線電視)的視頻和音頻編碼,經(jīng)過后期不斷修改,不僅成為DVD的核心技術(shù),還應(yīng)用于HDTV高清電視傳輸。MPEG-4編碼格式 MPEG4于1998年11月公布,原預(yù)計(jì)1999年1月投入使用的國際標(biāo)準(zhǔn)MPEG4不僅是針對(duì)一定比特率下的視頻、音頻編碼,更加注重多媒體系統(tǒng)的交互性和靈活性。MPEG-4標(biāo)準(zhǔn)主要應(yīng)用于視像電話(VideoPhone),視像電子郵件(VideoEmail)和電子新聞(ElectronicNews)等,其傳輸速率要求較低,在4800-64000bits/sec之間,分辨率為176X144。MPEG-4利用很窄的帶寬,通過幀重建技術(shù),壓縮和傳輸數(shù)據(jù),以求以最少的數(shù)據(jù)獲得最佳的圖像質(zhì)量。SorensenSpark編碼格式 Sorenson編解碼器可以指三個(gè)專有的視頻編解碼器:Sorenson視頻,Sorenson視頻3或SorensonSpark。Sorenson視頻也被稱為Sorenson視頻編解碼器,Sorenson視頻量化或SVQ。SorensonSpark也被稱為H.263或FLV1Sorenson(而且有時(shí)誤為Flash視頻(FLV),這是以AdobeFlash容器格式名稱命名)。 這兩種編解碼器的設(shè)計(jì)由Sorenson媒體公司。Sorenson視頻是用在蘋果的QuickTime和SorensonSpark在用在AdobeFlash容器中。VC-1編碼格式WMV(WindowsMediaVideo)作為經(jīng)久不衰的一種視頻編碼,一直在不斷改進(jìn),2003年,微軟基于WMV第九版(WMV9)編碼技術(shù),正式提出了VC-1編碼標(biāo)準(zhǔn),并于2006年正式成為國際標(biāo)準(zhǔn)。VC-1編碼作為較晚推出的高清編碼算法,自然吸收了MPEG-2與H264編碼的優(yōu)點(diǎn),其壓縮比介于MPEG2和H264之間,編解碼復(fù)雜性僅有H264的一半,即壓縮時(shí)間更短、解碼計(jì)算更小,在微軟的大力推動(dòng)下,VC-1編碼已經(jīng)得到了BD藍(lán)光光盤、電影及電視學(xué)會(huì)(SMPTE)的支持。近幾年來,為了更好的推廣WMV9/VC-1編碼標(biāo)準(zhǔn),微軟不遺余力的建立了WMV-HD高清資源站點(diǎn),大量發(fā)布采用VC-1編碼壓制的720P、1080P宣傳片及演示片(WMV-HD視頻格式),試圖營造聲勢(shì),吸引用戶關(guān)注。不過,中庸的技術(shù)(與H264相比無明顯編碼優(yōu)勢(shì))、封閉的平臺(tái)(限于Windows系統(tǒng))、后發(fā)的劣勢(shì)(2006年通過成為國際標(biāo)準(zhǔn))仍然給微軟VC-1編碼的應(yīng)用前景帶來了較大的不確定性。JPEG編碼格式 JPEG是JointPhotographicExpertsGroup(聯(lián)合圖像專家小組))的縮寫。JPEG的壓縮方式通常是破壞性資料壓縮(lossycompression),意即在壓縮過程中圖像的品質(zhì)會(huì)遭受到可見的破壞,有一種以JPEG為基礎(chǔ)的標(biāo)準(zhǔn)ProgressiveJPEG是采用無失真的壓縮方式,但ProgressiveJPEG并沒有受到廣泛的支援。RV編碼格式 RealVideo格式文件包括后綴名為RA、RM、RAM、RMVB的四種視頻格式。RealVideo是一種高壓縮比的視頻格式,可以使用任何一種常用于多媒體及Web上制作視頻的方法來創(chuàng)建RealVideo文件。例如Premiere、VideoShop以及AfterEffects等,對(duì)于文件的播放可用realplayer和暴風(fēng)影音播放。DivX編碼格式 DivX格式,這是由MPEG-4衍生出的另一種視頻編碼(壓縮)標(biāo)準(zhǔn),也即我們通常所說的DVDrip格式,它采用了MPEG4的壓縮算法同時(shí)又綜合了MPEG-4與MP3各方面的技術(shù),說白了就是使用DivX壓縮技術(shù)對(duì)DVD盤片的視頻圖像進(jìn)行高質(zhì)量壓縮,同時(shí)用MP3或AC3對(duì)音頻進(jìn)行壓縮,然后再將視頻與音頻合成并加上相應(yīng)的外掛字幕文件而形成的視頻格式。其畫質(zhì)直逼DVD并且體積只有DVD的數(shù)分之一。這種編碼對(duì)機(jī)器的要求也不高,所以DivX視頻編碼技術(shù)可以說是一種對(duì)DVD造成威脅最大的新生視頻壓縮格式,號(hào)稱DVD殺手或DVD終結(jié)者。On2TrueMotionVP6編碼格式 On2TrueMotionVP6是主要的移動(dòng)視頻標(biāo)準(zhǔn),他采用了AdobeFlashLite?3的一些標(biāo)準(zhǔn),數(shù)以百計(jì)的網(wǎng)絡(luò)門戶,用戶自己制作的內(nèi)容,以及社交網(wǎng)絡(luò)普遍采用基于Flash的VP6格式。2.2視頻的封裝格式封裝格式其實(shí)是一個(gè)“容器”,它不同于編碼格式,封裝就相當(dāng)于捆綁打包,將已經(jīng)編碼好的視頻文件和音軌文件打包在一起,并按照一定規(guī)則建立排序和索引,便于播放器或播放軟件來索引播放。常見的封裝格式有MKV、AVI、MOV、TS、PS等等,高清媒體文件的后綴名(擴(kuò)展文件名)一般都是媒體的封裝格式。(1)MOV格式:MOV多見于AppleQuickTime網(wǎng)站上的電影預(yù)告片。MOV類似于RMVB,過于封閉自守,民間制作組沒有人會(huì)用這個(gè)不方便的形式。
(2)AVI格式:AVI封裝是微軟在上世紀(jì)90年代初創(chuàng)立的封裝標(biāo)準(zhǔn),是當(dāng)時(shí)為對(duì)抗QuickTime的MOV格式而推出的,因?yàn)楫?dāng)時(shí)還沒有流式播放需要,AVI的將索引布置在打包文件的尾部,這就使得AVI封裝不能做到流式播放(流媒體)。AVI封裝只能支持有限的幾種視頻音頻編碼形式,且AVI不能支持音頻的VBR動(dòng)態(tài)比特率編碼。
(3)TS格式:TS(TransportStream)是一種比較先進(jìn)的封裝形式,藍(lán)光原盤中,就采用了TS封裝。TS封裝支持幾乎所有編碼的高清視頻和音軌文件。PS(ProgramStream)封裝的技術(shù)基本和TS相同,但PS封裝和AVI一樣,都不是流媒體,不能夠支持流式播放,PS封裝使用在原先的HDDVD中。在高清標(biāo)準(zhǔn)下,MPEG-2編碼的視頻文件主要采用TS封裝格式。
(4)MKV格式:MKV(Matroska)是一種新興的多媒體封裝格式,可以將各類視頻編碼、16條或以上不同格式的音頻和語言不同的字幕封裝在一個(gè)文件內(nèi),它具有開放源代碼、音視頻編碼豐富、網(wǎng)絡(luò)親和性好等優(yōu)勢(shì),已經(jīng)得到眾多視頻壓制組和玩家的支持,正逐漸成為高清視頻的主流視頻格式。H264編碼與X264編碼目前大多采用MKV封裝格式。3視頻的播放組件及調(diào)用流程視頻文件的解碼過程如下依次需要用到的組件有“分離器”、“解碼器”、“渲染器”,它們統(tǒng)稱為“濾鏡”。3.1分離器(Splitter)要正確地播放多媒體文件,播放器首先要正確地調(diào)用分離器,把視頻流和(或)音頻流正確地分離出來,然后交給解碼器進(jìn)行解碼,這就是分離器的使命。上文中說到有不少的封裝格式,每一種封裝格式都必須有相對(duì)應(yīng)一種分離器,才能正確的把視頻和音頻分離出來以供解碼器解碼。常用的分離器有:GabestMPEGSplitter(MediaPlayerClassic作者編寫的分離器)、KMPSplitter(KMPlayer原配的分離器)HailiMediaSplitter這三種分離器能夠支持較多的封裝格式,其它的分離器還有 Moonlight-ElecardMPEG2Demultiplexer(月光分離器)、nVIDIATransportDemux(nVIDIA公司的分離器,配合PureVideo使用)、CyberLinkDemux(PowerDVD軟件中的分離器)3.2解碼器(Decoder)解碼器在整個(gè)視頻的播放中占據(jù)了最主要的位置,它的作用是對(duì)由分離器分離出來的音頻流和視頻流分別進(jìn)行解碼。解碼器又分為視頻解碼器和音頻解碼器。常見的視頻解碼器有:MPEG-2視頻解碼器InterVideoVideoDecoder(WinDVD的解碼器)CyberLinkDTVVideo/SPFilterCyberLinkVideo/SPFilter(PowerDVD的解碼器)Moonlight-ElecardMPEG2VideoDecodernVIDIAVideoDecoder(nVIDIAPureVideo的解碼器)SonicCinemasterVideo、GabestVideoDecoderH264/X264/AVC視頻解碼器CyberLinkH.264/AVCDecoder(PowerDVD的解碼器)、CoreAVCDirectShowVideoDecoderMoonlightH264VideoDecoderffdshowMPEG-4VideoDecoderVC-1視頻解碼器CyberLinkVC-1Deocder(PowerDVD的解碼器)、MediaPlayerClassicVideoDecoder、WMVideoDecoderDMO(微軟的解碼器)等等。常見的音頻解碼器有:CyberLinkAudioDecoder(PowerDVD的解碼器)AC3FilterInterVideoAudioDecodernVIDIAAudioDecoder3.3渲染器(Renderer)渲染器與解碼器一樣,分為視頻渲染器和音頻渲染器,解碼后的視頻數(shù)據(jù)經(jīng)過視頻渲染器的渲染后呈現(xiàn)到顯示設(shè)備上,解碼后的音頻經(jīng)過音頻渲染器的渲染后從聲卡輸出。渲染在視頻播放的過程中是很重要的,因?yàn)樗鼤?huì)影響到視頻最終的效果,不同的渲染器有不同的技術(shù)特性,對(duì)電腦的配置(主要是CPU和顯卡)的要求也不一樣。視頻渲染器主要有以下幾種:舊式視頻渲染器(VideoRenderer):這種是最原始的渲染器,它接收到來自解碼器解碼后的數(shù)據(jù)流,在顯示設(shè)備上顯示。這種渲染器基本上不能調(diào)用到顯卡硬件特性,全靠CPU來完成渲染任務(wù)。覆蓋合成器(OverlayMixer):覆蓋合成器能夠?qū)⑷舾陕芬曨l流合并輸出到顯示設(shè)備上,并且它能夠很好地調(diào)用顯卡硬件的拉伸,顏色空間變換等硬件功能,以減少對(duì)CPU資源的占用率。視頻覆蓋的畫面質(zhì)量事實(shí)上取決于顯卡硬件。通常在使用覆蓋合成器的時(shí)候無法直接對(duì)正在播放的視頻截圖。VMR渲染器(VideoMixingRenderer):VMR對(duì)覆蓋合成器進(jìn)行了改進(jìn),它是基于DirectX的視頻渲染器,能夠支持16路的視頻流混合。VMR根據(jù)DirectX版本的不同,可以分為VMR7和VMR9,其中VMR7基于DirectDraw7(2D),而VMR9基于Direct3D9(3D),VMR9可以支持視頻特效(VideoEffects)和視頻變換(VideoTransitions)。VMR根據(jù)渲染模式的不同又分為“窗口化”(Windowed)、“無窗口”(Windowless)、“未渲染”(Renderless)模式。EVR增強(qiáng)型視頻渲染器(EnhancedVideoRenderer)微軟在WindowsVista系統(tǒng)就開始引入的新視頻渲染器,當(dāng)然也包含在新的操作系統(tǒng)Windows7中。它與VMR最大的區(qū)別就是能夠支持DXVA2.0。二、RGB和YUV視頻存儲(chǔ)格式 視頻數(shù)據(jù),圖像數(shù)據(jù)在存儲(chǔ)中的存儲(chǔ)格式主要有RGB和YUV。RGB是多媒體數(shù)據(jù)進(jìn)行數(shù)據(jù)存儲(chǔ)采用的主流格式;YUV格式所需存儲(chǔ)空間一般是RGB格式存儲(chǔ)空間的一半,所以YUV格式主要用于多媒體數(shù)據(jù)傳輸中。1RGB視頻存儲(chǔ)格式1.1RGB概述 計(jì)算機(jī)彩色顯示器顯示色彩的原理與彩色電視機(jī)一樣,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通過發(fā)射出三種不同強(qiáng)度的電子束,使屏幕內(nèi)側(cè)覆蓋的紅、綠、藍(lán)磷光材料發(fā)光而產(chǎn)生色彩。這種色彩的表示方法稱為RGB色彩空間表示。 根據(jù)三基色原理,任意一種色光F都可以用不同分量的R、G、B三色相加混合而成。 F=r[R]+g[G]+b[B] 其中,r、g、b分別為三基色參與混合的系數(shù)。當(dāng)三基色分量都為0(最弱)時(shí)混合為黑色光;而當(dāng)三基色分量都為k(最強(qiáng))時(shí)混合為白色光。調(diào)整r、g、b三個(gè)系數(shù)的值,可以混合出介于黑色光和白色光之間的各種各樣的色光。1.2常見的RGB格式 RGB的GUID(globallyuniqueidentifier全球唯一標(biāo)識(shí)符)格式描述描述如下表所示:表2.1RGB的GUID描述RGB的GUID描述符描述符說明MEDIASUBTYPE_RGB12每個(gè)像素用1位表示,需要調(diào)色板MEDIASUBTYPE_RGB416每個(gè)像素用4位表示,需要調(diào)色板MEDIASUBTYPE_RGB8256每個(gè)像素用8位表示,需要調(diào)色板MEDIASUBTYPE_RGB565每個(gè)像素用16位表示,RGB分量分別使用5位、6位、5位MEDIASUBTYPE_RGB555每個(gè)像素用16位表示,RGB分量都使用5位(剩下的1位不用)MEDIASUBTYPE_RGB24每個(gè)像素用24位表示,RGB分量各使用8位MEDIASUBTYPE_RGB32每個(gè)像素用32位表示,RGB分量各使用8位(剩下的8位不用)MEDIASUBTYPE_ARGB32每個(gè)像素用32位表示,RGB分量各使用8位(剩下的8位用于表示Alpha通道值)1.3各種RGB格式介紹 RGB1、RGB4、RGB8都是調(diào)色板類型的RGB格式,在描述這些媒體類型的格式細(xì)節(jié)時(shí),通常會(huì)在BITMAPINFOHEADER數(shù)據(jù)結(jié)構(gòu)后面跟著一個(gè)調(diào)色板(定義一系列顏色)。它們的圖像數(shù)據(jù)并不是真正的顏色值,而是當(dāng)前像素顏色值在調(diào)色板中的索引。RGB1 以RGB1(2色位圖)為例,比如它的調(diào)色板中定義的兩種顏色值依次為0x000000(黑色)和0xFFFFFF(白色),那么圖像數(shù)據(jù)001101010111…(每個(gè)像素用1位表示)表示對(duì)應(yīng)各像素的顏色為:黑黑白白黑白黑白黑白白白…RGB565 RGB565使用16位表示一個(gè)像素,這16位中的5位用于R,6位用于G,5位用于B。程序中通常使用一個(gè)字(WORD,一個(gè)字等于兩個(gè)字節(jié))來操作一個(gè)像素。當(dāng)讀出一個(gè)像素后,這個(gè)字的各個(gè)位意義如下:高字節(jié)低字節(jié)RRRRRGGGGGGBBBBB可以組合使用屏蔽字和移位操作來得到RGB各分量的值:#defineRGB565_MASK_RED0xF800#defineRGB565_MASK_GREEN0x07E0#defineRGB565_MASK_BLUE0x001FR=(wPixel&RGB565_MASK_RED)>>11;//取值范圍0-31G=(wPixel&RGB565_MASK_GREEN)>>5;//取值范圍0-63B=wPixel&RGB565_MASK_BLUE;//取值范圍0-31RGB555 RGB555是另一種16位的RGB格式,RGB分量都用5位表示(剩下的1位不用)。使用一個(gè)字讀出一個(gè)像素后,這個(gè)字的各個(gè)位意義如下:高字節(jié)低字節(jié)XRRRRGGGGGBBBBB(X表示不用,可以忽略)可以組合使用屏蔽字和移位操作來得到RGB各分量的值:#defineRGB555_MASK_RED0x7C00#defineRGB555_MASK_GREEN0x03E0#defineRGB555_MASK_BLUE0x001FR=(wPixel&RGB555_MASK_RED)>>10;//取值范圍0-31G=(wPixel&RGB555_MASK_GREEN)>>5;//取值范圍0-31B=wPixel&RGB555_MASK_BLUE;//取值范圍0-31RGB24 RGB24使用24位來表示一個(gè)像素,RGB分量都用8位表示,取值范圍為0-255。注意在內(nèi)存中RGB各分量的排列順序?yàn)椋築GRBGRBGR…。通??梢允褂肦GBTRIPLE數(shù)據(jù)結(jié)構(gòu)來操作一個(gè)像素,它的定義為:typedefstructtagRGBTRIPLE{BYTErgbtBlue;//藍(lán)色分量BYTErgbtGreen;//綠色分量BYTErgbtRed;//紅色分量}RGBTRIPLE;RGB32 RGB32使用32位來表示一個(gè)像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是帶Alpha通道的RGB32。)注意在內(nèi)存中RGB各分量的排列順序?yàn)椋築GRABGRABGRA…。通常可以使用RGBQUAD數(shù)據(jù)結(jié)構(gòu)來操作一個(gè)像素,它的定義為:typedefstructtagRGBQUAD{BYTErgbBlue;//藍(lán)色分量BYTErgbGreen;//綠色分量BYTErgbRed;//紅色分量BYTErgbReserved;//保留字節(jié)(用作Alpha通道或忽略)}RGBQUAD;2YUV視頻存儲(chǔ)格式2.1YUV概述 在現(xiàn)代彩色電視系統(tǒng)中,通常采用三管彩色攝像機(jī)或彩色CCD攝像機(jī)進(jìn)行攝像,然后把攝得的彩色圖像信號(hào)經(jīng)分色、分別放大校正后得到RGB,再經(jīng)過矩陣變換電路得到亮度信號(hào)Y和兩個(gè)色差信號(hào)R-Y(即U)、B-Y(即V),最后發(fā)送端將亮度和色差三個(gè)信號(hào)分別進(jìn)行編碼,用同一信道發(fā)送出去。這種色彩的表示方法就是所謂的YUV色彩空間表示。 采用YUV色彩空間的重要性是它的亮度信號(hào)Y和色度信號(hào)U、V是分離的。如果只有Y信號(hào)分量而沒有U、V分量,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號(hào)Y解決彩色電視機(jī)與黑白電視機(jī)的兼容問題,使黑白電視機(jī)也能接收彩色電視信號(hào)。 本文講述的格式全部使用每個(gè)像素位置8位的方式來編碼Y頻道(也稱為燈光頻道),并使用每樣例8位的方式來編碼每個(gè)U或V色度樣例。但是,大多數(shù)YUV格式平均使用的每像素位數(shù)都少于24位,這是因?yàn)樗鼈儼腢和V樣例比Y樣例要少。 注在本文中,U一詞相當(dāng)于Cb,V一詞相當(dāng)于Cr。2.2常見YUV的格式 在DirectShow中,常見的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等。作為視頻媒體類型的輔助說明類型(Subtype),它們對(duì)應(yīng)的GUID(GloballyUniqueIdentifier)如下表所示。表2.2YUV的GUID描述YUV的GUID描述符描述符說明MEDIASUBTYPE_YUY2YUY2以4:2:2方式打包MEDIASUBTYPE_YUYVYUYV實(shí)際格式與YUY2相同MEDIASUBTYPE_YVYUYVYU以4:2:2方式打包MEDIASUBTYPE_UYVYUYVY以4:2:2方式打包MEDIASUBTYPE_AYUVAYUVAlpha通道的4:4:4YUV格式MEDIASUBTYPE_Y41PY41P以4:1:1方式打包MEDIASUBTYPE_Y411Y411實(shí)際格式與Y41P相同MEDIASUBTYPE_Y211Y211MEDIASUBTYPE_IF09IF09格式MEDIASUBTYPE_IYUVIYUV格式MEDIASUBTYPE_YV12YV12格式MEDIASUBTYPE_YVU9YVU9格式2.3YUV主要采樣格式主要的采樣格式有YCbCr4:2:0、YCbCr4:2:2、YCbCr4:1:1和YCbCr4:4:4。其中YCbCr4:1:1比較常用,其含義為:每個(gè)點(diǎn)保存一個(gè)8bit的亮度值(也就是Y值),每2x2個(gè)點(diǎn)保存一個(gè)Cr和Cb值,圖像在肉眼中的感覺不會(huì)起太大的變化。所以,原來用RGB(R,G,B都是8bitunsigned)模型,1個(gè)點(diǎn)需要8x3=24bits,若4:4:4按采樣后,YUV仍各占8bit。按4:1:1采樣后,而現(xiàn)在一個(gè)點(diǎn)平均僅需要8+(8/4)+(8/4)=12bits。這樣就把圖像的數(shù)據(jù)壓縮了一半。 YUV的優(yōu)點(diǎn)之一是,色度頻道的采樣率可比Y頻道低,同時(shí)不會(huì)明顯降低視覺質(zhì)量。有一種表示法可用來描述U和V與Y的采樣頻率比例,這個(gè)表示法稱為A:B:C表示法:4:4:4:表示色度頻道沒有下采樣。4:2:2:表示2:1的水平下采樣,沒有垂直下采樣。對(duì)于每?jī)蓚€(gè)U樣例或V樣例,每個(gè)掃描行都包含四個(gè)Y樣例。4:2:0:表示2:1的水平下采樣,2:1的垂直下采樣。4:1:1:表示4:1的水平下采樣,沒有垂直下采樣。對(duì)于每個(gè)U樣例或V樣例,每個(gè)掃描行都包含四個(gè)Y樣例。2.3.1YUV采樣格式圖示YUV4:4:4采樣 下圖顯示了4:4:4圖片中使用的采樣網(wǎng)格。燈光樣例用叉來表示,色度樣例則用圈表示。圖2.1YUV4:4:4樣例位置YUV4:2:2采樣 4:2:2采樣的這種主要形式在ITU-RRecommendationBT.601中進(jìn)行了定義。圖2.1顯示了此標(biāo)準(zhǔn)定義的采樣網(wǎng)格。圖2.2YUV4:2:2樣例位置YUV4:2:0采樣 4:2:0采樣有兩種常見的變化形式。其中一種形式用于MPEG-2視頻,另一種形式用于MPEG-1以及ITU-TrecommendationsH.261和H.263。圖2.3顯示了MPEG-1方案中使用的采樣網(wǎng)格,圖2.4顯示了MPEG-2方案中使用的采樣網(wǎng)格。圖2.3YUV4:2:0樣例位置(MPEG-1方案)圖2.4YUV4:2:0樣例位置(MPEG-2方案) 與MPEG-1方案相比,在MPEG-2方案與為4:2:2和4:4:4格式定義的采樣網(wǎng)格之間進(jìn)行轉(zhuǎn)換更簡(jiǎn)單一些。因此,在Windows中首選MPEG-2方案,應(yīng)該考慮將其作為4:2:0格式的默認(rèn)轉(zhuǎn)換方案。2.3.2YUV存儲(chǔ)方式 本文講述推薦用于視頻呈現(xiàn)的8位YUV格式。這些格式可以分為幾個(gè)類別:4:4:4格式,每像素32位4:2:2格式,每像素16位4:2:0格式,每像素16位4:2:0格式,每像素12位 首先,理解下列概念,這樣才能理解接下來的內(nèi)容:表面原點(diǎn):對(duì)于本文講述的YUV格式,原點(diǎn)(0,0)總是位于表面的左上角??缇啵罕砻娴目缇?,有時(shí)也稱為間距,指的是表面的寬度,以字節(jié)數(shù)表示。對(duì)于一個(gè)表面原點(diǎn)位于左上角的表面來說,跨距總是正數(shù)。對(duì)齊:表面的對(duì)齊是根據(jù)圖形顯示驅(qū)動(dòng)程序的不同而定的。表面始終應(yīng)該DWORD對(duì)齊,就是說,表面中的各個(gè)行肯定都是從32位(DWORD)邊界開始的。對(duì)齊可以大于32位,但具體取決于硬件的需求。打包格式與平面格式:YUV格式可以分為打包格式和平面格式。在打包格式中,Y、U和V組件存儲(chǔ)在一個(gè)數(shù)組中。像素被組織到了一些巨像素組中,巨像素組的布局取決于格式。在平面格式中,Y、U和V組件作為三個(gè)單獨(dú)的平面進(jìn)行存儲(chǔ)。4:4:4格式,每像素32位 推薦一個(gè)4:4:4格式,F(xiàn)OURCC碼為AYUV。這是一個(gè)打包格式,其中每個(gè)像素都被編碼為四個(gè)連續(xù)字節(jié),其組織順序如下所示。圖2.5AYUV內(nèi)存布局 標(biāo)記了A的字節(jié)包含alpha的值。4:2:2格式,每像素16位 支持兩個(gè)4:2:2格式,F(xiàn)OURCC碼如下:YUY2UYVY 兩個(gè)都是打包格式,其中每個(gè)巨像素都是編碼為四個(gè)連續(xù)字節(jié)的兩個(gè)像素。這樣會(huì)使得色度水平下采樣乘以系數(shù)2。YUY2 在YUY2格式中,數(shù)據(jù)可被視為一個(gè)不帶正負(fù)號(hào)的char值組成的數(shù)組,其中第一個(gè)字節(jié)包含第一個(gè)Y樣例,第二個(gè)字節(jié)包含第一個(gè)U(Cb)樣例,第三個(gè)字節(jié)包含第二個(gè)Y樣例,第四個(gè)字節(jié)包含第一個(gè)V(Cr)樣例,如圖2.6所示。圖2.6YUY2內(nèi)存布局 如果該圖像被看作由兩個(gè)little-endianWORD值組成的數(shù)組,則第一個(gè)WORD在最低有效位(LSB)中包含Y0,在最高有效位(MSB)中包含U。第二個(gè)WORD在LSB中包含Y1,在MSB中包含V。 YUY2是用于MicrosoftDirectX?VideoAcceleration(DirectXVA)的首選4:2:2像素格式。預(yù)期它會(huì)成為支持4:2:2視頻的DirectXVA加速器的中期要求。UYVY 此格式與YUY2相同,只是字節(jié)順序是與之相反的—就是說,色度字節(jié)和燈光字節(jié)是翻轉(zhuǎn)的(圖7)。如果該圖像被看作由兩個(gè)little-endianWORD值組成的數(shù)組,則第一個(gè)WORD在LSB中包含U,在MSB中包含Y0,第二個(gè)WORD在LSB中包含V,在MSB中包含Y1。圖2.7UYVY內(nèi)存布局4:2:0格式,每像素16位推薦兩個(gè)4:2:0每像素16位格式,F(xiàn)OURCC碼如下:IMC1IMC3兩個(gè)FOURCC碼都是平面格式。色度頻道在水平方向和垂直方向上都要以系數(shù)2來進(jìn)行再次采樣。IMC1 所有Y樣例都會(huì)作為不帶正負(fù)號(hào)的char值組成的數(shù)組首先顯示在內(nèi)存中。后面跟著所有V(Cr)樣例,然后是所有U(Cb)樣例。V和U平面與Y平面具有相同的跨距,從而生成 如圖2.8所示的內(nèi)存的未使用區(qū)域。圖2.8IMC1內(nèi)存布局IMC3 此格式與IMC1相同,只是U和V平面進(jìn)行了交換:圖9.IMC3內(nèi)存布局4:2:0格式,每像素12位 推薦四個(gè)4:2:0每像素12位格式,F(xiàn)OURCC碼如下:IMC2IMC4YV12NV12 在所有這些格式中,色度頻道在水平方向和垂直方向上都要以系數(shù)2來進(jìn)行再次采樣。IMC2 此格式與IMC1相同,只是V(Cr)和U(Cb)行在半跨距邊界處進(jìn)行了交錯(cuò)。換句話說,就是色度區(qū)域中的每個(gè)完整跨距行都以一行V樣例開始,然后是一行在下一個(gè)半跨距邊界處開始的U樣例。此布局與IMC1相比,能夠更加高效地利用地址空間。它的色度地址空間縮小了一半,因此整體地址空間縮小了25%。在各個(gè)4:2:0格式中,IMC2是第二首選格式,排在NV12之后。圖2.10IMC2內(nèi)存布局IMC4 此格式與IMC2相同,只是U(Cb)和V(Cr)行進(jìn)行了交換:圖2.11IMC4內(nèi)存布局YV12 所有Y樣例都會(huì)作為不帶正負(fù)號(hào)的char值組成的數(shù)組首先顯示在內(nèi)存中。此數(shù)組后面緊接著所有V(Cr)樣例。V平面的跨距為Y平面跨距的一半,V平面包含的行為Y平面包含行的一半。V平面后面緊接著所有U(Cb)樣例,它的跨距和行數(shù)與V平面相同(圖12)。圖2.12YV12內(nèi)存布局NV12 所有Y樣例都會(huì)作為由不帶正負(fù)號(hào)的char值組成的數(shù)組首先顯示在內(nèi)存中,并且行數(shù)為偶數(shù)。Y平面后面緊接著一個(gè)由不帶正負(fù)號(hào)的char值組成的數(shù)組,其中包含了打包的U(Cb)和V(Cr)樣例,如圖2.13所示。當(dāng)組合的U-V數(shù)組被視為一個(gè)由little-endianWORD值組成的數(shù)組時(shí),LSB包含U值,MSB包含V值。NV12是用于DirectXVA的首選4:2:0像素格式。預(yù)期它會(huì)成為支持4:2:0視頻的DirectXVA加速器的中期要求。圖2.13NV12內(nèi)存布局3YCbCr視頻存儲(chǔ)格式Y(jié)CbCr其中Y是指亮度分量,Cb指藍(lán)色色度分量,而Cr指紅色色度分量。人的肉眼對(duì)視頻的Y分量更敏感,因此在通過對(duì)色度分量進(jìn)行子采樣來減少色度分量后,肉眼將察覺不到的圖像質(zhì)量的變化。主要的子采樣格式有YCbCr4:2:0、YCbCr4:2:2和YCbCr4:4:4。4:2:0表示每4個(gè)像素有4個(gè)亮度分量,2個(gè)色度分量(YYYYCbCr),僅采樣奇數(shù)掃描線,是便攜式視頻設(shè)備(MPEG-4)以及電視會(huì)議(H.263)最常用格式。4:2:2表示每4個(gè)像素有4個(gè)亮度分量,4個(gè)色度分量(YYYYCbCrCbCr),是DVD、數(shù)字電視、HDTV以及其它消費(fèi)類視頻設(shè)備的最常用格式。4:4:4表示全像素點(diǎn)陣(YYYYCbCrCbCrCbCrCbCr),用于高質(zhì)量視頻應(yīng)用、演播室以及專業(yè)視頻產(chǎn)品。4YUV與YCbCr的對(duì)比4.1兩者與rgb之間換算公式的差異yuv<-->rgbY'=0.299*R'+0.587*G'+0.114*B'U'=-0.147*R'-0.289*G'+0.436*B'=0.492*(B'-Y')V'=0.615*R'-0.515*G'-0.100*B'=0.877*(R'-Y')R'=Y'+1.140*V'G'=Y'-0.394*U'-0.581*V'B'=Y'+2.032*U'yCbCr<-->rgbY’=0.257*R'+0.504*G'+0.098*B'+16Cb'=-0.148*R'-0.291*G'+0.439*B'+128Cr'=0.439*R'-0.368*G'-0.071*B'+128R'=1.164*(Y’-16)+1.596*(Cr'-128)4.2兩者來源上的差異 YUV色彩模型來源于RGB模型。 該模型的特點(diǎn)是將亮度和色度分離開,從而適合于圖像處理領(lǐng)域。顏色模型用于模擬彩色電視廣播。 YCbCr模型來源于YUV模型。 YCbCr是一個(gè)的YUV色彩空間縮放和偏移的版本應(yīng)用:數(shù)字視頻,ITU-RBT.601T推薦標(biāo)準(zhǔn)。5顏色空間和色度采樣率轉(zhuǎn)換 本節(jié)提供了在YUV和RGB之間進(jìn)行轉(zhuǎn)換的指南,以及在某些不同YUV格式之間進(jìn)行轉(zhuǎn)換的指南。在本節(jié)中,我們會(huì)以兩個(gè)RGB編碼方案為例:8位計(jì)算機(jī)RGB和studio視頻RGB,前者也稱為sRGB或“全范圍”RGB,后者也稱為“帶有頭空間和腳空間的RGB”。這兩個(gè)方案的定義如下:計(jì)算機(jī)RGB對(duì)于每個(gè)紅色、綠色和藍(lán)色樣例都使用8位。黑色表示為R=G=B=0,白色則表示為R=G=B=255。Studio視頻RGB對(duì)于每個(gè)紅色、綠色和藍(lán)色樣例使用一定的位數(shù),即N位,其中N為8或更大的數(shù)字。Studio視頻RGB使用的縮放系數(shù)與計(jì)算機(jī)RGB使用的縮放系數(shù)不同,它具有一個(gè)偏移量。黑色表示為R=G=B=16*2N-8,白色則表示為R=G=B=235*2N-8。但是,實(shí)際的值可能不在此范圍之內(nèi)。 Studio視頻RGB是Windows中視頻的首選RGB定義,而計(jì)算機(jī)RGB則是非視頻應(yīng)用的首選RGB定義。在這兩種形式的RGB中,色度座標(biāo)都與在RGB原色定義的ITU-RBT.709中指定的一樣。R、G和B的(x,y)座標(biāo)分別為(0.64,0.33)、(0.30,0.60)和(0.15,0.06)?;鶞?zhǔn)白色為D65,座標(biāo)為(0.3127,0.3290)。標(biāo)稱灰度系數(shù)為1/0.45(大約為2.2),精確的灰度系數(shù)在ITU-RBT.709中進(jìn)行了詳細(xì)定義。5.1RGB和YUV之間的轉(zhuǎn)換 我們首先講述RGB和4:4:4YUV之間的轉(zhuǎn)換。要將4:2:0或4:2:2YUV轉(zhuǎn)換為RGB,我們建議首先將YUV數(shù)據(jù)轉(zhuǎn)換為4:4:4YUV,然后再將4:4:4YUV轉(zhuǎn)換為RGB。AYUV格式是一個(gè)4:4:4格式,它對(duì)于每個(gè)Y、U和V樣例都使用8位。對(duì)于某些應(yīng)用,還可以使用每樣例多于8位的位數(shù)定義YUV。 對(duì)于數(shù)字視頻,定義了從RGB到兩個(gè)主要YUV的轉(zhuǎn)換。這兩個(gè)轉(zhuǎn)換都基于稱為ITU-RRecommendationBT.709的規(guī)范。第一個(gè)轉(zhuǎn)換是BT.709中定義用于50-Hz的較早的YUV格式。它與在ITU-RRecommendationBT.601中指定的關(guān)系相同,ITU-RRecommendationBT.601也被稱為它的舊名稱CCIR601。這種格式應(yīng)該被視為用于標(biāo)準(zhǔn)定義TV分辨率(720x576)和更低分辨率視頻的首選YUV格式。它的特征由下面兩個(gè)常量Kr和Kb的值來定義:Kr=0.299Kb=0.114 第二個(gè)轉(zhuǎn)換為BT.709中定義用于60-Hz的較新YUV格式,應(yīng)該被視為用于高于SDTV的視頻分辨率的首選格式。它的特征由下面兩個(gè)不同的常量值來定義:Kr=0.2126Kb=0.0722 從RGB到Y(jié)UV轉(zhuǎn)換的定義以下列內(nèi)容開始:L=Kr*R+Kb*B+(1–Kr–Kb)*G 然后,按照下列方式獲得YUV值:Y=floor(2^(M-8)*(219*(L–Z)/S+16)+0.5)U=clip3(0,2^M-1,floor(2^(M-8)*(112*(B-L)/((1-Kb)*S)+128)+0.5))V=clip3(0,2^M-1,floor(2^(M-8)*(112*(R-L)/((1-Kr)*S)+128)+0.5)) 其中M為每個(gè)YUV樣例的位數(shù)(M>=8)。Z為黑電平變量。對(duì)于計(jì)算機(jī)RGB,Z等于0。對(duì)于studio視頻RGB,Z等于16*2N-8,其中N為每個(gè)RGB樣例的位數(shù)(N>=8)。S為縮放變量。對(duì)于計(jì)算機(jī)RGB,S等于255。對(duì)于studio視頻RGB,S等于219*2N-8。 函數(shù)floor(x)返回大于或等于x的最大整數(shù)。函數(shù)clip3(x,y,z)的定義如下所示: clip3(x,y,z)=((z<x)?x:((z>y)?y:z)) Y樣例表示亮度,U和V樣例分別表示偏向藍(lán)色和紅色的顏色偏差。Y的標(biāo)稱范圍為16*2M-8到235*2M-8。黑色表示為16*2M-8,白色表示為235*2M-8。U和V的標(biāo)稱范圍為16*2M-8到240*2M-8,值128*2M-8表示中性色度。但是,實(shí)際的值可能不在這些范圍之內(nèi)。 對(duì)于studio視頻RGB形式的輸入數(shù)據(jù),要使得U和V值保持在0到2M-1范圍之內(nèi),必需進(jìn)行剪輯操作。如果輸入為計(jì)算機(jī)RGB,則不需要剪輯操作,這是因?yàn)檗D(zhuǎn)換公式不會(huì)生成超出此范圍的值。 這些都是精確的公式,沒有近似值。本文后面的所有內(nèi)容均派生自這些公式。示例:將RGB888轉(zhuǎn)換為YUV4:4:4示例:將8位YUV轉(zhuǎn)換為RGB888將4:2:0YUV轉(zhuǎn)換為4:2:2YUV將4:2:2YUV轉(zhuǎn)換為4:4:4YUV將4:2:0YUV轉(zhuǎn)換為4:4:4YUV示例:將RGB888轉(zhuǎn)換為YUV4:4:4 在輸入為計(jì)算機(jī)RGB,輸出為8位BT.601YUV的情況下,我們相信前面一節(jié)中給出的公式可以按照下列公式進(jìn)行合理近似計(jì)算:Y=((66*R+129*G+25*B+128)>>8)+16U=((-38*R-74*G+112*B+128)>>8)+128V=((112*R-94*G-18*B+128)>>8)+128 這些公式使用精確度不大于8位(不帶正負(fù)號(hào))的系數(shù)計(jì)算出8位結(jié)果。中間結(jié)果需要最多16位的精確度。示例:將8位YUV轉(zhuǎn)換為RGB888 從原始的RGB到Y(jié)UV公式,您可以為YUV的8位BT.601定義派生出下列關(guān)系:Y=round(0.256788*R+0.504129*G+0.097906*B)+16U=round(-0.148223*R-0.290993*G+0.439216*B)+128V=round(0.439216*R-0.367788*G-0.071427*B)+128 因此,假設(shè):C=Y-16D=U-128E=V-128 將YUV轉(zhuǎn)換為計(jì)算機(jī)RGB的公式可以按照下列方式進(jìn)行派生:R=clip(round(1.164383*C+1.596027*E))G=clip(round(1.164383*C-(0.391762*D)-(0.812968*E)))B=cl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)議租用酒店合同范例
- 購銷手機(jī)合同范例
- 鉛礦買賣合同范例
- 員工向單位借款合同范例
- 北京加工合同范例
- 校園購買合同范例
- 防水客戶合同范例
- 向公司要合同范例
- 個(gè)人出讓房屋合同范例
- 卡協(xié)議合同范例
- 義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)解讀
- 廣東省佛山市2023-2024學(xué)年高一上學(xué)期期末考試語文試題
- 2024年中考作文十二大高頻熱點(diǎn)主題8-凡人微光 素材
- 系列包裝設(shè)計(jì)智慧樹知到期末考試答案2024年
- 醫(yī)院與醫(yī)院合作方案
- 不動(dòng)產(chǎn)登記知識(shí)考試題庫
- MOOC 會(huì)計(jì)學(xué)原理-江西財(cái)經(jīng)大學(xué) 中國大學(xué)慕課答案
- GB/T 43803-2024科研機(jī)構(gòu)評(píng)估指南
- 2023人工智能基礎(chǔ)知識(shí)考試題庫(含答案)
- 建筑企業(yè)安全生產(chǎn)規(guī)章制度和操作規(guī)程培訓(xùn)安全培訓(xùn)
- 2023北京西城五年級(jí)(上)期末英語試卷含答案
評(píng)論
0/150
提交評(píng)論