CN101083764A - 可编程视频处理单元与视频数据处理方法 - Google Patents
可编程视频处理单元与视频数据处理方法 Download PDFInfo
- Publication number
- CN101083764A CN101083764A CNA2007101119569A CN200710111956A CN101083764A CN 101083764 A CN101083764 A CN 101083764A CN A2007101119569 A CNA2007101119569 A CN A2007101119569A CN 200710111956 A CN200710111956 A CN 200710111956A CN 101083764 A CN101083764 A CN 101083764A
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- multiplexer
- video data
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
本发明包括一种可编程视频处理单元与视频数据处理方法,用以处理至少两种格式的视频数据,包含:一辨识逻辑电路,用以辨识视频数据的格式;一动态补偿逻辑电路,用以执行一动态补偿操作;一离散余弦反变换逻辑电路,用以执行一离散余弦反变换操作;以及一整数转换逻辑电路,用以执行一整数转换操作。其中离散余弦反变换逻辑电路与整数转换逻辑电路根据该辨识逻辑电路的辨识结果分别被关闭。本发明所提供的可编程视频处理单元与视频数据处理方法,可提高视频数据的处理速度。
Description
技术领域
本发明是关于处理视频以及图形数据,更特定言之,本发明是关于提供一种具有可编程核心的视频处理单元。
背景技术
随着计算机技术的不断发展,对计算设备的需求亦随的提升。更特定言之,许多计算机应用程序及/或数据流需要对视频数据进行处理,随着视频数据变得愈加复杂,对视频数据的处理要求亦随之增加。
目前,许多计算架构提供用于处理包括视频以及图形数据之中央处理单元(CPU),虽然CPU可提供用于一些视频以及图形的适当处理能力,但CPU亦需处理其他数据。因此,在处理复杂视频以及图形中对CPU的需求可能会不利地影响整个系统的效能。
另外,许多计算架构包括用于处理数据之一或多个执行单元(EU)。更特定言之,在至少一架构中EU可用以处理多个不同类型的数据。如同CPU般,对EU的需求衍生自处理复杂视频以及图形数据可能会不利地影响整个计算系统的效能。另外,由EU处理复杂视频以及图形数据可能增加功率消耗以致超过可接受的临限值。此外,数据的不同协定或规格更会限制EU处理视频以及图形数据的能力。另外,目前许多计算架构提供32位命令,该情况可能降低效率,因而影响处理速度。此外,单一组件中利用多个操作亦是另一需求。
因此,工业领域中存在解决上述缺陷以及不足的迄今仍未解决的需求。
发明内容
本发明之一实施例包括一种用以处理至少两种格式的视频数据的可编程视频处理单元,包含:一辨识逻辑电路,用以辨识视频数据的格式;一动态补偿逻辑电路,用以执行一动态补偿操作;一离散余弦反变换逻辑电路,用以执行一离散余弦反变换操作;以及一整数转换逻辑电路,用以执行一整数转换操作。其中离散余弦反变换逻辑电路与整数转换逻辑电路根据该辨识逻辑电路的辨识结果分别被关闭。
本发明亦包括用于处理视频数据的方法的实施例。至少一实施例包括接收一指令;接收选自至少两种格式之一的视频数据;根据指令滤波该视频数据;以及根据指令转换该视频数据。其中此指令包含一模式识别栏位用以指示滤波与转换该视频数据的步骤根据视频数据的格式运作。
本发明所提供的可编程视频处理单元与视频数据处理方法,可提高视频数据的处理速度。
附图说明
图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的计算架构)中执行数据的过程的实施例流程图。
具体实施方式
本发明揭露的其他系统、方法、特征以及优点在检视了以下图式以及详细描述之后对于本领域技术人员将是明显的或变得明显。预期将所有此等额外系统、方法、特征以及优点包括于此描述内容内及本揭露内容的范畴内。
图1为用于处理视频数据的计算架构之一实施例。如图1所示,计算装置可包括执行单元(Execution Unit,EU)的集区(pool)146。执行单元的集区146可包括用于在图1的计算架构中执行数据之一或多个执行单元。执行单元的集区146(本文中称为“ EUP146”)可耦接至数据流快取存储器116,且自数据流快取存储器116接收数据。EUP146亦可耦接至输入端口142以及输出端口144。输入端口142可用以自具有快取存储器子系统的EUP控制器118接收数据。输入端口142亦可自L2快取存储器114以及后封装器160接收数据。EUP146可处理所接收的数据,且将经处理后的数据输出至输出端口144。
另外,具有快取存储器子系统的EUP控制器118可将数据发送至存储器存取单元(memory access unit,以下简称MXU A)164a以及三角与属性配置单元(triangle and attribute setup)134。L2快取存储器114亦可将数据发送至MXU A 164a,且自MXU A164a接收数据。顶点快取存储器(vertex cache)112以及数据流快取存储器110亦可与MXU A 164a通信,存储器存取端口108亦与MXU A 164a通信。存储器存取端口108可与总线接口单元(bus interface unit,BIU)90、存储器接口单元(memory interfaceunit,MIU)A 106a、MIU B 106b、MIU C 106c以及MIU D 106d通信数据,存储器存取端口108亦可耦接至MXU B 164b。
MXU A 164a亦耦接至命令流处理器(command streamprocessor,以下简称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快取存储器123,跨距像砖产生器136亦可耦接至ZL1 138,ZL1 138可将数据发送至ZL1快取存储器123。ZL2 140可耦接至Z(例如,深度缓冲快取存储器)及模板(stencil,ST)快取存储器148。Z及ST快取存储器148可透过写回单元162来发送及接收数据,且可耦接至频宽(以下简称BW)压缩器146。BW压缩器146亦可耦接至MXUB 164b,MXU B 164b可耦接至纹理快取存储器与控制器166。纹理快取存储器与控制器166可耦接至纹理滤波单元(texturefilter unit,以下简称TFU)168,TFU168可将数据发送至后封装器160。后封装器160可耦接至内插器158。前封装器156可耦接至内插器158以及纹理地址产生器150。写回单元162可耦接至2D处理组件(pro component)154、D快取存储器152、Z及ST快取存储器148、输出端口144以及CSP后端128。
图1的实施例经由利用EUP146来处理视频数据。更特定言之,在至少一实施例中,执行单元之一或多个可用以处理视频数据。虽然此架构可适用于一些应用,但此架构可能消耗过量功率;另外,此架构在处理H.264数据中可能颇具难度。
图2为类似于图1架构且引入了视频处理单元(videoprocessing unit,以下简称VPU)的计算架构之一实施例。更特定言之,在图2的实施例中,可在图1的计算架构中提供具有可编程核心的VPU199。VPU199可耦接至CSP前端120以及TFU168。VPU199可作为用于视频数据的专用处理器。另外,VPU199可用以处理以动画专家群(以下简称MPEG)、VC-1以及H.264协定编码的视频数据。
更特定言之,在至少一实施例中,可在执行单元(EU)146之一或多个上执行遮影器码(shader code)。指令可经译码及自暂存器提取,主要以及次要操作码可用以判定运算元被投送的EU以及可基于此运算元执行运算的函数。若操作属于SAMPLE类型(举例而言,所有VPU指令皆为SAMPLE类型),则可自EUP146调度指令。尽管VPU199可用以减少使用TFU滤波硬件,但VPU199也可与TFU168一起驻存。
用于SAMPLE操作的EUP146构建580位的数据结构(见表1)。EUP146提取SAMPLE指令所指示的来源暂存器,此数据被置放于EUP-TAG接口结构的最低有效512位中。EUP146插入于此结构中的其他相关数据为:
REG_TYPE:此应为0
ThreadID-用以将结果投送回正确的遮影器程序
ShaderResID-
ShaderType=PS
CRFIndex-目的暂存器
SAMPLE_MODE-此为待执行的VPU滤波操作
ExeMode=垂直
此数据结构随后可被发送至纹理地址产生器(textureaddress generator,以下简称TAG)150。TAG150可用以检查SAMPLE_MODE位以判定数据栏位是否含有纹理样本信息或实际数据。若含有实际数据,则TAG150将数据直接转发至VPU199,否则TAG150可启始纹理提取。
表1用于视频处理的EUP-TAG接口
数据输入 | XOUT_TAG_DATA | 580 | |||
栏位 | Data | 512 | 511 | 0 | 4×4×32 |
栏位 | Req Type?? | 1 | 525 | 525 | 请求类型:0-sample、1-resinfo |
栏位 | 7 | 533 | 527 | 未使用(保留) | |
栏位 | 4 | 537 | 534 | 未使用(保留) | |
栏位 | Write_Mask | 4 | 541 | 538 | Texel组件写入屏蔽 |
栏位 | Thread Id | 6 | 547 | 542 | EU线程 |
栏位 | Shader Res ID | 2 | 551 | 550 | 遮影器范围 |
栏位 | Shader Type | 3 | 553 | 552 | 00:VS01:GS10:PS11:PS_PF |
栏位 | CRF index | 8 | 565 | 558 | EU传回地址6+2 subid |
栏位 | Sample Mode | 5 | 570 | 566 | 01000:SAMPLE_MCF_BLR01001:SAMPLE_MCF_VC101010:SAMPLE_MCF_H26401111:SAMPLE_SAD01011:SAMPLE_IDF_VC101100:SAMPLE_IDF |
_H264_001101:SAMPLE_IDF_H264_101110:SAMPLE_IDF_H264_210000:SAMPLE_TCF_I4×410001:SAMPLE_TCF_M4×410010:SAMPLE_TCF_MPEG210011:SAMPLE_MADD10100:SAMPLE_SMMUL | |||||
栏位 | exe_mode | 1 | 571 | 571 | 执行模式 |
值 | Horizontal(水平) | 1 | |||
值 | Vertical(垂直) | 0 | |||
栏位 | Bx2 | 1 | 572 | 572 | _bx2修改。注意,对于sample_Id,此标志用于指示是否使用取样器,0-无s#且1-有s#(供视频使用)。 |
栏位 | <R> | 9 | 579 | 573 | 保留 |
若SAMPLE_MODE为MCF、SAD、IDF_VC-1、IDF_H264_0或IDF_H264_1中之一,则其需要提取纹理数据,否则数据在Data栏位中。
TAG150用以产生地址所需且传递至纹理快取存储器控制器(texture cache controller,以下简称TCC)166的信息可在Data栏位的最低有效128位中找到:
位[31:0]-U、V坐标,此构成纹理块的地址(4×4×8位)
位[102:96]-T#
位[106:103]-S#
T#、S#、U以及V为自特定表面提取的纹理所需的充分信息。U、V、T#、S#可在译码期间自INSTRUCTION的SRC1栏位提取,且可用于填充以上栏位。因此,可在执行期间动态地修改U、V、T#、S#。
随后SAMPLE_MODE以及含有此信息的数据的最低有效128位可置放于VPU199的命令先进先出存储器(以下简称COMMAND FIFO)中,相对应的数据先进先出存储器(DATAFIFO)可填充以自纹理快取存储器被转发的数据(位[383:128])或256位(最大)。此数据将在VPU199中被操作运算,该操作是由COMMAND FIFO的信息来判定的,其结果(最大256位)可使用ThreadID以及CRFIndex作为传回地址传回至EUP146以及EU暂存器。
另外,本发明包括由EUP146提供且可供VPU199使用的指令集,其指令可格式化成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位。
表2MCF滤波核心
滤波核心(SRC2) | |||||||||||||||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
核心[3] | 核心[2] | 核心[2] | 核心[0] |
另外,VPU199的指令集还包括关于回路内解块滤波(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的操作,TFU168可将8×4×8位(或4×8×8位)数据提供至滤波缓冲器中。然而,对于H.264,由TFU168输送的数据量可视H.264 IDF操作的类型加以控制。
对于SAMPLE_IDF_H264_0指令,TFU供应8×4×8位(或4×8×8位)的数据块。对于SAMPLE_IDF_H264_1指令,TFU168供应一4×4×8位的数据块,且另一4×4×8位数据由遮影器(EU)146(图2)供应。另外,通过SAMPLE_IDF_H264_2,两个4×4×8位数据块皆可由遮影器(位于EU)146供应,而非来自TFU168。
另外,VPU199的指令集还包括动态估计(motionestimation,以下简称ME)指令,其可包括诸如以下列出的指令:
SAMPLE_SAD DST、S#、T#、SRC2、SRC1。
以上指令可映射至以下主要以及次要操作码且采取以上所述的格式。以下在相关指令部分中论述SRC以及DST格式的细节。
表3动态估计以及相应操作码
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
S# | T# | S2S | SRC2 | S1S | SRC1 | ||||||||||||||||||||||||||
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
RPT | SRCP | 1 | 0 | 1 | 0 | 0 | DS | DST | 次要操作码 | LCK |
表3:动态估计以及相应操作码,其中LCK指示在位集锁定EU数据路径且不允许另一线程进入管道时的LOCK。NEG指示反转述词暂存器(predicate register)。S#、T#栏位被VPUSAMPLE指令忽略。而替代地使用以SRC1编码的T#、S#栏位。
表4动态补偿滤波以及相应操作码
指令 | 次要操作码 | 注解 | |||
SSAMPLE_MCF_BLR | 00 | 00 | 00 | 00 | |
SSAMPLE_MCF_VC-1 | 00 | 00 | 00 | 01 | |
SSAMPLE_MCF_H264 | 00 | 00 | 01 | 00 | |
SSAMPLE_IDF_VC-1 | 00 | 00 | 01 | 01 | |
SSAMPLE_IDF_H264_0 | 00 | 01 | 00 | 00 | |
SSAMPLE_IDF_H264_1 | 00 | 01 | 10 | 11 | |
SSAMPLE_IDF_H264_2 | 00 | 11 | 01 | 00 | |
SSAMPLE_SAD | 00 | 11 | 11 | 11 |
表5转换系数滤波(transform coefficient filtering,以下简称TCF)以及相应操作码
SAMPLE_TCF_MPEG2 | 无来自纹理快取存储器的数据 | ||||
指令 | 次要操作码 | 注解 | |||
SAMPLE_TCF_I4×4 | 0 | 0 | 0 | 0 | |
SAMPLE_TCF_M4×4 | 0 | 0 | 0 | 1 | |
SAMPLE_TCF_MPEG2 | 0 | 0 | 1 | 0 |
SAMPLE指令依循图3中所示的执行路径。另外,EUP-TAG接口如以下表6,其他接口亦会在稍后更详细地描述。
表6用于视频处理的EUP-TAG接口
数据输入 | XOUT_TAG_DATA | 580 | |||
栏位 | Data | 512 | 511 | 0 | 4×4×32 |
栏位 | Req Type?? | 1 | 525 | 525 | 请求类型:0-sample、1-resinfo |
栏位 | T# | 7 | 533 | 527 | 纹理指数0~127 |
栏位 | S# | 4 | 537 | 534 | 取样器指数0~15 |
栏位 | Write_Mask | 4 | 541 | 538 | Texel组件写屏蔽 |
栏位 | Thread Id | 6 | 547 | 542 | EU线程 |
栏位 | shader Res ID | 2 | 551 | 550 | 遮影器范围 |
栏位 | Shader Type | 3 | 553 | 552 | 00:VS01:GS10:PS11:PS_PF |
栏位 | CRF Index | 8 | 565 | 558 | EU传回地址6+2 sub id |
栏位 | Sample Mode | 5 | 570 | 566 | 01000:SAMPLE_MCF_BLR01001:SAMPLE_MCF_VC |
101010:SAMPLE_MCF_H26401111:SAMPLE_SAD01011:SAMPLE_IDF_VC1-01100:SAMPLE_IDF_H264_001101:SAMPLE_IDF_H264_101110:SAMPLE_IDF_H264_210000:SAMPLE_TCF_I4×410001:SAMPLE_TCF_M4×410010:SAMPLE_TCF_MPEG210011:SAMPLE_MADD10100:SAMPLE_SMMUL | |||||
栏位 | exe_mode | 1 | 571 | 571 | 执行模式 |
值 | Horizontal(水平) | 1 | |||
值 | Vertical(垂直) | 0 | |||
栏位 | Bx2 | 1 | 572 | 572 | _bx2修改。注意,对于sample_Id,此标志用于指示是否使用取样器,0-无s#且1-有s#(供视频使用)。 |
栏位 | <R> | 9 | 579 | 573 | 保留 |
应注意纹理样本滤波操作亦可映射至Sample Mode栏位,在此种状况下值为00XXX。值11XXX目前保留以供未来使用。另外,在本文中所揭露的至少一实施例中,一些视频功能可插入至纹理管线中以再利用L2快取存储器逻辑电路以及一些L2以过滤载入MUX的数据,如ME(动态估计)、MC(动态补偿)、TC(转换编码)以及ID(回路内解块)。
以下表总结对于不同样本指令的自TCC166及/或TFU168的数据载入准则。应注意视特殊架构而定,Sample_MC_H264可仅用于Y平面,但对于CrCb平面并非为必需的。
表7用于视频的数据载入
指令 | 注解 | Y平面 | CrCb平面 |
SAMPLE_MC_BLR | 自纹理快取存储器的8×8×8位块 | 是 | 是 |
SAMPLE_MC_VC1 | 自纹理快取存储器的12×12×8位块 | 是 | 是 |
SAMPLE_MC_H264 | 自纹理快取存储器的12×12×8位块 | 是 | 否 |
SAMPLE_SAD | 自纹理快取存储器的8×4×8位块,V可为任何对准 | 是 | 是 |
SAMPLE_IDF_VC1 | 自纹理快取存储器的8×4×8位(或4×8×8位),32位对准 | 是 | 是 |
SAMPLE_IDF_H264_0 | 自纹理快取储存器的8×4×8位(或4×8×8位),32位对准 | 是 | 是 |
SAMPLE_IDF_H264_1 | 自纹理快取储存器的4×4×8位,32位对准 | 是 | 是 |
SAMPLE_IDF_H264_2 | 无自纹理快取存储器的数据 | ||
SAMPLE_TCF_I4×4 | 无自纹理快取存储器的数据 | ||
SAMPLE_TCF_M4×4 | 无自纹理快取存储器的数据 | ||
SAMPLE_TCF_MPEG2 | 无自纹理快取存储器的数据 |
SAMPLE_MADD | 无自纹理快取存储器的数据 | ||
SAMPLE_SMMUL | 无自纹理快取存储器的数据 |
在本文中所揭露的至少一实施例中,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_I4×4 DST、#ctrl、SRC2、SRC1
SAMPLE_TCF_M4×4 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:用于多个控制信号的数据栏位
控制 | 值 | |||||||||||||||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
Control_3 | 矩阵指数 | TR | 模式 | |||||||||||||||||||||||||||||
Control_0 | YC | BR | ||||||||||||||||||||||||||||||
Control_1 | YC | FD | PQUANT | |||||||||||||||||||||||||||||
列1 | 列0 | |||||||||||||||||||||||||||||||
Control_2 | IndexB | IndexA | bS | CBCR | IndexB | IndexA | bS | CEF | ||||||||||||||||||||||||
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 | |
列3 | 列2 | |||||||||||||||||||||||||||||||
IndexB | IndexA | bS | IndexB | IndexA | bS | FD | ||||||||||||||||||||||||||
Control_4 | MMODE | SP | SM |
表9SRC1、SRC2以及#ctrl的格式
字组 | ||||||||||||||||||||||||||||||||||||
指令 | 34 | 33 | 32 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
SRC2+1(奇) | SRC2(偶) | SRC1 | ||||||||||||||||||||||||||||||||||
SAMPLE_MCF_X | 未定义 | 未定义 | Control_5 | 未定义 | Control_0 | V | U | |||||||||||||||||||||||||||||
SAMPLE_IDF_VC1 | 未定义 | 未定义 | Control_5 | 未定义 | Control_1 | V | U | |||||||||||||||||||||||||||||
SAMPLE_SAD | 未定义 | p33 | p32 | p31 | p30 | p23 | p22 | p21 | p20 | p13 | p12 | p11 | p10 | p03 | p02 | p01 | p00 | Control_5 | 未定义 | V | U | |||||||||||||||
SAMPLE_IDF_H264_0 | 未定义 | 未定义 | Control_5 | Control_2 | V | U | ||||||||||||||||||||||||||||||
SAMPLE_IDF_H264_1 | 未定义 | p33 | p32 | p31 | p30 | p23 | p22 | p21 | p20 | p13 | p12 | p11 | p10 | p03 | p02 | p01 | p00 | Control_5 | Control_2 | V | U | |||||||||||||||
SAMPLE_IDF_H264_2 | 第二暂存器对 | p33 | p32 | p31 | p30 | p23 | p22 | p21 | p20 | p13 | p12 | p11 | p10 | p03 | p02 | p01 | p00 | Control_2 | 未定义 | |||||||||||||||||
SAMPLE_TCF_X | 第二暂存器对 | m33 | m32 | m31 | m30 | m23 | m22 | m21 | m20 | 未定义 | Control_3 | 未定义 | ||||||||||||||||||||||||
SAMPLE_SMMUL | 第二暂存器对 | m33 | m32 | m31 | m30 | m23 | m22 | m21 | m20 | 未定义 | Control_4 | 未定义 | ||||||||||||||||||||||||
位元组 | ||||||||||||||||||||||||||||||||||||
47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 | |||||||||||||||||||||
SAMPLE_TCF_X第二暂存器对 | m33 | m32 | m31 | m30 | m23 | m22 | m21 | m20 | ||||||||||||||||||||||||||||
SAMPLE_IDF_H264_2第二暂存器 | p33 | p32 | p31 | p30 | p23 | p22 | p21 | p20 | p13 | p12 | p11 | p10 | p03 | p02 | p01 | p00 | ||||||||||||||||||||
Control_5 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||
未定义 | S# | T# |
参看表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中包括对指令操作的概述。
表10指令概述
指令名称 | 指令格式 | 指令操作 |
SAMPLE_MCF_BLR | SAMPLE_MCF_BLRDST、SRC2、SRC1 | MC滤波实施 |
SAMPLE_MCF_VC1 | SAMPLE_MCF_VC1DST、SRC2、SRC1 | 对于VC-1的MC滤波实施 |
SAMPLE_MCF_H264 | SAMPLE_MCF_H264DST、SRC2、SRC1 | 对于H.264的MC滤波实施 |
SAMPLE_IDF_VC1 | SAMPLE_IDF_VC1DST、SRC2、SRC1 | VC-1解块操作 |
SAMPLE_IDF_H264_0 | SAMPLE_IDF_H264_0DST、SRC2、SRC1 | H.264解块操作。自纹理快取存储器166提供4×4×8(垂直滤波器)或8×4×8块。 |
SAMPLE_IDF_H264_1 | SAMPLE_IDF_H264_1DST、SRC2、SRC1 | H.264操作。自着色器提供一4×4×8位块,自纹理快取存储器166提供另一 |
4×4×8位块。此允许构造8×4(或4×8)块。 | ||
SAMPLE_IDF_H264_2 | SAMPLE_IDF_H264_2DST、#ctrl、SRC2、SRC1 | H.264解块操作。两个4×4块均由遮影器提供,以构造8×4块。 |
SAMPLE_SAD | SAMPLE_SAD DST、S#、T#、SRC2、SRC1 | 对参考(SRC2)以及预测数据执行四次绝对差和(SAD)运算。 |
SAMPLE_TCF_I4×4 | SAMPLE_TCF_I4×4DST、#ctrl、SRC2、SRC1 | 变换编码实施 |
SAMPLE_TCF_M4×4 | SAMPLE_TCFM4×4DST、#ctrl、SRC2、SRC1 | 变换编码实施 |
SAMPLE_TCF_MPEG2 | SAMPLE_TCF_MPEG2DST、#ctrl、SRC2、SRC1 | 变换编码实施 |
SAMPLE_MADD | SAMPLE_MADD DST、#ctrl、SRCW、SRC1 | 见下文 |
SAMPLE_SIMMUL | SAMPLE_SIMMULDST、#ctrl、SRC2、SRC1 | 执行纯量矩阵乘法。#ctrl为11位立即值。此可为0(例如,#ctrl信号将忽略)。亦参见下文 |
另外,对于SAMPLE_MADD而言,#ctrl可为11位的立即值,此外还须执行两个4×4矩阵(SRC1以及SRC2)的加法。任一矩阵之一或多个元素可为16位带正负号的整数,其结果(DST)为4×4(16位矩阵)。矩阵可如以下在表11中所示置放于来源/目的暂存器中,此可为VPU内的个别单元。另外,SRC1以及#ctrl数据于周期1时可供存取,且SRC2于随后的周期亦可存取,因此,可每两周期发布一个操作。
#ctrl[0]指示是否执行饱和(saturation,SAT)操作。
#ctrl[1]指示是否执行舍入(rounding,R)操作。
#ctrl[2]指示是否执行1位右移(shift,S)操作。
#ctrl[10:3]忽略。
表11用于来源矩阵以及目的矩阵的暂存器
255:240 | 239:224 | 223:208 | 207:192 | 63:48 | 47:32 | 31:16 | 15:0 | ||||||||
M33 | M32 | M31 | M30 | M23 | M22 | M21 | M20 | M13 | M12 | M11 | M10 | M03 | M02 | M01 | M00 |
另外,与此数据相关的逻辑准则可包括以下:
#Lanes:=16;#Lanewidth:=16;
If(#ctrl[1])R=1;ELSE R=0;
If(#ctrl[2])S=1;ELSE S=0;
IF(#ctrl[0])SAT=1;ELSE SAT=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中的总和加法器被越过,自16×8位乘法所得的四个结果可被移位,且每一结果的最低有效16位被收集在一起成为16个16位结果,以回传递至EU。
图3为说明如图2的计算架构中用于处理视频数据的过程的流程图的实施例。更特定言之,如图3的实施例所说明,命令流处理器可将数据以及指令发送至EUP146。EUP146相应地可用以读取指令且处理所接收的数据。EUP146随后可将指令、经处理的数据以及来自EUP纹理地址产生器(TAG)接口242的数据发送至纹理地址产生器(TAG)150。TAG150可用以产生已处理数据的地址。TAG150随后可将数据以及指令发送至纹理快取存储器控制器(texture cache controller,TCC)166。TCC166可用以快取用于纹理滤波单元(texture filter unit,TFU)168的数据。TFU168可根据所接收的指令来滤波所接收的数据,且将经滤波的数据发送至视频可编程单元(VPU)199。VPU199可根据所接收的指令来处理所接收的数据,且将经处理数据发送至后封装器(postpacker,PSP)160。PSP160可自诸如TFU168的各组件来收集像素包。若像砖是部分完整的,则PSP160可封装多个像砖且使用被发送至管线的特定识别符号将像砖发回至EUP146。
图4A为说明在计算装置(诸如具有图2的计算架构的计算装置)中数据流的功能流程图的实施例。如图4A的实施例所说明,可将加密的数据流发送至CSP120,128上的解密组件236。在至少一实施例中,加密位流可经解密且写回至视频存储器。随后可使用可变长度译码器(VLD)硬件来译码所解密的视频。解密组件236可解密所接收的位流以形成编码位流238。编码位流238可发送至VLD、霍夫曼(Huffman)译码器、复杂适应性可变长度编码器(complex adaptive variable length decoder,CAVLC)及/或二进制算术编码器(Context Based BinaryArithmetic Coder,CABAC)240(本文中称为“译码器”)。译码器240将所接收的位流译码,且将所译码的位流发送至DirectX视频加速(DirectX Video Acceleration,DXVA)数据结构242。另外,在DXVA数据结构242处接收到的数据为外部MPEG-2VLD反扫描、反量化(反Q)与反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的数据相加求和,且将求和所得的数据发送至回路内滤波器297。回路内滤波器297过滤所接收的数据,且将经过滤的数据发送至重建框架组件290。重建框架组件290将数据发送至重建参考组件284。重建框架组件290可将数据发送至解块与去环(dering)滤波器292,滤波器292可将经过滤的数据发送至用于解交错的解交错(de-interlacing)组件294,此数据随后可供显示。
图5A为说明在VPU中(诸如在图2的计算架构中)可用于提供动态压缩(MC)及/或离散余弦转换(DCT)操作的组件的实施例的功能方块图。更特定言之,如图5A的实施例所说明,总线A可用以将16位数据发送至PE3 314d的输入端口b,总线A亦将数据发送至Z-1延迟组件300,以将16位数据发送至PE 2314c的第二输入端。总线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-1308延迟且发送至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 3314d、PE 2 314c、PE 1 314b以及PE 0 314a的每一个。
处理元件0(Processing Elelment,PE 0)314a可促进过滤所接收数据。更特定言之,PE可为FIR滤波器之一元件。当PE 0314a、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以及340l接收数据且将数据发送至跳跃块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滤波器块0 370a。同样地,多工器369b-369i自跳跃块368b-368i以及368k-368r接收数据,此数据发送至FIR滤波器块370b-370i且经处理,就如关于图5A所叙述。自FIR滤波器块0 370a输出的数据发送至跳跃块372b以及372j;FIR滤波器块370b输出至跳跃块372c以及372k;FIR滤波器块370c输出至跳跃块372d以及372l;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。加法器384a-384d接收此数据以及值“1”以处理所接收的数据并将经处理的数据分别发送至移位器386a-386d,移位器386a-386d将所接收的数据移位且将经移位的数据发送至多工器390a-390d,接着将数据自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的实施例所说明,数据在存储器缓冲器A340处被接收。此数据在多工器342处与存储器缓冲器A340中的其他数据一起多工。多工器342选择数据,且将选定数据发送至存储器缓冲器B350。存储器缓冲器B350亦自传送网络360接收数据。存储器缓冲器B350将数据发送至多工器369,多工器369亦自多工器342接收数据。多工器369选择数据,且将选定数据发送至FIR滤波器370。FIR滤波器将所接收的数据过滤,且将经过滤的数据发送至存储器缓冲器C380、Z组件388以及传送网络360。存储器缓冲器C380将数据发送至多工器382,多工器382自从存储器缓冲器C380接收的数据进行选择。被选定的数据发送至ALU384,ALU384自所接收数据计算结果,且将计算所得的数据发送至移位器386。接着经移位的数据被发送至多工器390,多工器390亦自Z组件388接收数据,多工器390选择结果且将此结果发送至输出端。
图5A-图5F中所示的组件可用以提供动态压缩(MC)及/或离散余弦转换(DCT)。更特定言之,视特殊实施例及/或数据格式而定,数据可在递回操作中通过图5A-图5F的组件多次以达成所要结果。另外,视特殊操作及特殊数据格式而定,数据可自EU146及/或TFU168接收。
如一非限制性实施例,在实际操作中,图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抽头数据中进行选择,选定的数据可发送至16×8乘法器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信号,此信号若不为零,则指示需过滤其他三列像素;否则,可不过滤(修改)此4×4块。多工器428根据在选择输入端所接收的处理像素数据3而选择输出数据。
图7B为图7A的图的延续。更特定言之,如图7A的实施例所说明,绝对值组件430接收9位输入A1 490a(自图7D),绝对值组件432接收9位输入A2 490b(自图7D)。通过计算所接收数据的绝对值,最小值组件434判定所接收数据的最小值,且将此数据作为输出A3并发送至2进制补数组件(2′s complimentcomponent)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将所接收的数据向右移三位且将结果发送至A1490a、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]位部份的数据。所接收数据如上所论述经处理且发送至加法器542。另外,加法器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位预测数据可发送至SAD44(见图8),如方块558中所说明。另外,方块560可接收块数据且计算地址。在方块560,亦可自RefImage提取4×4存储器数据并执行位组对准。128位Ref[i]数据随后可发送至SAD44(方块558)。和值可自SAD44发送至方块562,其中总和值suma增加“1”而i减少“1”。接着可判定总和值suma是否大于临限值(方块564)。若是,则过程可停止;另一方面,若总和值suma不大于该临限值,则过程可返回方块552以判定i是否大于0。若i不大于0,则过程可结束。
图10A为可用于解块操作中(诸如可在图2的计算机架构中执行)的多个组件的方块图。如图10A的实施例,ALU580接收输入数据p2以及p0,且将数据发送至绝对值组件586。绝对值组件586计算所接收数据的绝对值且输出数据ap,判定组件590判定ap是否小于β且将数据发送至跳跃块596。ALU580亦将数据发送至跳跃块594。同样地,ALU582自q0以及q2接收数据。在计算结果之后,ALU582将数据发送至绝对值组件588,绝对值组件588判定所接收数据的绝对值,并将ap发送至判定组件592。判定组件592判定aq是否小于β且将数据发送至跳跃决598。
ALU600自q0以及p0接收数据、计算结果且将结果发送至绝对值组件606。绝对值组件606判定与所接收数据的绝对值,且将其发送至判定组件612。判定组件612判定所接收的值是否小于α,且将结果发送至与门620。ALU602自p0以及p1接收数据、计算结果且将结果发送至绝对值组件608。绝对值组件608判定所接收数据的绝对值,且将此值发送至判定组件614。判定组件614判定所接收数据是否小于β,且将结果发送至与门620。ALU604自q0以及q1接收数据、计算结果且将结果发送至绝对值组件610。绝对值组件610判定所接收数据的绝对值,且将结果发送至判定组件616。判定组件616判定所接收数据是否小于β,且将结果发送至与门620。另外,与门620自判定组件618接收数据,判定组件618接收bS数据且判定此数据是否不等于零。
图10B为图10A的图的延续。更特定言之,ALU622自p1以及q1接收数据、计算结果且将数据发送至ALU624。ALU624亦自跳跃块646接收数据(经由图10A的ALU580)以及在进制输入端的4位数据。ALU624随后计算结果且将结果发送至移位器626,移位器626将所接收的数据向右移三位。移位器626随后将数据发送至剪辑3(clip3)组件628,clip3组件628亦自跳跃块630接收数据(经由图10D的ALU744,以下更详细描述)。clip3组件628将数据发送至多工器634且发送至”非(NOT)”门632。非门632反转所接收数据,且将反相数据发送至多工器634。多工器634亦在选择输入端接收tc0数据,且将选定数据发送至ALU636。ALU636亦自多工器640接收数据。多工器640自q0以及p0接收数据,且自!left_top接收选择输入。ALU636的进制输入端接收来自多工器642的数据。多工器642接收“1”以及“0”以及!left_top数据。ALU636将结果发送至SAT(0,255)638,SAT(0,255)638将数据发送至跳跃块644(在多工器790处继续,图10E)。
另外,ALU648自q0以及p0接收数据以及在选择输入端接收一位数据,ALU648计算结果且将此数据发送至移位器650。移位器650将所接收的数据向右移一位,且将所移位的数据发送至ALU652。同样地,多工器656自p1以及q1接收数据以及!left_top作为选择输入,多工器656判定结果,且将结果发送至移位器658。移位器658将所接收的数据向左移一位,且将所移位的数据发送至ALU652,ALU652计算结果且将数据发送至ALU662。ALU662亦自多工器660接收数据,多工器660接收q2以及p2以及来自跳跃块680的数据(经由图10E的非门802)。
ALU662计算结果且将此数据发送至移位器664,移位器664将所接收的数据向右移一位,且将所移位的数据发送至剪辑3(clip3)组件668。clip3组件668亦接收tc0,且将数据发送至ALU670。ALU670亦自多工器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),并选择结果将其发送至ALU740。多工器738亦接收“1”以及“0”以及来自跳跃块734的数据(经由图10A的判定块592),并将选定结果发送至ALU740。ALU740计算结果且将数据发送至多工器742。多工器742亦接收“ 1”以及色度边缘标志(chroma edge flag)数据,并选择结果且将其发送至ALU744。ALU744亦接收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便将数据发送至VPU898、900(亦见图2,199)。视指令是否要求动态补偿滤波、纹理快取存储器滤波、互解块滤波及/或绝对差和而定,数据可发送至不同VPU及/或相同VPU的不同部分。在处理了所接收的数据之后,VPU898、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:具有快取存储器子系统的EU集区控制器
120:命令流处理器(CSP)前端
122:3D与状态组件
124:2D前置组件
126:2D先进先出(FIFO)组件
128:CSP后端
123: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:反变换组件
297:回路内滤波器
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~1:存储器缓冲器
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:快取存储器
Claims (10)
1.一种可编程视频处理单元,其特征在于,包含:
一辨识逻辑电路,用以辨识视频数据的格式;
一动态补偿逻辑电路,用以执行一动态补偿操作;
一离散余弦反变换逻辑电路,用以执行一离散余弦反变换操作;以及
一整数转换逻辑电路,用以执行一整数转换操作;
其中该离散余弦反变换逻辑电路与该整数转换逻辑电路根据该辨识逻辑电路的辨识结果分别被关闭。
2.根据权利要求1所述的可编程视频处理单元,其特征在于,该辨识结果为VC-1与H.264格式两者之一时,该离散余弦反变换逻辑电路被关闭;该辨识结果为MPEG-2格式时,该整数逻辑电路被关闭。
3.根据权利要求1所述的可编程视频处理单元,其特征在于,于该辨识结果为VC-1与H.264格式两者之一时,更包含一解块逻辑电路用以执行一回路内滤波操作。
4.根据权利要求1所述的可编程视频处理单元,其特征在于,该辨识结果为MPEG-2格式时,该动态补偿逻辑电路执行于一双通模式下;该辨识结果为VC-1格式时,该动态补偿逻辑电路执行于下列模式其中之一:双线性模式与双立方模式;该辨识结果为H.264格式时,该动态补偿逻辑电路执行于下列模式其中之一:亮度模式与色度模式。
5.一种视频数据处理方法,其特征在于,包含:
接收一指令;
接收选自至少两种格式之一的视频数据;
根据该指令滤波该视频数据;以及
根据该指令转换该视频数据;
其中该指令包含一模式识别栏位用以指示滤波与转换该视频数据的步骤,且滤波与转换的步骤根据该视频数据的格式运作。
6.根据权利要求5所述的视频数据处理方法,其特征在于,滤波该视频数据的步骤包含执行一动态补偿滤波。
7.根据权利要求6所述的视频数据处理方法,其特征在于,该模式识别栏位为MPEG-2格式时,该动态补偿滤波运作于一双通模式下。
8.根据权利要求6所述的视频数据处理方法,其特征在于,该模式指示栏位为VC-1格式1/2准度时,该动态补偿滤波运作于一双线性模式下;该模式指示栏位为VC-1格式1/4准度时,该动态补偿滤波运作于一双立方模式下。
9.根据权利要求6所述的视频数据处理方法,其特征在于,该模式指示栏位为H.264格式四分像素时,该动态补偿滤波运作于一亮度模式下;该模式指示栏位为H.264格式八分像素时,该动态补偿滤波运作于一色度模式下。
10.根据权利要求5所述的视频数据处理方法,其特征在于,该模式识别栏位为MPEG-2格式时,该转换的步骤包含执行一离弦反转换;该模式识别栏位为VC-1与H.264格式其中之一时,该转换的步骤包含执行一整数转换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US81462306P | 2006-06-16 | 2006-06-16 | |
US60/814,623 | 2006-06-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101083764A true CN101083764A (zh) | 2007-12-05 |
CN101083764B CN101083764B (zh) | 2014-04-02 |
Family
ID=38880763
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101103594A Active CN101072351B (zh) | 2006-06-16 | 2007-06-13 | 去方块效应滤波器和视频解码器与图形处理单元 |
CN200710111956.9A Active CN101083764B (zh) | 2006-06-16 | 2007-06-18 | 可编程视频处理单元与视频数据处理方法 |
CN2007101101940A Active CN101068365B (zh) | 2006-06-16 | 2007-06-18 | 判定描述参考方块移动的移动向量的方法及其储存媒体 |
CN2007101119554A Active CN101083763B (zh) | 2006-06-16 | 2007-06-18 | 可编程视频处理单元及视频数据处理方法 |
CN2007101101921A Active CN101068364B (zh) | 2006-06-16 | 2007-06-18 | 视频编码器与图形处理系统 |
CN2007101101936A Active CN101068353B (zh) | 2006-06-16 | 2007-06-18 | 图形处理单元与计算巨图块的绝对差值加总值的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101103594A Active CN101072351B (zh) | 2006-06-16 | 2007-06-13 | 去方块效应滤波器和视频解码器与图形处理单元 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101101940A Active CN101068365B (zh) | 2006-06-16 | 2007-06-18 | 判定描述参考方块移动的移动向量的方法及其储存媒体 |
CN2007101119554A Active CN101083763B (zh) | 2006-06-16 | 2007-06-18 | 可编程视频处理单元及视频数据处理方法 |
CN2007101101921A Active CN101068364B (zh) | 2006-06-16 | 2007-06-18 | 视频编码器与图形处理系统 |
CN2007101101936A Active CN101068353B (zh) | 2006-06-16 | 2007-06-18 | 图形处理单元与计算巨图块的绝对差值加总值的方法 |
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 |
US8705622B2 (en) | 2008-04-10 | 2014-04-22 | Qualcomm Incorporated | Interpolation filter support for sub-pixel resolution in video coding |
US9077971B2 (en) | 2008-04-10 | 2015-07-07 | Qualcomm Incorporated | Interpolation-like filtering of integer-pixel positions 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 | 寰发股份有限公司 | 基于滤波单元的回路滤波方法 |
EP2661879B1 (en) | 2011-01-03 | 2019-07-10 | HFI Innovation Inc. | Method of filter-unit based in-loop filtering |
KR101567467B1 (ko) * | 2011-05-10 | 2015-11-09 | 미디어텍 인크. | 루프내 필터 버퍼의 감소를 위한 방법 및 장치 |
LT3136729T (lt) | 2011-06-28 | 2018-02-12 | Samsung Electronics Co., Ltd. | Vaizdo dekodavimo aparatas su vidine prognoze |
TW201345269A (zh) * | 2012-03-30 | 2013-11-01 | Jvc Kenwood Corp | 影像編碼裝置、影像編碼方法、影像編碼程式、送訊裝置、送訊方法、及送訊程式、以及影像解碼裝置、影像解碼方法、影像解碼程式、收訊裝置、收訊方法、及收訊程式 |
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的图形命令预译码装置 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3578498B2 (ja) * | 1994-12-02 | 2004-10-20 | 株式会社ソニー・コンピュータエンタテインメント | 画像情報処理装置 |
JPH08298642A (ja) * | 1995-02-28 | 1996-11-12 | Daewoo Electron Co Ltd | 対話型情報記録媒体の順次情報表示方法 |
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 | 富士通株式会社 | 動きベクトル探索方法 |
JPH10145753A (ja) * | 1996-11-15 | 1998-05-29 | Sony Corp | 受信装置および方法 |
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 |
JP3757116B2 (ja) * | 1998-12-11 | 2006-03-22 | 松下電器産業株式会社 | デブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法 |
CN1112714C (zh) * | 1998-12-31 | 2003-06-25 | 上海永新彩色显象管有限公司 | 显象管屏清洗设备及方法 |
JP3813444B2 (ja) * | 1999-03-23 | 2006-08-23 | 三洋電機株式会社 | ビデオデコーダ |
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 |
US7336720B2 (en) * | 2002-09-27 | 2008-02-26 | Vanguard Software Solutions, 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 |
FR2849331A1 (fr) * | 2002-12-20 | 2004-06-25 | St Microelectronics Sa | Procede et dispositif de decodage et d'affichage en marche avant acceleree d'images mpeg, circuit pilote video et boitier decodeur incorporant un tel dispositif |
US6922492B2 (en) * | 2002-12-27 | 2005-07-26 | Motorola, Inc. | Video deblocking method and apparatus |
TWI373734B (en) * | 2003-03-17 | 2012-10-01 | Qualcomm Inc | Method and apparatus for improving video quality of low bit-rate video |
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 |
CA2534695C (en) * | 2003-08-19 | 2011-10-25 | Matsushita Electric Industrial Co., Ltd. | 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 | 北京工业大学 | 一种用于视频编码的简单化环路滤波方法 |
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 |
NO320048B1 (no) * | 2004-06-14 | 2005-10-17 | Tandberg Telecom As | Fremgangsmate for chroma de-blokking |
US20060002479A1 (en) * | 2004-06-22 | 2006-01-05 | Fernandes Felix C A | Decoder for H.264/AVC video |
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 TW096122009A patent/TWI348654B/zh active
- 2007-06-15 TW TW096121890A patent/TWI482117B/zh active
- 2007-06-15 TW TW096122000A patent/TWI350109B/zh active
- 2007-06-15 TW TW096122002A patent/TWI383683B/zh active
- 2007-06-15 TW TW096121865A patent/TWI395488B/zh active
- 2007-06-18 CN CN200710111956.9A patent/CN101083764B/zh active Active
- 2007-06-18 CN CN2007101101940A patent/CN101068365B/zh active Active
- 2007-06-18 CN CN2007101119554A patent/CN101083763B/zh active Active
- 2007-06-18 CN CN2007101101921A patent/CN101068364B/zh active Active
- 2007-06-18 CN CN2007101101936A patent/CN101068353B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TW200821986A (en) | 2008-05-16 |
TW200803525A (en) | 2008-01-01 |
TWI348654B (en) | 2011-09-11 |
CN101068353A (zh) | 2007-11-07 |
CN101068365A (zh) | 2007-11-07 |
CN101068365B (zh) | 2010-08-25 |
CN101083763B (zh) | 2012-02-08 |
TWI444047B (zh) | 2014-07-01 |
CN101068353B (zh) | 2010-08-25 |
TWI350109B (en) | 2011-10-01 |
CN101083763A (zh) | 2007-12-05 |
TW200816082A (en) | 2008-04-01 |
TWI395488B (zh) | 2013-05-01 |
TWI383683B (zh) | 2013-01-21 |
CN101072351B (zh) | 2012-11-21 |
CN101072351A (zh) | 2007-11-14 |
TW200816820A (en) | 2008-04-01 |
CN101068364B (zh) | 2010-12-01 |
TW200803527A (en) | 2008-01-01 |
TWI482117B (zh) | 2015-04-21 |
CN101083764B (zh) | 2014-04-02 |
CN101068364A (zh) | 2007-11-07 |
TW200803528A (en) | 2008-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101083763B (zh) | 可编程视频处理单元及视频数据处理方法 | |
Shen et al. | Accelerate video decoding with generic GPU | |
JP4006047B2 (ja) | 画像縮小サンプリング方法 | |
JP4554600B2 (ja) | グラフィックス処理ユニットを使用してビデオ復号化を加速すること | |
US6310921B1 (en) | Media processing apparatus which operates at high efficiency | |
CN102223525B (zh) | 视频解码方法和系统 | |
US8516026B2 (en) | SIMD supporting filtering in a video decoding system | |
US5768429A (en) | Apparatus and method for accelerating digital video decompression by performing operations in parallel | |
JP2001142678A (ja) | 処理コアの操作方法および乗算実行方法 | |
CN107046645A (zh) | 图像编解码方法及装置 | |
CN101164336A (zh) | 影像信息记录装置、影像信息记录方法、影像信息记录程序、以及记录了影像信息记录程序的记录介质 | |
US20140047220A1 (en) | Residual Addition for Video Software Techniques | |
US8503534B2 (en) | Multi-bus architecture for a video codec | |
Qiu et al. | DC coefficient recovery for JPEG images in ubiquitous communication systems | |
CA2192532C (en) | Hybrid software/hardware video decoder for personal computer | |
CN101729893A (zh) | 基于软硬件协同处理的mpeg多格式兼容解码方法及其装置 | |
US20050047502A1 (en) | Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding | |
Wan et al. | AVS video decoding acceleration on ARM Cortex-A with NEON | |
US8873637B2 (en) | Hardware pixel processing pipeline and video processing instructions | |
US8498333B2 (en) | Filtering for VPU | |
Krishnamoorthy et al. | Design and implementation of power efficient image compressor for WSN systems | |
US9204159B2 (en) | VPU with programmable core | |
Zhang et al. | SIMD acceleration for HEVC encoding on DSP | |
CN107454406A (zh) | 基于avs+的vr全景视频直播高速解码方法及系统 | |
US6888892B2 (en) | Method for padding macroblocks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |