TWI482117B - 可程式視訊處理單元之系統與處理方法 - Google Patents
可程式視訊處理單元之系統與處理方法 Download PDFInfo
- Publication number
- TWI482117B TWI482117B TW096121890A TW96121890A TWI482117B TW I482117 B TWI482117 B TW I482117B TW 096121890 A TW096121890 A TW 096121890A TW 96121890 A TW96121890 A TW 96121890A TW I482117 B TWI482117 B TW I482117B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- mode
- format
- multiplexer
- logic circuit
- Prior art date
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Description
本發明是關於處理視訊以及圖形資料,更特定言之,本發明是關於提供一種具有可程式核心之視訊處理單元。
隨著電腦技術之不斷發展,對計算設備之需求亦隨之提升。更特定言之,許多電腦應用程式及/或資料流需要對視訊資料進行處理,隨著視訊資料變得愈加複雜,對視訊資料之處理要求亦隨之增加。
目前,許多計算架構提供用於處理包括視訊以及圖形資料之中央處理單元(CPU),雖然CPU可提供用於一些視訊以及圖形之適當處理能力,但CPU亦需處理其他資料。因此,在處理複雜視訊以及圖形中對CPU之需求可能會不利地影響整個系統之效能。
另外,許多計算架構包括用於處理資料之一或多個執行單元(EU)。更特定言之,在至少一架構中EU可用以處理多個不同類型之資料。如同CPU般,對EU之需求衍生自處理複雜視訊以及圖形資料可能會不利地影響整個計算系統之效能。另外,由EU處理複雜視訊以及圖形資料可能增加功率消耗以致超過可接受的臨限值。此外,資料之不同協定或規格更會限制EU處理視訊以及圖形資料之能力。另外,目前許多計算架構提供32位元命令,該情況可能降低效率,因而影響處理速度。此外,單一組件中利用多個操作亦是另一需求。
因此,工業領域中存在解決上述缺陷以及不足之迄今仍未解決的需求。
本發明包括用於根據一指令處理視訊資料的可程式視訊處理單元,包含一接收邏輯電路,用以接收選自複數個格式之一的視訊資料;一濾波邏輯電路,用以根據指令濾波該視訊資料;以及一轉換邏輯電路,用以根據指令轉換該濾波資料。指令包含一模式指示欄位用以指示濾波邏輯電路與轉換邏輯電路根據視訊資料之格式運作。
本發明之另一實施例包括一種用以處理至少兩種格式之視訊資料的可程式視訊處理單元,包含:一辨識邏輯電路,用以辨識視訊資料的格式;一動態補償邏輯電路,用以執行一動態補償操作;一離散餘弦反轉換邏輯電路,用以執行一離散餘弦反轉換操作;以及一整數轉換邏輯電路,用以執行一整數轉換操作。其中離散餘弦反轉換邏輯電路與整數轉換邏輯電路根據該辨識邏輯電路的辨識結果分別被關閉。
本發明亦包括用於處理視訊資料之方法的實施例。至少一實施例包括接收一指令;接收選自至少兩種格式之一的視訊資料;根據指令濾波該視訊資料;以及根據指令轉換該視訊資料。其中此指令包含一模式識別欄位用以指示濾波與轉換該視訊資料之步驟根據視訊資料之格式運作。
本發明揭露之其他系統、方法、特徵以及優點在檢視了以下圖式以及詳細描述之後對於熟習該項技術者將是明顯的或變得明顯。預期將所有此等額外系統、方法、特徵以及優點包括於此描述內容內及本揭露內容之範疇內。
圖1為用於處理視訊資料之計算架構的一實施例。如圖1所示,計算裝置可包括執行單元(Execution Unit,EU)之集區(pool)146。執行單元之集區146可包括用於在圖1之計算架構中執行資料之一或多個執行單元。執行單元之集區146(本文中稱為“EUP 146”)可耦接至資料流快取記憶體116,且自資料流快取記憶體116接收資料。EUP 146亦可耦接至輸入端口142以及輸出端口144。輸入端口142可用以自具有快取記憶體子系統之EUP控制器118接收資料。輸入端口142亦可自L2快取記憶體114以及後封裝器160接收資料。EUP 146可處理所接收之資料,且將經處理後的資料輸出至輸出端口144。
另外,具有快取記憶體子系統之EUP控制器118可將資料發送至記憶體存取單元(memory access unit,以下簡稱MXU)A 164a以及三角與屬性配置單元(triangle and attribute setup)134。L2快取記憶體114亦可將資料發送至MXU A 164a,且自MXU A 164a接收資料。頂點快取記憶體(vertex cache)112以及資料流快取記憶體110亦可與MXU A 164a通信,記憶體存取端口108亦與MXU A 164a通信。記憶體存取端口108可與匯流排介面單元(bus interface unit,BIU)90、記憶體介面單元(memory interface unit,MIU)A106a、MIU B 106b、MIU C 106c以及MIU D 106d通信資料,記憶體存取端口108亦可耦接至MXU B 164b。
MXU A 164a亦耦接至命令流處理器(command stream processor,以下簡稱CSP)前端120以及CSP後端128。CSP前端120耦接至3D與狀態組件122,3D與狀態組件122耦接至具有快取記憶體子系統之EUP控制器118。CSP前端120亦耦接至2D前置組件(pre component)124,2D前置組件124耦接至2D先進先出(FIFO)組件126。CSP前端120亦與清晰度及型號紋理處理器(clear and type texture processor)130以及高級加密系統(advanced encryption system,AES)加密/解密組件132通信資料。CSP後端128耦接至跨距像磚產生器(span-tile generator)136。
三角與屬性配置單元134耦接至3D與狀態組件122、具有快取記憶體子系統之EUP控制器118以及跨距像磚產生器136。跨距像磚產生器136可用以將資料發送至ZL1快取記憶體128,跨距像磚產生器136亦可耦接至ZL1 138,ZL1 138可將資料發送至ZL1快取記憶體128。ZL2 140可耦接至Z(例如,深度緩衝快取記憶體)及模板(stencil,ST)快取記憶體148。Z及ST快取記憶體148可透過寫回單元162來發送及接收資料,且可耦接至頻寬(以下簡稱BW)壓縮器146。BW壓縮器146亦可耦接至MXU B 164b,MXU B 164b可耦接至紋理快取記憶體與控制器166。紋理快取記憶體與控制器166可耦接至紋理濾波單元(texture filter unit,以下簡稱TFU)168,TFU168可將資料發送至後封裝器160。後封裝器160可耦接至內插器158。前封裝器156可耦接至內插器158以及紋理位址產生器150。寫回單元162可耦接至2D處理組件(pro component)154、D快取記憶體152、Z與ST快取記憶體148、輸入端口142以及CSP後端128。
圖1之實施例經由利用EUP 146來處理視訊資料。更特定言之,在至少一實施例中,執行單元之一或多者可用以處理視訊資料。雖然此架構可適用於一些應用,但此架構可能消耗過量功率;另外,此架構在處理H.264資料中可能頗具難度。
圖2為類似於圖1架構且引入了視訊處理單元(video processing unit,以下簡稱VPU)之計算架構的一實施例。更特定言之,在圖2之實施例中,可在圖1之計算架構中提供具有可程式核心之VPU199。VPU 199可耦接至CSP前端120以及TFU168。VPU 199可作為用於視訊資料之專用處理器。另外,VPU 199可用以處理以動畫專家群(以下簡稱MPEG)、VC-1以及H.264協定編碼之視訊資料。
更特定言之,在至少一實施例中,可在執行單元(EU)146之一或多者上執行遮影器碼(shader code)。指令可經解碼及自暫存器提取,主要以及次要操作碼可用以判定運算元被投送之EU以及可基於此運算元執行運算之函數。若操作屬於SAMPLE類型(舉例而言,所有VPU指令皆為SAMPLE類型),則可自EUP146調度指令。儘管VPU 199可用以減少使用TFU濾波硬體,但VPU 199也可與TFU168一起駐存。
用於SAMPLE操作之EUP146構建580位元之資料結構(見表格1)。EUP146提取SAMPLE指令所指示之來源暫存器,此資料被置放於EUP-TAG介面結構之最低有效512位元中。EUP146***於此結構中之其他相關資料為:REG_TYPE:此應為0 ThreadID-用以將結果投送回正確的遮影器程式 ShaderResID- ShaderType=PS CRFIndex-目的暫存器 SAMPLE_MODE-此為待執行之VPU濾波操作 ExeMode=垂直
此資料結構隨後可被發送至紋理位址產生器(texture address generator,以下簡稱TAG)150。TAG 150可用以檢查SAMPLE_MODE位元以判定資料欄位是否含有紋理樣本資訊或實際資料。若含有實際資料,則TAG 150將資料直接轉發至VPU 199,否則TAG 150可啟始紋理提取。
若SAMPLE_MODE為MCF、SAD、IDF_VC-1、IDF_H264_0或IDF_H264_1中之一者,則其需要提取紋理資料,否則資料在Data欄位中。
TAG 150用以產生位址所需且傳遞至紋理快取記憶體控制器(texture cache controller,以下簡稱TCC)166的資訊可在Data欄位之最低有效128位元中找到:位元[31:0]-U、V座標,此構成紋理塊之位址(4x4x8位元) 位元[102:96]-T# 位元[106:103]-S#
T#、S#、U以及V為自特定表面提取之紋理所需的充分資訊。U、V、T#、S#可在解碼期間自INSTRUCTION之SRC1欄位提取,且可用於填充以上欄位。因此,可在執行期間動態地修改U、V、T#、S#。
隨後SAMPLE_MODE以及含有此資訊之資料的最低有效128位元可置放於VPU 199之命令先進先出記憶體(以下簡稱COMMAND FIFO)中,相對應的資料先進先出記憶體(DATA FIFO)可填充以自紋理快取記憶體被轉發的資料(位元[383:128])或256位元(最大)。此資料將在VPU 199中***作運算,該操作是由COMMAND FIFO的資訊來判定的,其結果(最大256位元)可使用ThreadID以及CRFIndex作為傳回位址傳回至EUP 146以及EU暫存器。
另外,本發明包括由EUP 146提供且可供VPU 199使用之指令集,其指令可格式化成64位元,然而此非必要。更特定言之,在至少一實施例中,VPU指令集可包括一或多個動態補償濾波(motion compensation filter,以下簡稱MCF)指令。在此實施例中可能存在以下MCF指令之一或多者:SAMPLE_MCF_BLR DST、S#、T#、SRC2、SRC1 SAMPLE_MCF_VC1 DST、S#、T#、SRC2、SRC1 SAMPLE_MCF_H264 DST、S#、T#、SRC2、SRC1
SRC1之第一組32位元含有U、V座標,其中最低有效16位元為U。由於可不使用或可忽略SRC2,因此SRC2可為任何值,例如為含有4元素濾波核心之32位元值,每一元素為如下揭示帶正負號之8位元。
另外,VPU 199之指令集還包括關於迴路內解塊濾波(Inloop Deblocking Filtering,以下簡稱IDF)之指令,如以下指令之一或多者:SAMPLE_IDF_VC1 DST、S#、T#、SRC2、SRC1 SAMPLE_IDF_H264_0 DST、S#、T#、SRC2、SRC1 SAMPLE_IDF_H264_1 DST、S#、T#、SRC2、SRC1 SAMPLE_IDF_H264_2 DST、S#、T#、SRC2、SRC1
對於VC-1 IDF之操作,TFU 168可將8x4x8位元(或4x8x8位元)資料提供至濾波緩衝器中。然而,對於H.264,由TFU 168輸送之資料量可視H.264 IDF操作之類型加以控制。
對於SAMPLE_IDF_H264_0指令,TFU供應8x4x8位元(或4x8x8位元)的資料塊。對於SAMPLE_IDF_H264_1指令,TFU 168供應一4x4x8位元之資料塊,且另一4x4x8位元資料由遮影器(EU)146(圖2)供應。另外,藉由SAMPLE_IDF_H264_2,兩個4x4x8位元資料塊皆可由遮影器(位於EU)146供應,而非來自TFU 168。
另外,VPU 199之指令集還包括動態估計(motion estimation,以下簡稱ME)指令,其可包括諸如以下列出之指令:SAMPLE_SAD DST、S#、T#、SRC2、SRC1。
以上指令可映射至以下主要以及次要操作碼且採取以上所述之格式。以下在相關指令部分中論述SRC以及DST格式之細節。
SAMPLE指令依循圖3中所示之執行路徑。另外,EUP-TAG介面如以下表格6,其他介面亦會在稍後更詳細地描述。
應注意紋理樣本濾波操作亦可映射至 Sample Mode
欄位,在此種狀況下值為00XXX。值11XXX目前保留以供未來使用。另外,在本文中所揭露之至少一實施例中,一些視訊功能可***至紋理管線中以再利用L2快取記憶體邏輯電路以及一些L2以過濾載入MUX的資料,如ME(動態估計)、MC(動態補償)、TC(轉換編碼)以及ID(迴路內解塊)。
以下表格總結對於不同樣本指令之自TCC 166及/或TFU 168之資料載入準則。應注意視特殊架構而定,Sample_MC_H264可僅用於Y平面,但對於CrCb平面並非為必需的。
在本文中所指露之至少一實施例中,Y平面可包括HSF_Y0Y1Y2Y3_32BPE_VIDEO2鋪磚格式。CrCb平面包括交錯CrCb通道且被視為HSF_CrCb_16BPE_VIDEO鋪磚格式。若不要求CbCr交錯平面,則對於Cb或Cr,均可利用與Y平面相同的格式。
另外,已將以下指令添加至遮影器指令集架構(ISA)。
SAMPLE_MCF_BLR DST、S#、T#、SRC2、SRC1 SAMPLE_MCF_VC1 DST、S#、T#、SRC2、SRC1 SAMPLE_MCF_H264 DST、S#、T#、SRC2、SRC1 SAMPLE_IDF_VC1 DST、S#、T#、SRC2、SRC1 SAMPLE_IDF_H264_0 DST、S#、T#、SRC2、SRC1 SAMPLE_IDF_H264_1 DST、S#、T#、SRC2、SRC1 SAMPLE_SAD DST、S#、T#、SRC2、SRC1 SAMPLE_TCF_MPEG2 DST、#ctrl、SRC2、SRC1 SAMPLE_TCF_I4x4 DST、#ctrl、SRC2、SRC1 SAMPLE_TCF_M4x4 DST、#ctrl、SRC2、SRC1 SAMPLE_MADD DST、#ctrl、SRC2、SRC1 SAMPLE_IDF_H264_2 DST、#ctrl、SRC2、SRC1 用於SAMPLE_IDF_H264_2之#ctrl應為零。
SRC1、SRC2以及#ctrl(可用時)可用以形成如以下表格8中所示在EU/TAG/TCC介面中的512位元資料欄位。
參看表格8,Tr=轉置;FD=濾波方向(垂直=1);bS=邊界強度(Boundary Strength);bR=bR控制,YC位元(於CbCr平面YC=1;於Y平面則YC=0),以及CEF=色度邊緣旗幟(Chroma Edge Flag)。另外,當32位元或(或更少位元)使用於SRC1或SRC2(剩餘未定義)時,可規定巷(lane)選擇以減低暫存器之使用。
雖然以上描述了指令格式,但以下在表格10中包括對指令操作之概述。
另外,對於SAMPLE_MADD而言,#ctrl可為11位元的立即值,此外還須執行兩個4 x 4矩陣(SRC1以及SRC2)之加法。任一矩陣之一或多個元素可為16位元帶正負號之整數,其結果(DST)為4 x 4 16位元矩陣。矩陣可如以下在表格11中所示置放於來源/目的暫存器中,此可為VPU內之個別單元。另外,SRC1以及#ctrl資料於週期1時可供存取,且SRC2於隨後之週期亦可存取,因此,可每兩週期發布一個操作。
#ctrl[0]指示是否執行飽和(saturation,SAT)操作。
#ctrl[1]指示是否執行捨入(rounding,R)操作。
#ctrl[2]指示是否執行1位元右移(shift,S)操作。
#ctrl[10:3]忽略。
另外,與此資料相關的邏輯準則可包括以下:#Lanes:=16;#Lanewidth:=16; If(#ctrl[1])R=1;ELSER=0; If(#ctrl[2])S=1;ELSES=0; IF(#ctrl[0])SAT=1;ELSESAT=0; For(I:=0;I<#Lanes;I+=1){ Base:=I * #Lanewidth; Top:=Base+#Lanewidth-1; Source1[I]:=SRC1[Top..Base]; Source2[I]:=SRC2[Top..Base]; Destination[I]:=(Source1[I]+Source2[I]+R)>>S; IF(SAT)Destination[I]= MIN(MAX(Destination[I],0),255); DST[Top..Base]=Destination[I];
再次參看圖9,其為執行純量矩陣相乘。#ctrl為11位元立即值,此值可為0(亦即,#ctrl信號將忽略)。此指令在與SAMPLE_TCF以及SAMPLE_IDF_H264_2相同的群中。與此指令相關的邏輯準則可包括以下:#Lanes:=16;#Lanewidth:=16; MMODE=Control_4[17:16]; SM=Control_4[7:0]; SP=Control_4[15:8];//僅使用最低有效5位元 For(I:=0;I<#Lanes;I+=1){ Base:=I * #Lanewidth; Top:=Base+#Lanewidth-1; Source2[I]:=SRC2[Top..Base]; Destination[I]:=(SM * Source2[I])>>SP; DST[Top..Base]=Destination[I];}
此是使用VPU中用於執行MCF/TCF之FIR_FILTER_BLOCK單元來實施的。SM為施加至所有巷之加權(例如,W[0]=W[1]=W[2]=W[3]=SM),Pshift為SP。當執行此操作時,FIR_FILTER_BLOCK中之總和加法器被越過,自16x8位元乘法所得之四個結果可被移位,且每一結果之最低有效16位元被收集在一起成為16個16位元結果,以回傳遞至EU。
圖3為說明如圖2之計算架構中用於處理視訊資料之過程之流程圖的實施例。更特定言之,如圖3之實施例所說明,命令流處理器可將資料以及指令發送至EUP 146。EUP 146相應地可用以讀取指令且處理所接收之資料。EUP 146隨後可將指令、經處理之資料以及來自EUP紋理位址產生器(TAG)介面242之資料發送至紋理位址產生器(TAG)150。TAG 150可用以產生已處理資料之位址。TAG 150隨後可將資料以及指令發送至紋理快取記憶體控制器(texture cache controller,TCC)166。TCC 166可用以快取用於紋理濾波單元(texture filter unit,TFU)168之資料。TFU168可根據所接收之指令來濾波所接收之資料,且將經濾波之資料發送至視訊可程式單元(VPU)199。VPU 199可根據所接收之指令來處理所接收之資料,且將經處理資料發送至後封裝器(postpacker,PSP)160。PSP 160可自諸如TFU 168之各組件來收集像素封包。若像磚是部分完整的,則PSP 160可封裝多個像磚且使用被發送至管線之特定識別符號將像磚發回至EUP 146。
圖4A為說明在計算裝置(諸如具有圖2之計算架構的計算裝置)中資料流之功能流程圖的實施例。如圖4A之實施例所說明,可將加密的資料流發送至CSP 120,128上之解密組件236。在至少一實施例中,加密位元流可經解密且寫回至視訊記憶體。隨後可使用可變長度解碼器(VLD)硬體來解碼所解密之視訊。解密組件236可解密所接收之位元流以形成編碼位元流238。編碼位元流238可發送至VLD、霍夫曼(Huffman)解碼器、複雜適應性可變長度編碼器(complex adaptive variable length decodeT,CAVLC)及/或二進制算術編碼器(Context Based Binary Arithmetic Coder,CABAC)240(本文中稱為“解碼器”)。解碼器240將所接收之位元流解碼,且將所解碼之位元流發送至DirectX視訊加速(DirectX Video Acceleration,DXVA)資料結構242。另外,在DXVA資料結構242處接收到的資料為外部MPEG-2 VLD反掃描、反量化與反DC預測,以及外部VC-1 VLD反掃描、反量化與反DC/AC預測。隨後可經由圖像標頭244、記憶體緩衝器0(MB0)246a,MB1 246b,MB2 246c,...,MBN 246n等而將此資料擷取於DXVA資料結構242中。資料隨後可進入跳躍塊250、252以及254,以在圖4B以及圖4C中繼續。
圖4B為圖4A之功能流程圖的延續。如圖所示,自圖4A之跳躍塊250、252以及254,在反掃描反Q組件264以及反DC/AC預測組件262處接收資料。此資料經處理且發送至交換器265。交換器265判定資料經由Intra/Inter輸入端發送與否,將選定資料發送至跳躍塊270。另外,將來自跳躍塊260之資料發送至編碼圖案塊重建組件266。
圖4C為圖4A以及圖4B之功能流程圖的延續。如圖所示,來自跳躍塊272、274(圖4A)之資料於濾波器組件280處被接收。此資料根據多個協定之任一者由MC濾波器282濾波。更特定言之,若資料以MPEG-2格式被接收,則該資料以像素偏差來構造,可使用一雙通(two pass)濾波器來同時執行垂直濾波與水平濾波。若資料以VC-1格式被接收,則利用4抽頭(4-tap)濾波器;當資料為1/2準度時操作於雙線性(bilinear)模式下,當資料為1/4準度時則操作於雙立方(bicubic)模式下。另一方面,若資料以H.264格式被接收,則可利用6抽頭濾波器;當資料取樣為四分像素時使用亮度內插,當資料取樣為八分像素時則使用色度內插。經濾波之資料隨後發送至重建參考組件284,與濾波器組件280相關的資料發送至交換器組件288。交換器組件288亦接收零。交換器組件可基於所接收之Intra/Inter資料來判定那些資料將發送至加法器298。
另外,反轉換組件296自編碼圖案塊重建組件286接收資料,以及經由跳躍塊276自交換器265(圖4B)接收資料。反轉換組件296執行對於MPEG-2資料之8×8離散餘弦反轉換(IDCT)、對於VC-1資料之8×8、8×4、4×8及/或4×4整數轉換以及對於H.264資料之4×4整數轉換,並根據所要執行的轉換,將此資料發送至加法器298。
加法器298將反轉換組件296以及交換器288之資料相加求和,且將求和所得的資料發送至迴路內濾波器296。迴路內濾波器296過濾所接收之資料,且將經過濾之資料發送至重建框架組件290。重建框架組件290將資料發送至重建參考組件284。重建框架組件290可將資料發送至解塊與去環(dering)濾波器292,濾波器292可將經過濾之資料發送至用於解交錯之解交錯(de-interlacing)組件294,此資料隨後可供顯示。
圖5A為說明在VPU中(諸如在圖2之計算架構中)可用於提供動態壓縮(MC)及/或離散餘弦轉換(DCT)操作之組件之實施例的功能方塊圖。更特定言之,如圖5A之實施例所說明,匯流排A可用以將16位元資料發送至PE 3 314d之輸入埠b,匯流排A亦將資料發送至Z-1
延遲組件300,以將16位元資料發送至PE 2 314c之第二輸入端。匯流排A亦將此資料發送至Z-1
延遲組件302以將16位元資料發送至PE 1 314b,此資料亦發送至Z-1
延遲組件304,其隨後進入PE 0 314a以及Z-1
延遲組件306。在穿過Z-1
延遲組件306之後,將匯流排A之低位8位元資料發送至PE 0 314a,此資料由Z-1
306延遲且發送至PE 1 314b以及Z-1
延遲組件310。在到達Z-1
延遲組件310之後,此資料之低位8位元發送至PE 2 314c以及Z-1
延遲組件312;在到達Z-1
延遲組件312之後,此資料之低位8位元發送至PE 3 314d。另外,匯流排B將64位元資料發送至PE 3 314d、PE 2 314c、PE 1 314b以及PE 0 314a之每一者。
處理元件0(Processing Elelment,PE 0)314a可促進過濾所接收資料。更特定言之,PE可為FIR濾波器之一元件。當PE 0 314a、PE 1 314b、PE 2 314c以及PE 3 314d與加法器330組合時,此可形成4抽頭/8抽頭FIR濾波器。資料之一部分首先發送至Z-3
延遲組件316。多工器318選擇資料以使輸入資料自欄位輸入回應組件(Field Input Response,FIR)輸出至多工器318之選擇埠,此資料自多工器318發送至加法器330。
同樣地,來自PE 1 314b之資料發送至多工器322,其中一些資料首先在Z-2
延遲組件320處被接收。多工器322經由所接收之FIR輸入端而自所接收之資料進行選擇,選定資料發送至加法器330。PE 2 314c之資料發送至多工器326,其中一些資料首先發送至Z-1
延遲組件324。FIR輸入選擇待發送至加法器330之資料,自PE 3 314d之資料發送至加法器330。
亦輸入至加法器330的是N移位器332之反饋迴路。此資料經由Z-1
延遲組件326在多工器328處被接收。亦在多工器328處接收到的為捨入資料。多工器328在多工器328之選擇埠處經由較寬輸入端而對所接收之資料進行選擇。多工器328將選定資料發送至加法器330,加法器330加上所接收之資料且將所加之資料發送至N移位器332,此16位元移位資料被發送至輸出端。
圖5B為圖5A之圖的延續。更特定言之,如圖5B之實施例所說明,來自記憶體緩衝器340a、340b、340c以及340d之資料被發送至多工器342a。多工器342a將16位元資料發送至跳躍塊344a以及346a。同樣地,多工器342b自記憶體緩衝器340b、340c、340d以及340e接收資料,且將資料發送至跳躍塊344b以及346b;多工器342c自340c、340d、340e以及340f接收資料且將資料發送至344c以及346c;多工器342d自340d、340e、340f以及340g接收資料且將資料發送至跳躍塊344d以及346d;多工器342e自340e、340f、340g以及340h接收資料且將資料發送至344e以及346e;多工器342f自340f、340g、340h以及340i接收資料且將資料發送至344f以及346f;多工器342g自340g、340h、340i以及340h接收資料且將資料發送至跳躍塊344g以及346g;多工器342h自340h、340i、340j以及340k接收資料且將資料發送至344h以及346h;多工器342i自340i、340j、340k以及3401接收資料且將資料發送至跳躍塊344i以及346i。
圖5C為圖5A以及圖5B之圖的延續。更特定言之,自多工器342a之資料(經由跳躍塊348a)發送至記憶體緩衝器B、槽350a;自多工器342b之資料(經由跳躍塊348b)發送至記憶體B、槽350b;自多工器342c之資料(經由跳躍塊348c)發送至記憶體B、槽350c;自多工器342d之資料(經由跳躍塊348d)發送至記憶體B、槽350d;自多工器342e之資料(經由跳躍塊348e)發送至記憶體B、槽350e;自多工器342f之資料(經由跳躍塊348f)發送至記憶體B、槽350f;自多工器342g之資料(經由跳躍塊348g)發送至記憶體B、槽350g;自多工器342h之資料(經由跳躍塊348h)發送至記憶體B、槽350h;自多工器342i之資料(經由跳躍塊348i)發送至記憶體B、槽350i。
同樣地,自跳躍塊362j-362r之資料(自圖5D,以下論述)發送至轉置(Transpose)網路360。轉置網路360轉置所接收之資料;且將其發送至記憶體緩衝器B,記憶體緩衝器B將資料發送至跳躍塊366j-366r。
圖5D為圖5A-圖5C之圖的延續。更特定言之,資料在多工器369a處自跳躍塊368a(圖5B,經由多工器342a)以及跳躍塊368j(圖5C,經由記憶體緩衝器B)被接收,此資料由vert信號選擇且經由匯流排A(見圖5A)發送至FIR濾波器塊0370a。同樣地,多工器369b-369i自跳躍塊368b-368i以及368k-368r接收資料,此資料發送至FIR濾波器塊370b-370i且經處理,就如關於圖5A所敘述。自FIR濾波器塊0370a輸出之資料發送至跳躍塊372b以及372j;FIR濾波器塊370b輸出至跳躍塊372c以及372k;FIR濾波器塊370c輸出至跳躍塊372d以及3721;FIR濾波器塊370d輸出至跳躍塊372e以及372m;FIR濾波器塊370e輸出至跳躍塊372f以及372n;FIR濾波器塊370f輸出至跳躍塊372g以及372o;FIR濾波器塊370g輸出至跳躍塊372h以及372p;FIR濾波器塊370h輸出至跳躍塊372i以及372q;FIR濾波器塊370i輸出至跳躍塊372j以及372r。如上所論述,自跳躍塊372j-372r之資料由圖5C之轉置網路360接收。跳躍塊372b-372j在圖5E中繼續。
圖5E為圖5A-圖5D之圖的延續。更特定言之,如圖5E之實施例中所說明,自跳躍塊376b之資料(經由圖5D之FIR濾波器塊370a)發送至記憶體緩衝器C、槽380b。同樣地,自跳躍塊376c之資料(經由圖5D之FIR濾波器塊370b)發送至記憶體緩衝器C、槽380c;自跳躍塊376d之資料(經由圖5D之FIR濾波器塊370c)發送至記憶體緩衝器C、槽380d;自跳躍塊376e之資料(經由圖5D之FIR濾波器塊370d)發送至記憶體緩衝器C、槽380e;自跳躍塊376f之資料(經由圖5D之FIR濾波器塊370e)發送至記憶體緩衝器C、槽380f;自跳躍塊376g之資料(經由圖5D之FIR濾波器塊370f)發送至記憶體緩衝器C、槽380g;自跳躍塊376h之資料(經由圖5D之FIR濾波器塊370g)發送至記憶體緩衝器C、槽380h;自跳躍塊376i之資料(經由圖5D之FIR濾波器塊370h)發送至記憶體緩衝器C、槽380i;自跳躍塊376j之資料(經由圖5D之FIR濾波器塊370i)發送至記憶體緩衝器C、槽380j。
多工器382a自記憶體緩衝器C、槽380b、380c以及380d接收資料;多工器382b自記憶體緩衝器C、槽380d、380e以及380f接收資料;多工器382c自記憶體緩衝器C、槽380f、380g以及380h接收資料;多工器382d自記憶體緩衝器C、槽380h、380i以及380j接收資料。一旦接收到資料,多工器382a-382d便將資料發送至ALU 384a-384d。加法器382d接收此資料以及值“1”以處理所接收之資料並將經處理之資料分別發送至移位器386a-386d,移位器386a-386d將所接收之資料移位且將經移位之資料發送至Z塊388a-388d,接著將資料自Z塊388a-388d分別發送至多工器390a-390d。
另外,Z塊388a自跳躍塊376b接收資料且將資料發送至多工器390a;Z塊388b自跳躍塊376c接收資料且將資料發送至多工器390b;Z塊388c自跳躍塊376d接收資料且將資料發送至多工器390c;Z塊388d自跳躍塊376e接收資料且將資料發送至多工器390d;多工器390a-390d亦接收選擇輸入且將選定資料發送至輸出端。
圖5F為圖5A-圖5E之組件的總圖之實施例。更特定言之,如圖5F之實施例所說明,資料在記憶體緩衝器A 340處被接收。此資料在多工器342處與記憶體緩衝器A 340中之其他資料一起多工。多工器342選擇資料,且將選定資料發送至記憶體緩衝器B 350。記憶體緩衝器B 350亦自傳送網路360接收資料。記憶體緩衝器B 350將資料發送至多工器369,多工器369亦自多工器342接收資料。多工器369選擇資料,且將選定資料發送至FIR濾波器370。FIR濾波器將所接收之資料過濾,且將經過濾之資料發送至記憶體緩衝器C 380、Z組件388以及傳送網路360。記憶體緩衝器C 380將資料發送至多工器382,多工器382自從記憶體緩衝器C 380接收之資料進行選擇。被選定的資料發送至ALU 384,ALU 384自所接收資料計算結果,且將計算所得的資料發送至移位器386。接著經移位之資料被發送至多工器390,多工器390亦自Z組件388接收資料,多工器390選擇結果且將此結果發送至輸出端。
圖5A-圖5F中所示之組件可用以提供動態壓縮(MC)及/或離散餘弦轉換(DCT)。更特定言之,視特殊實施例及/或資料格式而定,資料可在遞迴操作中通過圖5A-圖5F之組件多次以達成所要結果。另外,視特殊操作及特殊資料格式而定,資料可自EU 146及/或TFU 168接收。
如一非限制性實施例,在實際操作中,圖5A-圖5F之組件可用以接收關於待執行之操作(例如,運動補償、離散餘弦變換等)的指示。另外,還可接收關於資料格式(例如,H.264、VC-1、MPEG-2等)之指示。如一實施例,對於H.264格式而言,動態補償(MC)資料可在多個週期中穿過FIR濾波器370,且隨後進入之記憶體緩衝器C380以轉換為像素格式。如下更詳細論述,在H.264格式下之其他操作或其他資料可利用圖5A-圖5F之組件的相同或不同用途。另外,乘法器陣列可用以作為乘法器之陣列以執行16個16位元相乘及/或用作向量或矩陣乘法器。此一實例為SMMUL指令。
圖6為可用於計算架構(諸如圖2之計算架構)中之像素處理引擎的功能方塊圖。更特定言之,如圖6之實施例所說明,匯流排A(在移位暫存器前)以及匯流排B(見圖5A)將16位元資料發送至多工器400。多工器400之選擇埠處接收來自FIR濾波器370之否定信號,並選擇一筆16位元資料,將此資料發送至多工器406。另外,多工器402可用以接收匯流排A資料(在移位暫存器後)以及零資料。多工器402可在選擇埠處自6抽頭資料中選擇所要結果,此16位元結果可發送至16位元無正負號加法器404。16位元無正負號加法器404亦可用以自匯流排A接收資料(在移位暫存器前)。
16位元無正負號加法器404可加總所接收之資料,且將結果發送至多工器406。多工器406可用以自選擇埠處之所接收的通路反相6抽頭資料中進行選擇,選定之資料可發送至16x8乘法器410,乘法器410亦可接收模式資料。24位元結果隨後可發送至移位器412以提供32位元結果。
圖7A為可用於VC-1迴路內濾波器中(諸如在圖2之計算架構中)之組件功能方塊圖。如圖7A之實施例所說明,多工器420可在輸入埠處接收“1”值以及“0”值,多工器420亦可接收A0絕對值<Pquant與否作為選擇輸入。同樣地,多工器422可接收“1”值以及“0”值,以及A3<A0 490c絕對值與否。多工器424可接收“1”值、“0”值作為輸入,以及clip(剪輯)值不等於0與否(自圖7C之移位器468)作為選擇輸入。另外,自多工器420輸出之資料可發送至邏輯或閘426,邏輯或閘426可將資料發送至多工器428。多工器428亦可接收filter_other_3資料作為輸入。更特定言之,如圖7A中所示可產生filter_other_3信號,此信號若不為零,則指示需過濾其他三列像素;否則,可不過濾(修改)此4x4塊。多工器428根據在選擇輸入端所接收之處理像素資料3而選擇輸出資料。
圖7B為圖7A之圖的延續。更特定言之,如圖7A之實施例所說明,絕對值組件430接收9位元輸入A1 490a(自圖7D),絕對值組件432接收9位元輸入A2 490b(自圖7D)。藉由計算所接收資料之絕對值,最小值組件434判定所接收資料之最小值,且將此資料作為輸出A3並發送至2進位補數組件(2's compliment component)436。2進位補數組件436計算所接收資料之2進位補數,且將此資料發送至減法組件438。減法組件438自輸入資料A0 490c(自圖7D)減去此資料,隨後發送至移位器440以將結果向左移位兩位並發送至加法器442。另外,減法組件438之輸出將輸入至加法器442中,因此允許電路不使用乘法器就可執行乘以5的操作。
加法器442加總所接收之資料,且將結果發送至移位器444。移位器444將所接收之資料向右移三位,且將資料發送至鉗位組件(clamp component)446。鉗位組件446亦接收剪輯值clip(自移位器468,圖7C),且將結果發送至輸出端。應注意濾波器之結果可為負或大於255。因此此鉗位組件446可用以將結果鉗位至無正負號8位元值。因此,若輸入d為負的,則d將被設定為0。若d>剪輯值clip,則d可被設定為剪輯值clip。
圖7C為圖7A以及圖7B之圖的延續。如圖7C之實施例,P1資料450a、P5資料450e以及P3資料450c被發送至多工器452。多工器452接收選擇輸入並選擇資料以發送至減法組件460。多工器亦將輸出資料發送至多工器454之選擇輸入端。
多工器454亦自P4 450d、P8 450h以及P6 450f接收輸入資料。多工器454將輸出資料發送至減法組件460。減法組件460對所接收之資料作減法,並將結果發送至移位器466。移位器466將所接收之資料向左移一位,且將此結果發送至跳躍塊474。
同樣地,多工器456接收輸入P2 450b、P3 450c以及P4 450d。多工器456自多工器454接收選擇輸入,且將所選定之資料發送至減法組件464。多工器458自多工器456接收選擇輸入,且自P3 450c、P7 450g以及P5 450e接收輸入資料。多工器將輸出資料發送至減法組件464,減法組件464對所接收之資料作減法,並將此資料發送至移位器470以及加法器472。移位器470將所接收之資料向左移兩位,且將經移位之資料發送至加法器472,加法器472相加所接收之資料且將結果發送至跳躍塊480。
另外,減法組件462自P4 450d以及P5 450e接收資料、對所接收之資料作減法並將結果發送至移位器468。移位器468將所接收之資料向右移一位,且輸出此資料作為剪輯資料clip以輸入至鉗位組件446以及多工器424。另外,P4 450d被發送至跳躍塊476而P3 450e資料被發送至跳躍塊478。
圖7D為圖7A-圖7C之圖的延續。更特定言之,如圖7D之實施例,減法組件486自跳躍塊482以及跳躍塊484接收資料。減法組件486對所接收之資料作減法且將結果發送至移位器488。移位器488將所接收之資料向右移三位且將結果發送至A1 490a、A2 490b以及A0 490c。
另外,多工器496接收輸入資料“0”以及“d”。此操作可包括:If(Do_filter){ P4[I]=P4[I]-D[I] P5[I]=P5[I]+D[I]}
多工器496經由do_filter選擇輸入而選擇所要結果。所述結果發送至減法組件500。減法組件500亦自跳躍塊492接收資料(經由跳躍塊476,圖7C),對所接收之資料作減法並將結果發送至P4 450d。
多工器498亦接收“0”以及“d”作為輸入以及do_filter作為選擇輸入。多工器498多工此資料且將結果發送至加法器502。加法器502亦自跳躍塊494接收資料(經由跳躍塊478,圖7C)、相加所接收之輸入且將結果發送至P5 450e。
圖8為可用於在計算架構(諸如圖2之計算架構)中執行絕對差和(sum of absolute difference,SAD)計算之邏輯區塊的方塊圖。更特定言之,如圖8之實施例,組件504接收32位元資料A[31:0]之一部分以及32位元資料B之一部分。組件504藉由判定若(C)s=Not(S)+1則{C,S}←A-B與否,而將輸出提供至加法器512。同樣地,組件506接收A資料以及B資料,且基於與組件504類似之判定將輸出發送至加法器512,除了組件506所接收之A資料以及B資料為[23:16]位元的部分以外,相對於組件504所接收之資料為[31:24]位元的部份。同樣地,組件508接收[15:8]位元部份的資料、執行與組件504以及506類似的計算且將結果發送至加法器512。組件510接收[7:0]位元部份的資料、執行與組件504、506以及508類似的計算且將結果發送至加法器512。
另外,組件514、516、518以及520接收資料A對應於位元[63:32]之32位元的部分(與在組件504-510處所接收之[31:0]位元部份的資料相對)。更特定言之,組件514接收資料A以及資料B中[31:24]位元部份的資料。組件514執行如上所論述之類似計算,且將8位元結果發送至加法器522。同樣地,組件516接收[23:16]位元部份的資料、執行類似計算,且將所得資料發送至加法器522。組件518如上所述接收資料A以及資料B中[15:8]位元部份的資料、處理所接收之資料,且將結果發送至加法器522。組件520如上所論述接收資料A以及資料B中[7:0]位元部份的資料、處理所接收之資料,且將結果發送至加法器522。
組件524-530接收A資料以及B資料中[95:64]位元部份之32位元。更特定言之,組件524接收[31:24]位元,組件526接收[23:16]位元,組件528接收[15:8]位元,而組件530接收[7:0]位元的資料。一旦接收到此資料,組件524-530可用以處理所接收之資料,如上所述,經處理資料隨後可發送至加法器532。同樣地,組件534-540接收A資料以及B資料中[127:96]位元部份之32位元資料。更特定言之,組件534接收A資料以及B中[31:24]位元部份的資料,組件536接收[23:16]位元部份的資料,組件538接收[15:8]位元部份的資料,組件540接收[7:0]位元部份的資料。所接收資料如上所論述經處理且發送至加法器541。另外,加法器512、522、532以及542對所接收之資料作加法,且將10位元結果發送至加法器544。加法器544相加所接收之資料,且將12位元資料發送至輸出端。
圖9為類似於圖8所示可用於執行絕對差和(SAD)計算之過程之另一實施例的流程圖。更特定言之,如圖9之實施例,“i”之定義為塊尺寸BlkSize且suma初始化為“0”(區塊550)。首先判定i是否大於“0”(方塊552),若i大於“0”,則vecx[i]=Tabelx[i]、vecy[i]=Tabely[i]、vectx=mv_x+vecx[i]且vecty=mv_y+vecy[i](方塊554)。接著可利用vectx以及vecty計算位址,亦可自PredImage提取4×4記憶體資料(位元組對準)(方塊556)。128位元預測資料可發送至SAD 44(見圖8),如方塊558中所說明。另外,方塊560可接收塊資料且計算位址。在方塊560,亦可自RefImage提取4×4記憶體資料並執行位元組對準。128位元Ref[i]資料隨後可發送至SAD 44(方塊558)。和值可自SAD 44發送至方塊562,其中總和值suma增加“1”而i減少“1”。接著可判定總和值suma是否大於臨限值(方塊564)。若是,則過程可停止;另一方面,若總和值suma不大於該臨限值,則過程可返回方塊552以判定i是否大於0。若i不大於0,則過程可結束。
圖10A為可用於解塊操作中(諸如可在圖2之電腦架構中執行)之多個組件的方塊圖。如圖10A之實施例,ALU 580接收輸入資料p2以及p0,且將資料發送至絕對值組件586。絕對值組件586計算所接收資料之絕對值且輸出資料ap
,判定組件590判定ap
是否小於β且將資料發送至跳躍塊596。ALU 580亦將資料發送至跳躍塊594。同樣地,ALU 582自q0以及q2接收資料。在計算結果之後,ALU 582將資料發送至絕對值組件588,絕對值組件588判定所接收資料之絕對值,並將ap
發送至判定組件592。判定組件592判定aq
是否小於β且將資料發送至跳躍塊598。
ALU 600自q0以及p0接收資料、計算結果且將結果發送至絕對值組件606。絕對值組件606判定與所接收資料的絕對值,且將其發送至判定組件612。判定組件612判定所接收之值是否小於α,且將結果發送至及閘620。
ALU 602自p0以及p1接收資料、計算結果且將結果發送至絕對值組件608。絕對值組件608判定所接收資料之絕對值,且將此值發送至判定組件614。判定組件614判定所接收資料是否小於β,且將結果發送至及閘620。ALU 604自q0以及q1接收資料、計算結果且將結果發送至絕對值組件610。絕對值組件610判定所接收資料之絕對值,且將結果發送至判定組件616。判定組件616判定所接收資料是否小於β,且將結果發送至及閘620。另外,及閘620自判定組件618接收資料,判定組件618接收bS資料且判定此資料是否不等於零。
圖10B為圖10A之圖的延續。更特定言之,ALU 622自p1以及q1接收資料、計算結果且將資料發送至ALU 624。ALU 624亦自跳躍塊646接收資料(經由圖10A的ALU 580)以及在進位輸入端之4位元資料。ALU 624隨後計算結果且將結果發送至移位器626,移位器626將所接收之資料向右移三位。移位器626隨後將資料發送至剪輯3(clip3)組件628,clip3組件628亦自跳躍塊630接收資料(經由圖10D的ALU 744,以下更詳細描述)。clip3組件628將資料發送至多工器634且發送至”非(NOT)”閘632。非閘632反轉所接收資料,且將反相資料發送至多工器634。多工器634亦在選擇輸入端接收tc0
資料,且將選定資料發送至ALU 636。ALU 636亦自多工器640接收資料。多工器640自q0以及p0接收資料,且自!left_top接收選擇輸入。ALU 636之進位輸入端接收來自多工器642之資料。多工器642接收“1”以及“0”以及!left_top資料。ALU 636將結果發送至SAT(0,255)638,SAT(0,255)638將資料發送至跳躍塊644(在多工器790處繼續,圖10E)。
另外,ALU 648自q0以及p0接收資料以及在選擇輸入端接收一位元資料,ALU 648計算結果且將此資料發送至移位器650。移位器650將所接收之資料向右移一位,且將所移位之資料發送至ALU 652。同樣地,多工器656自p1以及q1接收資料以及!left_top作為選擇輸入,多工器656判定結果,且將結果發送至移位器658。移位器658將所接收之資料向左移一位,且將所移位之資料發送至ALU 652,ALU 652計算結果且將資料發送至ALU 662。ALU 662亦自多工器660接收資料,多工器660接收q2以及p2以及來自跳躍塊680之資料(經由圖10E的非閘802)。
ALU 662計算結果且將此資料發送至移位器664,移位器664將所接收之資料向右移一位,且將所移位之資料發送至剪輯3(clip3)組件668。clip3組件668亦接收,且將資料發送至ALU 670。ALU 670亦自多工器656接收資料,計算結果後將此資料發送至多工器672。多工器672亦自多工器656接收資料以及自跳躍塊678接收資料(經由圖10E的多工器754),並將資料發送至跳躍塊674。
圖10C為圖10A以及圖10B之圖的延續。如圖10C之實施例,多工器682自p2、p1以及!left_top接收資料,並將選定資料發送至加法器706。多工器684接收p1以及p0與!left_top並將結果發送至移位器700。移位器700將所接收之資料向左移一位,且將其發送至加法器706。多工器686自p0以及q1以及!left_top接收資料。多工器686將資料發送至移位器702,移位器702將所接收之資料向左移一位,且將所移位之資料發送至加法器706。多工器688自q0以及q1以及!left_top接收資料,並將選定資料發送至移位器704,移位器704將所接收之資料向左移一位,且將其發送至加法器706。多工器690自q1以及q2以及!left_top接收資料且將資料發送至加法器706。加法器706亦接收進位輸入端之4位元,且將輸出發送至跳躍塊708。
同樣地,多工器691接收q2、p0以及!left_top,並選擇一結果將其發送至加法器698。多工器692接收p1、p0以及!left_top且將選定結果發送至加法器698。多工器694自q0、q1以及!left_top接收資料,並選擇一結果將其發送至加法器698。多工器696接收q0、q2以及!left_top,並選擇所要結果將此資料發送至加法器698。加法器698亦接收進位輸入端之2位元且將輸出發送至跳躍塊710。
多工器712接收p3、q3以及!left_top且將結果發送至移位器722。移位器722將所接收之資料向左移一位,且將其發送至加法器726。多工器714接收p2、q2以及!left_top,且將選定結果發送至移位器724以及加法器726。移位器724將所接收之資料向左移一位,且將所移位之結果發送至加法器726。多工器716接收p1、q1以及!left_top且將選定結果發送至加法器726。多工器718接收p0、q0以及!left_top,且將選定結果發送至加法器726。多工器720接收p0、q0以及!left_top,且將選定結果發送至加法器726。加法器726在進位輸入端接收四位元與所接收之資料相加,加總後之資料發送至跳躍塊730。
圖10D為圖10A-圖10C之圖的延續。更特定言之,如圖10D之實施例,α表格750接收IndexA以及輸出α。β表格748接收IndexB且將資料輸出至零擴展(Zero Extend)組件752,零擴展組件752輸出β。
同樣地,多工器736接收“1”以及“0”以及來自跳躍塊732之資料(經由圖10A的判定塊590),並選擇結果將其發送至ALU 740。多工器738亦接收“1”以及“0”以及來自跳躍塊734之資料(經由圖10A的判定塊592),並將選定結果發送至ALU 740。ALU 740計算結果且將資料發送至多工器742。多工器742亦接收“1”以及色度邊緣旗標(chroma edge flag)資料,並選擇結果且將其發送至ALU 744。ALU 744亦接收tc0
、計算結果tc
且將結果發送至跳躍塊746。
圖10E為圖10A-圖10D之圖的延續。更特定言之,如圖10E實施例,多工器754接收與關係式“ChromaEdgeFlag==0)&&(ap
<β)”相關的資料,以及與關係式“ChromaEdgeFlag==0)&&(aq
<β)”相關的資料,並自非組件802接收資料,且將選定資料發送至跳躍塊756(至圖10B之多工器672)。
另外,多工器780接收與關係式“ChromaEdgeFlag==0)&&(ap
<β)&&(abs(p0-q0)<((α>>2)+2)”相關的資料以及與關係式“ChromaEdgeFlag==0)&&(aq
<β)&&(abs(p0-q0)<((α>>2)+2))”相關的資料,多工器780亦自非組件802接收選擇輸入,依此選擇所要結果且將其發送至多工器782、784以及786。
多工器757自p1、q1以及非組件802接收資料,將選定資料發送至移位器763,移位器763將所接收之資料向左移一位,且將其發送至加法器774。多工器759自非組件802接收p0、q0以及資料,且將選定資料發送至加法器774。多工器761自q1、p1以及非組件802接收資料,且將資料發送至加法器774。加法器774亦在進位輸入端接收兩位元之資料,且將輸出發送至多工器782。
移位器764自跳躍塊758接收資料(經由圖10C的加法器706)且將所接收之資料向右移三位,接著將所移位之資料發送至多工器782。移位器766自跳躍塊760接收資料(經由圖10C的加法器698)且將所接收之資料向右移兩位,接著將所移位之資料發送至多工器784。移位器768自跳躍塊762接收資料(自圖10C的加法器726)且將所接收之資料向右移三位,接著將所移位之資料發送至多工器786。
如以上所論述,多工器782自移位器764以及加法器782以及多工器780接收資料,自此資料選擇結果且將其發送至多工器790。同樣地,多工器784自移位器766、資料多工器780與多工器776接收資料。多工器776接收p1、q1以及來自非組件802之資料,接著將選定結果發送至多工器798。多工器786自移位器768、多工器780與多工器778接收資料。多工器778接收p2、q2以及來自非組件802之資料。多工器786將選定資料發送至多工器800。
如上所論述,多工器790自多工器782接收資料。另外,多工器790自跳躍塊772(經由圖10B的SAT組件638)以及多工器794接收資料。多工器794接收p0、q0以及非組件802之資料。多工器790亦接收bSn & nfilterSampleFlag資料作為選擇輸入,並將選定資料發送至緩衝器808以及810。同樣地,多工器798自多工器784、跳躍塊755(經由圖10B的多工器674)與多工器792接收資料以及選擇輸入的bSn & nfilterSampleFlag資料。多工器792接收p1、q1以及非組件802之資料。多工器798將資料發送至緩衝器806以及812。同樣地,多工器800自多工器786接收資料且接收bSn & nfilterSampleFlag資料作為選擇輸入。另外,多工器800自多工器788接收資料。多工器788接收p2、q2以及非組件802之資料。多工器800選擇所要資料,且將資料發送至緩衝器806以及814。緩衝器804-814亦自非組件802接收資料,且將資料分別發送至p2、p1、p0、q0、q1以及q2。
圖11為說明可用於在計算架構(諸如圖2之計算架構)中執行資料之過程之實施例流程圖。如圖11之實施例紋理位址產生器TAG的奇數方塊880以及偶數方塊882(亦見圖2之150)接收來自輸出端口144(圖2)的資料。接著產生用於所接收資料的位址,且此過程進行至紋理快取記憶體與控制器(TCC)884、886(亦見圖2,166)。
資料隨後可發送至快取記憶體890以及紋理濾波先進先出組件(Texture Cache First In First Out,TFF)888、892,其可用以充當延遲佇列/緩衝器。資料隨後發送至紋理濾波單元894、896(Texture Filter Unit,TFU,亦見圖2,168)。一旦資料經過濾波後,TFU894、896便將資料發送至VPU 898、900(亦見圖2,199)。視指令是否要求動態補償濾波、紋理快取記憶體濾波、互解塊濾波及/或絕對差和而定,資料可發送至不同VPU及/或相同VPU之不同部分。在處理了所接收之資料之後,VPU 898、900可將資料發送至輸入端口902、904之輸出端(亦見圖2,142)。
本文中所揭露之實施例可在硬體、軟體、韌體或其組合中實施。本文中所揭露之至少一實施例在儲存於記憶體中,且由適當指令執行系統所執行之軟體及/或韌體中實施。若在硬體中實施,如在替代實施例中,則本文中所揭露之實施例可以以下技術之任一者或組合來實施:具有用於對資料信號實施邏輯功能之邏輯閘的離散邏輯電路、具有適當組合邏輯閘之特殊應用積體電路(ASIC)、可程式閘陣列(PGA)、場可程式閘陣列(FPGA)等。
應注意本文中所包括之流程圖展示軟體及/或硬體之可能實施例的架構、功能以及操作。關於此,可將每一方塊解釋為表示模組、區段或代碼之一部分,其包括用於實施規定邏輯功能之一或多個可執行指令。亦應注意在一些替代實施例中,方塊中所註釋之功能可異乎尋常及/或根本不出現。舉例而言,視所包括之功能而定,連續展示之兩方塊實際上可實質上同時執行或方塊有時可以相反順序執行。
應注意本文中所列出程式之任一者(其可包括用於實施邏輯功能之可執行指令的有序列表)可體現於由指令執行系統、裝置或設備(諸如以電腦為基礎的系統、含有處理器之系統或可自指令執行系統、裝置或設備提取指令且執行指令之其他系統)使用或結合所述各項使用之任何電腦可讀媒體中。在此文獻之上下文中,“電腦可讀媒體”可為可含有、儲存、傳送或輸送由指令執行系統、裝置或設備使用或結合其進行使用之程式的任何構件。電腦可讀媒體例如可為(但不限於)電子、磁、光、電磁、紅外線或半導體系統、裝置或設備。電腦可讀媒體之更多特定實例(非詳盡清單)可包括具有一或多個導線之電連接(電子)、攜帶型電腦碟片(磁)、隨機存取記憶體(RAM)(電子)、唯讀記憶體(ROM)(電子)、可抹除可程式唯讀記憶體(EPROM或快閃記憶體)(電子)、光纖(光)以及攜帶型壓縮光碟唯讀記憶體(CDROM)(光)。另外,此揭露內容之某些實施例的範疇可包括:體現以硬體或軟體架構之媒體中所體現之邏輯中所述的功能。
亦應注意條件性語言(諸如)尤其是“可(can、could、might或may)”,除非另外特別規定或在所使用之上下文內另有理解,否則大體上旨在傳達某些實施例包括(而其他實施例不包括)某些特徵、元件及/或步驟。因此,此等條件性語言一般並非旨在暗示特徵、元件及/或步驟總是被一或多個特殊實施例所需,或暗示一或多個特殊實施例必定包括在採用或不採用使用者輸入或提示之情況下用於決策之邏輯,而不管任何特殊實施例中是否將包括或執行此等特徵、元件及/或步驟。
應強調以上所述之實施例僅為實施例之可能實例、僅陳述以便清晰理解此揭露內容之原理。在實質上不偏離揭露內容之精神以及範疇的情況下可對以上所述之實施例進行許多變化以及修改。所有此等修改以及變化欲包括於本文中在此揭露內容之範疇內。
88、102...內部邏輯分析器
90、104...匯流排介面單元BIU
106a、106b、106c、106d...記憶體介面單元MIU
108...記憶體存取端口
110、116...資料流快取記憶體
112...頂點快取記憶體
114...L2快取記憶體
118...具有快取記憶體子系統之EUP控制器
120...命令流處理器(CSP)前端
122...3D與狀態組件
124...2D前置組件
126...2D先進先出(FIFO)組件
128...CSP後端/ZL1快取記憶體
130...清晰度與型號紋理處理器
132...高級加密系統(AES)加密/解密組件
134...三角與屬性配置單元
136...跨距像磚產生器
138...ZL1
140...ZL2
142、902、904...輸入端口
144...輸出端口
146...執行單元之集區EUP/BW壓縮器
148...Z與ST快取記憶體
150...紋理位址產生器TAG
152...D快取記憶體
154...2D處理組件
156...前封裝器
158...內插器
160...後封裝器
162...寫回單元
164a、164b...記憶體存取單元MXU
166、884、886...紋理快取記憶體與控制器TCC
168、894、896...紋理濾波單元TFU
199、898、900...視訊處理單元VPU
234...加密位元流
236...解密組件
238...編碼位元流
240...VLD、霍夫曼(Huffman)解碼器、CAVLC、CABAC
242...EUP TAG介面
244...圖像標頭
246a、246b、246c、246n...記憶體緩衝器MB
250、252、254、256、258、260、270、272、274、276、344a~i、346a~i、348a~i、362j~r、366j~r、368a~r、372b~r、376b~j、474、476、478、480、482、484、492、494、594、596、598、630、644、646、674、678、680、708、710、730、732、734、746、755、756、758、760、762、770、772...跳躍塊
262...反DC/AC預測組件
264...反掃描反Q組件
265...交換器
266...編碼圖案塊重建組件
280...濾波器組件
282...MC濾波器
284...重建參考組件
286...編碼圖案塊重建
288...交換器組件
290...重建框架組件
292...解塊及去環濾波器
294...解交錯組件
296...反變換組件/迴路內濾波器
298、330、442、472、502、512、522、532、542、544、698、706、726、774...加法器
300、302、304、306、308、310、312、324...Z-1
延遲組件
314a、314b、314c、314d...PE
316...Z-3
延遲組件
320...Z-2
延遲組件
318、322、326、328、342、342a~i、369、369a~i、382、382a~d、390、390a~d、400、402、404、406、408、420、422、424、428、452、454、456、458、496、498、634、640、642、656、660、672、682、684、686、690、691、692、694、696、712、714、716、718、720、736、738、742、754、757、759、761、776、778、780、782、784、786、788、790、792、794、796、798、800...多工器
332...N移位器
340、304a~l...記憶體緩衝器
350、350a~i...記憶體B、槽
360...轉置網路
370、370a~i...FIR濾波器塊
380、380b~j...記憶體緩衝器C、槽
384、384a~d、580、582、600、602、604、622、624、636、648、652、662、670、740、744、...ALU
386、386a~d、412、440、444、466、468、470、488、626、650、658、664、700、702、704、722、724、763、764、766、768...移位器
388、388a~d...Z塊
410...乘法器
426...邏輯或閘
430、432、586、606、608、610...絕對值組件
434...最小值組件
436...2進位補數組件
438、460、462、464、486、500...減法組件
446...鉗位組件
450a~h...P1~8資料
490a...A1
490b...A2
490c...A0
504、506、508、510、514、516、518、520、524、526、528、530、534、536、538、540...組件
590、592、612、614、616、618...判定組件
620...及閘
628、668...clip3組件
632...非閘
638...SAT組件
748...β表格
750...α表格
752...零擴展組件
802...非組件
804、806、808、810、812、814...緩衝器
880、882...紋理位址產生器-TAG方塊
888、891...紋理濾波先進先出組件TFF
890...快取記憶體
圖1為用於處理視訊資料之計算架構的實施例。
圖2為類似於圖1之架構之引入了視訊處理單元(VPU)之計算架構的實施例。
圖3為諸如在圖2之計算架構中用於處理視訊以及圖形資料之過程之流程圖實施例。
圖4A為在計算裝置(諸如具有圖2之計算架構的計算裝置)中之資料流之功能流程圖實施例。
圖4B為圖4A之功能流程圖的延續。
圖4C為圖4A以及圖4B之功能流程圖的延續。
圖5A為諸如在圖2之計算架構中可用於提供動態壓縮(MC)及/或離散餘弦轉換(DCT)操作之組件實施例的功能方塊圖。
圖5B為圖5A之圖的延續。
圖5C為圖5A以及圖5B之圖的延續。
圖5D為圖5A-圖5C之圖的延續。
圖5E為圖5A-圖5D之圖的延續。
圖5F為圖5A-圖5E之組件之總圖的實施例。
圖6為可用於計算架構(諸如圖2之計算架構)之像素處理引擎的功能方塊圖。
圖7A為說明可用於VC-1迴路內濾波器(諸如在圖2之計算架構中)之組件的功能方塊圖。
圖7B為圖7A之圖的延續。
圖7C為圖7A以及圖7B之圖的延續。
圖7D為圖7A-圖7C之圖的延續。
圖8為可用於在計算架構(諸如圖2之計算架構)中執行絕對差和計算之組件的方塊圖。
圖9為類似於圖8可用於執行絕對差和計算之過程之實施例的流程圖。
圖10A為說明可用於解塊操作中(諸如可在圖2之電腦架構中執行)之多個組件的方塊圖。
圖10B為圖10A之圖的延續。
圖10C為圖10A以及圖10B之圖的延續。
圖10D為圖10A-圖10C之圖的延續。
圖10E為圖10A-圖10D之圖的延續。
圖11為可用於在計算架構(諸如圖2之計算架構)中執行資料之過程之實施例流程圖。
102...內部邏輯分析器
104...匯流排介面單元BIU
106a...記憶體介面單元MIU A
106b...MIU B
106c...MIU C
106d...MIU D
108...記憶體存取交叉棒
110...資料流快取記憶體
112...頂點快取記憶體
114...L2快取記憶體
116...資料流快取記憶體
118...具有快取記憶體子系統之EU集區控制器
120...命令令流處理器(CSP)前端
122...3D以及狀態組件
124...2D準備組件
126...2D先進先出(FIFO)組件
128...CSP後端/ZL1快取記憶體
130...清晰度及型號紋理處理器
132...高級加密系統(AES)加密/解密組件
134...三角及屬性配置
136...跨距像磚產生器
138...ZL1
140...ZL2
142...輸入端口
144...輸出端口
146...執行單元之集區EUP/BW壓縮器
148...Z與ST快取記憶體
150...紋理位址產生器
152...D快取記憶體
154...2D處理組件
156...前封裝器
158...內插器
160...後封裝器
162...寫回單元
164a...記憶體存取單元MXU A
164b...MXU B
166...紋理快取記憶體及控制器
168...紋理濾波單元
199...視訊處理單元VPU
Claims (23)
- 一種用於根據一指令處理視訊資料的可程式視訊處理單元,包含:一接收邏輯電路,用以接收選自複數個格式之一的視訊資料;一濾波邏輯電路,用以根據該指令濾波該視訊資料;以及一轉換邏輯電路,用以根據該指令轉換該濾波資料;其中該指令包含一模式指示欄位用以指示該濾波邏輯電路與該轉換邏輯電路根據該視訊資料之格式運作。
- 如申請專利範圍1所述之可程式視訊處理單元,其中該濾波邏輯電路執行一動態補償濾波操作。
- 如申請專利範圍2所述之可程式視訊處理單元,其中該模式指示欄位為MPEG-2格式時,該濾波邏輯電路在一包含垂直濾波與水平濾波的雙通模式下運作。
- 如申請專利範圍2所述之可程式視訊處理單元,其中該模式指示欄位為VC-1格式1/2準度時,該濾波邏輯電路在一雙線性模式下運作;該模式指示欄位為VC-1格式1/4準度時,該濾波邏輯電路在一雙立方模式下運作。
- 如申請專利範圍2所述之可程式視訊處理單元,其中該模式指示欄位為H.264格式四分像素時,該濾波邏輯電路在一亮度模式下運作;該模式指示欄位為H.264格式八分像素時,該濾波邏輯電路在一色度模式下運作。
- 如申請專利範圍1所述之可程式視訊處理單元,其中該模式指示欄位為MPEG-2格式時,該轉換邏輯電路執行一離 散餘弦反轉換操作。
- 如申請專利範圍1所述之可程式視訊處理單元,其中該模式指示欄位為VC-1與H.264格式其中之一時,該轉換邏輯電路執行一整數轉換操作。
- 如申請專利範圍1所述之可程式視訊處理單元,更包含用以執行迴路內濾波的一解塊邏輯電路。
- 一種可程式視訊處理單元,包含:一辨識邏輯電路,用以辨識視訊資料的格式;一動態補償邏輯電路,用以執行一動態補償操作;一離散餘弦反轉換邏輯電路,用以執行一離散餘弦反轉換操作;以及一整數轉換邏輯電路,用以執行一整數轉換操作;其中該離散餘弦反轉換邏輯電路與該整數轉換邏輯電路根據該辨識邏輯電路的辨識結果分別被關閉。
- 如申請專利範圍9所述之可程式視訊處理單元,其中該辨識結果為VC-1與H.264格式兩者之一時,該離散餘弦反轉換邏輯電路被關閉。
- 如申請專利範圍9所述之可程式視訊處理單元,其中該辨識結果為MPEG-2格式時,該整數轉換邏輯電路被關閉。
- 如申請專利範圍9所述之可程式視訊處理單元,於該辨識結果為VC-1與H.264格式兩者之一時,更包含一解塊邏輯電路用以執行一迴路內濾波操作。
- 如申請專利範圍9所述之可程式視訊處理單元,其中該辨識結果為MPEG-2格式時,該動態補償邏輯電路執行於 一雙通模式下。
- 如申請專利範圍9所述之可程式視訊處理單元,其中該辨識結果為VC-1格式時,該動態補償邏輯電路執行於下列模式其中之一:雙線性模式與雙立方模式。
- 如申請專利範圍9所述之可程式視訊處理單元,其中該辨識結果為H.264格式時,該動態補償邏輯電路執行於下列模式其中之一:亮度模式與色度模式。
- 一種視訊資料處理方法,包含:接收一指令;接收選自至少兩種格式之一的視訊資料;根據該指令濾波該視訊資料;以及根據該指令轉換該視訊資料;其中該指令包含一模式識別欄位用以指示濾波與轉換該視訊資料之步驟根據該視訊資料之格式運作。
- 如申請專利範圍16所述之視訊資料處理方法,其中濾波該視訊資料之步驟包含執行一動態補償濾波。
- 如申請專利範圍17所述之視訊資料處理方法,其中該模式識別欄位為MPEG-2格式時,該動態補償濾波運作於一雙通模式下。
- 如申請專利範圍17所述之視訊資料處理方法,其中該模式指示欄位為VC-1格式1/2準度時,該動態補償濾波運作於一雙線性模式下;該模式指示欄位為VC-1格式1/4準度時,該動態補償濾波運作於一雙立方模式下。
- 如申請專利範圍17所述之視訊資料處理方法,其中 該模式指示欄位為H.264格式四分像素時,該動態補償濾波運作於一亮度模式下;該模式指示欄位為H.264格式八分像素時,該動態補償濾波運作於一色度模式下。
- 如申請專利範圍16所述之視訊資料處理方法,其中該模式識別欄位為MPEG-2格式時,該轉換之步驟包含執行一離弦反轉換。
- 如申請專利範圍16所述之視訊資料處理方法,其中該模式識別欄位為VC-1與H.264格式其中之一時,該轉換之步驟包含執行一整數轉換。
- 如申請專利範圍16所述之視訊資料處理方法,更包含執行一迴路內解塊濾波。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US81462306P | 2006-06-16 | 2006-06-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200816082A TW200816082A (en) | 2008-04-01 |
TWI482117B true TWI482117B (zh) | 2015-04-21 |
Family
ID=38880763
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096120098A TWI444047B (zh) | 2006-06-16 | 2007-06-05 | 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元 |
TW096122000A TWI350109B (en) | 2006-06-16 | 2007-06-15 | Method for determining a motion vector describing motion realtive to a reference block and storage media thereof |
TW096121890A TWI482117B (zh) | 2006-06-16 | 2007-06-15 | 可程式視訊處理單元之系統與處理方法 |
TW096122002A TWI383683B (zh) | 2006-06-16 | 2007-06-15 | 視訊編碼器與圖形處理單元 |
TW096121865A TWI395488B (zh) | 2006-06-16 | 2007-06-15 | 具有可程式核心之視訊處理單元 |
TW096122009A TWI348654B (en) | 2006-06-16 | 2007-06-15 | Graphic processing unit and method for computing sum of absolute difference of marcoblocks |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096120098A TWI444047B (zh) | 2006-06-16 | 2007-06-05 | 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元 |
TW096122000A TWI350109B (en) | 2006-06-16 | 2007-06-15 | Method for determining a motion vector describing motion realtive to a reference block and storage media thereof |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096122002A TWI383683B (zh) | 2006-06-16 | 2007-06-15 | 視訊編碼器與圖形處理單元 |
TW096121865A TWI395488B (zh) | 2006-06-16 | 2007-06-15 | 具有可程式核心之視訊處理單元 |
TW096122009A TWI348654B (en) | 2006-06-16 | 2007-06-15 | Graphic processing unit and method for computing sum of absolute difference of marcoblocks |
Country Status (2)
Country | Link |
---|---|
CN (6) | CN101072351B (zh) |
TW (6) | TWI444047B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967590B2 (en) | 2008-04-10 | 2018-05-08 | Qualcomm Incorporated | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
US9077971B2 (en) | 2008-04-10 | 2015-07-07 | Qualcomm Incorporated | Interpolation-like filtering of integer-pixel positions in video coding |
US8705622B2 (en) | 2008-04-10 | 2014-04-22 | Qualcomm Incorporated | Interpolation filter support for sub-pixel resolution in video coding |
WO2010071504A1 (en) * | 2008-12-15 | 2010-06-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for avoiding quality deterioration of transmitted media content |
CN101901588B (zh) * | 2009-05-31 | 2012-07-04 | 比亚迪股份有限公司 | 一种嵌入式***的图像平滑显示方法 |
CN102164284A (zh) * | 2010-02-24 | 2011-08-24 | 富士通株式会社 | 视频解码方法和*** |
US8295619B2 (en) * | 2010-04-05 | 2012-10-23 | Mediatek Inc. | Image processing apparatus employed in overdrive application for compressing image data of second frame according to first frame preceding second frame and related image processing method thereof |
TWI395490B (zh) * | 2010-05-10 | 2013-05-01 | Univ Nat Central | 實施於電子裝置之影像編碼方法 |
US8681162B2 (en) * | 2010-10-15 | 2014-03-25 | Via Technologies, Inc. | Systems and methods for video processing |
CN106162186B (zh) * | 2011-01-03 | 2020-06-23 | 寰发股份有限公司 | 基于滤波单元的回路滤波方法 |
CN103392338A (zh) | 2011-01-03 | 2013-11-13 | 联发科技股份有限公司 | 基于滤波单元的回路滤波方法 |
US20130322523A1 (en) * | 2011-05-10 | 2013-12-05 | Mediatek Inc. | Method and apparatus for reduction of in-loop filter buffer |
CA2966260C (en) | 2011-06-28 | 2019-06-11 | Samsung Electronics Co., Ltd. | Method and apparatus for coding video and method and apparatus for decoding video, accompanied with intra prediction |
TWI596934B (zh) * | 2012-03-30 | 2017-08-21 | Jvc Kenwood Corp | Video encoding device, video encoding method and recording medium |
US9953455B2 (en) | 2013-03-13 | 2018-04-24 | Nvidia Corporation | Handling post-Z coverage data in raster operations |
US10154265B2 (en) | 2013-06-21 | 2018-12-11 | Nvidia Corporation | Graphics server and method for streaming rendered content via a remote graphics processing service |
CN105872553B (zh) * | 2016-04-28 | 2018-08-28 | 中山大学 | 一种基于并行计算的自适应环路滤波方法 |
US20180174359A1 (en) * | 2016-12-15 | 2018-06-21 | Mediatek Inc. | Frame difference generation hardware in a graphics system |
CN111028133B (zh) * | 2019-11-21 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemVerilog的图形命令预译码装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5973748A (en) * | 1996-11-15 | 1999-10-26 | Sony Corporation | Receiving device and receiving method thereof |
US20040228408A1 (en) * | 2002-12-20 | 2004-11-18 | Stmicroelectronics Sa | Process and device for decoding and displaying of MPEG pictures in fast forward mode, video driver circuit and decoder box incorporating such a device |
US20050262276A1 (en) * | 2004-05-13 | 2005-11-24 | Ittiam Systamc (P) Ltd. | Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine |
US20060002479A1 (en) * | 2004-06-22 | 2006-01-05 | Fernandes Felix C A | Decoder for H.264/AVC video |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3578498B2 (ja) * | 1994-12-02 | 2004-10-20 | 株式会社ソニー・コンピュータエンタテインメント | 画像情報処理装置 |
CN1146047A (zh) * | 1995-02-28 | 1997-03-26 | 大宇电子株式会社 | 顺序地显示记录在交互性记录介质上的信息的方法 |
US6064450A (en) * | 1995-12-06 | 2000-05-16 | Thomson Licensing S.A. | Digital video preprocessor horizontal and vertical filters |
JP3876392B2 (ja) * | 1996-04-26 | 2007-01-31 | 富士通株式会社 | 動きベクトル探索方法 |
US6496537B1 (en) * | 1996-12-18 | 2002-12-17 | Thomson Licensing S.A. | Video decoder with interleaved data processing |
US6177922B1 (en) * | 1997-04-15 | 2001-01-23 | Genesis Microship, Inc. | Multi-scan video timing generator for format conversion |
JP3870491B2 (ja) * | 1997-07-02 | 2007-01-17 | 松下電器産業株式会社 | 画像間対応検出方法およびその装置 |
US6487249B2 (en) * | 1998-10-09 | 2002-11-26 | Matsushita Electric Industrial Co., Ltd. | Efficient down conversion system for 2:1 decimation |
US6573905B1 (en) * | 1999-11-09 | 2003-06-03 | Broadcom Corporation | Video and graphics system with parallel processing of graphics windows |
WO2000036844A1 (en) * | 1998-12-11 | 2000-06-22 | Matsushita Electric Industrial Co., Ltd. | Device for deblocking filter operation and method for deblocking filter operation |
CN1112714C (zh) * | 1998-12-31 | 2003-06-25 | 上海永新彩色显象管有限公司 | 显象管屏清洗设备及方法 |
US6871001B1 (en) * | 1999-03-23 | 2005-03-22 | Sanyo Electric Co., Ltd. | Video decoder |
KR100677082B1 (ko) * | 2000-01-27 | 2007-02-01 | 삼성전자주식회사 | 움직임 추정기 |
JP4461562B2 (ja) * | 2000-04-04 | 2010-05-12 | ソニー株式会社 | 再生装置および方法、ならびに、信号処理装置および方法 |
US6717988B2 (en) * | 2001-01-11 | 2004-04-06 | Koninklijke Philips Electronics N.V. | Scalable MPEG-2 decoder |
US7940844B2 (en) * | 2002-06-18 | 2011-05-10 | Qualcomm Incorporated | Video encoding and decoding techniques |
CN1332560C (zh) * | 2002-07-22 | 2007-08-15 | 上海芯华微电子有限公司 | 无附加帧存储器基于块边界的差和量化因子的去块效应法 |
US6944224B2 (en) * | 2002-08-14 | 2005-09-13 | Intervideo, Inc. | Systems and methods for selecting a macroblock mode in a video encoder |
AU2003279015A1 (en) * | 2002-09-27 | 2004-04-19 | Videosoft, Inc. | Real-time video coding/decoding |
US7027515B2 (en) * | 2002-10-15 | 2006-04-11 | Red Rock Semiconductor Ltd. | Sum-of-absolute-difference checking of macroblock borders for error detection in a corrupted MPEG-4 bitstream |
US6922492B2 (en) * | 2002-12-27 | 2005-07-26 | Motorola, Inc. | Video deblocking method and apparatus |
AR043643A1 (es) * | 2003-03-17 | 2005-08-03 | Qualcomm Inc | Metodo y aparato para mejorar la calidad de video de bajo caudal de bits |
US7660352B2 (en) * | 2003-04-04 | 2010-02-09 | Sony Corporation | Apparatus and method of parallel processing an MPEG-4 data stream |
US7274824B2 (en) * | 2003-04-10 | 2007-09-25 | Faraday Technology Corp. | Method and apparatus to reduce the system load of motion estimation for DSP |
NO319007B1 (no) * | 2003-05-22 | 2005-06-06 | Tandberg Telecom As | Fremgangsmate og apparat for videokomprimering |
US20050013494A1 (en) * | 2003-07-18 | 2005-01-20 | Microsoft Corporation | In-loop deblocking filter |
US7650032B2 (en) * | 2003-08-19 | 2010-01-19 | Panasonic Corporation | Method for encoding moving image and method for decoding moving image |
US20050105621A1 (en) * | 2003-11-04 | 2005-05-19 | Ju Chi-Cheng | Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof |
US7292283B2 (en) * | 2003-12-23 | 2007-11-06 | Genesis Microchip Inc. | Apparatus and method for performing sub-pixel vector estimations using quadratic approximations |
CN1233171C (zh) * | 2004-01-16 | 2005-12-21 | 北京工业大学 | 一种用于视频编码的简单化环路滤波方法 |
NO20042477A (no) * | 2004-06-14 | 2005-10-17 | Tandberg Telecom As | Fremgangsmåte for chroma de-blokking |
US8116379B2 (en) * | 2004-10-08 | 2012-02-14 | Stmicroelectronics, Inc. | Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard |
NO322722B1 (no) * | 2004-10-13 | 2006-12-04 | Tandberg Telecom As | Fremgangsmate for videokoding gjennom reduksjon av blokkartefakter |
CN1750660A (zh) * | 2005-09-29 | 2006-03-22 | 威盛电子股份有限公司 | 移动向量计算方法 |
-
2007
- 2007-06-05 TW TW096120098A patent/TWI444047B/zh active
- 2007-06-13 CN CN2007101103594A patent/CN101072351B/zh active Active
- 2007-06-15 TW TW096122000A patent/TWI350109B/zh active
- 2007-06-15 TW TW096121890A patent/TWI482117B/zh active
- 2007-06-15 TW TW096122002A patent/TWI383683B/zh active
- 2007-06-15 TW TW096121865A patent/TWI395488B/zh active
- 2007-06-15 TW TW096122009A patent/TWI348654B/zh active
- 2007-06-18 CN CN2007101119554A patent/CN101083763B/zh active Active
- 2007-06-18 CN CN2007101101940A patent/CN101068365B/zh active Active
- 2007-06-18 CN CN2007101101921A patent/CN101068364B/zh active Active
- 2007-06-18 CN CN200710111956.9A patent/CN101083764B/zh active Active
- 2007-06-18 CN CN2007101101936A patent/CN101068353B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5973748A (en) * | 1996-11-15 | 1999-10-26 | Sony Corporation | Receiving device and receiving method thereof |
US20040228408A1 (en) * | 2002-12-20 | 2004-11-18 | Stmicroelectronics Sa | Process and device for decoding and displaying of MPEG pictures in fast forward mode, video driver circuit and decoder box incorporating such a device |
US20050262276A1 (en) * | 2004-05-13 | 2005-11-24 | Ittiam Systamc (P) Ltd. | Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine |
US20060002479A1 (en) * | 2004-06-22 | 2006-01-05 | Fernandes Felix C A | Decoder for H.264/AVC video |
Also Published As
Publication number | Publication date |
---|---|
TWI350109B (en) | 2011-10-01 |
TW200803528A (en) | 2008-01-01 |
CN101083764A (zh) | 2007-12-05 |
CN101068353A (zh) | 2007-11-07 |
TW200803527A (en) | 2008-01-01 |
CN101083763B (zh) | 2012-02-08 |
TWI383683B (zh) | 2013-01-21 |
TW200816820A (en) | 2008-04-01 |
CN101068364B (zh) | 2010-12-01 |
TW200816082A (en) | 2008-04-01 |
TWI395488B (zh) | 2013-05-01 |
TWI444047B (zh) | 2014-07-01 |
CN101068365A (zh) | 2007-11-07 |
CN101068353B (zh) | 2010-08-25 |
CN101083764B (zh) | 2014-04-02 |
CN101083763A (zh) | 2007-12-05 |
CN101072351A (zh) | 2007-11-14 |
CN101068365B (zh) | 2010-08-25 |
TWI348654B (en) | 2011-09-11 |
TW200821986A (en) | 2008-05-16 |
TW200803525A (en) | 2008-01-01 |
CN101072351B (zh) | 2012-11-21 |
CN101068364A (zh) | 2007-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI482117B (zh) | 可程式視訊處理單元之系統與處理方法 | |
US7079583B2 (en) | Media processing apparatus which operates at high efficiency | |
US5768429A (en) | Apparatus and method for accelerating digital video decompression by performing operations in parallel | |
US11863769B2 (en) | Bandwidth saving architecture for scalable video coding | |
US5812791A (en) | Multiple sequence MPEG decoder | |
US6546480B1 (en) | Instructions for arithmetic operations on vectored data | |
US7035332B2 (en) | DCT/IDCT with minimum multiplication | |
WO2007049150A2 (en) | Architecture for microprocessor-based systems including simd processing unit and associated systems and methods | |
US20100321579A1 (en) | Front End Processor with Extendable Data Path | |
CA2192532C (en) | Hybrid software/hardware video decoder for personal computer | |
US8879629B2 (en) | Method and system for intra-mode selection without using reconstructed data | |
WO2000010320A2 (en) | Performing transform during processing of an image | |
US8498333B2 (en) | Filtering for VPU | |
Wan et al. | AVS video decoding acceleration on ARM Cortex-A with NEON | |
US9204159B2 (en) | VPU with programmable core | |
WO1996036178A1 (en) | Multiple sequence mpeg decoder and process for controlling same | |
Kassim et al. | DSP‐based system for real‐time video communications | |
Ueng et al. | The design and performance analysis for the multimedia function unit of the NSC-98 CPU | |
Wu et al. | Parallel architectures for programmable video signal processing | |
Hu et al. | Design of Single Scalar DSP based H. 264/AVC Decoder | |
Konoshima et al. | Principal devices and hardware volume estimation for moving picture decoder for digital storage media | |
Pastuszak | Video Compression from the Hardware Perspective | |
Zuair et al. | An Optimized Architecture for MPEG-2 Real-Time Encoding | |
JP2008288986A (ja) | 画像処理装置およびその方法、並びにプログラム | |
JPH08275173A (ja) | デジタル符号化方法 |