CN111327898B - 一种视频编码的方法、装置、电子设备及存储介质 - Google Patents
一种视频编码的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111327898B CN111327898B CN201811535610.6A CN201811535610A CN111327898B CN 111327898 B CN111327898 B CN 111327898B CN 201811535610 A CN201811535610 A CN 201811535610A CN 111327898 B CN111327898 B CN 111327898B
- Authority
- CN
- China
- Prior art keywords
- frame
- image
- macro block
- rate
- image macro
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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 block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/182—Methods 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 pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/87—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频编码的方法、装置、电子设备及存储介质,该视频编码的方法包括:针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码,从而,进一步提高视频编码的质量。
Description
技术领域
本发明涉及视频处理技术领域,尤其涉及一种视频编码的方法、装置、电子设备及存储介质。
背景技术
目前高清视频越来越普遍,而限于传输宽带和存储的需求,往往需要将高清视频进行压缩编码传输或压缩编码存储,并且要保证高视频压缩比的情况下,尽可能保证高清视频的编码质量。
但是,现有的视频编码方式一般采用二分法,仅仅是单纯地分割静态和动态的两种画面,并对分割后的静态画面和动态画面分别进行编码,这种编码方法的编码质量低。另外,现有技术中还公开了一种可变帧率的编码方法,该方法公开了如果当前编码宏块位于静止区域,利用第一预设编码方式对当前编码宏块进行编码,如果当前编码宏块位于运动区域,则利用第二预设编码方式对当前宏块进行编码,这种方法仅仅是对静止图像和运动的图像分别采取不同的编码方式,若遇到视频画面中的图像复杂多变的情况下,编码效果不好,从而导致视频编码的质量低。
发明内容
本发明实施例提供了一种视频编码的方法、装置、电子设备及存储介质,用以现有技术中视频编码的质量低的问题。
本发明实施例提供了一种视频编码的方法,所述方法包括:
针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;
针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;
针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
进一步地,所述根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率包括:
针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;
根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
进一步地,所述采用所述目标帧率调整该图像宏块对应的帧数包括:
如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;
如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;
如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧包括:
利用插值法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧。
进一步地,所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧包括:
利用抽帧法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,在所述对该图像宏块对应的每帧编码之后,所述方法还包括:
将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
本发明实施提供了一种视频编码的装置,所述装置包括:
确定模块,用于针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;
划分模块,用于针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;
编码模块,用于针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
本发明实施提供了一种电子设备,所述电子设备包括存储器和处理器;
所述处理器,用于读取所述存储器中的程序,执行下列过程:针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
进一步地,所述处理器,具体用于针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
进一步地,所述处理器,具体用于如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,所述处理器,还用于在对该图像宏块对应的每帧编码之后,将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
本发明实施例提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述任一项所述方法的步骤。
本发明实施例提供了一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行上述任一项所述方法的步骤。
本发明实施例提供了一种视频编码的方法、装置、电子设备及存储介质,该视频编码的方法包括:针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
由于本发明实施例中对关键帧及普通帧进行了图像宏块划分,并根据图像宏块中的每个像素点在关键帧及其对应的普通帧中的像素值是否发生变化,确定该图像宏块的像素值的目标变动率,从而可以有效的识别图像中的变化,并确定目标变动率对应的目标帧率,并对该图像宏块对应的帧数调整,也就是根据图像的变化,确定其对应的帧率,从而有效的提高了视频编码的质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种视频编码的方法流程图;
图2为本发明实施例2提供的第一关键帧对应的视频片段的示意图;
图3为本发明实施例2提供的对视频片段进行切割图像宏块前的示意图;
图4为本发明实施例2提供的对视频片段进行切割图像宏块后的示意图;
图5为本发明实施例3提供的每个图像宏块对应的目标帧率示意图;
图6为本发明实施例4提供的一种视频编码***的架构示意图;
图7为本发明实施例4提供的一种视频编码的方法流程图;
图8为本发明实施例4提供的一种视频编码的方法流程图;
图9为本发明实施例5提供的一种视频编码装置的结构示意图;
图10为本发明实施例6提供的一种电子设备的结构示意图;
图11为本发明实施例7提供的一种电子设备的结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种视频编码的方法流程图,该方法包括:
S101:针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧。
视频输入端接收待编码的视频文件,待编码的视频文件可以是先对原始数字视频文件进行初步分析,提取其对应的视频时长、每秒帧数、分辨率等信息,再将该原始数字视频文件进行解码转换成无损无压缩最高信息度的第三视频文件。其中,该原始数字视频文件可以是来自摄像头录制的视频文件,也可以是来自其他地方的视频文件,例如其他用户上传的视频文件。
然后,根据上述提取的每秒帧数、分辨率等信息,可以确定待编码的视频文件中以时间或固定帧数为周期性的关键帧,并若干个在两个关键帧之间的普通帧。每个关键帧及在其后一个关键帧之前对应的普通帧图像视为一个视频片段(VEDIO(X))。
具体的,关键帧及普通帧的确定方法为现有技术,在此不再赘述。
S102:针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块。
确定了每个关键帧及其对应的普通帧,即每个视频片段(VEDIO(X))后,针对任一视频片段进行相应的分析,对该视频片段(VEDIO(X))中包含的像素点的像素值进行相应的分析,具体的分析内容可以是该视频片段中的每个像素点的像素值的变化,以及目标对象的运动范围。
然后,根据上述分析的结果,可以确定该视频片段中每个像素点在其对应的关键帧和普通帧之间的变化、像素点的像素值,然后将每个像素点对应的变化和像素点的像素值进行比较,根据该比较结果,确定目标对象在时间线上的最大像素相似度的变动频率趋势,进而从像素平面的角度,将该视频片段切割多个图像宏块,该视频片段对应的关键帧和全部普通帧均采取相同的切割方式进行切割。
具体的在进行切割时可以利用卷积积分、H.265视觉、离散余弦变换(DiscreteCosine Transform,DCT)算法技术、神经元网络等技术。
S103:针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
为了进一步提高待编码的视频文件的压缩质量,在对图像宏块对应的每帧图像进行压缩编码前,需要对每个图像宏块进行独立的帧数调整,具体的调整方式可以根据实际情况进行设定。
针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的整体变动率,即目标变动率,用以反映该图像宏块对应的图像的运动、变更情况,具体的确定方法可以根据实际情况而定,在此不作限定。
如果该图像宏块对应的目标变动率越大,说明该图像宏块对应的图像运动变更得越剧烈,此时,需要更多的图像帧来展示这么剧烈的动作,以使得该图像宏块对应的子视频更加流畅,因此,需要在该图像宏块对应的视频片段中添加适当的图像帧,以达到适合的帧率。
如果该图像宏块对应的目标变动率越小,说明该图像宏块对应的图像运动变更得越缓慢,此时,没有必要采用那么多的图像帧来展示这么缓慢的动作,因此,需要在该图像宏块对应的视频片段中删除适当数量的图像帧,以达到保证不影响该图像宏块对应的子视频流畅度的情况下,节省视频文件的存储空间。
为了更加准确地得到每个图像宏块对应的适合的帧率,可以预先设置一个帧率阈值列表来记录不同的变动率及帧率的对应关系,该对应关系中变动率越大,帧率越大,变动率越小,帧率越小。也就是说视频中画面运动、变更越剧烈,即变动率越大,则其应设定的帧率越高,反之视频画面变动越舒缓,即变动率越小,其应设定的帧率越低。
例如,设定当任一图像宏块分析后发现其对应的所有帧的每帧图像中像素值的变动率为10%-20%,对应的帧率为12帧/秒,若该变动率为20-30%,对应的帧率为15帧/秒,若该变动率为85-100%,对应的帧率为90帧/秒等。
根据上述列表中的对应关系以及上述的该图像宏块的像素值的目标变动率,可以确定该目标变动率对应的目标帧率,然后可以根据该目标帧率调整该图像宏块对应的帧数,具体的调整方法不做限定。然后,根据预设的压缩编码格式,对于调整帧数完成的每个图像宏块对应的子视频进行画面压缩,具体的压缩编码格式包括但不限于现有的mepg、mpeg4、H.245等各类视频编码格式。
如果采用多核处理器对每个图像宏块进行处理的话,可以采用多线程技术同时并行对多个图像宏块进行上述的操作,可以提高视频编码的速度及效率。
由于本发明实施例中针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的关系,确定该图像宏块的像素值的目标变动率对应的目标帧率,并根据该目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码,这样,可以进一步提高视频编码的质量。
实施例2:
在上述实施例的基础上,为了更好地理解实施例1所述的视频编码的方法,现举例阐述一下:
为了提高视频编码的质量,下面对无损无压缩最高信息度的第三视频文件进行视频编码,具体的第三视频文件得到的方式已在上述实施例中阐述过了,在此不再赘述。因为得到第三视频文件的过程相当于将原始数字视频文件进行格式化(formated)处理,所以,可以用Vedio(Formated)表示第三视频文件。在本发明实施例可以用Original_fps表示该第三视频文件(Vedio(Formated))的原始帧率。
假设该第三视频文件是每秒48帧,共10分钟的视频文件,即该第三视频文件共有合计48*10*60=28800帧图像,假设1秒为一个周期,即每隔1秒(即每48帧)设置一个关键帧,以第一帧为关键帧,之后每隔48帧为一关键帧图像,该视频文件有600帧关键帧,紧邻的两个关键帧之间的47帧图像为普通帧图像,每个关键帧及其后47帧普通帧图像可以理解为一个视频片段将一段10分钟,每秒钟48帧的视频文件,若每隔1秒(即每48帧)设置一个关键帧,该视频共有合计48*10*60=28800帧图像,其中以第一帧为关键帧,之后每隔48帧为一关键帧图像,合计600帧关键帧,紧邻的两个关键帧之间的47帧为普通帧。每个关键帧及其后47帧普通帧视为一个视频片段(VEDIO(X)),其中,X为不小于1的正整数,该例子中X=1。
图2为本发明实施例提供的第一关键帧对应的视频片段的示意图。
得到第一关键帧对应的视频片段后,就可以根据该视频片段中包含的像素点的像素值,将该视频片段划分为多个图像宏块,以便于对每个图像宏块进行后续操作。图3为本发明实施例提供的对该视频片段进行切割图像宏块前的示意图,从图中可以看出,该视频片段表现的是在一个下雨天的亭子里,一个孩子在玩球,亭子外,有辆汽车在慢慢行驶,树枝在雨中晃动,根据对该视频片段的分析,可以将该视频片段画面中各个图像的变动率从高到低排列,分别为大雨、玩球的孩子、汽车、亭子。
对该视频片段(VEDIO(1))进行相应的分析,具体的分析过程已在上述实施例阐述了,在此不再赘述。并根据分析结果,从像素平面的角度,将该视频片段对应的关键帧及普通帧均切割成N(1)个图像宏块,并且关键帧与普通帧的切割方法是相同的,其中,1代表该视频片段为第三视频文件的第一个视频片段,该视频片段包括第一个关键帧;N(1)代表第一个视频片段切割的图像宏块数量。
如图4所示,将该视频片段中的每一帧切割出10个图像宏块,同时,为了便于后续操作,可以对这10个图像宏块的信息进行列表保存,具体地,因为该视频片段中每一帧采用相同的切割方法得到了多个图像宏块,为了方便可以针对第1个关键帧上的每个图像宏块,以该图像宏块在第1关键帧上对应的左上角像素点的坐标和右下角像素点的坐标做记录,形成一个针对这一个视频片段的图像宏块信息列表。
上述的切割图像宏块的方法是现有技术,在此不再赘述。
实施例3:
为了更加准确地确定图像宏块的像素值的目标变动率,在上述实施例的基础上,所述根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率包括:
针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;
根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
为了更加准确地确定图像宏块的像素值的目标变动率,可以针对任一图像宏块中的每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化,如果是,说明该像素点发生了变动,因此,需要记录该像素点。当对该图像宏块中的每个像素点全部做完判断,并记录了该图像宏块中所有的发生变动的像素点后,统计记录的像素点的第一数量,以及该图像宏块中像素点的总数量,用第一数量除以该总数量,得到的商就是该图像宏块的像素值的目标变动率。
例如,一个图像宏块在其对应的关键帧及其对应的普通帧中对应的像素点总共有1000个,其中,发生像素值发生变化的像素点400个,则该图像宏块对应的目标变动率为40%。
为了方便确定目标变动率对应的目标帧率,可以预先设置帧率和变动率的对应关系,当确定了目标变动率后,可以确定对应的目标帧率。目标帧率是图像宏块适合的帧率,如果图像宏块当前对应的帧率和目标帧率不一致,说明该图像宏块的帧率不能更准确地展示对应的图像动作,需要进行调整,具体的所述采用所述目标帧率调整该图像宏块对应的帧数包括:
如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;
如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;
如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
因为针对同一视频片段中的关键帧和每个普通帧采用相同的划分方式,得到每个图像宏块,也就是针对每个图像宏块,该图像宏块在该视频片段中对应的图像帧的数量与关键帧加普通帧的数量相同,还以上面的例子进行说明,每隔48帧切分为一个视频片段,一个视频片段包括一个关键帧和47个普通帧,将该视频片段中的关键帧和普通帧采用同样的划分方式划分为多个图像宏块后,针对每个图像宏块,该图像宏块在该视频片段中对应的图像帧的数量为48帧。
如果该图像宏块当前的帧率等于目标帧率,说明当前的帧率可以很好地反映该图像宏块所展示的图像动作,因此,不需要对该图像宏块进行帧率调整。比如,该图像宏块当前的帧率为12,且目标帧率也为12,该图像宏块不需要调整帧率。
如果该图像宏块当前的帧率小于目标帧率,说明该图像宏块对应的图像动作比较剧烈,需要更大的帧率来更准确地展示该图像宏块对应的图像动作,因此,需要在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中适当添加图像帧,进而使得该图像宏块对应的子视频更加流畅。具体地,添加图像帧的数量可以根据目标帧率与当前帧率的第一差值确定,例如,该图像宏块当前的帧率为12,目标帧率为24,第一差值为12,因此,需要在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中添加12个的图像帧。
如果该图像宏块当前的帧率大于目标帧率,说明该图像宏块对应的图像动作比较缓慢,没有必要用那么大的帧率来展示该图像宏块对应的图像动作,因此,需要在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中适当减去图像帧。具体地,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去的图像帧的数量,可以根据当前帧率与目标帧率的第二差值确定。例如,该图像宏块当前的帧率为12,目标帧率为4,第二差值为8,因此,需要在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去8个图像帧。
所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧包括:
利用插值法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧。
所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧包括:
利用抽帧法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
为了提高视频编码的质量,本发明实施例优选通过插值法将第一差值的图像帧增加图像宏块对应的图像帧之间,其中,该第一差值的图像帧是通过图像演算技术生成的,并通过插值法***到对应的关键帧和普通帧之间,具体的生成图像帧的过程和利用插值法添加图像帧的过程均为现有技术,在此不再赘述。
为了提高视频编码的质量,本发明实施例优选通过抽帧法将第二差值的图像帧增加到对应的关键帧和普通帧之间。具体的利用抽帧法减去图像帧的过程是现有技术,在此不再赘述。
基于上述实施例,表1中记录了变动率与帧率对应关系,具体的记录的是变动率范围与帧率的对应关系。
表1
变动率 | 帧率(Scheduled_fps)/(帧/秒) |
0到10% | 2 |
11到25% | 4 |
25到50% | 12 |
50到75% | 24 |
75到90% | 48 |
90到100% | 90 |
表1中记录了变动率与帧率的对应关系,具体的记录的是变动率范围与帧率的对应关系。针对任一图像宏块,确定该图像宏块的目标变动率后可以与表1中的设置的每个变动率范围进行比较,确定目标变动率归属的目标变动率范围,将该目标变动率范围对应的帧率作为该图像宏块的目标帧率。
以实施例2中的图像宏块为例,图5展示了每个图像宏块对应的目标帧率,如图5所示,区块1画面变动缓慢,目标帧率Scheduled_fps(1,1)=12帧/s,区块2画面变动较剧烈,目标帧率Scheduled_fps(1,2)=24帧/s,区块3画面变动较缓慢,目标帧率Scheduled_fps(1,3)=12帧/s,区块4画面变动较剧烈,目标帧率Scheduled_fps(1,4)=24帧/s,区块5画面变动较剧烈,目标帧率Scheduled_fps(1,5)=24帧/s,区块6画面变动很缓慢,目标帧率Scheduled_fps(1,6)=4帧/s,区块7画面变动很缓慢,目标帧率Scheduled_fps(1,7)=4帧/s,区块8画面变动很缓慢,目标帧率Scheduled_fps(1,8)=4帧/s,区块9画面变动很剧烈,目标帧率Scheduled_fps(1,9)=90帧/s,区块10画面变动很缓慢,目标帧率Scheduled_fps(1,10)=4帧/s。
因此,确定了图4中每个图像宏块对应的目标帧率之后,可以针对每个图像宏块,根据该图像宏块在图5中对应的目标帧率,以及当前的帧率,对该图像宏块进行帧率调整,进而提高该图像宏块对应的每帧图像的编码质量。
由于本发明实施例中针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率,这样可以更加准确地确定图像宏块的像素值的目标变动率。
实施例4:
在上述各个实施例的基础上,为了得到待编码的视频文件对应的完整的视频编码文件,在所述对该图像宏块对应的每帧编码之后,所述方法还包括:
将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
根据上述实施例所述的方法,可以得到每个关键帧及其对应的普通帧对应的每个图像宏块的编码文件,即编码后的每个图像宏块对应的第一视频文件,这些文件是零散的编码后的视频文件,因此,还需要将这些第一视频文件封装整合为第二视频文件,即包含上述每个视频片段对应的编码后的视频文件。由于待编码的视频文件有很多视频片段,因此,为了得到最终完整的视频编码文件,需要将这些视频片段对应的第二视频文件进行整合打包,从而得到最终完整的视频编码文件。
具体的封装整合和整合打包过程为现有技术在此不再赘述。
例如,将图4中的每个图像宏块的帧数调整完后,将调整完后的每个图像宏块封装整合为新的视频编码文件(Vedio_Pack(1)),然后,按照上述的方法,对下一个即第X+1个关键帧对应的视频片段(Vedio(X+1))重复上述步骤,得到视频片段(Vedio(X+1))对应的视频编码文件(Vedio_Pack(X+1)),直到全部的关键帧对应的视频片段都得到对应的视频编码文件。
将全部的视频编码文件(Vedio_Pack(X))整合打包为最终完整的视频编码文件(Vedio(Final)),即编码后的视频文件。
基于上述实施例,图6为本发明实施例提供的一种视频编码***的架构示意图,如图6所示,介绍一下该***构架中的各个组件及其对应的作用:
视频输入端用于接收输入的待编码的视频文件;存储组件用于进行数据存储;运算组件是本方法全局计算的硬件层,可以实现多核、多线程任务处理,即利用硬件的多核性能,采用多线程并行编码不同的图像宏块的方法,这样,在主程序设定了每个图像宏块不同的目标帧率后,各线程就可以调用上述的视频编码的方法对对应的图像宏块进行视频编码,可以节省时间,充分利用***的性能。该运算组件包含但不限于用于调度任务进行数据预算的中央处理器(Central Processing Unit,CPU),用于视频文件图像数据计算的图像处理器(Graphic Processing Unit,GPU),用于视频文件切块后的图像编码计算等的编码及解码芯片(Digital Signal Processing,DSP)。
基于上述硬件层的应用模块,至少包含但不限于源视频文件解码模块、时帧序列切割模块、关键帧图像切块模块、切块压缩编码模块、封装模块。各个应用模块,用于根据运算组件的调用执行相应的操作。
基于上述***构架和上述各个实施例,图7为本发明实施例提供的一种视频编码的方法流程图,该方法的过程可以为:
先初步分析提取原始数字视频文件(Vedio(input))对应的视频时长、每秒帧数、分辨率等信息;视频输入端将接收到的原始数字视频文件的信息保存到存储组件,并通知运算组件处理;运算组件调用源文件解码模块,将原始数字视频文件(Vedio(input))进行解码转换,转换为无损无压缩最高信息度的待编码的视频文件,即第三视频文件(Vedio(Formated)),该第三视频文件(Vedio(Formated))的每秒帧数为Original_fps;运算组件调用时帧序列切割模块,确定第三视频文件(Vedio(Formated))中以时间或固定帧数为周期性的关键帧,以及若干个在两个关键帧之间的普通帧,将每个关键帧及在其后一个关键帧之前对应的普通帧图像视为一个视频片段(VEDIO(X));运算组件调用关键帧图像切块模块,针对任一关键帧及其对应的普通帧,进行图像宏块分块处理,即根据该关键帧及其对应的普通帧中包含的像素点的像素值,将该关键帧及其对应的普通帧划分为N(X)个图像宏块,其中,N(X)代表第X关键帧对应的视频片段从像素平面上切割的图像宏块数量;运算组件调用切块压缩编码模块针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率。
基于上述***构架和上述各个实施例,图8为本发明实施例提供的一种视频编码的方法流程图,该方法的过程可以为:
针对每个图像宏块,确定该图像宏块对应的子视频(Vedio(X))原有的帧率Original_fps;设定一个帧率阈值列表,该列表中记录了变动率与帧率的对应关系,具体的记录了变动率范围与帧率的对应关系;切块压缩编码模块针对每个图像宏块,计算出该图像宏块的像素值的目标变动率,确定该目标变动率归属的目标变动率范围,将该目标变动率范围对应的帧率作为该图像宏块目标帧率(Scheduled_fps(x,n))。
如果Scheduled_fps(x,n)=Original_fps,切块压缩编码模块不对该图像宏块做帧数调整;如果Scheduled_fps(x,n)>Original_fps,切块压缩编码模块通过插值法将利用图像演算技术得到的图像帧***到对应的关键帧和普通帧之间,用以提高该图像宏块对应的子视频的画面流畅度;如果Scheduled_fps(x,n)<Original_fps,切块压缩编码模块通过抽帧法将相应数量的图像帧从对应的关键帧和普通帧之间的图像帧中删除掉。
切块压缩编码模块根据预设的压缩编码格式,对于调整帧率完成的每个图像宏块对应的子视频进行画面压缩编码。
运算组件调用封装模块将编码后的每个图像宏块对应的编码文件封装整合成新的视频编码文件(Vedio_Pack(X)),判断X=max(X),即判断第X个关键帧是否为最后的关键帧,如果是,说明全部的关键帧对应的视频片段都得到对应的视频编码文件,故运算组件调用封装模块将全部的新的视频编码文件(Vedio_Pack(X))整合打包成待编码的视频文件对应的最终完整的视频编码文件;如果否,说明还存在一些关键帧对应的视频片段没有得到对应的视频编码文件,运算组件对下一关键帧即第X+1关键帧对应的视频片段(VEDIO(X+1))返回上述运算组件调用关键帧图像切块模块,针对任一关键帧及其对应的普通帧,进行图像宏块分块处理,并进行后续步骤,并令X=X+1。
这种方法还可以采用多线程技术,并行处理压缩视频,实现更加动态地对视频进行压缩,并且还可以提高视频编码比以及同码率下更好的视频视觉观感。
由于本发明实施例中将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件,这样可以得到更完整的压缩后的视频文件。
实施例5:
在上述各个实施例的基础上,图9为本发明实施例提供的一种视频编码装置的结构示意图,所述装置包括:
确定模块901,用于针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;
划分模块902,用于针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;
编码模块903,用于针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
进一步地,编码模块903,具体用于针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
进一步地,编码模块903,具体用于如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,编码模块903,具体用于利用插值法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧。
进一步地,编码模块903,具体用于利用抽帧法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,编码模块903,还用于在对该图像宏块对应的每帧编码之后,将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
由于本发明实施例中确定模块901,用于针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;划分模块902,用于针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;编码模块903,用于针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码,这样,可以进一步提高视频编码的质量。
实施例6:
在上述实施例的基础上,图10为本发明实施例提供的一种电子设备,所述电子设备包括存储器1001和处理器1002;
所述处理器1002,用于读取所述存储器1001中的程序,执行下列过程:
针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
基于同一发明构思,本发明实施例中还提供了一种电子设备,由于上述电子设备解决问题的原理与视频编码方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1001代表的一个或多个处理器和存储器1002代表的存储器的各种电路链接在一起。总线架构还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。处理器1001负责管理总线架构和通常的处理,存储器1002可以存储处理器1001在执行操作时所使用的数据。
可选的,处理器1001可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
所述处理器1002,具体用于针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
所述处理器1002,具体用于如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
所述处理器1002,还用于在对该图像宏块对应的每帧编码之后,将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
实施例7:
在上述各个实施例的基础上,本发明实施例提供了一种电子设备,如图11所示,所述电子设备包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信;
所述存储器1103中存储有计算机程序,当所述程序被所述处理器1101执行时,使得所述处理器1101执行如下步骤:
针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;
针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;
针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1102用于上述电子设备与其他设备之间的通信。
存储器1103可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器1101可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
进一步地,所述处理器1101,具体用于针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
进一步地,所述处理器1101,具体用于如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,所述处理器1001,具体用于利用插值法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧。
进一步地,所述处理器1001,具体用于利用抽帧法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,所述处理器1101,还用于在对该图像宏块对应的每帧编码之后,将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
实施例8:
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行如下步骤:
针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧;
针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将所述第一关键帧及其对应的普通帧划分为多个图像宏块;
针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的帧数,对该图像宏块对应的每帧编码。
进一步地,针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;
根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
进一步地,所述采用所述目标帧率调整该图像宏块对应的帧数包括:
如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;
如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;
如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧包括:
利用插值法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧。
进一步地,所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧包括:
利用抽帧法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
进一步地,在所述对该图像宏块对应的每帧编码之后,所述方法还包括:
将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
对于***/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种视频编码的方法,其特征在于,所述方法包括:
针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧,其中,关键帧对应的普通帧为在其后一个关键帧之前对应的普通帧;
针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将该关键帧及其对应的普通帧划分为多个图像宏块;
针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的关键帧及对应的普通帧的帧率,对该图像宏块对应的每帧编码;
其中,所述根据该关键帧及其对应的普通帧中包含的像素点的像素值,将该关键帧及其对应的普通帧划分为多个图像宏块包括:
根据该关键帧及其对应的普通帧中的每个像素点的像素值的变化,以及目标对象的运动范围,确定该关键帧及其对应的普通帧中每个像素点在其对应的关键帧和普通帧之间的变化、像素点的像素值,将所述每个像素点对应的变化和像素点的像素值进行比较,根据比较结果确定所述目标对象在时间线上的最大像素相似度的变动频率趋势,从像素平面的角度将该关键帧及其对应的普通帧切割为多个图像宏块;
所述对该图像宏块对应的每帧编码包括:
对该图像宏块对应的关键帧及其对应的普通帧进行编码。
2.如权利要求1所述的方法,其特征在于,所述根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率包括:
针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;
根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
3.如权利要求1或2所述的方法,其特征在于,所述采用所述目标帧率调整该图像宏块对应的关键帧及对应的普通帧的帧率包括:
如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;
如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;
如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
4.如权利要求3所述的方法,其特征在于,所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧包括:
利用插值法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧。
5.如权利要求3所述的方法,其特征在于,所述在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧包括:
利用抽帧法,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
6.如权利要求1所述的方法,其特征在于,在所述对该图像宏块对应的每帧编码之后,所述方法还包括:
将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
7.一种视频编码的装置,其特征在于,所述装置包括:
确定模块,用于针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧,其中,关键帧对应的普通帧为在其后一个关键帧之前对应的普通帧;
划分模块,用于针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将该关键帧及其对应的普通帧划分为多个图像宏块;
编码模块,用于针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的关键帧及对应的普通帧的帧率,对该图像宏块对应的每帧编码;
其中,所述划分模块,具体用于根据该关键帧及其对应的普通帧中的每个像素点的像素值的变化,以及目标对象的运动范围,确定该关键帧及其对应的普通帧中每个像素点在其对应的关键帧和普通帧之间的变化、像素点的像素值,将所述每个像素点对应的变化和像素点的像素值进行比较,根据比较结果确定所述目标对象在时间线上的最大像素相似度的变动频率趋势,从像素平面的角度将该关键帧及其对应的普通帧切割为多个图像宏块;
所述编码模块,具体用于对该图像宏块对应的关键帧及其对应的普通帧进行编码。
8.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述处理器,用于读取所述存储器中的程序,执行下列过程:针对待编码的视频文件,确定所述视频文件中的每个关键帧及对应的普通帧,其中,关键帧对应的普通帧为在其后一个关键帧之前对应的普通帧;针对任一关键帧及其对应的普通帧,根据该关键帧及其对应的普通帧中包含的像素点的像素值,将该关键帧及其对应的普通帧划分为多个图像宏块;针对每个图像宏块,根据该图像宏块中的每个像素点在该关键帧及其对应的普通帧中的像素值,确定该图像宏块的像素值的目标变动率,根据预先设定的变动率及帧率的对应关系,确定所述目标变动率对应的目标帧率,采用所述目标帧率调整该图像宏块对应的关键帧及对应的普通帧的帧率,对该图像宏块对应的每帧编码;
其中,所述根据该关键帧及其对应的普通帧中包含的像素点的像素值,将该关键帧及其对应的普通帧划分为多个图像宏块包括:
根据该关键帧及其对应的普通帧中的每个像素点的像素值的变化,以及目标对象的运动范围,确定该关键帧及其对应的普通帧中每个像素点在其对应的关键帧和普通帧之间的变化、像素点的像素值,将所述每个像素点对应的变化和像素点的像素值进行比较,根据比较结果确定所述目标对象在时间线上的最大像素相似度的变动频率趋势,从像素平面的角度将该关键帧及其对应的普通帧切割为多个图像宏块;
所述对该图像宏块对应的每帧编码包括:
对该图像宏块对应的关键帧及其对应的普通帧进行编码。
9.如权利要求8所述的电子设备,其特征在于,所述处理器,具体用于针对所述每个像素点,判断该像素点在该关键帧及其对应的普通帧中对应的像素值是否发生变化;如果是,记录该像素点;根据记录的像素点的数量,以及该图像宏块中像素点的总数量,确定该图像宏块的像素值的目标变动率。
10.如权利要求8或9所述的电子设备,其特征在于,所述处理器,具体用于如果该图像宏块当前的帧率等于所述目标帧率,不进行调整;如果该图像宏块当前的帧率小于所述目标帧率,确定所述目标帧率与当前的帧率的第一差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中增加所述第一差值的图像帧;如果该图像宏块当前的帧率大于所述目标帧率,确定所述当前的帧率与目标帧率的第二差值,在该图像宏块在该关键帧及对应的普通帧间对应的图像帧中减去所述第二差值的图像帧。
11.如权利要求8所述的电子设备,其特征在于,所述处理器,还用于在对该图像宏块对应的每帧编码之后,将编码后的每个图像宏块对应的第一视频文件封装整合为第二视频文件。
12.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~6任一项所述方法的步骤。
13.一种计算机可读存储介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811535610.6A CN111327898B (zh) | 2018-12-14 | 2018-12-14 | 一种视频编码的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811535610.6A CN111327898B (zh) | 2018-12-14 | 2018-12-14 | 一种视频编码的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327898A CN111327898A (zh) | 2020-06-23 |
CN111327898B true CN111327898B (zh) | 2022-05-13 |
Family
ID=71168734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811535610.6A Active CN111327898B (zh) | 2018-12-14 | 2018-12-14 | 一种视频编码的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327898B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390314B (zh) * | 2021-12-30 | 2024-06-18 | 咪咕文化科技有限公司 | 可变帧率音视频处理方法、设备及存储介质 |
CN114827714B (zh) * | 2022-04-11 | 2023-11-21 | 咪咕文化科技有限公司 | 基于视频指纹的视频还原方法、终端设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1725041A2 (en) * | 2005-05-17 | 2006-11-22 | Sony Corporation | Moving picture conversion apparatus and method, moving picture reconstruction apparatus and method, and computer program |
CN101321287A (zh) * | 2008-07-08 | 2008-12-10 | 浙江大学 | 基于运动目标检测的视频编码方法 |
CN101815218A (zh) * | 2010-04-02 | 2010-08-25 | 北京工业大学 | 基于宏块特征的快速运动估计视频编码方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783118B2 (en) * | 2006-07-13 | 2010-08-24 | Seiko Epson Corporation | Method and apparatus for determining motion in images |
US20150063462A1 (en) * | 2013-08-29 | 2015-03-05 | Crispify Software Private Limited | Method and system for enhancing the quality of video during video compression |
-
2018
- 2018-12-14 CN CN201811535610.6A patent/CN111327898B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1725041A2 (en) * | 2005-05-17 | 2006-11-22 | Sony Corporation | Moving picture conversion apparatus and method, moving picture reconstruction apparatus and method, and computer program |
CN101321287A (zh) * | 2008-07-08 | 2008-12-10 | 浙江大学 | 基于运动目标检测的视频编码方法 |
CN101815218A (zh) * | 2010-04-02 | 2010-08-25 | 北京工业大学 | 基于宏块特征的快速运动估计视频编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111327898A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017157264A1 (en) | Method for motion vector storage in video coding and apparatus thereof | |
US8976860B2 (en) | Method and apparatus for determination of motion estimation search window area utilizing adaptive sliding window algorithm | |
US20100166073A1 (en) | Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors | |
US20190037227A1 (en) | Techniques for hardware video encoding | |
JP2004503951A (ja) | ビデオ情報を符号化する方法および装置 | |
US7302000B2 (en) | Method and system for two-pass video encoding using sliding windows | |
US20190200017A1 (en) | Video encoding | |
CN111327898B (zh) | 一种视频编码的方法、装置、电子设备及存储介质 | |
US11330263B1 (en) | Machine learning based coded size estimation in rate control of video encoding | |
CN113473126A (zh) | 视频流的处理方法、装置、电子设备及计算机可读介质 | |
US9020283B2 (en) | Electronic device and method for splitting image | |
CN109246433B (zh) | 视频编码方法及装置、解码方法及装置、视频传输*** | |
US20080260040A1 (en) | Method, device, integrated circuit and encoder for filtering video noise | |
US20150288979A1 (en) | Video frame reconstruction | |
US8707149B2 (en) | Motion compensation with error, flag, reference, and decompressed reference data | |
CN104168482B (zh) | 一种视频编解码方法及装置 | |
US20200137402A1 (en) | Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels | |
US20140133772A1 (en) | Electronic device and method for splitting image | |
CN113691814A (zh) | 视频编码方法、装置、电子装置和存储介质 | |
CN107277650B (zh) | 视频文件切割方法及装置 | |
Jubran et al. | Sequence-level reference frames in video coding | |
CN110945870A (zh) | 视频处理设备和方法 | |
US7706440B2 (en) | Method for reducing bit rate requirements for encoding multimedia data | |
US10944967B2 (en) | Encoder and decoder and methods thereof | |
JP7524906B2 (ja) | 動画像符号化方法、符号化処理方法、動画像符号化装置および符号化処理装置 |
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 |