專利名稱:用于對視頻圖像的塊進行解碼的方法
技術領域:
本發(fā)明涉及一種對視頻數(shù)據(jù)進行解碼的方法,更具體地,涉及在
向外矢量(outgoing vector)的情況下對幀間模式的預測窗進行重構的 方法。
背景技術:
本發(fā)明涉及視頻數(shù)據(jù)壓縮領域。視頻壓縮標準H264或MPEG4 第10部分,以及其他壓縮標準(如MPEG2),依賴于參考圖像,根 據(jù)參考圖像來恢復用于實現(xiàn)當前圖像的重構的預測值。當然,先前已 經對這些參考圖像進行了解碼并將其存儲在例如DDR RAM (雙數(shù)據(jù) 率隨機存取存儲器)類型的存儲器中。通過對相對于參考圖像中的區(qū) 域的差值進行編碼,這實現(xiàn)了根據(jù)先前解碼的圖像來對圖像進行編碼。 在流中,僅將這種差值(稱為殘差)與用于標識參考圖像的元素(refldx 索引)以及運動矢量的分量MVx和MVy—起傳送,使得能夠找到該 參考圖像中要考慮的區(qū)域。
圖1示意了要解碼的圖像與先前解碼的參考圖像之伺的依賴關 系,圖l示出了圖像序列中的視頻圖像的接續(xù),根據(jù)顯示順序示出了 MPEG標準中定義的I、 P或B類型的圖像。在本示例中,圖像P4的 解碼依賴于圖像INTRAIo,該圖像是可以自主方式解碼的,因此不依 賴于參考圖像。因此,在對圖像P4進行解碼期間,解碼器搜索圖像Io 的區(qū)域,所述圖像IQ的區(qū)域將用作對當前圖像P4的區(qū)域進行解碼的預 測值。由于在流中傳送的運動矢量,將指示每個區(qū)域。
解碼后的圖像=預測的圖像+流中傳送的殘差
類似地,根據(jù)圖像Io和P4來對雙向類型的圖像B (B2)進行解碼。
以自主方式來解碼I類型的圖像,即它不依賴于參考圖像。對于 每個宏塊,根據(jù)其在相同圖像中的直接相鄰宏塊來對其進行解碼。根據(jù)先前解碼的一個或n個參考圖像來對P類型的圖像進行解
碼,但是,該圖像的每個塊僅需要一個預測值來進行解碼,該預測值 由運動矢量定義,即每塊只有一個運動矢量指向給定參考圖像。
根據(jù)先前解碼的一個或n個參考圖像來對B類型的圖像進行解 碼,但是,該圖像的每個塊需要2個預測值來進行解碼,即每塊2個 運動矢量指向l或2個給定參考圖像。然后,通過對從與這些運動矢 量相關的信息中獲取的2個預測值進行加權平均來獲得將被添加至殘 差的最終預測值。
圖2示出了用于使用H264或MPEG4第10部分標準的編碼器的、 針對大小為16行乘16個采樣的宏塊的不同可能的分區(qū)和子分區(qū)。第 一行與16X16大小的宏塊分別被水平和垂直切割為兩個16X8和8X 16大小的分區(qū)或子宏塊以及切割為4個8X8大小的子宏塊相對應。 第二行與針對8X8大小的子宏塊以較低級切割的這些相同塊或子分 區(qū)相對應。根據(jù)要處理的宏塊的類型,在P類型圖像的情況下,每個 分區(qū)或子分區(qū)與指向參考圖像的矢量相關聯(lián)。在B類型圖像的情況下, 每個分區(qū)或子分區(qū)與指向1或2個參考圖像的1或2個矢量相關聯(lián)。
圖3示意了在16X16分區(qū)的情況下,根據(jù)參考圖像索引refldx 和運動矢量對用于當前圖像n (標記為1)中的當前宏塊(標記為2) 的先前圖像n-l (標記為3)中的預測值(標記為4)進行的搜索。
在H264標準的情況下,流中傳送的矢量具有1/4像素分辨率,因 此需要針對亮度來實現(xiàn)對.1/4像素的插值,以確定最終亮度預測值。 這些矢量指示了要進行插值的區(qū)域的左上邊緣。
如果要進行插值的區(qū)域保持在參考圖像之內,則在參考圖像中確 定該區(qū)域不引起特別的問題。然而,H264標準在向外矢量的流中實現(xiàn) 要發(fā)送的參考圖像。每次矢量所指向的區(qū)域不完全位于圖像內時,解 碼器應當從對參考圖像外的該區(qū)域進行重構開始,然后將其提供用于 插值過程。
該約束的結果是,根據(jù)運動矢量所定義的預測窗的性質,根據(jù)其 是否從參考圖像"向外",即是否部分在參考圖像之外,來以不同方式 處理包括獲取要插值的區(qū)域的階段。按照現(xiàn)有技術已知的方式,在向外的窗的情況下,預測值構造過 程在于對位于參考圖像邊界處的像素進行垂直、水平或斜向復制,以 得到插值過程的輸入區(qū)域。以下給出了一些示例,針對分別指向右側 和底部的水平和垂直軸,在參考圖像的左上角中標記了坐標-
-具有坐標(X, -2)(0<^<圖像寬度)的向外矢量的情況
在該示例中,預測窗中的前兩個16像素行不屬于參考圖像。必須 根據(jù)屬于該圖像的上邊緣的第3行來對它們進行重構復制該第3行。
如果矢量向外至圖像底部的水平邊界以下,則操作也與上述相同。 在這種情況下,將最后的像素行向底部進行垂直復制,以得到最終預 測值。
-具有坐標(-7, y)((Ky〈圖像高度)的向外矢量的情況
在該示例中,預測窗中的前7個16像素列不屬于參考圖像。必須
根據(jù)屬于參考圖像的左邊緣的第8列來對它們進行重構復制該第8列。
現(xiàn)有技術中用于構造預測值的一種方案在于,將參考圖像存儲在 存儲器中,其周圍環(huán)繞有冠部(crown)。圖4示出了這種方案。放大 了用于存儲的參考圖像7,參考圖像7具有冠部5,冠部5與圖像邊緣 處的像素6的重新拷貝相對應。該冠部具有例如1個宏塊(即16個采 樣)的"厚度"。
在存儲器大小方面,該方案的成本很高。例如,對于高請晰度圖 像(按照4:2:0標準具有1920X1080的分辨率),這種備份所需的存 儲器大小為380個宏塊,或大約160K字節(jié),并且這是對每個參考圖 像而言。由于H264標準需要存儲4個參考圖像,因此該備份所需的 存儲器大小在600K字節(jié)數(shù)量級,尤其對于嵌入式系統(tǒng)而言,這是非 常不利的。
此外,在計算插值矢量之前,應當以系統(tǒng)方式實現(xiàn)對該冠部的重 構。然而,對于大多數(shù)圖像,運動矢量使用圖像內的預測窗,則不需 要進行該重構。然而,該重構在執(zhí)行循環(huán)次數(shù)方面的成本是不可忽略 的。這是不應丟失任何循環(huán)的實時視頻解碼系統(tǒng)的一個重要方面。
類似地,由于與該拷貝冠部相關的約束,解碼電路結構顯得更為復雜。該冠部的使用對于除了與插值計算相關的模塊之外的模塊有所 影響。因此,用于顯示解碼后的圖像的模塊(該模塊直接連接至
DDRAM存儲器以搜索要顯示的區(qū)域)應當能夠顯示不帶冠部的這些 圖像。
發(fā)明內容
本發(fā)明的一個目的是克服上述缺點。本發(fā)明的目的是提供一種用 于對視頻圖像的塊進行解碼的方法,所述塊是根據(jù)預測模式來進行編 碼的,所述模式對與當前塊和預測塊或預測值之差相對應的殘差塊進 行編碼,所述預測塊或預測值在參考圖像中的位置由運動矢量定義,
所述方法的特征在于其執(zhí)行以下步驟
-根據(jù)與所述運動矢量相關的預測窗是完全還是部分位于所述參 考圖像中來確定所述預測窗的類型是向內的還是向外的,
-如果所述預測窗是向外類型的,則對于尺寸至少等于所述預 測窗尺寸并被放置為包括所述預測窗在內的預測緩沖區(qū),使用所述參 考圖像中與預測區(qū)共有的像素來對其進行填充,并且通過拷貝所述像 素中位于所述圖像邊緣的像素來填充其余部分,
-根據(jù)位于所述預測窗中的緩沖區(qū)中的像素來計算所述預測值。
根據(jù)具體實施例,根據(jù)所述運動矢量的初始坐標、所述運動矢量 的分量以及所述運動矢量所分配的塊的尺寸來定義預測窗的類型。
根據(jù)具體實施例,所述預測值的計算包括在所述預測窗中進行像 素插值的步驟。
根據(jù)具體實施例,所述緩沖區(qū)由4個塊組成,其中一塊由與所述 預測窗所屬的參考圖像塊的像素共同的像素形成,其他3塊通過拷貝 所述參考圖像塊中位于所述圖像邊緣處的像素來獲得。這3塊之一可 以通過拷貝圖像角部的單個像素來獲得。
根據(jù)具體實施例,圖像塊是宏塊、宏塊分區(qū)或宏塊子分區(qū)。插值 區(qū)域的大小取決于所述運動矢量所分配的宏塊分區(qū)或子分區(qū)的大小。
根據(jù)具體實施例,所述方法使用MPEG4標準。
本發(fā)明還涉及一種用于實現(xiàn)所述方法的解碼設備,包括壓縮數(shù)據(jù)處理電路;存儲器,連接至所述處理電路,所述解碼設備的特征在 于當預測窗是向外類型時,所述存儲器創(chuàng)建預測緩沖區(qū),所述預測 緩沖區(qū)由屬于參考圖像的預測窗像素和所述預測窗中在所述圖像邊緣 處的像素的拷貝而形成。
由于本發(fā)明,僅在預測窗向外的情況下執(zhí)行預測值構造。這是一 種對由所述矢量唯一指向的區(qū)域相對應的預測窗的幾乎實時的"運行
中(on-the-fly)"重構。
因此,由于對存儲器空間的要求降低,減小了解碼器的實現(xiàn)成本。 在參考圖像的存儲區(qū)的級別上,沒有潛在不必要的存儲器消耗(例如 當沒有向外矢量時)。
本發(fā)明提高了效率,減少了操作時間。僅在需要重構要插值的預 測區(qū)時才產生機器循環(huán)的消耗。
本方案不涉及其他解碼電路模塊。不需要修改顯示模塊來指示有 效數(shù)據(jù)區(qū)。
參考附圖,通過作為非限制性示例提供的以下描述,本發(fā)明的其 他具體特征和優(yōu)點將變得顯而易見,附圖中
圖1示出了圖像序列中I、 P和B類型的圖像的接續(xù),
圖2示出了被劃分為分區(qū)和子分區(qū)的宏塊,
圖3示出了參考圖像中的預測值,
圖4示出了根據(jù)現(xiàn)有技術的參考圖像的預測冠部,
圖5示出了根據(jù)本發(fā)明的方法的流程圖,
圖6示出了在圖像頂部的向外矢量的預測窗的示例,
圖7示出了在圖像左側的向外矢量的預測窗的示例,
圖8示出了向外伸出至圖像左上角的向外矢量的預測窗的示例,
圖9示出了圖像角部的預測窗的詳細視圖,
圖IO示出了解碼設備。
具體實施方式
圖5示出了根據(jù)本發(fā)明的方法的流程圖。描述了用于對P類型圖像 中的幀間類型的宏塊或塊進行解碼的不同步驟。
針對當前圖像中的當前宏塊的每個分區(qū),該處理過程接收與分區(qū)
大小、所分配的運動矢量、其坐標MVx、 MVy、對應參考圖像、refldx 索引相關的信息。
第一步驟(標記為8)使用該信息來確定運動矢量是否是參考圖像 的向外矢量,即當運動矢量的第一端位于當前圖像的當前塊或分區(qū) 的布置的塊的左上角處時,運動矢量的第二端的坐標中是否至少一個 為負,或者其橫坐標和/或縱坐標是否分別具有比圖像的右邊緣處像素 的橫坐標和圖像底邊緣處像素的縱坐標更大的值。這是在標準幀中, 即原點在圖像的左上角處,并且軸朝向右下方。
如果確定結果為否,則下一步驟是步驟9,步驟9以標準方式實現(xiàn) 在參考圖像中直接獲取預測窗。
如果確定結果為是,則下一步驟是步驟IO,步驟10實現(xiàn)從參考圖 像中獲取相關像素,然后,步驟ll實現(xiàn)了預測窗的重構。因此,使用 從參考圖像中獲取的像素來填充該窗,并且使用位于圖像邊緣的像素 的拷貝來填充缺少的像素。以后針對給出角部的不同情況來解釋這種 拷貝。
步驟9或步驟11之后的步驟是步驟12,步驟12實現(xiàn)了根據(jù)獲取的 并可能是重構出的預測窗來進行l(wèi)/4像素的插值。根據(jù)該預測窗或插值 窗來創(chuàng)建該插值過程的輸入區(qū)域,該輸入區(qū)域在于通過拷貝窗邊緣處 的像素來加寬預測窗。例如,對于使用具有5個系數(shù)的濾波器進行的二 維濾波,針對插值的預測窗加寬在于增加5個列和行,其中2列在窗的 左側,3列在右側,2行在頂部,3行在底部。H264標準所推薦的用于 1/4像素插值的濾波器具有6個系數(shù)1、 -5、 20、 20、 -5、 1。為了計算 尺寸為4X4的子分區(qū)預測值,這需要9X9大小的輸入區(qū)域,并且針對 尺寸為8X8的子分區(qū),需要13X13大小的輸入區(qū)域。
更一般地,可以根據(jù)所使用的插值濾波器和插值窗的大小來定義 插值過程的輸入區(qū)域。因此,為了計算nXn大小的塊的預測值,具有p 個系數(shù)的數(shù)字濾波器需要至少在水平和垂直插值方向上尺寸為n+(p-l)的輸入區(qū)域或處理區(qū)域
插值后獲得的預測值具有與當前圖像的當前分區(qū)相同的尺寸。 接下來的步驟13通過將解碼后的殘差與預測值相加來實現(xiàn)分區(qū)
重構,以提供解碼或重構的分區(qū)。
圖6示出了對向外矢量的端點具有等于-2的負縱坐標的預測窗進
行填充的情況。
在參考圖像14中,根據(jù)運動矢量來移動當前圖像的當前塊的布置
的塊,以提供"移動后的"塊或預測窗15,移動后的塊或預測窗15位
于圖像的上邊緣,部分在圖像之外。在該圖的右側部分,該預測窗的
放大示出了2個上部行位于圖像之外,與運動矢量端點的坐標相符。如 箭頭17所示,通過對圖像邊緣處的像素16進行垂直拷貝來填充這些行。
圖7示出了向外矢量的端點具有等于-7的負橫坐標的情況。"移動 后的"塊或預測窗15位于參考圖像14的左邊緣處,部分在圖像之外。 在該圖的右側部分,該預測窗的放大示出了7個左側的列位于圖像之 外,與運動矢量端點的坐標相符。如箭頭17所示,通過對圖像邊緣處 的像素16進行水平拷貝來填充這些列。
圖8示出了向外矢量的端點具有等于-7的負橫坐標并且其負縱坐 標等于-2的情況。"移動后的"塊或預測窗15位于參考圖像14的左上邊 緣處,部分在圖像之外。在該圖的右側部分,該預測窗的放大示出了2 個上部行和7個左側的列位于圖像之外,與運動矢量端點的坐標相符。 通過在圖像邊緣處進行垂直和水平拷貝來填充這些行和列。通過拷貝 屬于圖像的角部處的像素,獲得位于角部的、沒有水平或垂直對應像 素的14個像素。箭頭17指示了這些拷貝。
為了實現(xiàn)重構預測窗的步驟,在向外預測窗的情況下,該方法使 用系統(tǒng)的DDRAM存儲器中的單一區(qū)域。當窗是"向外"類型時,對 區(qū)域或預測緩沖存儲器進行填充,該存儲器區(qū)域具有2宏塊X2宏塊的 大小,將預測窗包含在內。在步驟11中,使用參考圖像中其像素位于 預測窗中的宏塊像素來填充預測緩沖區(qū),并且通過對屬于參考圖像的 存儲宏塊并位于要擴大的圖像邊緣的像素進行拷貝來填充其余宏塊。 在僅涉及參考圖像的一個宏塊的情況下,如果該宏塊不是角宏塊,則除該第一宏塊之外,僅在緩沖區(qū)中存儲第二宏塊就足夠了,所述第二 宏塊是位于存儲的第一宏塊的圖像邊緣處的行或列的拷貝。
圖9示意了在向外矢量的端點具有負的水平和垂直坐標(例如左
上角-7和-2)的情況下的該重構步驟。運動矢量的端點定義了預測窗 15的位置,標識其像素屬于該預測窗15的參考像素宏塊18并將其存儲 在DDRAM存儲器中。如箭頭17所示,將該宏塊15中在圖像邊緣處的 像素拷貝至存儲器中,以產生三個宏塊19、 20和21。角部宏塊21是位 于圖像左上角的唯一像素的拷貝。通過從32X32像素大小的區(qū)域中提 取與運動矢量所定義的預測窗15相對應的16X16像素區(qū)域來獲得要進 行插值的區(qū)域。
在該示例中,預測窗部分地位于參考圖像的左上宏塊上。因此, 使用該宏塊來將預測緩沖區(qū)初始化為DDRAM中該32X32區(qū)域的右下宏塊。
本發(fā)明還涉及一種用于對視頻流進行解碼的、實現(xiàn)上述解碼方法 設備。圖10示出了這種設備。
處理器22處理解碼器內部總線上的交換。該總線通過矩形訪問模 塊24連接至DDRAM類型的存儲器(標記為25),該存儲器存儲參考圖 像。該存儲包含與解碼器重構的圖像相關的視頻數(shù)據(jù),其中包含參考 圖像(也是要顯示的圖像)。矩形訪問模塊實現(xiàn)了只能獲取圖像中的一 個區(qū)域,例如實現(xiàn)插值過程之前的參考圖像中的預測值。顯示模塊26 連接至總線,并且例如根據(jù)指示要顯示的區(qū)域的起始處的指針和根據(jù) 要顯示的圖像格式來處理該視頻數(shù)據(jù),以使其與觀看圖像期間所用的 顯示器兼容。
協(xié)處理器23連接至協(xié)處理器22并連接至總線,協(xié)處理器23也可以 用于實現(xiàn)在像素上規(guī)則實現(xiàn)的一些任務的加速,例如如插值、像素 傳播等功能的加速。
主處理器22以標準方式來實現(xiàn)圖像解碼操作,如可變長度解碼、
反余弦變換、反量化、圖像重構、運動補償、幀內或幀間預測、插值、 DDRAM存儲器中數(shù)據(jù)存儲的管理、顯示模塊控制等等。
當窗是"向外"類型時,通過存儲參考圖像中其像素屬于預測窗的宏塊來初始化DDRAM存儲器中的區(qū)域。該協(xié)處理器通過沿著合適 方向擴大該初始化部分來填充32X32像素區(qū)域的其余部分。要進行插 值的重構區(qū)域是32X32區(qū)域中的16X 16子部分。
當窗是"向外"的并且在預測值(僅一部分)在參考圖像中的情 況下,矩形訪問模塊允許讀取來自預測緩沖區(qū)中的預測或插值窗的像 素,因此這些像素包括來自參考圖像的像素,而對于參考圖像外的部 分,也包括通過拷貝參考圖像邊緣處的像素而獲得的像素。
上述示例基于16X16像素大小的預測窗。自然地,這些預測窗可
以具有宏塊分區(qū)或子分區(qū)的大小。預測緩沖區(qū)可以與預測窗的大小相 關,并因此在運動矢量與宏塊分區(qū)或子分區(qū)相關的情況下具有4個分區(qū)
或子分區(qū)的尺寸。如果預測窗像素僅屬于參考圖像中不在角部的一個 宏塊,則可以將該預測緩沖區(qū)減小至該宏塊或減小至通過重復參考圖 像中在圖像邊緣的宏塊的像素行而構造的第二宏塊。如果預測窗像素 僅屬于參考圖像中不在圖像角部的一塊,則可以將該預測緩沖區(qū)減小 至該塊或減小至通過重復參考圖像中在圖像邊緣的塊的像素行而構造 的第二塊。
僅針對向外矢量給出了一些示例。自然地,本發(fā)明還涉及在圖像 內的運動矢量,但是對于這種矢量,預測窗部分地位于參考圖像之外。
這些示例基于16X 16像素大小的插值窗。在不背離本發(fā)明范圍的 情況下,可以管理更大的插值窗。
權利要求
1.一種用于對視頻圖像的塊進行解碼的方法,所述塊是根據(jù)預測模式來進行編碼的,所述模式對與當前塊和預測塊或預測值之差相對應的殘差塊進行編碼,所述預測塊或預測值在參考圖像中的位置由運動矢量定義,所述方法的特征在于執(zhí)行以下步驟-根據(jù)與所述運動矢量相關的預測窗(15)是完全還是部分位于所述參考圖像(14)中來確定(8)所述預測窗(15)的類型是非向外的還是向外的,-如果所述預測窗是向外類型的,則對于尺寸至少等于所述預測窗尺寸并被放置為包括所述預測窗在內的預測緩沖區(qū),使用所述參考圖像中與預測區(qū)(18)共有的像素(10)來對其進行填充,并且通過拷貝(11)所述像素中位于所述圖像邊緣的像素來填充其余部分(19、20、21),-根據(jù)位于所述預測窗(15)中的緩沖區(qū)中的像素(11)來計算所述預測值。
2. 如權利要求1所述的方法,其特征在于,根據(jù)所述運動矢量的 初始坐標、所述運動矢量的分量以及所述運動矢量所分配的塊的尺寸 來定義所述預測窗的類型。
3. 如權利要求l所述的方法,其特征在于,所述預測值的計算包 括在所述預測窗中進行像素插值(12)的步驟。
4. 如權利要求l所述的方法,其特征在于,所述緩沖區(qū)由4個塊 (18、 19、 20、 21)組成,其中一塊由與所述預測窗像素所屬的參考圖像塊(18)的像素共同的像素形成,其他3塊(19、 20、 21)通過 拷貝所述參考圖像塊中位于所述圖像邊緣處的像素來獲得。
5. 如權利要求4所述的方法,其特征在于,所述3塊之一可以通 過拷貝所述圖像角部的單個像素來獲得。
6. 如權利要求l所述的方法,其特征在于,圖像塊是宏塊、宏塊 分區(qū)或宏塊子分區(qū)。
7. 如權利要求6所述的方法,其特征在于,插值區(qū)域的大小取決 于所述運動矢量所分配的宏塊分區(qū)或子分區(qū)的大小。
8. 如權利要求1所述的方法,其特征在于,所述方法使用MPEG4 標準。
9. 一種用于實現(xiàn)根據(jù)權利要求1所述的方法的解碼設備,包括 壓縮數(shù)據(jù)處理電路(22);存儲器(25),連接至所述處理電路,所述 解碼設備的特征在于當預測窗是向外類型時,所述存儲器包括緩沖的預測區(qū),所述預測區(qū)由屬于參考圖像的預測窗像素和所述預測窗中 在所述圖像邊緣處的像素的拷貝而形成。
全文摘要
本發(fā)明提供了一種用于對視頻圖像的塊進行解碼的方法,該方法的特征在于包括以下步驟根據(jù)與運動矢量相關的預測窗(15)是完全還是部分位于參考圖像(14)中來確定(8)所述預測窗(15)的類型是非向外的還是向外的;如果所述預測窗是向外類型的,則對于尺寸至少等于所述預測窗尺寸并被放置為包括所述預測窗在內的預測緩沖區(qū),使用所述參考圖像中與預測區(qū)(18)共有的像素(10)來對其進行填充,并且通過拷貝(11)所述像素中位于所述圖像邊緣的像素來填充其余部分(19、20、21);根據(jù)位于所述預測窗(15)中的緩沖區(qū)中的像素(11)來計算所述預測值。本申請涉及H264或MPEG4第10部分格式的壓縮。
文檔編號H04N7/50GK101563927SQ200780046851
公開日2009年10月21日 申請日期2007年12月20日 優(yōu)先權日2006年12月21日
發(fā)明者塞巴斯蒂安·弗拉勒, 西爾萬·法布雷, 費雷德里克·帕基耶 申請人:湯姆森許可貿易公司