專利名稱:幀內(nèi)預(yù)測方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理的視頻編碼技術(shù),特別是H. 264視頻編碼的幀內(nèi)預(yù)測方法。
背景技術(shù):
H. 264是由ITU-T視頻編碼專家組和IS0/IEC動態(tài)圖像專家組聯(lián) 合組成的聯(lián)合視 頻組(JVT,Joint Video Team)提出的高度壓縮數(shù)字視頻編解碼器標(biāo)準(zhǔn)。這種編碼技術(shù)也 被稱為AVC,即高級視頻編碼。H. 264標(biāo)準(zhǔn)包含一系列新的特征,例如支持多參考幀、最大 16x16至最小4x4的可變尺寸塊以及1/4像素精度的運(yùn)動估計。在相同的重建圖像質(zhì)量下, H. 264標(biāo)準(zhǔn)可比H. 263標(biāo)準(zhǔn)節(jié)約50%左右的碼率,但壓縮效率的提高是以增加計算復(fù)雜度 為代價的。在應(yīng)用H. 264標(biāo)準(zhǔn)進(jìn)行軟件的實(shí)時實(shí)現(xiàn)過程中,由于遍歷所有可能的預(yù)測模式, 不僅對計算機(jī)主頻的要求很高,并且功耗很大,而這些對于小型手持設(shè)備等需要實(shí)時進(jìn)行 視頻編碼的應(yīng)用設(shè)備而言,太過奢侈,也無法實(shí)現(xiàn)。因此,常采用硬件代替軟件,實(shí)現(xiàn)編碼的 過程。硬件實(shí)現(xiàn)具有并行處理、處理速度快并且功耗低等顯著優(yōu)點(diǎn)。目前硬件編碼通常采用流水線方式實(shí)現(xiàn),申請?zhí)枮?00410070366. 2、名稱為“基于 像素流水的幀內(nèi)預(yù)測裝置及預(yù)測方法”的中國專利申請中公開了一種基于流水線實(shí)現(xiàn)的幀 內(nèi)預(yù)測裝置和方法。其中,該幀內(nèi)預(yù)測方法通過根據(jù)當(dāng)前塊相鄰的已編碼宏塊解碼獲得的 預(yù)測模式信息推導(dǎo)出當(dāng)前塊實(shí)際的幀內(nèi)預(yù)測模式,接著通過方向預(yù)測,得到當(dāng)前宏塊內(nèi)所 有點(diǎn)的幀內(nèi)預(yù)測像素值,并根據(jù)該幀內(nèi)預(yù)測像素值,將對其進(jìn)行重建和更新的結(jié)果與預(yù)測 殘差值相加,得到實(shí)際的重建像素值。然而在上述幀內(nèi)預(yù)測過程中,方向預(yù)測和計算實(shí)際的重建像素值分別由流水線的 兩個階段進(jìn)行處理,導(dǎo)致當(dāng)前宏塊的方向預(yù)測以及重建像素值依賴于前一宏塊,因此,流水 線的實(shí)現(xiàn)速度受到很大的限制,并且占用大量存儲和帶寬。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是視頻編碼幀內(nèi)預(yù)測的流水線實(shí)現(xiàn)中,由于當(dāng)前宏塊的方 向預(yù)測和重建像素值依賴于其自身的重建像素值,從而導(dǎo)致流水線堵塞。為解決上述技術(shù)問題,本發(fā)明提供了一種幀內(nèi)預(yù)測方法,包括根據(jù)與當(dāng)前宏塊相 鄰的僅完成預(yù)測方向計算的塊的原始像素以及已完成重建階段的塊的重建像素,計算所述 當(dāng)前宏塊在各個預(yù)測模式的預(yù)測像素值;根據(jù)所述當(dāng)前宏塊的實(shí)際測量的像素值,計算各 個預(yù)測模式的預(yù)測誤差,獲得最佳預(yù)測模式??蛇x的,所述根據(jù)與當(dāng)前宏塊相鄰的僅完成預(yù)測方向計算的塊的原始像素以及已 完成重建階段的塊的重建像素,計算當(dāng)前宏塊在各個預(yù)測模式的預(yù)測像素值,具體為根據(jù) 左鄰塊中相應(yīng)像素點(diǎn)的原始像素、或上鄰塊中相應(yīng)像素點(diǎn)的重建像素、或左鄰塊中相應(yīng)像 素點(diǎn)的原始像素和上鄰塊中相應(yīng)像素點(diǎn)的重建像素,計算當(dāng)前宏塊中每個像素點(diǎn)在各個預(yù) 測模式的預(yù)測像素值。
可選的,所述計算當(dāng)前宏塊在各個預(yù)測模式的預(yù)測像素值具體為對于不同預(yù)測 類型,分別計算當(dāng)前宏塊在對應(yīng)的各個預(yù)測模式的預(yù)測像素值。 可選的,對于16x16亮度塊的預(yù)測類型,在水平預(yù)測模式時,根據(jù)所述左鄰塊中相 應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng)前宏塊相鄰 列中的每一個像素點(diǎn);在垂直預(yù)測模式時,根據(jù)所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn) 行計算,所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰行中的每一個像素點(diǎn);在 DC預(yù)測模式和平面預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值以及上鄰塊中 相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng)前宏塊相 鄰列中的每一個像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰行中的每 一個像素點(diǎn)??蛇x的,對于4x4小亮度塊的預(yù)測類型,當(dāng)4x4小亮度塊位于所述宏塊的左邊緣 時,根據(jù)所述4x4小亮度塊左鄰塊的原始像素值進(jìn)行預(yù)測計算;當(dāng)4x4小亮度塊位于所述宏 塊的上邊緣時,根據(jù)所述4x4小亮度塊上鄰塊的重建像素值進(jìn)行預(yù)測計算。可選的,當(dāng)4x4小亮度塊位于所述宏塊的左上角位置時,在水平預(yù)測模式,根據(jù)所 述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與 所述4x4小亮度塊相鄰列中的每一個像素點(diǎn);在垂直預(yù)測模式,根據(jù)所述上鄰塊中相應(yīng)像 素點(diǎn)的重建像素值進(jìn)行計算,所述上鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與所述4x4小亮度塊 相鄰行中的每一個像素點(diǎn);在DC和左垂直的預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原 始像素值以及所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn) 為所述左鄰塊與所述4x4小亮度塊相鄰列中的每一個像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為 所述上鄰塊與所述4x4小亮度塊相鄰行中的每一個像素點(diǎn);在對角左下預(yù)測模式,根據(jù)所 述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述上鄰塊中相應(yīng)像素點(diǎn)包括所述上鄰塊 與所述4x4小亮度塊相鄰行中的每一個像素點(diǎn)以及所述4x4小亮度塊右上鄰塊中最下一行 的每個像素點(diǎn);在對角右下、右垂直以及下水平的預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn) 的原始像素值以及所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像 素點(diǎn)包括所述左鄰塊與所述4x4小亮度塊相鄰列中的每一個像素點(diǎn)以及與所述4x4小亮塊 左上角鄰接的左上邊像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與所述4x4小亮度塊 相鄰行中的每一個像素點(diǎn);在上水平的預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像 素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與所述4x4小亮度塊相鄰列中的每 一個像素點(diǎn)??蛇x的,當(dāng)4x4小亮度塊位于所述宏塊的左邊緣且非上邊緣時,在垂直、水平、DC、 對角左下、右垂直、下水平、左垂直和上水平各預(yù)測模式,分別根據(jù)與所述4x4小亮度塊相 鄰的每個相鄰像素點(diǎn)的原始像素值預(yù)測像素值;在對角右下預(yù)測模式,根據(jù)左鄰塊與所述 4x4小亮度塊鄰接列中的每一個像素點(diǎn)的原始像素值,計算所述4x4小亮度中每一個像素 點(diǎn)的預(yù)測像素值。可選的,當(dāng)4x4小亮度塊位于所述宏塊上邊緣且非左邊緣時,根據(jù)與所述4x4小亮 度塊鄰接的同一宏塊中其它小亮度塊的原始像素值以及上鄰塊中相應(yīng)像素點(diǎn)的重建像素 值進(jìn)行計算??蛇x的,對于4x4小亮度塊的預(yù)測類型,當(dāng)4x4小亮度塊位于所述宏塊非上邊緣且非左邊緣時,在垂直、水平、DC、對角左下、右垂直、下水平、左垂直和上水平各預(yù)測模式,分 別根據(jù)與所述4x4小亮度塊相鄰的每個相鄰像素點(diǎn)的原始像素值預(yù)測像素值;在對角右下 預(yù)測模式,根據(jù)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)和縱坐標(biāo),判斷預(yù)測像素值的計 算方式??蛇x的,所述根據(jù)4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)和縱坐標(biāo),判斷預(yù)測像素 值的計算方式包括當(dāng)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)大于其縱坐標(biāo)時,根據(jù)上 鄰塊與所述4x4小亮度塊鄰接的一行中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算;當(dāng)所述4x4小 亮度塊左上角像素點(diǎn)的橫坐標(biāo)小于其縱坐標(biāo)時,根據(jù)左鄰塊與所述4x4小亮度塊鄰接的一 列中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算;當(dāng)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)等于 其縱坐標(biāo)時,根據(jù)與所述4x4小亮度塊左上角鄰接像素點(diǎn)的重建像素值、左邊和上邊鄰接 像素點(diǎn)的原始像素值進(jìn)行計算。可選的,對于8x8色度塊的預(yù)測類型,在水平預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng) 像素點(diǎn)的原始像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng)前宏塊相鄰列 中的每一個像素點(diǎn);在垂直預(yù)測模式時,根據(jù)所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行 計算,所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰行中的每一個像素點(diǎn);在DC 預(yù)測模式和平面預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值以及上鄰塊中相 應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng)前宏塊相鄰 列中的每一個像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰行中的每一 個像素點(diǎn)。可選的,預(yù)測誤差包括在同一預(yù)測模式下所有像素點(diǎn)的實(shí)際像素值與預(yù)測像素值 之差的絕對值和值以及所選擇的預(yù)測模式的方向代價??蛇x的,所述最佳預(yù)測模式為具有最小預(yù)測誤差的預(yù)測模式。與現(xiàn)有技術(shù)相比,本發(fā)明通過根據(jù)當(dāng)前亮度塊或色度塊的左鄰塊像素點(diǎn)的原始像 素值、以及左上鄰塊像素點(diǎn)的重建像素值,獲得所述亮度塊或色度塊各預(yù)測模式的預(yù)測像 素值,進(jìn)而獲得當(dāng)前宏塊的最佳預(yù)測模式,減少了相鄰宏塊之間的依賴,提高了流水線的處 理速度和編碼效率。
圖1是視頻編碼流水線處理過程的示意圖;圖2是本發(fā)明幀內(nèi)預(yù)測方法實(shí)施方式的流程示意圖;圖3至圖6是本發(fā)明幀內(nèi)預(yù)測方法具體實(shí)施方式
中16x16亮度塊幀內(nèi)預(yù)測實(shí)施例 的示意圖;圖7是幀內(nèi)預(yù)測中4x4小亮度塊預(yù)測方向示意圖;圖8至圖16是本發(fā)明幀內(nèi)預(yù)測方法具體實(shí)施方式
中4x4小亮度塊幀內(nèi)預(yù)測實(shí)施 例的示意圖。
具體實(shí)施例方式由于H. 264幀內(nèi)編碼需要當(dāng)前宏塊的左邊宏塊的重建像素信息,因此視頻編碼的 硬件流水線實(shí)現(xiàn)中存在較強(qiáng)的依賴關(guān)系。具體來說,參考圖1,對于幀內(nèi)預(yù)測,在t時刻,當(dāng)進(jìn)行(χ+l)宏塊的幀內(nèi)預(yù)測時,需要應(yīng)用到χ宏塊的重建像素值,但是此時,χ宏塊只完成 了其預(yù)測方向的計算,只有原始像素值,也就是說,由于重建像素值的計算存在依賴性,使 得當(dāng)前宏塊(或子塊)的預(yù)測需要等待之前的宏塊(或子塊)完全完成其重建階段之后才 能開始。這些依賴關(guān)系將影響流水線,造成流水線的堵塞。為了解決上述問題,發(fā)明人進(jìn)行了大量的計算和實(shí)驗(yàn),提出了本發(fā)明。本發(fā)明實(shí)施 方式對宏塊上邊界的塊,根據(jù)其左鄰塊像素點(diǎn)的原始像素值以及其上鄰塊像素點(diǎn)的重建像 素值,獲得該塊各預(yù)測模式的預(yù)測像素值;對于非宏塊上邊界的塊,根據(jù)其左上鄰塊像素點(diǎn) 的原始像素值,獲得該塊各預(yù)測模式的預(yù)測像素值;根據(jù)各預(yù)測模式的預(yù)測像素值與實(shí)際 測量值的匹配誤差,獲得當(dāng) 前宏塊的最佳預(yù)測模式。下面首先結(jié)合附圖和實(shí)施例,對本發(fā)明實(shí)施方式進(jìn)行詳細(xì)的說明。參考圖2,本發(fā)明提供了一種幀內(nèi)預(yù)測方法,包括,分別以16x16亮度塊、4x4小亮 度塊以及8x8色度塊,對當(dāng)前宏塊進(jìn)行如下步驟步驟S41,根據(jù)與當(dāng)前宏塊相鄰的僅完成 預(yù)測方向計算的鄰塊的原始像素以及已完成重建階段的塊的重建像素,計算當(dāng)前宏塊在各 個預(yù)測模式的預(yù)測像素值;步驟S42,根據(jù)當(dāng)前宏塊的實(shí)際測量的像素值,計算各個預(yù)測模 式的預(yù)測誤差,獲得最佳預(yù)測模式。其中,由于進(jìn)行編碼時,總是按照從左往右和從上往下的順序編碼,步驟S41具體 來說,可為根據(jù)左鄰塊中相應(yīng)像素點(diǎn)的原始像素、或上鄰塊中相應(yīng)像素點(diǎn)的重建像素、或左 鄰塊中相應(yīng)像素點(diǎn)的原始像素以及上鄰塊中相應(yīng)像素點(diǎn)的重建像素,計算當(dāng)前宏塊中每個 像素點(diǎn)在各個預(yù)測模式的預(yù)測像素值。宏塊的幀內(nèi)預(yù)測包括分別對亮度和色度進(jìn)行預(yù)測。對于亮度分量,H. 264有兩種預(yù) 測類型16x16亮度塊和4x4小亮度塊,一般來說,對含有較多空域細(xì)節(jié)信息的宏塊采用4x4 小亮度塊進(jìn)行預(yù)測,而對于較平坦的區(qū)域采用16x16亮度塊進(jìn)行預(yù)測。色度預(yù)測獨(dú)立于亮 度,兩個色度分量U、V使用相同的預(yù)測模式,因此可使用8x8色度塊作為幀內(nèi)預(yù)測編碼的基 本單位。下面分別對16x16亮度塊、4x4小亮度塊以及8x8色度塊的具體實(shí)施,進(jìn)行進(jìn)一步 說明。對于16x16亮度塊,參考圖3至圖6,具有四種預(yù)測模式水平、垂直、直流系數(shù) (DC)和平面(Plane)。首先,計算在這四個預(yù)測模式時的預(yù)測像素值;具體來說,參考圖3,水平方向時,以左鄰塊101與當(dāng)前宏塊100相鄰的一列中每 一個像素點(diǎn)il、jl、kl、ll、ml、nl、0l*pl的原始像素值,作為當(dāng)前宏塊100中與il、jl、 kl、IUmUnU ol和pi同行的一行像素點(diǎn)的預(yù)測像素值;參考圖4,垂直方向時,以上鄰塊 102與當(dāng)前宏塊100相鄰的一行中每一個像素點(diǎn)al、bl、cl、dl、el、fl、gl和hi的重建像 素值,作為當(dāng)前宏塊100中與al、bl、Cl、dl、el、fl、gl和hi同列的一列像素點(diǎn)的預(yù)測像素 值;參考圖5,DC方向時,以左鄰塊103與當(dāng)前宏塊100相鄰的一列所有像素點(diǎn)i2、j2、k2、 12、m2、n2、o2和p2的原始像素值與上鄰塊104與當(dāng)前宏塊100相鄰的一行所有像素點(diǎn)a2、 b2、c2、d2、e2、f2、g2和h2的原始像素值之和的平均值,作為當(dāng)前宏塊100每一個像素點(diǎn) 的預(yù)測像素值;參考圖6,Plane方向時,對當(dāng)前宏塊100中每一個像素點(diǎn),根據(jù)左鄰塊105 相鄰的一列像素點(diǎn)i3、j3、k3、13、m3、n3、o3和p3的原始像素值及與其間距,和上鄰塊106相鄰的一行像素點(diǎn)a3、b3、c3、d3、e3、f3、g3和h3的重建像素值及與其間距,以加權(quán)平均的 方式,獲得當(dāng)前宏塊100中該像素點(diǎn)的預(yù)測像素值。接下來,根據(jù)每個像素點(diǎn)的實(shí)際像素值與其預(yù)測像素值,獲得兩者差值的絕對值, 并根據(jù)每個像素點(diǎn)像素差值的絕對值獲得當(dāng)前宏塊100所有像素點(diǎn)像素差值的絕對值之 和,以及根據(jù)所述像素差值的絕對值之和獲得預(yù)測誤差。具體來說,預(yù)測誤差可包括在同一 預(yù)測模式下所有像素點(diǎn)的像素差值絕對值之和以及所選擇的預(yù)測模式的方向代價。將具有 最小預(yù)測誤差的預(yù)測模式,作為該亮度塊的預(yù)測模式,該最小預(yù)測誤差即為該亮度塊對應(yīng) 的當(dāng)前宏塊的預(yù)測誤差。
對于4x4小亮度塊,由于當(dāng)前宏塊具有16個小亮度塊,而每一個小亮度塊具有9 種預(yù)測模式,參考圖7,分別為這樣8個方向的預(yù)測模式垂直701、水平702、對角左下703、 對角右下704、右垂直705、下水平706、左垂直707和上水平708,以及DC模式。首先,計算16個小亮度塊中,每種預(yù)測模式所對應(yīng)的預(yù)測像素值。其中,當(dāng)4x4小 亮度塊在當(dāng)前宏塊中位于不同位置時,對于同一種預(yù)測模式,所采用的具體計算步驟以及 相鄰像素點(diǎn)的像素值類型不盡相同。當(dāng)4x4小亮度塊位于當(dāng)前宏塊的左邊緣時,以該4x4小亮度塊左鄰塊的原始像素 值對該小亮度塊的預(yù)測代價進(jìn)行計算;當(dāng)4x4小亮度塊位于當(dāng)前宏塊的上邊緣時,采用該 4x4小亮度塊上鄰塊的重建像素值計算該小亮度塊的預(yù)測代價。下面以所述4x4小亮度塊位于當(dāng)前宏塊的左上角位置為例,進(jìn)一步說明對于不同 的預(yù)測模式,如何根據(jù)該4x4小亮度塊相鄰塊的像素值計算該4x4小亮度塊的預(yù)測代價。具 體來說,參考圖8至圖16,當(dāng)所述4x4小亮度塊200位于當(dāng)前宏塊(圖未示)的左上角位 置,即既位于當(dāng)前宏塊的左邊緣,且同時位于當(dāng)前宏塊的上邊緣。參考圖8,對于垂直方向,以上鄰塊201與當(dāng)前小亮度塊200鄰接的每一個像素點(diǎn) Al、Bi、Cl和Dl的重建像素值,作為當(dāng)前小亮度塊200中與Al、Bi、Cl和Dl對應(yīng)同列的一 列像素點(diǎn)的預(yù)測像素值;參考圖9,對于水平方向,以左鄰塊202與當(dāng)前小亮度塊200鄰接 的每一個像素點(diǎn)12、J2、K2和L2的原始像素值,作為當(dāng)前小亮度塊200中與12、J2、K2和 L2對應(yīng)同行的一行像素點(diǎn)的預(yù)測像素值;參考圖10,對于DC方向,計算左鄰塊203與當(dāng)前 小亮度塊200鄰接的所有像素點(diǎn)13、J3、K3和L3的原始像素值,以及上鄰塊204與當(dāng)前小 亮度塊200鄰接的所有像素點(diǎn)A3、B3、C3和D3的重建像素值的和值,并計算該和值相對于 鄰接像素點(diǎn)個數(shù)的平均值,將所述平均值作為當(dāng)前小亮度塊200中每一個像素點(diǎn)的預(yù)測像 素值;參考圖11,對于對角左下方向,根據(jù)上鄰塊205與當(dāng)前小亮度塊200鄰接的一行中相 應(yīng)像素點(diǎn)A5、B5、C5和D5以及當(dāng)前小亮度塊200的右上鄰塊206中最下一行相應(yīng)像素點(diǎn) E5、F5、G5和H5的重建像素值,計算當(dāng)前小亮度塊200中每一個像素點(diǎn)的預(yù)測像素值 ’參考 圖12至圖14,對于對角右下方向、右垂直以及下水平的模式,根據(jù)上鄰塊207與當(dāng)前小亮塊 200鄰接的一行中相應(yīng)像素點(diǎn)A6、B6、C6和D6的重建像素值,以及與當(dāng)前小亮塊200左上 角鄰接的左上邊像素點(diǎn)M的原始像素值,以及左鄰塊208與當(dāng)前小亮塊200鄰接的一列中 相應(yīng)像素點(diǎn)16、J6、K6和L6的原始像素值,分別計算當(dāng)前小亮度塊200中每一個像素點(diǎn)的 預(yù)測像素值;參考圖15,對于左垂直,根據(jù)上鄰塊209與當(dāng)前小亮塊200鄰接的一行中相應(yīng) 像素點(diǎn)A7、B7、C7和D7以及右上鄰塊210的最下一行相應(yīng)像素點(diǎn)E7、F7、G7和H7的重建 像素值,計算當(dāng)前小亮度塊200中每一個像素點(diǎn)的預(yù)測像素值;參考圖16,對于上水平,根據(jù)左鄰塊211與當(dāng)前小亮塊200鄰接的一列中相應(yīng)像素點(diǎn)18、J8、K8和L8的原始像素值, 計算當(dāng)前小亮度塊200中每一個像素點(diǎn)的預(yù)測像素值。 當(dāng)所述小亮度塊位于當(dāng)前宏塊除了左上角之外的位置時,例如當(dāng)所述小亮度塊位 于當(dāng)前宏塊的左邊緣,且不位于當(dāng)前宏塊的上邊緣時,以與所述小亮度塊相鄰的每個相鄰 像素點(diǎn)的原始像素值分別計算當(dāng)前宏塊在垂直方向、水平方向、DC方向、對角左下方向、右 垂直方向、下水平方向、左垂直方向和上水平方向的預(yù)測像素值。對于對角右下方向,根據(jù) 左鄰塊與小亮度塊鄰接的一列中相應(yīng)像素點(diǎn)的原始像素值,計算當(dāng)前小亮度塊中每一個像 素點(diǎn)的預(yù)測像素值。又例如,當(dāng)小亮度塊不位于當(dāng)前宏塊的左邊緣時,其左邊為當(dāng)前宏塊的其它小亮 度塊,采用所述鄰接小亮度塊的原始像素值對該小亮度塊的預(yù)測代價進(jìn)行計算。其中,當(dāng)該 小亮度塊同時又位于當(dāng)前宏塊的上邊緣時,采用其上鄰塊的重建像素值。具體來說,當(dāng)所述小亮度塊位于當(dāng)前宏塊的上邊緣且非左邊緣時對于垂直方向, 以上鄰塊與當(dāng)前小亮度塊鄰接的每一個像素點(diǎn)的重建像素值,作為當(dāng)前小亮度塊中與其對 應(yīng)同列的一列像素點(diǎn)的預(yù)測像素值;對于水平方向,以左邊小亮度塊與當(dāng)前小亮度塊鄰接 的每一個像素點(diǎn)的原始像素值,作為當(dāng)前小亮度塊中與其對應(yīng)同行的一行像素點(diǎn)的預(yù)測像 素值;DC方向時,計算左邊小亮度塊與當(dāng)前小亮度塊鄰接的所有像素點(diǎn)的原始像素值,以 及上鄰塊與當(dāng)前小亮度塊鄰接的所有像素點(diǎn)的重建像素值的和值,并計算該和值相對于鄰 接像素點(diǎn)個數(shù)的平均值,將所述平均值作為當(dāng)前小亮度塊中每一個像素點(diǎn)的預(yù)測像素值; 對于對角左下方向,根據(jù)上鄰塊與當(dāng)前小亮度塊鄰接的一行中相應(yīng)像素點(diǎn)以及當(dāng)前小亮度 塊右上鄰塊中最下一行相應(yīng)像素點(diǎn)的重建像素值,計算當(dāng)前小亮度塊中每一個像素點(diǎn)的預(yù) 測像素值;對于對角右下方向、右垂直和下水平,根據(jù)上鄰塊與當(dāng)前小亮度塊鄰接的一行中 相應(yīng)像素點(diǎn)以及當(dāng)前小亮度塊右上鄰塊中最下一行相應(yīng)像素點(diǎn)的重建像素值以及與當(dāng)前 小亮度塊左上角鄰接的左上邊像素點(diǎn)的原始像素值,計算當(dāng)前小亮度塊中每一個像素點(diǎn)的 預(yù)測像素值;對于左垂直,根據(jù)上鄰塊與當(dāng)前小亮度塊鄰接的一行中相應(yīng)像素點(diǎn)以及當(dāng)前 小亮度塊右上鄰塊中最下一行相應(yīng)像素點(diǎn)的重建像素值,計算當(dāng)前小亮度塊中每一個像素 點(diǎn)的預(yù)測像素值;對于上水平,根據(jù)左鄰塊與當(dāng)前小亮度塊鄰接的一列中相應(yīng)像素點(diǎn)的原 始像素值,計算當(dāng)前小亮度塊中每一個像素點(diǎn)的預(yù)測像素值。其中,當(dāng)與所述小亮度塊鄰接的全部為當(dāng)前宏塊的其它小亮度塊,即所述小亮度 塊位于當(dāng)前宏塊的非左邊緣且非上邊緣時以每個相鄰像素點(diǎn)的原始像素值分別計算當(dāng)前 宏塊在垂直方向、水平方向、DC方向、對角左下方向、右垂直方向、下水平方向、左垂直方向 和上水平方向的預(yù)測像素值。而對于對角右下方向,可通過比較當(dāng)前小亮度塊左上角像素 點(diǎn)的橫坐標(biāo)χ和縱坐標(biāo)y,判斷預(yù)測像素值的計算方式。具體來說,當(dāng)前小亮度塊左上角像素點(diǎn)的橫坐標(biāo)χ和縱坐標(biāo)y符合X > y時,根據(jù) 上鄰塊與當(dāng)前小亮度塊鄰接的一行中相應(yīng)像素點(diǎn)的重建像素值,計算當(dāng)前小亮度塊中每一 個像素點(diǎn)的預(yù)測像素值;當(dāng)前小亮度塊左上角像素點(diǎn)的橫坐標(biāo)χ和縱坐標(biāo)y符合χ < y時, 根據(jù)左鄰塊與當(dāng)前小亮度塊鄰接的一列中相應(yīng)像素點(diǎn)的原始像素值,計算當(dāng)前小亮度塊中 每一個像素點(diǎn)的預(yù)測像素值;當(dāng)前小亮度塊左上角像素點(diǎn)的橫坐標(biāo)χ和縱坐標(biāo)y符合χ = y時,根據(jù)與當(dāng)前小亮度塊左上角鄰接像素點(diǎn)的重建像素值、左邊和上邊鄰接像素點(diǎn)的原始 像素值,計算當(dāng)前小亮度塊中每一個像素點(diǎn)的預(yù)測像素值。
獲得每個小亮度塊所對應(yīng)的9種預(yù)測模式的預(yù)測像素值之后,接下來,對每個小 亮度塊分別計算各預(yù)測模式所具有的預(yù)測誤差。具體來說,通過每個像素點(diǎn)的實(shí)際像素值 與其預(yù)測像素值差值的絕對值,獲得當(dāng)前小亮度塊像素差值的絕對值之和,并根據(jù)所述預(yù) 測模式,獲得當(dāng)前小亮度塊在該預(yù)測模式的預(yù)測誤差。然后,以具有最小預(yù)測誤差的預(yù)測模 式作為每個小亮度塊的最佳預(yù)測模式。接下來,計算16個小亮度塊最佳預(yù)測模式所具有的預(yù)測誤差的和值,并將該和值 作為當(dāng)前宏塊的預(yù)測誤差。將16x16亮度塊與4x4小亮度塊所獲得的當(dāng)前宏塊的預(yù)測誤差進(jìn)行 比較,以具有 較小的預(yù)測誤差值所對應(yīng)的預(yù)測模式,確定當(dāng)前宏塊的亮度預(yù)測模式。對于8x8色度塊,由于宏塊包括兩個色度塊,并且這兩個色度塊具有同樣的預(yù)測 方式,因此需要同時計算兩個色度塊的預(yù)測誤差。色度塊具有四種可能的預(yù)測模式水平、 垂直、直流系數(shù)(DC)和平面(Plane)。首先,計算在這四個預(yù)測模式的預(yù)測像素值;具體來說,水平方向時,以左鄰塊與當(dāng)前色度塊相鄰的一列中每一個像素點(diǎn)的原 始像素值,作為當(dāng)前色度塊中與其同行的一行像素點(diǎn)的預(yù)測像素值;垂直方向時,以上鄰塊 與當(dāng)前色度塊相鄰的一行中每一個像素點(diǎn)的重建像素值,作為當(dāng)前色度塊中與其同列的一 列像素點(diǎn)的預(yù)測像素值;DC方向時,根據(jù)左鄰塊的相鄰一列像素點(diǎn)中、與當(dāng)前色度塊對應(yīng) 的像素點(diǎn)的原始像素值,以及上鄰塊的相鄰一列像素點(diǎn)中、與當(dāng)前色度塊對應(yīng)的像素點(diǎn)的 重建像素值,計算當(dāng)前色度塊每一個像素點(diǎn)的預(yù)測像素值;Plane方向時,對當(dāng)前色度塊中 每一個像素點(diǎn),根據(jù)左鄰塊的一列像素點(diǎn)的原始像素值及與其間距,和上鄰塊的一行像素 點(diǎn)的重建像素值及與其間距,以加權(quán)平均的方式,獲得當(dāng)前色度塊中該像素點(diǎn)的預(yù)測像素 值。接下來,通過每個像素點(diǎn)的實(shí)際像素值與其預(yù)測像素值差值的絕對值,獲得所有 像素點(diǎn)像素差值的絕對值之和,并根據(jù)所述像素差值的絕對值之和獲得預(yù)測誤差。具體來 說,預(yù)測誤差可包括在同一預(yù)測模式下所有像素點(diǎn)的像素差值的絕對值之和以及所選擇的 預(yù)測模式的方向代價。將具有最小預(yù)測誤差的預(yù)測模式作為當(dāng)前宏塊的色度預(yù)測模式。在本發(fā)明上述實(shí)施方式中,發(fā)明人正是通過在幀內(nèi)預(yù)測的過程中,對于尚未完成 重建階段的相鄰塊,以其原始像素值取代了其重建像素值,從而在誤差允許的范圍內(nèi),有效 地降低了當(dāng)前宏塊的預(yù)測過程對前一宏塊的依賴,避免了流水線的堵塞。相較于現(xiàn)有技術(shù),本發(fā)明上述各實(shí)施方式,根據(jù)當(dāng)前亮度塊或色度塊的左鄰塊像 素點(diǎn)的原始像素值,或者左上鄰塊像素點(diǎn)的原始像素值,計算所述亮度塊或色度塊各預(yù)測 模式的預(yù)測像素值,進(jìn)而獲得當(dāng)前宏塊的最佳預(yù)測模式,減少了相鄰宏塊之間的依賴,使得 流水線的處理速度得到提高,提高了解碼效率。雖然本發(fā)明已通過較佳實(shí)施方式說明如上,但這些較佳實(shí)施方式并非用以限定本 發(fā)明。本領(lǐng)域的技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),應(yīng)有能力對這些較佳實(shí)施方式 做出各種改正和補(bǔ)充,因此,本發(fā)明的保護(hù)范圍以權(quán)利要求書的范圍為準(zhǔn)。
權(quán)利要求
一種幀內(nèi)預(yù)測方法,其特征在于,包括根據(jù)與當(dāng)前宏塊相鄰的僅完成預(yù)測方向計算的塊的原始像素以及已完成重建階段的塊的重建像素,計算所述當(dāng)前宏塊在各個預(yù)測模式的預(yù)測像素值;根據(jù)所述當(dāng)前宏塊的實(shí)際測量的像素值,計算各個預(yù)測模式的預(yù)測誤差,獲得最佳預(yù)測模式。
2.如權(quán)利要求1所述的幀內(nèi)預(yù)測方法,其特征在于,所述根據(jù)與當(dāng)前宏塊相鄰的僅完 成預(yù)測方向計算的塊的原始像素以及已完成重建階段的塊的重建像素,計算當(dāng)前宏塊在各 個預(yù)測模式的預(yù)測像素值,具體為根據(jù)左鄰塊中相應(yīng)像素點(diǎn)的原始像素、或上鄰塊中相 應(yīng)像素點(diǎn)的重建像素、或左鄰塊中相應(yīng)像素點(diǎn)的原始像素和上鄰塊中相應(yīng)像素點(diǎn)的重建像 素,計算當(dāng)前宏塊中每個像素點(diǎn)在各個預(yù)測模式的預(yù)測像素值。
3.如權(quán)利要求2所述的幀內(nèi)預(yù)測方法,其特征在于,所述計算當(dāng)前宏塊在各個預(yù)測模 式的預(yù)測像素值具體為對于不同預(yù)測類型,分別計算當(dāng)前宏塊在對應(yīng)的各個預(yù)測模式的 預(yù)測像素值。
4.如權(quán)利要求3所述的幀內(nèi)預(yù)測方法,其特征在于,對于16x16亮度塊的預(yù)測類型, 在水平預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng)前宏塊相鄰列中的每一個像素點(diǎn);在垂直預(yù)測模式時,根據(jù)所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述上鄰 塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰行中的每一個像素點(diǎn);在DC預(yù)測模式和平面預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值以及 上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng) 前宏塊相鄰列中的每一個像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰 行中的每一個像素點(diǎn)。
5.如權(quán)利要求3所述的幀內(nèi)預(yù)測方法,其特征在于,對于4x4小亮度塊的預(yù)測類型,當(dāng) 4x4小亮度塊位于所述宏塊的左邊緣時,根據(jù)所述4x4小亮度塊左鄰塊的原始像素值進(jìn)行 預(yù)測計算;當(dāng)4x4小亮度塊位于所述宏塊的上邊緣時,根據(jù)所述4x4小亮度塊上鄰塊的重建 像素值進(jìn)行預(yù)測計算。
6.如權(quán)利要求5所述的幀內(nèi)預(yù)測方法,其特征在于,當(dāng)4x4小亮度塊位于所述宏塊的左 上角位置時,在水平預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算,所述左鄰塊 中相應(yīng)像素點(diǎn)為所述左鄰塊與所述4x4小亮度塊相鄰列中的每一個像素點(diǎn);在垂直預(yù)測模式,根據(jù)所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述上鄰塊 中相應(yīng)像素點(diǎn)為所述左鄰塊與所述4x4小亮度塊相鄰行中的每一個像素點(diǎn);在DC和左垂直的預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值以及所述上 鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與所 述4x4小亮度塊相鄰列中的每一個像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與所述 4x4小亮度塊相鄰行中的每一個像素點(diǎn);在對角左下預(yù)測模式,根據(jù)所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述上 鄰塊中相應(yīng)像素點(diǎn)包括所述上鄰塊與所述4x4小亮度塊相鄰行中的每一個像素點(diǎn)以及所 述4x4小亮度塊右上鄰塊中最下一行的每個像素點(diǎn);在對角右下、右垂直以及下水平的預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像 素值以及所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)包括 所述左鄰塊與所述4x4小亮度塊相鄰列中的每一個像素點(diǎn)以及與所述4x4小亮塊左上角鄰 接的左上邊像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與所述4x4小亮度塊相鄰行中 的每一個像素點(diǎn);在上水平的預(yù)測模式,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算,所述左 鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與所述4x4小亮度塊相鄰列中的每一個像素點(diǎn)。
7.如權(quán)利要求5所述的幀內(nèi)預(yù)測方法,其特征在于,當(dāng)4x4小亮度塊位于所述宏塊的左 邊緣且非上邊緣時,在垂直、水平、DC、對角左下、右垂直、下水平、左垂直和上水平各預(yù)測模式,分別根據(jù)與 所述4x4小亮度塊相鄰的每個相鄰像素點(diǎn)的原始像素值預(yù)測像素值;在對角右下預(yù)測模式,根據(jù)左鄰塊與所述4x4小亮度塊鄰接列中的每一個像素點(diǎn)的原 始像素值,計算所述4x4小亮度中每一個像素點(diǎn)的預(yù)測像素值。
8.如權(quán)利要求5所述的幀內(nèi)預(yù)測方法,其特征在于,當(dāng)4x4小亮度塊位于所述宏塊上邊 緣且非左邊緣時,根據(jù)與所述4x4小亮度塊鄰接的同一宏塊中其它小亮度塊的原始像素值 以及上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算。
9.如權(quán)利要求3所述的幀內(nèi)預(yù)測方法,其特征在于,對于4x4小亮度塊的預(yù)測類型,當(dāng) 4x4小亮度塊位于所述宏塊非上邊緣且非左邊緣時,在垂直、水平、DC、對角左下、右垂直、下水平、左垂直和上水平各預(yù)測模式,分別根據(jù)與 所述4x4小亮度塊相鄰的每個相鄰像素點(diǎn)的原始像素值預(yù)測像素值;在對角右下預(yù)測模式,根據(jù)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)和縱坐標(biāo),判斷 預(yù)測像素值的計算方式。
10.如權(quán)利要求9所述的幀內(nèi)預(yù)測方法,其特征在于,所述根據(jù)4x4小亮度塊左上角像 素點(diǎn)的橫坐標(biāo)和縱坐標(biāo),判斷預(yù)測像素值的計算方式包括當(dāng)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)大于其縱坐標(biāo)時,根據(jù)上鄰塊與所述4x4 小亮度塊鄰接的一行中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算;當(dāng)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)小于其縱坐標(biāo)時,根據(jù)左鄰塊與所述4x4 小亮度塊鄰接的一列中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算;當(dāng)所述4x4小亮度塊左上角像素點(diǎn)的橫坐標(biāo)等于其縱坐標(biāo)時,根據(jù)與所述4x4小亮度 塊左上角鄰接像素點(diǎn)的重建像素值、左邊和上邊鄰接像素點(diǎn)的原始像素值進(jìn)行計算。
11.如權(quán)利要求3所述的幀內(nèi)預(yù)測方法,其特征在于,對于8x8色度塊的預(yù)測類型,在水平預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值進(jìn)行計算,所述左鄰 塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng)前宏塊相鄰列中的每一個像素點(diǎn);在垂直預(yù)測模式時,根據(jù)所述上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述上鄰 塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰行中的每一個像素點(diǎn);在DC預(yù)測模式和平面預(yù)測模式時,根據(jù)所述左鄰塊中相應(yīng)像素點(diǎn)的原始像素值以及 上鄰塊中相應(yīng)像素點(diǎn)的重建像素值進(jìn)行計算,所述左鄰塊中相應(yīng)像素點(diǎn)為所述左鄰塊與當(dāng) 前宏塊相鄰列中的每一個像素點(diǎn),所述上鄰塊中相應(yīng)像素點(diǎn)為所述上鄰塊與當(dāng)前宏塊相鄰 行中的每一個像素點(diǎn)。
12.如權(quán)利要求1所述的幀內(nèi)預(yù)測方法,其特征在于,所述預(yù)測誤差包括在同一預(yù)測模 式下所有像素點(diǎn)的實(shí)際像素值與預(yù)測像素值之差的絕對值和值以及所選擇的預(yù)測模式的 方向代價。
13.如權(quán)利要求1所述的幀內(nèi)預(yù)測方法,其特征在于,所述最佳預(yù)測模式為具有最小預(yù) 測誤差的預(yù)測模式。
全文摘要
一種幀內(nèi)預(yù)測方法,分別以16x16亮度塊、4x4小亮度塊以及8x8色度塊,對當(dāng)前宏塊進(jìn)行如下步驟根據(jù)左邊塊的原始像素以及上邊塊的重建像素,計算當(dāng)前宏塊在各個預(yù)測模式的預(yù)測像素值;根據(jù)當(dāng)前宏塊的實(shí)際測量值,計算各個預(yù)測模式的預(yù)測誤差,獲得最佳預(yù)測模式。本發(fā)明根據(jù)當(dāng)前亮度塊或色度塊的左鄰塊像素點(diǎn)的原始像素值、以及上鄰塊像素點(diǎn)的重建像素值,獲得所述亮度塊或色度塊各預(yù)測模式的預(yù)測像素值,進(jìn)而獲得當(dāng)前宏塊的最佳預(yù)測模式,減少了相鄰宏塊之間的依賴,提高了流水線的處理速度和編碼效率。
文檔編號H04N7/32GK101820546SQ20091011833
公開日2010年9月1日 申請日期2009年2月27日 優(yōu)先權(quán)日2009年2月27日
發(fā)明者焦華龍, 皮川, 袁開智 申請人:源見科技(蘇州)有限公司