威尼斯人棋牌-威尼斯欢乐娱人城-首页

访问用于配置空间的配置和状态寄存器的制造方法

文档序号:6485411
访问用于配置空间的配置和状态寄存器的制造方法
【专利摘要】本发明通过有选择地仅对帧的部分进行编码并且改为使用先前编码的部分,视频分析可用来帮助视频编码。当后续帧具有小于阈值的运动等级时,可使用先前编码的部分。在这种情况下,在一些实施例中,后续帧的全部或部分可以不经过编码,从而增加带宽和速度。
【专利说明】访问用于配置空间的配置和状态寄存器
【技术领域】
[0001]这一般涉及计算机,以及具体涉及视频处理。
【背景技术】
[0002]存在必须处理和/或存储视频的多种应用。一个示例是视频监控,其中为了安全性或其它目的,可接收、分析和处理一个或多个视频馈送。另一种常规应用是用于视频会议。
[0003]通常,通用处理器、例如中央处理单元用于视频处理。在一些情况下,称作图形处理器的专用处理器可辅助中央处理单元。
[0004]视频分析涉及得到与视频信息的内容有关的信息。例如,视频处理可包括内容分析,其中分析内容视频,以便检测某些事件或事件发生,或者寻找感兴趣信息。
[0005]用消息来发信号通知的中断或MSI是一种用于生成中断的技术。通常,各装置具有在该装置想要中断主中央处理单元时断言的中断引脚。在外设组件互连Express规范中,不存在单独中断引脚。相反,特殊消息允许引脚断言或解除断言的仿真。用消息来发信号通知的中断允许装置将少量数据写到存储器空间中的特殊地址。芯片组则将中断传递给中央处理单元。
[0006]MS1-X准许装置分配多达2048个中断。在外设组件互连Express基本规范修订版1.0a和1.1的第6.1小节中规定了 MS1-X。MS1-X允许大量中断,给予各中断单独目标地址和标识数据字。它使用64位寻址和中断屏蔽。
【专利附图】

【附图说明】
[0007]图1是按照本发明的一个实施例的系统架构;
图2是按照一个实施例、图1所示的视频分析引擎的电路图示;
图3是按照本发明的一个实施例的视频捕获的流程图;
图4是按照一个实施例的二维矩阵存储器的流程图;
图5是按照一个实施例的分析辅助编码的流程图;
图6是另一个实施例的流程图;
图7是一个实施例的中断控制的图示;
图8是一个实施例的中断时序图;
图9是一个实施例的流程图;
图10是在一个实施例中、图2的PCI Express 36的一部分的示意图;
图11是对外部寄存器进行写入访问的ELBI事务的时序图;
图12是对外部寄存器进行读取访问的ELBI事务的时序图;以及 图13是一个实施例的流程图。
【具体实施方式】[0008]按照一个实施例,可并行地处理多个视频流。可对这些视频流编码,同时实现视频分析。此外,可一次对所述多个流中每个流进行编码,同时所述多个流中每个流经过视频分析。在一些实施例中,编码或分析的特性可在编码或分析已经实现的同时由用户即时改变。
[0009]虽然给出其中使用视频分析的一个实施例的示例,但是在一些实施例中,视频分析只是可选的,并且可以使用或者可以不使用。
[0010]参照图1,计算机系统10可以是多种计算机系统中的任一种,包括使用视频分析(例如视频监控和视频会议应用)的那些计算机系统以及不使用视频分析的实施例。系统10可以是台式计算机、服务器、膝上型计算机、移动因特网装置或蜂窝电话,这里只举几个例子。
[0011]系统10可具有耦合到系统总线14的一个或多个主中央处理单元12。系统存储器22可耦合到系统总线14。虽然提供主系统架构的示例,但是本发明决不局限于任何特定系统架构。
[0012]系统总线14可耦合到总线接口 16,总线接口 16又耦合到常规总线18。在一个实施例中,可使用外设组件互连Express (PCIe)总线,但是本发明决不局限于任何特定总线。
[0013]视频分析引擎20可经由总线18耦合到主机。在一个实施例中,该视频分析引擎可以是既提供编码又提供视频分析的单个集成电路。在一个实施例中,集成电路可使用嵌入式动态随机存取存储器(EDRAM)技术。但是,在一些实施例中,可免除编码或视频分析。另外,在一些实施例中,引擎20可包括存储控制器,所述存储控制器控制板载集成二维矩阵存储器以及提供与外部存储器的通信。
[0014]因此,在图1所示的实施例中,视频分析引擎20与本地动态随机存取存储器(DRAM) 19进行通信。具体来说,视频分析引擎20可包括用于访问存储器19的存储控制器。备选地,引擎20可使用系统存储器22,并且可包括与系统存储器的直接连接。
[0015]也耦合到视频分析引擎20的可以是一个或多个照相装置24。在一些实施例中,按照标准清晰度格式,可接收多达四个同时视频输入。在一些实施例中,可在三个输入端上提供一个高清晰度输入,以及可在第四输入端上提供一个标准清晰度输入。在其它实施例中,可提供更多或更少的高清晰度输入,以及可提供更多或更少的标准清晰度输入。作为一个示例,三个输入端中的每个输入端可接收10位的高清晰度输入数据,例如R、G和B输入或者Y、U和V输入,各在单独10位输入线上。
[0016]在一个实施例中,示出图2所示的视频分析引擎20的一个实施例,其在该页的顶端具有四个照相装置通道输入。这四个输入可由视频捕获接口 26来接收。视频捕获接口26可接收采取照相装置输入或其它视频信息的形式的多个同时视频输入,包括电视机输入、数字录像机输入或媒体播放器输入,这里只举几个例子。
[0017]视频捕获接口自动捕获和复制各输入帧。将输入帧的一个副本提供给VAFF单元66,以及另一副本可提供给VEFF单元68。VEFF单元68负责将视频存储在外部存储器、例如图1所示的存储器22上。在一个实施例中,外部存储器可耦合到芯片上系统存储控制器/仲裁器50。在一些实施例中,外部存储器上的存储可用于视频编码目的。具体来说,如果一个副本存储在外部存储器上,则它能够由视频编码器32来访问,以用于按照预期格式对信息进行编码。在一些实施例中,多种格式是可用的,并且系统可选择最合乎需要的特定编码格式。[0018]如上所述,在一些情况下,视频分析可用来改进由视频编码器32所实现的编码过程的效率。一旦这些帧经过编码,它们可经由PCI Express总线36提供给主系统。
[0019]同时,输入视频帧的其它副本存储在二维矩阵或主存储器28上。VAFF可同时处理和传送全部四个输入视频通道。VAFF可包括四个重复的单元,以处理和传送视频。存储器28的视频传输可使用复用。由于视频回扫时间中固有的延迟,在一些实施例中,多个通道的传递能够实时进行。
[0020]主存储器上的存储可有选择地非线性或线性地实现。在常规线性寻址中,指定相交寻址线上的一个或多个位置,以访问存储器位置。在一些情况下,可指定寻址线、例如字或位线,以及可指示沿那个字或位线的长度,使得所寻址存储器线的一部分可自动地接连存储。
[0021]相比之下,在二维寻址或非线性寻址中,可在一个操作中访问行线和列线。该操作可指定存储器矩阵中的初始点,例如,在两个寻址线、例如行线或列线的交点处。然后,提供存储器大小或另一定界符,以指示矩阵在两维中(例如沿行线和列线)的长度。一旦指定初始点,整个矩阵可通过可寻址位置的自动递增来自动存储。换言之,不需要回到主机或其它装置以确定初始点之后、用于存储存储器矩阵的随后部分的地址。二维存储器减少生成地址的任务或者将其基本上完全消除。因此,在一些实施例中,所需带宽和访问时间均可减少。
[0022]基本上,相同操作可反向进行,以读取二维存储器矩阵。备选地,二维存储器矩阵也可使用常规线性寻址来访问。
[0023]虽然给出其中指定存储器矩阵的大小的示例,但是也可提供其它定界符,包括两维中每维中的长度(即,沿字和位线)。二维存储器对静止图像和运动图像、图形以及具有两维中的数据的其它应用是有利的。
[0024]信息能够按照两维或者按照一维来存储在存储器28中。在一个实施例中,一维与两维之间的转换能够通过硬件自动地即时进行。
[0025]在一些实施例中,对多个流的视频编码可在视频编码器中进行,同时多个流也在视频分析功能单元42中经过分析。这可通过下列步骤来实现:在视频捕获接口 26中制作每个流的副本,并且向视频编码器32发送每个流的一组副本,而另一个副本转到视频分析功能单元42。
[0026]在一个实施例中,所述多个流中每个流的时间复用可在视频编码器32和视频分析功能单元42中的每个中进行。例如,基于用户输入,来自第一流的一个或多个帧可经过编码,之后接着是来自第二流的一个或多个帧,之后接着是来自下一个流的一个或多个流,依此类推。类似地,时间复用可按照相同方式在视频分析功能单元42中使用,其中基于用户输入,来自一个流的一个或多个帧经过视频分析,然后是来自下一个流的一个或多个帧,依此类推。因此,一系列流能够在编码器和视频分析功能单元中基本上同时地、即一次性处理。
[0027]在一些实施例中,用户能够设置首先处理哪一个流以及在任何特定时间处理每个流的多少帧的序列。在视频编码器和视频分析引擎的情况下,当处理这些帧时,它们能够通过总线36来输出。
[0028]编码器中每个流的上下文可保留在寄存器组122 (其可包括每个流的寄存器)中专用于那个流的寄存器中。寄存器组122可记录按照多种方式之一(包括用户输入)已经指定的编码特性。例如,能够记录对每个流预期的分辨率、压缩率和编码类型。然后,当时间复用的编码发生时,视频编码器能够从正确流的寄存器116中访问正被处理的当前流的正确特性。
[0029]类似地,同样的操作能够在视频分析功能单元46中使用寄存器组124进行。换言之,按照流的视频分析处理或编码的特性能够记录在寄存器124和122中,其中在每组寄存器中,对于每个流保留一个寄存器。
[0030]另外,用户或者另外某个源能够指挥即时改变特性。“即时”意在表示在视频分析功能单元42的情况下在分析处理期间或者在视频编码器32的情况下在编码的情况下所发生的变更。
[0031]当变更在正在处理帧的时候开始时,该变更最初可记录在视频编码器的影子寄存器116以及视频分析功能单元42的影子寄存器114中。然后,当完成帧(或者所指定数量的帧)时,视频编码器32马上检查以查看在寄存器116中是否已经存储任何变更。如果是的话,则视频编码器通过通路120将那些变更传递给寄存器122,从而更新寄存器中适合于使其编码特性即时改变的每个流的新特性。
[0032]此外,在一个实施例中,相同的即时变更可在视频分析功能单元42中进行。当检测到即时变更时,现有帧(或者现有工作集)可使用旧特性来完成,同时将这些变更存储在影子寄存器114中。然后,在恰当时间,在工作负荷或帧已经完成处理之后,这些变更可通过总线118从寄存器114传递给视频分析功能单元42以便存储在寄存器124中,通常替换寄存器124之间的单独寄存器中对任何特定流所存储的特性。然后,一旦更新完成,下一个处理负荷就使用新特性。
[0033]因此,参照图6,序列130可通过App、固件和/或硬件来实现。在基于App或固件的实施例中,该序列可通过非暂时计算机可读介质(例如光存储器、磁存储器或半导体存储器)中存储的计算机运行指令来实现。例如,在一个实施例中,在编码器32的情况下,该序列可存储在该编码器内的存储器中,以及在分析功能单元的情况下,它们可存储在例如像素管线单元44中。
[0034]最初,该序列等待关于用于编码或分析的上下文指令的用户输入。在一些实施例中,该流程对于分析和编码可以是相同的。一旦如在菱形框132所确定接收到用户输入,则对于每个流,上下文存储在适当寄存器122或124中,如框134所示。然后,时间复用处理开始,如框136所示。在那个处理期间,在菱形框138的检查确定是否已经有任何处理变更指令。如果不是的话,则在菱形框142的检查确定处理是否完成。如果不是的话,则时间复用处理继续进行。
[0035]如果已经接收到处理变更,则可将它存储在适当影子寄存器114或116中,如框140所示。然后,在当前处理任务完成时,变更能够在下一组操作中自动实现,其在视频编码器32的情况下是编码或者在功能单元42的情况下是分析。
[0036]在一些实施例中,编码的频率可随编码器上负荷的量值而改变。一般来说,编码器足够快地运行,使得它能够在从存储器中读出下一帧之前完成一帧的编码。在许多情况下,编码引擎运行的速度可比在下一帧或下一组帧已跑出存储器之前对一帧或一组帧进行编码所需的速度要快。[0037]上下文寄存器可存储用于进行编码或分析的任何必要标准,在编码器的情况下,其包括分辨率、编码类型和压缩率。一般来说,该处理可按照循环方式进行,从一个流或通道继续进行到下一个流或通道。在一个实施例中,然后将编码数据输出到外设组件互连(PCI)Express总线18。在一些情况下,与PCI Express总线关联的缓冲器可从各通道接收编码。即,在一些实施例中,可提供缓冲器,以用于与PCI Express总线关联的各视频通道。各通道缓冲器可清空到由与PCI Express总线关联的仲裁器所控制的总线。在一些实施例中,仲裁器将各通道清空到总线的方式可服从用户输入。
[0038]因此,参照图3,用于视频捕获20的系统可通过硬件、App和/或固件来实现。在一些情况下,硬件实施例可以是有利的,这是因为它们可以能够具有更大速度。
[0039]如框72所示,可从一个或多个通道接收这些视频帧。然后,复制这些视频帧,如框74所示。随后,视频帧的一个副本存储在外部存储器中以便编码,如框76所示。另一副本存储在内部存储器或主存储器28中以用于分析目的,如框78所示。
[0040]接下来参考图4所示的二维矩阵序列80,可通过App、固件或硬件来实现序列。此外,在使用硬件实施例时可存在速度优点。
[0041]最初,在菱形框82的检查确定是否接收到存储命令。按常规,这类命令可从主系统、以及具体来说从其中央处理单元12接收。那些命令可由分发单元34来接收,分发单元34然后将命令提供给引擎20的用来实现该命令的适当单元。当命令已经实现时,在一些实施例中,分发单兀又向主系统报告。
[0042]如果如在菱形框82所确定、涉及存储命令,则可接收初始存储器位置和二维大小信息,如框84所示。然后,该信息存储在适当的二维矩阵中,如框86所示。初始位置例如可定义矩阵的左上角。存储操作可自动寻找存储器20中所需大小的矩阵,以便实现该操作。在一些实施例中,一旦提供存储器中的初始点,该操作就可自动存储该矩阵的后续部分,而无需附加地址计算。
[0043]相反,如果如在菱形框88所确定、涉及读取访问,则接收初始位置和二维大小信息,如框90所示。然后,读取所指定矩阵,如框92所示。此外,该访问可自动地进行,其中可访问初始点,如常规线性寻址中进行的那样,并且然后自动确定地址的其余部分,而无需返回以及按照常规方式计算地址。
[0044]最后,如果如在菱形框94所确定、已从主机接收到移动命令,则接收初始位置和二维大小信息,如框96所示,以及自动实现移动命令,如框98所示。此外,只是通过指定起始位置并且提供大小信息,信息的矩阵就可自动地从一个位置移动到另一个位置。
[0045]又参照图2,视频分析单元42可经过像素管线单元44耦合到系统的其余部分。单元44可包括状态机,其运行来自分发单元34的命令。通常,这些命令在主机始发,并且由分发单元来实现。基于应用,可包括多种不同分析单元。在一个实施例中,可包括卷积单元46,以用于卷积的自动提供。
[0046]卷积命令可包括指定掩码(mask)、参考或内核的命令和变元,使得一个所捕获图像中的特征能够与存储器28中的参考二维图像进行比较。该命令可包括指定要在哪里存储卷积结果的目的地。
[0047]在一些情况下,每个视频分析单元可以是硬件加速器。“硬件加速器”意在表示与运行于中央处理单元上的App相比更快地实行功能的硬件装置。[0048]在一个实施例中,每个视频分析单元可以是由专用于那个单元的特定功能的专用硬件来运行的状态机。因此,这些单元可比较快地运行。此外,对于由视频分析单元所实现的各操作可以仅需要一个时钟周期,这是因为所需要的只是告知硬件加速器实行该任务,并且提供该任务的变元,以及然后可实现操作序列,而无需来自任何处理器、包括主处理器的进一步控制。
[0049]在一些实施例中,其它视频分析单元可包括自动地计算质心的质心单元48、自动地确定直方图的直方图单元50以及膨胀/磨耗单元52。
[0050]膨胀/磨耗单元52可负责自动地增加或减小给定图像的分辨率。当然,除非信息已经是可用的,否则不可能增加分辨率,但是在一些情况下,以较高分辨率所接收的帧可在较低分辨率处理。因此,该帧按照较高分辨率可以是可用的,并且可由膨胀/磨耗单元52变换到较高分辨率。
[0051]矩阵存储器传递(MTOM)单元54负责实现移动指令,如先前所述。在一些实施例中,可提供算术单元56和布尔单元58。即使这些相同单元可以是与中央处理单元或者已经存在的协处理器结合可用的,但可以有利的是,使它们是引擎20板载的,原因在于其在芯片上的存在可降低对于从引擎20到主机并且返回的许多数据传递操作的需要。此外,在一些实施例中,通过使它们是引擎20板载的,可使用二维主存储器或矩阵主存储器。
[0052]可提供提取单元60,以从图像中获取向量。查找单元62可用来查找特定类型的信息,以看它是否已经存储。例如,查找单元可用来寻找已经存储的直方图。最后,当对于特定任务图像具有过高分辨率时,使用二次取样单元64。可对图像进行二次取样,以降低其分辨率。
[0053]在一些实施例中,还可提供其它组件,其中包括=I2C接口 38,其与照相装置配置命令进行接口 ;以及通用输入/输出装置40,其连接到所有对应模块,以接收通用输入和输出,并且在一些实施例中以便结合调试来使用。
[0054]参照图5,在一些实施例中,可实现分析辅助编码方案100。该方案可通过App、固件和/或硬件来实现。但是,硬件实施例可以更快。分析辅助编码可使用分析能力来确定应当对视频信息的给定帧的哪些部分(若有的话)进行编码。因此,在一些实施例中,一些部分或帧可以不需要经过编码,并且作为一个结果,可增加速度和带宽。
[0055]在一些实施例中,哪一个经过编码或者不经过编码可以是情况特定的,并且可以例如基于可用电池电力、用户选择和可用带宽来即时确定,这里只举几个例子。更具体来说,图像或帧分析可对现有帧与随后帧进行,以确定整个帧是否需要经过编码,或者是否只有帧的部分需要经过编码。这个分析辅助编码与常规的基于运动估计的编码(其只判定是否要包括运动向量,但是仍然对每一帧进行编码)形成对照。
[0056]在本发明的一些实施例中,后续帧有选择地经过编码或者不经过编码,以及基于那些区域中的运动范围,帧中的所选区域可经过编码或者根本不经过编码。然后,告知解码系统关于多少帧经过或者不经过编码,并且能够只根据需要来复制帧。
[0057]参照图5,第一帧或第一批多个帧可在开始经过完全编码,如框102所示,以便确定基准或参考。然后,在菱形框104的检查确定是否应当提供分析辅助编码。如果将不使用分析辅助编码,则编码如按常规进行的那样继续进行。
[0058]如果如在菱形框104所确定、提供分析辅助编码,则确定阈值,如框106所示。该阈值可以是固定的或者可以是自适应的,这取决于非运动因素,例如可用电池电力、可用带宽或用户选择,这里只举几个例子。随后,在框108,现有帧和后续帧经过分析,以确定是否存在超过阈值的运动,以及如果是的话,则确定它是否能够隔离到特定区域。为此,可利用各种分析单元,包括但不限于卷积单元、磨耗/膨胀单元、二次取样单元和查找单元。具体来说,可对图像或帧分析高于阈值的运动,可相对于先前帧和/或随后帧来分析图像或帧。
[0059]然后,如框110所示,可定位具有超过阈值的运动的区域。在一个实施例中,只有那些区域可经过编码,如框112所示。在一些情况下,给定帧上的区域可以根本没有经过编码,并且可以只记录这个结果,使得能够在解码期间只复制该帧。一般来说,编码器在报头或其它位置中提供与哪些帧经过编码以及帧是否仅具有经过编码的部分有关的信息。在一些实施例中,编码部分的地址可采取初始点和矩阵大小的形式来提供。
[0060]图3、图4和图5是可通过硬件来实现的流程图。它们也可通过App或固件来实现,在这种情况下,它们可包含在诸如光存储器、磁存储器或半导体存储器之类的非暂时计算机可读介质上。非暂时介质存储用于由处理器实行的指令。这种处理器或控制器的示例可包括分析引擎20,以及适当的非暂时介质可包括主存储器28和外部存储器22 (作为两个示例)。
[0061]如图1所示,视频分析引擎20耦合到包括中央处理单元12的主机。引擎20与主中央处理单元12无关地运行指令。但是,主中央处理单元必须为引擎20馈送数据和指令,并且它必须接收操作结果。为了实现这些任务,在用于完成指令运行的轮询中不引起开销的情况下,在一些实施例中,可应用用智能消息来发信号通知的中断(MS1-X)。
[0062]为了确保用于要求对主机的大数据传递的指令的数据完整性,引擎20使用生成MS1-X中断的RAISE指令。所产生的MSI中断不仅用作中断,而且还在中断的消息数据字段中携带附加信息[WHAT INFORMATION?],以降低服务于中断时所涉及的开销。此外,智能MS1-X中断控制器将对来自指令分发单元的RAISE中断请求的确认拖延到完成数据传递给主机。这种机制可确保RAISE指令的中断仅在READ或RMD指令的成功完成之后才经过外设组件互连Express总线18来发送。
[0063]在一个实施例中,MS1-X接口的结构如下所示,其中IC是引擎20,O是输出,I是输入,以及大小以字节为单位。
【权利要求】
1.一种方法,包括: 提供多个功能单元的一组配置和状态寄存器;以及 提供多个可编程地址寄存器,以指定所述配置和状态寄存器的起始地址。
2.如权利要求1所述的方法,包括在引导序列期间启用所述地址寄存器的编程。
3.如权利要求1所述的方法,包括提供各功能单元的地址寄存器。
4.如权利要求1所述的方法,包括提供所述地址寄存器,以使编程人员能够访问功能单元的配置和状态寄存器。
5.如权利要求1所述的方法,包括防止对所述地址寄存器的写入。
6.如权利要求5所述的方法,包括通过设置用于防止写入的位来防止写入。
7.如权利要求6所述的方法,包括要求签名以重置所述位。
8.一种存储由处理器所运行以实行包括下列步骤的方法的指令的非暂时计算机可读介质: 提供多个功能单元的一组配置和状态寄存器;以及 提供多个可编程地址寄存器,以指定所述配置和状态寄存器的起始地址。
9.如权利要求8所述的介质,还存储被运行以实行包括在引导序列期间启用所述地址寄存器的编程的方法的指令。
10.如权利要求8所述的介质,还存储被运行以实行包括提供各功能单元的地址寄存器的方法的指令。
11.如权利要求8所述的介质,还存储被运行以实行包括提供所述地址寄存器以使编程人员能够访问功能单元的配置和状态寄存器的方法的指令。
12.如权利要求11所述的介质,还存储被运行以实行包括防止写入的方法的指令。
13.如权利要求12所述的介质,还存储被运行以实行包括通过设置用于防止写入的位来防止写入的方法的指令。
14.如权利要求13所述的介质,还存储被运行以实行包括通过要求签名以重置所述位来防止写入的方法的指令。
15.一种设备,包括: 用于多个功能单元的一组配置和状态寄存器;以及 多个可编程地址寄存器,其指定所述配置和状态寄存器的起始地址。
16.如权利要求15所述的设备,包括各功能单元的地址寄存器。
17.如权利要求15所述的设备,包括使编程人员能够访问功能单元的配置和状态寄存器的所述地址寄存器。
18.如权利要求15所述的设备,所述地址寄存器防止对所述地址寄存器的写入。
19.如权利要求18所述的设备,所述地址寄存器包括用于防止对所述寄存器的写入的位。
20.如权利要求8所述的设备,其中,所述地址寄存器要求签名以重置所述位。
【文档编号】G06F9/06GK104025026SQ201180076045
【公开日】2014年9月3日 申请日期:2011年12月29日 优先权日:2011年12月29日
【发明者】N.多达普内尼, A.米什拉, J.M.罗德里格斯 申请人:英特尔企业
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图