專利名稱:一種視頻解碼錯(cuò)誤恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于視頻信息壓縮領(lǐng)域,具體涉及一種使用參考幀間隔碼流的 視頻解碼錯(cuò)誤恢復(fù)方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)和視頻編解碼技術(shù)的發(fā)展,視頻通訊的應(yīng)用范圍越來 越廣泛。在目前的很多視頻應(yīng)用系統(tǒng)中,視頻解碼的錯(cuò)誤恢復(fù)是一個(gè)非 常重要的方向。這是因?yàn)橐曨l經(jīng)過編碼以后,對(duì)誤碼和丟包非常敏感, 會(huì)造成視頻碼流的碼字錯(cuò)誤,在進(jìn)行幀內(nèi)或幀間預(yù)測(cè)的時(shí)候容易使錯(cuò)誤 擴(kuò)散,持續(xù)影響視頻解碼質(zhì)量。如圖l所示的現(xiàn)有解碼方式中如果不進(jìn) 行錯(cuò)誤恢復(fù),錯(cuò)誤將在后續(xù)碼流的解碼過程中被擴(kuò)散。
在現(xiàn)有的視頻通訊系統(tǒng)中,通常在視頻編碼端采用一些容錯(cuò)控制的 方法,來提高視頻碼流對(duì)錯(cuò)誤的魯棒性。常用的方法有分層編碼、多描 述編碼、獨(dú)立分段編碼、重同步編碼和冗余編碼等。其中I幀刷新或I 塊刷新是最常用的方法之一,可采用固定間隔刷新、隨機(jī)刷新或者基于 反饋的刷新。因?yàn)镮幀或幀內(nèi)編碼宏塊不使用參考幀信息,這樣錯(cuò)誤能 夠在I幀或I塊位置立即被阻止。但由于I幀和I塊的編碼效率低,特別 是I幀編碼對(duì)帶寬要求高、碼流抖動(dòng)大,且錯(cuò)誤擴(kuò)散的范圍受到I幀間 隔限制。
另外一種有效的方法是參考幀選擇,特別是在有反饋信道的時(shí)候, 編碼端根據(jù)反饋信息選擇合適的參考幀,這樣既可以提供較好的容錯(cuò)能 力,編碼效率也相對(duì)較高。不過這種方法需要有編解碼之間的反饋,單 在很多視頻通訊應(yīng)用中是沒有反饋信道的,這樣就無法完成交互。而且 在使用多參考幀的編碼系統(tǒng)中, 一般來說由于緊鄰的兩幀之間相關(guān)性最 強(qiáng),所以大部分情況下宏塊編碼的參考就是緊鄰的上一幀。這樣在視頻 通訊過程中,如果碼流發(fā)生錯(cuò)誤的話,這種錯(cuò)誤還是會(huì)在后續(xù)幀的解碼 過程中被擴(kuò)散,持續(xù)影響視頻質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種視頻解碼錯(cuò)誤恢復(fù)方法,可以 對(duì)固定參考幀間隔和非固定參考幀間隔的碼流進(jìn)行錯(cuò)誤恢復(fù),以達(dá)到更好 的視頻質(zhì)量。為達(dá)到上述目的,本發(fā)明采用下述技術(shù)方案 一種視頻解碼錯(cuò)誤恢復(fù)方法,包括以下處理過程
1) 確定當(dāng)前待解碼碼流中的參考幀間隔模式;
2) 對(duì)于使用參考幀間隔的待解碼碼流在解碼發(fā)生錯(cuò)誤時(shí),利用前后間 隔的參考幀對(duì)當(dāng)前幀出錯(cuò)的部分進(jìn)行錯(cuò)誤恢復(fù)。
優(yōu)選的,所述步驟2)中若當(dāng)前待解碼碼流為固定參考幀間隔,則按 原解碼方式對(duì)碼流進(jìn)行解碼處理,并對(duì)解碼發(fā)生錯(cuò)誤的當(dāng)前幀按照以下方 式進(jìn)行錯(cuò)誤恢復(fù)使用前后相鄰的兩個(gè)幀對(duì)當(dāng)前幀出錯(cuò)的部分進(jìn)行雙向錯(cuò) 誤恢復(fù)。
優(yōu)選的,所述步驟2)中若當(dāng)前待解碼碼流為非固定參考幀間隔,則 按原解碼方式對(duì)碼流進(jìn)行解碼處理,并對(duì)解碼發(fā)生錯(cuò)誤的當(dāng)前幀按照以下 步驟進(jìn)行錯(cuò)誤恢復(fù)確定當(dāng)前幀出錯(cuò)部分和上一幀對(duì)應(yīng)部分的圖像行為屬 性;然后對(duì)當(dāng)前幀進(jìn)行錯(cuò)誤恢復(fù)。
優(yōu)選的,所述步驟2)中還包括從碼流中得到固定參考幀間隔的處理
優(yōu)選的,所述步驟2)中還包括從碼流中得到最大參考幀間隔的處理 步驟。
優(yōu)選的,所述步驟2)中圖像行為屬性根據(jù)圖像的運(yùn)動(dòng)幅度和紋理變 化程度的大小設(shè)為屬性大和屬性小兩個(gè)檔位。
優(yōu)選的,所述步驟2)中確定當(dāng)前幀出錯(cuò)部分的圖像行為屬性具體包 括以下過程
21) 如果下一幀使用了當(dāng)前幀出錯(cuò)部分進(jìn)行運(yùn)動(dòng)補(bǔ)償,則說明當(dāng)前幀 出錯(cuò)部分的圖像行為屬性為?。环駝t說明當(dāng)前幀出錯(cuò)部分的圖像行為屬性 為大;
22) 如果下一幀也存在錯(cuò)誤,則默認(rèn)當(dāng)前幀出錯(cuò)部分的圖像行為屬性 為小。
優(yōu)選的,,所述步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為小,且上 一幀對(duì)應(yīng)部分的圖像行為屬性為小,則采用上一幀對(duì)當(dāng)前幀進(jìn)行前向錯(cuò)誤 恢復(fù)。優(yōu)選的,,所述步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為大,且上 一幀對(duì)應(yīng)部分的圖像行為屬性為小,則下一幀使用上一幀進(jìn)行解碼重建, 用下一幀對(duì)當(dāng)前幀進(jìn)行后向錯(cuò)誤恢復(fù),或者用上一幀和下一幀結(jié)合對(duì)當(dāng)前 幀進(jìn)行雙向錯(cuò)誤恢復(fù)。優(yōu)選的,,所述步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為小,且上 一幀對(duì)應(yīng)部分的圖像行為屬性為大,則采用上上一幀對(duì)當(dāng)前幀進(jìn)行前向錯(cuò) 誤恢復(fù)。優(yōu)選的,,所述步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為大,且上 一幀對(duì)應(yīng)部分的圖像行為屬性為大,則下一幀使用上一幀進(jìn)行解碼重建, 用下一幀對(duì)當(dāng)前幀進(jìn)行后向錯(cuò)誤恢復(fù),或者用上一幀和下一幀結(jié)合對(duì)當(dāng)前 幀進(jìn)行雙向錯(cuò)誤恢復(fù)。采用本發(fā)明提出的視頻解碼錯(cuò)誤恢復(fù)方法,比通常的視頻解碼錯(cuò)誤 恢復(fù)方法具有更好的錯(cuò)誤恢復(fù)性能。
圖1是現(xiàn)有原始單幀參考幀模式示意圖;' 圖2是本發(fā)明提出的視頻解碼錯(cuò)誤恢復(fù)方法流程圖; 圖3是本發(fā)明優(yōu)選實(shí)施例固定參考幀間隔s=l時(shí)定周期的參考幀間隔 示例示意圖;圖4是本發(fā)明優(yōu)選實(shí)施例固定參考幀間隔s=2時(shí)定周期的參考幀間隔 示例示意圖;圖5是本發(fā)明優(yōu)選實(shí)施例最大參考幀間隔k=l時(shí)不定周期的參考幀間 隔示例一示意圖;圖6是本發(fā)明優(yōu)選實(shí)施例最大參考幀間隔k=l時(shí)不定周期的參考幀間 隔示例二示意圖;圖7是本發(fā)明優(yōu)選實(shí)施例最大參考幀間隔k=l時(shí)不定周期的參考幀間 隔示例三示意圖;圖8是本發(fā)明優(yōu)選實(shí)施例最大參考幀間隔k=l時(shí)不定周期的參考幀間 隔示例四示意圖;圖9是本發(fā)明優(yōu)選實(shí)施例最大參考幀間隔k=2時(shí)不定周期的參考幀間隔示例示意圖。
具體實(shí)施方式
下面結(jié)合附圖給出實(shí)施例,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的詳細(xì)描述。如圖2所示的視頻解碼錯(cuò)誤恢復(fù)方法流程,包括以下處理過程-第一步判斷當(dāng)前待解碼碼流中的參考幀間隔模式,若沒有使用參 考幀間隔,則采用采用原解碼方式進(jìn)行解碼,不進(jìn)行錯(cuò)誤恢復(fù)處理;若 為固定參考幀間隔則進(jìn)入第二步,否則為非固定參考幀間隔進(jìn)入第四 步。第二步對(duì)于固定參考幀間隔,從碼流中得到固定參考幀間隔S (S>0)進(jìn)入第三步。第三步在當(dāng)前幀解碼發(fā)生錯(cuò)誤時(shí),使用前后相鄰的兩幀對(duì)當(dāng)前幀 出錯(cuò)的部分進(jìn)行雙向錯(cuò)誤恢復(fù)。第四步對(duì)于非固定參考幀間隔,從碼流中得到最大參考幀間隔k (k>0),進(jìn)入第五步。第五步在當(dāng)前幀解碼發(fā)生錯(cuò)誤時(shí),從碼流中得到下一幀的參考幀 使用情況,以判斷出當(dāng)前幀出錯(cuò)部分的圖像行為屬性。如果下一幀使用 了當(dāng)前幀出錯(cuò)的部分進(jìn)行運(yùn)動(dòng)補(bǔ)償,則說明當(dāng)前幀出錯(cuò)部分的圖像行為 屬性小,否則說明當(dāng)前幀出錯(cuò)部分的圖像行為屬性大。如果下一幀也存 在錯(cuò)誤,無法得知是否使用當(dāng)前幀進(jìn)行了運(yùn)動(dòng)補(bǔ)償,則可以默認(rèn)當(dāng)前幀 出錯(cuò)部分的圖像行為屬性為小。在這里,圖像行為屬性定義為圖像的運(yùn) 動(dòng)幅度和紋理變化程度。進(jìn)入第六步。第六步根據(jù)得到的當(dāng)前幀出錯(cuò)部分的圖像行為屬性和上一幀對(duì)應(yīng) 部分的圖像行為屬性,采用相應(yīng)的方法對(duì)當(dāng)前幀進(jìn)行錯(cuò)誤恢復(fù)。從以上方法可以看出錯(cuò)誤恢復(fù)過程區(qū)分固定參考幀間隔和非固定參考 幀間隔進(jìn)行分別處理。固定參考幀的處理方式比較簡(jiǎn)單,如圖3、 4所示, 假設(shè)Ps幀出錯(cuò),此時(shí)P6幀參考P4幀進(jìn)行解碼重建(如圖3)或者P6幀參 考P3幀進(jìn)行解碼重建(如圖4),然后用P4幀和P6幀結(jié)合對(duì)P5幀進(jìn)行雙 向錯(cuò)誤恢復(fù)。下面再對(duì)非固定參考幀間隔的方法進(jìn)行展開說明。假設(shè)當(dāng)前待解碼的P幀在整個(gè)視頻碼流中的編號(hào)為n (r^l)。 第一步對(duì)于非固定參考幀間隔,從碼流中得到最大參考幀間隔k (k>0),進(jìn)入第二步。第二步在當(dāng)前幀解碼發(fā)生錯(cuò)誤時(shí),從碼流中得到后續(xù)第n+l幀的 參考幀使用情況,以判斷出當(dāng)前幀出錯(cuò)部分的圖像行為屬性。如果第n+l幀使用了第n幀出錯(cuò)的部分進(jìn)行運(yùn)動(dòng)補(bǔ)償,則說明第n幀出錯(cuò)部分的圖 像行為屬性小,否則說明第n幀出錯(cuò)部分的圖像行為屬性大。如果第n+l 幀也存在錯(cuò)誤,無法得知是否使用第n幀進(jìn)行了運(yùn)動(dòng)補(bǔ)償,則可以默認(rèn) 第n幀出錯(cuò)部分的圖像行為屬性為小。在這里,圖像行為屬性定義為圖 像的運(yùn)動(dòng)幅度和紋理變化程度。進(jìn)入第三步。第三步根據(jù)得到的當(dāng)前幀出錯(cuò)部分的圖像行為屬性和第n-l幀對(duì) 應(yīng)部分的圖像行為屬性,采用相應(yīng)的方法對(duì)當(dāng)前幀進(jìn)行錯(cuò)誤恢復(fù)。下面 結(jié)合附圖進(jìn)行說明如圖5中,假設(shè)P5幀出錯(cuò),首先根據(jù)上一步得知P5幀的圖像行為 屬性為小(此時(shí)P6幀參考Ps幀),則說明P5和P4幀的之間變化較小, 此時(shí)P4幀對(duì)應(yīng)部分的圖像行為屬性為小,所以可以采用P4幀對(duì)P5幀進(jìn)行前向錯(cuò)誤恢復(fù)。如圖6中,假設(shè)P5幀出錯(cuò),首先根據(jù)上一步得知P5幀的圖像行為 屬性為大,則說明Ps和P4幀的之間變化較大,此時(shí)P6幀參考P4幀,所 以可以正確解碼重建,這樣在P6幀解碼后,此時(shí)P4幀對(duì)應(yīng)部分的圖像 行為屬性為小,對(duì)P5幀進(jìn)行后向或與P4幀結(jié)合進(jìn)行雙向錯(cuò)誤恢復(fù)。如圖7中,假設(shè)P5幀出錯(cuò),首先根據(jù)上一步得知P5幀的圖像行為 屬性為小(此時(shí)P6幀參考P5幀),則說明Ps和P3幀的之間變化較小, 此時(shí)P4幀對(duì)應(yīng)部分的圖像行為屬性為大,可以采用P3幀對(duì)Ps幀進(jìn)行前 向錯(cuò)誤恢復(fù)。如圖8中,假設(shè)Ps幀出錯(cuò),首先根據(jù)上一步得知Ps幀的圖像行為 屬性為大,則說明P5和P3幀的之間變化較大,此時(shí)P6幀參考P4幀,可 以正確解碼重建,可以采用P6幀解碼后,此時(shí)P4幀對(duì)應(yīng)部分的圖像行 為屬性為大,對(duì)P5幀進(jìn)行后向或與P4幀結(jié)合進(jìn)行雙向錯(cuò)誤恢復(fù)。本發(fā)明給出的可變參考幀間隔下的視頻解碼錯(cuò)誤恢復(fù)方法,比通常 的視頻解碼錯(cuò)誤恢復(fù)方法具有更好的錯(cuò)誤恢復(fù)性能。比如在圖1中Ps幀 的錯(cuò)誤會(huì)在后續(xù)幀的解碼過程中被擴(kuò)散,而在圖6中P6幀的解碼不會(huì)受 任何影響,并且P5幀可以在P6幀解碼之后,進(jìn)行更有效的錯(cuò)誤恢復(fù)。再如圖9中的情況,因?yàn)镻5是大運(yùn)動(dòng)圖像,所以P6編碼不參考Ps, 增加閾值后繼續(xù)判斷P4仍是大運(yùn)動(dòng)圖像,則選擇P3作為運(yùn)動(dòng)參考。這 樣P4發(fā)生錯(cuò)誤以后,不會(huì)將錯(cuò)誤擴(kuò)散到Ps幀和P6幀;Ps發(fā)生錯(cuò)誤以后, 不會(huì)將錯(cuò)誤擴(kuò)散到P6幀。反過來,正確的Ps幀,還可以用來對(duì)P4幀進(jìn) 行后向錯(cuò)誤隱蔽;或者跟P3幀結(jié)合,對(duì)P4幀進(jìn)行雙向錯(cuò)誤隱蔽。以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若 干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1. 一種視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述方法包括以下處理過程1)確定當(dāng)前待解碼碼流中的參考幀間隔模式;2)對(duì)于使用參考幀間隔的待解碼碼流在解碼發(fā)生錯(cuò)誤時(shí),利用前后間隔的參考幀對(duì)當(dāng)前幀出錯(cuò)的部分進(jìn)行錯(cuò)誤恢復(fù)。
2. 根據(jù)權(quán)利要求1所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中若當(dāng)前待解碼碼流為固定參考幀間隔,則按原解碼方式對(duì)碼流 進(jìn)行解碼處理,并對(duì)解碼發(fā)生錯(cuò)誤的當(dāng)前幀按照以下方式進(jìn)行錯(cuò)誤恢復(fù)使用前后相鄰的兩個(gè)幀對(duì)當(dāng)前幀出錯(cuò)的部分進(jìn)行雙向錯(cuò)誤恢復(fù)。
3. 根據(jù)權(quán)利要求1所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中若當(dāng)前待解碼碼流為非固定參考幀間隔,則按原解碼方式對(duì)碼 流進(jìn)行解碼處理,并對(duì)解碼發(fā)生錯(cuò)誤的當(dāng)前幀按照以下步驟進(jìn)行錯(cuò)誤恢復(fù) 確定當(dāng)前幀出錯(cuò)部分和上一幀對(duì)應(yīng)部分的圖像行為屬性;然后對(duì)當(dāng)前幀進(jìn) 行錯(cuò)誤恢復(fù)。
4. 根據(jù)權(quán)利要求2所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中還包括從碼流中得到固定參考幀間隔的處理步驟。
5. 根據(jù)權(quán)利要求3所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中還包括從碼流中得到最大參考幀間隔的處理步驟。
6. 根據(jù)權(quán)利要求3所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中圖像行為屬性根據(jù)圖像的運(yùn)動(dòng)幅度和紋理變化程度的大小設(shè)為 屬性大和屬性小兩個(gè)檔位。
7. 根據(jù)權(quán)利要求6所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中確定當(dāng)前幀出錯(cuò)部分的圖像行為屬性具體包括以下過程21) 如果下一幀使用了當(dāng)前幀出錯(cuò)部分進(jìn)行運(yùn)動(dòng)補(bǔ)償,則當(dāng)前幀出錯(cuò) 部分的圖像行為屬性為?。环駝t說明當(dāng)前幀出錯(cuò)部分的圖像行為屬性為大;22) 如果下一幀也存在錯(cuò)誤,則默認(rèn)當(dāng)前幀出錯(cuò)部分的圖像行為屬性 為小。
8. 根據(jù)權(quán)利要求7所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為小,且上一幀對(duì)應(yīng)部分的圖像行為屬性為小,則采用上一幀對(duì)當(dāng)前幀進(jìn)行前向錯(cuò)誤恢復(fù)。
9. 根據(jù)權(quán)利要求7所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所述 步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為大,且上一幀對(duì)應(yīng)部分的圖 像行為屬性為小,則下一幀使用上一幀進(jìn)行解碼重建,用下一幀對(duì)當(dāng)前幀 進(jìn)行后向錯(cuò)誤恢復(fù),或者用上一幀和下一幀結(jié)合對(duì)當(dāng)前幀進(jìn)行雙向錯(cuò)誤恢 復(fù)。
10. 根據(jù)權(quán)利要求7所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所 述步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為小,且上一幀對(duì)應(yīng)部分的 圖像行為屬性為大,則采用上上一幀對(duì)當(dāng)前幀進(jìn)行前向錯(cuò)誤恢復(fù)。
11. 根據(jù)權(quán)利要求7所述的視頻解碼錯(cuò)誤恢復(fù)方法,其特征在于,所 述步驟2)中,若當(dāng)前幀出錯(cuò)部分的行為屬性為大,且上一幀對(duì)應(yīng)部分的 圖像行為屬性為大,則下一幀使用上一幀進(jìn)行解碼重建,用下一幀對(duì)當(dāng)前 幀進(jìn)行后向錯(cuò)誤恢復(fù),或者用上一幀和下一幀結(jié)合對(duì)當(dāng)前幀進(jìn)行雙向錯(cuò)誤 恢復(fù)。
全文摘要
本發(fā)明公開了一種視頻解碼錯(cuò)誤恢復(fù)方法,通過對(duì)固定參考幀間隔和非固定參考幀間隔的碼流先區(qū)分,然后再根據(jù)前后幀的情況進(jìn)行錯(cuò)誤恢復(fù),以達(dá)到更好的視頻質(zhì)量。采用本發(fā)明提出的視頻解碼錯(cuò)誤恢復(fù)方法,比通常的視頻解碼錯(cuò)誤恢復(fù)方法具有更好的錯(cuò)誤恢復(fù)性能。
文檔編號(hào)H04N7/64GK101287128SQ20081006751
公開日2008年10月15日 申請(qǐng)日期2008年5月29日 優(yōu)先權(quán)日2008年5月29日
發(fā)明者楊巨前, 梁立偉, 寧 王 申請(qǐng)人:中興通訊股份有限公司