CN101310538A - 用于视频解码的硬件运动补偿 - Google Patents
用于视频解码的硬件运动补偿 Download PDFInfo
- Publication number
- CN101310538A CN101310538A CNA2006800427049A CN200680042704A CN101310538A CN 101310538 A CN101310538 A CN 101310538A CN A2006800427049 A CNA2006800427049 A CN A2006800427049A CN 200680042704 A CN200680042704 A CN 200680042704A CN 101310538 A CN101310538 A CN 101310538A
- Authority
- CN
- China
- Prior art keywords
- instruction
- macroblock
- processing unit
- graphics processing
- hardware
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 70
- 238000000034 method Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 108
- 238000004891 communication Methods 0.000 claims description 19
- 230000000007 visual effect Effects 0.000 description 16
- 238000003860 storage Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007620 mathematical function Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Generation (AREA)
- Bus Control (AREA)
Abstract
描述了一种用于高性能硬件运动补偿的直接宏块模式技术。一个实施例包括硬件运动补偿图形显示设备驱动器。更具体的,一个实施例借助于直接产生宏块指令并将其存储在专用缓冲器中,缓解了显示设备驱动器中的宏块数据分析瓶颈。例如,一个实施例包括与用于全部其它硬件运动补偿指令的直接存储器存取指令执行缓冲器相分离的、独立的用于宏块指令的直接存储器存取指令执行缓冲器。描述了其它实施例并要求其权利。
Description
背景技术
国际标准化组织和国际电工技术委员会的运动图像专家组(MPEG)已经研发了MPEG-2标准,其能够以约3-15Mbps的比特率编码标准清晰度电视,以约15-30Mbps的比特率编码高清晰度电视。此外,作为在其前身MPEG-1基础上的提高,MPEG-2增加了多声道环绕声的音频编码。
与其近似的电视对等物相比,MPEG-2编码借助于在传输视频/音频信号之前,在编码器端从视频/音频信号中去除冗余信息,来以更低的比特率工作。随后在解码器端,可以将该冗余信息添加回去。MPEG-2比特率减小方案依赖于具体的时间冗余度以及精神性视觉冗余度,以在观众基本上没有觉察的情况下,减小视频/音频信号的比特率。时间冗余度可以指代并非是独立的、而是与在同一视频帧内的以及在多个视频帧之间的相邻像素相关的像素值。精神性视觉冗余度可以指代对于在观众眼睛的视野边缘和视频拍摄变换周围处的细节、观众眼睛的限制。
附图说明
图1示出了媒体处理系统的一个实施例。
图2示出了媒体处理子系统的一个实施例。
图3示出了硬件运动补偿驱动器的一个实施例。
图4示出了硬件运动补偿驱动器的一个实施例。
图5示出了逻辑流程的一个实施例。
具体实施方式
描述了用于硬件运动补偿(HWMC)的直接宏块驱动器及其方法的各个实施例。例如,一个实施例包括HWMC图形显示设备驱动器及其操作的方法。更具体而言,一个实施例通过直接产生宏块指令并将其存储在专用缓冲器中,来缓解在显示设备驱动器中的宏块数据分析的瓶颈。例如,一个实施例包括与用于全部其它HWMC指令的DMA指令执行缓冲器相分离的、独立的用于宏块指令的DMA指令执行缓冲器。宏块指令的生成以及与其它HWMC指令的分离,还允许更好的利用专用图形处理单元(GPU),来分担通用中央处理单元(CPU)的图形显示设备驱动器的处理器工作负担。
图1示出了系统的一个实施例。图1示出了媒体处理系统100的框图。例如,在一个实施例中,媒体处理系统100可以包括多个节点。按照给定的一组设计参数或性能约束所期望的,节点可以包括用于在媒体处理系统100中处理和/或传输信息的任何物理或逻辑实体,并可以实现为硬件、软件或其任何组合。尽管图1是以特定拓扑结构中有限数量的节点来示出的,但可以理解,媒体处理系统100可以包括按照对于给定实现所预期的、在任何类型的拓扑结构中的更多或更少的节点。实施例不限于该范围。
在各种实施例中,节点可以包括或被实现为:计算机系统、计算机子系统、计算机、应用设备、工作站、终端、服务器、个人计算机(PC)、膝上型电脑、超便携膝上型电脑、手持计算机、个人数字助理(PDA)、电视、数字电视、机顶盒(STB)、电话、移动电话、蜂窝电话、手持设备、无线接入点、基站(BS)、用户站点(SS)、移动用户中心(MSC)、无线网络控制器(RNC)、微处理器、诸如专用集成电路(ASIC)之类的集成电路、可编程逻辑器件(PLD)、诸如通用处理器,数字信号处理器(DSP)和/或网络处理器之类的处理器、接口、输入/输出(I/O)设备(例如键盘、鼠标、显示器、打印机)、路由器、集线器、网关、桥接器、交换机、电路、逻辑门、寄存器、半导体器件、芯片、晶体管,或任何其它器件、机器、工具、器材、部件、或者其组合。实施例不限于该范围。
在各种实施例中,节点可以包括或被实现为软件、软件模块、应用程序、程序、子程序、指令集、计算码、词语、值、符号、或者其组合。可以根据用于命令处理器执行特定功能的预先定义的计算机语言、方式或语法来实现节点。计算机语言的实例可以包括:C、C++、Java、BASIC、Perl、Matlab、Pascal、Visual BASIC、汇编语言、机器码、用于处理器的微代码等等。实施例不限于该范围。
在各种实施例中,媒体处理系统100可以根据一个或多个协议来传输、管理或处理信息。协议可以包括用于管理在节点之间的通信的一组预先定义的规则或指令。协议可以由标准化组织颁布的一个或多个标准来定义,标准化组织例如为:国际电信联盟(ITU)、国际标准化组织(ISO)、国际电工技术委员会(IEC)、电气和电子工程师学会(IEEE)、互联网工程任务组(IETF)、运动图像专家组(MPEG)、等等。例如,所述实施例可以被布置为按照用于媒体处理的标准来运行,所述用于媒体处理的标准例如为:国家电视系统委员会(NTSC)标准、逐行倒相制式(PAL)标准、MPEG-1标准、MPEG-2标准、MPEG-4标准、地面数字视频广播(DVB-T)广播标准、ITU/IEC H.263标准,其是用于低比特率通信的视频编码,2000年11月公布的ITU-T推荐的H.263v3、和/或ITU/IEC H.264标准,其是用于超低比特率通信的视频编码,2003年5月公布的ITU-T推荐的H.264、等等。实施例不限于该范围。
在各种实施例中,媒体处理系统100的节点可以被布置为传输、管理或处理不同类型的信息,例如媒体信息和控制信息。媒体信息的实例通常可以包括表示对于用户有意义的内容的任何数据,例如语音信息、视频信息、音频信息、图像信息、文本信息、数字信息、字母数字符号、图形、等等。控制信息可以指的是表示对于自动化系统有意义的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统发送媒体信息,以创建在设备之间的连接、命令节点以预定方式处理媒体信息、等等。实施例不限于该范围。
在不同实施例中,媒体处理系统100可以实现为有线通信系统、无线通信系统、或二者的组合。尽管媒体处理系统100可以被示出为使用作为实例的某种特定通信介质,但可以理解,在此论述的原理和技术可以用任何类型的通信介质及其相关技术来实现。实施例不限于该范围。
例如,当实现为有线系统时,媒体处理系统100可以包括被布置为通过一种或多种有线通信介质传输信息的一个或多个节点。有线通信介质的实例可以包括:电线、电缆、印刷电路板(PCB)、底板、交换结构(switchfabric)、半导体材料、双绞线、同轴电缆、光纤、等等。有线通信介质可以用输入/输出(I/O)适配器连接到节点。I/O适配器可以被布置为以任何适合的技术运行,以便用期望的一组通信协议、服务或操作过程来控制在节点之间的信息信号。I/O适配器还可以包括适当的物理连接器,以将I/O适配器与相应的通信介质相连接。I/O适配器的实例可以包括:网络接口、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器、等等。实施例不限于该范围。
例如,当实现为无线系统时,媒体处理系统100可以包括被布置为通过一个或多个类型的无线通信介质传输信息的一个或多个无线节点。无线通信介质的实例可以包括无线频谱的多个部分,例如通常的RF频谱,尤其是超高频(UHF)频谱。无线节点可以包括适于通过指定的无线频谱传输信息信号的部件和接口,例如一个或多个天线、无线发射器/接收器(“收发器”)、放大器、滤波器、控制逻辑、天线、等等。实施例不限于该范围。
在各种实施例中,媒体处理系统100可以包括一个或多个媒体源节点102-1-n。媒体源节点102-1-n可以包括能够向媒体处理节点106发出或传递媒体信息和/或控制信息的任何媒体源。更具体的,媒体源节点102-1-n可以包括能够向媒体处理节点106发出或传递数字音频和/或视频(AV)信号的任何媒体源。媒体源节点102-1-n的实例可以包括能够存储和/或传递媒体信息的任何硬件或软件元件,例如数字多用途光盘(DVD)设备、家用录像系统(VHS)设备、数字VHS设备、个人录像机、计算机、游戏控制台、光盘(CD)播放器、计算机可读或机器可读存储器、数码相机、便携式摄像机、视频监视系统、电话会议系统、电话系统、医学和测量仪器、扫描器系统、复印机系统等。媒体源节点102-1-n的其它实例可以包括媒体发布系统,用于向媒体处理节点106提供广播或流式的模拟或数字AV信号。媒体发布系统的实例可以包括:例如无线(OTA)广播系统、地面有线电视系统(CATV)、卫星广播系统、等等。值得注意的是,媒体源节点102-1-n可以在媒体处理节点106的内部或外部,这取决于给定的实现。实施例不限于该范围。
在各种实施例中,从媒体源节点102-1-n所接收的输入的视频信号可以具有固有的格式,有时指的是视觉分辨率格式。视觉分辨率格式的实例包括:数字电视(DTV)格式、高清晰度电视(HDTV)、逐行扫描格式、计算机显示格式、等等。例如,可以用范围在每帧480可见行到每帧1080可见行之间的垂直分辨率格式和范围在每行640可见像素到每行1920可见像素之间的水平分辨率格式来对媒体信息进行编码。例如,在一个实施例中,媒体信息可以被编码为HDTV视频信号,具有720逐行扫描(720p)的视觉分辨率格式,其指的是1280个水平像素和720个垂直像素(1280×720),或者1080隔行扫描(1080i),其指的是1920个水平像素和1080个垂直像素。在另一个实例中,媒体信息可以具有与不同计算机显示格式相对应的视觉分辨率格式,例如视频图形阵列(VGA)格式分辨率(640×480)、扩展图形阵列(XGA)格式分辨率(1024×768)、超级XGA(SXGA)格式分辨率(1280×1024)、超高XGA(UXGA)格式分辨率(1600×1200)等。实施例不限于该范围。
在不同实施例中,媒体处理系统100可以包括媒体处理节点106,通过一个或多个通信介质104-1-m连接到媒体源节点102-1-n。媒体处理节点106可以包括如前所述的任何节点,其被布置为处理从媒体源节点102-1-n所接收的媒体信息。在各种实施例中,媒体处理节点106可以包括或被实现为一个或多个媒体处理设备,其包括:处理系统、处理子系统、处理器、计算机、器件、编码器、解码器、编码器/解码器(CODEC)、滤波器件(例如图形缩放器件、解块滤波器件)、变换器件、娱乐系统、显示器或任何其它处理结构。实施例不限于该范围。
在各种实施例中,媒体处理节点106可以包括媒体处理子系统108。媒体处理子系统108可以包括:处理器、存储器以及应用硬件和/或软件,其被布置为处理从媒体源节点102-1-n所接收的媒体信息。例如,媒体处理子系统108可以被布置为处理MPEG-2压缩的音频和/或视频信号,并执行如以下详述的其它媒体处理操作。媒体处理子系统108可以向显示器110输出处理过的媒体信息。实施例不限于该范围。
在各种实施例中,媒体处理节点106可以包括显示器110。显示器110可以是能够显示从媒体源节点102-1-n所接收的媒体信息的任何显示器。显示器110可以以给定格式分辨率显示媒体信息。例如,显示器110可以在具有VGA格式分辨率、XGA格式分辨率、SXGA格式分辨率、UXGA格式分辨率等的显示器上显示媒体信息。例如,在另一实施例中,媒体信息可以被编码为HDTV视频信号,具有720逐行扫描(720p)的视觉分辨率格式,其指的是720个垂直像素和1280个水平像素(720×1280)。在再另一个实施例中,媒体信息可以被编码为HDTV视频信号,具有1080隔行扫描(1080i)的视觉分辨率格式,其指的是1080个垂直像素和1920个水平像素(1080×1920)。显示器的类型和格式分辨率可以根据给定的一组设计或性能约束而变化,并且实施例不限于该范围。
在通常的操作中,媒体处理节点106可以从一个或多个媒体源节点102-1-n接收媒体信息。例如,媒体处理节点106可以从被实现为DVD播放器的媒体源节点102-1接收媒体信息,该DVD播放器与媒体处理节点106集成在一起。媒体处理子系统108可以从DVD播放器得到媒体信息,将媒体信息由视觉分辨率格式转换为显示器110的显示分辨率格式,并用显示器110再现媒体信息。
在各种实施例中,媒体处理节点106可以被布置为从一个或多个媒体源节点102-1-n接收输入图像。输入图像可以包括从一个或多个视频图像导出或与之相关的任何数据或媒体信息。在各种实施例中,输入图像可以包括以下一种或多种:图像数据、视频数据、视频序列、画面组、画面、图像、区域、对象、帧、切片、宏块、块、像素、信号、等等。分配给像素的值可以包括实数和/或整数。
在不同实施例中,媒体处理节点106可以被布置为用作用于MPEG-2压缩的音频和/或视频(AV)信号的图形显示设备驱动器。更具体的,一个实施例的媒体处理节点可以通过直接产生宏块指令并将其存储在专用缓冲器中,来缓解基于硬件的运动补偿帧间预测(HWMC)图形显示设备驱动器的宏块数据分析瓶颈。例如,一个实施例包括与用于全部其它HWMC指令的DMA指令执行缓冲器相分离的、独立的用于宏块指令的DMA指令执行缓冲器。宏块指令的生成以及与其它HWMC指令的分离,还允许更好的利用专用图形处理单元(GPU),来分担图形显示设备驱动器的处理器工作负担。
例如,在一个实施例中,媒体处理节点106的媒体处理子系统108可以被布置为包括与用于全部其它HWMC指令的DMA指令执行缓冲器相分离的、独立的用于宏块指令的DMA指令执行缓冲器。宏块指令的生成以及与其它HWMC指令的分离还允许更多的利用GPU,来分担图形显示设备驱动器处理器工作量。媒体处理子系统108可以利用一个或多个预定义或预定的数学函数来控制HWMC指令(例如,产生、通路、序列化和/或缓冲)和输出(例如到显示器110),以改进媒体处理系统100的性能。可以参考图2来更详细说明总体上的媒体处理系统100,具体而言是媒体处理子系统108。
图2示出了媒体处理子系统108的一个实施例。图2示出了媒体处理子系统108的框图,其适用于参考图1所述的媒体处理节点106。然而实施例不限于图2中给定的实例。
如图2所示,媒体处理子系统108可以包括多个元件。按照给定的一组设计或性能约束所期望的,一个或多个元件可以用一个或多个电路、部件、寄存器、处理器、软件子程序、模块或其任何组合来实现。尽管作为实例,图2示出了采用特定拓扑结构的有限数量的元件,但可以理解,按照给定实现所期望的,在媒体处理子系统108中可以使用采用任何适合拓扑结构的更多或更少的元件。实施例不限于该范围。
在各种实施例中,媒体处理子系统108可以包括处理器202。处理器202可以用任何处理器或逻辑器件来实现,例如复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现多个指令集的组合的处理器、或其它处理器器件。例如,在一个实施例中,处理器202可以实现为通用处理器,例如由加利福尼亚Santa Clara的Intel公司所生产的处理器。处理器202还可以实现为专用处理器,例如控制器、微控制器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、媒体处理器、输入/输出(I/O)处理器、介质访问控制(MAC)处理器、无线基带处理器、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)等。实施例不限于该范围。
在一个实施例中,媒体处理子系统108可以包括耦合到处理器202上的存储器204。按照给定实现所期望的,存储器204可以经由通信总线214或通过在处理器202与存储器204之间的专用通信总线耦合到处理器202。存储器204可以采用能够存储数据的任何机器可读或计算机可读介质来实现,其包括易失性和非易失性存储器。例如存储器204可以包括:只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快擦式存储器(flash memory)、聚合物存储器,例如铁电聚合物存储器、双向存储器(ovonic memory)、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡,或适于存储信息的任何其它类型的介质。值得注意的是,存储器204的某些部分或者全部可以与处理器202包含在同一集成电路中,或者可替换地,存储器204的某些部分或者全部可以置于在处理器202的集成电路外部的集成电路或其它介质上,例如硬盘驱动器。实施例不限于该范围。
在各种实施例中,媒体处理子系统108可以包括收发器206。收发器206可以是被布置为按照所期望的无线协议运行的任何无线发射器和/或接收器。适合的无线协议的实例可以包括各种无线局域网(WLAN)协议,包括IEEE 802.xx系列协议,例如IEEE 802.11a/b/g/n、IEEE 802.16、IEEE 802.20等等。无线协议的其它实例可以包括各种无线广域网(WWAN)协议,例如,采用通用分组无线业务(GPRS)的全球移动通信系统(GSM)蜂窝无线电话系统协议、采用1xRTT的码分多址(CDMA)蜂窝无线电话通信系统、全球增强型数据提升率(EDGE)系统、等等。无线协议的其他实例可以包括无线个域网(PAN)协议,例如红外协议,其是来自蓝牙技术联盟(SIG)的协议系列的一种协议,该协议系列包括蓝牙规范版本v1.0、v1.1、v1.2、v2.0、具有增强型数据速率(EDR)的v2.0,以及一个或多个蓝牙协议子集(Bluetoothprofile)(在此共同称为“蓝牙规范”)、等等。其它适合的协议可以包括:超宽带(UWB)、数字办公室(DO)、数字家庭、可信平台模块(TPM)、ZigBee、及其它协议。实施例不限于该范围。
在各种实施例中,媒体处理子系统108可以包括一个或多个模块。按照给定的一组设计或性能约束所期望的,所述模块可以包括或实现为一个或多个系统、子系统、处理器、器件、机器、工具、部件、电路、寄存器、应用程序、程序、子程序、或者其任何组合。实施例不限于该范围。
例如,在一个实施例中,媒体处理子系统108可以包括HWMC模块208。HWMC模块208可以根据预定数学函数或算法,用于为GPU协调指令的产生、通路、序列化和/或缓冲,来处理如上介绍的MPEG-2压缩的AV信号。例如,预定数学函数或算法可以存储在任何适合的存储设备中,例如存储器204、大容量存储装置210、以硬件实现的查询表(LUT)216、等等。可以理解,HWMC模块208可以实现为由处理器202执行的软件、专用硬件,或二者的组合。实施例不限于该范围。
在各种实施例中,媒体处理子系统108可以包括大容量存储设备210。大容量存储设备210的实例可以包括:硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或盘片、各类DVD设备、磁带设备、盒式磁带设备、等等。实施例不限于该范围。
在各种实施例中,媒体处理子系统108可以包括一个或多个I/O适配器212。I/O适配器212的实例可以包括:通用串行总线(USB)端口/适配器、IEEE1394火线端口/适配器、等等。实施例不限于该范围。
在通常操作中,媒体处理子系统108可以从一个或多个媒体源节点102-1-n接收媒体信息。例如,媒体源节点102-1可以包括连接到处理器202上的DVD设备。可替换地,媒体源102-2可以包括存储器204,其存储数字AV文件,例如以运动图像专家组(MPEG)编码的AV文件。HWMC模块208可以用于从大容量存储设备216和/或存储器204接收媒体信息,处理媒体信息(例如通过处理器202),并在存储器204、处理器202的高速缓存或其组合上存储或缓冲媒体信息。参考由图3和4及图5的逻辑流程所示的HWMC驱动器,可以理解HWMC模块208的操作。
图3示出了HWMC驱动器300。通常,对于MPEG-2AV信号而言,当前画面可以基于帧内离散余弦变换(DCT)编码系数和运动补偿帧间预测,从先前画面转换得到。运动补偿帧间预测是逐个像素的渲染处理,其耗费时间和处理器资源。例如,在MPEG-2视频编解码处理中,运动补偿帧间预测可能占用约30%的总处理工作负担。
HWMC驱动器300可以包括或有权访问GPU 350。GPU例如是由加利福尼亚Santa Clara的Intel公司生产的图形芯片组的一部分,其可以具有基于硬件的运动补偿帧间预测的能力。HWMC是一种可以使GPU 350减小处理器202的运动补偿帧间预测工作负担。这样,HWMC技术可以通过与处理器202并行工作,来提高解码性能,例如或者是通过增加对于给定处理器202使用量的每秒帧数,或者是通过减少对于给定每秒帧数的处理器202使用量。
对HWMC驱动器300的输入包括DCT系数数据阵列和宏块参数数据阵列。宏块参数由宏块类型、运动类型、运动矢量及其它宏块参数组合而成,其全部都对渲染目标画面像素的GPU 350有影响。HWMC驱动器300为AV编解码器305提供存储缓冲器,以逐个地写入宏块参数。HWMC驱动器300还为视频编解码器305提供DCT原始数据缓冲器,以写入DCT数据。例如,DCT数据可以包括一个画面的全部或者一部分,这取决于用户想要解码一部分还是整体。在AV编解码器305完成将宏块数据和DCT数据存储在缓冲器中之后,可以向GPU 350发出请求来开始HWMC处理。这样,例如,处理器202被释放来解码下一画面或处理其它工作。
对于HWMC驱动器300而言,重要的是,注意在DCT数据和宏块数据之间的区别。例如,DCT原始数据是标准,并可以被GPU 350直接使用,而无需考虑HWMC硬件实现。与此相反,宏块数据包含用于控制运动补偿的全部参数,对于它来说,不同的HWMC硬件实现可能会具有不同的指令。因此,宏块数据可以被HWMC驱动器300分析,以产生相对的依赖于硬件的运动补偿指令或随后可以由GPU 350所处理的其它低级别表示。
更具体的,对于HWMC驱动器300而言,AV编解码器305将宏块和DCT数据存储到由HWMC驱动器300提供的数据缓冲器中。核空间中的宏块数据缓冲器325可以映射到用户空间中的宏块数据缓冲器320,并且随着其在用户空间中的运行,AV编解码器305可以由此将宏块数据存储到用户空间中的宏块数据缓冲器320中,以避免存储器复制。如所指出的,与DCT数据不同,宏块数据由HWMC驱动器300在独立于平台的结构中定义。因此,HWMC驱动器300通过从宏块数据缓冲器325读取每一个宏块数据,可以分析宏块参数,来为GPU 350产生硬件宏块指令335(例如,在指令生成器330中)。例如,硬件宏块指令335可以包括运动矢量和其它运动补偿参数。指令生成器330还产生其它HWMC指令340,其可以包括例如与硬件结构、HWMC状态管理、帧设置和缓冲器管理相关的指令。随后,将硬件宏块指令335及其它HWMC指令340写入到GPU直接存储器存取(DMA)指令执行缓冲器,用于GPU 350读取和执行。
例如,对于1080i HD画面(隔行扫描的1920×1080视觉分辨率格式)而言,宏块数据的大小约为200千字节。如所指出的,视频编解码器305将宏块数据存储到宏块数据缓冲器325中,其映射到用户空间中的宏块数据缓冲器320中。随后,HWMC驱动器300分析来自宏块数据缓冲器325的宏块数据,指令生成器330在GPU DMA指令执行缓冲器345中产生用于由GPU 350执行的指令(例如,硬件宏块指令335和其它HWDMC指令340)生成。然而,借助于指令生成器330的硬件宏块指令335产生,会占用高达约95%的用于HWMC驱动器300的处理器202使用量。这样,硬件宏块指令335的产生会是HWMC驱动器300的性能阻碍特征或“瓶颈”。
此外,对于HWMC驱动器300而言,不能对用户直接共享GPU DMA指令执行缓冲器345,因为HWMC驱动器300的处理可能会被其它图形操作打断。在此情况下,如果DMA指令执行缓冲器345被锁定,则其它图形操作会被阻碍,这就有可能损害媒体处理系统100或其子系统。
图4示出了一个实施例的HWMC驱动器400。如相对于图3所指出的,借助于指令生成器330的硬件宏块指令335产生,会是HWMC驱动器300的性能阻碍特征或“瓶颈”。HWMC驱动器400包括用于缓解HWMC驱动器300的宏块数据分析和宏块指令335产生的瓶颈的各种特征。
例如,HWMC驱动器400包括独立的GPUDMA指令缓冲器,用于独立于GPU DMA指令执行缓冲器345的宏块指令420。因此,用于宏块指令420的GPU DMA指令缓冲器存储硬件宏块指令335,而GPU DMA指令执行缓冲器345存储其它HWMC指令340。此外,用于宏块指令420的GPU DMA指令缓冲器可以映射到用户空间中,作为宏块数据缓冲器320。
在一个实施例中,GPU 350能够进行硬件指令批量缓冲器执行。因此,GPU 350可以执行存储在GPU DMA指令执行缓冲器345中的其它HWMC指令340,跳转到存储在用于宏块指令420的GPU DMA指令缓冲器中的硬件宏块指令335,并批量执行它们,随后当完成时返回到其它HWMC指令340。
此外,HWMC驱动器400包括从AV编解码器305到HWMC用户库315的添加宏块410的函数调用,用于HWMC用户库315接受AV编解码器305的关于宏块数据/参数的输入。在一个实施例中,HWMC用户库315可以在不使用指令生成器330的情况下,直接产生硬件宏块指令335。随后,可以将硬件宏块指令335可以在用户空间中的宏块数据缓冲器320与用于宏块指令420的GPU DMA指令执行缓冲器之间进行映射。这样,HWMC驱动器400可以缓解HWMC驱动器300的瓶颈(例如,指令生成器330产生硬件宏块指令335及其它HWMC指令340)。换句话说,当HWMC驱动器400在HWMC用户库315中产生硬件宏块指令335并将其存储到用于宏块指令420的GPU DMA指令执行缓冲器中时,HWMC驱动器400可以仅配置GPU 350按照批量缓冲器指令执行来执行硬件宏块指令335。随后,例如像函数调用,一旦GPU 350按照批量缓冲器指令执行而执行了硬件宏块指令335,则其可以返回到存储在GPU DMA指令执行缓冲器345中的其他HWMC指令340。
另外,与用户对宏块数据缓冲器325进行写入相比,借助于添加宏块410的函数调用将宏块指令335映射到用户空间(例如,到宏块数据缓冲器320),还可以提供更为便利和对用户友好的接口。此外,由于实施例的HWMC用户库315可以提供应用程序编程接口(API),因此AV编解码器305可以更容易地从软件运动补偿变为硬件运动补偿。再进一步,与其它HWMC指令340相比,硬件宏块指令335是更面向数据的。结果,与HWMC驱动器300的方案相比,产生硬件宏块指令335的HWMC用户库315可以更易于调试和维护。最后,如果希望的话,产生硬件宏块指令335的HWMC用户库315可以使硬件宏块指令335的格式对用户公开,而无需公开HWMC驱动器400的更多细节。
在一个实施例中,与HWMC驱动器300相比,HWMC驱动器400展示了性能提高。例如,对于MPEG-21080i AV流而言,如在Intel GMCH 82854SunsetValley开发部门所测试的,HWMC驱动器400展示了超过50%的性能提高。更具体的,与HWMC驱动器300相比,在不增加例如处理器202上的负担的情况下,与每秒15帧相比,实施例的HWMC驱动器400具有每秒24帧的能力。
图5示出了一个实施例的逻辑流程。例如,一旦AV编解码器305接收到宏块和DCT数据,则在510中,利用一个函数调用将该宏块数据添加到HWMC用户库315中。在520中,HWMC用户库315产生硬件宏块指令335,在530中,将该硬件宏块指令335存储到宏块数据缓冲器320中。此后,在540中,将存储在宏块数据缓冲器320中的硬件宏块指令335映射到用于宏块指令420的GPU DMA指令执行缓冲器,GPU可以在550中从该缓冲器执行硬件宏块指令335。
在此已阐明了许多具体细节,以提供对各个实施例的全面理解。然而,本领域技术人员会理解,在没有这些具体细节的情况下也能够实践各个实施例。在其它例子中,没有详细描述公知的操作、部件和电路,以便不会混淆对实施例的理解。可以理解的是,在此公开的具体结构和功能细节可以是代表性的,并非必然限制实施例的范围。
还值得注意的是,对“一个实施例”或“实施例”的提及意思是指联系该实施例所描述的特定特征、结构或特性包括在至少一个实施例中。短语“在一个实施例中”在说明书中不同位置的出现并非必然全部指的是同一实施例。
一些实施例可以采用可根据任何数量的因素而改变的结构来实现,所述因素例如:期望的计算速率、功率等级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其它性能约束。例如,实施例可以用由通用或专用处理器所执行的软件来实现。在另一个实例中,实施例可以实现为专用硬件。在再另一个实例中,实施例可以以编程的通用计算机部件和定制的硬件部件的任何组合来实现。实施例不限于该范围。
可以用一个或多个硬件元件来实现各种实施例。通常,硬件元件可以指的是任何被布置为执行特定操作的硬件结构。例如,在一个实施例中,硬件元件可以包括在衬底上制造的任何模拟或数字电气或电子元件。可以用基于硅的集成电路(IC)技术来执行该制造,例如诸如互补金属氧化物半导体(CMOS)、双极和双极CMOS(BiCMOS)之类的技术。硬件元件的实例可以包括:处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。实施例不限于该范围。
可以用一个或多个软件元件来实现各种实施例。通常,软件元件可以指的是被布置为执行特定操作的任何软件结构。例如,在一个实施例中,软件元件可以包括适于由硬件元件(例如处理器)执行的程序指令和/或数据。程序指令可以包括对于命令的组织列表,其中,命令包括以预定语法排列的字、数值或符号,当其被执行时,可以使处理器执行一组相应的操作。软件可以用编程语言来编写或编码。编程语言的实例可以包括:C、C++、BASIC、Perl、Matlab、Visual BASIC、JAVA、ActiveX、汇编语言、机器码等。可以用任何类型的计算机可读介质或机器可读介质来存储软件。而且,软件可以作为源代码或目标代码而存储在介质上。软件还可以作为压缩的和/或加密的数据而存储在介质上。软件的实例可以包括:任何软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、函数、方法、过程、软件接口、应用程序编程接口(API)、指令集、计算码、计算机代码、代码段、计算机代码段、字、数值、符号、或其任何组合。实施例不限于该范围。
可以用“耦合”和“连接”连同它们的派生词来描述一些实施例。应理解的是,这些术语不是意图作为彼此的同义词的。例如,一些实施例可以用术语“连接”来描述,以指明两个或更多的元件彼此直接物理或电气接触。在另一个实例中,一些实施例可以用术语“耦合”来描述,以指明两个或更多的元件是直接物理或电气接触的。然而,术语“耦合”还可以意味着两个或更多的元件彼此没有直接接触,但仍共同操作或彼此相互作用。实施例不限于该范围。
例如,一些实施例可以用机器可读介质或产品来实现,所述机器可读介质或产品可以存储一个指令或一组指令,所述一个指令或一组指令如果由机器执行,可以使得机器执行根据这些实施例的方法和/或操作。这种机器可以包括例如任何适合的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等等,并可以用硬件和/或软件的任意合适组合来实现。所述机器可读介质或产品可以包括例如任何适宜类型的存储器单元、存储器设备、存储器产品、存储器介质、存储设备、存储产品、存储介质和/或存储单元,例如存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写入或可再写入介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘,磁介质,磁光介质,可移动存储卡或盘,各种数字多用途光盘(DVD)、磁带、盒式磁带、等等。所述指令可以包括任何适宜类型的代码,例如源代码、已编译的代码、已解释的代码、可执行代码、静态代码、动态代码、等等。所述指令可以用任何适合的高级、低级、面向对象的、可视化(visual)、编译的和/或解释的编程语言来实现,例如C、C++、Java、BASIC、Perl、Matlab、Pascal、Visual BASIC、汇编语言、机器代码等。实施例不限于该范围。
除非特别表明不同意思,可以理解的是,诸如“处理”、“计算”、“运算”,“判断”等之类的术语指的是计算机或计算系统,或类似的电子计算设备的动作和/或处理,所述计算机或计算系统,或类似的电子计算设备将被表示为在计算系统的寄存器和/或存储器内的物理量(例如电子的)的数据,处理和/或变换为被类似地表示为在计算系统的存储器、寄存器或其它这种信息存储、传输或显示设备内的物理量的其它数据。实施例不限于该范围。
尽管已经如在此所述的说明了实施例的特定特征,但本领域技术人员会想到许多变型、替换、变化及等价物。因此应理解所附权利要求意图覆盖在实施例的真实精神内的全部这种变型和变化。
Claims (20)
1、一种设备,包括媒体处理节点,用于为图形处理单元产生用于宏块指令的直接存储器存取指令执行缓冲器和用于其它硬件运动补偿指令的直接存储器存取指令执行缓冲器。
2、如权利要求1所述的设备,所述媒体处理节点包括硬件运动补偿模块,所述硬件运动补偿模块将宏块数据添加到硬件运动补偿用户库中,并且借助于所述硬件运动补偿用户库为所述图形处理单元产生硬件宏块指令。
3、如权利要求2所述的设备,所述硬件运动补偿模块还将用于所述图形处理单元的所述硬件宏块指令存储到宏块数据缓冲器中,并将所述宏块数据缓冲器中用于所述图形处理单元的所述硬件宏块指令映射到所述的用于所述图形处理单元的宏块指令的直接存储器存取指令执行缓冲器。
4、如权利要求3所述的设备,所述硬件运动补偿模块还借助于所述图形处理单元,执行从所述的用于所述图形处理单元的宏块指令的直接存储器存取指令执行缓冲器而来的所述硬件宏块指令。
5、如权利要求4所述的设备,所述硬件运动补偿模块还借助于所述图形处理单元,执行从所述的用于所述图形处理单元的其它硬件运动补偿指令的直接存储器存取指令执行缓冲器而来的另一硬件运动补偿指令。
6、一种系统,包括:
通信介质;以及
媒体处理节点,用于为图形处理单元产生用于宏块指令的直接存储器存取指令执行缓冲器和用于其它硬件运动补偿指令的直接存储器存取指令执行缓冲器。
7、如权利要求6所述的系统,所述媒体处理节点包括硬件运动补偿模块,所述硬件运动补偿模块将宏块数据添加到硬件运动补偿用户库中,并借助于所述硬件运动补偿用户库为所述图形处理单元产生硬件宏块指令。
8、如权利要求7所述的系统,所述硬件运动补偿模块还将用于所述图形处理单元的所述硬件宏块指令存储到宏块数据缓冲器中,并将所述宏块数据缓冲器中用于所述图形处理单元的所述硬件宏块指令映射到所述的用于所述图形处理单元的宏块指令的直接存储器存取指令执行缓冲器。
9、如权利要求8所述的系统,所述硬件运动补偿模块还借助于所述图形处理单元执行从所述的用于所述图形处理单元的宏块指令的直接存储器存取指令执行缓冲器而来的所述硬件宏块指令。
10、如权利要求9所述的系统,所述硬件运动补偿模块还借助于所述图形处理单元执行从所述的用于所述图形处理单元的其它硬件运动补偿指令的直接存储器存取指令执行缓冲器而来的另一硬件运动补偿指令。
11、一种方法,包括:
将宏块数据添加到硬件运动补偿用户库;并且借助于所述硬件运动补偿用户库为图形处理单元产生硬件宏块指令。
12、如权利要求11所述的方法,还包括将用于所述图形处理单元的所述硬件宏块指令存储到宏块数据缓冲器中。
13、如权利要求12所述的方法,还包括将所述宏块数据缓冲器中用于所述图形处理单元的所述硬件宏块指令映射到图形处理单元直接存储器存取指令执行缓冲器。
14、如权利要求13所述的方法,还包括借助于所述图形处理单元,执行来自所述图形处理单元直接存储器存取指令执行缓冲器的所述硬件宏块指令。
15、如权利要求14所述的方法,还包括借助于所述图形处理单元执行来自另一图形处理单元直接存储器存取指令执行缓冲器的另一硬件运动补偿指令。
16、一种产品,包括机器可读存储介质,其包含指令,如果执行所述指令,使系统能够将宏块数据添加到硬件运动补偿用户库,并借助于所述硬件运动补偿用户库为图形处理单元产生硬件宏块指令。
17、如权利要求16所述的产品,还包括指令,如果执行所述指令,则使所述系统能够将用于所述图形处理单元的所述硬件宏块指令存储到宏块数据缓冲器中。
18、如权利要求17所述的产品,还包括指令,如果执行所述指令,则使所述系统能够将所述宏块数据缓冲器中用于所述图形处理单元的所述硬件宏块指令映射到图形处理单元直接存储器存取指令执行缓冲器。
19、如权利要求18所述的产品,还包括指令,如果执行所述指令,则使所述系统能够借助于所述图形处理单元执行来自所述图形处理单元直接存储器存取指令执行缓冲器的所述硬件宏块指令。
20、如权利要求19所述的产品,还包括指令,如果执行所述指令,则使所述系统能够借助于所述图形处理单元执行来自另一图形处理单元直接存储器存取指令执行缓冲器的另一硬件运动补偿指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/323,173 | 2005-12-30 | ||
US11/323,173 US8249140B2 (en) | 2005-12-30 | 2005-12-30 | Direct macroblock mode techniques for high performance hardware motion compensation |
PCT/US2006/048046 WO2007078888A1 (en) | 2005-12-30 | 2006-12-14 | Hardware motion compensation for video decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101310538A true CN101310538A (zh) | 2008-11-19 |
CN101310538B CN101310538B (zh) | 2013-07-10 |
Family
ID=37964117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800427049A Expired - Fee Related CN101310538B (zh) | 2005-12-30 | 2006-12-14 | 用于视频解码的硬件运动补偿 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8249140B2 (zh) |
EP (1) | EP1967009A1 (zh) |
JP (1) | JP2009522650A (zh) |
CN (1) | CN101310538B (zh) |
TW (1) | TWI353184B (zh) |
WO (1) | WO2007078888A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404576A (zh) * | 2011-11-30 | 2012-04-04 | 国云科技股份有限公司 | 云终端解码器及其负载均衡算法和gpu的解码算法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8249140B2 (en) | 2005-12-30 | 2012-08-21 | Intel Corporation | Direct macroblock mode techniques for high performance hardware motion compensation |
JP4691062B2 (ja) * | 2007-03-30 | 2011-06-01 | 株式会社東芝 | 情報処理装置 |
US9648325B2 (en) * | 2007-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Video decoding implementations for a graphics processing unit |
CA2842886C (en) * | 2011-08-17 | 2020-08-25 | Telefonaktiebolaget L M Ericsson (Publ) | Mechanism of dynamic signaling of encoder capabilities |
US8570318B2 (en) * | 2011-08-25 | 2013-10-29 | Intel Corporation | Collaborative graphics rendering using mobile devices to support remote display |
TWI554093B (zh) * | 2013-09-12 | 2016-10-11 | 鴻海精密工業股份有限公司 | 電子裝置 |
KR102366519B1 (ko) * | 2015-01-14 | 2022-02-23 | 한화테크윈 주식회사 | 범용 그래픽 프로세서에서의 모션 보상의 병렬화 방법 및 장치 |
US12058309B2 (en) | 2018-07-08 | 2024-08-06 | Mellanox Technologies, Ltd. | Application accelerator |
US20230107012A1 (en) * | 2021-10-05 | 2023-04-06 | Mellanox Technologies, Ltd. | Hardware accelerated video encoding |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0847204A2 (en) * | 1996-12-03 | 1998-06-10 | STMicroelectronics, Inc. | A multi-standard video decompression device |
US5774206A (en) * | 1995-05-10 | 1998-06-30 | Cagent Technologies, Inc. | Process for controlling an MPEG decoder |
EP1009170A2 (en) * | 1998-12-08 | 2000-06-14 | STMicroelectronics, Inc. | System, method and apparatus for a variable output video decoder |
EP0797200B1 (en) * | 1996-03-22 | 2001-11-14 | Pioneer Electronic Corporation | Information record medium, apparatus for recording the same and apparatus for reproducing the same |
US20030005262A1 (en) * | 2001-06-28 | 2003-01-02 | Sailesh Kottapalli | Mechanism for providing high instruction fetch bandwidth in a multi-threaded processor |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3477616D1 (en) | 1983-09-12 | 1989-05-11 | Motorola Inc | Prefetch validation |
JPH0421151A (ja) | 1990-05-16 | 1992-01-24 | Fujitsu Ltd | 画面入出力処理方式 |
JPH06131194A (ja) | 1992-10-22 | 1994-05-13 | Hitachi Ltd | 計算機システムおよび計算機ネットワークシステム |
JPH10260832A (ja) | 1997-03-18 | 1998-09-29 | Hitachi Ltd | 情報処理装置 |
JPH11298857A (ja) | 1998-02-13 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 記憶装置において多くの領域を占めているフレ―ム領域に他の用途を与えるよう画像復号を行う画像復号装置及び画像復号プログラムを記録したコンピュ―タ読取可能な記録媒体 |
JP3327900B2 (ja) | 1999-07-12 | 2002-09-24 | 松下電器産業株式会社 | データ処理装置 |
JP2002027483A (ja) | 2000-07-11 | 2002-01-25 | Hitachi Ltd | 画像符号化装置、画像復号化装置および記憶媒体 |
US7885336B2 (en) * | 2001-02-05 | 2011-02-08 | Ati Technologies Ulc | Programmable shader-based motion compensation apparatus and method |
EP1445957A4 (en) | 2001-11-16 | 2009-05-06 | Ntt Docomo Inc | IMAGE ENCODING METHOD, IMAGE DECODING METHOD, ENCODER AND IMAGE DECODER, PROGRAM, COMPUTER DATA SIGNAL, AND IMAGE TRANSMISSION SYSTEM |
US7203310B2 (en) | 2001-12-04 | 2007-04-10 | Microsoft Corporation | Methods and systems for cryptographically protecting secure content |
US7646817B2 (en) * | 2003-03-28 | 2010-01-12 | Microsoft Corporation | Accelerating video decoding using a graphics processing unit |
JP3804796B2 (ja) | 2003-07-24 | 2006-08-02 | 沖電気工業株式会社 | 動画像符号化方法及び動画像復号方法 |
US8249140B2 (en) | 2005-12-30 | 2012-08-21 | Intel Corporation | Direct macroblock mode techniques for high performance hardware motion compensation |
-
2005
- 2005-12-30 US US11/323,173 patent/US8249140B2/en not_active Expired - Fee Related
-
2006
- 2006-12-14 WO PCT/US2006/048046 patent/WO2007078888A1/en active Application Filing
- 2006-12-14 JP JP2008548587A patent/JP2009522650A/ja active Pending
- 2006-12-14 CN CN2006800427049A patent/CN101310538B/zh not_active Expired - Fee Related
- 2006-12-14 EP EP06845625A patent/EP1967009A1/en not_active Withdrawn
- 2006-12-18 TW TW095147449A patent/TWI353184B/zh not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5774206A (en) * | 1995-05-10 | 1998-06-30 | Cagent Technologies, Inc. | Process for controlling an MPEG decoder |
EP0797200B1 (en) * | 1996-03-22 | 2001-11-14 | Pioneer Electronic Corporation | Information record medium, apparatus for recording the same and apparatus for reproducing the same |
EP0847204A2 (en) * | 1996-12-03 | 1998-06-10 | STMicroelectronics, Inc. | A multi-standard video decompression device |
EP1009170A2 (en) * | 1998-12-08 | 2000-06-14 | STMicroelectronics, Inc. | System, method and apparatus for a variable output video decoder |
US20030005262A1 (en) * | 2001-06-28 | 2003-01-02 | Sailesh Kottapalli | Mechanism for providing high instruction fetch bandwidth in a multi-threaded processor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404576A (zh) * | 2011-11-30 | 2012-04-04 | 国云科技股份有限公司 | 云终端解码器及其负载均衡算法和gpu的解码算法 |
Also Published As
Publication number | Publication date |
---|---|
US20070153008A1 (en) | 2007-07-05 |
CN101310538B (zh) | 2013-07-10 |
JP2009522650A (ja) | 2009-06-11 |
TWI353184B (en) | 2011-11-21 |
WO2007078888A1 (en) | 2007-07-12 |
EP1967009A1 (en) | 2008-09-10 |
TW200746841A (en) | 2007-12-16 |
US8249140B2 (en) | 2012-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101310538B (zh) | 用于视频解码的硬件运动补偿 | |
US10506239B2 (en) | Method and device for intra prediction video | |
US8787465B2 (en) | Method for neighboring block data management of advanced video decoder | |
US7944502B2 (en) | Pipelining techniques for deinterlacing video information | |
CN101416504B (zh) | 用于跨层视频质量管理的装置、系统和方法 | |
US20070157267A1 (en) | Techniques to improve time seek operations | |
CN101573979B (zh) | 二进制算术视频编码的高性能再归一化 | |
US20100124279A1 (en) | Video rate control processor for a video encoding process | |
WO2006066195A2 (en) | Local macroblock information buffer | |
EP3703372A1 (en) | Interframe prediction method and apparatus, and terminal device | |
CN109922348B (zh) | 图像编解码方法和装置 | |
CN101300851B (zh) | 媒体处理设备、系统和方法 | |
KR101050586B1 (ko) | 콘텐츠 의존 움직임 검출 장치, 방법 및 물품 | |
CN101300852A (zh) | 交错型视频帧缓冲器结构 | |
CN112740276A (zh) | 用于帧内参考样本插值滤波器切换的方法和装置 | |
US20110249719A1 (en) | Video compression | |
WO2024012810A1 (en) | Film grain synthesis using encoding information | |
WO2012149684A1 (en) | Low power and low latency push mode wireless hd video streaming architecture for portable devices | |
WO2012149685A1 (en) | Wireless hd video streaming with intermediate bridge |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130710 Termination date: 20171214 |
|
CF01 | Termination of patent right due to non-payment of annual fee |