新四季網

視頻編碼方法、裝置、計算機設備和存儲介質與流程

2023-08-06 13:49:53



1.本技術涉及視頻編碼領域,特別是涉及一種視頻編碼方法、裝置、計算機設備和存儲介質。


背景技術:

2.隨著消費類電子產品的爆發式增長,多屏互動需求也變得越來越迫切,使得不同終端之間需要實時進行視頻傳播。目前,在視頻傳輸過程中,由於不同場景下的網絡帶寬條件不同,終端處理能力不同,用戶的質量需求各異等,伺服器需要對當前終端發送的視頻進行多次編碼,才能確保其他終端能順利接收並解析到視頻。
3.然而,對同一視頻進行多次編碼的過程,降低了視頻的編碼與傳輸效率,也降低了不同終端準確接收到視頻的靈活性。因此,如何通過一次編碼即可產生適用於不同網絡帶寬等場景下的視頻,是本技術需要解決的問題。


技術實現要素:

4.基於此,有必要針對上述技術問題,提供一種能夠提高視頻編碼實用性的視頻編碼方法、裝置、計算機設備、計算機可讀存儲介質和電腦程式產品。
5.第一方面,本技術提供了一種視頻編碼方法。所述方法包括:
6.獲取待編碼的源碼流,並確定所述源碼流中的視頻幀的排列結構;
7.根據所述排列結構,對所述源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;
8.識別每個所述候選碼流中的參考視頻幀,並確定每個所述參考視頻幀各自關聯的目標視頻幀和常規視頻幀;
9.分別根據每個所述參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;
10.對於所述多個具有不同碼流結構的候選碼流中的每個候選碼流,根據所述候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
11.在一個實施例中,確定所述源碼流中的視頻幀的排列結構,包括:對所述源碼流進行欄位編碼,得到順序排列的多個視頻幀;所述視頻幀的幀號為n,n為正整數;從多個視頻幀中確定出特殊幀號的視頻幀;所述特殊幀號至少包括n+2;根據所述特殊幀號的視頻幀,得到所述源碼流中的視頻幀的排列結構。
12.在一個實施例中,所述根據所述特殊幀號的視頻幀,得到所述源碼流中的視頻幀的排列結構,包括:響應於對所述特殊幀號的視頻幀的關聯操作,得到帶有特殊標識的視頻幀、以及每個所述特殊標識的視頻幀之間的參考關係;響應於對所述多個視頻幀中的其他幀號的視頻幀的配置操作,得到帶有常規標識的視頻幀;綜合所述視頻幀的特殊標識和常規標識、以及每個所述參考關係,得到所述源碼流中的視頻幀的排列結構。
13.在一個實施例中,分別根據每個所述參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果,包括:確定所述候選碼流中的當前參考視頻幀,並確定所述當前參考視頻幀關聯的當前目標視頻幀;對所述當前參考視頻幀進行幀間預測,得到當前預測結果;將所述當前預測結果與所述當前目標視頻幀進行疊加,得到所述當前目標視頻幀對應的第一編碼結果;將所述第一編碼結果作為新的當前參考視頻幀,並返回至確定當前參考視頻幀關聯的當前目標視頻幀的步驟繼續執行,直至得到候選碼流中的最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果;將最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果,作為所述候選碼流的初始編碼結果。
14.在一個實施例中,碼流結構包括全碼流結構;所述根據所述候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流,包括:確定與所述全碼流結構的候選碼流中的常規視頻幀相關聯的當前參考視頻幀,若所述當前參考視頻幀為首個參考視頻幀,則將所述全碼流結構的候選碼流中的每個常規視頻幀分別與所述當前參考視頻幀進行疊加,得到每個所述常規視頻幀各自對應的第二編碼結果;若所述當前參考視頻幀為非首個參考視頻幀,則確定所述當前參考視頻幀的第一編碼結果,並將所述全碼流結構的候選碼流中的每個常規視頻幀分別與所述第一編碼結果進行疊加,得到各所述常規視頻幀各自對應的第二編碼結果;綜合每個所述第二編碼結果和所述全碼流結構的候選碼流的初步編碼結果,得到所述全碼流結構的候選碼流所對應的目標碼流。
15.在一個實施例中,碼流結構包括半碼流結構;所述根據所述候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流,包括:對所述半碼流結構的候選碼流中的每個所述常規視頻幀均進行編碼填充,得到每個所述常規視頻幀各自對應的第二編碼結果;綜合每個所述第二編碼結果和所述半碼流結構的候選碼流的初步編碼結果,得到所述半碼流結構的候選碼流所對應的目標碼流。
16.第二方面,本技術還提供了一種視頻編碼裝置。所述裝置包括:
17.候選碼流確定模塊,用於獲取待編碼的源碼流,並確定所述源碼流中的視頻幀的排列結構;根據所述排列結構,對所述源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;
18.視頻幀識別模塊,用於識別每個所述候選碼流中的參考視頻幀,並確定每個所述參考視頻幀各自關聯的目標視頻幀和常規視頻幀;
19.目標碼流確定模塊,用於分別根據每個所述參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;對於所述多個具有不同碼流結構的候選碼流中的每個候選碼流,根據所述候選碼流對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
20.第三方面,本技術還提供了一種計算機設備。所述計算機設備包括存儲器和處理器,所述存儲器存儲有電腦程式,所述處理器執行所述電腦程式時實現以下步驟:
21.獲取待編碼的源碼流,並確定所述源碼流中的視頻幀的排列結構;
22.根據所述排列結構,對所述源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;
23.識別每個所述候選碼流中的參考視頻幀,並確定每個所述參考視頻幀各自關聯的目標視頻幀和常規視頻幀;
24.分別根據每個所述參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;
25.對於所述多個具有不同碼流結構的候選碼流中的每個候選碼流,根據所述候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
26.第四方面,本技術還提供了一種計算機可讀存儲介質。所述計算機可讀存儲介質上存儲有電腦程式,所述電腦程式被處理器執行時實現以下步驟:
27.獲取待編碼的源碼流,並確定所述源碼流中的視頻幀的排列結構;
28.根據所述排列結構,對所述源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;
29.識別每個所述候選碼流中的參考視頻幀,並確定每個所述參考視頻幀各自關聯的目標視頻幀和常規視頻幀;
30.分別根據每個所述參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;
31.對於所述多個具有不同碼流結構的候選碼流中的每個候選碼流,根據所述候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
32.第五方面,本技術還提供了一種電腦程式產品。所述電腦程式產品,包括電腦程式,該電腦程式被處理器執行時實現以下步驟:
33.獲取待編碼的源碼流,並確定所述源碼流中的視頻幀的排列結構;
34.根據所述排列結構,對所述源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;
35.識別每個所述候選碼流中的參考視頻幀,並確定每個所述參考視頻幀各自關聯的目標視頻幀和常規視頻幀;
36.分別根據每個所述參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;
37.對於所述多個具有不同碼流結構的候選碼流中的每個候選碼流,根據所述候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
38.上述視頻編碼方法、裝置、計算機設備、存儲介質和電腦程式產品,通過獲取待編碼的源碼流,並確定源碼流中的視頻幀的排列結構,進而根據排列結構,對源碼流中的多個視頻幀進行提取處理,可得到多個具有不同碼流結構的候選碼流;通過識別每個候選碼流中的參考視頻幀,並確定每個參考視頻幀各自關聯的目標視頻幀和常規視頻幀,便可分別根據每個參考視頻幀,對相關聯的目標視頻幀進行編碼,從而得到每種碼流結構的候選碼流的初始編碼結果;對於多個具有不同碼流結構的候選碼流中的每個候選碼流,可根據候選碼流所對應的初始編碼結果和常規視頻幀,如此,便可得到相應碼流結構的候選碼流所對應的目標碼流。由於本技術直接根據排列結構,便可得到多個具有不同碼流結構的候選碼流,相比於傳統的需要同一視頻進行多次編碼的過程,本技術針對每種碼流結構的候選碼流,均可得到候選碼流所對應的目標碼流,確保了生成適應於不同網絡帶寬等場景下
的目標碼流的靈活性;同時,由於是直接基於參考視頻幀,來對目標視頻幀進行編碼,提高了得到候選碼流的初始編碼結果的準確性,如此,當通過初始編碼結果和常規視頻幀,得到候選碼流所對應的目標碼流時,可提升了對源碼流進行視頻編碼的效率。
附圖說明
39.圖1為一個實施例中視頻編碼方法的應用環境圖;
40.圖2為一個實施例中視頻編碼方法的流程示意圖;
41.圖3為一個實施例中確定源碼流的排列結構的流程示意圖;
42.圖4為一個實施例中排列結構的結構示意圖;
43.圖5為一個實施例中全碼流結構的第一碼流的結構示意圖;
44.圖6為一個實施例中半碼流結構的第二碼流的結構示意圖;
45.圖7為一個實施例中視頻編碼裝置的結構框圖;
46.圖8為一個實施例中計算機設備的內部結構圖。
具體實施方式
47.為了使本技術的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本技術進行進一步詳細說明。應當理解,此處描述的具體實施例僅用以解釋本技術,並不用於限定本技術。
48.本技術提供的視頻編碼方法,可以應用於如圖1所示的應用環境中,該應用環境中包括第一終端102、伺服器104和第二終端106,其中,第一終端102通過網絡與伺服器104進行通信,第二終端106通過網絡與伺服器104進行通信。第一終端102將待編碼的源碼流發送至伺服器104。伺服器104用於確定源碼流中的視頻幀的排列結構,並根據排列結構,對源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;伺服器104還用於識別每個候選碼流中的參考視頻幀,並確定每個參考視頻幀各自關聯的目標視頻幀和常規視頻幀;分別根據每個參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;對於多個具有不同碼流結構的候選碼流中的每個候選碼流,根據候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流;伺服器104將目標碼流發送至第二終端106,以使第二終端106通過解析目標碼流,得到目標視頻。其中,第一終端102和第二終端106可以但不限於是各種個人計算機、筆記本電腦、智慧型手機和平板電腦和可攜式可穿戴設備,伺服器104可用獨立的伺服器或者是多個伺服器組成的伺服器集群來實現。
49.在一個實施例中,如圖2所示,提供了一種視頻編碼方法,以該方法應用於圖1中的伺服器為例進行說明,包括以下步驟:
50.步驟202,獲取待編碼的源碼流,並確定源碼流中的視頻幀的排列結構。
51.其中,待編碼的源碼流可為第一終端發送的視頻所對應的碼流;排列結構可為一種gop(group of picture,圖像群組),用來定義兩個首位視頻幀之間的每個視頻幀的排列方式。首位視頻幀可為i幀或idr幀,兩個首位視頻幀之間的視頻幀可為p幀。i幀為完整的圖像壓縮後得到的數據幀,所佔數據的信息量比較大,它將全幀圖像信息進行jpeg壓縮編碼及傳輸,解碼時僅用i幀的數據就可重構完整圖像。idr幀為多個i幀中的首個i幀。p幀為幀
間預測編碼幀,所佔數據的信息量比較小,需要參考前面的i幀或p幀才能進行編碼,且p幀表徵的是當前幀與前一幀之間的差異,解碼時需要在前一幀構建的圖像上疊加當前幀表徵的差異,才能生成最終的圖像。
52.在一個實施例中,如圖3所示,確定源碼流中的視頻幀的排列結構,包括以下步驟:
53.步驟302,對源碼流進行欄位編碼,得到順序排列的多個視頻幀。
54.其中,視頻幀的幀號為n,n為正整數。每個視頻幀以一種slice的格式進行呈現,slice是h264視頻編碼標準中的一種區域格式,它由頭部和數據兩部分組成,頭部信息為一個frame_number欄位。
55.具體地,伺服器通過對源碼流進行欄位編碼,可得到順序排列的多個視頻幀,使得每個視頻幀的frame_number欄位的值按照排列的順序逐幀遞增。由於源碼流中可能包含大量視頻幀,通常frame_number欄位的值遞增到特定數值後,便會迴旋到0重新逐幀遞增。
56.在一個實施例中,當一個區域格式按比特展開的結構,碼流frame_num欄位使用4位元組表示時,這樣frame_num欄位的值的範圍是0到15。
57.步驟304,從多個視頻幀中確定出特殊幀號的視頻幀。
58.其中,特殊幀號至少包括n+2,n為正整數。特殊幀號的視頻幀可表徵為一種ltr(long term reference frame,長期參考幀)。
59.在一個實施例中,特殊幀號可通過用戶預先設定得到,例如,還可將幀號n+3或n+4設定為特殊幀號。
60.步驟306,根據特殊幀號的視頻幀,得到源碼流中的視頻幀的排列結構。
61.在一個實施例中,根據特殊幀號的視頻幀,得到源碼流中的視頻幀的排列結構,包括:響應於對特殊幀號的視頻幀的關聯操作,得到帶有特殊標識的視頻幀、以及每個特殊標識的視頻幀之間的參考關係;響應於對多個視頻幀中的其他幀號的視頻幀的配置操作,得到帶有常規標識的視頻幀;綜合視頻幀的特殊標識和常規標識、以及每個參考關係,得到源碼流中的視頻幀的排列結構。
62.其中,關聯了參考關係表徵通過對較前幀號的特殊標識的視頻幀進行幀間預測,可得到較後幀號的特殊標識的視頻幀。
63.具體地,伺服器將特殊幀號的視頻幀設置為帶有特殊標識的視頻幀,例如,特殊標識設置為1,也即將長期參考幀設置為1。伺服器響應於用戶對特殊幀號的視頻幀的關聯操作,得到每個特殊標識的視頻幀之間的參考關係,並將關聯了參考關係的視頻幀設置為a,未關聯了參考關係的視頻幀設置為0。伺服器對多個視頻幀中的其他幀號的視頻幀的配置操作,得到帶有常規標識的視頻幀,例如,常規標識設置為0。綜合視頻幀的特殊標識和常規標識、以及每個參考關係,得到順序排列的多個視頻幀的排列結構。
64.如圖4所示,圖4為排列結構的結構示意圖。例如,將i0幀、p2幀和p4幀等的特殊標識設置為1;將p1幀、p3幀和p5幀等的常規標識設置為0;當i0幀與p2幀進行關聯操作時,得到i0幀與p2幀之間的參考關係、當i2幀與p4幀進行關聯操作時,得到i2幀與p4幀之間的參考關係等,此時,將p2幀和p4幀等另設置為a,同時,關聯了參考關係的視頻幀之間用實線箭頭進行表示。
65.在一個實施例中,每個特殊標識的視頻幀各自對應的參考關係,可按照每個特殊標識的視頻幀的幀號,依次緩存在隊列中。
66.在一個實施例中,常規標識的視頻幀可表徵一種str(short term reference frame,短期參考幀),當常規標識設置為0時,也即將短期參考幀設置為0。其中,較前幀號的短期參考幀通常用於對較後幀號的視頻幀進行幀間預測,也即存在短期參考幀與較後幀號的視頻幀之間的關聯關係,參考圖4所示,關聯關係可用虛線箭頭進行表示。
67.本實施例中,通過預先確定特殊幀號的長期參考幀和常規標識的短期參考幀,使得可以關聯不同特殊標識的視頻幀之間的參考關係,進而準確得到了源碼流中的視頻幀的排列結構,因此,後續可通過排列結構,靈活地確定出多種碼流結構的候選碼流。
68.在一個實施例中,伺服器通過長期參考幀技術可實現時間可分級編碼,也即通過長期參考幀技術,控制源碼流的排列結構,可實現一次編碼便可拆分出多路的目標碼流。
69.步驟204,根據排列結構,對源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流。
70.其中,排列結構中包括特殊標識和常規標識;候選碼流包括全碼流結構的第一碼流和半碼流結構的第二碼流。
71.在一個實施例中,根據排列結構,對源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流,包括:將特殊標識和常規標識分別對應的視頻幀,從源碼流中提取出來,得到全碼流結構的第一碼流;將第一碼流中的常規標識對應的視頻幀進行刪除,並保存常規標識對應的視頻幀的幀號和常規標識,得到半碼流結構的第二碼流。
72.具體地,伺服器根據特殊標識和常規標識分別對應的視頻幀在源碼流中的排列順序,將順序排列的多個視頻幀從源碼流中提取出來,得到全碼流結構的第一碼流,如圖5所示,圖5為全碼流結構的第一碼流的結構示意圖。伺服器保留第一碼流中的特殊標識對應的視頻幀,刪除第一碼流中的常規標識對應的視頻幀,並保存常規標識對應的視頻幀的幀號和常規標識,得到半碼流結構的第二碼流。如圖6所示,圖6為半碼流結構的第一碼流的結構示意圖。
73.在一個實施例中,伺服器根據特殊幀號可確定出候選碼流的碼流結構,當特殊幀號為n+2,n為正整數時,確定碼流結構包括全碼流結構和半碼流結構;當特殊幀號為n+3,n為正整數時,確定碼流結構包括全碼流結構和三分之一碼流結構;當特殊幀號為n+4,n為正整數時,確定碼流結構包括全碼流結構和四分之一碼流結構等。
74.步驟206,識別每個候選碼流中的參考視頻幀,並確定每個參考視頻幀各自關聯的目標視頻幀和常規視頻幀。
75.具體地,伺服器對每種碼流結構的候選碼流中的每個視頻幀進行遍歷,並確定當前遍歷至的當前視頻幀所對應的標識類型。伺服器根據標識類型,確定當前視頻幀的類型,當標識類型為特殊標識時,確定當前視頻幀為參考視頻幀;當標識類型為常規標識時,確定當前視頻幀為常規視頻幀。
76.在一個實施例中,確定每個參考視頻幀各自關聯的目標視頻幀和常規視頻幀,包括:針對候選碼流中的每個參考視頻幀,均獲取當前參考視頻幀對應的目標參考關係;根據目標參考關係,得到當前參考視頻幀關聯的當前目標視頻幀;將當前參考視頻幀與當前目標視頻幀之間的每個視頻幀,均作為當前參考視頻幀關聯的常規視頻幀。
77.具體地,伺服器按照幀號的順序依次確定當前參考視頻幀,並從預先緩存了參考關係的隊列中,獲取當前參考視頻幀對應的目標參考關係。伺服器根據目標參考關係和當
前參考視頻幀,可確定出當前目標視頻幀,並將當前參考視頻幀與當前目標視頻幀之間的每個視頻幀,均作為當前參考視頻幀關聯的常規視頻幀。參考圖5所示,若當前參考視頻幀為i0幀時,根據實現箭頭表徵的參考關係,確定p2幀為i0幀關聯的當前目標視頻幀,p1幀為i0幀關聯的當前參考視頻幀常規視頻幀。
78.在一個實施例中,當前參考視頻幀與當前目標視頻幀之間,帶有常規標識的視頻幀,作為當前參考視頻幀關聯的常規視頻幀。
79.步驟208,分別根據每個參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果。
80.在一個實施例中,分別根據每個參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果,包括:確定候選碼流中的當前參考視頻幀,並確定當前參考視頻幀關聯的當前目標視頻幀;對當前參考視頻幀進行幀間預測,得到當前預測結果;將當前預測結果與當前目標視頻幀進行疊加,得到當前目標視頻幀對應的第一編碼結果;將第一編碼結果作為新的當前參考視頻幀,並返回至確定當前參考視頻幀關聯的當前目標視頻幀的步驟繼續執行,直至得到候選碼流中的最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果;將最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果,作為候選碼流的初始編碼結果。
81.其中,幀間預測是一種基於時間冗餘的壓縮方法,通過利用視頻幀之間的相關性,來達到圖像壓縮的目的,進而提高視頻編碼壓縮率。
82.具體地,伺服器確定按照幀號的順序依次確定當前參考視頻幀,並根據當前參考視頻幀對應的目標參考關係,確定當前參考視頻幀關聯的當前目標視頻幀。伺服器對當前參考視頻幀進行幀間預測,得到當前預測結果,並將當前預測結果與當前目標視頻幀進行疊加,其中,當前目標視頻幀通常為p幀,p幀採用運動補償的方法傳送它與前面的視頻幀之間的差值和運動矢量,運動矢量也稱預測誤差。伺服器將當前預測結果與預測誤差進行疊加後,便可重構出當前目標視頻幀對應的第一編碼結果,此時的第一編碼結果為完整的圖像。
83.進入下一輪循環過程,將第一編碼結果作為新的當前參考視頻幀,並返回至確定當前參考視頻幀關聯的當前目標視頻幀的步驟繼續執行,直至得到候選碼流中的最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果,由於每輪循環的過程均相同,本實施例在此不再贅述。伺服器將最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果,作為候選碼流的初始編碼結果,此時的初始編碼結果為迭代了所有目標視頻幀各自對應的第一編碼結果的完整圖像。
84.在一個實施例中,若當前參考視頻幀為首個視頻幀,也即圖4中的i0幀時,直接通過當前參考視頻幀便可重建出完整的圖像。
85.在一個實施例中,伺服器按照視頻編碼標準,對當前參考視頻幀進行幀間預測、變換量化、環路濾波和熵編碼等,視頻編碼標準包括但不限於更加通用、使用較廣泛的h.264等。
86.步驟210,對於多個具有不同碼流結構的候選碼流中的每個候選碼流,根據候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
87.具體地,當候選碼流為全碼流結構時,伺服器確定常規視頻幀對應的關聯關係,並根據關聯關係確定常規視頻幀對應的參考視頻幀,進而根據該參考視頻幀和常規視頻幀,得到常規視頻幀對應的第二編碼結果,此時的第二編碼結果為完整的圖像。當候選碼流為半碼流結構時,確定常規視頻幀對應的第二編碼結果,最後綜合初始編碼結果和每個常規視頻幀各自對應的第二編碼結果,得到相應碼流結構的候選碼流所對應的目標碼流。
88.在一個實施例中,伺服器可為一種可進行設置的視頻編碼器。視頻編碼器的實現方式包括軟體編碼器、硬體編碼器,視頻編碼器通過採用視頻編碼標準,可對複合型的源碼流中每個視頻幀依次進行視頻編碼。當基於h.264視頻編碼標準時,使得硬體編碼器的兼容性會更高,只需確定源碼流的排列結構便可硬體編碼器上實現分級編碼。
89.上述視頻編碼方法,通過獲取待編碼的源碼流,並確定源碼流中的視頻幀的排列結構,進而根據排列結構,對源碼流中的多個視頻幀進行提取處理,可得到多個不同碼流結構的候選碼流;通過識別每個候選碼流中的參考視頻幀,並確定每個參考視頻幀各自關聯的目標視頻幀和常規視頻幀,便可分別根據每個參考視頻幀,對相關聯的目標視頻幀進行編碼,從而得到每種碼流結構的候選碼流的初始編碼結果;對於多個不同碼流結構的候選碼流中的每個候選碼流,可根據候選碼流所對應的初始編碼結果和常規視頻幀,如此,便可得到相應碼流結構的候選碼流所對應的目標碼流。由於本技術直接根據排列結構,便可得到多個具有不同碼流結構的候選碼流,相比於傳統的需要同一視頻進行多次編碼的過程,本技術針對每種碼流結構的候選碼流,均可得到候選碼流所對應的目標碼流,確保了生成適應於不同網絡帶寬等場景下的目標碼流的靈活性。
90.在一個實施例中,針對源碼流中的每個視頻幀,按照幀號的順序依次對每個視頻幀進行編碼。若當前視頻幀為目標視頻幀,則根據目標視頻幀對應的長期參考幀,對目標視頻幀進行編碼,得到目標視頻幀對應的第一編碼結果,其中,長期參考幀通過目標視頻幀對應的參考關係得到;若當前視頻幀為常規視頻幀,則根據常規視頻幀對應的短期參考幀,對常規視頻幀進行編碼,得到常規視頻幀對應的第二編碼結果,其中,短期參考幀通過常規視頻幀對應的關聯關係得到。綜合首個視頻幀、每個目標視頻幀各自對應的第一編碼結果、每個常規視頻幀各自對應的第二編碼結果,直至得到全碼流結構的目標碼流。
91.在一個實施例中,若當前視頻幀為常規視頻幀,則對常規視頻幀均進行編碼填充,得到常規視頻幀對應的第二編碼結果。綜合首個視頻幀、每個目標視頻幀各自對應的第一編碼結果、每個常規視頻幀各自對應的第二編碼結果,直至得到半碼流結構的目標碼流。由於是依次對每個視頻幀依次進行編碼,不會造成視頻編碼的時間延遲。
92.在一個實施例中,根據候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流,包括:確定與全碼流結構的候選碼流中的常規視頻幀相關聯的當前參考視頻幀,若當前參考視頻幀為首個參考視頻幀,則將全碼流結構的候選碼流中的每個常規視頻幀分別與當前參考視頻幀進行疊加,得到每個常規視頻幀各自對應的第二編碼結果;若當前參考視頻幀為非首個參考視頻幀,則確定當前參考視頻幀的第一編碼結果,並將全碼流結構的候選碼流中的每個常規視頻幀分別與第一編碼結果進行疊加,得到各常規視頻幀各自對應的第二編碼結果;綜合每個第二編碼結果和全碼流結構的候選碼流的初步編碼結果,得到全碼流結構的候選碼流所對應的目標碼流。
93.其中,碼流結構包括全碼流結構。
94.具體地,由於當前參考視頻幀為首個參考視頻幀,且首個參考視頻幀為源碼流中的首個視頻幀時,可直接構建出當前參考視頻幀對應的完整圖像,因此,參考步驟s208中,將當前預測結果與當前目標視頻幀進行疊加的具體實時步驟,伺服器在當前參考視頻幀的基礎上,分別行疊加每個常規視頻幀,得到每個常規視頻幀各自對應的第二編碼結果。參考圖5所示,當前參考視頻幀為i0幀時,通過i0幀得到p1幀的預測結果後,將預測結果與p1幀中的預測誤差進行疊加,便可重構出p1幀對應的第二編碼結果,此時的第二編碼結果為完整的圖像。
95.同樣,針對當前參考視頻幀為非首個參考視頻幀時,需要確定當前參考視頻幀對應的第一編碼結果,當前參考視頻幀對應的第一編碼結果表徵將當前參考視頻幀視作目標視頻幀時,通過對目標視頻幀進行編碼所得到的第一編碼結果。例如,當前參考視頻幀為p1幀時,p1幀對應的第一編碼結果則為p1所對應的完整圖像。因此,伺服器在第一編碼結果的基礎上,分別行疊加每個常規視頻幀,得到每個常規視頻幀各自對應的第二編碼結果。伺服器按照幀號的排列順序,對每個第二編碼結果進行排列,並綜合全碼流結構的候選碼流的初步編碼結果,得到全碼流結構的候選碼流所對應的目標碼流,此時的目標碼流可視作解碼後得到的多個視頻幀構成的完整視頻。
96.在一個實施例中,伺服器可為一種視頻解碼器。綜合每個第二編碼結果和全碼流結構的候選碼流的初步編碼結果,得到全碼流結構的候選碼流所對應的目標碼流的過程,可為一種視頻解碼過程。
97.本實施例中,針對全碼流結構的候選碼流,通過確定當前參考視頻幀是否為首個參考視頻幀,進而採取不同的方式來確定出每個常規視頻幀各自對應的第二編碼結果,如此,便可高效地、準確地得到全碼流結構的候選碼流所對應的目標碼流。
98.在一個實施例中,根據候選碼流所對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流,包括:對半碼流結構的候選碼流中的每個常規視頻幀均進行編碼填充,得到每個常規視頻幀各自對應的第二編碼結果;綜合每個第二編碼結果和半碼流結構的候選碼流的初步編碼結果,得到半碼流結構的候選碼流所對應的目標碼流。
99.其中,碼流結構包括半碼流結構。
100.具體地,伺服器通過一種特殊宏塊,來對半碼流結構的候選碼流中的每個常規視頻幀均進行編碼填充,得到每個常規視頻幀各自對應的第二編碼結果,此時的第二編碼結果中包括較少的數據量。其中,常規視頻幀包括多個宏塊,skip mb是h264視頻編碼標準裡面的一種特殊宏塊,它的運動矢量由相鄰塊預測得到,它的殘差數據都為0,可認為常規視頻幀的一個宏塊就是在其參考視頻幀上相應位置上的一個宏塊複製得到,因從,特殊宏塊需要的編碼比特數較少。
101.參考圖6所示,p1幀、p3幀和p5幀等均使用數據量極小的特殊宏塊的人造編碼幀。當需要解碼出目標碼流時,針對每個常規視頻幀各自對應的第二編碼結果,均確定位於當前常規視頻幀幀號序列之前的首個參考視頻幀,並對該參考視頻幀進行複製,也即將該參考視頻幀對應的完成圖像,作為當前常規視頻幀的完整圖像。伺服器按照幀號的排列順序,對每個常規視頻幀各自對應的完整圖像進行排列,並綜合半碼流結構的候選碼流的初步編碼結果,得到半碼流結構的候選碼流所對應的目標碼流。
102.本實施例中,針對半碼流結構的候選碼流,通過特殊宏塊,來對半碼流結構的候選碼流中的每個常規視頻幀均進行編碼填充,進而在進行視頻解碼時,便可直接複製相應參考視頻幀的完成圖像,使得能高效地得到半碼流結構的候選碼流所對應的目標碼流,也降低了視頻解碼器的負載。
103.應該理解的是,雖然如上的各實施例所涉及的流程圖中的各個步驟按照箭頭的指示依次顯示,但是這些步驟並不是必然按照箭頭指示的順序依次執行。除非本文中有明確的說明,這些步驟的執行並沒有嚴格的順序限制,這些步驟可以以其它的順序執行。而且,如上的各實施例所涉及的流程圖中的至少一部分步驟可以包括多個步驟或者多個階段,這些步驟或者階段並不必然是在同一時刻執行完成,而是可以在不同的時刻執行,這些步驟或者階段的執行順序也不必然是依次進行,而是可以與其它步驟或者其它步驟中的步驟或者階段的至少一部分輪流或者交替地執行。
104.基於同樣的發明構思,本技術實施例還提供了一種用於實現上述所涉及的視頻編碼方法的視頻編碼裝置。該裝置所提供的解決問題的實現方案與上述方法中所記載的實現方案相似,故下面所提供的一個或多個視頻編碼裝置實施例中的具體限定可以參見上文中對於視頻編碼方法的限定,在此不再贅述。
105.在一個實施例中,如圖7所示,提供了一種視頻編碼裝置700,包括:候選碼流確定模塊702、視頻幀識別模塊704和目標碼流確定模塊706,其中:
106.候選碼流確定模塊702,用於獲取待編碼的源碼流,並確定源碼流中的視頻幀的排列結構;根據排列結構,對源碼流中的多個視頻幀進行提取處理,得到多個具有不同碼流結構的候選碼流;
107.視頻幀識別模塊704,用於識別每個候選碼流中的參考視頻幀,並確定每個參考視頻幀各自關聯的目標視頻幀和常規視頻幀;
108.目標碼流確定模塊706,用於分別根據每個參考視頻幀,對相關聯的目標視頻幀進行編碼,得到每種碼流結構的候選碼流的初始編碼結果;對於多個具有不同碼流結構的候選碼流中的每個候選碼流,根據候選碼流對應的初始編碼結果和常規視頻幀,得到相應碼流結構的候選碼流所對應的目標碼流。
109.在一個實施例中,候選碼流確定模塊702還包括排列結構模塊7021,用於對源碼流進行欄位編碼,得到順序排列的多個視頻幀;視頻幀的幀號為n,n為正整數;從多個視頻幀中確定出特殊幀號的視頻幀;特殊幀號至少包括n+2;根據特殊幀號的視頻幀,得到源碼流中的視頻幀的排列結構。
110.在一個實施例中,排列結構模塊7021,還用於響應於對特殊幀號的視頻幀的關聯操作,得到帶有特殊標識的視頻幀、以及每個特殊標識的視頻幀之間的參考關係;響應於對多個視頻幀中的其他幀號的視頻幀的配置操作,得到帶有常規標識的視頻幀;綜合視頻幀的特殊標識和常規標識、以及每個參考關係,得到源碼流中的視頻幀的排列結構。
111.在一個實施例中,候選碼流確定模塊702還包括提取處理模塊7022,將特殊標識和常規標識分別對應的視頻幀,從源碼流中提取出來,得到全碼流結構的第一碼流;將第一碼流中的常規標識對應的視頻幀進行刪除,並保存常規標識對應的視頻幀的幀號和常規標識,得到半碼流結構的第二碼流。
112.在一個實施例中,視頻幀識別模塊704,用於針對候選碼流中的每個參考視頻幀,
均獲取當前參考視頻幀對應的目標參考關係;根據目標參考關係,得到當前參考視頻幀關聯的當前目標視頻幀;將當前參考視頻幀與當前目標視頻幀之間的每個視頻幀,均作為當前參考視頻幀關聯的常規視頻幀。
113.在一個實施例中,目標碼流確定模塊706包括初始編碼結果模塊7061,用於確定候選碼流中的當前參考視頻幀,並確定當前參考視頻幀關聯的當前目標視頻幀;對當前參考視頻幀進行幀間預測,得到當前預測結果;將當前預測結果與當前目標視頻幀進行疊加,得到當前目標視頻幀對應的第一編碼結果;將第一編碼結果作為新的當前參考視頻幀,並返回至確定當前參考視頻幀關聯的當前目標視頻幀的步驟繼續執行,直至得到候選碼流中的最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果;將最後一個參考視頻幀所關聯的目標視頻幀的第一編碼結果,作為候選碼流的初始編碼結果。
114.在一個實施例中,目標碼流確定模塊706包括視頻幀疊加模塊7062,用於確定與全碼流結構的候選碼流中的常規視頻幀相關聯的當前參考視頻幀,若當前參考視頻幀為首個參考視頻幀,則將全碼流結構的候選碼流中的每個常規視頻幀分別與當前參考視頻幀進行疊加,得到每個常規視頻幀各自對應的第二編碼結果;若當前參考視頻幀為非首個參考視頻幀,則確定當前參考視頻幀的第一編碼結果,並將全碼流結構的候選碼流中的每個常規視頻幀分別與第一編碼結果進行疊加,得到各常規視頻幀各自對應的第二編碼結果;綜合每個第二編碼結果和全碼流結構的候選碼流的初步編碼結果,得到全碼流結構的候選碼流所對應的目標碼流。
115.在一個實施例中,目標碼流確定模塊706包括編碼填充模塊7063,用於對半碼流結構的候選碼流中的每個常規視頻幀均進行編碼填充,得到每個常規視頻幀各自對應的第二編碼結果;綜合每個第二編碼結果和半碼流結構的候選碼流的初步編碼結果,得到半碼流結構的候選碼流所對應的目標碼流。
116.上述視頻編碼裝置中的各個模塊可全部或部分通過軟體、硬體及其組合來實現。上述各模塊可以硬體形式內嵌於或獨立於計算機設備中的處理器中,也可以以軟體形式存儲於計算機設備中的存儲器中,以便於處理器調用執行以上各個模塊對應的操作。
117.在一個實施例中,提供了一種計算機設備,該計算機設備可以是伺服器,其內部結構圖可以如圖8所示。該計算機設備包括處理器、存儲器、輸入/輸出接口(input/output,簡稱i/o)和通信接口。其中,處理器、存儲器和輸入/輸出接口通過系統總線連接,通信接口通過輸入/輸出接口連接到系統總線。其中,該計算機設備的處理器用於提供計算和控制能力。該計算機設備的存儲器包括非易失性存儲介質和內存儲器。該非易失性存儲介質存儲有作業系統、電腦程式和資料庫。該內存儲器為非易失性存儲介質中的作業系統和電腦程式的運行提供環境。該計算機設備的資料庫用於存儲視頻編碼數據。該計算機設備的輸入/輸出接口用於處理器與外部設備之間交換信息。該計算機設備的通信接口用於與外部的終端通過網絡連接通信。該電腦程式被處理器執行時以實現一種視頻編碼方法。
118.本領域技術人員可以理解,圖8中示出的結構,僅僅是與本技術方案相關的部分結構的框圖,並不構成對本技術方案所應用於其上的計算機設備的限定,具體的計算機設備可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。
119.在一個實施例中,還提供了一種計算機設備,包括存儲器和處理器,存儲器中存儲有電腦程式,該處理器執行電腦程式時實現上述各方法實施例中的步驟。
120.在一個實施例中,提供了一種計算機可讀存儲介質,存儲有電腦程式,該電腦程式被處理器執行時實現上述各方法實施例中的步驟。
121.在一個實施例中,提供了一種電腦程式產品或電腦程式,該電腦程式產品或電腦程式包括計算機指令,該計算機指令存儲在計算機可讀存儲介質中。計算機設備的處理器從計算機可讀存儲介質讀取該計算機指令,處理器執行該計算機指令,使得該計算機設備執行上述各方法實施例中的步驟。
122.本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,的電腦程式可存儲於非易失性計算機可讀取存儲介質中,該電腦程式在執行時,可包括如上述各方法的實施例的流程。其中,本技術所提供的各實施例中所使用的對存儲器、資料庫或其它介質的任何引用,均可包括非易失性和易失性存儲器中的至少一種。非易失性存儲器可包括只讀存儲器(read-only memory,rom)、磁帶、軟盤、快閃記憶體、光存儲器、高密度嵌入式非易失性存儲器、阻變存儲器(reram)、磁變存儲器(magnetoresistive random access memory,mram)、鐵電存儲器(ferroelectric random access memory,fram)、相變存儲器(phase change memory,pcm)、石墨烯存儲器等。易失性存儲器可包括隨機存取存儲器(random access memory,ram)或外部高速緩衝存儲器等。作為說明而非局限,ram可以是多種形式,比如靜態隨機存取存儲器(static random access memory,sram)或動態隨機存取存儲器(dynamic random access memory,dram)等。本技術所提供的各實施例中所涉及的資料庫可包括關係型資料庫和非關係型資料庫中至少一種。非關係型資料庫可包括基於區塊鏈的分布式資料庫等,不限於此。本技術所提供的各實施例中所涉及的處理器可為通用處理器、中央處理器、圖形處理器、數位訊號處理器、可編程邏輯器、基於量子計算的數據處理邏輯器等,不限於此。
123.以上實施例的各技術特徵可以進行任意的組合,為使描述簡潔,未對上述實施例中的各技術特徵所有可能的組合都進行描述,然而,只要這些技術特徵的組合不存在矛盾,都應當認為是本說明書記載的範圍。
124.以上實施例僅表達了本技術的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對本技術專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本技術構思的前提下,還可以做出若干變形和改進,這些都屬於本技術的保護範圍。因此,本技術的保護範圍應以所附權利要求為準。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀