專利名稱:視頻多幀預測編解碼方法和裝置的制作方法
技術領域:
本發(fā)明涉及視頻編解碼,尤其涉及一種視頻多幀預測編解碼方法和裝置。
背景技術:
云計算是一種計算資源使用方式的新趨勢。視頻云計算(VCC,Video Cloud Computing)是多種云計算實現方法之一。一套視頻云計算系統(tǒng)(VCCS,Video Cloud Computing System)框架的簡略示意圖如圖1所示,其中,VEE(Video Encoding End)與 VDE(Video Decoding End)配套,實現對前端主機顯示畫面的編碼、解碼。目前VEE與VDE 中所用算法一般為國際上通用的視頻編解碼算法。但國際上通用的視頻編解碼算法一般是 針對真實場景中的視頻畫面進行編碼的,而云計算中的編碼畫面為前端主機顯示畫面,其 中包括真實場景中的視頻畫面,也包括游戲畫面、計算機普通操作畫面等等類型,這與純粹 的真實場景中的視頻畫面有相當不同。因此通用的視頻編解碼算法用在這種場合,壓縮效 率不是最高的。根據相關視頻編解碼國際標準,如MPEG4、H. 264等,視頻編解碼算法大致分為幀 間編碼、幀內編碼、量化編碼、變換編碼、熵編碼等若干重要部分。其中幀間編碼是提高壓縮 率的關鍵,其主要思想是利用相鄰幀之間的冗余,用前面的幀預測后面的幀,然后對運動矢 量及殘差進行其它后續(xù)編碼。具體預測的方法是一個搜索匹配的過程使用當前幀中的每 一宏塊MBc去與前幀畫面進行搜索匹配,找到殘差最小的塊MBm,即為最佳匹配塊,然后用 最佳匹配塊MBm預測MBc,所得殘差最小,后續(xù)壓縮率就最高。發(fā)明人在實現本發(fā)明的過程中發(fā)現,幀間編碼采用當前幀的前一幀畫面預測當前 幀畫面的方式,沒有充分利用之前若干畫面的冗余,更沒有利用到計算機使用過程中重復 出現畫面(下文簡稱復現幀)的冗余性,因此壓縮效率較低。幀間編碼采用當前幀前面相 連若干幀的畫面預測當前幀畫面的方式,計算增加量與壓縮率提高量之比太大,并且也沒 有充分利用到計算機使用過程中復現幀的冗余性,因此不夠實用。
發(fā)明內容
本發(fā)明實施例提供一種視頻多幀預測編解碼方法和裝置,以便在運算增加量較少 的條件下,提高視頻幀間編碼的壓縮效率。一方面,本發(fā)明實施例提供一種視頻多幀預測編碼方法,所述方法包括編碼初始 化完成后構建可能復現幀列表和參考幀列表,所述可能復現幀列表用于存放待編碼視頻畫 面的縮略圖數據及其編碼后的完整重構幀數據,所述參考幀列表包含所述可能復現幀列表 和前幀重構畫面數據;將采集到的每一個畫面組GOP之內的待編碼的第一幀視頻畫面編為 I幀,得到所述I幀的完整重構幀數據;對于采集到的所述GOP之內除所述待編碼的第一幀 視頻畫面以外的其他待編碼視頻畫面,如果編為P幀,則執(zhí)行以下步驟從所述參考幀列表 中選擇最佳參考幀,利用所述最佳參考幀將所述其他待編碼視頻畫面編為P幀,將所述最 佳參考幀的編號放入所述P幀的編碼碼流中,得到所述P幀的完整重構幀數據;確定所述P幀是否為可能復現幀,如果是,則為所述P幀的原始畫面創(chuàng)建縮略圖,得到所述P幀的縮略 圖數據;將所述P幀的縮略圖數據和所述P幀的完整重構幀數據加入所述可能復現幀列表; 編碼結束后執(zhí)行結束化程序,并釋放所述可能復現幀列表。另一方面,本發(fā)明實施例還提供一種視頻多幀預測解碼方法,所述方法包括解碼 初始化完成后構建可能復現幀列表和參考幀列表,所述可能復現幀列表用于存放待解碼視 頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含所述可能復現幀列表和前幀重 構畫面數據;對獲取到的每一個GOP之內的I幀進行解碼;解析獲取到的所述GOP之內的P 幀,獲得最佳參考幀編號;根據所述最佳參考幀編號從所述參考幀列表中找到對應的最佳 參考幀對所述P幀進行解碼。一方面,本發(fā)明實施例提供一種編碼器,所述編碼器包括采集單元,所述編碼器還 包括構建單元,用于在編碼初始化后構建可能復現幀列表和參考幀列表,所述可能復現幀 列表用于存放待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含所述可 能復現幀列表和前幀重構畫面數據;第一編碼單元,用于將所述采集單元采集到的每一個 GOP之內的待編碼的第一幀視頻畫面編為I幀,獲得所述I幀的完整重構幀數據;第二編碼 單元,用于對所述采集單元采集到的所述GOP之內除所述待編碼的第一幀視頻畫面以外的 其他待編碼視頻畫面,如果編為P幀,則從所述參考幀列表中選擇最佳參考幀,利用所述最 佳參考幀將所述其他待編碼視頻畫面編為P幀,將所述最佳參考幀的編號放入所述P幀的 編碼碼流中,獲得所述P幀的完整重構幀數據;第一處理單元,用于在所述P幀為可能復現 幀時,為所述P幀的原始畫面創(chuàng)建縮略圖,獲得所述P幀的縮略圖數據,并將所述P幀的縮 略圖數據和所述P幀的完整重構幀數據加入所述可能復現幀列表;第二處理單元,用于在 解碼結束后執(zhí)行結束化程序,并釋放所述可能復現幀列表。另一方面,本發(fā)明實施例還提供一種解碼器,所述解碼器包括獲取單元,所述解碼 器還包括構建單元,用于在解碼初始化后構建可能復現幀列表和參考幀列表,所述可能復 現幀列表用于存放待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含所 述可能復現幀列表和前幀重構畫面數據;第一解碼單元,用于對所述獲取單元獲取到的每 一個GOP之內的I幀進行解碼;第一解析單元,用于解析所述獲取單元獲取到的所述GOP之 內的P幀,獲得最佳參考幀編號;第二解碼單元,用于根據所述最佳參考幀編號從所述參考 幀列表中找到對應的最佳參考幀對所述P幀進行解碼。通過本發(fā)明實施例提供的方法和裝置,可以在運算增加量較少的條件下,提高視 頻幀間編碼的壓縮效率。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,并不 構成對本發(fā)明的限定。在附圖中圖1為視頻云計算系統(tǒng)架構示意圖;圖2為本發(fā)明實施例的視頻多幀預測編碼方法的流程圖;圖3A和圖IBB為本發(fā)明實施例中從參考幀列表中選擇最佳參考幀的方法流程圖;圖4為本發(fā)明實施例的視頻多幀預測解碼方法的流程圖;圖5為本發(fā)明實施例的編碼器的組成框圖6為本發(fā)明實施例的解碼器的組成框圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚明白,下面結合實施例和附 圖,對本發(fā)明實施例做進一步詳細說明。在此,本發(fā)明的示意性實施例及其說明用于解釋本 發(fā)明,但并不作為對本發(fā)明的限定。圖2為本發(fā)明實施例提供的一種視頻多幀預測編碼方法的流程圖,請參照圖2,該 方法包括步驟201 編碼初始化完成后構建可能復現幀列表和參考幀列表,所述可能復現 幀列表用于存放待編碼視頻畫面的縮略圖數據及其編碼后的完整重構幀數據,所述參考幀 列表包含所述可能復現幀列表和前幀重構畫面數據;其中,前幀重構畫面數據是指當前待編碼視頻畫面的前一幀視頻畫面編碼后的完 整重構幀數據。步驟202 將采集到的每一個GOP (Group Of Picture,畫面組)之內的待編碼的第 一幀視頻畫面編為I幀,得到所述I幀的完整重構幀數據;對于采集到的所述GOP之內除所述待編碼的第一幀視頻畫面以外的其他待編碼 視頻畫面,可以編為B幀,也可以編為P幀。如果要編為B幀,則可以按照現有技術的手段 實現,在此不再贅述;如果要編為P幀,則可以執(zhí)行以下步驟步驟203 從所述參考幀列表中選擇最佳參考幀,利用所述最佳參考幀將所述其 他待編碼視頻畫面編為P幀,將所述最佳參考幀的編號放入所述P幀的編碼碼流中,得到所 述P幀的完整重構幀數據;步驟204 確定所述P幀是否為可能復現幀,如果是,則為所述P幀的原始畫面創(chuàng) 建縮略圖,得到所述P幀的縮略圖數據;步驟205 將所述P幀的縮略圖數據和所述P幀的完整重構幀數據加入所述可能 復現幀列表;步驟206 編碼結束后執(zhí)行普通結束化程序,并釋放所述可能復現幀列表。在本實施例的步驟203,從所述參考幀列表中選擇最佳參考幀,可以通過圖3A或 圖3B所示實施例的方法實現,請參照圖3A和圖3B,該方法包括步驟301 確定待編碼視頻畫面的前一幀視頻畫面是否在所述可能復現幀列表 中,如果待編碼視頻畫面的前一幀視頻畫面在所述可能復現幀列表中,則執(zhí)行步驟302,否 則執(zhí)行步驟303-307(圖3A)或者步驟303,-307,(圖;其中,可以通過該前一幀視頻畫面的編號確定該前一幀視頻畫面是否在可能復現 幀列表中。步驟302 確定所述前一幀視頻畫面對應的完整重構幀為最佳參考幀;步驟303 計算所述可能復現幀列表中每一幅縮略圖的每一個像素值與待編碼視 頻畫面的縮略圖的相應行列的像素值的差的絕對值;步驟304 統(tǒng)計對應每一幅縮略圖的所述絕對值中零的個數;步驟305 確定對應所有縮略圖的所述絕對值中零的個數與所述縮略圖的總象素 數的商中的最大值是否大于第一閾值,如果是,則執(zhí)行步驟306,否則執(zhí)行步驟307 ;
其中,該第一閾值可以通過來表示,例如70%或以上。步驟306 確定相應的縮略圖對應的完整重構幀為最佳參考幀;步驟307 確定所述參考幀列表中的當前待編碼視頻畫面的前一幀畫面對應的完 整重構幀為最佳參考幀。步驟303’ 計算所述可能復現幀列表中每一幅縮略圖的每一個像素值與待編碼視 頻畫面的縮略圖的相應行列的像素值的差的絕對值的和;步驟304’ 計算所述可能復現幀列表中每一幅縮略圖的每一個像素值與待編碼視 頻畫面的縮略圖的相應行列的像素值的和;步驟305’ 確定對應所有縮略圖的所述前者之和與所述后者之和的比值中的最小 值是否小于第二閾值,如果是,則執(zhí)行步驟306,,否則執(zhí)行步驟307’ ;其中,第二閾值可以通過來表示,例如10%或以下。步驟306’ 確定相應的縮略圖對應的完整重構幀為最佳參考幀;步驟307’ 確定所述參考幀列表中的當前待編碼視頻畫面的前一幀畫面對應的完 整重構幀為最佳參考幀。在本實施例中,所有縮略圖的寬高相同,也即,為所述P幀的原始畫面創(chuàng)建的縮略 圖的寬高,與所述待編碼視頻畫面的縮略圖的寬高都相同。在本實施例的步驟205,確定P幀是否為可能復現幀,可以通過P幀中的P塊所占 的百分比來確定,如果P幀中P塊所占百分比大于等于第三閾值,則確定該P幀為一般參考 幀;如果P幀中P塊所占百分比小于第三閾值,則確定該P幀為可能復現幀。其中,第三閾 值可以通過來標識,例如30%或以下。其中,確定了 P幀是否為可能復現幀,就將該P幀是一般參考幀還是可能復現幀的 標志信息放入該P幀的編碼碼流中。在本實施例中,例如可以通過一個字節(jié)來標識,例如可 以通過“0”表示一般參考幀,“ 1,,表示可能復現幀。以上只是舉例說明,本實施例并不以此 作為限制。在本實施例中,可能復現幀列表可以具有預設長度,例如為M,加入該可能復現幀 列表中的縮略圖數據及其完整重構幀數據可以從預設值值開始編號,例如從m開始編號,m 可以未0或1,如果加入所述可能復現幀列表的縮略圖數據及其完整重構幀數據的數量大 于該可能復現幀列表的預設長度,例如大于m+M-1,則去掉編號最小的縮略圖數據及其完整 重構幀數據,并根據以上策略對所述可能復現幀列表中的縮略圖數據及其完整重構幀數據 進行重新編號。為了使圖2所示實施例的方法更加清楚易懂,以下結合具體實施方式
對本實施例 的方法進行詳細說明。在本實施方式中,假設原始畫面的寬高分別為W和H,則根據本實施 例的方法進行的編碼流程包括Sl 按普通視頻編碼方法,執(zhí)行相關初始化程序。其中,普通視頻編碼方法可以是目前常用的編碼方法,例如H. 264, MPEG4等,本實 施例并不以此作為限制。其中,可以構建一個空的可能復現幀列表,該可能復現幀列表用于存放待編碼視 頻畫面的原始縮略圖數據和該待編碼視頻畫面編碼后的完整重構幀數據,以作為最佳參考 幀的選擇參考。在本實施例中,假設此列表的最大長度為M。
其中,還可以構建一個參考幀列表,該參考幀列表包含前述可能復現幀列表,還包 含前幀重構畫面數據,也即,該參考幀列表還用于存放當前待編碼視頻畫面的前一幀視頻 畫面編碼后的完整重構幀數據。S2 采集一個GOP之內的第一幀待編碼的視頻畫面,在本實施例中稱為第一幀視 頻畫面,按普通視頻編碼方法將該第一幀視頻畫面編為I幀。其中,將該第一幀視頻畫面編為I幀后,獲得該I幀的完整重構幀數據。S3 采集該GOP之內的下一幀視頻畫面,在本實施例中,以將該下一幀視頻畫面編 為P幀為例,從所述參考幀列表中選擇最佳參考幀,利用選擇出的最佳參考幀將該下一幀 視頻畫面編為P幀,并將此最佳參考幀的編號放入編碼碼流,以便解碼時使用。其中,該參考幀列表中還包括當前待編碼視頻畫面的前一幀視頻畫面編碼后的完 整重構幀數據,例如,當當前待編碼視頻畫面為采集到的第二幀視頻畫面時,則該參考幀列 表中包含第一幀視頻畫面編碼后的完整重構幀數據,也即包括所述I幀的完整重構幀數 據。其中,從參考幀列表中選擇最佳參考幀可以通過多種方式實現,具體將在以下的 實施例中加以說明。其中,為了獲得更好的參考效果,還要確定該P幀是否為可能復現幀,如果是,則 為該P幀的原始畫面創(chuàng)建一個只要灰度值不要色度值的縮略圖,為了描述方便,將該縮略 圖的寬高記為W、h,由于將該下一幅視頻畫面編為P幀后得到了該P幀的完整重構幀數據, 這里將該P幀的縮略圖數據與該P幀的完整重構幀數據一起放入可能復現幀列表。其中,確定該P幀是否為可能復現幀可以根據該P幀中的宏塊中P塊所占的百分 比來確定,例如,如果該P幀中的宏塊中,P塊所占百分比大于等于r%,則記錄該P幀為一 般參考幀;如果該P幀中的宏塊中P塊所占百分比小于r%,也即超過(100-r) %的宏塊都 是I塊,則記錄該P幀為可能復現幀。其中,還可以在該P幀的編碼碼流中放入該P幀是一 般參考幀還是可能復現幀的標志信息,可以通過一個字節(jié)的標識來實現,前述已經說明,在 此不再贅述。其中,加入可能復現幀列表的縮略圖及其完整重構幀數據可以從m開始編號,以 后遞增,直至該可能復現幀列表的最大值,也即m+M-1,如果可能復現幀列表已滿,則去掉編 號最小的記錄,該可能復現幀列表中的所有記錄從m開始重新編排。S4 對于采集到的該GOP之內除第一幀視頻畫面以外的其他視頻畫面,如果要編 為P幀都利用步驟S3的方法進行編碼和處理,如果要編為B幀,則可以通過現有技術的手 段實現,在此不再贅述。在本實施例中,對于采集到每一個GOP之內的視頻畫面,都按照步驟S2-S4進行處理。其中,在編碼過程中,如果編到IDR(instantaneous decoding refresh,立即解碼 刷新)幀,則清空參考幀列表,也即后續(xù)編碼不再利用此次GOP之內編碼過程中構建的參考 幀列表中的幀。如果沒有編到IDR幀,也即仍在此GOP之內,則利用不斷更新的可能復現幀 列表中的幀進行后續(xù)編碼。其中,如果編碼過程結束,則退出編碼流程。S5 按照普通視頻編碼方法執(zhí)行相關普通結束化程序,并釋放可能復現幀列表。
在本實施方式的步驟S3中,從參考幀列表中選擇最佳參考幀,可以通過如下方法 實現S31 如果待編碼視頻畫面的前一幀視頻畫面在可能復現幀列表中,則確定該待編 碼視頻畫面的前一幀視頻畫面即為最佳參考幀,選擇結束;否則,執(zhí)行如下步驟。其中,可以根據該前一幀視頻畫面的編號確定其是否在可能復現幀列表中,由于 在每一幅視頻畫面編碼時,都有相應的編號,編碼后的I幀或P幀也都有相應的編號,因此, 根據該編號,可以確定其是否在可能復現幀列表中。S32 為了描述方便,假設可能復現幀列表中的縮略圖的編號為艮至艮+㈣。記視頻 畫面R第i行第j列像素值為1^_,i取值范圍為0至h-1,j取值范圍為0至w-1。為待編 碼的視頻畫面進行下采樣,創(chuàng)建一個縮略圖C,寬、高為w、h。記畫面C第i行第j列像素值 為Cu,i取值范圍為0至h-1,j取值范圍為0至w-1。S33:針對i取值從0至h-1,j取值從0至w-1,分別計算對應每一幅縮略圖的 I Cij-Rij I,并統(tǒng)計其中零的個數,計為Zc0S34 記Zc/ (w*h)為L,則比較每一幅縮略圖Rm... Rm^1對應的Lm- Lm^1中的最大 值,設該最大值為Lk,m < k < m+M-1,如果Lk大于,則確定Lk對應的&對應的完整重 構幀為最佳參考幀;如果Lk不大于q%,則仍以參考幀列表中的前一幀視頻畫面對應的完 整重構幀為最佳參考幀。其中,步驟S33和步驟S34可以分別通過步驟S33’和步驟S34’來實現,如下S33,對 I Cij-Rij | 求和,記為 D ;對 CyRij 求和,記為 A,記 D/A 為 J,Rm- Rm^1 分別 對應 Jm... Jm+M-1 οSIM’ 比較JfJlrtw,得其最小值,設結果為Jk,m彡k彡m+M-1,如果Jk小于t%, 則確定&為最佳參考幀;如果Jk不小于t%,則仍以參考幀列表中的前一幀視頻畫面對應 的完整重構幀為最佳參考幀。以上從參考幀列表中選擇最佳參考幀的方式只是舉例說明,本實施例并不以此作 為限制。通過本發(fā)明實施例的方法,在可接受的運算提高量之內,增加了視頻編碼的壓縮 比,降低了帶寬消耗,最終降低了 VCCS(Video Cloud Computing System,視頻云計算系統(tǒng)) 的總體成本。與圖2所示實施例的視頻多幀預測編碼方法對應,本發(fā)明實施例還提供一種視頻 多幀預測解碼方法。圖4為本發(fā)明實施例提供的一種視頻多幀預測解碼方法的流程圖,請參照圖4,該 方法包括步驟401 解碼初始化完成后構建可能復現幀列表和參考幀列表,所述可能復現 幀列表用于存放待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含所述 可能復現幀列表和前幀重構畫面數據;其中,前幀重構畫面數據是指當前待解碼視頻畫面的壓縮碼流的前一幀視頻畫面 的壓縮碼流解碼后的全幀數據。 步驟402 對獲取到的每一個GOP之內的I幀進行解碼; 對于獲取到的該GOP之內的每一個P幀,按照以下方式進行解碼和處理。
步驟403 解析獲取到的所述GOP之內的P幀,獲得最佳參考幀編號;步驟404 根據所述最佳參考幀編號從所述參考幀列表中找到對應的最佳參考幀 對所述P幀進行解碼。在本實施例中,對于獲取到的該GOP之內的每一個P幀,還可以執(zhí)行以下步驟步驟405 解析所述P幀,獲得標志信息;步驟406 根據所述標志信息確定所述P幀是否為可能復現幀,如果所述P幀為可 能復現幀,則將所述P幀解碼后的全幀數據加入所述可能復現幀列表;步驟407 解碼結束后執(zhí)行普通結束化程序,釋放所述可能復現幀列表。其中,本實施例并不限制步驟405和步驟406與步驟403和步驟404的先后順序, 例如也可以在執(zhí)行步驟403的同時執(zhí)行步驟405,在執(zhí)行步驟404的同時執(zhí)行步驟406 ;或 者在執(zhí)行步驟403和步驟404之后再執(zhí)行步驟405和步驟406 ;或者,在執(zhí)行步驟405和步 驟406之后再執(zhí)行步驟403和步驟404。以上只是舉例說明,本實施例并不以此作為限制。在本實施例中,與圖2所示實施例的方法相似,該可能復現幀列表也具有預設長 度,例如為M,加入所述可能復現幀列表中的可能復現幀解碼后的全幀數據從預設值開始編 號,例如從m開始編號,如果加入所述可能復現幀列表的可能復現幀解碼后的全幀數據的 數量大于最大值,例如大于m+M-1,則去掉編號最小的可能復現幀解碼后的全幀數據,并根 據以上策略對所述可能復現幀列表中的可能復現幀解碼后的全幀數據進行重新編號。為了使圖4所示實施例的方法更加清楚易懂,以下結合具體實施方式
對本實施例 的方法進行詳細說明。在本實施方式中,假設原始畫面的寬高分別為W和H,則根據本實施 例的方法進行的編碼流程包括Sl 按普通視頻解碼方法,執(zhí)行相關初始化程序。其中,普通視頻解碼方法與圖2所示實施例的普通的視頻編碼方法對應,在此不 再贅述。其中,可以構建一個空的可能復現幀列表,該可能復現幀列表用于存放一幅畫面 解碼后的全幀數據,以作為最佳參考幀的選擇參考。在本實施例中,假設此列表的最大長度 為M。其中,還可以構建一個參考幀列表,該參考幀列表包含前述可能復現幀列表,還包 含前幀重構畫面數據,也即,該參考幀列表還用于存放當前待解碼視頻畫面的前一幀視頻 畫面的壓縮碼流解碼后的全幀數據。S2 獲取一個GOP之內的待解碼的第一幀視頻畫面壓縮碼流,也即前述的I幀,按 普通視頻解碼方法解碼該I幀。S3 獲取該GOP之內的待解碼的下一幀視頻畫面壓縮碼流,如果該下一幀視頻畫 面被編為了 P幀,則可以解析該P幀得到最佳參考幀編號,利用該最佳參考幀編號從所述參 考幀列表中找出最佳參考幀,利用找出的最佳參考幀對該P幀進行解碼。還可以解析該P 幀中的幀類型標志信息,如果根據該幀類型標志信息確定此P幀為可能復現幀,則將此P幀 解碼后的全幀數據加入可能復現幀列表。其中,加入可能復現幀列表的數據的編號也可以從預設值m開始,以后遞增,至該 可能復現幀列表的最大值m+M-1。如果可能復現幀列表已滿,則去掉編號最小的記錄,該可 能復現幀列表中的所有記錄重新從固定值m開始編號。
S4 對于獲取到的該GOP之內除所述I幀之外的其他待解碼視頻畫面壓縮碼流,如 果該其他待解碼視頻畫面被編為了 B幀,則可以按照現有技術的手段對該視頻畫面的壓縮 碼流進行解碼,如果該其他待解碼視頻畫面被編為了 P幀,則都利用步驟S3的方法進行相 應解碼和處理。在本實施例中,對獲取到的每一個GOP內的數據,都可以按照上述步驟S2-S4的方 式進行解碼和處理。其中,在解碼過程中,如果接收到IDR幀,也即一個GOP結束,則清空參考幀列表。 如果IDR幀沒有出現,則可能復現幀列表一直存在,內部數據不斷更新。其中,如果解碼過程結束,則退出解碼流程。S5 按普通視頻解碼方法執(zhí)行相關普通結束化程序,并釋放可能復現幀列表。以上只是舉例說明,本實施例并不以此作為限制。通過本發(fā)明實施例的方法,在可接受的運算提高量之內,增加了視頻編碼的壓縮 比,降低了帶寬消耗,最終降低了 VCCS的總體成本。圖5為本發(fā)明實施例提供的一種編碼器的組成框圖,請參照圖5,該編碼器除了包 括采集單元51以外,還包括構建單元52,用于在編碼初始化后構建可能復現幀列表和參考幀列表,所述可能 復現幀列表用于存放待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含 所述可能復現幀列表和前幀重構畫面數據;第一編碼單元53,用于將采集單元51采集到的每一個GOP之內的待編碼的第一幀 視頻畫面編為I幀,獲得所述I幀的完整重構幀數據;第二編碼單元M,用于對采集單元51采集到的所述GOP之內除所述待編碼的第一 幀視頻畫面以外的其他待編碼視頻畫面,如果編為P幀,則從所述參考幀列表中選擇最佳 參考幀,利用所述最佳參考幀將所述其他待編碼視頻畫面編為P幀,將所述最佳參考幀的 編號放入所述P幀的編碼碼流中,獲得所述P幀的完整重構幀數據;第一處理單元55,用于在所述P幀為可能復現幀時,為所述P幀的原始畫面創(chuàng)建縮 略圖,獲得所述P幀的縮略圖數據,并將所述P幀的縮略圖數據和所述P幀的完整重構幀數 據加入所述可能復現幀列表;第二處理單元56,用于在編碼結束后執(zhí)行普通結束化程序,并釋放所述可能復現 幀列表。在一個實施例中,第二編碼單元M可以包括判斷模塊M1,用于判斷待編碼視頻畫面的前一幀視頻畫面是否在所述可能復現 幀列表中;確定模塊M2,用于在判斷模塊Ml的判斷結果為待編碼視頻畫面的前一幀視頻 畫面在所述可能復現幀列表中時,確定所述前一幀視頻畫面對應的完整重構幀為最佳參考 幀;所述確定模塊542還用于在判斷模塊541的判斷結果為待編碼視頻畫面的前一幀 視頻畫面不在所述可能復現幀列表中時,計算所述可能復現幀列表中每一幅縮略圖的每一 個像素值與待編碼視頻畫面的縮略圖的相應行列的像素值的差的絕對值,統(tǒng)計對應每一幅 縮略圖的所述絕對值中零的個數,如果對應所有縮略圖的所述絕對值中零的個數與所述縮略圖的總象素數的商中的最大值大于q%,則確定相應的縮略圖對應的完整重構幀為最佳 參考幀;如果對應所有縮略圖的所述絕對值中零的個數與所述縮略圖的總象素數的商中的 最大值不大于q%,則確定所述參考幀列表中的當前待編碼視頻畫面的前一幀視頻畫面對 應的完整重構幀為最佳參考幀;或者所述確定模塊542還用于在判斷模塊541的判斷結果為待編碼視頻畫面的前一幀 視頻畫面不在所述可能復現幀列表中時,計算所述可能復現幀列表中每一幅縮略圖的每一 個像素值與待編碼視頻畫面的縮略圖的相應行列的像素值的差的絕對值的和,以及計算所 述可能復現幀列表中每一幅縮略圖的每一個像素值與待編碼視頻畫面的縮略圖的相應行 列的像素值的和,如果對應所有縮略圖的前者之和與后者之和的比值中的最小值小于t%, 則確定相應的縮略圖對應的完整重構幀為最佳參考幀;如果對應所有縮略圖的前者之和與 后者之和的比值中的最小值不小于t%,則確定所述參考幀列表中的當前待編碼視頻畫面 的前一幀視頻畫面對應的完整重構幀為最佳參考幀。在本實施例中,第一處理單元55為所述P幀的原始畫面創(chuàng)建的縮略圖的寬高,與 所述待編碼視頻畫面的縮略圖的寬高相同。在一個實施例中,第一處理單元55具體用于在所述P幀中P塊所占百分比大于等 于時,確定所述P幀為一般參考幀;在所述P幀中P塊所占百分比小于時,確定所述 P幀為可能復現幀。該第一處理單元55還用于將所述P幀是一般參考幀或者可能復現幀的 標志信息放入所述P幀的編碼碼流中。本實施例的編碼器的各組成部分分別用于實現圖2所示實施例的方法的各步驟, 由于在圖2所示實施例中,已經對各步驟進行了詳細說明,在此不再贅述。通過本發(fā)明實施例的編碼器,在可接受的運算提高量之內,增加了視頻編碼的壓 縮比,降低了帶寬消耗,最終降低了 VCCS的總體成本。圖6為本發(fā)明實施例提供的一種解碼器的組成框圖,請參照圖6,該解碼器除了包 括獲取單元61以外,還包括構建單元62,用于在解碼初始化后構建可能復現幀列表和參考幀列表,所述可能 復現幀列表用于存放待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含 所述可能復現幀列表和前幀重構畫面數據;第一解碼單元63,用于對獲取單元61獲取到的每一個GOP之內的I幀進行解碼;第一解析單元64,用于解析獲取單元61獲取到的所述GOP之內的P幀,獲得最佳 參考幀編號;第二解碼單元65,用于根據所述最佳參考幀編號從所述參考幀列表中找到對應的 最佳參考幀對所述P幀進行解碼。在一個實施例中,該解碼器還包括第二解析單元66,用于解析所述P幀,獲得標志信息;判斷單元67,用于根據所述標志信息確定所述P幀是否為可能復現幀;第一處理單元68,用于在所述P幀為可能復現幀時,將所述P幀解碼后的全幀數據 加入所述可能復現幀列表;第二處理單元69,用于在解碼結束化執(zhí)行普通結束化程序,釋放所述可能復現幀 列表。
本實施例的解碼器的各組成部分分別用于實現圖4所示實施例的方法的各步驟, 由于在圖4所示實施例中,已經對各步驟進行了詳細說明,在此不再贅述。通過本發(fā)明實施例的解碼器,在可接受的運算提高量之內,增加了視頻編碼的壓 縮比,降低了帶寬消耗,最終降低了 VCCS的總體成本。結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí) 行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存 儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術 領域內所公知的任意其它形式的存儲介質中。以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳 細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保 護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本 發(fā)明的保護范圍之內。
權利要求
1.一種視頻多幀預測編碼方法,其特征在于,所述方法包括編碼初始化完成后構建可能復現幀列表和參考幀列表,所述可能復現幀列表用于存放 待編碼視頻畫面的縮略圖數據及其編碼后的完整重構幀數據,所述參考幀列表包含所述可 能復現幀列表和前幀重構畫面數據;將采集到的每一個畫面組GOP之內的待編碼的第一幀視頻畫面編為I幀,得到所述I 幀的完整重構幀數據;對于采集到的所述GOP之內除所述待編碼的第一幀視頻畫面以外的其他待編碼視頻 畫面,如果編為P幀,則執(zhí)行以下步驟從所述參考幀列表中選擇最佳參考幀,利用所述最佳參考幀將所述其他待編碼視頻畫 面編為P幀,將所述最佳參考幀的編號放入所述P幀的編碼碼流中,得到所述P幀的完整重 構幀數據;確定所述P幀是否為可能復現幀,如果是,則為所述P幀的原始畫面創(chuàng)建縮略圖,得到 所述P幀的縮略圖數據;將所述P幀的縮略圖數據和所述P幀的完整重構幀數據加入所述可能復現幀列表; 編碼結束后執(zhí)行結束化程序,釋放所述可能復現幀列表。
2.根據權利要求1所述的方法,其特征在于,從所述參考幀列表中選擇最佳參考幀,包括確定待編碼視頻畫面的前一幀視頻畫面是否在所述可能復現幀列表中; 如果待編碼視頻畫面的前一幀視頻畫面在所述可能復現幀列表中,則確定所述前一幀 視頻畫面對應的完整重構幀為最佳參考幀;如果待編碼視頻畫面的前一幀視頻畫面不在所述可能復現幀列表中,則計算所述可能 復現幀列表中每一幅縮略圖的每一個像素值與待編碼視頻畫面的縮略圖的相應行列的像 素值的差的絕對值,統(tǒng)計對應每一幅縮略圖的所述絕對值中零的個數,如果對應所有縮略 圖的所述絕對值中零的個數與所述縮略圖的總象素數的商中的最大值大于第一閾值,則確 定相應的縮略圖對應的完整重構幀為最佳參考幀;如果對應所有縮略圖的所述絕對值中零 的個數與所述縮略圖的總象素數的商中的最大值不大于所述第一閾值,則確定所述參考幀 列表中的當前待編碼視頻畫面的前一幀視頻畫面對應的完整重構幀為最佳參考幀;或者如果待編碼視頻畫面的前一幀視頻畫面不在所述可能復現幀列表中,則計算所述可能 復現幀列表中每一幅縮略圖的每一個像素值與待編碼視頻畫面的縮略圖的相應行列的像 素值的差的絕對值的和,以及計算所述可能復現幀列表中每一幅縮略圖的每一個像素值與 待編碼視頻畫面的縮略圖的相應行列的像素值的和,如果對應所有縮略圖的前者之和與后 者之和的比值中的最小值小于第二閾值,則確定相應的縮略圖對應的完整重構幀為最佳參 考幀;如果對應所有縮略圖的前者之和與后者之和的比值中的最小值不小于所述第二閾 值,則確定所述參考幀列表中的當前待編碼視頻畫面的前一幀視頻畫面對應的完整重構幀 為最佳參考幀。
3.根據權利要求2所述的方法,其特征在于,為所述P幀的原始畫面創(chuàng)建的縮略圖的長 寬,與所述待編碼視頻畫面的縮略圖的長寬相同。
4.根據權利要求1所述的方法,其特征在于,確定所述P幀是否為可能復現幀,具體包括如果所述P幀中P塊所占百分比大于等于第三閾值,則確定所述P幀為一般參考幀;如果所述P幀中P塊所占百分比小于所述第三閾值,則確定所述P幀為可能復現幀。
5.根據權利要求4所述的方法,其特征在于,確定所述P幀是否為可能復現幀之后,所 述方法還包括將所述P幀是一般參考幀或者可能復現幀的標志信息放入所述P幀的編碼碼流中。
6.根據權利要求1所述的方法,其特征在于,所述可能復現幀列表具有預設長度,加入 所述可能復現幀列表中的縮略圖數據及其完整重構幀數據從預設值開始編號,如果加入所 述可能復現幀列表的縮略圖數據及其完整重構幀數據的數量大于所述可能復現幀列表的 預設長度,則去掉所述可能復現幀列表中編號最小的縮略圖數據及其完整重構幀數據,并 根據以上策略對所述可能復現幀列表中的縮略圖數據及其完整重構幀數據進行重新編號。
7.一種視頻多幀預測解碼方法,其特征在于,所述方法包括解碼初始化完成后構建可能復現幀列表和參考幀列表,所述可能復現幀列表用于存放 待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含所述可能復現幀列表 和前幀重構畫面數據;對獲取到的每一個GOP之內的I幀進行解碼;解析獲取到的所述GOP之內的P幀,獲得最佳參考幀編號;根據所述最佳參考幀編號從所述參考幀列表中找到對應的最佳參考幀對所述P幀進 行解碼。
8.根據權利要求7所述的方法,其特征在于,解析獲取到的所述GOP之內的P幀,獲得 最佳參考幀編號之后,所述方法還包括解析所述P幀,獲得標志信息;根據所述標志信息確定所述P幀是否為可能復現幀;如果所述P幀為可能復現幀,則將所述P幀解碼后的全幀數據加入所述可能復現幀列表;解碼結束后執(zhí)行結束化程序,釋放所述可能復現幀列表。
9.根據權利要求7所述的方法,其特征在于,所述可能復現幀列表具有預設長度,加入 所述可能復現幀列表中的可能復現幀解碼后的全幀數據從預設值開始編號,如果加入所述 可能復現幀列表的可能復現幀解碼后的全幀數據的數量大于所述可能復現幀列表的預設 長度的最大值,則去掉所述可能復現幀列表中編號最小的可能復現幀解碼后的全幀數據, 并根據以上策略對所述可能復現幀列表中的可能復現幀解碼后的全幀數據進行重新編號。
10.一種編碼器,所述編碼器包括采集單元,其特征在于,所述編碼器還包括構建單元,用于在編碼初始化后構建可能復現幀列表和參考幀列表,所述可能復現幀 列表用于存放待編碼視頻畫面的縮略圖數據及其編碼后的完整重構幀數據,所述參考幀列 表包含所述可能復現幀列表和前幀重構畫面數據;第一編碼單元,用于將所述采集單元采集到的每一個GOP之內的待編碼的第一幀視頻 畫面編為I幀,獲得所述I幀的完整重構幀數據;第二編碼單元,用于對所述采集單元采集到的所述GOP之內除所述待編碼的第一幀視 頻畫面以外的其他待編碼視頻畫面,如果編為P幀,則從所述參考幀列表中選擇最佳參考 幀,利用所述最佳參考幀將所述其他待編碼視頻畫面編為P幀,將所述最佳參考幀的編號放入所述P幀的編碼碼流中,獲得所述P幀的完整重構幀數據;第一處理單元,用于在所述P幀為可能復現幀時,為所述P幀的原始畫面創(chuàng)建縮略圖, 獲得所述P幀的縮略圖數據,并將所述P幀的縮略圖數據和所述P幀的完整重構幀數據加 入所述可能復現幀列表;第二處理單元,用于在編碼結束后執(zhí)行結束化程序,釋放所述可能復現幀列表。
11.根據權利要求10所述的編碼器,其特征在于,所述第二編碼單元包括判斷模塊,用于判斷待編碼視頻畫面的前一幀視頻畫面是否在所述可能復現幀列表中;確定模塊,用于當所述判斷模塊的判斷結果為待編碼視頻畫面的前一幀視頻畫面在所 述可能復現幀列表中時,確定所述前一幀視頻畫面對應的完整重構幀為最佳參考幀;其中,所述確定模塊還用于當所述判斷模塊的判斷結果為待編碼視頻畫面的前一幀視 頻畫面不在所述可能復現幀列表中時,計算所述參考幀列表中每一幅縮略圖的每一個像素 值與待編碼視頻畫面的縮略圖的相應行列的像素值的差的絕對值,統(tǒng)計對應每一幅縮略圖 的所述絕對值中零的個數,如果對應所有縮略圖的所述絕對值中零的個數與所述縮略圖的 總象素數的商中的最大值大于第一閾值,則確定相應的縮略圖對應的完整重構幀為最佳參 考幀;如果對應所有縮略圖的所述絕對值中零的個數與所述縮略圖的總象素數的商中的最 大值不大于所述第一閾值,則確定所述參考幀列表中當前待編碼視頻畫面的前一幀視頻畫 面對應的完整重構幀為最佳參考幀;或者,所述確定模塊還用于當所述判斷模塊的判斷結果為待編碼視頻畫面的前一幀視 頻畫面不在所述可能復現幀列表中時,計算所述可能復現幀列表中每一幅縮略圖的每一個 像素值與待編碼視頻畫面的縮略圖的相應行列的像素值的差的絕對值的和,以及計算所述 可能復現幀列表中每一幅縮略圖的每一個像素值與待編碼視頻畫面的縮略圖的相應行列 的像素值的和,如果對應所有縮略圖的前者之和與后者之和的比值中的最小值小于第二閾 值,則確定相應的縮略圖對應的完整重構幀為最佳參考幀;如果對應所有縮略圖的前者之 和與后者之和的比值中的最小值不小于所述第二閾值,則確定所述參考幀列表中當前待編 碼視頻畫面的前一幀視頻畫面對應的完整重構幀為最佳參考幀。
12.根據權利要求11所述的編碼器,其特征在于,所述第一處理單元為所述P幀的原始 畫面創(chuàng)建的縮略圖的長寬,與所述待編碼視頻畫面的縮略圖的長寬相同。
13.根據權利要求10所述的編碼器,其特征在于,所述第一處理單元具體用于在所述P 幀中P塊所占百分比大于等于第三閾值時,確定所述P幀為一般參考幀;在所述P幀中P塊 所占百分比小于所述第三閾值時,確定所述P幀為可能復現幀。
14.根據權利要求13所述的編碼器,其特征在于,所述第一處理單元還用于將所述P幀 是一般參考幀或者可能復現幀的標志信息放入所述P幀的編碼碼流中。
15.一種解碼器,所述解碼器包括獲取單元,其特征在于,所述解碼器還包括構建單元,用于在解碼初始化后構建可能復現幀列表和參考幀列表,所述可能復現幀 列表用于存放待解碼視頻畫面的壓縮碼流解碼后的全幀數據,所述參考幀列表包含所述可 能復現幀列表和前幀重構畫面數據;第一解碼單元,用于對所述獲取單元獲取到的每一個GOP之內的I幀進行解碼;第一解析單元,用于解析所述獲取單元獲取到的所述GOP之內的P幀,獲得最佳參考幀編號;第二解碼單元,用于根據所述最佳參考幀編號從所述參考幀列表中找到對應的最佳參 考幀對所述P幀進行解碼。
16.根據權利要求15所述的解碼器,其特征在于,所述解碼器還包括 第二解析單元,用于解析所述P幀,獲得標志信息; 判斷單元,用于根據所述標志信息確定所述P幀是否為可能復現幀; 第一處理單元,用于在所述P幀為可能復現幀時,將所述P幀解碼后的全幀數據加入所 述可能復現幀列表;第二處理單元,用于在解碼結束后執(zhí)行結束化程序,釋放所述可能復現幀列表。
全文摘要
一種視頻多幀預測編解碼方法和裝置,該編碼方法包括編碼初始化后構建可能復現幀列表和參考幀列表;將采集到的每一個GOP之內的待編碼的第一幀視頻畫面編為I幀,得到該I幀的完整重構幀數據;對于采集到的所述GOP之內的其他待編碼視頻畫面,若編為P幀,則執(zhí)行以下步驟從所述參考幀列表中選擇最佳參考幀,利用最佳參考幀將其他待編碼視頻畫面編為P幀,將最佳參考幀的編號放入該P幀的編碼碼流中,得到該P幀的完整重構幀數據;確定該P幀是否為可能復現幀,若是,為該P幀的原始畫面創(chuàng)建縮略圖,得到該P幀的縮略圖數據;將該P幀的縮略圖數據和該P幀的完整重構幀數據加入所述可能復現幀列表;執(zhí)行編碼結束化程序釋放可能復現幀列表。
文檔編號H04N7/32GK102075756SQ20111003029
公開日2011年5月25日 申請日期2011年1月27日 優(yōu)先權日2011年1月27日
發(fā)明者李闖, 牛長鋒 申請人:北京視博云科技有限公司