CN108093292A - 用于管理缓存的方法、装置及系统 - Google Patents

用于管理缓存的方法、装置及系统 Download PDF

Info

Publication number
CN108093292A
CN108093292A CN201611021677.9A CN201611021677A CN108093292A CN 108093292 A CN108093292 A CN 108093292A CN 201611021677 A CN201611021677 A CN 201611021677A CN 108093292 A CN108093292 A CN 108093292A
Authority
CN
China
Prior art keywords
video
mode
queue
cache queue
video cache
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
CN201611021677.9A
Other languages
English (en)
Other versions
CN108093292B (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.)
Banma Zhixing Network Hongkong Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611021677.9A priority Critical patent/CN108093292B/zh
Priority to TW106125752A priority patent/TW201820883A/zh
Priority to US15/815,527 priority patent/US10531149B2/en
Priority to PCT/US2017/062389 priority patent/WO2018094261A1/en
Publication of CN108093292A publication Critical patent/CN108093292A/zh
Application granted granted Critical
Publication of CN108093292B publication Critical patent/CN108093292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本申请公开了一种方法,所述方法包括:采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;接收将第一渲染方式变更为第二渲染方式的请求;将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。

Description

用于管理缓存的方法、装置及系统
技术领域
本申请涉及缓存管理技术,具体涉及针对视频渲染过程进行缓存管理的一种方法、装置、机器可读介质及系统。
背景技术
在播放视频的过程中,通常使用视频缓存队列BufferQueue,其对外提供生产者接口和消费者接口。BufferQueue中有若干个缓存单元(也称为缓存块),其中的空缓存单元供视频数据提供方,例如:视频解码器,通过生产者接口进行填充,从而生成填充缓存单元,消费者则通过消费者接口读取填充缓存单元进行视频渲染。在具体应用中,根据消费者的不同可以划分不同的视频渲染方式,例如,可以划分为SurfaceView渲染方式和TextureView渲染方式。在SurfaceView渲染方式下,系统图形合成器(比如Android的SurfaceFlinger或者Linux的Xserver/Weston)是消费者,其渲染过程请参见图1;在TextureView渲染方式下,视频播放应用自带的渲染单元是消费者,其渲染过程请参见图2。
由于视频缓存队列BufferQueue在创建时就跟消费者绑定了,所述消费者可以是系统图形合成器或者是视频播放应用自带的渲染单元,在播放视频的过程中,每当需要切换渲染方式时都会销毁原有的BufferQueue,重新创建新的BufferQueue以及执行相应的为缓存单元分配内存的操作,并且在完成上述操作后,才能恢复视频播放的相关处理流程。由于在渲染方式切换过程中,需要执行额外的创建BufferQueue以及分配内存的操作,影响执行效率,导致视频播放过程不流畅,用户会感觉到视频播放的中断和卡顿,影响用户体验。
发明内容
本申请提供一种方法,包括:
采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;
接收将第一渲染方式变更为第二渲染方式的请求;
将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;
其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。
附图说明
图1是SurfaceView渲染方式的示意图;
图2是TextureView渲染方式的示意图;
图3是本申请的一种方法的实施例的流程图;
图4是本申请的一种装置的实施例的示意图;
图5是本申请实施例提供的包括缓存管理装置的系统的示意图;
图6是本申请的一种系统的实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
本申请的技术方案可以有不同的变更实施方式或者替代实施方式,本说明书将结合附图给出的示例对特定的实施方式进行详细说明。但是,本领域技术人员应该理解,本说明书的目的不是为了将本申请技术方案限定于本说明书公开的特定实施方式,而是为了覆盖与本申请技术方案一致的所有变更实施方式、等同实施方式和替代实施方式。
在本说明书中对“实施例”、“本实施例”、或者“示范实施例”等的引用,指明所描述的实施例可以包括具体的特征、结构或特性,但是并非要求每个实施例都需要包括该具体的特征、结构或特性。此外,当结合一个实施例描述具体的特征、结构或特性时,在本领域技术人员的知识范围内,可以结合其他实施例来实施这种特征、结构或特性(无论其是否被详细描述)。
本申请的实施例可以按照软件、硬件、固件、或其结合、或其他方式实现。本申请的实施例还可实现为存储在非永久性或永久性机器可读介质(例如:计算机可读介质)上的指令,所述指令可通过一个或多个处理器读取或执行。机器可读介质包括任何按机器可读形式存储或传送信息的存储设备、机制或其他物理结构。例如,机器可读介质可以包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及其他。
在本说明书提供的附图中,一些结构或方法特征通常是按照具体的排列方式和/或顺序来展示的。但是应该理解,这些具体的排列方式和/或顺序并不是必需的。在一些实施例中,这些特征可以按照与附图不同的排列方式和/或顺序来组织。此外,在某一附图中包含的结构或方法特征,并不意味着在所有实施例中都要包含该特征,在一些实施例中,可以不包含该特征,或者该特征可以与其他特征相结合。
在本申请中,分别提供了一种方法及装置,一种机器可读介质,以及一种系统。先对本申请的技术方案作简要说明。
现有技术在播放视频时,通常会预先创建一个视频缓存队列,生产者(视频数据提供方)和消费者(执行视频渲染功能的单元)通过相应接口访问视频缓存队列,生产者将待渲染展示的视频图像数据填充到缓存单元中,消费者则根据填充缓存单元中的数据进行视频渲染。
如果在视频播放过程中变更渲染方式,现有技术通常进行如下处理:由于不同的视频渲染方式对应于不同的消费者,而视频缓存队列与消费者具有绑定关系,因此每次变更视频渲染方式时,通常会销毁原有的视频缓存队列,然后再创建一个与变更后渲染方式对应的消费者绑定的新的视频缓存队列、并执行为其中的缓存单元分配内存的操作。由此可见,现有技术采用基于单队列的处理方式,因此每次变更渲染方式时需要执行销毁队列、创建队列、分配内存等相关操作,导致变更渲染方式时,视频播放不流畅。
为了克服现有技术存在的上述问题,本申请提出了采用双队列并存的技术方案。具体的,本申请的技术方案提供了一种方法,所述方法负责管理两个分别对应于不同渲染方式的视频缓存队列,在接收到渲染方式变更请求时,执行队列切换操作,从而采用相应的视频缓存队列响应视频数据提供方的访问请求。
本申请提供的技术方案由于采用了双队列,因此不需要每次变更渲染方式时都执行销毁队列、创建队列、分配内存等相关操作,从而保证视频播放的流畅性。而且,本申请提供的技术方案对视频数据提供方是透明的,即:不影响视频数据提供方对视频缓存队列的原有访问方式,即:生产者接口没有变化,因此不需要对视频数据提供方的代码进行变更,可以减少开发人员工作量。
其中,视频数据提供方是指,提供待渲染展示的视频图像数据的单元,包括但不限于:视频解码器。在本说明书提供的实施例中,重点以视频解码器为例进行说明。
在下面的实施例中,将对本申请提供的内容逐一进行详细说明。请参考图3,其为本申请的一种方法的实施例的流程图。
在具体实施时,在执行步骤301之前,可以由视频播放控制单元(例如:可以是视频播放应用中的、用于对视频播放过程进行控制的单元)执行视频缓存队列的创建过程,该过程也称为初始化,下面先对初始化过程进行说明。
具体的,通常可以在开始播放视频之前,由视频播放控制单元创建对应于第一渲染方式的第一视频缓存队列BufferQueue1和对应于第二渲染方式的第二视频缓存队列BufferQueue2。具体实施时,创建第一视频缓存队列和第二视频缓存队列,可以通过调用系统提供的相应接口或函数调用实现,并且BufferQueue1与第一渲染方式对应的第一消费者绑定,BufferQueue2与第二渲染方式对应的第二消费者绑定。
然后,为第一预设数目的缓存单元分配内存,并添加到与预设的初始渲染方式对应的视频缓存队列中,其中,所述初始渲染方式可以是第一渲染方式或第二渲染方式。之前创建的第一视频缓存队列和第二视频缓存队列可以是空队列,其中没有缓存单元,因此,可以为第一预设数目的缓存单元分配内存、并添加到与所述初始渲染方式对应的视频缓存队列中,其中,所述第一预设数目可以根据实际需要设定,例如:可以设定为8个。
添加到视频缓存队列中的缓存单元是空闲的,在具体实施时,可以通过为每个缓存单元的标志位设置相应值,从而标识缓存单元为空缓存单元(同样的道理,对于填充缓存单元也可以采用类似的标识方式,后面不再赘述)。
需要说明的是,第一视频缓存队列和第二视频缓存队列可以共享一组缓存单元,也可以各自具有一组缓存单元,对于共享缓存单元的实施方式,完成上述初始化操作即可,即:仅为与所述初始渲染方式对应的视频缓存队列添加缓存单元;如果不采用共享方式,则可以采用类似的方式为第二预设数目的缓存单元分配内存、并添加到另外一个视频缓存队列中,在具体实施时,所述第一预设数目与所述第二预设数目可以相同,也可以不同。
例如,第一渲染方式为TextureView渲染方式,第二渲染方式为SurfaceView渲染方式,预设的初始渲染方式为TextureView渲染方式,那么就可以创建对应于TextureView渲染方式的第一视频缓存队列和对应于SurfaceView的第二视频缓存队列,对于共享方式,可以为第一预设数目的缓存单元分配内存,并添加到第一视频缓存队列中;对于非共享方式,则可以在上述基础上,为第二预设数目的缓存单元分配内存,并添加到第二视频缓存队列中。
至此,对视频播放控制器在播放视频之前创建双队列的实施方式进行了说明。在其他实施方式中,视频播放控制器也可以在播放视频之前按照上面描述的方式仅创建对应于初始渲染方式的视频缓存队列,并在首次检测到导致初始渲染方式变更为另一渲染方式的触发事件时,再按照上面描述的方式创建对应于另一渲染方式的视频缓存队列,从而完成双队列的创建操作,也是可以的。
以上描述了创建双队列的过程,下面对本实施例中的步骤301-303进行详细说明。
步骤301、采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求。
在本实施例中,本步骤采用对应于第一渲染方式的第一视频缓存队列响应来自视频解码器的访问请求、以供相应的第一消费者使用第一视频缓存队列中的填充缓存单元执行视频渲染操作。
在视频播放控制单元的控制下,视频解码器执行视频解码操作,并通过视频缓存队列生产者接口访问视频缓存队列,将解码后的视频图像数据写入视频缓存队列中。视频解码器对视频缓存队列的访问请求通常包括两种:空缓存单元出队、和填充缓存单元入队。在采用第一渲染方式的情况下,本步骤采用对应于第一渲染方式的第一视频缓存队列响应视频解码器的访问请求。
具体的,视频解码器生成了待渲染展示的一帧视频图像数据时,可以通过视频缓存队列生产者接口,请求空缓存单元出队,本步骤采用第一视频缓存队列进行响应,即:将第一视频缓存队列中的一个空缓存单元返回给视频解码器,视频解码器将其生成的视频图像数据写入空缓存单元、并通过所述生产者接口发出填充缓存单元入队的请求,本步骤采用第一视频缓存队列进行响应,即:将填充缓存单元添加到第一视频缓存队列中。
填充缓存单元入队后,与第一渲染方式绑定的第一消费者,则可以从第一视频缓存队列中获取填充缓存单元,并利用所述填充缓存单元中的数据执行视频渲染操作。在渲染完毕后,将空缓存单元归还给第一视频缓存队列。
当第一渲染方式为TextureView渲染方式时,第一消费者可以为视频播放应用自带的渲染单元。视频播放应用自带的渲染单元将从第一视频缓存队列中获取的填充缓存单元中的数据,使用3D图形库OpenGL等技术以贴纹理(Texture)的方式渲染到视频播放应用的窗口缓存中,然后由系统图形合成器将已经渲染到所述窗口缓存中的数据与其他待展示UI数据进行一次合成渲染,最终将渲染结果呈现在显示器上。
当第一渲染方式为SurfaceView渲染方式时,第一消费者通常为系统图形合成器,例如:在Android系统中,系统图形合成器是指SurfaceFlinger,在Linux系统中,系统图形合成器则是指Xserver或者Weston。系统合成器将从第一视频缓存队列中获取的填充缓存单元中的数据,与其他待渲染的UI数据进行合成渲染,从而在显示器上呈现出被播放的视频。
本实施例提供的方法,维护了两个视频缓存队列,在具体实施时,可以根据预设标志的值,采用相应的视频缓存队列响应视频解码器对视频缓存队列生产者接口的访问请求,例如:当预设标志=1时,采用第一视频缓存队列响应。
步骤302、接收将第一渲染方式并更为第二渲染方式的请求。
本步骤可以接收来自视频播放控制器发送的将第一渲染方式变更为第二渲染方式的请求。在具体实施时,在视频播放过程中,视频播放控制器可能会检测到各种不同的事件,并触发相应的处理,例如:调节播放进度、调节音量等。其中,若检测到导致第一渲染方式变更为第二渲染方式的触发事件,则可以发出将第一渲染方式变更为第二渲染方式的请求,本步骤则会接收到该请求。
具体的,所述触发事件包括:由全屏播放模式变更为小屏播放模式,或者,由小屏播放模式变更为全屏播放模式。例如:当采用小屏模式(如,网页嵌套方式)播放视频时,所述第一渲染方式为TextureView渲染方式,此时若用户点击视频播放界面显示的对应于“全屏播放”模式的按钮或执行了相应操作,则视频播放控制器可以检测到将TextureView渲染方式变更为SurfaceView渲染方式的触发事件;同样的道理,如果在采用全屏模式播放视频的过程中,若用户执行了对应于返回小屏播放模式的操作(例如双击操作),则视频播放控制器检测到将SurfaceView渲染方式变更为TextureView渲染方式的触发事件。
上述列举了基于全屏/小屏播放模式的渲染方式变更触发事件。在具体实施时,也可以由其他一些事件触发渲染方式的变更。
步骤303、将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列。
在接收到将第一渲染方式变更为第二渲染方式的请求后,本步骤将针对视频解码器访问请求的响应队列,切换为对应于第二渲染方式的第二视频缓存队列(以下简称为切换操作),以供相应的第二消费者使用第二视频缓存队列中的填充缓存单元执行视频渲染操作。也即,在执行切换操作后,若接收到视频解码器对视频缓存队列的访问请求,则采用第二视频缓存队列响应所述访问请求。
执行切换操作时,视频解码器通常持有其之前从第一视频缓存队列获取的若干个空缓存单元,执行切换操作后,视频解码器请求将写入了视频数据的填充缓存单元入队时,所述填充缓存单元将被添加到第二视频缓存队列中,对应于第二渲染方式的第二消费者则从第二视频缓存队列中获取填充缓存单元进行渲染,并在完成渲染后,将空缓存单元归还给第二视频缓存队列,视频解码器则可以通过请求空缓存单元出队,从第二视频缓存队列中获取空缓存单元、并写入待渲染的视频数据,……。通过上述操作过程,则实现了采用第二渲染方式进行视频渲染的过程。
具体实施时,所述切换操作可以通过设置表征采用第二视频缓存队列作为响应队列的标志实现。在完成切换操作之后,每当接收到视频解码器对视频缓存队列的访问请求,则可以根据所述标志,采用相应的视频缓存队列响应所述访问请求。
例如:可以采用变量queue_flag的值作为所述标志。当queue_flag=1时,代表采用第一视频缓存队列响应,queue_flag=2时,代表采用第二视频缓存队列响应,那么在本步骤中可以设置queue_flag=2即可。在后续接收到视频解码器对视频缓存队列的访问请求时,先读取queue_flag的值,由于其值为2,因此,采用第二视频缓存队列响应接收到的请求。
在具体实施时,第一视频缓存队列和第二视频缓存队列可以采用共享缓存单元的方式,也可以不共享缓存单元,即:各自具有缓存单元。这两种方式,在上面描述的实施过程的基础上,在实施细节上存在一些差别,下面分别进行说明。
(一)共享方式
采用这种方式,由于第一视频缓存队列和第二视频缓存队列共享缓存单元,因此,在接收将第一渲染方式变更为第二渲染方式的请求之后,在执行所述切换操作之前,可以将第一视频缓存队列中的各缓存单元添加到第二视频缓存队列中,从而可以增加第二视频缓存队列中的缓存单元的数目,有助于快速地响应视频解码器的请求,进一步保证视频播放的流畅性。在具体实施时,可以将第一视频缓存队列中的缓存单元中的数据都清空,并将这些缓存单元作为空缓存单元添加到第二视频缓存队列中。
优选地,考虑到在执行切换操作时,第一视频缓存队列中的全部或者部分缓存单元为填充缓存单元,即,其中已经写入了待渲染的视频图像数据,为了保证视频播放内容的连贯性、避免发生丢失视频帧的现象,在将第一视频缓存队列中的各缓存单元添加到第二视频缓存队列中时,可以保留其中的填充缓存单元,即:将第一视频缓存队列中的各填充缓存单元,仍然作为填充缓存单元添加到第二视频缓存队列中,并且保留各填充缓存单元中的视频图像数据,从而这部分已填充的视频图像数据依然可以被第二消费者渲染、并最终在显示器上呈现给用户。
此外,在执行切换操作之后,对应于第一视频缓存队列的第一消费者还可以将已经使用完毕的空缓存单元归还到第一视频缓存队列中,为了增加第二视频缓存队列中的缓存单元的数目,可以将对应于第一视频缓存队列的第一消费者归还到第一视频缓存队列中的空缓存单元,添加到第二视频缓存队列中。从而可以增加第二视频缓存队列中的缓存单元的数目,有助于快速地响应视频解码器的请求,进一步保证视频播放的流畅性。
(二)非共享方式
采用这种方式,第一视频缓存队列和第二视频缓存队列可以各自具有缓存单元,由于不需要在两个队列之间进行缓存单元的共享管理,因此易于实现。
优选地,考虑到在执行切换操作时,第一视频缓存队列中的填充缓存单元已经写入了待渲染的视频图像数据,为了保证视频播放内容的连贯性、避免发生丢失视频帧的现象,在接收将第一渲染方式变更为第二渲染方式的请求之后,在执行所述切换操作之前,可以将第一视频缓存队列中的各填充缓存单元中的数据分别复制到第二视频缓存队列的不同空缓存单元中,并在复制完毕后将相应的空缓存单元设置为填充缓存单元。从而这部分已被视频解码器填充的视频图像数据依然可以被第二消费者渲染、并最终在显示器上呈现给用户。
以上从第一视频缓存队列和第二视频缓存队列共享缓存单元、以及不共享缓存单元两种方式,对步骤303的实施方式进行了描述。需要说明的是,在具体实施时,采用共享缓存或者不共享缓存的方式都是可以的。
优选地,对于视频解码器与缓存单元绑定的应用场景,可以采用第一视频缓存队列与第二视频缓存队列共享缓存单元的优选实施方式,这样可以避免因为在切换后使用了不同的缓存单元、所导致的重置视频播放流水线的操作,从而既不会影响切换过程的执行效率,也不会因为中断正在播放的视频、并跳转到上次中断的位置继续播放,使用户明显感觉到视频播放的中断和卡顿,特别是在播放不支持跳转的流媒体视频时可以避免发生播放失败的现象,从而保证视频播放过程的流畅性、显著提升用户的体验。
执行步骤303后,视频解码器对视频缓存队列的访问请求,就由对应于第二渲染方式的第二视频缓存队列响应,从而完成了从第一渲染方式到第二渲染方式的变更。其中,第一渲染方式和第二渲染方式是两种不同的渲染方式,例如:第一渲染方式为SurfaceView渲染方式或TextureView渲染方式中的任意一种,第二渲染方式则为其中的另外一种,与SurfaceView渲染方式对应的消费者为系统图形合成器,与TextureView渲染方式对应的消费者为视频播放应用自带的渲染单元。
至此,通过上述步骤301-303,对本实施例提供的方法的实施方式进行了描述。通过上述描述可以看出,由于采用了分别对应不同渲染方式的两个并存的队列,因此在需要将第一渲染方式变更为第二渲染方式时,可以直接将针对视频解码器访问请求的响应队列,切换为第二视频缓存队列,即可实现动态切换渲染方式的目的。从而在变更渲染方式时无需重新创建队列、分配内存,而仅需执行队列的切换操作,可以显著减少对执行性能的影响,有助于保证视频播放的流畅性,有效提升用户的观看体验。此外,本方法实现的切换操作过程对视频解码器是透明的,即:不影响视频解码器对视频缓存队列的原有访问方式,不需要对视频解码器代码进行变更,减少开发人员工作量。
在上述的实施例中,提供了一种方法,与之相对应的,本申请还提供一种装置。请参看图4,其为本申请的一种装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种装置,包括:访问请求响应单元401,用于采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;变更请求接收单元402,用于接收将第一渲染方式变更为第二渲染方式的请求;响应队列切换单元403,用于将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。
可选的,所述响应队列切换单元执行切换操作所涉及的所述第一视频缓存队列与所述第二视频缓存队列共享缓存单元;
所述装置还包括:
缓存单元添加单元,用于在所述变更请求接收单元接收请求后,将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,并触发所述响应队列切换单元工作。
可选的,所述缓存单元添加单元,具体用于将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,且保留其中的填充缓存单元。
可选的,所述响应队列切换单元执行切换操作所涉及的所述第一视频缓存队列与所述第二视频缓存队列各自具有缓存单元。
可选的,所述装置还包括:
缓存单元复制单元,用于在所述变更请求接收单元接收请求后、触发所述响应队列切换单元工作之前,将所述第一视频缓存队列中的各填充缓存单元中的数据分别复制到所述第二视频缓存队列中的不同空缓存单元中、并在复制完毕后将相应的空缓存单元设置为填充缓存单元。
可选的,所述响应队列切换单元,具体用于设置表征采用第二视频缓存队列作为响应队列的标志。
可选的,所述第一渲染方式包括:SurfaceView渲染方式、或者TextureView渲染方式,所述第二渲染方式包括:不同于所述第一渲染方式的TextureView渲染方式、或者SurfaceView渲染方式。
请参见图5,其为本实施例提供的包括缓存管理装置的系统的示意图。所述系统500可以包括:视频播放控制单元501,缓存管理装置502,视频解码器503、第一渲染单元504和第二渲染单元505。
所述视频播放控制单元501,用于产生控制视频播放过程的控制信号、以及创建供所述缓存管理装置502使用的第一视频缓存队列502-1和第二视频缓存队列502-2。所述控制信号包括但不局限于:控制所述视频解码器503启动、暂停、以及停止解码的控制信号,以及变更渲染方式的控制信号,该信号可以触发所述缓存管理装置502执行队列切换操作。在具体实施时,所述视频播放控制单元501可以是视频播放应用中用于控制视频播放过程的单元。
所述视频解码器503,用于对已编码的视频数据进行解码,并利用缓存管理装置502提供的视频缓存队列生产者接口将解码后的视频图像数据写入相应的视频缓存队列中。在具体实施时,所述视频解码器503可以是按照软件、硬件、固件、或其结合、或其他方式实现的视频解码器。例如:Android操作系统提供的MediaCodec视频解码器,由阿里巴巴公司设计的YunOS操作系统提供的V4l2视频解码器等。
所述缓存管理装置502,用于采用第一视频缓存队列响应来自所述视频解码器503的访问请求,以及在接收到视频播放控制器601发送的变更渲染方式的控制信号后,执行队列切换操作,即:切换为采用第二视频缓存队列响应所述视频解码器503的访问请求。在具体实施时,所述缓存管理装置502可以在操作系统中实施,所述操作系统包括但不局限于:Android操作系统、YunOS操作系统等。
所述第一渲染单元504,用于读取第一视频队列502-1中存储的视频数据,并采用对应于第一视频缓存队列的第一渲染方式进行视频渲染;所述第二渲染单元505,用于读取第二视频队列502-2中存储的视频数据,并采用对应于第二视频队列的第二渲染方式进行视频渲染。
在具体实施时,所述第一渲染方式可以为TextureView渲染方式,第一渲染单元504的功能可以由视频播放应用自带的渲染单元和系统图形合成器共同完成,即:视频播放应用自带的渲染单元,用于将从第一视频缓存队列中获取的视频图像数据渲染到视频播放应用的窗口缓存中,系统图形合成器用于将已经渲染到所述窗口缓存中的数据与其他待展示UI数据进行一次合成渲染,最终将渲染结果呈现在显示器上。所述第二渲染方式可以为SurfaceView渲染方式,第二渲染单元505可以为系统图形合成器,系统图形合成器用于将从第二视频缓存队列中获取的视频图像数据,与其他待渲染的UI数据进行合成渲染,从而在显示器上呈现出被播放的视频。例如,在Android系统中,系统图形合成器可以为SurfaceFlinger,在Linux系统中,系统图形合成器可以为Xserver或者Weston。
当然,在其他实施方式中,所述第一渲染方式可以为SurfaceView渲染方式,第一渲染单元504可以为系统图形合成器,所述第二渲染方式可以为TextureView渲染方式,第二渲染单元505的功能则可以由视频播放应用自带的渲染单元和系统图形合成器共同完成,此处不再赘述。
在上述的实施例中,提供了一种方法以及一种装置,此外,本申请还提供了一种系统,所述系统实施例如下。
请参考图6,其示出了本申请的一种系统的实施例的示意图。所述系统600,可以包括:处理器601,与所述处理器耦合的系统控制单元602,与所述系统控制单元耦合的系统内存(System Memory)603,与所述系统控制单元耦合的非易失存储器(NonVolatileMemory—NVM)或存储设备604,以及与所述系统控制单元耦合的网络接口605。
所述处理器601可以包括至少一个处理器,每个处理器可以是单核处理器或者多核处理器。所述处理器601可以包括通用处理器和专用处理器(例如,图形处理器、应用处理器、基带处理器等)的任意组合。在具体实施时,所述处理器601可以被配置为采用不同的实施方式执行图3中所示的方法。
所述系统控制单元602可以包括任何相应的接口控制器,为所述处理器601中的至少一个处理器,和/或,任何与所述系统控制单元602通信的设备或组件,提供接口。
所述系统控制单元602可以包括为所述系统内存603提供接口的至少一个内存控制器。所述系统内存603可以用于加载并存储数据和/或指令。所述系统内存603可以包括任何易失性存储器,例如,动态随机存取存储器(dynamic random access memory—DRAM)。
所述非易失存储器或存储设备604可以包括至少一个有形的、永久性的计算机可读介质,所述计算机可读介质用于存储数据和/或指令。所述非易失存储器或存储设备604可以包括任何形式的非易失存储器,例如,闪存(flash memory),和/或,任何非易失存储设备,例如,至少一个硬盘驱动器(hard disk drive—HDD)、至少一个光盘驱动器、和/或、至少一个数字多功能磁盘(digital versatile disk—DVD)驱动器。
所述系统内存603和所述非易失存储器或存储设备604可以分别存储有指令607的暂时性副本和持久性副本。当所述指令607中的指令被处理器601中的至少一个处理器执行时,导致所述系统600执行图3中所示的方法。
所述网络接口605可以包括为所述系统600提供无线接口的收发器,所述系统600可以通过无线接口实现跨网络的通信,和/或与其他设备通信。所述网络接口605可以包括任何硬件和/或固件。所述网络接口605可以包括提供多输入、多输出无线接口的多个天线。在具体实施时,所述网络接口605可以为网络适配器、无线网络适配器、电话调制解调器、和/或无线调制解调器。
在具体实施时,所述处理器601中的至少一个处理器可以与所述系统控制单元602中的至少一个控制器的控制逻辑封装在一起。在具体实施时,所述处理器601中的至少一个处理器可以与所述系统控制单元602中的至少一个控制器的控制逻辑封装在一起,形成系统封装(System in Package—SiP)。在具体实施时,所述处理器601中的至少一个处理器可以与所述系统控制单元602中的至少一个控制器的控制逻辑集成在同一个芯片上。在具体实施时,所述处理器601中的至少一个处理器可以与所述系统控制单元602中的至少一个控制器的控制逻辑集成在同一个芯片上,形成片上系统(System on Chip—SoC)。
所述系统600可以进一步包括输入/输出(I/O)设备606。所述输入/输出设备606可以包括供用户与所述系统600进行交互的用户接口,和/或供外围组件和所述系统600交互的外围组件接口。
在不同的实施方式中,用户接口可以包括但不局限于:显示器(例如,液晶显示器,触摸屏显示器等)、扬声器、麦克风、至少一个摄像装置(例如相机、和/或摄像机)、闪光灯、以及键盘。
在不同的实施方式中,外围组件接口可以包括但不局限于:非易失性存储器端口、音频插孔、以及电源接口。
在不同的实施方式中,所述系统600可以部署于个人电脑、移动计算设备等电子设备上,所述移动计算设备可以包括但不局限于:笔记本电脑、平板电脑、移动电话、和/或其他智能设备等。在不同的实施方式中,所述系统600可以包括更多或更少的组件,和/或不同的架构。
本说明书可以包括多种以下所揭示的示范实施例。
在示范实施例1中,一种方法可以包括:采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;接收将第一渲染方式变更为第二渲染方式的请求;将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。
在示范实施例2中,示范实施例1所述的第一视频缓存队列与所述第二视频缓存队列共享缓存单元,在接收将第一渲染方式变更为第二渲染方式的请求之后,在执行所述切换操作之前,包括:将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中。
在示范实施例3中,示范实施例1-2的任一实施例所述的将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,包括:将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,且保留其中的填充缓存单元。
在示范实施例4中,示范实施例1-3的任一实施例所述的第一视频缓存队列与所述第二视频缓存队列各自具有缓存单元。
在示范实施例5中,示范实施例1-4的任一实施例在接收将第一渲染方式变更为第二渲染方式的请求之后,在执行所述切换操作之前,包括:将所述第一视频缓存队列中的各填充缓存单元中的数据分别复制到所述第二视频缓存队列中的不同空缓存单元中,并在复制完毕后将相应的空缓存单元设置为填充缓存单元。
在示范实施例6中,示范实施例1-5的任一实施例所述的将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列,采用如下方式实现:设置表征采用第二视频缓存队列作为响应队列的标志。
在示范实施例7中,示范实施例1-6的任一实施例所述的第一渲染方式包括:SurfaceView渲染方式、或者TextureView渲染方式,所述第二渲染方式包括:不同于所述第一渲染方式的TextureView渲染方式、或者SurfaceView渲染方式。
在示范实施例8中,示范实施例1-7的任一实施例所述的来自视频数据提供方的访问请求包括:空缓存单元出队、以及填充缓存单元入队。
在示范实施例9中,示范实施例1-8的任一实施例所述的视频数据提供方包括:视频解码器。
在示范实施例10中,一种装置可以包括:访问请求响应单元,用于采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;变更请求接收单元,用于接收将第一渲染方式变更为第二渲染方式的请求;响应队列切换单元,用于将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。
在示范实施例11中,示范实施例10所述的响应队列切换单元执行切换操作所涉及的所述第一视频缓存队列与所述第二视频缓存队列共享缓存单元,并且还包括:缓存单元添加单元,用于在所述变更请求接收单元接收请求后,将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,并触发所述响应队列切换单元工作。
在示范实施例12中,示范实施例10-11的任一实施例所述的缓存单元添加单元,具体用于将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,且保留其中的填充缓存单元。
在示范实施例13中,示范实施例10-12的任一实施例所述的响应队列切换单元执行切换操作所涉及的所述第一视频缓存队列与所述第二视频缓存队列各自具有缓存单元。
在示范实施例14中,示范实施例10-13的任一实施例还包括:缓存单元复制单元,用于在所述变更请求接收单元接收请求后、触发所述响应队列切换单元工作之前,将所述第一视频缓存队列中的各填充缓存单元中的数据分别复制到所述第二视频缓存队列中的不同空缓存单元中、并在复制完毕后将相应的空缓存单元设置为填充缓存单元。
在示范实施例15中,示范实施例10-14的任一实施例所述的响应队列切换单元,具体用于设置表征采用第二视频缓存队列作为响应队列的标志。
在示范实施例16中,示范实施例10-15的任一实施例所述的第一渲染方式包括:SurfaceView渲染方式、或者TextureView渲染方式,所述第二渲染方式包括:不同于所述第一渲染方式的TextureView渲染方式、或者SurfaceView渲染方式。
在示范实施例17中,一种机器可读介质可以存储指令,所述指令被处理器读取执行时,执行示范实施例1-9的任一实施例所述的方法。
在示范实施例18中,一种系统可以包括:处理器,以及存储器,所述存储器用于存储指令,所述指令在被所述处理器读取执行时,执行示范实施例1-9的任一实施例所述的方法。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

Claims (18)

1.一种方法,其特征在于,包括:
采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;
接收将第一渲染方式变更为第二渲染方式的请求;
将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;
其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。
2.根据权利要求1所述的方法,其特征在于,所述第一视频缓存队列与所述第二视频缓存队列共享缓存单元;
在接收将第一渲染方式变更为第二渲染方式的请求之后,在执行所述切换操作之前,包括:
将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中。
3.根据权利要求2所述的方法,其特征在于,将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,包括:
将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,且保留其中的填充缓存单元。
4.根据权利要求1所述的方法,其特征在于,所述第一视频缓存队列与所述第二视频缓存队列各自具有缓存单元。
5.根据权利要求4所述的方法,其特征在于,在接收将第一渲染方式变更为第二渲染方式的请求之后,在执行所述切换操作之前,包括:
将所述第一视频缓存队列中的各填充缓存单元中的数据分别复制到所述第二视频缓存队列中的不同空缓存单元中,并在复制完毕后将相应的空缓存单元设置为填充缓存单元。
6.根据权利要求1所述的方法,其特征在于,所述将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列,采用如下方式实现:
设置表征采用第二视频缓存队列作为响应队列的标志。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一渲染方式包括:SurfaceView渲染方式、或者TextureView渲染方式,所述第二渲染方式包括:不同于所述第一渲染方式的TextureView渲染方式、或者SurfaceView渲染方式。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述来自视频数据提供方的访问请求包括:空缓存单元出队、以及填充缓存单元入队。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述视频数据提供方包括:视频解码器。
10.一种缓存管理装置,其特征在于,包括:
访问请求响应单元,用于采用对应于第一渲染方式的第一视频缓存队列响应来自视频数据提供方的访问请求;
变更请求接收单元,用于接收将第一渲染方式变更为第二渲染方式的请求;
响应队列切换单元,用于将针对所述访问请求的响应队列,切换为对应于所述第二渲染方式的第二视频缓存队列;其中,所述第一视频缓存队列和所述第二视频缓存队列是并存的。
11.根据权利要求10所述的装置,其特征在于,所述响应队列切换单元执行切换操作所涉及的所述第一视频缓存队列与所述第二视频缓存队列共享缓存单元;
所述装置还包括:
缓存单元添加单元,用于在所述变更请求接收单元接收请求后,将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,并触发所述响应队列切换单元工作。
12.根据权利要求11所述的装置,其特征在于,所述缓存单元添加单元,具体用于将所述第一视频缓存队列中的各缓存单元添加到所述第二视频缓存队列中,且保留其中的填充缓存单元。
13.根据权利要求10所述的装置,其特征在于,所述响应队列切换单元执行切换操作所涉及的所述第一视频缓存队列与所述第二视频缓存队列各自具有缓存单元。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
缓存单元复制单元,用于在所述变更请求接收单元接收请求后、触发所述响应队列切换单元工作之前,将所述第一视频缓存队列中的各填充缓存单元中的数据分别复制到所述第二视频缓存队列中的不同空缓存单元中、并在复制完毕后将相应的空缓存单元设置为填充缓存单元。
15.根据权利要求10所述的装置,其特征在于,所述响应队列切换单元,具体用于设置表征采用第二视频缓存队列作为响应队列的标志。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述第一渲染方式包括:SurfaceView渲染方式、或者TextureView渲染方式,所述第二渲染方式包括:不同于所述第一渲染方式的TextureView渲染方式、或者SurfaceView渲染方式。
17.一种机器可读介质,其特征在于,所述机器可读介质存储指令,所述指令被处理器读取执行时,执行如权利要求1-9任一项所述的方法。
18.一种系统,其特征在于,包括:
处理器;
存储器,用于存储指令,所述指令在被所述处理器读取执行时,执行如权利要求1-9任一项所述的方法。
CN201611021677.9A 2016-11-21 2016-11-21 用于管理缓存的方法、装置及系统 Active CN108093292B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201611021677.9A CN108093292B (zh) 2016-11-21 2016-11-21 用于管理缓存的方法、装置及系统
TW106125752A TW201820883A (zh) 2016-11-21 2017-07-31 用於管理快取的方法、裝置及系統
US15/815,527 US10531149B2 (en) 2016-11-21 2017-11-16 Method and system for managing buffers
PCT/US2017/062389 WO2018094261A1 (en) 2016-11-21 2017-11-17 Method and system for managing buffers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611021677.9A CN108093292B (zh) 2016-11-21 2016-11-21 用于管理缓存的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN108093292A true CN108093292A (zh) 2018-05-29
CN108093292B CN108093292B (zh) 2020-09-11

Family

ID=62148024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611021677.9A Active CN108093292B (zh) 2016-11-21 2016-11-21 用于管理缓存的方法、装置及系统

Country Status (3)

Country Link
US (1) US10531149B2 (zh)
CN (1) CN108093292B (zh)
TW (1) TW201820883A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109922360A (zh) * 2019-03-07 2019-06-21 腾讯科技(深圳)有限公司 视频处理方法、装置及存储介质
CN110636309A (zh) * 2018-06-22 2019-12-31 Arm有限公司 数据处理系统
CN113050899A (zh) * 2021-02-07 2021-06-29 厦门亿联网络技术股份有限公司 一种基于Wayland协议的视频和UI的drm直接显示方法及系统
CN116389831A (zh) * 2023-06-06 2023-07-04 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN117369936A (zh) * 2023-12-04 2024-01-09 武汉凌久微电子有限公司 一种显示内容渲染方法及渲染系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144612B (zh) * 2018-09-03 2021-10-15 武汉斗鱼网络科技有限公司 Android清晰度切换方法、装置、终端及可读介质
CN109343840A (zh) * 2018-10-10 2019-02-15 四川长虹电器股份有限公司 移动终端相机背景自带预览框的方法
US11159833B2 (en) * 2018-11-23 2021-10-26 Sony Corporation Buffer management for storing files of a received packet stream
CN112822494A (zh) * 2020-12-30 2021-05-18 稿定(厦门)科技有限公司 双缓冲编码系统及其控制方法
CN112929755B (zh) * 2021-01-21 2022-08-16 稿定(厦门)科技有限公司 进度拖动过程中的视频文件播放方法及装置
KR20240070084A (ko) * 2022-11-14 2024-05-21 에스케이플래닛 주식회사 단말장치 및 클라우드 스트리밍 서비스 방법
CN117724779A (zh) * 2023-06-09 2024-03-19 荣耀终端有限公司 一种生成界面图像的方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111584A (en) * 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
US20050097620A1 (en) * 2003-10-30 2005-05-05 Honeywell International Inc. Architecture for multi-channel video processing
US20120089992A1 (en) * 2010-10-01 2012-04-12 Imerj LLC User interaction support across cross-environment applications
CN105138311A (zh) * 2014-05-30 2015-12-09 广州市动景计算机科技有限公司 一种提高图形绘制效率的方法及装置
US9317175B1 (en) * 2013-09-24 2016-04-19 Amazon Technologies, Inc. Integration of an independent three-dimensional rendering engine
US9392042B1 (en) * 2013-04-29 2016-07-12 Amazon Technologies, Inc. Streaming media optimization

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838334A (en) 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US6100906A (en) 1998-04-22 2000-08-08 Ati Technologies, Inc. Method and apparatus for improved double buffering
GB9930788D0 (en) 1999-12-30 2000-02-16 Koninkl Philips Electronics Nv Method and apparatus for converting data streams
US8548048B2 (en) 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US10643580B2 (en) 2014-05-30 2020-05-05 Guangzhou Ucweb Computer Technology Co., Ltd. Method and device for switching playing mode of a mobile terminal, storage medium and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111584A (en) * 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
US20050097620A1 (en) * 2003-10-30 2005-05-05 Honeywell International Inc. Architecture for multi-channel video processing
US20120089992A1 (en) * 2010-10-01 2012-04-12 Imerj LLC User interaction support across cross-environment applications
US9392042B1 (en) * 2013-04-29 2016-07-12 Amazon Technologies, Inc. Streaming media optimization
US9317175B1 (en) * 2013-09-24 2016-04-19 Amazon Technologies, Inc. Integration of an independent three-dimensional rendering engine
CN105138311A (zh) * 2014-05-30 2015-12-09 广州市动景计算机科技有限公司 一种提高图形绘制效率的方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110636309A (zh) * 2018-06-22 2019-12-31 Arm有限公司 数据处理系统
CN109922360A (zh) * 2019-03-07 2019-06-21 腾讯科技(深圳)有限公司 视频处理方法、装置及存储介质
CN113050899A (zh) * 2021-02-07 2021-06-29 厦门亿联网络技术股份有限公司 一种基于Wayland协议的视频和UI的drm直接显示方法及系统
CN116389831A (zh) * 2023-06-06 2023-07-04 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN116389831B (zh) * 2023-06-06 2023-08-15 湖南马栏山视频先进技术研究院有限公司 一种基于云原生的离线渲染系统及方法
CN117369936A (zh) * 2023-12-04 2024-01-09 武汉凌久微电子有限公司 一种显示内容渲染方法及渲染系统
CN117369936B (zh) * 2023-12-04 2024-03-08 武汉凌久微电子有限公司 一种显示内容渲染方法及渲染系统

Also Published As

Publication number Publication date
TW201820883A (zh) 2018-06-01
US20180146243A1 (en) 2018-05-24
US10531149B2 (en) 2020-01-07
CN108093292B (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN108093292A (zh) 用于管理缓存的方法、装置及系统
EP3754490B1 (en) User interface rendering method and apparatus, and terminal
CN113553014B (zh) 多窗口投屏场景下的应用界面显示方法及电子设备
WO2022127278A1 (zh) 一种虚拟场景的渲染方法和装置
US20220139353A1 (en) Display method, electronic device, and non-transitory computer-readable storage medium
KR101980990B1 (ko) 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용
KR102307163B1 (ko) 크로스 플랫폼 렌더링 엔진
EP2756481B1 (en) System and method for layering using tile-based renderers
CN111737019B (zh) 一种显存资源的调度方法、装置及计算机存储介质
US9883137B2 (en) Updating regions for display based on video decoding mode
CN110018759B (zh) 界面显示方法、装置、终端及存储介质
CN109840114A (zh) 页面处理方法及移动终端
CN111625214A (zh) 音频控制方法、装置、设备及存储介质
WO2023207200A1 (zh) 投屏方法、装置、终端、设备、计算机介质及程序产品
WO2023173516A1 (zh) 数据交互的方法、装置、存储介质及电子设备
US12027087B2 (en) Smart compositor module
CN114710702A (zh) 一种视频的播放方法和装置
CN110362375A (zh) 桌面数据的显示方法、装置、设备和存储介质
US20240078072A1 (en) Method and apparatus for displaying message box, terminal device and non-transitory computer-readable storage medium
KR20080009978A (ko) 이동통신 단말기의 메뉴화면 구성 방법
CN114153615A (zh) 内存管理方法、装置、设备、计算机程序及存储介质
CN107943442A (zh) 一种实现双屏显示的方法及设备
CN111402349A (zh) 渲染方法、渲染装置和渲染引擎
CN110347463B (zh) 图像处理方法、相关设备及计算机存储介质
US10354623B1 (en) Adaptive buffer latching to reduce display janks caused by variable buffer allocation time

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
TR01 Transfer of patent right

Effective date of registration: 20201113

Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China

Patentee after: Zebra smart travel network (Hong Kong) Limited

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right