基于策略的图像编码的制作方法

文档序号:12071839阅读:189来源:国知局
基于策略的图像编码的制作方法与工艺

本申请要求享有2014年10月15日提交的美国专利申请号14/515,175的提交日的利益,所述申请通过引用并入本文。

技术领域

本公开一般涉及图像编码。更具体地,本公开描述了使用基于策略的方案的图像编码。



背景技术:

计算设备日益被用于查看与计算设备相关联的显示设备上的图像。例如,图像数据可以由图形处理单元再现,或者与要显示在无线显示设备处的操作系统协作。在一些场景中,图像数据由具有编码器的显示系统分组化以提供给外部显示设备。分组化显示系统的一些示例可以包括无线显示系统,其中计算设备可以经由无线通信协议(诸如无线保真(WiFi)、无线吉比特(WiGig)等)向外部显示器提供图像数据。其它分组化显示系统可以包括通用串行总线(USB)协议显示系统。在必须向显示设备传输大量数据的情况下,传输该数据的时间和置于系统上的负载增加,从而造成系统装备的使用和可用带宽的使用方面中的低效率。

附图说明

图1是具有基于策略的显示编码系统的计算设备的框图;

图2是图示了应用于视频数据的策略过程的过程流程图;

图3是图示了使用帧内(I-Frame)或预测帧(P-Frame)技术的策略过程的过程流程图;

图4是图示了具有渐进传输的策略过程的过程流程图;

图5是图示了多区更新的图;

图6是图示了监视经编码的更新的图像质量的图;

图7是图示了基于策略的图像编码的功能组件的流程图;

图8是图示了基于策略的图像编码的方法的框图;以及

图9是描绘了配置成实现基于策略的图像编码的计算机可读介质的示例的框图。

具体实施方式

本文所公开的主题涉及用于使用基于策略的方案的图像编码的技术。如以上所讨论的,分组化显示系统可以编码和向显示设备传输图像数据。在许多情况下,带宽可能是有限的,并且因此,要传输的大量数据可能增加传输的等待时间,以及作为增加的负载的结果,增加功率消耗。本文所描述的技术包括编码和向显示器传输图像数据的基于策略的方案。当要传输的数据是视频数据(或者换言之,频繁改变的数据)时,第一策略可以相比于更高图像质量而有利于低等待时间传输。当要传输的数据是非视频数据时,或者换言之,当数据不频繁改变时,第二策略可以相比于低等待时间而有利于更高的图像质量数据。

术语“低等待时间”和“频繁”可以是相对的术语。然而,术语“低等待时间”,如本文所提到的,是相比于否则如果针对频繁改变的给定图像数据类型(即视频数据)而有利于图像质量则将更高的等待时间的低传输时间。例如,如果对于视频数据,图像质量比等待时间优先,则接连的经编码和传输的帧之间的时间可能增加。因此,术语低等待时间可以被理解为与否则如果图像质量被优先或要求在某个阈值处的等待时间的比较。在一些情况下,术语“低等待时间”可以基于指示在此以下的传输等待时间被视为低的时间段的预定阈值。

术语“频繁”,如本文所提到的,可以是指阈值改变速率,在此以上图像数据可以被视为高。在一些情况下,术语“频繁”可以由所传输的数据类型确定。例如,作为视频数据的图像数据可以被分类为频繁改变的图像数据,无论改变速率是否满足或超过以上所讨论的阈值。视频数据,如本文所提到的,可以包括与在给定阈值以上频繁改变的数据相关联的自然视频数据。相比之下,非视频数据可以包括在给定阈值以下的数据,并且可以包括与生产力图形中的改变相关联的数据。例如,当与视频数据相比时,对文字处理器应用的改变可能相对不频繁。对与文字处理器应用相关联的图像数据的改变可以是发生在生产力图形中的示例改变之一。生产力图形中的改变的其它示例可以包括发生在文件窗口应用、演示应用、文档查看器应用等中的改变。

用户可以以相比于静态或非视频图像数据中的较低图像质量的较少细看来查看视频中的较低图像质量。例如,由于视频数据的每一帧的内容可能随每一个接连帧而改变,因此基于策略的编码可以快速提供经编码的帧,相比于如果要求图像质量保持在设定阈值处则可能发生的等待时间。相比之下,由于非视频数据的每一帧,包括要显示的文字处理器文档的这样帧不频繁改变,基于策略的编码可以相比于低等待时间而有利于图像质量。在该情况下,显示在文字处理器文档图像内的对象可以以高图像质量呈现,甚至以较高等待时间为代价。然而,由于改变不频繁地发生在文字处理器文档图像中,因此图像很可能以相比于其中有利于低等待时间的视频图像数据而言仍旧相对低的等待时间被编码和传输到显示设备。

在任何情况下,本文所描述的技术包括基于策略的编码系统,其中优先化可以基于要编码的图像数据的类型或要编码的图像数据的改变频率而改变。以下更加详细讨论的其它实施例包括选择性地更新帧的部分、渐进更新帧或帧的部分、多区更新、质量指示器追踪、渐进指示追踪、分布式反馈、分布式控制等。

图1是具有基于策略的显示编码系统的计算设备的框图。计算设备102可以包括处理器104、包括非暂时性计算机可读介质的存储设备106和存储器设备108。计算设备102可以包括显示系统110,其配置成实现与图像显示相关联的组件(诸如再现模块112、捕获和通知模块114、编码器116、分组化器118等)处的策略决定。策略引擎120可以由显示系统110在给定策略的实现期间进行参考。策略引擎120可以是策略架构,其中经分组化的数据流可以取决于图像数据的特性而被不同地编码以便保存能量、增加图像质量、降低等待时间等。在一些情况下,策略引擎可以配置成存储在存储设备106上并且由显示系统110经由处理器104进行参考。在任何情况下,显示系统配置成编码和向一个或多个外部显示设备122传输图像数据。

显示设备122可以经由无线连接通过网络接口控制器(NIC)124和网络126而通信耦合到计算设备102。在一些情况下,本文所讨论的技术可以实现在有线通信中,如通过虚线128所指示的,其中将图像数据经由通用串行总线(USB)驱动器130和USB端口132提供给外部显示设备122。

在实施例中,显示系统110的元件可以实现为逻辑、硬件逻辑或软件,其配置成由处理设备104实施。在再其它的示例中,显示系统110的元件可以是硬件、软件和固件的组合。显示系统110的元件可以配置成独立地、并行地、分布式地或作为更广的过程的部分进行操作。显示系统110的元件可以被视为分离的模块或父代模块的子模块。还可以包括附加的模块。

在一些情况下,显示系统110的元件可以实现在计算设备102的其它元件中。例如,再现模块112可以实现在计算设备的操作系统内,并且配置成再现图像数据以用于编码。同样地,捕获和通知模块114可以实现在操作系统内,或者可以是图形栈的部分,其配置成当图像数据是视频数据或非视频数据时进行识别并且通知编码器116。视频与非视频数据关系的该先验知识可以被编码器用于根据一个或多个策略来编码图像数据。

如以上所讨论的,策略可以包括第一策略,其中编码器116,针对作为视频数据的图像数据,相比于经编码的图像质量而优先化传输(即低等待时间)。换言之,第一策略可以以潜在较低的图像质量为代价在传输链路的可用带宽约束内传输频繁改变的图像数据。在第二策略中,编码器116,针对非视频数据,相比于低等待时间而优先化图像质量。换言之,第二策略将推迟传输,直到满足某个水平的图像质量,或者力图以比瞬时可用带宽更高的带宽进行传输,从而针对并非频繁改变的图像数据而牺牲低等待时间以得到图像质量。可以实现其它策略,然而,第一和第二策略被实现以针对并非频繁改变的图像数据(诸如文字处理器文档的图像数据)而向用户提供高图像质量,并且针对频繁改变的图像数据(诸如视频)而提供低等待时间。在编码器116编码图像数据之后,分组化器118可以分组化图像数据以用于传输至外部显示设备中的一个或多个。

处理器104可以是适配成运行所存储的指令的主存储器。处理器104可以是单核处理器、多核处理器、计算集群或任何数目的其它配置。处理器104可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元(CPU)。

存储器设备108可以包括随机存取存储器(RAM)(例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、零电容器RAM、硅-氧化物-氮-氧化物-硅SONOS、嵌入式DRAM、扩展数据输出RAM、双数据速率(DDR)RAM、电阻随机存取存储器(RRAM)、参数随机存取存储器(PRAM)等)、只读存储器(ROM)(例如掩模型ROM、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)、闪速存储器或任何其它合适的存储器系统。主处理器104可以通过系统总线134(例如外围组件互连(PCI)、工业标准架构(ISA)、PCI-Express、HyperTransport®、NuBus等)连接到包括存储器108和存储设备106的组件。

图1的框图不意图指示计算设备102要包括图1中所示的全部组件。另外,计算设备102可以取决于具体实现的细节而包括图1中未示出的任何数目的附加组件。

图2是图示了应用于视频数据的策略过程的过程流程图。如以上关于图2所讨论的,第一策略配置成针对作为视频数据的图像数据而优先化图像传输。例如,在202处,可以接收图像数据。图像数据可以由操作系统接收。在204处,做出关于图像数据是视频还是非视频的确定。该确定可以由操作系统、图形栈等中的一个或多个做出。在任何情况下,使该确定先验于向编码器提供图像数据和图像数据类型的指示。以上讨论的先验确定将图像数据类型确定从编码器卸载并且允许具有更多处理能力的组件(诸如图形栈、操作系统等)执行该确定。

在实施例中,通过图像数据内的改变频率的确定来确定图像数据是视频或非视频。例如,可以将图像数据的改变速率与预定阈值比较。在阈值以上的图像数据被分类为视频数据,而阈值以下的图像数据可以被分类为非视频数据。

在块206处,如果图像数据是视频数据,图1的编码器116将优先化图像传输,并且可以潜在地允许图像质量降低。在块208处,如果图像数据是非视频数据,编码器116优先化图像质量,并且可以潜在地允许传输的等待时间增加。

图3是图示了使用帧内(I-Frame)或预测帧(P-Frame)技术的策略过程的过程流程图。在一些情况下,第一或第二策略可以基于所检测到的改变是否发生在要显示的区域的足够小的部分中而不同地实现。如图3中所图示的,在302处接收图像数据,其指示从之前传输的帧的图像数据中的改变,并且在304处做出关于经改变的区域是否在预定阈值以上的确定。

例如,图像数据可以指示总显示帧的仅20%部分中的改变。如果改变仅影响总显示帧的小百分数,第一策略,其中图像质量优先于低等待时间传输。在图3中,如果所述部分在预定阈值以下,可以生成帧内(i-Frame)以用于传输,如306处所指示的。i-Frame传输可以提供要显示的比在308处生成的p帧经编码的传输更高质量的图像。虽然i-Frame传输可以典型地为高带宽传输,但是如果仅图像数据的小部分改变,则带宽将是相对小的。因此,图3中所图示的策略可以利用较高质量更新,其甚至可以在鉴于带宽约束的情况下快速传输。另外,由于仅发生小改变,因此传输i-Frame可以降低图1的编码器116的计算负载,因为p-Frame编码要求参考之前的帧以确定精确的p-Frame编码传输。

图4是图示了具有渐进传输的策略过程的过程流程图。如以上关于图3所讨论的,在一些情况下,第一或第二策略可以基于所检测到的改变是否发生在要显示的区域的足够小的部分中而不同地实现。如图4中所图示的,在402处接收图像数据,并且在404处确定经改变的图像数据是否在区域阈值以上。如果区域在阈值以上,并且在406处确定图像数据是视频数据,根据以上关于图1和2讨论的第一策略,并且如408处所指示的,对图像数据进行编码和传输。如果图像数据不是视频,但是仍旧在经改变的区域阈值以上,根据第二策略传输对图像数据进行编码和传输,如410处所指示的。

如果经改变的区域不在阈值以上,则可以生成基本传输,其采用相比于低等待时间而优先化图像质量的第二策略,如412处所指示的。在一些情况下,基本传输可以实现期望的图像质量。然而,如果基本传输不实现期望的图像质量,可以对渐进更新进行编码和传输,直到实现所期望的图像质量,如414处所指示的。在一些情况下,期望的质量可以与预定值相关联,并且当对图像数据进行编码和传输时可以追踪任何给定图像的质量。质量指示器,如以下更加详细讨论的,可以用于追踪已经被编码和传输的图像的质量。

基本传输和渐进更新可以使用可缩放视频编码(SVC)来编码。例如,当一个区变成静态时,SVC保真增强层可以用于提供渐进更新。此外或可替换地,在一些情况下,基本传输和渐进更新可以使用高级视频编解码器(AVC)来编码,其使用对应的帧水平精化。

如以上所讨论的,更新可以是已经改变的当前显示的图像的仅部分的结果。经改变的部分在本文中可以被称为经改变的“区”。以上讨论的选择性区更新可以由诸如图1的显示系统110之类的逻辑来追踪。

图5是图示了多区更新的图。本文所描述的技术包括经由SVC层或AVC帧更新多个区。按照定义,区可以要求不同类型的更新,或者如果与给定区相关联的图像数据尚未改变则完全没有更新。

如图5中所图示的,显示器500可以包括三个区,包括区502、区504和区506。区502可以是残留显示区域,并且区504和506可以要求图像数据更新。如图5中所指示的,区504可以被提供基本更新,而区506被提供渐进更新。针对区506的渐进更新和针对区504的基本更新可以作为在之前帧时间期间发生的改变的结果而被复用以用于传输。选择性和多区更新随时间的知识和追踪使得图1的编码器116能够执行区特定更新。另外,区特定知识和追踪还可以由图1的显示系统110实现以确定区是否尚未改变,并且因而编码器116可以禁用针对未经改变的区的运动搜索,并且采用用于与未经改变的区相关联的宏块的跳过模式。

图6是图示了监视经编码的更新的图像质量的图。如以上所讨论的,诸如图1的显示系统110之类的逻辑可以配置成追踪针对包括宏块集合、扫描线等的区的更新。图1的编码器116还可以配置成追踪区及其相关联的更新的时间和空间特性。更新一般可以在对所显示的图像的区的改变被检测到并且变成活跃内容时开始。更新可以在对所显示的图像的区的改变结束并且变成静态内容时或者在区实现目标图像质量时结束。

本文所描述的技术包括用于追踪图像质量以及图像数据和相关联的更新的进展的元数据。图6图示了四个阶段,包括阶段602、阶段604、阶段606和阶段608,作为接收更新并且其中追踪任何给定区的图像质量的给定显示区域内的区的示例。例如,在阶段602处,区A具有图像质量值0,而区Z具有图像质量值3。在该示例中,图像质量值3是目标图像质量值,其中编码器可以确定不要求另外的更新。在随后的阶段中,诸如阶段604,区A具有值1,区Z继续具有值3,并且新的区——区B——具有值0。另外的阶段606和608图示了监视区A、B和Z,直到针对每一个区实现目标值3。

在一些情况下,图像质量值零可以指示给定区的内容最近在每一次以上关于图2、3和4讨论的选择性更新时改变。图像质量值1可以是基本更新,并且值2或更高可以指示已经由编码器116编码的渐进更新的数目。

在实施例中,SVC可以用于使得能够实现更精细的粒度。具体地,基本更新可以包括每一个帧时间内的多个渐进更新。要指出的是,在图6中,针对背景区(诸如区Z),其表示驻留在给定目标质量水平3处的所有区,没有更新被编码、分组化或传输。

在实施例中,元数据可以由显示系统110收集以追踪何时每一个区被编码、分组化、传输等,以改进显示系统116的鲁棒性和调试能力。具体地,可以追踪指示任何给定更新的进展的元数据。例如,在下一帧的开始处,分组化或传输给定帧中的经编码的更新的失败可以在编码器116处被检测和处置。在SVC的上下文中,这可以在子帧和帧边界二者处应用。

图7是图示了基于策略的图像编码的功能组件的流程图。显示系统,诸如图1的显示系统110,可以实现图像数据编码和传输管线。如图7中所指示的,可以在702处编码图像数据。在704处捕获正在改变或者以其它方式被指示为视频数据的图像数据并且在图像数据在706处进行编码之前通知编码器116。在708处分组化并且在710处传输经编码的图像数据。策略引擎712可以由显示系统110用作进展,并且监视图像质量数据以实现策略,诸如以上讨论的第一和第二策略。

此外,显示系统110可以配置成使得能够实现每一个功能块和相关联的组件处的局部化控制,如714处所指示的。例如,传输块710可以与NIC相关联,诸如NIC 124,其配置成传输经编码和分组化的图像数据更新。NIC 124上利用的热学约束可能造成NIC 124从传输位流丢弃渐进更新以减小无线传输带宽。NIC 124可以配置成基于与策略引擎712相关联的总体系统目标而选择丢弃哪些分组。

在一些情况下,局部化控制可以经由更新之中的优先化而实现。例如,在多区更新中的帧/层内和跨帧/层二者,无论何时系统被约束以便针对静态区以较高保真度为代价而确保低等待时间和平滑性,基本更新可以优先于渐进更新。在该场景中,编码器116配置成封装和标记不同更新类型的区。下游组件,诸如分组化器118和NIC 124,可以配置成识别和解析所标记的区,并且基于所标记的区而执行局部化动作,诸如分组丢弃。

另外,可以在功能组件块之间提供反馈。例如,NIC 124可以通过防止经分组化的更新的传输的热学条件来约束。如果条件持续超出可配置时间段,NIC 124可以通知编码器116,如716处所指示的。通知可以指示将丢弃渐进更新以避免随后的渐进更新的不必要的编码和分组化。

一般而言,显示系统110可以配置成查明给定约束的净影响,诸如来自给定约束的功率消耗影响、热学影响、带宽影响等。例如,无线带宽中的持续丢弃可能负面地影响用户所感知到的质量,其中丢弃渐进更新。从NIC 124到编码器116的反馈可以避免生成如以上所讨论的渐进更新。还可以实现更加集成的方案,其中检测约束并且相应地调谐编码器116。例如,编码器116可以配置成在带宽中的持续丢弃期间生成比否则将发生的更小但相对更渐进的更新。

图8是图示了基于策略的图像编码的方法的框图。在802处,向编码器提供图像数据以用于传输到显示器。在块804处提供图像数据的至少部分是视频数据还是非视频数据的指示。针对作为视频数据的图像数据,在编码器处实现第一策略,其相比于经编码的图像质量而优先化图像数据的低等待时间传输,如块806处所指示的。在块808处,针对非视频数据,可以在编码器处实现第二策略,其中第二策略相比于低等待时间传输而优先化经编码的图像质量。

图9是描绘了配置成实现基于策略的图像编码的计算机可读介质的示例的框图。计算机可读介质900可以由处理器902通过计算机总线904来访问。在一些示例中,计算机可读介质900可以是非暂时性计算机可读介质。在一些示例中,计算机可读介质可以是存储介质,但是不包括载波、信号等。另外,计算机可读介质900可以包括计算机可执行指令以引导处理器902执行当前方法的步骤。

本文所讨论的各种软件组件可以存储在有形、非暂时性、计算机可读介质900上,如图9中所指示的。例如,策略应用906可以配置成向编码器提供图像数据以用于传输到显示器,并且提供图像数据的至少部分是视频数据还是非视频数据的指示。策略应用906还可以配置成在编码器处实现第一策略,其针对作为非视频数据的图像数据,相比于经编码的图像质量而优先化图像数据的传输,并且在编码器处实现第二策略,其针对作为非视频数据的图像数据,相比于传输而优先化经编码的图像质量。

示例可以包括诸如方法、用于执行方法的动作的部件、包括指令的至少一个机器可读介质之类的主题,所述指令在由机器执行时使机器执行方法的动作。

示例1包括一种用于基于策略的显示编码的系统。系统包括逻辑,至少部分地包括硬件逻辑,以向编码器提供图像数据以用于传输到显示器并且提供图像数据的至少部分是视频数据还是非视频数据的指示。逻辑还配置成在编码器处实现第一策略,其针对作为视频数据的图像数据,相比于经编码的图像质量而优先化图像数据的传输,并且在编码器处实现第二策略,其针对作为非视频数据的图像数据,相比于传输而优先化经编码的图像质量。

示例2包括一种用于基于策略的显示编码的方法。方法包括向编码器提供图像数据以用于传输到显示器并且提供图像数据的至少部分是视频数据还是非视频数据的指示。方法包括在编码器处实现第一策略,其针对作为视频数据的图像数据,相比于经编码的图像质量而优先化图像数据的传输,以及在编码器处实现第二策略,其针对作为非视频数据的图像数据,相比于传输而优先化经编码的图像质量。在一些情况下,可以实现计算机可读介质以实施示例2的方法。

示例3包括包含代码的计算机可读介质,所述代码在被运行时,使处理设备向编码器提供图像数据以用于传输到显示器。代码还可以被实现以提供图像数据的至少部分是视频数据还是非视频数据的指示,并且在编码器处实现第一策略,其针对作为非视频数据的图像数据,相比于经编码的图像质量而优先化图像数据的传输。代码还可以配置成在编码器处实现第二策略,其针对作为非视频数据的图像数据,相比于传输而优先化经编码的图像质量。

示例4包括一种包括用于实现图像策略的部件的装置。部件向编码器提供图像数据以用于传输到显示器,并且提供图像数据的至少部分是视频数据还是非视频数据的指示。部件还配置成在编码器处实现第一策略,其针对作为非视频数据的图像数据,相比于经编码的图像质量而优先化图像数据的传输,并且在编码器处实现第二策略,其针对作为非视频数据的图像数据,相比于传输而优先化经编码的图像质量。

示例5包括装置,包括逻辑,至少部分地包括用于实现图像策略的硬件逻辑。逻辑向编码器提供图像数据以用于传输到显示器并且提供图像数据的至少部分是视频数据还是非视频数据的指示。逻辑还配置成在编码器处实现第一策略,其针对作为非视频数据的图像数据,相比于经编码的图像质量而优先化图像数据的传输,并且在编码器处实现第二策略,其针对作为非视频数据的图像数据,相比于传输而优先化经编码的图像质量。

实施例是实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“其它实施例”的参考意味着结合实施例描述的特定特征、结构或特性包括在至少一些实施例中,但是不一定是本技术的全部实施例。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都是指相同的实施例。

并非本文所描述和说明的全部组件、特征、结构、特性等都需要包括在特定的一个或多个实施例中。如果说明书陈述例如组件、特征、结构或特性“可以”、“可能”、“能够”或“可”被包括,不要求包括该特定组件、特征、结构或特性。如果说明书或权利要求提到“一”或“一个”元件,这不意味着仅存在一个元件。如果说明书或权利要求提到“一附加”元件,这不排除存在多于一个的附加元件。

要指出的是,尽管已经参照特定实现描述了一些实施例,但是根据一些实施例,其它实现是可能的。此外,在附图中图示和/或本文所描述的电路元件或其它特征的布置和/或次序不需要以所图示和描述的特定方式布置。根据一些实施例,许多其它布置是可能的。

在图中示出的每一个系统中,元件在一些情况下可以每一个具有相同的参考标号或不同的参考标号以暗示所表示的元件可以是不同和/或类似的。然而,元件可以足够灵活以具有不同的实现并且与本文所示出或描述的系统中的一些或全部一起工作。图中所示的各种元件可以相同或不同。将哪一个称为第一元件和将哪一个称为第二元件是任意的。

要理解到,前述示例中的详情可以使用在一个或多个实施例中的任何地方。例如,以上所描述的计算设备的所有可选特征还可以关于本文所描述的方法或计算机可读介质中的任一个来实现。另外,尽管流程图和/或状态图可能已经在本文中用于描述实施例,但是技术不限于那些图或本文中的对应描述。例如,流程不需要移动通过每一个所图示的块或状态或者以与本文所说明和描述的精确相同的次序。

本技术不受限于本文所列出的特定细节。实际上,受益于本公开的本领域技术人员将领会到,可以在本技术的范围内做出从前述描述和附图的许多其它变型。相应地,正是包括对其的任何修改的随附权利要求限定本技术的范围。

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