CN111901666A - 图像处理方法、装置、电子设备以及存储介质 - Google Patents

图像处理方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN111901666A
CN111901666A CN202010626281.7A CN202010626281A CN111901666A CN 111901666 A CN111901666 A CN 111901666A CN 202010626281 A CN202010626281 A CN 202010626281A CN 111901666 A CN111901666 A CN 111901666A
Authority
CN
China
Prior art keywords
frame
image frame
target image
filling
target
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
CN202010626281.7A
Other languages
English (en)
Other versions
CN111901666B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010626281.7A priority Critical patent/CN111901666B/zh
Publication of CN111901666A publication Critical patent/CN111901666A/zh
Application granted granted Critical
Publication of CN111901666B publication Critical patent/CN111901666B/zh
Priority to EP21834613.8A priority patent/EP4044608A4/en
Priority to PCT/CN2021/095054 priority patent/WO2022001469A1/zh
Priority to JP2022552630A priority patent/JP7471725B2/ja
Priority to US17/728,810 priority patent/US20220254069A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • 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
    • 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
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种图像处理方法、装置、电子设备以及存储介质,包括:接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除目标图像帧之外,其余的帧为填充帧;当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,对解码后的图像帧进行处理,并展示处理结果,该方案可以降低对图像序列进行解码所带来的时延。

Description

图像处理方法、装置、电子设备以及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种图像处理方法、装置、电子设备以及存储介质。
背景技术
越来越多的用户开始通过手机、平板电脑及个人电脑等终端在线收看视频,并且,随着移动终端及网络技术的发展,游戏也可以以视频播放的方式向用户展示相应的内容,以云游戏为例,在云游戏的场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家的终端。玩家的终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
然而,受限于玩家的终端的解码能力,在目前的解码方案中,视频硬件解码帧缓存会极大地影响整体延迟,导致最终播放的视频可能会存在卡顿的现象。
发明内容
本申请提供一种图像处理方法、装置、电子设备以及存储介质,可以降低对图像序列进行解码所带来的时延,提高图像处理的流畅度。
本申请提供了一种图像处理方法,包括:
接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,所述填充帧信息由所述服务器根据所述图像帧集合生成的;
将所述图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧;
基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧;
当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述缓存队列中的所有图像帧均解码完毕;
对解码后的图像帧进行处理,并展示处理结果。
相应的,本申请还提供了一种图像处理装置,包括:
接收模块,用于接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,所述填充帧信息由所述服务器根据所述图像帧集合生成的;
确定模块,用于将所述图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧;
插入模块,用于基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧;
检测模块,用于当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述缓存队列中的所有图像帧均解码完毕;
处理模块,用于对解码后的图像帧进行处理,并展示处理结果。
可选的,在本申请的一些实施例中,所述插入模块包括:
第一提取单元,用于从所述填充帧信息中提取由所述服务器根据所述图像帧集合生成的填充帧帧集合;
选择单元,用于在所述填充帧帧集合中选择与所述目标图像帧对应的填充帧,得到目标填充帧;
插入单元,用于在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧。
可选的,在本申请的一些实施例中,所述插入单元具体用于:
检测所述缓存队列对应的最大缓存数量;
根据所述目标图像帧以及最大缓存数量,生成填充数量;
在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧。
可选的,在本申请的一些实施例中,还包括赋值模块,所述赋值模块包括:
第二提取单元,用于提取所述目标图像帧的帧序号;
赋值单元,用于基于帧序号以及在所述缓存队列中填充帧的位置,对所述缓存队列中填充帧的帧序号进行赋值。
可选的,在本申请的一些实施例中,所述赋值单元具体用于:
从所述填充帧信息中提取在所述缓存队列中填充帧对应的偏移量;
基于帧序号、在所述缓存队列中填充帧的位置以及在所述缓存队列中填充帧对应的偏移量,对所述缓存队列中填充帧的帧序号进行赋值。
可选的,在本申请的一些实施例中,所述检测模块具体用于:
当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,得到当前处理对象;
检测所述当前处理对象的类型;
当检测结果指示所述当前处理对象为关键帧时,则以所述当前处理对象的帧序号为基准,基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧;
当检测到所述目标图像帧的帧类型不为关键帧时,则根据所述当前处理对象的上一帧对应的帧序号,调整所述当前处理对象的帧序号,并基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧;
执行将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,得到当前处理对象的步骤,直至所述缓存队列中的所有图像帧均解码完毕。
可选的,在本申请的一些实施例中,所述确定模块具体用于:
获取当前渲染的所述待处理图像序列的关键帧,得到目标关键帧;
在所述图像帧集合确定所述目标关键帧的下一帧图像帧为目标图像帧;
将所述目标图像帧存放至缓存队列的首位。
本申请在接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合后,所述填充帧信息由所述服务器根据所述图像帧集合生成的,将所述图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,接着,基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧,当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述缓存队列中的所有图像帧均解码完毕,最后,对解码后的图像帧进行处理,并展示处理结果。因此,该方案可以降低对视频进行解码所带来的时延,提高图像处理的流畅度。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请提供的图像处理方法的场景示意图;
图1b是本申请提供的图像处理方法的流程示意图;
图2a是本申请提供的图像处理方法的另一流程示意图;
图2b是本申请提供的图像处理系统的示意图;
图2c是本申请提供的图像处理方法中生成填充帧的流程示意图;
图2d是本申请提供的图像处理方法对图像帧集合进行处理的流程示意图;
图3a是本申请提供的图像处理装置的结构示意图;
图3b是本申请提供的图像处理装置的另一结构示意图;
图4是本申请提供的电子设备的结构示意图;
图5是本申请提供的分布式系统100应用于区块链系统的一个可选的结构示意图;
图6是本申请提供的区块结构(Block Structure)一个可选的示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供一种图像处理方法、装置、电子设备和存储介质。
其中,该图像处理装置具体可以集成在终端中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
例如,请参阅图1a,该图像处理装置集成在终端上,终端可以接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,其中,填充帧信息由所述服务器根据图像帧集合生成的,服务器为云端服务器,在云游戏场景下,由云端服务器将游戏场景渲染为视频音频流(即视频流数据),通过网络传输给用户的终端,然后,终端将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,接着,终端基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除所述目标图像帧之外,其余的帧为填充帧,接着,终端当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,最后,终端渲染解码后的图像帧,以播放所述待处理图像序列。
本申请提供的图像处理方法,通过在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得目标图像帧位于缓存队列时,处于缓存队列的首位,并且,缓存队列中除目标图像帧之外,其余的帧为填充帧,提高终端对图像帧解码的速度,降低对视频进行解码所带来的时延,进而提高了图像处理的效率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
一种图像处理方法,包括:接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,对解码后的图像帧进行处理,并展示处理结果。
请参阅图1b,图1b为本申请提供的图像处理方法的流程示意图。该虚拟角色控制方法的具体流程可以如下:
101、接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合。
其中,填充帧信息由服务器根据图像帧集合生成的,可以通过有线网络或无线网络接收服务器发送的视频流数据,该视频流数据携带有填充帧信息以及待处理图像序列的图像帧集合,在接收服务器发送的视频流数据后,对该视频流数据进行解析,从而得到待处理图像序列的图像帧集合以及服务器根据图像帧集合生成的填充帧信息视频数据源的格式可以是AVC(Advanced Video Coding,即H.264编码标准),也可以是HEVC(HighEfficiency Video Coding,即H.265编码标准)。
首先,介绍以下视频编码的概念,所谓视频编码方式就是指通过压缩技术,将原始视频图像依次通过预测、变化、量化、重组以及熵编码压缩成二进制字节流,其中,编码方式包括:基于上下文的自适应变长编码(Context-Adaptive Varialbe-Length Coding,CAVLC)和基于上下文的自适应二进制算术编码(Context-based Adaptive BinaryArithmetic Coding,CABAC),服务器在获取到待处理图像序列的图像序列头信息后,对图像序列头信息进行解析,得到待处理图像序列的画质级别、参考帧数量、是否有双向预测帧以及图像帧序列对应的长度等信息,并基于解析得到的信息,判断是否能够生成填充帧,服务器当生成填充帧时,将生成的填充帧、填充帧对应的序号以及偏移量,打包成填充帧信息,并写入图像序列头信息内,随后,将包含填充帧信息的图像序列头信息发送至终端。
102、将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧。
为了便于视频内容的存储和传输,通常需要减少视频内容的体积,也就是需要将原始的视频图像经过压缩,压缩算法也简称编码格式。例如,服务器可以采用H.264编码格式对视频图像进行压缩,当接收到服务器发送的压缩后的视频内容,需要对压缩后的视频内容进行解压缩,也称解码,就视频图像编码和解码而言,编码器将多张图像进行编码后生产成一段一段的图像组(Group of Pictures,GOP),解码器在播放时则是读取一段一段的GOP进行解码后读取画面再渲染显示。GOP(Group of Pictures)是一组连续的画面,由一个关键帧和多个非关键帧组成,其中,关键帧是GOP的基础帧(第一帧),在一组中只有一个关键帧,非关键帧包括前向参考帧和双向参考帧,其中,关键帧是一个完整的画面,前向参考帧和双向参考帧记录的是相对于关键帧的变化,因此,关键帧可以独立解码,而前向参考帧需要依赖前一帧图像进行解码,双向参考帧不仅需要依赖前一帧图像,还需要依赖下一帧图像才能进行解码,即,当需要播放视频时,首先需要定位出一帧关键帧的位置,才能实现视频的播放,也即,可选的,在一些实施例中,步骤“将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧”,具体可以包括:
(11)获取当前渲染的待处理图像序列的关键帧,得到目标关键帧;
(12)在图像帧集合确定目标关键帧的下一帧图像帧为目标图像帧;
(13)将目标图像帧存放至缓存队列的首位。
目前,用户的终端的可以与服务器之间通过缓存队列进行视频数据(即图像帧集合)的缓存,即,缓存队列用于对在图像处理过程中的每一个待解码的图像帧按照先进先出的顺序进行缓存,并且,仅当缓存队列中的所有的缓存空间均缓存有图像帧时,终端才对位于缓存队列首位的图像帧进行解码。
103、基于填充帧信息在目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧。
其中,在目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除目标图像帧之外,其余的帧为填充帧,以云游戏为例,云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术,并且,在云游戏中,服务器所发送的图像帧集合中一般只包括关键帧和前向参考帧,由于双向参考帧记录的是本帧与前后帧的差别,也就是说要解码双向参考帧,不仅要取得双向参考帧之前的缓存画面,还要解码双向参考帧之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面,当双向参考帧需要解码时,还需要获取双向参考帧下一帧的数据,此时,双向参考帧的下一帧还位于缓存队列中,因此,并不能对双向参考帧进行解码,从而导致画面出现卡顿等现象。
填充帧信息包含与图像帧集合中每个图像帧对应的填充帧,因此,可以根据填充帧信息确定与目标图像帧对应的填充帧,并将确定的填充帧插入目标图像帧与目标图像帧的下一帧图像帧之间,以使得目标图像帧位于缓存队列的首位,且缓存队列中除所述目标图像帧之外,其余的帧为填充帧,即,可选的,在一些实施例中,步骤“基于填充帧信息在目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧”,具体可以包括:
(21)从填充帧信息中提取由服务器根据所述图像帧集合生成的填充帧帧集合;
(22)在填充帧帧集合中选择与目标图像帧对应的填充帧,得到目标填充帧;
(23)在目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧。
需要说明的是,该填充帧填充帧为前向预测帧,并且,该填充帧的帧模式为跳过模式,P-Skip宏块是一种特殊的P宏块,对于一般的P宏块而言,像素残差和运动矢量残差都会写入码流,从编码端传到解码端,但是P-Skip宏块的特殊之处就在于,既不传送像素残差,也不传送运动矢量残差,编码端除了传送一些标识该宏块是PSkip宏块的少量的字节外,不在需要传送关于该宏块的其他信息,由于运动矢量残差等于运动矢量与预测的运动矢量之差,在编码段的运动矢量残差为零,而解码时可以得到预测的运动矢量,也就是说,在解码时,也能得到运动矢量,在解码端有参考帧对应宏块的重建像素,根据这个重建像素和运动矢量,就可以恢复出本帧本宏块的像素值,这就是所谓的P-skip宏块原理,从字面理解就是跳过了这个宏块,相当于这个宏块没有编码,在解码端采取了近似替代的恢复办法,如果本帧的一宏块和参考帧的一宏块像素(不要求两宏块在同一位置)几乎完全一致,很显然,当前帧的宏块就不用编码,在解码端,直接就可以用近似替代的办法恢复出本帧本宏块的像素值,比如在第一帧中有个乒乓球,在第二帧中也有个乒乓球,那个第二帧中乒乓球这个宏块就很可能编成了PSkip宏块,在本申请中,从编码前的角度插入缓存队列中的填充帧与目标图像帧是完全一样的。
进一步的,为了提高图像帧解码的效率,因此,在目标填充帧与目标填充帧的下一帧图像帧之间插入填充帧,使得缓存队列被填满(达到缓存队列的最大缓存数量),可以根据缓存队列的最大缓存数量以及目标图像帧,生成填充数量,然后,在目标图像帧与目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧,即,可选的,在一些实施例中,步骤“在目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧”,具体可以包括:
(31)检测所述缓存队列对应的最大缓存数量;
(32)根据所述目标图像帧以及最大缓存数量,生成填充数量;
(33)在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧。
为了保证在缓存队列插入填充帧后,待处理图像序列画面的连续性,因此,需要对缓存队列中填充帧的帧序号进行赋值,即,可选的,在一些实施例中,步骤“在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧”,具体还包括:
(41)提取目标图像帧的帧序号;
(42)基于帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值。
比如,目标图像帧的帧序号为5,在缓存队列中插入了4个填充帧,分别为填充帧A、填充帧B、填充帧C以及填充帧D,且填充帧之间的位置为填充帧A-填充B-填充帧C-填充帧D,按照依次递增的顺序依次赋予填充帧A、填充帧B、填充帧C以及填充帧D相应的帧序号,此时,填充帧A的帧序号为6,填充帧B的帧序号为7,填充帧C的帧序号为8,填充帧D的帧序号为9。
在实际应用中,比如,在H.264编码格式中,H.264条带是指特定条带组内部按照光栅扫描顺序排列的整数个宏块或宏块对,但这些宏块或宏块对在图像内部并不一定是按照光栅扫描顺序连续排列的,上述宏块的地址是通过条带第一个宏块的地址(条带头中描述)以及宏块到条带组的映射得到的。(2)H.264条带头是指编码条带的一部分,包含与该条带中第一个或者全部宏块有关的数据元素,也就是说,可以从填充帧信息中提取在缓存队列中填充帧对应的偏移量,该偏移量指的是填充帧在条带头中的偏移量,然后,基于帧序号在缓存队列中填充帧的位置以及在缓存队列中填充帧对应的偏移量,对所述缓存队列中填充帧的帧序号进行赋值,即,可选的,在一些实施例中,步骤“基于帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值,以使得在缓存队列中最后一帧填充帧的帧序号为第二帧序号”,具体可以包括:
(51)从填充帧信息中提取在缓存队列中填充帧对应的偏移量;
(52)基于帧序号、在缓存队列中填充帧的位置以及在缓存队列中填充帧对应的偏移量,对缓存队列中填充帧的帧序号进行赋值。
具体的,从填充帧信息中提取由服务器生成的填充帧的帧序号,并根据帧序号、在缓存队列中填充帧的位置以及在缓存队列中填充帧对应的偏移量,将缓存队列中填充帧的帧序号更新为相应的帧序号,以保证在缓存队列插入填充帧后,待处理图像序列画面的连续性。
104、当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕。
例如,具体的,当检测到目标图像帧解码完成时,则将目标图像帧更新为目标图像帧的下一帧图像帧,即,将目标图像帧的下一帧图像帧作为当前处理的图像帧,然后,在当前处理的图像帧与当前处理的图像帧下一帧图像帧之间插入填充帧,即,执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕。
需要说明的是,不同的关键帧所表示的图像是完全不同,因此,在插入填充帧时,还需要检测当前处理的图像帧是否为关键帧,即,可选的,在一些实施例中,步骤“当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕”,具体可以包括:
(61)当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,得到当前处理对象;
(62)检测当前处理对象的类型;
(63)当检测结果指示当前处理对象为关键帧时,则以当前处理对象的帧序号为基准,基于填充帧信息在当前处理对象与当前处理对象的下一帧图像帧之间插入填充帧;
(64)当检测到当前处理对象不为关键帧时,则根据当前处理对象的上一帧对应的帧序号,调整当前处理对象的帧序号,并基于填充帧信息在当前处理对象与当前处理对象的下一帧图像帧之间插入填充帧;
(65)执行将目标图像帧更新为目标图像帧的下一帧图像帧,得到当前处理对象的步骤,直至缓存队列中的所有图像帧均解码完毕。
例如,具体的,若当前处理对象为关键帧时,则将当前处理对象的帧序号确定为起始序号,基于当前处理对象的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值;若当前处理对象不为关键帧时,则获取当前处理对象的上一帧对应的帧序号,其中,当前处理对象的上一帧为填充帧,即,根据上一帧填充帧的帧序号调整当前处理对象的帧序号,并基于基于当前处理对象调整后的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值,需要说明的是,若当前处理对象不为关键帧时,基于当前处理对象调整后的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值之后,还需要检测赋值后的填充帧对应的帧序号是否大于预设阈值,若是,则将大于预设阈值的帧序号进行归零处理。
105、对解码后的图像帧进行处理,并展示处理结果。
其中,可以渲染解码后的图像帧,以播放待处理图像序列,在本申请中,由于填充帧为P-skip帧,因此,对P-skip帧只解码不渲染,而对图像帧集合中的每一帧视频解码、渲染以及播放,最终达到降低对视频进行解码所带来的时延,提高图像处理的流畅度的目的。
本申请在接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合后,将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,然后,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除目标图像帧之外,其余的帧为填充帧,当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,最后,对解码后的图像帧进行处理,并展示处理结果。本申请提供的图像处理方法,通过在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得目标图像帧位于缓存队列时,处于缓存队列的首位,并且,缓存队列中除目标图像帧之外,其余的帧为填充帧,提高终端对图像帧解码的速度,降低对视频进行解码所带来的时延,进而提高了图像处理的效率。
根据实施例所述的方法,以下将举例进一步详细说明。
在本实施例中将以该图像处理装置具体集成在终端中为例进行说明。
请参阅图2a,一种图像处理方法,具体流程可以如下:
201、终端接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合。
其中,填充帧信息由服务器根据图像帧集合生成的,可以通过有线网络或无线网络接收服务器发送的视频流数据,该视频流数据携带有填充帧信息以及待处理图像序列的图像帧集合,在接收服务器发送的视频流数据后,对该视频流数据进行解析,从而得到待处理图像序列的图像帧集合以及服务器根据图像帧集合生成的填充帧信息视频数据源的格式可以是AVC(Advanced VideoCoding,即H.264编码标准),也可以是HEVC(HighEfficiency Video Coding,即H.265编码标准)。
202、终端将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧。
为了便于视频内容的存储和传输,通常需要减少视频内容的体积,也就是需要将原始的视频图像经过压缩,压缩算法也简称编码格式。例如,服务器可以采用H.264编码格式对视频图像进行压缩,终端当接收到服务器发送的压缩后的视频内容,终端需要对压缩后的视频内容进行解压缩,即,终端当需要播放视频时,首先需要定位出一帧关键帧的位置,才能实现视频的播放。
203、终端基于填充帧信息在目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧。
填充帧信息包含与图像帧集合中每个图像帧对应的填充帧,因此,可以根据填充帧信息确定与目标图像帧对应的填充帧,并将确定的填充帧插入目标图像帧与目标图像帧的下一帧图像帧之间,以使得目标图像帧位于缓存队列的首位,且缓存队列中除所述目标图像帧之外,其余的帧为填充帧。
204、终端当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕。
例如,具体的,若当前处理对象为关键帧时,则将当前处理对象的帧序号确定为起始序号,终端基于当前处理对象的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值;若当前处理对象不为关键帧时,终端则获取当前处理对象的上一帧对应的帧序号,其中,当前处理对象的上一帧为填充帧,即,终端根据上一帧填充帧的帧序号调整当前处理对象的帧序号,并基于当前处理对象调整后的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值,需要说明的是,若当前处理对象不为关键帧时,终端基于当前处理对象调整后的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值之后,还需要检测赋值后的填充帧对应的帧序号是否大于预设阈值,若是,终端则将大于预设阈值的帧序号进行归零处理。
205、终端对解码后的图像帧进行处理,并展示处理结果
例如,具体的,渲染解码后的图像帧,以播放待处理图像序列。在本申请中,由于填充帧为P-skip帧,因此,对P-skip帧只解码不渲染,而对图像帧集合中的每一帧视频解码、渲染以及播放,最终达到降低对视频进行解码所带来的时延,提高图像处理的流畅度的目的。
本申请的终端在接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合后,终端将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,然后,终端基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除目标图像帧之外,其余的帧为填充帧,终端当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,最后,终端对解码后的图像帧进行处理,并展示处理结果。本申请提供的终端通过在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得目标图像帧位于缓存队列时,处于缓存队列的首位,并且,缓存队列中除目标图像帧之外,其余的帧为填充帧,提高终端对图像帧解码的速度,降低对视频进行解码所带来的时延,进而提高了图像处理的效率。
为了便于进一步理解本申请的图像处理方案,请参阅图2b,本申请提供一种图像处理系统(以下简称处理系统),该处理系统包括:第一终端10、第二终端20以及服务器30,终端10采集待处理图像序列编码生成H264视频流后,将待播放视屏的图像序列头信息发送至服务器30,其中,图像序列头信息包括待播放视屏的序列参数集和图像参数集,序列参数集中保存了一组编码视频序列的全局参数,所谓的编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列,而每一帧的编码后数据所依赖的参数保存于图像参数集中,然后,服务器30接收到图像序列头信息后,对图像序列头信息进行解析,得到待处理图像序列的基本格式信息,包括参考帧个数、视频级别、最大帧序列、帧序号在对应的条带中的偏移量以及双向参考帧图像帧的数量,并基于解析结果判断该待处理图像序列是否可以生成填充帧。具体的,请结合参阅图2c,当待处理图像序列中不存在双向参考帧且最大参考帧数量为1,时,则确定待处理图像序列可以生成填充帧,否则,则结束流程;进一步的,当确定待处理图像序列可以生成填充帧时,根据解析结果确定相应的填充帧生成模块,比如,熵编码模式为CAVLC模式,则选择CAVLC模式对应的填充帧生成模块,熵编码模式为CABAC模式,则选择CABAC模式对应的填充帧生成模块;再然后,基于选择的填充帧生成模块指定编码器生成一个前向参考帧,不做任何运动向量估计,所有宏块预测模式强制为P-skip模式(跳过模式),经过指定熵编码模式(CAVLC/CABAC)生成相应的填充帧,最后,填充帧信息打包模块将生成的填充帧、解析结果中的帧序号以及帧序号在对应的条带中的偏移量进行封装,得到填充帧信息,服务器30将图像序列头信息以及填充帧信息发送至第二终端20。
请参阅图2d,并结合参阅图2b,第二终端20接收服务器30发送的图像序列头信息以及填充帧信息,第二终端20对图像序列头信息进行解析,得到待处理图像序列的图像帧集合,然后,第二终端20将图像帧集合逐帧插入第二终端20的解码模块中,若解码时存在缓存队列,第二终端20则从填充帧信息中提取出由服务器30生成的填充帧,接着,第二终端20根据图像帧集合确定当前位于缓存队列首位的图像帧为目标图像帧,并基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,随后,第二终端20根据填充帧信息中的偏移量分别对缓存队列中的填充帧和目标图像帧的帧序号进行更新,以保证待处理图像序列画面的连续性,具体请参阅前面实施例,在此不再赘述;另外,若解码时不存在缓存队列,服务器30中的填充帧生成模块则将图像序列头信息发送中继代理服务器,以便第二终端20接收到中继代理服务器发送的图像序列头信息展示待处理图像序列,并且,若解码出的视频帧为填充帧,则不对填充帧进行渲染,并执行解码的步骤,以播放待播放视频。
为便于更好的实施本申请的图像处理方法,本申请还提供一种基于上述图像处理装置(简称播放装置)。其中名词的含义与上述图像处理方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3a,图3a为本申请提供的图像处理装置的结构示意图,其中该播放装置可以包括接收模块301、确定模块302、插入模块303、检测模块304以及渲染模块305,具体可以如下:
接收模块301,用于接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合。
其中,填充帧信息由服务器根据图像帧集合生成的,接收模块301可以通过有线网络或无线网络接收服务器发送的视频流数据,该视频流数据携带有填充帧信息以及待处理图像序列的图像帧集合,在接收服务器发送的视频流数据后,对该视频流数据进行解析,从而得到待处理图像序列的图像帧集合以及服务器根据图像帧集合生成的填充帧信息视频数据源的格式可以是AVC(Advanced Video Coding,即H.264编码标准),也可以是HEVC(High Efficiency Video Coding,即H.265编码标准)。
确定模块302,用于将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧。
为了便于视频内容的存储和传输,通常需要减少视频内容的体积,也就是需要将原始的视频图像经过压缩,压缩算法也简称编码格式。例如,可以采用H.264编码格式对视频图像进行压缩,确定模块302当接收到服务器发送的压缩后的视频内容,终端需要对压缩后的视频内容进行解压缩,即,确定模块302当需要播放视频时,首先需要定位出一帧关键帧的位置,才能实现视频的播放。
可选的,在一些实施例中,确定模块302具体可以用于:获取当前渲染的待处理图像序列的关键帧,得到目标关键帧,在图像帧集合确定目标关键帧的下一帧图像帧为目标图像帧,将目标图像帧存放至缓存队列的首位。
插入模块303,用于基于填充帧信息在目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧。
填充帧信息包含与图像帧集合中每个图像帧对应的填充帧,因此,插入模块303可以根据填充帧信息确定与目标图像帧对应的填充帧,并将确定的填充帧插入目标图像帧与目标图像帧的下一帧图像帧之间,以使得目标图像帧位于缓存队列的首位,且缓存队列中除所述目标图像帧之外,其余的帧为填充帧。
可选的,在一些实施例中,插入模块303具体可以包括:
第一提取单元,用于从填充帧信息中提取由服务器根据图像帧集合生成的填充帧帧集合;
选择单元,用于在填充帧帧集合中选择与目标图像帧对应的填充帧,得到目标填充帧;
插入单元,用于在目标图像帧与目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧。
可选的,在一些实施例中,插入单元具体可以用于:检测缓存队列对应的最大缓存数量,根据目标图像帧以及最大缓存数量,生成填充数量,在目标图像帧与目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧。
可选的,在一些实施例中,请参阅图3b,播放装置还可以包括赋值模块306,赋值模块306包括:
第二提取单元,用于提取目标图像帧的帧序号;
赋值单元,用于基于帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值。
可选的,在一些实施例中,赋值单元具体可以用于:从填充帧信息中提取在缓存队列中填充帧对应的偏移量,基于帧序号、在缓存队列中填充帧的位置以及在缓存队列中填充帧对应的偏移量,对缓存队列中填充帧的帧序号进行赋值。
检测模块304,用于当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕。
例如,具体的,若当前处理对象为关键帧时,则将当前处理对象的帧序号确定为起始序号,检测模块304基于当前处理对象的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值;若当前处理对象不为关键帧时,终端则获取当前处理对象的上一帧对应的帧序号,其中,当前处理对象的上一帧为填充帧,即,检测模块304根据上一帧填充帧的帧序号调整当前处理对象的帧序号,并基于当前处理对象调整后的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值,需要说明的是,若当前处理对象不为关键帧时,检测模块304基于当前处理对象调整后的帧序号以及在缓存队列中填充帧的位置,对缓存队列中填充帧的帧序号进行赋值之后,还需要检测赋值后的填充帧对应的帧序号是否大于预设阈值,若是,终端则将大于预设阈值的帧序号进行归零处理。
可选的,在一些实施例中,检测模块304具体可以用于:当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,得到当前处理对象,检测当前处理对象的类型,当检测结果指示当前处理对象为关键帧时,则以当前处理对象的帧序号为基准,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧;当检测到目标图像帧的帧类型不为关键帧时,则根据当前处理对象的上一帧对应的帧序号,调整当前处理对象的帧序号,并基于填充帧信息在目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧;执行将目标图像帧更新为目标图像帧的下一帧图像帧,得到当前处理对象的步骤,直至缓存队列中的所有图像帧均解码完毕。
渲染模块305,用于渲染解码后的图像帧,以播放待处理图像序列。
在本申请中,由于填充帧为P-skip帧,因此,渲染模块305对P-skip帧只解码不渲染,而对图像帧集合中的每一帧视频解码、渲染以及播放,最终达到降低对视频进行解码所带来的时延,提高图像处理的流畅度的目的。
本申请的接收模块301在接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合后,确定模块302将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,然后,插入模块303基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除目标图像帧之外,其余的帧为填充帧,检测模块304当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,最后,渲染模块305渲染解码后的图像帧,以播放待处理图像序列。本申请提供的图像处理装置,通过在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得目标图像帧位于缓存队列时,处于缓存队列的首位,并且,缓存队列中除目标图像帧之外,其余的帧为填充帧,提高终端对图像帧解码的速度,降低对视频进行解码所带来的时延,进而提高了图像处理的效率。
此外,本申请还提供一种电子设备,如图4所示,其示出了本申请所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,根据图像帧集合确定当前位于缓存队列首位的图像帧为目标图像帧,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,渲染解码后的图像帧,以播放待处理图像序列。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本申请在接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合后,将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,然后,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得缓存队列中除目标图像帧之外,其余的帧为填充帧,当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,最后,渲染解码后的图像帧,以播放待处理图像序列。本申请提供的图像处理方法,通过在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,以使得目标图像帧位于缓存队列时,处于缓存队列的首位,并且,缓存队列中除目标图像帧之外,其余的帧为填充帧,提高终端对图像帧解码的速度,降低对视频进行解码所带来的时延,进而提高了图像处理的效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请所提供的任一种图像处理方法中的步骤。例如,该指令可以执行如下步骤:
接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,将图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧,当检测到目标图像帧解码完成时,将目标图像帧更新为目标图像帧的下一帧图像帧,并执行基于填充帧信息在目标图像帧与目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至缓存队列中的所有图像帧均解码完毕,渲染解码后的图像帧,以播放待处理图像序列。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请所提供的任一种图像处理方法中的步骤,因此,可以实现本申请所提供的任一种图像处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图5,图5是本申请提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图5示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务可以包括:区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图6,图6是本申请提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块
以上对本申请所提供的一种图像处理方法、装置、电子设备以及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种图像处理方法,其特征在于,包括:
接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,所述填充帧信息由所述服务器根据所述图像帧集合生成的;
将所述图像帧集合存放至缓存队列中,并确定当前位于所述缓存队列首位的图像帧为目标图像帧;
在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧;
当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,并执行在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述缓存队列中的所有图像帧均解码完毕;
对解码后的图像帧进行处理,并展示处理结果。
2.根据权利要求1所述的方法,其特征在于,所述基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,包括:
从所述填充帧信息中提取由所述服务器根据所述图像帧集合生成的填充帧帧集合;
在所述填充帧帧集合中选择与所述目标图像帧对应的填充帧,得到目标填充帧;
在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧,包括:
检测所述缓存队列对应的最大缓存数量;
根据所述目标图像帧以及最大缓存数量,生成填充数量;
在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧。
4.根据权利要求3所述的方法,其特征在于,所述在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧之后,还包括:
提取所述目标图像帧的帧序号;
基于帧序号以及在所述缓存队列中填充帧的位置,对所述缓存队列中填充帧的帧序号进行赋值。
5.根据权利要求4所述的方法,其特征在于,所述基于帧序号以及在所述缓存队列中填充帧的位置,对所述缓存队列中填充帧的帧序号进行赋值,包括:
从所述填充帧信息中提取在所述缓存队列中填充帧对应的偏移量;
基于帧序号、在所述缓存队列中填充帧的位置以及在所述缓存队列中填充帧对应的偏移量,对所述缓存队列中填充帧的帧序号进行赋值。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述缓存队列中的所有图像帧均解码完毕,包括:
当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,得到当前处理对象;
检测所述当前处理对象的类型;
当检测结果指示所述当前处理对象为关键帧时,则以所述当前处理对象的帧序号为基准,基于填充帧信息在所述当前处理对象与所述当前处理对象的下一帧图像帧之间插入填充帧;
当检测到所述当前处理对象不为关键帧时,则根据所述当前处理对象的上一帧对应的帧序号,调整所述当前处理对象的帧序号,并基于填充帧信息在所述当前处理对象与所述当前处理对象的下一帧图像帧之间插入填充帧;
执行将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,得到当前处理对象的步骤,直至所述缓存队列中的所有图像帧均解码完毕。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述将所述图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,包括:
获取当前渲染的所述待处理图像序列的关键帧,得到目标关键帧;
在所述图像帧集合确定所述目标关键帧的下一帧图像帧为目标图像帧;
将所述目标图像帧存放至缓存队列的首位。
8.一种图像处理装置,其特征在于,包括:
接收模块,用于接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,所述填充帧信息由所述服务器根据所述图像帧集合生成的;
确定模块,用于将所述图像帧集合存放至缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧;
插入模块,用于基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧;
检测模块,用于当检测到所述目标图像帧解码完成时,将所述目标图像帧更新为所述目标图像帧的下一帧图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述缓存队列中的所有图像帧均解码完毕;
处理模块模块,用于对解码后的图像帧进行处理,并展示处理结果。
9.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1-7任一项所述图像处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述图像处理方法的步骤。
CN202010626281.7A 2020-07-01 2020-07-01 图像处理方法、装置、电子设备以及存储介质 Active CN111901666B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010626281.7A CN111901666B (zh) 2020-07-01 2020-07-01 图像处理方法、装置、电子设备以及存储介质
EP21834613.8A EP4044608A4 (en) 2020-07-01 2021-05-21 IMAGE PROCESSING METHOD AND APPARATUS, ELECTRONIC DEVICE AND RECORDING MEDIA
PCT/CN2021/095054 WO2022001469A1 (zh) 2020-07-01 2021-05-21 图像处理方法、装置、电子设备以及存储介质
JP2022552630A JP7471725B2 (ja) 2020-07-01 2021-05-21 画像処理方法、装置、電子機器及びコンピュータプログラム
US17/728,810 US20220254069A1 (en) 2020-07-01 2022-04-25 Image processing method and apparatus, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010626281.7A CN111901666B (zh) 2020-07-01 2020-07-01 图像处理方法、装置、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111901666A true CN111901666A (zh) 2020-11-06
CN111901666B CN111901666B (zh) 2021-05-11

Family

ID=73192864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010626281.7A Active CN111901666B (zh) 2020-07-01 2020-07-01 图像处理方法、装置、电子设备以及存储介质

Country Status (5)

Country Link
US (1) US20220254069A1 (zh)
EP (1) EP4044608A4 (zh)
JP (1) JP7471725B2 (zh)
CN (1) CN111901666B (zh)
WO (1) WO2022001469A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422873A (zh) * 2020-11-30 2021-02-26 Oppo(重庆)智能科技有限公司 插帧方法、装置、电子设备及存储介质
CN113240577A (zh) * 2021-05-13 2021-08-10 北京达佳互联信息技术有限公司 一种图像生成方法、装置、电子设备及存储介质
WO2022001469A1 (zh) * 2020-07-01 2022-01-06 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备以及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115278308B (zh) * 2022-07-28 2023-12-01 北京字跳网络技术有限公司 媒体流处理方法、装置、设备及存储介质
CN117150059B (zh) * 2023-10-27 2024-02-13 湖南视觉伟业智能科技有限公司 一种基于nvr设备的碎片化图像数据存储方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103780908A (zh) * 2014-02-25 2014-05-07 成都佳发安泰科技股份有限公司 一种高效的h264解码方法
CN104113778A (zh) * 2014-08-01 2014-10-22 广州金山网络科技有限公司 一种视频流解码方法及装置
CN104113777A (zh) * 2014-08-01 2014-10-22 广州金山网络科技有限公司 一种音频流解码方法及装置
US20160014423A1 (en) * 2012-11-28 2016-01-14 Cisco Technology, Inc. Fast Switching Hybrid Video Decoder

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970506B2 (en) 2001-03-05 2005-11-29 Intervideo, Inc. Systems and methods for reducing frame rates in a video data stream
US7822123B2 (en) * 2004-10-06 2010-10-26 Microsoft Corporation Efficient repeat padding for hybrid video sequence with arbitrary video resolution
US8107531B2 (en) 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US8218640B2 (en) * 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8848794B2 (en) 2007-12-18 2014-09-30 Humax Holdings Co., Ltd. Method and device for video coding and decoding
JP2016059015A (ja) 2014-09-12 2016-04-21 株式会社東芝 画像出力装置
US10567788B2 (en) 2017-04-21 2020-02-18 Zenimax Media Inc. Systems and methods for game-generated motion vectors
CN110366033B (zh) * 2019-07-17 2021-10-22 腾讯科技(深圳)有限公司 一种视频播放方法、装置、设备及存储介质
CN111901666B (zh) * 2020-07-01 2021-05-11 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备以及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160014423A1 (en) * 2012-11-28 2016-01-14 Cisco Technology, Inc. Fast Switching Hybrid Video Decoder
CN103780908A (zh) * 2014-02-25 2014-05-07 成都佳发安泰科技股份有限公司 一种高效的h264解码方法
CN104113778A (zh) * 2014-08-01 2014-10-22 广州金山网络科技有限公司 一种视频流解码方法及装置
CN104113777A (zh) * 2014-08-01 2014-10-22 广州金山网络科技有限公司 一种音频流解码方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022001469A1 (zh) * 2020-07-01 2022-01-06 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备以及存储介质
JP7471725B2 (ja) 2020-07-01 2024-04-22 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 画像処理方法、装置、電子機器及びコンピュータプログラム
CN112422873A (zh) * 2020-11-30 2021-02-26 Oppo(重庆)智能科技有限公司 插帧方法、装置、电子设备及存储介质
CN112422873B (zh) * 2020-11-30 2022-09-16 Oppo(重庆)智能科技有限公司 插帧方法、装置、电子设备及存储介质
CN113240577A (zh) * 2021-05-13 2021-08-10 北京达佳互联信息技术有限公司 一种图像生成方法、装置、电子设备及存储介质
CN113240577B (zh) * 2021-05-13 2024-03-15 北京达佳互联信息技术有限公司 一种图像生成方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111901666B (zh) 2021-05-11
US20220254069A1 (en) 2022-08-11
EP4044608A1 (en) 2022-08-17
JP7471725B2 (ja) 2024-04-22
WO2022001469A1 (zh) 2022-01-06
EP4044608A4 (en) 2023-01-04
JP2023517003A (ja) 2023-04-21

Similar Documents

Publication Publication Date Title
CN111901666B (zh) 图像处理方法、装置、电子设备以及存储介质
CN111135569B (zh) 云游戏处理方法、装置、存储介质与电子设备
CN112533059B (zh) 图像渲染方法、装置、电子设备以及存储介质
US9064298B2 (en) Segment-based encoding system using residue coding by basis function coefficients
US20050123042A1 (en) Moving picture streaming file, method and system for moving picture streaming service of mobile communication terminal
CN110198492B (zh) 一种视频的水印添加方法、装置、设备及存储介质
CN111372145B (zh) 一种多视点视频的视点切换方法和系统
CN110784740A (zh) 视频处理方法、装置、服务器及可读存储介质
CN105262825A (zh) 基于h.265的spice云桌面传输和展现方法及系统
US20210279916A1 (en) Generation of a sequence of textures for video delivery
US20030035484A1 (en) Segmenting encoding system with image segmentation performed at a decoder and encoding scheme for generating encoded data relying on decoder segmentation
TWI605704B (zh) 重組影像檔案的方法
KR101034966B1 (ko) 3차원 그래픽을 2차원 비디오로 인코딩하는 방법과 그래픽-비디오 인코더
KR101517959B1 (ko) 적응형 스트리밍 방법
CN111935500B (zh) 视频解码方法、装置及电子设备
US20130251022A1 (en) Signaling of end of slices
JP2017192080A (ja) 画像圧縮装置、画像復号装置、画像圧縮方法及び画像圧縮プログラム
CN110401835B (zh) 图像处理方法及装置
CN106534137B (zh) 媒体流传输方法及装置
GB2584747A (en) Generation of a sequence of textures for video delivery
JP7304419B2 (ja) 送信装置、送信方法及びプログラム
KR101499194B1 (ko) 적응형 스트리밍 방법
US20220207120A1 (en) Apparatus and method for embedding plurality of forensic marks
US20230360277A1 (en) Data processing method and apparatus for immersive media, device and storage medium
WO2022234575A1 (en) System and method for dynamic video compression

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