本發(fā)明要求2014年7月25日申請的序列號為62/028,943的美國臨時專利申請的優(yōu)先權以及2015年7月23日申請的序列號為14/806,664的美國專利申請的優(yōu)先權,美國臨時專利申請以及美國專利申請在此全部并入參考。
【技術領域】
本發(fā)明涉及視頻處理,且更特別地,涉及具有自適應編碼單元拆分/合并的視頻處理裝置以及相關視頻處理方法。
背景技術:
現有的視頻編碼標準通常采用基于塊的編碼技術以擴展空間和時間冗余。例如,基本方法是將整個來源幀分割為多個塊,對每個塊執(zhí)行幀內預測/幀間預測,轉換每個塊的殘值,以及執(zhí)行量化和熵編碼。此外,重建的幀在編碼循環(huán)中生成以提供參考像素數據用于編碼接下來的塊。對于某些視頻編碼標準,環(huán)內濾波器可用于增強重建的幀的圖像質量。
視頻解碼器用于執(zhí)行由視頻編碼器執(zhí)行的視頻編碼的逆操作。例如,視頻解碼器可具有多個處理電路,例如,熵解碼電路、幀內預測電路、運動補償電路、逆量化電路、逆轉換電路以及重建電路、解塊濾波器。在現有設計中,視頻解碼器可以管線方式解碼圖片的編碼單元用于實現更好的解碼效率。例如,熵解碼、運動補償/幀內預測、重建以及環(huán)內解塊可形成不同的管線級。因此,一個編碼單元將依次經歷熵解碼、運動補償/幀內預測、重建以及環(huán)內解塊。當熵解碼級用于處理第一編碼單元,運動補償/幀內預測級可用于處理第二編碼單元,重建級可用于處理第三編碼單元,以及環(huán)內解塊級可用于處理第四編碼單元。然而,對于某些編碼標準,相同圖片中不同的編碼單元被允許具有不同的編碼單元大小。在當前管線級用于解碼大尺寸的編碼單元以及下一管線級用于解碼小尺寸的編碼單元的情形中,下一管線級可在當前管線級完成大尺寸的編碼單元的解碼前完成小尺寸編碼單元的解碼。在當前管線級用于解碼小尺寸的編碼單元且下一管線級用于解碼大尺寸的編碼單元的另一情形中,當前管線級可在下一管線級完成小尺寸的編碼單元的解碼前完成小尺寸的編碼單元的解碼。其結果是,在被解碼的編碼單元不具有相同大小的情況下管線失衡發(fā)生。
關于基于管線的視頻解碼器設計,具有各種編碼單元尺寸的編碼單元可導致若干缺點,例如,更多的等待周期、更低的解碼通過量、以及更高管線緩沖器要求。因此,需要一種新穎的視頻處理設計,其能夠避免/減輕由具有各種編碼尺寸的編碼單元導致的這些缺點。
技術實現要素:
本發(fā)明的一個目的是提供具有自適應編碼單元拆分/合并的視頻處理裝置以及相關視頻處理方法。
根據本發(fā)明的第一方面,揭示一種示范性視頻處理裝置。示范性視頻處理裝置包含第一處理電路、第二處理電路和控制電路。第一處理電路用于執(zhí)行第一處理操作。第二處理電路用于執(zhí)行不同于第一處理操作的第二處理操作??刂齐娐酚糜诟鶕牡谝惶幚黼娐飞傻妮斎刖幋a單元生成至少一個輸出編碼單元到第二處理電路,其中控制電路檢查輸入編碼單元的大小,以選擇性地將輸入編碼單元拆分為多個輸出編碼單元。
根據本發(fā)明的第二方面,揭示一種示范性視頻處理裝置。示范性視頻處理裝置包含第一處理電路、第二處理電路和控制電路。第一處理電路用于執(zhí)行第一處理操作。第二處理電路用于執(zhí)行不同于第一處理操作的第二處理操作??刂齐娐酚糜诟鶕牡谝惶幚黼娐飞傻亩鄠€輸入編碼單元生成至少一個輸出編碼單元到第二處理電路,其中控制電路檢查輸入編碼單元的大小,以選擇性地將輸入編碼單元合并為單個輸出編碼單元。
根據本發(fā)明的第三方面,揭示一種示范性視頻處理方法。示范性視頻處理方法包含:執(zhí)行第一處理操作以生成輸入編碼單元;根據從第一處理操作生成的輸入編碼單元生成至少一個輸出編碼單元,包含檢查輸入編碼單元的大小以選擇性地將輸入編碼單元拆分為多個輸出編碼單元;并對至少一個輸出編碼單元執(zhí)行第二處理操作,其中第二處理操作不同于第一處理操作。
根據本發(fā)明的第四方面,揭示一種示范性視頻處理方法。示范性視頻處理方法包含:執(zhí)行第一處理操作以生成多個輸入編碼單元;根據從第一處理操作生成的輸入編碼單元生成至少一個輸出編碼單元,包含檢查輸入編碼單元的大小以選擇性地將輸入編碼單元合并為單個輸出編碼單元;并對至少一個輸出編碼單元執(zhí)行第二處理操作,其中第二處理操作不同于第一處理操作。
根據本發(fā)明的第五方面,揭示一種示范性視頻處理裝置。示范性視頻處理裝置包含多個處理電路和控制電路。處理電路包含熵解碼電路、逆掃描電路、逆量化電路、逆轉換電路、重建電路、環(huán)內濾波器、參考圖片緩沖器、幀內預測電路以及運動補償電路??刂齐娐否詈嫌谔幚黼娐返牡谝惶幚黼娐泛偷诙幚黼娐分g,并用于根據從第一處理電路生成的至少一個輸入編碼單元生成至少一個輸出編碼單元到第二處理電路,其中每個至少一個輸入編碼單元的大小不同于每個至少一個輸出編碼單元的大小。
在閱讀了圖示于各種圖和附圖中的優(yōu)先實施例的以下詳細描述后,本發(fā)明的這些和其它目的將對本領域的普通技術人員變得顯而易見。
【附圖說明】
圖1是根據本發(fā)明的實施例的視頻處理裝置的示意圖。
圖2是圖示一個超級塊遞歸分區(qū)為各種大小的模式信息單元的示意圖。
圖3是圖示根據本發(fā)明的實施例的具有編碼單元拆分功能的控制電路的示意圖。
圖4是圖示根據本發(fā)明的實施例的編碼單元拆分方法的流程圖。
圖5是圖示根據本發(fā)明的實施例的具有編碼單元合并功能的控制電路的示意圖。
圖6是圖示根據本發(fā)明的實施例的編碼單元合并方法的流程圖。
圖7是圖示根據本發(fā)明實施例的具有FIFO緩沖功能的控制電路的示意圖。
圖8是圖示根據本發(fā)明的實施例的將圖片分區(qū)為具有的各種編碼單元大小的編碼單元的示意圖。
圖9是圖示根據本發(fā)明的實施例的具有多個管線級和多個控制電路的視頻處理裝置的示意圖。
圖10是根據本發(fā)明的實施例的圖示編碼單元的管線處理的示意圖。
圖11是圖示根據本發(fā)明的實施例的支持編碼單元拆分功能、編碼單元合并功能以及FIFO緩沖功能中的至少兩項的控制電路的示意圖。
【具體實施方式】
遍及整篇描述和權利要求的某些術語用于指代特定部件。如本領域的技術人員意識到的,制造商可用不同的名稱指代部件。此文檔不打算區(qū)別名稱不同但功能相同的部件。在權利要求和下文的描述中,術語“包括”和“包含”用于開放方式,且因此應該解釋為意思是“包含,但不限于”。而且,術語“耦合”意于表示間接或直接電連接。因此,如果一個裝置耦合到另一裝置,那個連接可以通過直接電連接,或通過經由其它裝置和連接的間接電連接。
圖1是根據本發(fā)明的實施例的視頻處理裝置的圖表。視頻處理裝置100可以是電子裝置的部分,例如,個人計算機(例如,膝上計算機或臺式計算機)、移動電話、平板電腦或可穿戴裝置。視頻處理裝置100可包含用于解碼比特流BS以生成包含多個連續(xù)的解碼后的圖片(即,重建的圖片)的視頻序列的視頻解碼器的至少部分(即,部分或所有)。視頻處理裝置100的至少部分可以實施于集成電路(IC)。簡而言之,使用提出的視頻處理裝置100的任何電子裝置或電子系統(tǒng)均落入本發(fā)明的范圍。
如圖1所示,視頻處理裝置(例如,視頻解碼器)100包含多個處理電路,例如,熵解碼電路102、逆掃描電路(由“IS”指代)104、逆量化電路(由“IQ”指代)106、逆轉換電路(由“IT”指代)108、重建電路(由“REC”指代)110、至少一個環(huán)內濾波器(例如,解塊濾波器(DF)112)、參考圖片緩沖器114、幀內預測電路(由“IP”指代)116、運動補償電路(由“MC”指代)118。參考圖片緩沖器114可以是外部存儲裝置,例如,芯片外動態(tài)隨機存取存儲器(DRAM)。以示例的方式,但并非限制,視頻處理裝置100可用于解碼使用由開發(fā)的開放及免費使用的視頻編碼標準的VP9編碼標準生成的進來的比特流BS。然而,此僅僅是用于說明性的目的,且并非是作為本發(fā)明的限制。使用提出的視頻解碼器結構的任何視頻解碼器落入本發(fā)明的范圍。
熵解碼電路102用于將熵解碼應用到進來的比特流BS用于生成幀內模式信息INFintra、幀間模式信息INFinter(例如,運動向量(MV)信息)以及殘值。殘值通過逆掃描(在逆掃描電路104執(zhí)行)、逆量化(在逆量化電路106執(zhí)行)以及逆轉換(在逆轉換電路108執(zhí)行)發(fā)送到重建電路110。當原始圖片中的塊使用幀內預測模式編碼時,使能幀內預測電路116以生成預測的像素/樣本到重建電路110。當原始圖片中的塊是使用幀間預測模式編碼時,使能運動補償電路118以生成預測的像素/樣本到重建電路110。重建電路110用于將逆轉換電路108的殘值輸出和幀內預測電路116和運動補償電路118中的一個的預測像素輸出結合,以由此生成圖片(即,重建的/解碼的圖片)的每個塊的重建的像素/樣本。解塊濾波器112用于將解塊濾波應用于從重建電路110生成的重建的圖片,且生成解塊的圖片(其包含濾波的像素/樣本)作為參考圖片。參考圖片儲存于參考圖片緩沖器114,且可以由運動補償電路118參考以生成預測的像素/樣本。
在本實施例中,進來的比特流BS可具有各種編碼單元尺寸的編碼單元。在高級視頻編碼標準(例如,HEVC或VP9)中,編碼單元不一定限制于16x16塊大小。以VP9編碼標準為例,一個圖片可以分割為64x64大小的塊,稱為超級塊。圖片的超級塊以光柵順序來處理:從左到右、從上到下。此外,VP9支持基于方形樹的編碼。因此,可以采用遞歸分區(qū)以將每個超級塊拆分為一個或多個分區(qū)(例如,較小尺寸的塊)用于進一步處理。圖2是圖示一個超級塊遞歸分區(qū)為各種大小的模式信息(MI)單元的示意圖。例如,64x64塊大小的一個超級塊可以拆分為一個或多個編碼單元(或在VP9中稱為MI單元),其中由VP9編碼標準支持的分區(qū)可包含方形分區(qū),例如,64x64大小的塊、32x32大小的塊、16x16大小的塊、8x8大小的塊、4x4大小的塊,以及還可包含非方形分區(qū),例如,64x32大小的塊、32x64大小的塊、32x16大小的塊、16x32大小的塊,…,4x8大小的塊、8x4大小的塊。因此,編碼單元(MI單元)大小可包含64x64、32x32、16x16、8x8、64x32、32x64、32x16、16x32,…,8x8、4x8、8x4、4x4。即,VP9中的可變編碼單元大小可從4x4變動到64x64。
因為高級視頻編碼標準允許各種編碼單元尺寸,當視頻處理裝置100中的上述的處理電路用于操作于管線方式時,由可變編碼單元尺寸導致的管線失衡問題可發(fā)生。因此,除上述的處理電路外,提出的視頻處理裝置100還可包含至少一個控制電路,以處理管線失衡問題用于以高效且經濟的方式解碼比特流BS。如圖1所示,視頻處理裝置100還具有多個控制電路122、124、126、128以及130,其中控制電路122耦合于熵解碼電路102與幀內預測電路116之間,控制電路124耦合于熵解碼電路102和逆掃描電路104之間,控制電路126耦合于逆轉換電路108和重建電路110之間,控制電路128耦合于重建電路110和解塊濾波器112之間,以及控制電路130耦合于熵解碼電路102和運動補償電路118之間。每個控制電路122、124、126、128以及130可以用于支持多個預定義的功能的至少一個,包含編碼單元拆分功能、編碼單元合并功能以及先進先出(FIFO)緩沖功能。提出的控制電路的進一步細節(jié)描述于以下。
圖3是圖示根據本發(fā)明的實施例的具有編碼單元拆分功能的控制電路的示意圖。在本實施例中,控制電路302耦合于第一處理電路301和第二處理電路303之間。第一處理電路301用于執(zhí)行第一處理操作(例如,熵解碼或其它解碼功能)以生成輸入編碼單元(例如,CUIN)的處理結果到控制電路302??刂齐娐?02用于根據從第一處理操作生成的輸入編碼單元(例如,CUIN)生成至少一個輸出編碼單元(例如,CU1-CU4)。第二處理電路303用于對從控制電路302提供的至少一個輸出編碼單元執(zhí)行第二處理操作(例如,幀內預測或其它解碼功能),其中第二處理操作不同于第一處理操作。在本實施例中,控制電路302用于檢查輸入編碼單元(例如,CUIN)的大小以選擇性地將輸入編碼單元(例如,CUIN)拆分為多個輸出編碼單元(例如,CU1、CU2、CU3以及CU4)。例如,控制電路302可將輸入編碼單元(例如,CUIN)的寬度W與第一閾值(即,編碼單元寬度閾值)TH1比較,和/或可將輸入編碼單元(例如,CUIN)的高度H與第二閾值(即,編碼單元高度閾值)TH2比較。
在第一示范性設計中,控制電路302可將輸入編碼單元(例如,CUIN)的寬度W與第一閾值TH1比較,以生成第一比較結果,以及可根據第一比較結果選擇性地將輸入編碼單元(例如,CUIN)拆分為多個輸出編碼單元(例如,CU1-CU4),其中由于編碼單元拆分生成的每個輸出編碼單元的大小小于輸入編碼單元的大小。
在第二示范性設計中,控制電路302可將輸入編碼單元(例如,CUIN)的高度H與第二閾值TH2比較,以生成第二比較結果,以及可根據第二比較結果選擇性地將輸入編碼單元(例如,CUIN)拆分為多個輸出編碼單元(例如,CU1-CU4),其中由于編碼單元拆分生成的每個輸出編碼單元的大小小于輸入編碼單元的大小。
在第三示范性設計中,控制電路302可將輸入編碼單元(例如,CUIN)的寬度W與第一閾值TH1比較,以生成第一比較結果,以及將輸入編碼單元(例如,CUIN)的高度H與第二閾值TH2比較,以生成第二比較結果,且可根據第一比較結果和第二比較結果選擇性地將輸入編碼單元(例如,CUIN)拆分為多個輸出編碼單元(例如,CU1-CU4),其中由于編碼單元拆分生成的每個輸出編碼單元的大小小于輸入編碼單元的大小。
圖4是圖示根據本發(fā)明的實施例的編碼單元拆分方法的流程圖。假設結果基本相同,步驟不要求以顯示于圖4中的精確順序來執(zhí)行。編碼單元拆分方法可以由顯示于圖3中的控制電路302執(zhí)行,且可簡短地概括如以下。
步驟402:從先前管線級(例如,第一處理電路301)接收輸入編碼單元(例如,CUIN)。
步驟404:檢查輸入編碼單元的大小是否等于或大于編碼單元大小閾值T。例如,編碼單元大小閾值T可包含第一閾值TH1和第二閾值TH2中的一個或兩個。如果輸入編碼單元的大小等于或大于編碼單元大小閾值T,流程進入步驟406;否則,流程進入步驟408。
步驟406:將輸入編碼單元拆分為用作由后續(xù)管線級(例如,第二處理電路303)處理的輸出編碼單元的N個分區(qū),且設置i=N。進入步驟410。
步驟408:旁路輸入編碼單元為由后續(xù)管線級(例如,第二處理電路303)處理的輸出編碼單元,并設置i=1。
步驟410:觸發(fā)后續(xù)管線級(例如,第二處理電路303)以一次處理一個輸出編碼單元,且設置i=i-1。
步驟412:檢查是否i==0。如果是,則與輸入編碼單元關聯(lián)的控制流程完成;否則,流程進入步驟410以處理另一輸出編碼單元。
當輸入編碼單元的大小等于或大于編碼單元大小閾值T時,使能編碼單元拆分功能以將具有較大大小的輸入編碼單元拆分為每個具有較小大小的多個輸出編碼單元(步驟402、404和406)。以此方式,觸發(fā)后續(xù)管線級以逐個的處理較小大小的輸出編碼單元(步驟410和412)。因此,經濟的視頻解碼器可以由于放松的管線緩沖器要求而實現。另外,由后續(xù)管線級要求的等待周期的數目可以有效地減少。
當輸入編碼單元的大小小于編碼單元大小閾值T時,編碼單元拆分功能不使能,以便從后續(xù)管線級生成的輸入編碼單元可以直接供應到后續(xù)的管線級(步驟402、404以及408)。因此,后續(xù)的管線級被觸發(fā)以處理與輸入編碼單元相同的一個輸出編碼單元(步驟410和412)。
應該注意到,編碼單元大小閾值T(其可包含第一閾值(編碼單元寬度閾值)TH1以及第二閾值(編碼單元高度閾值)TH2的一個或兩個)可以被調整,取決于實際設計考慮。此外,拆分分區(qū)的數目(即,N的值)可以根據輸入編碼單元的大小決定。例如,編碼單元大小閾值T可以由{TH1=64以及TH2=64}設置,以及N的值可以由4設置。因此,一個64x64輸入編碼單元可以拆分為將逐個由第二處理電路303處理的四個32x32輸出編碼單元。對于另一示例,編碼單元大小閾值T可以由{TH1=64或TH2=64}設置。N的值可以響應于輸入編碼單元的大小適應性地設置。如果輸入編碼單元的大小是64x64,N=4。因此,一個64x64輸入編碼單元可以拆分為逐個地由第二處理電路303處理的四個32x32輸出編碼單元。如果輸入編碼單元的大小是32x64,則N=2。因此,一個32x64輸入編碼單元可以拆分為逐個地由第二處理電路303處理的兩個32x32輸出編碼單元。如果輸入編碼單元的大小是64x32,則N=2。因此,一個64x32輸入編碼單元可以拆分為逐個地由第二處理電路303處理的兩個32x32輸出編碼單元。此外,拆分分區(qū)的大小可以被調整,取決于實際設計考慮。例如,從編碼單元拆分功能生成的輸出編碼單元可僅僅包含方形分區(qū)。對于另一示例,從編碼單元拆分功能生成的輸出編碼單元可僅僅包含非方形分區(qū)。對于又一示例,從編碼單元拆分功能生成的輸出編碼單元可包含方形分區(qū)和非方形分區(qū)。
然而,以上僅僅是用于說明性的目的,且并非是作為本發(fā)明的限制。任何由于拆分從后續(xù)管線生成的較大尺寸的輸入編碼單元生成到后續(xù)管線的較小尺寸的輸出編碼單元落入本發(fā)明的范圍。
圖5是圖示根據本發(fā)明的實施例的具有編碼單元合并功能的控制電路的示意圖。在本實施例中,控制電路502耦合于第一處理電路501和第二處理電路503之間。第一處理電路501用于執(zhí)行第一處理操作(例如,重建或其它解碼功能)以生成多個輸入編碼單元(例如,CUIN_1-CUIN_4)的處理結果到控制電路502??刂齐娐?02用于根據從第一處理操作生成的輸入編碼單元(例如,CUIN_1-CUIN_4)生成至少一個輸出編碼單元(例如,CUOUT)。第二處理電路503用于對由控制電路502提供的至少一個輸出編碼單元(例如,CUOUT)執(zhí)行第二處理操作(例如,解塊或其它解碼功能),其中第二處理操作不同于第一處理操作。在本實施例中,控制電路502用于檢查輸入編碼單元(例如,CUIN_1-CUIN_4)的大小,以選擇性地將輸入編碼單元(例如,CUIN_1-CUIN_4)合并為單個輸出編碼單元(例如,CUOUT)。例如,控制電路502可將輸入編碼單元(例如,CUIN_1-CUIN_4)的寬度W與第一閾值(即,編碼單元寬度閾值)TH1’比較,和/或可將輸入編碼單元(例如,CUIN_1-CUIN_4)的高度H與第二閾值(即,編碼單元高度閾值)TH2’比較。
在第一示范性設計中,控制電路502可將輸入編碼單元(例如,CUIN_1-CUIN_4)的寬度與第一閾值TH1’比較,以生成第一比較結果,并可根據第一比較結果選擇性地將輸入編碼單元(例如,CUIN_1-CUIN_4)合并為單個輸出編碼單元(例如,CUOUT),其中每個輸入編碼單元的大小小于由于編碼單元合并生成的輸出編碼單元的大小。
在第二示范性設計中,控制電路502可將輸入編碼單元(例如,CUIN_1-CUIN_4)的高度與第二閾值TH2’比較,以生成第二比較結果,并可根據第二比較結果選擇性地將輸入編碼單元(例如,CUIN_1-CUIN_4)合并為單個輸出編碼單元(例如,CUOUT),其中每個輸入編碼單元的大小小于由于編碼單元合并生成的輸出編碼單元的大小。
在第三示范性設計中,控制電路502可將輸入編碼單元(例如,CUIN_1-CUIN_4)的寬度與第一閾值TH1’比較,以生成第一比較結果,并將輸入編碼單元(例如,CUIN_1-CUIN_4)的高度與第二閾值TH2’比較,以生成第二比較結果,且可根據第一比較結果和第二比較結果選擇性地將輸入編碼單元(例如,CUIN_1-CUIN_4)合并為單個輸出編碼單元(例如,CUOUT),其中每個輸入編碼單元的大小小于由于編碼單元合并生成的輸出編碼單元的大小。
圖6是圖示根據本發(fā)明的實施例的編碼單元合并方法的流程圖。假設結果基本相同,步驟不要求以顯示于圖6中的精確順序來執(zhí)行。編碼單元拆分方法可以由顯示于圖5中的控制電路502執(zhí)行,且可簡短地概括如以下。
步驟602:從先前管線級(例如,第一處理電路501)接收輸入編碼單元,并設置i=0。
步驟604:檢查輸入編碼單元的大小是否等于或小于編碼單元大小閾值T’。例如,編碼單元大小閾值T’可包含第一閾值TH1’以及第二閾值TH2’中的一個或兩個。如果輸入編碼單元的大小不大于編碼單元大小閾值T,則流程進入步驟606;否則,流程進入步驟612。
步驟606:設置i=i+1。
步驟608:檢查是否i==N’。如果是,則進入步驟610;否則,進入步驟602以從先前管線級接收另一輸入編碼單元。
步驟610:合并N’個輸入編碼單元為由后續(xù)管線級(例如,第二處理電路303)處理的單個輸出編碼單元,每個輸入編碼單元具有不大于編碼單元大小閾值T’的大小。進入步驟614。
步驟612:旁路輸入編碼單元為由后續(xù)管線級(例如,第二處理電路303)處理的一個輸出編碼單元。
步驟614:觸發(fā)后續(xù)的管線級(例如,第二處理電路303)以一次處理一個輸出編碼單元。
當輸入編碼單元的大小不大于編碼單元大小閾值T’時,編碼單元合并功能被使能以使具有較小大小的輸入編碼單元變成具有較大大小的輸出編碼單元的一部分(步驟602、604、606和608)。在較大大小的輸出編碼單元最終派生于合并多于一個較小大小的輸入編碼單元后,后續(xù)的管線級被觸發(fā)以每次處理較大大小的輸出編碼單元(步驟610和614)。因此,由于較大大小的輸出編碼單元的解碼需要較少握手,較小大小的輸入編碼單元的解碼效率可通過將較小大小的輸入編碼單元合并為一個較大大小的輸出編碼單元來改善。當輸入編碼單元的大小大于編碼單元大小閾值T’時,編碼單元合并功能不被使能用于輸入編碼單元,以便從先前管線級生成的輸入編碼單元可以直接供應到后續(xù)的管線級(步驟602、604以及612)。因此,后續(xù)的管線級被觸發(fā)以處理與輸入編碼單元相同的一個輸出編碼單元(步驟614)。
應該注意到,編碼單元大小閾值T’(其可包含第一閾值(編碼單元寬度閾值)TH1’以及第二閾值(編碼單元高度閾值)TH2’的一個或兩個)可以被調整,取決于實際設計考慮。此外,合并分區(qū)的數目(即,N’的值)可以根據輸入編碼單元的大小決定。例如,編碼單元大小閾值T’可以設置為{TH1’=8以及TH2’=8},以及N’的值可以設置為4。因此,四個8x8輸入編碼單元可以合并為每次由第二處理電路503處理的一個16X16輸出編碼單元。對于另一示例,編碼單元大小閾值T’可以設置為{TH1’=8或TH2’=8}。N’的值可以響應于輸入編碼單元的大小設置。如果輸入編碼單元的大小是8x8,則N’=4。因此,四個8x8輸入編碼單元可以合并為每次由第二處理電路503處理的一個16X16輸出編碼單元。如果輸入編碼單元的大小是16x8,則N’=2。因此,兩個16x8輸入編碼單元可以合并為每次由第二處理電路503處理的一個16x16輸出編碼單元。如果輸入編碼單元的大小是8x16,則N’=2。因此,兩個8x16輸入編碼單元可合并為每次由第二處理電路503處理的一個16x16輸出編碼單元。此外,待合并的分區(qū)的大小可以調整,取決于實際設計考慮。例如,由編碼單元合并功能處理的輸入編碼單元可僅僅包含方形分區(qū)。對于另一示例,由編碼單元合并功能處理的輸入編碼單元可僅僅包含非方形分區(qū)。對于又一示例,由編碼單元合并功能處理的輸入編碼單元可包含方形分區(qū)和非方形分區(qū)。
然而,以上僅僅是用于說明性的目的,且并非是作為本發(fā)明的限制。任何由于從合并較小尺寸的輸入編碼單元生成到后續(xù)管線的輸出編碼單元落入本發(fā)明的范圍,其中較小尺寸的輸入編碼單元從先前管線級生成。
圖7是圖示根據本發(fā)明實施例的具有FIFO緩沖功能的控制電路的示意圖。在本實施例中,控制電路702耦合于第一處理電路701和第二處理電路703之間。第一處理電路701用于執(zhí)行第一處理操作,以生成多個輸入編碼單元的處理結果到控制電路702。控制電路702具有存儲裝置705用作FIFO緩沖器,用于相繼地緩沖從第一處理電路701生成的輸入編碼單元,以及相繼地輸出緩沖的輸入編碼單元為輸出編碼單元。以示例的方式,但并非限制,存儲裝置705可以使用單個存儲單元實施,或可以使用多個存儲單元實施。另外,存儲裝置705可以是內部存儲裝置、外部存儲裝置或包含內部存儲裝置和外部存儲裝置的混合存儲裝置。簡而言之,本發(fā)明沒有限制存儲裝置705的實際實現。第二處理電路703用于對從控制電路702(特別地,存儲裝置705)提供的輸出編碼單元執(zhí)行第二處理操作,其中第二處理操作不同于第一處理操作。
在較大大小的編碼單元是從先前管線級(即,第一處理電路701)生成到后續(xù)的管線級(即,第二處理電路703)且較小大小的編碼單元反饋到先前管線級(即,第一處理電路701)的情形中,先前管線級(即,第一處理電路701)將在后續(xù)管線級完成較大大小的編碼單元的解碼前完成較小大小的編碼單元的解碼??刂齐娐?02中的存儲裝置705可用于緩沖較小大小的編碼單元的解碼結果和相關命令,由此允許先前管線級(即,第一處理電路701)在后續(xù)管線級開始處理較小大小的編碼單元之前開始處理下一編碼單元。當后續(xù)的管線級完成較大大小的編碼單元時,控制電路702可輸出較小大小的編碼單元的解碼結果和相關命令到后續(xù)的管線級。以此方式,具有各種編碼單元大小的比特流可有效率地被解碼。具體地,通過使用具有FIFO緩沖功能的控制電路702,管線失衡可以避免/減輕。為了更好地理解控制電路702的FIFO緩沖功能提供的好處,在兩個管線級之間插入一個具有FIFO緩沖功能的控制電路的示例給出如以下。
圖8是圖示根據本發(fā)明的實施例的將圖片分區(qū)為具有的各種編碼單元大小的編碼單元的示意圖。在此示例中,圖片可包含多個編碼單元CU0-CU15。每個編碼單元CU0和CU5具有第一編碼單元大小,每個編碼單元CU1-CU4、CU10以及CU15具有第二編碼單元大小,以及每個編碼單元CU6-CU9和CU11-CU14具有第三編碼單元大小。第一編碼單元大小(例如,64x64)是第二編碼單元大小(例如,32x32)的4倍,以及第二編碼單元大小(例如,32x32)是第三編碼單元大小(例如,16x16)的4倍。
請結合圖9參考圖8。圖9是圖示根據本發(fā)明的實施例的具有多個管線級和多個控制電路的視頻處理裝置的示意圖。在本實施例中,每個控制電路702_1、702_2和702_3可以使用顯示于圖7中的控制電路702實施。因此,每個控制電路702_1、702_2和702_3可支持FIFO緩沖功能。如圖所示,控制電路702_1耦合于管線級0(例如,熵解碼)和管線級1(例如,運動補償/幀內預測)之間,控制電路702_2耦合于管線級1(例如,運動補償/幀內預測)和管線級2(例如,重建)之間,以及控制電路702_3耦合到管線級2(例如,重建)和管線級3(例如,環(huán)內解塊)。包含于比特流中的編碼單元CU0-CU15將按順序解碼。例如,每個編碼單元CU0-CU15將由管線級0、管線級1、管線級2和管線級3按順序處理。因為編碼單元CU0-CU15不具有相同的編碼單元大小,每個控制電路702_1、702_2和702_3可緩沖在兩個管線級之間發(fā)送的編碼單元的數據和相關命令。
如圖9所示,當管線級3處理編碼單元CU0的時候,管線級2可用于處理編碼單元CU3,管線級1可用于處理編碼單元CU5,以及管線級0可用于處理編碼單元CU9,其中由管線級0處理和輸出的編碼單元CU6、CU7、CU8的數據暫時儲存于由控制電路702_1管理的存儲裝置(例如,FIFO緩沖器),由管線級1處理和輸出的編碼單元CU4的數據暫時儲存于由控制電路702_2管理的存儲裝置(例如,FIFO緩沖器),以及由管線級2處理和輸出的編碼單元CU1和CU2的數據暫時儲存于由控制電路702_3管理的存儲裝置(例如,FIFO緩沖器)。圖10是根據本發(fā)明的實施例的圖示編碼單元的管線處理的示意圖。由于具有FIFO緩沖功能的控制電路702_1、702_2和702_3的使用,管線級0、管線級1、管線級2和管線級3不遭遇由各種編碼單元大小所導致的泡沫(即,等待周期)。
在圖3示出的示例中,控制電路302用于支持編碼單元拆分功能。在圖5示出的示例中,控制電路502用于支持編碼單元合并功能。在圖7示出的示例中,控制電路702用于支持FIFO緩沖功能。然而,這些僅僅是用于說明性的目的,并非是本發(fā)明的限制。備選,控制電路可以用于支持編碼單元拆分功能、編碼單元合并功能以及FIFO緩沖功能中的至少兩個。
圖11是圖示根據本發(fā)明的實施例的支持編碼單元拆分功能、編碼單元合并功能以及FIFO緩沖功能中的至少兩項的控制電路的示意圖。在本實施例中,控制電路1102具有存儲裝置1104和控制單元1106。存儲裝置1104用作FIFO緩沖器,用于緩沖輸入編碼單元和從先前管線級生成的相關命令。以示例的方式,但并非限制,存儲裝置1104可使用單個存儲單元實施,或可使用多個存儲單元實施。另外,存儲裝置1104可以是內部存儲裝置、外部存儲裝置或包含內部存儲裝置和外部存儲裝置的混合存儲裝置。簡而言之,本發(fā)明對存儲裝置1104的實際實現沒有限制??刂茊卧?106可用于將編碼單元拆分功能應用于緩沖于存儲裝置1104中的編碼單元的至少部分(即,部分或所有),可以用于將編碼單元合并功能應用于緩沖于存儲裝置1104中的編碼單元的至少部分(即,部分或所有),和/或可以用于控制存儲裝置1104提供FIFO緩沖功能。
以示例的方式,但并非限制,顯示于圖1中的控制電路122可以使用用于支持編碼單元拆分功能和FIFO緩沖功能的控制電路1102來實施;顯示于圖1中的控制電路124可以使用用于支持FIFO緩沖功能的控制電路1102來實施;顯示于圖1中的控制電路126可以使用用于支持FIFO緩沖功能的控制電路1102來實施;顯示于圖1中的控制電路128可以使用用于支持編碼單元拆分功能、編碼單元合并功能以及FIFO緩沖功能的控制電路1102來實施;以及顯示于圖1中的控制電路130可以使用用于支持編碼單元合并功能以及FIFO緩沖功能的控制電路1102來實施。然而,這些僅僅是用于說明性的目的,且并非是本發(fā)明的限制。采用提出的編碼單元拆分功能、編碼單元合并功能以及FIFO緩沖功能的一個或多個的任何視頻處理裝置(例如,視頻解碼器)落入本發(fā)明的范圍。
本領域技術人員將容易觀察到,在保留本發(fā)明的教導之下,可以對裝置和方法進行許多修改和替換。因此,以上揭示應該解釋為僅僅由所附的權利要求的精神和界限所限制。