視頻壓縮方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及視頻處理領(lǐng)域,具體涉及一種視頻壓縮方法和設(shè)備。
【背景技術(shù)】
[0002]目前的視頻壓縮技術(shù)已經(jīng)發(fā)展為利用服務(wù)器集群的視頻壓縮方式,其中,每個服務(wù)器可能利用多個中央處理單元(CPU)采用多線程的方式進(jìn)行視頻壓縮。其中,每個服務(wù)器以一個視頻文件為單位來進(jìn)行視頻壓縮。與該服務(wù)器相對應(yīng)的多個CHJ雖然利用多線程的方式來進(jìn)行數(shù)據(jù)處理,但是對于一個視頻文件而言,數(shù)據(jù)處理是由多個CPU串行進(jìn)行的。因此,壓縮效率受限于服務(wù)器的多個CPU的多線程處理速度。
[0003]現(xiàn)有的視頻壓縮設(shè)備壓縮速度慢、效率低、開發(fā)難度大,并且需要芯片廠商的大力支持才能完成。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種至少部分地解決上述問題的視頻壓縮方法和設(shè)備。
[0005]根據(jù)本發(fā)明一個方面,提供了一種視頻壓縮方法,包括以下步驟:
[0006]對視頻文件進(jìn)行切片處理,以獲得視頻切片;
[0007]將所述視頻切片分發(fā)到多個處理器,以由所述多個處理器對分到的視頻切片進(jìn)行壓縮;以及
[0008]重組經(jīng)壓縮的視頻切片。
[0009]根據(jù)本發(fā)明另一方面,還提供了一種視頻壓縮設(shè)備,包括切分裝置、分發(fā)裝置和重組裝置。其中,所述切分裝置用于對視頻文件進(jìn)行切片處理,以獲得視頻切片。所述分發(fā)裝置用于將所述視頻切片分發(fā)到多個處理器,以由所述多個處理器對分到的視頻切片進(jìn)行壓縮。所述重組裝置用于重組經(jīng)壓縮的視頻切片。
[0010]上述視頻壓縮方法和設(shè)備充分利用了多個處理器分布式計算的優(yōu)勢,有效利用了每個處理器的計算能力,壓縮速度快,效率高。由此,真正實(shí)現(xiàn)了視頻壓縮云計算。
[0011]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0012]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0013]圖1示出了根據(jù)本發(fā)明一個實(shí)施例的視頻壓縮方法的流程圖;
[0014]圖2示出了根據(jù)本發(fā)明另一個實(shí)施例的視頻壓縮方法的流程圖;以及
[0015]圖3示出了根據(jù)本發(fā)明一個實(shí)施例的視頻壓縮設(shè)備的示意性框圖。
【具體實(shí)施方式】
[0016]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0017]根據(jù)本發(fā)明的一個方面,提供了一種視頻壓縮方法。圖1示出了根據(jù)本發(fā)明一個實(shí)施例的視頻壓縮方法100的流程圖。如圖1所示,該視頻壓縮方法100包括步驟S110、步驟S130和步驟S150。
[0018]在步驟S110中,對視頻文件進(jìn)行切片處理,以獲得視頻切片。這里,采用視頻切片技術(shù)來對視頻文件進(jìn)行切片處理。視頻切片包括視頻文件中的多幀連續(xù)圖像和該多幀連續(xù)圖像的時間信息。將數(shù)據(jù)量巨大的視頻文件切分成一個個視頻切片,以分別壓縮處理。在后續(xù)步驟中,以一個視頻切片為單位進(jìn)行視頻壓縮。
[0019]具體地,首先可以對視頻文件進(jìn)行分析,以確定其類型。例如,根據(jù)視頻標(biāo)準(zhǔn)查找視頻文件中的數(shù)據(jù),并根據(jù)所找到的數(shù)據(jù)確定視頻文件的類型。例如,在視頻文件中查找到3個ΟχΟΟΟΟΟΙΒΑ,則視頻文件為節(jié)目流(Program Stream,PS)。然后,可以根據(jù)視頻文件的類型,讀取視頻文件中的數(shù)據(jù),將所述視頻文件切分為視頻切片。
[°02°] 可選地,根據(jù)視頻文件的畫面組(Group Of Picture G0P)對視頻文件進(jìn)行切片處理。
[0021]G0P是一組連續(xù)的圖像。在視頻編碼序列中,主要有三種編碼幀:幀內(nèi)編碼圖像幀(I幀)、預(yù)測編碼圖像幀(P幀)和雙向預(yù)測編碼圖像幀(B幀)。G0P包括I幀以及在該I幀之后、在下一個相鄰I幀之前的P幀和B幀。根據(jù)本發(fā)明的一個實(shí)施例,可以將1個G0P或數(shù)個連續(xù)的G0P作為1個視頻切片。
[0022]根據(jù)G0P的定義,G0P可以作為一個獨(dú)立的圖像編解碼單元。根據(jù)G0P來對視頻文件進(jìn)行切片處理能夠保證后續(xù)操作的順利進(jìn)行,且簡單易行。
[0023]可選地,根據(jù)視頻文件的視頻場景切換對視頻文件進(jìn)行切片處理。
[0024]與文本數(shù)據(jù)不同,視頻數(shù)據(jù)不僅包括時間信息還包括空間信息??梢詫σ曨l內(nèi)容進(jìn)行景物變化檢測。如果發(fā)生了景物變化,那么可以據(jù)此認(rèn)為視頻場景發(fā)生了切換。即可根據(jù)視頻場景切換,將視頻文件切分為視頻切片。也就是說,不同的視頻切片包含不同的景物??梢酝ㄟ^對視頻文件進(jìn)行特征檢測來識別場景切換,例如顏色、光照、紋理等特征。
[0025]根據(jù)視頻文件的視頻場景切換對視頻文件進(jìn)行切片處理特別適合于場景切換頻繁的視頻文件。場景的切換意味著一個適于編解碼的新圖像序列的開始,保證了后續(xù)壓縮操作的順利進(jìn)行。
[0026]在步驟S130中,將視頻切片分發(fā)到多個處理器,以由多個處理器對分到的視頻切片進(jìn)行壓縮。在此,將步驟S110所獲得的視頻切片分發(fā)到各個處理器??梢园凑找曨l切片的順序?qū)⑵湟来畏职l(fā)給各個處理器。
[0027]處理器可以包括各種計算單元,例如CPU、圖形處理單元(GPU)等。處理器可以是多核的??蛇x地,多個處理器包括數(shù)字信號處理器(DSP),例如DM816x芯片。DSP雖然通用功能較弱,但其是特別適合于進(jìn)行數(shù)字信號處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時快速地實(shí)現(xiàn)各種數(shù)字信號處理算法。對于視頻壓縮來說,DSP的處理能力大大高于CPU,但其成本和能耗卻大大低于CPU。
[0028]處理器可以存在很多個,可選地,大于1000個。執(zhí)行視頻壓縮的分布式計算的處理器越多,則視頻壓縮設(shè)備的計算能力越強(qiáng),視頻文件的壓縮速度越快。
[0029]多個處理器執(zhí)行分布式壓縮計算。每個處理器執(zhí)行的都是對視頻切片的壓縮操作,從這個角度而言,每個處理器執(zhí)行的計算是相同的。只是各個處理器所操作的對象不同,每個處理器針對不同的視頻切片進(jìn)行壓縮操作。每個處理器只需對自己所分到的視頻切片進(jìn)行壓縮處理,而無需考慮視頻文件的其他視頻切片。針對所分到的視頻切片,多個處理器可以以并行的方式進(jìn)行壓縮處理。換言之,多個處理器可以同時對各自分到的視頻切片進(jìn)行壓縮,彼此互不干擾和影響。由此,有效地利用了各個處理器的計算能力。
[0030]可以理解,壓縮處理可以采用任何合適的壓縮算法,例如基于H.264/H.265標(biāo)準(zhǔn)的壓縮算法,本發(fā)明對此不做限定。
[0031]在步驟S150中,重組經(jīng)壓縮的視頻切片。根據(jù)視頻切片的時間信息重組經(jīng)壓縮的視頻切片??梢岳斫?,視頻切片的序號表明了視頻切片的時間信息。可選地,根據(jù)視頻切片的序號(例如G0P的序號)即可將經(jīng)壓縮的視頻切片重組在一起,形成經(jīng)壓縮的視頻文件。
[0032]上述視頻壓縮方法充分利用了多個處理器執(zhí)行分布式計算,真正實(shí)現(xiàn)了視頻壓縮云計算。因?yàn)樘幚砥髂軌驅(qū)λ值降囊曨l切片并行壓縮,所以有效利用了每個處理器的計算能力,壓縮速度快,效率高。
[0033]圖2示出了根據(jù)本發(fā)明另一個實(shí)施例的視頻壓縮方法200的流程圖。如圖2所示,該視頻壓縮方法200包括步驟S205、步驟S210、步驟S23