CN111669596B - 视频压缩方法及装置、存储介质、终端 - Google Patents

视频压缩方法及装置、存储介质、终端 Download PDF

Info

Publication number
CN111669596B
CN111669596B CN202010555207.0A CN202010555207A CN111669596B CN 111669596 B CN111669596 B CN 111669596B CN 202010555207 A CN202010555207 A CN 202010555207A CN 111669596 B CN111669596 B CN 111669596B
Authority
CN
China
Prior art keywords
frame
compressible
queue
gop
compression
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
CN202010555207.0A
Other languages
English (en)
Other versions
CN111669596A (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN202010555207.0A priority Critical patent/CN111669596B/zh
Publication of CN111669596A publication Critical patent/CN111669596A/zh
Application granted granted Critical
Publication of CN111669596B publication Critical patent/CN111669596B/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/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/177Methods 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 a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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
    • H04N21/440263Processing 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 by altering the spatial resolution, e.g. for displaying on a connected PDA

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种视频压缩方法及装置、存储介质、终端,所述方法包括:根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数;根据阶层数确定GOP的数量;根据层次预测结构确定各GOP的树状结构,其中,树状结构用于描述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;将压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,多核处理器的各个核并行处理的图像的帧数保持一致。通过本发明方案能够确保基于多核处理器的视频压缩结果与基于单核处理器的压缩结果保持一致,各核的运算量基本均衡且压缩期间存储量更少,延迟也得到极大地降低。

Description

视频压缩方法及装置、存储介质、终端
技术领域
本发明涉及视频处理领域,具体地涉及一种视频压缩方法及装置、存储介质、终端。
背景技术
慢动作视频拍摄已普遍使用于日常生活的场景。若希望拍出慢动作视频,则视频每秒至少要压缩120帧以上(以分辨率超过1080P为例)。以目前的单一中央处理器或单一知识产权(Intellectual Property,简称IP)核是无法达到实时压缩的,此时就需要多核来处理。
压缩完成的慢动作视频除了慢动作播放模式外,需要提供正常播放速度的需求,如120帧视频每4帧提取1帧出来播放。由于视频压缩帧与帧之间是有高度相关性的,虽然每4帧只需要1帧播放,但是4帧都需要通过解码器来解码,因此层次预测结构(HierarchicalPrediction Structure)被提出来解决这个问题。
在多核并行视频编码领域,现有主要的算法包括:画面组(group ofpicture,简称GOP)级并行、帧级(frame-level)并行以及宏块级(MacroBlock-level,简称MB-level)并行。
GOP级并行是指,将视频划分为多个GOP,各GOP之间不具有关联性,也即某个GOP内的图像在压缩时不会参考其他GOP内的图像信息。所以,GOP级并行的方法是利用GOP与GOP完全独立的特性,多核处理器的每个核负责压缩一个GOP。GOP并行算法的优点是压缩码流大小与单核相同,每核算量能平均分配,N核处理器(即N核处理器)的计算时间几乎可以减少N倍。缺点是存储量巨大,如N核处理器需要N×GOP帧数的存储空间。
帧级并行的方法是观察同一个GOP内帧与帧的相关性,从中找出独立的帧进行压缩处理。帧级并行的优点是压缩的码流大小与单核相同,缺点是每个核的计算量会因为关联性而造成不均衡。
宏块级并行主要为波阵面并行处理(Wavefront Parallel Processing,简称WPP),主要使用行与行间的宏块独立效应来并行计算。WPP的最大优势在于只需要一帧的存储空间。在自适应可变长编码(Context-based Adaptive VariableLength Coding,简称CAVLC)场景下,WPP算法的压缩码流大小与单核相同。但现有的视频压缩标准多使用自适应二进制算术编码(Context-based AdaptiveBinary Arithmetic Coding,简称CABAC),此时WPP算法的压缩码流大小会与单核不同,在要求与单核编码码流相同的限制场景下WPP并不适用。
综上,现有的视频压缩方法各有缺陷,有的无法确保基于多核处理器的压缩结果与基于单核处理器的压缩结果相一致,有的在压缩期间多核处理器的各核运算量不均衡,有的则在压缩期间需要大量的存储空间。这些缺陷最终导致视频压缩结果差,或压缩过程中运算量大且存储量大。
发明内容
本发明解决的技术问题是如何更好地减少压缩过程中的运算量和存储量,同时确保基于多核处理器的压缩结果与基于单核处理器的压缩结果保持一致。
为解决上述技术问题,本发明实施例提供一种视频压缩方法,包括:根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
可选的,所述根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数包括:基于如下公式计算得到所述阶层数:N=log2(X/Y)+1;其中,N为所述阶层数;X为所述最大播放帧率;Y为所述最小播放帧率。
可选的,所述根据所述阶层数确定GOP的数量包括:根据所述阶层数确定每一GOP包括的多帧图像的帧数,记作单个GOP的帧数;将所述视频的总帧数除以所述单个GOP的帧数,以得到所述GOP的数量。
可选的,所述层次预测结构每层包括图像的帧数根据所述视频的播放帧率确定。
可选的,所述层次预测结构中,层级越高,所述层级包括的图像的帧数越少,对应的播放帧率越小。
可选的,所述根据所述层次预测结构确定各GOP的树状结构包括:对于每一GOP,将所述GOP包括的多帧图像中帧号最小的图像以及对应的可压缩帧数确定为所述树状结构的根节点;将所述层次预测结构中与所述帧号最小的图像存在关联性的图像以及对应的可压缩帧数确定为所述根节点的子节点;以每一子节点为父节点,将所述层次预测结构中与作为所述父节点的图像存在关联性的图像以及对应的可压缩帧数确定为所述父节点的子节点。
可选的,所述树状结构的阶度根据所述阶层数确定。
可选的,对于相邻的两个GOP的树状结构,其中后一个GOP的树状结构的根节点为前一个GOP的树状结构的根节点的其中一个子节点。
可选的,每一GOP的树状结构的结构相同,且相同位置的节点的可压缩帧数相同,相同位置的节点的帧号不同。
可选的,所述基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列包括:获取当前时间点的可压缩队列和可压缩帧数;比较所述可压缩帧数与所述多核处理器单位时间点的最大可压缩帧数;若所述可压缩帧数大于所述多核处理器单位时间点的最大可压缩帧数,则基于所述当前时间点的可压缩队列获取至少一个候选压缩队列和候选可压缩帧数;将至少一个候选可压缩帧数中,数值最小且大于所述多核处理器单位时间点的最大可压缩帧数的候选可压缩帧数对应的候选压缩队列,确定为所述当前时间点的压缩队列。
可选的,所述基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列还包括:若所述可压缩帧数小于等于所述多核处理器单位时间点的最大可压缩帧数,则将所述可压缩队列作为所述压缩队列。
可选的,所述基于所述当前时间点的可压缩队列获取至少一个候选压缩队列和候选可压缩帧数包括:取所述可压缩队列中可压缩帧数最大、数量为所述多核处理器单位时间点的最大可压缩帧数的图像生成初始候选压缩队列,所述可压缩队列中未被选入所述初始候选压缩队列的图像生成初始候选未压缩队列;按照可压缩帧数由大到小的顺序,将所述初始候选未压缩队列中的图像,逐个取代所述初始候选压缩队列中的图像,以得到所述至少一个候选压缩队列和候选可压缩帧数候选压缩队列。
可选的,所述获取当前时间点的可压缩队列和可压缩帧数包括:根据上一时间点的GOP帧间分配操作结果确定所述当前时间点的可压缩队列和可压缩帧数。
可选的,所述根据上一时间点的GOP帧间分配操作结果确定所述当前时间点的可压缩队列和可压缩帧数包括:将所述上一时间点的压缩队列中的图像在所述树状结构中的子节点添加至所述上一时间点的未压缩队列,以得到所述当前时间点的可压缩队列以及可压缩帧数,其中,所述上一时间点的未压缩队列包括上一时间点的可压缩队列中未被选入所述上一时间点的压缩队列的图像。
可选的,在基于多个GOP的树状结构执行GOP帧间分配操作期间,所述多核处理器单位时间点的最大可压缩帧数可变。
为解决上述技术问题,本发明实施例还提供一种视频压缩装置,包括:第一确定模块,用于根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;第二确定模块,用于根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;第三确定模块,用于根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;GOP帧间分配模块,用于基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;并行压缩模块,用于将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。
为解决上述技术问题,本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供一种视频压缩方法,包括:根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
较之现有基于GOP并行或帧间并行两者之一的方式进行视频压缩处理的技术方案,本实施例方案能够确保基于多核处理器的视频压缩结果与基于单核处理器的压缩结果保持一致,各核的运算量基本均衡且压缩期间存储量更少,延迟也得到极大地降低。具体而言,利用层次预测结构的特性规划每个GOP的树状结构,依据树状结构执行GOP帧间分配操作以设计多核处理器的并行算法。在基于GOP并行和层次预测结构划分得到多个GOP后,为各核分配压缩队列时是参考帧间并行的逻辑实现的,即在执行GOP间分配操作时不考虑GOP之间没有关联性这一点,使得下一个GOP中的图像能够被尽早列入上一个GOP中图像的压缩队列。由此,利用层次预测结构的特性,混合帧级并行及GOP并行的优势来实现更高质量的并行视频压缩计算。其中,基于GOP并行确保每个核的计算量得到平均分配,同时利用帧级并行来减少存储空间及延迟,且与单核的压缩码流大小一致。进一步,本实施例所述方案利用GOP区域化的方式来降低帧间分配复杂度,对于任意阶层数的层次预测结构及任意数量的核均能快速寻找出最优解。
附图说明
图1是本发明实施例一种视频压缩方法的流程图;
图2是本发明实施例一种层次预测结构的示意图;
图3是图1中步骤S103的一个具体实施方式的流程图;
图4是采用图3所示方法基于图2所示层次预测结构确定的GOP的树状结构;
图5是图1中步骤S104的一个具体实施方式的流程图;
图6是图5中步骤S1043的一个具体实施方式的流程图;
图7是本发明实施例一种视频压缩装置的结构示意图。
具体实施方式
如背景技术所言,高帧率视频压缩通常为每秒压缩120帧以上,层次预测结构是目前高帧率视频压缩最常使用的帧级结构。高帧率视频压缩如要实时计算,则所需的算力相当高,因此高帧率视频压缩通常需要两个以上的核来实现。其中,多核可以指多个中央处理器(Central Processing Unit,简称CPU)或多个计算硬件(IP)。而使用多核运算得到视频压缩结果往往会与使用单核运算得到的视频压缩结果不同,或是需要使用大量的存储空间来达到与使用单核运算相同的压缩结果。
GOP并行算法是一种多核处理器的各个核的运算量平衡且与单核压缩结果相同的计算方法。但是,如果多核数量为n,但压缩期间所需要的原始帧存储量就需要n×GOP数量,而且播放也会延迟n×GOP帧的时间。
为解决上述技术问题,本发明实施例提供一种视频压缩方法,包括:根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
本实施例方案能够确保基于多核处理器的视频压缩结果与基于单核处理器的压缩结果保持一致,各核的运算量基本均衡且压缩期间存储量更少,延迟也得到极大地降低。具体而言,利用层次预测结构的特性规划每个GOP的树状结构,依据树状结构执行GOP帧间分配操作以设计多核处理器的并行算法。在基于GOP并行和层次预测结构划分得到多个GOP后,为各核分配压缩队列时是参考帧间并行的逻辑实现的,即在执行GOP间分配操作时不考虑GOP之间没有关联性这一点,使得下一个GOP中的图像能够被尽早列入上一个GOP中图像的压缩队列。由此,利用层次预测结构的特性,混合帧级并行及GOP并行的优势来实现更高质量的并行视频压缩计算。其中,基于GOP并行确保每个核的计算量得到平均分配,同时利用帧级并行来减少存储空间及延迟,且与单核的压缩码流大小一致。进一步,本实施例所述方案利用GOP区域化的方式来降低帧间分配复杂度,对于任意阶层数的层次预测结构及任意数量的核均能快速寻找出最优解。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种视频压缩方法的流程图。本实施方案可以应用于视频处理领域,如视频编码领域。本实施例方案可以由涉及视频编码的智能设备执行,如具备慢动作视频拍摄功能的手机、平板电脑IPAD等。
具体地,参考图1,本实施例所述视频压缩方法可以包括如下步骤:
步骤S101,根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;
步骤S102,根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;
步骤S103,根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;
步骤S104,基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;
步骤S105,将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
在一个具体实施中,所述视频可以是实时拍摄得到的。例如,本实施例方案可以是在采集得到所述视频的过程中或者视频采集完成后立即、实时地执行的。
在一个具体实施中,所述最大播放帧率和最小播放帧率可以是预先设定的数值。例如,可以是根据用户播放所述视频时选择的显示需求确定的。
在一个具体实施中,可以计算所述最大播放帧率和最小播放帧率的比例为2的几次方,从而确定所述阶层数。
具体地,所述步骤S101可以包括步骤:基于公式(1)计算得到所述阶层数:
N=log2(X/Y)+1 (1)
其中,N为所述阶层数;X为所述最大播放帧率;Y为所述最小播放帧率。
例如,最大播放帧率为240每秒传输帧数(Frames Per Second,简称fps),最小播放帧率为30fps,则所述阶层数为4。接下来以4阶层的层次预测结构为例进行详细阐述,在实际应用中,所述层次预测结构的阶层数可以不限于4阶层,如5阶层、6阶层、3阶层等的层次预测结构均可适用本实施例方案。
在一个具体实施中,所述步骤S101中,在确定阶层数后可以得到如图2所示的层次预测结构的示意图(简称层次预测结构图),图2以4阶的层次预测结构为例进行展示。需要注意的是,图2仅示出视频的第0帧到第16帧图像的层次预测结构图,在实际应用中,可以参考图2所示结构继续往下绘制所述视频的剩余帧的层次预测结构图。
具体地,参考图2,4阶层的层次预测结构由上到下(即由高到低)包括阶层0(Level0)、阶层1(Level 1)、阶层2(Level 2)和阶层3(Level 3)。层次预测结构的每一阶层对应一个层级,其中,阶层0的层级最高,阶层3的层级最低。
图2中的每个块代表视频的一帧图像,每个块内的数值为该帧图像在所述视频中的显示顺序(可理解为该帧图像的帧号),箭头指示的方向为该帧图像的参考帧(即压缩该帧图像时需要参考其箭头所指向的图像)。
例如,第5帧图像202与第6帧图像203的箭头204指向的第4帧图像201为所述第5帧图像202和第6帧图像203的参考帧。
又例如,第7帧图像208的箭头指向的第6帧图像203为所述第7帧图像208的参考帧。
又例如,第1帧图像、第2帧图像、第4帧图像201和第8帧图像206的箭头指向的第0帧图像205为这四帧图像的参考帧。
又例如,第15帧图像209的箭头指向的第14帧图像为所述第15帧图像209的参考帧。
又例如,第9帧图像、第10帧图像、第12帧图像和第16帧图像207的箭头指向的第8帧图像206为这四帧图像的参考帧。
在一个具体实施中,所述层次预测结构每层包括图像的帧数可以根据所述视频的播放帧率确定。
具体而言,所述层次预测结构中,层级越高,所述层级包括的图像的帧数越少,对应的播放帧率越小。也即,播放帧率越大,对应的需要解码的层级越低,该层级包括的图像的帧数越多。也就是说,对于层次预测结构中的每一阶层,所述阶层的层级越高,所述阶层包括的图像的帧数越少,对应的播放帧率越小。
例如,当显示需求为30fps(即最小播放帧率)时,处理器(如解码器)只需解码第0帧图像205、第8帧图像206和第16帧图像207即可,即只解码层级0(即阶层0)的图像,避免了循序编码需要解码器解出所有帧的问题。
又例如,当显示需求为240fps(即最大播放帧率)时,处理器需要解码层级0到层级3(即阶层3)的所有图像,即解码第0帧图像205到第15帧图像209。
再例如,当显示需求为60fps时,则处理器需要解码层级0及层级1(即阶层1)的图像,即解码第0帧图像205、第4帧图像201、第8帧图像206以及第12帧图像。
再例如,当显示需求为120fps时,则处理器需要解码层级0、层级1及层级2(即阶层2)的图像,即第0帧图像205、第2帧图像、第4帧图像201、第6帧图像203、第8帧图像206、第10帧图像、第12帧图像以及第14帧图像。
在一个具体实施中,所述步骤S102可以包括步骤:根据所述阶层数确定每一GOP包括的多帧图像的帧数,记作单个GOP的帧数;将所述视频的总帧数除以所述单个GOP的帧数,以得到所述GOP的数量。
例如,可以根据公式(2)计算得到单个GOP的帧数:
Z=2(N-1) (2)
其中,Z为所述单个GOP的帧数;N为所述阶层数。
以4阶层为例,对应的单个GOP的帧数为8。
所述步骤S102中,基于所述层次预测结构的特性确定多个GOP。以最高阶层层级0(Level 0)的图像为每个GOP的起始帧图像,接着依据帧号顺序加入同一GOP直到下一个GOP的起始帧图像的前一帧图像。
以图2所示4阶层的层次预测结构为例,第0个GOP包括第0帧图像205到第7帧图像208之间的共8帧图像,第1个GOP包括第8帧图像306到第15帧图像209之间共8帧图像,以此类推。
在一个具体实施中,所述每一帧图像对应的可压缩帧数是指,每一帧图像在当前时间点被压缩后,在下一时间点的可压缩帧数。也即,图2所示层次预测结构图中作为参考帧的图像对应的可压缩帧数为,与所述参考帧存在箭头连接关系的图像的帧数。换言之,所述每一帧图像对应的可压缩帧数为所述层次预测结构中需要参考所述每一帧图像的图像帧数。例如,第0帧图像205的可压缩帧数为4帧,即层次预测结构中需要参考第0帧图像的图像的帧数,参考图2可知需要参考第0帧图像205的图像分别为第1、2、4和8帧图像。
在一个具体实施中,参考图3,所述步骤S103可以包括如下步骤:
步骤S1031,对于每一GOP,将所述GOP包括的多帧图像中帧号最小的图像以及对应的可压缩帧数确定为所述树状结构的根节点;
步骤S1032,将所述层次预测结构中与所述帧号最小的图像存在关联性的图像以及对应的可压缩帧数确定为所述根节点的子节点;
步骤S1033,以每一子节点为父节点,将所述层次预测结构中与作为所述父节点的图像存在关联性的图像以及对应的可压缩帧数确定为所述父节点的子节点。
以图2所示第0帧图像205到第16帧图像207的层次预测结构为例,通过执行所述步骤S1031至步骤S1033,可以得到图4所示的第0个GOP和第1个GOP的树状结构。
具体地,父节点(parent node)与子节点(children node)是指两个节点之间只差一个阶度。例如,参考图4,第0帧图像301及其对应的可压缩帧数302为第1帧图像303及其可压缩帧数、第2帧图像304及其可压缩帧数、第4帧图像305及其可压缩帧数以及第8帧图像306及其可压缩帧数的父节点。又例如,第5帧图像及其可压缩帧数为第4帧图像305及其可压缩帧数的子节点。
进一步,拥有同一父节点的子节点可以相互称作对方的兄弟节点(siblingnode)。例如,参考图4,第1帧图像303及其可压缩帧数、第2帧图像304及其可压缩帧数与第4帧图像305及其可压缩帧数互为兄弟节点。
进一步,所述步骤S1032可以包括:将所述层次预测结构中与所述帧号最小的图像直接存在关联性的图像以及对应的可压缩帧数确定为所述根节点的子节点。
例如,基于图2所示层次预测结构图,第0帧图像301及其可压缩帧数302为第0个GOP的树状结构的第一个父节点(即第0个GOP的根节点)。其中,301为压缩帧号,302为目前这帧图像压缩后下一个时间点的可压缩帧数。
进一步,第0帧图像301压缩后下一个时间可以压缩的图像:第1帧图像303、第2帧图像304及第4帧图像305(图2中以201标记)放入第0帧图像301的子节点并分别填入可压缩帧数。参考图2可知,第0帧图像301为第1帧图像303、第2帧图像304及第4帧图像305的参考帧。
进一步,继续参考图2,由于第0帧图像301(图2中以205标记)还是第8帧图像306(图2中以206标记)的参考帧。因此,第0帧图像301的最后一个子节点为下一个GOP的根节点(即第1个GOP中的第8帧图像306)。
基于前述逻辑依序完成GOP内所有图像的树状节点,就可以得到各GOP的树状结构。
在一个具体实施中,所述树状结构的阶度可以根据所述阶层数确定。例如,对比图2和图4可知,各GOP的树状结构的阶度与层次预测结构的阶层数保持一致。
在一个具体实施中,对于相邻的两个GOP的树状结构,其中后一个GOP的树状结构的根节点为前一个GOP的树状结构的根节点的其中一个子节点。如图4中第8帧图像306为第0帧图像301的子节点之一。由此,在划分得到多个GOP的基础上,打破GOP间无关联性的限制,使得下一个GOP的图像能够更早的被压缩。
在一个具体实施中,每一GOP的树状结构的结构相同,且相同位置的节点的可压缩帧数相同,相同位置的节点的帧号不同。因为此时各GOP采用相同的压缩方式。参考图4,第0个GOP和第1个GOP的结构是一致的,且相同位置的可压缩帧数也是一致的。例如,第1帧图像303和第9帧图像位于各自GOP的树状结构的相同位置,这两个图像的可压缩帧数均为0。
在一个具体实施中,参考图5,所述步骤S104可以包括如下步骤:
步骤S1041,获取当前时间点的可压缩队列和可压缩帧数;
步骤S1042,比较所述可压缩帧数与所述多核处理器单位时间点的最大可压缩帧数;
若所述步骤S1042的比较结果表明所述可压缩帧数大于所述多核处理器单位时间点的最大可压缩帧数,则执行步骤S1043,基于所述当前时间点的可压缩队列获取至少一个候选压缩队列和候选可压缩帧数;
进一步,在执行所述步骤S1043后,还可以包括步骤S1045,将至少一个候选可压缩帧数中,数值最小且大于所述多核处理器单位时间点的最大可压缩帧数的候选可压缩帧数对应的候选压缩队列,确定为所述当前时间点的压缩队列。
进一步,所述步骤S104还可以包括:
若所述步骤S1042的比较结果表明所述可压缩帧数小于等于所述多核处理器单位时间点的最大可压缩帧数,则执行步骤S1044,将所述可压缩队列作为所述压缩队列。
具体地,所述候选可压缩帧数可以指,以对应的候选压缩队列作为当前时间点的压缩队列时下一时间点的可压缩帧数。所述候选可压缩帧数可以用于衡量当前时间点确定的压缩队列是否为下一时间点预留足够数量的可压缩帧数,足够数量是指下一时间点的可压缩帧数至少确保多核处理器的每个核至少能平均分配到一张图像。
例如,可以基于公式F(t+1)=F(t)+S(w,t)-w计算得到所述候选可压缩帧数。其中,S(w,t)为时间点t的压缩队列中可压缩帧数总和,F(t+1)为下一时间点t+1的可压缩帧数,F(t)为时间点t的可压缩帧数,w为所述多核处理器单位时间点的最大可压缩帧数。
更为具体地,所述GOP帧间分配操作可以用于最优化地平均多核处理器各个核的运算量,且在确保每个核都分配到至少一帧图像的前提下,使得每个核的帧数存储量尽量小。
进一步地,所述多核处理器单位时间点的最大可压缩帧数可以指每个核在单位时间点能够压缩的图像的帧数总和。假设n核处理器的每个核各处理一帧图像后同步,则所述多核处理器单位时间点的最大可压缩帧数为n。假设n核处理器的每个核处理m帧图像后才同步,则所述多核处理器单位时间点的最大可压缩帧数为m×n。
在所述步骤S1041中,首次执行GOP帧间分配操作时,对第0帧图像执行初始化操作,以初始化可压缩队列和可压缩帧数。例如,设定第0帧图像的可压缩帧数F(0)=1,初始化阶段的可压缩队列为{0},其中数字代表图像的帧号。也即,初始只有第0帧图像可以压缩。相应的,最终生成的压缩队列为{0},未压缩队列为{无},F(1)=1+(4)-1=4(只压缩1帧)。其中,未压缩队列包括所述可压缩队列中未被选入压缩队列的图像。
在所述步骤S1042中,比较当前时间点t的可压缩帧数F(t)与所述多核处理器单位时间点的最大可压缩帧数的大小关系。其中,t可以表示已经执行了几次GOP帧间分配操作;F(t)可以表示第t次GOP帧间分配操作的可压缩帧数,具体为t次之前已经处理的所有图像的可压缩帧数之和。
在一个具体实施中,若当前时间点t的可压缩帧数F(t)小于等于所述多核处理器单位时间点的最大可压缩帧数,则执行所述步骤S1044。
例如,可以将所述可压缩队列中的图像按照帧号由小到大的顺序排成最小帧号队列,然后将所述最小帧号队列中的所有图像均列入所述压缩队列。
在一个具体实施中,若当前时间点t的可压缩帧数F(t)大于所述多核处理器单位时间点的最大可压缩帧数,则执行所述步骤S1043和步骤S1045。
具体地,参考图6,所述步骤S1043可以包括如下步骤:
步骤a11,取所述可压缩队列中可压缩帧数最大、数量为所述多核处理器单位时间点的最大可压缩帧数的图像生成初始候选压缩队列,所述可压缩队列中未被选入所述初始候选压缩队列的图像生成初始候选未压缩队列;
步骤a12,按照可压缩帧数由大到小的顺序,将所述初始候选未压缩队列中的图像,逐个取代所述初始候选压缩队列中的图像,以得到所述至少一个候选压缩队列和候选可压缩帧数。
例如,在所述步骤a11中,可以将所述可压缩队列中的图像按照对应的可压缩帧数由大到小的顺序重新排列,可压缩帧数相同的多个图像按照帧号大到小的顺序排列,由此得到最大帧数队列。进一步,将所述最大帧数队列中排序前w位的图像放入所述初始候选压缩队列,剩余的图像放入所述初始候选未压缩队列,其中,w为所述多核处理器单位时间点的最大可压缩帧数的数量。
在一个典型的应用场景中,假设第1次(初始化未计入)GOP帧间分配操作的可压缩帧数F(1)=4,所述多核处理器单位时间点的最大可压缩帧数为2,当前时间点的可压缩队列为{8,4,2,1}。通过执行所述步骤a11可以得到初始候选压缩队列{8,4}和初始候选未压缩队列{2,1},初始候选压缩队列的候选可压缩帧数F(2)=4+(4+2)-2=8。
虽然初始候选压缩队列的候选可压缩帧数(F(2)=8)大于多核处理器单位时间点的最大可压缩帧数(w=2),但该初始候选压缩队列会造成存储帧数过多,例如,需存储帧数=压缩队列最大帧号-压缩队列或未压缩队列最小帧号+1,所以需要从初始候选未压缩队列中作调整。
在所述步骤s12中,可以循环地将初始候选未压缩队列中可压缩帧数最大的图像取代初始候选压缩队列中可压缩帧数最大的图像。每替换一次,更新对应的S(w,t)和F(t+1)。在循环期间更新得到的F(t+1)即为所述候选可压缩帧数,对应的队列即为所述候选压缩队列。
例如,在本场景中,通过执行所述步骤a12,把第2帧图像取代第8帧,可以得到候选压缩队列{4,2}以及候选可压缩帧数F(2)=4+3-2=5;接下来,把第1帧图像取代第4帧图像,可以得到候选压缩队列{2,1}以及候选可压缩帧数F(2)=4+1-2=3。
通过执行所述步骤S1045,从步骤a12循环更新得到的所有候选可压缩帧数中,选择大于所述多核处理器单位时间点的最大可压缩帧数,同时又是最小的候选可压缩帧数作为所述当前时间点的可压缩队列和可压缩帧数。
例如,在本场景中,通过执行所述步骤S1045,可以确定当前时间点最终产生的压缩队列为{2,1},未压缩队列为{8,4}。相应的,F(2)=4+(1+0)-2=3(压缩2帧)。
由此,通过执行步骤S1043和步骤S1044,得到最小存储帧数的压缩队列{2,1},相较于初始候选压缩队列{8,4}的存储帧数为8帧,最终确定的压缩队列{2,1}的存储帧数为2帧。且这样分配对应的F(2)=4+1-2=3,下一时间点可压缩帧数3是可以被多核处理器平均分配的,即可以从三帧选两帧来压缩。
进一步,通过执行当前时间点的GOP帧间分配操作,优选地使得下一时间点最终生成的压缩队列的数量等于或至少尽量趋近于多核处理器单位时间点的最大可压缩帧数。
在一个具体实施中,在得到当前时间点的压缩队列后,可以继续获取下一时间点的压缩队列,获取的下一时间点的压缩队列重新执行所述步骤S1041至步骤S1045(或步骤S1044),以在下一时间点到来时针对上一时间点确定的可压缩队列和可压缩帧数执行GOP帧间分配操作。
也即,对于每一当前时间点而言,所述当前时间点的可压缩队列和可压缩帧数可以是根据上一时间点的GOP帧间分配操作结果确定的。
具体地,上一次GOP帧间分配操作期间,在执行所述步骤S1045或步骤S1044之后,还可以执行步骤:将所述上一时间点的压缩队列中的图像在所述树状结构中的子节点添加至所述上一时间点的未压缩队列,以得到所述当前时间点的可压缩队列以及可压缩帧数,其中,所述上一时间点的未压缩队列包括上一时间点的可压缩队列中未被选入所述上一时间点的压缩队列的图像。
例如,在将子节点加入所述可压缩队列时,各子节点的图像的帧号顺序可以是任意排列的。
仍以前述应用场景为例,第2次GOP帧间分配操作期间,F(2)=3,当前时间点的可压缩队列为{8,4,3}(其中第8帧图像和第4帧图像是第1次帧间分配操作确定的未压缩队列,第3帧图像是第1次帧间分配操作确定的压缩队列中第2帧图像在树状结构中的子节点)。通过执行步骤S1042至步骤S1045,可以得到第2次GOP帧间分配操作结果,即压缩队列为{4,3},未压缩队列{8},F(3)=3+(2+0)-2=3(压缩2帧)。
第3次GOP帧间分配操作期间,F(3)=3,当前时间点的可压缩队列为{8,6,5}。通过执行步骤S1042至步骤S1045,可以得到第3次GOP帧间分配操作结果,即压缩队列为{6,5},未压缩队列{8},F(4)=3+(1+0)-2=2(压缩2帧)。
在一个具体实施中,在基于多个GOP的树状结构执行GOP帧间分配操作期间,所述多核处理器单位时间点的最大可压缩帧数是可变的。
例如,在采用本实施例所述方案压缩视频期间,执行本实施例所述方案的智能设备的多核处理器中有新的核切换至空闲状态,则可以及时调用空闲的核加入并行压缩所述压缩队列中的图像。
又例如,若多核处理器中有部分核在视频压缩期间被调用去处理其他进程,则可以基于剩余的核执行GOP帧间分配操作。
相应的,当多核处理器单位时间点的最大可压缩帧数发生变化时,该变化可以自下一次GOP帧间分配操作开始起效,但在当前次GOP帧间分配操作时就要考虑到w的变化,以更合理的确定当前时间点的压缩队列以及确保下一时间点能够有足够多的图像供核数调整后的多核处理器进行压缩处理。
假设W(3)=2而W(4)=3,则时间点3时多核处理器会压缩2帧图像(每个核各压缩1帧),在时间点4时多核处理器会压缩3帧(每个核各压缩1帧)。相应的,第三次帧间分配操作就是要确认时间点3需要压缩哪2帧图像,并确保时间点4能够有3帧图像可以压缩。因此,F(t+1)的计算式使用的是W(3)减去时间点3压缩的帧数,而计算得到的候选可压缩帧数需要大于W(4)。也就是说,第三次GOP帧间分配操作可以依据当前时间点的W(3)决定候选压缩队列大小或压缩队列大小=2,而W(4)则用于与F(t+1)相比较,以确保第四次GOP帧间分配操作时每个核都能被分配到至少一帧图像。
仍以前述应用场景为例,假设执行到第3次帧间分配操作时,w变更为3,则在第3次帧间分配操作时,F(3)=3保持不变,可压缩队列{8,6,5}。
基于步骤a11可以得到初始候选压缩队列{8,6}和初始候选未压缩队列{5},相应的候选可压缩帧数F(4)=3+(4+1)-2=6。
基于步骤a12可以得到候选压缩队列{5,6},对应F(4)=3+1-2=2;以及候选压缩队列{8,5},对应F(4)=3+(4+0)-2=5。
其中,候选压缩队列{5,6}对应的F(4)=2小于第4次帧间分配操作时实际的w=3,因此该候选压缩队列不可用。候选压缩队列{8,5}对应的F(4)=5大于第4次帧间分配操作时实际的w=3,因此该候选压缩队列可用。
因此,第3次帧间分配操作最终生成的压缩队列为{8,5},未压缩队列为{6},F(4)=5(压缩2帧)。
在一个变化例中,所述步骤S1043可以是按照w的数量从所述可压缩队列中随机抽取以得到所述至少一个候选压缩队列的。
由上,采用本实施例方案,依据确定的阶层数划分得到多个GOP,将每个GOP内的图像设定为树状结构。再基于GOP帧间分配操作混合两个以上的GOP,使得每个核计算的帧数完全一致,最后将压缩队列输入所述多核处理器执行多核并行计算。
将所述压缩队列内帧号最大值减去压缩队列或未压缩队列内帧号最小值加1,即可获得当前时间点的延迟大小及原始图像所需存储的帧数。换言之,帧号代表图像存储的顺序,虽然当前时间点的压缩队列只需要压缩第8帧图像,但事实上前面第0帧到第7帧图像都是要存储的。而采用本实施例方案,在确保每个核都分配到至少一帧图像的前提下,使得每个核的帧存储量尽量小成为可能。
由此,本实施例方案能够确保基于多核处理器的视频压缩结果与基于单核处理器的压缩结果保持一致,各核的运算量基本均衡且压缩期间存储量更少,延迟也得到极大地降低。
具体而言,利用层次预测结构的特性规划每个GOP的树状结构,依据树状结构执行GOP帧间分配操作以设计多核处理器的并行算法。在基于GOP并行和层次预测结构划分得到多个GOP后,为各核分配压缩队列时是参考帧间并行的逻辑实现的,即在执行GOP间分配操作时不考虑GOP之间没有关联性这一点,使得下一个GOP中的图像能够被尽早列入上一个GOP中图像的压缩队列。
由此,利用层次预测结构的特性,混合帧级并行及GOP并行的优势来实现更高质量的并行视频压缩计算。其中,基于GOP并行确保每个核的计算量得到平均分配,同时利用帧级并行来减少存储空间及延迟,且与单核的压缩码流大小一致。
进一步,本实施例所述方案利用GOP区域化的方式来降低帧间分配复杂度,对于任意阶层数的层次预测结构及任意数量的核均能快速寻找出最优解。
实验表明,假设每一GOP包括30帧图像,当所述多核处理器包括2个核时,单独基于GOP并行执行视频压缩处理时每个核的延迟及存储数量为60帧。而若基于4阶层的层次预测结构,基于本实施例方案,每个核的最大延迟及存储数量只需要2帧。
此外,4阶层的层次预测结构下的GOP中包括的图像的帧数为8帧,也比现有30帧的GOP小很多。在最差的情况下,每个核所需的存储量为n×8,仍远比原本n×30小。
虽然现有单独采用GOP并行时也可以设定每个GOP包括8帧图像,但每8帧一个GOP的压缩码流大小会比每30帧一个GOP的压缩码流大,所以运行效果也没有采用本实施例方案时的好。
图7是本发明实施例一种视频压缩装置的结构示意图。本领域技术人员理解,本实施例所述视频压缩装置7可以用于实施上述图1至图6所述实施例中所述的方法技术方案。
具体地,参考图7,本实施例所述视频压缩装置7可以包括:第一确定模块71,用于根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;第二确定模块72,用于根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;第三确定模块73,用于根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;GOP帧间分配模块74,用于基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;并行压缩模块75,用于将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
关于所述视频压缩装置7的工作原理、工作方式的更多内容,可以参照上述图1至图6中的相关描述,这里不再赘述。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述图1至图6所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图1至图6所示实施例中所述的方法技术方案。具体地,所述终端可以为手机等具备慢动作视频拍摄功能的移动终端。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (18)

1.一种视频压缩方法,其特征在于,包括:
根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;
根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;
根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;
基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;
将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
2.根据权利要求1所述的视频压缩方法,其特征在于,所述根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数包括:
基于如下公式计算得到所述阶层数:
N=log2(X/Y)+1;
其中,N为所述阶层数;X为所述最大播放帧率;Y为所述最小播放帧率。
3.根据权利要求1所述的视频压缩方法,其特征在于,所述根据所述阶层数确定GOP的数量包括:
根据所述阶层数确定每一GOP包括的多帧图像的帧数,记作单个GOP的帧数;
将所述视频的总帧数除以所述单个GOP的帧数,以得到所述GOP的数量。
4.根据权利要求1所述的视频压缩方法,其特征在于,所述层次预测结构每层包括图像的帧数根据所述视频的播放帧率确定。
5.根据权利要求4所述的视频压缩方法,其特征在于,所述层次预测结构中,层级越高,所述层级包括的图像的帧数越少,对应的播放帧率越小。
6.根据权利要求1所述的视频压缩方法,其特征在于,所述根据所述层次预测结构确定各GOP的树状结构包括:
对于每一GOP,将所述GOP包括的多帧图像中帧号最小的图像以及对应的可压缩帧数确定为所述树状结构的根节点;
将所述层次预测结构中与所述帧号最小的图像存在关联性的图像以及对应的可压缩帧数确定为所述根节点的子节点;
以每一子节点为父节点,将所述层次预测结构中与作为所述父节点的图像存在关联性的图像以及对应的可压缩帧数确定为所述父节点的子节点。
7.根据权利要求6所述的视频压缩方法,其特征在于,所述树状结构的阶度根据所述阶层数确定。
8.根据权利要求1或6所述的视频压缩方法,其特征在于,对于相邻的两个GOP的树状结构,其中后一个GOP的树状结构的根节点为前一个GOP的树状结构的根节点的其中一个子节点。
9.根据权利要求1或6所述的视频压缩方法,其特征在于,每一GOP的树状结构的结构相同,且相同位置的节点的可压缩帧数相同,相同位置的节点的帧号不同。
10.根据权利要求1所述的视频压缩方法,其特征在于,所述基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列包括:
获取当前时间点的可压缩队列和可压缩帧数;
比较所述可压缩帧数与所述多核处理器单位时间点的最大可压缩帧数;
若所述可压缩帧数大于所述多核处理器单位时间点的最大可压缩帧数,则基于所述当前时间点的可压缩队列获取至少一个候选压缩队列和候选可压缩帧数;
将至少一个候选可压缩帧数中,数值最小且大于所述多核处理器单位时间点的最大可压缩帧数的候选可压缩帧数对应的候选压缩队列,确定为所述当前时间点的压缩队列。
11.根据权利要求10所述的视频压缩方法,其特征在于,所述基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列还包括:
若所述可压缩帧数小于等于所述多核处理器单位时间点的最大可压缩帧数,则将所述可压缩队列作为所述压缩队列。
12.根据权利要求10所述的视频压缩方法,其特征在于,所述基于所述当前时间点的可压缩队列获取至少一个候选压缩队列和候选可压缩帧数包括:
取所述可压缩队列中可压缩帧数最大、数量为所述多核处理器单位时间点的最大可压缩帧数的图像生成初始候选压缩队列,所述可压缩队列中未被选入所述初始候选压缩队列的图像生成初始候选未压缩队列;
按照可压缩帧数由大到小的顺序,将所述初始候选未压缩队列中的图像,逐个取代所述初始候选压缩队列中的图像,以得到所述至少一个候选压缩队列和候选可压缩帧数候选压缩队列。
13.根据权利要求10所述的视频压缩方法,其特征在于,所述获取当前时间点的可压缩队列和可压缩帧数包括:
根据上一时间点的GOP帧间分配操作结果确定所述当前时间点的可压缩队列和可压缩帧数。
14.根据权利要求13所述的视频压缩方法,其特征在于,所述根据上一时间点的GOP帧间分配操作结果确定所述当前时间点的可压缩队列和可压缩帧数包括:
将所述上一时间点的压缩队列中的图像在所述树状结构中的子节点添加至所述上一时间点的未压缩队列,以得到所述当前时间点的可压缩队列以及可压缩帧数,其中,所述上一时间点的未压缩队列包括上一时间点的可压缩队列中未被选入所述上一时间点的压缩队列的图像。
15.根据权利要求10所述的视频压缩方法,其特征在于,在基于多个GOP的树状结构执行GOP帧间分配操作期间,所述多核处理器单位时间点的最大可压缩帧数可变。
16.一种视频压缩装置,其特征在于,包括:
第一确定模块,用于根据视频的最大播放帧率和最小播放帧率确定层次预测结构的阶层数,其中,所述层次预测结构用于描述各帧图像之间的关联性;
第二确定模块,用于根据所述阶层数确定GOP的数量,其中每一GOP包括所述视频的多帧图像;
第三确定模块,用于根据所述层次预测结构确定各GOP的树状结构,其中,所述树状结构用于描述所述GOP内各帧图像之间的关联性以及每一帧图像对应的可压缩帧数;
GOP帧间分配模块,用于基于多个GOP的树状结构执行GOP帧间分配操作,以得到压缩队列;
并行压缩模块,用于将所述压缩队列输入多核处理器,以并行压缩所述压缩队列中的图像,其中,所述多核处理器的各个核并行处理的图像的帧数保持一致。
17.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至15任一项所述方法的步骤。
18.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至15任一项所述方法的步骤。
CN202010555207.0A 2020-06-17 2020-06-17 视频压缩方法及装置、存储介质、终端 Active CN111669596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010555207.0A CN111669596B (zh) 2020-06-17 2020-06-17 视频压缩方法及装置、存储介质、终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010555207.0A CN111669596B (zh) 2020-06-17 2020-06-17 视频压缩方法及装置、存储介质、终端

Publications (2)

Publication Number Publication Date
CN111669596A CN111669596A (zh) 2020-09-15
CN111669596B true CN111669596B (zh) 2022-08-12

Family

ID=72388411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010555207.0A Active CN111669596B (zh) 2020-06-17 2020-06-17 视频压缩方法及装置、存储介质、终端

Country Status (1)

Country Link
CN (1) CN111669596B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220078258A (ko) * 2020-12-03 2022-06-10 주식회사 선테크 초고해상도 스트리밍 영상 처리 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150719A (zh) * 2006-09-20 2008-03-26 华为技术有限公司 并行视频编码的方法及装置
EP2538674A1 (en) * 2004-12-10 2012-12-26 Electronics and Telecommunications Research Institute Apparatus for universal coding for multi-view video
CN103843352A (zh) * 2011-08-30 2014-06-04 微软公司 用于在编码的比特流之间动态切换的技术
CN110309856A (zh) * 2019-05-30 2019-10-08 华为技术有限公司 图像分类方法、神经网络的训练方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2538674A1 (en) * 2004-12-10 2012-12-26 Electronics and Telecommunications Research Institute Apparatus for universal coding for multi-view video
CN101150719A (zh) * 2006-09-20 2008-03-26 华为技术有限公司 并行视频编码的方法及装置
CN103843352A (zh) * 2011-08-30 2014-06-04 微软公司 用于在编码的比特流之间动态切换的技术
CN110309856A (zh) * 2019-05-30 2019-10-08 华为技术有限公司 图像分类方法、神经网络的训练方法及装置

Also Published As

Publication number Publication date
CN111669596A (zh) 2020-09-15

Similar Documents

Publication Publication Date Title
CA2760425C (en) Method and system for parallel encoding of a video
WO2021114846A1 (zh) 一种视频降噪处理方法、装置及存储介质
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
CN109792540A (zh) 利用每帧参数控制的硬件加速的视频编码方法和系统
CN103416057B (zh) 图像编码设备和方法以及图像解码设备和方法
JP2022003775A (ja) ニューラルネットワークを利用したコーデック
US8848799B2 (en) Utilizing thresholds and early termination to achieve fast motion estimation in a video encoder
CN101755462A (zh) 图像编码装置以及图像编码方法
WO2023082834A1 (zh) 视频压缩方法、装置、计算机设备和存储介质
US20230421763A1 (en) Video coding method and apparatus, medium, and electronic device
US20230022526A1 (en) Video processing method and apparatus, device, and storage medium
CN113259671B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
CN111669596B (zh) 视频压缩方法及装置、存储介质、终端
Franche et al. A multi-frame and multi-slice H. 264 parallel video encoding approach with simultaneous encoding of prediction frames
US20220408097A1 (en) Adaptively encoding video frames using content and network analysis
JP2022504379A (ja) イントラ予測におけるイントラモード選択
JP2008294669A (ja) 画像符号化装置
WO2022022299A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
CN106954074B (zh) 一种视频数据处理方法和装置
CN111355981B (zh) 视频数据播放方法、装置、存储介质及电子设备
CN111953972A (zh) IBC模式下的Hash表构建方法、装置、设备
WO2023173852A1 (zh) 一种图像编码方法、装置及设备
CN112422974A (zh) 视频编码方法、装置、计算机设备及存储介质
CN113141507B (zh) 视频编解码中的运动信息列表构建方法、装置及设备
CN109413435B (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