在视频分析中的视频编码的制作方法

文档序号:6485425阅读:115来源:国知局
在视频分析中的视频编码的制作方法
【专利摘要】视频分析可用于通过选择性地对帧的仅仅部分进行编码并替代地使用之前编码的部分来帮助视频编码。之前编码的部分可在后续帧具有小于阈值的运动水平时被使用。在这样的情况下,在一些实施例中,后续帧的全部或部分可以不被编码,从而增加了带宽和速度。
【专利说明】在视频分析中的视频编码
【背景技术】
[0001]这通常涉及计算机,且特别是涉及视频处理。
[0002]存在很多应用,其中视频必须被处理和/或存储。一个示例是视频监视,其中一个或多个视频馈送可为了安全或其它目的而被接收、分析并处理。另一常规应用是用于视频会议。
[0003]一般,通用处理器(例如中央处理单元)用于视频处理。在一些情况下,被称为图形处理器的专用处理器可帮助中央处理单元。
[0004]视频分析涉及包含关于视频信息的内容的信息。例如,视频处理可包括内容分析,其中内容视频被分析,以便检测某些事件或事情或找到感兴趣的信息。
【专利附图】

【附图说明】
[0005]图1是根据本发明的一个实施例的系统架构;
[0006]图2是根据一个实施例的在图1中所示的视频分析引擎的电路视图;
[0007]图3是根据本发明的一个实施例的视频捕获的流程图;
[0008]图4是根据一个实施例的二维矩阵存储器的流程图;
[0009]图5是根据一个实施例的分析辅助编码的流程图;
[0010]图6是另一实施例的流程图;
[0011]图7是根据一个实施例的在图2中所示的存储器控制器的视图;
[0012]图8是根据一个实施例的存储器控制器的流程图;
[0013]图9是一个实施例的视频捕获界面的示意性视图;以及
[0014]图10是根据一个实施例的视频编码器的示意性视图。
【具体实施方式】
[0015]根据一些实施例,视频分析引擎的存储器控制器可通过自动访问在主存储器内的整个矩阵或主存储器内的任何存储位置来便于存储器操作。在一些实施例中,主存储器可存储使存储器控制器能够随机访问存储器矩阵内的任何位置(包括一个像素)的二维(2D)表不。
[0016]在一些实施例中,内部存储器可被表示为2D存储器矩阵,且外部存储器可以是常规线性存储器。存储在线性存储器中的数据可随后转换成二维格式,用于在视频分析引擎内使用。
[0017]参考图1,计算机系统10可以是各种计算机系统中的任一种,包括使用视频分析(例如视频监视和视频会议应用)的那些计算机系统以及不使用视频分析的实施例。仅举几个示例,系统10可以是桌上型计算机、服务器、膝上型计算机、移动互联网设备或蜂窝电话。
[0018]系统10可具有耦合到系统总线14的一个或多个主机中央处理单元12。系统存储器22可耦合到系统总线14。虽然提供了主机系统架构的示例,本发明决不限于任何特定的系统架构。
[0019]系统总线14可耦合到总线接口 16,总线接口 16转而又耦合到常规总线18。在一个实施例中,可使用外围部件互连高速(PCIe)总线,但本发明决不限于任何特定的总线。
[0020]视频分析引擎20可经由总线18耦合到主机。在一个实施例中,视频分析引擎可以是提供编码和视频分析的单个集成电路。在一个实施例中,集成电路可使用嵌入式动态随机存取存储器(EDRAM)技术。然而,在一些实施例中,可能无需编码或视频分析。此外,在一些实施例中,引擎20可包括控制机载集成二维矩阵存储器以及提供与外部存储器通信的存储器控制器。
[0021]因此,在图1所示的实施例中,视频分析引擎20与本地随机存取存储器(DRAM) 19通信。具体地,视频分析引擎20可包括用于访问存储器19的存储器控制器。可选地,引擎20可使用系统存储器22,并可包括到系统存储器的直接连接。
[0022]耦合到视频分析引擎20的也可以是一个或多个相机24。在一些实施例中,多达四个同时的视频输入可以以标清格式被接收。在一些实施例中,可在三个输入上提供一个高清输入,并可在第四个输入上提供一个标清。在其它实施例中,可提供更多或更少的高清输入,并可提供更多或更少的标清输入。作为一个示例,三个输入中的每个可接收十位高清输入数据,例如R、G和B输入或Y、U和V输入,每个输入在单独的十位输入线上。
[0023]在页面的顶部处具有四个相机通道输入的实施例中示出了在图2中示出的视频分析引擎20的一个实施例。这四个输入可由视频捕获接口 26接收。视频捕获接口 26可接收以相机输入或其它视频信息的形式的多个同时的视频输入,仅举几个示例,包括电视机、数字视频记录器或媒体播放器输入。
[0024]视频捕获接口自动捕获并复制每个输入帧。输入帧的每个副本被提供到VAFF单元66,而另一副本可被提供到VEFF单元68。VEFF单元68负责将视频存储在外部存储器(例如图1所示的存储器22)上。在一个实施例中,外部存储器可耦合到片上系统存储器控制器/仲裁器50。在一些实施例中,在外部存储器上的存储可用于视频编码的目的。具体地,如果一个副本存储在外部存储器上,则它可由用于以期望格式对信息编码的视频编码器32访问。在一些实施例中,多种格式是可用的,且系统可选择最合乎需要的特定编码格式。
[0025]如上所述,在一些情况下,视频分析可用来提高由视频编码器32实现的编码过程的效率。一旦帧被编码,它们就可经由PCI高速总线36被提供到主机系统。
[0026]同时,输入视频帧的其它副本存储在二维矩阵或主存储器28上。VAFF可同时处理并传输所有四个输入视频通道。VAFF可包括四个复制的单元来处理并传输视频。存储器28的视频的传输可使用多路传输。在一些实施例中,由于在视频回扫时间中固有的延迟,多个通道的传送可实时地完成。
[0027]在主存储器上的存储可选择性地线性或非线性地来实现。在常规线性寻址中,指定在交叉寻址线上的一个或多个位置以访问存储器位置。在一些情况下,寻址线(例如字或位线)可被指定,且沿着该字或位线的程度可被指示,使得寻址存储器线的一部分可以用自动化方式成功地存储。
[0028]相反,在二维或非线性寻址中,行列线都可在一个操作中被访问。操作可指定在存储器矩阵内、例如在两个寻址线(例如行或列线)的交叉点处的初始点。然后,存储器大小或其它定界符被提供,以指示在二维中例如沿着行列线的矩阵的程度。一旦指定初始点,就可通过可寻址位置的自动递增来自动存储整个矩阵。换句话说,不一定返回到主机或其它设备,来确定用于存储在初始点之后的存储器矩阵的随后部分的地址。二维存储器将产生地址的任务卸载或基本上完全将其消除。结果,在一些实施例中,所需的带宽和访问时间都可减少。
[0029]基本上,相同的操作可以相反地进行,以读取二维存储器矩阵。可选地,也可使用常规线性寻址来对二维存储器矩阵进行访问。
[0030]虽然给出了指定存储器矩阵的大小的示例,也可提供其它定界符,包括在二维中的每个(即,沿着字和位线)上的程度。具有静止和移动图片、曲线和带有二维上的数据的其它应用的二维存储器是有利的。
[0031]信息可以以二维或一维存储在存储器28中。在一个实施例中,在一维和二维之间的转换可在硬件中动态(on the fly)地自动进行。
[0032]在一些实施例中,可在视频编码器中进行多个流的视频编码,同时多个流也在视频分析功能单元42中经受分析。这可通过在视频捕获接口 26中产生每个流的副本并将每个流的一组副本发送到视频编码器32来实现,同时另一副本到达视频分析功能单元42。
[0033]在一个实施例中,多个流中的每个流的时分复用可在每个视频编码器32和视频分析功能单元42中进行。例如,基于用户输入,来自第一流的一个或多个帧可被编码,之后是来自第二流的一个或多个帧,之后是来自下一流的一个或多个流,等等。类似地,时分复用可在视频分析功能单元42中以相同的方式被使用,其中基于用户输入,来自一个流的一个或多个帧经受视频分析,然后是来自下一流的一个或多个帧,等等。因此,一系列流可基本同时,即,一次性在编码器和视频分析功能单元中被处理。
[0034]在一些实施例中,用户可设置哪个流的序列被首先处理,以及在任何特定的时间处理掉每个流的多少帧。在视频编码器和视频分析引擎的情况下,当帧被处理时,它们可通过总线36输出。
[0035]在编码器中的每个流的语境可保持在专用于寄存器组122中的那个流的寄存器中,该寄存器组122可包括每个流的寄存器。寄存器组122可记录编码的特征,其以各种方式之一(包括用户输入)被指定。例如,可记录对每个流期望的分辨率、压缩率和编码的类型。然后,当时分复用的编码出现时,对于正确的流,视频编码器可访问从寄存器116被处理的当前流的正确特征。
[0036]类似地,同样的事情可在视频分析功能单元46中使用寄存器组124来完成。换句话说,每流的视频分析处理或编码的特征可被记录在寄存器124和122内,其中在每组寄存器中为每个流预备一个寄存器。
[0037]此外,用户或某个其它源可指导特征动态地改变。所谓“动态地”用来指在视频分析功能单元42的情况下或在编码的情况下、在视频编码器32的情况下在分析处理期间出现的变化。
[0038]当变化在帧被处理时出现时,对于视频编码器,变化可最初被记录在影子寄存器116中,而对于视频分析功能单元42,变化可被记录在影子寄存器114中。然后,帧(或指定数量的帧)一旦完成,视频编码器32就检查以查看任何变化是否已存储在寄存器116中。如果是,则视频编码器通过路径120将那些变化传输到寄存器122,从而在寄存器中更新适合于每个流的新特征,每个流使其编码特征动态地改变。
[0039]此外,在一个实施例中,相同的动态变化可在视频分析功能单元42中完成。当动态变化被检测到时,现有帧(或现有的一组工作)可使用旧特征来完成,同时将变化存储在影子寄存器114中。然后在合适的时间,在工作负荷或帧完成处理之后,变化可通过总线118从寄存器114传输到视频分析功能单元42用于存储在寄存器124中,通常代替对任何特定的流存储在寄存器124当中的单独寄存器中的特征。然后一旦更新完成,下一处理负荷就使用新的特征。
[0040]因此,参考图6,序列130可在软件、固件和/或硬件中实现。在基于软件或固件的实施例中,序列可由存储在非临时计算机可读介质(例如光、磁或半导体存储器)中的计算机执行的指令来实现。例如,在一个实施例中,在编码器32的情况下,序列可存储在编码器内的存储器中,而在分析功能单元的情况下,它们可存储在例如像素管线单元44中。
[0041]最初,序列等待用于编码或分析的语境指令的用户输入。在一些实施例中,流程对于分析和编码而言可以是相同的。一旦接收到用户输入,如在菱形132中确定的,对于每个流的语境就存储在合适的寄存器122或124中,如在块134中指示的。然后时分复用处理开始,如在块136中指示的。在该处理期间,在菱形138处的检查确定是否有任何处理变化指令。如果没有,则在菱形142处的检查确定处理是否完成。如果没有,则时分复用处理继续。
[0042]如果已接收到处理变化,则它可存储在合适的影子寄存器114或116中,如在块140中指示的。然后在当前处理任务完成时,变化可在下一组操作中自动实现,在视频编码器32的情况下操作是编码或在功能单元42的情况下操作是分析。
[0043]在一些实施例中,编码的频率可随着编码器上的负荷的幅度而变化。通常,编码器运行得足够快,使得它可在下一帧从存储器被读之前完成一个帧的编码。在很多情况下,编码引擎可以按比所需更快的速度运行,以在下一帧或下一组帧用光存储器之前对一个帧或一组帧进行编码。
[0044]语境寄存器可存储用于完成编码或分析的任何必要的标准,包括在编码器的情况下的分辨率、编码类型和压缩率。通常,可以利用从一个流或通道前进到下一流或通道的循环方式来完成处理。在一个实施例中,编码数据随后输出到外围部件互连(PCI)高速总线
18。在一些情况下,与PCI高速总线相关联的缓冲器可从每个通道接收编码。S卩,在一些实施例中,可为与PCI高速总线相关联的每个视频通道提供缓冲器。每个通道缓冲器可被清空到由与PCI高速总线相关联的仲裁器控制的总线。在一些实施例中,仲裁器将每个通道清空到总线的方式可经受用户输入。
[0045]因此参考图3,用于视频捕获的系统20可在硬件、软件和/或固件中实现。硬件实施例可能在一些情况下是有利的,因为它们能够有较大的速度。
[0046]如在块72中指示的,可从一个或多个通道接收视频帧。然后复制视频帧,如在块74中指示的。接着,视频帧的一个副本存储在外部存储器中用于编码,如在块76中指示的。另一副本存储在内部或主存储器28中用于分析目的,如在块78中指示的。
[0047]接着参考图4所示的二维矩阵序列80,序列可以用软件、固件或硬件来实现。在使用硬件的实施例中再次可以具有速度优势。
[0048]最初,在菱形82处的检查确定是否已接收到存储命令。照惯例,可从主机系统且特别是从其中央处理单元12接收这样的命令。这些命令可由调度单元34接收,该调度单元34然后向用于实现命令的引擎20的合适单元提供命令。当命令已被实现时,在一些实施例中,调度单元回来向主机系统报告。
[0049]如果涉及存储命令,如在菱形82中确定的,则可接收初始存储器位置和二维大小信息,如在块84中指示的。然后信息以合适的二维矩阵存储,如在块86中指示的。初始位置可例如限定矩阵的左上角。存储操作可在所需大小的存储器20内自动找到矩阵,以便实现操作。在一些实施例中,一旦提供存储器中的初始点,操作就可自动地存储矩阵的后续部分,而不需要额外的地址计算。
[0050]相反,如果涉及读取访问,如在菱形88中确定的,则接收到初始位置和二维大小信息,如在块90中指示的。然后读取所指定的矩阵,如在块92中指示的。此外,访问可以按自动化方式来完成,其中可访问初始点,如在常规线性寻址中完成的,且然后自动确定其余地址,而不必返回并以常规方式计算地址。
[0051]最后,如果从主机接收到移动命令,如在块94中确定的,则接收到初始位置和二维大小信息,如在块96中指示的,且移动命令自动实现,如在块98中指示的。此外,信息的矩阵可简单地通过指定起始位置并提供大小信息而从一个位置自动移动到另一位置。
[0052]回来参考图2,视频分析单元42可通过像素管线单元44耦合到系统的其余部分。单元44可包括执行来自调度单元34的命令的状态机。一般,这些命令起源于主机并由调度单元实现。根据应用,可包括各种不同的分析单元。在一个实施例中,可包括用于自动提供卷积的卷积单元46。
[0053]卷积命令可包括指定掩码、参考或内核的命令和自变量,使得在一个所捕获的图像中的特征可与存储器28中的参考二维图像比较。命令可包括指定将卷积结果存储在哪里的目的地。
[0054]在一些情况下,每个视频分析单元可以是硬件加速器。所谓“硬件加速器”用来指比在中央处理单元上运行的软件更快地执行功能的硬件设备。
[0055]在一个实施例中,每个视频分析单元可以是由专用于该单元的特定功能的专用硬件执行的状态机。结果,单元可以用相对快的方式来执行。而且,对于由视频分析单元实现的每个操作而言,可能只需要一个时钟循环,这是因为告诉硬件加速器执行任务并提供该任务的自变量和随后操作的序列所必需的所有内容可被实现,而没有来自任何处理器一包括主机处理器一的进一步控制。
[0056]在一些实施例中,其它视频分析单元可包括以自动化方式计算质心的质心单元48、以自动化方式确定直方图的直方图单元50以及膨胀/侵蚀单元52。
[0057]膨胀/侵蚀单元52可负责以自动化方式增加或减小给定图像的分辨率。当然,不可能增加分辨率,除非信息已经是可得到的,但在一些情况下,在较高分辨率下接收的帧可在较低分辨率下被处理。结果,帧可在较高分辨率下得到,并可通过膨胀/侵蚀单元52转换到较高分辨率。
[0058]矩阵存储器传输(MTOM)单元54负责实现移动指令,如前面描述的。在一些实施例中,可提供算术单元56和布尔单元58。即使这些相同的单元可能结合中央处理单元或已经存在的协处理器是可用的,使它们在引擎20上将是有利的,因为它们的芯片上存在可减小从引擎20到主机和从主机到引擎20的很多数据传输操作的需要。而且,通过使它们在引擎20上,可在一些实施例中使用二维或矩阵主存储器。
[0059]提取单元60可被提供以获取来自图像的矢量。查找单元62可用于查找特定类型的信息,以查看它是否已经被存储。例如,查找单元可用于找到已经存储的直方图。最后,当图像对于特定的任务具有过高的分辨率时,可使用二次抽样单元64。图像可被二次抽样以降低其分辨率。
[0060]在一些实施例中,也可提供其它部件,包括与相机配置命令接口的I2C接口 38和连接到所有对应的模块以在一些实施例中接收一般输入和输出并结合调试来使用的通用输入/输出设备40。
[0061]最后,参考图5,在一些实施例中,可实现分析辅助编码方案100。该方案可以用软件、固件和/或硬件来实现。然而,硬件实施例可能更快。分析辅助编码可使用分析能力来确定视频信息的给定帧的哪个部分(如果有的话)应被编码。结果,一些部分或帧在一些实施例中可能不需要被编码,且结果,可增加速度和带宽。
[0062]在一些实施例中,什么被编码或什么不被编码可以是情况特定的,并可例如基于可用电池功率、用户选择和可用带宽(仅举几个示例)被动态地确定。更具体地,图像或帧分析可针对现有帧对比随后的帧来完成,以确定整个帧是否需要被编码或是否只有帧的部分需要被编码。这个分析辅助编码与只决定是否包括运动矢量但仍然对每一和每个帧编码的基于常规运动估计的编码相反。
[0063]在本发明的一些实施例中,连续帧在选择性基础上被编码或不被编码,且在帧内的选定区域基于在这些区域内的运动的程度可以或可以根本不被编码。然后,告知解码系统多少帧被编码或不被编码,并可仅仅按需要复制帧。
[0064]参考图5,第一帧或多个帧可在开始时被完全编码,如在块102中指示的,以便确定基线或参考。然后,在菱形104处的检查确定是否应提供分析辅助编码。如果将不使用分析辅助编码,则编码继续进行,如照惯例完成的。
[0065]如果提供了分析辅助编码,如在菱形104中确定的,则确定阈值,如在块106中指示的。阈值可以是固定的或可以是自适应的,这取决于非运动因素,仅举几个示例,例如可用电池功率、可用带宽或用户选择。接着,在块108中,现有帧和后续帧被分析以确定是否存在超过阈值的运动,且如果存在,则确定它是否可被隔离到特定的区域。为此,可利用各种分析单元,包括但不限于卷积单元、侵蚀/膨胀单元、二次抽样单元和查找单元。具体地,可针对高于阈值的运动,分析图像或帧,其相对于之前和/或之后的帧被分析。
[0066]然后,如在块110中指示的,具有超过阈值的运动的区域可被定位。在一个实施例中,只有这些区域可被编码,如在块112中指示的。在一些情况下,在给定帧上根本没有区域被编码,且可简单地记录这个结果,使得可在解码期间简单地复制帧。通常,编码器提供在头部或其它位置中的关于什么帧被编码以及帧是否只具有被编码的部分的信息。在一些实施例中,可提供以初始点和矩阵大小的形式的编码部分的地址。
[0067]根据一些实施例,存储器控制器50能够自动查找在主存储器28内的整个矩阵的位置,或可访问在被存储在主存储器矩阵内的2D表示内的任何像素。在一些实施例中,存储器控制器特别设计成与视频存储器一起工作,与通用存储器相反。在一些实施例中,存储器控制器可访问全帧或一个像素。为了访问全帧,所有需要的是帧的起始点和帧大小。然后所有地址在存储器控制器50内被内部计算。[0068]矩阵可接着分解成可例如具有8X8或16X 16大小的宏块。由控制器定义的矩阵本身可具有任何期望的大小。
[0069]在一些实施例中,这个二维布置和访问主存储器内的矩阵的存储器控制器的使用可具有很多优点。作为优点的一个示例,屏幕可以完全是一种颜色。代替处理整个屏幕,一个8 X 8宏块可被一次处理,且直方图可被发展以确定每个8 X 8宏块是否都具有相同的颜色。如果是,则所有需要的是分析任一个8X8宏块,且整个帧被有效地分析。
[0070]因此,在一些实施例中,矩阵可具有任何大小,像素可具有任何大小,包括8、16、24,32位,且矩阵可以是二维矩阵。虽然存储器总是线性的,线性地址由存储器控制器转换成二维地址。
[0071]参考图7,提供了存储器控制器50的更详细描述。在一些实施例中,外部存储器156可以是双数据速率(DDR)随机存取存储器156,而不是二维存储器,但相反是常规线性存储器。
[0072]因此,二维数据可转换成线性数据用于存储在外部存储器156中,且相反,来自外部存储器156的线性数据可转换成二维数据用于在存储器控制器50内使用。
[0073]外部随机存取存储器156由模拟物理或PHY154连接到外部存储器控制器152。外部存储器控制器152连接到外部存储器仲裁器150。
[0074]仲裁器150连接到读写直接存储器存取(DMA)引擎142。引擎142从PCI高速总线36 (图2)提供到内部存储器28(图2)或外部存储器156的直接路径。直接存储器存取引擎144提供主存储器到外部存储器(MTOE)转换(这意味着它对线性转换提供2D)和外部存储器到主存储器(ETOM)转换。反馈直接存储器存取(DMA)引擎146与DMA引擎144 一起工作。引擎144产生引擎146的控制和请求,查看来自引擎144的数据和在所需要的数据已被传送时的精确时间的信号,并随后请求引擎144取消未决的请求。引擎142、144和146连接到主存储器指令仲裁器148,其转而又连接到图2所示的主存储器28。
[0075]多个编码器158、160、162和164可与主存储器编码器仲裁器166和外部存储器仲裁器150 —起工作。VCI视频队列158是将视频写到内部或主存储器28中的代理程序。
H.264视频压缩格式视频队列160在一个实施例中是用于压缩的代理程序且从任一存储器取出视频数据,并使用编码器便笺式队列164读写该数据。见从2011年6月的国际电信联盟(ITU)可得到的H.264(MPEG-4)高级视频编码规范。队列164使H.264视频队列能够读和写。然而,JPEG图像压缩格式视频队列162是从任一存储器取出但只读而从不写数据的代理程序。见从1992年9月的国际电信联盟(ITU)可得到的JPEG标准T.81。在一些实施例中,可使用不同的压缩标准。
[0076]结果,VCI和编码器都可从主存储器或外部存储器操作。当从二维主存储器执行时,在编码期间,主存储器编码器仲裁器166完成所有转换,而不使用引擎144和146。因此,一些直接转换可在视频编码期间由仲裁器166实现。在一个实施例中,仲裁器166取出数据并将它转换成线性形式并将其给予队列160。
[0077]参考图8,在存储器控制器150中的用于存储器矩阵访问的序列168可用软件、硬件和/或固件来实现。在软件和固件实施例中,它可由存储在非临时计算机可读介质(例如磁、光或半导体存储器)中的计算机执行的指令来实现。
[0078]该序列在菱形170通过确定是否涉及随机存取存储器请求而开始。如果是,则X和Y地址用于访问存储在二维矩阵表示中的任何像素,如在块172中指示的。然后,存储器控制器自身在内部计算访问位置的地址,如在块174中指示的。
[0079]另一方面,如果未涉及随机存取,则起始地址和帧位置由存储器控制器50得到(块176),且该信息足以指定在主存储器内的矩阵。并且地址在内部被计算,如在块174中指示的。
[0080]图3、4、5和8是可以用硬件来实现的流程图。它们也可以用软件或固件来实现,在这种情况下它们可体现在非临时计算机可读介质,例如光、磁或半导体存储器上。非临时介质存储由处理器执行的指令。这样的处理器或控制器的示例可包括分析引擎20,且合适的非临时介质可包括主存储器28和外部存储器22,这作为两个示例。
[0081]参考图9,根据一个实施例,视频捕获接口 26能够捕获高清分辨率或多个标清视频通道,用于实时视频分析。在一个实施例中,接口可配置成支持一个高清分辨率视频通道或四个标清视频通道。它可支持任何视频接口标准,包括国际电信联盟(ITU)-推荐BT.656(12/07)和 BT.1120 以及电影与电视工程师学会(SMPTE) 274M-2005/296M-2001。
[0082]在一个实施例中,视频管线不对在垂直方向上的视频尺寸强加任何限制。虽然水平尺寸受可用的线缓冲器大小的约束,然而去除垂直限制可实现几种使用情况。
[0083]在一个实施例中,接口 26可继续起作用,即使视频电缆在物理上被断开。此外,这个接口可在一些实施例中继续起作用,即使在帧由于在存储器子系统中或在PCI接口36(图2)上的资源冲突而必须被去掉时。在一个实施例中,Y校正函数可使用查找表方法来实现。这样的方法在选择用于像素转换的曲线时允许固件更大的灵活性。
[0084]在一个实施例中,可在每个编码和分析路径上提供第二开窗功能。这可实现用于编码和分析功能的视频尺寸的独立设定。固件可被动态地布置。在内部,配置变化在一些实施例中被同步到帧边界,该帧边界允许与集成电路的其余部分的无缝接口。
[0085]在一个实施例中,内部一百兆赫时钟能够在27兆赫到74.25兆赫下与输入视频通道一起工作。此外,在一个实施例中,核处理器可在300兆赫到500兆赫下操作。
[0086]参考图9,存在被标记为零到三的四个输入视频通道。在一个实施例中,可在通道零到二中的任一个上提供高清视频,且当在通道一和二上提供高清视频时,它可传送到与视频通道零关联的帧捕获176。通常,视频通道一到三可在除了当接收到高清视频的情况以外的所有情况下处理标清视频。
[0087]帧捕获单元176向Y查找表(GLUT) 178提供高清或标清视频。Y查找表将输入标清YCrCb或高清YCrCb或RGB视频空间转换成亮度和色度值,其被提供到按比例缩减器180或182。按比例缩减器(downscaler) 180与编码器相关联,而按比例缩减器182与视频分析引擎相关联。
[0088]按比例缩减器向帧格式器184提供按比例缩减的亮度和色度数据。帧格式器184随后提供各种输出信号,其包括编码器握手信号、可用的/完成的/错误的信号以及到达外部存储器的写端口的写值地址数据信号和到达存储器矩阵的写值地址。此外,帧格式器184从编码器接收准备好的信号,并传送来自调度单元34(图2)的载入请求。
[0089]在一些实施例中,视频捕获接口配置和状态寄存器(CSR)逻辑186与帧捕获、Y查找表、按比例缩减器和帧格式器连接,并提供对PCI高速总线36(图2)的双向访问。
[0090]根据一个实施例,视频编码器包括存储由视频捕获接口捕获的视频帧的乒缓冲器和乓缓冲器。当视频捕获接口将数据写到乒缓冲器时,编码器32的引擎被同步以读取来自乓缓冲器的视频帧数据。
[0091]乒缓冲器和乓缓冲器可保持在主存储器28中或在耦合到如图1所示的视频分析引擎20的外部存储器19中。乒缓冲器和乓缓冲器的位置取决于编码在哪里维持待编码的数据。一般,分析帧被存储在主存储器中,除非在一些程序控制或数据流情景下,分析帧需要被冲洗到外部存储器。
[0092]在一个实施例中,乒缓冲器和乓缓冲器可以是被保持在存储器中以存储两个连续视频帧的两个相同大小的缓冲器。一个帧存储在乒缓冲器中,而另一帧存储在乓缓冲器中。每个连续帧存储在缓冲器之一中,且然后下一连续帧存储在另一缓冲器中。因为处理在缓冲器中被存储为帧的视频花费一些时间,为了不遗漏任何数据,单独的缓冲器用于存储视频。
[0093]在一些实施例中,多个读/写事物可组合成单个外部存储器突发,以提高外部存储器的接口上的数据吞吐量。存储器控制器50(图2)等待某个量的时间,以查看下一访问是否是连续读或写访问。如果是,则某个数量的连续读或某个数量的连续写按顺序排队,且然后视情况而定来将它们执行为突发读或写。在一个实施例中,四个或八个这样的读或写可被排队。
[0094]存储器控制器50包括计数器和地址比较器,其查看每个周期地址及其与仍然未决的前面产生的周期的关系,以便确定是否具有到相同位置的足够数量的读或写。如果周期在进行中且控制器50所维持的定时器到时间且然后周期到达(其可能否则被归并在一起),则对突发传输的组合不在这样的情况下出现。
[0095]在一些实施例中,视频数据从外部存储器以宏块格式被访问。由存储器控制器50实施的仲裁机构可减小在如图2所示的视频编码器32和控制器仲裁器50之间的时延敏感便笺编码接口的时延。这通过允许等时数据流经存储器子系统来完成。在一个实施例中,在编码器32中的便笺具有对存储器操作的最高敏感度。为了维持帧速率,允许便笺访问出现并当它们产生时被处理。所有其它业务保存在缓冲器中并随后在便笺被操纵之后被处理。
[0096]在一些情况下,可能有来自PCI高速总线36的被称为“背压”的东西。这在总线停止时出现,且运行得并不足够快以传送过程视频帧。为了处理由总线背压引起的减慢,编码器32不将部分帧写到乒缓冲器和乓缓冲器中。相反它们等待,直到完整的帧从系统清除掉以为下一全帧腾出空间。
[0097]参考图10,可在视频编码器32内提供H.264编码器188和JPEG编码器196。H.264存储器192与H.264编码器通信。类似地,JPEG存储器194与JPEG编码器196通信。H.264的接口 202被视频编码到PCI总线36并耦合到H.264编码器188。类似地,具有JPEG编码器204的接口 204。每个编码器具有处理如上所述的停止的PCI高速总线的停止缓冲器198 或 210。
[0098]每个编码器连接到提供待编码的视频的直接存储器存取(DMA)引擎183或187。引擎182和186对控制器50产生读请求。同步控制185提供与视频捕获接口的同步。队列181与便笺208连接。具体地,它提供在便笺与编码器188和196之间的接口。配置和状态寄存器接口 206耦合到PCI高速总线配置和状态寄存器接口外部本地总线接口(ELBI)。队列181是便笺队列。[0099]本文描述的图形处理技术可在各种硬件架构中实现。例如,图形功能可集成在芯片组内。可选地,可使用分立图形处理器。作为又一实施例,图形功能可由通用处理器一包括多核处理器一实现。
[0100]在该说明书中对“一个实施例”或“实施例”的提及意味着关于实施例描述的特定的特征、结构或特性包括在本发明内包含的至少一个实现方式中。因此,短语“一个实施例”或“在实施例中”的出现并不一定指同一实施例。此外,特定的特征、结构或特性可以以除了所示出的特定实施例以外的其它合适的形式被构造,且所有这样的形式可被包含在本申请的权利要求内。
[0101]虽然参考有限数量的实施例描述了本发明,然而本领域技术人员将从其认识到很多修改和变化。旨在使所附权利要求涵盖落在本发明的真实精神和范围内的所有这样的修改和变化。
【权利要求】
1.一种方法,包括: 确定待编码的视频数据是否存储在芯片上或外部存储器中; 将视频数据写到存储待编码的数据的乒缓冲器中;以及 从乓缓冲器读视频数据以供编码器使用。
2.如权利要求1所述的方法,其中所述缓冲器存储连续的视频帧。
3.如权利要求1所述的方法,包括使在外部或片上存储器和所述编码器之间的多个访问请求事物突发。
4.如权利要求3所述的方法,包括删除预定数量的连续访问请求。
5.如权利要求4所述的方法,包括当检测到所述数量时执行突发传输。
6.如权利要求4所述的方法,包括基于所访问的位置来确定是否执行突发访问。
7.如权利要求6所述的方法,包括访问以宏块形式的视频数据,用于在存储器和所述编码器之间的传输。
8.如权利要求1所述的方法,包括检测在耦合到所述编码器的总线上的停止。
9.如权利要求8所述的方法,包括响应于检测到停止,等待完整的帧写到乒缓冲器或乓缓冲器中。
10.一种非临时计算机可读介质,存储由处理器执行的指令来执行包括以下的方法: 确定待编码的视频数据是否存储在芯片上或外部存储器中; 将视频数据写到存储待编码的数据的乒缓冲器中;以及 从乓缓冲器读视频数据以供编码器使用。
11.如权利要求10所述的介质,其中所述缓冲器存储连续的视频帧。
12.如权利要求10所述的介质,还存储用于执行包括使外部或片上存储器和所述编码器之间的多个访问请求事物突发的方法的指令。
13.如权利要求12所述的介质,还存储用于执行包括删除预定数量的连续访问请求的方法的指令。
14.如权利要求13所述的介质,还存储用于执行包括当检测到所述数量时执行突发传输的方法的指令。
15.如权利要求13所述的介质,还存储用于执行包括基于所访问的位置来确定是否执行突发访问的方法的指令。
16.如权利要求15所述的介质,还存储用于执行包括访问以宏块形式的视频数据用于在存储器和所述编码器之间的传输的方法的指令。
17.如权利要求10所述的介质,还存储用于执行包括检测在耦合到所述编码器的总线上的停止的方法的指令。
18.如权利要求17所述的介质,还存储用于执行包括响应于检测到停止而等待完整的帧写到乒缓冲器或乓缓冲器中的方法的指令。
19.一种装置,包括: 片上存储器; 编码器,其用于确定待编码的视频数据是否存储在芯片上或外部存储器中; 乒缓冲器,其用于存储待编码的数据;以及 乓缓冲器,其用于由编码器使用以读视频数据。
20.如权利要求19所述的装置,所述缓冲器用于存储连续的视频帧。
21.如权利要求19所述的装置,所述编码器用于使在外部或片上存储器和所述编码器之间的多个访问请求事物突发。
22.如权利要求21所述的装置,所述编码器用于删除预定数量的连续访问请求。
23.如权利要求22所述的装置,所述编码器用于在检测到所述数量时执行突发传输。
24.如权利要求22所述的装置,所述编码器用于基于所访问的位置来确定是否执行突发访问。
25.如权利要求24所述的装置,所述编码器用于访问以宏块形式的视频数据用于在存储器和所述编码器之间的传输。
26.如权利要求19所述的装置,所述编码器用于检测在耦合到所述编码器的总线上的停止。
27.如权利要求26所述的装置,所述编码器用于响应于检测到停止,等待完整的帧写到乒缓冲器或乓 缓冲器中。
【文档编号】G06F13/38GK104025028SQ201180076103
【公开日】2014年9月3日 申请日期:2011年12月28日 优先权日:2011年12月28日
【发明者】A·米什拉, J·M·罗德里格斯, N·多德阿普内尼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1