一种GPU渲染核数据的预读取方法、装置及计算机存储介质
技术领域
本发明实施例涉及图形处理器(GPU,Graphics Processing Unit)技术领域,尤其涉及一种GPU渲染核数据的预读取方法、装置及计算机存储介质。
背景技术
GPU的渲染核在进行渲染时,需要从显存中读取数据以进行渲染,通常借助于高速缓存从显存中进行数据读取,并传输至渲染核处理。但是,在渲染核首次运行进行渲染的情况下,通常首先需要渲染核向高速缓存发送数据请求,高速缓存根据数据请求从显存中获取到待渲染的数据后反馈至渲染核以进行渲染。由此造成渲染核在上述情况下,会花费较长的时间才能够读取到待渲染的数据,从而降低了渲染核的工作效率。
发明内容
有鉴于此,本发明实施例期望提供一种GPU渲染核数据的预读取方法、装置及计算机存储介质;能够提高渲染核首次运行情况下的渲染数据读取速度,提高渲染核的工作效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种GPU渲染核数据的预读取方法,所述方法包括:
通过调度器根据待渲染数据调度GPU中的渲染核执行渲染;
在所述调度器调度所述渲染核执行渲染的同时,通过数据预取模块将待渲染数据从显存中预先读取至二级缓存;
通过所述渲染核根据所述二级缓存中已预取的待渲染数据执行渲染。
第二方面,本发明实施例提供了一种GPU,所述GPU包括:调度器、数据预取模块、渲染核以及二级缓存;其中,
所述调度器,经配置以执行:根据待渲染数据调度GPU中的渲染核执行渲染;
所述数据预取模块,经配置以执行:在所述调度器调度所述渲染核执行渲染的同时,将待渲染数据从显存中预先读取至所述二级缓存;
所述渲染核,经配置以执行:根据所述二级缓存中已预取的待渲染数据执行渲染。
第三方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有GPU渲染核数据的预读取程序,所述GPU渲染核数据的预读取程序被至少一个处理器执行时实现第一方面所述的GPU渲染核数据的预读取方法的步骤。
本发明实施例提供了一种GPU渲染核数据的预读取方法、装置及计算机存储介质;调度器在进行渲染核调度的同时,数据预取模块将待渲染数据从显存中预先读取至二级缓存,如此,当渲染核需要读取待渲染数据以执行渲染的时候,能够根据二级缓存中已预取的待渲染数据进行渲染,从而无需等待L2-Cache由显存中读取数据,提高渲染核首次运行情况下的渲染数据读取速度,提高渲染核的工作效率。
附图说明
图1为本发明实施例提供的一种计算装置的组成示意图;
图2为本发明实施例提供的处理器、GPU和系统内存的实例框图;
图3为本发明实施例提供的一种GPU的内部结构示意图;
图4为本发明实施例提供的一种数据读取流程示意图;
图5为本发明实施例提供的另一种GPU的内部结构示意图;
图6为本发明实施例提供的一种GPU渲染核数据的预读取方法流程示意图;
图7为本发明实施例提供的一种GPU的组成示意图;
图8为本发明实施例提供的另一种GPU的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
参见图1,其示出了能够实现本发明实施例技术方案的计算装置2,该计算装置2的实例包括但不限于:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器,等。在图1的实例中,该计算装置2可以包括:处理器6、系统内存10和GPU 12。计算装置2还可包含显示处理器14、收发器模块3、用户接口4和显示器8。收发器模块3和显示处理器14两者可为与处理器6和/或GPU 12相同的集成电路(IC)的部分,两者可在包含处理器6和/或GPU 12的一或多个IC的外部,或可形成于在包含处理器6和/或GPU 12的IC外部的IC中。
为清楚起见,计算装置2可包含图1中未图示的额外模块或单元。举例来说,计算装置2可在其中计算装置2为移动无线电话或的实例中包含扬声器和麦克风(两者均未在图1中示出)来实现电话通信,或在计算装置2为媒体播放器的情况下包含扬声器。计算装置2还可包含摄像机。此外,计算装置2中所示的各种模块和单元可能不是在计算装置2的每个实例中都是必需的。举例来说,在计算装置2为桌上型计算机或经装备以与外部用户接口或显示器连接的其它装置的实例中,用户接口4和显示器8可在计算装置2外部。
用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏,并且可作为显示器8的部分并入。收发器模块3可包含电路以允许计算装置2与另一装置或网络之间的无线或有线通信。收发器模块3可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。
处理器6可为微处理器,例如中央处理单元(CPU),其经配置以处理供执行的计算机程序的指令。处理器6可包括控制计算装置2的运算的通用或专用处理器。用户可将输入提供到计算装置2,以致使处理器6执行一或多个软件应用程序。在处理器6上执行的软件应用程序可包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,处理器6可执行用于控制GPU 12的运算的GPU驱动程序22。用户可经由一或多个输入装置(未图示) (例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在处理器6上执行的软件应用程序可包含一或多个图形渲染指令,其指令处理器6来致使将图形数据渲染到显示器8。在一些实例中,所述软件指令可符合图形应用程序编程接口(API),例如开放式图形库OpenGL API、开放式图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API、开放式计算语言(OpenCLT M)、RenderScript或任何其它异构计算API,或任何其它公用或专有标准图形或计算API。所述软件指令还可为针对无渲染算法(例如计算摄影、卷积神经网络、视频处理、科学应用程序等)的指令。为了处理图形渲染指令,处理器6可向GPU 12发出一或多个图形渲染命令(例如,通过GPU驱动程序22),以致使GPU 12执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形图元的列表。
GPU 12可经配置以执行图形运算,从而将一或多个图形图元渲染到显示器8。因此,当在处理器6上执行的软件应用中的一者需要图形处理时,处理器6可将图形命令和图形数据提供到GPU 12以用于渲染到显示器8。图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行结构,其提供比处理器6高效的对复杂图形相关运算的处理。举例来说,GPU 12可包含经配置来以并行方式对多个顶点或像素进行运算的多个处理元件,例如着色器单元。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用处理器6直接将场景绘制到显示器8更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器8上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中,或可以其它方式并入在经配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,使得GPU 12可被称作多核处理器。
在一些实例中,GPU 12可将完全形成的图像存储在系统内存10中。显示处理器14可从系统内存10检索图像,且输出致使显示器8的像素照亮以显示所述图像的值。显示器8可为计算装置2的显示器,其显示由GPU 12产生的图像内容。显示器8可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
在对图形进行渲染的过程中,基于上述计算装置2,参见图2,其为进一步详细说明图1中处理器6、GPU 12和系统内存10的实例实施方案的框图。如图2所示,处理器6可执行至少一个软件应用程序18、图形API 20和GPU 驱动程序22,其中的每一者可为一或多个软件应用程序或服务。在一些实例中,图形API 20和GPU驱动程序22可实施为CPU 6的硬件单元。
可供GPU 12使用的存储器可包含显存16,其可存储经渲染图像数据,例如像素数据,以及任何其它数据,因此,显存16还可被称为帧缓冲器。在具体实施过程中,显存16可为系统内存10的部分或可与系统内存10分离。
显存16存储GPU 12的目的地像素。每个目的地像素可与唯一屏幕像素位置相关联。在一些实例中,显存16可存储每个目的地像素的色彩分量和目的地α值。举例来说,显存16可存储每个像素的红色、绿色、蓝色、α(RGBA)分量,其中“RGB”分量对应于色彩值,并且“A”分量对应于目的地α值(例如,用于图像合成的不透明度值)。尽管将显存16和系统内存10说明为单独的存储器单元,但在其它实例中,显存16可以是系统内存10的一部分。此外显存16还可能够存储除像素之外的任何合适的数据。
软件应用程序18可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用程序18可为图形应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。
软件应用程序18可包含指令GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定将由GPU 12渲染的一组一或多个图形图元的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘制指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序18可经由图形API 20调用GPU驱动程序22,以向GPU 12发出一或多个命令,以用于将一或多个图形图元渲染到可显示的图形图像中。举例来说,软件应用程序18可调用GPU驱动程序22,以向GPU 12提供图元定义。在一些情况下,图元定义可以例如三角形、矩形、三角形扇、三角形带等的绘制图元的列表的形式被提供到GPU 12。图元定义可包含指定与待呈现的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每个顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,例如色彩属性、法向量和纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角形扇、三角形带等)、缩放信息、旋转信息及类似者。
基于由软件应用程序18向GPU驱动程序22发出的指令,GPU驱动程序22可调配指定供GPU 12执行的一或多个运算以便渲染图元的一或多个命令。当GPU 12接收到来自CPU 6的渲染命令时,GPU 12可使用渲染核阵列230执行图形处理管线,以便对渲染命令进行解码,并对图形处理管线进行配置以执行渲染命令中所制定的操作。
更为详细地,在GPU 12中,渲染核阵列230中可以包括C 个通用的渲染核208,其中C>1。基于阵列46中的通用渲染核208,GPU12能够并发执行大量的程序任务或计算任务。举例来说,每个渲染核均可被编程以能够执行与种类繁多的程序相关的处理任务,包括但不限于,线性与非线性数据变换,视频和/或音频数据过滤、建模操作(例如,应用物理定律以确定对象的位置、速率和其他属性)、图形渲染操作(例如,曲面细分着色器、顶点着色器、几何着色器、和/或片段着色器程序)等等。
此外,渲染核阵列230可以从调度器207接收将要执行的处理任务。调度器207可独立地调度所述任务由GPU 12的资源(比如渲染核阵列230中的一或多个渲染核208)执行。在一个实例中,调度器207可以是硬件处理器。在图2中所示出的实例中,调度器207可包含于GPU 12中。在其它实例中,调度器207还可以是与CPU 6和GPU 12分离的单元。调度器207还可被配置成接收命令和/或操作的流的任何处理器。
调度器207可处理一或多个命令流,其包含调度操作,所述调度操作包含于由GPU12执行的一或多个命令流中。具体地说,调度器207可处理一或多个命令流,且调度所述一或多个命令流中的操作,以由渲染核阵列230执行。在操作中,CPU 6藉由图1中GPU驱动程序22可向调度器207发送包括待由GPU 12执行的一系列操作的命令流。调度器207还可接收包括命令流的操作流且可基于命令流中的操作次序依序地处理命令流的操作,且可调度命令流中的操作可以由渲染核阵列230中的一或多个通用渲染核208执行渲染。
结合图1与图2,在通常进行渲染的示例中,首先,CPU 6会将待渲染数据,比如顶点数据,纹理数据等,以及渲染程序发送至显存16。
接着,CPU 6可以读写由GPU 12暴露的配置寄存器,例如通过写配置寄存器以使得GPU 12获知以上待渲染数据在显存16中的基地址,以及渲染程序在显存16中的基地址;需要说明的是,配置寄存器是一种能使CPU 6访问到的GPU 12的内部存储。在一些示例中,写入配置寄存器可以和写入普通存储的方式一样,给某个地址写入某个数据即可,举例来说,CPU 6需要配置顶点数据在显存16的基地址为0x40000000,那么CPU 6就可以往GPU 12的地址0x8000写入0x40000000。在一些示例中,通常CPU 6将一帧图像的数据写入显存16之后才会写配置寄存器。此外,在一些示例中,配置寄存器可以包括顶点数据、纹理数据、染色程序等在显存16的基地址,还可以包括渲染核的性能配置等。
最后,GPU 12根据上述基地址从显存16中读取数据开始进行渲染,并将渲染完成的图像数据写回至显存16的帧缓冲区中。
基于上述渲染示例,针对GPU 12内部,参见图3,每个通用渲染核208均分别对应一个一级缓存(L1-Cache),并且多个通用渲染核208可以共享一个二级缓存(L2-Cache),通过L2-Cache可以对显存16进行数据读写操作。
调度器207除了负责和CPU 6进行数据交互、中断处理之外,还可以通过总线209对通用渲染核208进行调度,也就是说,以顶点数据为待渲染数据示例,调度器207可以根据顶点数量以及当前通用渲染核208的状态(例如忙碌或者空闲)来快速决定由哪个或哪些通用渲染核208渲染哪些顶点数据,并向决定的通用渲染核208发送顶点渲染请求。
针对某一通用渲染核208,在首次运行渲染程序时,当接收到顶点渲染请求之后,通常会执行图4所示的数据读取流程,首先,S41:根据顶点数据的基地址以及顶点索引号向L1-Cache请求顶点数据。
其次,S42:L1-Cache(具体为L1-Cache中的D-Cache)接收到渲染核208的顶点数据请求,此时肯定会出现失靶(miss),因为这是通用渲染核208第一次向L1-Cache发送数据请求。
然后,S43:L1-Cache向L2-Cache发送顶点数据请求。同样的,也会出现失靶。
接着,S44:L2-Cache向显存16发送顶点数据请求。因为顶点数据早就由CPU 6存储于显存16中,所以此时L2-Cache能够读取到顶点数据。
最后,S45:L2-Cache将读取到的顶点数据传输给L1-Cache,再由L1-Cache传输至通用渲染核208。
综上所述,通用渲染核208在首次运行时,由于需要等待L2-Cache由显存16中读取数据,因此,会花费比较长的时间,从而降低了渲染核的工作效率。
有鉴于此,本发明实施例期望能够描述一种GPU渲染核数据的预读取技术,能够在通用渲染核208首次运行时,可以不必等待L2-Cache由显存16中读取数据,从而提高渲染核首次运行情况下的渲染数据读取速度,提高渲染核的工作效率。具体来说,由于调度器207对通用渲染核208进行调度的过程中,能够决定由哪个或哪些通用渲染核208渲染哪些顶点数据,那么自然能够获知通用渲染核208在接下来的渲染过程中所要访问的顶点数据。基于此,在一些示例中,调度器207可以提前使L2-Cache从显存16中读取待渲染的顶点数据。为了实现该示例,如图5所示,可以在图3所示的GPU 12的结构中额外增加数据预取模块222,以实现待渲染的顶点数据的提前读取。针对图5所示的结构,参见图6,其示出了本发明实施例提供的一种GPU渲染核数据的预读取方法,该方法可以包括:
S601:通过调度器207根据待渲染数据调度GPU中的渲染核208执行渲染;
S602:在所述调度器207调度所述渲染核208执行渲染的同时,通过数据预取模块222将待渲染数据从显存16中预先读取至二级缓存;
S603:通过所述渲染核208根据所述二级缓存中已预取的待渲染数据执行渲染。
通过图6所示的技术方案,调度器207在进行渲染核调度的同时,数据预取模块222将待渲染数据从显存16中预先读取至二级缓存,如此,当渲染核208需要读取待渲染数据以执行渲染的时候,能够根据二级缓存中已预取的待渲染数据进行渲染,从而无需等待L2-Cache由显存16中读取数据,提高渲染核首次运行情况下的渲染数据读取速度,提高渲染核的工作效率。
对于图6所示的技术方案,在一些示例中,通过数据预取模块222将待渲染数据从显存16中预先读取至二级缓存之前,所述方法还包括:
通过所述调度器207向所述数据预取模块222发送数据预取请求;其中,所述数据预取请求用于指示所述数据预取模块从所述显存中预先读取所述待渲染数据;
相应地,所述通过数据预取模块222将待渲染数据从显存16中预先读取至二级缓存,包括:
通过所述数据预取模块222根据所述数据预取请求将所述待渲染数据从所述显存16中读取至所述二级缓存。
对于上述示例,需要说明的是,调度器207在进行渲染核调度的同时,还调度数据预取模块222开始请求待渲染数据,从而能够使得渲染核208在需要待渲染数据的时候,就可以快速地从二级缓存中读取到。
还需要说明的是,本发明实施例的技术方案,通常在实施过程中不会被用于指令,这是由于调度器207在完成渲染核208的调度之后,便是渲染核208执行读取指令的过程,在这么短的时间间隔内针对指令进行预读取通常并没有必要。
对于图6所示的技术方案,在一些示例中,相应于所述待渲染数据的数据量超过所述GPU中所有渲染核的最大处理数据量,则所述数据预取请求用于指示所述数据预取模块按照所述渲染核的最大处理数据量从所述显存中预先读取待渲染数据至二级缓存;
相应于所述待渲染数据的数据量未超过所述GPU中所有渲染核的最大处理数据量,则所述数据预取请求用于指示所述数据预取模块将全部所述待渲染数据从所述显存中预先读取至二级缓存。
对于上述示例,具体来说,以待渲染数据为顶点数据为例,设定GPU 12内的渲染核208的个数为N,每个渲染核208可以同时渲染的顶点个数为M,则GPU 12满负荷工作状态下,可以同时渲染S=N×M个顶点;另外,设定GPU 12接收到CPU 6实际需要待渲染的顶点个数为T。基于上述设定,CPU 6可以通过写配置寄存器的方式使GPU 12获知当前帧需要渲染的顶点数量。随后,调度器207可以向所述数据预取模块222发送数据预取请求,比如,如果T小于或等于S,则调度器207可以向数据预取模块222发送T个顶点的读请求;如果T大于S,则调度器207可以向数据预取模块222发送S个顶点的读请求。接着,调度器207可以开始调度渲染核208,值得注意的是,调度与数据预取可以并行执行,从而当渲染核208基于调度器207的调度开始执行渲染时,二级缓存内就已经从显存16完成待渲染数据的预读取。
对于图6所示的技术方案,在一些示例中,在通过所述渲染核根据所述二级缓存中已预取的待渲染数据执行渲染之前,所述方法还包括:
通过所述渲染核向一级缓存读取所述待渲染数据;
相应于所述一级缓存未存储所述待渲染数据,所述一级缓存向所述二级缓存发送数据读取请求;
所述二级缓存根据所述数据读取请求向所述一级缓存传输已预取的待渲染数据;
所述渲染核读取所述一级缓存接收到的由所述二级缓存已预取的待渲染数据。
举例来说,渲染核208开始渲染之后,渲染核208会先向L1-Cache读取待渲染数据,此时,必然Miss;然后L1-Cache会向L2-Cache索要待渲染数据,而L2-Cache中已经预取完成待渲染数据,所以L1-Cache能够马上拿到待渲染数据以返回至渲染核208执行渲染,无需再等待L2-Cache从显存16中读取待渲染数据。由此,提高了Cache命中率,提升了数据访问速度。
对于图6所示的技术方案,在一些示例中,L2-Cache的容量也是方案的实现关键,比如,如果L2-Cache的容量最多只能存放一个渲染核所能渲染的顶点数量,那么数据预取的意义就不大了,因此,在本发明实施例中,优选地,所述二级缓存的容量大于或等于渲染程序的数据量与所述GPU中所有渲染核的最大处理数据量之和,如此才能够适配所有渲染核的渲染需求。
结合图1及图2所示的计算装置以及前述图6所示的技术方案,参见图7,本发明实施例还提供了一种GPU 12的组成,可以包括:调度器701、数据预取模块702、渲染核703以及二级缓存704;其中,
所述调度器701,经配置以执行:根据待渲染数据调度GPU中的渲染核703执行渲染;
所述数据预取模块702,经配置以执行:在所述调度器701调度所述渲染核703执行渲染的同时,将待渲染数据从显存中预先读取至所述二级缓存704;
所述渲染核703,经配置以执行:根据所述二级缓存704中已预取的待渲染数据执行渲染。
在一些示例中,所述调度器701,还经配置以执行:向所述数据预取模块702发送数据预取请求;其中,所述数据预取请求用于指示所述数据预取模块702从所述显存中预先读取所述待渲染数据;
相应地,所述数据预取模块702,还经配置以执行:根据所述数据预取请求将所述待渲染数据从所述显存中读取至所述二级缓存704。
在一些示例中,相应于所述待渲染数据的数据量超过所述GPU中所有渲染核703的最大处理数据量,所述数据预取请求用于指示所述数据预取模块702按照所述渲染核703的最大处理数据量从所述显存中预先读取待渲染数据至二级缓存704;
相应于所述待渲染数据的数据量未超过所述GPU中所有渲染核703的最大处理数据量,所述数据预取请求用于指示所述数据预取模块702将全部所述待渲染数据从所述显存中预先读取至二级缓存704。
在一些示例中,参见图8,所述GPU 12还包括多个一级缓存705,并且每个所述一级缓存705均对应一所述渲染核703;
所述渲染核703,还经配置以执行:
向对应的一级缓存705读取所述待渲染数据;
相应于所述一级缓存705未存储所述待渲染数据,所述一级缓存705,经配置以执行:向所述二级缓存704发送数据读取请求;
所述二级缓存704,还经配置以执行:根据所述数据读取请求向所述一级缓存705传输已预取的待渲染数据;
所述渲染核703,还经配置以执行:读取所述一级缓存705接收到的由所述二级缓存704已预取的待渲染数据。
可以理解地,上述GPU 12中各组成部件的具体实施说明,参见前述技术方案中的相应部件的阐述,在此不做赘述。
在上述一或多个实例或示例中,所描述的功能可实施于,所描述功能可实施于硬件、软件、固件或其任何组合中。如果实施于软件中,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,通信媒体包含促进将计算机程序从一处传递到另一处的任何媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。举例来说且非限制,此类计算机可读媒体可包括U盘、移动硬盘、RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。因此,如本文中所使用的术语“处理器”和“处理单元”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合式编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明实施例的技术可实施于各种各样的装置或设备中,所述装置或设备包含无线手持机、集成电路(IC)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了本发明的各种方面。这些和其它实施例在所附权利要求书的范围内。需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。