CN113810685A - 视频数据的编码方法、装置、设备、存储介质及程序产品 - Google Patents
视频数据的编码方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113810685A CN113810685A CN202111069223.XA CN202111069223A CN113810685A CN 113810685 A CN113810685 A CN 113810685A CN 202111069223 A CN202111069223 A CN 202111069223A CN 113810685 A CN113810685 A CN 113810685A
- Authority
- CN
- China
- Prior art keywords
- period
- quantization parameter
- current
- code rate
- bit number
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种视频数据的编码方法、装置、设备、存储介质及程序产品,属于音视频编码技术领域。所述方法包括:确定第一量化参数,第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数,确定第二目标码率,第二目标码率为当前调节周期内的最大码率,基于第一量化参数,在当前调节周期内对视频数据进行编码,并在编码过程中,基于视频数据在单位时间内的实际平均码率调整第一量化参数,以使当前调节周期内的实际平均码率不超过第二目标码率。由于每个第一周期对应的目标码率固定,且每个第一周期包括的调节周期对应的目标码率可变,所以本申请实施例能够依据场景适应性控制码率,而且还能够提前预测可录像时间。
Description
技术领域
本申请实施例涉及音视频编码技术领域,特别涉及一种视频数据的编码方法、装置、设备、存储介质及程序产品。
背景技术
视频数据的编码是指通过特定的压缩技术对视频数据进行编码,从而得到码流的过程,该码流又可以称为录像数据。由于录像数据的数据量相对于视频数据的数据量减小很多,所以将录像数据进行存储,可以提高存储空间的利用率。
相关技术对视频数据进行编码时,通常可以按照CBR(Constant BitRate,固定码率)的方式进行编码码率控制,或者按照VBR(Variable Bit Rate,可变码率)的方式进行编码码率控制。其中,使用CBR的方式进行编码码率控制时,编码后的码率是固定的。相反,使用VBR的方式进行编码码率控制时,编码后的码率小于目标码率,并在目标码率的一定范围内波动,该目标码率为使用VBR的方式进行编码码率控制的最大码率。
然而,在使用CBR的方式进行编码码率控制时其码率固定,对复杂场景进行编码后的质量较低,在对简单场景进行编码时会浪费一些码率。使用VBR的方式进行编码码率控制时其码率是波动的,从而无法预测占满固定大小的存储空间所需要的时间。
发明内容
本申请实施例提供了一种视频数据的编码方法、装置、设备、存储介质及程序产品,可以解决相关技术的问题。所述技术方案如下:
一方面,提供了一种视频数据的编码方法,所述方法包括:
确定第一量化参数,所述第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数;
确定第二目标码率,所述第二目标码率为所述当前调节周期内的最大码率,且为基于第一目标码率确定出当前第一周期中剩余时长内的平均码率,所述第一目标码率为所述当前第一周期内的编码比特数达到预设编码比特数所对应的平均码率,所述当前第一周期包括多个调节周期;
基于所述第一量化参数,在所述当前调节周期内对所述视频数据进行编码,并在编码过程中,基于所述视频数据在单位时间内的实际平均码率调整所述第一量化参数,以使所述当前调节周期内的实际平均码率不超过所述第二目标码率。
可选地,所述确定第一量化参数,包括:
确定第一量化参数范围,所述第一量化参数范围用于约束所述当前调节周期内对所述视频数据进行编码所采用的量化参数;
基于所述第一量化参数范围确定所述第一量化参数,且所述第一量化参数位于所述第一量化参数范围内。
可选地,所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为首个第一周期,则将初始量化参数范围确定为所述第一量化参数范围。
可选地,所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率;
如果所述上一调节周期的实际平均码率大于所述上一调节周期对应的码率阈值,则增大所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围,所述码率阈值基于所述上一调节周期对应的目标码率确定。
可选地,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;
所述如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率。
可选地,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数、第二实际编码比特数、第一期望编码比特数和第二期望编码比特数;
其中,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第二实际编码比特数为所述当前第二周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数,所述第二期望编码比特数为基于所述第一目标码率确定的所述当前第二周期内已期望编码的比特数;
基于所述第一实际编码比特数与所述第一期望编码比特数的关系,以及所述第二实际编码比特数与所述第二期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述基于所述第一实际编码比特数与所述第一期望编码比特数的关系,以及所述第二实际编码比特数与所述第二期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,包括:
基于所述第一期望编码比特数,确定第一期望编码比特数范围,基于所述第二期望编码比特数,确定第二期望编码比特数范围;
如果所述第一实际编码比特数大于所述第一期望编码比特数范围的上限,且所述第二实际编码比特数大于所述第二期望编码比特数范围的上限,则增大与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围;
如果所述第一实际编码比特数小于所述第一期望编码比特数范围的下限,且所述第二实际编码比特数小于所述第二期望编码比特数范围的下限,则减小所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数和第一期望编码比特数;
其中,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数;
基于所述第一实际编码比特数与所述第一期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述基于所述第一实际编码比特数与所述第一期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,包括:
基于所述第一期望编码比特数,确定第一期望编码比特数范围;
如果所述第一实际编码比特数大于所述第一期望编码比特数范围的上限,则增大与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围;
如果所述第一实际编码比特数小于所述第一期望编码比特数范围的下限,则减小所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,在增大所述上一调节周期对应的量化参数范围的上限和下限之前,还包括:
如果所述上一调节周期对应的量化参数范围的下限达到最大下限量化参数且所述上一调节周期对应的量化参数范围的上限达到最大上限量化参数,则显示提示信息,所述提示信息用于提示可录像时间无法达到预期时间。
可选地,所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期包括的最后一个调节周期对应的量化参数范围确定为所述第一量化参数范围。
可选地,所述基于所述第一量化参数范围确定所述第一量化参数,包括:
如果所述当前第一周期为非首个第一周期,或者,所述当前第一周期为首个第一周期且所述当前调节周期为所述当前第一周期内的非首个调节周期,则获取第二量化参数,所述第二量化参数为与所述当前调节周期相邻的上一调节周期结束时所采用的量化参数;
如果所述第二量化参数位于所述第一量化参数范围内,则将所述第二量化参数确定为所述第一量化参数,否则,对所述第二量化参数进行调整,以使调整后的第二量化参数位于所述第一量化参数范围内,并将所述调整后的第二量化参数确定为所述第一量化参数。
可选地,所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期,则将所述第一目标码率确定为所述第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述如果所述当前调节周期为所述当前第一周期内的首个调节周期,则将所述第一目标码率确定为所述第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为首个第一周期,则将所述第一目标码率确定为所述第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期内的首个调节周期的实际平均码率确定为所述第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期内的首个第二周期的实际平均码率确定为所述第二目标码率。
可选地,所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定第一实际编码比特数和第一期望编码比特数,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数;
确定剩余编码比特数,所述剩余编码比特数为所述第一期望编码比特数与所述第一实际编码比特数之间的差值;
将所述剩余编码比特数除以所述当前第一周期的剩余时长,以得到所述第二目标码率。
可选地,所述方法还包括:
基于所述第二目标码率,确定多个第三目标码率,所述多个第三目标码率与多个运动等级一一对应,所述多个第三目标码率不同且所述多个第三目标码率小于或等于所述第二目标码率;
在编码过程中,确定所述视频数据在单位时间内的实际运动等级;
所述基于所述视频数据在单位时间内的实际平均码率调整所述第一量化参数,包括:
每当所述视频数据在第一单位时间内的实际平均码率与所述视频数据在所述第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整所述第一量化参数,以使所述视频数据在第二单位时间内的实际平均码率趋向于所述视频数据在所述第二单位时间内的实际运动等级对应的第三目标码率,所述第一单位时间和所述第二单位时间为任意相邻的两个单位时间,且所述第一单位时间位于所述第二单位时间之前。
可选地,当所述视频数据在第一单位时间内的实际平均码率与所述视频数据在所述第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整所述第一量化参数,包括:
当所述第一单位时间内的实际平均码率大于所述第一单位时间内的实际运动等级对应的第三目标码率时,若所述第一量化参数小于第一量化参数范围的上限,则增大所述第一量化参数,增大后的第一量化参数位于所述第一量化参数范围内,所述第一量化参数范围用于约束所述当前调节周期内对所述视频数据进行编码所采用的量化参数;
当所述第一单位时间内的实际平均码率小于所述第一单位时间内的实际运动等级对应的第三目标码率时,若所述第一量化参数大于所述第一量化参数范围的下限,则减小所述第一量化参数,减小后的第一量化参数位于所述第一量化参数范围内。
可选地,所述方法还包括:
确定接入的所有模拟通道在上一第一周期内的实际平均码率之和,以得到模拟通道总码率;
确定接入的所有网络摄像机IPC通道在所述上一第一周期内的实际平均码率之和,以得到IPC通道总码率;
获取硬盘总空间;
基于所述模拟通道总码率、所述IPC通道总码率和所述硬盘总空间,确定可录像时间;
显示所述可录像时间。
另一方面,提供了一种视频数据的编码装置,所述装置包括:
量化参数确定模块,用于确定第一量化参数,所述第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数;
第二目标码率确定模块,用于确定第二目标码率,所述第二目标码率为所述当前调节周期内的最大码率,且为基于第一目标码率确定出当前第一周期中剩余时长内的平均码率,所述第一目标码率为所述当前第一周期内的编码比特数达到预设编码比特数所对应的平均码率,所述当前第一周期包括多个调节周期;
编码模块,用于基于所述第一量化参数,在所述当前调节周期内对所述视频数据进行编码;
调整模块,用于在编码过程中,基于所述视频数据在单位时间内的实际平均码率调整所述第一量化参数,以使所述当前调节周期内的实际平均码率不超过所述第二目标码率。
可选地,所述量化参数确定模块,包括:
量化参数范围确定单元,用于确定第一量化参数范围,所述第一量化参数范围用于约束所述当前调节周期内对所述视频数据进行编码所采用的量化参数;
量化参数确定单元,用于基于所述第一量化参数范围确定所述第一量化参数,且所述第一量化参数位于所述第一量化参数范围内。
可选地,所述量化参数范围确定单元具体用于:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为首个第一周期,则将初始量化参数范围确定为所述第一量化参数范围。
可选地,所述量化参数范围确定单元具体用于:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率;
如果所述上一调节周期的实际平均码率大于所述上一调节周期对应的码率阈值,则增大所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围,所述码率阈值基于所述上一调节周期对应的目标码率确定。
可选地,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;
所述量化参数范围确定单元具体用于:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率。
可选地,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述量化参数范围确定单元具体用于:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数、第二实际编码比特数、第一期望编码比特数和第二期望编码比特数;
其中,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第二实际编码比特数为所述当前第二周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数,所述第二期望编码比特数为基于所述第一目标码率确定的所述当前第二周期内已期望编码的比特数;
基于所述第一实际编码比特数与所述第一期望编码比特数的关系,以及所述第二实际编码比特数与所述第二期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述量化参数范围确定单元具体用于:
基于所述第一期望编码比特数,确定第一期望编码比特数范围,基于所述第二期望编码比特数,确定第二期望编码比特数范围;
如果所述第一实际编码比特数大于所述第一期望编码比特数范围的上限,且所述第二实际编码比特数大于所述第二期望编码比特数范围的上限,则增大与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围;
如果所述第一实际编码比特数小于所述第一期望编码比特数范围的下限,且所述第二实际编码比特数小于所述第二期望编码比特数范围的下限,则减小所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述量化参数范围确定单元具体用于:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数和第一期望编码比特数;
其中,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数;
基于所述第一实际编码比特数与所述第一期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述量化参数范围确定单元具体用于:
基于所述第一期望编码比特数,确定第一期望编码比特数范围;
如果所述第一实际编码比特数大于所述第一期望编码比特数范围的上限,则增大与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围;
如果所述第一实际编码比特数小于所述第一期望编码比特数范围的下限,则减小所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
可选地,所述装置还包括:
提示信息显示模块,用于如果所述上一调节周期对应的量化参数范围的下限达到最大下限量化参数且所述上一调节周期对应的量化参数范围的上限达到最大上限量化参数,则显示提示信息,所述提示信息用于提示可录像时间无法达到预期时间。
可选地,所述量化参数范围确定单元具体用于:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期包括的最后一个调节周期对应的量化参数范围确定为所述第一量化参数范围。
可选地,所述量化参数确定单元具体用于:
如果所述当前第一周期为非首个第一周期,或者,所述当前第一周期为首个第一周期且所述当前调节周期为所述当前第一周期内的非首个调节周期,则获取第二量化参数,所述第二量化参数为与所述当前调节周期相邻的上一调节周期结束时所采用的量化参数;
如果所述第二量化参数位于所述第一量化参数范围内,则将所述第二量化参数确定为所述第一量化参数,否则,对所述第二量化参数进行调整,以使调整后的第二量化参数位于所述第一量化参数范围内,并将所述调整后的第二量化参数确定为所述第一量化参数。
可选地,所述第二目标码率确定模块具体用于:
如果所述当前调节周期为所述当前第一周期内的首个调节周期,则将所述第一目标码率确定为所述第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述第二目标码率确定模块具体用于:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为首个第一周期,则将所述第一目标码率确定为所述第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述第二目标码率确定模块具体用于:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期内的首个调节周期的实际平均码率确定为所述第二目标码率。
可选地,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述第二目标码率确定模块具体用于:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期内的首个第二周期的实际平均码率确定为所述第二目标码率。
可选地,所述第二目标码率确定模块具体用于:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定第一实际编码比特数和第一期望编码比特数,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数;
确定剩余编码比特数,所述剩余编码比特数为所述第一期望编码比特数与所述第一实际编码比特数之间的差值;
将所述剩余编码比特数除以所述当前第一周期的剩余时长,以得到所述第二目标码率。
可选地,所述装置还包括:
第三目标码率确定模块,用于基于所述第二目标码率,确定多个第三目标码率,所述多个第三目标码率与多个运动等级一一对应,所述多个第三目标码率不同且所述多个第三目标码率小于或等于所述第二目标码率;
运动等级确定模块,用于在编码过程中,确定所述视频数据在单位时间内的实际运动等级;
所述调整模块具体用于:
每当所述视频数据在第一单位时间内的实际平均码率与所述视频数据在所述第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整所述第一量化参数,以使所述视频数据在第二单位时间内的实际平均码率趋向于所述视频数据在所述第二单位时间内的实际运动等级对应的第三目标码率,所述第一单位时间和所述第二单位时间为任意相邻的两个单位时间,且所述第一单位时间位于所述第二单位时间之前。
可选地,所述调整模块具体用于:
当所述第一单位时间内的实际平均码率大于所述第一单位时间内的实际运动等级对应的第三目标码率时,若所述第一量化参数小于第一量化参数范围的上限,则增大所述第一量化参数,增大后的第一量化参数位于所述第一量化参数范围内,所述第一量化参数范围用于约束所述当前调节周期内对所述视频数据进行编码所采用的量化参数;
当所述第一单位时间内的实际平均码率小于所述第一单位时间内的实际运动等级对应的第三目标码率时,若所述第一量化参数大于所述第一量化参数范围的下限,则减小所述第一量化参数,减小后的第一量化参数位于所述第一量化参数范围内。
可选地,所述装置还包括:
第一码率确定模块,用于确定接入的所有模拟通道在上一第一周期内的实际平均码率之和,以得到模拟通道总码率;
第二码率确定模块,用于确定接入的所有网络摄像机IPC通道在所述上一第一周期内的实际平均码率之和,以得到IPC通道总码率;
获取模块,用于获取硬盘总空间;
可录像时间确定模块,用于基于所述模拟通道总码率、所述IPC通道总码率和所述硬盘总空间,确定可录像时间;
录像时间显示模块,用于显示所述可录像时间。
另一方面,提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述所述的视频数据的编码方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的视频数据的编码方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得所述计算机执行上述所述的视频数据的编码方法的步骤。
本申请实施例提供的技术方案至少可以带来以下有益效果:
由于每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率固定且可预期,所以,对于固定大小的存储空间来说,能够提前预测可录像时间。而且,在每个第一周期包括的调节周期内,能够基于编码过程中的实际平均码率调整量化参数,进而控制每个调节周期内的实际平均码率,这样即可按照实际场景的复杂程度的不同来控制编码码率,从而不会出现复杂场景编码后的质量过低,或者简单场景编码后浪费过多码率的情况,提高了码率的控制能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种实施环境的示意图;
图2是本申请实施例提供的一种视频数据的编码方法的流程图;
图3是本申请实施例提供的一种编码参数设置界面的示意图;
图4是本申请实施例提供的一种视频数据的编码装置的结构示意图;
图5是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的视频数据的编码方法进行详细的解释说明之前,先对本申请实施例提供的实施环境进行介绍。
请参考图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 (24)
1.一种视频数据的编码方法,其特征在于,所述方法包括:
确定第一量化参数,所述第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数;
确定第二目标码率,所述第二目标码率为所述当前调节周期内的最大码率,且为基于第一目标码率确定出当前第一周期中剩余时长内的平均码率,所述第一目标码率为所述当前第一周期内的编码比特数达到预设编码比特数所对应的平均码率,所述当前第一周期包括多个调节周期;
基于所述第一量化参数,在所述当前调节周期内对所述视频数据进行编码,并在编码过程中,基于所述视频数据在单位时间内的实际平均码率调整所述第一量化参数,以使所述当前调节周期内的实际平均码率不超过所述第二目标码率。
2.如权利要求1所述的方法,其特征在于,所述确定第一量化参数,包括:
确定第一量化参数范围,所述第一量化参数范围用于约束所述当前调节周期内对所述视频数据进行编码所采用的量化参数;
基于所述第一量化参数范围确定所述第一量化参数,且所述第一量化参数位于所述第一量化参数范围内。
3.如权利要求2所述的方法,其特征在于,所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为首个第一周期,则将初始量化参数范围确定为所述第一量化参数范围。
4.如权利要求2所述的方法,其特征在于,所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率;
如果所述上一调节周期的实际平均码率大于所述上一调节周期对应的码率阈值,则增大所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围,所述码率阈值基于所述上一调节周期对应的目标码率确定。
5.如权利要求4所述的方法,其特征在于,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;
所述如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的非首个调节周期,则确定与所述当前调节周期相邻的上一调节周期的实际平均码率。
6.如权利要求2、4或5所述的方法,其特征在于,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数、第二实际编码比特数、第一期望编码比特数和第二期望编码比特数;
其中,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第二实际编码比特数为所述当前第二周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数,所述第二期望编码比特数为基于所述第一目标码率确定的所述当前第二周期内已期望编码的比特数;
基于所述第一实际编码比特数与所述第一期望编码比特数的关系,以及所述第二实际编码比特数与所述第二期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
7.如权利要求6所述的方法,其特征在于,所述基于所述第一实际编码比特数与所述第一期望编码比特数的关系,以及所述第二实际编码比特数与所述第二期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,包括:
基于所述第一期望编码比特数,确定第一期望编码比特数范围,基于所述第二期望编码比特数,确定第二期望编码比特数范围;
如果所述第一实际编码比特数大于所述第一期望编码比特数范围的上限,且所述第二实际编码比特数大于所述第二期望编码比特数范围的上限,则增大与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围;
如果所述第一实际编码比特数小于所述第一期望编码比特数范围的下限,且所述第二实际编码比特数小于所述第二期望编码比特数范围的下限,则减小所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
8.如权利要求2、4或5所述的方法,其特征在于,所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期且为当前第二周期内的首个调节周期,则确定第一实际编码比特数和第一期望编码比特数;
其中,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数;
基于所述第一实际编码比特数与所述第一期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
9.如权利要求8所述的方法,其特征在于,所述基于所述第一实际编码比特数与所述第一期望编码比特数的关系,调整与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,包括:
基于所述第一期望编码比特数,确定第一期望编码比特数范围;
如果所述第一实际编码比特数大于所述第一期望编码比特数范围的上限,则增大与所述当前调节周期相邻的上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围;
如果所述第一实际编码比特数小于所述第一期望编码比特数范围的下限,则减小所述上一调节周期对应的量化参数范围的上限和下限,以得到所述第一量化参数范围。
10.如权利要求4、7或9所述的方法,其特征在于,在增大所述上一调节周期对应的量化参数范围的上限和下限之前,还包括:
如果所述上一调节周期对应的量化参数范围的下限达到最大下限量化参数且所述上一调节周期对应的量化参数范围的上限达到最大上限量化参数,则显示提示信息,所述提示信息用于提示可录像时间无法达到预期时间。
11.如权利要求2所述的方法,其特征在于,所述确定第一量化参数范围,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期包括的最后一个调节周期对应的量化参数范围确定为所述第一量化参数范围。
12.如权利要求2所述的方法,其特征在于,所述基于所述第一量化参数范围确定所述第一量化参数,包括:
如果所述当前第一周期为非首个第一周期,或者,所述当前第一周期为首个第一周期且所述当前调节周期为所述当前第一周期内的非首个调节周期,则获取第二量化参数,所述第二量化参数为与所述当前调节周期相邻的上一调节周期结束时所采用的量化参数;
如果所述第二量化参数位于所述第一量化参数范围内,则将所述第二量化参数确定为所述第一量化参数,否则,对所述第二量化参数进行调整,以使调整后的第二量化参数位于所述第一量化参数范围内,并将所述调整后的第二量化参数确定为所述第一量化参数。
13.如权利要求1所述的方法,其特征在于,所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期,则将所述第一目标码率确定为所述第二目标码率。
14.如权利要求13所述的方法,其特征在于,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述如果所述当前调节周期为所述当前第一周期内的首个调节周期,则将所述第一目标码率确定为所述第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为首个第一周期,则将所述第一目标码率确定为所述第二目标码率。
15.如权利要求1、13或14所述的方法,其特征在于,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期内的首个调节周期的实际平均码率确定为所述第二目标码率。
16.如权利要求1、13或14所述的方法,其特征在于,每个第一周期内的编码比特数达到预设编码比特数所对应的平均码率相等且均为所述第一目标码率;所述第一周期包括多个第二周期,所述第二周期包括多个调节周期;所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的首个调节周期且所述当前第一周期为非首个第一周期,则将与所述当前第一周期相邻的上一第一周期内的首个第二周期的实际平均码率确定为所述第二目标码率。
17.如权利要求1所述的方法,其特征在于,所述确定第二目标码率,包括:
如果所述当前调节周期为所述当前第一周期内的非首个调节周期,则确定第一实际编码比特数和第一期望编码比特数,所述第一实际编码比特数为所述当前第一周期内已实际编码的比特数,所述第一期望编码比特数为基于所述第一目标码率确定的所述当前第一周期内已期望编码的比特数;
确定剩余编码比特数,所述剩余编码比特数为所述第一期望编码比特数与所述第一实际编码比特数之间的差值;
将所述剩余编码比特数除以所述当前第一周期的剩余时长,以得到所述第二目标码率。
18.如权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第二目标码率,确定多个第三目标码率,所述多个第三目标码率与多个运动等级一一对应,所述多个第三目标码率不同且所述多个第三目标码率小于或等于所述第二目标码率;
在编码过程中,确定所述视频数据在单位时间内的实际运动等级;
所述基于所述视频数据在单位时间内的实际平均码率调整所述第一量化参数,包括:
每当所述视频数据在第一单位时间内的实际平均码率与所述视频数据在所述第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整所述第一量化参数,以使所述视频数据在第二单位时间内的实际平均码率趋向于所述视频数据在所述第二单位时间内的实际运动等级对应的第三目标码率,所述第一单位时间和所述第二单位时间为任意相邻的两个单位时间,且所述第一单位时间位于所述第二单位时间之前。
19.如权利要求18所述的方法,其特征在于,当所述视频数据在第一单位时间内的实际平均码率与所述视频数据在所述第一单位时间内的实际运动等级对应的第三目标码率不相等时,调整所述第一量化参数,包括:
当所述第一单位时间内的实际平均码率大于所述第一单位时间内的实际运动等级对应的第三目标码率时,若所述第一量化参数小于第一量化参数范围的上限,则增大所述第一量化参数,增大后的第一量化参数位于所述第一量化参数范围内,所述第一量化参数范围用于约束所述当前调节周期内对所述视频数据进行编码所采用的量化参数;
当所述第一单位时间内的实际平均码率小于所述第一单位时间内的实际运动等级对应的第三目标码率时,若所述第一量化参数大于所述第一量化参数范围的下限,则减小所述第一量化参数,减小后的第一量化参数位于所述第一量化参数范围内。
20.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定接入的所有模拟通道在上一第一周期内的实际平均码率之和,以得到模拟通道总码率;
确定接入的所有网络摄像机IPC通道在所述上一第一周期内的实际平均码率之和,以得到IPC通道总码率;
获取硬盘总空间;
基于所述模拟通道总码率、所述IPC通道总码率和所述硬盘总空间,确定可录像时间;
显示所述可录像时间。
21.一种视频数据的编码装置,其特征在于,所述装置包括:
量化参数确定模块,用于确定第一量化参数,所述第一量化参数为当前调节周期内对视频数据进行编码所采用的初始量化参数;
第二目标码率确定模块,用于确定第二目标码率,所述第二目标码率为所述当前调节周期内的最大码率,且为基于第一目标码率确定出当前第一周期中剩余时长内的平均码率,所述第一目标码率为所述当前第一周期内的编码比特数达到预设编码比特数所对应的平均码率,所述当前第一周期包括多个调节周期;
编码模块,用于基于所述第一量化参数,在所述当前调节周期内对所述视频数据进行编码;
调整模块,用于在编码过程中,基于所述视频数据在单位时间内的实际平均码率调整所述第一量化参数,以使所述当前调节周期内的实际平均码率不超过所述第二目标码率。
22.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述权利要求1-20任一所述方法的步骤。
23.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-20任一所述的方法的步骤。
24.一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得所述计算机执行权利要求1-20任一所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111069223.XA CN113810685A (zh) | 2021-09-13 | 2021-09-13 | 视频数据的编码方法、装置、设备、存储介质及程序产品 |
CN202211112018.1A CN115379210A (zh) | 2021-09-13 | 2022-09-13 | 视频数据的编码方法、装置及设备 |
PCT/CN2022/118399 WO2023036331A1 (zh) | 2021-09-13 | 2022-09-13 | 视频数据的编码方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111069223.XA CN113810685A (zh) | 2021-09-13 | 2021-09-13 | 视频数据的编码方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113810685A true CN113810685A (zh) | 2021-12-17 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211112018.1A Pending CN115379210A (zh) | 2021-09-13 | 2022-09-13 | 视频数据的编码方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN113810685A (zh) |
WO (1) | WO2023036331A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115567685A (zh) * | 2022-09-09 | 2023-01-03 | 维沃移动通信有限公司 | 图像传输方法、装置、图像处理芯片、主控芯片及设备 |
WO2023036331A1 (zh) * | 2021-09-13 | 2023-03-16 | 杭州海康威视数字技术股份有限公司 | 视频数据的编码方法、装置及设备 |
Family Cites Families (4)
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 | 杭州海康威视数字技术股份有限公司 | 视频数据的编码方法、装置、设备、存储介质及程序产品 |
-
2021
- 2021-09-13 CN CN202111069223.XA patent/CN113810685A/zh active Pending
-
2022
- 2022-09-13 CN CN202211112018.1A patent/CN115379210A/zh active Pending
- 2022-09-13 WO PCT/CN2022/118399 patent/WO2023036331A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023036331A1 (zh) * | 2021-09-13 | 2023-03-16 | 杭州海康威视数字技术股份有限公司 | 视频数据的编码方法、装置及设备 |
CN115567685A (zh) * | 2022-09-09 | 2023-01-03 | 维沃移动通信有限公司 | 图像传输方法、装置、图像处理芯片、主控芯片及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115379210A (zh) | 2022-11-22 |
WO2023036331A1 (zh) | 2023-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220030245A1 (en) | Video encoding code rate control method, apparatus, and device, and storage medium | |
CN115379210A (zh) | 视频数据的编码方法、装置及设备 | |
WO2022052773A1 (zh) | 多窗口投屏方法及电子设备 | |
KR102617258B1 (ko) | 이미지 프로세싱 방법 및 장치 | |
US20060044394A1 (en) | Method and apparatus for a computer controlled digital camera | |
JP6401785B2 (ja) | 液晶表示方法および装置 | |
US20090234919A1 (en) | Method of Transmitting Data in a Communication System | |
CN108200441B (zh) | 一种图像亮度处理方法及装置、电子设备 | |
CN104269155A (zh) | 一种调整屏幕刷新频率的方法及装置 | |
US8018499B2 (en) | Image processing method and device using different clock rates for preview and capture modes | |
KR100760458B1 (ko) | 영상처리장치 및 컴퓨터-판독가능 기록매체 | |
CN112492395A (zh) | 数据处理方法、装置及电子设备 | |
EP2272237B1 (en) | Method of transmitting data in a communication system | |
CN103327252A (zh) | 拍摄装置及其拍摄方法 | |
CN116055786A (zh) | 一种显示多个窗口的方法及电子设备 | |
CN113099233A (zh) | 视频编码方法、装置、视频编码设备及存储介质 | |
CN116204308A (zh) | 音视频算力动态调节方法和装置、电子设备 | |
CN110166780B (zh) | 视频的码率控制方法、转码处理方法、装置和机器设备 | |
CN113870812A (zh) | 显示屏刷新帧率的调整方法、装置、处理器、芯片和终端 | |
WO2023000745A1 (zh) | 显示控制方法及相关装置 | |
CN116962613A (zh) | 数据传输方法及装置、计算机设备、存储介质 | |
CN115550688A (zh) | 视频码流的处理方法、介质、程序产品和电子设备 | |
CN114827696A (zh) | 一种跨设备的音视频数据同步播放的方法和电子设备 | |
EP4287607A1 (en) | Image processing method and electronic device | |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211217 |