处理视频内容的制作方法_2

文档序号:8460768阅读:来源:国知局
请求和处理另外的视频内容的另外的请求处理视频内容的方法202的示例的流程图。方法202可以利用本文中所提及的任何技术来实现。所示处理框246提供在UMD处接收处理视频内容的请求。例如,可以从诸如VA接口的上级组件接收请求以便编码/解码诸如第一视频帧的视频内容。
[0017]在框248,做出是否存在与命令缓冲区相关联的有效句柄的判定。例如,UMD可以搜索句柄阵列以便标识是否存在与可用和/或空闲的命令缓冲区相关联的有效句柄和/或视频内容的其它必需资源。如果不存在有效句柄,那么可以迫使UMD等待,直到有效句柄变成可用为止。另一方面,如果存在有效句柄,那么在所示处理框250,UMD将与请求相关联的命令插入到与有效句柄相关联的命令缓冲区中,并用句柄阵列中的无效句柄取代有效句柄。例如,UMD可以将诸如编码/解码命令的硬件命令和诸如MI_STORE_DATA_IMM命令的数据存储命令插入到与有效句柄相关联的命令缓冲区中,并用句柄阵列中的无效句柄取代有效句柄。所示处理框252提供加入队列操作。例如,在所示处理框252,可以将命令缓冲区加入队列。
[0018]所示处理框254提供在UMD处接收处理诸如(相同或不同视频流的)第二视频帧的另外的视频内容的另外的编码/解码请求的另外的请求。在处理框256,做出句柄阵列中是否存在无效句柄的判定。如果不存在无效句柄,那么过程可以继续进行至处理框248以便确定在句柄阵列中是否存在与命令缓冲区相关联的有效句柄,例如命令缓冲区用过并且变成新可用时。但是,显然,是否存在有效句柄和是否存在无效句柄的判定可以同时进行。如果存在无效句柄,那么所示处理框258提供绕过句柄阵列中的无效句柄。
[0019]在框260,做出是否存在与另外的命令缓冲区相关联的另外的有效句柄的判定。如果否,那么可以迫使UMD等待,直到有效句柄和/或另外的有效句柄(例如,下一个有效句柄)变成可用为止。另一方面,如果有另外的有效句柄可用,那么在所示处理框262,UMD将与另外的请求相关联的另外的命令插入到另外的命令缓冲区中,并用句柄阵列中的另外的无效句柄取代另外的有效句柄。例如,UMD可以将诸如另外的编码/解码命令的另外的硬件命令和诸如另外的MI_STORE_DATA_IMM命令的另外的数据存储命令插入到与另外的有效句柄相关联的另外的命令缓冲区中,并用句柄阵列中的另外的无效句柄取代另外的有效句柄。
[0020]所示处理框252提供加入队列操作。例如,如前所述,可以通过UMD将包含与编码/解码第一视频帧的请求相关联的命令的命令缓冲区加入到(例如,提交到)队列。因此,UMD不等待,而是自由地立即返回到上级组件(例如,VA接口),以便接收和/或接受处理另外的视频内容的另外的请求。因此,作为将命令缓冲区提交到队列(例如,加入队列)的结果,独立于执行处理第一帧的命令,UMD可用于从上级组件(例如,VA接口)接收编码/解码第二帧的另外的请求。另外,可以通过UMD将包含与编码/解码第二视频帧的另外的请求相关联的命令的另外的命令缓冲区加入到(例如,提交到)队列,以使得UMD能够立即返回到上级组件以便接收和/或接受处理另外的视频内容的任何另外的请求(例如,编码/解码第三视频帧的另一请求等)。
[0021]所示处理框264提供移出队列操作。例如,诸如线程的CSP可以从队列检索和/或移除加入队列的命令缓冲区和/或加入队列的另外的命令缓冲区。当队列包括FIFO缓冲区时,CSP可以在另外的命令缓冲区之前检索和/或移除命令缓冲区。所示处理框266提供独立于UMD对KMD进行系统调用。例如,CSP (例如,线程)可以直接对KMD进行系统调用(例如,10CTL)。所示处理框268提供响应于系统调用经由KMD将命令缓冲区和/或另外的命令缓冲区提交给平台硬件以便处理视频内容。例如,响应于CSP的相应的系统调用,KMD可以接收命令缓冲区和/或另外的命令缓冲区,并将它们提交给平台硬件以便处理视频内容(例如,第一视频帧、第二视频帧等)。
[0022]所示处理框270提供用于处理视频内容。例如,当命令缓冲区和/或另外的命令缓冲区包括诸如解码命令的硬件命令时,平台硬件(例如,GPU)从KMD接收相应的命令缓冲区,并执行它们的相应命令以便处理相应的视频内容。因此,平台硬件(例如,GPU)从KMD接收命令缓冲区并执行硬件命令以便解码第一视频帧,从KMD接收另外的命令缓冲区并执行另外的硬件命令以便解码第二视频帧,等等或其组合。
[0023]在框272,做出命令缓冲区中的命令和/或另外的命令是否包含诸如MI_ST0RE_DATA_IMM命令的数据存储命令和/或诸如另外的MI_STORE_DATA_IMM命令的另外的数据存储命令的判定。如果是,那么所示处理框274提供执行相应的数据存储命令并用句柄阵列中的它们的相应的有效句柄取代相应的无效句柄。
[0024]现在转到图4,示出资源表476的框图的示例。资源表476可以位于平台的任何组件和/或阶段处,例如位于存储设备、存储器、处理器、操作系统等或其组合。资源表476可包括与可用和/或空闲的命令缓冲区相关联的一个或多个有效句柄以及处理视频内容所需的任何其它资源。资源表476可包括句柄阵列,例如矩阵(例如,2D矩阵)。例如,当创建视频装置时,可以在资源池(RP)句柄阵列中分配和/或存储资源。最大资源数可以在RP句柄阵列中预先设置。另外,可以作为RP句柄阵列的复本生成诸如使用中资源(RiU)句柄阵列的另外的句柄阵列。
[0025]在所示示例中,资源表476包括与可用资源(例如,可用命令缓冲区)相关联的有效句柄(例如,资源句柄),它具有由X表示的标识符。标识符可以包括物理地址、32位ID、通用唯一标识符(UUID)、全局唯一标识符(GUID)等或其组合。例如,X可以是可用命令缓冲区的物理地址。另外,资源表476包括由1、2、...η表示的索引位置,以便提供有效句柄(例如,索引位置I处的资源句柄)在资源表476中的位置。因此,资源表476包括上述多个有效句柄中的每个有效句柄的标识符Χ、Χ’等和索引位置1、2、…η。
[0026]UMD可以接收处理视频内容的请求,并且响应于请求,将与请求相关联的命令插入到命令缓冲区中。例如,UMD搜索资源表476以便标识与空闲和/或可用命令缓冲区相关联的第一有效句柄(例如,具有标识符X的索引位置I处的资源句柄)、和/或视频内容的其它必需资源。UMD用无效句柄(例如,索引位置I处的哑(dumb)句柄)取代资源表476中的对应索引位置I处的具有标识符X的有效句柄。无效句柄包括标识符Y,并用信号通知UMD资源不可用。标识符Y、Y’等可以包括物理地址、32位ID、通用唯一标识符(UUID)、全局唯一标识符(⑶ID)等或其组合。例如,标识符Y可以预先定义,例如全为“0”、全为“1”、32位ID的ffffffff十六进制格式等或其组合。因此,可以利用UMD通过在资源表476中具有除了预先定义的无效句柄标识符以外的任何标识符来识别有效句柄。
[0027]UMD将与请求相关联的命令插入到与有效句柄(例如,具有标识符X的资源句柄I)相关联的命令缓冲区中。另外,UMD将命令缓冲区加入队列以便独立于平台硬件执行命令而接收处理另外的视频内容的另外的请求。例如,响应于另外的请求,UMD如之前那样搜索资源表476,并且可能遇到无效句柄(例如,哑句柄1),这是因为加入队列的命令缓冲区可能是不空闲和/或不可用的(例如,平台硬件没有处理完与资源句柄I相关联的命令缓冲区)。因此,UMD绕过无效句柄(例如,哑句柄1),并遇到下一个可用和/或空闲的有效句柄(例如,在索引位置2处具有标识符V的资源句柄)。UMD用索引位置2处具有标识符Y’的无效句柄(例如,哑句柄2)取代具有标识符V的有效句柄。
[0028]UMD将与另外的请求相关联的另外的命令插入到与另外的有效句柄(例如,资源句柄2)相关联的另外的命令缓冲区中。另外,UMD将另外的命令缓冲区加入队列以便接收处理再另外的视频内容的再另外的请求。响应于另外的请求(例如,第三请求),UMD搜索资源表476,并且可能遇到无效句柄(例如,哑句柄1、哑句柄2等),直到到达下一个可用和/或空闲的有效句柄。但是,在任何时间,UMD也可能遇到资源表476中新可用和/或空闲的有效句柄。例如,当平台硬件执行完插入到与具有标识符X的有效句柄相关联的命令缓冲区中的命令时,可以命令平台硬件用与该命令缓冲区相关联的有效句柄(例如,标识符X)覆写资源表476中的无效句柄(例如,标识符Y)。因此,命令缓冲区对于UMD新可用(例如,具有标识符X的资源句柄1),并且可用于处理视频内容的任何另外的请求。
[0029]图5是包括处理视频内容的逻辑体系结构578的系统502的框图的示例。逻辑体系结构578 —般可以并入到诸如膝上型计算机、PDA、无线智能电话、媒体播放器、成像装置、移动互联网装置(MID)、任何智能装置(例如,智能电话、智能平板、智能TV)、电子书写板、投影仪等或其组合的平台中。逻辑体系结构578可以在应用、操作系统、媒体框架、硬件组件、或其组合中实现。逻辑体系结构578可以在诸如网络接口组件、存储器、处理器、硬盘驱动器、操作系统、应用等或其组合的任何系统组件中实现。例如,逻辑体系结构578可以在诸如中央处理单元(CPU)、图形处理单元(GPU)、可视处理单元(VPU)、传感器、操作系统、应用等或其组合的处理器中实现。
[0030]在所示示例中,系统502包括存储设备590、应用592、存储器594、显示器596和GPU 598。但是,显然,系统502可以包括诸如电源(例如,电池、电源连接器等)、通信接口(例如,网络接口卡)等或其组合的任何其它组件。
[0031]在所示示例中,逻辑体系结构578包括用于接收处理视频内容的请求的UMD模块580。UMD模块580可以响应于请求将与请求相关联的命令插入到命令缓冲区中。另外,UMD模块580可以将命令缓冲区加入队列以便独立于平台硬件执行命令而接收处理另外的视频内容的另外的请求。UMD模块580可以在收到正在清空队列、队列被清空、队列被清空预定阈值、队列不满等或其组合的通知时将命令缓冲区加入队列。例如,UMD模块580可以提供以下操作:
{
Prepare CMD…
Get—CMD—Resource;
Add—CMD—to—Buf;EnQueue for CMD Submiss1n;
}
UMD模块580可以
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1