CN115396674B - 用于处理至少一个图像帧的方法、装置、介质及计算装置 - Google Patents

用于处理至少一个图像帧的方法、装置、介质及计算装置 Download PDF

Info

Publication number
CN115396674B
CN115396674B CN202211342066.XA CN202211342066A CN115396674B CN 115396674 B CN115396674 B CN 115396674B CN 202211342066 A CN202211342066 A CN 202211342066A CN 115396674 B CN115396674 B CN 115396674B
Authority
CN
China
Prior art keywords
image frame
frame
image
storage location
rate
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.)
Active
Application number
CN202211342066.XA
Other languages
English (en)
Other versions
CN115396674A (zh
Inventor
请求不公布姓名
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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202211342066.XA priority Critical patent/CN115396674B/zh
Publication of CN115396674A publication Critical patent/CN115396674A/zh
Application granted granted Critical
Publication of CN115396674B publication Critical patent/CN115396674B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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
    • H04N19/172Methods 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 the region being a picture, frame or field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明涉及用于处理至少一个图像帧的方法、装置、介质及计算装置。该方法包括:获取至少一个图像帧的帧率;比较至少一个图像帧的帧率与显示装置的刷新率;如果帧率大于刷新率并且帧率与刷新率之差大于或等于第一阈值,则对至少一个图像帧中的目标图像帧进行压缩处理;利用第一存储位置来缓存经压缩处理的目标图像帧。该方法还包括:通过帧结构体来判断在第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;如果是经压缩处理的图像帧,则还原经压缩处理的图像帧并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置中以供在显示装置处显示;并且如果是原始图像帧,则将原始图像帧直接写入到第二存储位置中以供在显示装置处显示。

Description

用于处理至少一个图像帧的方法、装置、介质及计算装置
技术领域
本发明涉及图像处理的领域,尤其是涉及用于处理至少一个图像帧的方法、装置、介质及计算装置。
背景技术
显示器能够呈现出视频图像与玩连环画一样,都是通过快速翻动一张张微小变化的图像来形成动态图像。在玩游戏时,例如通常由图像处理器或图形处理单元(GPU)负责渲染每一帧图片,而由显示器负责将渲染的图片扫描到显示屏上。当翻动连环画的速度越快且连环画越密集,呈现出的图像连贯性越好,动态效果越好。与连环画相似,图形处理单元渲染的图片越密集,且显示屏刷新速度能跟得上图形处理单元的渲染速度,那么人们看到的动态效果就越丝滑。然而,当显示屏刷新速度跟不上图形处理单元的渲染速度时,就很难不影响图形处理器性能并保证显示效果。
如何在不影响图像处理器的性能的情况下,有效地处理图像信息以保证显示效果是亟待解决的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提出了用于处理至少一个图像帧的方法、装置、介质及计算装置。
根据本发明实施例的第一方面,提供一种用于处理至少一个图像帧的方法,包括:获取所述至少一个图像帧的帧率;比较所述至少一个图像帧的帧率与显示装置的刷新率;如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理;利用第一存储位置来缓存经压缩处理的所述目标图像帧。
在本发明的一些实施例中,该方法例如可以进一步包括:如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧。
在本发明的一些实施例中,所述帧率例如可以由硬件模块预测。
在本发明的一些实施例中,所述对所述至少一个图像帧中的目标图像帧进行压缩处理例如可以包括:将所述至少一个图像帧中的所述目标图像帧分割成多个图像块;以及逐个图像块地比较所述目标图像帧与参考图像帧,以得到差异图像帧。
在本发明的一些实施例中,该方法进一步包括:通过帧结构体来判断在所述第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;如果在所述第一存储位置中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置中以供在显示装置处显示;并且如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在显示装置处显示。还原所述经压缩处理的图像帧例如可以包括:将所述参考图像帧与所述差异图像帧进行合成,以得到合成的图像帧。
在本发明的一些实施例中,所述第一阈值可以例如是在20与40之间,优选地是30。第一存储位置可以例如包括图形存储器或缓冲区,而第二存储位置可以例如包括系统存储器、输出缓冲器、前台或后台缓存等等。
根据本发明实施例的第二方面,一种用于处理至少一个图像帧的装置,包括:帧率获取模块,用于获取所述至少一个图像帧的帧率;帧管理模块,用于:比较所述至少一个图像帧的帧率与显示装置的刷新率;如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理;和利用第一存储位置来缓存经压缩处理的所述目标图像帧。
在本发明的一些实施例中,所述帧管理模块还用于:如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧。
在本发明的一些实施例中,所述帧管理模块还用于:如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧写入到第二存储位置中以供在所述显示装置处显示。
在本发明的一些实施例中,该装置还包括帧合成模块,所述帧合成模块用于:通过帧结构体来判断在所述第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;如果在所述第一存储位置中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置中以供在显示装置处显示;并且如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在显示装置处显示。
根据本发明实施例的第三方面,提供一种计算装置,该计算装置包括:一个或多个处理器;以及存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述实施例中所述的方法。
根据本发明实施例的第四方面,一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中所述的方法。
本发明实施例提供的技术方案可以包括以下有益效果:通过在高帧率下启用视频压缩,智能开始多缓存并且降低缓冲区大小。因此进一步,本发明的优选实施例使得有可能在不影响GPU性能的情况下有效地解决了在高帧率时的丢帧和/或图像撕裂的附加问题。另外,在GPU高速渲染的情况下,借助于提出的某些优选技术方案,达到了图像不再发生撕裂且也不再丢帧的技术优势。
本发明的其他特性和优点将通过下面的详细描述变得明显,或部分地通过本发明的实践而习得。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。本领域技术人员在阅读以下详细描述时并在查看附图时将认识到附加特征和优点。
附图说明
附图中的元件不一定相对于彼此成比例。相似的附图标记表示相应的类似部件。各种所示出实施例的特征可以被组合,除非它们彼此排斥。实施例在附图中被描绘并在随后的描述中详述。此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了适于用来实现根据本发明实施例的用于处理至少一个图像帧的方法或装置的示例性计算装置的示意图。
图2a和图2b示意性示出了根据本发明的实施例的用于处理至少一个图像帧的方法中采用的图像压缩处理的一个示例的示意图。
图3示意性示出了根据本发明的实施例的用于处理至少一个图像帧的方法的一个示例的流程图。
图4示意性示出了根据本发明的实施例的用于处理至少一个图像帧的装置的一个示例的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本领域中通常使用帧率与刷新率的概念。帧率表示图像处理器每秒渲染出多少帧静止图像,单位为fps(Frame Per Second)。比如在玩游戏时帧率为60fps,表示图像处理器每秒渲染60帧静态图像。
刷新率与帧率概念非常相似,它表示显示器每秒能刷新多少帧静止图像,单位为Hz。这里要区别的是,表示GPU渲染图片能力引入帧率概念,而表示屏幕显示速度引入刷新率概念。GPU负责制造图像,而显示器负责呈现图像。
在理想情况下,图形处理单元渲染一幅图片后显示器刚好可以进行扫描,即帧率与刷新率相同就可达成图形处理单元与显示器的完美配合。但实际上人们玩游戏时经常发现,即便帧率与刷新率相同,有时也会在游戏场景复杂时发生卡顿。这是因为游戏每帧的图像复杂程度不同,图形处理单元处理图像的计算压力不同,从而影响帧率变化。
为了能让波动的帧率匹配固定的刷新率,我们让图形处理单元进行帧缓存,默认设置一般为两个帧缓存,分别为前缓存(FrontBuffer)、后缓存(BackBuffer)。图形处理单元渲染好一幅图片不会直接交给显示器,而是先放到后缓存,然后进行前后缓存交换,即帧传递(Bufferswap),交换后显示屏开始扫描前缓存图像,如此循环往复。
当帧率与刷新率相同时,显示器与图形处理单元配合流畅。当图形处理单元渲染比显示器刷新慢时,显示器扫描完A图片后图形处理单元还未完成B图片渲染,此时无帧传递发生,显示器仍然会再次扫描A图片。在扫描A图片过程中B图片突然渲染好了,此时发生帧传递,显示器显示的图片一部分是A的,一部分是B的,这就是我们在玩游戏时遇到的图片撕裂。当图形处理单元渲染比显示器刷新快时,显示器在还未扫描完A图片时图形处理单元就已经渲染好B图片,此时发生帧传递,A图片还未扫描完的部分就进行B图片扫描,仍然发生图片撕裂。
相关技术中,大多是让图形处理单元等显示器,或显示器等图形处理单元,以缓解撕裂问题,但在保证GPU性能的基础上,丢帧问题仍然没有缓解方案。
本发明的某些实施例涉及在不影响图像处理单元(GPU)的性能的情况下解决丢帧和/或图像撕裂的附加问题。发明人创新性地提出如下构思:在高帧率下启用视频压缩,从而降低缓冲区大小并且进一步有效地解决了在高帧率时的丢帧和/或图像撕裂的附加问题。因此,在GPU高速渲染的情况下,借助于提出的某些技术方案,达到了图像不再发生撕裂且也不再丢帧的技术优势。
—般来说,本发明的方面涉及改进在计算系统显示一组图形帧(例如,图形动画、视频、视频游戏等)时的性能。本发明根据帧率与刷新率的不匹配,进行分级处理图像(例如在高帧率下的图像压缩处理,在中帧率下的图像中间缓冲处理,以及在帧率与刷新率相同的情况下的图像直接缓存显示)。尤其是帧率远高于刷新率的情况下,可以例如启用视频压缩技术以降低缓冲区大小,从而进一步的实施例有效地解决了在高帧率时的丢帧和/或图像撕裂的附加问题。本发明的技术方案主要包括图像生成、帧率与刷新率的比较并且根据比较结果进行不同的图像处理、以及可选地包括还原处理后的图像等等,由此提供用于改进计算机装置在渲染和显示图形帧时的性能的解决方案,具体的实现过程进一步在下文中详细描述。例如,GPU连同帧率预测模块(帧率预测模块也可以是GPU的一部分或者由专门的硬件实现)进行帧率预测。例如,帧管理模块可以例如受帧率预测模块控制,将GPU产生的帧变成可管理的队列项(具体在下文中详细描述)。例如,图像压缩过程涉及将一帧图像切割成细粒度的小图像块以及通过与前一帧图像比较来记录差异的图像块,其中原始帧表示该帧的内容全部都是差异并且全部被记录。例如,帧合成模块例如可以将当前帧与下一帧合成作为新一帧进行显示。
图1示意性示出了适于用来实现根据本发明实施例的用于处理至少一个图像帧的方法或装置的示例性计算装置2的示意图。如图1所示,计算装置2可以是包含但不限于以下各项的计算装置:视频装置、媒体播放器、机顶盒、无线手持机(例如移动电话和所谓的智能电话)、个人数字助理(PDA)、桌上型计算机、膝上型计算机、游戏控制台、视频会议单元、平板计算装置等。在一些实例中,计算装置2可以是移动通信装置。在图1的实例中,计算装置2可以包含中央处理单元(CPU) 6、系统存储器10和GPU 12。计算装置2还可以包含显示处理器14、收发器模块3、用户接口4和显示装置8。收发器模块3和显示处理器14都可以是与CPU6和/或GPU 12相同的集成电路(IC)的部分,都可以在包含CPU 6和/或GPU 12的一个或多个IC的外部,或可以在包含CPU 6和/或GPU 12的IC外部的IC中形成。
为清楚起见,计算装置2可以包含图1中未示出的额外模块或单元。例如,在计算装置2是移动无线电话的实例中,计算装置2可以包含扬声器和麦克风(两者均未在图1中示出)来实现电话通信,或在计算装置2是媒体播放器的实例中,计算装置2可以包含扬声器。计算装置2还可以包含摄像机。此外,计算装置2中所示出的各个模块和单元可以并非在计算装置2的每一实例中都必需。例如,在计算装置2是桌上型计算机或配备成与外部用户接口或显示器对接的其它装置的实例中,用户接口4和显示装置8可以在计算装置2的外部。
用户接口4的实例包含但不限于轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可以是触摸屏并且可并入作为显示装置8的一部分。收发器模块3可以包含回路以允许计算装置2与另一装置或网络之间的无线或有线通信。收发器模块3可以包含调制器、解调器、放大器及其它用于有线或无线通信的此类回路。
CPU 6可以是被配置成处理用于执行的计算机程序的指令的微处理器,例如中央处理单元(CPU)。CPU 6可以包括控制计算装置2的操作的通用或专用处理器。用户可以向计算装置2提供输入以使得CPU 6执行一个或多个软件应用程序,例如软件应用程序18。在CPU6 上执行的软件应用程序可以包含例如操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户界面应用程序或其它应用程序等等。另外,CPU 6可以执行GPU驱动程序22用于控制GPU 12的操作。用户可以经由键盘、鼠标、麦克风、触摸垫等一个或多个输入装置(未示出)或经由用户接口4连接到计算装置2的其它输入装置向计算装置2提供输入。
在CPU 6上执行的软件应用程序18可以包含指示CPU 6或者GPU 12以使得图形数据渲染到显示装置8的一个或多个图形渲染指令。指令可以包含处理3D图形的指令以及处理2D图形的指令。在一些实例中,软件指令可以符合图形应用程序编程接口(API),例如开放图形库(OpcnGLil)APK开放图形库嵌入系统(OpenGL ES) API、Direct3D API、X3D API、RenderMan API、WebGL API、开放计算语言(OpenCL™)或任何其它公共或专有标准GPU计算API。为了处理在CPU 6上执行的软件应用程序18的图形渲染指令,在软件应用程序18的执行期间,CPU 6可以向GPU 12发布一个或多个图形渲染命令(例如,通过GPU驱动程序22)以使得GPU 12执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可以包含例如点、线、三角形、四边形、三角形条带等图形基元的列表。
GPU 12可以被配置成执行图形操作,从而将一个或多个图形基元渲染到显示装置8。因此,当在CPU 6上执行的软件应用程序18需要图形处理时,CPU 6可以将图形渲染命令连同图形数据一起提供到GPU 12,以便渲染到显示装置8。图形数据可以包含例如绘制命令、状态信息、基元信息、纹理信息等。在一些情况下,GPU 12可以利用高度并行结构来建造,所述结构提供比CPU 6更加有效的复杂的图形相关操作的处理。例如,GPU 12可以包含被配置成通过并行方式在多个顶点或像素上操作的多个处理元件,例如着色器单元。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用CPU 6直接将场景绘制到显示装置8更快速地将图形图像(例如,二维(2D)和/或三维(3D)图形场景)绘制到显示装置8上。
在一些情况下,GPU 12可以集成到计算装置2的母板中。在其它情况下,GPU 12可以存在于计算装置2的母板端口中安装的图形卡上,或可以另外的方式并入被配置成与计算装置2交互操作的外围装置内。在一些实例中,GPU 12可以与CPU 6位于芯片上,例如在片上系统(SOC)上,GPU 12可以包含一个或多个处理器(例如一个或多个微处理器)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、视频编解码器或其它等效的集成或离散逻辑电路。GPU 12还可以包含一个或多个处理器核心,因此GPU 12可以被称作多核处理器。
在一些实例中,图形存储器41可以是GPU 12的一部分。因此,GPU 12可以从图形存储器41读取数据以及将数据写入到图形存储器41,而无需使用总线。换句话说,GPU 12可以使用本地存储装置而不是片外存储器来本地处理数据。此类图形存储器41可以被称为片上存储器。这允许GPU 12通过消除对GPU 12经由总线读取和写入数据的需要来以更有效方式操作,经由总线读取和写入数据可能经历较重的总线业务以及相关联的对带宽的争用。然而,在一些情况下,GPU 12可能不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器41可以包含一个或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM (SRAM)、动态RAM (DRAM)、可擦除可编程ROM (EPROM)、电可擦除可编程ROM (EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
在一些实例中,GPU 12可以在系统存储器10中存储完全形成的图像。显示处理器14可以从系统存储器10和/或输出缓冲器16和/或图形存储器41调用或检索图像,并输出使显示装置8的像素照亮以显示图像的值。在一些实例中,显示处理器14可以被配置成对待显示的数据执行2D操作,包含按比例缩放、旋转、混合以及合成。显示器8可以是显示由GPU 12产生的图像内容的计算装置2的显示器。显示器8可以是液晶显示器(IXD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
根据本发明的方面,根据本发明实施例的用于处理至少一个图像帧的方法或装置可以以软件、硬件、固件或者其任何组合而单独地或分布式地实现在计算装置2的CPU 6、GPU 12、显示处理器14、系统存储器10和/或其它部件内、之间或者外部。例如,根据本发明的实施例,在CPU 6上执行的软件应用程序18可以使得GPU 12和/或显示处理器14以某一帧率输出视频以供在显示装置8处显示,其中所述视频可以包括至少一个图像帧。根据一个示例,视频或至少一个图像帧的所述帧率可以例如经由GPU 12的内部模块或者外部模块或者其他专用硬件来预测或者获取。根据一个示例,多缓冲区(例如图形存储器41)被开启来保存GPU新生成的图像帧。根据本发明的一个实施例,计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)可以从显示装置8获得显示装置8的刷新率,并且可以比较所述至少一个图像帧的帧率与显示装置8的刷新率,以及然后根据比较的结果,执行相应的不同操作或者分级处理(这将在参考图3进行详细描述)。
根据一个示例,例如,如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值(例如,在20与40之间,优选地为30),则对所述至少一个图像帧中的目标图像帧(其可以是至少一个图像帧中的一部分或全面)进行压缩处理,如下面图2a和图2b进一步所述的。接着,计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)可以利用第一存储位置(例如图形存储器41)来缓存经压缩处理的所述目标图像帧。其中,目标图像帧可以是与前一帧相似度大于或等于阈值的图像帧,在至少一个图像帧为多个图像帧的情况下,目标图像帧还可以是该多个图像帧中的第一帧之外的图像帧,本公开对此不作限制。目标图像帧可以被还原并供显示装置显示。
根据一个示例,计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)调用图形存储器41中的经压缩处理的至少一个图像帧并且对其进行还原;以及将经还原的所述至少一个图像帧写入到与第一存储位置(例如图形存储器41)不同的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在所述显示装置8处显示。上述调用过程可以例如包括通过帧结构体来判断图像帧的属性(压缩或者原始)而实现。
根据一个示例,如果视频或图像帧的所述帧率大于显示器或显示装置8的所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置(例如图形存储器41)中缓存所述至少一个图像帧。换言之,在这种情况下,将不采用上述的图像压缩处理(如图2a和图2b进一步所述),而是直接将原始图像保存在图形存储器41里,并将图形存储器41的地址入列,等待显示器8消耗或显示。
根据一个示例,如果视频或图像帧的所述帧率小于或等于显示器或显示装置8的所述刷新率,则不缓存所述至少一个图像帧并且将所述至少一个图像帧直接写入到第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在所述显示装置8处显示。
根据一个示例,上述调用过程可以例如包括通过帧结构体来判断在所述第一存储位置(例如图形存储器41)中的图像帧是经压缩处理的图像帧还是原始图像帧。如果在所述第一存储位置(例如图形存储器41)中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置(例如图形存储器41)不同的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在显示装置8处显示。如果在所述第一存储位置(例如图形存储器41)中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置(例如图形存储器41)不同的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在显示装置8处显示。
根据优选实施例,在图像帧被合成进行显示时,第一存储位置(例如图形存储器41)可以例如具有fifo的结构。这样,计算装置2可以例如按顺序从第一存储位置(例如图形存储器41)中提取图像数据,并且然后例如根据帧结构体字段来判断是压缩的图像数据还是直接存储的未压缩的图像帧(即原始图像帧)。如果判断结果是压缩的图像数据,则进一步确定参考帧和差异信息,然后还原成图像帧以存入第二存储位置。如果判断结果是未压缩的图像帧(即原始图像帧),则将未压缩的图像帧(即原始图像帧)直接存入第二存储位置。
此外,根据另一示例,第一存储位置(例如图形存储器41)的每个图像帧可以具有相应各自帧号并且按帧号直接地或者间接地经过相应处理而存储到第二存储位置。
显示装置8的刷新率可以是显示每秒显示装置8的更新的次数。例如,对于显示装置8的每次刷新,显示处理器14可以获取存储于计算装置2的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中的图像以供显示装置8显示。在连续更新中,取决于相同图像或不同图像是否在连续更新中存储于系统存储器10和/或输出缓冲器16和/或图形存储器41中,显示装置8可以显示相同或不同图像。根据一个示例,显示处理器14可以例如按照第二存储位置中的图像帧的帧号来提取图像帧进行显示。
此外,根据一个示例,可能存在如下特殊情况:在t1时间,由于帧率很快,在第一存储位置中存储很多压缩数据,而在t2时间,帧率由于波动而小于或等于刷新率,那么图像帧将直接存储在第二存储位置。在图像帧合成以进行显示时,按理应该先显示t1时间那些图像帧,但t2时间那些直接存储的图像帧占满了第二存储位置(换言之,第二存储位置中的图像帧要在第一存储位置中的图像帧先输出显示之后再输出显示,但第一存储位置中的图像帧又无法存到第二存储位置中)。为此,根据一种应对上述特殊情况的实施方式,可以考虑将第二存储位置中的图像帧存储到第一存储位置,然后把第一存储位置中的压缩图像帧还原输出并且存储到第二存储位置中进行显示,接着再把第一存储位置中的t2那些图像帧重新存入第二存储器再进行显示。
在一些实例中,所述帧率是每秒软件应用程序18经由其图形渲染操作发布使得GPU 12或显示处理器14输出可以由显示装置8显示的更新图像的次数。例如,如果软件应用程序18是媒体播放器应用程序,那么待由视频播放应用程序输出的图像可以是视频的视频帧,因此媒体播放器应用程序可以通过输出视频的视频帧序列来输出视频。类似地,如果软件应用程序18是视频游戏,例如第一人称射击游戏、赛车比赛等,那么待由视频游戏输出的每一图像可以是被视频游戏动画化的场景的帧。在本发明通篇,待由软件应用程序18输出的更新图像的序列(即帧)可以被称为视频或者图像帧。然而,应理解,视频或图像帧可以不仅指由视频播放应用程序输出的一组视频帧,而且在许多其它非限制性实例中的一者中还可以指通过视频游戏等动画化的场景的一组帧。
因此,如上所述,如果软件应用程序18、CPU 6、GPU 12或者显示处理器14以某一帧率输出视频以供显示装置8显示,所述帧率不同于(例如远高于)显示装置8的刷新率,则计算装置2可以根据不同帧率进行分级处理。例如,尤其是帧率远高于刷新率的情况下,计算装置2可以启用视频压缩以降低缓冲区(例如图形存储器41)大小,从而有效地解决了在高帧率时的丢帧和图像撕裂的问题。
图2a和图2b示意性示出了根据本发明的实施例的用于处理至少一个图像帧的方法中采用的图像压缩处理的一个示例的示意图。
根据该示例,在图2a的左边,示出图像帧0,而在图2a的右边,示出图像帧1。如图2a中的图像帧0所示,将图像帧0分割成多个图像块(例如5*5=25个),其中所述图像块可以具有相同或不同的大小,这取决于具体的实施方式。类似地,也可以将图像帧1分割成类似的多个图像块。根据一个实施例,可以将图像帧0和图像帧1分割成m*n的等分图像块,其中根据图像的分辨率来确定图像块的数量。例如,根据一个实施例,1920*1080分辨率的图像可以等分成4*4(总计16个)图像块。然后,逐个图像块地比较图像帧0和图像帧1,以得到如图2b所示的差异图像帧,其中只保留或记录有差异的图像块,无差异的图像块不变。最后,将每个生成的差异结构通过队列串起来,等待显示器8消耗。例如,根据一个实施例,图像帧0和图像帧1和差异图像帧中的每个图像帧可以通过包括如下信息中的至少一项信息的帧结构体来指示:所述每个图像帧是否是原始帧,图像帧0和图像帧1的分割粒度,图像帧的帧号,图像块的数量,以及图像块的保存地址等等。
根据其他示例,如上所述的图像压缩处理可以经由专用固件、硬件或软件或者专门视频编解码器来实现。
如图2a和图2b所示,根据该示例,预计那个球会从 x=0, y=25 移动到 x=6, y=26。利用如上所述的图像压缩处理,只需存储涉及球运动变化的那两个图像块,极大减少了缓冲区需要存储的数据量。需要指出,在实际情况下,这个球可能会被切成 n 个分区或图像块,但处理过程是类似的。
因此,通过如上所述的图像压缩处理,极大地节省缓冲区(例如图形存储器41)的数据量,从而不影响图形处理单元(GPU)的性能发挥。尤其是在帧率远高于刷新率的情况下,实现了在不影响图像处理器(GPU)的性能的情况下同时解决丢帧和图像撕裂的问题。
虽然图2a和图2b仅仅示意性示出了根据本发明的实施例的用于处理至少一个图像帧的方法中采用的图像压缩处理的一个示例,但是本领域的技术人员可以采用其他图像压缩处理算法或技术,诸如现代编解码器如 VP9、AV1 和 HEVC 等等。
注意的是,尽管本发明所公开的图2a和图2b涉及帧间图像压缩的示例,但是本发明的实施例不限于此,例如还可以包括帧内压缩或者单帧压缩的情形。根据一个示例,例如当涉及首个图像帧时,也可以使用帧内压缩技术来压缩该首个图像帧。例如,可以将首个图像帧中的相同图像分割块的信息进行合并以缩减存储空间。当然,上述帧内压缩或者单帧压缩技术也可以与如上所述的帧间图像压缩结合使用以进一步降低存储空间需求。
图3示意性示出了根据本发明的实施例的用于处理至少一个图像帧的方法的一个示例的流程图。如图3所示,用于处理至少一个图像帧的方法可以包括步骤S310~步骤S360,其中步骤350~步骤S360是可选的。
具体地,在步骤S310中,可以通过软件应用程序18、CPU 6、GPU 12和/或显示处理器14以某一帧率输出视频以供在显示装置8处显示,其中所述视频可以例如包括至少一个图像帧。根据一个示例,所述帧率可以例如经由GPU 12的内部模块或者外部模块或者其他专用硬件、软件或固件来预测或获取。根据一个示例,多缓冲区(例如图形存储器41)被开启来保存GPU新生成的图像帧。
在步骤S320中,计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)可以从显示装置8获得显示装置8的刷新率,并且可以比较所述至少一个图像帧的帧率与显示装置8的刷新率。根据比较的结果,计算装置2执行相应的不同操作或者分级处理,如下面详细所述。
在步骤S330中,如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值(例如,在20与40之间,优选地为30),则计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)对所述至少一个图像帧中的目标图像帧(例如如图2a所示的帧1)进行压缩处理,如上面图2a所述的。具体而言,所述对所述至少一个图像帧中的目标图像帧(例如如图2a所示的帧1)进行压缩处理可以例如包括:将所述至少一个图像帧中的所述目标图像帧(例如如图2a所示的帧1)分割成多个图像块;以及逐个图像块地比较所述目标图像帧与参考图像帧(例如如图2a所示的帧0),以得到如图2b所示的差异图像帧。如上所述,图2a中的帧0和帧1为原始帧,而图2b中的帧是差异图像帧。如上所述,图像帧0和图像帧1和差异图像帧中的每个图像帧可以通过包括如下信息中的至少一项信息的帧结构体来指示:所述每个图像帧是否是原始帧,图像帧0和图像帧1的分割粒度,图像帧的帧号,图像块的数量,以及图像块的保存地址等等。另外,也可以采用其他数据管理和压缩技术并且也可以经由视频编解码器来实现这种数据管理和压缩。
在步骤S340中,计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)可以利用第一存储位置(例如图形存储器41)来缓存经压缩处理的所述目标图像帧,具体地存储关于有差异的图像块的信息以及关于原始帧的信息。以此方式,大大降低了GPU 12的图形存储器41缓存的数据量,从而不影响GPU的性能并且不会发生丢帧和画面撕裂的情形。
在步骤S350中,计算装置2(例如CPU 6、GPU 12或者显示处理器14,这取决于不同的实施方式)调用或检索图形存储器41中的经压缩处理的至少一个图像帧并且对其进行还原。根据一个示例,上述调用过程可以例如包括通过帧结构体来判断在所述第一存储位置(例如图形存储器41)中的图像帧是经压缩处理的图像帧还是原始图像帧。如果在所述第一存储位置(例如图形存储器41)中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在显示装置8处显示,如在步骤360中所示。根据一个示例,所述还原所述经压缩处理的图像帧可以例如包括:选择参考图像帧并且将所述参考图像帧(或者原始帧)与所述差异图像帧进行合成,以得到合成的图像帧。
可选地,除了图3所示的步骤之外,根据本发明的一个实施例,根据本发明的实施例的用于处理至少一个图像帧的方法还可以包括如下步骤(图3中未示出):如果视频或图像帧的所述帧率大于显示器或显示装置8的所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置(例如图形存储器41)中缓存所述至少一个图像帧。然后如上所述的调用过程,判断在所述第一存储位置中的图像帧是原始图像帧,并且将所述原始图像帧写入到与所述第一存储位置(例如图形存储器41)不同的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在所述显示装置8处显示。另外,根据本发明的另一个实施例,根据本发明的实施例的用于处理至少一个图像帧的方法还可以包括如下步骤(图3中未示出):如果视频或图像帧的所述帧率小于或等于显示器或显示装置8的所述刷新率,则不缓存所述至少一个图像帧并且将所述至少一个图像帧直接写入到第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在所述显示装置8处显示。
如前所述,本公开提供了一种用于处理至少一个图像帧的方法,该方法包括获取至少一个图像帧的帧率;比较所述至少一个图像帧的帧率与显示装置的刷新率的大小关系,并基于帧率与刷新率的大小关系确定至少一个图像帧的存储方式以及存储位置。
其中,存储方式包括压缩处理后存储以及原始图像帧直接存储,存储位置包括图形处理器能够访问第一存储位置以及第二存储位置,其中,第二存储位置为显示装置能够获取待显示图像帧的存储位置。
第一存储位置可以用于存储压缩处理后的图像帧或者直接存储原始图像帧,第二存储位置可以用于直接存储原始图像帧,其中,第二存储位置存储的原始图像帧可以为未经压缩的原始图像帧,还可以是经压缩存储在第一存储位置后,还原得到的图像帧。
示例性的,基于帧率与刷新率的大小关系确定至少一个图像帧的存储方式以及存储位置,包括:
如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理,并利用第一存储位置来缓存经压缩处理的所述目标图像帧。
如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧作为原始图像帧。
如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧作为原始图像帧写入到第二存储位置中以供在所述显示装置处显示。
应理解,显示装置可以按照帧号顺序依次获取第二存储位置中的图像帧并显示,详细描述可以参见前文,在此不再赘述。
图4示意性示出了根据本发明的实施例的用于处理至少一个图像帧的装置的一个示例的方框图。如图4所示,用于处理至少一个图像帧的装置400可以例如包括帧率获取模块410(它是可选的)、帧管理模块420和帧合成模块430(它是可选的)。用于处理至少一个图像帧的装置400可以例如单独地或分布式地设置于CPU 6、GPU 12或者显示处理器14内、之间或外部。
根据一个示例,帧率获取模块410可以用于获取所述至少一个图像帧的帧率,并且可以对于装置400而言是可选的,即可以位于装置400外部。在一些实例中,帧率获取模块410可以例如是软件应用程序18、CPU 6、GPU 12或者显示处理器14中的至少一个或其部分、或者其他用于执行类似功能的软件、硬件、固件或者其组合。根据一个示例,所述帧率可以例如经由GPU 12的内部模块或者外部模块或者其他专用硬件来预测。
根据一个示例,帧管理模块420可以例如比较所述至少一个图像帧(例如图2a所示的帧0和帧1)的帧率与显示装置8的刷新率;如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧(例如图2a所示的帧1)进行压缩处理;和,利用第一存储位置(例如图形存储器41)来缓存经压缩处理的所述目标图像帧(例如图2b所示的差异图像帧)。即,由于所述帧率不同于(例如远高于)显示装置8的刷新率,则计算装置2可以根据不同帧率进行分级处理。例如,尤其是帧率远高于刷新率的情况下,计算装置2可以启用视频压缩以降低缓冲区(例如图形存储器41)大小,从而有效地解决了在高帧率时的丢帧和图像撕裂的问题。
作为示例,所述对所述至少一个图像帧中的目标图像帧(例如如图2a所示的帧1)进行压缩处理可以例如包括:将所述至少一个图像帧中的所述目标图像帧(例如如图2a所示的帧1)分割成多个图像块;以及逐个图像块地比较所述目标图像帧与参考图像帧(例如如图2a所示的帧0),以得到如图2b所示的差异图像帧。图像帧0和图像帧1和差异图像帧中的每个图像帧可以通过包括如下信息中的至少一项信息的帧结构体来指示:所述每个图像帧是否是原始帧,图像帧0和图像帧1的分割粒度,图像帧的帧号,图像块的数量,以及图像块的保存地址等等。
另外,也可以采用其他数据管理和压缩技术并且理也可以经由视频编解码器来实现这种数据管理和压缩。以此方式,大大降低了GPU 12的图形存储器41缓存的数据量,从而不影响GPU的性能并且不发生丢帧和画面撕裂的情形。
进一步,所述帧管理模块420还可以例如用于:如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置(例如图形存储器41)中缓存所述至少一个图像帧。
进一步,所述帧管理模块420还可以例如用于:如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧写入到第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在所述显示装置8处显示。
根据一个示例,帧合成模块430可以用于例如通过帧结构体来判断在所述第一存储位置(例如图形存储器41)中的图像帧是经压缩处理的图像帧还是原始图像帧。如果在所述第一存储位置(例如图形存储器41)中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置(例如系统存储器10和/或输出缓冲器16和/或图形存储器41,诸如图形存储器41的与上述第一存储位置不同的第二存储位置)中以供在显示装置8处显示。如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在显示装置处显示。根据一个示例,还原经压缩处理的图像帧可以例如包括:将参考图像帧(或者原始帧)与所述差异图像帧进行合成,以得到合成的图像帧。作为示例,参考图像帧可以例如由显示器先前或当前显示的图像帧,而合成的图像帧将作为下一个显示帧进行显示。
如上所述,帧合成模块430例如通过帧队列里结构体中的相应字段信息来判断每个图像帧是原始图像帧还是差异图像帧。根据一个示例,如果判断结果是原始图像帧则直接保存到后台缓存(例如输出缓冲器),等待CRTC切换缓存原始图像。如果判断结果是差异图像,则将前台缓存里(即先前或当前显示)的图像与差异图像合成后存入后台缓存,等待CRTC切换缓存。如此循环上述步骤直到帧缓存队列里所有的缓存消耗完毕为止。
如上所述,本发明改进了在计算系统显示一组图形帧(例如,图形动画、视频、视频游戏等)时的性能。本发明根据帧率与刷新率的不匹配,进行分级处理图像(例如在高帧率下的图像压缩处理,在中帧率下的图像中间缓冲处理,以及在帧率与刷新率相同的情况下的图像直接缓存显示)。例如,尤其是帧率远高于刷新率的情况下,启用视频压缩以降低缓冲区大小,从而有效地解决了在高帧率时的丢帧和图像撕裂的问题。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的计算装置中所包含的;也可以是单独存在,而未装配入该计算装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算装置执行时,使得该计算装置实现如图3所示的实施例中的用于处理至少一个图像帧的方法。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
尽管本公开不限于此,但以下编号的示例说明本公开的一个或多个方面。
示例1. 一种用于处理至少一个图像帧的方法,包括:获取所述至少一个图像帧的帧率;比较所述至少一个图像帧的帧率与显示装置的刷新率;如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理;利用第一存储位置来缓存经压缩处理的所述目标图像帧。
示例2. 根据示例1的方法,进一步包括:如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧作为原始图像帧。
示例3. 根据示例1或2的方法,进一步包括:如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧写入到第二存储位置中以供在所述显示装置处显示。
示例4. 根据示例1至3中任一个的方法,其中所述帧率由硬件模块预测。
示例5. 根据示例1至4中任一个的方法,其中所述对所述至少一个图像帧中的目标图像帧进行压缩处理包括:将所述至少一个图像帧中的所述目标图像帧分割成多个图像块;以及逐个图像块地比较所述目标图像帧与参考图像帧,以得到差异图像信息。
示例6. 根据示例2的方法,进一步包括:通过帧结构体来判断在所述第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;如果在所述第一存储位置中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置中以供在显示装置处显示;并且如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在显示装置处显示。
示例7. 根据示例1至6中任一个的方法,其中所述第一阈值是在20与40之间,优选地所述第一阈值是30。
示例8. 根据示例6的方法,其中所述经压缩处理的图像帧包括差异图像信息,所述还原所述经压缩处理的图像帧包括:将参考图像帧与所述差异图像进行合成,以得到合成的图像帧。
示例9. 根据示例8的方法,其中所述差异图像信息包括:图像帧的分割粒度,图像帧的帧号,分割的图像块的数量,以及所述图像块的保存地址。
示例10. 一种用于处理至少一个图像帧的装置,包括:帧率获取模块,用于获取所述至少一个图像帧的帧率;帧管理模块,用于:比较所述至少一个图像帧的帧率与显示装置的刷新率;如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理;和,利用第一存储位置来缓存经压缩处理的所述目标图像帧。
示例11. 根据示例10的装置,其中所述帧管理模块还用于:如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧。
示例12. 根据示例10至11中任一个的装置,其中所述帧管理模块还用于:如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧写入到第二存储位置中以供在所述显示装置处显示。
示例13. 根据示例10至12中任一个的装置,其中所述帧率由硬件模块预测。
示例14. 根据示例10至13中任一个的装置,其中所述对所述至少一个图像帧中的目标图像帧进行压缩处理包括:将所述至少一个图像帧中的所述目标图像帧分割成多个图像块;以及逐个图像块地比较所述目标图像帧与参考图像帧,以得到差异图像。
示例15. 根据示例11的装置,还包括帧合成模块,所述帧合成模块用于:通过帧结构体来判断在所述第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;如果在所述第一存储位置中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与第一存储位置不同的第二存储位置中以供在显示装置处显示;并且如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在显示装置处显示。
示例16. 根据示例10至15中任一个的装置,其中所述第一阈值是在20与40之间,优选地所述第一阈值是30。
示例17. 根据示例15的装置,其中所述经压缩处理的图像帧包括差异图像信息,所述还原所述经压缩处理的图像帧包括:将参考图像帧与所述差异图像进行合成,以得到合成的图像帧。
示例18. 根据示例16的装置,其中所述差异图像信息包括:图像帧的分割粒度,图像帧的帧号,分割的图像块的数量,以及所述图像块的保存地址。
示例19. 一种计算装置,包括:一个或多个处理器;以及存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现根据示例1~9中任一项所述的方法。
示例20. 一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据示例1~9中任一项所述的方法。
诸如“第一”、“第二”等的术语用于描述各种元件、区、区段等,并且也不旨在是限制性的。在整个说明书中,相似的术语指代相似的元件。
如本文使用的,术语“具有”、“含有”、“包含”、“包括”等是开放式术语,其指示所陈述元件或特征的存在,但不排除附加的元件或特征。
尽管本文已示出和描述了特定实施例,但是本领域普通技术人员将明白,在不偏离本发明范围的情况下,可以用各种替选和/或等同实施方式来替代所示出和描述的特定实施例。本申请旨在覆盖本文讨论的特定实施例的任何修改或变化。因此,旨在本发明仅由权利要求书及其等同物限制。

Claims (10)

1.一种用于处理至少一个图像帧的方法,其特征在于,所述处理至少一个图像帧是在图形处理单元处执行的,包括:
获取所述至少一个图像帧的帧率;
比较所述至少一个图像帧的帧率与显示装置的刷新率;
如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理,以使所述显示装置以未丢失任何图像帧的方式进行显示;和,利用第一存储位置来缓存经压缩处理的所述目标图像帧;
如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧作为原始图像帧;以及
如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧作为原始图像帧写入到第二存储位置中以供在所述显示装置处显示。
2.根据权利要求1所述的方法,其特征在于,所述对所述至少一个图像帧中的目标图像帧进行压缩处理包括:
将所述至少一个图像帧中的所述目标图像帧分割成多个图像块;以及
逐个图像块地比较所述目标图像帧与参考图像帧,以得到差异图像信息。
3.根据权利要求1所述的方法,其特征在于,进一步包括:
通过帧结构体来判断在所述第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;
如果在所述第一存储位置中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与所述第一存储位置不同的第二存储位置中以供在所述显示装置处显示;并且
如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在所述显示装置处显示。
4.根据权利要求3所述的方法,其特征在于,所述经压缩处理的图像帧包括差异图像信息,所述还原所述经压缩处理的图像帧包括:将参考图像帧与所述差异图像信息进行合成,以得到合成的图像帧。
5.根据权利要求4所述的方法,其特征在于,所述差异图像信息包括:图像帧的分割粒度,图像帧的帧号,分割的图像块的数量,以及所述图像块的保存地址。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一阈值是在20与40之间。
7.一种用于处理至少一个图像帧的装置,其特征在于,所述处理至少一个图像帧是在图形处理单元处执行的,所述装置包括:
帧率获取模块,用于获取所述至少一个图像帧的帧率;
帧管理模块,用于:
比较所述至少一个图像帧的帧率与显示装置的刷新率;
如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差大于或等于第一阈值,则对所述至少一个图像帧中的目标图像帧进行压缩处理,以使所述显示装置以未丢失任何图像帧的方式进行显示;和,利用第一存储位置来缓存经压缩处理的所述目标图像帧;
如果所述帧率大于所述刷新率并且所述帧率与所述刷新率之差小于第一阈值,则在第一存储位置中缓存所述至少一个图像帧作为原始图像帧;以及
如果所述帧率小于或等于所述刷新率,则将所述至少一个图像帧作为原始图像帧写入到第二存储位置中以供在所述显示装置处显示。
8.根据权利要求7所述的装置,其特征在于,还包括帧合成模块,所述帧合成模块用于:
通过帧结构体来判断在所述第一存储位置中的图像帧是经压缩处理的图像帧还是原始图像帧;
如果在所述第一存储位置中的图像帧是经压缩处理的图像帧,则还原所述经压缩处理的图像帧,并且将经还原的图像帧写入到与所述第一存储位置不同的第二存储位置中以供在所述显示装置处显示;并且
如果在所述第一存储位置中的图像帧是原始图像帧,则将所述原始图像帧写入到与所述第一存储位置不同的第二存储位置中以供在显示装置处显示。
9.一种计算装置,其特征在于,包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现根据权利要求1~6中任一项所述的方法。
10.一种计算机可读介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6中任一项所述的方法。
CN202211342066.XA 2022-10-31 2022-10-31 用于处理至少一个图像帧的方法、装置、介质及计算装置 Active CN115396674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211342066.XA CN115396674B (zh) 2022-10-31 2022-10-31 用于处理至少一个图像帧的方法、装置、介质及计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211342066.XA CN115396674B (zh) 2022-10-31 2022-10-31 用于处理至少一个图像帧的方法、装置、介质及计算装置

Publications (2)

Publication Number Publication Date
CN115396674A CN115396674A (zh) 2022-11-25
CN115396674B true CN115396674B (zh) 2023-03-31

Family

ID=84115168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211342066.XA Active CN115396674B (zh) 2022-10-31 2022-10-31 用于处理至少一个图像帧的方法、装置、介质及计算装置

Country Status (1)

Country Link
CN (1) CN115396674B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116132686A (zh) * 2023-01-10 2023-05-16 阿里巴巴(中国)有限公司 图像处理方法及计算设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115103210A (zh) * 2022-07-12 2022-09-23 北京字跳网络技术有限公司 信息处理方法、装置、终端和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028750A (ja) * 1998-09-18 2001-01-30 Matsushita Electric Ind Co Ltd 画像出力装置,画像再生方法,オブジェクト合成装置,オブジェクト合成方法,及びデータ記憶媒体
US6054980A (en) * 1999-01-06 2000-04-25 Genesis Microchip, Corp. Display unit displaying images at a refresh rate less than the rate at which the images are encoded in a received display signal
US8872812B2 (en) * 2009-11-12 2014-10-28 Marvell World Trade Ltd. Power saving in mobile devices by optimizing frame rate output
CN105744281A (zh) * 2016-03-28 2016-07-06 飞依诺科技(苏州)有限公司 一种连续图像的处理方法及装置
TW201817232A (zh) * 2016-08-11 2018-05-01 聯詠科技股份有限公司 影像處理方法及相關裝置
CN108933952A (zh) * 2017-05-26 2018-12-04 中兴通讯股份有限公司 一种视频播放方法、装置、计算机设备及计算机可读介质
CN114125463B (zh) * 2021-11-14 2024-04-26 山东云海国创云计算装备产业创新中心有限公司 一种视频压缩的方法、系统、存储介质及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115103210A (zh) * 2022-07-12 2022-09-23 北京字跳网络技术有限公司 信息处理方法、装置、终端和存储介质

Also Published As

Publication number Publication date
CN115396674A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
KR101952922B1 (ko) 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용
US9077970B2 (en) Independent layered content for hardware-accelerated media playback
US20150278981A1 (en) Avoiding Sending Unchanged Regions to Display
US9665973B2 (en) Depth buffering
US20150084981A1 (en) Anti-Aliasing for Graphics Hardware
KR102140387B1 (ko) 대역폭-압축된 그래픽스 데이터의 저장
US9251731B2 (en) Multi-sampling anti-aliasing compression by use of unreachable bit combinations
US11211034B2 (en) Display rendering
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
US11468629B2 (en) Methods and apparatus for handling occlusions in split rendering
US9183652B2 (en) Variable rasterization order for motion blur and depth of field
US9959643B2 (en) Variable rasterization order for motion blur and depth of field
CN115396674B (zh) 用于处理至少一个图像帧的方法、装置、介质及计算装置
CN111209116A (zh) 一种分配显存空间的方法、装置及计算机存储介质
CN112740278B (zh) 用于图形处理的方法及设备
US8724029B2 (en) Accelerating video from an arbitrary graphical layer
US9336561B2 (en) Color buffer caching
CN116909511A (zh) 提升gpu双缓冲显示效率的方法、装置及存储介质
US20150138226A1 (en) Front to back compositing
CN116700943A (zh) 一种视频播放系统、方法以及电子设备
KR20230018368A (ko) 폐색 처리 기법을 위한 방법 및 장치
KR20220164484A (ko) 섀도우 정보를 이용한 렌더링
US20240096042A1 (en) Methods and apparatus for saliency based frame color enhancement
US20240104683A1 (en) Apparatus and method for generating tile visibility information concurrently by sharing gpu hardware
CN117974814A (zh) 用于图像处理的方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant