CN115733987A - 编解码方法、编码器、解码器及电子设备 - Google Patents

编解码方法、编码器、解码器及电子设备 Download PDF

Info

Publication number
CN115733987A
CN115733987A CN202111003279.5A CN202111003279A CN115733987A CN 115733987 A CN115733987 A CN 115733987A CN 202111003279 A CN202111003279 A CN 202111003279A CN 115733987 A CN115733987 A CN 115733987A
Authority
CN
China
Prior art keywords
image
layer
coding
code stream
encoding
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
CN202111003279.5A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111003279.5A priority Critical patent/CN115733987A/zh
Priority to PCT/CN2022/113984 priority patent/WO2023030072A1/zh
Priority to EP22863211.3A priority patent/EP4380155A1/en
Publication of CN115733987A publication Critical patent/CN115733987A/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability

Landscapes

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

Abstract

本申请实施例提供了一种编解码方法、编码器、解码器及电子设备。该编码方法包括:获取待编码的图像;在针对图像进行第i层编码后,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码。这样,能够对每张图像进行灵活的分层编码,进而在待编码图像发生变化时,能够避免分层过多而造成分层冗余,提高编码效率以及传输效率;且也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,提高视频画质。

Description

编解码方法、编码器、解码器及电子设备
技术领域
本申请实施例涉及通信领域,尤其涉及一种编解码方法、编码器、解码器及电子设备。
背景技术
目前,视频分层编码被普遍应用到对端到端时延要求较高的场景中,以提高视频播放的流畅度。
在实际应用场景中,网络出现波动是常态且不同视频业务的视频图像是不同的,这会带来编码图像画质的变化、码率变化以及解码后的图像画质的变化。若采用目前的视频分层编码对图像进行分层编码,由于其分层编码的分层结构是固定的,则当网络出现波动以及待编码的视频图像发生变化时,可能会出现分层过多的情况,造成分层冗余,导致编码压缩率以及传输效率降低。此外,还可能会出现分层过少的情况,这样无法得到可传输的较高画质的中间层级,导致视频画质降低。
发明内容
为了解决上述技术问题,本申请提供一种编解码方法、编码器、解码器及电子设备。在该编码方法中,能够对每张图像进行灵活的分层编码,进而提高编码压缩率和传输效率,以及提高视频画质。
第一方面,本申请实施例提供一种编码方法,该方法包括:获取待编码的图像;在针对图像进行第i层编码后,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码。这样,能够适应于图像携带的信息和/或图像编码信息,对每张图像进行灵活的分层编码,进而在待编码图像发生变化时,能够避免分层过多而造成分层冗余,提高编码效率以及传输效率;也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,从而提高视频画质。
示例性的,自适应分层编码是指对待编码的图像是否进行进一步分层编码。
示例性的,i为正整数,第i层为基本层或增强层。
示例性的,待编码的图像可以是一帧完整的图像,也可以是对图像进行分块得到的图像块,也可以是纹理信息丰富的局部区域或用户感兴趣的局部区域或者其他重点区域等。
根据第一方面,依据图像的信源信息,对图像进行自适应分层编码,包括:当信源信息满足第一预设条件,对图像进行第(i+1)层编码。
示例性的,当信源信息不满足第一预设条件,结束对图像的编码。
示例性的,结束对图像的编码是指不再对图像进行下一层的编码,即结束对当前帧的编码,而不是结束对所有帧的编码。在本申请中,结束对当前帧的编码是指判断不再对当前帧进行第(i+1)层的编码,而不是立即停下编码器中有可能正在进行的对当前帧的第i层及更低层的编码操作。
根据第一方面,或者以上第一方面的任意一种实现方式,依据第i层的编码信息,对图像进行自适应分层编码,包括:当第i层的编码信息满足第二预设条件,对图像进行第(i+1)层编码。
示例性的,当第i层的编码信息不满足第二预设条件,结束对图像的编码。
根据第一方面,或者以上第一方面的任意一种实现方式,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码,包括:当信源信息不满足第一预设条件,且第i层的编码信息不满足第二预设条件,结束对图像的编码。
示例性的,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码,包括:当信源信息满足第一预设条件,且第i层的编码信息不满足第二预设条件,结束对图像的编码。
示例性的,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码,包括:当信源信息不满足第一预设条件,且第i层的编码信息满足第二预设条件,结束对图像的编码。
根据第一方面,或者以上第一方面的任意一种实现方式,第一预设条件包括以下至少一种:
空域复杂度大于第i层对应的第一复杂度阈值;
时域复杂度大于第i层对应的第二复杂度阈值;
时空域复杂度大于第i层对应的第三复杂度阈值。
这样,能够在图像复杂度较大时,适当增加编码层数,从而得到可传输的较高画质的中间层级,提高视频画质。以及在图像复杂度较小时,适当减少编码层数,从而能够减少冗余分层,提升编码压缩效率,以及传输效率。
根据第一方面,或者以上第一方面的任意一种实现方式,当i大于1时,
第i层对应的第一复杂度阈值,大于第(i-1)层对应的第一复杂度阈值;
第i层对应的第二复杂度阈值,大于第(i-1)层对应的第二复杂度阈值;
第i层对应的第三复杂度阈值,大于第(i-1)层对应的第三复杂度阈值。
根据第一方面,或者以上第一方面的任意一种实现方式,第二预设条件包括以下至少一种:
第i层的重建图像的残差信息大于残差阈值;
第i层的重建图像的峰值信噪比小于信噪比阈值;
第i层的编码量化参数值大于量化阈值;
第i层的率失真优化参数值大于失真阈值;
第i层的重建图像的主观质量估计值小于主观质量阈值。
这样,能够在编码图像的质量较差时,适当增加编码层数,从而得到可传输的较高画质的中间层级,提高视频画质。以及在编码图像的质量较好时,适当减少编码层数,从而能够减少冗余分层,提升编码压缩效率,以及传输效率。
根据第一方面,或者以上第一方面的任意一种实现方式,针对图像进行第i层编码得到的码流包括编码状态标识,编码状态标识用于指示第i层的码流是否为针对图像进行最后一层编码得到的码流。这样,能够便于解码端判断解码的码流是否是针对对应图像进行最后一层编码得到的码流,以便于显示决策。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:
在对图像进行第i层编码后,根据预设的最大分层数L_MAX,确定是否结束对图像的编码。
根据第一方面,或者以上第一方面的任意一种实现方式,编码信息包括以下至少一种:残差图像的残差信息、重建图像的峰值信噪比、编码量化参数值、率失真优化参数值、重建图像的主观质量估计值。
根据第一方面,或者以上第一方面的任意一种实现方式,信源信息包括以下至少一种:空域复杂度、时域复杂度、时空域复杂度。
第二方面,本申请实施例提供一种解码方法,该方法包括:获取待解码的码流,码流包括编码状态标识;随后,解析码流,从解析后的码流中获取编码状态标识,以及基于解析后的码流进行图像重建,得到重建图像;若编码状态标识为第一预设标识,则将重建图像存储至送显缓存区;若编码状态标识为第二预设标识,则将重建图像输出至显示模块。这样,解码端可以根据码流的编码状态标识,确定码流是否是针对码流对应的图像进行最后一层编码得到的码流,进而确定是将重建图像发送至显示模块进行显示,还是存储。
根据第二方面,第一预设标识用于指示码流不是针对码流对应的图像进行最后一层编码得到的码流;第二预设标识用于指示码流是针对码流对应的图像进行最后一层编码得到的码流。
第三方面,本申请实施例提供一种编码方法,该方法包括:获取待编码的图像;然后,依据信道反馈信息,确定图像的编码层数L1,接着,依据编码层数L1,对图像进行分层编码。这样,能够适应于网络波动情况,对每张图像进行灵活的分层编码,进而在网络波动时,避免分层过多而造成分层冗余,提高编码效率以及传输效率;且也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,提高视频画质。
示例性的,L1为正整数。
根据第三方面,依据信道反馈信息,确定图像的编码层数L1,包括:当信道反馈信息满足第三预设条件,从历史帧的编码层数L2至预设的最大分层数L_MAX之间选取L1;当信道反馈信息不满足第三预设条件,从1至历史帧的编码层数L2之间选取L1。
示例性的,历史帧可以是指当前帧之前的任一帧,也可以是指当前帧所属图像组中当前帧之前的任一帧。
根据第三方面,或者以上第三方面的任意一种实现方式,第三预设条件包括以下至少一种:
当前网络传输带宽评估值与历史网络传输带宽评估值的差值,大于带宽差值阈值;
当前网络传输吞吐量评估值与历史网络传输吞吐量评估值的差值,大于吞吐量阈值;
当前阻塞数据量评估值与历史阻塞数据量评估值的差值,大于数据阻塞阈值;
当前丢包率评估值与历史丢包率评估值的差值,大于丢包率阈值;
当前发送延迟时长评估值与历史发送延迟时长评估值的差值,大于延迟阈值;
当前显示帧率评估值与历史显示帧率评估值的差值,大于显示帧率阈值。
这样,能够根据历史信道反馈信息和当前信道反馈信息,准确的确定网络波动情况。进而能够在网络波动较大时,适当增加编码层数,从而得到可传输的较高画质的中间层级,提高视频画质。以及在网络波动较小时,适当减少编码层数,从而能够减少冗余分层,提升编码压缩效率,以及传输效率。
根据第三方面,或者以上第三方面的任意一种实现方式,第三预设条件包括以下至少一种:
当前网络传输带宽评估值,大于带宽方差阈值;
历史网络传输带宽评估值,大于带宽方差阈值;
当前网络传输吞吐量评估值,大于吞吐量方差阈值;
历史网络传输吞吐量评估值,大于吞吐量方差阈值;
当前阻塞数据量评估值,大于数据阻塞方差阈值
历史阻塞数据量评估值,大于数据阻塞方差阈值;
当前丢包率评估值,大于丢包率方差阈值;
历史丢包率评估值,大于丢包率方差阈值;
当前发送延迟时长评估值,大于延迟方差阈值;
历史发送延迟时长评估值,大于延迟方差阈值;
当前显示帧率评估值,大于显示帧率方差阈值;
历史显示帧率评估值,大于显示帧率方差阈值。
这样,能够根据历史信道反馈信息和当前信道反馈信息,准确的确定网络波动情况。进而能够在网络波动较大时,适当增加编码层数,从而得到可传输的较高画质的中间层级,提高视频画质。以及在网络波动较小时,适当减少编码层数,从而能够减少冗余分层,提升编码压缩效率,以及传输效率。
根据第三方面,或者以上第三方面的任意一种实现方式,依据编码层数L1,对图像进行分层编码,包括:
在对图像进行第i层编码后,当i小于编码层数L1,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码,其中,i为正整数,第i层为基本层或增强层;当i等于编码层数L1,结束对图像的编码。
这样,能够适应于网络波动情况,以及图像携带的信息和/或图像编码信息,对每张图像进行灵活的分层编码,进而在网络波动或者待编码图像发生变化时,避免分层过多而造成分层冗余,提高编码效率以及传输效率;且也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,提高视频画质。
根据第三方面,或者以上第三方面的任意一种实现方式,信道反馈信息包括以下至少一种:网络传输带宽评估值、网络传输吞吐量评估值、阻塞数据量评估值、丢包率评估值、发送延迟时长评估值和显示帧率评估值。
根据第三方面,或者以上第三方面的任意一种实现方式,该方法还包括:图像的码流包括图像的编码层数L1。这样,能够便于解码端判断解码的码流是否是针对图像进行最后一层编码得到的码流,以便于显示决策。
第四方面,本申请实施例提供一种解码方法,该方法包括:获取待解码的码流,码流包括层标识;接着,对码流进行解析,从解析后的码流中获取层标识,以及基于解析后的码流进行图像重建,得到的重建图像;当依据层标识,确定码流是针对码流对应的图像进行最后一层编码得到的码流,将重建图像输出至显示模块;当依据层标识,确定码流不是针对码流对应的图像进行最后一层编码得到的码流,将重建图像存储至送显缓存区。这样,解码端可以根据码流的层标识,确定码流是否是针对码流对应的图像进行最后一层编码得到的码流,进而确定是将重建图像发送至显示模块进行显示,还是存储。
第五方面,本申请实施例还提供一种编码方法,该方法包括:获取待编码的图像;然后依据图像的信源信息,对图像进行自适应分层编码。
第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第六方面,本申请实施例还提供一种编码方法,该方法包括:获取待编码的图像;然后在对图像进行第i层编码后,依据第i层的编码信息,对图像进行自适应分层编码。
第六方面以及第六方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第七方面,本申请实施例提供一种编码器,用于获取待编码的图像;在针对图像进行第i层编码后,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码,其中,i为正整数,第i层为基本层或增强层。
根据第七方面,编码器,用于当信源信息满足第一预设条件,对图像进行第(i+1)层编码。
根据第七方面,或者以上第七方面的任意一种实现方式,编码器,用于当第i层的编码信息满足第二预设条件,对图像进行第(i+1)层编码。
根据第七方面,或者以上第七方面的任意一种实现方式,编码器,用于当信源信息不满足第一预设条件,且第i层的编码信息不满足第二预设条件,结束对图像的编码。
根据第七方面,或者以上第七方面的任意一种实现方式,第一预设条件包括以下至少一种:
空域复杂度信息大于第i层对应的第一复杂度阈值;
时域复杂度信息大于第i层对应的第二复杂度阈值;
时空域复杂度信息大于第i层对应的第三复杂度阈值。
根据第七方面,或者以上第七方面的任意一种实现方式,第二预设条件包括以下至少一种:
第i层的重建图像的残差信息大于残差阈值;
第i层的重建图像的峰值信噪比小于信噪比阈值;
第i层的编码量化参数值大于量化阈值;
第i层的率失真优化参数值大于失真阈值;
第i层的重建图像的主观质量估计值小于主观质量阈值。
根据第七方面,或者以上第七方面的任意一种实现方式,针对图像进行第i层编码得到的码流包括编码状态标识,编码状态标识用于指示第i层的码流是否为针对图像进行最后一层编码得到的码流。
根据第七方面,或者以上第七方面的任意一种实现方式,编码器,用于在对图像进行第i层编码后,根据预设的最大分层数L_MAX,确定是否结束对图像的编码。
根据第七方面,或者以上第七方面的任意一种实现方式,编码信息包括以下至少一种:残差图像的残差信息、重建图像的峰值信噪比、编码量化参数值、率失真优化参数值、重建图像的主观质量估计值。
根据第七方面,或者以上第七方面的任意一种实现方式,信源信息包括以下至少一种:空域复杂度、时域复杂度、时空域复杂度。
第七方面以及第七方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第七方面以及第七方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第八方面,本申请实施例还提供一种解码器,用于获取待解码的码流,码流包括编码状态标识;对码流进行解析,从解析后的码流中获取编码状态标识,以及基于解析后的码流进行图像重建,得到重建图像;若编码状态标识为第一预设标识,则将重建图像存储至送显缓存区;若编码状态标识为第二预设标识,则将重建图像输出至显示模块。
根据第八方面,第一预设标识用于指示码流不是针对码流对应的图像进行最后一层编码得到的码流;第二预设标识用于指示码流是针对码流对应的图像进行最后一层编码得到的码流
第八方面以及第八方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第八方面以及第八方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第九方面,本申请实施例还提供一种编码器,用于获取待编码的图像;依据信道反馈信息,确定图像的编码层数L1,其中,L1为正整数;依据编码层数L1,对图像进行分层编码。
根据第九方面,编码器,用于当信道反馈信息满足第三预设条件,从历史帧的编码层数L2至预设的最大分层数L_MAX之间选取L1;当信道反馈信息不满足第三预设条件,从1至历史帧的编码层数L2之间选取L1。
根据第九方面,或者以上第九方面的任意一种实现方式,第三预设条件包括以下至少一种:
当前网络传输带宽评估值与历史网络传输带宽评估值的差值,大于带宽差值阈值;
当前网络传输吞吐量评估值与历史网络传输吞吐量评估值的差值,大于吞吐量阈值;
当前阻塞数据量评估值与历史阻塞数据量评估值的差值,大于数据阻塞阈值;
当前丢包率评估值与历史丢包率评估值的差值,大于丢包率阈值;
当前发送延迟时长评估值与历史发送延迟时长评估值的差值,大于延迟阈值;
当前显示帧率评估值与历史显示帧率评估值的差值,大于显示帧率阈值。
根据第九方面,或者以上第九方面的任意一种实现方式,编码器,用于在对图像进行第i层编码后,当i小于编码层数L1,依据图像的信源信息和/或第i层的编码信息,对图像进行自适应分层编码,其中,i为正整数,第i层为基本层或增强层;当i等于编码层数L1,结束对图像的编码。
根据第九方面,或者以上第九方面的任意一种实现方式,信道反馈信息包括以下至少一种:网络传输带宽评估值、网络传输吞吐量评估值、阻塞数据量评估值、丢包率评估值、发送延迟时长评估值和显示帧率评估值。
根据第九方面,或者以上第九方面的任意一种实现方式,图像的码流包括图像的编码层数L1。
第九方面以及第九方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第九方面以及第九方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十方面,本申请实施例提供了一种解码器,用于获取待解码的码流,码流包括层标识;对码流进行解析,从解析后的码流中获取层标识,以及基于解析后的码流进行图像重建,得到的重建图像;当依据层标识,确定码流是针对码流对应的图像进行最后一层编码得到的码流,将重建图像输出至显示模块;当依据层标识,确定码流不是针对码流对应的图像进行最后一层编码得到的码流,将重建图像存储至送显缓存区。
第十方面以及第十方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第十方面以及第十方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十一方面,本申请实施例提供一种电子设备,包括如第七方面的编码器和/或第八方面的解码器。
第十一方面以及第十一方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应,和/或,与第二方面以及第二方面的任意一种实现方式相对应。第十一方面以及第十一方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,和/或,可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十二方面,本申请实施例提供一种电子设备,包括如第九方面所述的编码器和/或第十方面所述的解码器。
第十二方面以及第十二方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应,和/或,与第四方面以及第四方面的任意一种实现方式相对应。第十二方面以及第十二方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,和/或,可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十三方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第十三方面以及第十三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第十三方面以及第十三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十四方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的解码方法。
第十四方面以及第十四方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十四方面以及第十四方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十五方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的编码方法。
第十五方面以及第十五方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十五方面以及第十五方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十六方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第四方面或第四方面的任意可能的实现方式中的解码方法。
第十六方面以及第十六方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第十六方面以及第十六方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十七方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第十七方面以及第十七方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第十七方面以及第十七方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十八方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的解码方法。
第十八方面以及第十八方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十八方面以及第十八方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十九方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的编码方法。
第十九方面以及第十九方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十九方面以及第十九方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第四方面或第四方面的任意可能的实现方式中的解码方法。
第二十方面以及第二十方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第二十方面以及第二十方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十一方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第二十一方面以及第二十一方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二十一方面以及第二十一方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十二方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的解码方法。
第二十二方面以及第二十二方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第二十二方面以及第二十二方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十三方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的编码方法。
第二十三方面以及第二十三方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第二十三方面以及第二十三方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十四方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得电子设备执行第四方面或第四方面的任意可能的实现方式中的解码方法。
第二十四方面以及第二十四方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第二十四方面以及第二十四方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第二十五方面以及第二十五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二十五方面以及第二十五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十六方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的解码方法。
第二十六方面以及第二十六方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第二十六方面以及第二十六方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十七方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的编码方法。
第二十七方面以及第二十七方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第二十七方面以及第二十七方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十八方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得电子设备执行第四方面或第四方面的任意可能的实现方式中的解码方法。
第二十八方面以及第二十八方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第二十八方面以及第二十八方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1为示例性示出的应用场景示意图;
图2为示例性示出的数据传输示意图;
图3a为示例性示出的编码过程示意图;
图3b为示例性示出的数据处理过程示意图;
图4为示例性示出的解码示意图;
图5为示例性示出的数据传输示意图;
图6为示例性示出的编码过程示意图;
图7为示例性示出的解码示意图;
图8为示例性示出的数据传输示意图;
图9为示例性示出的编码过程示意图;
图10为示例性示出的编码过程示意图;
图11为示例性示出的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个***是指两个或两个以上的***。
图1为示例性示出的应用场景示意图。
参照图1,示例性的,图1中的应用场景可以是各类视频业务场景,例如,视频会议场景、视频电话场景、在线教育场景、远程辅导场景、低时延直播场景、云游戏场景、无线的屏幕互投场景以及无线扩展屏场景等,本申请实施例对此不作限制。
参照图1,示例性的,该应用场景中可以包括发送设备和接收设备。
示例性的,发送设备包括但不限于:服务器、PC(Personal Computer,个人计算机)、笔记本电脑,平板电脑,手机,手表。
示例性的,接收设备包括但不限于:PC、笔记本电脑,平板电脑,手机,手表。
例如,视频会议场景中,发送设备可以是PC或笔记本电脑,接收设备可以是PC或笔记本电脑。
例如,在线教育场景中,发送设备可以是PC或笔记本电脑,接收设备可以是平板电脑。
例如,云游戏场景中,发送设备可以是服务器,接收设备可以是平板电脑、或PC、或笔记本电脑、或手机。
示例性的,发送设备可以包括图像采集模块、分层编码模块和发送模块。示例性的,分层编码模块可以是软件模块,也可以是硬件模块,本申请实施例对此不作限制。应当理解的是,图1仅是发送设备的一个示例,本申请另一些实施例中的发送设备具有比图1所示更多的模块,本申请实施例对此不作限制。
示例性的,图像采集模块用于采集图像。
示例性的,分层编码模块用于可分层编码决策和编码。
示例性的,发送模块用于发送数据。
示例性的,接收设备可以包括显示模块、分层解码模块和接收模块。示例性的,分层解码模块可以是软件模块,也可以是硬件模块,本申请实施例对此不作限制。应当理解的是,图1仅是接收设备的一个示例,本申请另一些实施例中的接收设备具有比图1所示更多的模块,本申请实施例对此不作限制。
示例性的,接收模块用于接收数据。
示例性的,分层解码模块用于可分层码流的解码和显示决策。
示例性的,显示模块用于显示。
继续参照图1,示例性的,发送设备采集图像后,将采集的图像发送至接收设备进行显示的过程如下:
S101,图像采集模块向分层编码模块输出采集的图像。
示例性的,图像采集模块可以通过摄像头采集图像。
示例性的,图像采集模块可以采集显卡(又称显示卡)输出的图像。
示例性的,图像采集模块可以通过屏幕抓取的方式采集图像。
示例性的,图像采集模块采集图像后,可以向分层编码模块输出采集的图像。
S102,分层编码模块向发送模块输出码流。
示例性的,分层编码模块接收到图像后,可以进行可分层编码决策。其中,可分层编码决策可以包括确定是否进行下一层编码,和/或,确定图像的编码层数。然后根据可分层编码决策的结果,对图像进行分层编码,将编码得到的码流输出至发送模块。
S103,发送模块向接收模块发送码流。
示例性的,发送模块接收到码流后,可以向接收设备发送码流。
S104,接收模块向分层解码模块输出接收到的码流。
示例性的,可以由接收设备的接收模块接收码流,然后将码流输出至分层解码模块。
S105,分层解码模块将重建图像输出显示模块。
示例性的,分层解码模块接收到码流后,可以对码流进行解码,得到对应的重建图像。然后分层编码模块可以根据从重建图像中,选取待显示的重建图像,将待显示的重建图像输出至显示模块。
示例性的,显示模块接收到分层解码模块输入的重建图像后,可以对重建图像进行显示。
一种可能的方式中,分层编码模块的可分层编码决策,可以是在对图像每进行一层编码后,决策是否针对图像进行下一层的编码。然后根据决策结果,确定是对图像进行下一层的编码,还是结束对图像的编码。需要说明的是,结束对图像的编码是指结束对当前编码的图像的编码,并不是结束对其他帧的编码。
图2为示例性示出的数据传输示意图。
参照图2,分层编码模块可以包括:信源分析模块、分层决策模块和编码处理模块。应当理解的是,图2仅是分层编码模块的一个示例,本申请另一些实施例中的分层编码模块具有比图2所示更多的模块,本申请实施例对此不作限制。
示例性的,信源分析模块用于分析输入至信源分析模块的信源,确定信源信息。示例性的,输入至信源分析模块的信源可以是指图像采集模块输入至信源分析模块的图像,信源信息可以是指对图像所携带的信息进行分析所得到的任意一种或多种信息。示例性的,信源信息可以包括复杂度,复杂度可以包括以下至少一种:空域复杂度、时域复杂度和时空域复杂度。
示例性的,空域复杂度用于表征对图像亮度变化、纹理复杂程度,可以是对图像所包含的信息量的描述。
示例性的,时域复杂度用于表征当前帧相对于历史已编码帧的变化,可以是对历史已编码帧的编码时间至当前时间这段时间内的信息量的描述。
示例性的,时空域复杂度可以是时域复杂度和空域复杂度的融合。
示例性的,信源分析模块确定信源信息后,可以将信源信息传入分层决策模块。
示例性的,编码处理模块可以用于对图像进行编码,以及确定编码信息。示例性的,编码信息可以包括以下至少一种:残差图像的残差信息、重建图像的峰值信噪比、编码量化参数值、率失真优化参数值、重建图像的主观质量估计值。
示例性的,重建图像可以由编码处理模块基于对源图像(也就是输入至编码处理模块的图像)进行编码得到的码流进行图像重建得到。
示例性的,残差图像可以是指源图像与源图像的重建图像的差值图像。
示例性的,上述各种编码信息的确定方式在后续实施例中进行说明。
示例性的,编码处理模块一方面可以将确定的编码信息反馈给分层决策模块,另一方面可以将编码得到的码流传入发送模块。
示例性的,分层决策模块用于根据信源信息和/或编码信息,决策是否进行下一层编码,得到决策结果。
示例性的,分层决策模块可以将决策结果发送给编码处理模块,以使编码处理模块根据决策结果,确定继续对图像进行下一层的编码,还是结束对图像的编码。
示例性的,发送模块可以发送码流。
示例性的,分层解码模块可以包括:解码处理模块和显示决策模块。应当理解的是,图2仅是分层解码模块的一个示例,本申请另一些实施例中的分层解码模块具有比图2所示更多的模块,本申请实施例对此不作限制。
示例性的,接收模块可以接收码流,并将码流传入解码处理模块。
示例性的,解码处理模块用于对码流进行解码。示例性的,解码处理模块解码得到重建图像后,可以将重建图像传入显示决策模块。
示例性的,显示决策模块用于选取待显示的重建图像。示例性的,显示模块可以将选取的待显示的重建图像发送给显示模块,由显示模块对接收到的重建图像进行显示。
图3a为示例性示出的编码过程示意图。参照图3a,示例性的,以第m(m为正整数)帧图像为例,对分层编码模块对第m帧图像的编码过程进行示例性说明,可以如下:
S301,获取待编码的第m帧图像。
一种可能的方式中,图像采集模块可以将图像传入分层编码模块中的信源分析模块,进而由信源分析模块获取待编码的第m帧图像。
一种可能的方式中,图像采集模块可以同时将图像传入分层编码模块中的信源分析模块和编码处理模块,进而可以由信源分析模块和编码处理模块,获取待编码的第m帧图像。
S302,确定第m帧图像的信源信息。
示例性的,信源分析模块获取到第m帧图像后,可以对第m帧图像进行复杂度分析,确定第m帧图像的空域复杂度、时域复杂度和时空域复杂度中的至少一种。
以下第m帧图像的色彩空间为YUV格式为例进行示例性说明,其中,YUV分别代表图像色彩的三个通道,Y表示图像的明亮度,U和V表示图像的色度。
(1)空域复杂度
一种可能的方式中,可以将第m帧图像划分为N(N为大于1的整数)个图像块。其中,可以按照最大编码单元来将第m帧图像划分为N个图像块,也可以按照其他方式将第m帧图像划分为N个图像块,本申请实施例对此不作限制。
示例性的,针对每一个图像块,可以分别计算该图像块在三个颜色通道上的像素方差值,可以参照如下公式:
Figure BDA0003236280300000161
Figure BDA0003236280300000162
Figure BDA0003236280300000163
其中,σYk表示第k个图像块在Y通道上的像素方差值,k为正整数,k的取值范围为1~N。PYkj(xj,yj)表示第k个图像块中第j个像素点(坐标为(xj,yj))在Y通道上的像素值,J是第k个图像块中所包含的像素点的总数量,J和j为正整数,j的取值范围为1~J。
Figure BDA0003236280300000164
表示第k个图像块中所有像素点在Y通道上的像素平均值。
其中,σUk表示第k个图像块在U通道上的像素方差值,k为正整数,k的取值范围为1~N。PUkj(xj,yj)表示第k个图像块中第j个像素点(坐标为(xj,yj))在U通道上的像素值,J是第k个图像块中所包含的像素点的总数量,J和j为正整数,j的取值范围为1~J。
Figure BDA0003236280300000165
表示第k个图像块中所有像素点在U通道上的像素平均值。
其中,σVk表示第k个图像块在V通道上的像素方差值,k为正整数,k的取值范围为1~N。PVkj(xj,yj)表示第k个图像块中第j个像素点(坐标为(xj,yj))在V通道上的像素值,J是第k个图像块中所包含的像素点的总数量,J和j为正整数,j的取值范围为1~J。
Figure BDA0003236280300000166
表示第k个图像块中所有像素点在V通道上的像素平均值。
示例性的,可以根据N个图像块在Y通道上的像素方差值,计算得到第m帧图像在Y通道上的空域复杂度。可选地,可以通过计算N个图像块在Y通道上的像素方差值的平均值,确定第m帧图像在Y通道上的空域复杂度,可以参照如下公式:
Figure BDA0003236280300000171
其中,σYS表示第m帧图像在Y通道上的空域复杂度。
示例性的,可以根据N个图像块在U通道上的像素方差值,计算得到第m帧图像在U通道上的空域复杂度。可选地,可以通过计算N个图像块在U通道上的像素方差值的平均值,确定第m帧图像在U通道上的空域复杂度,可以参照如下公式:
Figure BDA0003236280300000172
其中,σUS表示第m帧图像在U通道上的空域复杂度。
示例性的,可以根据N个图像块在V通道上的像素方差值,计算得到第m帧图像在V通道上的空域复杂度。可选地,可以通过计算N个图像块在V通道上的像素方差值的平均值,确定第m帧图像在V通道上的空域复杂度,可以参照如下公式:
Figure BDA0003236280300000173
其中,σVS表示第m帧图像在V通道上的空域复杂度。
示例性的,可以根据第m帧图像在Y通道上的空域复杂度、在U通道上的空域复杂度和在V通道上的空域复杂度,计算第m帧图像的空域复杂度。示例性的,可以将第m帧图像在Y通道上的空域复杂度、在U通道上的空域复杂度和在V通道上的空域复杂度进行加权计算,确定第m帧图像的空域复杂度,可以参照如下公式:
σS=w0σYS+w1σUS+w2σVS
其中,σS为第m帧的空域复杂度,w0为第m帧图像在Y通道上的空域复杂度的权重,w1为第m帧图像在U通道上的空域复杂度的权重,w2为第m帧图像在V通道上的空域复杂度的权重。其中,w0+w1+w2=1,w0、w1和w2可以按照需求设置,本申请实施例对此不作限制。
(2)时域复杂度
一种可能的方式中,可以将第m帧图像划分为N(为大于1的整数)个图像块,以及将第m帧之前已编码完成的一帧图像(后续采用第f帧图像表示)划分为N个图像块。
示例性的,针对N个图像块中的第k个图像块,可以确定第m帧中第k个图像块与第f帧图像中第k个图像块的差值图像,得到第k个差值图像块。示例性的,可以将第m帧中第k个图像块中各像素点的像素值,与第f帧图像中第k个图像块中对应位置像素点的像素值作差,得到第k个差值图像块。k为正整数,k的取值范围为1~N。
示例性的,针对第k个差值图像块,可以分别计算第k个差值图像块在三个颜色通道上的像素方差值,可以参照如下公式:
Figure BDA0003236280300000181
Figure BDA0003236280300000182
Figure BDA0003236280300000183
其中,σD Yk表示第k个差值图像块在Y通道上的像素方差值,k为正整数,k的取值范围为1~N。PD Ykj(xj,yj)表示第k个差值图像块中第j个像素点(坐标为(xj,yj))在Y通道上的像素值,J是第k个差值图像块中所包含的像素点的总数量,J和j为正整数,j的取值范围为1~J。
Figure BDA0003236280300000184
表示第k个差值图像块中所有像素点在Y通道上像素绝对值的平均值(其中,可以先确定第k个差值图像块中所有像素点在Y通道上像素值的绝对值,再采用第k个差值图像块中所有像素点在Y通道上像素值的绝对值,计算平均值,得到第k个差值图像块中所有像素点在Y通道上像素绝对值的平均值)。
其中,σD Uk表示第k个差值图像块在U通道上的像素方差值,k为正整数,k的取值范围为1~N。PD Ukj(xj,yj)表示第k个差值图像块中第j个像素点(坐标为(xj,yj))在U通道上的像素值,J是第k个差值图像块中所包含的像素点的总数量,J和j为正整数,j的取值范围为1~J。
Figure BDA0003236280300000185
表示第k个差值图像块中所有像素点在U通道上像素绝对值的平均值。
其中,σD Vk表示第k个差值图像块在V通道上的像素方差值,k为正整数,k的取值范围为1~N。PD Vkj(xj,yj)表示第k个差值图像块中第j个像素点(坐标为(xj,yj))在V通道上的像素值,J是第k个差值图像块中所包含的像素点的总数量,J和j为正整数,j的取值范围为1~J。
Figure BDA0003236280300000186
表示第k个差值图像块中所有像素点在V通道上像素绝对值的平均值。
示例性的,可以根据N个差值图像块在Y通道上的像素方差值,计算得到第m帧图像在Y通道上的时域复杂度。可选地,可以通过计算N个差值图像块在Y通道上的像素方差值的平均值,确定第m帧图像在Y通道上的时域复杂度,可以参照如下公式:
Figure BDA0003236280300000191
其中,σYT表示第m帧图像在Y通道上的空域复杂度。
示例性的,可以根据N个差值图像块在U通道上的像素方差值,计算得到第m帧图像在U通道上的时域复杂度。可选地,可以通过计算N个差值图像块在U通道上的像素方差值的平均值,确定第m帧图像在U通道上的时域复杂度,可以参照如下公式:
Figure BDA0003236280300000192
其中,σUT表示第m帧图像在U通道上的空域复杂度。
示例性的,可以根据N个差值图像块在V通道上的像素方差值,计算得到第m帧图像在V通道上的时域复杂度。可选地,可以通过计算N个差值图像块在V通道上的像素方差值的平均值,确定第m帧图像在V通道上的时域复杂度,可以参照如下公式:
Figure BDA0003236280300000193
其中,σVT表示第m帧图像在V通道上的空域复杂度。
示例性的,可以根据第m帧图像在Y通道上的时域复杂度、在U通道上的时域复杂度和在V通道上的时域复杂度,计算第m帧图像的时域复杂度。示例性的,可以将第m帧图像在Y通道上的时域复杂度、在U通道上的时域复杂度和在V通道上的时域复杂度进行加权计算,确定第m帧图像的时域复杂度,可以参照如下公式:
σT=w3σYT+w4σUT+w5σVT
其中,σT为第m帧的时域复杂度,w3为第m帧图像在Y通道上的时域复杂度的权重,w4为第m帧图像在U通道上的时域复杂度的权重,w5为第m帧图像在V通道上的时域复杂度的权重。其中,w3+w4+w5=1,w3、w4和w5可以按照需求设置,本申请实施例对此不作限制。
(3)时空域复杂度
一种可能的方式中,可以将第m帧图像的空域复杂度和时域复杂度进行加权平均,得到第m帧的时空域复杂度,可以参照如下公式:
Figure BDA0003236280300000194
应当理解的是,也可以按照预先针对空域复杂度设置的权重和针对时域复杂度设置的权重,对第m帧图像的空域复杂度和时域复杂度进行加权计算,得到第m帧的时空域复杂度,本申请实施例对此不作限制。
需要说明的是,空域复杂度和时域复杂度,还可以根据编码处理模块进行预编码得到的预测信息得到,其中,预测信息可以由编码处理模块提供。例如,空域复杂度和时域复杂度,可以根据预编码得到的残差块的方差值确定。其中,预编码得到的残差块,可以是针对第m帧的图像块进行预编码得到的预编码块与该图像块的差值图像块。
示例性的,可以将第m帧的时域复杂度、空域复杂度和时空域复杂度中的一种或多种,作为第m帧的信源信息。
示例性的,信源模块可以根据预先针对每帧设置的编码方式(编码方式包括帧间预测编码和帧内预测编码),来确定将时域复杂度、空域复杂度和时空域复杂度中哪种,作为第m帧的信源信息。示例性的,若预先设置的第m帧的编码方式是帧内预测编码,则可以仅将空域复杂度作为第m帧的信源信息。示例性的,若预先设置的第m帧的编码方式是帧间预测编码,则可以仅将时域复杂度作为第m帧的信源信息。若预先设置的第m帧的编码方式是帧内预测编码和帧间预测编码,则可以仅将时空域复杂度作为第m帧的信源信息,也可以将空域复杂度和时域复杂度作为第m帧的信源信息。
示例性的,信源分析模块确定信源信息后,可以将信源信息输入至分层决策模块,由分层决策模块根据信源信息进行分层决策。
S303,令i=1。
示例性的,可以由分层决策模块令i=1,然后把i的值输入至编码处理模块。
示例性的,分层决策模块还可以确定第i层的编码参数,并第i层的编码参数输入至编码处理模块。
一种可能的方式中,编码参数可以预先设置,进而分层决策模块可以从预先设置的编码参数中,获取第i层的编码参数即可。示例性的,编码参数可以包括以下至少一种:分辨率、编码量化参数和参考帧信息。
示例性的,分辨率是指输入至编码处理模块的图像的分辨率。示例性的,分辨率可以包括源分辨率和目标编码分辨率,源分辨率是指第m帧图像的分辨率,目标编码分辨率是指图像编码后能够重建的图像的分辨率,或者是编码处理模块实际编码的分辨率。
示例性的,编码量化参数是指编码处理模块对图像进行编码的量化参数。编码量化参数决定图像编码后的质量失真程度,编码量化参数越大,图像编码后相对于源图像失真程度越大;编码量化参数小,图像编码后相对于源图像失真程度越严重小。
示例性的,参考帧信息用于指示参考帧,参考帧信息可以是参考帧进入编码处理模块的序号(也叫做POC(Picture Order Count,图像序列号)号),也可以是参考帧和编码处理模块当前编码图像的距离(该距离是参考帧进入编码处理模块的序号与当前编码图像进入编码处理模块的序号的差值)。
示例性的,参考帧进入编码处理模块的序号,可以按照参考帧进入编码处理模块的顺序确定。示例性的,POC与图像的帧号相同。例如,采集到2帧图像,将第1帧图像输入至编码处理模块后,对于编码处理模块而言,输入了第一帧图像,这一帧图像的POC=1。将第2帧图像输入至编码处理模块后,对于编码处理模块而言,输入了第二帧图像,输入的这一帧图像的POC=2,以此类推。
另一种可能的方式中,分层决策可以根据第m帧图像的复杂度和信道反馈信息,确定第i层的编码参数,本申请实施例对此不作限制。
示例性的,本申请实施例不限制S302与S303的执行顺序。
示例性的,若编码处理模块也获取了第m帧图像,则分层决策模块在令i=1后,将i的值和基本层的编码参数输入至编码处理模块即可。
示例性的,若只有信源分析模块获取了第m帧图像,则信源分析模块在执行S302的同时,可以将第m帧图像输入至分层决策模块。分层决策模块在令i=1后,将i的值、基本层的编码参数和第m帧图像,输入至编码处理模块。
示例性的,本申请实施例不限制分层决策模块将i的值、基本层的编码参数,与第m帧图像输入至编码处理模块的顺序。
S304,对第m帧图像进行第i层编码。
示例性的,若i=1,则表示需要对第m帧图像进行基本层编码。若第i大于1,则表示需要对第m帧图像进行增强层编码。示例性的,当i=2,则表示需要对第m帧图像进行第1个增强层的编码,当i=3,则表示需要对第m帧图像进行第2个增强层的编码,以此类推。也就是说,第i层可以是基本层,也可以是增强层。其中,针对每帧图像,都可以对该帧图像进行第1层(也就是基本层)的编码。
示例性的,则编码处理模块照第i层的编码参数,对第m帧图像进行第i层的编码。
S305,确定第i层的编码信息。
示例性的,编码处理模块在对第m帧图像进行第i层编码后,可以确定第i层的编码信息。其中,第i层的编码信息可以包括以下至少一种:第i层的残差图像的残差信息、第i层的重建图像的峰值信噪比、第i层的编码量化参数值、第i层的率失真优化参数值、第i层的重建图像的主观质量估计值。
(1)第i层的残差图像的残差信息
示例性的,残差图像的残差信息可以是指残差图像的复杂度,残差图像的复杂度可以包括以下至少一种:残差图像的空域复杂度、残差图像的时域复杂度和残差图像的时空域复杂度。
一种可能的方式中,可以根据对第m帧图像进行第i层编码得到的码流进行图像重建,得到第i层的重建图像。然后可以将第m帧图像和第i层的重建图像进行逐个像素点作差,得到第i层的残差图像。再按照上文中描述的方式,计算第i层的残差图像的复杂度,得到第i层的残差图像的残差信息。
一种可能的方式中,对于第i层的残差图像中每一个M1×M2的残差块,可以将该M1×M2的残差块进行哈达玛变换(Hadamard Transform),得到一个M1×M2的变换域块像素矩阵。然后可以对像素矩阵中所有元素的值求绝对值后,将像素矩阵中所有元素值的绝对值进行加和,从而获得该M1×M2的残差块的复杂度。接着,可以根据多个M1×M2的残差块的复杂度,确定第i层的残差图像的复杂度,可以参照上文中的描述,在此不再赘述。其中,M1与M2可以相等,可以不相等,本申请实施例对此不作限制。哈达玛变换也可以换为离散余弦变换或者离散傅里叶变换,本申请实施例对此也不作限制。
(2)第i层的重建图像的峰值信噪比
示例性的,可以计算第m帧图像和第i层重建图像的均方误差,然后根据均方误差和第i层重建图像中最大像素值,计算第i层的重建图像的峰值信噪比。
(3)第i层的编码量化参数值。
示例性的,编码处理模块可以从分层决策模块输入的第i层的编码参数中,获取第i层的编码量化参数值。
(4)第i层的率失真优化参数值
示例性的,率失真优化参数值是指对图像编码所需的数据量(速率)优化失真量。
示例性的,率失真优化参数值实质上是率失真优化公式中的拉格朗日因子,率失真优化问题可转化为寻求最优的编码模式或编码参数来最小化失真与码率的加权和,如下表达式所示:
Figure BDA0003236280300000221
其中,B指的是编码模式或编码参数,S为变量B的有限集,D(B)表示的是在给定B情况下获得的失真值,R(B)表示的是在给定B情况下获得的码率,λ为拉格朗日因子。在给定的任意λ≥0的情况下,可以获得一组最优解D(B*)和R(B*)。一般来说,在择优的过程中,会预先确定λ值,它决定了码率在目标函数中的重要性,当λ值越大,当前层会趋向于选择码率较小,视频质量较差的编码方式进行编码;反之,当前层会趋向于选择码率较大,视频质量较好的编码方式进行编码。
(5)第i层的重建图像的主观质量估计值
示例性的,主观质量估计值包括但不限于:SSIM(Structural Similarity,结构相似性)值、MS-SSIM(Multi-Scale Structure Similarity,多尺度结构相似性)值、MOS(MeanOpinion Score,平均主观意见分)值、UIQI(Universal Image Quality Index,通用图像质量指数)值等。本申请实施例以将SSIM作为主观质量估计值为例进行示例性说明。
示例性的,可以计算第m帧图像的像素平均值和像素方差,以及计算第i层的重建图像的像素平均值和像素方差,然后根据第m帧图像的像素平均值和像素方差,以及第i层的重建图像的像素平均值和像素方差,来计算SSIM值,具体可以按照现有技术中SSIM值的计算方法,在此不再赘述。
示例性的,编码处理模块确定第i层的编码信息后,可以将第i层的编码信息反馈给分层决策模块,由分层决策模块根据第i层的编码信息进行分层决策。
S306,判断i是否等于L_MAX。
示例性的,分层决策模块可以先判断i是否等于L_MAX。其中,L_MAX是指编码处理模块可支持的最大分层数。
一种可能方式中,当i等于L_MAX时,由于编码处理模块无法对第m帧图像再进行下一层编码了,此时无需针对第m帧图像进行分层决策,可以执行S310,然后执行S311,即可结束对第m帧图像的编码。
一种可能方式中,当i等于L_MAX时,由于编码处理模块无法对第m帧图像再进行下一层编码了,此时无需针对第m帧图像进行分层决策,可以直接执行S311,即可结束对第m帧图像的编码。
示例性的,当i小于L_MAX时,则可以针对第m帧图像进行分层决策,此时可以执行S307。
S307,依据所述信源信息和/或第i层的编码信息,判断是否需要对第m帧图像进行第(i+1)层的编码。
一种可能的方式中,分层决策模块可以根据信源信息,判断是否需要对第m帧图像进行第(i+1)层的编码。
示例性的,当信源信息满足第一预设条件时,可以确定需要对第m帧图像进行第(i+1)层的编码。当信源信息不满足第一预设条件时,可以确定无需对第m帧图像进行第(i+1)层的编码。
示例性的,第一预设条件可以包括以下至少一种:
空域复杂度大于第i层对应的第一复杂度阈值;
时域复杂度大于第i层对应的第二复杂度阈值;
时空域复杂度大于第i层对应的第三复杂度阈值。
示例性的,不同层级对应的第一复杂度阈值不同,高层级对应的第一复杂度阈值大于低层级对应的第一复杂度阈值。也就是说,当i大于1时,第i层对应的第一复杂度阈值,大于第(i-1)层对应的第一复杂度阈值。例如,第2层对应的第一复杂度阈值大于第1层对应的第一复杂度阈值,第3层对应的第一复杂度阈值大于第2层对应的第一复杂度阈值。
示例性的,不同层级对应的第二复杂度阈值不同,高层级对应的第二复杂度阈值大于低层级对应的第二复杂度阈值。也就是说,当i大于1时,第i层对应的第二复杂度阈值,大于第(i-1)层对应的第二复杂度阈值。例如,第2层对应的第二复杂度阈值大于第1层对应的第二复杂度阈值,第3层对应的第二复杂度阈值大于第2层对应的第二复杂度阈值。
示例性的,不同层级对应的第三复杂度阈值不同,高层级对应的第三复杂度阈值大于低层级对应的第三复杂度阈值。也就是说,当i大于1时,第i层对应的第三复杂度阈值,大于第(i-1)层对应的第三复杂度阈值。例如,第2层对应的第三复杂度阈值大于第1层对应的第三复杂度阈值,第3层对应的第三复杂度阈值大于第2层对应的第三复杂度阈值。
一种可能的方式中,第i层对应的第一复杂度阈值的确定方式,可以如下公式所示:
θ1i=θ10+(i-1)*Δθ1i
其中,θ1i为第i层对应的第一复杂度阈值,θ10为预设的第一复杂度初始值,Δθ1i为第i层对应的第一阈值步长,Δθ1i大于0。
需要说明的是,当i不同的,Δθ1i可以相同,也可以不同,具体可以按照需求设置,本申请实施例对此不作限制。
一种可能的方式中,第i层对应的第二复杂度阈值的确定方式,可以如下公式所示:
θ2i=θ20+(i-1)*Δθ2i
其中,θ2i为第i层对应的第二复杂度阈值,θ20为预设的第二复杂度初始值,Δθ2i为第i层对应的第二阈值步长,Δθ2i大于0。
需要说明的是,当i不同的,Δθ2i可以相同,也可以不同,具体可以按照需求设置,本申请实施例对此不作限制。
一种可能的方式中,第i层对应的第三复杂度阈值的确定方式,可以如下公式所示:
θ3i=θ30+(i-1)*Δθ3i
其中,θ3i为第i层对应的第三复杂度阈值,θ30为预设的第三复杂度初始值,Δθ3i为第i层对应的第三阈值步长,Δθ3i大于0。
需要说明的是,当i不同的,Δθ3i可以相同,也可以不同,具体可以按照需求设置,本申请实施例对此不作限制。
需要说明的是,Δθ1i、Δθ2i和Δθ3i中的任意两个,可以相同,也可以不同,具体可以按照需求设置,本申请实施例对此也不作限制。
需要说明的是,θ10、θ20和θ30中的任意两个,可以相同,也可以不同,具体可以按照需求设置,本申请实施例对此也不作限制。
示例性的,第m帧图像的空域复杂度大于第i层对应的第一复杂度阈值,表征第m帧图像的空域复杂度较高。第m帧图像的时域复杂度大于第i层对应的第二复杂度阈值,表征第m帧图像的时域复杂度较高。第m帧图像的时空域复杂度大于第i层对应的第三复杂度阈值,表征第m帧图像的时空域复杂度较高。
一种可能的方式中,分层决策模块可以根据第i层的编码信息,判断是否需要对第m帧图像进行第(i+1)层的编码。
示例性的,当第i层的编码信息满足第二预设条件时,可以确定需要对第m帧图像进行第(i+1)层的编码。当第i层的编码信息不满足第二预设条件时,可以确定无需对第m帧图像进行第(i+1)层的编码。
示例性的,第二预设条件包括以下至少一种:
第i层的重建图像的残差信息大于残差阈值;
第i层的重建图像的峰值信噪比小于信噪比阈值;
第i层的编码量化参数值大于量化阈值;
第i层的率失真优化参数值大于失真阈值;
第i层的重建图像的主观质量估计值小于主观质量阈值。
示例性的,残差阈值、信噪比阈值、量化阈值、失真阈值和主观质量阈值,均可以按照需求设置,本申请实施例对此不作限制。
示例性的,第i层的重建图像的残差信息大于残差阈值,表征第i层的重建图像与第m帧图像的残差较大,也就说明,第m帧图像的复杂度较高。第i层的重建图像的峰值信噪比小于信噪比阈值,表征第m帧图像进行第i层编码后,画面质量较差。第i层的编码量化参数值大于量化阈值,表征第m帧图像进行第i层编码后,图像失真较大。第i层的率失真优化参数值大于失真阈值,表征第m帧图像进行第i层编码后,得到的码流较小,质量较差。第i层的重建图像的主观质量估计值小于主观质量阈值,表征第m帧图像进行第i层编码后,主观画质质量较差。
一种可能的方式中,分层决策模块可以根据信源信息和第i层的编码信息,判断是否对第m帧图像进行第(i+1)层的编码。
示例性的,当信源信息满足第一预设条件,或,第i层的编码信息满足第二预设条件,则确定需要对第m帧进行第(i+1)层的编码。当信源信息不满足第一预设条件,且,第i层的编码信息不满足第二预设条件,则确定无需对第m帧进行第(i+1)层的编码。
示例性的,当信源信息不满足第一预设条件,或,第i层的编码信息不满足第二预设条件,则确定无需对第m帧进行第(i+1)层的编码。
示例性的,一种可能的情况中,信源信息包含第m帧图像的时空域复杂度,第i层的编码信息包括:第i层的残差图像的残差信息、第i层的重建图像的峰值信噪比、第i层的编码量化参数值、第i层的率失真优化参数值、第i层的重建图像的主观质量估计值。此时,一种可能的方式中,可以采用优先级递进的方式,判断是否需要对第m帧图像进行第(i+1)层的编码。
示例性的,上述参数的优先级从低到高的排列顺序可以如下:第i层的重建图像的主观质量估计值、第i层的率失真优化参数值、第i层的编码量化参数值、第i层的重建图像的峰值信噪比、第i层的残差图像的残差信息、第m帧图像的时空域复杂度。此时,可以先判断第i层的重建图像的主观质量估计值是否小于主观质量阈值。若第i层的重建图像的主观质量估计值小于主观质量阈值,则确定需要对第m帧图像进行第(i+1)层的编码。若第i层的重建图像的主观质量估计值大于或等于主观质量阈值,则判断第i层的率失真优化参数值是否大于失真阈值。若第i层的率失真优化参数值大于失真阈值,则确定需要对第m帧图像进行第(i+1)层的编码。若第i层的率失真优化参数值小于或等于失真阈值,则判断第i层的编码量化参数值是否大于量化阈值。若第i层的编码量化参数值大于量化阈值,则确定需要对第m帧图像进行第(i+1)层的编码。若第i层的编码量化参数值小于或等于量化阈值,则判断第i层的重建图像的峰值信噪比是否小于信噪比阈值。若第i层的重建图像的峰值信噪比小于信噪比阈值,则确定需要对第m帧图像进行第(i+1)层的编码。若第i层的重建图像的峰值信噪比大于或等于信噪比阈值,则判断第i层的重建图像的残差信息是否大于残差阈值。若第i层的重建图像的残差信息大于残差阈值,则确定需要对第m帧图像进行第(i+1)层的编码。若第i层的重建图像的残差信息小于或等于残差阈值,则判断第m帧的时空域复杂度信息是否大于第三复杂度阈值。若第m帧的时空域复杂度信息大于第三复杂度阈值,则确定需要对第m帧图像进行第(i+1)层的编码。若第m帧的时空域复杂度信息小于或等于第三复杂度阈值,则确定无需对第m帧图像进行第(i+1)层的编码。
一种可能的方式中,可以采用选择性的方式,判断是否对第m帧进行第(i+1)层的编码。
示例性的,若信源信息所满足条件的条数与第i层编码信息所满足条件的条数的总和,大于或等于信源信息不满足条件的条数与第i层编码信息不满足条件的条数的总和,则可以确定需要对第m帧进行第(i+1)层的编码。若信源信息所满足条件的条数与第i层编码信息所满足条件的条数的总和,小于信源信息不满足条件的条数与第i层编码信息不满足条件的条数的总和,可以无需对第m帧进行第(i+1)层的编码。
S308,在第i层的码流中写入第一预设标识。
示例性的,第i层的码流是指对第m帧图像进行第i层编码得到的码流。
示例性的,编码处理模块在完成对第m帧图像的第i层编码后,可以在第m帧图像的第i层的码流中,写入编码状态标识。其中,编码状态标识用于指示第i层的码流是否为针对图像进行最后一层编码得到的码流。
示例性的,编码状态标识可以包括第一预设标识,第一预设标识可以用于指示码流不是针对码流对应图像进行最后一层编码得到的码流。
示例性的,编码状态标识可以包括第二预设标识,第二预设标识可以用于指示码流是针对码流对应图像进行最后一层编码得到的码流。
示例性的,第一预设标识和第二预设标识不同。例如,第一预设标识为0,第二预设标识为1。
示例性的,分层决策模块确定需要对第m帧图像进行第(i+1)层编码时,可以向编码处理模块发送继续分层编码通知信息,编码处理模块在接收到继续分层编码通知信息后,可以在第i层的码流中写入第一预设标识。
S309,将i加1。
示例性的,分层决策模块确定需要对第m帧图像进行第(i+1)层编码时,可以将i加1,并获取第i层的编码参数;然后将i的值和第i层的编码参数,输入至编码处理模块,由编码处理模块执行S304。
S310,在第i层的码流中写入第二预设标识。
示例性的,当分层决策模块确定i等于L_MAX,或者,确定无需对第m帧图像进行第(i+1)层的编码时,可以向编码处理模块发送停止分层编码通知信息。编码处理模块可以根据该停止分层编码通知信息,在第i层的码流中写入第二预设标识。
S311,将m加1。
示例性的,当分层决策模块确定i等于L_MAX,或者,分层决策模块确定对第m帧的图像编码结束后,可以将m加1,然后指示信源分析模块获取第m帧图像,也就是获取下一帧图像;以及也可以指示编码处理模块获取第m帧图像;然后可以按照S301~S310,对下一帧图像进行分层编码。
示例性的,当分层决策模块向编码处理模块发送停止分层编码通知信息时,分层决策模块可以确定对第m帧的图像编码结束。示例性的,当分层决策模块接收到编码处理模块反馈的完成在第i层码流中第二预设标识的信息时,分层决策模块可以确定对第m帧的图像编码结束。
需要说明的是,不同帧对应的编码层数可以相同,也可以不同,具体需要根据不同帧的信源信息和/或已编码层的编码信息确定,本申请实施例对此不作限制。
图3b为示例性示出的数据处理过程示意图。参照图3b,示例性的,视频数据包括e(e为正整数)帧图像:图像1、图像2、图像3......图像e。
示例性的,图像采集模块采集到图像1后,可以将图像1传入信源分析模块,一方面,信源分析模块可以对图像1进行复杂度分析,确定图像1的复杂度并将图像1的复杂度传入分层决策模块。另一方面,信源分析模块可以将图像1传入分层决策模块。分层决策模块可以令i=1,以及确定基本层编码参数;然后将i的值、基本层编码参数和图像1传入编码处理模块。接着,编码处理模块可以按照基本层编码参数对图像1进行基本层编码,得到对应的码流。编码处理模块完成图像1的基本层编码后,可以确定基本层的编码信息并将基本层的编码信息反馈给分层决策模块。
示例性的,分层决策模块根据图像1的复杂度和基本层的编码参数,确定需要对图像1进行第1个增强层的编码,可以向编码分析模块发送继续分层编码通知信息。编码处理模块在接收到继续分层编码通知信息后,可以在基本层的码流中写入第一预设标识。随后,分层决策模块可以将i加1,并确定第1个增强层的编码参数,接着,将i的值和第1个增强层的编码参数发送给编码处理模块。然后,编码处理模块可以按照第1个增强层的编码参数,对图像1进行第1个增强层的编码,得到对应的码流。编码处理模块完成图像1的第1个增强层的编码后,可以确定第1个增强层的编码信息并将第1个增强层的编码信息反馈给分层决策模块。
示例性的,分层决策模块根据图像1的复杂度和第1个增强层的编码参数,确定需要对图像1进行第2个增强层的编码,可以向编码分析模块发送继续分层编码通知信息。编码处理模块在接收到继续分层编码通知信息后,可以在第1个增强层的码流中写入第一预设标识。随后,分层决策模块可以将i加1,并确定第2个增强层的编码参数,将i的值和第2个增强层的编码参数发送给编码处理模块。接着,编码处理模块可以按照第2个增强层的编码参数,对图像1进行第2个增强层的编码,得到对应的码流。编码处理模块完成图像1的第2个增强层的编码后,可以确定第2个增强层的编码信息并将第2个增强层的编码信息反馈给分层决策模块。
示例性的,分层决策模块根据图像1的复杂度和第2个增强层的编码参数,确定无需对图像1进行增强层3的编码,可以给编码处理模块发送停止分层编码通知消息,编码处理模块在接收到停止分层编码通知信息后,可以在第2个增强层的码流中写入第二预设标识。此时,分层编码模块对图像1的编码结束,也就是说,分层编码模块针对图像1进行了3层编码,可参照图3b。
示例性的,分层编码模块对图像1的编码结束后,可以获取图像2,对图像2进行分层编码,其中,对图像2进行分层编码的过程,可以参照上文针对图像1进行分层编码的过程,在此不再赘述。参照图3b,分层编码模块针对图像2进行了1层编码。依次类推,分层编码模块可以对获取的每帧图像,采用上文描述的方式进行分层编码。示例性的,分层编码模块对图像(e-1)的编码结束后,可以获取图像e,对图像e进行分层编码,其中,对图像e进行分层编码的过程,可以参照上文针对图像1进行分层编码的过程,在此不再赘述。参照图3b,分层编码模块针对图像e进行了2层编码。
这样,能够适应于图像复杂度和/或图像编码信息,对每张图像进行灵活的分层编码,进而在待编码图像发生变化时,能够避免分层过多而造成分层冗余,提高编码效率以及传输效率;且也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,提高视频画质。
以下对如何将编码状态标识写入码流中进行说明。
示例性的,可以在第i层的码流的头部或尾部写入编码状态标识。例如,第i层的码流如表1所示。
表1
Figure BDA0003236280300000281
示例性的,表1是标准中规定的第i层的slice(图像切片)码流语法元素。
示例性的,slice_segment_data()可以表示对第m帧进行第i层编码得到的整帧码流。此时,do{......}while(!end_of_slice_segment_flag)用于解码第i层对应的一整帧图像。
示例性的,slice_segment_data()可以表示对第m帧进行第i层编码得到的一个图像切片的码流。对第m帧进行第i层编码得到的码流可以包括多个图像切片的码流。此时,do{......}while(!end_of_slice_segment_flag)用于解码第i层对应的一个图像切片的图像。
示例性的,last_layer_flag是用于标识第i层的码流是否为对第m帧图像进行最后一层编码得到的码流的语法元素。
示例性的,当slice_segment_data()表示对第m帧进行第i层编码得到的一个图像切片的码流时,last_layer_flag可以写入对第m帧进行第i层编码得到的最后一个图像切片的码流中。
示例性的,当slice_segment_data()表示对第m帧进行第i层编码得到的一个图像切片的码流时,last_layer_flag可以写入对第m帧进行第i层编码得到的每个图像切片的码流中。
示例性的,Descriptor用于描述语法元素的表示形式,例如,表1中的u(1)表示last_layer_flag占用1个比特位。假设,若要在第i层的码流中写入第一预测标识0,则可以在last_layer_flag对应的比特位写入“0”。假设,若要在第i层的码流中写入第二预测标识1,则可以在last_layer_flag对应的比特位写入“1”。
需要说明的是,表1仅是码流的一个示例,本申请实施例不限制码流中各语法元素的名称、各语法元素的顺序,以及不限制各语法元素占用的比特位数。
示例性的,编码处理模块还可以将L_MAX,图像是否进行分层编码的标识,写入码流中。示例性的,可以将L_MAX和图像是否进行分层编码的标识,写在码流的VPS(VideoParameter Set,视频参数集)、SPS(Sequence Parameter Set,序列参数集)或者PPS(Picture Paramater Set,图像参数集)中。其中,VPS、SPS和PPS,可以在编码处理模块发送某一视频业务的第1帧图像的码流(也就是图像序列码流)之前发送至解码端。
以下以SPS为例进行说明,其中,SPS可以参照表2。
表2
Figure BDA0003236280300000291
示例性的,表2是标准中规定的SPS的语法元素。
其中,seq_parameter_set_rbsp()表示某一视频业务码流的SPS。
示例性的,sps_extension_present_flag是用于标识SPS中是否扩展语法元素的语法元素。sps_extension_present_flag=1,表征SPS中扩展了语法元素。sps_extension_present_flag=0,表征SPS中未扩展语法元素。
示例性的,sps_shortrange_multilayer_flag是用于标识图像是否进行分层编码的语法元素。sps_shortrange_multilayer_flag=1,表征图像进行了分层编码。sps_shortrange_multilayer_flag=0,表征图像未进行分层编码。
示例性的,sps_max_layer_number_minus1是用于标识编码处理模块的最大分层数L_MAX的语法元素。其中,编码处理模块可以将其可支持的最大分层数L_MAX与1的差值,写入sps_max_layer_number_minus1对应的比特位。假设,如表2所示,sps_max_layer_number_minus1的Descriptor为u(3),也就是说,sps_max_layer_number_minus1占用的比特位数为3,若编码处理模块的L_MAX为8,则可以在sps_max_layer_number_minus1对应的比特位写入“111”;若编码处理模块的L_MAX为5,则可以在sps_max_layer_number_minus1对应的比特位写入“100”。
示例性的,rbsp_trailing_bits()用于对码流进行字节对齐。
需要说明的是,表2仅是码流的SPS的一个示例,本申请实施例不限制SPS中各语法元素的名称、各语法元素的顺序,以及不限制各语法元素占用的比特位数。
示例性的,编码处理模块还可以在对图像进行每层编码之前,在该层的码流中写入该层对应的层标识,层标识可以用于唯一标识一个层,如层号。
示例性的,编码处理模块可以在每层码流的nal_unit_header()中,写入该层的层标识,可以如表3所示:
表3
Figure BDA0003236280300000301
示例性的,表3是标准中规定的nal_unit_header()的语法元素。
示例性的,nuh_layer_id是用于标识当前码流对应编码层的语法元素。其中,可以在nuh_layer_id对应的比特位写入当前码流对应的层标识。其中,编码处理模块可以将当前码流对应的层标识与1的差值,写入nuh_layer_id对应的比特位。假设,表3中nuh_layer_id的Descriptor为u(3),也就是说,nuh_layer_id占用的比特位数为3。若当前码流是第6个增强层的码流(也就是图像的第7层的码流),则可以在nuh_layer_id对应的比特位写入“110”。若当前码流是基本层的码流(也就是图像的第1层的码流),则可以在nuh_layer_id对应的比特位写入“000”。
需要说明的是,表3仅是码流的一个示例,本申请实施例不限制码流中各语法元素的名称、各语法元素的顺序,以及不限制各语法元素占用的比特位数。
图4为示例性示出的解码示意图。参照图4,示例性的,分层解码模块在接收到码流后的处理过程可以如下:
S401,获取待解码的码流。
示例性的,接收设备的接收模块接收到码流后,可以将码流传入解码处理模块,由解码处理模块对码流进行解码。
S402,解析码流,从解析后的码流中获取编码状态标识,以及基于解析后的码流进行图像重建,得到重建图像。
示例性的,解码处理模块可以对码流进行解析,从解析后的码流中获取编码状态标识,以及基于解析后的码流进行图像重建,得到重建图像。然后将编码状态标识和重建图像发送给显示决策模块,由显示决策模块确定是否将该重建图像发送给显示模块进行显示。
示例性的,解码处理模块接收到的码流可以如表1所示,解码处理模块可以解析slice_segment_data()。解码处理模块在解析到slice_segment_data()中的do{......}while(!end_of_slice_segment_flag)时,可以根据基于对slice_segment_data()中do{......}while(!end_of_slice_segment_flag)的解析结果,进行图像重建,得到重建图像。完成对do{......}while(!end_of_slice_segment_flag)解析后,可以解析到元素last_layer_flag。解码处理模块可以根据解析到的last_layer_flag的值,确定码流对应的编码状态标识。例如,可以解析到last_layer_flag=1,此时,可以确定编码状态标识为第二预设标识。
S403,依据编码状态标识,判断重建图像是否为当前帧最后一层的重建图像。
示例性的,当前帧最后一层的重建图像是指,基于对当前帧的图像进行最后一层编码得到的码流,解码所得到的重建图像。
示例性的,显示决策模块接收到解码处理模块发送的重建图像和编码状态标识后,可以根据编码状态标识,判断重建图像是否为当前帧最后一层的重建图像。也就是,根据编码状态标识,判断解码的码流是否为对图像进行最后一层编码得到的码流。
示例性的,若从码流中提取出来的所述编码状态标识为第一预设标识,则可以确定重建图像不是当前帧最后一层的重建图像,此时可以执行S404。若从码流中提取出来的所述编码状态标识为第二预设标识,则可以确定重建图像为当前帧最后一层的重建图像,此时可以执行S405。
例如,通过对表1进行解析,确定编码状态标识为1,也就是第二预设标识,因此可以确定重建图像为当前帧最后一层的重建图像,此时可以执行S405。
S404,将重建图像存储至送显缓存区。
示例性的,显示决策模块若确定重建图像不是当前帧最后一层的重建图像,则将该重建图像,存储送显缓存区。
示例性的,当接收到解码处理模块发送的下一帧的重建图像时,可以将送显缓存区中存储的当前帧的最高一层的重建图像,发送至显示模块。
示例性的,当接收到解码处理模块发送的已解析到下一帧码流的信号时,可以将送显缓存区中存储的当前帧的最高一层的重建图像,发送至显示模块。
示例性的,当接收到显示模块发送的送显信号时,送显决策模块可以将送显缓存区中,存储的最新一帧的最高一层的重建图像,发送至显示模块。
S405,将重建图像输出至显示模块。
示例性的,显示决策模块若确定重建图像为当前帧最后一层的重建图像,则可以直接将对该重建图像,发送给显示模块。
需要说明的是,显示决策模块也可以根据重建图像的层标识和编码处理模块的L_MAX,来判断重建图像是否为当前帧最后一层的重建图像。
示例性的,当解码处理模块接收到SPS信息如表2所示时,解码处理模块可以解析SPS信息即解析seq_parameter_set_rbsp()。当解析到元素sps_extension_present_flag=1时,将进一步解析sps_shortrange_multilayer_flag;若解析到sps_shortrange_multilayer_flag=1,则进一步解析sps_max_layer_number_minus1。其中,若解析到sps_max_layer_number_minus1=7,则可以计算最大分层数L_MAX=sps_max_layer_number_minus1+1=8。
示例性的,当解码处理模块接收到待解码的码流如表3所所示时,可以解析nal_unit_header()。当解析到元素nuh_layer_id=3时,可以计算码流对应的层标识=nuh_layer_id+1=4。
示例性的,解码处理模块可以将重建图像、重建图像的层标识和L_MAX发送给显示决策模块。显示决策模块接收到重建图像、重建图像的层标识和L_MAX发送给显示决策模块后,若比对层标识不等于L_MAX,则可以确定重建图像不是当前帧最后一层的重建图像。若显示决策模块比对层标识等于L_MAX,则可以确定重建图像为当前帧最后一层的重建图像。
例如,通过对表2和表3的解析,确定L_MAX=8,层标识=7,因此可以确定重建图像不是当前帧最后一层的重建图像,可以执行S404。
一种可能的方式中,分层编码模块的可分层编码决策,可以是在每对图像进行编码之前,决策针对图像的编码层数。然后依据每帧图像的编码层数,对该图像进行编码。
图5为示例性示出的数据传输示意图。
参照图5,分层编码模块可以包括:信道分析模块、分层决策模块和编码处理模块。应当理解的是,图5仅是分层编码模块的一个示例,本申请另一些实施例中的分层编码模块具有比图5所示更多的模块,本申请实施例对此不作限制。
示例性的,信道分析模块用于根据发送模块反馈的网络反馈信息进行分析,确定信道反馈信息。
示例性的,网络反馈信息可以包括以下至少一种:网络传输带宽、网络传输吞吐量、阻塞数据量、丢包率、发送延迟时长和显示帧率。
示例性的,网络传输带宽用于表征信道实际进行发送数据时传输能力。
示例性的,网络传输吞吐量是指在单位时间内信道实际传输的数据量。
示例性的,阻塞数据量是指发送设备缓存区内当前存储的待发送数据量或帧数。
示例性的,丢包率是指数据传输过程中丢失的数据包数量占所发送数据包总数量的比率。
示例性的,发送延迟时长是指某一帧从发送开始到确认接收或确认丢弃的时长。
示例性的,显示帧率是指显示模块显示重建图像的帧率。
示例性的,信道反馈信息可以包括以下至少一种:网络传输带宽评估值、网络传输吞吐量评估值、阻塞数据量评估值、丢包率评估值、发送延迟时长评估值和显示帧率评估值。
示例性的,网络传输带宽评估值可以是通过对一段时间内网络传输带宽估计值进行统计得到的数值,也可以是网络传输带宽估计值的瞬时值。
示例性的,网络传输吞吐量评估值可以是通过对一段时间内网络传输吞吐量进行统计得到的数值,也可以是网络传输吞吐量的瞬时值。
示例性的,阻塞数据量评估值可以是通过对一段时间内阻塞数据量进行统计得到的数值,也可以是阻塞数据量的瞬时值。
示例性的,丢包率评估值可以是通过对一段时间内丢包率进行统计得到的数值,也可以是丢包率的瞬时值。
示例性的,发送延迟时长评估值可以是通过对一段时间内发送延迟时长进行统计得到的数值,也可以是发送延迟时长的瞬时值。
示例性的,显示帧率评估值可以是通过对一段时间内显示帧率进行统计得到的数值,也可以是显示帧率的瞬时值。
示例性的,信道分析模块确定信道反馈信息后,可以将信道反馈信息传入分层决策模块。
示例性的,分层决策模块用于根据信道反馈信息,确定针对每帧图像的编码层数。示例性的,分层决策模块确定每帧图像的编码层数后,可以将编码层数作为决策结果传入编码处理模块。
示例性的,编码处理模块用于编码。示例性的,编码处理模块可以根据决策结果,对图像进行编码,然后将编码得到的码流传入发送模块。
示例性的,图5中其他模块的描述可以参照上文中的描述,在此不再赘述。
图6为示例性示出的编码过程示意图。参照图6,示例性的,以第m(m为正整数)帧图像为例,对分层编码模块的对第m帧图像的编码过程进行示例性说明,可以如下:
S601,获取待编码的第m帧图像。
一种可能的方式中,图像采集模块可以将图像传入分层编码模块中的分层决策模块,进而由分层决策模块获取待编码的第m帧图像。
一种可能的方式中,图像采集模块可以同时将图像传入分层编码模块中的分层决策模块和编码处理模块,进而可以由分层决策模块和编码处理模块,获取待编码的第m帧图像。
S602,确定信道反馈信息。
示例性的,分层决策模块获取到待编码的第m帧图像后,可以向信道分析模块发送信道分析指示,由信道分析模块根据发送模块反馈的网络反馈信息进行信道分析,得到信道反馈信息。
示例性的,信道反馈信息可以包括历史信道反馈信息和当前信道反馈信息。
示例性的,历史信道反馈信息可以是指完成对第(m-1)帧图像的编码之前,设定时长内网络反馈信息的统计值。其中,设定时长可以按照需求设置,本申请实施例对此不作限制。示例性的,历史信道反馈信息包括以下至少一种:历史网络传输带宽评估值、历史网络传输吞吐量评估值、历史阻塞数据量评估值、历史丢包率评估值、历史发送延迟时长评估值和历史显示帧率评估值。
示例性的,当前信道反馈信息可以是从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内的网络反馈信息的统计值。示例性的,当前信道反馈信息包括以下至少一种:当前网络传输带宽评估值、当前网络传输吞吐量评估值、当前阻塞数据量评估值、当前丢包率评估值、当前发送延迟时长评估值和当前显示帧率评估值。
(1)历史网络传输带宽评估值和当前网络传输带宽评估值
示例性的,若第i(i为正整数)个时刻网络传输带宽为Wi,对应信道上收发数据总吞吐量(也就是网络传输吞吐量)为Pi,则第i个时刻的网络传输带宽估计值W'i,可以根据第i个时刻的网络传输带宽Wi和对应信道上收发数据总吞吐量为Pi进行加权计算得到,可以参照如下公式:
W'i=ωWi+(1-ω)Pi
其中,ω为加权系数,可以按照需求设置,本申请实施例对此不作限制。
一种可能的方式中,历史网络传输带宽评估值可以为多个时刻的网络传输带宽估计值的平均值,可以参照如下公式:
Figure BDA0003236280300000341
其中,A1为历史网络传输带宽评估值,N1为完成对应第(m-1)帧图像的编码之前,设定时长内所包含的时刻数,N1为正整数。
一种可能的方式中,历史网络传输带宽评估值可以为多个时刻的网络传输带宽估计值的方差值,可以参照如下公式:
Figure BDA0003236280300000342
一种可能的方式中,当前网络传输带宽评估值可以为多个时刻的网络传输带宽估计值的平均值,可以参照如下公式:
Figure BDA0003236280300000343
其中,A2为当前网络传输带宽评估值,N2为从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内所包含的时刻数,N2为正整数。
一种可能的方式中,当前网络传输带宽评估值可以为多个时刻的网络传输带宽估计值的方差值,可以参照如下公式:
Figure BDA0003236280300000344
(2)历史网络传输吞吐量评估值和当前网络传输吞吐量评估值
一种可能的方式中,历史网络传输吞吐量评估值可以为多个时刻的信道上收发数据总吞吐量的平均值,可以参照如下公式:
Figure BDA0003236280300000345
其中,B1为历史网络传输吞吐量评估值,N1为完成对应第(m-1)帧图像的编码之前,设定时长内所包含的时刻数,N1为正整数。
一种可能的方式中,历史网络传输吞吐量评估值可以为多个时刻的信道上收发数据总吞吐量的方差值,可以参照如下公式:
Figure BDA0003236280300000346
一种可能的方式中,当前网络传输吞吐量评估值可以为多个时刻的信道上收发数据总吞吐量的平均值,可以参照如下公式:
Figure BDA0003236280300000347
其中,B2为当前网络传输吞吐量评估值,N2为从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内所包含的时刻数,N2为正整数。
一种可能的方式中,当前网络传输吞吐量评估值可以为多个时刻的信道上收发数据总吞吐量的方差值,可以参照如下公式:
Figure BDA0003236280300000351
(3)历史阻塞数据量评估值和当前阻塞数据量评估值
一种可能的方式中,历史阻塞数据量评估值可以为多个时刻的发送设备缓存区存储的待发送数据量的平均值,可以参照如下公式:
Figure BDA0003236280300000352
其中,C1为历史阻塞数据量评估值,N1为完成对应第(m-1)帧图像的编码之前,设定时长内所包含的时刻数,N1为正整数。Li为第i个时刻发送设备缓存区存储的待发送数据量。
一种可能的方式中,历史阻塞数据量评估值可以为多个时刻的发送设备缓存区存储的待发送数据量的方差值,可以参照如下公式:
Figure BDA0003236280300000353
一种可能的方式中,当前阻塞数据量评估值可以为多个时刻的发送设备缓存区存储的待发送数据量的平均值,可以参照如下公式:
Figure BDA0003236280300000354
其中,C2为当前阻塞数据量阻塞数据量,N2为从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内所包含的时刻数,N2为正整数。
一种可能的方式中,当前阻塞数据量评估值可以为多个时刻的发送设备缓存区存储的待发送数据量的方差值,可以参照如下公式:
Figure BDA0003236280300000355
(4)历史丢包率评估值和当前丢包率评估值
一种可能的方式中,历史丢包率评估值可以为多个时刻的丢包率的平均值,可以参照如下公式:
Figure BDA0003236280300000361
其中,D1为历史丢包率评估值,N1为完成对应第(m-1)帧图像的编码之前,设定时长内所包含的时刻数,N1为正整数。Ri为第i个时刻的丢包率。
一种可能的方式中,历史丢包率评估值可以为多个时刻的丢包率的方差值,可以参照如下公式:
Figure BDA0003236280300000362
一种可能的方式中,当前丢包率评估值可以为多个时刻的丢包率总吞吐量的平均值,可以参照如下公式:
Figure BDA0003236280300000363
其中,D2为当前丢包率评估值,N2为从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内所包含的时刻数,N2为正整数。
一种可能的方式中,当前丢包率评估值可以为多个时刻的丢包率的方差值,可以参照如下公式:
Figure BDA0003236280300000364
(5)历史发送延迟时长评估值和当前发送延迟时长评估值
一种可能的方式中,历史发送延迟时长评估值可以为多个时刻的发送延迟时长的平均值,可以参照如下公式:
Figure BDA0003236280300000365
其中,E1为历史发送延迟时长评估值,N1为完成对应第(m-1)帧图像的编码之前,设定时长内所包含的时刻数,N1为正整数。Yi为第i个时刻发送延迟时长。
一种可能的方式中,历史发送延迟时长评估值可以为多个时刻的发送延迟时长的方差值,可以参照如下公式:
Figure BDA0003236280300000366
一种可能的方式中,当前发送延迟时长评估值可以为多个时刻的发送延迟时长的平均值,可以参照如下公式:
Figure BDA0003236280300000371
其中,E2为当前发送延迟时长评估值,N2为从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内所包含的时刻数,N2为正整数。
一种可能的方式中,当前发送延迟时长评估值可以为多个时刻的发送延迟时长的方差值,可以参照如下公式:
Figure BDA0003236280300000372
(6)历史显示帧率评估值和当前显示帧率评估值
一种可能的方式中,历史显示帧率评估值可以为多个时刻的显示帧率的平均值,可以参照如下公式:
Figure BDA0003236280300000373
其中,F1为历史显示帧率评估值,N1为完成对应第(m-1)帧图像的编码之前,设定时长内所包含的时刻数,N1为正整数。fi为第i个时刻的显示帧率。
一种可能的方式中,历史显示帧率评估值可以为多个时刻的显示帧率的方差值,可以参照如下公式:
Figure BDA0003236280300000374
一种可能的方式中,当前显示帧率评估值可以为多个时刻的显示帧率的平均值,可以参照如下公式:
Figure BDA0003236280300000375
其中,F2为当前显示帧率评估值,N2为从第(m-1)帧图像的编码完成至获取到第m帧图像时,这段时间内所包含的时刻数,N2为正整数。
一种可能的方式中,当前显示帧率评估值可以为多个时刻的显示帧率的方差值,可以参照如下公式:
Figure BDA0003236280300000376
需要说明是的,历史信道反馈信息也可以是指完成对第(m-1)帧图像编码时网络反馈信息的瞬时值(例如,历史网络传输带宽评估值为W'i=ωWi+(1-ω)Pi,i为完成第(m-1)帧图像编码的时刻。又例如,历史网络传输吞吐量评估值为Pi,i为完成第(m-1)帧图像编码的时刻)。当前信道反馈信息也可以是获取到第m帧图像时网络反馈信息的瞬时值(例如,当前网络传输带宽评估值为W'i=ωWi+(1-ω)Pi,i为获取到第m帧图像的时刻。又例如,当前网络传输吞吐量评估值为Pi,i为获取到第m帧图像的时刻),本申请实施例对此不作限制。
S603,依据信道反馈信息,确定第m帧图像的编码层数L1。
示例性的,分层决策模块可以判断信道反馈信息是否满足第三预设条件。当所述信道反馈信息满足第三预设条件,从历史帧的编码层数L2至预设的最大分层数L_MAX之间选取L1;当所述信道反馈信息不满足第三预设条件,从1至所述历史帧的编码层数L2之间选取L1。
示例性的,当历史信道反馈信息和当前信道反馈信息均是根据平均值计算得到,或者是瞬时值,则第三预设条件可以包括以下至少一种:
当前网络传输带宽评估值与历史网络传输带宽评估值的差值,大于带宽差值阈值;
当前网络传输吞吐量评估值与历史网络传输吞吐量评估值的差值,大于吞吐量阈值;
当前阻塞数据量评估值与历史阻塞数据量评估值的差值,大于数据阻塞阈值;
当前丢包率评估值与历史丢包率评估值的差值,大于丢包率阈值;
当前发送延迟时长评估值与历史发送延迟时长评估值的差值,大于延迟阈值;
当前显示帧率评估值与历史显示帧率评估值的差值,大于显示显示帧率阈值。
其中,带宽差值阈值、吞吐量阈值、数据阻塞阈值、丢包率阈值、延迟阈值和显示帧率阈值,均可以按照需求设置,在此不再赘述。
示例性的,当历史信道反馈信息和当前信道反馈信息均是根据方差计算得到,则第三预设条件可以包括以下至少一种:
当前网络传输带宽评估值,大于带宽方差阈值;
历史网络传输带宽评估值,大于带宽方差阈值;
当前网络传输吞吐量评估值,大于吞吐量方差阈值;
历史网络传输吞吐量评估值,大于吞吐量方差阈值;
当前阻塞数据量评估值,大于数据阻塞方差阈值
历史阻塞数据量评估值,大于数据阻塞方差阈值;
当前丢包率评估值,大于丢包率方差阈值;
历史丢包率评估值,大于丢包率方差阈值;
当前发送延迟时长评估值,大于延迟方差阈值;
历史发送延迟时长评估值,大于延迟方差阈值;
当前显示帧率评估值,大于显示帧率方差阈值;
历史显示帧率评估值,大于显示帧率方差阈值。
其中,带宽方差阈值、吞吐量方差阈值、数据阻塞方差阈值、丢包率方差阈值、延迟方差阈值和显示帧率方差阈值,均可以按照需求设置,在此不再赘述。
示例性的,分层决策模块可以从历史帧的编码层数L2至预设的最大分层数L_MAX之间,任意选取一个数,作为第i层的编码层数L1。其中,历史帧可以是指第m帧之前的任一帧,也可以是指第m帧所属图像组中第m帧之前的任一帧,本申请实施例对此不作限制。
示例性的,L1可以等于L2,也可以等于L_MAX,本申请实施例对此不作限制。
示例性的,分层决策模块还可以根据信道反馈信息,从历史帧的编码层数L2至预设的最大分层数L_MAX之间选取L1。例如,根据信道反馈信息,确定网络波动越大(例如,当前网络传输带宽评估值与历史网络传输带宽评估值的差值,高于带宽差值阈值越多),则可以从L2至L_MAX之间,选取越大的数作为L1。例如,根据信道反馈信息,确定网络波动越小(例如,当前网络传输带宽评估值与历史网络传输带宽评估值的差值,高于带宽差值阈值越少),则可以从L2至L_MAX之间,选取越小的数作为L1。
示例性的,分层决策模块可以1至所述历史帧的编码层数L2之间,任意选取一个数,作为第i层的编码层数L1。
示例性的,L1可以等于L2,也可以等于1,本申请实施例对此不作限制。
示例性的,分层决策模块还可以根据信道反馈信息,1至所述历史帧的编码层数L2之间选取L1。例如,根据信道反馈信息,确定网络波动越小(例如,当前网络传输带宽估计值与历史网络传输带宽估计值的差值,低于带宽差值阈值越多),则可以从1至L2之间,选取较小的数作为L1。例如,根据信道反馈信息,确定网络波动越大(例如,当前网络传输带宽估计值与历史网络传输带宽估计值的差值,低于带宽差值阈值越少),则可以从1至L2之间,选取较大的数作为L1。
S604,依据第m帧图像的编码层数L1,对第m帧图像进行分层编码。
示例性的,分层决策模块在确定第m帧图像的编码层数L1后,分层决策模块还可以确定L1层中每层的编码参数;然后将第m帧图像的编码层数L1和各层对应的编码参数,传入编码处理模块,由编码处理模块依据第m帧图像的编码层数L1和各层的编码参数,对第m帧图像进行分层编码。
示例性的,当编码处理模块未执行S601时,则分层决策模块还可以将第m帧图像传入至编码处理模块,此时,本申请实施例不限制分层决策模块将第m帧图像的编码层数L1、编码参数,与第m帧图像传入编码处理模块的顺序。
S605,将m加1。
一种可能的方式中,待编码处理模块对第m帧图像完成L1层的编码后,可以向分层决策模块发送通知消息,此时,分层决策模块可以将m加1,然后执行S601,即对下一帧图像进行处理。
需要说明的是,分层决策模块针对不同帧,确定的编码层数可以相同,也可以不同,具体需要根据信道反馈信息确定,本申请实施例对此不作限制
参照图3b,示例性的,视频数据包括e(e为正整数)帧图像:图像1、图像2、图像3......图像e。
示例性的,图像采集模块采集到图像1后,可以将图像1传入分层决策模块,此时,分层决策模块可以向信道分析模块发送信道分析指示。然后信道分析模块根据发送模块反馈的网络反馈信息进行信道分析,得到信道反馈信息,并将信道反馈信息反馈给分层决策模块。示例性的,分层决策模块根据信道反馈信息,确定针对图像1的编码层数L1=3,此时可以确定基本层的编码参数,第1个增强层的编码参数和第2增强层的编码参数。然后将图像1、L1的值和编码参数输入至编码分析模块,由编码分析模块根据基本层的编码参数对图像1进行基本层编码,根据第1个增强层的编码参数对图像1进行第1个增强层的编码,以及根据第2个增强层的编码参数对图像1进行第2个增强层的编码。
示例性的,分层决策模块接收到图像2以及信道反馈信息后,可以确定针对图像1的编码层数L1=1,此时可以确定基本层的编码参数,然后将图像1、L1的值和编码参数输入至编码分析模块,由编码分析模块根据编码参数对图像1进行基本层编码。以此类推,示例性的,分层接收到图像e以及信道反馈信息后,可以确定针对图像e的编码层数L1=2,此时可以确定基本层的编码参数和第1个增强层的编码参数,然后将图像e、L1的值和编码参数输入至编码分析模块,由编码分析模块根据基本层的编码参数对图像e进行基本层编码,以及根据第1个增强层的编码参数对图像e进行第1个增强层的编码。
这样,能够适应于网络波动情况,对每张图像进行灵活的分层编码,进而在网络波动时,避免分层过多而造成分层冗余,提高编码效率以及传输效率;且也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,提高视频画质。
示例性的,可以在第m帧图像每层的码流中,添加第m帧图像的编码层数L1。
示例性的,可以在第m帧图像第一层的码流中,添加第m帧图像的编码层数L1。
示例性的,由于每个图像对应的编码层数L1是在对图像编码之前确定的,因此可以将每个图像对应的编码层数L1,可以写在每一层码流或第一层码流的头部,可以如表4所示:
表4
Figure BDA0003236280300000401
示例性的,表4是标准中规定的第i层的slice码流语法元素。
示例性的,reuse_sps_max_layer_number_flag是用于标识是否针对图像设置编码层数L_IMG的语法元素。reuse_sps_max_layer_number_flag=0,说明针对图像设置了编码层数L_IMG。reuse_sps_max_layer_number_flag=1,说明未针对图像设置编码层数L_IMG,此时图像的编码层数L_IMG可以根据SPS中的sps_max_layer_number_minus1的值确定,此时,图像的编码层数L_IMG=L_MAX(编码处理模块可支持的最大分层数)。
示例性的,max_layer_number_minus1是用于标识图像的编码层数L_IMG的语法元素。示例性的,可以将图像的编码层数L1-1,写入max_layer_number_minus1对应的比特位。例如,表4中max_layer_number_minus1对应Descriptor为u(3),表明max_layer_number_minus1占用3个字符,假设,图像的编码层数L1=4,则可以在max_layer_number_minus1对应的比特位写入“011”。假设,图像的编码层数L1=1,则可以在max_layer_number_minus1对应的比特位写入“000”。
需要说明的是,表4仅是码流的一个示例,本申请实施例不限制码流中各语法元素的名称、各语法元素的顺序,以及不限制各语法元素占用的比特位数。
示例性的,slice_segment_header()可以是表示对第m帧进行第i层编码得到的整帧码流。
示例性的,slice_segment_header()可以是表示对第m帧进行第i层编码得到的一个图像切片的码流。对第m帧进行第i层编码得到的码流可以包括多个图像切片的码流。一种可能方式中,reuse_sps_max_layer_number_flag和max_layer_number_minus1,可以写入对第m帧进行第i层编码得到的第一个图像切片的码流中。另一种可能方式中,reuse_sps_max_layer_number_flag和max_layer_number_minus1,可以写入对第m帧进行第i层编码得到的每一个图像切片的码流中。
图7为示例性示出的解码过程示意图。
S701,获取待解码的码流。
S702,对所述码流进行解析,从所述解析后的码流中获取所述层标识,以及基于所述解析后的码流进行图像重建,得到的重建图像。
示例性的,解码处理模块可以对码流进行解析,从解析后的码流中获取所述层标识和当前帧的编码层数,以及基于所述解析后的码流进行图像重建,得到重建图像。然后再将层标识、当前帧的编码层数和重建图像发送给显示决策模块,由显示决策模块确定是否将该重建图像发送给显示模块进行显示。
示例性的,解码处理模块接收到SPS信息后,对SPS信息进行解析获取最大分层数的方式,可以参照上文描述,在此不再赘述。
示例性的,解码处理模块接收到的码流包括的信息可以如表4所示,解码处理模块可以解析slice_segment_header()。解码处理模块解析出reuse_sps_max_layer_number_flag=1时,则无法继续解析到max_layer_number_minus1,此时可以将通过对SPS信息进行解析获取的L_MAX,确定为当前帧的编码层数L_IMG,即L_IMG=sps_max_layer_number_minus1+1。当解码模块解析出reuse_sps_max_layer_number_flag=0时,可以进一步进行解析max_layer_number_minus1。其中,可以根据解析出的max_layer_number_minus1的值,确定L_IMG。其中,L_IMG=max_layer_number_minus1+1。例如,解析出max_layer_number_minus1=3,则可以确定L_IMG=4。
示例性的,解码处理模块接收到的码流包括的信息可以如表3所示,解码处理模块可以解析nal_unit_header()。若解析到nuh_layer_id=3,则可以确定层标识=nuh_layer_id+1=4
S703,依据层标识,判断重建图像是否为当前帧最后一层的重建图像。
示例性的,显示决策模块接收到重建图像、重建图像的层标识和当前帧的编码层数L_IMG发送给显示决策模块后,若比对层标识不等于L_IMG,则可以确定重建图像不是当前帧最后一层的重建图像。若显示决策模块比对层标识等于L_IMG,则可以确定重建图像为当前帧最后一层的重建图像。
例如,通过对表4和表3的解析,确定当前帧的编码层数L_IMG=4,层标识=4,因此可以确定重建图像是当前帧最后一层的重建图像,可以执行S704。
S704,将所述重建图像存储至送显缓存区。
S705,将所述重建图像输出至显示模块。
示例性的,S704~S705可以参照上文中S404~S405的描述,在此不再赘述。
一种可能的方式中,分层编码模块的可分层编码决策,可以是在对图像编码之前,确定针对图像的编码层数;然后在按照确定的编码层数对图像每进行一层编码后,决策是否针对图像进行下一层的编码,根据决策结果,确定是对图像进行下一层的编码,还是结束对图像的编码。
图8为示例性示出的数据传输示意图。参照图8,示例性的,分层编码模块可以包括:信源分析模块、分层决策模块、信道分析模块和编码处理模块。应当理解的是,图8仅是分层编码模块的一个示例,本申请另一些实施例中的分层编码模块具有比图8所示更多的模块,本申请实施例对此不作限制。
示例性的,图8中各个模块的功能,以及数据流向可以参照上文中的描述,在此不再赘述。
图9为示例性示出的编码过程示意图。
S901,获取待编码的第m帧图像。
S902,确定信道反馈信息。
S903,依据信道反馈信息,确定第m帧图像的编码层数L1。
S904,确定第m帧图像的信源信息。
S905,令i=1
S906,对第m帧图像进行第i层编码
S907,确定第i层的编码信息。
S908,判断i是否等于L1。
S909,依据所述信源信息和/或第i层的编码信息,判断是否需要对第m帧图像进行第(i+1)层的编码。
S910,将第i层的码流中写入第一预设标识。
S911,将i加1
S912,在第i层的码流中写入第二预设标识
S913,将m加1。
示例性的,S901~S913可以参照上文中S601~S603,以及S302~S311,在此不再赘述。
示例性的,按照S901~S913进行编码后,对应的解码方法可以参照上文中的S401~S405,和/或,S701~S705,在此不再赘述。
这样,能够适应于网络波动情况,以及图像携带的信息和/或图像编码信息,对每张图像进行灵活的分层编码,进而在网络波动或者待编码图像发生变化时,避免分层过多而造成分层冗余,提高编码效率以及传输效率;且也能够避免分层过少而造成无法得到可传输的较高画质的中间层级,提高视频画质。
一种可能的方式中,分层编码模块的可分层编码决策,可以是先将图像划分为多个图像块,然后在对每个图像块每进行一层编码后,决策是否针对图像块进行下一层的编码。
图10为示例性示出的编码过程示意图。
S1001,获取待编码的第m帧图像。
示例性的,S1001可以参照S301,在此不再赘述。
S1002,将第m帧图像划分为M个图像块。
示例性的,M为正整数。
示例性的,可以按照最大编码单元来将第m帧图像划分为M个图像块,也可以按照其他方式将第m帧图像划分为M个图像块,本申请实施例对此不作限制。
以下分别对M个图像块中每个图像块,决策是否对每个图像块进行下一层编码为例进行说明。
S1003,令q=1。
S1004,确定第q个图像块的信源信息。
S1005,令i=1。
S1006,对第q个图像块进行第i层编码。
S1007,确定第i层的编码信息。
S1008,判断i是否等于L_MAX。
S1009,依据所述信源信息和/或第i层的编码信息,判断是否需要对第q个图像块进行第(i+1)层的编码。
S1010,将i加1。
示例性的,S1004~S1010可以参照上文中的S302~S307,以及S309的描述,在此不再赘述。
S1011,对于第(i+1)层至第L_MAX层之间的每一层,均采用跳过模式对第q个图像块进行编码。
示例性的,当无需对第q个图像块进行第(i+1)层的编码时,为了保证第m帧中每个图像块的编码层数相同,从第(i+1)层开始至第L_MAX层,每一层均采用跳过模式对第q个图像块进行编码。
示例性的,从第(i+1)层开始至第L_MAX层,每一层均采用跳过模式对第q个图像块进行编码,可以是在对第q个图像块进行第(i+1)层至第L_MAX层之间的每一层编码时,编码一跳过标识,作为这一层的码流。
S1012,判断q是否等于M。
示例性的,当i等于L_MAX,或在执行S1011之后,可以判断q是否等于M。当q等于M时,说明第m帧的最后一个图像块被编码完成,此时可以执行S1014。当q小于M时,说明第m帧图像中还存在部分图像块未被编码完成,此时可以执行S1014。
S1013,将q加1。
示例性的,将q加1后,可以返回执行S1004和S1005,即对第m帧图像中的下一个图像块进行编码。
S1014,将m加1。
示例性的,将m加1后,可以返回执行S1001,即对下一帧图像进行编码。
示例性的,按照S1001~S1013对图像进行分层编码后,每帧图像被编码成L_MAX条码流,一条码流对应M个图像块的同一层码流。
示例性的,解码处理模块接收到待解码的码流后,可以对每一条码流进行解码,得到一帧图像对应的一层重建图像。示例性的,由于有些图像块的部分层是采用跳过模式进行编码的,因此解码处理模块在对某一条码流进行解码的过程中,针对该条码流中的每个图像块的码流,若解码到跳过标识,则可以采用针对该图像块进行当前层解码预测得到的预测图像块,作为该图像块的重建图像块;也可以采用该图像块对应的上一层重建图像块,作为该图像块的重建图像块。
例如,M=4,即一帧图像被划分为4个图像块,L_MAX=5,其中,第1个图像块和第4个图像块实际进行了5层编码,第2个图像块实际进行3层编码,第4层和第5层采用跳过模式进行编码的,第3个图像块实际进行4层编码,第5层采用跳过模式进行编码的。这一帧图像对应4条码流,第1条码流包括4个图像块对应的第1层码流,第2条码流包括4个图像块对应的第2层码流,第3条码流包括4个图像块对应的第3层码流,第4条码流包括4个图像块对应的第4层码流,第5条码流包括4个图像块对应的第5层码流。
解码处理模块接收到第1条码流后,对第1条码流进行解码,可以得到该图像对应的第1层的重建图像。解码处理模块接收到第2条码流后,对第2条码流进行解码,可以得到该图像对应的第2层的重建图像。解码处理模块接收到第3条码流后,对第3条码流进行解码,可以得到该图像对应的第3层的重建图像。解码处理模块接收到第4条码流后,可以对第4条码流进行解码。其中,对第1个图像块的第4层码流进行解码,可以得到第1个图像块的第4层重建图像块。对第2个图像块的第4层码流进行解码,得到跳过标识,此时则可以将针对第2个图像块进行第4层解码预测得到的预测图像块,作为第2个图像块的第4层重建图像块(也可以将第2个图像块的第3层的重建图像块,作为第2个图像块的第4层重建图像块)。对第3个图像块的第4层码流进行解码,可以得到第3个图像块的第4层重建图像块。对第4个图像块的第4层码流进行解码,可以得到第4个图像块的第4层重建图像块。进而,可以得到该图像的第4层重建图像。解码处理模块接收到第5条码流后,可以对第5条码流进行解码。其中,对第1个图像块的第5层码流进行解码,可以得到第1个图像块的第5层重建图像块。对第2个图像块的第5层码流进行解码,得到跳过标识,此时则可以将针对第2个图像块进行第5层解码预测得到的预测图像块,作为第2个图像块的第5层重建图像块(也可以将第2个图像块的第4层的重建图像块,作为第2个图像块的第5层重建图像块)。对第3个图像块的第5层码流进行解码,得到跳过标识,此时则可以将针对第3个图像块进行第5层解码预测得到的预测图像块,作为第3个图像块的第5层重建图像块(也可以将第3个图像块的第4层的重建图像块,作为第3个图像块的第5层重建图像块)。对第4个图像块的第5层码流进行解码,可以得到第4个图像块的第5层重建图像块。进而,可以得到该图像的第5层重建图像。
一个示例中,图11示出了本申请实施例的一种装置1100的示意性框图装置1100可包括:处理器1101和收发器/收发管脚1102,可选地,还包括存储器1103。
装置1100的各个组件通过总线1104耦合在一起,其中总线1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线1104。
可选地,存储器1103可以用于前述方法实施例中的指令。该处理器1101可用于执行存储器1103中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置1100可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的编解码方法。
本实施例提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的编解码方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的编解码方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(readonly memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (37)

1.一种编码方法,其特征在于,包括:
获取待编码的图像;
在针对所述图像进行第i层编码后,依据所述图像的信源信息和/或所述第i层的编码信息,对所述图像进行自适应分层编码,其中,i为正整数,所述第i层为基本层或增强层。
2.根据权利要求1所述的方法,其特征在于,所述依据所述图像的信源信息,对所述图像进行自适应分层编码,包括:
当所述信源信息满足第一预设条件,对所述图像进行第(i+1)层编码。
3.根据权利要求1或2所述的方法,其特征在于,所述依据所述第i层的编码信息,对所述图像进行自适应分层编码,包括:
当所述第i层的编码信息满足第二预设条件,对所述图像进行第(i+1)层编码。
4.根据权利要求1所述的方法,其特征在于,所述依据所述图像的信源信息和所述第i层的编码信息,对所述图像进行自适应分层编码,包括:
当所述信源信息不满足第一预设条件,且所述第i层的编码信息不满足第二预设条件,结束对所述图像的编码。
5.根据权利要求2或4所述的方法,其特征在于,所述第一预设条件包括以下至少一种:
空域复杂度大于所述第i层对应的第一复杂度阈值;
时域复杂度大于所述第i层对应的第二复杂度阈值;
时空域复杂度大于所述第i层对应的第三复杂度阈值。
6.根据权利要求5所述的方法,其特征在于,当i大于1时,
所述第i层对应的第一复杂度阈值,大于第(i-1)层对应的第一复杂度阈值;
所述第i层对应的第二复杂度阈值,大于第(i-1)层对应的第二复杂度阈值;
所述第i层对应的第三复杂度阈值,大于第(i-1)层对应的第三复杂度阈值。
7.根据权利要求3或4所述的方法,其特征在于,所述第二预设条件包括以下至少一种:
所述第i层的重建图像的残差信息大于残差阈值;
所述第i层的重建图像的峰值信噪比小于信噪比阈值;
所述第i层的编码量化参数值大于量化阈值;
所述第i层的率失真优化参数值大于失真阈值;
所述第i层的重建图像的主观质量估计值小于主观质量阈值。
8.根据权利要求1至7任一项所述的方法,其特征在于,针对所述图像进行第i层编码得到的码流包括编码状态标识,所述编码状态标识用于指示所述第i层的码流是否为针对所述图像进行最后一层编码得到的码流。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:
在对所述图像进行第i层编码后,根据预设的最大分层数L_MAX,确定是否结束对所述图像的编码。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述编码信息包括以下至少一种:残差图像的残差信息、重建图像的峰值信噪比、编码量化参数值、率失真优化参数值、重建图像的主观质量估计值。
11.根据权利要求1至10任一所述的方法,其特征在于,所述信源信息包括以下至少一种:空域复杂度、时域复杂度、时空域复杂度。
12.一种解码方法,其特征在于,所述方法包括:
获取待解码的码流,所述码流包括编码状态标识;
解析所述码流,从所述解析后的码流中获取所述编码状态标识,以及基于所述解析后的码流进行图像重建,得到重建图像;
若所述编码状态标识为第一预设标识,则将所述重建图像存储至送显缓存区;
若所述编码状态标识为第二预设标识,则将所述重建图像输出至显示模块。
13.根据权利要求12所述的方法,其特征在于,所述第一预设标识用于指示所述码流不是针对所述码流对应的图像进行最后一层编码得到的码流;所述第二预设标识用于指示所述码流是针对所述码流对应的图像进行最后一层编码得到的码流。
14.一种编码方法,其特征在于,所述方法包括:
获取待编码的图像;
依据信道反馈信息,确定所述图像的编码层数L1,其中,L1为正整数;
依据所述编码层数L1,对所述图像进行分层编码。
15.根据权利要求14所述的方法,其特征在于,所述依据信道反馈信息,确定所述图像的编码层数L1,包括:
当所述信道反馈信息满足第三预设条件,从历史帧的编码层数L2至预设的最大分层数L_MAX之间选取L1;
当所述信道反馈信息不满足第三预设条件,从1至所述历史帧的编码层数L2之间选取L1。
16.根据权利要求15所述的方法,其特征在于,所述第三预设条件包括以下至少一种:
当前网络传输带宽评估值与历史网络传输带宽评估值的差值,大于带宽差值阈值;
当前网络传输吞吐量评估值与历史网络传输吞吐量评估值的差值,大于吞吐量阈值;
当前阻塞数据量评估值与历史阻塞数据量评估值的差值,大于数据阻塞阈值;
当前丢包率评估值与历史丢包率评估值的差值,大于丢包率阈值;
当前发送延迟时长评估值与历史发送延迟时长评估值的差值,大于延迟阈值;
当前显示帧率评估值与历史显示帧率评估值的差值,大于显示帧率阈值。
17.根据权利要求14至16任一项所述的方法,其特征在于,所述依据所述编码层数L1,对所述图像进行分层编码,包括:
在对所述图像进行第i层编码后,当所述i小于所述编码层数L1,依据所述图像的信源信息和/或所述第i层的编码信息,对所述图像进行自适应分层编码,其中,i为正整数,所述第i层为基本层或增强层;
当所述i等于所述编码层数L1,结束对所述图像的编码。
18.根据权利要求14至17任一项所述的方法,其特征在于,所述信道反馈信息包括以下至少一种:网络传输带宽评估值、网络传输吞吐量评估值、阻塞数据量评估值、丢包率评估值、发送延迟时长评估值和显示帧率评估值。
19.根据权利要求14至18任一项所述的方法,其特征在于,
所述图像的码流包括所述图像的编码层数L1。
20.一种解码方法,其特征在于,所述方法包括:
获取待解码的码流,所述码流包括层标识;
对所述码流进行解析,从所述解析后的码流中获取所述层标识,以及基于所述解析后的码流进行图像重建,得到的重建图像;
当依据所述层标识,确定所述码流是针对所述码流对应的图像进行最后一层编码得到的码流,将所述重建图像输出至显示模块;
当依据所述层标识,确定所述码流不是针对所述码流对应的图像进行最后一层编码得到的码流,将所述重建图像存储至送显缓存区。
21.一种编码器,其特征在于,
所述编码器,用于获取待编码的图像;在针对所述图像进行第i层编码后,依据所述图像的信源信息和/或所述第i层的编码信息,对所述图像进行自适应分层编码,其中,i为正整数,所述第i层为基本层或增强层。
22.根据权利要求21所述的编码器,其特征在于,
所述编码器,用于当所述信源信息满足第一预设条件,对所述图像进行第(i+1)层编码。
23.根据权利要求21或22所述的编码器,其特征在于,
所述编码器,用于当所述第i层的编码信息满足第二预设条件,对所述图像进行第(i+1)层编码。
24.根据权利要求21所述的编码器,其特征在于,
所述编码器,用于当所述信源信息不满足第一预设条件,且所述第i层的编码信息不满足第二预设条件,结束对所述图像的编码。
25.根据权利要求22或24所述的编码器,其特征在于,所述第一预设条件包括以下至少一种:
空域复杂度信息大于所述第i层对应的第一复杂度阈值;
时域复杂度信息大于所述第i层对应的第二复杂度阈值;
时空域复杂度信息大于所述第i层对应的第三复杂度阈值。
26.根据权利要求23或24所述的编码器,其特征在于,所述第二预设条件包括以下至少一种:
所述第i层的重建图像的残差信息大于残差阈值;
所述第i层的重建图像的峰值信噪比小于信噪比阈值;
所述第i层的编码量化参数值大于量化阈值;
所述第i层的率失真优化参数值大于失真阈值;
所述第i层的重建图像的主观质量估计值小于主观质量阈值。
27.一种解码器,其特征在于,
所述解码器,用于获取待解码的码流,所述码流包括编码状态标识;对所述码流进行解析,从所述解析后的码流中获取所述编码状态标识,以及基于所述解析后的码流进行图像重建,得到重建图像;若所述编码状态标识为第一预设标识,则将所述重建图像存储至送显缓存区;若所述编码状态标识为第二预设标识,则将所述重建图像输出至显示模块。
28.根据权利要求27所述的解码器,其特征在于,
所述第一预设标识用于指示所述码流不是针对所述码流对应的图像进行最后一层编码得到的码流;所述第二预设标识用于指示所述码流是针对所述码流对应的图像进行最后一层编码得到的码流。
29.一种编码器,其特征在于,
所述编码器,用于获取待编码的图像;依据信道反馈信息,确定所述图像的编码层数L1,其中,L1为正整数;依据所述编码层数L1,对所述图像进行分层编码。
30.根据权利要求29所述的编码器,其特征在于,
所述编码器,用于当所述信道反馈信息满足第三预设条件,从历史帧的编码层数L2至预设的最大分层数L_MAX之间选取L1;当所述信道反馈信息不满足第三预设条件,从1至所述历史帧的编码层数L2之间选取L1。
31.根据权利要求30所述的编码器,其特征在于,所述第三预设条件包括以下至少一种:
当前网络传输带宽评估值与历史网络传输带宽评估值的差值,大于带宽差值阈值;
当前网络传输吞吐量评估值与历史网络传输吞吐量评估值的差值,大于吞吐量阈值;
当前阻塞数据量评估值与历史阻塞数据量评估值的差值,大于数据阻塞阈值;
当前丢包率评估值与历史丢包率评估值的差值,大于丢包率阈值;
当前发送延迟时长评估值与历史发送延迟时长评估值的差值,大于延迟阈值;
当前显示帧率评估值与历史显示帧率评估值的差值,大于显示帧率阈值。
32.根据权利要求29至31任一项所述的编码器,其特征在于,
所述编码器,用于在对所述图像进行第i层编码后,当所述i小于所述编码层数L1,依据所述图像的信源信息和/或所述第i层的编码信息,对所述图像进行自适应分层编码,其中,i为正整数,所述第i层为基本层或增强层;当所述i等于所述编码层数L1,结束对所述图像的编码。
33.一种解码器,其特征在于,
所述解码器,用于获取待解码的码流,所述码流包括层标识;对所述码流进行解析,从所述解析后的码流中获取所述层标识,以及基于所述解析后的码流进行图像重建,得到的重建图像;当依据所述层标识,确定所述码流是针对所述码流对应的图像进行最后一层编码得到的码流,将所述重建图像输出至显示模块;当依据所述层标识,确定所述码流不是针对所述码流对应的图像进行最后一层编码得到的码流,将所述重建图像存储至送显缓存区。
34.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1至权利要求20中任一项所述的方法。
35.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1至权利要求20中任一项所述的方法。
36.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序运行在计算机或处理器上时,使得所述计算机或所述处理器执行如权利要求1至权利要求20中任一项所述的方法。
37.一种计算机程序产品,其特征在于,所述计算机程序产品包括软件程序,当所述软件程序被计算机或处理器执行时,使得权利要求1至20任一项所述的方法的步骤被执行。
CN202111003279.5A 2021-08-30 2021-08-30 编解码方法、编码器、解码器及电子设备 Pending CN115733987A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111003279.5A CN115733987A (zh) 2021-08-30 2021-08-30 编解码方法、编码器、解码器及电子设备
PCT/CN2022/113984 WO2023030072A1 (zh) 2021-08-30 2022-08-22 编解码方法、编码器、解码器及电子设备
EP22863211.3A EP4380155A1 (en) 2021-08-30 2022-08-22 Encoding and decoding method, encoder, decoder, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111003279.5A CN115733987A (zh) 2021-08-30 2021-08-30 编解码方法、编码器、解码器及电子设备

Publications (1)

Publication Number Publication Date
CN115733987A true CN115733987A (zh) 2023-03-03

Family

ID=85290720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111003279.5A Pending CN115733987A (zh) 2021-08-30 2021-08-30 编解码方法、编码器、解码器及电子设备

Country Status (3)

Country Link
EP (1) EP4380155A1 (zh)
CN (1) CN115733987A (zh)
WO (1) WO2023030072A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116193242B (zh) * 2023-04-24 2023-07-14 北京城建智控科技股份有限公司 一种摄像装置图像解析与传输方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995007004A1 (en) * 1993-08-30 1995-03-09 Sony Corporation Device and method for encoding image data
FR2880743A1 (fr) * 2005-01-12 2006-07-14 France Telecom Dispositif et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'image correspondants
KR20140122191A (ko) * 2013-04-05 2014-10-17 삼성전자주식회사 멀티 레이어 비디오 부호화 방법 및 장치, 멀티 레이어 비디오 복호화 방법 및 장치
US10045041B2 (en) * 2013-04-05 2018-08-07 Intel Corporation Techniques for inter-layer residual prediction
JP6329246B2 (ja) * 2014-03-14 2018-05-23 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 画像復号装置
CN109600617B (zh) * 2018-12-19 2020-07-21 北京东土科技股份有限公司 视频数据的编码、转发方法、装置、设备及存储介质
CN113015003B (zh) * 2021-03-08 2022-11-25 展讯通信(上海)有限公司 视频帧缓存方法和设备

Also Published As

Publication number Publication date
EP4380155A1 (en) 2024-06-05
WO2023030072A1 (zh) 2023-03-09

Similar Documents

Publication Publication Date Title
CN112040233B (zh) 视频编码、视频解码方法和装置、电子设备及存储介质
US20090041130A1 (en) Method of transmitting picture information when encoding video signal and method of using the same when decoding video signal
CN112351285B (zh) 视频编码、解码方法和装置、电子设备和存储介质
CA3238672A1 (en) Method and apparatus for configuring transform for video compression
CN103200400A (zh) 一种图像层和分片层的编解码方法、编解码器和电子设备
CN112333448A (zh) 视频编码、解码方法和装置、电子设备和存储介质
WO2023142716A1 (zh) 编码方法、实时通信方法、装置、设备及存储介质
WO2021057697A1 (zh) 视频编解码方法和装置、存储介质及电子装置
WO2023030072A1 (zh) 编解码方法、编码器、解码器及电子设备
CN113132728B (zh) 编码方法及编码器
CN110545433B (zh) 视频编解码方法和装置及存储介质
CN110572672B (zh) 视频编解码方法和装置、存储介质及电子装置
CN110582022B (zh) 视频编解码方法和装置及存储介质
CN110572677B (zh) 视频编解码方法和装置、存储介质及电子装置
WO2023169424A1 (zh) 编解码方法及电子设备
WO2023169426A1 (zh) 编解码方法及电子设备
CN110677653A (zh) 视频编解码方法和装置及存储介质
CN115866297A (zh) 视频处理方法、装置、设备及存储介质
CN110677721B (zh) 视频编解码方法和装置及存储介质
CN110572674B (zh) 视频编解码方法和装置、存储介质及电子装置
CN112543324B (zh) 视频解码方法、编码方法、编解码器及存储介质
CN114222127A (zh) 一种视频编码方法、视频解码方法及装置
CN106060553A (zh) 基于感兴趣区域的时域可分级编码装置及其方法
CN111212288A (zh) 视频数据的编解码方法、装置、计算机设备和存储介质
CN110636293A (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