CN117596425A - 编码帧率的确定方法、装置、电子设备及存储介质 - Google Patents

编码帧率的确定方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117596425A
CN117596425A CN202311387025.7A CN202311387025A CN117596425A CN 117596425 A CN117596425 A CN 117596425A CN 202311387025 A CN202311387025 A CN 202311387025A CN 117596425 A CN117596425 A CN 117596425A
Authority
CN
China
Prior art keywords
video frame
jth
coding
video
frame
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.)
Pending
Application number
CN202311387025.7A
Other languages
English (en)
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.)
Shuhang Technology Beijing Co ltd
Original Assignee
Shuhang Technology Beijing 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 Shuhang Technology Beijing Co ltd filed Critical Shuhang Technology Beijing Co ltd
Priority to CN202311387025.7A priority Critical patent/CN117596425A/zh
Publication of CN117596425A publication Critical patent/CN117596425A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/440218Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen

Landscapes

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

Abstract

本申请实施例公开了一种编码帧率的确定方法、装置、电子设备及存储介质。该方法包括:当编码第j个视频帧时,基于第j个视频帧中每个编码块的像素值和第j‑1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,其中,第j个视频帧为待编码实时音视频中的任意一个视频帧;基于第j个视频帧的第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,预设时间段为位于第j个视频帧之前的时间段;基于平均内容复杂度和第j‑1个视频帧的编码帧率确定第j个视频帧的编码帧率。

Description

编码帧率的确定方法、装置、电子设备及存储介质
技术领域
本申请涉及视频处理技术领域,具体涉及一种编码帧率的确定方法、装置、电子设备及存储介质。
背景技术
目前,在实时通信(Real time communication,RTC)屏幕分享技术中,在将采集到的屏幕图像进行分享时,通常是通过用户在发起时手动辅助选择清晰度优先或者流畅度优先的方式进行视频编码帧率的确定。但是,这种手动选择的方式较为固化,当屏幕分享的内容发生变化时,例如,屏幕分享的内容由文档变成视频画面,此时,视频的编码帧率无法自适应调整,如果仍然按照之前选择的清晰度优先的方式进行视频编码帧率的确定,会导致屏幕分享内容的流畅度降低,无法满足不同屏幕分享场景下的需求。
发明内容
本申请实施例提供了一种编码帧率的确定方法、装置、电子设备及存储介质,通过确定待编码实时音视频的内容复杂度,并按照预设幅度,自动调整待编码实时音视频的编码帧率,保证在不同屏幕分享场景下的内容流畅度。
第一方面,本申请实施例提供一种编码帧率的确定方法,该方法包括:
当编码第j个视频帧时,基于所述第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定所述第j个视频帧的第一内容复杂度,其中,所述第j个视频帧为待编码实时音视频中的任意一个视频帧;
基于所述第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,所述预设时间段为位于所述第j个视频帧之前的时间段;
基于所述平均内容复杂度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率。
第二方面,本申请实施例提供一种编码帧率的确定装置,该装置包括:收发单元和处理单元;
所述收发单元,用于获取待编码实时音视频;
所述处理单元,用于当编码第j个视频帧时,基于所述第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定所述第j个视频帧的第一内容复杂度,其中,所述第j个视频帧为所述待编码实时音视频中的任意一个视频帧;
所述处理单元,用于基于所述第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,所述预设时间段为位于所述第j个视频帧之前的时间段;
所述处理单元,用于基于所述平均内容复杂度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得电子设备执行如第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得计算机执行如第一方面的方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机可操作来使计算机执行如第一方面的方法。
实施本申请实施例,具有如下有益效果:
可以看出,在本申请实施例中,在对待编码实时音视频的第j个视频帧进行编码时,基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,基于第j个视频帧的第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。在确定第j个视频帧的编码帧率时,并不是仅基于第j个视频帧的第一内容复杂度,而是基于位于第j个视频帧之前的预设时间段内的多个视频帧的平均内容复杂度与第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率,以实现在不同屏幕分享场景下的编码帧率自适应调整。例如,当第j个视频为第一个屏幕内容开始动态变化的视频帧时,会根据位于第j个视频帧之前的预设时间段内的多个视频帧的平均内容复杂度第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率,防止在屏幕分享过程由于操作中的不确定性导致屏幕分享内容的编码帧率突然改变,使得编码帧率的确定更加准确,从而保证在不同屏幕分享场景下的内容流畅度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种编码帧率的确定系统的示意图;
图2为本申请实施例提供的一种编码帧率的确定方法的流程示意图;
图3为本申请实施例提供的一种屏幕共享的整体模块示意图;
图4a为本申请实施例提供的一种静止状态下编码帧率对比示意图;
图4b为本申请实施例提供的一种静止状态下发送码率对比示意图;
图4c为本申请实施例提供的一种静止状态下编码码率对比示意图;
图4d为本申请实施例提供的一种静止状态下场景包数量对比示意图;
图5为本申请实施例提供的另一种编码帧率的确定方法示意图;
图6为本申请实施例提供的一种下采样的确定方法示意图;
图7为本申请实施例提供的一种直播场景下编码帧率的确定方法示意图;
图8为本申请实施例提供的一种编码帧率的确定装置的功能单元组成框图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了便于理解本申请的技术方案,首先对本申请涉及到的相关技术知识进行解释和说明。
应说明的是,待编码实时音视频是用户的待共享内容,因此,在本申请中又将待编码实时音视频称为待共享内容。待共享内容可以为文档、网页、视频、图像以及游戏中的一种或几种的组合,本申请对此不做限定。其中,文档可以包括文字文档、表格文档以及幻灯片等。
编码帧率:编码帧率是指视频编码时每秒钟处理的帧数。在视频编码中,帧率对于画面的实时性和流畅性非常重要,较高的帧率可以生成更加平滑连贯的动画效果,但同时也会增加视频文件的大小。特别是在屏幕共享技术中,编码帧率的确定更尤为重要,因为在屏幕共享场景下,要求终端设备的共享内容的能够实时地共享到目标终端设备,且共享内容不能发生卡顿。
采集帧率:采集帧率是指摄像头在单位时间内采集到的图像帧数,采集帧率受到多个因素的影响,包括电脑的刷新率和配置、采集卡的性能、摄像头本身的采集能力等。采集帧率会影响共享内容的流畅性。
参阅图1,图1为本申请实施例提供的一种编码帧率的确定系统的示意图。编码帧率的确定系统包括终端设备101、服务器102以及目标终端设备103。
当终端设备101开启屏幕分享时,需要向服务器102上传待编码实时音视频,以便于终端设备101将待编码实时音视频共享到目标终端设备103上。应说明,终端设备101需要对待编码实时音视频进行编码之后,才能向服务器102上传。具体地,当终端设备101编码第j个视频帧时,基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,其中,第j个视频帧为待编码实时音视频中的任意一个视频帧;终端设备101基于第j个视频帧的第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,预设时间段为位于第j个视频帧之前的时间段;终端设备101基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。进一步地,终端设备101基于第j个视频帧的编码帧率可以得到待编码实时音视频中每一个视频帧的编码帧率,终端设备101基于每一个视频帧的编码帧率对待编码实时音视频进行编码。最后,终端设备101向服务器102上传编码后的实时音视频,服务器102向目标终端设备103发送编码后的实时音视频,目标终端设备103对接收到的编码后的实时音视频进行解码后渲染,显示在目标终端设备103的屏幕上。
应说明的是,若服务器102需要向终端设备101或目标终端设备103下发视频时,也可以按照上述的编码帧率的确定方法,得到编码后的视频,并将编码后的视频下发给终端设备101或目标终端设备103,不再详细叙述。因此,本申请确定编码帧率的方法可以在终端设备侧执行,也可以在服务器侧执行,本申请对此不做限定。
可以看出,在本申请实施例中,终端设备101在确定待编码实时音视频的编码帧率时,先基于当前视频帧中每个编码块的像素值和前一视频帧中每个编码块的像素值,确定当前视频帧的内容复杂度;然后基于位于当前视频帧之前的预设时间段内的多个视频帧的平均内容复杂度,确定当前视频帧的编码帧率,防止在屏幕分享过程由于操作中的不确定性导致屏幕分享内容的编码帧率突然改变,使得编码帧率的确定更加准确,从而保证在不同屏幕分享场景下的内容流畅度。
参阅图2,图2为本申请实施例提供的一种编码帧率的确定方法的流程示意图,该方法包括但不限于步骤201-203:
201:当编码第j个视频帧时,基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,其中,第j个视频帧为待编码实时音视频中的任意一个视频帧。
应说明,在对待编码实时音视频进行编码帧率的确定之前,需要先获取待编码实时音视频的类别,若确定该待编码实时音视频需要进行编码帧率的确定,则继续进行以下步骤。
在对待编码实时音视频进行编码帧率的确定时,先对待编码实时音视频进行分帧,得到多个视频帧,然后对每个视频进行编码块的划分,得到每个视频帧对应的多个编码块。然后再确定每个视频帧中的每个编码块的像素值,以对每个视频帧进行编码帧率的确定,其中,每个编码块的像素值是指每个编码块中各个像素点的像素值。本申请中以第j个视频帧为例,说明对每个视频帧进行编码帧率的确定过程,其中,第j个视频帧是待编码实时音视频中的任意一个视频帧。应理解,视频帧是从视频中分帧出的图像,视频帧的排列顺序与图像的显示时刻是一一对应的。因此,第j个视频帧也可称为j时刻的视频帧。
应说明,在对第j个视频帧进行编码帧率的确定之前,还需要获取与第j个视频帧对应的第j个原始视频帧,其中第j个原始视频帧是未进行下采样的视频帧。确定第j个原始视频帧的分辨率是否大于预设分辨率;若是,则选择第一级别下采样对第j个原始视频帧进行下采样,得到第j个视频帧;若否,则选择第二级别下采样对第j个原始视频帧进行下采样,得到第j个视频帧。其中,第一级别下采样可以是1/4下采样,第二级别下采样可以是1/2下采样。可以根据第j个原始视频帧的分辨率区分全屏分享和窗口分享等。
示例性的,在计算第j个视频帧的第一内容复杂度时,首先,应该先计算出第j个视频帧中每个编码块的第二内容复杂度。具体地,以计算第j个视频帧中的第n个编码块的第二复杂度为例进行说明。针对第j个视频帧中的第n个编码块,基于第n个编码块的像素值、第n个编码块的第一邻域编码块的像素值以及第n个编码块在第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定第n个编码块的第二内容复杂度,其中,对应编码块在第j-1个视频帧中的位置与第n个编码块在第j个视频帧中的位置相同,第n个编码块是第j个视频帧中的任意一个编码块。
进一步地,第一邻域编码块包括第n个编码块的第一上侧相邻编码块和第一左侧相邻编码块;第二邻域编码块包括对应编码块的第二上侧相邻编码块和第二左侧相邻编码块;其中,第一上侧相邻编码块和第二上侧相邻编码块对应,第一左侧相邻编码块和第二左侧相邻编码块对应。基于第一上侧相邻编码块的像素值和第n个编码块的像素值,确定第三内容复杂度;具体地,基于第一上侧相邻编码块和第n个编码块的各个点的像素值,计算第一上侧相邻编码块和第n个编码块的绝对误差和(Sum of Absolute Difference,SAD),并用第一上侧相邻编码块和第n个编码块的SAD作为第三内容复杂度。在计算SAD时,只有加法运算,相比于计算编码块之间的差值的平方和(Sum of Squared Difference,SSD)或经哈达玛变换后再绝对值求和(Sum of Absolute Transformed Difference,SATD),更利于加快计算速度,减少在屏幕共享时的延时。
其中,第三内容复杂度满足以下公式:
其中,SAD是第三内容复杂度,M为第j个视频帧的宽度,N为第j个视频帧的高度,f(x,y)为第n个编码块中像素点为(x1,y1)处的像素值,g(x,y)为第一上侧相邻编码块中像素点为(x2,y2)处的像素值。
应说明,当第n个编码块是第j个视频帧中的左侧边缘编码块和上侧边缘编码块时,可以通过边界填充的方法补齐边缘编码块的上侧相邻编码块和左侧相邻编码块;另外,也可以不针对边缘编码块进行内容复杂度的计算,本申请在此不做限定。
应说明,当第j个视频帧的帧类型为I类型时,由于I帧是第一帧,在这种情况下第j个视频帧没有前一帧,因此,将第j个视频帧进行复制,作为第j个视频帧的第j-1个视频帧。
具体地,基于第一左侧相邻编码块的像素值和第n个编码块的像素值,确定第四内容复杂度;基于第二上侧相邻编码块的像素值和第二左侧相邻编码块的像素值,确定平均编码块的像素值;利用第j-1个视频帧与第j个视频帧的时域相关性,计算平均编码块和第n个编码块的第五内容复杂度。其中,第四内容复杂度和第五内容复杂度的确定方式与上述第三内容复杂度的确定方式类似,在此不做赘述。
具体地,基于第三内容复杂度、第四内容复杂度以及第五内容复杂度,确定第二内容复杂度。确定第三内容复杂度、第四内容复杂度以及第五内容复杂度中的最小值作为第n个编码块的第二内容复杂度。基于第n个编码块的第二内容复杂度,确定第j个视频帧中每个编码块的第二内容复杂度,并将每个编码块的第二内容复杂度相加得到第j个视频帧的第一内容复杂度。
可以看出,在本申请实施例中,通过计算编码块之间的SAD来表示编码块之间的内容复杂度,由于在计算SAD时,只有加法运算,从算法的复杂度和硬件实现的难易度来看,这种计算内容复杂度的方法有利于加快计算速度,减少用户在进行屏幕共享时的延时,提高用户体验。
202:基于第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,预设时间段为位于第j个视频帧之前的时间段。
示例性的,基于第j个视频帧的第一内容复杂度,确定位于第j个视频帧之前的预设时间段内的多个视频帧的平均内容复杂度。由于用户在屏幕共享的情形下,当用户在共享第j个视频帧时,终端设备只能获得第j个视频帧之前的视频帧信息,因此,在确定平均内容复杂度时,要基于位于第j个视频帧之前的预设时间段内的多个视频帧的内容复杂度,确定平均内容复杂度。
示例性的,基于内容复杂度与数值之间的映射关系,确定与平均内容复杂度对应的第一数值。若第一数值大于预设阈值,则说明第j个视频帧的共享内容为运动状态,运动状态的共享内容包括视频、游戏界面以及动态图像等。若第一数值小于预设阈值,则说明第j个视频帧的共享内容为静止状态,静止状态的共享内容包括文档、网页、以及静态图像等,其中,文档可以包括文字文档、表格文档以及幻灯片等。
可以看出,在本申请实施例中,当用户实际进行屏幕共享时,由于用户操作过程中的不确定性,用户的共享内容可能会出现在某一时刻视频帧复杂度突然升高的情况,例如,用户对幻灯片进行翻页或者对文字文档进行切换时,在翻页或是切换时的瞬时视频帧复杂度会突然升高,但此时的视频帧的共享内容仍然为静止状态。因此,为了防止某一刻视频帧复杂度突然升高导致的共享内容编码帧率突然增加,本申请在确定第j个视频帧的内容复杂度时基于位于第j个视频帧之前的预设时间段内的多个视频帧的平均内容复杂度来确定,使得编码帧率的确定更加准确,从而保证在不同屏幕分享场景下的内容流畅度。
203:基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。
示例性的,基于内容复杂度与数值之间的映射关系,确定与平均内容复杂度对应的第一数值。若第一数值大于预设阈值,基于第一预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率,具体地,在第j-1个视频帧的编码帧率基础上按照第一预设幅度增加编码帧率,作为第j个视频帧的编码帧率。其中,当编码帧率增加到预设的最大编码帧率时,编码帧率将不再增加。
进一步地,在按照第一预设幅度增加第j个视频帧的编码帧率之后,若第j个视频帧的采集帧率与第j个视频帧的编码帧率不匹配,具体地,当采集帧率过低时,终端设备在单位时间内采集到的视频帧数过少,不能满足提高视频编码帧率的要求,导致编码帧率和采集帧率不匹配,从而造成终端设备的共享内容共享到目标终端设备时会出现轻微的卡顿感,影响共享内容的流畅性。因此,需要基于第j个视频帧的编码帧率确定与第j个视频帧对应的采集帧率,具体地,第j个视频帧对应的采集帧率应该大于或者等于第j个视频帧的编码帧率,以便于对第j个视频帧之后的视频帧进行编码。
示例性的,若第一数值小于预设阈值,基于第二预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。具体地,在第j-1个视频帧的编码帧率基础上按照第二预设幅度降低编码帧率,作为第j个视频帧的编码帧率。其中,当编码帧率降低到预设的最小编码帧率时,编码帧率将不再增加。
更进一步地,以第j个视频帧的编码帧率,对第j个视频帧进行编码。
可以看出,在本申请实施例中,基于第一预设幅度或第二预设幅度以及第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率,按照第一预设幅度或第二预设幅度逐步增加或减少编码帧率,而不是按照固定值调整编码帧率,可以避免编码帧率突然降低导致的共享内容的画面卡顿,以及编码帧率突然升高导致的编码质量的下降。因此,本申请中的编码帧率的调整方法可以使得编码帧率的确定更加准确,保证在不同屏幕分享场景下的内容流畅度。
参阅图3,图3为本申请实施例提供的一种屏幕共享的整体模块示意图。
在本申请的一个实施方式中,如图3所示,以本申请中的待编码实时音视频为例,对屏幕共享的整体模块作出说明。首先,通过终端设备的摄像头以一定的采集帧率采集画面,得到待编码实时音视频,终端设备通过下采样对待编码实时音视频进行前处理,生成对应的缩略图,以降低分辨率;具体的,通过视频格式转换器将待编码实时音视频的视频信号转换为数字信号;复用历史链路的下采样方式,对视频帧进行下采样之后,再把数据传回历史链路继续传输,进一步的,对视频帧的下采样包括:确定原始视频帧的分辨率是否大于预设分辨率;若是,则选择第一级别下采样对原始视频帧进行下采样;若否,则选择第二级别下采样对原始视频帧进行下采样。其中,第一级别下采样可以是1/4下采样,第二级别下采样可以是1/2下采样。可以看出,在前处理的过程中对下采样方式进行优化,复用历史链路的下采样方式,加快待编码实时音视频的处理速度。
其次,终端设备对下采样后的待编码实时音视频进行分帧,得到多个视频帧,对每个视频进行编码块的划分,得到每个视频帧对应的多个编码块。然后再确定每个视频帧中的每个编码块的像素值,以对每个视频帧进行编码帧率的确定,其中,每个编码块的像素值是指每个编码块中各个像素点的像素值。根据步骤201-203记载的编码帧率的确定方法,终端设备确定出待编码实时音视频中每个视频帧的编码帧率,按照每个视频帧的编码帧率对待编码实时音视频进行编码。应说明,在本申请中,也可以由服务器对待编码实时音视频进行前处理、确定编码帧率,以及编码,在本申请中,以终端设备对待编码实时音视频进行前处理、确定编码帧率,以及编码为例进行说明。
进一步的,终端设备向服务器发送编码后的实时音视频,服务器对编码后的实时音视频进行转码,服务器向目标终端发送转码后实时音视频,目标终端对转码后实时音视频后处理、解码与渲染。具体的,需要对编码后的实时音视频进行解压缩,将压缩过程中删除的冗余信息还原,根据压缩时的算法,通过运动补偿和逆变换来重建原始图像。将解压缩的实时音视频进行解码,还原为数字信号,并将其转换为原始视频信号。
最后,将解码后的实时音视频的内容进行渲染,在渲染过程中,应用各种图像处理算法,例如色彩校正、对比度调整、滤镜效果等,再生成最终的图像,并显示在目标终端设备的显示屏上。
参阅图4a,图4a为本申请实施例提供的一种静止状态下编码帧率对比示意图。
参阅图4b,图4b为本申请实施例提供的一种静止状态下发送码率对比示意图。
参阅图4c,图4c为本申请实施例提供的一种静止状态下编码码率对比示意图。
参阅图4d,图4d为本申请实施例提供的一种静止状态下场景包数量对比示意图。
在本申请的一个实施方式中,将本申请的编码帧率的确定方法与另一种编码帧率的确定方法进行对比说明。其中,另一种编码帧率的确定方法是指直接基于第j个视频帧的第一内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率,不计算在预设时间段内的多个视频帧的平均内容复杂度。其中,基于第j个视频帧的第一内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率的方法与上述步骤203的过程相似,在此不做赘述。
示例性的,如图4a所示,优化后编码帧率是基于本申请提供的编码帧率的确定方法确定出的编码帧率。优化前编码帧率是基于另一种编码帧率的确定方法确定出的编码帧率。举例说明,当用户的待共享内容为静止状态时,如图4a所示,优化后编码帧率相比于优化前编码帧率得到了大幅度降低,有利于降低视频编码的带宽成本;并且编码帧率的变化更加平稳,有利于准确确定不同场景下的编码帧率。
示例性的,如图4b所示,优化后发送码率是基于本申请提供的编码帧率的确定方法确定出编码帧率之后,待分享内容的发送码率的变化。优化前发送码率是基于另一种编码帧率的确定方法确定出编码帧率之后,待分享内容的发送码率的变化。示例性的,如图4c所示,优化后编码码率是基于本申请提供的编码帧率的确定方法确定出编码帧率之后,待分享内容的编码码率的变化。优化前编码帧率是基于另一种编码帧率的确定方法确定出编码帧率之后,待分享内容的编码码率的变化。在视频传输中,发送码率和编码码率是相互关联的。编码码率决定了视频数据的压缩程度,而发送码率则决定了最终传输到接收端的比特率。通过合理调整编码码率和发送码率可以达到视频传输的平衡,使得传输过程中的画质和带宽利用率达到最佳效果。
可以看出,在本申请实施例中,相比于优化前的发送码率和编码码率,优化后发送码率和编码码率都以相同的趋势有明显的降低,在保证编码码率和发送码率达到平衡的情况下,降低视频传输的带宽成本。
示例性的,如图4d所示,优化后场景包数量是基于本申请提供的编码帧率的确定方法确定出编码帧率之后,待分享内容的场景包数量的变化。优化前场景包数量是基于另一种编码帧率的确定方法确定出编码帧率之后,待分享内容的场景包数量的变化。可以看出优化后场景包数量相比于优化前场景包数量有了明显降低,可以有效降低视频传输的带宽成本。
参阅图5,图5为本申请实施例提供的另一种编码帧率的确定方法示意图。
在本申请的一种实施例中,对待编码实时音视频的多个视频帧进行编码帧率的确定,如图5所示,以四个视频帧为例进行说明,其中,四个视频帧中的第一个视频帧为关键帧。
501:对四个视频帧进行下采样。
参阅图6,图6为本申请实施例提供的一种下采样的确定方法示意图,对视频帧的下采样包括。601:确定原始视频帧的分辨率是否大于预设分辨率;602a:若是,选择第一级别下采样对原始视频帧进行下采样;602b:若否,选择第二级别下采样对原始视频帧进行下采样。其中,第一级别下采样可以是1/4下采样,第二级别下采样可以是1/2下采样。对四个视频帧进行下采样,具体的,通过步骤601-602b记载的方法对四个视频帧进行下采样,得到经过下采样后的视频帧。
对下采样后的视频帧进行帧内预编码或帧间预编码,具体的,对第一个视频帧也就是I帧进行帧内预编码,对后三个视频帧进行帧间预编码。当对第一个视频帧进行帧内预编码时,由于I帧时第一帧,没有前一帧,因此,可以将第一个视频帧进行复制,作为第一个视频帧的前一个视频帧。
进一步的,当第一个视频帧也有前一个视频帧之后,在本申请中,帧内预编码与帧间预编码的方法类似。帧间预编码的方法从现有技术使用的选择最优编码变为复杂度预估,以便于加快编码速度。应理解,帧间预编码中的复杂度评估方法已在步骤201和步骤202中具体说明。
更进一步的,以本申请中四个视频帧中的第四个视频帧为例,说明第四个视频帧的编码帧率确定过程。如图5中的502-504:
502:基于第四个视频帧中每个编码块的像素值和第三个视频帧中每个编码块的像素值,确定第四个视频帧的第六内容复杂度。
其中,第三个视频帧是四个视频帧的前一个视频帧,具体的,通过步骤201中确定第j个视频帧中的第一内容复杂度的方法,确定第四个视频帧的第六内容复杂度。本申请在此不再赘述。
503:基于第六内容复杂度,确定位于第四个视频帧之前的预设时间段内的多个视频帧的第一平均内容复杂度。
具体的,通过步骤201中确定平均内容复杂度的方法,确定第一平均内容复杂度。其中,该预设时间段可以为2秒,本申请在此不做限定。
504:基于第一平均内容复杂度和第三个视频帧的编码帧率确定第四个视频帧的编码帧率。
其中,通过步骤203中确定第j个视频帧的编码帧率的方法,确定第四个视频帧的编码帧率。
参阅图7,图7为本申请实施例提供的一种直播场景下编码帧率的确定方法示意图。
在本申请的一种实施例中,一种编码帧率的确定方法可以应用于屏幕共享场景,具体的,可以应用于直播场景,在直播场景下,编码帧率的确定系统中的终端设备可以为主播端,服务器可以为直播服务器端,目标终端设备可以为观众端,如图7中的701-711所示。
701:主播端通过摄像头采集待编码实时音视频。
具体的,通过主播端的摄像头以一定的采集帧率采集画面,得到待编码实时音视频。
702:主播端对待编码实时音视频进行下采样。
具体的,对待编码实时音视频的下采样包括:判断待编码实时音视频中视频帧的分辨率是否大于预设分辨率,若是,则对该视频帧进行1/4下采样;若否,则对该视频帧进行1/2下采样。
703:主播端对下采样后的待编码实时音视频进行编码帧率的确定。
具体的,主播端对下采样后的待编码实时音视频进行分帧,得到多个视频帧,对每个视频进行编码块的划分,得到每个视频帧对应的多个编码块。然后再确定每个视频帧中的每个编码块的像素值,以对每个视频帧进行编码帧率的确定,其中,每个编码块的像素值是指每个编码块中各个像素点的像素值。根据步骤201-203记载的编码帧率的确定方法,主播端确定出待编码实时音视频中每个视频帧的编码帧率。
704:主播端根据待编码实时音视频中每个视频帧的编码帧率,对待编码实时音视频进行编码。
应说明,在本申请中,也可以由直播服务器端对待编码实时音视频执行步骤702-704,在本申请中,以主播端对待编码实时音视频执行步骤702-704为例进行说明,直播服务器端对待编码实时音视频执行步骤702-704与主播端对待编码实时音视频执行步骤702-704的方法类似。
705:主播端向直播服务器端发送编码后的实时音视频。
706:直播服务器端将编码后的实时音视频进行转码。
直播服务器端将编码后的实时音视频进行转码,以便于提高编码后的实时音视频的压缩率,从而减少编码后的实时音视频文件的大小。
707:直播服务器端向观众端发送转码后的实时音视频。
708:观众端对转码后的实时音视频进行后处理。
具体的,对编码后的实时音视频进行解压缩,将压缩过程中删除的冗余信息还原,根据压缩时的算法,通过运动补偿和逆变换来重建原始图像。
709:观众端对经过后处理的实时音视频进行解码。
具体的,对经过后处理的编码后的实时音视频进行解码,还原为数字信号,并将其转换为原始视频信号。
710:观众端对经过解码后的实时音视频进行渲染。
具体的,将解码后的实时音视频的内容进行渲染,在渲染过程中,应用各种图像处理算法,例如色彩校正、对比度调整、滤镜效果等,再生成最终的图像。
711:观众端在显示屏上显示渲染后的实时音视频。
参阅图8,图8为本申请实施例提供的一种编码帧率的确定装置的功能单元组成框图。编码帧率的确定装置800包括:收发单元801和处理单元802;
收发单元801,用于获取待编码实时音视频;
处理单元802,用于当编码第j个视频帧时,基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,其中,第j个视频帧为待编码实时音视频中的任意一个视频帧;
处理单元802,用于基于第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,预设时间段为位于第j个视频帧之前的时间段;
处理单元802,用于基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。
在本申请的一个实施方式中,在基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率方面,处理单元802,具体用于:
基于内容复杂度与数值之间的映射关系,确定与平均内容复杂度对应的第一数值;
若第一数值大于预设阈值,基于第一预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率;
若第一数值小于预设阈值,基于第二预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。
在本申请的一个实施方式中,在基于第一预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率之后,处理单元802,具体用于:
若第j个视频帧的采集帧率与第j个视频帧的编码帧率不匹配,则基于第j个视频帧的编码帧率确定与第j个视频帧对应的采集帧率,第j个视频帧对应的采集帧率大于或者等于第j个视频帧的编码帧率。
在本申请的一个实施方式中,在基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度方面,处理单元802,具体用于:
针对第j个视频帧中的第n个编码块,基于第n个编码块的像素值、第n个编码块的第一邻域编码块的像素值以及第n个编码块在第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定第n个编码块的第二内容复杂度,其中,对应编码块在第j-1个视频帧中的位置与第n个编码块在第j个视频帧中的位置相同,第n个编码块是第j个视频帧中的任意一个编码块;
基于第二内容复杂度,确定第一内容复杂度。
在本申请的一个实施方式中,第一邻域编码块包括第n个编码块的第一上侧相邻编码块和第一左侧相邻编码块;第二邻域编码块包括对应编码块的第二上侧相邻编码块和第二左侧相邻编码块;在基于第n个编码块的像素值、第n个编码块的第一邻域编码块的像素值以及第n个编码块在第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定第n个编码块的第二内容复杂度方面,处理单元802,具体用于:
基于第二上侧相邻编码块的像素值和第二左侧相邻编码块的像素值,确定平均编码块的像素值;
基于第一上侧相邻编码块的像素值和第n个编码块的像素值,确定第三内容复杂度;
基于第一左侧相邻编码块的像素值和第n个编码块的像素值,确定第四内容复杂度;
基于平均编码块的像素值和第n个编码块的像素值,确定第五内容复杂度;
基于第三内容复杂度、第四内容复杂度以及第五内容复杂度,确定第二内容复杂度。
在本申请的一个实施方式中,处理单元802,具体用于:
若第j个视频帧的帧类型为I帧,将第j个视频帧进行复制,作为第j个视频帧的第j-1个视频帧。
在本申请的一个实施方式中,处理单元802,具体用于:
以第j个视频帧的编码帧率,对第j个视频帧进行编码。
参阅图9,图9为本申请实施例提供的一种电子设备的结构示意图。如图9所示,电子设备900包括收发器901、处理器902和存储器903。它们之间通过总线904连接。存储器903用于存储计算机程序和数据,并可以将存储器903存储的数据传输给处理器902。
处理器902用于读取存储器903中的计算机程序执行以下操作:
控制收发器901获取待编码实时音视频;
当编码第j个视频帧时,基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,其中,第j个视频帧为待编码实时音视频中的任意一个视频帧;
用于基于第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,预设时间段为位于第j个视频帧之前的时间段;
基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。
在本申请的一个实施方式中,在基于平均内容复杂度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率方面,处理器902,具体用于执行以下步骤:
基于内容复杂度与数值之间的映射关系,确定与平均内容复杂度对应的第一数值;
若第一数值大于预设阈值,基于第一预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率;
若第一数值小于预设阈值,基于第二预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率。
在本申请的一个实施方式中,在基于第一预设幅度和第j-1个视频帧的编码帧率确定第j个视频帧的编码帧率之后,处理器902,具体用于执行以下步骤:
若第j个视频帧的采集帧率与第j个视频帧的编码帧率不匹配,则基于第j个视频帧的编码帧率确定与第j个视频帧对应的采集帧率,第j个视频帧对应的采集帧率大于或者等于第j个视频帧的编码帧率。
在本申请的一个实施方式中,在基于第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度方面,处理器902,具体用于执行以下步骤:
针对第j个视频帧中的第n个编码块,基于第n个编码块的像素值、第n个编码块的第一邻域编码块的像素值以及第n个编码块在第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定第n个编码块的第二内容复杂度,其中,对应编码块在第j-1个视频帧中的位置与第n个编码块在第j个视频帧中的位置相同,第n个编码块是第j个视频帧中的任意一个编码块;
基于第二内容复杂度,确定第一内容复杂度。
在本申请的一个实施方式中,第一邻域编码块包括第n个编码块的第一上侧相邻编码块和第一左侧相邻编码块;第二邻域编码块包括对应编码块的第二上侧相邻编码块和第二左侧相邻编码块;在基于第n个编码块的像素值、第n个编码块的第一邻域编码块的像素值以及第n个编码块在第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定第n个编码块的第二内容复杂度方面,处理器902,具体用于执行以下步骤:
基于第二上侧相邻编码块的像素值和第二左侧相邻编码块的像素值,确定平均编码块的像素值;
基于第一上侧相邻编码块的像素值和第n个编码块的像素值,确定第三内容复杂度;
基于第一左侧相邻编码块的像素值和第n个编码块的像素值,确定第四内容复杂度;
基于平均编码块的像素值和第n个编码块的像素值,确定第五内容复杂度;
基于第三内容复杂度、第四内容复杂度以及第五内容复杂度,确定第二内容复杂度。
在本申请的一个实施方式中,处理器902,具体用于执行以下步骤:
若第j个视频帧的帧类型为I帧,将第j个视频帧进行复制,作为第j个视频帧的第j-1个视频帧。
在本申请的一个实施方式中,处理器902,具体用于执行以下步骤:
以第j个视频帧的编码帧率,对第j个视频帧进行编码。
具体地,上述收发器901可为图8的实施例的编码帧率的确定装置800的收发单元801,上述处理器902可以为图8的实施例的编码帧率的确定装置800的处理单元802。
应理解,本申请中的电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(MobileInternet Devices,简称:MID)或穿戴式设备等。上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备。在实际应用中,上述电子设备还可以包括:智能车载终端、计算机设备等等。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种编码帧率的确定方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种编码帧率的确定方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种编码帧率的确定方法,其特征在于,所述方法包括:
当编码第j个视频帧时,基于所述第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定所述第j个视频帧的第一内容复杂度,其中,所述第j个视频帧为待编码实时音视频中的任意一个视频帧;
基于所述第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,所述预设时间段为位于所述第j个视频帧之前的时间段;
基于所述平均内容复杂度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率。
2.根据权利要求1所述的方法,其特征在于,所述基于所述平均内容复杂度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率,包括:
基于内容复杂度与数值之间的映射关系,确定与所述平均内容复杂度对应的第一数值;
若所述第一数值大于预设阈值,基于第一预设幅度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率;
若所述第一数值小于所述预设阈值,基于第二预设幅度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率。
3.根据权利要求2所述的方法,其特征在于,在基于第一预设幅度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率之后,所述方法还包括:
若所述第j个视频帧的采集帧率与所述第j个视频帧的编码帧率不匹配,则基于所述第j个视频帧的编码帧率确定与所述第j个视频帧对应的采集帧率,所述第j个视频帧对应的采集帧率大于或者等于所述第j个视频帧的编码帧率。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定第j个视频帧的第一内容复杂度,包括:
针对所述第j个视频帧中的第n个编码块,基于所述第n个编码块的像素值、所述第n个编码块的第一邻域编码块的像素值以及所述第n个编码块在所述第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定所述第n个编码块的第二内容复杂度,其中,所述对应编码块在所述第j-1个视频帧中的位置与所述第n个编码块在所述第j个视频帧中的位置相同,所述第n个编码块是所述第j个视频帧中的任意一个编码块;
基于所述第二内容复杂度,确定所述第一内容复杂度。
5.根据权利要求4所述的方法,其特征在于,所述第一邻域编码块包括所述第n个编码块的第一上侧相邻编码块和第一左侧相邻编码块;所述第二邻域编码块包括所述对应编码块的第二上侧相邻编码块和第二左侧相邻编码块;所述基于所述第n个编码块的像素值、所述第n个编码块的第一邻域编码块的像素值以及所述第n个编码块在所述第j-1个视频帧中的对应编码块的第二邻域编码块的像素值,确定所述第n个编码块的第二内容复杂度,包括:
基于所述第二上侧相邻编码块的像素值和所述第二左侧相邻编码块的像素值,确定平均编码块的像素值;
基于所述第一上侧相邻编码块的像素值和所述第n个编码块的像素值,确定第三内容复杂度;
基于所述第一左侧相邻编码块的像素值和所述第n个编码块的像素值,确定第四内容复杂度;
基于所述平均编码块的像素值和所述第n个编码块的像素值,确定第五内容复杂度;
基于所述第三内容复杂度、所述第四内容复杂度以及所述第五内容复杂度,确定所述第二内容复杂度。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
若所述第j个视频帧的帧类型为I帧,将所述第j个视频帧进行复制,作为所述第j个视频帧的第j-1个视频帧。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
以所述第j个视频帧的编码帧率,对所述第j个视频帧进行编码。
8.一种编码帧率的确定装置,其特征在于,包括:收发单元和处理单元;
所述收发单元,用于获取待编码实时音视频;
所述处理单元,用于当编码第j个视频帧时,基于所述第j个视频帧中每个编码块的像素值和第j-1个视频帧中每个编码块的像素值,确定所述第j个视频帧的第一内容复杂度,其中,所述第j个视频帧为所述待编码实时音视频中的任意一个视频帧;
所述处理单元,用于基于所述第一内容复杂度,确定在预设时间段内的多个视频帧的平均内容复杂度,其中,所述预设时间段为位于所述第j个视频帧之前的时间段;
所述处理单元,用于基于所述平均内容复杂度和所述第j-1个视频帧的编码帧率确定所述第j个视频帧的编码帧率。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-7中任一项所述的方法。
CN202311387025.7A 2023-10-24 2023-10-24 编码帧率的确定方法、装置、电子设备及存储介质 Pending CN117596425A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311387025.7A CN117596425A (zh) 2023-10-24 2023-10-24 编码帧率的确定方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311387025.7A CN117596425A (zh) 2023-10-24 2023-10-24 编码帧率的确定方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117596425A true CN117596425A (zh) 2024-02-23

Family

ID=89919107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311387025.7A Pending CN117596425A (zh) 2023-10-24 2023-10-24 编码帧率的确定方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117596425A (zh)

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130094565A1 (en) * 2011-10-17 2013-04-18 Google Inc. Rate-distortion-complexity optimization of video encoding guided by video description length
CN103313054A (zh) * 2013-05-22 2013-09-18 中国科学院声学研究所 可伸缩视频编码svc视频的传输调度方法
CN103686172A (zh) * 2013-12-20 2014-03-26 电子科技大学 低延迟视频编码可变比特率码率控制方法
CN103702119A (zh) * 2013-12-20 2014-04-02 电子科技大学 低延迟视频编码基于可变帧率的码率控制方法
WO2018076614A1 (zh) * 2016-10-31 2018-05-03 武汉斗鱼网络科技有限公司 一种直播视频的处理方法、装置及设备、计算机可读介质
CN108718362A (zh) * 2018-04-28 2018-10-30 上海与德通讯技术有限公司 录像方法和终端
CN110798738A (zh) * 2018-08-01 2020-02-14 Oppo广东移动通信有限公司 帧率控制方法、装置、终端及存储介质
CN110876060A (zh) * 2018-08-31 2020-03-10 网宿科技股份有限公司 一种编码过程中的码率调整方法及装置
CN112672149A (zh) * 2020-12-15 2021-04-16 广州博冠信息科技有限公司 一种视频处理方法、装置、存储介质及服务器
CN112702649A (zh) * 2019-10-22 2021-04-23 高新兴科技集团股份有限公司 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备
CN113900735A (zh) * 2021-10-11 2022-01-07 深圳依时货拉拉科技有限公司 参数配置的调整方法、装置、存储介质及电子设备
CN113965751A (zh) * 2021-10-09 2022-01-21 腾讯科技(深圳)有限公司 屏幕内容编码方法、装置、设备及存储介质
WO2022028089A1 (zh) * 2020-08-06 2022-02-10 腾讯科技(深圳)有限公司 图像处理方法、装置、服务器及介质
CN114461051A (zh) * 2021-12-29 2022-05-10 荣耀终端有限公司 帧率切换方法、装置及存储介质
CN114501014A (zh) * 2022-02-22 2022-05-13 百果园技术(新加坡)有限公司 一种视频编码参数处理方法、系统、设备及存储介质
CN114845106A (zh) * 2021-02-01 2022-08-02 北京大学深圳研究生院 视频编码方法、装置和存储介质及电子设备
CN115866250A (zh) * 2022-12-06 2023-03-28 京东科技信息技术有限公司 视频处理方法、装置、设备及计算机可读存储介质
WO2023077850A1 (zh) * 2021-11-02 2023-05-11 深圳市洲明科技股份有限公司 发送卡及其控制方法、显示设备、计算机设备和存储介质
CN116680153A (zh) * 2023-07-28 2023-09-01 荣耀终端有限公司 应用帧率平滑方法、电子设备及存储介质

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130094565A1 (en) * 2011-10-17 2013-04-18 Google Inc. Rate-distortion-complexity optimization of video encoding guided by video description length
CN103313054A (zh) * 2013-05-22 2013-09-18 中国科学院声学研究所 可伸缩视频编码svc视频的传输调度方法
CN103686172A (zh) * 2013-12-20 2014-03-26 电子科技大学 低延迟视频编码可变比特率码率控制方法
CN103702119A (zh) * 2013-12-20 2014-04-02 电子科技大学 低延迟视频编码基于可变帧率的码率控制方法
WO2018076614A1 (zh) * 2016-10-31 2018-05-03 武汉斗鱼网络科技有限公司 一种直播视频的处理方法、装置及设备、计算机可读介质
CN108718362A (zh) * 2018-04-28 2018-10-30 上海与德通讯技术有限公司 录像方法和终端
CN110798738A (zh) * 2018-08-01 2020-02-14 Oppo广东移动通信有限公司 帧率控制方法、装置、终端及存储介质
US20210409724A1 (en) * 2018-08-31 2021-12-30 Wangsu Science & Technology Co., Ltd. Method and device for bitrate adjustment in encoding process
CN110876060A (zh) * 2018-08-31 2020-03-10 网宿科技股份有限公司 一种编码过程中的码率调整方法及装置
CN112702649A (zh) * 2019-10-22 2021-04-23 高新兴科技集团股份有限公司 一种移动端的直播视频播放流畅度优化方法、存储介质及电子设备
WO2022028089A1 (zh) * 2020-08-06 2022-02-10 腾讯科技(深圳)有限公司 图像处理方法、装置、服务器及介质
CN112672149A (zh) * 2020-12-15 2021-04-16 广州博冠信息科技有限公司 一种视频处理方法、装置、存储介质及服务器
CN114845106A (zh) * 2021-02-01 2022-08-02 北京大学深圳研究生院 视频编码方法、装置和存储介质及电子设备
CN113965751A (zh) * 2021-10-09 2022-01-21 腾讯科技(深圳)有限公司 屏幕内容编码方法、装置、设备及存储介质
CN113900735A (zh) * 2021-10-11 2022-01-07 深圳依时货拉拉科技有限公司 参数配置的调整方法、装置、存储介质及电子设备
WO2023077850A1 (zh) * 2021-11-02 2023-05-11 深圳市洲明科技股份有限公司 发送卡及其控制方法、显示设备、计算机设备和存储介质
CN114461051A (zh) * 2021-12-29 2022-05-10 荣耀终端有限公司 帧率切换方法、装置及存储介质
CN114501014A (zh) * 2022-02-22 2022-05-13 百果园技术(新加坡)有限公司 一种视频编码参数处理方法、系统、设备及存储介质
CN115866250A (zh) * 2022-12-06 2023-03-28 京东科技信息技术有限公司 视频处理方法、装置、设备及计算机可读存储介质
CN116680153A (zh) * 2023-07-28 2023-09-01 荣耀终端有限公司 应用帧率平滑方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108833916B (zh) 视频编码、解码方法、装置、存储介质和计算机设备
US11172220B2 (en) Video encoding method, and storage medium thereof
CN102625106B (zh) 场景自适应的屏幕编码码率控制方法及其系统
US11558639B2 (en) Selective resolution video encoding method, computer device, and readable storage medium
CN109788316B (zh) 码率控制、视频转码方法与装置、计算机设备及存储介质
CN110689589A (zh) 提高影像媒体质量的方法
JP2020526994A (ja) クロマ予測方法及びデバイス
CN107846590B (zh) 一种视频编码的方法和视频编码器
US20090147856A1 (en) Variable color format based video encoding and decoding methods and apparatuses
CN108848377B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
EP2563019B1 (en) Method and device for compressing and encoding image data
JPH09331533A (ja) 動画像符号化装置
WO2021057705A1 (zh) 视频编解码方法和相关装置
WO2021057697A1 (zh) 视频编解码方法和装置、存储介质及电子装置
TWI703857B (zh) 視頻轉碼方法及設備、電腦儲存介質及電子設備
US11943473B2 (en) Video decoding method and apparatus, video encoding method and apparatus, storage medium, and electronic device
WO2024078066A1 (zh) 视频解码方法、视频编码方法、装置、存储介质及设备
CN113747242A (zh) 图像处理方法、装置、电子设备及存储介质
KR100304901B1 (ko) 동영상 수신 장치
WO2023142665A1 (zh) 图像处理方法、装置、计算机设备、存储介质及程序产品
CN117596425A (zh) 编码帧率的确定方法、装置、电子设备及存储介质
CN107846595B (zh) 一种视频编码的方法和视频编码器
JP6483850B2 (ja) データ処理方法および装置
JP4909592B2 (ja) 動画像再生方法及び装置並びにプログラム
CN110582022A (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