CN107659822B - 一种判断视频帧的帧类型的方法及装置 - Google Patents

一种判断视频帧的帧类型的方法及装置 Download PDF

Info

Publication number
CN107659822B
CN107659822B CN201710907008.XA CN201710907008A CN107659822B CN 107659822 B CN107659822 B CN 107659822B CN 201710907008 A CN201710907008 A CN 201710907008A CN 107659822 B CN107659822 B CN 107659822B
Authority
CN
China
Prior art keywords
frame
video
column
video frame
type
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
CN201710907008.XA
Other languages
English (en)
Other versions
CN107659822A (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.)
Aerospace Guosheng Technology Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710907008.XA priority Critical patent/CN107659822B/zh
Publication of CN107659822A publication Critical patent/CN107659822A/zh
Application granted granted Critical
Publication of CN107659822B publication Critical patent/CN107659822B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal 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/136Incoming video signal characteristics or properties
    • 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/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/176Methods 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

Landscapes

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

Abstract

本发明公开了提供一种判断视频帧的帧类型的方法及装置,根据构成一视频流的视频帧集合的视频帧数目确定出一列表集合,并存储该视频帧集合中的视频帧,然后确定出所述列表集合中第1行中所有视频帧的帧类型;基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,大大的减少了复杂的处理步骤,提高了计算效率。

Description

一种判断视频帧的帧类型的方法及装置
技术领域
本申请涉及视频处理技术领域,尤其涉及一种判断视频帧的帧类型的方法及装置。
背景技术
视频的编解码主要靠,预测,转换,编码,来实现的。预测又分为帧间预测和帧内预测,帧内预测用来压缩空间相关性,帧间预测用来压缩时间相关性。
帧内预测是指在程序中定义好一些预测算法,如4*4宏块有9种预测算法(垂直,水平,对角线,平均值……..),16*16宏块有4种预测算法,8*8宏块有4种预测算法。
帧间预测是指从当前片的前面和后面已编码的图像中通过运动估计算法(全局收索,钻石收索,六边形收索等等)计算出当前块相对于参考图像的一个运动矢量。
在经过预测处理操作后,可以将一个宏块的像素点数据,转换为宏块的预测方式既宏块类型,预测模式,运动矢等信息,与宏块的像素点数据占用的空间大小(数据大小)相比宏块类型,预测模式,运动矢量所占的空间会非常小,视频帧是以宏块为单位,从而达到将视频数据进行压缩的目的。
但是,由于视频帧分为I、P、B三个类型,使用B帧能节省大量空间,而在相同码率下,I帧多可以提供更好的画质,而目前辨别视频帧类型的方法基本上是逐帧判断,故而效率低下。
发明内容
本发明了提供了一种判断视频帧的帧类型的方法及装置,解决或者部分解决了目前的判断帧类型效率低下的技术问题。
为解决上述技术问题,本发明提供了一种判断视频帧的帧类型的方法,所述方法包括:
根据构成一视频流的视频帧集合的视频帧数目,确定出所述视频帧集合对应的列表集合,所述列表集合包含行结构和列结构;
将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中;
确定出所述列表集合中第1行中所有视频帧的帧类型;
基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型。
优选的,所述列表集合中包括m*n个子结构;其中,n表示所述列表集合中的行数,m表示所述列表集合中的列数,n≥2且为正整数,m≥2且为正整数。
优选的,所述将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中,具体包括:
将所述视频帧集合中的视频帧按照所述列数的排序依次存入所述列表集合中,进而使得第1列中的视频帧、第j列中的视频帧直到第m列中的视频帧的排列顺序依次为:
第1列中的视频帧从上到下依次为:第1帧视频帧、第2帧视频帧直到第n帧视频帧;
第j列中的视频帧从上到下依次为:第(j-1)*n+1帧视频帧、第(j-1)*n+2帧视频帧、直到第j*n帧视频帧;其中,j是m列中的列变量值,j依次取2到m-1;
第m列中的视频帧从上到下依次为:第j*n+1帧视频帧、第j*n+2帧视频帧、直到第m*n帧视频帧。
优选的,所述基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,具体包括:
基于相邻两列各自的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个视频帧的帧类型;
基于前一列的第1个视频帧的后一个视频帧的帧类型和后一列的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个的后一个视频帧的帧类型,直到确定出前一列中所有视频帧的帧类型。
优选的,所述基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,具体包括:
基于第1列的第1个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i个视频帧的帧类型,其中,i为n行中的行变量值,依次取2到n-1;
基于第1列的第i个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i+1个视频帧的帧类型,直到确定出第1列的所有视频帧的帧类型。
优选的,所述基于第1列的第1个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i个视频帧的帧类型,具体包括:
若判断出第1列的第1个视频帧的帧类型为B帧,第j列的第1个视频帧的帧类型为P帧,则第1列的第i个视频帧的帧类型为B帧;
若判断出第1列的第1个视频帧的帧类型为P帧,第j列的第1个视频帧的帧类型为B帧,则第1列的第i个视频帧的帧类型为B帧。
优选的,所述基于第1列的第1个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i个视频帧的帧类型,具体包括:
若判断出第1列的第1个视频帧的帧类型为B帧,第j列的第1个视频帧的帧类型为B帧,则第1列的第i个视频帧的帧类型为B帧;
若判断出第1列的第1个视频帧的帧类型为P帧,第j列的第1个视频帧的帧类型为P帧,则第1列的第i个视频帧的帧类型为P帧。
另一个方面,本发明公开了一种判断视频帧的帧类型的装置,包括:
第一确定模块,用于根据构成一视频流的视频帧集合的视频帧数目,确定出所述视频帧集合对应的列表集合,所述列表集合包含行结构和列结构;
存储模块,用于将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中;
第二确定模块,用于确定出所述列表集合中第1行中所有视频帧的帧类型;
第三确定模块,用于基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型。
另一个方面,本发明公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法技术方案的步骤。
另一个方面,本发明公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现方法技术方案的步骤。
通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:
本发明公开了提供一种判断视频帧的帧类型的方法及装置,根据构成一视频流的视频帧集合的视频帧数目确定出一列表集合,并存储该视频帧集合中的视频帧,然后确定出所述列表集合中第1行中所有视频帧的帧类型;基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,大大的减少了复杂的处理步骤,提高了计算效率。
附图说明
图1为本发明实施例中一种判断视频帧的帧类型的方法的流程图;
图2A-图2D为本发明实施例中为本发明实施例中视频帧进行压缩的示意图;
图3A-图3B为本发明实施例中为本发明实施例中增加像素点的示意图;
图4为本发明实施例中一种判断视频帧的帧类型的装置的示意图。
具体实施方式
为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。
其中,I帧,又称为内部画面,I帧通常是每个GOP(一种视频压缩技术,表示上一个I帧距离当前视频帧的帧数)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。
在针对连续动态图像编码时,将连续若干幅图像分成P、B、I三种类型,P帧由在它前面的P帧或者I帧预测而来,它比较与它前面的P帧或者I帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。
本发明的目的在于提供一种判断视频帧的帧类型的方法及装置,根据构成一视频流的视频帧集合的视频帧数目确定出一列表集合,并存储该视频帧集合中的视频帧,然后确定出所述列表集合中第1行中所有视频帧的帧类型;基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,大大的减少了复杂的处理步骤,提高了计算效率,通过实验表明当帧率越大时效果越好,视频帧中场景切换次数少的时候效果也很不错。
在具体的实施过程中,请参看图1,是一种判断视频帧的帧类型的方法的实施过程图,具体如下:
步骤11,根据构成一视频流的视频帧集合的视频帧数目,确定出所述视频帧集合对应的列表集合。
在具体的实施过程中,先将视频帧集合缓存到对应的视频缓存队列中,然后将所述视频缓存队列中的视频帧集合按照顺序进行划分,得到m*n个视频帧,n≥2且为正整数,m≥2且为正整数。
由于视频缓存队列中的视频帧集合的前后帧是相关联的,例如像素值类似,也即前一帧视频帧和后一帧视频帧比较类似。故而本发明实施例在进行划分时会按照顺序依次进行划分,获得n个视频帧。进一步的,可以在进行划分时按照顺序依次进行划分,将视频帧集合平均划分为m*n个视频帧。
具体来说,为了便于处理m*n个视频帧,本发明使用了列表集合来对该视频帧集合进行处理,列表集合不同于视频缓存队列,是用来规划视频帧集合的规划工具,本发明主要设置了行、列的形式来表示列表集合,故而,所述列表集合包含行结构和列结构。
进一步的,为了便于处理m*n个视频帧,在确定列表集合的形式时,是通过视频帧集合的视频帧数目,确定出用于存储所述视频帧集合中的视频帧的列表集合。例如基于m*n个视频帧,本发明的列表集合也设置成m*n个子结构;其中,n表示所述列表集合中的行数,m表示所述列表集合中的列数,n≥2且为正整数,m≥2且为正整数。也就是说,本发明的最小的列表集合是2*2的列表形式的结构。
在具体的实施过程中,在确定列表集合中的行数n时,是利用公式n=帧率/20进行划分成,其中,n为视频帧的行表数。本发明的方式适用于帧率较大的的视频帧集合,帧率的范围为至少60帧。
具体来说,帧率是用于测量显示帧数的量度,也就是每秒显示帧数。从上述公式可以看出,本发明将视频帧的列表数n是和20成反比的,如果选择大于20的值,那么选择的值越大,那么得到的视频帧的列表数n就会越少,每一列中罗列的视频帧数目就会越多,每一列的处理时间就会越长,进而会降低视频帧的处理效率。如果选择小于20的值,选择的值越小,得到的视频帧的列表数n虽然会越多,但是每一列中罗列的视频帧就会越少,而如果相邻的视频帧之间的相关性不大,那么就会出现判断不准确的情况,综合上面的考虑,本发明以20为基准来得到视频帧的行表数n。
在得到行表数之后,再结合视频流的视频帧集合的视频帧数目,即可确定出列表集合的列表数。
步骤12,将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中。
在具体的实施过程中,将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中,具体包括:将所述视频帧集合中的视频帧按照所述列数的排序依次存入所述列表集合中。也就是说,本发明的视频帧是按照列数进行依次进行存储。例如,将视频帧先放入第1列中,而在第1列中,又是按照从上到下依次存入。在第1列存储满之后,再进行依次将视频帧存入第2列中,依次类推,进而将所有的视频帧都存入列表集合中。
而在m列中的变量取j,也就是说,j是m列中的列变量值,j的依次取1到m之间的整数值(j依次取2到m-1)。
故而,在存储之后,使得第1列中的视频帧、第j列中的视频帧直到第m列中的视频帧的排列顺序依次为:
第1列中的视频帧从上到下依次为:第1帧视频帧、第2帧视频帧直到第n帧视频帧;
第j列中的视频帧从上到下依次为:第(j-1)*n+1帧视频帧、第(j-1)*n+2帧视频帧、直到第j*n帧视频帧;其中,j为m列中的任意列,j依次取2到m-1;
第m列中的视频帧从上到下依次为:第j*n+1帧视频帧、第j*n+2帧视频帧、直到第m*n帧视频帧。
以表格的形式来说,则视频帧集合存入列表集合的状态请参看表1:
表1
第1列 …… 第j列 第m列
第1行 1 …… (j-1)*n+1 j*n+1
…… …… …… …… ……
第n行 n …… j*n m*n
下面举例来进行说明。
若n=4,m=4,j依次取2、3。那么列表集合则如下表2所示:
表2
第1列 第2列 第3列 第4列
第1行 1 (2-1)*4+1=5 (3-1)*4+1=9 3*4+1=13
第2行 2 (2-1)*4+2=6 (3-1)*4+2=10 3*4+2=14
第3行 3 (2-1)*4+3=7 (3-1)*4+2=11 3*4+3=15
第4行 4 (2-1)*4+4=8 (3-1)*4+2=12 4*4=16
在具体的实施过程中,将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中之后,会对每一帧视频帧事先进行数据处理。在数据处理过程中,首先将每一帧视频帧的长宽扩大到16的整数倍;然后降低所述每一帧视频帧的分辨率;再基于所述每一帧视频帧的边缘像素点的空白一侧增加对应的像素点,然后将所述每一帧视频帧的边缘像素点值填入到所述对应的像素点中。
具体来说,将所述每一帧视频帧的长宽扩大到16的整数倍,是将每一帧视频帧以行为单位进行16的整数倍,且将每一帧视频帧以列为单位进行16的整数倍。以便于后续在将每一帧视频帧拆分为宏块。每个宏块就是一个16*16的像素子块,故而此处会将其扩展为16的整数倍。
而降低每一帧视频帧的分辨率时,可以分别以每一帧视频帧的长宽(即逐行处理,逐列处理)为基础进行降低。
对所述每一帧视频帧的每一行像素点执行下述步骤:依次利用所述每一帧视频帧的每一行像素点中的每两个像素点的原像素值求均值,然后利用所述均值替换掉对应两个像素点的原像素值,使所述对应两个像素点变成一个像素点。参看图2A,是16*16的每一帧视频帧为例,在第1行中,利用第1、第2两个像素点的像素值(52、60)求均值(均值为56),然后将该均值填入第1、第2两个像素点中,使第1行的第1、第2两个像素点的像素值相同,都为56,进而可看做一个像素点。参看图2B,是逐行执行了上述步骤之后得到的结果,可以发现图2B中的分辨率在以行为单位执行了上述步骤之后,得到的分辨率会比图2A中的分辨率降低1/2。
对所述每一帧视频帧的每一列像素点执行下述步骤:依次利用所述每一帧视频帧的每一列像素点中的每两个像素点的原像素值求均值,然后利用所述均值替换掉对应两个像素点的原像素值,使所述对应两个像素点变成一个像素点。承接上述举例,会在图2B的基础上,以列为单位进行缩小,参看图2C,在第1列中,第1、第2两个像素点的像素值(56、80)求均值(均值为68),然后将该均值填入第1列的第1、第2两个像素点中,使第1、第2两个像素点的像素值相同,都为68,进而变为一个像素点。参看图2D,是逐行执行了上述步骤之后得到的结果。
当然,本发明的上述两个步骤顺序可以调换,即在逐列执行完毕之后,再逐行执行。
这样的目的,是为了降低每一帧视频帧的分辨率,进而降低每一帧视频帧的数据量,提高处理效率。
在最后的步骤中,会在每一帧视频帧的最边缘的上下左右的像素点的空白一侧都增加对应的像素点,参看图3A,粗黑框表示的是上下左右的像素点,由此可见,粗黑框中的每个像素点,三侧都是挨着其他的像素点的,只有一侧是空白的,本发明则在空白侧增加对应的像素点,参看图3B,虚线表示增加的像素点。将所述每一帧视频帧的边缘像素点值填入到所述对应的像素点中。即,可以看出,粗黑框中的像素值和虚线框中的对应的像素值是相同的。
这样做的目的是为了在进行帧间预测和帧内预测时增加的像素点可以作为参考对像素块进行预测,如帧内预测需要当前块上面一行像素和左边一列像素按照帧内预测模式进行预测,而帧间预测,增加的像素块可以作为像素块运动估计偏移的区域,故需要扩展每一帧视频帧。
本发明将每一帧视频帧上下左右边扩展的像素行或列数为4行或4列,可以增加帧间预测的区域并提高精度,例如在进行帧间预测时,比较通用的的是菱形运动估计算法,算法首先是计算当前宏块向左偏移一个像素计算代价值,然后分别计算向上,向下,向右........直到获得最优的运动矢量,很明显采样4行4列要其他的运动估计区域要大些,故精度要好些,进而在进行帧间运动估计时,能够增加运动矢量值计算准确率。
步骤13,确定出所述列表集合中第1行中所有视频帧的帧类型。
在确定列表集合中第1行中所有视频帧的帧类型的实施过程中,先确定出第1行中的第1个视频帧的帧类型,然后在确定第1行中的其他视频帧的帧类型时,以第1行中的前一帧视频帧为参考帧,计算第1行中的后一帧视频帧的帧类型。
在具体的实施过程中,有以下两种方式进行计算:
第一种方式:前一帧视频帧为参考帧,计算后一帧视频帧的代价值;
判断所述代价值是否满足预设条件,如果满足,则后一帧视频帧为P帧;如果不满足,则后一帧视频帧为B帧。作为一种可选的实施例,可以判断后一帧视频帧的代价值是否大于特定阈值和后一帧视频帧的总宏块数的乘积,如果大于,则后一帧视频帧为P帧;如果小于等于,则后一帧视频帧为B帧。
举例来说,Pi为帧列表中的第1行中的第1个视频帧。那么,首先以Pi为参考帧(指的是第1行中的前一个视频帧),计算出Pi+2(指的是第1行中的后一个视频帧)作为P帧的代价值,然后根据下述方式判断是Pi+2是P帧还是B帧。
首先,判断Pi+2作为P帧的代价值是否大于特定阈值和Pi+2的总宏块数的乘积(pthresh*((i+1)_mb_count))。如果大于,则Pi+2为P帧,如果小于等于,那么Pi+2为B帧。判断之后,可对i进行累加,以Pi+2为参考帧判断Pi+4(指的是第1行中的后一个视频帧的后一个视频帧)的代价值,然后继续上述步骤判断出Pi+4的帧类型,进而判断出所有视频帧的帧类型。
以表2中的内容举例来说,第1行中的视频帧1为参考帧,计算出第1行中的视频帧5的代价值,然后判断视频帧5作为P帧的代价值是否大于特定阈值和视频帧5的总宏块数的乘积。如果大于,则视频帧5为P帧,如果小于,那么视频帧5为B帧。判断之后,以视频帧5作为参考帧,判断视频帧9的代价值,然后继续上述步骤判断出视频帧9的帧类型,进而判断出第1行中的所有视频帧的帧类型。
而特定阈值pthresh也称作宏块p帧动量值。具体的计算方式如下:
特定阈值Pthresh=MAX(300-P_SENS_BIAS*(j-i-1),30)。
P_SENS_BIAS(P帧出现的频率)=50-i_bframe_bias。
其中,i_bframe_bias可预先设置,j-i表示第i帧到第j帧的间距(j=i+2),即前后帧的间距。通过预先设置的i_bframe_bias值和第i帧到第j帧的间距(j-i)确定P帧出现的概率,从而达到确定P帧、B帧数量。
例如,将i_bframe_bias变大,那么B帧出现的概率越高,P帧出现概率越低。
再例如,随着j-i的间距越大,pthresh*i_mb_count越小,P帧出现的概率越高,B帧出现概率越低。
第二种方式:
判断当前视频帧的帧内预测得到的宏块数是否大于当前视频帧的总宏块数的三分之一,若是,则当前视频帧为P帧,否则为B帧。
以此方法判断出第1行中的所有视频帧的帧类型。
举例来说,判断Pi+2的帧内预测获得的宏块数是否大于Pi+2的总宏块数三分之一。如果为真,那么Pi+2为P帧,否则为B帧。以表2中的内容举例来说,判断第1列中的视频帧5的帧内预测获得的宏块数是否大于视频帧5的总宏块数三分之一。如果为真,那么视频帧5为P帧,否则为B帧。
在计算代价值的过程中,本发明会根据代价值的类型来确定当前视频帧的帧内预测获得的宏块数。首先,以宏块为单位遍历当前视频帧的每一个宏块,计算宏块帧内预测代价值,计算宏块帧间预测代价值,如果是双向预测则先进行前向帧间预测然后进行后向帧间预测,最后根据权值混合前向和后向预测的宏块,取代价值最小进行累加,获得当前视频帧的最终代价值,除此之外,会累加帧内预测宏块数。
如果当前视频帧的最终代价值的类型为宏块帧内预测得到的代价值的类型,那么将计算宏块帧内预测代价值时得到的帧内预测宏块数作为当前视频帧的帧内预测获得的宏块数。
如果当前视频帧的最终代价值的类型不是宏块帧内预测得到的代价值的类型,那么将计算宏块帧间预测代价值时得到的帧内预测宏块数作为当前视频帧的帧内预测获得的宏块数。或者将双向预测时得到的帧内预测宏块数作为当前视频帧的帧内预测获得的宏块数。
实际上,不管是帧内预测、帧间预测还是双向预测,都会有帧内预测宏块数,只是宏块数的数目不同而已。
步骤14,基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型。
具体来说,首先基于相邻两列各自的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个视频帧的帧类型;然后基于前一列的第1个视频帧的后一个视频帧的帧类型和后一列的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个的后一个视频帧的帧类型,直到确定出前一列中所有视频帧的帧类型。也就是说,根据相邻两列的各自的第1个视频帧的帧类型,确定出前一列中的第2个视频帧的帧类型,然后再根据第2个视频帧的帧类型结合后一列的第1个视频帧的帧类型,确定出前一列的第3个视频帧的帧类型,以此类推,可确定出前1列中的所有视频帧中的帧类型。
进一步的,而由于n行实际上是多行(至少3行),所以本发明定义i为n行中的行变量值,在1到n之间依次取值(i依次取2到n-1)。
参看表3,是视频帧集合存入列表集合的状态请参看表1:
表3
第1列 …… 第j列 第m列
第1行 1 …… (j-1)*n+1 j*n+1
…… …… …… …… ……
第i行 i …… (j-1)*n+i j*n+i
第n行 n …… j*n m*n
故而,在不知道有几行的情况下,基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,具体包括:
基于第1列的第1个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i个视频帧的帧类型,其中,i依次取2到n-1;
基于第1列的第i个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i+1个视频帧的帧类型。以此类推,直到确定出第1列中的所有视频帧的帧类型。
举例来说,参看表2中的第1列和第2列中的视频帧,n=4,m=4,i和j依次取2、3。在根据表2举例时,首先则是利用第1列中的第1个视频帧(视频帧1)的帧类型和第2列中的第1个视频帧(视频帧5)的帧类型,确定出第1行中的第2个视频帧(视频帧2)的帧类型。再利用第1行的第2个视频帧(视频帧2)的帧类型和第2列中的第1个视频帧(视频帧5)的帧类型,确定出第1行中的第3个视频帧(视频帧3)的帧类型。在利用第1行中的第3个视频帧(视频帧3)的帧类型和第2列中的第1个视频帧(视频帧5)的帧类型,确定出第1行中的第4个视频帧(视频帧4)的帧类型。
由于第1行的视频帧的帧类型已经确定,故而以此类推,则可以确定出第1列、第2列、第3列的视频帧。
另外,由于本发明是根据相邻的两列视频帧的帧类型确定出前一列中所有视频帧的帧类型,故而,到最后的一列视频帧时,则需要另作处理。
在具体的实施过程中,由于视频帧的数目不定,故而在最后一排时,会出现两种情况:最后一列只有第1个视频帧的情况,以及最后一列有多个的情况。
若最后一列中的视频帧只有第1个视频帧的情况,实际上这个视频帧算是第1行中的最后一个视频帧,那么在确定出所述列表集合中第1行中所有视频帧的帧类型时,实际上就一并被处理了。
若最后一列中的视频帧有多个的情况,则按照现有的获取视频帧的帧类型的方式处理。
而在对帧类型的具体的判断过程中,则是通过下面的方式进行判断,具体有以下四种情况:
第一种情况:
若判断出第1列的第1个视频帧的帧类型为B帧,第j列的第1个视频帧的帧类型为P帧,则第1列的第i个视频帧的帧类型为B帧。
第二种情况:
若判断出第1列的第1个视频帧的帧类型为P帧,第j列的第1个视频帧的帧类型为B帧,则第1列的第i个视频帧的帧类型为B帧。
第三种情况:
若判断出第1列的第1个视频帧的帧类型为B帧,第j列的第1个视频帧的帧类型为B帧,则第1列的第i个视频帧的帧类型为B帧。
第四种情况:
若判断出第1列的第1个视频帧的帧类型为P帧,第j列的第1个视频帧的帧类型为P帧,则第1列的第i个视频帧的帧类型为P帧。
参看图4,基于同一发明构思,本发明实施例公开了一种判断视频帧的帧类型的装置,包括:
第一确定模块41,用于根据构成一视频流的视频帧集合的视频帧数目,确定出所述视频帧集合对应的列表集合,所述列表集合包含行结构和列结构;
存储模块42,用于将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中;
第二确定模块43,用于确定出所述列表集合中第1行中所有视频帧的帧类型;
第三确定模块44,用于基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型。
作为一种可选的实施例,所述列表集合中包括m*n个子结构;其中,n表示所述列表集合中的行数,m表示所述列表集合中的列数,n≥2且为正整数,m≥2且为正整数。
作为一种可选的实施例,所述存储模块42,具体用于将所述视频帧集合中的视频帧按照所述列数的排序依次存入所述列表集合中,进而使得第1列中的视频帧、第j列中的视频帧直到第m列中的视频帧的排列顺序依次为:
第1列中的视频帧从上到下依次为:第1帧视频帧、第2帧视频帧直到第n帧视频帧;
第j列中的视频帧从上到下依次为:第(j-1)*n+1帧视频帧、第(j-1)*n+2帧视频帧、直到第j*n帧视频帧;其中,j是m列中的列变量值,j依次取2到m-1;
第m列中的视频帧从上到下依次为:第j*n+1帧视频帧、第j*n+2帧视频帧、直到第m*n帧视频帧。
作为一种可选的实施例,所述第二确定模块43,具体包括:
基于相邻两列各自的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个视频帧的帧类型;
基于前一列的第1个视频帧的后一个视频帧的帧类型和后一列的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个的后一个视频帧的帧类型,直到确定出前一列中所有视频帧的帧类型。
作为一种可选的实施例,所述第三确定模块44,具体包括:
第一确定子模块,用于基于第1列的第1个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i个视频帧的帧类型,其中,i为n行中的行变量值,依次取2到n-1;
第二确定子模块,用于基于第1列的第i个视频帧的帧类型和第j列的第1个视频帧的帧类型,确定出第1列的第i+1个视频帧的帧类型,直到确定出第1列的所有视频帧的帧类型。
作为一种可选的实施例,所述第一确定子模块,具体用于:
若判断出第1列的第1个视频帧的帧类型为B帧,第j列的第1个视频帧的帧类型为P帧,则第1列的第i个视频帧的帧类型为B帧;
若判断出第1列的第1个视频帧的帧类型为P帧,第j列的第1个视频帧的帧类型为B帧,则第1列的第i个视频帧的帧类型为B帧。
作为一种可选的实施例,所述第一确定子模块,具体用于:
若判断出第1列的第1个视频帧的帧类型为B帧,第j列的第1个视频帧的帧类型为B帧,则第1列的第i个视频帧的帧类型为B帧;
若判断出第1列的第1个视频帧的帧类型为P帧,第j列的第1个视频帧的帧类型为P帧,则第1列的第i个视频帧的帧类型为P帧。
基于与前述实施例中同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。
通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:
本发明公开了提供一种判断视频帧的帧类型的方法及装置,根据构成一视频流的视频帧集合的视频帧数目确定出一列表集合,并存储该视频帧集合中的视频帧,然后确定出所述列表集合中第1行中所有视频帧的帧类型;基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,大大的减少了复杂的处理步骤,提高了计算效率。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (9)

1.一种判断视频帧的帧类型的方法,其特征在于,所述方法包括:
根据构成一视频流的视频帧集合的视频帧数目,确定出所述视频帧集合对应的列表集合,所述列表集合包含行结构和列结构;
将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中;
确定出所述列表集合中第1行中所有视频帧的帧类型,具体包括:基于相邻两列各自的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个视频帧的帧类型;基于前一列的第1个视频帧的后一个视频帧的帧类型和后一列的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个的后一个视频帧的帧类型,直到确定出前一列中所有视频帧的帧类型;
基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型。
2.如权利要求1所述的方法,其特征在于,所述列表集合中包括m*n个子结构;其中,n表示所述列表集合中的行数,m表示所述列表集合中的列数,n≥2且为正整数,m≥2且为正整数。
3.如权利要求2所述的方法,其特征在于,所述将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中,具体包括:
将所述视频帧集合中的视频帧按照所述列数的排序依次存入所述列表集合中,进而使得第1列中的视频帧、第j列中的视频帧直到第m列中的视频帧的排列顺序依次为:
第1列中的视频帧从上到下依次为:第1帧视频帧、第2帧视频帧直到第n帧视频帧;
第j列中的视频帧从上到下依次为:第(j-1)*n+1帧视频帧、第(j-1)*n+2帧视频帧、直到第j*n帧视频帧;其中,j是m列中的列变量值,j依次取2到m-1;
第m列中的视频帧从上到下依次为:第j*n+1帧视频帧、第j*n+2帧视频帧、直到第m*n帧视频帧。
4.如权利要求3所述的方法,其特征在于,所述基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型,具体包括:
基于第j-1列的第i-1个视频帧的帧类型和第j列的第i-1个视频帧的帧类型,确定出第j-1列的第i个视频帧的帧类型,其中,i为n行中的行变量值,依次取2到n-1;
基于第j-1列的第i个视频帧的帧类型和第j列的第i个视频帧的帧类型,确定出第j-1列的第i+1个视频帧的帧类型,直到确定出第j-1列的所有视频帧的帧类型。
5.如权利要求4所述的方法,其特征在于,所述基于第j-1列的第i-1个视频帧的帧类型和第j列的第i-1个视频帧的帧类型,确定出第j-1列的第i个视频帧的帧类型,具体包括:
若判断出第j-1列的第i-1个视频帧的帧类型为B帧,第j列的第i-1个视频帧的帧类型为P帧,则第j-1列的第i个视频帧的帧类型为B帧;
若判断出第j-1列的第i-1个视频帧的帧类型为P帧,第j列的第i-1个视频帧的帧类型为B帧,则第j-1列的第i个视频帧的帧类型为B帧。
6.如权利要求4所述的方法,其特征在于,所述基于第j-1列的第i-1个视频帧的帧类型和第j列的第i-1个视频帧的帧类型,确定出第j-1列的第i个视频帧的帧类型,具体包括:
若判断出第j-1列的第i-1个视频帧的帧类型为B帧,第j列的第i-1个视频帧的帧类型为B帧,则第j-1列的第i个视频帧的帧类型为B帧;
若判断出第j-1列的第i-1个视频帧的帧类型为P帧,第j列的第i-1个视频帧的帧类型为P帧,则第j-1列的第i个视频帧的帧类型为P帧。
7.一种判断视频帧的帧类型的装置,其特征在于,包括:
第一确定模块,用于根据构成一视频流的视频帧集合的视频帧数目,确定出所述视频帧集合对应的列表集合,所述列表集合包含行结构和列结构;
存储模块,用于将所述视频帧集合中的视频帧按照所述列表集合中的列结构依次存入所述列表集合中;
第二确定模块,用于确定出所述列表集合中第1行中所有视频帧的帧类型,具体包括:基于相邻两列各自的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个视频帧的帧类型;基于前一列的第1个视频帧的后一个视频帧的帧类型和后一列的第1个视频帧的帧类型,确定出前一列的第1个视频帧的后一个的后一个视频帧的帧类型,直到确定出前一列中所有视频帧的帧类型;
第三确定模块,用于基于相邻两列各自的第1个视频帧的帧类型,依次确定出前一列中所有视频帧的帧类型。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述方法的步骤。
CN201710907008.XA 2017-09-29 2017-09-29 一种判断视频帧的帧类型的方法及装置 Active CN107659822B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710907008.XA CN107659822B (zh) 2017-09-29 2017-09-29 一种判断视频帧的帧类型的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710907008.XA CN107659822B (zh) 2017-09-29 2017-09-29 一种判断视频帧的帧类型的方法及装置

Publications (2)

Publication Number Publication Date
CN107659822A CN107659822A (zh) 2018-02-02
CN107659822B true CN107659822B (zh) 2019-07-09

Family

ID=61116804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710907008.XA Active CN107659822B (zh) 2017-09-29 2017-09-29 一种判断视频帧的帧类型的方法及装置

Country Status (1)

Country Link
CN (1) CN107659822B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277722A (zh) * 1998-06-27 2000-12-20 皇家菲利浦电子有限公司 对编码的a/v序列实行精确到帧的编辑
CN1741615A (zh) * 2004-08-27 2006-03-01 泰德广播电视公司 视频压缩中的帧类型的控制
CN101662680B (zh) * 2008-08-28 2012-07-04 华为技术有限公司 一种视频流性能测量方法、装置及系统
CN103634606A (zh) * 2012-08-21 2014-03-12 腾讯科技(深圳)有限公司 视频编码方法和装置
CN103716640A (zh) * 2010-12-17 2014-04-09 华为技术有限公司 帧类型的检测方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI244339B (en) * 2004-10-20 2005-11-21 Sunplus Technology Co Ltd Memory managing method and video data decoding method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1277722A (zh) * 1998-06-27 2000-12-20 皇家菲利浦电子有限公司 对编码的a/v序列实行精确到帧的编辑
CN1741615A (zh) * 2004-08-27 2006-03-01 泰德广播电视公司 视频压缩中的帧类型的控制
CN101662680B (zh) * 2008-08-28 2012-07-04 华为技术有限公司 一种视频流性能测量方法、装置及系统
CN103716640A (zh) * 2010-12-17 2014-04-09 华为技术有限公司 帧类型的检测方法和装置
CN103634606A (zh) * 2012-08-21 2014-03-12 腾讯科技(深圳)有限公司 视频编码方法和装置

Also Published As

Publication number Publication date
CN107659822A (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
CN107360431B (zh) 一种帧类型的判断方法及装置
CN100463527C (zh) 一种多视点视频图像视差估计的方法
CN104067619B (zh) 视频解码器、视频解码方法以及视频解码程序的记录介质
CN104301724B (zh) 视频处理方法、编码设备和解码设备
US9883200B2 (en) Method of acquiring neighboring disparity vectors for multi-texture and multi-depth video
JP2006014343A5 (zh)
US8724702B1 (en) Methods and systems for motion estimation used in video coding
CN103248895B (zh) 一种用于hevc帧内编码的快速模式估计方法
CN112055203B (zh) 帧间预测方法、视频编码方法及其相关装置
CN104754338A (zh) 一种帧内预测模式的选择方法和装置
CN107277519B (zh) 一种判断视频帧的帧类型的方法及电子设备
CN104869403A (zh) 一种基于x264压缩视频的镜头分割方法
Lee et al. Fast CU size decision algorithm using machine learning for HEVC intra coding
CN101917618B (zh) 多视点视频编码分层b帧预测结构的计算复杂度控制方法
CN110419214A (zh) 帧内预测模式搜索方法及装置、视频编码方法及装置以及记录介质
CN1852442A (zh) 一种分层运动估计方法和超大规模集成电路
JP5566786B2 (ja) 誤差絶対値和の推定システム及び推定方法
CN100474932C (zh) 基于最佳预测模式概率的视频帧内图像快速编码方法
CN107659822B (zh) 一种判断视频帧的帧类型的方法及装置
CN102801982A (zh) 一种应用于视频压缩且基于块积分的快速运动估计方法
US20090022228A1 (en) Method and system for selection of reference picture and mode decision
CN100373952C (zh) 一种基于mpeg-4的视频对象快速运动估值方法
CN110139098A (zh) 基于决策树的高效率视频编码器帧内快速算法选择方法
CN104994394B (zh) 编码器运动估算方法及装置
CN110049339A (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
TR01 Transfer of patent right

Effective date of registration: 20240604

Address after: Room 601, 6th Floor, Building 5, Lianhuayuan, Haidian District, Beijing, 100080

Patentee after: Aerospace Guosheng Technology Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right