CN115379210A - 视频数据的编码方法、装置及设备 - Google Patents

视频数据的编码方法、装置及设备 Download PDF

Info

Publication number
CN115379210A
CN115379210A CN202211112018.1A CN202211112018A CN115379210A CN 115379210 A CN115379210 A CN 115379210A CN 202211112018 A CN202211112018 A CN 202211112018A CN 115379210 A CN115379210 A CN 115379210A
Authority
CN
China
Prior art keywords
period
quantization parameter
code rate
target
target code
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
CN202211112018.1A
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Publication of CN115379210A publication Critical patent/CN115379210A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation

Landscapes

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

Abstract

本申请实施例公开了一种视频数据的编码方法、装置及设备,所述方法包括:基于第一周期对应的第一目标码率确定多个调节周期对应的第二目标码率;第一周期包括所述多个调节周期,第一目标码率为固定值,不同调节周期对应的第二目标码率相同或不同;针对多个调节周期中的当前调节周期,基于当前调节周期对应的目标量化参数范围和当前调节周期对应的第二目标码率确定当前调节周期的目标量化参数;目标量化参数范围用于约束当前调节周期的量化参数最大值和量化参数最小值;在当前调节周期内,基于目标量化参数对视频数据进行编码。本申请实施例能够依据场景适应性控制码率,而且还能够提前预测可录像时间。

Description

视频数据的编码方法、装置及设备
技术领域
本申请实施例涉及编码技术领域,特别涉及一种视频数据的编码方法、装置及设备。
背景技术
视频数据的编码是指通过特定的压缩技术对视频数据进行编码,从而得到码流的过程,该码流又可以称为录像数据。由于录像数据的数据量相对于视频数据的数据量减小很多,所以将录像数据进行存储,可以提高存储空间的利用率。
相关技术对视频数据进行编码时,通常可以按照CBR(Constant Bit Rate,固定码率)的方式进行编码码率控制,或者按照VBR(Variable Bit Rate,可变码率)的方式进行编码码率控制。其中,使用CBR的方式进行编码码率控制时,编码后的码率是固定的。相反,使用VBR的方式进行编码码率控制时,编码后的码率小于目标码率,并在目标码率的一定范围内波动,该目标码率为使用VBR的方式进行编码码率控制的最大码率。
然而,在使用CBR的方式进行编码码率控制时其码率固定,对复杂场景进行编码后的质量较低,在对简单场景进行编码时会浪费一些码率。使用VBR的方式进行编码码率控制时其码率是波动的,从而无法预测占满固定大小的存储空间所需要的时间。
发明内容
本申请实施例提供了一种视频数据的编码方法、装置及设备,可以解决相关技术的问题。所述技术方案如下:
一方面,提供了一种视频数据的编码方法,所述方法包括:
基于第一周期对应的第一目标码率确定多个调节周期对应的第二目标码率;其中,所述第一周期包括所述多个调节周期,所述第一目标码率为固定值,不同调节周期对应的第二目标码率相同或者不同;其中,所述第一目标码率表示所述第一周期内期望的平均码率,每个调节周期对应的第二目标码率表示所述调节周期内期望的平均码率;
针对所述多个调节周期中的当前调节周期,基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数;其中,所述目标量化参数范围用于约束所述当前调节周期的量化参数最大值和量化参数最小值,所述第二目标码率用于调节当前调节周期的量化参数,且量化参数处于所述目标量化参数范围;
在所述当前调节周期内,基于所述目标量化参数对视频数据进行编码。
示例性的,针对每个调节周期,所述基于第一周期对应的第一目标码率确定该调节周期对应的第二目标码率,包括:基于所述第一周期对应的第一目标码率确定该调节周期对应的最大目标码率;基于所述最大目标码率确定该调节周期对应的第二目标码率。
示例性的,所述基于所述最大目标码率确定该调节周期对应的第二目标码率,包括:将所述最大目标码率确定为该调节周期对应的第二目标码率;或者,确定该调节周期对应的场景运动等级,基于所述最大目标码率和所述场景运动等级确定该调节周期对应的第二目标码率,所述第二目标码率小于或者等于所述最大目标码率;其中,当所述场景运动等级越大时,所述第二目标码率越大。
示例性的,所述基于所述最大目标码率和所述场景运动等级确定该调节周期对应的第二目标码率之后,所述方法还包括:在该调节周期对应的场景运动等级发生变化时,基于所述最大目标码率和变化后的场景运动等级重新确定该调节周期对应的第二目标码率。
示例性的,所述基于所述最大目标码率和所述场景运动等级确定该调节周期对应的第二目标码率,包括:确定所述场景运动等级对应的已配置的比例系数;其中,所述比例系数大于0,且小于或者等于1,当所述场景运动等级越大时,所述场景运动等级对应的比例系数越大;基于所述比例系数与所述最大目标码率的乘积,确定所述第二目标码率。
示例性的,所述基于所述第一周期对应的第一目标码率确定该调节周期对应的最大目标码率,包括:若该调节周期是所述第一周期内的首个调节周期,则将所述第一周期对应的第一目标码率确定为该调节周期对应的最大目标码率;或者,若该调节周期是所述第一周期内的非首个调节周期,则基于所述第一周期对应的第一目标码率、所述第一周期对应的总时长、所述第一周期内该调节周期之前的实际编码比特总量、所述第一周期的剩余时长,确定该调节周期对应的最大目标码率。
示例性的,所述基于所述第一周期对应的第一目标码率、所述第一周期对应的总时长、所述第一周期内该调节周期之前的实际编码比特总量、所述第一周期的剩余时长,确定该调节周期对应的最大目标码率,包括:基于如下公式确定该调节周期对应的最大目标码率:所述最大目标码率=[所述第一目标码率*所述第一周期对应的总时长-所述实际编码比特总量]/所述第一周期的剩余时长。
示例性的,所述基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数,包括:确定所述目标量化参数范围内初始量化参数对应的实际编码码率;若所述实际编码码率大于所述当前调节周期对应的第二目标码率,则提高所述初始量化参数;若提高后的量化参数位于所述目标量化参数范围内,则基于提高后的量化参数确定所述目标量化参数;若提高后的量化参数不位于所述目标量化参数范围内,则基于所述目标量化参数范围对应的量化参数最大值确定所述目标量化参数;若所述实际编码码率小于所述当前调节周期对应的第二目标码率,则降低所述初始量化参数;若降低后的量化参数位于所述目标量化参数范围内,则基于降低后的量化参数确定所述目标量化参数;若降低后的量化参数不位于所述目标量化参数范围内,则基于所述目标量化参数范围对应的量化参数最小值确定所述目标量化参数。
示例性的,所述基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数之前,所述方法还包括:若所述当前调节周期是所述第一周期内的首个调节周期,则确定所述第一周期对应的量化参数范围,并将所述量化参数范围确定为所述当前调节周期对应的目标量化参数范围;或者,若所述当前调节周期是所述第一周期内的非首个调节周期,则确定所述当前调节周期前面的相邻调节周期对应的量化参数范围,并基于所述相邻调节周期对应的量化参数范围确定所述当前调节周期对应的目标量化参数范围。
示例性的,所述基于所述相邻调节周期对应的量化参数范围确定所述当前调节周期对应的目标量化参数范围,包括:基于所述相邻调节周期对应的最大目标码率确定所述相邻调节周期的码率阈值;其中,所述码率阈值为所述最大目标码率与预设倍数值的乘积;若所述相邻调节周期对应的实际码率大于或者等于所述相邻调节周期的码率阈值,则向上调整所述相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到所述当前调节周期对应的目标量化参数范围;若所述相邻调节周期对应的实际码率小于所述相邻调节周期的码率阈值,则将所述相邻调节周期对应的量化参数范围确定为所述当前调节周期对应的目标量化参数范围。
示例性的,所述第一周期包括多个第二周期,每个第二周期包括多个调节周期,所述基于所述相邻调节周期对应的量化参数范围确定所述当前调节周期对应的目标量化参数范围,包括:若所述当前调节周期是当前第二周期内的首个调节周期,且所述当前第二周期是所述第一周期内的首个第二周期,则基于所述第一周期对应的第一目标码率确定第一比特数量阈值和第二比特数量阈值;其中,所述第一比特数量阈值基于所述第一目标码率与第一倍数值的乘积确定,所述第二比特数量阈值基于所述第一目标码率与第二倍数值的乘积确定,且所述第一倍数值大于所述第二倍数值;若所述第一周期内所述当前调节周期之前的实际编码比特总量大于所述第一比特数量阈值,则向上调整所述相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到所述当前调节周期对应的目标量化参数范围;若所述第一周期内所述当前调节周期之前的实际编码比特总量小于所述第二比特数量阈值,则向下调整所述相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到所述当前调节周期对应的目标量化参数范围。
示例性的,所述第一周期包括多个第二周期,每个第二周期包括多个调节周期,所述基于所述相邻调节周期对应的量化参数范围确定所述当前调节周期对应的目标量化参数范围,包括:若所述当前调节周期是当前第二周期内的首个调节周期,且所述当前第二周期是所述第一周期内的非首个第二周期,则基于所述第一周期对应的第一目标码率和所述第一周期内当前调节周期之前的编码总时长确定第一比特数量阈值和第二比特数量阈值,基于所述第一周期对应的第一目标码率和第二周期的时长确定第三比特数量阈值和第四比特数量阈值;其中,第一比特数量阈值大于第二比特数量阈值,第三比特数量阈值大于第四比特数量阈值;若所述第一周期内所述当前调节周期之前的实际编码比特总量大于所述第一比特数量阈值,且所述当前第二周期前面的相邻第二周期的实际编码比特总量大于所述第三比特数量阈值,则向上调整所述相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到所述当前调节周期对应的目标量化参数范围;若所述第一周期内所述当前调节周期之前的实际编码比特总量小于所述第二比特数量阈值,且所述当前第二周期前面的相邻第二周期的实际编码比特总量小于所述第四比特数量阈值,则向下调整所述相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到所述当前调节周期对应的目标量化参数范围。
示例性的,所述方法还包括:基于所述第一周期对应的第一目标码率确定模拟通道总码率;基于所述模拟通道总码率确定存储设备对应的可录像时间;通过目标界面显示所述可录像时间。
示例性的,所述基于所述模拟通道总码率确定存储设备对应的可录像时间,包括:若所述存储设备接入多个网络摄像机IPC,则统计所有IPC通道的总码率;基于所述模拟通道总码率、所有IPC通道的总码率和硬盘总空间确定可录像时间。
另一方面,提供了一种界面显示方法,所述方法包括:
确定第一周期对应的第一目标码率;其中,所述第一周期包括多个调节周期,每个调节周期对应的第二目标码率是基于所述第一目标码率确定;所述第一目标码率为固定值,不同调节周期对应的第二目标码率相同或者不同;所述第一目标码率表示所述第一周期内期望的平均码率,每个调节周期对应的第二目标码率表示所述调节周期内期望的平均码率;其中,在每个调节周期内,基于该调节周期对应的第二目标码率对视频数据进行编码;
基于所述第一周期对应的第一目标码率确定模拟通道总码率;
基于所述模拟通道总码率确定存储设备对应的可录像时间;
通过目标界面显示所述可录像时间。
示例性的,所述基于所述模拟通道总码率确定存储设备对应的可录像时间,包括:
若所述存储设备接入多个网络摄像机IPC,则统计所有IPC通道的总码率;
基于所述模拟通道总码率、所有IPC通道的总码率和硬盘总空间确定可录像时间。
另一方面,提供了一种视频数据的编码装置,所述装置包括:
第二目标码率确定模块,用于基于第一周期对应的第一目标码率确定多个调节周期对应的第二目标码率;其中,所述第一周期包括所述多个调节周期,所述第一目标码率为固定值,不同调节周期对应的第二目标码率相同或者不同;所述第一目标码率表示所述第一周期内期望的平均码率,每个调节周期对应的第二目标码率表示所述调节周期内期望的平均码率;
量化参数确定模块,用于针对所述多个调节周期中的当前调节周期,基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数;其中,所述目标量化参数范围用于约束所述当前调节周期的量化参数最大值和量化参数最小值,所述第二目标码率用于调节当前调节周期的量化参数,且量化参数处于所述目标量化参数范围;
编码模块,用于在所述当前调节周期内,基于所述目标量化参数对视频数据进行编码。
另一方面,提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器用于存放能够被所述处理器执行的机器可执行指令,所述处理器用于执行所述存储器上所存放的机器可执行指令,以实现上述的视频数据的编码方法的步骤或者所述的界面显示方法的步骤。
本申请实施例提供的技术方案至少可以带来以下有益效果:
由于每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率固定且可预期,即第一周期对应的第一目标码率为固定值,所以,对于固定大小的存储空间来说,能够提前预测可录像时间。而且,在每个第一周期包括的调节周期内,能够基于编码过程中的实际平均码率(即第二目标码率)调整量化参数,进而控制每个调节周期内的实际平均码率,这样即可按照实际场景的复杂程度的不同来控制编码码率,从而不会出现复杂场景编码后的质量过低,或者简单场景编码后浪费过多码率的情况,提高了码率的控制能力。
附图说明
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是本申请实施例提供的一种视频数据的编码方法的流程图;
图3是本申请实施例提供的一种编码参数设置界面的示意图;
图4是本申请实施例提供的一种视频数据的编码装置的结构示意图;
图5是本申请实施例提供的一种终端的结构示意图。
具体实施方式
本申请实施例中提出一种视频数据的编码方法,可以将编码过程划分为第一周期(第一周期也可以称为长周期)、第二周期(第二周期也可以称为短周期)和调节周期。
示例性的,将第一周期对应的目标码率称为第一目标码率,第一目标码率为固定值,即每个第一周期对应的第一目标码率固定,由于第一目标码率为固定值,因此,可以基于第一目标码率确定可确认录像空间,从而确认可录像天数,具体确定过程参见后续实施例。
第一目标码率表示第一周期内期望的平均码率,即期望第一周期内的平均码率为第一目标码率,但在实际编码过程中,第一周期内的平均码率可能大于第一目标码率,也可能小于第一目标码率,只是第一周期的控制目标是,尽量使第一周期内的平均码率为第一目标码率。
示例性的,针对每个第一周期来说,该第一周期可以包括多个第二周期,即第一周期可以大于第二周期,比如说,第一周期可以设置为数小时,而第二周期可以设置为数分钟,或者,第一周期可以设置为数天,而第二周期可以设置为数小时。
示例性的,针对每个第一周期来说,该第一周期可以包括多个调节周期(也可以称为调整周期),即第一周期可以大于调节周期。此外,针对该第一周期内的每个第二周期来说,该第二周期可以包括多个调节周期,即第二周期可以大于调节周期。例如,第一周期可以设置为数天,第二周期可以设置为数小时,调整周期可以设置为数分钟。
比如说,第一周期可以包括第二周期1、第二周期2、第二周期3和第二周期4,第二周期1可以包括调节周期11、调节周期12、调节周期13和调节周期14,第二周期2可以包括调节周期21、调节周期22、调节周期23和调节周期24,以此类推,即第一周期包括4个第二周期,每个第二周期包括4个调节周期,且第一周期包括16个调节周期。
示例性的,将调节周期对应的目标码率称为第二目标码率,第二目标码率为可变值,可以动态变化,也就是说,在一个调节周期内,第二目标码率可以根据场景实际运动情况动态调整,如在场景实际运动情况比较复杂时,第二目标码率变大,在场景实际运动情况比较简单时,第二目标码率变小。而且,不同调节周期对应的第二目标码率可以相同或者不同,比如说,在不同调节周期的场景实际运动情况相同或者类似时,不同调节周期对应的第二目标码率可以相同或者不同,在不同调节周期的场景实际运动情况不同时,不同调节周期对应的第二目标码率可以相同或者不同。由于第二目标码率为动态调整值,因此,能够控制每个调节周期内的实际平均码率,从而可按照实际场景的复杂程度的不同来控制编码码率,从而不会出现复杂场景编码后的质量过低,或者简单场景编码后浪费过多码率的情况。
每个调节周期对应的第二目标码率表示该调节周期内期望的平均码率,即期望调节周期内的平均码率为第二目标码率,但在实际编码过程中,调节周期内的平均码率可能大于第二目标码率,也可能小于第二目标码率,只是调节周期的控制目标是,尽量使调节周期内的平均码率为第二目标码率。而且,第二目标码率自身也在基于场景实际运动情况动态变化。
示例性的,针对第一周期内的第二周期和调节周期,可以采用可变比特率进行编码,并根据场景实际运动情况来调节第二目标码率,在调节过程中,可以根据运动程度设置不同的第二目标码率。针对第一周期、第二周期和调节周期来说,可以进行不同的码控调节,比如说,第一周期只需要设置第一目标码率,且第一目标码率为固定值,在每个第一周期均将第一目标码率恢复为固定值,第一目标码率可以根据经验配置,如400Kbps等,即每个第一周期均将第一目标码率恢复为400Kbps。在第一周期内的每个第二周期,可以对量化参数范围进行动态调整,比如说,可以增加量化参数范围,也可以降低量化参数范围,从而用于第二周期期间的复杂和简单场景的码率补偿。在第一周期内的每个调节周期,可以根据场景实际运动情况来调节第二目标码率,继而基于第二目标码率和量化参数范围实现编码。
在上述应用场景下,本申请实施例提出的视频数据的编码方法,可以包括以下步骤:
在步骤S11中,基于第一周期对应的第一目标码率确定多个调节周期(即第一周期内的多个调节周期)对应的第二目标码率,不同调节周期对应的第二目标码率相同或者不同。
在一种可能的实施方式中,针对第一周期内的每个调节周期,基于第一周期对应的第一目标码率,可以采用如下步骤确定该调节周期对应的第二目标码率:
步骤S111、基于第一周期对应的第一目标码率确定该调节周期对应的最大目标码率。
示例性的,针对每个调节周期来说,在得到该调节周期对应的最大目标码率之后,该最大目标码率不再发生变化,即该最大目标码率保持不变。在该调节周期的编码过程中,可以基于最大目标码率确定该调节周期的第二目标码率,确定过程参见后续实施例。
在一种可能的实施方式中,若该调节周期是第一周期内的首个调节周期,则将第一周期对应的第一目标码率确定为该调节周期对应的最大目标码率。或者,若该调节周期是第一周期内的非首个调节周期,则基于第一周期对应的第一目标码率、第一周期对应的总时长、第一周期内该调节周期之前的实际编码比特总量、第一周期的剩余时长,确定该调节周期对应的最大目标码率。比如说,可以基于如下公式确定该调节周期对应的最大目标码率:最大目标码率=[第一目标码率*第一周期对应的总时长-实际编码比特总量]/第一周期的剩余时长。
比如说,假设第一周期对应的第一目标码率为400Kbps,第一周期包括调节周期1-调节周期16(即一共存在16个调节周期),那么,对于调节周期1,将第一周期对应的第一目标码率确定为调节周期1对应的最大目标码率,即调节周期1对应的最大目标码率为400Kbps。
对于调节周期2,可以采用如下公式确定调节周期2对应的最大目标码率:最大目标码率=[400Kbps*长周期时间-过往时间编码总量(Kb)]/剩余时间。在上述公式中,400Kbps表示第一目标码率,长周期时间表示第一周期对应的总时长(即16个调节周期的总时长),过往时间编码总量表示调节周期2之前的实际编码比特总量(即调节周期1的实际编码比特总量),剩余时间表示第一周期的剩余时长(即调节周期2-调节周期16的总时长)。显然,若调节周期1对应的平均码率大于400Kbps,则调节周期2对应的最大目标码率小于400Kbps,若调节周期1对应的平均码率小于400Kbps,则调节周期2对应的最大目标码率大于400Kbps,也就是说,在已完成编码的调节周期使用的平均码率多(即实际编码比特总量大)时,剩余调节周期对应的最大目标码率被调低,在已完成编码的调节周期使用的平均码率少(即实际编码比特总量小)时,剩余调节周期对应的最大目标码率被调高。
对于调节周期3,可以采用如下公式确定调节周期3对应的最大目标码率:最大目标码率=[400Kbps*长周期时间-过往时间编码总量(Kb)]/剩余时间。在上述公式中,过往时间编码总量表示调节周期3之前的实际编码比特总量(即调节周期1和调节周期2的实际编码比特总量),剩余时间表示第一周期的剩余时长(即调节周期3-调节周期16的总时长)。
以此类推,可以得到第一周期内的每个调节周期对应的最大目标码率。
步骤S112、基于该调节周期对应的最大目标码率确定该调节周期对应的第二目标码率。
在一种可能的实施方式中,在得到该调节周期对应的最大目标码率之后,可以将该最大目标码率确定为该调节周期对应的第二目标码率,即第二目标码率等于最大目标码率。
在另一种可能的实施方式中,在得到该调节周期对应的最大目标码率之后,可以确定该调节周期对应的场景运动等级,并基于该最大目标码率和该场景运动等级确定该调节周期对应的第二目标码率,且该第二目标码率可以小于或者等于该最大目标码率。
其中,当场景运动等级越大时,表示当前场景的运动程度越大,第二目标码率也越大。反之,当场景运动等级越小时,表示当前场景的运动程度越小,第二目标码率也越小。
示例性的,在基于该最大目标码率和该场景运动等级确定该调节周期对应的第二目标码率之后,在该调节周期对应的场景运动等级发生变化时,还可以基于该最大目标码率和变化后的场景运动等级重新确定该调节周期对应的第二目标码率。
示例性的,基于该最大目标码率和该场景运动等级确定该调节周期对应的第二目标码率,可以包括但不限于:确定该场景运动等级对应的已配置的比例系数;其中,该比例系数可以大于0,且小于或者等于1,当该场景运动等级越大时,该场景运动等级对应的比例系数也越大;可以基于该比例系数与该最大目标码率的乘积,确定该第二目标码率。
比如说,可以预先划分K个场景运动等级,K可以为大于1的正整数,如3个场景运动等级、5个场景运动等级、7个场景运动等级等,为了方便描述,以7个场景运动等级为例进行说明,将这7个场景运动等级记为场景运动等级1-场景运动等级7,在这7个场景运动等级中,场景运动等级1对应的运动程度最小,场景运动等级7对应的运动程度最大。
可以预先配置场景运动等级与比例系数之间的映射关系,比例系数可以是0-1之间的数值,即比例系数可以大于0,且比例系数可以小于或者等于1。在场景运动等级对应的运动程度越小时,则该场景运动等级对应的比例系数越小,在场景运动等级对应的运动程度越大时,则该场景运动等级对应的比例系数越大。比如说,场景运动等级1对应的比例系数小于场景运动等级2对应的比例系数,场景运动等级2对应的比例系数小于场景运动等级3对应的比例系数,以此类推,场景运动等级6对应的比例系数小于场景运动等级7对应的比例系数。
参见表1所示,为场景运动等级与比例系数之间的映射关系的一个示例。当然,这里只是给出映射关系的一个示例,本实施例中对此映射关系不做限制。
表1
场景运动等级 比例系数
场景运动等级7 1
场景运动等级6 0.875
场景运动等级5 0.75
场景运动等级4 0.625
场景运动等级3 0.5
场景运动等级2 0.375
场景运动等级1 0.25
在表1中,场景运动等级7对应的比例系数为1,表示最高场景运动等级对应的第二目标码率为最大目标码率。场景运动等级1对应的比例系数为0.25,表示最低场景运动等级对应的第二目标码率为最大目标码率*0.25,最低场景运动等级也可以称为静止场景,比例系数0.25表示静止场景码率百分比,即第二目标码率是最大目标码率的百分比。
针对每个调节周期,可以将该调节周期划分为多个采样周期,在每个采样周期,可以确定当前采样周期的场景运动等级,该场景运动等级用于反映当前采样周期的实际运动情况,即当前场景的运动程度,如基于图像分析出当前采样周期的场景运动等级,对此过程不做限制,只要能够得到场景运动等级即可。在得到当前采样周期的场景运动等级之后,就可以查询表1所示的映射关系,得到该场景运动等级对应的比例系数,并基于该比例系数与该调节周期对应的最大目标码率的乘积,确定当前采样周期的后一个采样周期的第二目标码率。
比如说,可以将调节周期划分为采样周期1、采样周期2、采样周期3…,在采样周期1,确定采样周期1的场景运动等级,如场景运动等级7,场景运动等级7对应的比例系数为1,假设调节周期对应的最大目标码率为400Kbps,则采样周期2的第二目标码率为400Kbps。
在采样周期2,确定采样周期2的场景运动等级,如场景运动等级6,场景运动等级6对应的比例系数为0.875,则采样周期3的第二目标码率为350Kbps(400*0.875)。
在采样周期3,确定采样周期3的场景运动等级,如场景运动等级6,场景运动等级6对应的比例系数为0.875,则采样周期4的第二目标码率为350Kbps,以此类推。
综上所述,针对调节周期的每个采样周期,可以得到该采样周期的第二目标码率。显然,调节周期对应的第二目标码率为可变值,可以动态变化,即第二目标码率可以根据场景实际运动情况动态调整,不同采样周期的第二目标码率可以相同或者不同,如在场景实际运动情况比较复杂时,第二目标码率变大,在场景实际运动情况比较简单时,第二目标码率变小。
在步骤S12中,针对多个调节周期中的当前调节周期,基于当前调节周期对应的目标量化参数范围和当前调节周期对应的第二目标码率确定当前调节周期的目标量化参数;其中,目标量化参数范围用于约束当前调节周期的量化参数最大值和量化参数最小值,第二目标码率用于调节当前调节周期的量化参数,且量化参数处于目标量化参数范围。
在一种可能的实施方式中,针对第一周期内的每个调节周期,在该调节周期作为当前调节周期(即当前时间处于该调节周期)时,基于当前调节周期对应的目标量化参数范围和当前调节周期对应的第二目标码率,可以采用如下步骤确定当前调节周期的目标量化参数:
步骤S121、确定当前调节周期对应的目标量化参数范围。
在一种可能的实施方式中,若当前调节周期是第一周期内的首个调节周期,则确定第一周期对应的量化参数范围,将该量化参数范围确定为当前调节周期对应的目标量化参数范围。
比如说,可以根据经验预先配置第一周期对应的量化参数范围,对此量化参数范围不做限制,如第一周期对应的量化参数范围可以为[a,b],a表示量化参数最小值(minQP),b表示量化参数最大值(maxQP),量化参数最大值b通常会大于量化参数最小值a。
在此基础上,若当前调节周期是第一周期内的首个调节周期,则可以将第一周期对应的量化参数范围[a,b]作为当前调节周期(如调节周期1)对应的目标量化参数范围。
在另一种可能的实施方式中,若当前调节周期是第一周期内的非首个调节周期,则确定当前调节周期前面的相邻调节周期对应的量化参数范围,并基于相邻调节周期对应的量化参数范围确定当前调节周期对应的目标量化参数范围。比如说,可以基于相邻调节周期对应的最大目标码率确定相邻调节周期的码率阈值,该码率阈值可以为该最大目标码率与预设倍数值的乘积。若相邻调节周期对应的实际码率大于或者等于相邻调节周期的码率阈值,则向上调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到当前调节周期对应的目标量化参数范围;若相邻调节周期对应的实际码率小于相邻调节周期的码率阈值,则将相邻调节周期对应的量化参数范围确定为当前调节周期对应的目标量化参数范围。
比如说,假设第一周期包括调节周期1-调节周期16,若当前调节周期是调节周期2,则相邻调节周期是调节周期1,若当前调节周期是调节周期3,则相邻调节周期是调节周期2,以此类推,以当前调节周期是调节周期2为例,且调节周期1对应的量化参数范围是[a,b]。
可以基于调节周期1对应的最大目标码率确定调节周期1的码率阈值,该码率阈值可以为调节周期1对应的最大目标码率*M,M可以为预设倍数值,可以根据经验配置。假设调节周期1对应的最大目标码率为400Kbps,则该码率阈值可以为(400*M)Kbps。M可以为大于或者等于1的数值,如1.2、1.5、2、2.2等,也可以为小于1的数值,对此不做限制。
若调节周期1对应的实际码率(即实际平均码率)大于或者等于调节周期1的码率阈值(如400*M),则可以向上调整调节周期1对应的量化参数范围中的量化参数最大值和量化参数最小值,即,基于调节周期1对应的量化参数范围是[a,b],可以向上调整量化参数最大值b,得到量化参数最大值b’,并向上调整量化参数最小值a,得到量化参数最小值a’,这样,可以得到调节周期2对应的目标量化参数范围,该目标量化参数范围可以是[a’,b’]。
若调节周期1对应的实际码率(即实际平均码率)小于调节周期1的码率阈值,则将调节周期1对应的量化参数范围确定为调节周期2对应的目标量化参数范围,也就是说,基于调节周期1对应的量化参数范围是[a,b],该目标量化参数范围可以是[a,b]。
步骤S122、确定目标量化参数范围内的初始量化参数对应的实际编码码率。
示例性的,在得到当前调节周期对应的目标量化参数范围之后,可以从目标量化参数范围内选取一个量化参数作为初始量化参数,对此初始量化参数不做限制,只要初始量化参数大于或者等于量化参数最小值,且初始量化参数小于或者等于量化参数最大值即可。
在得到初始量化参数之后,可以基于初始量化参数对视频数据进行编码,并得到编码过程中的实际编码码率。在采用初始量化参数对视频数据进行编码时,若场景实际运动情况比较复杂,则编码过程中的实际编码码率会比较大,反之,若场景实际运动情况比较简单,则编码过程中的实际编码码率会比较小。显然,在视频数据的编码过程中,可以统计初始量化参数对应的实际编码码率,继而基于实际编码码率对初始量化参数进行调整。
步骤S123、若该实际编码码率大于当前调节周期对应的第二目标码率,则提高初始量化参数;若提高后的量化参数位于目标量化参数范围内,则基于提高后的量化参数确定目标量化参数,如将提高后的量化参数作为目标量化参数;若提高后的量化参数不位于目标量化参数范围内(即提高后的量化参数大于目标量化参数范围的量化参数最大值),则基于目标量化参数范围对应的量化参数最大值确定目标量化参数,如将量化参数最大值作为目标量化参数。
步骤S124、若该实际编码码率小于当前调节周期对应的第二目标码率,则降低初始量化参数;若降低后的量化参数位于目标量化参数范围内,则基于降低后的量化参数确定目标量化参数,如将降低后的量化参数作为目标量化参数;若降低后的量化参数不位于目标量化参数范围内(即降低后的量化参数小于目标量化参数范围的量化参数最小值),则基于目标量化参数范围对应的量化参数最小值确定目标量化参数,如将量化参数最小值作为目标量化参数。
示例性的,在采用初始量化参数对视频数据进行编码的过程中,可以比较实际编码码率与第二目标码率(由于第二目标码率会动态变化,将实际编码码率与当前时刻的第二目标码率进行比较即可)。若该实际编码码率大于第二目标码率,则提高初始量化参数(即初始QP),将提高后的量化参数作为目标量化参数,若该实际编码码率小于第二目标码率,则降低初始量化参数,将降低后的量化参数作为目标量化参数。在初始量化参数的调整过程中,若调整后量化参数大于量化参数最大值,则将量化参数最大值作为目标量化参数,若调整后量化参数小于量化参数最小值,则将量化参数最小值作为目标量化参数,也就是说,需要在目标量化参数范围[minQP,maxQP]内调整初始量化参数,当初始量化参数调整到minQP或者maxQP时,无论实际编码码率与第二目标码率的关系如何,不再调节初始量化参数。
在得到目标量化参数之后,可以基于目标量化参数对视频数据进行编码,并得到编码过程中的实际编码码率,继而基于该实际编码码率对目标量化参数进行调整。比如说,若该实际编码码率大于第二目标码率,则提高目标量化参数;若提高后的量化参数位于目标量化参数范围内,则基于提高后的量化参数确定目标量化参数,若提高后的量化参数不位于目标量化参数范围内,则基于目标量化参数范围对应的量化参数最大值确定目标量化参数。若该实际编码码率小于第二目标码率,则降低目标量化参数;若降低后的量化参数位于目标量化参数范围内,则基于降低后的量化参数确定目标量化参数,若降低后的量化参数不位于目标量化参数范围内,则基于目标量化参数范围对应的量化参数最小值确定目标量化参数。
以此类推,可以不断调整目标量化参数,并基于调整后的目标量化参数对视频数据进行编码,从而使得实际编码码率向第二目标码率靠拢,即在minQP与maxQP之间调节量化参数QP,使实际编码码率靠近当前场景运动等级对应的第二目标码率。
综上所述,参见步骤S121-步骤S124,可以基于当前调节周期对应的目标量化参数范围和当前调节周期对应的第二目标码率确定当前调节周期的目标量化参数。
在步骤S13中,在当前调节周期内,基于当前调节周期的目标量化参数对视频数据进行编码。在视频数据的编码过程中,可以基于编码过程中的实际编码码率和当前调节周期对应的第二目标码率继续对目标量化参数进行调整,以此类推,不断重复上述过程。
在一种可能的实施方式中,第一周期可以包括多个第二周期,每个第二周期可以包括多个调节周期,基于相邻调节周期对应的量化参数范围,可以采用如下方式确定当前调节周期对应的目标量化参数范围:若当前调节周期是当前第二周期内的首个调节周期,且当前第二周期是第一周期内的首个第二周期,则可以基于第一周期对应的第一目标码率确定第一比特数量阈值和第二比特数量阈值,第一比特数量阈值基于第一目标码率与第一倍数值的乘积确定,第二比特数量阈值基于第一目标码率与第二倍数值的乘积确定,且该第一倍数值可以大于该第二倍数值。基于此,若第一周期内当前调节周期之前的实际编码比特总量大于第一比特数量阈值,则可以向上调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到当前调节周期对应的目标量化参数范围。若第一周期内当前调节周期之前的实际编码比特总量小于第二比特数量阈值,则可以向下调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到当前调节周期对应的目标量化参数范围。
比如说,可以预先配置第一倍数值和第二倍数值,第一倍数值和第二倍数值均可以根据经验配置,第一倍数值大于第二倍数值即可。例如,第一倍数值可以为大于或者等于1的数值,如(1+N1%),N1可以根据经验配置,用于表示误差范围,N1的取值范围可以是[0,20],对此不做限制。第二倍数值可以为小于或者等于1的数值,如(1-N2%),N2可以根据经验配置,用于表示误差范围,N2的取值范围可以是[0,20],对此不做限制。
可以基于第一目标码率(如400Kbps)与第一倍数值的乘积确定第一比特数量阈值,比如说,第一比特数量阈值为第一目标码率*第一倍数值*当前调节周期之前的编码总时长。
可以基于第一目标码率与第二倍数值的乘积确定第二比特数量阈值,比如说,第二比特数量阈值可以为第一目标码率*第二倍数值*当前调节周期之前的编码总时长。
其中,假设第一周期包括调节周期1-调节周期16,当前调节周期是调节周期10,那么,当前调节周期之前的编码总时长可以为调节周期1-调节周期9的总时长。
若当前调节周期之前的实际编码比特总量(如调节周期1-调节周期9的实际编码比特总量,用于表示从第一周期开始到当前的实际编码空间)大于第一比特数量阈值(用于表示第一目标码率编码下的编码空间的(1+N1%)倍),则向上调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值。假设相邻调节周期对应的量化参数范围是[a,b],则向上调整量化参数最大值b,得到量化参数最大值b’,并向上调整量化参数最小值a,得到量化参数最小值a’,这样,得到当前调节周期对应的目标量化参数范围是[a’,b’]。
在向上调整量化参数范围中的量化参数最大值和量化参数最小值时,若量化参数最大值和量化参数最小值已到达可调节的阈值,则提示场景过于复杂,录像天数无法达到预期天数。
若当前调节周期之前的实际编码比特总量小于第二比特数量阈值(用于表示第一目标码率编码下的编码空间的(1-N2%)倍),则向下调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值。假设相邻调节周期对应的量化参数范围是[a,b],则向下调整量化参数最大值b,得到量化参数最大值b”,并向下调整量化参数最小值a,得到量化参数最小值a”,这样,得到当前调节周期对应的目标量化参数范围是[a”,b”]。
在另一种可能的实施方式中,第一周期可以包括多个第二周期,每个第二周期可以包括多个调节周期,基于相邻调节周期对应的量化参数范围,可以采用如下方式确定当前调节周期对应的目标量化参数范围:若当前调节周期是当前第二周期内的首个调节周期,且当前第二周期是第一周期内的非首个第二周期,则可以基于第一周期对应的第一目标码率和第一周期内当前调节周期之前的编码总时长确定第一比特数量阈值和第二比特数量阈值,并基于第一周期对应的第一目标码率和第二周期的时长确定第三比特数量阈值和第四比特数量阈值;其中,该第一比特数量阈值可以大于该第二比特数量阈值,该第三比特数量阈值可以大于该第四比特数量阈值。基于此,若第一周期内当前调节周期之前的实际编码比特总量大于第一比特数量阈值,且当前第二周期前面的相邻第二周期的实际编码比特总量大于第三比特数量阈值,则可以向上调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,从而得到当前调节周期对应的目标量化参数范围。若第一周期内当前调节周期之前的实际编码比特总量小于第二比特数量阈值,且当前第二周期前面的相邻第二周期的实际编码比特总量小于第四比特数量阈值,则可以向下调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,从而得到当前调节周期对应的目标量化参数范围。
比如说,可以预先配置第一倍数值和第二倍数值,第一倍数值和第二倍数值均可以根据经验配置,第一倍数值大于第二倍数值即可。例如,第一倍数值可以为大于或者等于1的数值,如(1+N1%),第二倍数值可以为小于或者等于1的数值,如(1-N2%)。
可以基于第一目标码率(如400Kbps)、第一倍数值和第一周期内当前调节周期之前的编码总时长确定第一比特数量阈值,比如说,第一比特数量阈值可以为第一目标码率*第一倍数值*当前调节周期之前的编码总时长。以及,可以基于第二目标码率、第二倍数值和第一周期内当前调节周期之前的编码总时长确定第二比特数量阈值,比如说,第二比特数量阈值可以为第一目标码率*第二倍数值*当前调节周期之前的编码总时长。
比如说,可以预先配置第三倍数值和第四倍数值,第三倍数值和第四倍数值均可以根据经验配置,第三倍数值大于第四倍数值即可。例如,第三倍数值可以为大于或者等于1的数值,如(1+X1%),X1可以根据经验配置,用于表示误差范围,X1的取值范围可以是[0,20],对此不做限制。第四倍数值可以为小于或者等于1的数值,如(1-X2%),X2可以根据经验配置,用于表示误差范围,X2的取值范围可以是[0,20],对此不做限制。
可以基于第一目标码率、第三倍数值和第二周期的时长(即一个第二周期的总时长,假设一个第二周期包括4个调节周期,则第二周期的时长是4个调节周期的总时长)确定第三比特数量阈值,比如说,第三比特数量阈值可以为第一目标码率*第三倍数值*第二周期的时长。以及,可以基于第一目标码率、第四倍数值和第二周期的时长确定第四比特数量阈值,比如说,第四比特数量阈值可以为第一目标码率*第四倍数值*第二周期的时长。
若当前调节周期之前的实际编码比特总量(用于表示从第一周期开始到当前的实际编码空间)大于第一比特数量阈值(用于表示第一目标码率编码下的编码空间的(1+N1%)倍),且当前第二周期前面的相邻第二周期的实际编码比特总量(用于表示上一个第二周期的实际编码空间)大于第三比特数量阈值(用于表示第一目标码率在第二周期对应时间下的编码空间的(1+X1%)倍),则可以向上调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值。假设相邻调节周期对应的量化参数范围是[a,b],则向上调整量化参数最大值b,得到量化参数最大值b’,并向上调整量化参数最小值a,得到量化参数最小值a’,这样,可以得到当前调节周期对应的目标量化参数范围是[a’,b’]。
在向上调整量化参数范围中的量化参数最大值和量化参数最小值时,若量化参数最大值和量化参数最小值已到达可调节的阈值,则提示场景过于复杂,录像天数无法达到预期天数。
若当前调节周期之前的实际编码比特总量小于第二比特数量阈值(用于表示第一目标码率编码下的编码空间的(1-N2%)倍),且当前第二周期前面的相邻第二周期的实际编码比特总量小于第四比特数量阈值(用于表示第一目标码率在第二周期对应时间下的编码空间的(1-X2%)倍),则可以向下调整相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值。比如说,假设相邻调节周期对应的量化参数范围是[a,b],则向下调整量化参数最大值b,得到量化参数最大值b”,并向下调整量化参数最小值a,得到量化参数最小值a”,这样,得到当前调节周期对应的目标量化参数范围是[a”,b”]。
在一种可能的实施方式中,可以基于第一周期对应的第一目标码率(如400Kbps)确定模拟通道总码率,也就是说,由于第一目标码率为固定值,第一目标码率不会发生变化,因此,可以直接基于第一目标码率确定模拟通道总码率。然后,基于模拟通道总码率确定存储设备对应的可录像时间,比如说,若存储设备接入多个IPC,则统计所有IPC通道的总码率,并基于模拟通道总码率、所有IPC通道的总码率和硬盘总空间确定可录像时间。在得到存储设备对应的可录像时间之后,就可以通过目标界面显示该可录像时间。
示例性的,可录像时间的计算公式可以为:剩余可录像天数=可用于录像的空间÷[(模拟通道总码率+IPC通道总码率)÷8×86400]。在上述公式中,可用于录像的空间的单位是KB,即硬盘总空间,可用于录像的空间为已知值。模拟通道总码率是存储设备当前接入并编码的所有模拟通道的码率之和,单位为Kbps,本实施例中,针对存储设备当前接入并编码的每个模拟通道,该模拟通道对应的码率就是第一目标码率,因此,可以将所有模拟通道的第一目标码率之和作为模拟通道总码率。IPC通道总码率是存储设备当前接入并录像的所有IPC通道的码率之和,单位为Kbps,对此IPC通道总码率的获取方式不做限制。除以8是将单位Kbps转换为KBps,即bit转换为BYTE,86400是一天的秒数,即中括号是一天的录像大小。使用硬盘总可用录像空间(即硬盘总空间)除以一天的录像大小,得到剩余可录像天数。
在得到存储设备对应的可录像时间(即剩余可录像天数)之后,就可以通过目标界面显示该可录像时间,从而对目标界面进行简化,只显示当前硬盘空间下可以录像多少天。
基于与上述方法同样的申请构思,本申请实施例中还提出一种界面显示方法,可以确定第一周期对应的第一目标码率;其中,第一周期可以包括多个调节周期,每个调节周期对应的第二目标码率可以是基于该第一目标码率确定,该第一目标码率可以为固定值,不同调节周期对应的第二目标码率可以相同或者不同,第一目标码率用于表示第一周期内期望的平均码率,每个调节周期对应的第二目标码率用于表示调节周期内期望的平均码率。在每个调节周期内,可以基于该调节周期对应的第二目标码率对视频数据进行编码。
在此基础上,可以基于第一周期对应的第一目标码率确定模拟通道总码率,并基于模拟通道总码率确定存储设备对应的可录像时间,并通过目标界面显示所述可录像时间。
以下结合具体应用场景,对上述技术方案进行说明,在对本申请实施例提供的视频数据的编码方法进行详细的解释说明之前,先对本申请实施例提供的实施环境进行介绍。
请参考图1,图1是根据一示例性实施例示出的一种实施环境的示意图。该实施环境包括至少一个摄像机101和硬盘录像机102,摄像机101可以与硬盘录像机102进行通信连接。该通信连接可以为有线或者无线连接,本申请实施例对此不做限定。
在一些实施例中,摄像机101可以对拍摄范围内的实际场景进行拍摄,得到视频数据,将该视频数据发送给硬盘录像机102。由于摄像机101拍摄得到的视频数据为模拟的视频数据,所以,硬盘录像机102可以按照本申请实施例提供的视频数据的编码方法,对摄像机101发送的模拟的视频数据进行编码,得到录像数据,从而将录像数据进行存储。
需要说明的是,对摄像机101发送的模拟的视频数据进行编码时,需要先将该模拟的视频数据转换为数字的视频数据,再对该数字的视频数据进行编码。下文涉及到的类似内容同理,本申请实施例将在下文不再展开阐述。
在另一些实施例中,摄像机101可以对拍摄范围内的实际场景进行拍摄,得到视频数据,按照本申请实施例提供的视频数据的编码方法对该视频数据进行编码,得到录像数据。然后将录像数据发送给硬盘录像机102,硬盘录像机102接收录像数据后进行存储。
其中,摄像机101可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行交互,进而对实际场景进行拍摄的摄像机,例如PC(Personal Computer,个人计算机)、手机、智能手机、PDA(Personal DigitalAssistant,个人数字助手)、掌上电脑PPC(Pocket PC)、平板电脑、智能电视等。
硬盘录像机102可以是HVR(High Definition&Hybrid Digital Video Recorder,高清混合数字硬盘录像机)、DVR(Digital Video Recorder,硬盘录像机)、NVR(NetworkVideo Recorder,网络硬盘录像机)等。
本领域技术人员应能理解上述摄像机101和硬盘录像机102仅为举例,其他现有的或今后可能出现的摄像机或硬盘录像机如可适用于本申请实施例,也应包含在本申请实施例保护范围以内,并在此以引用方式包含于此。
接下来对本申请实施例提供的视频数据的编码方法进行详细的解释说明。
图2是本申请实施例提供的一种视频数据的编码方法的流程图,该方法可应用于摄像机或硬盘录像机,接下来以本申请实施例提供的视频数据的编码方法应用于硬盘录像机为例进行详细的解释说明。
摄像机将模拟的视频数据发送给硬盘录像机,硬盘录像机对模拟的视频数据进行编码时,可以分为多个第一周期,按照多个第一周期进行编码,每个第一周期对应一个目标码率,该目标码率为第一周期内的编码比特数达到预设编码比特数所对应的平均码率。其中,第一周期包括多个调节周期,每个调节周期对应一个目标码率,该目标码率为调节周期内的最大码率。
可选地,第一周期还可以包括多个第二周期,第二周期包括多个调节周期。而且,第一周期的周期长度大于第二周期的周期长度,第二周期的周期长度大于调节周期的周期长度。例如,第一周期的周期长度可以设置为4小时,第二周期的周期长度可以设置为30分钟,调节周期的周期长度可以设置为10分钟。
不管第一周期是否包括第二周期,本申请实施例提供的视频数据的编码方法都是将整个编码过程分为很多个调节周期,而且每个调节周期进行编码的方式是一样的。因此,接下来以其中的一个调节周期为例进行详细的介绍。
请参考图2,该方法包括如下步骤。
步骤201:确定第一量化参数,第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数。
在一些实施例中,确定第一量化参数范围,第一量化参数范围用于约束当前调节周期内对视频数据进行编码所采用的量化参数。基于第一量化参数范围确定第一量化参数,且第一量化参数位于第一量化参数范围内。
对视频数据进行编码时,由于不同调节周期的图像复杂情况以及场景运动程度不同,因此需要针对不同的调节周期分别确定对应的量化参数范围。这样,在每个调节周期内对视频数据进行编码的过程中,可以基于每个调节周期对应的量化参数范围内的量化参数进行编码,从而对每个调节周期的实际平均码率起到一定的控制作用。
以当前调节周期为例,由于当前调节周期可能是当前第一周期内的首个调节周期,也可能是当前第一周期内的非首个调节周期,而且当前第一周期可能是首个第一周期,也可能是非首个第一周期。在当前调节周期的位置不同的情况下,确定当前调节周期对应的量化参数范围的方式不同,即确定第一量化参数范围的方式不同,因此,接下来将分为以下三种情况分别进行说明:
第一种情况、如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为首个第一周期,也即是当前调节周期的开始时间为首个第一周期的开始时间,则将初始量化参数范围确定为第一量化参数范围。
在当前调节周期的开始时间为首个第一周期的开始时间的情况下,表明当前调节周期为整个编码过程的首个调节周期,此时可以直接将初始量化参数范围确定为第一量化参数范围。
其中,初始量化参数范围可以是提前设置的量化参数范围,此外在后续对视频数据进行编码的过程中,初始量化参数范围可以按照不同的实际需求进行调整。
第二种情况、如果当前调节周期为当前第一周期内的非首个调节周期,也即是当前调节周期的开始时间不为当前第一周期的开始时间,则确定与当前调节周期相邻的上一调节周期的实际平均码率。如果上一调节周期的实际平均码率大于上一调节周期对应的码率阈值,则增大上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围,上一调节周期对应的码率阈值基于上一调节周期对应的目标码率确定。
在第一周期包括第二周期,第二周期包括多个调节周期的情况下,如果当前调节周期为当前第一周期内的非首个调节周期且为当前第二周期内的非首个调节周期,也即是当前调节周期的开始时间不为当前第一周期的开始时间且不为当前第二周期的开始时间,则确定与当前调节周期相邻的上一调节周期的实际平均码率。如果上一调节周期的实际平均码率大于上一调节周期对应的码率阈值,则增大上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围,上一调节周期对应的码率阈值基于上一调节周期对应的目标码率确定。
也即是,在当前调节周期为非首个调节周期的情况下,不管第一周期是否包括第二周期,确定第一量化参数范围的方式均相同。
其中,确定上一调节周期的实际平均码率的实现过程包括:统计上一调节周期内对视频数据进行编码得到的编码比特数,将该编码比特数除以上一调节周期的周期长度,得到上一调节周期的实际平均码率。
上一调节周期对应的码率阈值可以基于上一调节周期对应的目标码率按照多种方式来确定。例如,在一些实施例中,上一调节周期对应的码率阈值可以是上一调节周期对应的目标码率的倍数,该倍数可以为整数也可以为小数。在另一些实施例中,上一调节周期对应的码率阈值也可以是在上一调节周期对应的目标码率的基础上增加特定的数值。
当上一调节周期的实际平均码率大于上一调节周期对应的码率阈值时,表明上一调节周期对视频数据进行编码后得到的编码比特数较大。此时,需要增大上一调节周期对应的量化参数范围的上限和下限,得到第一量化参数范围,使得在后续对视频数据进行编码时,能够减小码率,从而保证每个第一周期对应的实际平均码率趋于固定。当然,如果上一调节周期的实际平均码率小于或等于上一调节周期对应的码率阈值时,表明上一调节周期对视频数据进行编码后得到的编码比特数比较贴合实际场景,此时,可以直接将上一调节周期对应的量化参数范围确定为第一量化参数范围。
其中,量化参数范围包括下限和上限,在增大上一调节周期对应的量化参数范围的上限和下限时,可以同时增大上一调节周期对应的量化参数范围的下限和上限,而且下限和上限的增加量可以相同,也可以不同。比如,上一调节周期对应的量化参数范围的下限和上限分别记为minQP和maxQP,增大maxQP和minQP时,minQP的增加量可以为2,maxQP的增加量可以为1。
作为一种示例,在第一周期包括多个第二周期,第二周期包括多个调节周期的情况下,如果当前调节周期为当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,也即是当前调节周期的开始时间不为当前第一周期的开始时间且为当前第二周期的开始时间,则确定第一实际编码比特数、第二实际编码比特数、第一期望编码比特数和第二期望编码比特数。基于第一实际编码比特数与第一期望编码比特数的关系,以及第二实际编码比特数与第二期望编码比特数的关系,调整与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
其中,第一实际编码比特数为当前第一周期内已实际编码的比特数,第二实际编码比特数为当前第二周期内已实际编码的比特数。第一期望编码比特数为基于第一目标码率确定的当前第一周期内已期望编码的比特数,第二期望编码比特数为基于第一目标码率确定的当前第二周期内已期望编码的比特数。
也即是,第一实际编码比特数是指以当前第一周期的开始时间为起点,以当前调节周期的开始时间为终点的这一段时间内编码得到的比特数。第二实际编码比特数是指以当前第二周期的开始时间为起点,以当前调节周期的开始时间为终点的这一段时间内编码得到的比特数。
第一期望编码比特数是指以当前第一周期的开始时间为起点,以当前调节周期的开始时间为终点的这一段时间内按照第一目标码率期望编码得到的比特数。也即是,可以确定以当前第一周期的开始时间为起点,以当前调节周期的开始时间为终点的这一段时间的时长,将这一段时间的时长乘以第一目标码率,得到期望编码比特数。
第二期望编码比特数是指以当前第二周期的开始时间为起点,以当前调节周期的开始时间为终点的这一段时间内按照第一目标码率期望编码得到的比特数。也即是,可以确定以当前第二周期的开始时间为起点,以当前调节周期的开始时间为终点的这一段时间的时长,将这一段时间的时长乘以第一目标码率,得到期望编码比特数。
在一些实施例中,基于第一实际编码比特数与第一期望编码比特数的关系,以及第二实际编码比特数与第二期望编码比特数的关系,调整与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限的实现过程包括:如果第一实际编码比特数大于第一期望编码比特数范围的上限,且第二实际编码比特数大于第二期望编码比特数范围的上限,则增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。如果第一实际编码比特数小于第一期望编码比特数范围的下限,且第二实际编码比特数小于第二期望编码比特数范围的下限,则减小上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
第一期望编码比特数范围可以在第一期望编码比特数的基础上浮动一定范围得到。第二期望编码比特数范围可以在第二期望编码比特数的基础上浮动一定范围得到。比如,在第一期望编码比特数的基础上浮动±N%得到第一期望编码比特数范围,在第二期望编码比特数的基础上浮动±N%得到第二期望编码比特数范围,N的取值可以位于[0,20]的范围内。
当第一实际编码比特数大于第一期望编码比特数范围的上限,且第二实际编码比特数大于第二期望编码比特数范围的上限时,表明当前第一周期内已编码的比特数较多,或者说当前第一周期已编码的比特数所采用的量化参数较小,因此,可以增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,使得在后续编码过程中减小实际编码比特数,从而保证当前第一周期对应的实际平均码率趋向于第一目标码率。相反,当第一实际编码比特数小于第一期望编码比特数范围的下限,且第二实际编码比特数小于第二期望编码比特数范围的下限时,表明当前第一周期内已编码的比特数较少,或者说当前第一周期已编码的比特数所采用的量化参数较大,因此,可以减小与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,从而在后续编码过程中增大实际编码比特数,在保证当前第一周期对应的实际平均码率趋向于第一目标码率的基础上,提高图像质量。
其中,增大上一调节周期对应的量化参数范围的上限和下限的实现过程可以参考上述第二种情况中的相应描述,此处不再赘述。同理,减小上一调节周期对应的量化参数范围的上限和下限时,可以同时减小上一调节周期对应的量化参数范围的下限和上限,而且下限和上限的减小量可以相同,也可以不同。
作为另一种示例,在第一周期包括多个第二周期,第二周期包括多个调节周期的情况下,如果当前调节周期为当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,也即是当前调节周期的开始时间不为当前第一周期的开始时间且为当前第二周期的开始时间,则确定第一实际编码比特数和第一期望编码比特数。基于第一实际编码比特数与第一期望编码比特数的关系,调整与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
其中,第一实际编码比特数为当前第一周期内已实际编码的比特数,第一期望编码比特数为基于第一目标码率确定的当前第一周期内已期望编码的比特数。
在一些实施例中,基于第一实际编码比特数与第一期望编码比特数的关系,调整与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限的实现过程包括:如果第一实际编码比特数大于第一期望编码比特数范围的上限,则增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。如果第一实际编码比特数小于第一期望编码比特数范围的下限,则减小上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
第一期望编码比特数范围可以在第一期望编码比特数的基础上浮动一定范围得到。比如,在第一期望编码比特数的基础上浮动±N%得到第一期望编码比特数范围,N的取值可以位于[0,20]的范围内。
当第一实际编码比特数大于第一期望编码比特数范围的上限,表明当前第一周期内已编码的比特数较多,或者说当前第一周期已编码的比特数所采用的量化参数较小,因此,可以增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,使得在后续编码过程中减小实际编码比特数,从而保证当前第一周期对应的实际平均码率趋向于第一目标码率。相反,当第一实际编码比特数小于第一期望编码比特数范围的下限,表明当前第一周期内已编码的比特数较少,或者说当前第一周期已编码的比特数所采用的量化参数较大,因此,可以减小与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,从而在后续编码过程中增大实际编码比特数,在保证当前第一周期对应的实际平均码率趋向于第一目标码率的基础上,提高图像质量。
可选地,在增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限之前,还包括:如果上一调节周期对应的量化参数范围的下限达到最大下限量化参数且上一调节周期对应的量化参数范围的上限达到最大上限量化参数,则显示提示信息,该提示信息用于提示可录像时间无法达到预期时间。
在一些实施例中,可以通过弹窗的形式显示提示信息,还可以通过悬浮窗的形式显示提示信息。当然,还可以通过其他的方式显示提示信息,本申请实施例对提示信息的显示方式不做限定。
当上一调节周期对应的量化参数范围的下限达到最大下限量化参数且上一调节周期对应的量化参数范围的上限达到最大上限量化参数,表明量化参数范围的下限已到达可调节的最大阈值,同时,量化参数范围的上限已到达可调节的最大阈值。也即是,量化参数范围已达到极限状态,场景过于复杂。在这种情况下,录像数据所占用的空间就会比较大,可录像时间无法达到预期时间。其中,预期时间是指在硬盘空间大小一定的基础上可录像的理论时间。
其中,在增大上一调节周期对应的量化参数范围的上限和下限时,可以确定上一调节周期对应的量化参数范围的上限是否达到最大上限参数,以及确定上一调节周期对应的量化参数范围的下限是否达到最大下限参数,如果上一调节周期对应的量化参数范围的上限达到最大上限参数,且上一调节周期对应的量化参数范围的下限达到最大下限参数,则不再调整,直接将上一调节周期对应的量化参数范围确定为第一量化参数范围,否则,增大上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围,只要第一量化参数范围的上限不超过最大上限参数,且第一量化参数范围的下限不超过最大下限参数即可。
同理,在减小上一调节周期对应的量化参数范围的上限和下限时,可以确定上一调节周期对应的量化参数范围的上限是否达到最小上限参数,以及确定上一调节周期对应的量化参数范围的下限是否达到最小下限参数,如果上一调节周期对应的量化参数范围的上限达到最小上限参数,且上一调节周期对应的量化参数范围的下限达到最小下限参数,则不再调整,直接将上一调节周期对应的量化参数范围确定为第一量化参数范围,否则,减小上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围,只要第一量化参数范围的上限不小于最小上限参数,且第一量化参数范围的下限不小于最小下限参数即可。
需要说明的是,可以事先为量化参数范围的下限设置最大值和最小值,也即是,最大下限量化参数和最小下限量化参数。同理,也可以事先为量化参数范围的上限设置最大值和最小值,也即是,最大上限量化参数和最小上限量化参数。通过为量化参数范围的上限和下限设置的最大值和最小值,能够避免因量化参数过大造成图像质量降低的问题,或者因量化参数过小造成录像数据占用较多存储空间的问题。
第三种情况、如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为非首个第一周期,也即是当前调节周期的开始时间为非首个第一周期的开始时间,则将与当前第一周期相邻的上一第一周期包括的最后一个调节周期对应的量化参数范围确定为第一量化参数范围。
在当前调节周期的开始时间为非首个第一周期的开始时间的情况下,表明当前调节周期为非首个第一周期内的首个调节周期,此时,为了实现两个相邻第一周期间图像的平滑过渡,可以将与当前第一周期相邻的上一第一周期包括的最后一个调节周期对应的量化参数范围确定为第一量化参数范围。
在一些实施例中,基于第一量化参数范围确定第一量化参数的实现过程包括:如果当前第一周期为非首个第一周期,或者,当前第一周期为首个第一周期且当前调节周期为当前第一周期内的非首个调节周期,也即是,当前调节周期的开始时间不为首个第一周期的开始时间,则获取第二量化参数,第二量化参数为与当前调节周期相邻的上一调节周期结束时所采用的量化参数。如果第二量化参数位于第一量化参数范围内,则将第二量化参数确定为第一量化参数,否则,对第二量化参数进行调整,以使调整后的第二量化参数位于第一量化参数范围内,并将调整后的第二量化参数确定为第一量化参数。
通常情况下,相邻两个调节周期的场景运动程度相差不大,所以,第二量化参数通常也位于第一量化参数范围内,这种情况下,可以直接将第二量化参数确定为第一量化参数。但是,在某些情况下,相邻两个调节周期的场景运动程度可能相差较大,导致第二量化参数不位于第一量化参数范围内。此时,需要对第二量化参数进行调整。当第二量化参数大于第一量化参数范围的上限时,可以减小第二量化参数,当第二量化参数小于第一量化参数范围的下限时,可以增大第二量化参数,只要调整后的第二量化参数位于第一量化参数范围内即可。
可选地,如果当前调节周期为整个编码过程中的首个调节周期,也即是,当前调节周期的开始时间为首个第一周期的开始时间,那么可以直接将初始量化参数确定为第一量化参数。
其中,初始量化参数可以事先设置,而且初始量化参数还可以按照不同的需求来调整。
步骤202:确定第二目标码率,第二目标码率为当前调节周期内的最大码率,且为基于第一目标码率确定出当前第一周期中剩余时长内的平均码率。
基于上文描述,当前调节周期可能是当前第一周期内的首个调节周期,也可能是当前第一周期内的非首个调节周期,而且当前第一周期可能是首个第一周期,也可能是非首个第一周期,在当前调节周期的位置不同的情况下,确定当前调节周期对应的目标码率的方式不同,即确定第二目标码率的方式不同,接下来将分为以下三种情况分别进行说明:
第一种情况、如果当前调节周期为当前第一周期内的首个调节周期,也即是当前调节周期的开始时间为当前第一周期的开始时间,则将第一目标码率确定为第二目标码率。
在每个第一周期对应的目标码率不相等的情况下,如果当前调节周期的开始时间为当前第一周期的开始时间,表明当前调节周期为当前第一周期内首个调节周期,基于第一目标码率进行编码的调节周期,此时,可以直接将第一目标码率确定为第二目标码率。
在每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率的情况下,如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为首个第一周期,也即是当前调节周期的开始时间为首个第一周期的开始时间,则将第一目标码率确定为第二目标码率。也即是,在每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率的情况下,对于整个编码过程的首个调节周期来说,可以直接将第一目标码率确定为第二目标码率。
在每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率的情况下,如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为非首个第一周期,也即是当前调节周期的开始时间为非首个第一周期的开始时间,则将与当前第一周期相邻的上一第一周期内的首个调节周期的实际平均码率确定为第二目标码率,上一第一周期内的首个调节周期的实际平均码率与第一目标码率相关。或者,在第一周期包括多个第二周期,第二周期包括多个调节周期情况下,将与当前第一周期相邻的上一第一周期内的首个第二周期的实际平均码率确定为第二目标码率,上一第一周期内的首个第二周期的实际平均码率与第一目标码率相关。
在当前调节周期的开始时间为非首个第一周期的开始时间的情况下,表明当前调节周期为非首个第一周期内的首个调节周期。为了达到一个较好的码率调节效果,第一周期的周期长度不会太长,而且第一周期中包括的调节周期的个数也不会太多,所以,在第一周期不包括第二周期的情况下,上一第一周期内的首个调节周期的实际平均码率比较贴近于编码过程的实际需求。因此,可以直接将上一第一周期内的首个调节周期的实际平均码率确定为第二目标码率。
在第一周期包括第二周期的情况下,第二周期的周期长度也不会太短,而且第一周期中包括的第二周期的个数也不会太多,第二周期的周期长度大于调节周期的周期长度,所以,相对于调节周期来说,上一第一周期内的首个第二周期的实际平均码率更贴近编码过程的实际需求。因此,可以直接将上一第一周期内的首个第二周期的实际平均码率确定为第二目标码率。
需要说明的是,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率。例如,事先设置第一目标码率为400Kbps,每个第一周期对应的目标码率相等,均为400Kbps。此外,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率也可以不相等,即每个第一周期对应的预设编码比特数不相等。
第二种情况、如果当前调节周期为当前第一周期内的非首个调节周期,也即是当前调节周期的开始时间不为当前第一周期的开始时间,则确定第一实际编码比特数和第一期望编码比特数,第一实际编码比特数为当前第一周期内已实际编码的比特数,第一期望编码比特数为基于第一目标码率确定的当前第一周期内已期望编码的比特数。确定剩余编码比特数,剩余编码比特数为第一期望编码比特数与第一实际编码比特数之间的差值。将剩余编码比特数除以当前第一周期的剩余时长,以得到第二目标码率。
也即是,基于第一目标码率、第一实际编码比特数、第一时长以及第二时长,确定第二目标码率,第一时长为当前第一周期的总时长,第二时长为当前第一周期的剩余时长。
在当前调节周期的开始时间不为当前第一周期的开始时间的情况下,表明当前调节周期为当前第一周期内的非首个调节周期,此时,为了保证当前第一周期对应的实际平均码率趋向于第一目标码率,可以确定第一实际编码比特数,第一期望编码比特数,剩余编码比特数,进而基于第一实际编码比特数、第一期望编码比特数、剩余编码比特数、第一时长以及第二时长,确定第二目标码率。
作为一种示例,基于第一目标码率、第一实际编码比特数、第一时长以及第二时长,可以按照如下公式(1)来确定第二目标码率。
r=(R*t1-B)/t2 (1)
其中,在上述公式(1)中,r为第二目标码率,R为第一目标码率,B为第一实际编码比特数,t1为第一时长,t2为第二时长。
步骤203:基于第一量化参数,在当前调节周期内对视频数据进行编码,并在编码过程中,基于视频数据在单位时间内的实际平均码率调整第一量化参数,以使当前调节周期内的实际平均码率不超过第二目标码率。
在一些实施例中,可以基于第二目标码率,确定多个第三目标码率,该多个第三目标码率与多个运动等级一一对应,该多个第三目标码率不同且该多个第三目标码率小于或等于第二目标码率。在编码过程中,确定视频数据在单位时间内的实际运动等级。当视频数据在第一单位时间内的实际平均码率与视频数据在第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整第一量化参数,以使视频数据在第二单位时间的实际平均码率趋向于视频数据在第二单位时间内的实际运动等级对应的第三目标码率,第一单位时间和第二单位时间为任意相邻的两个单位时间,且第一单位时间位于第二单位时间之前。
也即是,确定多个运动等级在当前调节周期内对应的第三目标码率,这样,在当前调节周期内对视频数据进行编码的过程中,可以基于场景的运动等级的不同,对第一量化参数进行调整,从而对视频数据进行编码,以使在单位时间内的实际平均码率基本与实际运动等级对应的第三目标码率相符。
在一些实施例中,可以获取该多个运动等级分别对应的等级比例,将第二目标码率与每个运动等级对应的等级比例相乘,得到每个运动等级对应的第三目标码率。
对于该多个运动等级,可以在运动程度越大的情况下,设置对应的运动等级越高,该运动等级对应的等级比例越小,从而该运动等级对应的第三目标码率越大。在运动程度越小的情况下,设置对应的运动等级越低,该运动等级对应的等级比例越大,从而该运动等级对应的第三目标码率越小。
例如,将当前场景运动程度分为7个运动等级,7个运动等级由高到低对应的等级比例分别为:100%、80%、75%、60%、50%、35%、25%。假设,第二目标码率为400Kbps,则多个第三目标码率分别为:400Kbps、320Kbps、300Kbps、240Kbps、200Kbps、140Kbps、100Kbps。
其中,当视频数据在第一单位时间内的实际平均码率与视频数据在第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整第一量化参数的实现过程包括:当视频数据在第一单位时间内的实际平均码率大于视频数据在第一单位时间内的实际运动等级对应的第三目标码率时,若第一量化参数小于第一量化参数范围的上限,则增大第一量化参数,增大后的第一量化参数位于第一量化参数范围内,第一量化参数范围用于约束当前调节周期内对视频数据进行编码所采用的量化参数。当视频数据在第一单位时间内的实际平均码率小于视频数据在第一单位时间内的实际运动等级对应的第三目标码率时,若第一量化参数大于第一量化参数范围的下限,则减小第一量化参数,减小后的第一量化参数位于第一量化参数范围内。
当视频数据在第一单位时间内的实际平均码率大于视频数据在第一单位时间内的实际运动等级对应的第三目标码率时,表明第一量化参数较小,为了控制当前调节周期内的实际平均码率不超过第二目标码率,此时需要增大第一量化参数。同样,当视频数据在第一单位时间内的实际平均码率小于视频数据在第一单位时间内的实际运动等级对应的第三目标码率时,表明第一量化参数较大,为了控制当前调节周期内的实际平均码率不超过第二目标码率,此时需要减小第一量化参数。
可选地,当视频数据在第一单位时间内的实际平均码率大于视频数据在第一单位时间内的实际运动等级对应的第三目标码率时,若第一量化参数等于第一量化参数范围的上限,则不再增大第一量化参数,继续按照第一量化参数对视频数据进行编码。同理,当视频数据在第一单位时间内的实际平均码率小于视频数据在第一单位时间内的实际运动等级对应的第三目标码率时,若第一量化参数等于第一量化参数范围的下限,则不再减小第一量化参数,继续按照第一量化参数进行编码。
由于每个第一周期对应的目标码率固定,所以,按照上述方法对视频数据进行编码之后,能够预测出可录像时间。即,确定接入的所有模拟通道在上一第一周期内的实际平均码率之和,以得到模拟通道总码率。确定接入的所有IPC(IP Camera,网络摄像机)通道在上一第一周期内的实际平均码率之和,以得到IPC通道总码率。获取硬盘总空间。基于模拟通道总码率、IPC通道总码率和硬盘总空间,确定可录像时间。显示可录像时间。
模拟通道是指传输模拟的视频数据的通道,也即是,与模拟通道连接的摄像机传输的视频数据为模拟的视频数据。IPC通道是指传输数字视频数据的通道,也即是,与IPC通道连接的摄像机传输的数字视频数据为录像数据。
在某些情况下,硬盘录像机可能并不是每时每刻都会接收到摄像机传输的视频数据,比如,在设备故障或连接受损等情况下,硬盘录像机可能在某段时间接收不到摄像机传输的视频数据。因此,对于任一模拟通道来说,可以统计该模拟通道上一第一周期内接收模拟的视频数据的时间段的时长,以得到第三时长。将第一目标码率与第三时长相乘之后再除以第一周期的时长,得到该模拟通道在上一第一周期内的实际平均码率,从而将每个模拟通道在上一第一周期内的实际平均码率相加,得到模拟通道总码率。
对于IPC通道同理,也即是,对于任一IPC通道来说,可以统计该IPC通道上一第一周期内接收录像数据的时间段的时长,以得到第四时长。将该IPC通道接收到的录像数据的实际码率与第四时长相乘之后再除以第一周期的时长,得到该IPC通道在上一第一周期内的实际平均码率,从而将每个IPC通道在上一第一周期内的实际平均码率相加,得到IPC通道总码率。
作为一种示例,可以基于模拟通道总码率、IPC通道总码率和硬盘总空间,按照如下公式(2)来确定可录像时间。
TS=M/[(A+I)/8*t] (2)
其中,在上述公式(2)中,TS为可录像时间,M为硬盘总空间,A为模拟通道总码率,I为IPC通道总码率,t为第一周期的时长。
需要说明的是,硬盘总空间的单位是KB,模拟通道总码率和IPC通道总码率单位是Kbps,除以8是将单位Kbps转换为KBps,即bit转换为BYTE,在第一周期的时长为一天的情况下,t为86400,也即是一天的秒数,即上述公式(2)的中括号内是一个第一周期的录像大小。
在本申请实施例中,硬盘录像机可以通过弹窗的形式在编码参数配置界面中显示可录像时间,还可以通过悬浮窗的形式在编码参数配置界面中显示可录像时间。当然,还可以通过其他的方式显示可录像时间,本申请实施例对可录像时间的显示方式不做限定。
需要说明的是,硬盘录像机的编码参数配置界面中一般包括分辨率、码率、图像质量、帧率、最大码率设置模式、最大码率、推荐码率(仅显示)、编码类型、是否为smart编码等。本申请实施例对编码参数设置界面进行调整,以显示可录像时间,但是关于删除哪些编码参数,不做限制。比如,硬盘录像机的编码参数配置界面如图3所示,在图3中显示有可录像时间。
在本申请实施例中,由于每个第一周期对应的目标码率固定,也即是,通过本申请实施例提供的方法进行编码时,每个第一周期对应的目标码率可预期,所以,能够提前预测可录像时间。而且,在本申请实施例提供的编码方法中,对于一个调节周期,可以根据实际场景中运动程度的不同,按照不同的运动等级设置不同的目标码率,从而采用可变码率编码。这样,能够保证视频数据进行编码后的图像质量,减少码率浪费。而且,通过比较实际码率与目标码率不断调整量化参数范围,能够提高码率控制能力。
图4是本申请实施例提供的一种视频数据的编码装置的结构示意图,该视频数据的编码装置可以由软件、硬件或者两者的结合实现成为视频数据编码设备的部分或者全部,视频数据编码设备可以为图1所示的视频数据编码设备。请参考图4,该装置包括:量化参数确定模块401、第二目标码率确定模块402、编码模块403和调整模块404。
量化参数确定模块401,用于确定第一量化参数,第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数;
第二目标码率确定模块402,用于确定第二目标码率,第二目标码率为当前调节周期内的最大码率,且为基于第一目标码率确定出当前第一周期中剩余时长内的平均码率,第一目标码率为当前第一周期内的编码比特数达到预设编码比特数所对应的平均码率,当前第一周期包括多个调节周期;
编码模块403,用于基于第一量化参数,在当前调节周期内对视频数据进行编码;
调整模块404,用于在编码过程中,基于视频数据在单位时间内的实际平均码率调整第一量化参数,以使当前调节周期内的实际平均码率不超过第二目标码率。
可选地,量化参数确定模块401包括:
量化参数范围确定单元,用于确定第一量化参数范围,第一量化参数范围用于约束当前调节周期内对视频数据进行编码所采用的量化参数;
量化参数确定单元,用于基于第一量化参数范围确定第一量化参数,且第一量化参数位于第一量化参数范围内。
可选地,量化参数范围确定单元具体用于:
如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为首个第一周期,则将初始量化参数范围确定为第一量化参数范围。
可选地,量化参数范围确定单元具体用于:
如果当前调节周期为当前第一周期内的非首个调节周期,则确定与当前调节周期相邻的上一调节周期的实际平均码率;
如果上一调节周期的实际平均码率大于上一调节周期对应的码率阈值,则增大上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围,码率阈值基于上一调节周期对应的目标码率确定。
可选地,第一周期包括多个第二周期,第二周期包括多个调节周期;量化参数范围确定单元具体用于:
如果当前调节周期为当前第一周期内的非首个调节周期且为当前第二周期内的非首个调节周期,则确定与当前调节周期相邻的上一调节周期的实际平均码率。
可选地,第一周期包括多个第二周期,第二周期包括多个调节周期;量化参数范围确定单元具体用于:
如果当前调节周期为当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数、第二实际编码比特数、第一期望编码比特数和第二期望编码比特数;
其中,第一实际编码比特数为当前第一周期内已实际编码的比特数,第二实际编码比特数为当前第二周期内已实际编码的比特数,第一期望编码比特数为基于第一目标码率确定的当前第一周期内已期望编码的比特数,第二期望编码比特数为基于第一目标码率确定的当前第二周期内已期望编码的比特数;
基于第一实际编码比特数与第一期望编码比特数的关系,以及第二实际编码比特数与第二期望编码比特数的关系,调整与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
可选地,量化参数范围确定单元具体用于:
基于第一期望编码比特数,确定第一期望编码比特数范围,基于第二期望编码比特数,确定第二期望编码比特数范围;
如果第一实际编码比特数大于第一期望编码比特数范围的上限,且第二实际编码比特数大于第二期望编码比特数范围的上限,则增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围;
如果第一实际编码比特数小于第一期望编码比特数范围的下限,且第二实际编码比特数小于第二期望编码比特数范围的下限,则减小上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
可选地,第一周期包括多个第二周期,第二周期包括多个调节周期;量化参数范围确定单元具体用于:
如果当前调节周期为当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数和第一期望编码比特数;
其中,第一实际编码比特数为当前第一周期内已实际编码的比特数,第一期望编码比特数为基于第一目标码率确定的当前第一周期内已期望编码的比特数;
基于第一实际编码比特数与第一期望编码比特数的关系,调整与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
可选地,量化参数范围确定单元具体用于:
基于第一期望编码比特数,确定第一期望编码比特数范围;
如果第一实际编码比特数大于第一期望编码比特数范围的上限,则增大与当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围;
如果第一实际编码比特数小于第一期望编码比特数范围的下限,则减小上一调节周期对应的量化参数范围的上限和下限,以得到第一量化参数范围。
可选地,该装置还包括:
提示信息显示模块,用于如果上一调节周期对应的量化参数范围的下限达到最大下限量化参数且上一调节周期对应的量化参数范围的上限达到最大上限量化参数,则显示提示信息,提示信息用于提示可录像时间无法达到预期时间。
可选地,量化参数范围确定单元具体用于:
如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为非首个第一周期,则将与当前第一周期相邻的上一第一周期包括的最后一个调节周期对应的量化参数范围确定为第一量化参数范围。
可选地,量化参数确定单元具体用于:
如果当前第一周期为非首个第一周期,或者,当前第一周期为首个第一周期且当前调节周期为当前第一周期内的非首个调节周期,则获取第二量化参数,第二量化参数为与当前调节周期相邻的上一调节周期结束时所采用的量化参数;
如果第二量化参数位于第一量化参数范围内,则将第二量化参数确定为第一量化参数,否则,对第二量化参数进行调整,以使调整后的第二量化参数位于第一量化参数范围内,并将调整后的第二量化参数确定为第一量化参数。
可选地,第二目标码率确定模块402具体用于:
如果当前调节周期为当前第一周期内的首个调节周期,则将第一目标码率确定为第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率;第二目标码率确定模块402具体用于:
如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为首个第一周期,则将第一目标码率确定为第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率;第二目标码率确定模块402具体用于:
如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为非首个第一周期,则将与当前第一周期相邻的上一第一周期内的首个调节周期的实际平均码率确定为第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为第一目标码率;第一周期包括多个第二周期,第二周期包括多个调节周期;第二目标码率确定模块402具体用于:
如果当前调节周期为当前第一周期内的首个调节周期且当前第一周期为非首个第一周期,则将与当前第一周期相邻的上一第一周期内的首个第二周期的实际平均码率确定为第二目标码率。
可选地,第二目标码率确定模块402具体用于:
如果当前调节周期为当前第一周期内的非首个调节周期,则确定第一实际编码比特数和第一期望编码比特数,第一实际编码比特数为当前第一周期内已实际编码的比特数,第一期望编码比特数为基于第一目标码率确定的当前第一周期内已期望编码的比特数;
确定剩余编码比特数,剩余编码比特数为第一期望编码比特数与第一实际编码比特数之间的差值;
将剩余编码比特数除以当前第一周期的剩余时长,以得到第二目标码率。
可选地,该装置还包括:
第三目标码率确定模块,用于基于第二目标码率,确定多个第三目标码率,多个第三目标码率与多个运动等级一一对应,多个第三目标码率不同且多个第三目标码率小于或等于第二目标码率;
运动等级确定模块,用于在编码过程中,确定视频数据在单位时间内的实际运动等级;
调整模块404具体用于:
每当视频数据在第一单位时间内的实际平均码率与视频数据在第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整第一量化参数,以使视频数据在第二单位时间内的实际平均码率趋向于视频数据在第二单位时间内的实际运动等级对应的第三目标码率,第一单位时间和第二单位时间为任意相邻的两个单位时间,且第一单位时间位于第二单位时间之前。
可选地,调整模块404具体用于:
当第一单位时间内的实际平均码率大于第一单位时间内的实际运动等级对应的第三目标码率时,若第一量化参数小于第一量化参数范围的上限,则增大第一量化参数,增大后的第一量化参数位于第一量化参数范围内,第一量化参数范围用于约束当前调节周期内对视频数据进行编码所采用的量化参数;
当第一单位时间内的实际平均码率小于第一单位时间内的实际运动等级对应的第三目标码率时,若第一量化参数大于第一量化参数范围的下限,则减小第一量化参数,减小后的第一量化参数位于第一量化参数范围内。
可选地,该装置还包括:
第一码率确定模块,用于确定接入的所有模拟通道在上一第一周期内的实际平均码率之和,以得到模拟通道总码率;
第二码率确定模块,用于确定接入的所有网络摄像机IPC通道在上一第一周期内的实际平均码率之和,以得到IPC通道总码率;
获取模块,用于获取硬盘总空间;
可录像时间确定模块,用于基于模拟通道总码率、IPC通道总码率和硬盘总空间,确定可录像时间;
录像时间显示模块,用于显示可录像时间。
在本申请实施例中,由于每个第一周期对应的目标码率固定,也即是,通过本申请实施例提供的方法进行编码时,每个第一周期对应的目标码率可预期,所以,能够提前预测可录像时间。而且,在本申请实施例提供的编码方法中,对于一个调节周期,可以根据实际场景中运动程度的不同,按照不同的运动等级设置不同的目标码率,从而采用可变码率编码。这样,能够保证视频数据进行编码后的图像质量,减少码率浪费。而且,通过比较实际码率与目标码率不断调整量化参数范围,能够提高码率控制能力。
需要说明的是:上述实施例提供的视频数据的编码装置在对视频数据进行编码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频数据的编码装置与视频数据的编码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本申请实施例提供的一种终端500的结构框图。该终端可以作为上述的摄像机或者硬盘录像机。该终端500可以是便携式移动终端,比如:智能手机、平板电脑、笔记本电脑或台式电脑。终端500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端500包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的视频数据的编码方法。
在一些实施例中,终端500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、触摸显示屏505、摄像头506和电源507中的至少一种。
外围设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请实施例对此不加以限定。
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置终端500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
电源507用于为终端500中的各个组件进行供电。电源507可以是交流电、直流电、一次性电池或可充电电池。当电源507包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图5中示出的结构并不构成对终端500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中视频数据的编码方法的步骤。
在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的视频数据的编码方法的步骤。
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种视频数据的编码方法,其特征在于,所述方法包括:
基于第一周期对应的第一目标码率确定多个调节周期对应的第二目标码率;其中,所述第一周期包括所述多个调节周期,所述第一目标码率为固定值,不同调节周期对应的第二目标码率相同或者不同;其中,所述第一目标码率表示所述第一周期内期望的平均码率,每个调节周期对应的第二目标码率表示所述调节周期内期望的平均码率;
针对所述多个调节周期中的当前调节周期,基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数;其中,所述目标量化参数范围用于约束所述当前调节周期的量化参数最大值和量化参数最小值,所述第二目标码率用于调节当前调节周期的量化参数,且量化参数处于所述目标量化参数范围;
在所述当前调节周期内,基于所述目标量化参数对视频数据进行编码。
2.根据权利要求1所述的方法,其特征在于,针对每个调节周期,所述基于第一周期对应的第一目标码率确定该调节周期对应的第二目标码率,包括:
基于所述第一周期对应的第一目标码率确定该调节周期对应的最大目标码率;
基于所述最大目标码率确定该调节周期对应的第二目标码率。
3.根据权利要求2所述的方法,其特征在于,
所述基于所述最大目标码率确定该调节周期对应的第二目标码率,包括:
将所述最大目标码率确定为该调节周期对应的第二目标码率;或者,
确定该调节周期对应的场景运动等级,基于所述最大目标码率和所述场景运动等级确定该调节周期对应的第二目标码率,所述第二目标码率小于或者等于所述最大目标码率;
其中,当所述场景运动等级越大时,所述第二目标码率越大。
4.根据权利要求2所述的方法,其特征在于,
所述基于所述第一周期对应的第一目标码率确定该调节周期对应的最大目标码率,包括:
若该调节周期是所述第一周期内的首个调节周期,则将所述第一周期对应的第一目标码率确定为该调节周期对应的最大目标码率;或者,
若该调节周期是所述第一周期内的非首个调节周期,则基于所述第一周期对应的第一目标码率、所述第一周期对应的总时长、所述第一周期内该调节周期之前的实际编码比特总量、所述第一周期的剩余时长,确定该调节周期对应的最大目标码率。
5.根据权利要求1所述的方法,其特征在于,
所述基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数,包括:
确定所述目标量化参数范围内初始量化参数对应的实际编码码率;
若所述实际编码码率大于所述当前调节周期对应的第二目标码率,则提高所述初始量化参数;若提高后的量化参数位于所述目标量化参数范围内,则基于提高后的量化参数确定所述目标量化参数;若提高后的量化参数不位于所述目标量化参数范围内,则基于所述目标量化参数范围对应的量化参数最大值确定所述目标量化参数;
若所述实际编码码率小于所述当前调节周期对应的第二目标码率,则降低所述初始量化参数;若降低后的量化参数位于所述目标量化参数范围内,则基于降低后的量化参数确定所述目标量化参数;若降低后的量化参数不位于所述目标量化参数范围内,则基于所述目标量化参数范围对应的量化参数最小值确定所述目标量化参数。
6.根据权利要求1或5所述的方法,其特征在于,
所述基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数之前,所述方法还包括:
若所述当前调节周期是所述第一周期内的首个调节周期,则确定所述第一周期对应的量化参数范围,并将所述量化参数范围确定为所述当前调节周期对应的目标量化参数范围;
或者,若所述当前调节周期是所述第一周期内的非首个调节周期,则确定所述当前调节周期前面的相邻调节周期对应的量化参数范围,并基于所述相邻调节周期对应的量化参数范围确定所述当前调节周期对应的目标量化参数范围。
7.根据权利要求6所述的方法,其特征在于,所述基于所述相邻调节周期对应的量化参数范围确定所述当前调节周期对应的目标量化参数范围,包括:
基于所述相邻调节周期对应的最大目标码率确定所述相邻调节周期的码率阈值;其中,所述码率阈值为所述最大目标码率与预设倍数值的乘积;
若所述相邻调节周期对应的实际码率大于或者等于所述相邻调节周期的码率阈值,则向上调整所述相邻调节周期对应的量化参数范围中的量化参数最大值和量化参数最小值,得到所述当前调节周期对应的目标量化参数范围;
若所述相邻调节周期对应的实际码率小于所述相邻调节周期的码率阈值,则将所述相邻调节周期对应的量化参数范围确定为所述当前调节周期对应的目标量化参数范围。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第一周期对应的第一目标码率确定模拟通道总码率;
基于所述模拟通道总码率确定存储设备对应的可录像时间;
通过目标界面显示所述可录像时间。
9.一种视频数据的编码装置,其特征在于,所述装置包括:
第二目标码率确定模块,用于基于第一周期对应的第一目标码率确定多个调节周期对应的第二目标码率;其中,所述第一周期包括所述多个调节周期,所述第一目标码率为固定值,不同调节周期对应的第二目标码率相同或者不同;所述第一目标码率表示所述第一周期内期望的平均码率,每个调节周期对应的第二目标码率表示所述调节周期内期望的平均码率;
量化参数确定模块,用于针对所述多个调节周期中的当前调节周期,基于所述当前调节周期对应的目标量化参数范围和所述当前调节周期对应的第二目标码率确定所述当前调节周期的目标量化参数;其中,所述目标量化参数范围用于约束所述当前调节周期的量化参数最大值和量化参数最小值,所述第二目标码率用于调节当前调节周期的量化参数,且量化参数处于所述目标量化参数范围;
编码模块,用于在所述当前调节周期内,基于所述目标量化参数对视频数据进行编码。
10.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器用于存放能够被所述处理器执行的机器可执行指令,所述处理器用于执行所述存储器上所存放的机器可执行指令,以实现上述权利要求1-8任一所述方法的步骤。
CN202211112018.1A 2021-09-13 2022-09-13 视频数据的编码方法、装置及设备 Pending CN115379210A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111069223X 2021-09-13
CN202111069223.XA CN113810685A (zh) 2021-09-13 2021-09-13 视频数据的编码方法、装置、设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN115379210A true CN115379210A (zh) 2022-11-22

Family

ID=78940918

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111069223.XA Pending CN113810685A (zh) 2021-09-13 2021-09-13 视频数据的编码方法、装置、设备、存储介质及程序产品
CN202211112018.1A Pending CN115379210A (zh) 2021-09-13 2022-09-13 视频数据的编码方法、装置及设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111069223.XA Pending CN113810685A (zh) 2021-09-13 2021-09-13 视频数据的编码方法、装置、设备、存储介质及程序产品

Country Status (2)

Country Link
CN (2) CN113810685A (zh)
WO (1) WO2023036331A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113810685A (zh) * 2021-09-13 2021-12-17 杭州海康威视数字技术股份有限公司 视频数据的编码方法、装置、设备、存储介质及程序产品
CN115567685A (zh) * 2022-09-09 2023-01-03 维沃移动通信有限公司 图像传输方法、装置、图像处理芯片、主控芯片及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69815159T2 (de) * 1998-03-20 2004-04-08 Stmicroelectronics Asia Pacific Pte Ltd. Kodierung von bewegten bildern mit globaler konstanter bitrate
CN108235016B (zh) * 2016-12-21 2019-08-23 杭州海康威视数字技术股份有限公司 一种码率控制方法及装置
EP3396961A1 (en) * 2017-04-24 2018-10-31 Axis AB Method and rate controller for controlling output bitrate of a video encoder
CN113810685A (zh) * 2021-09-13 2021-12-17 杭州海康威视数字技术股份有限公司 视频数据的编码方法、装置、设备、存储介质及程序产品

Also Published As

Publication number Publication date
CN113810685A (zh) 2021-12-17
WO2023036331A1 (zh) 2023-03-16

Similar Documents

Publication Publication Date Title
CN115379210A (zh) 视频数据的编码方法、装置及设备
US8442111B2 (en) Optimal power usage in encoding data streams
WO2021244341A1 (zh) 图像编码方法及装置、电子设备及计算机可读存储介质
CN108200441B (zh) 一种图像亮度处理方法及装置、电子设备
US20090234919A1 (en) Method of Transmitting Data in a Communication System
KR102617258B1 (ko) 이미지 프로세싱 방법 및 장치
CN113556598A (zh) 多窗口投屏方法及电子设备
TWI743098B (zh) 用於在顯示串流壓縮中量化參數之適應性計算的裝置及方法
EP2272237B1 (en) Method of transmitting data in a communication system
CN107027030B (zh) 一种码率分配方法及其设备
CN106961603A (zh) 帧内编码帧码率分配方法和装置
CN103327252A (zh) 拍摄装置及其拍摄方法
US20190228804A1 (en) Device, method, storage medium, and terminal for controlling video stream data playing
CN113099233A (zh) 视频编码方法、装置、视频编码设备及存储介质
CN112419354A (zh) 一种图像亮度处理方法及装置、电子设备
CN116204308A (zh) 音视频算力动态调节方法和装置、电子设备
CN110166780B (zh) 视频的码率控制方法、转码处理方法、装置和机器设备
CN106921840B (zh) 一种即时视频中的人脸美化方法、设备及系统
CN116962613A (zh) 数据传输方法及装置、计算机设备、存储介质
EP3080977B1 (en) Image processing system and image processing method
CN115691370A (zh) 显示控制方法及相关装置
CN116506617B (zh) 图像浅压缩码率控制方法及装置
JP4626644B2 (ja) 符号化装置、符号化方法、プログラム、及び、撮像装置
CN118158417A (zh) 一种基于h264与tcp的lcd屏幕数据处理系统及方法
WO2020181540A1 (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