CN103918002A - 用于视频分析和编码的存储器控制器 - Google Patents

用于视频分析和编码的存储器控制器 Download PDF

Info

Publication number
CN103918002A
CN103918002A CN201280055230.7A CN201280055230A CN103918002A CN 103918002 A CN103918002 A CN 103918002A CN 201280055230 A CN201280055230 A CN 201280055230A CN 103918002 A CN103918002 A CN 103918002A
Authority
CN
China
Prior art keywords
video
memory address
memory
linear
engine
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
Application number
CN201280055230.7A
Other languages
English (en)
Other versions
CN103918002B (zh
Inventor
A.米什拉
N.多达普内尼
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 CN103918002A publication Critical patent/CN103918002A/zh
Application granted granted Critical
Publication of CN103918002B publication Critical patent/CN103918002B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • 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/162User input

Abstract

视频分析可以用于通过选择性地仅编码帧的一部分而使用先前已编码的部分来辅助视频编码。当后续的帧具有的移动水平小于阈值时,可以使用先前编码的部分。在这种情况下,在一些实施例中,后续帧的全部或部分可以不进行编码,提高了带宽和速度。

Description

用于视频分析和编码的存储器控制器
技术领域
本发明一般涉及计算机,具体涉及视频处理。
背景技术
有许多应用要处理和/或存储视频。一个示例是视频监控,其中,出于安全性或其它目的,可能接收、分析和处理一个或多个视频馈入。另一种常规的应用是用于视频会议。
通常,使用诸如中央处理单元(CPU)的通用处理器进行视频处理。在一些情况下,可使用称作图形处理器的特殊处理器辅助中央处理单元。
视频分析包括获得与视频信息的内容有关的信息。例如,视频处理可包括内容分析,其中,对内容视频进行分析,以检测某些事件或情况,或找到感兴趣的信息。
附图说明
图1是根据本发明的一个实施例的系统体系结构;
图2是根据一个实施例的、用于图1所示的视频分析引擎的电路图;
图3是根据本发明一个实施例的、用于视频采集的流程图;
图4是根据本发明一个实施例的、用于二维矩阵存储器的流程图;
图5是根据本发明一个实施例的、用于分析辅助编码的流程图;
图6是用于另一个实施例的流程图;
图7是根据本发明一个实施例的、图2所示的存储器控制器的图; 和
图8是根据本发明一个实施例的、用于存储器控制器的流程图。
具体实施方式
根据一些实施例,用于视频分析引擎的存储器控制器可通过自动访问主存储器内的整个矩阵或主存储器内的任何存储位置来使存储器操作便利。在一些实施例中,主存储器可存储二维(2D)表示,该二维(2D)表示使存储器控制器能够随机存取存储器矩阵内的任何位置(包括一个像素)。
在一些实施例中,内部存储器可表示为2D存储器矩阵,且外部存储器可以是常规的线性存储器。存储在线性存储器中的数据可随后转换为二维格式,以在视频分析引擎中使用。
参照图1,计算机系统10可以是任何类型的计算机系统,包括那些使用
如视频监控和视频会议应用的视频分析技术的计算机系统以及不使用视频分析的实施例。举几个示例来说,系统10可以是台式计算机、服务器、膝上型计算机、移动互联网设备或蜂窝电话。
系统10可以具有一个或多个耦合到系统总线14的主机(host)中央处理单元12。系统存储器22可耦合到系统总线14。尽管提供了主机系统体系结构的一个示例,但本发明并不限于任何特定的体系结构。
系统总线14可以耦合到总线接口16 ,其接着耦合到常规总线18,在一个实施例中,可以使用外设组件互连快速(PCIE) 总线,但本发明并不限于任何特定的总线。
视频分析引擎20可经由总线18联接到主机。在一个实施例中,视频分析引擎可以是提供编码和视频分析两者的单个的集成电路。在一个实施例中,集成电路可以使用嵌入式动态随机存取存储器(EDRAM)技术。然而,在一些实施例中,可以省去编码或视频分析。此外,在一些实施例中,引擎20可包括控制板上集成二维矩阵存储器以及提供与外部存储器的通信的存储器控制器。
因此,在图1所示的实施例中,视频分析引擎20与本地动态随机存取存储器(DRAM)19连接。具体地,视频分析引擎20可包括用于访问存储器19的存储器控制器。备选地,引擎20可使用系统存储器22,并且可以包括与系统存储器的直接连接。
耦合到视频分析引擎20的也可以是一个或多个摄像机24。在一些实施例中,可以以标准定义格式接收高达四个同步视频输入。在一些实施例中,可在三个输入提供一个高清晰度输入,可在第四输入提供一个标准定义。在其它的实施例中,可提供更多或更少的高清晰度输入,以及可提供更多或更少的标准定义输入。作为一个示例,如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中。在一个实施例中,一维和二维之间的转换可以在硬件中在空中(on the fly)自动进行。
在一些实施例中,多个流的视频编码可以在一个视频编码器中进行,而于此同时所述多个流也正在视频分析功能单元42中进行分析。这可以通过如下来实现:将视频采集接口26中的流的每一个做一个副本,并将流的每一个的一套副本发送到视频编码器32,而另一套副本送往视频分析功能单元42。
在一个实施例中,多个流中的每一个的时分复用可以在视频编码器32和视频分析功能单元42中的每一个中进行。例如,基于用户输入,可以对来自第一个流的一个或多个帧进行编码,然后对来自第二个流的一个或多个帧进行编码,随后对来自下一个流的一个或多个流进行编码,等等。类似地,时分复用可以在视频分析功能单元42中以同样的方式使用,其中,根据用户输入,对来自一个流的一个或多个帧进行视频分析,然后对来自下一个流的一个或多个帧进行视频分析,以此类推。由此,一系列的流可以在编码器和视频分析功能单元中基本上同时进行处理,也就是说,一次性进行处理。
在一些实施例中,用户可以设定先处理哪一个流的顺序以及在任何特定时间一个流的多少个帧被处理。在视频编码器和视频分析引擎的情况下,当帧被处理后,它们可以在总线36上输出。
编码器中的每一个流的上下文可保留在寄存器组122中的专用于那个流的寄存器中,寄存器组122可以包括用于每一个流的的寄存器。寄存器组122可以记录已用各种不同的方式中的一种指定的编码特征,包括用户输入。例如,可以记录分辨率、压缩率以及每一个流需要的编码类型。然后,当时分复用编码发生时,视频编码器能够从寄存器116访问正在处理的当前流的正确的(correct)特征提供给正确的流。
类似地,同样的事情可以使用寄存器组124在视频分析功能单元46中进行。换句话说,每个流的视频分析处理或编码的特征可以记录在寄存器124和122内,在每一组寄存器中为每一个流保留一个寄存器。
此外,用户或一些其它源可以指示可以在空中改变特性。“在空中”意在指,在视频分析功能单元42的情况下,或在视频编码器32的情况下编码的情况下,在分析处理期间发生的变化。
当帧正在处理时有变化来临时,变化可以为视频编码器和影子寄存器114 以及为视频分析功能单元42初始记录在影子寄存器116中。然后,一旦该帧(或指定数目的帧)完成,视频编码器32就进行检查,以查看在寄存器116中是否已存储了任何改变。如果是这样,则视频编码器通过路径120将这些改变传送给寄存器122,在适于在空中改变了其编码特征的每一个流的寄存器中对新特征进行更新。
再一次,在一个实施例中,同样的在空中的改变可以在视频分析功能单元42中完成。当检测到在空中的改变时,现有的帧(或现有的工作组)可以使用旧的特征来完成,同时将变化存储在影子寄存器114中。然后,在适宜的时间,在工作负荷或帧完成处理后,改变可能会从寄存器114通过总线118传送给视频分析功能单元42,以用于在寄存器124中存储,通常替换在寄存器124之中的单独的寄存器中为任一特定流存储的特征。然后,一旦更新完成后,接下来的处理负荷就使用新特征。
因此,参照图6,序列130可以在软件、固件和/或硬件中实现。在基于软件或固件的实施例中,该序列可以通过存储在诸如光、磁或半导体存储器的非短暂性计算机可读介质中的计算机执行指令来实现。例如,在一个实施例中,在编码器32的情况下,该序列可被存储在该编码器内的存储器中,在是分析功能单元的情况下,它们可以存储在例如在像素流水线单元44中。
最初,序列等待用于编码或分析的上下文指令的用户输入。在一些实施例中,用于分析和编码的流可以是相同的。一旦在菱形框132中确定接收到用户输入,如框134所示,就在合适的寄存器122或124中为每一个流存储上下文。然后,如框136所示,时分复用处理开始。在此处理期间,由菱形框138的检查来确定是否有任何处理改变指令。如果没有,则由菱形框142的检查确定该处理是否已完成。如果不是,则时分复用处理继续进行。
如果处理变化已接收到,则如框140所示,它可以被存储在合适的影子寄存器114或116 中。然后,当当前处理的任务完成时,在下一组的操作中,不管是在视频编码器32的情况下进行编码,还是在功能单元42的情况下进行分析,变化都可以自动实现。
在一些实施例中,编码的频率可随编码器上的负荷的幅度而变化。通常,编码器运行的速度足够快,它能够在下一个帧从存储器中读出之前完成一个帧的编码。在许多情况下,编码引擎可以以比在下一个帧或下一组帧已用完存储器之前对一个帧或一组帧进行编码所需的速度更快的速度运行。
上下文寄存器可以存储用于进行编码或分析的任何必要的标准,在编码器的情况下,其包括分辨率、编码类型和压缩率。通常,该处理可以以循环(round robin)的方式、从一个流或信道到下一个流或信道继续操作来完成。然后,在一个实施例中,将编码的数据输出到外设组件互连快速(PCI)总线18。在一些情况下,与外PCI快速总线相关联的缓冲器可能会从每个信道接收编码。即,在一些实施例中,可以为与PCI快速总线相关联的每一个视频信道提供缓冲器。每一个信道缓冲器可清空到由与PCI快速总线相关联的仲裁器控制的总线。在一些实施例中,仲裁器将每一个信道清空到总线的方式可由用户输入来决定。
因此,参照图3,用于视频采集20的系统可以用硬件、软件和/或固件来实现。在某些情况下,硬件实施方式可能是有利的,因为它们可能能够以更快的速度运行。
如框72所示,视频帧可以从一个或多个信道进行接收。然后如框74所示,对视频帧进行复制。接着,如框76所示,将视频帧的一个副本存储在外部存储器中,以用于编码。如框78所示,将另一个副本存储在内部存储器或主存储器28中,以用于分析目的。
接下来参照图4所示的二维矩阵序列80,序列可以以软件、固件或硬件来实现。再一次,使用硬件实施例可能有速度上的优势。
首先,在菱形框82的检查确定是否已经接收到存储命令。通常,这样的命令可以从主机系统接收到,特别是从它的中央处理单元12接收到。那些命令可以由调度(dispatch)单元34接收到,然后调度单元34将命令提供给用于实现命令的引擎20的合适的单元。在一些实施例中,当命令已被实现时,调度单元报告回主机系统。
如果如在菱形框82确定的涉及存储命令,则如框84所示,可以接收到初始存储器位置和二维大小的信息。然后,如框86所示,将信息存储在合适的二维矩阵中。初始位置可以例如定义矩阵的左上角。存储操作可以自动地发现存储器20内的所需大小的矩阵,以便实现该操作。在一些实施例中,一旦提供了存储器中的初始点,操作就可以自动存储矩阵的随后的部分,而不需要额外的地址计算。
相反,如果如在菱形框88确定的涉及读访问,则如框90所示,接收初始位置和二维大小的信息。然后,如框92所示,读出指定的矩阵。再一次,访问可以以自动的方式来完成,其中,可以如常规的线性寻址中将进行的那样来访问初始点,然后,自动确定地址的其余部分,而不必像常规方式那样回去并计算地址。
最后,如果如在框94中确定的已经从主机接收到移动命令,则如框96所示,接收初始位置和二维大小的信息,且如框98所示,自动实现该移动指令。再一次,信息的矩阵可以简单地通过指定起始位置并提供大小信息而自动地从一个位置移动到另一个位置。
再次参照图2,视频分析单元42可以通过像素流水线单元44耦合到系统的其余部分。单元44可包括执行来自调度单元34的命令的状态机。典型地,这些命令产生于主机并由调度单元实现。各种不同的分析单元可以根据应用而被包括在内。在一个实施例中,可包括卷积单元46,以用于自动提供卷积。
卷积命令可以包括命令和指定模板(mask)、参考或内核的参数(argument),使得在一个采集的图像中的特征能够与在存储器28中的参考二维图像相比较。命令可以包括指定在哪里存储卷积结果的地址的目的地。
在一些情况下,每个视频分析单元可以是硬件加速器。“硬件加速器”意在指执行比在中央处理单元上运行的软件更快的功能的硬件设备。
在一个实施例中,视频分析单元中的每一个可以是由专用于该单元的专用的硬件执行的状态机。作为其结果,该单元可以以相对快的方式执行。此外,由视频分析单元实现的每一个操作可能只需要一个时钟周期,因为所需要的仅是告知硬件加速器来执行任务和提供任务的参数,且然后操作的顺序就可以实现,而未经包括主机处理器的任何处理器的进一步控制。
在一些实施例中,其它视频分析单元可以包括以自动方式计算质心的质心单元48 、以自动方式确定直方图的直方图单元50、以及扩大/减衰单元52。
扩大/减衰单元52可以负责以自动方式增加或减少给定图像的分辨率。当然,增加分辨率是不可能的,除非该信息是已经可用的,但在一些情况下,以较高的分辨率接收的帧可以以较低的分辨率进行处理。作为结果,帧可以以更高的分辨率得到,并可被扩大/减衰单元52转变为更高的分辨率。
如前面所述,矩阵存储器转换(MTOM)单元54负责实现移动指令。在一些实施例中,可以提供算法单元56和布尔单元58。尽管这些相同的单元可以联系于中央处理单元或已经存在的协处理器得到,但将它们载于引擎20上可能是有利的,因为其在芯片上的存在可减少从引擎20到主机以及返回的大量数据传输操作的需要。此外,通过将它们载于引擎20上,在一些实施例中可以使用二维或矩阵主存储器。
可以提供提取单元60以从图像提取矢量。可以用查找单元62来查找特定类型的信息,以查看它是否已被存储。例如,可以用查找单元来查找已存储的直方图。最后,当图像具有的分辨率对特定任务过高时,使用二次采样单元64。可以对该图像二次采样(subsample),以降低其分辨率。
在一些实施例中,也可以提供其它部件,包括与摄像机的配置命令接口的I2C接口38和连接到所有的相应的模块以接收通用输入输出以及在一些实施例中用于与调试连接的输入/输出装置40。
最后,参考图5,在一些实施例中,可以实现分析辅助编码方案100。该方案可以以软件、固件和/或硬件来实现。然而,硬件实施例可能会更快。分析辅助编码可以使用分析能力,以确定视频信息的给定帧的哪些部分(如果有的话)应进行编码。作为结果,在一些实施例中,一些部分或一些帧可能不需要要编码,并且作为一个结果,可增加速度和带宽。
在一些实施例中,哪些进行编码哪些不进行编码可以是根据情况而定,并且可以在空中例如基于作为几个示例的可用电池功率、用户选择和可用带宽来确定。更具体地,图像或帧分析可对现有的帧相对随后的帧来完成,以确定整个帧是否需要编码,或者是否只要对帧的一部分进行编码。这个分析辅助编码与传统的基于移动估计的编码不同,传统的编码仅决定是否包含移动矢量,但仍对所有每一个帧进行编码。
在本发明的一些实施例中,在选择性的基础上编码或者不编码连续帧,且帧内的选择区域基于那些区域内的移动的范围可能会编码或可能会根本不编码。然后,解码系统被告知有多少帧被编码或未被编码,且根据需要可以简单地复制帧。
参照图5,如框102所示,第一个帧或第一批帧可以在开始时被完全编码,以确定基准或参考。然后,在菱形框104的检查确定是否应提供分析辅助编码。如果分析辅助编码将不被使用,则编码如通常所做的那样进行。
如果在菱形框104确定提供分析辅助编码,则如框106所示,确定阈值。阈值可以是固定的或可以是自适应的,这取决于非移动因素,例如举几个示例的可用电池功率、可用带宽或用户选择。接下来,在框108中,对现有的帧和后面的帧进行分析,以确定是否有超出阈值的移动,以及如果有的话则它是否能隔离到特定的区域。为此目的,可以使用各种分析单元,包括但不限于卷积单元、扩大/减衰单元、二次采样单元和查找单元。具体地讲,可以分析图像或帧是否有高于阈值的移动,其是相对于前面的帧和/或随后的帧进行分析的。
然后,如框110所示,可以定位具有超过阈值的移动的区域。在一个实施例中,如框112所示,只有那些区域可以被编码。在一些情况下,在给定的帧中根本没有区域可以被编码,且可以简单地记录该结果,以便帧可以在解码期间被简单地复制。一般而言,编码器在报头或其它位置提供有关哪些帧被编码以及帧是否仅有部分进行编码的信息。在一些实施例中,编码部分的地址可以以初始点和矩阵大小的形式来提供。
根据一些实施例,存储器控制器50能够自动定位主存储器28内的整个矩阵,或者可以访问在主存储器矩阵内存储的2D表示内的任何像素。在一些实施例中,专门设计了存储器控制器与视频存储而不是通用存储一起工作。在一些实施例中,存储器控制器可以访问整个帧或一个像素。要访问整个帧,所需要的仅是帧的初始点与帧的大小。然后,所有的地址都在存储器控制器50内来内部计算。
矩阵可以被分成宏块,宏块可以是例如8×8或16×16的大小。由控制器所定义的矩阵本身可以是任何期望的大小。
在一些实施例中,二维布置和使用存储器控制器访问主存储器内的矩阵可以具有许多优点。作为优点的一个示例,屏幕可以是完全单一的色彩。在某一时间可以处理8×8宏块,而不是处理整个屏幕,而可以做直方图来确定每一个8×8宏块是否都是相同的颜色。如果是这样,则所需要的仅是分析任何一个8×8宏块,而整个帧就被有效地分析了。
因此,在一些实施例中,矩阵可以是任何大小,像素可以是包括8、16、24、32位的任何大小,且矩阵可以是二维矩阵。尽管存储器总是线性的,但线性地址由存储器控制器转换成二维地址。
参照图7,提供了存储器控制器50的更详细的图。在一些实施例中,外部存储器156可以是双倍数据速率(DDR)随机存取存储器156,且不是二维存储器,而是常规的线性存储器。
因此,二维数据可以转换成线性数据,以用于在外部存储器156中存储,反之,来自外部存储器156的线性数据可以转换成二维数据,以用于在存储器控制器50中使用。
外部随机存取存储器156通过模拟物理或PHY 154连接到外部存储控制器152。外部存储器控制器152连接到外部存储器仲裁器150。
仲裁器150连接到读写直接存储器存取(DMA)引擎142。引擎142提供了从PCI快速总线36到内部存储器28(图2)或外部存储器156(图2)的直接路径。直接存储器存取引擎144提供用于主存储器到外部存储器(MTOE)的转换,这意味着它提供了2D到线性的转换和外部存储器到主存储器(ETOM)的转换。反馈直接存储器存取(DMA)引擎146与DMA引擎144一起工作。引擎144产生引擎146的请求和控制,查看来自引擎144的数据,并在所需的数据恰好已经传输的时间发信号,以及然后请求引擎144取消未定的请求。引擎142、144和146连接到主存储器指令仲裁器148,其依次连接到图2中所示的主存储器28。
多个编码器158、160、162和164也可与主存储器编码器仲裁器166及外部存储器仲裁器150一起工作。VCI视频队列158是将视频写入内部存储器或主存储器28的代理。在一个实施例中,H.264视频压缩格式的视频队列160是用于压缩的代理,从任一存储器中取装(fetch)视频数据,并使用编码器便笺式存储器队列164对该数据进行读和写。参阅可从2011年6月的国际电信联盟(ITU)获取的H.264(MPEG-4)高级视频编码规范。队列164使H.264视频队列能够读和写。然而,JPEG图像压缩格式的视频队列162是从任一存储器取装的代理,但只是读取数据而从不写入数据。参阅可从1992年9月的国际电信联盟(ITU)获取的JPEG标准T.81。在一些实施例中,可以使用不同的压缩标准。
其结果是,VCI和编码器都能从主存储器或外部存储器操作。当从二维主存储器执行时,在编码期间,主存储器编码器仲裁器166不使用引擎144和146就完成所有的转换。因此,更直接的转换可以在视频编码期间通过仲裁器166来实现。在一个实施例中,仲裁器166取装数据且将其转换为线性形式,并将其提供给队列160。
参照图8,用于存储器控​​制器150中的存储器矩阵访问的序列168可以以软件、硬件和/或固件来实现。在软件和固件的实施例中,它可以通过存储在诸如磁、​​光或半导体存储器的非短暂性计算机可读介质中的计算机执行的指令来实现。
该序列始于菱形框170,确定是否涉及随机存取存储器请求。如果是,则如框172所示,使用X和Y地址来访问存储在二维矩阵表示中的任何像素。然后,如框174所示,存储器控制器自身在内部计算访问位置的地址。
在另一方面,如果不涉及随机存取,则由存储器控制器50获取起始地址和帧的站点(site)(框176),且该信息足以指定在主存储器内的矩阵。且如框174所示,在内部计算地址。
图3、图4、5和8是可以以硬件实现的流程图。它们也可以以软件或固件实现,在这种情况下,它们可以内含在诸如光、磁或半导体存储器的非短暂性计算机可读介质中。非短暂性介质存储指令供处理器执行。这样的处理器或控制器的示例可以包括分析引擎20且合适的非短暂性介质可包括作为两个示例的主存储器28和外部存储器22。
本文所描述的图形处理技术可以以各种硬件体系结构实现。例如,图形功能可以集成在芯片组内。备选地,可以使用离散式图形处理器。作为另一实施例,图形功能可以由包括多核处理器在内的通用处理器来实现。
在本说明书全文中,对“一个实施例”或“实施例”的引用是指在与该实施例结合描述的特定的特征、结构或特性是包含在本发明之内的至少一种实施方式中的。因此,词语“实施例”或“在实施例中”的出现不一定是指同一个实施例。此外,特定的特征、结构或特性可以以与所说明的特定实施例不同的其它合适的形式组建,而且在本申请的权利要求书的范围之内,可以包括所有的这样的形式。
虽然已使用有限数目的实施例描述了本发明,但本领域的技术人员将会从其中认识到许多修改和变化。意图是,只要这些修改和变化是在本发明的实质精神和范围之内,所附的权利要求书就覆盖所有这些修改和变化。

Claims (30)

1.一种介质,包括:
提供视频分析引擎,所述视频分析引擎具有使用线性寻址的外部存储器,以及使用存储器矩阵的二维表示的内部存储器,以使得能够随机存取所述矩阵内的任何元素。
2.根据权利要求1所述的方法,包括将线性存储器地址转换为二维存储器地址。
3.根据权利要求1所述的方法,包括将二维存储器地址转换为线性存储器地址。
4.根据权利要求1所述的方法,包括使用在所述引擎中的存储器控​​制器来计算内部存储器地址。
5.根据权利要求1所述的方法,包括提供对存储器的访问以用于视频编码和分析。
6.根据权利要求5所述的方法,包括提供用于线性到二维存储器地址的直接转换以用于编码。
7.根据权利要求6所述的方法,包括使得能够选择性地使用第一或第二转换器用于线性和二维存储器地址之间的转换。
8.根据权利要求1所述的方法,包括使视频能够以两种不同的视频压缩格式中的一种选择性地进行编码。
9.根据权利要求1所述的方法,包括使所述视频分析引擎和视频编码器能够从内部存储器或外部存储器进行操作。
10.根据权利要求9所述的方法,包括使仲裁器能够在二维和线性存储器地址之间转换以用于编码和使用单独的变换工具用于视频分析存储器地址变换。
11.一种非短暂性计算机可读介质,其存储指令,以使计算机处理器能够:
提供视频分析引擎,所述视频分析引擎具有使用线性寻址的外部存储器,以及使用存储器矩阵的二维表示的内部存储器,以使得能够随机存取所述矩阵内的任何元素。
12.根据权利要求1所述的介质,还存储指令以将线性存储器地址转换为二维存储器地址。
13.根据权利要求11所述的介质,还存储指令以将二维存储器地址转换为线性存储器地址。
14.根据权利要求11所述的介质,还存储指令以使用在所述引擎中的存储器控​​制器来计算内部存储器地址。
15.根据权利要求11所述的介质,还存储指令以提供对存储器的访问以用于视频编码和分析。
16.根据权利要求15所述的介质,还存储指令以提供用于线性到二维存储器地址的直接转换以用于编码。
17.根据权利要求16所述的介质,还存储指令以使得能够选择性地使用第一或第二转换器用于线性和二维存储器地址之间的转换。
18.根据权利要求11所述的介质,还存储指令以使视频能够以两种不同的视频压缩格式中的一种选择性地进行编码。
19.根据权利要求1所述的介质,还存储指令以使所述视频分析引擎和视频编码器能够从内部存储器或外部存储器进行操作。
20.根据权利要求19所述的介质,还存储指令以使仲裁器能够在二维和线性存储器地址之间转换以用于编码和使用单独的变换工具用于视频分析存储器地址变换。
21.一种装置,包括:
视频分析引擎;
第一存储器,其使用线性寻址耦合到所述引擎;和
第二存储器,其使用存储器矩阵的二维表示耦合到所述引擎,以使得能够随机存取所述矩阵内的任何元素。
22.根据权利要求21所述的装置,所述引擎将线性存储器地址转换成二维存储器地址。
23.根据权利要求21所述的装置,所述引擎将二维存储器地址转换成线性存储器地址。
24.根据权利要求21所述的装置,所述引擎使用在所述引擎中的存储器控​​制器来计算内部存储器地址。
25.根据权利要求21所述的装置,所述引擎提供对所述存储器的访问以用于视频编码和分析。
26.根据权利要求25所述的装置,所述引擎提供用于线性到二维存储器地址的直接转换以用于编码。
27.根据权利要求26所述的装置,包括选择性地可使用的第一或第二转换器以用于线性和二维存储器地址之间的转换。
28.根据权利要求21所述的装置,所述引擎使视频能够以两种不同的视频压缩格式中的一种选择性地进行编码。
29.根据权利要求21所述的装置,所述引擎使所述视频分析引擎和视频编码器能够从内部存储器或外部存储器进行操作。
30.根据权利要求29所述的装置,所述引擎包括在二维和线性存储器地址之间转换以用于编码的仲裁器和变换视频分析存储器地址的工具。
CN201280055230.7A 2011-11-10 2012-11-11 用于视频分析和编码的存储器控制器 Expired - Fee Related CN103918002B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/293,315 US9179156B2 (en) 2011-11-10 2011-11-10 Memory controller for video analytics and encoding
US13/293,315 2011-11-10
PCT/US2012/064585 WO2013071215A1 (en) 2011-11-10 2012-11-11 Memory controller for video analytics and encoding

Publications (2)

Publication Number Publication Date
CN103918002A true CN103918002A (zh) 2014-07-09
CN103918002B CN103918002B (zh) 2018-11-27

Family

ID=48280188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280055230.7A Expired - Fee Related CN103918002B (zh) 2011-11-10 2012-11-11 用于视频分析和编码的存储器控制器

Country Status (5)

Country Link
US (1) US9179156B2 (zh)
EP (1) EP2777015A4 (zh)
CN (1) CN103918002B (zh)
IN (1) IN2014CN03369A (zh)
WO (1) WO2013071215A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109089120A (zh) * 2011-09-06 2018-12-25 英特尔公司 分析辅助编码

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923340A (en) * 1985-12-03 1999-07-13 Texas Instruments Incorporated Process of processing graphics data
US6088046A (en) * 1997-10-02 2000-07-11 Cirrus Logic, Inc. Host DMA through subsystem XY processing
CN1534990A (zh) * 2003-04-02 2004-10-06 ���µ�����ҵ��ʽ���� 图像处理装置和照相机
US20040240548A1 (en) * 1997-11-25 2004-12-02 Amir Morad Video encoding device
CN1757240A (zh) * 2003-03-03 2006-04-05 皇家飞利浦电子股份有限公司 视频编码
US20060115175A1 (en) * 2004-11-22 2006-06-01 Cooper Jeffrey A Methods, apparatus and system for film grain cache splitting for film grain simulation
CN1809839A (zh) * 2003-06-23 2006-07-26 维切普公司 自适应的多维信号序列编码/解码方法和装置
US20070239780A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Simultaneous capture and analysis of media content
US20080158601A1 (en) * 2006-12-29 2008-07-03 Steven Tu Image memory tiling
US20080205512A1 (en) * 2007-02-28 2008-08-28 Samsung Electronics Co., Ltd. Apparatus processing video stream
US20080212681A1 (en) * 1999-04-06 2008-09-04 Leonid Yavits Video encoding and video/audio/data multiplexing device
US20090148123A1 (en) * 2001-06-22 2009-06-11 Sony Corporation Data transmission apparatus and data transmission method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816165B1 (en) * 2000-12-13 2004-11-09 Micron Technology, Inc. Memory system having multiple address allocation formats and method for use thereof
SG105533A1 (en) * 2002-01-31 2004-08-27 St Microelectronics Asia Memory transfer controller and method of transfer control of video line data and macroblock data
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US20130278775A1 (en) * 2011-10-24 2013-10-24 Naveen Doddapuneni Multiple Stream Processing for Video Analytics and Encoding

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923340A (en) * 1985-12-03 1999-07-13 Texas Instruments Incorporated Process of processing graphics data
US6088046A (en) * 1997-10-02 2000-07-11 Cirrus Logic, Inc. Host DMA through subsystem XY processing
US20040240548A1 (en) * 1997-11-25 2004-12-02 Amir Morad Video encoding device
US20080212681A1 (en) * 1999-04-06 2008-09-04 Leonid Yavits Video encoding and video/audio/data multiplexing device
US20090148123A1 (en) * 2001-06-22 2009-06-11 Sony Corporation Data transmission apparatus and data transmission method
CN1757240A (zh) * 2003-03-03 2006-04-05 皇家飞利浦电子股份有限公司 视频编码
CN1534990A (zh) * 2003-04-02 2004-10-06 ���µ�����ҵ��ʽ���� 图像处理装置和照相机
CN1809839A (zh) * 2003-06-23 2006-07-26 维切普公司 自适应的多维信号序列编码/解码方法和装置
US20060115175A1 (en) * 2004-11-22 2006-06-01 Cooper Jeffrey A Methods, apparatus and system for film grain cache splitting for film grain simulation
US20070239780A1 (en) * 2006-04-07 2007-10-11 Microsoft Corporation Simultaneous capture and analysis of media content
US20080158601A1 (en) * 2006-12-29 2008-07-03 Steven Tu Image memory tiling
US20080205512A1 (en) * 2007-02-28 2008-08-28 Samsung Electronics Co., Ltd. Apparatus processing video stream

Also Published As

Publication number Publication date
US9179156B2 (en) 2015-11-03
CN103918002B (zh) 2018-11-27
EP2777015A1 (en) 2014-09-17
US20130120419A1 (en) 2013-05-16
WO2013071215A1 (en) 2013-05-16
IN2014CN03369A (zh) 2015-07-03
EP2777015A4 (en) 2016-12-21

Similar Documents

Publication Publication Date Title
US10070134B2 (en) Analytics assisted encoding
CN103975583A (zh) 捕获多个视频通道用于视频分析和编码
US10448020B2 (en) Intelligent MSI-X interrupts for video analytics and encoding
CN103891272B (zh) 用于视频分析和编码的多个流处理
CN104025028A (zh) 在视频分析中的视频编码
CN103918002A (zh) 用于视频分析和编码的存储器控制器
CN104011655A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181127

Termination date: 20211111