视频编码方法、装置、视频编码设备及存储介质与流程

文档序号:25782085发布日期:2021-07-09 09:52阅读:130来源:国知局
视频编码方法、装置、视频编码设备及存储介质与流程

1.本申请实施例涉及计算机技术领域,特别涉及一种视频编码方法、装置、视频编码设备及存储介质。


背景技术:

2.现阶段的主流视频压缩编码框架通常包括预测、变换和量化等模块,对预测得到的残差图像进行变换得到变换系数,再对变换系数进行量化。高效率视频编码(high efficiency video coding,hevc)标准提出了变换跳过(transform skip)技术,即对于帧内4
×
4大小的亮度或色度残差块,可以选择跳过变换直接进行量化以及后续编码过程,以提高编码效率。
3.相关技术中,用户可以利用变换跳过工具实现变换跳过模式,对于待压缩编码的一个或一批视频,若用户确认可以利用变换跳过模式,则手动开启变换跳过工具,使变换跳过工具在进行编码前在码流的图片头信息中写入一个标志位,该标志位用于指示该序列开启变换跳过模式。
4.然而,变换跳过技术对于视频中的屏幕内容场景能够大幅度提升编码率,且编码复杂度不高,而对于自然内容场景,该技术会导致编码质量受损,并且会增加编码复杂度。


技术实现要素:

5.本申请实施例提供了一种视频编码方法、装置、视频编码设备及存储介质。所述技术方案如下:
6.一方面,本申请提供了一种视频编码方法,所述方法包括:
7.基于当前视频帧序列中当前视频帧的亮度分布情况对所述当前视频帧进行类别检测,得到视频帧检测结果,所述视频帧检测结果用于指示所述当前视频帧属于屏幕内容帧或自然内容帧,屏幕内容是指由电子设备生成的图像,自然内容是指由摄像头采集得到的图像;
8.响应于所述当前视频帧序列中全部视频帧检测完毕,基于各个视频帧的所述视频帧检测结果确定所述当前视频帧序列的序列检测结果,所述序列检测结果用于指示所述当前视频帧序列为屏幕内容序列或自然内容序列;
9.基于所述序列检测结果控制变换跳过模式开启或关闭,对所述当前视频帧序列进行编码,其中,当所述当前视频帧序列为所述屏幕内容序列时开启所述变换跳过模式,当所述当前视频帧序列为所述自然内容序列时关闭所述变换跳过模式。
10.另一方面,本申请提供了一种视频编码装置,所述装置包括:
11.检测模块,用于基于当前视频帧序列中当前视频帧的亮度分布情况对所述当前视频帧进行类别检测,得到视频帧检测结果,所述视频帧检测结果用于指示所述当前视频帧属于屏幕内容帧或自然内容帧,屏幕内容是指由电子设备生成的图像,自然内容是指由摄像头采集得到的图像;
12.确定模块,用于响应于所述当前视频帧序列中全部视频帧检测完毕,基于各个视频帧的所述视频帧检测结果确定所述当前视频帧序列的序列检测结果,所述序列检测结果用于指示所述当前视频帧序列为屏幕内容序列或自然内容序列;
13.控制模块,用于基于所述序列检测结果控制变换跳过模式开启或关闭,对所述当前视频帧序列进行编码,其中,当所述当前视频帧序列为所述屏幕内容序列时开启所述变换跳过模式,当所述当前视频帧序列为所述自然内容序列时关闭所述变换跳过模式。
14.另一方面,本申请提供了一种视频编码设备,所述视频编码设备包括处理器和存储器;所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的视频编码方法。
15.另一方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的视频编码方法。
16.根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。视频编码设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该视频编码设备实现上述方面的各种可选实现方式中提供的视频编码方法。
17.本申请实施例提供的技术方案带来的有益效果至少包括:
18.本申请实施例中,通过当前视频帧内的亮度分布情况确定当前视频帧是否为屏幕内容帧,进而基于各个视频帧的类别确定当前视频帧序列是否为屏幕内容序列,以控制变换跳过模式的开启和关闭,实现自适应地使能或去使能变换跳过模式,能够自动根据视频内容确定合适的视频编码方式,避免一味开启变换跳过模式导致视频中自然内容图像的编码质量降低且编码复杂度增加的问题,提高了视频编码的质量和效率。
附图说明
19.图1是本申请一个示例性实施例提供的视频编码方法的流程图;
20.图2是本申请另一个示例性实施例提供的视频编码方法的流程图;
21.图3是本申请另一个示例性实施例提供的视频编码方法的流程图;
22.图4是本申请一个示例性实施例提供的视频帧的示意图;
23.图5是本申请另一个示例性实施例提供的视频编码方法的流程图;
24.图6是本申请一个示例性实施例提供的检测当前视频帧的流程图;
25.图7是本申请一个示例性实施例提供的检测当前视频帧序列的流程图;
26.图8是本申请一个示例性实施例提供的视频编码装置的结构框图;
27.图9是本申请一个示例性实施例提供的视频编码设备的结构框图。
具体实施方式
28.为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
29.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关
系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
30.变换跳过技术在hevc标准中是一个序列级的工具,需要在码流的图片头信息中写入一个标志位,表示是否对于该序列使能或者关闭变换跳过技术。使能变换跳过技术之后,对于码流中的所有帧内4x4的单元都会写入一个标志位表示该单元是否跳过变换操作。变换跳过技术对于视频中的屏幕内容场景能够大幅度提升编码率,且编码复杂度不高,而对于自然内容场景,该技术会导致编码质量受损,并且会增加编码复杂度。相关技术中,用户可以利用变换跳过工具实现变换跳过模式,对于待压缩编码的一个或一批视频,若用户确认可以利用变换跳过模式,则手动开启变换跳过工具,使变换跳过工具在进行编码前在码流的图片头信息中写入一个标志位,该标志位用于指示该序列开启变换跳过模式。
31.然而,实际应用过程中,视频内容通常比较复杂,可能既包含屏幕内容也包含自然内容。例如,在视频会议过程中,各个参与方的摄像头实时采集自然内容,当某一参与方想要展示某一电子设备所显示的屏幕内容(例如电子文档),并将会议视频画面切换至该电子设备的屏幕画面,则实时视频流中显示该屏幕画面的部分则为屏幕内容序列。因此,根据用户的经验设置变换跳过模式的开启或关闭,可能会导致编码方式不适用于部分视频内容,进而导致编码效率降低以及编码质量下降等问题。
32.为了解决上述技术问题,本申请提供了一种视频编码方法。本申请各个实施例提供视频编码方法用于具有视频编码功能的视频编码设备,该视频编码设备可以是智能手机、平板电脑、电子书阅读器、个人便携式计算机、台式计算机等。通过本申请实施例提供的视频编码方法,视频编码设备可以通过对视频帧进行类别检测,确定视频帧以及视频帧序列是否为屏幕内容序列,并根据检测结果控制变换跳过模式的开启和关闭,以实现对变换跳过模式的自适应使能,提升编码压缩率以及编码效率。
33.图1示出了本申请一个示例性实施例提供的视频编码方法的流程图。本实施例以该方法用于能够对视频进行压缩编码的视频编码设备为例进行说明,该方法包括如下步骤:
34.步骤101,基于当前视频帧序列中当前视频帧的亮度分布情况对当前视频帧进行类别检测,得到视频帧检测结果。
35.上述视频帧检测结果用于指示当前视频帧属于屏幕内容帧或自然内容帧。其中,屏幕内容是指由电子设备生成的图像,能够直接从计算机设备、移动视频编码设备等电子设备的图像显示单元捕获,例如计算机图形、计算机文本画面、计算机动画等;自然内容是指由摄像头采集得到的图像,即对真实环境进行拍摄得到的图像,例如游客利用相机拍摄到的旅行视频,以及美妆主播利用智能手机拍摄到的人像视频等。
36.本申请实施例中的屏幕内容帧并非仅包含屏幕内容的画面帧,还包括屏幕内容与自然内容混合的画面帧,相应的,自然内容帧也并非仅包含自然内容的画面帧,还包括屏幕内容与自然内容混合的画面帧。例如,游戏直播视频的视频画面中,既包含游戏画面也包含主播的人像画面,但该视频画面以游戏画面为主,属于屏幕内容帧。
37.屏幕内容通常色调离散、边缘锐利、亮度均匀平坦的区域较多,而自然内容色调连续且纹理复杂,亮度变化明显。在一种可能的实施方式中,视频编码设备基于当前视频帧中的亮度分布情况,识别当前视频帧的类别,判断其为屏幕内容帧或自然内容帧。
38.步骤102,响应于当前视频帧序列中全部视频帧检测完毕,基于各个视频帧的视频帧检测结果确定当前视频帧序列的序列检测结果。
39.其中,序列检测结果用于指示当前视频帧序列为屏幕内容序列或自然内容序列。在一种可能的实施方式中,视频编码设备基于当前视频帧序列中屏幕内容帧以及自然内容帧的比例,确定序列检测结果。
40.可选的,视频编码设备对当前视频帧序列中所有的视频帧进行类别检测,得到序列检测结果;或者,视频编码设备将当前视频帧序列中的部分视频帧(例如前50%的连续视频帧,或者,每隔预定时长或预定帧数抽取到的视频帧等)确定为需要检测的目标视频帧,并基于目标视频帧的视频帧检测结果得到序列检测结果,本申请实施例对此不作限定。
41.步骤103,基于序列检测结果控制变换跳过模式开启或关闭,对当前视频帧序列进行编码。
42.其中,当当前视频帧序列为屏幕内容序列时,视频编码设备开启变换跳过模式;当当前视频帧序列为自然内容序列时,视频编码设备关闭变换跳过模式。
43.在一种可能的实施方式中,视频编码设备基于序列检测结果控制视频编码程序中变换跳过工具的开启和关闭,以实现对变换跳过模式的灵活应用,从而使视频编码方式能够符合视频内容对于编码质量的需求。
44.可选的,视频编码设备基于序列检测结果调整变换跳过模式的状态后,保持当前状态不变并继续进行下一视频帧序列的类别检测,并根据下一视频帧序列的序列检测结果确定是否需要改变变换跳过模式的状态;或者,开发人员可以基于大部分待编码视频的类型,手动设置变换跳过模式默认开启或关闭,每改变一次变换跳过模式的状态,即在序列编码完成后自动恢复至默认状态,本申请实施例对此不作限定。
45.综上所述,本申请实施例中,通过当前视频帧内的亮度分布情况确定当前视频帧是否为屏幕内容帧,进而基于各个视频帧的类别确定当前视频帧序列是否为屏幕内容序列,以控制变换跳过模式的开启和关闭,实现自适应地使能或去使能变换跳过模式,能够自动根据视频内容确定合适的视频编码方式,避免一味开启变换跳过模式导致视频中自然内容图像的编码质量降低且编码复杂度增加的问题,提高了视频编码的质量和效率。
46.本申请实施例中视频编码方法的系统架构包含屏幕内容检测模块和自适应使能(enable)变换跳过技术模块,视频编码设备首先通过屏幕内容检测模块对视频帧序列中的各个视频帧进行类别检测,再基于各个视频帧的视频帧检测结果,通过自适应使能变换跳过技术模块确定控制变换跳过模式的决策,即开启或关闭变换跳过模式。图2示出了视频编码设备进行视频编码的流程:步骤201,将待检测的视频帧输入屏幕内容检测模块;步骤202,输出视频帧检测结果;步骤203,判断是否所有视频帧检测完成,若是,则执行步骤204,若否,则返回步骤201;步骤204,将各个视频帧的视频帧检测结果输入自适应使能变换跳过技术模块;步骤205,输出变换跳过模式的控制方式。
47.在一种可能的实施方式中,为了精确地对当前视频帧进行类别检测,视频编码设备按照预设尺寸将当前视频帧进行分块处理,依次对划分得到的各个检测块进行类别检测,从而基于各个检测块的识别结果得到当前视频帧的视频帧检测结果。图3示出了本申请另一个示例性实施例提供的视频编码方法的流程图。本实施例以该方法用于能够对视频进行压缩编码的视频编码设备为例进行说明,该方法包括如下步骤:
48.步骤301,对当前视频帧进行分块处理,得到至少两个互不重叠且尺寸相同的检测块。
49.视频编码设备按照预设的检测块尺寸,对当前视频帧进行分块处理,且各个检测块之间互不重叠。例如,当前视频帧的宽为w,高为h,检测块的宽为n,高为m,则视频编码设备在进行分块处理后得到(w*h)/(n*m)个检测块。
50.步骤302,基于各个检测块的亮度级数,确定检测块的识别结果,识别结果用于指示检测块是否为屏幕内容检测块,亮度级数用于表征检测块涉及到的亮度的种类数。
51.亮度级数是指检测块中像素点对应的亮度的种类数,例如,某一检测块中一部分像素点的亮度为15,一部分像素点的亮度为17,还有一部分像素点的亮度为18,则该检测块的亮度级数为3;再比如,某一检测块中所有像素点的亮度均为0,则该检测块的亮度级数为1。
52.由于屏幕内容对应的图像亮度变化平缓,而自然内容对应的图像亮度变化剧烈,因此屏幕内容对应的检测块的亮度级数较小,而自然内容对应的检测块的亮度级数较大。为了精确地识别检测块的类型,在一种可能的实施方式中,步骤302包括如下步骤:
53.步骤302a,基于当前检测块的亮度级数,确定当前检测块的第一识别结果,第一识别结果用于指示检测块为有效检测块或无效检测块。
54.其中,无效检测块是指亮度和色度变化不大的检测块,比如图像中的纯色背景,如图4所示,图像中大部分内容为纯黑色的背景,前景内容仅包含少量的文字,其中仅包含黑色背景的检测块即为无效检测块。对于纯色背景部分,是否跳过变换编码对其编码效率以及编码质量影响较小,因此视频编码设备需要排除纯色内容对于检测结果的干扰,将非纯色内容作为有效内容,确定屏幕内容在有效内容中所占的比例。在一种可能的实施方式中,步骤303a包括如下步骤:
55.步骤一,响应于当前检测块的亮度级数大于或等于第一级数阈值,确定第一识别结果为当前检测块属于有效检测块。
56.视频编码程序中预先设置有第一级数阈值,该第一级数阈值用于划分有效检测块和无效检测块。由于无效检测块为纯色内容对应的检测块,其中各个像素点的亮度通常相同,即亮度级数较小,因此该第一级数阈值也较小(例如3)。
57.在一种可能的实施方式中,当lumathresh1≤lumanum,0≤lumathresh1时,视频编码设备确定当前检测块为有效检测块,其中,lumanum为当前检测块的亮度级数,lumathresh1为第一级数阈值。
58.若当前检测块属于有效检测块,则视频编码设备更新totaldetectcu,totaldetectcu为当前视频帧的有效检测块总数。
59.示意性的,第一级数阈值为3,若某一检测块中包含亮度为255、亮度为254以及亮度为253的像素点,则确定该检测块为有效检测块。
60.步骤二,响应于当前检测块的亮度级数小于第一级数阈值,确定第一识别结果为当前检测块属于无效检测块。
61.当lumathresh1>lumanum,0≤lumathresh1时,视频编码设备确定当前检测块为无效检测块。
62.步骤302b,响应于第一识别结果指示当前检测块为有效检测块,基于当前检测块
的亮度分布情况,确定当前检测块的第二识别结果,第二识别结果用于指示当前检测块为屏幕内容检测块或自然内容检测块。
63.若当前检测块为有效检测块,则视频编码设备继续根据其亮度分布情况,判断当前检测块是否属于屏幕内容检测块。在一种可能的实施方式中,步骤302b包括如下步骤:
64.步骤三,响应于当前检测块的亮度级数大于第二级数阈值,确定第二识别结果为当前检测块属于自然内容检测块,第二级数阈值大于第一级数阈值。
65.由于屏幕内容亮度变化平缓,因此屏幕内容检测块的亮度级数通常较小。视频编码设备可以首先将亮度级数较大的检测块直接确定为自然内容检测块,即利用第二级数阈值初步筛选出可能的屏幕内容检测块。为了确保不会将屏幕内容检测块确定为自然内容检测块,该第二级数阈值为一个较大的值(例如10)。
66.在一种可能的实施方式中,若lumanum∈[lumathresh1,colorthresh],则视频编码设备执行步骤四,若lumanum>colorthresh,则视频编码设备将其确定为自然内容检测块,其中,colorthresh为第二级数阈值。
[0067]
步骤四,响应于当前检测块的亮度级数小于或等于第二级数阈值,基于当前检测块的亮度方差确定第二识别结果。
[0068]
对于亮度级数大于第一级数阈值且小于第二级数阈值的检测块,视频编码设备无法直接确定其类别。开发人员可以利用屏幕内容边缘锐利、亮度差异较大的特点,使视频编码设备通过统计当前检测块的亮度方差,确定当前检测块是否属于屏幕内容检测块。在一种可能的实施方式中,步骤四还包括如下步骤:
[0069]
响应于亮度方差大于方差阈值,确定第二识别结果为当前检测块属于屏幕内容检测块。
[0070]
响应于亮度方差小于方差阈值,确定第二识别结果为当前检测块属于自然内容检测块。
[0071]
在一种可能的实施方式中,若varthresh<blockvar,0≤varthresh,则视频编码设备确定当前检测块为屏幕内容检测块,并更新screenblocknum,其中,blockvar为当前检测块的亮度方差,varthresh为方差阈值,screenblocknum为当前视频帧内屏幕内容检测块的总数。
[0072]
步骤303,基于各个检测块的识别结果,确定视频帧检测结果。
[0073]
视频编码设备每确定出一个检测块的识别结果,判断当前视频帧是否遍历完成,若是,则基于各个检测块的识别结果,通过确定屏幕内容检测块的占比,确定当前视频帧的视频帧检测结果。在一种可能的实施方式中,步骤303包括如下步骤:
[0074]
步骤303a,响应于第一屏幕占比大于或等于第一比例阈值,确定第一屏幕占比与第二比例阈值的对应关系,第一屏幕占比为屏幕内容检测块占全部检测块的比例。
[0075]
首先,视频编码设备确定出屏幕内容块占当前视频帧中所有检测块的比例,即计算screenblockpercent=screenblocknum/((w*h)/(n*m)),其中,screenblockpercent为第一屏幕内容占比,即屏幕内容检测块占全部检测块的比例,screenblocknum为前视频帧内屏幕内容检测块的总数,w为当前视频帧的宽,h为当前视频帧的高,n为检测块的宽,m为检测块的高。视频编码设备基于第一屏幕内容占比以及第二屏幕内容占比(即屏幕内容检测块占有效检测块的比例),确定当前视频帧的视频帧检测结果。
[0076]
若第一屏幕内容占比大于第一比例阈值(例如0.1),即屏幕内容检测块占所有检测块的比例较高,则视频编码设备进一步利用第二比例阈值判断当前视频帧是否属于屏幕内容视频帧。通常该第二比例阈值大于第一比例阈值(例如0.3),但实际应用中也可以设置为等于第一比例阈值或小于第一比例阈值。步骤303b,响应于所述第一屏幕占比大于或等于所述第二比例阈值,确定所述视频帧检测结果为所述当前视频帧属于所述屏幕内容视频帧。
[0077]
若屏幕内容检测块占全部检测块的比例既高于第一比例阈值又高于第二比例阈值,则确定屏幕内容为当前视频帧的主要内容,视频编码设备将当前视频帧确定为屏幕内容视频帧。
[0078]
若第一比例阈值与第二比例阈值相等或第二比例阈值小于第一比例阈值,则不存在第一屏幕占比大于或等于第一比例阈值且小于第二比例阈值的情况。
[0079]
步骤303c,响应于第一屏幕占比小于第一比例阈值,确定第二屏幕占比,第二屏幕占比为屏幕内容检测块占有效检测块的比例。
[0080]
若第一屏幕占比小于第一比例阈值(例如0.1),即屏幕内容检测块占所有检测块的比例极低,这很可能是由于当前视频帧中存在大片纯色背景导致的,为了排除纯色背景的干扰,视频编码设备进一步利用第二屏幕占比(即屏幕内容检测块占有效检测块的比例)判断是否属于屏幕内容视频帧。
[0081]
步骤303d,响应于第二屏幕占比大于或等于第三比例阈值,确定视频帧检测结果为当前视频帧属于屏幕内容视频帧。
[0082]
若进一步确定出第二屏幕占比大于第三比例阈值,则说明当前视频帧中确实存在大量纯色内容,对于非纯色内容,其中的屏幕内容占比较高,因此视频编码设备确定当前视频帧为屏幕内容视频帧。
[0083]
值得一提的是,上述步骤303a至步骤303b,与步骤303c至步骤303d为步骤303在两种情况下的分支,并非连续执行的逻辑关系。
[0084]
步骤303e,响应于当前视频帧中不包含有效检测块,或,第一屏幕占比大于或等于第一比例阈值且小于第二比例阈值,或,第一屏幕占比小于第一比例阈值且第二屏幕占比小于第三比例阈值,确定视频帧检测结果为当前视频帧属于自然内容视频帧。
[0085]
若第一屏幕占比大于或等于第一比例阈值(例如0.1),但小于第二比例阈值(例如0.3),即屏幕内容检测块占所有检测块的比例较低,但通常不存在大量纯色内容,因此视频编码设备将当前视频帧确定为自然内容视频帧。
[0086]
若第一屏幕占比小于第一比例阈值(例如0.1),即屏幕内容检测块占所有检测块的比例很低,这很可能是由于当前视频帧中存在大片纯色背景导致的,为了排除纯色背景的干扰,视频编码设备进一步利用第二屏幕占比(即屏幕内容检测块占有效检测块的比例)判断是否属于屏幕内容视频帧。若进一步确定出第二屏幕占比小于第三比例阈值(例如0.1),则说明当前视频帧中存在大量纯色内容且非纯色内中屏幕内容占比较低,或者当前视频帧的有效内容以自然内容为主,因此视频编码设备将当前视频帧确定为自然内容视频帧。
[0087]
若当前视频帧中所有的检测块均为无效检测块,即当前视频帧的图像内容为纯色图像,是否开启变换跳过模式对于纯色图像的编码效率以及编码质量差异不大,为了节省
打开变换跳过工具造成的码率开销,视频编码设备将当前视频帧归类为自然内容视频帧。
[0088]
值得一提的是,步骤303e,与上述步骤303a至步骤303b、步骤303c至步骤303d为步骤303在三种情况下的分支,并非连续执行的逻辑关系。
[0089]
示意性的,图5示出了视频编码设备对当前视频帧进行类别检测的流程:步骤501,获取当前视频帧中待检测的检测块;步骤502,统计当前检测块的亮度级数;步骤503,判断亮度级数是否大于第一级数阈值,若是,则确定当前检测块为有效检测块,并执行步骤504,若否,则确定当前检测块为无效检测块,并执行步骤509;步骤504,更新有效检测块总数;步骤505,判断亮度级数是否小于第二级数阈值,若是,则执行步骤506,若否,则确定当前检测块为自然内容检测块,并执行步骤509;步骤506,计算当前检测块的亮度方差;步骤507,判断亮度方差是否大于方差阈值,若是,则执行步骤508,若否,则确定当前检测块为自然内容检测块,并执行步骤509;步骤508,确定当前检测块为屏幕内容检测块,并更新屏幕内容检测块总数;步骤509,判断是否遍历所有检测块,若是,则执行步骤510,若否,则返回步骤501;步骤510,基于检测块总数、有效检测块总数预计屏幕内容检测块总数,确定当前检测帧的类别。
[0090]
步骤304,响应于当前视频帧序列中全部视频帧检测完毕,基于各个视频帧的视频帧检测结果确定当前视频帧序列的序列检测结果。
[0091]
步骤305,基于序列检测结果控制变换跳过模式开启或关闭,对当前视频帧序列进行编码。
[0092]
步骤304和步骤305的具体实施方式可以参考上述步骤102和步骤103,本申请实施例在此不再赘述。
[0093]
本申请实施例中,通过对当前视频帧进行分块处理,针对各个检测块进行类别检测,并基于视频帧中各个检测块的识别结果确定视频帧检测结果,进而得到视频帧序列的类别,能够提高检测结果的准确性;利用第一级数阈值和第二级数阈值初步筛选出屏幕内容检测块,并排除无效检测块,提高了检测效率。
[0094]
本申请实施例中的视频编码方法可以应用于离线视频的编码压缩,也可以应用于对实时视频流的编码(例如直播、视频通话等场景的视频编码),当视频编码设备采用本申请的视频编码方法时,可以按照预设方式对实时视频流进行截取,检测截取得到的视频帧序列的类别,从而针对视频帧序列进行变换跳过模式的自动控制。图6示出了本申请另一个示例性实施例提供的视频编码方法的流程图。本实施例以该方法用于能够对视频进行压缩编码的视频编码设备为例进行说明,该方法包括如下步骤:
[0095]
步骤601,获取实时视频流。
[0096]
对于直播、视频通话等场景,视频编码设备(视频推流端)获取实时视频流,并进行以下的类别检测操作,控制对实时视频流的编码方式。
[0097]
步骤602,基于预设编码时长或预设编码帧数,对实时视频流进行截取,得到当前视频帧序列。
[0098]
例如,视频编码设备以预设编码时长(比如0.5s)为单位,截取实时视频流中的视频帧,得到当前视频帧序列;或者以预设编码帧数(比如100帧)为单位,截取实时视频流中的视频帧,得到当前视频帧序列。
[0099]
对实时视频流进行截取,检测截取得到的视频帧序列的类别,从而针对视频帧序
列进行变换跳过模式的自动控制。在其它可能的实施方式中,视频编码设备还可以采用本申请提供的视频编码方法,实现帧级(picture)或片级(slice)的视频编码,针对帧或片进行变换跳过模式的自适应使能。
[0100]
步骤603,基于当前视频帧序列中当前视频帧的亮度分布情况对当前视频帧进行类别检测,得到视频帧检测结果。
[0101]
步骤603的具体实施方式可以参考上述步骤101,本申请实施例在此不再赘述。
[0102]
步骤604,响应于当前视频帧序列中屏幕内容帧的比例高于第二比例阈值,确定序列检测结果为当前视频帧序列属于屏幕内容序列。
[0103]
视频编码程序中预先设置有第二比例阈值,该第二比例阈值用于区分屏幕内容序列和自然内容序列。若当前视频帧序列中,屏幕内容帧的比例高于第二比例阈值(例如50%),说明屏幕内容帧的比例较高,视频编码设备确定当前视频帧序列为屏幕内容序列。
[0104]
在一种可能的实施方式中,假设总的检测帧数为numdetectionframe,视频编码设备统计屏幕内容帧的总帧数numscreenframe,若numscreenframe<numdetectionframe
×
framethresh,则确定当前检测序列为自然内容序列,其中,framethresh为一个大于或等于0且小于或等于1的常数。
[0105]
步骤605,响应于当前视频帧序列中屏幕内容帧的比例低于第二比例阈值,确定序列检测结果为当前视频帧序列属于自然内容序列。
[0106]
示意性的,图7示出了视频编码设备基于各个视频帧的视频帧检测结果确定序列检测结果的流程:步骤701,获取所有视频帧的视频帧检测结果;步骤702,统计屏幕内容视频帧的帧数;步骤703,判断屏幕内容视频帧的比例是否高于第二比例阈值,若是,则执行步骤704,若否,则执行步骤705;步骤704,确定当前视频帧序列为屏幕内容序列;步骤705,确定当前视频帧序列为自然内容序列。
[0107]
步骤606,基于序列检测结果控制变换跳过模式开启或关闭,对当前视频帧序列进行编码。
[0108]
步骤606的具体实施方式可以参考上述步骤103,本申请实施例在此不再赘述。
[0109]
步骤607,向目标设备发送经过编码的实时视频流。
[0110]
视频编码设备按照当前视频序列的检测结果控制变换跳过模式开启或关闭,对当前视频序列进行编码,并在编码完成后向目标设备发送(经后台服务器转发至目标设备),实现对视频流编码方式的灵活切换,以保证编码效率和编码质量。
[0111]
本申请实施例中的视频编码方法,对于自然内容序列能够平均提升0.1%的压缩率,以及提升3%编码速度,并且没有增加内存使用率;对于屏幕内容序列的压缩效率和编码速度均没有影响,并且对于个别的屏幕内容序列还有压缩效率提升。从线上应用来看,本发明可以节省0.1%的带宽成本以及3%的服务器计算资源。
[0112]
图8是本申请一个示例性实施例提供的视频编码装置的结构框图,该装置包括:
[0113]
检测模块801,用于基于当前视频帧序列中当前视频帧的亮度分布情况对所述当前视频帧进行类别检测,得到视频帧检测结果,所述视频帧检测结果用于指示所述当前视频帧属于屏幕内容帧或自然内容帧,屏幕内容是指由电子设备生成的图像,自然内容是指由摄像头采集得到的图像;
[0114]
确定模块802,用于响应于所述当前视频帧序列中全部视频帧检测完毕,基于各个
视频帧的所述视频帧检测结果确定所述当前视频帧序列的序列检测结果,所述序列检测结果用于指示所述当前视频帧序列为屏幕内容序列或自然内容序列;
[0115]
控制模块803,用于基于所述序列检测结果控制变换跳过模式开启或关闭,对所述当前视频帧序列进行编码,其中,当所述当前视频帧序列为所述屏幕内容序列时开启所述变换跳过模式,当所述当前视频帧序列为所述自然内容序列时关闭所述变换跳过模式。
[0116]
综上所述,本申请实施例中,通过当前视频帧内的亮度分布情况确定当前视频帧是否为屏幕内容帧,进而基于各个视频帧的类别确定当前视频帧序列是否为屏幕内容序列,以控制变换跳过模式的开启和关闭,实现自适应地使能或去使能变换跳过模式,能够自动根据视频内容确定合适的视频编码方式,避免一味开启变换跳过模式导致视频中自然内容图像的编码质量降低且编码复杂度增加的问题,提高了视频编码的质量和效率。
[0117]
可选的,所述检测模块801,包括:
[0118]
处理单元,用于对当前视频帧进行分块处理,得到至少两个互不重叠且尺寸相同的检测块;
[0119]
第一确定单元,用于基于各个检测块的亮度级数,确定所述检测块的识别结果,所述识别结果用于指示所述检测块是否为屏幕内容检测块,所述亮度级数用于表征所述检测块涉及到的亮度的种类数;
[0120]
第二确定单元,用于基于各个检测块的所述识别结果,确定所述视频帧检测结果。
[0121]
可选的,所述第一确定单元,还用于:
[0122]
基于当前检测块的所述亮度级数,确定所述当前检测块的第一识别结果,所述第一识别结果用于指示所述检测块为有效检测块或无效检测块;
[0123]
响应于所述第一识别结果指示所述当前检测块为所述有效检测块,基于所述当前检测块的亮度分布情况,确定所述当前检测块的第二识别结果,所述第二识别结果用于指示所述当前检测块为所述屏幕内容检测块或自然内容检测块。
[0124]
可选的,所述第一确定单元,还用于:
[0125]
响应于所述当前检测块的所述亮度级数大于或等于第一级数阈值,确定所述第一识别结果为所述当前检测块属于所述有效检测块;
[0126]
响应于所述当前检测块的所述亮度级数小于所述第一级数阈值,确定所述第一识别结果为所述当前检测块属于所述无效检测块。
[0127]
可选的,所述第一确定单元,还用于:
[0128]
响应于所述当前检测块的所述亮度级数大于第二级数阈值,确定所述第二识别结果为所述当前检测块属于所述自然内容检测块,所述第二级数阈值大于所述第一级数阈值;
[0129]
响应于所述当前检测块的所述亮度级数小于或等于所述第二级数阈值,基于所述当前检测块的亮度方差确定所述第二识别结果。
[0130]
可选的,所述第一确定单元,还用于:
[0131]
响应于所述亮度方差大于方差阈值,确定所述第二识别结果为所述当前检测块属于所述屏幕内容检测块;
[0132]
响应于所述亮度方差小于所述方差阈值,确定所述第二识别结果为所述当前检测块属于所述自然内容检测块。
[0133]
可选的,所述第二确定单元,还用于:
[0134]
响应于第一屏幕占比大于或等于第一比例阈值,确定所述第一屏幕占比与第二比例阈值的对应关系,所述第一屏幕占比为所述屏幕内容检测块占全部检测块的比例;响应于所述第一屏幕占比大于或等于所述第二比例阈值,确定所述视频帧检测结果为所述当前视频帧属于所述屏幕内容视频帧;
[0135]
响应于所述第一屏幕占比小于所述第一比例阈值,确定第二屏幕占比,所述第二屏幕占比为所述屏幕内容检测块占所述有效检测块的比例;响应于所述第二屏幕占比大于或等于第三比例阈值,确定所述视频帧检测结果为所述当前视频帧属于所述屏幕内容视频帧。
[0136]
可选的,所述第二确定单元,还用于:
[0137]
响应于所述当前视频帧中不包含所述有效检测块,或,所述第一屏幕占比大于或等于所述第一比例阈值且小于所述第二比例阈值,或,所述第一屏幕占比小于所述第一比例阈值且所述第二屏幕占比小于所述第三比例阈值,确定所述视频帧检测结果为所述当前视频帧属于所述自然内容视频帧。
[0138]
可选的,所述确定模块802,包括:
[0139]
第三确定单元,用于响应于所述当前视频帧序列中所述屏幕内容帧的比例高于第二比例阈值,确定所述序列检测结果为所述当前视频帧序列属于所述屏幕内容序列;
[0140]
第四确定单元,用于响应于所述当前视频帧序列中所述屏幕内容帧的比例低于所述第二比例阈值,确定所述序列检测结果为所述当前视频帧序列属于所述自然内容序列。
[0141]
可选的,所述装置还包括:
[0142]
获取模块,用于获取实时视频流;
[0143]
截取模块,用于基于预设编码时长或预设编码帧数,对所述实时视频流进行截取,得到所述当前视频帧序列;
[0144]
发送模块,用于向目标设备发送经过编码的所述实时视频流。
[0145]
请参考图9,其示出了本申请一个示例性实施例提供的视频编码设备900的结构框图。该视频编码设备900可以是便携式移动视频编码设备,比如:智能手机、平板电脑、台式计算机、动态影像专家压缩标准音频层面3(moving picture experts group audio layer iii,mp3)播放器、动态影像专家压缩标准音频层面4(moving picture experts group audio layer iv,mp4)播放器。视频编码设备900还可能被称为用户设备、便携式视频编码设备等其他名称。
[0146]
通常,视频编码设备900包括有:处理器901和存储器902。
[0147]
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可
以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0148]
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请实施例提供的方法。
[0149]
在一些实施例中,视频编码设备900还可选包括有:外围设备接口903和至少一个外围设备。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907和电源908中的至少一种。
[0150]
外围设备接口903可被用于将输入/输出(input/output,i/o)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0151]
射频电路904用于接收和发射射频(radio frequency,rf)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它视频编码设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或无线保真(wireless fidelity,wifi)网络。在一些实施例中,射频电路904还可以包括近距离无线通信(near field communication,nfc)有关的电路,本申请对此不加以限定。
[0152]
显示屏905用于显示ui。该ui可以包括图形、文本、图标、视频及其它们的任意组合。显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。显示屏905用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置视频编码设备900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在视频编码设备900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在视频编码设备900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light

emitting diode,oled)等材质制备。
[0153]
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(virtual reality,vr)拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光
灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
[0154]
音频电路907用于提供用户和视频编码设备900之间的音频接口。音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在视频编码设备900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
[0155]
电源908用于为视频编码设备900中的各个组件进行供电。电源908可以是交流电、直流电、一次性电池或可充电电池。当电源908包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
[0156]
本领域技术人员可以理解,图9中示出的结构并不构成对视频编码设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0157]
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上各个实施例所述的视频编码方法。
[0158]
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的视频编码方法。
[0159]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0160]
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1