CN104145244A - 用于视频分析和编码的智能msi-x中断 - Google Patents

用于视频分析和编码的智能msi-x中断 Download PDF

Info

Publication number
CN104145244A
CN104145244A CN201180075963.2A CN201180075963A CN104145244A CN 104145244 A CN104145244 A CN 104145244A CN 201180075963 A CN201180075963 A CN 201180075963A CN 104145244 A CN104145244 A CN 104145244A
Authority
CN
China
Prior art keywords
interruption
video
unit
frame
instruction
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.)
Pending
Application number
CN201180075963.2A
Other languages
English (en)
Inventor
N·多德阿普内尼
A·米什拉
J·M·罗德里格斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104145244A publication Critical patent/CN104145244A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression

Abstract

视频分析可以通过选择性地仅编码帧的部分并且替代地使用先前编码的部分来辅助视频编码。当后续帧具有小于阈值的运动等级时,可以使用先前编码的部分。在这样的情况下,在一些实施例中,后续帧的全部或者部分可以不被编码,增加了带宽和速度。

Description

用于视频分析和编码的智能MSI-X中断
背景技术
本发明通常涉及计算机,并且尤其涉及视频处理。
存在其中视频必须被处理和/或存储的许多应用。一个示例是视频监控,其中一个或多个视频馈送可以被接收、分析和处理用于安全或其它目的。另一传统的应用是视频会议。
典型地,诸如中央处理单元的通用处理器用于进行视频处理。在一些情况下,被称为图形处理器的专门处理器可以辅助中央处理单元。
视频分析涉及获得关于视频信息的内容的信息。例如,视频处理可以包括内容分析,其中内容视频被分析,以便检测某些事件或者出现,或者以便发现感兴趣的信息。
消息信号中断或MSI是一种用于生成中断的技术。典型地,每一个设备具有当该设备想要中断主机中央处理单元时被生效的中断引脚。在外围部件互连高速规范中,不存在单独的中断引脚。替代地,特殊消息允许引脚生效或者失效的仿真。消息信号中断允许设备将少量的数据写入存储器空间中的专门地址。芯片集接着将中断传递到中央处理单元。
MSI-X允许设备分配多达两千零四十八个中断。MSI-X在外围部件互连高速基本规范修订版1.0a和1.1第6.1节中进行了指定。MSI-X允许大量的中断,向每一个中断给予单独的目标地址和识别数据字。它采用64位寻址和中断屏蔽。
附图说明
图1是根据本发明一个实施例的系统架构。
图2是根据一个实施例的图1中示出的视频分析引擎的电路描绘;
图3是根据本发明一个实施例用于视频捕获的流程图;
图4是根据一个实施例用于二维矩阵存储器的流程图;
图5是根据一个实施例用于分析辅助编码的流程图;
图6是另一实施例的流程图;
图7是一个实施例的中断控制的描绘;
图8是一个实施例的中断时序图;以及
图9是一个实施例的流程图。
具体实施方式
根据一些实施例,可以并行处理多个视频流。可以在实现视频分析的同时对视频流进行编码。而且,可以对多个流中的每一个流进行编码,与此同时,对多个流中的每一个流进行视频分析。在一些实施例中,编码或者分析的特性可以由用户在过程中(on the fly)改变,尽管编码和分析已经正在被实现。
尽管给出了其中使用视频分析的实施例的示例,但是在一些实施例中,视频分析仅仅是可选的,可以使用或者不使用视频分析。
参照图1,计算机系统10可以是各种计算机系统中的任意计算机系统,包括使用视频分析的那些计算机系统,例如视频监控和视频会议应用,以及不使用视频分析的实施例。系统10可以是桌上型计算机、服务器、膝上型计算机、移动互联网设备或者蜂窝电话,仅提出几个示例。
系统10可以具有耦合到系统总线14的一个或者多个主机中央处理单元12。系统存储器22可以耦合到系统总线14。尽管提供了主机系统架构的示例,但是本发明绝不局限于任意特定的系统架构。
系统总线14可以耦合到总线接口16、该总线接口16依次耦合到传统总线18。在一个实施例中,可以使用外围部件互连高速(PCIe)总线,但是本发明绝不局限于任意特定的总线。
视频分析引擎20可以经由总线18耦合到主机。在一个实施例中,视频分析引擎可以是单个集成电路,其提供编码和视频分析二者。在一个实施例中,集成电路可以使用嵌入式动态随机存取存储器(EDRAM)技术。然而,在一些实施例中,可以省去编码或者视频分析。此外,在一些实施例中,引擎20可以包括存储器控制器,该存储器控制器控制板上集成的二维矩阵存储器,并且提供与外部存储器的通信。
因而,在图1中说明的实施例中,视频分析引擎20与本地动态随机存取存储器(DRAM)19进行通信。具体地说,视频分析引擎20可以包括用于访问存储器19的存储器控制器。替代地,引擎20可以使用系统存储器22并且可以包括到系统存储器的直接连接。
还耦合到视频分析引擎20的是一个或多个摄像机24。在一些实施例中,多达四个同时发生的视频输入可以按照标清格式被接收。在一些实施例中,一个高清输入可以在三个输入上被提供,并且一个标清可以在第四个输入上被提供。在其它实施例中,可以提供更多或更少的高清输入,并且可以提供更多或更少的标清输入。作为一个示例,三个输入中的每一个可以接收10位的高清输入数据,例如R、G和B输入或者Y、U和V输入,每一个位于单独的10位输入线上。
在具有位于页面顶部处的四个摄像机通道输入的实施例中描绘了图2中示出的视频分析引擎20的一个实施例。该四个输入可以由视频捕获接口26接收。视频捕获接口26可以按照摄像机输入或者其它视频信息的形式接收多个同时发生的视频输入,该其它视频信息包括电视机、数字视频记录仪或者媒体播放器输入,仅提出几个示例。
视频捕获接口自动地捕获和拷贝每一个输入帧。输入帧的一个拷贝可以被提供到VAFF单元66,并且另一个拷贝可以被提供到VEFF单元68。VEFF单元68负责将视频存储在诸如图1中示出的存储器22的外部存储器上。在一个实施例中,外部存储器可以耦合到片上系统存储器控制器/仲裁器50。在一些实施例中,外部存储器上的存储可以用于视频编码目的。具体地说,如果一个拷贝被存储在外部存储器上,则它能够由视频编码器32访问,用于按照期望的格式对信息进行编码。在一些实施例中,有多种格式可用,并且所述系统可以选择最期望的特定编码格式。
如上所述,在一些情况下,视频分析可以用于改善由视频编码器32实现的编码处理的效率。一旦帧被编码,它们就可以经由PCI快速总线36被提供到主机系统。
同时,输入视频帧的另一拷贝被存储在二维矩阵或主存储器28上。VAFF可以同时处理和传递所有四个输入视频通道。VAFF可以包括四个复制的单元以便处理和传递视频。用于存储器28的视频传递可以使用多路复用。在一些实施例中,由于视频回扫时间中固有的延迟,多通道的传输可以实时进行。
主存储器上的存储可以选择性地被非线性或者线性地实现。在传统的线性寻址中,交叉寻址线上的一个或多个地址被指定来访问存储器位置。在一些情况下,诸如字线或者位线的寻址线可以被指定,并且沿着该字线或者位线的程度可以被指示,以便被寻址的存储器线的一部分可以按照自动方式被连续地存储。
相比而言,在二维或者非线性寻址中,行线和列线二者可以在一个操作中被访问。该操作可以指定存储器矩阵内的初始点,例如在诸如行线或者列线的两个寻址线的交叉点处。接着,存储器尺寸或其它定界符被提供以便指示矩阵在二维上的程度,例如,沿着行线和列线。一旦指定了初始点,整个矩阵可以通过可寻址位置的自动增量而被自动地存储。换句话说,在初始点之后,不必回到主机或者其它设备以便确定用于存储存储器矩阵的随后部分的地址。二维存储器卸下生成地址的任务,或者基本上完全取消该任务。结果,在一些实施例中,可以减少所要求的带宽和访问时间。
基本上,相同的操作可以被反向完成以便读取二维存储器矩阵。替代地,二维存储器矩阵也可以使用传统的线性寻址被访问。
尽管给出了其中存储器矩阵的尺寸被指定的示例,但是也可以提供其它定界符,包括二维中每一维的程度(即,沿着字线和位线)。二维存储器对于静止和移动图片、图表以及具有二维中的数据的其它应用是有优势的。
信息可以按照二维或者按照一维被存储在存储器28中。在一个实施例中,一和二维之间的转换可以在硬件中在过程中自动地发生。
在一些实施例中,多个流的视频编码可以在视频编码器中进行,同时,该多个流也可以在视频分析功能单元42中进行分析。这可以通过在视频捕获接口26中制作每一个流的拷贝,并且将每一个流的拷贝的一个集合发送到视频编码器32,同时另一拷贝进入视频分析功能单元42来实现。
在一个实施例中,该多个流中的每一个的时间复用可以在视频编码器32和视频分析功能单元42的每一个中进行。例如,基于用户输入,来自第一流的一个或多个帧可以被编码,接着是来自第二流的一个或多个帧,接着是来自下一个流中的一个或多个流,等等。类似地,时间复用可以按照相同的方式在视频分析功能单元42中使用,其中,基于用户输入,对来自一个流的一个或多个帧进行视频分析,接着是来自下一个流的一个或多个帧,等等。因而,一系列流可以基本上被同时处理,也就是说,同时位于编码器和视频分析功能单元中。
在一些实施例中,用户能够首先设置哪一个流的序列被处理以及在任意的特定时间每一个流的多少个帧被处理。在视频编码器和视频分析引擎的情况下,随着帧被处理,它们能够在总线36上被输出。
编码器中每一个流的上下文可以被保留在寄存器组122中专用于该流的寄存器中,寄存器组可以包括对于每一个流的寄存器。寄存器组122可以记录编码的特性,该特性已经按照各种方式中的一种被指定,包括用户输入。例如,对于每一个流期望的编码的分辨率、压缩率和类型可以被记录。接着,随着时间复用的编码发生,对于正确的流,视频编码器能够访问来自寄存器116的对于正在被处理的当前流的正确特性。
类似地,同样的事情能够使用寄存器组124在视频分析功能单元46中进行。换句话说,每流的视频分析处理或编码的特性能够被记录在寄存器124和122内,一个寄存器保留用于寄存器的每一个组中的每一个流。
此外,用户或者一些其它源可以指导特性在过程中被改变。“在过程中”意在指代在视频分析功能单元42的情况下在分析处理期间发生,或者在视频编码器32的情况下在编码期间发生。
当帧正在被处理时改变出现时,该改变对于视频编码器可以被初始记录在影子寄存器116中,并且对于视频分析功能单元42可以被初始记录在影子寄存器114中。接着,只要该帧(或者指定数量的帧)被完成,视频编码器32就检查以便查看是否任意改变已经被存储在寄存器116中。如果为是,则视频编码器将那些改变通过通路120传输到寄存器122,更新该寄存器中的新特性,适合于已经使它的编码特性在过程中改变的每一个流。
再者,在一个实施例中,同样的在过程中改变可以在视频分析功能单元42中进行。当检测到在过程中改变时,现有的帧(或者现有的工作组)可以使用旧的特性完成,但是将该改变存储在影子寄存器114中。接着,在恰当的时间,在工作负荷或者帧已经完成处理之后,该改变可以通过总线118被从寄存器114传送到视频分析功能单元42,用于存储在寄存器124中,通常替换存储在寄存器124当中的单独寄存器中用于任意特定流的特性。接着,一旦更新完成,下一个处理负荷就使用新的特性。
因而,参照图6,序列130可以被实现在软件、固件和/或硬件中。在基于软件或固件的实施例中,该序列可以通过存储在非暂态计算机可读介质中的计算机执行的指令来实现,该非暂态计算机可读介质例如是光学、磁或半导体存储器。例如,在一个实施例中,在编码器32的情况下,该序列可以被存储在编码器内的存储器中,并且在分析功能单元的情况下,他们可以例如被存储在像素管线单元44中。
初始地,该序列等待用户输入上下文指令用于进行编码或分析。在一些实施例中,对于分析和编码来说,流程可以相同。一旦接收到用户输入,如在菱形132中确定的,对于每一个流的上下文被存储在适当的寄存器122或124中,如方框134指示的。接着,时间复用处理开始,如在方框136中指示的。在该处理期间,菱形138处的检查确定是否已经存在任意的处理改变指令。如果为否,则菱形142处的检查确定处理是否完成。如果为否,则时间复用处理继续。
如果已经接收到处理改变,则它可以被存储在适当的影子寄存器114或116中,如在方框140中指示的。接着,在当前处理任务完成时,该改变可以在下一组操作中被自动地实现,该下一组操作在视频编码器32的情况下是编码或者在功能单元42的情况下是分析。
在一些实施例中,编码的频率可以随着编码器上负荷的幅度而改变。一般来说,编码器运行得足够快,使得它能够在从存储器中读出下一个帧之前完成对一个帧的编码。在许多情况下,编码引擎可以比在下一个帧或下一组帧从存储器中被读出之前对一个帧或一组帧进行编码所需的速度更快的速度运行。
上下文寄存器可以存储用于进行编码或分析的任何必要的准则,在编码器的情况下包括分辨率、编码类型和压缩率。一般来说,该处理可以按照循环赛方式进行,从一个流或者通道前进到下一个流或者通道。在一个实施例中,经编码的数据接着被输出到外围组件互连(PCI)快速总线18。在一些情况下,与PCI快速总线相关联的缓冲器可以从每一个通道接收编码。即,在一些实施例中,缓冲器可以被提供用于与PCI快速总线相关联的每一个视频通道。每一个通道缓冲器可以被清空到由与PCI快速总线相关联的仲裁器控制的总线。在一些实施例中,仲裁器将每一个通道清空到总线的方式可以受用户输入影响。
因而,参照图3,用于视频捕获的系统20可以被实现在硬件、软件和/或固件中。在一些情况下,由于硬件实施例能够具有更高的速度,因此在一些情况下它们会是有优势的。
如在方框72中指示的,视频帧可以从一个或多个通道被接收。接着,视频帧被拷贝,如在方框74中指示的。接下来,视频帧的一个拷贝被存储在外部存储器中用于编码,如在方框76中指示的。另一个拷贝被存储在内部或主存储器28中用于分析目的,如在方框78中指示的。
接下来参照二维矩阵序列80,如图4所示,序列可以被实现在软件、固件或硬件中。再者,在使用硬件的实施例中可以存在速度优势。
初始地,菱形82处的检查确定是否已经接收到存储命令。传统地,这样的命令可以从主机系统,特别是从它的中央处理单元12被接收。那些命令可以由调度单元34接收,该调度单元34接着将该命令提供到引擎20的适当单元,用于实现该命令。当该命令已经被实现时,在一些实施例中,调度单元回报到主机系统。
如果涉及存储命令,如在菱形82中确定的,则初始存储器位置和二维尺寸信息可以被接收,如在方框84中指示的。接着该信息被存储在适当的二维矩阵中,如在方框86中指示的。初始位置可以例如定义矩阵的左上角。该存储操作可以自动地在具有需要尺寸的存储器20内找到矩阵,以便实现该操作。在一些实施例中,一旦提供了存储器中的初始点,该操作就可以自动地存储矩阵的后续部分,而不要求额外的地址计算。
相反,如果涉及读取访问,如在菱形88中确定的,则初始位置和二维尺寸信息被接收,如在方框90中指示的。接着,指定的矩阵被读取,如在方框92中指示的。再者,访问可以按照自动的形式进行,其中初始点可以被访问,这将按照传统的线性寻址进行,接着剩余的地址被自动地确定,而不必返回并且按照传统的方式计算地址。
最后,如果移动命令已经从主机被接收,如在方框94中确定的,则初始地址和二维尺寸信息被接收,如在方框96中指示的,并且移动命令被自动地实现,如在方框98中指示的。再者,简单地通过指定开始位置并且提供尺寸信息,信息的矩阵可以被自动地从一个位置移动到另一个位置。
回来参照图2,视频分析单元42可以通过像素管线单元44耦合到系统的剩余部分。单元44可以包括执行来自调度单元34的命令的状态机。典型地,这些命令源于主机并且由调度单元实现。基于应用,可以包括各种不同的分析单元。在一个实施例中,可以包括卷积单元46,用于自动地提供卷积。
卷积命令可以包括命令和指定屏蔽、基准或内核的自变量(argument),使得能够将一幅捕获的图像中的特征与存储器28中的基准二维图像进行比较。该命令可以包括指定要将卷积结果存储到哪里的目的地。
在一些情况下,每一个视频分析单元可以是硬件加速器。“硬件加速器”意在指代比在中央处理单元上运行的软件更快地执行功能的硬件设备。
在一个实施例中,每一个视频分析单元可以是由专用于该单元的具体功能的专门硬件执行的状态机。结果,该单元可以按照相对快速的方式执行。而且,由于全部需要的是高速硬件加速器执行该任务并提供对于该任务的自变量,因此对于由视频分析单元实现的每一个操作,可以仅需要一个时钟周期,并且接着可以实现操作的序列,而不需要来自包括主机处理器的任意处理器的进一步的控制。
在一些实施例中,其它视频分析单元可以包括:按照自动的方式计算质心的质心单元48;按照自动的方式确定直方图的直方图单元50;以及膨胀/腐蚀单元52。
膨胀/腐蚀单元52可以负责按照自动的方式增加或者降低给定图像的分辨率。当然,不能够增加分辨率,除非信息已经可用,但是在一些情况下,以较高分辨率接收的帧可以被以较低分辨率处理。结果,该帧可以在较高分辨率下可用,并且可以由膨胀/腐蚀单元52转换到较高分辨率。
矩阵的存储器传输(MTOM)单元54负责实现移动指令,如先前描述的。在一些实施例中,可以提供算术单元56和布尔单元58。尽管这些相同的单元可以结合中央处理单元或者已有的协处理器可用,但是使它们位于引擎20的板上会是有利的,因为它们的片上存在可以降低对于从引擎20到主机并且返回的多个数据传输操作的需要。而且,在一些实施例中,通过使它们在引擎20的板上,可以使用二维或者矩阵主存储器。
提取单元60可以被提供以便从图像提取向量。查找单元62可以用于查找特定类型的信息,以便查看它是否已经被存储。例如,查找单元可以用于找到已经存储的直方图。最后,当图像对于特定的任务具有太高的分辨率时,使用子样本单元64。图像可以被子采样以便降低其分辨率。
在一些实施例中,也可以提供其它组件,包括:I2C接口38,用于与摄像机配置命令进行接口;以及通用输入/输出设备40,连接到所有相对应的模块以便接收通用的输入和输出,并且在一些实施例用于结合调试一起使用。
参照图5,在一些实施例中,可以实现分析辅助的编码方案100。该方案可以被实现在软件、固件和/或硬件中。然而,硬件实施例可能更快。分析辅助的编码可以使用分析能力来确定应该对视频信息的给定帧的什么部分,如果存在,进行编码。结果,在一些实施例中,一些部分或者帧可能不需要被编码,结果,可以增加速度和带宽。
在一些实施例中,被编码的内容和不被编码的内容可以是案例特定的,并且可以被在过程中确定,例如基于可用的电池功率、用户选择以及可用的带宽,这里仅提出几个示例。更具体地说,图像或帧分析可以在现有帧和后续帧上进行,以便确定是否需要对整个帧进行编码或者是否仅需要对帧的部分进行编码。这一分析辅助的编码与传统的基于运动估计的编码形成对比,该传统的基于运动估计的编码仅决定是否包括运动向量,但是仍然对每一个帧进行编码。
在本发明的一些实施例中,连续帧可以在选择的基础上被编码或者不被编码,并且帧内的选定区域可以基于那些区域内的运动程度而被编码或者根本不被编码。接着,解码系统被告知多少帧被编码或者没有被编码,并且能够简单地根据需要来复制帧。
参照图5,第一帧可以在开始时被完全编码,如在方框102中指示的,以便确定基础或者基准。接着,菱形104处的检查确定是否应该提供分析辅助的编码。如果将不使用分析辅助的编码,则编码按照传统继续进行。
如果提供了分析辅助的编码,如在菱形104中确定的,则确定阈值,如在方框106中指示的。该阈值可以是固定的或者是自适应的,取决于非运动因素,例如可用的电池功率、可用的带宽、或者用户选择,这里仅提出几个示例。接下来,在方框108中,分析现有的帧和后续的帧,以便确定超出阈值的运动是否存在,如果存在,它是否能够被隔离到特定的区域。为此,可以使用各种分析单元,包括但不局限于卷积单元、腐蚀/膨胀单元、子样本单元和查找单元。具体地说,图像或帧可以对于阈值之上的运动被分析,相对于之前和/或后续的帧被分析。
接着,如在方框110中指示的,可以定位具有超过阈值的运动的区域。在一个实施例中,仅对那些区域进行编码,如在方框112中指示的。在一些情况下,可以根本不对给定帧上的区域进行编码,并且可以简单地记录这一结果,使得在解码期间能够简单地复制该帧。一般来说,编码器在头部或其它位置中提供关于对什么帧进行编码以及帧是否仅具有被编码的部分的信息。在一些实施例中,被编码的部分的地址可以按照初始点和矩阵尺寸的形式被提供。
图3、4和5是可以被实现在硬件中的流程图。他们也可以被实现在软件或固件中,在这种情况下,他们可以被体现在非暂态计算机可读介质上,例如光学、磁或者半导体存储器。非暂态介质存储指令用于由处理器执行。这样的处理器或控制器的示例包括分析引擎20,并且适合的非暂态介质可以包括主存储器28和外部存储器22,作为两个示例。
如图1所示,视频分析引擎20耦合到包括中央处理单元12的主机。引擎20独立于主机中央处理单元12来执行指令。然而,主机中央处理单元必须为引擎20馈送数据和指令,并且它必须接收操作的结果。在一些实施例中,为了完成这些任务,在没有针对指令执行的完成进行轮询时导致的开销的情况下,可以应用智能消息信号中断(MSI-X)。
为了确保要求到主机的大数据传输的指令的数据完整性,引擎20使用生成MSI-X中断的RAISE指令。所产生的MSI中断不仅用作中断,而且还在该中断的消息数据字段中承载额外的信息[什么信息?],以便降低服务该中断时涉及的开销。而且,智能MSI-X中断控制器拖延对来自指令调度单元的RAISE中断请求的确认,直到传输到主机的数据是完整的。这一机制可以确保仅在READ或RMD指令成功完成之后通过外围组件互连快速总线18来发送用于RAISE指令的中断。
在一个实施例中,MSI-X接口的结构如下,其中IC是引擎20,O是输出并且I是输入,尺寸以字节为单位。
参照图7,中断控制器300从提供中断的不同组件接收时钟并且从那些相同的设备接收复位信号。配置及状态寄存器(CSR)解码302接收CSR输入。它向MSI-X接口304提供信号。它还向遗留的中断悬挂寄存器306提供解码信号。MSI-X接口从重新同步单元310接收中断。重新同步单元310从诸如视频编码器(VE)、存储器矩阵(MM)、视频捕获接口(VCI)、外部存储器(DDR)、I2C总线(I2C)、通用输入/输出(GPIO)、调度单元(DU)的功能单元接收中断,并且接收调度单元RAISE信号。
将外围部件互连调度单元写完成信号提供到调度单元RAISE控制器308。控制器308为调度单元提供写完成确认信号并且从重新同步单元310接收信号且向重新同步单元310发送信号。
因而参照图8,说明了各种信号的时序。在顶部示出了核心时钟,接着是视频编码器MSI请求。接下来示出了视频编码器MSI许可的时序。这是指示发送MSI-x的请求被接受的一个周期脉冲。接下来,针对一个实施例说明了MSI-X地址信号。后面是MSI-X数据信号。最后,说明了视频编码器MSI业务类别(tc)信号,后面是配置(CFG)MSI-X编码器信号。业务类别是PCI快速中的系统业务的类型,其可以被指派到所支持的虚拟通道用于流控制目的。当MSI请求被生效时,MSI-X请求的业务类别是有效的。cfg_msix_en用于MSI-X能力结构中的MSI-X控制寄存器的MSI-X使能位。
参照图9,用于实现中断控制器的序列400可以被实现在软件、固件和/或硬件中。在软件和固件实施例中,它可以由存储在非暂态计算机可读介质中的计算机执行的指令实现,该非暂态计算机可读介质例如是磁、光学或者半导体存储设备。例如,在一个实施例中,所述指令可以被实现在中断控制器300内。
所述序列可以通过检测中断开始,如在菱形402中指示的。接着在方框404中,可以指示该中断。中断可以伴随有地址值、数据值和业务类别,如在方框406中指示的,以便辅助服务该中断。
接着,菱形408处的检查确定数据传输是否完成。如果为是,则如在方框410中指示的,可以发送确认。否则,如在方框412中指示的,确认被延迟。
这里描述的图形处理技术可以被实现在各种硬件架构中。例如,图形功能可以被集成在芯片集内。替代地,可以使用分立的图形处理器。作为再一实施例,图形功能可以由包括多核处理器的通用处理器实现。
在整个说明书中对“一个实施例”或“实施例”的引用表示结合该实施例描述的具体特征、结构或特性被包括在本发明所囊括的至少一个实现中。因而,短语“一个实施例”或“实施例”的出现并不一定指代相同的实施例。而且,特定的特征、结构或特性可以按照除了所说明的特定实施例之外的其它适合的形式来构建,并且所有这样的形式可以被包括在本申请的权利要求内。
尽管关于有限数量的实施例描述了本发明,但是本领域的技术人员将意识到对其做出的各种修改和变化。所附权利要求意在覆盖落在本发明的精神和范围内的所有这样的修改和变化。

Claims (18)

1.一种方法,包括:
生成从视频分析引擎到主机的中断,所述中断指示中断并且包括用于辅助服务所述中断的信息。
2.如权利要求1所述的方法,包括对于所述中断提供地址值。
3.如权利要求1所述的方法,包括提供对于所述中断的数据值。
4.如权利要求1所述的方法,包括提供消息信号中断。
5.如权利要求4所述的方法,包括提供对于所述中断的业务类别。
6.如权利要求1所述的方法,包括延迟对所述中断的确认,直到完成到所述主机的数据传输为止。
7.一种非暂态计算机可读介质,存储由处理器执行以便执行方法的指令,所述方法包括:
生成从视频分析引擎到主机的中断,所述中断指示中断并且包括用于辅助服务所述中断的信息。
8.如权利要求7所述的介质,进一步存储被执行以便执行方法的指令,所述方法包括对于所述中断提供地址值。
9.如权利要求7所述的介质,进一步存储被执行以便执行方法的指令,所述方法包括提供对于所述中断的数据值。
10.如权利要求7所述的介质,进一步存储被执行以便执行方法的指令,所述方法包括提供消息信号中断。
11.如权利要求10所述的介质,进一步存储被执行以便执行方法的指令,所述方法包括提供对于所述中断的业务类别。
12.如权利要求7所述的介质,进一步存储被执行以便执行方法的指令,所述方法包括延迟对所述中断的确认,直到完成到所述主机的数据传输为止。
13.一种装置,包括:
视频分析引擎;以及
中断控制器,用于生成从所述视频分析引擎到主机的中断,所述中断指示中断并且包括用于辅助服务所述中断的信息。
14.如权利要求13所述的装置,所述控制器用于对于所述中断提供地址值。
15.如权利要求13所述的装置,所述控制器用于提供对于所述中断的数据值。
16.如权利要求13所述的装置,所述控制器用于提供消息信号中断。
17.如权利要求16所述的装置,所述控制器用于提供对于所述中断的业务类别。
18.如权利要求13所述的装置,所述控制器用于延迟对所述中断的确认,直到完成到所述主机的数据传输为止。
CN201180075963.2A 2011-12-28 2011-12-28 用于视频分析和编码的智能msi-x中断 Pending CN104145244A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067448 WO2013100919A1 (en) 2011-12-28 2011-12-28 Intelligent msi-x interrupts for video analytics and encoding

Publications (1)

Publication Number Publication Date
CN104145244A true CN104145244A (zh) 2014-11-12

Family

ID=48698163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075963.2A Pending CN104145244A (zh) 2011-12-28 2011-12-28 用于视频分析和编码的智能msi-x中断

Country Status (4)

Country Link
US (2) US9973752B2 (zh)
EP (1) EP2798456A4 (zh)
CN (1) CN104145244A (zh)
WO (1) WO2013100919A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448020B2 (en) 2011-12-28 2019-10-15 Intel Corporation Intelligent MSI-X interrupts for video analytics and encoding

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014493B2 (en) * 2011-09-06 2015-04-21 Intel Corporation Analytics assisted encoding

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970206B1 (en) * 2000-04-20 2005-11-29 Ati International Srl Method for deinterlacing interlaced video by a graphics processor
US20060150071A1 (en) * 2005-01-05 2006-07-06 Microsoft Corporation Software-based video rendering
US20060294277A1 (en) * 2005-06-24 2006-12-28 Tetrick Raymond S Message signaled interrupt redirection
CN101488118A (zh) * 2008-01-18 2009-07-22 株式会社日立制作所 复合型计算机系统的管理方法以及复合型计算机系统
US20110029101A1 (en) * 2009-08-03 2011-02-03 Rafael Castro Scorsi Methods for Data Acquisition Systems in Real Time Applications
US20110211036A1 (en) * 2010-02-26 2011-09-01 Bao Tran High definition personal computer (pc) cam

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08124083A (ja) 1994-10-21 1996-05-17 Toyota Motor Corp 移動体撮影装置
US5896176A (en) * 1995-10-27 1999-04-20 Texas Instruments Incorporated Content-based video compression
JP4393014B2 (ja) * 2001-05-30 2010-01-06 パナソニック株式会社 伝送装置及び伝送方法
FR2844130B1 (fr) * 2002-09-04 2004-11-19 St Microelectronics Sa Procede de traitement de donnees audio/video au sein d'un lecteur de disque audio/video, et lecteur correspondant.
KR20050120491A (ko) * 2004-06-19 2005-12-22 삼성전자주식회사 멀티미디어 방송 시스템에서의 전송 에러 처리방법 및장치
US20080162762A1 (en) * 2006-12-29 2008-07-03 Gilbert Neiger Interrupt remapping based on requestor identification
US7805556B2 (en) 2007-05-01 2010-09-28 Ricoh Company, Ltd. Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method
US7725637B2 (en) 2007-12-31 2010-05-25 Intel Corporation Methods and apparatus for generating system management interrupts
WO2010067342A1 (en) * 2008-12-10 2010-06-17 Moqom Limited Electronic transaction fraud prevention
US8250273B2 (en) * 2009-09-14 2012-08-21 International Business Machines Corporation Secure handling and routing of message-signaled interrupts
US8244946B2 (en) * 2009-10-16 2012-08-14 Brocade Communications Systems, Inc. Interrupt moderation
US8321615B2 (en) * 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
US20110246686A1 (en) * 2010-04-01 2011-10-06 Cavanagh Jr Edward T Apparatus and system having pci root port and direct memory access device functionality
US9973752B2 (en) 2011-12-28 2018-05-15 Intel Corporation Intelligent MSI-X interrupts for video analytics and encoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970206B1 (en) * 2000-04-20 2005-11-29 Ati International Srl Method for deinterlacing interlaced video by a graphics processor
US20060150071A1 (en) * 2005-01-05 2006-07-06 Microsoft Corporation Software-based video rendering
US20060294277A1 (en) * 2005-06-24 2006-12-28 Tetrick Raymond S Message signaled interrupt redirection
CN101488118A (zh) * 2008-01-18 2009-07-22 株式会社日立制作所 复合型计算机系统的管理方法以及复合型计算机系统
US20110029101A1 (en) * 2009-08-03 2011-02-03 Rafael Castro Scorsi Methods for Data Acquisition Systems in Real Time Applications
US20110211036A1 (en) * 2010-02-26 2011-09-01 Bao Tran High definition personal computer (pc) cam

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王奇: "《PCI Express体系结构导读》", 31 March 2010 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448020B2 (en) 2011-12-28 2019-10-15 Intel Corporation Intelligent MSI-X interrupts for video analytics and encoding

Also Published As

Publication number Publication date
US9973752B2 (en) 2018-05-15
WO2013100919A1 (en) 2013-07-04
EP2798456A4 (en) 2015-08-19
US20180227581A1 (en) 2018-08-09
US10448020B2 (en) 2019-10-15
US20140294102A1 (en) 2014-10-02
EP2798456A1 (en) 2014-11-05

Similar Documents

Publication Publication Date Title
CN100538736C (zh) 存储和回存状态上下文在图形处理单元的方法和装置
US10070134B2 (en) Analytics assisted encoding
US20240143392A1 (en) Task scheduling method, chip, and electronic device
CN114399035A (zh) 搬运数据的方法、直接存储器访问装置以及计算机系统
US10448020B2 (en) Intelligent MSI-X interrupts for video analytics and encoding
US7934082B2 (en) Information processing apparatus and exception control circuit
CN104025026B (zh) 访问用于配置空间的配置和状态寄存器
CN111443898A (zh) 基于优先级队列与有限状态机的流程式控制软件设计方法
US20130278775A1 (en) Multiple Stream Processing for Video Analytics and Encoding
US20130329137A1 (en) Video Encoding in Video Analytics
CN103918002B (zh) 用于视频分析和编码的存储器控制器
CN104011655A (zh) 管芯上/管芯外存储器管理
CN109089120B (zh) 分析辅助编码
CN104011654A (zh) 用于视频分析的存储器前瞻引擎

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20141112