用于多相机压缩的编码解码器的制作方法

文档序号:17299646发布日期:2019-04-03 04:49阅读:262来源:国知局
用于多相机压缩的编码解码器的制作方法

实施例总体涉及视频处理。更具体地,实施例涉及用于多相机压缩的编码解码器。



背景技术:

视频图像可以由多个帧或图片构成。可以使用各种压缩技术来减小视频图像的大小。可以使用各种编码/解码技术来编码/解码视频图像流。

附图说明

通过阅读以下说明书和所附权利要求并参考以下附图,本领域技术人员将清楚实施例的各种优点,其中:

图1是根据实施例的电子处理系统的示例的框图;

图2是根据实施例的半导体封装装置的示例的框图;

图3a至图3b是根据实施例的处理视频流的方法的示例的流程图;

图4是根据实施例的多源帧处理器装置的示例的框图;

图5是根据实施例的多相机编码器的示例的框图;

图6是根据实施例的多相机编码器的另一示例的框图;

图7是根据实施例的多相机解码器的示例的框图;

图8是根据实施例的电子处理系统的另一示例的框图;

图9是根据实施例的视频流布局的示例的说明图;

图10是根据实施例的具有导航控制器的系统的示例的框图;以及

图11是根据实施例的具有小形状因子的系统的示例的框图。

具体实施方式

现在参考图1,电子处理系统10的实施例可以包括处理器11、通信耦合到处理器11的存储器12以及通信耦合到处理器11的逻辑13,该逻辑用于处理包括来自两个或更多个视频源的帧信息的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。在一些实施例中,逻辑13还可以配置为处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。例如,逻辑13可以配置为基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。逻辑13还可以配置为基于帧的帧位置模(modulo;模除)单个视频帧流中表示的视频源的数量来确定帧的视频源位置。在一些实施例中,逻辑13可以配置为对单个视频帧流进行编码,和/或对单个视频帧流进行解码。

上述处理器11、存储器12、逻辑13和其他系统组件中的每一个的实施例可以以硬件、软件或其任何合适的组合来实现。例如,硬件实施方式可以包括可配置逻辑,诸如例如可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)或使用电路技术(诸如例如专用集成电路(asic)、互补金属氧化物半导体(cmos)或晶体管-晶体管逻辑(ttl)技术或其任何组合)的固定功能逻辑硬件。

替代地或附加地,这些组件的全部或部分可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、固件、闪存等)中的逻辑指令集合,以由处理器或计算设备执行。例如,用于执行组件的操作的计算机程序代码可以以一种或多种操作系统(os)适用/适当的编程语言的任何组合来编写,包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言和诸如“c”编程语言或类似编程语言的常规过程编程语言。例如,存储器12、永久存储介质或其他系统存储器可以存储指令集合,该指令在由处理器11执行时,使得系统10实现系统10的一个或多个组件、特征或方面(例如,逻辑13,其处理包括来自两个或更多个视频源的帧信息的单个视频帧流,基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数等)。

现在参考图2,半导体封装装置20的实施例可以包括基板21和耦合到基板21的逻辑22,其中,逻辑22至少部分地实施为可配置逻辑和固定功能硬件逻辑中的一个或多个。耦合到基板21的逻辑22可以配置为处理包括来自两个或更多个视频源的帧信息的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。在一些实施例中,逻辑22还可以配置为处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。例如,逻辑22可以配置为基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。逻辑22还可以配置为基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。在一些实施例中,逻辑22可以配置为对单个视频帧流进行编码,和/或对单个视频帧流进行解码。

装置20的逻辑22和其他组件的实施例可以实现为硬件、软件或其包括至少部分硬件实施方式的任何组合。例如,硬件实施方式可以包括可配置逻辑,诸如例如pla、fpga、cpld或使用电路技术(诸如例如asic、cmos或ttl技术或其任何组合)的固定功能逻辑硬件。附加地,这些组件的一部分可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如ram、rom、prom、固件、闪存等)中的逻辑指令集合,以由处理器或计算设备执行。例如,用于执行组件的操作的计算机程序代码可以以一种或多种os适用/适当的编程语言的任何组合来编写,包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言和诸如“c”编程语言或类似编程语言的常规过程编程语言。

现在参考图3,处理视频流的方法30的实施例可以包括:在框31中,处理包括来自两个或更多个视频源的帧信息的单个视频帧流;并且在框32中,基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。方法30的一些实施例还可以包括,在框33中,处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。方法30还可以包括,在框34中,基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。例如,方法30可以包括,在框35中,基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。方法30的一些实施例还可以包括,在块36中,对单个视频帧流进行编码,和/或在框37中,对单个视频帧流进行解码。

方法30的实施例可以在系统、装置、计算机、设备等中实现,例如,诸如本文所述。更具体地,方法30的硬件实施方式可以包括可配置逻辑,诸如例如pla、fpga、cpld或使用电路技术(诸如例如asic、cmos或ttl技术或其任何组合)的固定功能逻辑硬件。替代地或附加地,方法30可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如ram、rom、prom、固件、闪存等)中的逻辑指令集合,以由处理器或计算设备执行。例如,用于执行组件的操作的计算机程序代码可以以一种或多种os适用/适当的编程语言的任何组合来编写,包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言和诸如“c”编程语言或类似编程语言的常规过程编程语言。

例如,可以在结合下面的示例19至24描述的计算机可读介质上实现方法30。可以在固件、应用(例如,通过应用编程界面(api))或在操作系统(os)上运行的驱动程序软件中实现方法30的实施例或部分。

现在参考图4,多源帧处理器40的实施例可以包括多源帧缓冲器41和交织帧处理器42。例如,多源帧缓冲器41可以存储来自单个视频帧流的帧,该单个视频帧流包括来自两个或更多个视频源的帧信息。交织帧处理器42可以处理包括来自两个或更多个视频源的帧信息的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。在一些实施例中,交织帧处理器42还可以配置为处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。例如,交织帧处理器42可以配置为基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。交织帧处理器42还可以配置为基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。在一些实施例中,交织帧处理器42可以配置为对单个视频帧流进行编码,和/或对单个视频帧流进行解码。

不限于特定实施方式,一些实施例可以使用帧内编码图片帧(i帧)、预测图片帧(p帧)和/或双向预测图片帧(b帧)中的一个或多个来编码/解码视频流。i帧可以包括完整图片,并且可以不需要任何其他帧来编码/解码。p帧可以包括来自先前帧的图像的变化,并且可以比i帧更可压缩。p帧有时也可以称为δ(delta)帧。b帧可以包括当前帧与先前帧和后续帧两者之间的差异,并且可以比i帧和/或p帧更可压缩。

在一些实施例中,帧信息可以包括图片信息或图片相关信息。例如,帧可以指代完整图像,而图片可以指代帧或场。在一些实施例中,帧信息可以包括场或场相关信息。场可以指代构成部分图像的奇数或偶数扫描行集合。当以隔行扫描格式发送视频时,可以用两个场发送每个帧。即,奇数行的场和偶数行的场。在一些实施例中,帧信息还可以包括片或宏块。帧或图片可以被分段为宏块,并且可以在宏块的基础上选择各预测类型,而不是整个帧/图片的类型都相同。片可以指代与同一帧中的任何其他区域分开编码的帧的空间上不同的区域(例如,i片、p片和b片可以代替i帧、p帧和b帧)。诸如motionpictureexpertsgroup(mpeg)标准的视频标准可以包括i帧、p帧、b帧、场、宏块、片、i片、p片和/或b片。这种mpeg标准可以包括例如mpeg-4advancedvideocoding(avc)(也称为h.264)以及highefficiencyvideocoding(hevc)(也称为h.265)。

在一些其他系统中,可以始终使用紧接的前一帧来解码p帧,并且可以始终使用紧接的前一帧和紧接的下一帧来解码b帧。在一些其他多源视频系统中,分离的视频流可以与每个视频源的一个视频流一起使用。对于其他多源视频系统,多个源的同步可能存在问题。例如,不同的源可以使用不同的格式,可能需要多个解码器来解码每个流,和/或解码多个分离视频流的时间量可能不同。有利地,一些实施例可以将来自多个视频源的帧交织成单个视频流,以减少或消除对同步的需要并提高性能。一些实施例还可以有利地减少或消除对多个解码器的需要。

参考帧可以指代预测帧可以基于的帧。一些实施例可以基于当前帧位置减去视频源的数量来确定当前p帧/b帧的先前参考帧。一些实施例可以基于当前帧位置加上视频源的数量来确定当前b帧的后续参考帧。一些实施例可以使用多个参考帧(例如,h.264允许多达15个)。对于具有五(5)个视频源的实施例,例如,对于帧位置6,一个参考帧可以包括帧位置1,对于帧位置11,两个参考帧可以包括帧位置1和6,对于帧16,三个参考帧可以包括帧位置1、6和11,等等。

一些实施例可以基于帧位置模视频源的数量来确定帧的视频源的位置。例如,取模运算可以在将一个数除以另一个数之后产生余数(例如,其也可以称为模数)。例如,对于具有五(5)个视频源的实施例,视频流的前五帧(帧1到5)可以分别被与每个视频源的第一帧相关的信息占用,视频流的接下来的五帧(帧6到10)可以分别被与每个视频源的第二帧相关的信息占用,等等。对于具有三十(30)帧的图像组(gop)大小的视频源材料,单个视频流将在帧内帧之间的视频流中包括150帧,其中流的前五帧对应于帧内帧,剩余的145帧对应于预测帧。

对于当前示例,帧位置6减去5(例如,视频源的数量)获得帧位置6的先前参考帧的帧位置1。同样,帧位置11减去5获得帧位置11的先前参考帧的帧位置6,等等。可以通过将视频源的数量加上当前帧位置来确定后续参考帧。对于当前示例,帧位置6加5获得帧位置6的后续参考帧的帧位置11。同样,帧位置11加5获得帧位置11的后续参考帧的帧位置16。对于当前示例,帧位置7减去5(例如,视频源的数量)获得帧位置7的先前参考帧的帧位置2。同样,帧位置12减去5获得帧位置12的先前参考帧的帧位置7,等等。对于当前示例,帧位置7加5获得帧位置7的后续参考帧的帧位置12。同样,帧位置12加5获得帧位置12的后续参考帧的帧位置17,等等。

对于当前示例,帧位置6模5(例如,视频源的数量)获得视频源位置的视频源1。同样,帧位置11、16、21、26等模5获得这些帧位置的视频源位置的视频源1。对于当前示例,帧位置7模5(例如,视频源的数量)获得视频源位置的视频源2。同样,帧位置12、17、22、27等模5获得这些帧位置的视频源位置的视频源2。与视频源数量的倍数对应的帧的视频源位置可以被映射到位置0(例如,因为15模5=0),函数可以将为0的取模结果映射到与该视频源数量对应的视频源位置(例如,video_source_position[modulo=0]=n),或者其他合适的技术可以应用于处理取模运算结果为零(0)的情况。替代地,一些实施例可以将视频源表示为从视频源位置零(0)开始并继续到视频源位置n-1。

在一些实施例中,可以利用可编程计数器来确定视频源位置和/或适当的参考帧。例如,计数器可以被编程为从1计数到视频源的数量,然后从1重新开始以确定视频源位置,每当处理帧时计数器就递增。可以将gop大小乘以视频源的数量加到计数器值上以确定后续帧内帧位置。替代地,另一计数器可以被编程为从gop大小乘以视频源的数量到该数量加上视频源的数量进行计数,然后在gop大小乘以视频源的数量处重新开始,以确定后续帧内帧位置,每当处理帧时计数器就递增。在一些实施例中,可以将计数器值加到帧缓冲存储器地址上,该地址指向正在处理的当前帧集合的起始处。然而,鉴于本公开的益处,本领域技术人员可以想到用于利用用于识别适当参考帧的合适技术来交织来自多个视频源的帧的许多其他布置。

在一些实施例中,视频流中的第一帧集合可以对应于i帧或瞬时解码器刷新(idr)帧。对于以上示例,可以基于最近的idr帧来确定预测帧,使得从非idr帧到非idr帧的改变不是累积的,并且取模运算返回当前非idr帧的适当参考idr帧。在一些实施例中,从非idr帧到非idr帧的改变可以是累积的。例如,多源帧缓冲器41可以在帧缓冲器位置1到n中保持每个视频源的完整帧,其中n对应于视频源的数量。当处理idr帧时,可以替换每个位置处的帧数据,并且当处理每个非idr帧时,可以更新帧数据。因此,计数器或取模运算将指向保持适当参考帧信息的帧缓冲器位置。

一些实施例可以在交织布局中将帧集合成组在一起(例如,来自每个相机的两个帧,来自每个相机的四个帧等),使得仅每个集合中的边界帧可以使用基于视频源数量的计算来确定适当参考帧。例如,对来自同一视频源的四个p帧的集合的编码/解码可能需要仅确定帧位置1的适当参考帧的位置,而该集合中的帧2到4可以使用紧接的先前帧。例如,对来自同一视频源的四个b帧的集合的编码/解码可能需要仅确定帧位置1和4的适当参考帧的位置,而该集合中的帧2和3可以使用紧接的先前帧和后续帧。

多源帧处理器40的多源帧缓冲器41、交织帧处理器42和其他组件的实施例可以实现为硬件、软件或其包括至少部分硬件实施方式的任何组合。例如,硬件实施方式可以包括可配置逻辑,诸如例如pla、fpga、cpld或使用电路技术(诸如例如asic、cmos或ttl技术或其任何组合)的固定功能逻辑硬件。附加地,这些组件的一部分可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(诸如ram、rom、prom、固件、闪存等)中的逻辑指令集合,以由处理器或计算设备执行。例如,用于执行组件的操作的计算机程序代码可以以一种或多种os适用/适当的编程语言的任何组合来编写,包括诸如python、perl、java、smalltalk、c++、c#等的面向对象的编程语言和诸如“c”编程语言或类似编程语言的常规过程编程语言。

一些实施例可以有利地使用单个视频流内的帧布局来提供多相机压缩。例如,可以从两个或更多个相机中提供多个视频源。来自若干相机的视图可以有利地以交织布局布置在一个流中。例如,可以使用基于h.264/h.265的编码器/解码器(编码解码器)对流进行编码和解码,该编码解码器配置为根据一些实施例处理多源格式。有利地,一些实施例可以将一个解码器用于多个相机,这可以减少或消除多个视频源之间的同步需求,并且还可以提高性能。

现在参考图5,多相机编码器50的实施例可以包括通信耦合到编码器52的多个帧缓冲器fb1到fbn(n>1)。例如,帧缓冲器fb1到fbn可以各自存储来自不同相机源的帧。编码器52可以将来自多个帧缓冲器fb1到fbn的信息编码成单个视频帧流,其包括来自n个相机的帧信息。编码器52可以配置为基于来自单个视频帧流中的先前帧的信息来对当前帧进行编码,该先前帧比当前帧领先基于数量n的帧数。在一些实施例中,编码器52可以配置为编码源自n个相机中不同相机的单个视频帧流中的每个连续帧。例如,编码器52可以配置为基于当前帧的帧位置减去数量n来确定先前帧的帧位置。编码器52还可以配置为基于帧的帧位置模数量n来确定帧的视频源位置。在一些实施例中,编码器52可以配置为使用与mpeg标准格式(诸如h.264或h.265)兼容的压缩技术来对单个视频帧流进行编码,但是每个p帧/b帧可以使用与当前帧减去数量n对应的帧位置作为用于预测的先前参考帧(例如,b帧可以在后续参考帧的附加计算中使用数量n)。替代地,一些实施例可以在交织布局中将帧集合成组在一起(例如,来自每个相机的两个帧,来自每个相机的四个帧等),使得仅每个集合中的边界帧可以使用数量n来确定适当参考帧。

现在参考图6,多相机编码器60的实施例可以包括通信耦合到编码器62的n宽(n-wide)帧缓冲器61(n>1)。例如,n宽帧缓冲器61可以各自存储来自n个相机源的帧。编码器62可以将来自n宽帧缓冲器61的信息编码成单个视频帧流,其包括来自n个相机的帧信息。编码器62可以配置为基于来自单个视频帧流中的先前帧的信息来对当前帧进行编码,该先前帧比当前帧领先基于数量n的帧数。在一些实施例中,编码器62可以配置为编码源自n个相机中不同相机的单个视频帧流中的每个连续帧。例如,编码器62可以配置为基于当前帧的帧位置减去数量n来确定先前帧的帧位置。编码器62还可以配置为基于帧的帧位置模数量n来确定帧的视频源位置。在一些实施例中,编码器62可以配置为使用与mpeg标准格式(诸如h.264或h.265)兼容的压缩技术来对单个视频帧流进行编码,但是每个p帧/b帧可以使用与当前帧减去数量n对应的帧位置作为用于预测的先前参考帧(例如,b帧可以在后续参考帧的附加计算中使用数量n)。替代地,一些实施例可以在交织布局中将帧集合成组在一起(例如,来自每个相机的两个帧,来自每个相机的四个帧等),使得仅每个集合中的边界帧可以使用基于数量n的计算来确定适当参考帧。

现在参考图7,多相机解码器70的实施例可以包括通信耦合到解码器72的n宽帧缓冲器71(n>1)。解码器72可以将来自单个视频流(其包括来自n个相机的帧信息)的信息解码到n宽帧缓冲器71中。解码器72可以配置为基于来自单个视频帧流中的先前帧的信息来对当前帧进行解码,该先前帧比当前帧领先基于数量n的帧数。在一些实施例中,解码器72可以配置为解码源自n个相机中不同相机的单个视频帧流中的每个连续帧。例如,解码器72可以配置为基于当前帧的帧位置减去数量n来确定先前帧的帧位置。解码器72还可以配置为基于帧的帧位置模数量n来确定帧的视频源位置。在一些实施例中,解码器72可以配置为使用与mpeg标准格式(诸如h.264或h.265)兼容的压缩技术来对单个视频帧流进行编码,但是每个p帧/b帧可以使用与当前帧减去数量n对应的帧位置作为用于预测的参考帧(例如,b帧可以在后续参考帧的附加计算中使用数量n)。替代地,一些实施例可以在交织布局中将帧集合成组在一起(例如,来自每个相机的两个帧,来自每个相机的四个帧等),使得仅每个集合中的边界帧可以使用取模计算来确定适当参考帧。在一些实施例中,解码器72可能不需要解码来自所有编码视频源的信息。例如,如果n=5并且输出不需要相机1和相机4,则解码器72可以跳过与相机1和4相关的所有帧(例如,模5等于1或4的所有帧)。一些实施例可以通过跳过单个视频流中不需要的帧来节省处理带宽和/或电池功率。

现在参考图8,电子处理系统80的实施例可以包括通信耦合到多相机编码器81(例如,有线或无线)的两个或更多个相机c1到cn(n>1)。多相机编码器81可以通信耦合到兼容的多相机解码器82(例如,有线或无线地和/或直接或间接地)。例如,多相机81可以将视频流上传到云服务器或服务83,并且多相机解码器82可以从云83下载视频流(例如,直播或作为视频文件)。多相机解码器82可以解码视频流以在显示器84上查看。

在一些实施例中,多相机编码器81可以配置为编码包括来自两个或更多个相机c1到cn的帧信息的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来编码当前帧,该先前帧比当前帧领先基于数量n的帧数。在一些实施例中,编码器81还可以配置为编码源自两个或更多个相机c1到cn中的不同相机的单个视频帧流中的每个连续帧。例如,编码器81可以配置为基于当前帧的帧位置减去数量n来确定先前帧的帧位置。编码器81还可以配置为基于帧的帧位置模数量n来确定帧的视频源位置。

在一些实施例中,多相机解码器82可以配置为解码包括来自两个或更多个相机c1到cn的帧信息的由编码器81创建的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来解码当前帧,该先前帧比当前帧领先基于数量n的帧数。在一些实施例中,解码器82还可以配置为解码源自两个或更多个相机c1到cn中的不同相机的单个视频帧流中的每个连续帧。例如,解码器82可以配置为基于当前帧的帧位置减去数量n来确定先前帧的帧位置。解码器82还可以配置为基于帧的帧位置模数量n来确定帧的视频源位置。有利地,一些实施例可以提供多相机压缩和/或多相机编码解码器。一些实施例还可以与单相机一起工作(例如,其中n=1),使得同一编码解码器可以用于单个相机和多相机编码/解码应用。

现在参考图9,二十一(21)个相机的视频流帧布局的实施例可以如下布置:每个相机的所有第一帧,所有相机的所有第二帧,等等。为方便起见,图9包括帧标签f1到f32和相机标签c1到c21。图9中的内部方框表示帧信息,其中“idr”表示idr帧,“p”表示p帧。每个内部方框内的数字表示连续帧位置。例如,对于基于h.264/h.265的编码/解码,每个非idr帧可以将帧位置减去相机数量作为预测(例如,与紧接的前一帧相反)。对于具有21个相机的实施例,例如,在帧位置22(帧f2,相机c1,f2c1)处,编码解码器将帧22-21=帧位置1(帧f1,相机c1,f1c1)作为预测帧(例如,与帧位置21相反;f1c21)。如果图片组(gop)大小为30,则帧位置1-21(f1c1-f1c21)、631-651(f31c1-f31c21)等中的所有帧将为idr帧。一些实施例可以有利地提供h.264/h.265编码解码器的修改版本,其利用帧位置减去相机数量作为参考,而不是利用先前帧作为参考。有利地,一些实施例可以将一个解码器用于多个相机,这可以减少或消除多个视频源之间的同步需求,并且还可以提高性能。

图10示出系统700的实施例。在实施例中,系统700可以是媒体系统,但是系统700不限于此。例如,系统700可以并入个人计算机(pc)、膝上型计算机、超便携式计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如智能电话、智能平板电脑或智能电视)、移动互联网设备(mid)、消息设备、数据通信设备等。

在实施例中,系统700包括耦合到呈现视觉内容的显示器720的平台702。平台702可以从诸如内容服务设备730或内容分发设备740或其他类似内容源的内容设备接收视频比特流内容。包括一个或多个导航部件的导航控制器750可以用于与例如平台702和/或显示器720交互。下面更详细地描述这些组件中的每一个。

在实施例中,平台702可以包括芯片组705、处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电装置718的任何组合。芯片组705可以提供处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电装置718之间的相互通信。例如,芯片组705可以包括能够提供与存储714相互通信的存储适配器(未示出)。

处理器710可以实现为复杂指令集计算机(cisc)或精简指令集计算机(risc)处理器、x86指令集兼容处理器、多核或任何其他微处理器或中央处理单元(cpu)。在实施例中,处理器710可以包括双核处理器、双核移动处理器等。

存储器712可以实现为易失性存储装置,诸如但不限于随机存取存储器(ram)、动态随机存取存储器(dram)或静态ram(sram)。

存储714可以实现为非易失性存储装置,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储装置、附加存储装置、闪存、备用电池的sdram(同步dram)和/或网络可访问存储装置。在实施例中,例如,存储714可以包括当包括多个硬盘驱动器时增加对有价值数字媒体的存储性能增强保护的技术。

图形子系统715可以执行诸如静止图像或视频的图像处理以供显示。例如,图形子系统715可以是图形处理单元(gpu)或视觉处理单元(vpu)。模拟或数字接口可以用于通信耦合图形子系统715和显示器720。例如,接口可以是高清晰度多媒体接口(hdmi)、displayport、无线hdmi和/或无线hd兼容技术中的任何一种。图形子系统715可以集成到处理器710或芯片组705中。图形子系统715可以是通信耦合到芯片组705的独立卡。在一个示例中,如本文所述,图形子系统715包括降噪系统。

本文描述的图形和/或视频处理技术可以在各种硬件架构中实现。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用分立的图形和/或视频处理器。作为又一实施例,图形和/或视频功能可以由通用处理器实现,包括多核处理器。在进一步的实施例中,功能可以在消费者电子设备中实现。

无线电装置718可以是网络控制器,其包括能够使用各种合适的无线通信技术发送和接收信号的一个或多个无线电装置。这些技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(wlan)、无线个域网(wpan)、无线城域网(wman)、蜂窝网络和卫星网络。在通过这些网络进行通信时,无线电装置718可以根据任何版本的一个或多个适用标准进行操作。

在实施例中,显示器720可以包括任何电视类型的监视器或显示器。显示器720可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器720可以是数字和/或模拟的。在实施例中,显示器720可以是全息显示器。而且,显示器720可以是可以接收视觉投影的透明表面。这样的投影可以传送各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(mar)应用的视觉覆盖。在一个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面722。

在实施例中,内容服务设备730可以由任何国家、国际和/或独立服务托管,并且因此例如可以经由互联网访问平台702。内容服务设备730可以耦合到平台702和/或显示器720。平台702和/或内容服务设备730可以耦合到网络760以与网络760进行媒体信息通信(例如,发送和/或接收)。内容分发设备740还可以耦合到平台702和/或显示器720。

在实施例中,内容服务设备730可以包括有线电视盒、个人计算机、网络、电话、能够分发数字信息和/或内容的互联网设备或装置以及能够经由网络760或直接在内容提供方和平台702和/或显示器720之间进行单向或双向内容通信的任何其他类似设备。应当理解,可以经由网络760与系统700中的任何一个组件和内容提供方进行单项和/或双向内容通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

内容服务设备730接收诸如有线电视节目的内容,包括媒体信息、数字信息和/或其他内容。内容提供方的示例可以包括任何有线或卫星电视或无线电装置或互联网内容提供方。提供的示例不意味着限制实施例。

在实施例中,平台702可以从具有一个或多个导航部件的导航控制器750接收控制信号。例如,控制器750的导航部件可以用于与用户界面722交互。在实施例中,导航控制器750可以是定点装置,其可以是允许用户将空间(例如,连续和多维)数据输入计算机的计算机硬件组件(具体地,人机界面装置)。诸如图形用户界面(gui)、电视和监视器的许多系统允许用户使用物理手势来控制和向计算机或电视提供数据。

控制器750的导航部件的移动可以通过显示器上显示的指针、光标、聚焦环或其他视觉指示器的移动在显示器(例如,显示器720)上重复。例如,在软件应用716的控制下,位于导航控制器750上的导航部件可以被映射到例如在用户界面722上显示的虚拟导航部件。在实施例中,控制器750可以不是单独的组件,而是集成到平台702和/或显示器720中。然而,实施例不限于本文中示出或描述的元件或背景。

在实施例中,例如,当启用时,驱动器(未示出)可以包括使得用户能够在初始启动之后通过触摸按钮立即打开和关闭类似电视的平台702的技术。当平台被“关闭”时,程序逻辑也可以允许平台702将内容流式传输到媒体适配器或其他内容服务设备730或内容分发设备740。另外,例如,芯片组705可以包括硬件和/或软件,用于支持5.1环绕声音频和/或高清7.1环绕声音频。驱动器可以包括用于集成图形平台的图形驱动器。在实施例中,图形驱动器可以包括外围组件互连(pci)express图形卡。

在各种实施例中,可以集成系统700中示出的任何一个或多个组件。例如,可以集成平台702和内容服务设备730,或者可以集成平台702和内容分发设备740,或者例如,可以集成平台702、内容服务设备730和内容分发设备740。在各种实施例中,平台702和显示器720可以是集成单元。例如,可以集成显示器720和内容服务设备730,或者可以集成显示器720和内容分发设备740。这些示例不意味着限制实施例。

在各种实施例中,系统700可以实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统700可以包括适合于通过无线共享媒介进行通信的组件和接口,诸如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等。无线共享媒介的示例可以包括无线频谱的部分,诸如rf频谱等。当实现为有线系统时,系统700可以包括适合于通过有线通信媒介进行通信的组件和接口,诸如输入/输出(i/o)适配器、用于将i/o适配器与对应的有线通信媒介连接的物理连接器、网络接口卡(nic)、光盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可以包括引线、电缆金属线、印刷电路板(pcb)、背板、交换光线、半导体材料、双绞线、同轴电缆、光纤等。

平台702可以建立一个或多个逻辑或物理信道以进行信息通信。该信息可以包括媒体信息和控制信息。媒体信息可以指代表示针对用户的内容的任何数据。内容的示例可以包括例如来自语音对话、视频会议、流式视频、电子邮件(“邮件”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指代表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息,或指示节点来以预定方式处理媒体信息。然而,实施例不限于图10中示出或描述的元件或背景。

如上所述,系统700可以体现为不同的物理样式或形状因子。图11示出可以体现系统700的小形状因子设备800的实施例。在实施例中,例如,设备800可以被实现为移动计算设备,其具有无线功能。例如,移动计算设备可以指代具有处理系统和移动电源或电源(诸如一个或多个电池)的任何设备。

如上所述,移动计算设备的示例可以包括个人计算机(pc)、膝上型计算机、超便携式计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(pda)、蜂窝电话、组合蜂窝电话/pda、电视、智能设备(例如,智能电话、智能平板电脑或智能电视)、移动互联网设备(mid)、消息设备、数据通信设备,等等。

移动计算设备的示例还可以包括被布置为由人佩戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、服装计算机和其他可穿戴计算机。在实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以通过示例的方式利用实现为智能电话的移动计算设备来描述一些实施例,但是可以理解,其他实施例也可以使用其他无线移动计算设备来实现。实施例在这方面不受限制。

如图11所示,设备800可以包括壳体802、显示器804、输入/输出(i/o)装置806和天线808。设备800还可以包括导航部件812。显示器804可以包括任何合适的显示单元,用于显示适合于移动计算设备的信息。i/o装置806可以包括用于将信息输入移动计算设备的任何合适的i/o装置。i/o装置806的示例可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇杆式开关、麦克风、扬声器、语音识别装置和软件等。还可以通过麦克风将信息输入到设备800中。这种信息可以由语音识别装置来数字化。实施例在这方面不受限制。

系统700和/或设备800可以配置为包括和/或实现本文描述的各种实施例,包括但不限于以下附加说明和示例中描述的那些。

附加说明和示例:

示例1可以包括一种电子处理系统,其包括处理器、通信耦合到处理器的存储器以及通信耦合到处理器的逻辑,该逻辑用于处理包括来自两个或更多个视频源的帧信息的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。

示例2可以包括示例1的系统,其中,逻辑还用于处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。

示例3可以包括示例1的系统,其中,逻辑还用于基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。

示例4可以包括示例3的系统,其中,逻辑还用于基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。

示例5可以包括示例1至4中任一示例的系统,其中,逻辑还用于对单个视频帧流进行编码。

示例6可以包括示例1至4中任一示例的系统,其中,逻辑还用于对单个视频帧流进行解码。

示例7可以包括一种半导体封装装置,其包括基板、耦合到基板的逻辑,其中,该逻辑至少部分地实施在可配置逻辑和固定功能硬件逻辑的一个或多个中,耦合到基板的逻辑用于处理包括来自两个或更多个视频源的帧信息的单个视频帧流,并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。

示例8可以包括示例7的装置,其中,逻辑还用于处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。

示例9可以包括示例7的装置,其中,逻辑还用于基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。

示例10可以包括示例9的装置,其中,逻辑还用于基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。

示例11可以包括示例7至10中任一示例的装置,其中,逻辑还用于对单个视频帧流进行编码。

示例12可以包括示例7至10中任一示例的装置,其中,逻辑还用于对单个视频帧流进行解码。

示例13可以包括一种处理视频流的方法,其包括:处理包括来自两个或更多个视频源的帧信息的单个视频帧流;并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。

示例14可以包括示例13的方法,还包括处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。

示例15可以包括示例13的方法,还包括基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。

示例16可以包括示例15的方法,还包括基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。

示例17可以包括示例13至16中任一示例的方法,还包括对单个视频帧流进行编码。

示例18可以包括示例13至16中任一示例的方法,还包括对单个视频帧流进行解码。

示例19可以包括至少一种计算机可读介质,其包括指令集合,该指令集合在被计算设备执行时,使计算设备:处理包括来自两个或更多个视频源的帧信息的单个视频帧流;并且基于来自单个视频帧流中的先前帧的信息来处理当前帧,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。

示例20可以包括示例19的至少一种计算机可读介质,其包括另一指令集合,该另一指令集合在被计算设备执行时,使计算设备处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧。

示例21可以包括示例19的至少一种计算机可读介质,其包括另一指令集合,该另一指令集合在被计算设备执行时,使计算设备基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置。

示例22可以包括示例21的至少一种计算机可读介质,其包括另一指令集合,该另一指令集合在被计算设备执行时,使计算设备基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置。

示例23可以包括示例19至22中任一示例的至少一种计算机可读介质,其包括另一指令集合,该另一指令集合在被计算设备执行时,使计算设备对单个视频帧流进行编码。

示例24可以包括示例19至22中任一示例的至少一种计算机可读介质,其包括另一指令集合,该另一指令集合在被计算设备执行时,使计算设备对单个视频帧流进行解码。

示例25可以包括一种视频编码解码装置,其包括:用于处理包括来自两个或更多个视频源的帧信息的单个视频帧流的模块;和用于基于来自单个视频帧流中的先前帧的信息来处理当前帧的模块,该先前帧比当前帧领先基于单个视频帧流中表示的视频源的数量的帧数。

示例26可以包括示例25的装置,还包括用于处理源自两个或更多个视频源中的不同视频源的单个视频帧流中的每个连续帧的模块。

示例27可以包括示例26的装置,还包括用于基于当前帧的帧位置减去单个视频帧流中表示的视频源的数量来确定先前帧的帧位置的模块。

示例28可以包括示例27的装置,还包括用于基于帧的帧位置模单个视频帧流中表示的视频源的数量来确定帧的视频源位置的模块。

示例29可以包括示例25至28中任一示例的装置,还包括用于对单个视频帧流进行编码的模块。

示例30可以包括示例25至28中任一示例的装置,还包括用于对单个视频帧流进行解码的模块。

实施例适用于所有类型的半导体集成电路(“ic”)芯片。这些ic芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(pla)、存储器芯片、网络芯片、片上系统(soc)、ssd/nand控制器asic等。另外,在一些附图中,信号导线用线表示。一些可以是不同的,以指示更多组成信号路径,一些具有数字标签,以指示多个组成信号路径,和/或一些在一个或多个端部具有箭头,以指示主信息流方向。然而,这不应以限制方式解释。而是,可以结合一个或多个示例性实施例使用这种附加细节,以便于更容易地理解电路。任何表示的信号线,无论是否具有附加信息,实际上都可以包括可以在多个方向上行进的一个或多个信号,并且可以用任何合适类型的信号方案来实现,例如,利用差分对、光纤线和/或单端线实现的数字或模拟线。

可以给出示例性尺寸/模型/值/范围,但是实施例不限于此。由于制造技术(例如,光刻)随着时间的推移而成熟,预期可以制造更小尺寸的器件。另外,为了简化说明和讨论,并且为了不使实施例的某些方面模糊,可以在图中示出或不示出ic芯片和其他组件的公知的电源/接地连接。此外,为了避免模糊实施例,并且还考虑到关于这种框图布置的实施方式的细节高度依赖于实现该实施例的平台的事实,即,这些细节应该在本领域技术人员的知识范围内,可以以框图形式示出布置。在阐述具体细节(例如,电路)以便描述示例性实施例的情况下,对于本领域技术人员来说显而易见的是,可以在没有或具有这些具体细节的变化的情况下实践实施例。因此,该描述被认为是说明性的而非限制性的。

术语“耦合”在本文中可以用于指代所讨论的组件之间的任何类型的直接或间接关系,并且可以应用于电气、机械、流体、光学、电磁、机电或其他连接。另外,本文可以使用词语“第一”、“第二”等仅仅为了便于讨论,并且除非另有说明,否则不带有特定的时间或先后顺序。

如在本申请和权利要求中所使用的,由词语“一个或多个”修饰的所列项目可以表示所列项的任何组合。例如,短语“a、b和c中的一个或多个”和短语“a、b或c中的一个或多个”都可以表示:a;b;c;a和b;a和c;b和c;或a、b和c。

从前面的描述中,本领域技术人员将理解,实施例的广泛技术可以以各种形式实现。因此,虽然已经结合实施例的具体示例描述了实施例,但是实施例的真实范围不应受此限制,因为在研读附图、说明书和所附权利要求之后,其他修改对于本领域技术人员而言将变得显而易见。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1