国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      幀內預測的方法及裝置的制作方法

      文檔序號:7924941閱讀:180來源:國知局
      專利名稱:幀內預測的方法及裝置的制作方法
      技術領域
      本發(fā)明涉及圖像解碼技術,尤其涉及圖像解碼中幀內預測的方法及裝置。
      背景技術
      參見圖1,為H.264標準中的圖像解碼過程,包括以下步驟 步驟IOI,對接收到的編碼數據進行熵解碼,得到熵解碼后的數據。 步驟102,對熵解碼后的數據進行反量化處理,得到變換系數。 步驟103,對變換系數進行逆離散余弦變換(DTC , Discrete Cosine Transform),得到殘差圖像。
      殘差圖像的每個像素值是原始圖像相應點的像素值減去預測圖像相應 點的像素值之差,所謂預測圖像,也就是與原始圖像接近的圖像。
      每幅圖像由多個宏塊組成,每個宏塊包括16x 16矩陣的像素值,宏塊 在圖像中按從左至右的順序排列,排列完一行宏塊后,再從第二行宏塊開始 從左至右排列,直至圖像的右下角。對于圖像中包含細節(jié)較多的部分,常將 相應部分的宏塊劃分為多個子塊,例如,可以將16x 16的宏塊矩陣劃分16 個4 x 4矩陣的子塊或者劃分為4個8 x 8矩陣的子塊。
      步驟104,對接收到的編碼數據進行幀內預測或幀間預測,得到預測圖像。
      步驟105,將步驟103處理得到的殘差圖像和步驟104中得到的預測圖 像相加,得到與原始圖像非常相似的圖像。 至此,解碼過程結束。
      上述流程的步驟104中,進行幀內預測時,以宏塊為單位進行預測,按
      照從左至右的順序,第一行宏塊內的宏塊逐個進行預測,完成圖像第一行宏塊 的預測后,進行第二行宏塊從左至右的預測,依此類推,直到將整幅圖像都預 測完為止。如果宏塊被劃分為多個子塊,則對該宏塊進行預測時,以各個子 塊為單位進行預測。可見,當前預測塊可能是宏塊,也可能是子塊。
      每個宏塊有一個序號,稱為宏塊序號,幀內預測時按照宏塊序號順序地對 各個宏塊進行預測。每個宏塊內的各個子塊有子塊序號,子塊序號體現了對該 宏塊內各個子塊進4f預測的順序。
      對當前預測塊進行預測時,需要用到與當前預測塊的上邊邊界相鄰的預 測塊的下邊邊界像素值,以及與當前預測塊的左邊邊界相臨的預測塊的右邊 邊界像素值。進行預測時,首先確定當前預測塊的鄰近上預測塊的下邊邊界 各個像素在圖像中的絕對坐標,以及鄰近左預測塊的右邊邊界各個像素在圖
      像中的絕對坐標;根據確定出的當前預測塊的鄰近上預測塊的下邊邊界的絕 對坐標和鄰近左預測塊的右邊邊界的絕對坐標,在緩存中查詢出對應位置的
      右邊邊界的像素值計算出當前預測塊的像素值;并且,在緩存中存儲當前預 測塊的右邊邊界各像素的絕對坐標和其像素值之間的對應關系,以及當前預
      儲的對應關系用于后續(xù)對其他預測塊進行像素值預測時使用。
      下面通過圖2的流程對現有技術中進行幀內預測的方法進行具體說明, 該方法包括以下步驟
      步驟201,判斷當前預測宏塊的幀內預測類型,若為16xl6的矩陣類型, 則執(zhí)行步驟202,若為8xg的矩陣類型,則執(zhí)行步驟208,若為4x4的矩 陣類型,則執(zhí)行步驟215。
      解碼端接收到的編碼數據中包含有各個宏塊的幀內預測類型的信息,每個 宏塊序號對應一個預測類型,對當前預測宏塊進行幀內預測時,根據宏塊序號 便可獲知當前預測宏塊的預測類型。
      步驟202,確定當前預測宏塊的鄰近上預測塊的下邊邊界像素相對于其
      所屬16x 16宏塊的像素坐標,以及當前預測宏塊的鄰近左預測塊的右邊邊 界像素相對于其所屬16x 16宏塊的像素坐標。
      步驟203,確定當前預測宏塊的鄰近上邊宏塊相對于圖像左上角的坐標, 以及當前預測宏塊的鄰近左邊宏塊相對于圖像左上角的坐標。
      步驟204,根據步驟202-203獲得的坐標計算當前預測宏塊的鄰近上 預測塊的下邊邊界像素和鄰近左預測塊的右邊邊界像素相對于圖像左上角 的坐標,也就是在圖像中的絕對坐標。
      本步驟計算絕對坐標的方法具體包括將步驟202中計算得到的鄰近上 預測塊的下邊邊界各像素的相對坐標分別加上步驟203得到的鄰近上邊宏 塊相對于圖像左上角的坐標,得到鄰近上預測塊的下邊邊界各像素在圖像中 的絕對坐標;將步驟202中計算得到的鄰近左預測塊的右邊邊界各像素的相 對坐標分別加上步驟203得到的鄰近左邊宏塊相對于圖像左上角的坐標,得 到鄰近左預測塊的右邊邊界各像素在圖像中的絕對坐標。
      步驟205,根據計算得到的當前預測宏塊的鄰近上預測塊的下邊邊界各 像素和鄰近左預測塊的右邊邊界各像素的絕對坐標,從緩存中查詢對應的像 素值。
      該緩存的寬度為圖像寬度,該緩存的長度為圖像長度。
      步驟206,根據查詢出的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊
      的右邊邊界像素值計算出當前預測宏塊的像素值。
      獲取當前預測宏塊的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的右
      邊邊界像素值之后,便可計算出當前預測子塊的像素值,其計算方法為本領域
      技術人員公知技術,具體可參見H.264標準,這里不贅述。
      步驟207,將當前預測宏塊的右邊邊界各像素值與其絕對坐標之間的對應
      關系存儲到緩存中,將當前預測宏塊的下邊邊界各像素值與其絕對坐標之間的
      對應關系存儲到緩存中。
      存儲到緩存中的對應關系用于后續(xù)對其他宏塊進行預測。 步驟208,確定當前預測子塊的鄰近上預測塊的下邊邊界像素相對于其
      所屬8x8宏塊的像素坐標,以及當前預測子塊的鄰近左預測塊的右邊邊界 像素相對于其所屬8x8宏塊的像素坐標。
      步驟209,確定當前預測子塊的鄰近上預測塊相對于所屬宏塊的坐標, 以及當前預測子塊的鄰近左預測塊相對于所屬宏塊的坐標。
      步驟210,確定當前預測子塊的鄰近上預測塊所屬的宏塊相對于圖像左 上角的坐標,以及當前預測子塊的鄰近左預測塊所屬的宏塊相對于圖像左上 角的坐標。
      步驟211,根據步驟208-210獲得的坐標計算當前預測子塊的鄰近上
      的坐標,也就是在圖像中的絕對坐標。
      本步驟計算絕對坐標的方法具體包括將步驟208中計算得到的鄰近上 預測塊的下邊邊界各像素的相對坐標分別加上步驟209得到的鄰近上預測 塊相對于其所屬宏塊的坐標,再加上步驟210得到的鄰近上預測塊所屬的宏 塊相對于圖像左上角的坐標,得到鄰近上預測塊的下邊邊界像素在圖像中的 絕對坐標;將步驟208中計算得到的鄰近左預測塊的右邊邊界各像素的相對 坐標分別加上步驟209得到的鄰近左預測塊相對于其所屬宏塊的坐標,再加 上步驟210得到的鄰近左預測塊所屬的宏塊相對于圖像左上角的坐標,得到 鄰近左預測塊的右邊邊界像素在圖像中的絕對坐標。
      步驟212,根據計算得到的當前預測子塊的鄰近上預測塊的下邊邊界像 素和鄰近左預測塊的右邊邊界像素的絕對坐標,從緩存中查詢對應的像素 值。
      步驟213,根據查詢出的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊 的右邊邊界像素值計算出當前預測子塊的像素值。
      步驟214,將當前預測子塊的右邊邊界像素值與其絕對坐標之間的對應關 系存儲到緩存中,將當前預測子塊的下邊邊界像素值與其絕對坐標之間的對應 關系存儲到緩存中。
      按照步驟208 ~ 214對當前預測宏塊的所有預測子塊進行預測,便可計算得
      到當前宏塊內的所有像素值。
      步驟215,確定當前預測子塊的鄰近上預測塊的下邊邊界像素相對于其 所屬4x4子塊的像素坐標,以及當前預測子塊的鄰近左預測塊的右邊邊界 像素相對于其所屬4x4子塊的像素坐標。
      步驟216,確定當前預測子塊的鄰近上預測塊相對于所屬宏塊的坐標, 以及當前預測子塊的鄰近左預測塊相對于所屬宏塊的坐標。
      步驟217,確定當前預測子塊的鄰近上預測塊所屬的宏塊相對于圖像左 上角的坐標,以及當前預測子塊的鄰近左預測塊所屬的宏塊相對于圖像左上 角的坐標。
      步驟218,根據步驟215-217獲得的坐標計算當前預測子塊的鄰近上 預測塊的下邊邊界像素和鄰近左預測塊的右邊邊界像素相對于圖像左上角 的坐標,也就是在圖像中的絕對坐標。
      本步驟計算絕對坐標的方法具體包括將步驟215中計算得到的鄰近上 預測塊的下邊邊界各像素的相對坐標分別加上步驟216得到的鄰近上預測 塊相對于其所屬宏塊的坐標,再加上步驟217得到的鄰近上預測塊所屬的宏 塊相對于圖像左上角的坐標,得到鄰近上預測塊的下邊邊界像素在圖像中的 絕對坐標;將步驟215中計算得到的鄰近左預測塊的右邊邊界各像素的相對 坐標分別加上步驟216得到的鄰近左預測塊相對于其所屬宏塊的坐標,再加 上步驟217得到的鄰近左預測塊所屬的宏塊相對于圖像左上角的坐標,得到 鄰近左預測塊的右邊邊界像素在圖像中的絕對坐標。
      步驟219,根據計算得到的當前預測子塊的鄰近上預測塊的下邊邊界像 素和鄰近左預測塊的右邊邊界像素的絕對坐標,從緩存中查詢對應的像素 值。
      步驟220,根據查詢出的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊 的右邊邊界像素值計算出當前預測子塊的像素值。
      步驟221,將當前預測子塊的右邊邊界像素值與其絕對坐標之間的對應關 系存儲到緩存中,將當前預測子塊的下邊邊界像素值與其絕對坐標之間的對應關系存儲到緩存中。
      按照步驟215~221對當前預測宏塊的所有預測子塊進行預測,便可計算得 到當前宏塊內的所有像素值。
      按照步驟201 -221對當前預測宏塊進行預測,計算得到當前宏塊內的所有 像素值之后,對其他宏塊類似地執(zhí)行201~221,便可計算得到整幅圖像的像素 值。
      現有幀內預測方法中,需要首先經過復雜的計算獲得當前預測塊的鄰近
      坐標,根據絕對坐標在緩存中查詢出鄰近上預測塊的下邊邊界像素值和鄰近 左預測塊的右邊邊界像素值,該計算方法非常耗時。尤其對于幀內以4x4 矩陣進行預測時,計算各個4x4子塊的鄰近左預測塊的右邊邊界像素值和 鄰近上預測塊的下邊邊界像素值的過程更加復雜,這大大影響了解碼速度。 并且,H.264視頻壓縮標準非常復雜,計算機需要進行大量的計算才能解碼 出圖像,如果計算機的計算速度不夠或計算方法太復雜,則解碼速度無法達 到人們觀看視頻的要求。

      發(fā)明內容
      本發(fā)明提供一種幀內預測的方法,該方法能夠提高圖像解碼的速度。 本發(fā)明提供一種幀內預測的裝置,該裝置能夠提高圖像解碼的速度。 一種幀內預測的方法,該方法包^^舌
      將圖像中每個宏塊的各列像素值按照行號進行順序編號,作為每個宏塊中 各列像素值的列緩存索引,設置右邊邊界緩存,用于對應列緩存索引存儲對預 測塊進行預測后的最右邊一列的像素值,該右邊邊界緩存的寬度為宏塊寬度; 將圖像中每行像素值按照列號進行順序編號,作為圖像中各行像素值的行緩存 索引,設置下邊邊界緩存,用于對應行緩存索引存儲對預測塊進行預測后的最 下邊一行的像素值,該下邊邊界緩存的寬度為圖像寬度;
      確定當前預測塊的鄰近上預測塊的下邊邊界像素值的行緩存索引,并確定
      當前預測塊的鄰近左預測塊的右邊邊界像素值的列緩存索引;
      在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界像素值的朽-纟爰 存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊界像素值,在 右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對應的像素值, 作為當前預測塊的鄰近左預測塊的右邊邊界像素值;
      素值計算出當前預測塊的像素值。
      一種幀內預測的裝置,該裝置包括鄰近像素值獲取模塊、計算模塊、下邊 邊界緩存和右邊邊界緩存;
      所述右邊邊界緩存,用于對應列緩存索引存儲對預測塊進行預測后的最右 邊一列的像素值,該右邊邊界緩存的寬度為宏塊寬度,每個宏塊中各列像素的 列緩存索引為將圖像中每個宏塊的各列按照行號進行順序編號后的序號;
      所述下邊邊界緩存,用于對應行緩存索引存儲對預測塊進行預測后的最下 邊一行的像素值,該下邊邊界緩存的寬度為圖像寬度,圖像中各行像素的列緩 存索引為將圖像中每行像素按照列號進行順序編號后的序號;
      所述鄰近像素值獲取模塊,用于確定當前預測塊的鄰近上預測塊的下邊邊 界像素值的行緩存索引,并確定當前預測塊的鄰近左預測塊的右邊邊界像素值 的列緩存索引;在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界像 素值的行緩存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊界 像素值,在右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對應 的像素值,作為當前預測塊的鄰近左預測塊的右邊邊界像素值;
      所述計算模塊,用于根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左 預測塊的右邊邊界像素值計算出當前預測塊的像素值。
      從上述方案可以看出,本發(fā)明中,設置的右邊邊界緩存用于對應列緩存索 31存儲對預測塊進行預測后的最右邊一列的像素值,每個宏塊中各列像素的列 緩存索引為將圖像中每個宏塊的各列按照行號進行順序編號后的序號,設置的最下邊一行的像
      素值,圖像中各行像素的行緩存索引為將圖像中每行像素按照列號進行順序編
      號后的序號;進行幀內預測時,確定當前預測塊的鄰近上預測塊的下邊邊界《象 素值和鄰近左預測塊的右邊邊界像素值的列緩存索引,在下邊邊界緩存和右邊 邊界緩存中獲取與確定出的列緩存索引對應的像素值,以計算出當前預測塊的 像素值。這樣,不需要進行大量的計算確定當前預測塊的鄰近左預測塊的右邊 邊界像素值和鄰近上預測塊的下邊邊界像素值的絕對坐標,以獲得鄰近左預測 塊的右邊邊界像素值和鄰近上預測塊的下邊邊界像素值,從而,節(jié)省了預測時 間,提高了圖像的解碼速度。


      圖1為H.264標準中的圖像解碼流程圖2為現有技術中進行幀內預測的方法流程圖3為本發(fā)明進行幀內預測的方法流程圖4為本發(fā)明進行幀內預測的裝置結構示意圖。
      具體實施例方式
      為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結合實施例和 附圖,對本發(fā)明進一步詳細說明。
      進行幀內預測過程中,需要獲取當前預測塊的鄰近上預測塊的下邊邊界像 素值和鄰近左預測塊的右邊邊界像素值,根據獲取的鄰近上預測塊的下邊邊界
      當前預測塊的鄰近左預測塊的右邊邊界像素值存儲于右邊邊界緩存中。將圖像 中每個宏塊的各列像素值按照行號進行順序編號,作為每個宏塊中各列像素 值的列緩存索引,設置右邊邊界緩存,用于對應列緩存索引存儲對預測塊進 行預測后的最右邊一列的像素值,該右邊邊界緩存的寬度為宏塊寬度;將圖 像中每行像素值按照列號進行順序編號,作為圖像中各行像素值的行緩存索
      引,設置下邊邊界緩存,用于對應行緩存索引存儲對預測塊進行預測后的最 下邊一行的像素值,該下邊邊界緩存的寬度為圖像寬度。當前預測塊可能是 當前預測宏塊,也可能是將當前預測宏塊劃分后的當前預測子塊。
      右邊邊界緩存內存儲了 16個像素值,可以表示為16x1的矩陣,包括1 行16列,從左至右,假設各個像素值對應的列緩存索引表示為1, 2, 3......16;
      圖像以宏塊為單位,每個宏塊的像素值為16xl6的矩陣,包括16行16列,每 列的像素值為16個,那么相應地,宏塊內各列像素值的列緩存索引為1, 2, 3......16。
      用A表示圖像寬度,則下邊邊界緩存內存儲了 A個像素值,可以表示為A xl的矩陣,包括1行A列,從左至右,假設各個像素值對應的行緩存索引表 示為1, 2, 3......A;那么相應地,圖像各行像素值的行緩存索引按從左至右的
      順序表示為1, 2, 3......A。
      本發(fā)明對圖像中的各個宏塊進行預測的順序與現有技術相同,也就是首先 按照從左至右的順序,對第一行宏塊內的宏塊逐個進行預測,完成圖像第一行 宏塊的預測后,進行第二行宏塊從左至右的預測,依此類推,直到將整幅圖像 都預測完為止。如果宏塊被劃分為多個子塊,則對該宏塊進行預測時,以各 個子塊為單位進行預測。
      對各個宏塊進行預測時,首先確定當前預測塊的鄰近上預測塊的下邊邊界 像素值的行緩存索引,并確定當前預測塊的鄰近左預測塊的右邊邊界像素值的 列緩存索引;然后在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界 像素值的行緩存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊 界像素值,在右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對 應的像素值,作為當前預測塊的鄰近左預測塊的右邊邊界像素值;再根據獲取 的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的右邊邊界像素值計算出當 前預測塊的像素值。
      如果當前預測塊的鄰近上預測塊和鄰近左預測塊都存在,則進行預測過程 中,在下邊邊界緩存中獲取的與確定出的鄰近上預測塊的下邊邊界像素值的行
      緩存索引對應的像素值,為當前預測塊的鄰近上預測塊在計算出像素值后將其
      下邊邊界像素值存儲到下邊邊界緩存的對應行緩存索引處的像素值;在右邊邊
      的像素值,為當前預測塊的鄰近左預測塊在計算出像素值后將其右邊邊界像素 值緩存到右邊邊界緩存的對應列緩存索引處的像素值。
      如果當前預測塊的鄰近左預測塊存在,而鄰近上預測塊不存在,例如,當 前預測塊為圖像第一行、最后一列的宏塊,則進行預測過程中,在下邊邊界緩 存中獲取的與確定出的鄰近上預測塊的下邊邊界像素值的行緩存索引對應的^f象 素值,為下邊邊界緩存中與確定出的鄰近上預測塊的下邊邊界像素值的行緩存 索引對應的初始值;在右邊邊界緩存中獲取的與確定出的鄰近左預測塊的右邊 邊界像素值的列緩存索引對應的像素值,為當前預測塊的鄰近左預測塊在計算 出像素值后將其右邊邊界像素值緩存到右邊邊界緩存的對應列緩存索引處的像 素值。
      如果當前預測塊的鄰近左預測塊不存在,而鄰近上預測塊存在,例如,當 前預測塊為圖像第二行、第一列的宏塊,則進行預測過程中,在下邊邊界緩存
      值,為當前預測塊的鄰近上預測塊在計算出像素值后將其下邊邊界像素值存儲 到下邊邊界緩存的對應行緩存索引處的1象素值;在右邊邊界緩存中獲取的與確 定出的鄰近左預測塊的右邊邊界像素值的列緩存索引對應的像素值,為右邊邊 界緩存中存儲的與確定出的鄰近左預測塊的右邊邊界像素值的列緩存索引對應 ^4刀士會i!i。
      如果當前預測塊的鄰近左預測塊不存在,且鄰近上預測塊也不存在,例如, 當前預測塊為圖像第一行、第一列的宏塊,則進行預測過程中,在下邊邊界緩
      素值,為下邊邊界緩存中與確定出的鄰近上預測塊的下邊邊界像素值的行緩存 索引對應的初始值;在右邊邊界緩存中獲取的與確定出的鄰近左預測塊的右邊 邊界像素值的列緩存索引對應的像素值,為右邊邊界緩存中存儲的與確定出的鄰近左預測塊的右邊邊界像素值的列緩存索引對應的初始值。
      計算出當前預測塊的像素值之后,將當前預測塊的右邊邊界像素值存儲到 右邊邊界緩存中相應列緩存索引的位置,如果右邊邊界緩存中與當前預測塊的 右邊邊界像素值相應的列緩存索引處已經存儲有像素值,則用當前預測塊的右
      邊邊界像素值更新右邊邊界緩存中相應列緩存索引處的像素值;并且,將當前 預測塊的下邊邊界^f象素值存儲到下邊邊界緩存中相應行緩存索引處的位置,如 果下邊邊界緩存中與當前預測塊的下邊邊界像素值相應的行緩存索引處已經存 儲有像素值,則用當前預測塊的下邊邊界像素值更新下邊邊界緩存中相應行緩 存索引處的像素值。
      將計算得到的當前預測塊的下邊邊界像素值存儲到下邊邊界緩存中的相 應位置,將計算得到的當前預測塊的右邊邊界像素值存儲到右邊邊界緩存中的 相應位置。這樣,在后面的預測中便可直接從右邊邊界緩存和下邊邊界緩存中
      像素值,而不需要進行大量的計算確定當前預測塊的鄰近左預測塊的右邊邊界 像素值和鄰近上預測塊的下邊邊界像素值的絕對位置,以獲得鄰近左預測塊的 右邊邊界像素值和鄰近上預測塊的下邊邊界像素值。
      下面結合圖3對本發(fā)明方案進行具體說明,用LeftPixdBuf[16]表示右 邊邊界緩存,用PicWidthPixe舊ufIPicWidth]表示下邊邊界緩存。初始時,由 于圖像左上角第一個宏塊的鄰近左預測塊的右邊邊界像素值為0,并且,圖 像的鄰近上預測塊的下邊邊界的像素值都為0,因此,可以將LeftPixe舊uft16] 和PicWidthPixelBuf[PicWidth]]內的各個緩存索引對應的初始像素值都設為 0,也可以、尋
      引對應的初始像素值都設為
      參見圖3,為本發(fā)明幀內預測的方法流程圖,本實施例中,假設
      LeftPixe舊uf[16]中存儲的像素值的列緩存索引為1, 2, 3......16;用A表示
      圖像寬度,假設PicWidthPixelBuf[PicWidth]]中存儲的像素值的行緩存索引 為1, 2, 3......A, A為16的倍數。圖3的流程包括以下步驟
      步驟301,判斷當前預測宏塊的幀內預測類型,若為16xl6的矩陣類型, 則執(zhí)行步驟302,若為8x8的矩陣類型,則執(zhí)行步驟306,若為4x4的矩 陣類型,則執(zhí)行步驟31(K
      步驟302,確定當前預測宏塊的鄰近上預測塊的下邊邊界像素值的行緩 存索引,確定當前預測宏塊的鄰近左預測塊的右邊邊界像素值的列緩存索 引。
      對當前預測宏塊進行幀內預測時,根據當前預測宏塊的宏塊序號便可確 定當前預測宏塊的上邊邊界像素值的行緩存索引以及左邊邊界像素值的列 緩存索引,當前預測宏塊的上邊邊界像素值的行緩存索引也就是當前預測塊 鄰近上預測塊的下邊邊界像素值的行緩存索引,當前預測宏塊的左邊邊界像 素值的列緩存索引也就是當前預測塊鄰近左預測塊的右邊邊界像素值的列 緩存索引。
      根據當前預測宏塊的宏塊序號確定當前預測宏塊的上邊邊界像素值的 行緩存索引的方法可以為用當前宏塊的宏塊序號減去起始宏塊的宏塊序 號,得到相減結果,判斷相減結果是否小于圖像每行的宏塊數目,將當前宏 塊的宏塊序號用M表示,將起始宏塊的宏塊序號用N表示,將M-N的結果 用O表示,將圖像每行的宏塊數目用P表示,如果O小于P,則當前預測 宏塊的上邊邊界像素值的行緩存索引為(M-N)x 16+l,(M-N)x 16+2,(M-N)
      x 16+3......(M-N)x 16+16;如果O大于或等于P,則用O對P求余,得到
      求余結果,將該求余結果表示為Q,則當前預測宏塊的上邊邊界像素值的行 緩存索引為Qxl6+1, Qxl6 + 2, Qxi6 + 3......Qxl6+16。
      假設當前預測宏塊為圖像中左上角的第一宏塊,宏塊序號為1,則當前預 測宏塊的鄰近上預測塊的下邊邊界像素值的行緩存索引為1, 2, 3......16,當
      前預測宏塊的鄰近左預測塊的右邊邊界像素值的行緩存索引為1, 2, 3......16。
      再比如,假設當前預測宏塊為圖像左上角第一宏塊右邊的宏塊,這里將該 當前預測宏塊稱為第二宏塊,宏塊序號為2,則當前預測宏塊的鄰近上預測塊 的下邊邊界像素值的行緩存索引為17, 18, 19......32,當前預測宏塊的鄰近左預測塊的右邊邊界像素值的行緩存索引為1, 2, 3......16。
      又比如,假設P為3, M為4, N為1, 0=M-N = 3 = P,也就是當前預測 宏塊為圖像第二行第一列的宏塊,用O對P求余,得到的求余結果為O,則當 前預測宏塊的鄰近上預測塊的下邊邊界像素值的行緩存索引為1, 2, 3......16,
      當前預測宏塊的鄰近左預測塊的右邊邊界像素值的行緩存索引為1, 2, 3......16。
      步驟303 ,在PicWidthPixe舊ufIPicWidth]]中獲取與確定出的鄰近上預測塊 的下邊邊界像素值的行緩存索引對應的像素值,在LeftPixeffiuf!16]中獲取與確 定出的左邊邊界像素值的列緩存索引對應的像素值。
      假設當前預測宏塊為第二宏塊,則本步驟具體包括在
      PicWidthPixdBufIPicWidth]]中獲取行緩存索引為17, 18, 19......32所對應的像
      素值,作為當前預測宏塊的鄰近上預測塊的下邊邊界像素值,此時,
      PicWidthPixe舊ufIPicWidth]]中行緩存索引為17, 18, 19......32所對應的像素值
      為初始值,在LeftPixelBuf[16]中獲取列緩存索引為1, 2, 3......16所對應的像
      素值,作為當前預測宏塊的鄰近左預測塊的右邊邊界像素值。
      右邊邊界像素值計算出當前預測宏塊的像素值。
      獲取當前預測宏塊的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的右 邊邊界像素值之后,便可計算出當前預測宏塊的像素值,其計算方法為現有技 術,這里不贅述。
      步驟305,將計算出的當前預測宏塊的右邊邊界像素值存儲到右邊邊界緩 存中相應列緩存索引的位置,將計算出的當前預測宏塊的下邊邊界像素值存儲 到下邊邊界緩存中相應行緩存索? 1的位置。
      假設當前預測宏塊為第二宏塊,則當前預測宏塊的右邊邊界像素值為該預 測宏塊第16列的所有像素值,第16列的各像素值對應的列緩存索引為1, 2, 3......16,由于右邊邊界緩存中已經存儲了第一宏塊的右邊邊界像素值,因此進
      行存儲時,用當前預測宏塊的第16列的各像素值更新右邊邊界緩存中相應列緩
      存索引的像素值;當前預測宏塊的下邊邊界像素值為該預測宏塊第16行的各像 素值,第16行的各像素值對應的行緩存索引為17, 18, 19......32,進行存儲
      時,將當前宏塊的第16行的所有像素值存儲到下邊邊界緩存中相應行緩存索《I 的位置。
      步驟306,確定當前預測8x8子塊的鄰近上預測塊的下邊邊界像素值 的行緩存索引,確定當前預測8x8子塊的鄰近左預測塊的右邊邊界像素值 的右緩存索引。
      當前預測子塊的上邊邊界像素值的行緩存索引也就是當前預測子塊鄰 近上預測塊的下邊邊界像素值的行緩存索引,當前預測子塊的左邊邊界像素 值的列緩存索51也就是當前預測子塊鄰近左預測塊的右邊邊界像素值的列 緩存索引。
      對當前預測子塊進行幀內預測時,根據當前預測子塊所屬宏塊的宏塊序 號和當前預測子塊在所屬宏塊中的相對位置確定當前預測子塊的鄰近上預 測塊的下邊邊界像素值的行緩存索引,根據當前預測子塊在所屬宏塊中的相 對位置確定當前預測子塊的鄰近左預測塊的右邊邊界像素值的列緩存索引, 例如,對于8x8的當前預測子塊,在宏塊中的相對位置為其所屬宏塊中第 一行第二列的子塊,則可以簡單地推知,當前預測子塊的上邊邊界像素值的 行緩存索引對應其所屬宏塊的上邊邊界像素值的行緩存索引中的后8位行 緩存索引,類似地,可以簡單地推知,當前預測子塊的左邊邊界的列緩存索 引對應其所屬宏塊的左邊邊界像素值的列緩存索引中的前8位列緩存索引。
      化支設當前預測宏塊為圖像中左上角的第一宏塊,當前預測子塊為當前預測 宏塊左上角的第一個8x8子塊,則當前預測子塊的鄰近上預測塊的下邊邊界像 素值的行緩存索引為1, 2, 3......8,當前預測子塊的鄰近左預測塊的右邊邊
      界像素值的列緩存索引為1, 2, 3......8。
      步驟307,在PicWidthPixe舊uf[PicWidth]]中獲取與確定出的鄰近上預測塊 的下邊邊界像素值的行緩存索引對應的像素值,在LeftPixe舊i416]中獲取與確 定出的左邊邊界像素值的列緩存索引對應的像素值。 々叉設當前預測子塊為第一宏塊左上角的第一個8 x 8子塊,則本步驟具體包 括在PicWidthPixe舊uf[PicWidth]]中獲取行緩存索引為1, 2, 3......8所對應
      的像素值,作為當前預測子塊的鄰近上預測塊的下邊邊界像素值,在 LeftPixe舊uf[16]中獲取列緩存索引為1, 2, 3......8所對應的像素值,作為當前
      預測子塊的鄰近左預測塊的右邊邊界#>素值。
      步驟308,根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的 右邊邊界像素值計算出當前預測子塊的像素值。
      獲取當前預測子塊的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的右 邊邊界像素值之后,便可計算出當前預測子塊的像素值,其計算方法為現有技 術,這里不贅述。
      步驟309,將計算出的當前預測子塊的右邊邊界像素值存儲到右邊邊界緩 存中相應列緩存索引的位置,將計算出的當前預測子塊的下邊邊界像素值存儲 到下邊邊界緩存中相應行緩存索引的位置。
      假設當前預測子塊為第一宏塊左上角的第一個8 x 8子塊,則當前預測子塊 的右邊邊界像素值為該預測子塊第8列的各像素值,第8列的各像素值對應的 列緩存索引為1, 2, 3......8,進行存儲時,將當前預測子塊的第8列的各像
      素值存儲到右邊邊界緩存中相應列緩存索引的位置;當前預測子塊的下邊邊界 像素值為該預測子塊第8行的各像素值,第8行的各像素值對應的行緩存索引 為1, 2, 3......8,進行存儲時,將當前預測子塊的第8行的各像素值存儲到
      下邊邊界緩存中相應行緩存索引的位置。
      按照步驟306 ~ 309對當前預測宏塊的所有預測子塊進行預測,直到計算得 到當前宏塊內的所有像素值。
      步驟310,確定當前預測4x4子塊的鄰近上預測塊的下邊邊界像素值 的行緩存索引,確定當前預測4x4子塊的鄰近左預測塊的右邊邊界像素值 的列緩存索引。
      當前預測子塊的上邊邊界像素值的行緩存索引也就是當前預測子塊鄰 近上預測塊的下邊邊界像素值的行緩存索引,當前預測子塊的左邊邊界像素
      值的列緩存索引也就是當前預測子塊的鄰近左預測塊的右邊邊界像素值的 列緩存索引。
      對當前預測子塊進行幀內預測時,根據當前預測塊所屬宏塊的宏塊序號 和當前預測塊在所屬宏塊中的相對位置確定當前預測塊的鄰近上預測塊的 下邊邊界像素值的行緩存索引,根據當前預測塊在所屬宏塊中的相對位置確 定當前預測塊的鄰近左預測塊的右邊邊界像素值的列緩存索引,例如,對于
      4x4的當前預測子塊,在宏塊中的相對位置為其所屬宏塊中第一行第四列 的子塊,則可以筒單地推知,當前預測子塊的上邊邊界像素值的索引對應其 所屬宏塊的上邊邊界像素值的行緩存索引中的最后四位行緩存索引,類似 地,可以簡單地推知,當前預測子塊的左邊邊界的列緩存索引對應其所屬宏 塊的左邊邊界像素值的列緩存索引中的前四位列緩存索引。
      假設當前預測宏塊為圖像中左上角的第一宏塊,當前預測子塊為第一子塊 右邊的子塊,這里將其稱為第二子塊,則當前預測子塊的鄰近上預測塊的下邊 邊界像素值的行緩存索引為5, 6, 7, 8,當前預測子塊的鄰近左預測塊的右 邊邊界像素值的列緩存索引為1, 2, 3, 4。
      步驟311 ,在PicWidthPixe舊uf[PicWidth]]中獲取與確定出的鄰近上預測塊 的下邊邊界像素值的行緩存索引對應的像素值,在LeftPixe舊uf[16]中獲取與確 定出的左邊邊界像素值的列緩存索引對應的像素值。
      假設當前預測子塊為第一宏塊內的第二子塊,則本步驟具體包括在 PicWidthPixelBufIPicWidth]]中獲取行緩存索引為5, 6, 7, 8所對應的像素值, 作為當前預測子塊的鄰近上預測塊的下邊邊界像素值,在LeftPixe舊ufU6]中獲 取列緩存索引為l, 2, 3, 4所對應的像素值,作為當前預測子塊的鄰近左預測 塊的右邊邊界像素值。
      步驟312,根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的 右邊邊界像素值計算出當前預測子塊的像素值。
      步驟313,將計算出的當前預測子塊的右邊邊界像素值存儲到右邊邊界緩 存中相應列緩存索引的位置,將計算出的當前預測子塊的下邊邊界像素值存儲
      到下邊邊界緩存中相應行緩存索引的位置。
      假設當前預測子塊為第一宏塊內的第二子塊,則當前預測子塊的右邊邊界
      像素值為該預測子塊第4列的各像素值,第4列的各像素值對應的列緩存索引 為1, 2, 3, 4,進行存儲時,將當前預測子塊的第4列的各像素值存儲到右 邊邊界緩存中相應列緩存索引的位置;當前預測子塊的下邊邊界像素值為該預 測子塊第4行的各像素值,第4行的各像素值對應的行緩存索引為5, 6, 7, 8,進行存儲時,將當前預測子塊的第4行的各像素值存儲到下邊邊界緩存中相 應行緩存索引的位置。
      按照步驟310 ~ 313對當前預測宏塊的所有預測子塊進行預測,直到計算得 到當前宏塊內的所有^f象素值。
      按照步驟301 313對當前預測宏塊進行預測,計算得到當前宏塊內的所有 像素值之后,對其他宏塊類似地執(zhí)行301~313,便可計算得到整幅圖像的像素 值。
      如果預先得知需要進行預測的圖像內各個宏塊的預測類型都相同,則上 述流程中無需執(zhí)行步驟301,也就是不需要判斷當前預測宏塊為何種幀內預 測類型。例如若圖像的幀內預測類型都為16xi6的矩陣,則直接執(zhí)行步 驟302;若圖像的幀內預測類型都為8x 8的矩陣,則直接執(zhí)行步驟306;若 圖像的幀內預測類型都為4x4的矩陣形式,則直接執(zhí)行步驟310。
      參見圖4,為本發(fā)明幀內預測的裝置結構示意圖,該裝置包括鄰近像素 值獲取模塊、計算模塊、下邊邊界緩存和右邊邊界緩存;
      所述右邊邊界緩存,用于對應列緩存索引存儲對預測塊進行預測后的最右 邊一列的像素值,該右邊邊界緩存的寬度為宏塊寬度,每個宏塊中各列像素的 列緩存索引為將圖像中每個宏塊的各列按照行號進行順序編號后的序號;
      所述下邊邊界緩存,用于對應行緩存索引存儲對預測塊進行預測后的最下 邊一行的像素值,該下邊邊界緩存的寬度為圖像寬度,圖像中各行像素的列緩 存索引為將圖像中每行像素按照列號進行順序編號后的序號;
      所述鄰近像素值獲取;f莫塊,用于確定當前預測塊的鄰近上預測塊的下邊邊
      界像素值的行緩存索引,并確定當前預測塊的鄰近左預測塊的右邊邊界像素值
      的列緩存索引;在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界像 素值的行緩存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊界 像素值,在右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對應 的像素值,作為當前預測塊的鄰近左預測塊的右邊邊界像素值;
      所述計算模塊,用于根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左
      預測塊的右邊邊界像素值計算出當前預測塊的像素值;
      可選地,該裝置包括存儲模塊,用于將計算出的當前預測塊的像素值中的 右邊邊界像素值對應列緩存索引存儲到右邊邊界緩存中,將計算出的當前預測 塊的下邊邊界像素值對應行緩存索引存儲到下邊邊界緩存中。
      本發(fā)明提出的快速計算當前預測塊的鄰近上預測塊的下邊邊界像素值和 鄰近左預測塊的右邊邊界像素值的方法,解決了 H,264標準中計算鄰近邊界像 素值速度慢的問題。本發(fā)明對當前預測塊進行預測后,將計算得到的當前預測 塊的下邊邊界像素值存儲到下邊邊界緩存中的相應位置,將計算得到的當前預 測塊的右邊邊界像素值存儲到右邊邊界緩存中的相應位置,這樣,使后續(xù)的預 測可以直接從右邊邊界緩存和下邊邊界緩存中獲取需要的像素值,而不需要進 行大量的計算確定當前預測塊的鄰近左預測塊的右邊邊界像素值和鄰近上預測 塊的下邊邊界像素值的絕對位置,以獲得鄰近左預測塊的右邊邊界像素值和鄰 近上預測塊的下邊邊界像素值,從而,大大節(jié)省了預測時間,提高了圖像的解 碼速度。
      以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了 進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已, 并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任 何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
      權利要求
      1、一種幀內預測的方法,其特征在于,該方法包括將圖像中每個宏塊的各列像素值按照行號進行順序編號,作為每個宏塊中各列像素值的列緩存索引,設置右邊邊界緩存,用于對應列緩存索引存儲對預測塊進行預測后的最右邊一列的像素值,該右邊邊界緩存的寬度為宏塊寬度;將圖像中每行像素值按照列號進行順序編號,作為圖像中各行像素值的行緩存索引,設置下邊邊界緩存,用于對應行緩存索引存儲對預測塊進行預測后的最下邊一行的像素值,該下邊邊界緩存的寬度為圖像寬度;確定當前預測塊的鄰近上預測塊的下邊邊界像素值的行緩存索引,并確定當前預測塊的鄰近左預測塊的右邊邊界像素值的列緩存索引;在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界像素值的行緩存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊界像素值,在右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對應的像素值,作為當前預測塊的鄰近左預測塊的右邊邊界像素值;根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的右邊邊界像素值計算出當前預測塊的像素值。
      2、 如權利要求l所述的方法,其特征在于,在下邊邊界緩存中獲取的與確 定出的鄰近上預測塊的下邊邊界像素值的行緩存索引對應的像素值,為當前預 測塊的鄰近上預測塊在計算出像素值后將其下邊邊界像素值存儲到下邊邊界緩 存的對應行緩存索引處的像素值;在右邊邊界緩存中獲取的與確定出的鄰近左預測塊的右邊邊界像素值的列 緩存索引對應的像素值,為當前預測塊的鄰近左預測塊在計算出像素值后將其 右邊邊界像素值緩存到右邊邊界緩存的對應列緩存索引處的像素值。
      3、 如權利要求l所述的方法,其特征在于,在當前預測塊位于所述圖像最 上邊時,在下邊邊界緩存中獲取的與確定出的鄰近上預測塊的下邊邊界像素值 的行緩存索引對應的像素值,為下邊邊界緩存中與確定出的鄰近上預測塊的下 邊邊界像素值的行緩存索引對應的初始值;在右邊邊界緩存中獲取的與確定出的鄰近左預測塊的右邊邊界像素值的列 緩存索引對應的像素值,為當前預測塊的鄰近左預測塊在計算出像素值后將其 右邊邊界像素值緩存到右邊邊界緩存的對應列多爰存索引處的像素值。
      4、 如權利要求l所述的方法,其特征在于,在當前預測塊位于所述圖像最的列緩存索引對應的像素值,為右邊邊界緩存中存儲的與確定出的鄰近左預測 塊的右邊邊界像素值的列緩存索引對應的初始值。
      5、 如權利要求l所述的方法,其特征在于,在當前預測塊位于所述圖像最 上邊和最左邊時,在下邊邊界緩存中獲取的與確定出的鄰近上預測塊的下邊邊 界像素值的行緩存索引對應的像素值,為下邊邊界緩存中與確定出的鄰近上預 測塊的下邊邊界像素值的行緩存索引對應的初始值;在右邊邊界緩存中獲取的與確定出的鄰近左預測塊的右邊邊界像素值的列 緩存索引對應的像素值,為右邊邊界緩存中存儲的與確定出的鄰近左預測塊的 右邊邊界像素值的列緩存索引對應的初始值。
      6、 如權利要求1所述的方法,其特征在于,所述確定當前預測塊的鄰近上 預測塊的下邊邊界像素值的行緩存索《I之前,該方法包括判斷當前預測宏塊的矩陣形式,若當前預測宏塊的矩陣形式為16x 16的矩 陣形式,則所述當前預測塊為當前預測宏塊,所述確定當前預測塊的鄰近上預 測塊的下邊邊界像素值的行緩存索引為根據當前預測宏塊的宏塊序號確定當 前預測宏塊的鄰近上預測塊的下邊邊界^f象素值的行緩存索虧1;若當前預測宏塊的矩陣形式為4x4的矩陣形式或8x8的矩陣形式,則所 述當前預測塊為當前預測子塊,所述確定當前預測塊的鄰近上預測塊的下邊邊 界像素值的行緩存索引為根據當前預測子塊所屬宏塊的宏塊序號和當前預測 子塊在所屬宏塊中的相對位置確定當前預測子塊的鄰近上預測塊的下邊邊界像 素值的行緩存索引,所述確定當前預測子塊的鄰近左預測塊的右邊邊界像素值 的列緩存索引為根據當前預測子塊在所屬宏塊中的相對位置確定當前預測子塊的鄰近左預測塊的右邊邊界像素值的列緩存索引。
      7、 一種幀內預測裝置,其特征在于,該裝置包括鄰近像素值獲取模塊、計 算模塊、下邊邊界緩存和右邊邊界緩存;所述右邊邊界緩存,用于對應列緩存索引存儲對預測塊進行預測后的最右 邊一列的像素值,該右邊邊界緩存的寬度為宏塊寬度,每個宏塊中各列像素的 列緩存索引為將圖像中每個宏塊的各列按照行號進行順序編號后的序號;所述下邊邊界緩存,用于對應行緩存索引存儲對預測塊進行預測后的最下 邊一行的像素值,該下邊邊界緩存的寬度為圖像寬度,圖像中各行像素的列緩存索引為將圖像中每行像素按照列號進行順序編號后的序號;所述鄰近像素值獲取模塊,用于確定當前預測塊的鄰近上預測塊的下邊邊界像素值的行緩存索引,并確定當前預測塊的鄰近左預測塊的右邊邊界像素值 的列緩存索引;在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界<象 素值的行緩存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊界 像素值,在右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對應 的像素值,作為當前預測塊的鄰近左預測塊的右邊邊界像素值;所述計算模塊,用于根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左 預測塊的右邊邊界像素值計算出當前預測塊的像素值。
      8、 如權利要求7所述的裝置,其特征在于,該裝置包括存儲模塊,用于將 計算出的當前預測塊的像素值中的右邊邊界像素值對應列緩存索引存儲到右邊 邊界緩存中,將計算出的當前預測塊的下邊邊界像素值對應行緩存索引存儲到 下邊邊界緩存中。
      全文摘要
      本發(fā)明公開了一種幀內預測的方法及裝置,該幀內預測的方法包括確定當前預測塊的鄰近上預測塊的下邊邊界像素值的行緩存索引,并確定當前預測塊的鄰近左預測塊的右邊邊界像素值的列緩存索引;在下邊邊界緩存中獲取與確定出的鄰近上預測塊的下邊邊界像素值的行緩存索引對應的像素值,作為當前預測塊的鄰近上預測塊的下邊邊界像素值,在右邊邊界緩存中獲取與確定出的左邊邊界像素值的列緩存索引對應的像素值,作為當前預測塊的鄰近左預測塊的右邊邊界像素值;根據獲取的鄰近上預測塊的下邊邊界像素值和鄰近左預測塊的右邊邊界像素值計算出當前預測塊的像素值。本發(fā)明方案大大節(jié)省了預測時間,提高了圖像的解碼速度。
      文檔編號H04N7/50GK101365136SQ20081021184
      公開日2009年2月11日 申請日期2008年9月9日 優(yōu)先權日2008年9月9日
      發(fā)明者豆成權 申請人:深圳市同洲電子股份有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1