專利名稱:視頻編解碼器、數(shù)據(jù)處理系統(tǒng)以及用于上述系統(tǒng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻編解碼器、數(shù)據(jù)處理系統(tǒng)以及用于上述系統(tǒng)的方法。
背景技術(shù):
運動圖像專家組(MPEG)定義了一種用于壓縮和恢復(fù)運動圖像的標(biāo)準(zhǔn)。MPEG技術(shù)可以利用時間和空間冗余的參數(shù)來壓縮運動圖像。時間冗余可由于圖像在連續(xù)幀上出現(xiàn)在時間上重疊而產(chǎn)生。特定冗余可以根據(jù)單一幀中重疊的圖像圖案來確定。
如圖1所示,傳統(tǒng)的視頻編解碼器(編碼器和/或解碼器)可以由用于存儲輸入圖像數(shù)據(jù)的幀存儲器11、13和15、離散余弦變換器(DCT)17、反DCT(IDCT)23、量化器(Q)19、反量化器(IQ)21、可變長度編碼器(VLC)29、運動估計器(ME)25、以及運動補償器(MC)27構(gòu)成。
幀存儲器11可以存儲為當(dāng)前幀的輸入圖像數(shù)據(jù)。幀存儲器13可以存儲在當(dāng)前幀之前重建的圖像數(shù)據(jù),其可以是重建幀或先前幀。幀存儲器15可以存儲進行運動補償?shù)膱D像數(shù)據(jù),它可以被稱為運動補償幀。
在幀間編碼模式中,可以在具有16×16像素的宏塊(MB)中執(zhí)行運動補償。運動估計器27可以通過在存儲在幀存儲器13中的重建幀中定位與當(dāng)前宏塊充分相似的運動矢量來獲得運動矢量,其中所述當(dāng)前宏塊可以從幀存儲器11中讀取。
運動補償器25可以從運動估計器27提供的運動矢量以及幀存儲器13提供的先前幀中獲得已運動補償?shù)膸?。在由幀存儲?5所提供的運動補償幀和由幀存儲器11所提供的當(dāng)前幀之間的變化所造成的圖像差別數(shù)據(jù)可以在8×8的單元塊中由DCT 17進行處理,并且通過量化器19被量化。量化后的圖像差別數(shù)據(jù)可以通過IDCT 21和反量化器23來恢復(fù),并且在生成重建幀和/或運動補償圖像數(shù)據(jù)的過程中被使用。
VLC 29可以執(zhí)行量化圖像差別數(shù)據(jù)和/或運動矢量的熵編碼操作。
內(nèi)編碼模式不能處理運動補償,且從幀存儲器11所提供的當(dāng)前幀可以通過DCT處理和/或量化來進行處理并且可以進行可變長度編碼操作。
傳統(tǒng)的視頻編解碼器可以與多個數(shù)據(jù)處理單元,例如DCT、IDCT、量化器、反量化器、VLC、運動估計器以及運動補償器所共享的公共總線結(jié)構(gòu)相關(guān)聯(lián)。處理單元之間的共享數(shù)據(jù)可變得越來越困難,并且對外部的存儲器的帶寬需求可增加。數(shù)據(jù)處理單元的操作可受到在公共總線上操作的數(shù)據(jù)量的限制。
發(fā)明內(nèi)容
本發(fā)明的示例性實施例提供了視頻編解碼器(即編碼器和/或解碼器)、數(shù)據(jù)處理系統(tǒng)、以及用于上述器件或系統(tǒng)的方法,它們可以減少存儲器和/或帶寬需求。
本發(fā)明的示例性實施例可以改進數(shù)據(jù)處理系統(tǒng)的性能。根據(jù)本發(fā)明的示例性實施例來對數(shù)據(jù)處理單元的實現(xiàn)、維護和/或修改可以通過任務(wù)開始和/或結(jié)束信號來與任務(wù)相關(guān)地或獨立地控制數(shù)據(jù)處理單元的流水線操作(pipelining operation)。
在本發(fā)明的示例性實施例中,數(shù)據(jù)處理單元可以共享內(nèi)部數(shù)據(jù)存儲器,并可以減少外部存儲器需求,例如帶寬需求。
本發(fā)明的示例性實施例可以降低數(shù)據(jù)處理系統(tǒng)中的功率損耗。
在本發(fā)明的示例性實施例中,數(shù)據(jù)處理系統(tǒng)可以由多個數(shù)據(jù)處理單元以及一個任務(wù)調(diào)度器構(gòu)成,其中所述任務(wù)調(diào)度器可以通過與多個操作相關(guān)聯(lián)的任務(wù)來控制在流水線操作中可操作的數(shù)據(jù)處理單元。
在本發(fā)明的示例性實施例中,任務(wù)調(diào)度器可以將任務(wù)開始信號施加到數(shù)據(jù)處理單元并且可以從數(shù)據(jù)處理單元接收任務(wù)結(jié)束信號。數(shù)據(jù)處理單元可以響應(yīng)于任務(wù)開始信號來執(zhí)行任務(wù)并且可以向任務(wù)調(diào)度器施加任務(wù)結(jié)束信號從而通知任務(wù)的結(jié)束。
在本發(fā)明的示例性實施例中,數(shù)據(jù)處理系統(tǒng)可以進一步包括可用于建立數(shù)據(jù)處理單元的功能的控制寄存器以及可用于存儲在數(shù)據(jù)處理單元的操作中所使用的數(shù)據(jù)的內(nèi)部存儲器庫。數(shù)據(jù)處理單元可以包括離散余弦變換量化器、運動估計器以及運動補償器,其可以編碼例如MPEG運動圖像,其中所述離散余弦變換量化器可包括離散余弦變換器、反離散余弦變換器、量化器和反量化器。
在本發(fā)明的示例性實施例中,內(nèi)部存儲器庫可以包括運動補償亮度和/或色度數(shù)據(jù)存儲器,可用于存儲由運動補償器進行運動補償?shù)牧炼群?或色度數(shù)據(jù);參考宏塊亮度和/或色度數(shù)據(jù)存儲器,可用于存儲從幀存儲器所檢索到(retrieve)的當(dāng)前輸入幀的亮度和/或色度數(shù)據(jù);以及搜索域數(shù)據(jù)存儲器,可用于存儲可從重建幀獲得的亮度數(shù)據(jù),所述重建幀可以在當(dāng)前輸入幀之前從幀存儲器中檢索獲得。
在本發(fā)明的示例性實施例中,搜索域數(shù)據(jù)存儲器可以向運動估計器和/或運動補償器提供先前幀的亮度和/或色度數(shù)據(jù)。運動補償亮度和/或色度數(shù)據(jù)存儲器可以向離散余弦變換器和反離散余弦變換器提供運動補償?shù)牧炼群?或色度數(shù)據(jù)。參考宏塊亮度和/或色度數(shù)據(jù)存儲器可以向運動估計器提供當(dāng)前幀的亮度數(shù)據(jù),以及向離散余弦變換器提供當(dāng)前幀的亮度和/或色度數(shù)據(jù)。
在本發(fā)明的示例性實施例中,可以在任務(wù)開始信號和任務(wù)結(jié)束信號之間的期間內(nèi)為數(shù)據(jù)處理單元提供系統(tǒng)時鐘。
在本發(fā)明的示例性實施例中,當(dāng)數(shù)據(jù)處理系統(tǒng)可以通過控制寄存器在內(nèi)編碼模式下進行操作時,運動估計器和/或運動補償器不可以接收系統(tǒng)時鐘,當(dāng)數(shù)據(jù)處理系統(tǒng)在幀間解碼模式下進行操作時,運動估計器不可以接收系統(tǒng)時鐘,以及當(dāng)數(shù)據(jù)處理系統(tǒng)在內(nèi)解碼模式下進行操作時,存儲器庫、運動估計器和/或運動補償器不可以接收系統(tǒng)時鐘。
在本發(fā)明的另一個示例性實施例中,可以包括數(shù)據(jù)處理單元,其可以編碼MPEG運動圖像,所述數(shù)據(jù)處理單元可以包括離散余弦變換量化器,該離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化器、以及反量化器。視頻編解碼器可以進一步包括運動估計器、運動補償器、可用來存儲由數(shù)據(jù)處理單元共享的數(shù)據(jù)的內(nèi)部存儲器庫、可以通過與多個操作相關(guān)聯(lián)的任務(wù)來控制可在流水線操作(pipelining operation))中可操作的數(shù)據(jù)處理單元的任務(wù)調(diào)度器、以及可以建立數(shù)據(jù)處理單元的功能的控制寄存器。
在本發(fā)明的示例性實施例中,任務(wù)調(diào)度器可以生成用于指令數(shù)據(jù)處理單元的任務(wù)開始信號。數(shù)據(jù)處理單元可以轉(zhuǎn)換到操作狀態(tài)并且響應(yīng)于從任務(wù)調(diào)度器所提供的任務(wù)開始信號來執(zhí)行任務(wù)。當(dāng)由任務(wù)開始信號指令的任務(wù)可以結(jié)束時,數(shù)據(jù)處理單元可以向任務(wù)調(diào)度器提供任務(wù)結(jié)束信號。任務(wù)結(jié)束信號可以將任務(wù)的結(jié)束通知給任務(wù)調(diào)度器。數(shù)據(jù)處理單元可以轉(zhuǎn)換到備用狀態(tài)(standby state)以等待將要從任務(wù)調(diào)度器所提供的下一個任務(wù)指令。任務(wù)調(diào)度器可以生成下一個任務(wù)開始信號并且可以響應(yīng)于從數(shù)據(jù)處理單元可提供的任務(wù)結(jié)束信號來執(zhí)行任務(wù)的功能。
在本發(fā)明的示例性實施例中,運動估計器可以估計運動和/或傳送運動矢量。運動補償器可以執(zhí)行亮度和/或色度數(shù)據(jù)的運動補償。離散余弦變換量化器可以執(zhí)行亮度和/或色度數(shù)據(jù)的DCTQ操作,并且可以寫重建幀。存儲器庫的幀存儲控制器可以控制將先前幀的亮度數(shù)據(jù)、以及當(dāng)前幀的亮度和/或色度數(shù)據(jù)從幀存儲器寫入到存儲器庫的數(shù)據(jù)存儲器中的寫入。亮度和/或色度數(shù)據(jù)可以通過可變長度編碼器和/或解碼器進行可變長度編碼和/或解碼操作的處理。
在本發(fā)明的示例性實施例中,存儲器庫可以包括運動補償亮度和/或色度數(shù)據(jù)存儲器,可用于存儲由運動補償器進行運動補償?shù)牧炼群?或色度數(shù)據(jù);參考宏塊亮度和/或色度數(shù)據(jù)存儲器,可用于存儲從幀存儲器檢索到的當(dāng)前輸入幀的亮度和/或色度數(shù)據(jù);搜索域數(shù)據(jù)存儲器,可用于存儲在從幀存儲器檢索到的當(dāng)前輸入幀之前從重建幀中所獲得的亮度數(shù)據(jù);內(nèi)部數(shù)據(jù)存儲控制器,可用于響應(yīng)于可從數(shù)據(jù)處理單元提供的內(nèi)部數(shù)據(jù)存儲控制信號,來向數(shù)據(jù)處理單元提供數(shù)據(jù);幀存儲控制器,可用于訪問幀存儲器并且將數(shù)據(jù)存儲到參考宏塊數(shù)據(jù)存儲器和/或搜索域數(shù)據(jù)存儲器中;以及任務(wù)控制器,可用于將任務(wù)開始信號從任務(wù)調(diào)度器傳送到幀存儲器,并且當(dāng)可完成任務(wù)時,向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號。
在本發(fā)明的示例性實施例中,運動估計器可以包括運動估計引擎,可用于利用從搜索域數(shù)據(jù)存儲器和/或參考宏塊亮度存儲器檢索到的亮度宏塊來評估運動矢量;運動矢量傳送控制器,可用于向運動補償器和/或可變長度編碼器傳送運動矢量;運動估計任務(wù)控制器,可用于從任務(wù)調(diào)度器接收任務(wù)開始信號,并且可以向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;以及運動估計內(nèi)部數(shù)據(jù)存儲讀取控制器,可用于生成內(nèi)部數(shù)據(jù)存儲控制信號從而從搜索域存儲器和/或參考宏塊亮度存儲器中檢索(retrieve)亮度數(shù)據(jù)。
在本發(fā)明的示例性實施例中,運動補償器可以包括運動矢量分析器,可用于分析運動矢量,該運動矢量可以由編碼模式中的運動估計器和/或解碼模式中的可變長度解碼器來提供;運動補償引擎,可用于根據(jù)已分析的運動矢量來利用亮度和/或色度數(shù)據(jù)執(zhí)行運動補償;運動補償任務(wù)控制器,可用于從任務(wù)調(diào)度器接收任務(wù)開始信號并且可以向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;運動補償內(nèi)部數(shù)據(jù)存儲讀/寫控制器,可用于生成用來從搜索域數(shù)據(jù)存儲器檢索數(shù)據(jù)的內(nèi)部數(shù)據(jù)存儲控制信號和/或生成用來將運動補償后的亮度和/或色度數(shù)據(jù)寫入到運動補償數(shù)據(jù)存儲器中的內(nèi)部數(shù)據(jù)存儲控制信號;以及幀存儲讀取控制器,可用于生成用來從幀存儲器中檢索色度數(shù)據(jù)的幀存儲器讀取控制信號。
在本發(fā)明的示例性實施例中,離散余弦變換量化器可以包括DCTQ任務(wù)控制器,可用于從任務(wù)調(diào)度器接收任務(wù)開始信號并且可以將任務(wù)結(jié)束信號傳送到任務(wù)調(diào)度器;DCTQ內(nèi)部數(shù)據(jù)存儲讀取控制器,可用于生成內(nèi)部數(shù)據(jù)存儲控制信號以便從參考宏塊數(shù)據(jù)存儲器中檢索得到亮度和/或色度數(shù)據(jù)和/或從運動補償數(shù)據(jù)存儲器中檢索得到運動補償后的亮度和/或色度數(shù)據(jù);以及DCTQ幀存儲寫入控制器,可用于在幀存儲器中存儲重建幀。
在本發(fā)明的另一個示例性實施例中,視頻編解碼器可以包括數(shù)據(jù)處理單元,該數(shù)據(jù)處理單元可以包括離散余弦變換量化器。離散余弦變換量化器可以包括離散余弦變換器、反離散余弦變換器、量化器、以及反量化器,該離散余弦變換量化器能夠編碼MPEG運動圖像。視頻編解碼器可以進一步包括運動估計器、運動補償器、以及內(nèi)部存儲器庫,其中該內(nèi)部存儲器庫可以存儲由數(shù)據(jù)處理單元所共享的數(shù)據(jù)。運動估計器和運動補償器可以共享搜索域數(shù)據(jù)存儲器,離散余弦變換器和反離散余弦變換器可以共享運動補償數(shù)據(jù)存儲器,以及運動估計器和離散余弦變換器可以共享參考宏塊數(shù)據(jù)存儲器。
在本發(fā)明的示例性實施例中,視頻編解碼器可以還包括任務(wù)調(diào)度器,可用于通過與多個操作相關(guān)聯(lián)的任務(wù)來控制可在流水線操作中操作的數(shù)據(jù)處理單元。任務(wù)調(diào)度器可以向數(shù)據(jù)處理單元施加任務(wù)開始信號,并且可以從數(shù)據(jù)處理單元接收任務(wù)結(jié)束信號。數(shù)據(jù)處理單元可以響應(yīng)于任務(wù)開始信號來執(zhí)行任務(wù)并且可以向任務(wù)調(diào)度器施加任務(wù)結(jié)束信號來指示任務(wù)的結(jié)束。
在本發(fā)明的另一個示例性實施例中,一種處理數(shù)據(jù)的方法包括響應(yīng)于可從任務(wù)調(diào)度器提供的任務(wù)開始信號來由數(shù)據(jù)處理單元執(zhí)行任務(wù);當(dāng)可完成任務(wù)時,由數(shù)據(jù)處理單元生成可用來指示任務(wù)結(jié)束的任務(wù)結(jié)束信號;在數(shù)據(jù)處理單元中建立備用狀態(tài)以等待下一個任務(wù)開始信號;以及由任務(wù)調(diào)度器響應(yīng)于任務(wù)結(jié)束信號來轉(zhuǎn)換任務(wù)。
附圖被包括來提供了對本發(fā)明的示例性實施例做進一步的理解。
了本發(fā)明的示例性實施例并且用于以實例的方式來解釋本發(fā)明的原理。在附圖中圖1是說明傳統(tǒng)的視頻編解碼器的功能性結(jié)構(gòu)的一個例子的方框圖;圖2是說明根據(jù)本發(fā)明的視頻編解碼器的示例性實施例的方框圖,其可包括存儲器庫;圖3是說明根據(jù)本發(fā)明的視頻編解碼器的示例性實施例的方框圖,其可包括存儲器庫和任務(wù)調(diào)度器;圖4是說明在圖3中所示的視頻編解碼器的示例性實施例中的編碼模式下的流水線操作的例子的示意圖;圖5說明了搜索域存儲器的組合的例子,該搜索域存儲器可以被包括在圖2和3中所示的存儲器庫中;圖6A和6B說明了參考宏塊亮度和色度存儲器的組合的例子,該參考宏塊亮度和色度存儲器可以被包含在圖2和3中所示的存儲器庫中;圖7A和7B說明了運動補償亮度和色度存儲器的組合的例子,該運動補償亮度和色度存儲器可以被包括在圖2和3中所示的存儲器庫中;圖8是說明在本發(fā)明的示例性實施例中的內(nèi)部存儲器和數(shù)據(jù)處理單元之間通過接口網(wǎng)絡(luò)的相互關(guān)系特征的例子的方框圖;圖9是示意性地說明圖2和3中所示的運動估計器(ME)的示例性實施例的方框圖;圖10是示意性地說明圖2和3中所示的運動補償器(MC)的示例性實施例的方框圖;圖11是示意性地說明圖2和3中所示的離散余弦變換量化器(DCTQ)的示例性實施例的方框圖;圖12是示意性地說明圖2和3中所示的存儲器庫的示例性實施例的方框圖;圖13說明了信號的互連特征的例子,該信號可以在任務(wù)調(diào)度器和數(shù)據(jù)處理單元之間相互交換;圖14A和14B說明了流水線操作的特征的例子,其可以被包括在幀間編碼模式和/或內(nèi)編碼模式中;圖15A和15B說明了流水線操作的特征的例子,其可以被包括在幀間解碼模式和/或內(nèi)解碼模式中;圖16A至16D是說明分別在圖14A、14B、15A和15B中所示的模式下流水線操作中的任務(wù)流的實例的處理過程圖的例子;圖17至20是分別在幀間編碼模式、內(nèi)編碼模式、幀間解碼模式和/或內(nèi)解碼模式下任務(wù)調(diào)度器的實例的轉(zhuǎn)換框圖的例子;圖21至24顯示了生成分別用于存儲器庫、運動估計器、運動補償器和/或離散余弦變換量化器的任務(wù)控制信號的算法方案的例子;圖25是存儲器庫的示例性實施例的轉(zhuǎn)換圖的例子;圖26是運動估計器的示例性實施例的轉(zhuǎn)換圖的例子;圖27是運動補償器的示例性實施例的轉(zhuǎn)換圖的例子;圖28是離散余弦變換量化器的示例性實施例的轉(zhuǎn)換框圖的例子;以及圖29是說明當(dāng)數(shù)據(jù)處理單元可以操作時,可以提供系統(tǒng)時鐘的動態(tài)時鐘選通方法的時序圖的例子。
具體實施例方式
下面將參照隨后的附圖來更詳細地描述本發(fā)明的示例性實施例。但是,本發(fā)明的示例性實施例可以以不同的形式來實現(xiàn),并且不應(yīng)該被看作是將其限制為這里所述的示例性實施例。而其意義在于提供這些示例性實施例從而使本公開是全面和完整的,并且可以全面?zhèn)鬟_本發(fā)明的范圍給本領(lǐng)域技術(shù)人員。整個說明書中相同的標(biāo)號表示相同的單元。
圖2說明了根據(jù)本發(fā)明的示例性實施例的作為數(shù)據(jù)處理裝置的視頻編解碼器的功能性結(jié)構(gòu)的例子,其可以減少存儲器帶寬需求。視頻編解碼器200可以包括數(shù)據(jù)處理單元201、221和231,其可以獨立地執(zhí)行數(shù)據(jù)處理操作,以及微處理器270,其可以控制處理單元的操作。數(shù)據(jù)處理單元201、221和231可以分別是DCTQ、運動估計器(ME)、和/或運動補償器(MC)。DCTQ 201可以由DCT 203、量化器(Q)205、反量化器(IQ)207、以及IDCT 209構(gòu)成。編碼控制器215可以管理幀間模式、內(nèi)模式、和/或量化索引的操作。
視頻編解碼器200可以包括存儲器庫241,其可以降低存儲帶寬需求。存儲器庫241可以由搜索域存儲器(或先前幀存儲器)243、運動補償存儲器245、和/或參考宏塊存儲器(或當(dāng)前幀存儲器)247構(gòu)成,其可以是視頻編解碼器200的內(nèi)部存儲器。內(nèi)部存儲器243、245和/或247可以提供可由數(shù)據(jù)處理單元201、221和231所共享的數(shù)據(jù)。運動估計器221和運動補償器231可以共享搜索域存儲器243,和/或DCT 203和IDCT 209可以共享運動補償存儲器245。運動估計器231和DCT 203可以共享參考宏塊存儲器247。
內(nèi)部存儲器庫241可以響應(yīng)于由數(shù)據(jù)處理單元所提供的控制信號(內(nèi)部存儲控制信號),來將數(shù)據(jù)提供到數(shù)據(jù)處理單元。
幀存儲器281和/或291可以存儲可當(dāng)前處理的輸入圖像數(shù)據(jù)(當(dāng)前幀),和/或在當(dāng)前輸入圖像數(shù)據(jù)之前的重建圖像數(shù)據(jù)(重建幀或先前幀)。幀存儲器281和191可以是突發(fā)訪問(burst-accessible)的同步DRAM。存儲在幀存儲器281和291中的亮度和/或色度數(shù)據(jù)可以被寫入到內(nèi)部存儲器243和247當(dāng)中。
DCTQ 201可以包括用于暫時存儲重建幀的重建存儲器(重建-存儲器)211,和/或用于存儲量化系數(shù)的量化系數(shù)存儲器(COEF存儲器)213。
視頻編解碼器200可以在微控制器290的控制下充當(dāng)編碼器和/或解碼器,二者之一或者二者可以是幀間模式中或者內(nèi)部模式中。
視頻編解碼器200可以執(zhí)行內(nèi)編碼和/或幀間編碼。內(nèi)編碼操作可以減少當(dāng)前輸入幀的空間冗余,其可以改進DCT的性能和/或改進當(dāng)前幀的量化。幀間編碼操作可以減少幀之間(例如連續(xù)幀)的時間冗余,這樣可以改善運動估計、運動補償、在當(dāng)前幀和/或運動補償幀(即預(yù)測幀)之間的圖像差別數(shù)據(jù)的DCT,和/或改進量化。
視頻編解碼器200可以執(zhí)行數(shù)據(jù)處理單元的另一幀間模式。運動估計器221可以校準(zhǔn)輸入當(dāng)前幀和先前(即重建幀)之間的以16×16像素宏塊為單元的亮度分量(Y)的運動。宏塊可以與當(dāng)前幀的宏塊充分相似(例如,匹配),該宏塊可以由先前幀的搜索域中的參考宏塊存儲器247來提供,先前幀可以由搜索域存儲器243來提供,并且可以估計在兩個宏塊之間的位移(例如,運動矢量;MV)。可以在運動補償和/或可變長度編碼處理中使用已估計的運動矢量MV。搜索域可以由與先前幀的當(dāng)前宏塊相對應(yīng)的一個宏塊以及八個宏塊構(gòu)成。搜索域可以由48×48個像素(即九個宏塊)構(gòu)成。
運動補償器231可以生成亮度和/或色度數(shù)據(jù)塊(即預(yù)測數(shù)據(jù)),其可以包括與先前幀的亮度(Y)和/或色度(Cb/Cr)塊之間的運動位移,其可以由搜索域存儲器243和幀存儲器291來提供,并且可與運動估計器221所獲得的已估計出的運動矢量MV相一致。運動補償?shù)牧炼群?或色度數(shù)據(jù)塊可以被存儲在運動補償存儲器245中。
DCTQ 201可以通過利用DCT 203和量化器205,利用已運動補償?shù)臄?shù)據(jù)塊(例如,預(yù)測數(shù)據(jù))來執(zhí)行編碼操作,并且可以通過利用反量化器207和IDCT209來執(zhí)行解碼操作。DCTQ 201可以使用DCT 203和/或量化器205,對圖像差別數(shù)據(jù)執(zhí)行DCT操作和/或量化操作,所述圖像差別數(shù)據(jù)是通過從可由參考宏塊存儲器247所提供的當(dāng)前幀的亮度和/或色度數(shù)據(jù)塊中減去可由運動補償存儲器245提供的已運動補償?shù)牧炼群?或色度數(shù)據(jù)塊(預(yù)測數(shù)據(jù))獲得的,且可以將量化系數(shù)存儲到量化系數(shù)存儲器213中。已量化的圖像差別數(shù)據(jù)可以通過反量化器207和/或IDCT 209轉(zhuǎn)換成已反量化和/或IDC轉(zhuǎn)換的數(shù)據(jù),并且可被加入到已運動補償?shù)牧炼群?色度數(shù)據(jù)當(dāng)中從而形成重建幀,該重建幀可以(例如暫時地)被存儲在重建幀存儲器211當(dāng)中。DCTQ 201可以處理以8×8像素為單元的數(shù)據(jù)??纱鎯υ谥亟◣鎯ζ?11中的重建幀可以被發(fā)送到外部幀存儲器291并且可以執(zhí)行運動補償。
DCTQ 201可以對運動矢量MV執(zhí)行可變長度編碼操作,其可以由運動估計器221和/或可存儲在量化系數(shù)存儲器213中的量化系數(shù)來校準(zhǔn)??勺冮L度編碼操作可以由具有VLC的硬件和/或具有合適程序的軟件來執(zhí)行。運動矢量和/或量化系數(shù)可以被寫入到外部幀存儲器291中。VLC可以訪問量化系數(shù)存儲器213并且利用存儲在其中的量化系數(shù)(或系數(shù)組)。VLC可以訪問運動估計器221并且利用其中所保持的運動矢量。VLC可以包括來自于運動估計器221和/或量化系數(shù)存儲器213的運動矢量MV和/或量化系數(shù)。VLC和/或DCTQ201可以共享量化系數(shù)存儲器213。VLC可以生成準(zhǔn)備/占用信號,該信號用于將激活狀態(tài)通知給DCTQ 201。量化系數(shù)可以被存儲在存儲器213和DCTQ 201中,可以生成用來通知向存儲器213中寫入量化系數(shù)的操作完成的信號,該信號可以允許VLC訪問存儲器213并且可以執(zhí)行VLC操作,該VLC操作可以包括量化系數(shù)。
視頻編解碼器200可以減少空間冗余,并且當(dāng)前幀可以由參考宏塊存儲器247來提供,該當(dāng)前幀可以由DCT 203轉(zhuǎn)換成已DC轉(zhuǎn)換的數(shù)據(jù),并可以由量化器205來量化。量化系數(shù)COEF可以由量化產(chǎn)生,并且可以被存儲在量化系數(shù)存儲器213中,該存儲器可以是內(nèi)部存儲器。量化系數(shù)COEF可以由軟件或被VLC進行熵編碼。
視頻編解碼器200可以充當(dāng)解碼器使用而可不執(zhí)行運動估計。幀間解碼模式可以包括運動補償,解碼熵編碼的圖像差別數(shù)據(jù)的量化系數(shù),并且利用運動矢量來恢復(fù)一幀。運動補償器231可以執(zhí)行亮度和/或色度數(shù)據(jù)的運動補償,其可以包括對已熵解碼的運動矢量的參考。DCTQ 201可以對亮度和/或色度數(shù)據(jù)的已熵解碼的量化系數(shù)執(zhí)行反量化和/或IDCT操作,并且可以通過將反量化和/或IDC-轉(zhuǎn)換的量化系數(shù)加入到已運動補償?shù)牧炼群?或色度數(shù)據(jù)中來恢復(fù)一幀。
內(nèi)解碼模式不需要執(zhí)行如在幀間解碼模式中已經(jīng)需要執(zhí)行的運動補償,但是可以包括熵解碼和/或幀解碼的操作。
運動估計器221和運動補償器231可以共享搜索域存儲器243,以及DCT203和IDCT 209可以共享運動補償存儲器245。運動估計器231和DCT 203可以共享參考宏塊存儲器247,并因此能夠減少存儲器帶寬需求。
圖3是說明根據(jù)本發(fā)明的作為數(shù)據(jù)處理系統(tǒng)的視頻編解碼器300的另一個示例性實施例的方框圖。視頻編解碼器300可以由微控制器390、DCTQ 301、運動估計器321、運動補償器331、數(shù)據(jù)處理單元以及存儲器庫341構(gòu)成,其中微控制器390可以包括任務(wù)調(diào)度器361和控制寄存器371,數(shù)據(jù)處理單元可以包括可變長度編碼器和解碼器(VLCD)351。DCTQ 301可以包括DCT 303、量化器305、反量化器307和IDCT 309。
VLCD 351可以執(zhí)行熵編碼和/或解碼操作。熵編碼和/或熵解碼操作也可以由具有適當(dāng)算法的軟件來執(zhí)行。
控制寄存器371可以建立視頻編解碼器300的功能結(jié)構(gòu),例如幀開始、內(nèi)編碼、幀間編碼、編碼、解碼等。
存儲器庫341可以包括搜索域存儲器343、運動補償存儲器345、和/或參考宏塊存儲器347。數(shù)據(jù)處理單元301、321和331可以通過接口網(wǎng)絡(luò)349的方式來共享公共數(shù)據(jù)。運動估計器321和/或運動補償器331可以共享搜索域存儲器343。DCT 303和IDCT 309可以共享運動補償存儲器345。運動估計器331和DCT 303可以共享參考宏塊存儲器347。
任務(wù)調(diào)度器361可以控制數(shù)據(jù)處理單元的流水線操作。任務(wù)調(diào)度器361可以輸出命令(或控制信號),即任務(wù)開始信號,其可以指令DCTQ 301、運動估計器321、運動補償器331、和/或存儲器庫來執(zhí)行任務(wù)。數(shù)據(jù)處理單元301、321和331以及存儲器庫341,從任務(wù)調(diào)度器361接收任務(wù)開始信號,并且也可執(zhí)行相應(yīng)的任務(wù)。數(shù)據(jù)處理單元301、321和331以及存儲器庫341可以向任務(wù)調(diào)度器361發(fā)送任務(wù)結(jié)束信號并且保持在備用狀態(tài),以等待另一個任務(wù)開始信號的到來。任務(wù)調(diào)度器361可以從數(shù)據(jù)處理單元301、321、331和/或存儲器庫341接收任務(wù)結(jié)束信號,并且可生成另一個任務(wù)開始信號以指令數(shù)據(jù)處理單元301、321、331和/或存儲器庫341來執(zhí)行另一個任務(wù)(例如,下一個任務(wù))。
VLCD 351可以對運動矢量執(zhí)行VLCD操作,該運動矢量可以是由運動估計器221和/或存儲在圖2的量化系數(shù)存儲器213中的量化系數(shù)COEF提供的。運動矢量可以被提供給圖2所示的外部幀存儲器291(例如,運動矢量可以從運動估計器中被存儲到外部幀存儲器中),并且可以伴有量化系數(shù)(即也可以從量化系數(shù)存儲器中存儲到外部幀存儲器中的量化系數(shù))。
VLCD 351可以生成準(zhǔn)備/占用信號來將激活狀態(tài)通知給DCTQ 301。DCTQ301可以將量化系數(shù)COEF寫到量化系數(shù)存儲器中,并且可以生成用來通知操作已完成的信號,其中該操作可以啟動VLCD 351。
任務(wù)調(diào)度器361可以獨立地在數(shù)據(jù)處理單元上執(zhí)行任務(wù)。運動估計器321可以執(zhí)行估計亮度數(shù)據(jù)塊的運動的任務(wù),和/或在外部幀存儲器中寫入運動矢量的任務(wù)。運動補償器331可以獨立地對在亮度和/或色度數(shù)據(jù)塊上執(zhí)行任務(wù),例如,分別對亮度和/或色度數(shù)據(jù)塊的運動進行補償?shù)娜蝿?wù)。DCTQ 301可以獨立地在亮度和/或色度數(shù)據(jù)塊上執(zhí)行任務(wù),例如,分別對亮度和/或色度數(shù)據(jù)塊執(zhí)行DCTQ任務(wù)(DCT、量化、反量化、IDCT),和/或存儲重建幀的任務(wù)。VLCD 351可以在運動補償器331和DCTQ 301的控制下,執(zhí)行對亮度分量進行熵編碼和/或解碼的任務(wù),色度分量的量化系數(shù)的熵編碼和/或解碼的任務(wù),以及運動矢量的VLCD的任務(wù)。
存儲器庫341可以將先前幀的亮度分量從圖2的幀存儲器281和/或291中存儲到搜索域存儲器343中,并且可以將當(dāng)前幀的亮度和/或色度分量存儲到運動補償存儲器345中。
存儲在內(nèi)部存儲器343、345和/或347中的數(shù)據(jù)可以被DCTQ 301、運動估計器321和/或運動補償器331所訪問。
可由數(shù)據(jù)處理單元操作的任務(wù)可以由任務(wù)調(diào)度器361來控制。圖4說明了圖3中所示的視頻編解碼器300的示例性實施例的編碼模式下的流水線操作的例子。
當(dāng)前和/或先前幀的亮度分量可以響應(yīng)于任務(wù)調(diào)度器361的任務(wù)開始信號被從幀存儲器遷移到參考宏塊亮度存儲器和/或運動補償存儲器中。運動估計器321可以開始運動估計從而生成相應(yīng)的運動矢量,并且運動補償器331可以參考最終產(chǎn)生的運動矢量來對亮度和/或色度分量執(zhí)行運動補償。VLCD351不需要對亮度分量執(zhí)行運動補償,并且運動矢量可以被寫到外部幀存儲器中。DCTQ 301可以對色度分量執(zhí)行DCTQ任務(wù)以及存儲其重建幀的任務(wù)。DCTQ 301可以完成亮度分量的DCTQ任務(wù)并且可以利用其量化系數(shù)來執(zhí)行熵編碼操作。
在圖5、6A、6B、7A和7B中說明了存儲器庫341的結(jié)構(gòu)配置的示例,其可以更為有效地利用數(shù)據(jù)處理單元執(zhí)行任務(wù)的流水線操作和/或減少外部存儲器帶寬需求。運動補償?shù)乃阉饔蚩梢员辉O(shè)置在[-16,16]的范圍內(nèi),即在其中可以包括具有脈沖長度(burst length)為4、8或16的單一訪問模式的系統(tǒng)條件下搜索域可以是48×48像素。存儲器庫341可以包括搜索域存儲器、參考宏塊存儲器和/或運動補償存儲器。
圖5說明了搜索域存儲器的組成的一個例子,其可以存儲亮度分量,該亮度分量可以由用于運動估計和/或補償所重建的先前幀來提供。圖6A和6B說明了參考宏塊亮度和/或色度存儲器的組成的例子,其可以存儲亮度和/或色度分量,該亮度和/或色度分量可以由用于運動估計和DCTQ的當(dāng)前幀輸入來提供。圖7A和7B說明了運動補償亮度和/或色度存儲器的組成的例子,其可以存儲用于DCTQ編碼/解碼和/或幀重建的已運動補償?shù)牧炼群?或色度分量。
參照圖5,搜索域存儲器343可以存儲圖2所示的外部幀存儲器291中的具有脈沖長度為8和/或16訪問的先前幀的亮度分量。搜索域存儲器343可以存儲48×(16×10)像素和/或搜索域[-16,16]可能需要48×48像素的數(shù)據(jù)。流水線操作可以利用幀存儲器的8和/或16的突發(fā)長度來執(zhí)行。圖5顯示了可以存儲48×(16×10)像素數(shù)據(jù)的搜索域存儲器343的結(jié)構(gòu)的例子。
外部幀存儲器291可以利用為8的突發(fā)長度來存取,并且48×16的兩個亮度塊可以被存儲在搜索域存儲器343的塊PY0和PY1中。幀存儲器291可以利用脈沖長度為16來存取,以及48×16的兩個亮度塊可以被存儲在搜索域存儲器343的塊PY0和PY1中??梢酝ㄟ^存取具有突發(fā)長度為16的幀存儲器來將四個48×16的亮度塊存儲在搜索域存儲器343的塊PY2~PY5中。四個48×16的亮度塊可以通過存取具有突發(fā)長度為16的幀存儲器而被存儲在搜索域存儲器343的塊PY6~PY9中。四個48×16的亮度塊可以被存儲在搜索域存儲器343的塊PY6~PY9中,和/或四個48×16的亮度塊可以被存儲在搜索域存儲器343的塊PY0~PY3中。這些處理可以重復(fù)進行直到在全部或者基本全部的先前幀的水平宏塊上可以完成突發(fā)脈沖存取操作為止。可以計算在水平方向上剩余的宏塊數(shù)目,并且為剩余的宏塊執(zhí)行突發(fā)脈沖存取(burstaccess)。垂直和水平像素的尺寸,例如,48像素和16×10像素,可以相應(yīng)于搜索域的范圍而變化。
參考圖6A和6B,參考宏塊存儲器347可以包括可用來存儲亮度分量的參考宏塊亮度存儲器347a,和/或可用來存儲色度分量的參考宏塊色度存儲器347b。參考宏塊亮度存儲器347a可以以突發(fā)脈沖長度16存取幀存儲器291并且可將亮度分量存儲于其中。參考宏塊色度存儲器347b可以以突發(fā)脈沖長度8存取幀存儲器291,并且可將色度分量存儲于其中。
亮度分量數(shù)據(jù)可以以突發(fā)脈沖長度16以四個宏塊為單元(每個的尺寸為16×16像素)被存取,并且可以被存儲在參考宏塊亮度存儲器347a的塊CY0~CY3中。四個亮度宏塊塊可以被存儲在參考宏塊亮度存儲器347a的塊CY4~CY7中。亮度數(shù)據(jù)可以被訪問并且被存儲在亮度塊CY4~CY7中,并且先前已經(jīng)存儲在亮度塊CY0~CY3中的數(shù)據(jù)可以被處理。四個16×16像素的亮度宏塊可以被存儲在參考宏塊亮度存儲器347a的塊CY4~CY7中,而另外的四個(例如接下來的四個)亮度宏塊塊可以被存儲在參考宏塊亮度存儲器347a的塊CY0~CY3中。可以處理一個存儲塊組(例如CY0~CY3),而另一個存儲塊組(例如,CY4~CY7)可以接收用于下一個處理階段的亮度數(shù)據(jù),并且可以增強流水線操作的性能。重復(fù)進行處理直到在全部或者基本全部先前幀的水平宏塊完成突發(fā)脈沖存取操作為止。可以對應(yīng)于水平方向上剩余的宏塊數(shù)目進行突發(fā)脈沖存取。
可以以Cb和Cr的順序,以脈沖長度8以四個宏塊為單元(8×8像素)來存取色度分量數(shù)據(jù),并且該色度分量數(shù)據(jù)可以被存儲到參考宏塊色度存儲器347b的塊CCb0~CCb3以及CCr0~CCr3中。可以以Cb和Cr的順序,以脈沖長度8以四個宏塊為單元(每個尺寸為8×8像素)來存取下一個色度分量數(shù)據(jù),并且該下一個色度分量數(shù)據(jù)可以被存儲到參考宏塊色度存儲器347b的塊CCb4~CCb7以及CCr4~CCr7中。已經(jīng)存儲在色度塊CCb4~CCb7和/或CCr4~CCr7中的數(shù)據(jù)可以被處理(例如,完全處理),以及在色度塊CCb0~CCb3和/或CCr0~CCr3中的色度數(shù)據(jù)可以被訪問和存儲??梢蕴幚硪粋€色度塊組(例如CCb0~CCb3和CCr0~CCr3),其它的色度塊組(例如CCb4~CCb7和CCr4~CCr7)可以接收用于下一處理階段的色度數(shù)據(jù),其可以增強流水線操作的性能??梢灾貜?fù)進行處理直到在全部或者基本全部先前幀的水平宏塊上完成突發(fā)脈沖存取操作為止。
參考圖7A和7B,運動補償存儲器345可以存儲運動補償?shù)牧炼群?或色度數(shù)據(jù)塊。DCTQ 301、DCT 303、IDCT 309可以存取運動補償存儲器345。運動補償存儲器345可以由運動補償亮度存儲器345a,以及運動補償色度存儲器345b構(gòu)成,其中運動補償亮度存儲器345a可以存儲進行了運動補償?shù)南嗤牧炼确至繑?shù)據(jù),運動補償色度存儲器345b可以存儲進行了運動補償?shù)南嗤幕蚧鞠嗤纳确至繑?shù)據(jù)。
運動補償亮度存儲器345a可以存儲至少兩個亮度宏塊(每個宏塊可為16×16),并且運動補償色度存儲器345b可以存儲至少兩個色度宏塊(每個宏塊可為8×8)。運動補償亮度存儲器345a可以由至少兩個亮度宏塊,MY0和MY1構(gòu)成,MY0和MY1可以是16×16。運動補償色度存儲器345b可以由至少色度宏塊MCb0、MCb1、MCr0和MCr1構(gòu)成,它們可以為8×8。
圖8是說明根據(jù)本發(fā)明的示例性實施例的內(nèi)部存儲器的存儲器庫341和/或數(shù)據(jù)處理單元之間通過接口網(wǎng)絡(luò)349的相互關(guān)系特征的例子的方框圖。DCT303和IDCT 309可以訪問相同的,或者基本相同的運動補償宏塊,和/或可以共享運動補償存儲器345。運動估計器321和運動補償器331可以共享搜索域存儲器343。運動估計器321和DCT 303可以共享參考宏塊存儲器347的亮度塊CY0~CY7。
亮度分量數(shù)據(jù)可以以例如三個48×16的塊被存儲在搜索域存儲器343中,并且可以被傳送到運動估計器321和/或運動補償器331。存儲在參考宏塊亮度存儲器347中的亮度分量宏塊對,CY0/CY2、CY1/CY3、CY4/CY6、和CY5/CY7可以通過多路復(fù)用器(MUX)349a和349b被提供給運動估計器321和/或DCT 303。存儲在參考宏塊色度存儲器347中的色度分量宏塊組,CCb0/CCr0/CCb2/CCr2、CCb1/CCr1/CCb3/CCr3、和/或CCb4/CCr4/CCb6/CCr6、CCb5/CCr5/CCb7/CCr7可以通過多路復(fù)用器349c被提供給DCT 303。
可變長度編碼操作可以由軟件執(zhí)行并且不需要使用VLC。運動矢量和/或量化系數(shù)(COEF)可以被存儲在外部幀存儲器中以用于VLC操作。VLC可以在VLC操作中被使用,并且不需要傳送運動矢量和/或量化系數(shù)。
圖9是說明運動估計器(ME)的一個示例性實施例的方框圖。圖10是說明運動補償器(MC)的示例性實施例的方框圖,圖11是說明DCTQ的示例性實施例的方框圖。圖12是說明存儲器庫的示例性實施例的方框圖。
參考圖9,運動估計器321可以由運動估計引擎401、任務(wù)控制器403、內(nèi)部存儲讀取控制器405、以及運動矢量傳送控制器407構(gòu)成。
任務(wù)控制器403可以從任務(wù)調(diào)度器361接收并執(zhí)行任務(wù)命令(即任務(wù)控制信號,例如運動估計開始信號ME和/或運動矢量寫開始信號MVw),并且可以向任務(wù)調(diào)度器361傳送可以通知任務(wù)的完成的任務(wù)結(jié)束信號(例如,運動估計結(jié)束信號MEe和/或運動矢量寫結(jié)束信號MVwe)。運動矢量MV可以在運動矢量傳送控制器407的控制下,響應(yīng)于運動矢量寫開始信號MVw被寫入到外部幀存儲器中。運動矢量不需要被存儲在外部幀存儲器中,以用于VLC操作,并且VLC能夠通過直接或者非直接地訪問運動估計器(運動補償器也可以訪問運動估計器并且可以使用運動矢量)來使用運動矢量。運動矢量不需要寫入開始信號MVw并且運動矢量不需要寫結(jié)束信號MVwe。運動矢量可以通過寫入開始信號MVw來允許運動矢量并且可以生成寫結(jié)束信號MVwe來通知任務(wù)調(diào)度器361關(guān)于運動矢量的寫入的完成。
內(nèi)部存儲讀取控制器405可以生成內(nèi)部存儲控制信號,該內(nèi)部存儲控制信號用于從存儲器庫341的搜索域存儲器343和/或參考宏塊存儲器347中檢索亮度數(shù)據(jù)PY和/或色度數(shù)據(jù)CY。運動估計引擎401可以通過響應(yīng)于運動估計開始信號ME來利用搜索域存儲器343的亮度數(shù)據(jù)PY和/或參考宏塊存儲器347的亮度數(shù)據(jù)CY估計運動,來生成運動矢量MV。運動矢量傳送控制器407可以存儲(例如暫時地)運動矢量MV,可以向運動補償器331(和/或VLC)提供運動矢量MV,和/或可以將運動矢量MV寫入到外部幀存儲器中,以用于運動矢量的VLC操作。
可以完成估計運動和/或?qū)懭脒\動矢量的操作并且任務(wù)控制器403可以向任務(wù)調(diào)度器361發(fā)送運動估計結(jié)束信號MEe和/或運動矢量寫結(jié)束信號MVwe。
參考圖10,運動補償器331可以由運動補償引擎501、任務(wù)控制器503、內(nèi)部存儲讀/寫控制器505、運動矢量分析電路507以及幀存儲讀取控制器509構(gòu)成。
任務(wù)控制器503可以從任務(wù)調(diào)度器361接收并執(zhí)行任務(wù)命令(即,任務(wù)控制信號,例如,亮度運動補償開始信號MCs[Y]和/或色度運動補償開始信號MCs[C]),并且可以向任務(wù)調(diào)度器361傳送用于通知任務(wù)的結(jié)束的任務(wù)結(jié)束信號(即,亮度運動補償結(jié)束信號MCe[Y]和/或色度運動補償結(jié)束信號MCe[C])。內(nèi)部存儲讀/寫控制器505可以生成內(nèi)部存儲控制信號,其可以從搜索域存儲器343和/或運動補償存儲器345中的寫入運動補償亮度數(shù)據(jù)MY和/或運動補償色度數(shù)據(jù)MCb/MCr中檢索亮度數(shù)據(jù)PY。幀存儲讀取控制器509可以管理對外部幀存儲器(例如圖2所示的291)的存取,以用于色度分量的運動補償。運動補償引擎501根據(jù)分析得到的運動矢量,響應(yīng)于可由任務(wù)調(diào)度器361提供的亮度和/或色度運動補償開始信號MCs[Y]和/或MCs[C]來對亮度和/或色度分量執(zhí)行運動補償??梢酝瓿捎蛇\動補償引擎501進行的運動補償,并且任務(wù)控制器503可以向任務(wù)調(diào)度器361發(fā)送亮度和/或色度運動補償結(jié)束信號MCe[Y]和/或MCe[C]。
參照圖11,DCTQ 301可以由DCT 303、量化器(Q)305、反量化器(IQ)307、IDCT 309、任務(wù)控制器603、內(nèi)部存儲讀取控制器605、以及幀存儲寫控制器609構(gòu)成。
任務(wù)調(diào)度器603可以接收任務(wù)命令,例如亮度DCTQ開始信號DCTQs[Y]、色度DCTQ開始信號DCTQs[C]、亮度COEF熵編碼開始信號COEFw[Y]、色度COEF熵編碼開始信號COEFw[C]、亮度反量化/反DCT開始信號IQIDCTs[Y]、色度反量化/反DCT開始信號IQIDCTs[C]、和/或重建幀存儲開始信號RECONw,并且可以向任務(wù)調(diào)度器361施加任務(wù)結(jié)束信號,例如亮度DCTQ結(jié)束信號DCTQe[Y]、色度DCTQ結(jié)束信號DCTQe[C]、亮度COEF熵編碼結(jié)束信號COEFwe[Y]、色度COEF熵編碼結(jié)束信號COEFwe[C]、亮度反量化/反DCT結(jié)束信號IQIDCTe[Y]、色度反量化/反DCT結(jié)束信號IQIDCTe[C]、和/或重建幀存儲結(jié)束信號RECONe。
亮度和/或色度COEF熵編碼開始信號、COEFw[Y]和/或COEFw[C],可以被提供用來向外部幀存儲器291中寫入量化系數(shù),并且可以指令VLC操作的執(zhí)行。
VLC353可以直接或者間接地訪問DCTQ 301并且可以響應(yīng)于亮度和/或色度COEF熵編碼開始信號COEFw[Y]和/或COEFw[C]來執(zhí)行VLC操作。DCTQ不需要執(zhí)行向外部幀存儲器的寫入操作。
內(nèi)部存儲讀取控制器605可以生成內(nèi)部存儲控制信號,該信號用于從參考宏塊亮度存儲器中讀取亮度數(shù)據(jù)CY,從參考宏塊色度存儲器中讀取色度數(shù)據(jù)CCb/CCr,從運動補償亮度存儲器中讀取亮度數(shù)據(jù)MY,和/或從運動補償色度存儲器中讀取色度數(shù)據(jù)MCb/MCr。幀存儲寫控制器609可以管理外部幀存儲器291中的重建幀的存儲。
參考圖12,存儲器庫341可以由用于存儲當(dāng)前幀的亮度和/或色度分量(和/或數(shù)據(jù))的參考宏塊存儲器347、用于存儲先前幀的亮度分量的搜索域存儲器343、用于存儲運動補償?shù)牧炼群?或色度分量的運動補償存儲器345、任務(wù)控制器703、內(nèi)部存儲讀/寫控制器705、幀存儲讀取控制器709、以及接口網(wǎng)絡(luò)349構(gòu)成。
任務(wù)控制器703可以接收任務(wù)命令(任務(wù)控制信號,例如,搜索域亮度寫開始信號PYw、參考宏塊亮度寫開始信號CYw、和/或參考宏塊色度寫開始信號CCBRw),并且可以在外部幀存儲器中存儲數(shù)據(jù),例如通過幀存儲讀取控制器709將數(shù)據(jù)存儲到參考宏塊亮度和/或色度存儲器和/或搜索域存儲器343中。任務(wù)控制器703可以發(fā)送任務(wù)結(jié)束信號,例如任務(wù)控制信號,例如搜索域亮度寫結(jié)束信號PYwe、參考宏塊亮度寫結(jié)束信號CYwe、和/或參考宏塊色度寫結(jié)束信號CCBRwe。
內(nèi)部存儲讀/寫控制器705可以從數(shù)據(jù)處理單元接收內(nèi)部存儲控制信號并且可以通過接口網(wǎng)絡(luò)349為數(shù)據(jù)處理單元提供搜索域亮度數(shù)據(jù)PY、參考宏塊亮度數(shù)據(jù)CY、參考宏塊色度數(shù)據(jù)CCb/CCr、運動補償亮度數(shù)據(jù)MY、和/或運動補償色度數(shù)據(jù)MCb/MCr。
圖13說明具有任務(wù)開始和結(jié)束信號的任務(wù)調(diào)度器和數(shù)據(jù)處理單元之間的連接特征的例子。任務(wù)調(diào)度器361可以響應(yīng)于從控制寄存器371所施加的幀開始信號Fs來開始操作,其中該幀開始信號Fs可以指示幀的開始??刂萍拇嫫?71可以將模式設(shè)置信號(例如,區(qū)分編碼和解碼操作模式的編碼信號EN以及區(qū)分幀間和內(nèi)模式的幀間模式信號IT)提供給可以建立視頻編解碼器的功能的任務(wù)調(diào)度器361。編碼信號EN可以是“1”或“0”,且編碼操作模式是可傳導(dǎo)的(conductible)。幀間模式信號IT可以是“1”或“0”,并且?guī)g模式IT是可傳導(dǎo)的。視頻編碼操作模式可以利用幀和/或條單元來執(zhí)行。利用條單元的編碼操作可以通過多個宏塊來執(zhí)行并且控制寄存器371可以生成可用于通知對下一條的操作的操作開始信號Ops。信號MEMmbx、MEmbx、MCmbx和/或DCTQmbx可以表示當(dāng)前在存儲器庫341、運動估計器321、運動補償器331和/或DCTQ 301中處理的宏塊的水平位置。信號MEMmbx可以按照4遞增,并且宏塊可以以4為單元被存儲在內(nèi)部存儲器中。無論何時傳送運動矢量的操作,信號MEmbx、MCmbx、和/或DCTQmbx都可以按1遞增,對色度分量的運動補償,和/或?qū)ι确至康腄CTQ任務(wù)可以結(jié)束。
視頻編解碼器可以與VGA分辨率相關(guān)聯(lián),并且6比特可以表示宏塊的水平位置。水平宏塊可以被分成4個宏塊,并且最后的宏塊可以是0、1、2和3中的一個。信號HORZe可以表示剩余宏塊的數(shù)目??梢陨尚盘朒ORZe,并且與剩余宏塊相對應(yīng)的宏塊可以被存儲在存儲器庫的存儲器中。在可以表示水平位置的多個比特中的最后兩個比特可以表示剩余宏塊的數(shù)目。
圖13中所示的其它信號可以是任務(wù)開始信號和任務(wù)結(jié)束信號,其中任務(wù)開始信號可以將任務(wù)開始通知給至少一個數(shù)據(jù)處理單元(321、331、301)和/或存儲器庫341,任務(wù)結(jié)束信號可以將任務(wù)結(jié)束通知給至少一個數(shù)據(jù)處理單元(321、331、301)和/或存儲器庫341。
任務(wù)調(diào)度器361可以生成PYw,并且PYw可以通知存儲器庫341搜索域亮度數(shù)據(jù)PY0~PY9的寫開始。存儲器庫341可以生成PYwe,并且PYwe可以通知任務(wù)調(diào)度器361搜索域亮度數(shù)據(jù)PY0~PY9的寫結(jié)束。任務(wù)調(diào)度器361可以生成CYw,并且CYw通知存儲器庫341參考宏塊亮度數(shù)據(jù)CY0~CY7的寫開始。存儲器庫341可以生成CYwe,并且CYwe可以通知任務(wù)調(diào)度器361參考宏塊亮度數(shù)據(jù)CY0~CY9的寫結(jié)束。任務(wù)調(diào)度器361可以生成CCBRw,并且CCBRw可以通知存儲器庫341參考宏塊色度數(shù)據(jù)CCb0~CCb7和/或CCr0~CCr7的寫開始。存儲器庫341可以生成CCBRwe,并且CCBRwe可以通知任務(wù)調(diào)度器361參考宏塊色度數(shù)據(jù)CCb0~CCb7和/或CCr0~CCr7的寫結(jié)束。
任務(wù)調(diào)度器361可以生成MEs,并且MEs可以在運動估計器321中開始運動估計操作。運動估計器321可以生成MEe,并且MEe可以通知任務(wù)調(diào)度器361運動估計操作的結(jié)束。任務(wù)調(diào)度器361可以生成MVw,并且MVw可以允許運動估計器321在外部幀存儲器291中寫入運動矢量MV,該運動矢量MV可以通過運動估計操作來獲得。運動估計器321可以生成MVwe,并且MVwe可以通知任務(wù)調(diào)度器361運動矢量MV的寫結(jié)束。
任務(wù)調(diào)度器361可以生成MCs[Y],并且MCs[Y]可以允許運動補償器331來開始亮度數(shù)據(jù)的運動補償操作。任務(wù)調(diào)度器361可以生成MCs[C],并且MCs[C]可以允許運動補償器331來開始色度數(shù)據(jù)的運動補償操作。運動補償器331可以生成MCe[Y]和/或MCe[C],并且MCe[Y]和MCe[C]可以通知任務(wù)調(diào)度器361對亮度和/或色度數(shù)據(jù)的運動補償操作的寫結(jié)束。
任務(wù)調(diào)度器361可以生成DCTQs[Y]和/或DCTQs[C],并且DCTQs[Y]和/或DCTQs[C]可以允許啟動DCTQ 301來執(zhí)行DCTQ操作,該DCTQ操作可以包括與亮度和/或色度數(shù)據(jù)相對應(yīng)的DCT、量化、反量化、和/或IDCT。從DCTQ301中可以生成DCTQe[Y]和/或DCTQe[C],并且DCTQe[Y]和/或DCTQe[C]可以通知任務(wù)調(diào)度器361關(guān)于DCTQ操作的結(jié)束。任務(wù)調(diào)度器361可以生成COEFw[Y]和/或COEFw[C],并且COEFw[Y]和/或COEFw[C]可以允許啟動DCTQ301來執(zhí)行對與亮度和/或色度數(shù)據(jù)相對應(yīng)的量化系數(shù)的熵編碼操作。DCTQ301可以生成COEFwe[Y]和/或COEFwe[C],并且COEFwe[Y]和/或COEFwe[C]可以通知任務(wù)調(diào)度器361分別對亮度和/或色度數(shù)據(jù)的量化系數(shù)的熵編碼操作的結(jié)束。
可以利用VLC并且信號COEFw[Y]和/或COEFw[C]可以允許啟動VLC來執(zhí)行對可存儲在圖2所示的量化系數(shù)存儲器213中的、與亮度和/或色度數(shù)據(jù)相對應(yīng)的量化系數(shù)進行的VLC操作。DCTQ 301可以生成信號COEFwe[Y]和/或COEFwe[C],并且COEFwe[Y]和/或COEFwe[C]可以通知任務(wù)調(diào)度器361與亮度和/或色度數(shù)據(jù)相對應(yīng)的VLC操作的結(jié)束。RECONw可以允許啟動DCTQ 301來存儲重建的幀數(shù)據(jù)??梢岳弥亟ǖ膸瑪?shù)據(jù)來完成存儲操作,并且DCTQ 301可以生成信號RECONwe,并且可以通知任務(wù)調(diào)度器361任務(wù)的結(jié)束。
任務(wù)調(diào)度器361可以生成信號COEFr[Y]和/或COEFr[C],其可以指令DCTQ 301從外部幀存儲器(或VLC)讀取(或檢索)關(guān)于亮度和/或色度數(shù)據(jù)的量化系數(shù)。DCTQ 301可以生成信號COEFre[Y]和/或COEFre[C],信號COEFre[Y]和/或COEFre[C]可以通知任務(wù)調(diào)度器361與亮度數(shù)據(jù)和/或色度數(shù)據(jù)相對應(yīng)的讀取操作的結(jié)束。任務(wù)調(diào)度器361也可以生成IQIDCTs[Y]和/或IQIDCTs[C],并且任務(wù)調(diào)度器361可以指令DCTQ 301執(zhí)行對亮度和/或色度數(shù)據(jù)的IQ/IDCT操作。DCTQ 301可以生成信號IQIDCTe[Y]和/或IQIDCTe[C],該IQIDCTe[Y]和/或IQIDCTe[C]可以通知任務(wù)調(diào)度器361與亮度和/或色度數(shù)據(jù)相對應(yīng)的IQ/IDCT操作的結(jié)束。
圖14A和14B說明了在幀間編碼模式和內(nèi)編碼模式下流水線操作的特征的例子,而圖15A和15B說明了在幀間解碼模式和內(nèi)解碼模式下流水線操作的特征的例子。
參考圖14A,用于運動估計的亮度數(shù)據(jù)可以從外部幀存儲器(例如,281)中傳送到搜索域存儲器(例如,圖2中的243)和/或參考宏塊存儲器(例如,247)。從外部幀存儲器到存儲器庫(例如,圖2中的241)的數(shù)據(jù)存儲處理可以以搜索域存儲器、參考宏塊亮度存儲器、和/或參考宏塊色度存儲器的順序重復(fù)進行。在T0期間,48×16的6個亮度塊可以被存儲在搜索域存儲器(243或343)中的塊PY0~PY6中??梢酝ㄟ^至少兩次訪問幀存儲器291來完成期間T0。幀存儲器291可以以突發(fā)脈沖長度8來被存取,并且可以在存儲塊PY0和/或PY1中存儲亮度數(shù)據(jù)。幀存儲器291可以以突發(fā)脈沖長度16來被存取,并且可以在存儲塊PY2~PY5中存儲亮度數(shù)據(jù)。
在T1期間,圖2中的幀存儲器281可以以突發(fā)脈沖長度16存取,并且可以在參考宏塊亮度存儲器的塊CY0~CY3中存儲至少4個16×16的亮度數(shù)據(jù)。
存儲操作可以利用參考宏塊亮度存儲器的至少4個亮度宏塊完成,并且運動估計器(231或331)可以對以16×16的宏塊存儲在參考宏塊亮度存儲器中的至少4個亮度塊CY0~CY3執(zhí)行運動估計。如圖14A所示,在T2,運動估計器可以執(zhí)行搜索域亮度數(shù)據(jù)PY0~PY2的運動估計,和/或參考宏塊亮度塊CY0可以由T0和T1預(yù)備。在T2,幀存儲器281可以存取脈沖長度8并且可以在塊CCb0~CCb3和/或CCr0~CCr3中存儲至少4個8×8的色度數(shù)據(jù)。運動估計可以在t2結(jié)束,并且MEMmbx可以從例如0轉(zhuǎn)換到4。
在T2期間,可以通過運動估計為亮度宏塊CY0生成一個運動矢量,該運動矢量可以被傳送到外部幀存儲器291,運動補償器(231或者331)可以在T3期間執(zhí)行對亮度宏塊的運動補償。運動補償?shù)牧炼群陦K可以存儲在運動補償亮度存儲器中。運動矢量的傳送操作可以結(jié)束并且MEmbx可以從例如0增加到1。幀存儲器281可以在T2期間以脈沖長度8存取,色度數(shù)據(jù)CCb0~CCb3和/或CCr0~CCr3可以存儲在參考宏塊色度存儲器中,并且?guī)鎯ζ?81可以存取脈沖長度16,該脈沖可以開始在搜索域存儲器中存儲至少4個亮度塊PY6-PY9,每個塊是48×16像素,并且其可以在T8期間執(zhí)行對亮度宏塊CY4(圖14A中的第三個)的運動估計操作。在T9期間,幀存儲器281可以以脈沖長度16存取,該脈沖可以開始在參考宏塊存儲器(圖5)中存儲至少4個亮度塊CY4~CY7,每個塊是16×16像素。
對亮度塊的運動補償和/或運動矢量的傳送可以被完成,并且DCTQ(201或者301)可以在T4期間,以8×8的塊為單元,執(zhí)行區(qū)別亮度塊CY0~PY0的DCTQ處理(DCT,QIQ,以及IDCT)。任務(wù)T4也可以補償色度塊的運動變化,并且可以開始對亮度宏塊CY1的運動估計操作。對亮度數(shù)據(jù)的運動補償可以完成并且MCmbx可以從例如0增加到1。
對區(qū)別亮度塊CY0~PY0的DCTQ處理可以執(zhí)行并且DCTQ可以在T5-T61期間內(nèi)執(zhí)行對亮度數(shù)據(jù)COEF Y0的VLC處理。在T4期間對亮度塊的運動補償可以完成,并且可以在T5期間執(zhí)行對亮度數(shù)據(jù)的DCTQ處理。在T5和T6期間可以完成亮度宏塊的運動估計,并且可以執(zhí)行對亮度宏塊的估計,而且可以將估計結(jié)果存儲在運動補償亮度存儲器中。
在T5期間對亮度塊的DCTQ處理可以完成,并且任務(wù)T6可以寫入一個重建幀。T6可以結(jié)束,并且DCTQmbx可以從例如0增加到1。
在T6期間對亮度數(shù)據(jù)COEF Y0的VLC操作可以完成,并且任務(wù)T81可以執(zhí)行對亮度數(shù)據(jù)的VLC處理。運動估計器(221和/或321),DCTQ(201或者301),和/或運動補償器(231或者331)可以執(zhí)行對色度數(shù)據(jù)的運動補償操作,對區(qū)別亮度數(shù)據(jù)CY1~PY1的DCTQ操作,和/或?qū)α炼葦?shù)據(jù)CY2的運動補償操作。
搜索域數(shù)據(jù),參考宏塊的亮度數(shù)據(jù),和/或色度數(shù)據(jù)可以在T0和T3~T8期間(T3,T4,T4,T6,T8,T9,T6,T8),T1和T9,和/或T2和T9期間存儲在外部幀存儲器291中。運動補償?shù)牟僮骺梢栽赥2,T4-T5,T8和/或T9期間執(zhí)行,并且可以在T3和T6執(zhí)行運動矢量的傳送。運動補償?shù)牧炼葦?shù)據(jù),運動補償?shù)纳葦?shù)據(jù),DCTQ的亮度數(shù)據(jù),DCTQ的色度數(shù)據(jù),和/或重建幀可以在T3和T6,任務(wù)T4和T8,任務(wù)T4和T8,任務(wù)T5和T9,和/或任務(wù)T6期間存儲。
對亮度數(shù)據(jù)的VLC操作可以在T5、T6、和T9-T6期間執(zhí)行,并且可以在T8執(zhí)行對色度的VLC操作。
內(nèi)編碼模式不需要與對搜索域數(shù)據(jù),運動估計器和/或運動補償器的存取相關(guān)聯(lián),并且T0和T3可以與幀間編碼模式相同,或者基本相同。
參考圖15A,與幀間解碼模式相比,幀間解碼模式不需要執(zhí)行運動估計和/或不需要實施參考宏塊。運動估計器在幀間解碼模式不需要具有傳導(dǎo)性,這樣搜索域數(shù)據(jù)可以在T0和/或T3~T6(T3、T4、T5、T6、T7、T8、T9、T6、T7、T8、T9和T6)期間被存取。運動補償?shù)牧炼葦?shù)據(jù),運動補償?shù)纳葦?shù)據(jù),DCTQ的亮度數(shù)據(jù),DCTQ的色度數(shù)據(jù),和/或重建幀可以在T3和T6,T4和T7-T8,T4和T8,T5和T9,和/或T6期間存儲。
參考圖15B,內(nèi)解碼模式可以與幀間解碼模式相同或者基本相同,并且不需要包括運動補償操作。
圖16A-16D是表明圖14A,14B,15A和15B中所示的流水線操作的任務(wù)流程的處理框圖。圖16A,16B,16C和/或16D分別與幀間編碼模式,內(nèi)編碼模式,幀間解碼模式和/或內(nèi)解碼模式相對應(yīng)。
在水平方向上對所有宏塊的操作可以在T8和/或T6期間內(nèi)完成(例如MX=MXLAST;MX可以表示目前正被處理的宏塊的水平位置,MXLAST可以表示最后的水平宏塊的位置),并且可以返回到初始任務(wù)。一幀的操作可以終止(MBEND),并且可以執(zhí)行空閑任務(wù)(IDLE)。
圖17-20是幀間編碼模式、內(nèi)編碼模式、幀間解碼模式和/或內(nèi)解碼模式下的任務(wù)調(diào)度器的轉(zhuǎn)換實例的圖,每個都與圖14A-15B所示的流水線序列或者順序相對應(yīng)。
在圖17-20中,maxlast(即前述的MXLAST)可以表示水平方向上的最后宏塊的位置,其可以具有值M-1(M可以是水平方向上的宏塊的數(shù)目)。mx可以表示一個宏塊的水平位置,其可以是可傳導(dǎo)的,并且可以表示與dctq_mbx(即DCTQmbx)相同或者基本相同的位置。my可以表示一個宏塊的垂直位置,并且可以在0-N-1的范圍內(nèi)建立(N可以是垂直方向上的宏塊數(shù)目)。op_unit可以表示宏塊的總數(shù)目,即M×N,并且op_cnt可以表示目前可以處理的宏塊的數(shù)目。
參考圖17,任務(wù)調(diào)度器可以響應(yīng)于控制寄存器的幀開始信號frame_start(即Fs)開始至少一幀的操作,并且可以通過存儲器庫,運動估計器,運動補償器和/或DCTQ提供的任務(wù)結(jié)束信號轉(zhuǎn)換任務(wù)(例如狀態(tài)轉(zhuǎn)換)。任務(wù)狀態(tài)可以通過控制寄存器的一個幀開始信號frame_start從空閑狀態(tài)IDLE轉(zhuǎn)換到T0。存儲器庫可以生成搜索域宏塊亮度數(shù)據(jù)寫結(jié)束信號py_write_end(即PYwe),并且任務(wù)調(diào)度器可以改變到T1。存儲器庫可以生成參考宏塊亮度數(shù)據(jù)寫結(jié)束信號cy_write_end(即CYwe),并且狀態(tài)可以轉(zhuǎn)換到T2??梢陨蓞⒖己陦K色度數(shù)據(jù)寫結(jié)束信號ccbr_write_end(即CCBRwe)和/或運動補償結(jié)束信號me_end(即MEe)并且狀態(tài)可以轉(zhuǎn)換到T3。向外部幀存儲器寫入一個運動矢量的操作(mv_write_end;即MVwe)和/或?qū)α炼葦?shù)據(jù)的停止運動補償(mc_y_end;即MCe[Y])可以完成,并且狀態(tài)可以轉(zhuǎn)換到T4。對色度數(shù)據(jù)的運動補償(mc_cbcr_end;即MCe[C])和/或?qū)α炼葦?shù)據(jù)的DCTQ任務(wù)(dctq_y_end;即DCTQe[Y])可以完成,并且狀態(tài)可以前進到T5。可以啟動從T5到T6的轉(zhuǎn)換的信號可以是運動補償結(jié)束信號me_end(即MEe)和/或色度數(shù)據(jù)DCTQ結(jié)束信號dctq_chcr_end(即DCTQe[Y])。水平方向上的最后的宏塊(me_mbx=M-1)可以在運動估計,運動補償,和/或DCTQ的操作中(例如依次進行)進行。對最后的宏塊的運動估計可以結(jié)束,運動矢量可以被傳送,并且水平方向上的最后的宏塊可以變成me_mbx=M。當(dāng)對色度數(shù)據(jù)進行DCTQ操作可以結(jié)束時,不需要生成運動估計結(jié)束信號(dctq_chcr_end),并且狀態(tài)不從T5轉(zhuǎn)換到T6。為了通過信號me_end的dctq_chcr_end信號滿足最后宏塊從T5轉(zhuǎn)換到T6的要求,邏輯等式me_mbx==M可以與me_end邏輯求和(me_end||me_mbx==M)。
啟動狀態(tài)從T6到T5轉(zhuǎn)換的信號可以是運動矢量傳送結(jié)束信號mv_write_end(即MVwe),亮度矢量補償結(jié)束信號mc_y_end(即MCe[Y]),重建幀寫結(jié)束信號recon_write_end(即RECONwe),和/或色度VLC結(jié)束信號coef_y_write_end(COEFwe[Y])(參見圖14A)。當(dāng)用于水平方向上的最后宏塊的VLC信號可以被激活時,不需要生成運動矢量傳送結(jié)束信號和/或亮度運動補償結(jié)束信號,最后宏塊可以使用邏輯等式mv_write_end||me_mbx==M,mc_y_end||mc_mbx=M。
在T8,水平方向上的宏塊處理不需要在整個幀的處理完成以前完成,并且狀態(tài)可以從例如T8→T9→T6→T8進行轉(zhuǎn)換。如果當(dāng)前宏塊的水平位置可以等于M(即水平方向上的宏塊數(shù)目)(mx==M),當(dāng)前宏塊的垂直位置可以等于垂直方向上的宏塊數(shù)目(my==N),和/或如果可以完成亮度量化系數(shù)的VLC操作(coef_cbcr_write_end;即COEFwe[C]),即當(dāng)對于一幀的處理總體上結(jié)束時,直到目前可以處理的宏塊的數(shù)目等于全部宏塊(op_unit=op_cut)的數(shù)目,狀態(tài)可以從T8前進到空閑狀態(tài)IDLE,等待對一個新的幀的處理??梢员惶幚淼暮陦K的數(shù)目可以小于全部宏塊的數(shù)目(op_unit!=op_unit;即對一幀的處理總體上可以沒有結(jié)束);如果已經(jīng)完成了對亮度量化系數(shù)的VLC操作(coef_cbcr_write_end;即COEFwe[C]),和/或最后的水平宏塊已經(jīng)處理(mx==M),狀態(tài)可以前進到T0,并且可以對下一水平行上的一個宏塊執(zhí)行操作。
由于對水平行上宏塊的不完全處理(op_uint!=unit&&mx?。組),對整個宏塊的處理可以沒有結(jié)束,并且狀態(tài)可以從T8轉(zhuǎn)換到T9。對色度數(shù)據(jù)(mc_cbcr_end;即MCe[Y])的運動補償操作,對亮度數(shù)據(jù)(dctq_y_end;即DCTQe[Y])的DCTQ操作,和/或?qū)ι葦?shù)據(jù)的量化系數(shù)(coef_cbcr_write_end;即COEFwe[C])VLC操作可以在圖14A的T8完成,并且狀態(tài)可以到T9。在從T81轉(zhuǎn)換到T9的期間,用于亮度宏塊PY的寫結(jié)束信號py_write_end(即PYwe)以及信號mc_cbcr_end,dctq_y_end,和/或coef_cbcr_write_end)也可以被執(zhí)行。
對色度數(shù)據(jù)(mc_cbcr_end)的運動補償可以在T8完成,并且狀態(tài)可以被設(shè)置為mx[1:0]=1(mx的最低兩比特是‘01’)。對色度數(shù)據(jù)(mc_cbcr_end)的運動補償可以在第二個T8完成,并且狀態(tài)可以被設(shè)置為mx[1:0]=1(mx的最低兩比特是‘10’)。從T8到T9的轉(zhuǎn)換可以加入邏輯等式(((py_write_end)&&mx[1:0]==2′b10)||mx[1:0]?。?′107||mem_mbx==M)。
如圖14A所示,對色度數(shù)據(jù)(dctq_cbcr_end;即DCTQe[Y])的運動估計(me_end;即MEe)和/或DCTQ操作可以被完成,并且T9可以轉(zhuǎn)換到T6。在從T9到T6的轉(zhuǎn)換中,可以完成對參考宏塊亮度數(shù)據(jù)的寫操作(cy_write_end),以及me_end和/或dctq_cbce_end)。在T93到T6的轉(zhuǎn)換中,可以完成對參考宏塊色度數(shù)據(jù)的寫操作(ccbccr_write_end;即CCBRwe)。T9可以結(jié)束,并且狀態(tài)可以導(dǎo)致mx[1:0]=3。當(dāng)邏輯條件(me_end||me_mbx&&dctq_cbcr_end&&((((cy_write_end&&mx[1:0]==2′b10)||mx[1:0]!=2′b10&&((ccbccr_write_end&&mx[1:0]==2′b11||mx[1:0]!=2′b11||mem_mbx==M)滿足時,可以完成從T9到T6的轉(zhuǎn)換。
T8可以前進到一個備用狀態(tài)WAIT并且可以以條為單元對宏塊進行輔助處理。以T2所建立的條為單元進行的處理可以完成(op_unit=op_cnt),但是整個幀不能被全部處理(mx?。組||my?。絅)并且T8可以前進到備用狀態(tài)WAIT。在從T8到T9的轉(zhuǎn)換中,邏輯條件可以是(((py_write_end)?&&?mx[1:0]==2b10||mx[1:0]?。?10||mem_mbx==M||mx==M),其可以確保全部或者基本全部從T8到備用狀態(tài)WAIT的轉(zhuǎn)換。全部或者基本全部從T8到備用狀態(tài)WAIT的轉(zhuǎn)換可以通過滿足邏輯條件op_unit==op_cnt&&(mx?。組||my!=N)&&((mc_cbcr_end&&dctq_y_end)||mx==M)&&coef_cbcr_write_end&&(((py_write_end)&&mx[1:0]==2′b10)||mx[1:0]?。?′b10||mem_mbx==M||mx==M)來完成。
在備用狀態(tài)WAIT,控制寄存器可以生成操作開始信號op_start(即OPs;或者稱為條處理開始信號),和/或?qū)λ椒较?或行)上的所有宏塊的處理可以結(jié)束(mx==M),并且狀態(tài)可以前進到T0。對水平方向上的全部或者基本全部宏塊的處理可以沒有被完成(mx?。組),控制寄存器可以啟動條處理開始信號op_start,并且狀態(tài)可以從被用狀態(tài)WAIT轉(zhuǎn)換到T9。
參照圖18,14A和16B,狀態(tài)可以通過控制寄存器的信號frame_start(即Fs)從空閑狀態(tài)IDLE轉(zhuǎn)換到T1。T1可以響應(yīng)于信號cy_write_end(即CVwe)前進到T2。T2可以響應(yīng)于信號ccbccr_write_end(即CCBRwe)前進到T4。T4可以響應(yīng)于信號dctq_y_end(即DCTQe[Y])前進到T5。T5可以響應(yīng)于信號dctq_cbcr_end(即DCTQe[C])轉(zhuǎn)換到T6。當(dāng)在完成了對亮度數(shù)據(jù)的運動補償(mc_y_end||mc_mbx==M),對亮度數(shù)據(jù)的量化系數(shù)的VLC操作(coef_y_write_end),和/或重建幀的存儲(recon_write_end)以后,當(dāng)根據(jù)對參考宏塊色度數(shù)據(jù)的寫操作,滿足條件(((ccbccr_write_end&&mx[1:0]==2′b11)||mx[1:0]?。?b′11||mem_mbx==M)時,狀態(tài)可以從T6轉(zhuǎn)換到T8。轉(zhuǎn)換到空閑狀態(tài)IDLE和/或任務(wù)T1的操作特征可以與圖17所示的相同或者基本相同。內(nèi)編碼模式可以不執(zhí)行運動補償,在從T8轉(zhuǎn)換到備用狀態(tài)WAIT期間,使用信號cy_write_end(即CYwe)代替信號py_write_end(即PYwe),不需要執(zhí)行對色度數(shù)據(jù)的運動補償結(jié)束信號mc_cbcr_end(即MCe[C])。T8可以結(jié)束,并且狀態(tài)可以滿足條件mx[1:0]=3,這樣圖17所示的幀間編碼模式的mx[1:0]==2′b10可以改變?yōu)閙x[1:0]==2′b11。
圖19說明了幀間解碼模式下任務(wù)調(diào)度器的狀態(tài)轉(zhuǎn)換的特征的例子。參照圖19,15A和16C,狀態(tài)可以響應(yīng)于控制寄存器的信號frame_start(即Fs)從空閑狀態(tài)IDLE轉(zhuǎn)換到T0。當(dāng)完成對亮度數(shù)據(jù)的寫操作時,T0可以響應(yīng)于信號py_write_end(即PYwe)前進到T3。T3可以響應(yīng)于信號mc_y_end(即MCe[Y];在對亮度數(shù)據(jù)的運動補償之后)和/或信號coef_y_read_end(即COEFre[Y];在從外部存儲器或者VLC讀取了亮度量化系數(shù)之后)前進到T4。T4可以響應(yīng)于信號mc_cbcr_end(即MCe[C];在對色度數(shù)據(jù)進行了運動補償之后),信號coef_cbcr_read_end(即COEFre[C];在從外部存儲器或者VLC讀取了色度量化系數(shù)之后),和/或信號iqidct_y_end(即IQIDCTe[Y];在完成亮度數(shù)據(jù)的IQIDCT操作之后)前進到T5。T5可以響應(yīng)于信號iqidct_cbcr_end(即IQIDCTe[C];在完成了對色度數(shù)據(jù)的IQIDCT操作之后)轉(zhuǎn)換到T6。
在T6,可以在完成整個幀的處理之前沒有完成水平方向上的處理宏塊,并且狀態(tài)可以從T6→T7→T8→T9→T6進行轉(zhuǎn)換。如果當(dāng)前宏塊的垂直位置等于垂直方向上的宏塊數(shù)目(my==N),和/或重建幀可以完全存儲(recon_write_end;即RECONwe),即對于一幀的處理總體上已經(jīng)結(jié)束,狀態(tài)可以從T6轉(zhuǎn)換到空閑狀態(tài)IDLE,并且可以等待對于一個新的幀的處理,已經(jīng)被處理的宏塊的數(shù)目等于整個宏塊的數(shù)目(op_unit=op_cnt),當(dāng)前宏塊的水平位置等于M(即水平方向上的宏塊的數(shù)目)(mx==M)。如果水平方向上的最后的宏塊可以被處理(mx==M),和/或重建幀可以被存儲(recon_write_end;即RECONwe),即當(dāng)水平方向(或者行)上的全部或者基本全部宏塊可以被完全處理時,已經(jīng)被處理的宏塊的數(shù)目可以小于整個宏塊的數(shù)目(op_unit?。給p_cnt,即對于一幀的處理總體上還沒有結(jié)束)。
如果對亮度數(shù)據(jù)的運動補償已經(jīng)結(jié)束(mc_y_end),和/或一個重建幀已經(jīng)被存儲(recon_write_end),對于整個宏塊的處理可以沒有結(jié)束,并且對水平行上的宏塊的處理不完全(op_unit?。絬nit&&mx?。組)。狀態(tài)可以從T6轉(zhuǎn)換到T7??梢詮耐獠看鎯ζ髯x取亮度量化系數(shù),并且T7可以到T8。在完成對色度數(shù)據(jù)的運動補償(mc_cbcr_end;MCe[C]),從外部存儲器讀取色度量化系數(shù)(coef_cbcr_read_end;即COEFre[C]),和/或完成對亮度數(shù)據(jù)的IQIDCT操作以后(iqidct_y_end;IQIDCTe[T]),T8可以轉(zhuǎn)換到T9。
對于從T9到T6的所有或者基本所有轉(zhuǎn)換,對色度數(shù)據(jù)的IQIDCT操作可以完成(iqidct_cbcr_end;即IQIDCTe[C])。亮度數(shù)據(jù)的結(jié)束操作(py_write_end)需要從T9轉(zhuǎn)換到T6。第二個T9可以結(jié)束,并且可以變成mx[1:0]=3(最低的兩比特是‘11’),這樣就可以根據(jù)條件iqidct_cbcr_end&&(((py_write_end&&mx[1:0]==2′b11||mx[1:0]!=2′b11||mem_mbx==M)獲得從T9到T6的轉(zhuǎn)換。
T6可以進入備用狀態(tài)WAIT,并且可以以條為單元輔助處理宏塊。在T6已經(jīng)建立的以條為單元的處理可以被完成(op_unit=op_cnt),并且整個幀可以沒有被完成處理(mx?。組||my?。絅)。如果條單元結(jié)束寫入重建幀(recon_write_end),和/或如果條單元可以結(jié)束相對于水平方向上的最后宏塊,對亮度數(shù)據(jù)的運動補償(mc_y_end||mx==M),T6可以轉(zhuǎn)換到備用狀態(tài)WAIT。
在備用狀態(tài)WAIT,控制寄存器可以生成操作開始信號op_start(即OPs),并且對水平方向(或者行)上的所有宏塊的處理可以結(jié)束(mx==M),狀態(tài)可以進入到T0。對水平方向上的所有宏塊的處理可以沒有結(jié)束(mx?。組),并且可以由控制寄存器啟動條處理開始信號op_start,狀態(tài)可以從備用狀態(tài)WAIT轉(zhuǎn)換到T7。
參考圖20,15B和16D,狀態(tài)可以通過控制寄存器的信號frame_start(即Fs)從空閑狀態(tài)IDLE轉(zhuǎn)換到T3。T3可以響應(yīng)于信號coef_y_read_end(即COEFre[Y])前進到T4。T4可以響應(yīng)于信號coef_cbcr_read_end(即COEFre[C])和信號iqidct_y_end(即,IQIDCTe[Y])前進到T5。T5可以響應(yīng)于信號iqidct_cbcr_end(即IQIDCTe[C])前進到T6。
內(nèi)解碼模式可以不執(zhí)行運動補償,從T6到備用狀態(tài)WAIT和/或T7的轉(zhuǎn)換可以與圖19所示的幀間解碼模式完全或者基本相同,但是可以不包括亮度運動補償結(jié)束信號mc_y_end(即MCe[Y])。從T6到空閑狀態(tài)IDLE和/或T3的轉(zhuǎn)換可以與圖19所示的幀間解碼模式完全或者基本相同。從備用狀態(tài)WAIT到T3和/或T7的轉(zhuǎn)換處理也可以與圖19所示的幀間解碼模式完全或者基本相同。
圖21、22、23和24說明了生成用于存儲器庫、運動估計器、運動補償器和/或DCTQ的任務(wù)控制信號的過程的例子。
在圖21中,可以提供一個信號horizontal_end(即HORZe)來在水平方向上剩余的宏塊數(shù)目例如小于3時通知。一個宏塊的水平位置可以由6比特表示,例如以VGA分辨率。水平宏塊可以被分成至少4個單元,并且剩余宏塊的數(shù)目可以是0,1,2或者4。例如,mem_mbx(即MEMmbx)的最高4比特可以與mxlast的最高4比特完全或者基本相同(即當(dāng)水平行上剩余的宏塊數(shù)目在0-3的范圍內(nèi)時),可以生成信號horizontal_end(HORZe)。mx可以是值‘111100’、‘111101’、‘111110’、和‘111111’中的一個。可以生成信號horizontal_end并且在數(shù)據(jù)存儲器中存儲剩余的宏塊。如果水平方向(或者行)上的全部或者基本全部宏塊已經(jīng)被完成處理(mx==M)和/或條單元處理已經(jīng)結(jié)束,可以禁止信號horizontal_end執(zhí)行對下一水平行和/或下一幀的第一水平行的存儲器的訪問。
在幀間編碼模式,當(dāng)mx的最低兩比特是‘11’時,T6可以生成信號py_write(即PYw),并且可以執(zhí)行對先前幀的亮度塊PY的存儲器寫操作。在幀間編碼模式,當(dāng)mx的最低兩比特是‘11’時,T9可以生成信號ccbccr_write(即CCBRw),并且可以執(zhí)行對當(dāng)前幀的色度塊CCb和/或CCr的存儲器寫操作。當(dāng)mx的最低兩比特是‘10’時,T9可以生成信號cy_write(即CYw),并且可以執(zhí)行對當(dāng)前幀的亮度塊CY的存儲器寫操作。
不需要運動估計操作,也可以不生成(或者禁止)信號py_write(即PYw),同時可以啟動用于指示對當(dāng)前幀的亮度塊CY和/或色度塊CCb和/或CCr的存儲器寫操作的信號,cy_write(即CYw)和/或ccbccr_write(即CCBRw)。在T9,當(dāng)mx的最低兩比特是‘11’時,可以生成ccbccr_write,并且可以啟動對當(dāng)前幀的色度塊CCb和/或CCr的存儲器寫操作,而當(dāng)mx的最低兩比特是‘10’時,可以生成信號py_write,并且可以啟動對先前幀的亮度塊的存儲器寫操作。
在幀間解碼模式和T6可以生成信號py_write(PYw),并且當(dāng)mx的最低兩比特是‘11’時,該信號可以啟動對先前幀的亮度塊的存儲器寫操作。
參考圖22,在幀間模式,任務(wù)調(diào)度器361可以生成開始信號me_start(MEs)和/或mv_start(MVs)來啟動運動估計器321的運動估計和/或運動矢量的任務(wù)傳送。
參考圖23,任務(wù)調(diào)度器361可以生成開始信號mc_start(MCs)和/或mc_cbcr_start(MVs)來啟動運動補償器331對亮度和/或色度數(shù)據(jù)的運動補償。
參考圖24,任務(wù)調(diào)度器361可以在幀間/內(nèi)編碼模式下向DCTQ301施加信號dctq_y_start(DCTQs[Y]),dctq_cbcr_start(DCTQs[C]),coef_y_write(COEFw[Y]),recon_write(RECONw),和/或coef_cbcr_write(COEFw[C])。在幀間/內(nèi)解碼模式,信號coef_y_read(COEFr[Y]),coef_cbcr_read(COEFr[C]),iqidct_y_start(IQIDCTs[Y]),iqidct_cbcr_start(IQIDCTs[Y]),和/或recon_write(RECONw)可以從任務(wù)調(diào)度器361提供給DCTQ301。
圖25說明了存儲器庫341中的狀態(tài)轉(zhuǎn)換特征的例子。存儲器庫可以被分成搜索域數(shù)據(jù)存儲器PY、參考宏塊亮度數(shù)據(jù)存儲器CY、參考宏塊色度數(shù)據(jù)存儲器,其可以從外部幀存儲器接收和存儲相應(yīng)的數(shù)據(jù)。存儲器庫可以操作來自于任務(wù)調(diào)度器361的任務(wù)控制信號,并且可以通知任務(wù)調(diào)度器361信號的操作結(jié)束。存儲器庫可以通過任務(wù)開始信號py_write(PYw),cy_write(CYw),和/或ccbccr_write(CCBRw)訪問幀存儲器并且可以當(dāng)對幀存儲器的訪問結(jié)束時,生成相應(yīng)于任務(wù)開始信號的任務(wù)結(jié)束信號py_write_end(PYwe),cy_write_end(CYwe),和/或ccbccr_write_end(CCBRwe),并且可以進入備用狀態(tài)。
存儲器庫可以遵照來自于任務(wù)調(diào)度器的任務(wù)開始信號執(zhí)行任務(wù)。在空閑狀態(tài)IDLE的編碼模式下,搜索域數(shù)據(jù)存儲器PY,數(shù)據(jù)可以首先按脈沖長度8存取,并且可以響應(yīng)于信號py_write(PYw)按脈沖長度16存取(~horizontal_end),上述py_write(PYw)信號可以指示對搜索-域數(shù)據(jù)的存儲器寫操作。而按脈沖長度16存取,水平方向上剩余的宏塊可以小于或者等于3(horizontal_end&&mxlast[1:0]==2′b11),宏塊可以根據(jù)插入?yún)^(qū)域以脈沖長度16存取。水平方向上剩余的宏塊的數(shù)目可以是0(mxlast[1:0]==2′b00),并且數(shù)據(jù)可以根據(jù)插入?yún)^(qū)域以脈沖長度4存取。水平方向上的剩余宏塊可以是2或者1(mxlast[1:0]==2′b01||2′b10),并且可以以脈沖長度8來存取數(shù)據(jù),例如,最初根據(jù)插入?yún)^(qū)域以脈沖長度4存取。
當(dāng)在備用狀態(tài)WAIT從任務(wù)調(diào)度器接收到信號cy_write(CYw)時,來自于外部幀存儲器的亮度數(shù)據(jù)可以存儲在參考宏塊亮度數(shù)據(jù)存儲器中??梢砸?6的脈沖長度(~horizontal_end)來存取參考宏塊亮度數(shù)據(jù)。水平宏塊的數(shù)目可以小于,或者等于3,同時以16的脈沖長度存取,而且可以啟動信號horizontal_end(HORZe)。水平方向上剩余的宏塊可以是3(horizontal_end&&mxlast[1:0]==2′b11),并且可以根據(jù)插入?yún)^(qū)域以16的脈沖長度存取數(shù)據(jù)。水平方向上剩余的宏塊數(shù)目可以是0(mxlast[1:0]==2′b00),并且可以根據(jù)插入?yún)^(qū)域以4的脈沖長度存取數(shù)據(jù)。水平方向上剩余的宏塊數(shù)目可以是1或者2(mxlast[1:0]==2′b01||2′b10),并且可以根據(jù)插入?yún)^(qū)域以8的脈沖長度(例如最初)并以4的脈沖長度存取數(shù)據(jù)。
當(dāng)在備用狀態(tài)WAIT,任務(wù)調(diào)度器生成信號ccbccr_write(CCBRw)時,來自于外部幀存儲器的色度數(shù)據(jù)可以存儲在參考宏塊色度數(shù)據(jù)存儲器中。可以以8的脈沖長度(~horizontal_end)存取參考宏塊色度數(shù)據(jù)。水平宏塊的數(shù)目可以小于,或者等于3,同時以8的脈沖長度進行存取,并且可以啟動信號horizontal_end(HORZe)。水平方向上剩余的宏塊可以是3(horizontal_end&&mxlast[1:0]==2′b11),并且可以根據(jù)插入?yún)^(qū)域以8的脈沖長度存取數(shù)據(jù)。水平方向上剩余的宏塊數(shù)目可以是0(mxlast[1:0]==2′b00),并且可以根據(jù)插入?yún)^(qū)域以2的脈沖長度(例如單獨模式)存取數(shù)據(jù)。水平方向上剩余的宏塊可以是1或者2(mxlast[1:0]==2′b01||2′b10),并且可以根據(jù)插入?yún)^(qū)域以4的脈沖長度(例如起初)和以2的脈沖長度存取數(shù)據(jù)。
參考圖26,可以響應(yīng)于從空閑狀態(tài)IDLE下的任務(wù)調(diào)度器361接收的運動估計開始信號me_start(MEs)將運動估計器321設(shè)置為運動估計操作狀態(tài)(ME_op),并且可以通過生成運動估計結(jié)束信號me_end(MEe)進入到備用狀態(tài)WAIT。運動估計器可以響應(yīng)于運動矢量寫開始信號mv_write(MVw)從備用狀態(tài)WAIT轉(zhuǎn)換到運動矢量寫狀態(tài)(MV_write),其中運動矢量可以被寫入到外部存儲器。在完成運動矢量寫操作以后,運動估計器可以生成運動矢量寫結(jié)束信號mv_write_end(MVwe),并且可以進入到空閑狀態(tài)IDLE。
參考圖27,運動補償器331可以分別對亮度和/或色度數(shù)據(jù)執(zhí)行分離的運動補償操作,這可以使流水線處理更為有效。對亮度數(shù)據(jù)的運動補償可以響應(yīng)于信號mc_y_start(MCs[Y])執(zhí)行,其開始于空閑狀態(tài)IDLE,并且可以生成信號mc_y_end(MCe[Y]),從而進入備用狀態(tài)WAIT。運動補償器331可以響應(yīng)于信號mc_cbcr_start(MCs[C])從備用狀態(tài)WAIT轉(zhuǎn)換到對色度數(shù)據(jù)的運動補償狀態(tài)(MC_Cb/Cr_op),并且可以響應(yīng)于信號mc_cbcr_end(MCe[C])進入到空閑狀態(tài)IDLE。
參考圖28,DCTQ301可以在空閑狀態(tài)IDLE操作,執(zhí)行對亮度數(shù)據(jù)的DCTQ操作的狀態(tài)(DCTQ_Y),在外部存儲器中存儲亮度數(shù)據(jù)的量化系數(shù)的狀態(tài)(COEF_Y_Write),執(zhí)行對色度數(shù)據(jù)的DCTQ操作的狀態(tài)(DCTQ_Cb/Cr),在外部存儲器中存儲用于色度數(shù)據(jù)的量化系數(shù)的狀態(tài)(COEF_Cb/Cr_Wfite),存儲一個重建幀的狀態(tài)(RECON_Write),從外部存儲器中讀取用于亮度數(shù)據(jù)的量化系數(shù)的狀態(tài)(COEF_Y_Read),從外部存儲器中讀取用于色度數(shù)據(jù)的量化系數(shù)的狀態(tài)(COEF_Cb/Cr_Read),執(zhí)行亮度數(shù)據(jù)的IQIDCT操作的狀(IQIDCT_Y)態(tài),執(zhí)行色度數(shù)據(jù)的IQIDCT操作的狀態(tài)(IQIDCT_Cb/Cr),和/或備用狀態(tài)WAIT。在狀態(tài)之間,可以插入備用狀態(tài)WAIT,并且可以響應(yīng)于每個狀態(tài)的任務(wù)結(jié)束信號,例如編碼模式下的dctq_y_end(DCTQe[Y]),coef_y_write_end(COEFwe[Y]),recon_write_end(RECONwe),和/或dctq_cbcr_end(DCTq[C]),coef_y_read_end(COEFwe[C]);和/或解碼模式下的coef_y_read_end(COEFre[Y]),iqidct_y_end(IQIDCTe[Y]),coef_cbcr_read_end(COEFre[C]),iqidct_cbcr_end(IQIDCTe[Y]),和/或recon_write_end(RECONwe),在狀態(tài)之間進行轉(zhuǎn)換。這些狀態(tài)可以響應(yīng)于任務(wù)開始信號編碼模式下的dctq_y_start(DCTQs[Y]),coef_y_write(COEFw[Y]),dctq_cbcr_start(DCTQs[C]),recon_write(RECONw),和/或coef_cbcr_start(COEFs[C]);解碼模式下的coef_y_read(COEFr[Y]),iqidct_y_start(IQIDCTs[Y]),coef_cbcr_read(COEFr[C]),iqidct_cbcr_start(IQIDCTs[C]),和/或recon_write(RECONw),從備用狀態(tài)WAIT啟動。
編碼(或者編碼)模式可以響應(yīng)于信號dctq_y_start(DCTQs[Y]),解碼模式可以響應(yīng)于信號coef_y_read(COEFr[Y])從空閑狀態(tài)IDLE開始。在解碼模式,可以結(jié)束對亮度數(shù)據(jù)的編碼操作,對于水平宏塊的所有處理可以被完成,并且狀態(tài)可以轉(zhuǎn)換到空閑狀態(tài)IDLE,等待用于指示對下一個水平行的宏塊進行處理的信號dctq_y_start(DCTQs[Y])的到來。在解碼模式,在完成重建幀的存儲以后,DCTQ可以轉(zhuǎn)換到空閑狀態(tài)IDLE。
當(dāng)信號dctq_y_end(DCTQe[Y])被啟動時,可以通過亮度數(shù)據(jù)的量化系數(shù)執(zhí)行VLC操作。可以生成信號dctq_cbcr_end(DCTQe[C]),并且可以利用色度數(shù)據(jù)的量化系數(shù)執(zhí)行VLC操作。狀態(tài)DCTQ_Y可以完成并且可以直接或者間接的通過VLC353,對亮度數(shù)據(jù)的DCTQ任務(wù)的結(jié)果(即亮度數(shù)據(jù)的量化系數(shù))進行VLC操作。狀態(tài)DCTQ_Cb/Cr可以完成,并且可以直接或者間接的通過VLC353利用亮度數(shù)據(jù)的DCTQ任務(wù)的結(jié)果(即色度數(shù)據(jù)的量化系數(shù))進行VLC操作。
本發(fā)明的示例實施利可以利用至少兩種方式來降低視頻編解碼器的功率消耗功率管理和/或動態(tài)時鐘選通方法,功率管理可以不為幀間和/或內(nèi)編碼冷模式中不操作的數(shù)據(jù)處理單元提供系統(tǒng)時鐘,動態(tài)時鐘選通方法可以在實際的執(zhí)行期間內(nèi)提供系統(tǒng)時鐘,由于數(shù)據(jù)處理單元可以根據(jù)任務(wù)執(zhí)行流水線操作,和/或可以具有不同的執(zhí)行時間。由于數(shù)據(jù)處理單元的功能處理可以在任務(wù)調(diào)度器生成的開始信號和/或通知處理結(jié)束的結(jié)束信號之間進行,因此系統(tǒng)時鐘可以在圖29所示的處理期間t1-tn內(nèi)被提供數(shù)據(jù)處理單元。
開始信號可以在時間t0激活,并且在時間t1的系統(tǒng)時鐘的下降沿啟動時鐘啟動激活信號。在時間tn-1可以激活結(jié)束信號,并且可以在時間tn的系統(tǒng)時鐘的下降沿禁用時鐘啟動激活信號。在周期t1-tn的期間內(nèi)可以選通系統(tǒng)時鐘(即當(dāng)數(shù)據(jù)處理單元可以執(zhí)行它們的操作時)。
盡管在隨附的附圖中已經(jīng)描述了本發(fā)明的示例性實施例,但并不局限于此。很明顯對于本領(lǐng)的技術(shù)人員來說,在不背離本發(fā)明的精神和范圍的情況下可以做出各種替代,改變和變形。
盡管已經(jīng)描述了存儲器庫的示例性實施例包括搜索域存儲器,運動補償存儲器和參考宏塊存儲器,應(yīng)當(dāng)理解本領(lǐng)域的技術(shù)人員可以利用和/或執(zhí)行任何適于執(zhí)行類似或者基本類似操作的任何尺寸的任何存儲器。
盡管這里已經(jīng)描述了數(shù)據(jù)處理單元和存儲器庫的示例性實施例,但是應(yīng)當(dāng)理解任何數(shù)據(jù)處理單元都可以單獨的或者組合的共享存儲器庫中的任何單獨的或者組合的內(nèi)部存儲器。
盡管已經(jīng)描述了幀存儲器的示例性實施例是受脈沖影響的同步DRAMS,但是應(yīng)當(dāng)理解本領(lǐng)域的技術(shù)人員可以使用任何適于執(zhí)行類似或者基本類似的功能的存儲器。
盡管已經(jīng)描述了包含在本發(fā)明的示例性實施例中的各個成分(例如數(shù)據(jù)處理單元)可以獨立操作,但是應(yīng)當(dāng)理解本發(fā)明的示例性實施例中的任何成分或者替代成分都可以按照本領(lǐng)域的技術(shù)人員的期望獨立的或者從屬的執(zhí)行。
盡管已經(jīng)描述了本發(fā)明的示例性實施例包括4個宏塊,但是應(yīng)當(dāng)理解可以按照本領(lǐng)域技術(shù)人員的期望使用任何數(shù)目的宏塊。也應(yīng)當(dāng)理解,這些宏塊可以是本領(lǐng)域技術(shù)人員所期望的任何合適尺寸。
盡管已經(jīng)描述了本發(fā)明的示例性實施例利用狀態(tài)‘1’和/或‘0’,但是應(yīng)當(dāng)理解可以使用本領(lǐng)域技術(shù)人員所期望的任何合適的狀態(tài)。
盡管已經(jīng)描述了本發(fā)明的示例性實施例利用特定的存儲器尺寸,結(jié)構(gòu)和/或配置,但是應(yīng)當(dāng)理解可以使用本領(lǐng)域技術(shù)人員所期望的任何合適的尺寸,結(jié)構(gòu)和/或配置。
盡管本發(fā)明的示例性實施例直接涉及視頻編碼器和/或解碼器,但是應(yīng)當(dāng)理解本發(fā)明的示例性實施例可以應(yīng)用于本領(lǐng)域的技術(shù)人員所期望的音頻信息。
本發(fā)明的示例性實施例對于簡化視頻編解碼器的全部操作是有利的,任務(wù)調(diào)度器可以為視頻編解碼器提供任務(wù)開始信號從而啟動諸如運動估計器,運動補償器,和/或DCTQ的數(shù)據(jù)處理單元的任務(wù),并且在完成任務(wù)以后,數(shù)據(jù)處理單元可以通知任務(wù)調(diào)度器任務(wù)已經(jīng)結(jié)束。
數(shù)據(jù)處理單元可以共享存儲器庫存儲它們的公共數(shù)據(jù),其可以改進數(shù)據(jù)處理單元的尺寸和/或降低外部存儲器的帶寬需求。
由于系統(tǒng)時鐘可以在數(shù)據(jù)處理單元是可傳導(dǎo)或者基本可傳導(dǎo)時的期間內(nèi)提供,并且不需要為在每個模式中不操作的數(shù)據(jù)處理單元提供系統(tǒng)時鐘,本發(fā)明的示例性實施例可以降低功率消耗。
這個美國非臨時專利申請要求在35.U.S.C.§119下的于2003年12月30日提交的韓國專利申請第2003-100578號的優(yōu)先權(quán),這里引用其全部內(nèi)容作為參考。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括多個數(shù)據(jù)處理單元;以及任務(wù)調(diào)度器,用于通過與多個操作相關(guān)聯(lián)的任務(wù)來控制數(shù)據(jù)處理單元進行流水線操作。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,任務(wù)調(diào)度器向數(shù)據(jù)處理單元施加任務(wù)開始信號并且從數(shù)據(jù)處理單元接收任務(wù)結(jié)束信號;并且其中數(shù)據(jù)處理單元響應(yīng)于任務(wù)開始信號來執(zhí)行任務(wù)以及向任務(wù)調(diào)度器施加任務(wù)結(jié)束信號來指示任務(wù)的結(jié)束。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),進一步包括控制寄存器,用于建立數(shù)據(jù)處理單元的功能;以及內(nèi)部存儲器庫,用于存儲在數(shù)據(jù)處理單元的操作中使用的數(shù)據(jù);其中數(shù)據(jù)處理單元由離散余弦變換量化器、運動估計器、以及運動補償器構(gòu)成,其中該離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化器、反量化器,以用于編碼MPEG運動圖像。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理系統(tǒng),其中,內(nèi)部存儲器庫包括運動補償亮度和色度數(shù)據(jù)存儲器,用于存儲由運動補償器進行運動補償?shù)牧炼群蜕葦?shù)據(jù);參考宏塊亮度和色度數(shù)據(jù)存儲器,用于存儲從幀存儲器中檢索到的當(dāng)前輸入幀的亮度和色度數(shù)據(jù);以及搜索域數(shù)據(jù)存儲器,用于存儲從在從幀存儲器中檢索到的當(dāng)前輸入幀之前的重建幀中獲得的亮度數(shù)據(jù);其中存儲器庫響應(yīng)于從任務(wù)調(diào)度器提供的幀存儲控制信號,執(zhí)行用來將來自于外部幀存儲器的數(shù)據(jù)存儲到數(shù)據(jù)存儲器中的任務(wù),并且響應(yīng)于從數(shù)據(jù)處理單元提供的數(shù)據(jù)存儲控制信號,將存儲在數(shù)據(jù)存儲器中的數(shù)據(jù)提供到數(shù)據(jù)處理單元。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其中,運動估計器和運動補償器共享搜索域數(shù)據(jù)存儲器;離散余弦變換器和反離散余弦變換器共享運動補償數(shù)據(jù)存儲器;以及運動估計器和離散余弦變換器共享參考宏塊數(shù)據(jù)存儲器。
6.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其中,運動估計器估計運動并且傳送運動矢量;運動補償器補償亮度和色度數(shù)據(jù)的運動;以及離散余弦變換量化器利用亮度和色度數(shù)據(jù)進行DCTQ操作,并且寫重建幀;其中由可變長度編碼器和解碼器利用可變長度編碼和解碼操作來處理亮度和色度數(shù)據(jù)。
7.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理系統(tǒng),其中,在任務(wù)開始信號和任務(wù)結(jié)束信號之間的周期期間內(nèi)為數(shù)據(jù)處理單元提供系統(tǒng)時鐘。
8.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其中,在任務(wù)開始信號和任務(wù)結(jié)束信號之間的周期期間內(nèi)為數(shù)據(jù)處理單元提供系統(tǒng)時鐘。
9.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其中,當(dāng)數(shù)據(jù)處理系統(tǒng)通過控制寄存器在內(nèi)編碼模式下正進行操作時,運動估計器和運動補償器與系統(tǒng)時鐘相隔離;當(dāng)數(shù)據(jù)處理系統(tǒng)在幀間解碼模式下正進行操作時,運動估計器與系統(tǒng)時鐘相隔離;以及當(dāng)數(shù)據(jù)處理系統(tǒng)在內(nèi)解碼模式下正進行操作時,運動補償器與系統(tǒng)時鐘相隔離。
10.一種視頻編解碼器,包括數(shù)據(jù)處理單元,包括離散余弦變換量化器、運動估計器以及運動補償器,其中所述離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化器以及反量化器,用于編碼MPEG運動圖像;內(nèi)部存儲器庫,用于存儲由數(shù)據(jù)處理單元所共享的公共數(shù)據(jù);任務(wù)調(diào)度器,用于通過與多個操作相關(guān)聯(lián)的任務(wù)來控制在流水線操作中可操作的數(shù)據(jù)處理單元;以及控制寄存器,用于建立數(shù)據(jù)處理單元的功能。
11.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,內(nèi)部存儲器庫包括運動補償亮度和色度數(shù)據(jù)存儲器,用于存儲由運動補償器所進行運動補償?shù)牧炼群蜕葦?shù)據(jù);參考宏塊亮度和色度數(shù)據(jù)存儲器,用于存儲從幀存儲器檢索到的當(dāng)前輸入幀的亮度和色度數(shù)據(jù);搜索域數(shù)據(jù)存儲器,用于存儲從在從幀存儲器中檢索到的當(dāng)前輸入幀之前的重建幀中提取的亮度數(shù)據(jù);內(nèi)部數(shù)據(jù)存儲控制器,用于響應(yīng)于從數(shù)據(jù)處理單元提供的內(nèi)部數(shù)據(jù)存儲控制信號來將數(shù)據(jù)提供給數(shù)據(jù)處理單元;幀存儲控制器,用于訪問幀存儲器并且控制向參考宏塊數(shù)據(jù)存儲器和搜索域數(shù)據(jù)存儲器中存儲數(shù)據(jù);以及任務(wù)控制器,用于從任務(wù)調(diào)度器向幀存儲器傳送任務(wù)開始信號,并且當(dāng)完成任務(wù)時,向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號。
12.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,任務(wù)調(diào)度器生成任務(wù)開始信號,以指令數(shù)據(jù)處理單元和存儲器庫執(zhí)行任務(wù),由此數(shù)據(jù)處理單元和存儲器庫向任務(wù)調(diào)度器提供任務(wù)結(jié)束信號并且進入備用狀態(tài)以等待下一個任務(wù)指令。
13.根據(jù)權(quán)利要求12所述的視頻編解碼器,其中,任務(wù)調(diào)度器生成任務(wù)開始信號以指令數(shù)據(jù)處理單元和存儲器庫執(zhí)行任務(wù),由此數(shù)據(jù)處理單元和存儲器庫向任務(wù)調(diào)度器提供任務(wù)結(jié)束信號并且進入備用狀態(tài)以等待下一個任務(wù)指令。
14.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,運動估計器包括運動估計引擎,用于利用從搜索域數(shù)據(jù)存儲器和參考宏塊亮度存儲器檢索到的亮度宏塊來估計運動矢量;運動矢量傳送控制器,用于向運動補償器和可變長度編碼器傳送運動矢量;運動估計任務(wù)控制器,用于從任務(wù)調(diào)度器接收任務(wù)開始信號并且向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;以及運動估計內(nèi)部數(shù)據(jù)存儲讀取控制器,用于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從搜索域數(shù)據(jù)存儲器和參考宏塊亮度存儲器中檢索亮度數(shù)據(jù)。
15.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,運動補償器包括運動矢量分析器,用于分析在編碼模式下從運動估計器提供的、而在解碼模式下從可變長度解碼器提供的運動矢量;運動補償引擎,用于參考分析后的運動矢量,利用亮度和色度數(shù)據(jù)執(zhí)行運動補償;運動補償任務(wù)控制器,用于從任務(wù)調(diào)度器接收任務(wù)開始信號并且向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;運動補償內(nèi)部數(shù)據(jù)存儲讀/寫控制器,用于生成內(nèi)部數(shù)據(jù)存儲控制信號,以從搜索域數(shù)據(jù)存儲器檢索數(shù)據(jù),以及內(nèi)部數(shù)據(jù)存儲控制信號,用于將已運動補償?shù)牧炼群蜕葦?shù)據(jù)寫入到運動補償數(shù)據(jù)存儲器;以及幀存儲讀取控制器,用于生成幀存儲讀取控制信號以便從幀存儲器中檢索色度數(shù)據(jù)。
16.根據(jù)權(quán)利要求14所述的視頻編解碼器,其中,運動補償器包括運動矢量分析器,用于分析在編碼模式下從運動估計器提供的、而在解碼模式下從可變長度解碼器提供的運動矢量;運動補償引擎,用于參考分析后的運動矢量,利用亮度和色度數(shù)據(jù)執(zhí)行運動補償;運動補償任務(wù)控制器,用于從任務(wù)調(diào)度器接收任務(wù)開始信號并且向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;運動補償內(nèi)部數(shù)據(jù)存儲讀/寫控制器,用于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從搜索域數(shù)據(jù)存儲器中檢索數(shù)據(jù),以及內(nèi)部數(shù)據(jù)存儲控制信號,用于將已運動補償?shù)牧炼群蜕葦?shù)據(jù)寫入到運動補償數(shù)據(jù)存儲器;以及幀存儲讀取控制器,用于生成幀存儲讀取控制信號以便從幀存儲器中檢索色度數(shù)據(jù)。
17.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,離散余弦變換量化器包括DCTQ任務(wù)控制器,用于從任務(wù)調(diào)度器接收任務(wù)開始信號并且向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;DCTQ內(nèi)部數(shù)據(jù)存儲讀取控制器,用于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從參考宏塊數(shù)據(jù)存儲器中檢索亮度和色度數(shù)據(jù)以及從運動補償數(shù)據(jù)存儲器中檢索已運動補償?shù)牧炼群蜕葦?shù)據(jù);以及DCTQ幀存儲寫控制器,用于將重建幀存入到幀存儲器中。
18.根據(jù)權(quán)利要求14所述的視頻編解碼器,其中,離散余弦變換量化器包括DCTQ任務(wù)控制器,用于從任務(wù)調(diào)度器接收任務(wù)開始信號以及向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;DCTQ內(nèi)部數(shù)據(jù)存儲讀取控制器,用于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從參考宏塊數(shù)據(jù)存儲器中檢索亮度和色度數(shù)據(jù)以及從運動補償數(shù)據(jù)存儲器中檢索已運動補償?shù)牧炼群蜕葦?shù)據(jù);以及DCTQ幀存儲寫控制器,用于將重建幀存入到幀存儲器中。
19.根據(jù)權(quán)利要求15所述的視頻編解碼器,其中,離散余弦變換量化器包括DCTQ任務(wù)控制器,用于從任務(wù)調(diào)度器接收任務(wù)開始信號以及向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;DCTQ內(nèi)部數(shù)據(jù)存儲讀取控制器,用于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從參考宏塊色度數(shù)據(jù)存儲器中檢索色度數(shù)據(jù)以及從運動補償數(shù)據(jù)存儲器中檢索已運動補償?shù)牧炼群蜕葦?shù)據(jù);以及DCTQ幀存儲寫控制器,用于將重建幀存入到幀存儲器中。
20.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,在任務(wù)開始信號和任務(wù)結(jié)束信號之間的周期期間內(nèi)為數(shù)據(jù)處理單元提供系統(tǒng)時鐘。
21.根據(jù)權(quán)利要求11所述的視頻編解碼器,其中,在任務(wù)開始信號和任務(wù)結(jié)束信號之間的周期期間內(nèi)為數(shù)據(jù)處理單元提供系統(tǒng)時鐘。
22.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,數(shù)據(jù)處理單元進一步包括可變長度編碼器和解碼器。
23.根據(jù)權(quán)利要求10所述的視頻編解碼器,其中,當(dāng)數(shù)據(jù)處理系統(tǒng)通過控制寄存器在內(nèi)編碼模式下正進行操作時,運動估計器和運動補償器與系統(tǒng)時鐘相隔離;當(dāng)數(shù)據(jù)處理系統(tǒng)在幀間解碼模式下正進行操作時,運動估計器與系統(tǒng)時鐘相隔離;當(dāng)數(shù)據(jù)處理系統(tǒng)在內(nèi)解碼模式下正進行操作時,運動補償器與系統(tǒng)時鐘相隔離。
24.根據(jù)權(quán)利要求15所述的視頻編解碼器,其中,運動估計器執(zhí)行估計運動和傳送運動矢量的任務(wù);運動補償器執(zhí)行用于補償亮度和色度數(shù)據(jù)的運動的任務(wù);以及存儲器庫的幀存儲控制器控制用于將先前幀的亮度數(shù)據(jù)、以及當(dāng)前幀的亮度和色度數(shù)據(jù)從幀存儲器寫入到存儲器庫的數(shù)據(jù)存儲器中的任務(wù);其中,由可變長度編碼器和解碼器利用可變長度編碼和解碼處理操作來對亮度和色度數(shù)據(jù)進行處理。
25.一種視頻編解碼器,包括數(shù)據(jù)處理單元,包括離散余弦變換量化器、運動估計器以及運動補償器,其中所述離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化器、以及反量化器,用于編碼MPEG運動圖像;以及內(nèi)部存儲器庫,用于存儲由數(shù)據(jù)處理單元所共享的公共數(shù)據(jù);其中內(nèi)部存儲器庫包括運動補償亮度和色度數(shù)據(jù)存儲器,用于存儲由運動補償器所進行運動補償?shù)牧炼群蜕葦?shù)據(jù);參考宏塊亮度和色度數(shù)據(jù)存儲器,用于存儲從幀存儲器檢索到的當(dāng)前輸入幀的亮度和色度數(shù)據(jù);以及搜索域數(shù)據(jù)存儲器,用于存儲從在從幀存儲器中檢索到的當(dāng)前輸入幀之前的重建幀中提取的亮度數(shù)據(jù);其中運動估計器和運動補償器共享搜索域數(shù)據(jù)存儲器;離散余弦變換器和反離散余弦變換器共享運動補償數(shù)據(jù)存儲器;以及運動估計器和離散余弦變換器共享參考宏塊數(shù)據(jù)存儲器。
26.根據(jù)權(quán)利要求25所述的視頻編解碼器,進一步包括任務(wù)調(diào)度器,用于利用與多個操作相關(guān)聯(lián)的任務(wù)來控制數(shù)據(jù)處理單元在流水線操作中是可操作的;其中任務(wù)調(diào)度器向數(shù)據(jù)處理單元施加任務(wù)開始信號并且從數(shù)據(jù)處理單元接收任務(wù)結(jié)束信號;并且其中數(shù)據(jù)處理單元響應(yīng)于任務(wù)開始信號來執(zhí)行自己的任務(wù)以及向任務(wù)調(diào)度器施加任務(wù)結(jié)束信號來通知任務(wù)的結(jié)束。
27.一種在具有數(shù)據(jù)處理單元的視頻編解碼器中處理數(shù)據(jù)的方法,其中所述數(shù)據(jù)處理單元包括離散余弦變換量化器、運動估計器、運動補償器以及可變長度編碼器/解碼器,其中所述離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化器以及反量化器,用于編碼MPEG運動圖像,該方法包括響應(yīng)于從任務(wù)調(diào)度器所提供的任務(wù)開始信號來由數(shù)據(jù)處理單元執(zhí)行任務(wù),當(dāng)任務(wù)完成時,由數(shù)據(jù)處理單元生成用來通知任務(wù)結(jié)束的任務(wù)結(jié)束信號,并且然后在數(shù)據(jù)處理單元中建立備用狀態(tài),以便等待下一個任務(wù)開始信號;以及由任務(wù)調(diào)度器響應(yīng)于任務(wù)結(jié)束信號來轉(zhuǎn)換任務(wù)。
28.根據(jù)權(quán)利要求27所述的方法,其中,在任務(wù)開始信號和任務(wù)結(jié)束信號之間的周期期間內(nèi)為數(shù)據(jù)處理單元提供系統(tǒng)時鐘。
29.根據(jù)權(quán)利要求27所述的方法,其中,當(dāng)數(shù)據(jù)處理系統(tǒng)通過控制寄存器在內(nèi)編碼模式下正進行操作時,運動估計器和運動補償器與系統(tǒng)時鐘相隔離;當(dāng)數(shù)據(jù)處理系統(tǒng)在幀間解碼模式下正進行操作時,運動估計器與系統(tǒng)時鐘相隔離;當(dāng)數(shù)據(jù)處理系統(tǒng)在內(nèi)解碼模式下正進行操作時,運動補償器與系統(tǒng)時鐘相隔離。
30.一種存儲器庫,包括至少一個運動補償存儲器;至少一個參考宏塊存儲器;以及至少一個搜索域數(shù)據(jù)存儲器;其中存儲器庫適于響應(yīng)于幀存儲控制信號來存儲來自于外部幀存儲器的數(shù)據(jù),以及適于響應(yīng)于數(shù)據(jù)存儲控制信號來向數(shù)據(jù)處理單元提供所存儲的數(shù)據(jù)。
31.一種運動補償存儲器,包括至少一個亮度和色度數(shù)據(jù)存儲器,用于存儲至少一個已運動補償?shù)牧炼群蜕葦?shù)據(jù)。
32.一種參考宏塊存儲器,包括至少一個亮度和色度數(shù)據(jù)存儲器,用于存儲至少一個當(dāng)前輸入幀的亮度和色度數(shù)據(jù)。
33.一種搜索域數(shù)據(jù)存儲器,用于存儲從重建幀中獲得的亮度數(shù)據(jù)。
34.根據(jù)權(quán)利要求33所述的搜索域存儲器,其中,存儲的亮度數(shù)據(jù)進一步包括搜索域為[-16,16]的像素和數(shù)據(jù)。
35.根據(jù)權(quán)利要求33所述的搜索域存儲器,其中,存儲的亮度數(shù)據(jù)進一步包括48×(16×10)的像素。
36.一種適于執(zhí)行至少一個具有運動補償?shù)臄?shù)據(jù)塊的編碼操作以及一個解碼操作的離散余弦變換量化器(DCTQ)。
37.根據(jù)權(quán)利要求36所述的DCTQ,進一步包括離散余弦變換器和量化器,用于執(zhí)行編碼操作;反離散變換器和反量化器,用于執(zhí)行解碼操作;量化系數(shù)存儲器,用于存儲通過從當(dāng)前幀的至少一個亮度和色度數(shù)據(jù)塊中減去至少一個已運動補償?shù)牧炼群蜕葦?shù)據(jù)塊所獲得的量化系數(shù);以及重建幀存儲器,用于通過通過在至少一個已運動補償?shù)牧炼群蜕葦?shù)據(jù)上加上至少一個反量化和反離散變換的數(shù)據(jù)來獲得重建幀。
38.一種運動補償器,包括運動矢量分析器,適于分析從運動估計器和可變長度解碼器中的至少一個所提供的運動矢量;運動補償引擎,適于根據(jù)所分析的運動矢量,利用亮度和色度數(shù)據(jù)中的至少一個來執(zhí)行運動補償;運動補償任務(wù)控制器,適于從任務(wù)調(diào)度器接收任務(wù)開始信號以及向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;運動補償內(nèi)部數(shù)據(jù)存儲讀/寫控制器,適于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從搜索域數(shù)據(jù)存儲器中檢索數(shù)據(jù),以及內(nèi)部數(shù)據(jù)存儲控制信號,以便將至少一個已運動補償?shù)牧炼群蜕葦?shù)據(jù)寫入到至少一個運動補償數(shù)據(jù)存儲器中;以及幀存儲讀取控制器,適于生成幀存儲讀取控制信號以便從幀存儲器中檢索色度數(shù)據(jù)。
39.一種離散余弦變換量化器(DCTQ),包括DCTQ任務(wù)控制器,適于從任務(wù)調(diào)度器接收任務(wù)開始信號以及向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;DCTQ內(nèi)部數(shù)據(jù)存儲讀取控制器,適于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從參考宏塊色度數(shù)據(jù)存儲器中檢索至少一個色度數(shù)據(jù)以及從至少一個運動補償數(shù)據(jù)存儲器中檢索得到運動補償?shù)牧炼群蜕葦?shù)據(jù);以及DCTQ幀存儲寫控制器,適于將重建幀存儲到幀存儲器中。
40.一種運動估計器,包括運動估計引擎,適于估計從至少一個搜索域數(shù)據(jù)存儲器和參考宏塊亮度存儲器中檢索得到的運動矢量;運動矢量傳送控制器,適于向至少一個運動補償器和可變長度編碼器傳送運動矢量;運動估計任務(wù)控制器,適于從任務(wù)調(diào)度器接收任務(wù)開始信號以及向任務(wù)調(diào)度器傳送任務(wù)結(jié)束信號;以及運動估計內(nèi)部數(shù)據(jù)存儲讀取控制器,適于生成內(nèi)部數(shù)據(jù)存儲控制信號,以便從至少一個搜索域數(shù)據(jù)存儲器和參考宏塊亮度存儲器中檢索獲得亮度數(shù)據(jù)。
41.一種數(shù)據(jù)處理系統(tǒng),包括用于編碼的多個數(shù)據(jù)處理單元,包括運動估計器、運動補償器以及離散余弦變換量化器中的至少一個;接口網(wǎng)絡(luò);以及存儲器庫,包括至少一個適于存儲由數(shù)據(jù)處理單元所共享的公共數(shù)據(jù)的存儲器;其中多個數(shù)據(jù)處理單元中的至少兩個通過接口網(wǎng)絡(luò)共享至少一個存儲器。
42.根據(jù)權(quán)利要求41所述的數(shù)據(jù)處理系統(tǒng),其中,存儲器庫進一步包括至少一個運動補償存儲器、至少一個參考宏塊存儲器以及至少一個搜索域數(shù)據(jù)存儲器中的至少一類。
43.據(jù)權(quán)利要求41所述的數(shù)據(jù)處理系統(tǒng),其中,存儲器庫進一步包括多個運動補償存儲器、多個參考宏塊存儲器以及多個搜索域數(shù)據(jù)存儲器中的至少一類。
44.根據(jù)權(quán)利要求41所述的數(shù)據(jù)處理系統(tǒng),其中,多個數(shù)據(jù)處理單元通過包含在接口網(wǎng)絡(luò)中的至少一個多路復(fù)用器來共享所述至少一個存儲器。
45.一種用于執(zhí)行權(quán)利要求27的所述方法的視頻編解碼器。
46.一種視頻編解碼器包括多個數(shù)據(jù)處理單元包括,離散余弦變換量化器;運動補償器;運動估計器;存儲器庫包括運動補償存儲器、搜索域數(shù)據(jù)存儲器、以及參考宏塊存儲器;以及微控制器包括任務(wù)調(diào)度器以及控制寄存器;其中所述離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化系數(shù)存儲器、以及重建幀存儲器,微控制器適于通過與多個操作相關(guān)聯(lián)的任務(wù)來控制多個數(shù)據(jù)處理單元進行流水線操作,存儲器庫適于存儲由多個數(shù)據(jù)處理單元所使用的數(shù)據(jù),以及多個數(shù)據(jù)處理單元共享存儲器庫中的至少一個存儲器。
47.一種數(shù)據(jù)處理系統(tǒng),包括多個數(shù)據(jù)處理單元,包括離散余弦變換量化器、運動補償器以及運動估計器;存儲器庫,包括運動補償存儲器、搜索域數(shù)據(jù)存儲器、以及參考宏塊存儲器;以及微控制器,包括任務(wù)調(diào)度器以及控制寄存器;其中離散余弦變換量化器包括離散余弦變換器、反離散余弦變換器、量化系數(shù)存儲器、以及重建幀存儲器,微處理器適于通過與多個操作相關(guān)聯(lián)的任務(wù)來控制多個數(shù)據(jù)處理單元進行流水線操作,存儲器庫適于存儲由多個數(shù)據(jù)處理單元所使用的數(shù)據(jù),以及多個數(shù)據(jù)處理單元共享存儲器庫中的至少一個存儲器。
全文摘要
本發(fā)明的示例性實施例提供了一種數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)可以包括任務(wù)調(diào)度器,用于允許啟動在流水線上可操作的多個獨立數(shù)據(jù)處理單元和/或控制要通過任務(wù)區(qū)分的流水線操作;以及存儲器庫,用于存儲來自數(shù)據(jù)處理單元的數(shù)據(jù)。數(shù)據(jù)處理單元可以響應(yīng)于從任務(wù)調(diào)度器所提供的任務(wù)開始信號來執(zhí)行任務(wù)。數(shù)據(jù)處理單元可以完成如任務(wù)調(diào)度器所指令的任務(wù),向調(diào)度器傳送任務(wù)結(jié)束信號并且轉(zhuǎn)換到備用狀態(tài)。
文檔編號H04N7/26GK1652605SQ200410075739
公開日2005年8月10日 申請日期2004年12月30日 優(yōu)先權(quán)日2003年12月30日
發(fā)明者姜桯善 申請人:三星電子株式會社