專利名稱:視頻流幀率適配方法和裝置及fpga芯片及視頻流處理設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻流處理技術(shù)領(lǐng)域,尤其涉及一種IP多媒體會議的視頻流 幀率適配方法及視頻流幀率適配裝置,還涉及一種FPGA( Field Programmable Gate Array,現(xiàn)場可編程邏輯門陣列)芯片和一種視頻流處理設(shè)備。
背景技術(shù):
目前,越來越多支持IP多媒體會議的視頻流處理設(shè)備,比如IP多媒體 會議中的MCU (Multipoint Control Unit,多點控制單元)和MG (Multimedia Gateway,多媒體網(wǎng)關(guān))等,采用FPGA芯片通過硬件邏輯實現(xiàn)對各視頻流 的處理,從而提高視頻流的處理性能。
請參見圖1,顯示了現(xiàn)有技術(shù)中基于FPGA的視頻流基本處理架構(gòu) AD芯片與終端攝像設(shè)備或者終端顯示設(shè)備連接,用于對輸入/輸出的視 頻流進(jìn)行A/D或者D/A轉(zhuǎn)換;FPGA芯片主要完成對輸入視頻流的預(yù)處 理和輸出視頻流的后處理,包括視頻圖像的縮放、裁剪、多畫面拼接、 去交織和字幕等等;DSP (Digital Signal Processing,數(shù)字信號處理)芯 片完成輸入/輸出視頻流的解碼/編碼處理,并以一定的通信協(xié)議發(fā)送到網(wǎng) 絡(luò)側(cè)或其他處理設(shè)備進(jìn)行傳輸或進(jìn)一步處理。
由于AD芯片收發(fā)的視頻流往往存在幀率的不同,F(xiàn)PGA芯片面臨著
從某一幀率的輸入接口接收視頻流再通過另一幀率的輸出接口轉(zhuǎn)發(fā)出去 的情況,甚至,面臨著對不同幀率的輸入視頻流進(jìn)行多畫面拼接的情況, 因此,F(xiàn)PGA芯片在視頻流的處理過程中需要對不同的幀率進(jìn)行適配操作。
現(xiàn)有技術(shù)中FPGA芯片通過抽幀和插幀(Frame Extract/Insert)模塊 完成對不同幀率的適配。由于對FPGA芯片而言,其分屬不同IP多媒體 會議的輸入視頻流和輸出視頻流所要求的幀率可能各不相同;以及,屬 于同一個IP多媒體會議的輸入視頻流可能有多個,也就是對于每一個輸
出視頻流存在會場多畫面拼接的需求;因此FPGA芯片為了實現(xiàn)對不同 輸入輸出幀率的適配,通常采用全部IP多媒體會議的各輸入數(shù)據(jù)流和輸 出數(shù)據(jù)流的最低幀率作為系統(tǒng)幀率。請參考圖2,顯示了 FPGA芯片進(jìn)行 幀率適配的邏輯實現(xiàn)框圖通過A/D轉(zhuǎn)換接口接收輸入的A/D轉(zhuǎn)換信號, 進(jìn)行圖像處理后進(jìn)行抽幀處理,使各輸入數(shù)據(jù)流的幀率統(tǒng)一為系統(tǒng)幀率; 對于輸出的視頻流進(jìn)行插幀處理,使各輸出數(shù)據(jù)流由統(tǒng)一的系統(tǒng)幀率轉(zhuǎn) 換為相應(yīng)的輸出幀率。其中,出于視頻流緩存的需要,以及多畫面情況 下畫面拼接的需要,還設(shè)置了 Buffer進(jìn)行數(shù)據(jù)流的緩存;該Buffer接口 能力設(shè)計由系統(tǒng)幀率乘以最大圖像大小和輸入輸出接口數(shù)確定。
可以看出,在現(xiàn)有的FPGA芯片幀率適配實現(xiàn)方案中存在以下缺陷
1、 需要設(shè)置專門的抽幀和插幀模塊,增加了芯片邏輯設(shè)計難度,也 增加了芯片處理的資源開銷;
2、 為了實現(xiàn)幀率適配需要精確的抽幀和插幀計算,特別是在輸入輸 出幀率和系統(tǒng)幀率非整數(shù)倍關(guān)系的情況下,相應(yīng)的計算更為繁瑣;
3、 系統(tǒng)幀率采用了所有接口的最低幀率,因此大部分?jǐn)?shù)據(jù)流的實際 輸入輸出幀率都會高于系統(tǒng)幀率,從而造成大部分?jǐn)?shù)據(jù)流的圖像質(zhì)量產(chǎn) 生影響。
發(fā)明內(nèi)容
本發(fā)明的實施例旨在克服上述現(xiàn)有技術(shù)中的缺陷,提供一種有效的視頻 流幀率適配方案,以簡化設(shè)計和降低系統(tǒng)處理開銷。
為實現(xiàn)上述目的,本發(fā)明的實施例提供了一種視頻流幀率適配方法,為 視頻會場分配各自的緩存空間并進(jìn)行片段劃分,其中每一片段用于緩存一視 頻幀;以及,對每一視頻會場分別執(zhí)行以下步驟
步驟Sl:按照一定脈沖速率周期性針對所述視頻會場生成脈沖信號;
步驟S2:當(dāng)接收到生成的一脈沖信號時,按照所述視頻會場輸入視 頻流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出 視頻流幀率對所述緩存空間第二片段執(zhí)行數(shù)據(jù)讀出操作;
步驟S3:當(dāng)接收到生成的下一脈沖信號時,按照輸入視頻流幀率對
所述第一片段的下一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出視頻流幀 率對所述第二片段的下一片段執(zhí)行數(shù)據(jù)讀出操作。
本發(fā)明的實施例還提供了 一種視頻流幀率適配裝置,包括輸入/輸出接口 單元和緩存單元,還包括
與該緩存單元連接的緩存空間分配單元,用于為視頻會場分配各自 的緩存空間;
與該緩存單元連接的片段劃分單元,用于對所述各緩存空間進(jìn)行片
段劃分,其中每一片段用于緩存一視頻幀;
與輸入/輸出接口單元連接的脈沖生成單元,用于對每一視頻會場, 按照一定脈沖速率周期性針對所述視頻會場生成片段脈沖并發(fā)送給所述
輸入/輸出接口單元;
與該脈沖生成單元、該輸入/輸出接口單元和所述緩存單元連接的寫 調(diào)度單元,用于在接收到生成的一脈沖信號時,按照所述視頻會場輸入 視頻流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,在接收 到生成的下一脈沖信號時,按照輸入視頻流幀率對所述第一片段的下一 片段執(zhí)行數(shù)據(jù)寫入操作;
與該脈沖生成單元、該輸入/輸出接口單元和所述緩存單元連接的讀 調(diào)度單元,用于在接收到生成的一脈沖信號時,按照輸出視頻流幀率對 所述緩存空伺第二片段執(zhí)行數(shù)據(jù)讀出操作,以及,在接收到生成的下一 脈沖信號時,按照輸出視頻流幀率對所述第二片段的下一片段執(zhí)行數(shù)據(jù) 讀出操作。
本發(fā)明的實施例還提供了一種FPGA芯片,設(shè)有如上所述的視頻流幀率 適配裝置。
本發(fā)明的實施例還提供了一種視頻流處理設(shè)備,設(shè)有如上所述的視 頻流幀率適配裝置或者如上所述的FPGA芯片。
由上述技術(shù)方案可知,本發(fā)明的實施例通過在兩次脈沖信號之間對一片 段執(zhí)行數(shù)據(jù)寫入和對一片段執(zhí)行數(shù)據(jù)讀出,實現(xiàn)輸入/輸出幀率的適配,具有 簡化幀率適配的設(shè)計和降低幀率適配時系統(tǒng)處理開銷的有益效果。
通過以下參照附圖對優(yōu)選實施例的說明,本發(fā)明的上述以及其它目的、
特征和優(yōu)點將更加明顯。
圖1為現(xiàn)有技術(shù)中基于FPGA的視頻流基本處理架構(gòu)示意圖; 圖2為現(xiàn)有技術(shù)中FPGA芯片進(jìn)行幀率適配的邏輯實現(xiàn)框圖; 圖3為本發(fā)明提供的視頻流幀率適配方法一實施例的流程圖; 圖4為本發(fā)明提供的視頻流幀率適配方法一具體實施例的緩存空間分配 和片段劃分示意圖5為本發(fā)明提供的視頻流幀率適配裝置的原理示意圖; 圖6為本發(fā)明提供的視頻流幀率適配裝置一實施例的框圖; 圖7為本發(fā)明提供的視頻流幀率適配裝置另一實施例的框圖。
具體實施例方式
下面將詳細(xì)描述本發(fā)明的具體實施例。應(yīng)當(dāng)注意,這里描述的實施例只 用于舉例說明,并不用于限制本發(fā)明。
本發(fā)明的主要構(gòu)思在于對IP多媒體會議的不同視頻會場采用不同的 緩存空間,通過控制每一個視頻會場在兩次脈沖之間僅對一個片段進(jìn)行 數(shù)據(jù)寫入以及僅對一個片段進(jìn)行數(shù)據(jù)讀出,從而取代現(xiàn)有的抽幀/插幀方 案解決輸入/輸出幀率適配的問題。為幫助讀者更好的理解本發(fā)明,下面 將詳細(xì)介紹本發(fā)明所提供的視頻流幀率適配方案。
首先,對本發(fā)明提供的視頻流幀率適配方法加以描述。需要指出, 本發(fā)明提供的視頻流幀率適配方法主要適用于需要對AD芯片輸入輸出 的視頻流幀率進(jìn)行適配的場合,比如可以應(yīng)用于支持IP多媒體會議的 MCU和MG設(shè)備中,等。
必須加以說明的是,IP多媒體會議具有圖像顯示的特殊性。 以雙方參與的視頻會議為例, 一般是一方發(fā)起會議請求后,對方通 過應(yīng)答從而在雙方之間建立一個視頻會話;顯然,雖然雙方同屬一個視 頻會話,但所顯示的內(nèi)容卻截然不同,彼此顯示的都是對方的會議畫面,
也就是存在兩個不同的會場;
或者,對于多方參與的視頻會議來說,所有參與方也都同屬一個視 頻會話,但每一方顯示的都是除自己之外的其他參與者情況,因此存在 多個不同的會場;
從這個意義上說,支持IP多媒體會議的MCU和MG設(shè)備是針對各 個會場進(jìn)行視頻流處理的,因此本發(fā)明所提供的視頻流幀率適配方法是 針對視頻會場進(jìn)行來解決幀率適配問題。
請結(jié)合圖3,顯示了該視頻流幀率適配方法一實施例的流程圖
首先,為視頻會場分配各自的緩存空間并進(jìn)行片段劃分,其中每一 片段用于緩存一視頻幀;
具體而言,為視頻會場分配各自的緩存空間可以通過按照視頻會場 的數(shù)量及類型分割已有緩存來實現(xiàn);
所謂按照視頻會場的數(shù)量比較好理解,就是在存在兩個視頻會場時, 將緩存分割為兩個部分,當(dāng)存在N個視頻會場時,將緩存分割位N個部 分,總之,是保證每個視頻會場都有專屬的緩存空間;
所謂視頻會場的類型因素,是指不同的視頻會場存在類型上的差別, 比如會場終端的顯示要求可能是1080P (在光柵的垂直方向由1080行逐 行掃描線合成一幀圖像),也可能是720P (在光柵的垂直方向由720行 逐行掃描線合成一幀圖像),不同的視頻會場其視頻幀所占用的緩存空 間大小可能存在差別;
由于緩存總大小是有限的,因此在緩存空間的分割上要綜合考慮視 頻會場的數(shù)量和類型因素,盡量按比例進(jìn)行分割,以實現(xiàn)緩存的充分利 用。
當(dāng)然,對己有緩存的分割可以是對已有全部緩存的分割;或者,為 了保證對新加入視頻會場的支持,也可以預(yù)留一定的緩存空間,并對剩 余的緩存空間加以分割。
對于分割后的緩存空間,需要進(jìn)行片段的劃分以滿足幀率適配的實 現(xiàn);具體的,是根據(jù)視頻會場的類型進(jìn)行片段的劃分,保證該片段是緩 存視頻幀的基本單元,每一片段只緩存一視頻幀;
其中,不同類型的視頻會場視頻幀大小不同,因此進(jìn)行片段劃分時 需要首先根據(jù)其針對的視頻會場確定片段的大小,即不同視頻會場的緩 存空間片段大小是有區(qū)別的,以保證每一片段存儲且僅能存儲一個視頻
幀;其次,由于視頻空間的大小是由設(shè)備實際情況確定的,以及不斷的 有空間被使用和釋放,因此構(gòu)成視頻空間的片段數(shù)目是不固定的。
在對每一視頻會場的緩存空間進(jìn)行了片段劃分之后,就可以對每一 視頻會場分別進(jìn)行幀率適配,執(zhí)行以下步驟
步驟Sl:按照一定脈沖速率周期性針對視頻會場生成脈沖信號;
可以看出,對于每一視頻會場依次生成一套獨(dú)立的脈沖信號,當(dāng)同 時存在N個視頻會場時,會相應(yīng)生成N套脈沖信號。
有必要指出,如果按照現(xiàn)有技術(shù)采用全局最低幀率,那么全部脈沖 信號可以采用同樣的速率生成;
但是,由于在上面已經(jīng)對不同的視頻會場劃分了相應(yīng)的緩存空間, 各個視頻會場相對獨(dú)立,因此進(jìn)行適配的幀率可以不必再選擇整個系統(tǒng) 全部輸入/輸出視頻流的最低幀率,而是采用該視頻會場輸入視頻流幀率 和輸出視頻流幀率的最低值即可;或者,稍低于該視頻會場輸入視頻流 幀率和輸出視頻流幀率的最低值;
顯然,當(dāng)不同視頻會場的輸入/輸出視頻流被分別統(tǒng)一到本會場的最 低幀率時,雖然對于自身幀率存在較大差異的視頻會場而言,其高幀率 的輸入視頻流仍然會表現(xiàn)出一定的圖像損失,但效果顯然優(yōu)于采用整個 系統(tǒng)的最低幀率;而對于自身幀率差異較小的視頻會場而言,圖像損失 很小,相對于現(xiàn)有的整個系統(tǒng)采用統(tǒng)一幀率,圖像效果將獲得極大的優(yōu) 化。
基于周期性生成的脈沖信號,本實施例采取以下措施實現(xiàn)幀率適配 步驟S2:當(dāng)接收到生成的一脈沖信號時,按照該視頻會場輸入視頻
流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出視
頻流幀率對該緩存空間第二片段執(zhí)行數(shù)據(jù)讀出操作;
由于一個片段僅能夠保存一個視頻幀,因此無論輸入視頻數(shù)據(jù)流以
怎樣的幀率寫入,其都是在同一個片段(第一片段)內(nèi)進(jìn)行寫入更新,
這種簡單的幀更新相當(dāng)于自動實現(xiàn)了抽幀處理;同樣的,無論輸出視頻 數(shù)據(jù)流以怎樣的幀率讀出,其都是讀出同一個片段(第二片段)內(nèi)的視 頻幀,這種簡單的幀復(fù)制相當(dāng)于自動實現(xiàn)了插幀處理。
進(jìn)一步的,在本步驟中,如果一視頻會場由多畫面組成,則該視頻 會場實際包括多條輸入視頻流,每一畫面對應(yīng)一條輸入視頻流;此時, 需要對該視頻會場的視頻流進(jìn)行額外的處理,以在寫入的同時完成畫面 寫拼。具體的,上述情況下所執(zhí)行的數(shù)據(jù)寫入操作包括
對視頻會場的各輸入視頻流進(jìn)行數(shù)據(jù)壓縮處理(比如縮小到原畫面 大小的1/N, N為輸入視頻流數(shù)目);
分別按照各輸入視頻流幀率寫入相應(yīng)第一片段的具有對應(yīng)偏移量的 位置;
可見,各輸入視頻流都以自身的幀率在同一片段的相應(yīng)偏移位置進(jìn) 行反復(fù)的更新,自動實現(xiàn)各輸入視頻流的抽幀處理;而且,從整體上構(gòu) 成了完整的幀畫面,即在完成畫面寫拼的同時自動實現(xiàn)各個輸入視頻流 的幀率適配。
步驟S3:當(dāng)接收到生成的下一脈沖信號時,按照輸入視頻流幀率對 所述第一片段的下一片段(成為新的第一片段)執(zhí)行數(shù)據(jù)寫入操作,以 及,按照輸出視頻流幀率對所述第二片段的下一片段(成為新的第二片 段)執(zhí)行數(shù)據(jù)讀出操作;
通過本步驟可以看出,視頻會場是在兩次脈沖之間對且僅對一個片 段進(jìn)行數(shù)據(jù)寫入,以及對且僅對一個片段進(jìn)行數(shù)據(jù)讀出;當(dāng)下一次脈沖 到來時,將執(zhí)行片段切換操作,對下一個片段(新的第一片段)進(jìn)行數(shù) 據(jù)寫入,以及對下一個片段(新的第二片段)進(jìn)行數(shù)據(jù)讀出;而原第一 片段所保存的,是下一脈沖信號到來前,最后一個寫入的視頻幀,與此 同時,原第二片段的視頻幀也被反復(fù)地以輸出視頻流幀率被讀出。
下面以示例性數(shù)據(jù)加以描述,以使技術(shù)人員更容易理解本發(fā)明所提 供的技術(shù)方案
假設(shè)一視頻會場的輸入視頻流幀率是36幀/秒,輸出視頻流幀率是 24幀/秒,則可以確定該視頻會場的脈沖速率為24次/秒,或者稍低,比
如22次/秒,以22次/秒為例;
則從o秒開始,產(chǎn)生第一次脈沖信號,此時緩存空間初始的第一/第 二片段分別記為Al、 Bl;到1/22秒時,產(chǎn)生第二次脈沖信號,下一片 段分別記為A2、 B2,到2/22秒時,產(chǎn)生第三次脈沖信號,再下一片段 分別記為A3、 B3……依此類推;
同時,從第0秒開始,輸入視頻流開始以36幀/秒的速度進(jìn)行該視頻 會場緩存空間的寫入,即第O秒時,寫入第一幀,第l/36秒時,寫入第 二幀,第2/36秒時,寫入第三幀……依此類推;
以及,從第0秒開始,輸出視頻流開始以24幀/秒的速度進(jìn)行該視頻 會場緩存空間的讀出,即第0秒時,讀出第一幀,第l/24秒時,讀出第 二幀,第2/24秒時,讀出第三幀……依此類推;
可以看出,第一次脈沖信號產(chǎn)生后,輸入視頻流開始向A1進(jìn)行數(shù)據(jù) 寫入;由于輸入視頻流的幀率較高,第1/36秒并未收到下一次脈沖信號, 因此第二幀也寫入A1,替換了此前寫入的第一幀;
到1/22秒,產(chǎn)生第二次脈沖信號,因此輸入視頻流在1/22秒之后寫 入的第三幀將寫入A2;由于第三次脈沖信號將在2/22秒產(chǎn)生,因此輸入 視頻流在3/36秒寫入的第四幀同樣寫入A2;
因此,就實際效果看,寫入緩存的是輸入視頻流的第二幀、第四 幀……這樣,不必進(jìn)行幀率適配的計算,自動完成了抽幀處理;
同時,第一次脈沖信號產(chǎn)生后,輸出視頻流開始從Bl進(jìn)行數(shù)據(jù)讀出; 由于輸出視頻流的幀率稍高,第1/24秒并未收到下一次脈沖信號,因此 第二幀也從B1讀出;
到l/22秒,產(chǎn)生第二次脈沖信號,因此輸出視頻流在1/22秒之后讀 出的第三幀將來自B2;
由于第四幀的讀出發(fā)生在3/24秒,而第三次脈沖信號在此前的2/22 秒產(chǎn)生,因此輸出視頻流的第四幀從B3讀出;
因此,就實際效果看,讀出緩存的視頻幀分別是Bl 、 Bl、 B2、 B3…… 所存儲的視頻幀,同樣不必進(jìn)行幀率適配的計算,自動完成了插幀處理。
通過上述步驟可以看出,本發(fā)明所提供的視頻流幀率適配方法通過緩
存分割和片段切換,能夠有效替代現(xiàn)有技術(shù)采用的抽幀插幀處理,克服 算法復(fù)雜且處理幵銷大的缺陷;同時,在各個會場采用獨(dú)立脈沖速率的 情況下,還能夠提高最終的圖像質(zhì)量。
進(jìn)一步的,如上面實施例中所提及的,是對一片段(第一片段)進(jìn) 行寫入操作,以及對一片段(第二片段)進(jìn)行讀出操作;
第一片段和第二片段可以為所在緩存空間中的同一片段,也就是輸 入輸出接口對同一個片段實現(xiàn)寫入和讀取;但對同一片段進(jìn)行寫入和讀 取可能導(dǎo)致輸出效果的不穩(wěn)定,比如,存在一個視頻幀還沒有寫入完成 就被讀出的情況。特別的,對于具有多個參與者的視頻會場而言,上述 不穩(wěn)定情況表現(xiàn)的尤為突出。
因此,較佳的實現(xiàn)方案是區(qū)分設(shè)置第一/第二片段。具體的,可以設(shè) 置緩存空間的第二片段滯后第一片段,之間相隔預(yù)設(shè)的片段,比如,設(shè) 置第二片段比第一片段滯后兩個片段,從而避免緩存的數(shù)據(jù)讀取錯誤。
由于對一視頻會場而言,由于其后續(xù)的第一/第二片段是基于在先的 第一/第二片段按照脈沖信號同步切換的,因此其后續(xù)的第一/第二片段將 —直保持該間隔。
這種情況下,顯然可以保證所讀取的數(shù)據(jù)都是完整的視頻幀,從而 避免了數(shù)據(jù)錯誤的問題。當(dāng)然,對于數(shù)據(jù)讀取來說,其最初讀取的若干 個片段由于并未真正寫入視頻幀,因此顯示內(nèi)容為空,在經(jīng)過相應(yīng)數(shù)目 的信號脈沖后,從有視頻幀寫入的片段開始顯示視頻內(nèi)容。
再進(jìn)一步的,本發(fā)明還提供了一個根據(jù)信號脈沖實現(xiàn)緩存空間片段 切換的具體實施例,包括
在進(jìn)行緩存空間片段劃分時,為劃分好的緩存空間片段分配連續(xù)的 片段ID;當(dāng)然,所分配的連續(xù)片段ID并不一定對應(yīng)著連續(xù)的片段空間,
而是標(biāo)識劃分后的片段,以供后續(xù)讀寫;
以及,指定每一緩存空間的初始第一片段ID和初始第二片段ID,也 就是指定每一緩存空間起始的寫入和讀出位置。當(dāng)然,也可以采用系統(tǒng)
缺省設(shè)置,即默認(rèn)從最小的片段ID開始寫入和讀出。
經(jīng)過上述設(shè)置后,周期性生成的脈沖信號會攜帶累計的第一片段ID
和第二片段ID進(jìn)行下發(fā);該累計操作可以通過為視頻會場設(shè)置的計數(shù)器 實現(xiàn),即對于每一視頻會場而言,每生成一次時隙脈沖,計數(shù)器就基于 該視頻會場的初始第一片段ID和第二片段ID累計一次;
處理設(shè)備的輸入/輸出接口接收到該脈沖信號后,即可根據(jù)脈沖信號
攜帶的第一片段ID和第二片段ID尋址相應(yīng)的片段以執(zhí)行數(shù)據(jù)寫入和讀
出操作,從而根據(jù)信號脈沖實現(xiàn)緩存空間片段切換。
其中,脈沖信號的下發(fā)可以有如下兩種方式
一種是生成的脈沖信號被發(fā)送到相應(yīng)視頻會場對應(yīng)的輸入/輸出接
口,由該輸入/輸出接口進(jìn)行后續(xù)處理;
另一種可選擇的方案是,將生成的脈沖信號下發(fā)到全部的輸入/輸出 接口,通過該脈沖信號所攜帶的相應(yīng)視頻會場標(biāo)識,相應(yīng)的輸入/輸出接 口識別應(yīng)予處理的脈沖信號并進(jìn)入后續(xù)處理。
有必要指出,對于具有多個參與者的視頻會議,每條輸入視頻流會
同時對應(yīng)多個會場,因此其輸入接口會接到多個會場的片段ID并分別執(zhí) 行后續(xù)的寫入操作;
舉例來說,對于有A、 B、 C、 D四方參與視頻會議,為了便于描述, 其各自的視頻會場分別記為a、 b、 c和d;
對于參與者A而言,其視頻會場a—般會同時對參與者B、 C、 D三 方情況加以顯示,即同時拼接顯示三個畫面,因此參與者B、 C、 D產(chǎn)生 的三條數(shù)據(jù)流同時作為視頻會場a的輸入數(shù)據(jù)流;當(dāng)然,參與者A也可 以僅選擇其中的一個或者兩個參與者進(jìn)行顯示,那么相應(yīng)數(shù)據(jù)流就不需 壓縮或者僅壓縮為整個畫面的1/2,在此不進(jìn)行贅述;
同樣的,參與者A、 C、 D產(chǎn)生的三條數(shù)據(jù)流同時作為視頻會場b的 輸入數(shù)據(jù)流,參與者A、 B、 D產(chǎn)生的三條數(shù)據(jù)流同時作為視頻會場c的 輸入數(shù)據(jù)流,以及參與者A、 B、 C產(chǎn)生的三條數(shù)據(jù)流同時作為視頻會場 d的輸入數(shù)據(jù)流;
可以看出,在上述討論的情況下,參與者A產(chǎn)生的數(shù)據(jù)流將同時對
應(yīng)視頻會場b、 c和d,參與者B產(chǎn)生的數(shù)據(jù)流將同時對應(yīng)視頻會場a、 c 和d,參與者C、 D產(chǎn)生的數(shù)據(jù)流表現(xiàn)出同樣的情況;
這樣,以參與者A產(chǎn)生的數(shù)據(jù)流為例,其相應(yīng)的輸入接口會接到對 應(yīng)于會場b、 c和d的片段ID,并攜帶這三個片段ID進(jìn)入后續(xù)操作,即 分別根據(jù)每個片段ID進(jìn)行視頻會場b、 c和d緩存空間對應(yīng)片段的寫入。
此外,本領(lǐng)域普通技術(shù)人員可以理解,如果緩存按照片段ID由低到 高進(jìn)行讀寫,那么后續(xù)累計的片段ID是在初始片段ID的基礎(chǔ)上累加; 如果緩存按照片段ID由高到低進(jìn)行讀寫,那么后續(xù)累計的片段ID是在 初始片段ID的基礎(chǔ)上累減;或者,根據(jù)片段使用方式而采用其他ID累 計方式0
進(jìn)一步的,由于第一/第二片段ID相同或者相差固定的距離,因此脈 沖信號可以僅攜帶累計的第一片段ID或者累計的第二片段ID,由接口 根據(jù)第一/第二片段ID之間的關(guān)系計算出相應(yīng)的第二片段ID或者第一片 段ID。
更進(jìn)一步的,由于緩存空間的容量有限,因此較佳的實施例還包括 在一緩存空間第二片段中的視頻幀執(zhí)行讀出操作后,為該片段分配新的 片段ID,該新的片段ID與其緩存空間的己分配片段ID連續(xù)編號。這樣, 后續(xù)的視頻幀可以重新寫入該片段,實現(xiàn)緩存空間的循環(huán)利用。
作為一個具體實施例,以IP多媒體會議的視頻流處理來示例性說明 本發(fā)明提供的視頻流幀率適配方法
首先,按照視頻會議會場的類型和數(shù)量分割緩存空間,如圖4所示, 按照會場l、 2……N分配緩存空間; 一個會場可以是單畫面(只有一條 輸入視頻流),也可以是多畫面(有多條輸入視頻流);
然后,將各視頻會場的緩存空間劃分為多個片段空間,每一個片段 緩存一個視頻幀;為了防止數(shù)據(jù)錯誤,第一片段(寫指針?biāo)谄?和 第二片段(讀指針?biāo)谄?不在同一個片段上,而是相隔一定的距離, 在本實施例中該距離為2個片段;
基于各個會場的脈沖速率,周期性生成相應(yīng)的脈沖信號,攜帶累加 的第二片段ID下發(fā),指示片段切換;
對于任何一個視頻會場來說,其AD轉(zhuǎn)換接口 (可以為一個或多個)
接收該脈沖信號,用第二片段ID減去片段距離獲得第一片段ID,將本
接口的視頻流寫入該第一片段ID對應(yīng)的片段內(nèi);
同樣的,對于任何一個視頻會場來說,其AD轉(zhuǎn)換接口 (可以為一 個或多個)接收該脈沖信號,從該第二片段ID對應(yīng)的片段內(nèi)讀取視頻幀 組成輸出視頻流;
當(dāng)下一次片段脈沖到來時,對下一個第一/第二片段執(zhí)行寫入和讀出 操作。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分
步驟可以通過程序指令相關(guān)的硬件來完成,所述的程序可以存儲于一計 算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,為視頻會場分配各自的緩存
空間并進(jìn)行片段劃分,其中每一片段用于緩存一視頻幀;以及,對每一
視頻會場分別執(zhí)行以下步驟
步驟Sl:按照一定脈沖速率周期性針對所述視頻會場生成脈沖信號; 步驟S2:當(dāng)接收到生成的一脈沖信號時,按照所述視頻會場輸入視
頻流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出
視頻流幀率對所述緩存空間第二片段執(zhí)行數(shù)據(jù)讀出操作;
步驟S3:當(dāng)接收到生成的下一脈沖信號時,按照輸入視頻流幀率對
所述第一片段的下一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出視頻流幀
率對所述第二片段的下一片段執(zhí)行數(shù)據(jù)讀出操作;
所述的存儲介質(zhì)包括ROM/RAM ( Read Only Memory/ Random-Access Memory,只讀存儲器/隨機(jī)訪問內(nèi)存)、磁碟或者光盤等。
下面對本發(fā)明提供的視頻流幀率適配裝置加以描述。 本發(fā)明提供的視頻流幀率適配裝置取消了專門的抽幀和插幀模塊,而采用脈沖信號生成的方式控制各接口的寫入和讀出幀率適配,如圖5 所示。
請結(jié)合圖6,顯示了本發(fā)明提供的視頻流幀率適配裝置600 —實施例
的框圖,包括
輸入/輸出接口單元610,用于接收AD轉(zhuǎn)換芯片輸出的視頻流寫入 緩存單元620,以及,從緩存單元620讀取視頻流發(fā)送給AD轉(zhuǎn)換芯片; 該輸入/輸出接口單元610可以包括多個輸入/輸出接口;
緩存單元620;
與緩存單元620連接的緩存空間分配單元630,用于為視頻會場分配 各自的緩存空間;具體的,可以按照視頻會場的數(shù)量及類型進(jìn)行緩存劃 分,使每一個視頻會場都具有獨(dú)立的緩存空間;
與緩存單元620連接的片段劃分單元640,用于對各緩存空間進(jìn)行片 段劃分,其中每一片段用于緩存一視頻幀;
需要指出,緩存空間分配單元630、片段劃分單元640與緩存單元 620結(jié)合起來,提供了一種緩存內(nèi)地址分配結(jié)構(gòu),以配合本發(fā)明提供的幀 率是配方案。其中,緩存空間分配單元630、片段劃分單元640可以與緩 存單元620合設(shè)。
與輸入/輸出接口單元610連接的脈沖生成單元650,用于對每一視 頻會場,按照一定脈沖速率周期性生成該視頻會場的片段脈沖并發(fā)送給 輸入/輸出接口單元610;
與脈沖生成單元650、輸入/輸出接口單元610及緩存單元620連接 的寫調(diào)度單元660,用于在接收到生成的一脈沖信號時,按照視頻會場輸 入視頻流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,在接 收到生成的下一脈沖信號時,按照輸入視頻流幀率對第一片段的下一片 段執(zhí)行數(shù)據(jù)寫入操作;
以及
與脈沖生成單元650、輸入/輸出接口單元610及緩存單元620連接 的讀調(diào)度單元670,用于在接收到生成的一脈沖信號時,按照輸出視頻流 幀率對緩存空間第二片段執(zhí)行數(shù)據(jù)讀出操作,以及,在接收到生成的下 一脈沖信號時,按照輸出視頻流幀率對第二片段的下一片段執(zhí)行數(shù)據(jù)讀 出操作;
其中,緩存空間第一片段和第二片段為其緩存空間中的同一片段, 或者,為了保證所讀出數(shù)據(jù)的完整,該第一片段可以先于第二片段預(yù)設(shè) 的距離;
可以看出,本實施例所提供的視頻流幀率適配裝置600通過在兩次脈 沖信號之間僅對一個片段進(jìn)行數(shù)據(jù)寫入和僅對一個片段進(jìn)行數(shù)據(jù)讀出, 能夠有效替代現(xiàn)有技術(shù)采用的抽幀插幀處理,克服算法復(fù)雜且處理開銷 大的缺陷。
作為一較佳實施例,請結(jié)合圖7,為本發(fā)明提供的視頻流幀率適配裝 置700的框圖,包括
輸入/輸出接口單元710、緩存單元720、緩存空間分割單元730、片 段劃分單元740、脈沖生成單元750、寫調(diào)度單元760和讀調(diào)度單元770, 上述模塊之間的連接關(guān)系以及各模塊的功能與圖6所示實施例中的相應(yīng) 模塊相同;
進(jìn)一步的,還包括
與脈沖生成單元750連接的脈沖速率確定單元7A0,用于根裾一視 頻會場的輸入視頻流幀率和輸出視頻流幀率的最低值確定該視頻會場的 脈沖速率,其中,該脈沖速率不大于所述視頻會場的輸入視頻流幀率和 輸出視頻流幀率的最低值,以相對于全局統(tǒng)一的脈沖速率,提高處理后 的圖像質(zhì)量;
圖像壓縮單元7B0,設(shè)置在輸入/輸出接口單元710和寫調(diào)度單元760 之間,用于對多畫面構(gòu)成的視頻會場各輸入視頻流進(jìn)行數(shù)據(jù)壓縮處理, 并將處理后的視頻流發(fā)送給寫調(diào)度單元760,使寫調(diào)度單元760分別按照 各輸入視頻流幀率寫入相應(yīng)片段的具有對應(yīng)偏移量的位置,實現(xiàn)畫面寫 拼;其中,該多畫面構(gòu)成的視頻會場每一畫面對應(yīng)一條輸入視頻流;
此外,作為實現(xiàn)片段讀/寫識別的一具體方式,視頻流幀率適配裝置 700還包括
片段ID分配單元7C0,與緩存單元720和脈沖生成單元750連接, 用于為劃分好的緩存空間片段分配連續(xù)的片段ID,以及指定該緩存空間 的初始第一片段ID和初始第二片段ID并發(fā)送給脈沖生成單元750,使 脈沖生成單元750周期性生成的脈沖信號攜帶累計的第一片段ID和第二 片段ID,則寫/讀調(diào)度單元根據(jù)脈沖信號攜帶的第一片段ID和第二片段 ID尋址相應(yīng)的片段以執(zhí)行數(shù)據(jù)寫入和讀出操作;
其中,第一/第二片段ID可以相同,即對同一個片段進(jìn)行讀/寫,或 者,作為優(yōu)選的方案,第一/第二片段ID相差一定的數(shù)量;無論哪種方 式,第一/第二片段ID之間都存在確定的關(guān)系,因此可以在脈沖信號中 僅攜帶第一片段ID或者第二片段ID,由相應(yīng)的輸入/輸出接口單元610 計算出對應(yīng)的第二片段ID或者第一片段ID,并攜帶在視頻流中發(fā)送給 下一級處理模塊;
以及,
片段ID更新單元7D0,與緩存單元720連接,用于對一緩存空間第 二片段中的視頻幀執(zhí)行讀出操作后,為該片段分配新的片段ID,新的片 段ID與該緩存空間的己分配片段ID連續(xù)編號,以實現(xiàn)緩存空間的循環(huán) 利用。
本發(fā)明還提供了一種FPGA芯片,該FPGA芯片設(shè)有如上所述的視 頻流幀率適配裝置。
本發(fā)明還提供了一種視頻流處理設(shè)備,其設(shè)有如上所述的視頻流幀 率適配裝置或者如上所述的FPGA芯片。
雖然已參照幾個典型實施例描述了本發(fā)明,但應(yīng)當(dāng)理解,所用的術(shù)語是
說明和示例性、而非限制性的術(shù)語。由于本發(fā)明能夠以多種形式具體實施而
不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實施例不限于任何前述的細(xì)
節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利 要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要求所涵蓋。
權(quán)利要求
1.一種視頻流幀率適配方法,其特征在于,為視頻會場分配各自的緩存空間并進(jìn)行片段劃分,其中每一片段用于緩存一視頻幀;以及,對每一視頻會場分別執(zhí)行以下步驟步驟S1按照一定脈沖速率周期性針對所述視頻會場生成脈沖信號;步驟S2當(dāng)接收到生成的一脈沖信號時,按照所述視頻會場輸入視頻流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出視頻流幀率對所述緩存空間第二片段執(zhí)行數(shù)據(jù)讀出操作;步驟S3當(dāng)接收到生成的下一脈沖信號時,按照輸入視頻流幀率對所述第一片段的下一片段執(zhí)行數(shù)據(jù)寫入操作,以及,按照輸出視頻流幀率對所述第二片段的下一片段執(zhí)行數(shù)據(jù)讀出操作。
2. 根據(jù)權(quán)利要求1所述的視頻流幀率適配方法,其特征在于,所述 步驟S1中的脈沖速率不大于所述視頻會場的輸入視頻流幀率和輸出視頻流幀率的最低值。
3. 根據(jù)權(quán)利要求1所述的視頻流幀率適配方法,其特征在于,所述 步驟S2中的第一片段和第二片段為所述緩存空間中的同一片段,或者, 所述第一片段先于所述第二片段預(yù)設(shè)距離。
4. 根據(jù)權(quán)利要求1所述的視頻流幀率適配方法,其特征在于,對于 多畫面構(gòu)成的視頻會場,其每一畫面對應(yīng)一條輸入視頻流,所述執(zhí)行數(shù)據(jù)寫入操作包括對所述視頻會場的各輸入視頻流進(jìn)行數(shù)據(jù)壓縮處理; 分別按照各輸入視頻流幀率寫入相應(yīng)片段的具有對應(yīng)偏移量的位 置,實現(xiàn)畫面寫拼。
5. 根據(jù)權(quán)利要求l-4任一所述的視頻流幀率適配方法,其特征在于,所述進(jìn)行緩存空間片段劃分還包括為劃分好的緩存空間片段分配連續(xù)的片段ID,以及指定所述緩存空間的初始第-一片段ID和初始第二片段ID;則所述步驟Sl中周期性生成的脈沖信號攜帶累計的第一片段ID和 第二片段ID;所述步驟S2和步驟S3中根據(jù)脈沖信號攜帶的第一片段ID和第二片 段ID尋址相應(yīng)的片段以執(zhí)行數(shù)據(jù)寫入和讀出操作。
6. 根據(jù)權(quán)利要求5所述的視頻流幀率適配方法,其特征在于,在對所 述第二片段中的視頻幀執(zhí)行讀出操作后,還包括為所述片段分配新的片 段ID的步驟,所述新的片段ID與所述緩存空間的已分配片段ID連續(xù)編 號。
7. —種視頻流幀率適配裝置,包括輸入/輸出接口單元和緩存單元, 其特征在于,還包括與所述緩存單元連接的緩存空間分配單元,用于為視頻會場分配各 自的緩存空間;與所述緩存單元連接的片段劃分單元,用于對所述各緩存空間進(jìn)行 片段劃分,其中每一片段用于緩存一視頻幀;與輸入/輸出接口單元連接的脈沖生成單元,用于對每一視頻會場, 按照一定脈沖速率周期性針對所述視頻會場生成片段脈沖并發(fā)送給所述 輸入/輸出接口單元;與所述脈沖生成單元、所述輸入/輸出接口單元和所述緩存單元連接 的寫調(diào)度單元,用于在接收到生成的一脈沖信號時,按照所述視頻會場 輸入視頻流幀率對相應(yīng)緩存空間第一片段執(zhí)行數(shù)據(jù)寫入操作,以及,在 接收到生成的下一脈沖信號時,按照輸入視頻流幀率對所述第一片段的 下一片段執(zhí)行數(shù)據(jù)寫入操作;與所述脈沖生成單元、所述輸入/輸出接口單元和所述緩存單元連接 的讀調(diào)度單元,用于在接收到生成的一脈沖信號時,按照輸出視頻流幀 率對所述緩存空間第二片段執(zhí)行數(shù)據(jù)讀出操作,以及,在接收到生成的 下一脈沖信號時,按照輸出視頻流幀率對所述第二片段的下一片段執(zhí)行 數(shù)據(jù)讀出操作。
8. 根據(jù)權(quán)利要求7所述的視頻流幀率適配裝置,其特征在于,還包 括與所述脈沖生成單元連接的脈沖速率確定單元,用于根據(jù)一視頻會場 的輸入視頻流幀率和輸出視頻流幀率的最低值確定所述視頻會場的脈沖 速率,其中,所述脈沖速率不大于所述視頻會場的輸入視頻流幀率和輸 出視頻流幀率的最低值。
9. 根據(jù)權(quán)利要求7所述的視頻流幀率適配裝置,其特征在于,所述 緩存空間第一片段和第二片段為所述緩存空間中的同一片段,或者,所 述第一片段先于所述第二片段預(yù)設(shè)距離。
10. 根據(jù)權(quán)利要求7所述的視頻流幀率適配裝置,其特征在于,還包括圖像壓縮單元,設(shè)置在所述輸入/輸出接口單元和寫調(diào)度單元之間,用 于對多畫面構(gòu)成的視頻會場各輸入視頻流進(jìn)行數(shù)據(jù)壓縮處理,并將處理 后的視頻流發(fā)送給所述寫調(diào)度單元,使所述寫調(diào)度單元分別按照各輸入視頻流幀率寫入相應(yīng)片段的具有對應(yīng)偏移量的位置,實現(xiàn)畫面寫拼;其 中,所述多畫面構(gòu)成的視頻會場每一畫面對應(yīng)一條輸入視頻流。
11. 根據(jù)權(quán)利要求7-10所述的視頻流幀率適配裝置,其特征在于, 還包括片段ID分配單元,與所述緩存單元和所述脈沖生成單元連接,用 于為劃分好的緩存空間片段分配連續(xù)的片段ID,以及指定所述緩存空間 的初始第一片段ID和初始第二片段ID并發(fā)送給所述脈沖生成單元,使 所述脈沖生成單元周期性生成的脈沖信號攜帶累計的第一片段ID和第二 片段ID,所述寫/讀調(diào)度單元根據(jù)脈沖信號攜帶的第一片段ID和第二片 段ID尋址相應(yīng)的片段以執(zhí)行數(shù)據(jù)寫入和讀出操作。
12. 根據(jù)權(quán)利要求11所述的視頻流幀率適配裝置,其特征在于,還 包括片段ID更新單元,與所述緩存單元連接,用于在對所述第二片段中 的視頻幀執(zhí)行讀出操作后,為所述片段分配新的片段ID,所述新的片段 ID與所述緩存空間的已分配片段ID連續(xù)編號。
13. —種FPGA芯片,其特征在于,其設(shè)有如權(quán)利要求7-12任一所述的視頻流幀率適配裝置。
14. 一種視頻流處理設(shè)備,其特征在于,其設(shè)有如權(quán)利要求7-12任 一所述的視頻流幀率適配裝置或者如權(quán)利要求13所述的FPGA芯片。
全文摘要
本發(fā)明公開了一種視頻流幀率適配方法和裝置。該方法為視頻會場分配各自的緩存空間并進(jìn)行片段劃分,其中每一片段用于緩存一視頻幀;以及對每一視頻會場分別執(zhí)行按照一定脈沖速率周期性針對視頻會場生成脈沖信號;在兩次脈沖信號之間,按照視頻會場輸入視頻流幀率對相應(yīng)緩存空間一片段執(zhí)行數(shù)據(jù)寫入操作,以及按照輸出視頻流幀率對該緩存空間一片段執(zhí)行讀出操作。本發(fā)明還公開了一種FPGA芯片和一種視頻流處理設(shè)備。本發(fā)明簡化了幀率適配的設(shè)計并降低了幀率適配時系統(tǒng)的處理開銷。
文檔編號H04N7/15GK101374233SQ20081017165
公開日2009年2月25日 申請日期2008年10月23日 優(yōu)先權(quán)日2008年10月23日
發(fā)明者暉 林 申請人:杭州華三通信技術(shù)有限公司