專利名稱:基于像素流水的幀內預測裝置及預測方法
技術領域:
本發明涉及數字電視圖像處理中數字視頻的編解碼技術和芯上系統(SOC,System on Chip),尤其是涉及一種視頻解碼芯片中基于像素流水的幀內預測裝置及預測方法。
背景技術:
視頻編碼技術主要試圖解決用盡量少的信息位來表示一段視頻,并且完全由這些信息位能恢復出或大致恢復出原始圖像。為了追求更高的壓縮效率,預測技術得到了快速的發展。在最新的視頻標準H.264(國際電信聯盟最新視頻編解碼標準)和AVS(中國音視頻編解碼國家標準)中,都引入了多模式的空間域上的幀內預測。幀內預測利用當前塊的左邊和上邊最鄰近解碼像素值來預測當前塊的所有像素。
請參見圖1,空間域上幀內預測的9種預測模式示意圖。不同于運動圖象專家組標準MPEG-4和以前的視頻編碼標準中采用的在變換域上的幀內預測,H.264標準率先采用在原圖像空間域上的幀內預測,利用與當前塊緊鄰的已解碼像素值,來預測當前塊的像素值。這種方式的幀內預測能更好地利用圖像中紋理的方向連續性,通過不同的方向來對圖像塊進行適應性的預測。該標準一共定義了9種預測模式,分別使用8種預測方向和一種直流DC,direct current)模式,DC模式采用邊緣像素的平均值作為所有點的預測值。
色度分量采用了4種預測模式,分別是DC、水平、垂直和平面預測模式,如圖2所示。垂直模式是用V進行預測。水平模式是用H進測模式,如圖2所示。垂直模式是用V進行預測。水平模式是用H進行預測。直流DC模式是用所有的H和V的平均值進行預測。平面模式是用H和V決定的線性插值進行預測,這種模式適合于圖像中平滑變化的塊。
由于采用了多種預測模式,這些模式信息必須讓解碼器獲得,以便正確解碼。而編碼這些預測模式亦需要一定的碼率。對圖像數據進行分析,可以發現紋理的走向有一定的連續性,這使得相鄰塊之間的預測模式之間還可以預測。預測模式預測見圖3所示。當A、B都存在,即當前塊C不處于圖像邊界時,使用A、B兩個模塊的預測模式的較小值作為預測值,因為較小的模式具有較高的選中概率。如果碼流解析出的模式值小于預測模式值,則實際模式等于碼流解析值,否則實際模式等于碼流解析值加1。碼流中另有一個標記表明是否使用碼流解析值,如果該標記為0則碼流中不編碼流解析值,實際模式等于預測模式。另外,色度模式種類較少,不進行模式預測。
為滿足高清晰圖像實時解碼的需求,專用的超大規模集成電路被用來實現解碼器芯片。整個解碼器芯片分為很多個模塊,如同其他模塊一樣,幀內預測模塊的設計也要追求面積,速度,功耗的最佳平衡。現有技術采用的是以行為單位進行處理,一行8個像素并行進行幀內預測,8倍的并行,雖然提高了系統的吞吐率,但使得處理單元個數提高了8倍,使行處理芯片面積大。現有技術的幀內預測的裝置設計并不能真正滿足幀內預測的需要。
另一種做法是按像素串行進行,做完一個像素的預測,再進行下一個像素的預測,這樣所有的像素可以共用處理單元,可以大大減小芯片面積,但串行處理帶來的問題是處理速度較慢,通常用多個時鐘周期才能流出一個像素數據,很難達到視頻特別是高清晰度視頻圖像解碼對實時性的要求。
發明內容
為了克服上述現有技術的不足,本發明的目的是提供一種基于像素流水的幀內預測裝置及預測方法,以滿足幀內預測的需要。
本發明的另一個目的是提供一種基于像素流水的幀內預測裝置及預測方法,使幀內預測模塊達到面積、速度、功耗的較好平衡。
為了完成上述發明任務,本發明采用的總體技術方案是一種基于像素流水的幀內預測裝置,包括幀內預測模式推導模塊,它用于推導出實際的幀內預測模式,決定幀內預測的方向和模式,該模塊包括最小值器、比較器、加法器、數據復用器,最小值器連接行緩沖器和左邊模式存儲器,其輸出端連接數據復用器的一端,比較器連接先進先出隊列和最小值器輸出端,比較器的輸出端連接加法器的一端,加法器的另一端與先進先出隊列相連,數據復用器的輸出端連接預測模式行緩沖器和幀內預測像素生成模塊的參考像素獲取電路;預測像素生成模塊,該模塊用于根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到宏塊內所有點的幀內預測像素值,它包括連接幀內預測模式推導模塊行緩沖器的參考像素獲取電路、像素級三級流水線電路,三級流水線電路包括地址計算電路、濾波電路和預測與更新電路,預測與更新電路與重建及更新模塊相連;重建及更新模塊,該模塊用于生成實際的解碼重建值,并將這些重建值寫入下游模塊的輸入緩沖區,其加法器的兩個輸入端分別連接像素生成模塊幀內預測值輸出端和反變換模塊電路預測殘差值的輸出端,加法器的重建值輸出端連接幀內預測模式推導模塊的行緩沖器。
所述的幀內預測模式推導模塊中有一個行緩沖器,以存放上一個整圖像行的幀內模式信息,用于模式推導時參考。
所述的幀內預測模式推導模塊在像素生成模塊給出的宏塊開始信號拉高時開始工作。
所述的幀內預測模式推導模塊在連續的三個時鐘周期中完成預測模式推導,第一個周期完成參考模式的讀取,第二個周期完成預測模式的計算,第三個周期將模式解碼值存入行緩沖器中。
一種基于像素流水的幀內預測裝置的預測方法包括如下步驟步驟1、幀內預測模式推導模塊通過碼流解析出來的模式信息和根據周圍模式的預測模式信息推導出實際的幀內預測模式,并將結果傳遞給像素生成模塊,以決定幀內預測的方向和模式;步驟2、預測像素生成模塊根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到宏塊內所有點的幀內預測像素值,并交給重建電路進行重建和更新;步驟3、重建及更新模塊將像素生成模塊輸出的幀內預測值與由反變換模塊電路輸出的預測殘差值相加,得到實際的解碼重建值,然后將這些重建值存于行緩沖中,以便像素生成電路以后使用,并將這些重建值拼接成一行,寫入下游模塊的輸入緩沖區。
上述所述步驟1進一步包括如下步驟步驟11、取預測模式行緩沖器中的模式解碼值和左邊模式解碼值的較小值;步驟12、將較小值與從先進先出隊列中取出的模式值通過比較器相比較;步驟13、將比較結果輸入加法器;步驟14、判斷從隊列中取出的模式值是否大于等于最小值器的輸出值,如果是則將從隊列中取出的模式值加1作為實際輸出值,否則輸出最小值器的輸出值,并由數據復用器將輸出值寫入行緩沖器中。
上述所述的步驟2進一步包括下述步驟步驟21、在每一個宏塊的流水開始之前,從重建模塊電路的像素行緩沖器中取出所需要的預測參考點,存于內部寄存器中;步驟22、判斷參考像素是否獲取完畢,是則發送信號給一個三級流水線進行幀內預測;步驟23、三級流水線的第一級根據模式值和當前像素坐標利用查找表得到需要的左邊參考像素和上邊參考像素的位置,第二級進行濾波,從對應地址的寄存器取得像素參考值,經過加法器和移位器得到濾波后的預測值,第三級根據預測模式產生一個控制信號,由該控制信號控制一個數據復用器對濾波值和原始值進行篩選,之后將得到的預測值鎖存,并寫出到重建模塊電路中。
所述步驟23中的地址計算中,用于預測某一個像素點的參考點位置為兩個,一個用來標記上邊參考位置,另一個標記左邊參考位置,這兩個位置根據預測模式計算和當前預測點的位置計算而得。
所述步驟3中的三級流水線從重建模塊電路的像素行緩沖器中取出所需要的預測參考點是用5個時鐘周期完成,第一周期等待上一塊流水結束,第二周期讀取上邊像素,第三個周期讀取右上像素,第四周期鎖存上邊像素,第五個周期鎖存右上像素并啟動流水線。
本發明采用像素級流水進行幀內預測,具有明顯的優點和積極效果。滿足了對于高清晰度電視解碼實時性的需要,而且還留有足夠的裕量。同時,由于采用像素級流水線結構,同一個像素的處理被分散在三個級別中順序進行,而相繼像素的相繼處理步驟在同一時間內進行,在只增加少許寄存器的情況下,卻大大提高了基于像素的幀內預測方法的吞吐率。相比于基于行的平行處理辦法,因為只采用了一套運算部件,所以大大減少了芯片面積的占用。
圖1是現有技術中空間域上幀內預測的9種幀內預測亮度模式示意圖;圖2是現有技術中色度分量4種預測模式示意圖;圖3是現有技術中幀內預測方法圖;圖4是本發明幀內預測裝置的頂層模塊結構示意圖;圖5是本發明幀內預測模式推導模塊結構示意圖;圖6是本發明幀內預測像素生成模塊結構示意圖;圖7是本發明幀內預測裝置的預測像素流水線示意圖。
具體實施例方式
下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。
參閱圖4,本發明幀內預測裝置的頂層模塊結構示意圖,本發明幀內預測裝置包括模式推導、像素生成和重構與更新三大模塊。
圖5是本發明幀內預測模式推導模塊結構示意圖。幀內預測模式推導模塊推導出實際的幀內預測模式,決定幀內預測的方向和模式,該模塊包括最小值器、比較器、加法器、數據復用器,最小值器連接行緩沖器和左邊模式存儲器,其輸出端連接數據復用器的一端,比較器連接先進先出隊列和最小值器輸出端,比較器的輸出端連接加法器的一端,加法器的另一端與先進先出隊列相連,數據復用器的輸出端連接預測模式行緩沖器和幀內預測像素生成模塊的參考像素獲取電路。幀內預測模式推導模塊的導出電路通過碼流解析出來的模式信息和根據周圍模式的預測模式信息,推導出實際的幀內預測模式,并將結果傳遞給像素生成電路模塊,以決定幀內預測的方向和模式。模式推導模塊中包含一個行緩沖器,以存放上一個整圖像行的幀內模式信息用于模式推導時的參考。
模式推導模塊的工作方式是首先,等待像素生成模塊給出宏塊(macro block)開始信號,該信號拉高時開始工作。然后,3個狀態啟動,在連續的三個時鐘周期中完成預測模式推導。第一個周期完成參考模式的讀取,第二個周期完成預測模式的計算,計算的電路第三個周期將模式解碼值存入行緩沖。當宏塊開始信號拉高后,連續計算一個宏塊中所有塊的模式值,直到宏塊結束,等待下一個宏塊開始信號。
圖6所示的模式計算過程是上邊模式和左邊模式的較小值通過比較器與隊列取出的模式相比較,其結果輸入加法器。如果隊列中取出的模式大于等于最小值器的輸出,則將隊列取出的模式加1作為實際輸出值。輸出前級有一個數據復用器,由編碼標記選擇是采用預測值輸出,還是隊列取出值輸出。計算得到的結果更新行緩沖器。
如圖6所示,預測像素生成模塊包括連接幀內預測模式推導模塊行緩沖器的參考像素獲取電路、像素級三級流水線電路,三級流水線電路包括地址計算電路、濾波電路和預測與更新電路,預測與更新電路與重建及更新模塊相連。預測像素生成模塊根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到塊內所有點的幀內預測像素值,并交給重建模塊進行重建和更新。流水線一旦運行起來,每一時鐘周期輸出一個預測值,一直到一個塊中所有的像素都預測完成。
為了節省訪存的時間消耗,在每一個塊的流水開始之前,首先參考像素獲取電路從重建與更新模塊的像素行緩沖器中取出所需要的預測參考點,存于內部寄存器中。這個過程由一5個狀態的狀態機通過狀態轉換在相繼的5個周期完成數據的讀取。當所需數據都已備時,發送信號給一個三級流水線,進行幀內預測。
在圖7中,像素的預測過程通過一個三級流水線進行。第一級進行地址計算,根據模式值和當前像素坐標,利用查找表得到需要的左邊參考像素和上邊參考像素的位置,第二級進行濾波,從對應地址的寄存器取得像素參考值,經過加法器和移位器得到濾波后的預測值。第三級根據預測模式產生一個控制信號,由該控制信號控制一個數據復用器對濾波值和原始值進行篩選,之后將得到的預測值鎖存,并寫出到重建模塊電路中。
流水線啟動后,第一個像素的地址計算在第一個時鐘周期完成,然后進入第二級,在第二個周期計算第一個像素的濾波值,與此同時即在第二個周期,第二個像素進入流水線,它的地址計算也在流水線的第一級完成。從時間上看,一個像素的預測過程需要三個周期,分別通過流水線的三級,最后輸出;從空間上看,同一時刻,流水線的三級在同時處理三個相繼像素的幀內預測的不同階段。不同的級別之間用寄存器保存中間值。
重建及更新模塊加法器的兩個輸入端分別連接像素生成模塊幀內預測值輸出端和反變換模塊電路預測殘差值的輸出端,加法器的重建值輸出端連接幀內預測模式推導模塊的行緩沖器。重建和更新模塊將像素生成模塊輸出的幀內預測值與由反變換電路輸出的預測殘差值通過加法器相加,得到實際的解碼重建值。一方面將這些重建值存于行緩沖器中,以便像素生成模塊以后使用;另一方面,將這些重建值拼接成一行,并寫入下游模塊的輸入緩沖區中。這種將重建和幀內預測放在一個模塊的機制,可以節省模塊間的互訪。
基于像素流水的幀內預測裝置的幀內預測方法主要有以下步驟步驟1、幀內預測模式推導模塊通過碼流解析出來的模式信息和根據周圍模式的預測模式信息推導出實際的幀內預測模式,并將結果傳遞給像素生成模塊,以決定幀內預測的方向和模式;步驟2、預測像素生成模塊根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到宏塊內所有點的幀內預測像素值,并交給重建模塊進行重建和更新;步驟3、重建及更新模塊將像素生成模塊輸出的幀內預測值與由反變換模塊電路輸出的預測殘差值相加,得到實際的解碼重建值,然后將這些重建值存于行緩沖中,以便像素生成電路以后使用,并將這些重建值拼接成一行,寫入下游模塊的輸入緩沖區中。
實施例1AVS標準的幀內預測。AVS標準采用8×8的塊大小,幀內預測模式亮度有5種,分別是水平,垂直,直流,斜左下對角,斜右下對角;色度有4種,直流,水平,垂直,平面內插。對于高清晰度電視如分辨率為1920×1088的要求,行緩沖位寬64比特,可以存一個宏塊行的數據,深度480,其亮度為240,色度為240。計算一個8×8塊需要流水線周期64+2=66,計算整個宏塊的時鐘周期432周期,滿足了對于高清晰度電視解碼實時性的需要,而且還留有足夠的裕量。同時由于采用像素級流水線結構,大大減少了芯片面積的占用。
實施例2H.264標準的幀內預測。H.264標準的幀內預測與AVS標準類似,不過它使用4×4的塊大小,幀內預測模式亮度有9種,分別是水平,垂直,直流,斜左下對角,斜右下對角,水平偏上,水平偏下,垂直偏左,垂直偏右;色度也是4種,直流,水平,垂直,平面內插。雖然預測模式增多,但利用本發明中的框架仍能夠高效地實現其幀內預測的模塊。在解碼實時性的同時,減小了芯片的面積和成本。
最后所應說明的是以上實施例僅用以說明而非限制本發明的技術方案,盡管參照上述實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解依然可以對本發明進行修改或者等同替換,而不脫離本發明的精神和范圍的任何修改或局部替換,其均應涵蓋在本發明的權利要求范圍當中。
權利要求
1.一種基于像素流水的幀內預測裝置,其特征在于,該裝置包括幀內預測模式推導模塊,用于推導實際的幀內預測模式,決定幀內預測的模式,該模塊包括最小值器、比較器、加法器、數據復用器,最小值器連接行緩沖器和左邊模式存儲器,其輸出端連接數據復用器的一端,比較器連接先進先出隊列和最小值器輸出端,比較器的輸出端連接加法器的一端,加法器的另一端與先進先出隊列相連,數據復用器的輸出端連接預測模式行緩沖器和幀內預測像素生成模塊的參考像素獲取電路;預測像素生成模塊,該模塊用于根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到宏塊內所有點的幀內預測像素值,它包括連接幀內預測模式推導模塊行緩沖器的參考像素獲取電路、像素級三級流水線電路,三級流水線電路包括地址計算電路、濾波電路和預測與更新電路,預測與更新電路與重建及更新模塊相連;重建及更新模塊,該模塊用于生成實際的解碼重建值,并將這些重建值寫入下游模塊的輸入緩沖區,其加法器的兩個輸入端分別連接像素生成模塊的幀內預測值輸出端和反變換模塊電路預測殘差值的輸出端,加法器的重建值輸出端連接幀內預測模式推導模塊的行緩沖器。
2.根據權利要求1所述的基于像素流水的幀內預測裝置,其特征在于,所述的幀內預測模式推導模塊中有一個行緩沖器,以存放上一個整圖像行的幀內模式信息,用于模式推導時參考。
3.根據權利要求1所述的基于像素流水的幀內預測裝置,其特征在于,所述的幀內預測模式推導模塊在像素生成模塊給出的宏塊開始信號拉高時開始工作。
4.根據權利要求1所述的基于像素流水的幀內預測裝置,其特征在于,所述的幀內預測模式推導模塊在連續的三個時鐘周期中完成預測模式推導,第一個周期完成參考模式的讀取,第二個周期完成預測模式的計算,第三個周期將模式解碼值存入行緩沖器中。
5.一種基于像素流水的幀內預測裝置的幀內預測方法,其特征在于,該方法包括如下步驟步驟1、幀內預測模式推導模塊通過碼流解析出來的模式信息和根據周圍模式的預測模式信息推導出實際的幀內預測模式,并將結果傳遞給像素生成模塊,以決定幀內預測的模式;步驟2、預測像素生成模塊根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到宏塊內所有點的幀內預測像素值,并交給重建電路進行重建和更新;步驟3、重建及更新模塊將像素生成模塊輸出的幀內預測值與由反變換模塊電路輸出的預測殘差值相加,得到實際的解碼重建值,然后將這些重建值存于行緩沖中,以便像素生成電路以后使用,并將這些重建值拼接成一個宏塊行,寫入下游模塊的輸入緩沖區。
6.根據權利要求5所述的基于像素流水的幀內預測裝置的幀內預測方法,其特征在于,所述步驟1進一步包括如下步驟步驟11、取預測模式行緩沖器中的模式解碼值和左邊模式解碼值的較小值;步驟12、將較小值與從先進先出隊列中取出的模式值通過比較器相比較;步驟13、將比較結果輸入加法器;步驟14、判斷從隊列中取出的模式值是否大于等于最小值器的輸出值,如果是則將從隊列中取出的模式值加1作為實際輸出值,否則輸出最小值器的輸出值,并由數據復用器將輸出值寫入行緩沖器中。
7.根據權利要求5所述的基于像素流水的幀內預測裝置的幀內預測方法,其特征在于,所述步驟2進一步包括下述步驟步驟21、在每一個宏塊的流水開始之前,從重建模塊電路的像素行緩沖器中取出所需要的預測參考點,存于內部寄存器中;步驟22、判斷參考像素是否獲取完畢,是則發送信號給一個三級流水線進行幀內預測;步驟23、三級流水線的第一級根據模式值和當前像素坐標利用查找表得到需要的左邊參考像素和上邊參考像素的位置,第二級進行濾波,從對應地址的寄存器取得像素參考值,經過加法器和移位器得到濾波后的預測值,第三級根據預測模式產生一個控制信號,由該控制信號控制一個數據復用器對濾波值和原始值進行篩選,之后將得到的預測值鎖存,并寫出到重建模塊電路中。
8.根據權利要求5所述的基于像素流水的幀內預測裝置的幀內預測方法,其特征在于,所述步驟23中的地址計算中,用于預測某一個像素點的參考點位置為兩個,一個用來標記上邊參考位置,另一個標記左邊參考位置,這兩個位置根據預測模式計算和當前預測點的位置計算而得。
9.根據權利要求5所述的基于像素流水的幀內預測裝置的幀內預測方法,其特征在于,所述步驟3中的三級流水線從重建模塊電路的像素行緩沖器中取出所需要的預測參考點是用5個時鐘周期完成,第一周期等待上一塊流水結束,第二周期讀取上邊像素,第三個周期讀取右上像素,第四周期鎖存上邊像素,第五個周期鎖存右上像素并啟動流水線。
全文摘要
本發明是基于像素流水的幀內預測裝置和預測方法,裝置包括幀內預測模式推導模塊、預測像素生成模塊、重建及更新模塊;幀內預測模式推導模塊根據碼流解析出的模式信息和周圍模式預測模式信息推導出實際幀內預測模式,并傳遞給像素生成模塊,預測像素生成模塊根據周圍相鄰像素值和模式推導模塊輸入的幀內預測模式進行方向預測,得到宏塊內所有點的幀內預測像素值并交給重建模塊進行重建和更新,重建及更新模塊將像素生成模塊輸出的幀內預測值與由反變換模塊電路輸出的預測殘差值相加,得到實際的解碼重建值并將這些重建值存于行緩沖和下游模塊輸入緩沖區中。本發明采用像素級流水線結構,減少了芯片面積占用,滿足了高清晰度電視解碼實時性需要。
文檔編號H04N7/32GK1589028SQ20041007036
公開日2005年3月2日 申請日期2004年7月29日 優先權日2004年7月29日
發明者解曉東, 吳迪, 賈惠柱, 生濱, 鄭俊浩, 張鵬, 鄧磊, 張力, 張幀睿, 王忠立, 朱勝利, 王曉輝, 顏偉成, 高文 申請人:聯合信源數字音視頻技術(北京)有限公司