CN115733986A - 编码、封装及显示方法、装置及电子设备 - Google Patents

编码、封装及显示方法、装置及电子设备 Download PDF

Info

Publication number
CN115733986A
CN115733986A CN202111003288.4A CN202111003288A CN115733986A CN 115733986 A CN115733986 A CN 115733986A CN 202111003288 A CN202111003288 A CN 202111003288A CN 115733986 A CN115733986 A CN 115733986A
Authority
CN
China
Prior art keywords
image
scale
coding
frame
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
CN202111003288.4A
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 CN202111003288.4A priority Critical patent/CN115733986A/zh
Priority to PCT/CN2022/113966 priority patent/WO2023030070A1/zh
Publication of CN115733986A publication Critical patent/CN115733986A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • 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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • 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/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution

Landscapes

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

Abstract

本申请实施例提供了一种编码、封装及显示方法、装置及电子设备。该编码方法包括:获取待编码的图像。接着,确定针对图像的编码尺度N(N为大于1的整数),以及确定N种编码尺度中每种编码尺度对应的编码参数,得到N组编码参数。随后,根据N组编码参数,采用预先设置的单尺度编码器对图像进行N次编码,以得到N组码流数据。这样,针对该图像进行编码,能够得到数据量较小的码流数据(也就是低编码尺度的码流数据),进而在网络波动时,图像的码流数据能够具有更高的概率到达解码端,从而保证视频播放的流畅性。而对于高编码尺度的码流数据,如果丢失,不会影响播放端的正常解码播放,不产生花屏;如果能够到达解码端,也能提升播放的画质。

Description

编码、封装及显示方法、装置及电子设备
技术领域
本申请实施例涉及通信领域,尤其涉及一种编码、封装及显示方法、装置及电子设备。
背景技术
目前,比如视频会议,视频电话,在线教育等业务,除了对视频的画质、流畅度有要求外,对端到端时延的也要较高的要求,以保证接收端能够流畅的播放视频。
在实际场景中,网络波动是常态;而网络波动势必会影响视频播放的流畅性,降低用户体验。因此,如何解决网络波动造成的视频播放流畅性差,是亟待解决的问题之一。
发明内容
为了解决上述技术问题,本申请提供一种编码、封装及显示方法、装置及电子设备,以解决网络波动导致视频播放卡顿的问题,提高视频播放的流畅性。
第一方面,本申请实施例提供一种编码方法,该方法包括:获取待编码的图像。接着,确定针对图像的编码尺度N(N为大于1的整数),以及确定N种编码尺度对应的N组编码参数,其中,每种编码尺度对应一组编码参数。随后,根据N组编码参数,采用预先设置的单尺度编码器对图像进行N次编码,以得到N组码流数据。这样,针对该图像进行编码,能够得到数据量较小的码流数据(也就是低编码尺度的码流数据),进而在网络波动时,图像的码流数据能够具有更高的概率到达解码端,从而保证视频播放的流畅性。而对于高编码尺度的码流数据,如果丢失,不会影响播放端的正常解码播放,不产生花屏;如果能够到达解码端,也能提升播放的画质。
示例性的,单尺度编码器可以是指仅能对图像进行一种编码尺度编码,且仅输出一种编码尺度的码流数据的编码器,如H.264编码器,H.265编码器,或者H.266编码器,AVS3编码器,AV1编码器等,以及根据编码技术的发展在未来可以实现的类似的单尺度编码器,本申请实施例对此不作限制。示例性的,单尺度编码器可以是软件编码器,也可以是硬件编码器,本申请实施例对此不作限制。
示例性的,图像可以是帧(Frame),也可以是场(Field)。其中,当采样视频信号时,如果是通过逐行扫描,那么得到的信号就是一帧图像。当采样视频信号时,如果是通过隔行扫描(奇、偶数行),那么一帧图像就被分成了两场。示例性的,本申请实施例以采集到的图像为帧为例进行示例性说明。
示例性的,编码的图像可以是完整的帧,也可以是帧中的部分区域,例如编码过程中对帧进行分块得到的图像块,或者纹理信息丰富的局部区域或用户感兴趣的局部区域或者其他重点区域等。
根据第一方面,该方法还包括:根据图像对所属视频数据中其他图像的编解码重要程度满足第一预设条件,和/或,图像对应的码流数据对网络的冲击程度满足第二预设条件,和/或,图像的预测画质满足第三预设条件,确定需要对图像进行多尺度编码。当确定需要对图像进行多尺度编码时,确定针对图像的编码尺度N。这样,通过结合每帧图像对应码流数据对于编解码的重要程度,对网络的冲击程度,以及图像编码后的画质,能够动态且准确的确定出视频流中需要多尺度编码的图像。
示例性的,当确定无需对图像进行多尺度编码时,可以对图像进行单尺度编码。这样,能降低编码器的计算量,提高编码效率。
根据第一方面,或者以上第一方面的任意一种实现方式,第一预设条件包括以下至少一种:图像是I帧或IDR帧;图像是场景切换帧;图像是参考帧;图像是关键帧。这样,能够实现对对于编解码重要的图像进行多尺度编码,当对于编解码重要的图像的最小编码尺度的码流数据到达解码端后,能够保证视频数据的中其它帧能够成功解码,从而保证播放的流畅性。而对于编解码不重要的图像不进行多尺度编码,如果对应的码流数据丢失,对于其他帧的图像重建影响较小,对用户观看影响也比较小。
示例性的,I帧与IDR帧均是指采用帧内编码方式编码的帧。
示例性的,参考帧是指编码器对某一帧进行编码所参考的帧,或者解码器对某一帧进行图像重建所参考的帧。
示例性的,关键帧是指被大于预设数量阈值的帧作为参考帧的帧。其中,预设数量阈值可以按照需求设置,本申请实施例对此不作限制。
示例性的,场景切换帧是场景切换后,切换后的场景的第一帧图像。
示例性的,非参考帧是指除参考帧之外的帧。
根据第一方面,或者以上第一方面的任意一种实现方式,第二预设条件包括以下至少一种:图像对应码流数据的数据量,大于预设数据量阈值;图像对应码流数据的数据量,大于网络传输能力。这样,对网络冲击力较大的图像进行多尺度编码,能够编码得到数据量较小的码流数据,进而,当网络波动时,能够提高图像的码流数据到达解码端的成功率,保证解码端视频播放的流畅性。
示例性的,图像对应码流数据的数据量是图像经过单尺度编码器编码后的码流数据量。
示例性的,图像对应码流数据的数据量是通过对图像进行分析,预测得到的码流数据量。
根据第一方面,或者以上第一方面的任意一种实现方式,图像的预测画质包括第一预测画质和第二预测画质,第一预测画质是预测的图像按照图像的源分辨率进行编码的画质,第二预测画质是预测的图像按照低于源分辨率的分辨率进行编码的画质;第三预设条件包括:第一预测画质低于或等于第二预测画质。这样,能够减少低码率时的块效应,提升画质。且对于低分辨率图像的编码,能够降低编码器的计算量,提高编码效率。此外,对低分辨率图像进行编码,能够降低码流数据的码率,进一步提高码流数据传输到解码端的成功率。
根据第一方面,或者以上第一方面的任意一种实现方式,编码参数包括以下至少一种:分辨率、量化参数、参考帧信息、目标码率。
示例性的,分辨率是指输入至编码器的图像的分辨率。
示例性的,量化参数是指编码器对图像进行编码的编码量化参数。量化参数决定图像编码后的质量失真程度,量化参数越大,图像编码后相对于源图像失真程度越大;量化参数小,图像编码后相对于源图像失真程度越严重小。
示例性的,参考帧信息用于指示参考帧,参考帧信息可以是参考帧进入编码器的序号(也叫做POC(Picture Order Count,图像序列号)号),也可以是参考帧和编码器当前编码图像的距离(该距离是参考帧进入编码器的序号与当前编码图像进入编码器的序号的差值)。
示例性的,参考帧进入编码器的序号,可以按照参考帧进入编码器的顺序确定。例如,采集到2帧图像,针对第1帧图像的编码尺度N=2,针对第2帧图像的编码尺度N=2。将第1帧图像和第1帧图像对应的第1组编码参数输入至编码器后,对于编码器而言,输入了第一帧图像,这一帧图像的POC=1。将第1帧图像和第1帧图像的第2组编码参数输入至编码器后,对于编码器而言,输入了第二帧图像,输入的这一帧图像的POC=2。将第2帧图像和第2帧图像的第1组编码参数输入至编码器后,对于编码器而言,输入了第三帧图像,输入的这一帧图像的POC=3,以此类推。
示例性的,目标码率是指期望的图像编码后的码率。
根据第一方面,或者以上第一方面的任意一种实现方式,确定针对图像的编码尺度N,包括:根据图像的图像类型,以及预先设定的图像类型与编码尺度的对应关系,确定编码尺度N。这样,能够根据图像对于编解码的重要程度确定编码尺度,对于重要程度高的图像,可以设置的更多的编码尺度,进而能够更多高编码尺度的码流数据传输到解码端的成功率,从而能够提高依赖重要程度高的图像进行解码的其他帧的质量。
示例性的,图像类型可以是指帧类型。
根据第一方面,或者以上第一方面的任意一种实现方式,确定针对图像的编码尺度N,包括:根据预先针对图像所属视频数据中各图像设置的编码尺度,确定针对图像的编码尺度N。这样,可以提高确定编码尺度N的效率,从而缩短图像的码流数据到达解码端的时长。
根据第一方面,或者以上第一方面的任意一种实现方式,确定N种编码尺度对应的N组编码参数,包括:根据编码尺度N和编码器的参数取值范围,确定N组编码参数。这样,能够适应于不同的单尺度编码器的参数,设置编码参数。
根据第一方面,或者以上第一方面的任意一种实现方式,确定N种编码尺度对应的N组编码参数,包括:
根据预先针对不同的N值设置的编码参数,确定N种编码尺度对应的N组编码参数。
根据第一方面,或者以上第一方面的任意一种实现方式,编码参数包括参考帧信息,当接收到第一反馈信息,根据第一反馈信息确定参考帧信息,第一反馈信息指示已发送码流数据对应的编码帧被成功接收,编码帧被确认为参考帧,参考帧信息用于指示参考帧。这样,可以将成功传输至解码端的编码帧作为参考帧,保证图像解码的成功率。且可以保证有某一编码帧的码流数据丢失时,只影响本编码帧的解码和显示,不影响其他编码帧的解码和显示,限制了数据丢失对解码显示的影响。
示例性的,编码帧可以是指进入编码器的每一帧图像。
根据第一方面,或者以上第一方面的任意一种实现方式,编码参数包括参考帧信息,参考帧信息可以是预先设置的。
根据第一方面,或者以上第一方面的任意一种实现方式,编码参数包括分辨率,当编码器支持多分辨率的编码时,根据N组编码参数,采用预先设置的单尺度编码器对图像进行N次编码中的第i次编码,包括:当第i组编码参数中的分辨率等于图像的源分辨率时,将第i组编码参数和图像输入预先设置的单尺度编码器以进行编码;当第i组编码参数中的分辨率小于图像的源分辨率时,将图像下采样到第i组编码参数中的分辨率,将第i组编码参数和下采样之后的图像输入预先设置的单尺度编码器以进行编码;其中,第i次编码对应的编码参数为第i组编码参数,i为1至N之间的任一整数。这样,能够实现采用支持多分辨编码的单尺度编码器,进行多尺度编码。
根据第一方面,或者以上第一方面的任意一种实现方式,编码参数包括分辨率,分辨率包括源分辨率和目标编码分辨率,当编码器支持多分辨率的编码时,根据N组编码参数,采用预先设置的单尺度编码器对图像进行N次编码中的第i次编码,包括:当图像的源分辨率等于目标编码分辨率时,采用预先设置的单尺度编码器编码对图像进行第i次编码;当图像的源分辨率大于目标分辨率时,采用预先设置的单尺度编码器按照目标编码分辨率对图像进行下采样,对下采样后的图像进行编码。
根据第一方面,或者以上第一方面的任意一种实现方式,编码参数包括分辨率,当编码器仅支持一种分辨率的编码时,根据N组编码参数,采用预先设置的单尺度编码器对图像进行N次编码,包括:针对最低分辨率编码尺度,按照最低分辨率编码尺度对应的编码参数中的分辨率对图像进行下采样,得到下采样图像img_DW1;将最低分辨率编码尺度对应的编码参数和下采样图像img_DW1,输入至与最低分辨率编码尺度对应的编码参数中分辨率对应的编码器中进行编码;针对其他分辨率编码尺度,按照其他分辨率编码尺度中一种编码尺度对应的编码参数中的分辨率,对下采样图像img_DW1进行上采样,得到上采样图像img_UP1;按照其他分辨率编码尺度中一种编码尺度对应的编码参数中的分辨率,对图像进行下采样,得到下采样图像img_DW2;确定下采样图像img_D2和上采样图像img_UP1的差值图像;将其他分辨率编码尺度中一种编码尺度对应的编码参数和差值图像,输入至与其他分辨率编码尺度中一种编码尺度对应的编码参数中分辨率对应的编码器中进行编码。这样,能够实现采用多个仅支持一种分辨率的编码器进行多尺度编码。且对于除最低编码尺度外的其他编码尺度,基于最低编码尺度的编码的图像进行编码,能够降低其他编码尺度的计算量,提高编码效率。
第二方面,本申请实施例提供一种数据封装方法,该方法包括:获取编码器对图像进行编码得到的码流数据,以及码流数据的描述信息;随后,将码流数据和码流数据的描述信息进行封装,得到封装后的数据,以存储和/或传输封装后的数据。这样,可以便于传输设备根据描述信息确定码流数据的传输策略,以及便于解码端根据描述信息进行重建图像的显示决策。
根据第二方面,描述信息包括尺度标识信息,该方法还包括:依据尺度标识信息,确定码流数据对应的编码尺度为最低编码尺度时,确定码流数据的传输策略为第一传输策略;依据尺度标识信息,确定码流数据对应的编码尺度为其他编码尺度时,确定码流数据的传输策略为第二传输策略;其中,第一传输策略优于第二传输策略。这样,可以优先传输最低编码尺度的码流数据,保证视频播放的流畅性。
示例性的,第一传输策略可以包括以下至少一种:采用服务质量高于第一预设服务质量的传输信道进行传输,重传数据且重传次数大于第一预设重传次数,将数据的冗余度增加至大于第一冗余阈值,对数据进行FEC(ForwardError Correction,数据包的前向纠错)。
示例性的,第二传输策略可以包括以下至少一种:采用服务质量低于或等于第一预设服务质量的传输信道的进行传输,不重传数据,重传数据且重传次数小于或等于第一预设重传次数,不增加数据的冗余度,将数据的冗余度增加至小于或等于第一冗余阈值,发送前丢弃数据。
根据第二方面,或者以上第二方面的任意一种实现方式,描述信息包括帧类型,该方法还包括:确定码流数据对应的帧类型为预设帧类型时,确定码流数据的传输策略为第三传输策略;确定码流数据对应的帧类型为非预设帧类型时,确定码流数据的传输策略为第四传输策略;其中,第三传输策略优于第四传输策略。其中,预设帧类型包括以下至少一种:I帧、IDR帧、关键帧、参考帧和场景切换帧。这样,可以优先传输对编解码比较重要的帧的码流数据,以提高其他帧解码的成功率,从而保证接收设备的用户观看视频的流畅性。
示例性的,第三传输策略可以包括以下至少一种:采用服务质量高于第二预设服务质量的传输信道进行传输,重传数据且重传次数大于第二预设重传次数,将数据的冗余度增加至大于第二冗余阈值,对数据进行FEC。
示例性的,第四传输策略可以包括以下至少一种:采用服务质量低于或等于第二预设服务质量的传输信道的进行传输,不重传数据,重传数据且重传次数小于或等于第二预设重传次数,不增加数据的冗余度,将数据的冗余度增加至小于或等于第二冗余阈值,发送前丢弃数据。
根据第二方面,或者以上第二方面的任意一种实现方式,描述信息包括以下至少一种:尺度标识信息、帧类型、帧标识信息。
示例性的,帧标识信息可以包括任一可以指向某一帧图像的标识,如帧号、显示时间(采集的图像对应的呈现时间)等。
第三方面,本申请实施例提供了一种显示方法,包括;获取解码器对码流数据进行解码得到的多个重建图像,以及获取多个重建图像的多组描述信息,其中,每个重建图像对应一组描述信息,多组描述信息中的至少一组描述信息包括第一帧标识信息;若多组描述信息中仅存在一组描述信息包括第一帧标识信息,则选择第一帧标识信息对应的重建图像进行显示;若多组描述信息中存在至少两组描述信息包括第一帧标识信息,则从第一帧标识信息对应的至少两个重建图像中选取一个重建图像,显示选取的重建图像。这样,能够针对每一帧选择一种编码尺度的重建图像进行显示。
根据第三方面,或者以上第三方面的任意一种实现方式,描述信息还包括尺度标识信息,从第一帧标识信息对应的多个重建图像中选取一个重建图像,包括:依据第一帧标识信息对应重建图像的尺度标识信息,选择编码尺度最高的重建图像。其中,编码尺度越高,图像越优,这样,在向用户展示每帧时,均展示最优的图像。
根据第三方面,或者以上第三方面的任意一种实现方式,描述信息还包括尺度标识信息,从第一帧标识信息对应的多个重建图像中选取一个重建图像,包括:依据第一帧标识信息对应重建图像的尺度标识信息,选择尺度标识信息与之前显示的重建图像的尺度标识信息最接近的重建图像。这样,可以降低相邻帧的差异,保证用户观看每帧视频的视觉流畅性。
根据第三方面,或者以上第三方面的任意一种实现方式,描述信息通过对接收到的数据进行解封装得到,其中,对接收到的数据进行解封装的数据还包括码流数据。
第四方面,本申请实施例提供一种多尺度编码装置,多尺度编码装置包括前置处理模块和单尺度编码器,前置处理模块,用于获取待编码的图像;确定针对图像的编码尺度N,其中,N为大于1的整数;确定N种编码尺度对应的N组编码参数,其中,每种编码尺度对应一组编码参数;将N组编码参数和图像输入至单尺度编码器;单尺度编码器,用于根据N组编码参数,采用预先设置的单尺度编码器对图像进行N次编码,以得到N组码流数据。
根据第四方面,前置处理模块,用于根据图像对所属视频数据中其他图像的编解码重要程度满足第一预设条件,和/或,图像对应的码流数据对网络的冲击程度满足第二预设条件,和/或,图像的预测画质满足第三预设条件,确定需要对图像进行多尺度编码。
根据第四方面,或者以上第四方面的任意一种实现方式,第一预设条件包括以下至少一种:
图像是I帧或IDR帧;
图像是场景切换帧;
图像是参考帧;
图像是关键帧。
根据第四方面,或者以上第四方面的任意一种实现方式,第二预设条件包括以下至少一种:
图像对应码流数据的数据量,大于预设数据量阈值;
图像对应码流数据的数据量,大于网络传输能力。
根据第四方面,或者以上第四方面的任意一种实现方式,图像的预测画质包括第一预测画质和第二预测画质,第一预测画质是预测的图像按照图像的源分辨率进行编码的画质,第二预测画质是预测的图像按照低于源分辨率的分辨率进行编码的画质;第三预设条件包括:第一预测画质低于或等于第二预测画质。
根据第四方面,或者以上第四方面的任意一种实现方式,前置处理模块,用于根据图像的图像类型,以及预先设定的图像类型与编码尺度的对应关系,确定编码尺度N。
根据第四方面,或者以上第四方面的任意一种实现方式,前置处理模块,用于根据编码尺度N和编码器的参数取值范围,确定N组编码参数。
根据第四方面,或者以上第四方面的任意一种实现方式,编码参数包括参考帧信息,当接收到第一反馈信息,根据第一反馈信息确定参考帧信息,第一反馈信息指示已发送码流数据对应的编码帧被成功接收,编码帧被确认为参考帧,参考帧信息用于指示参考帧。
第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请实施例公开了一种数据封装装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的同步方法。
第五方面以及第五方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第六方面,本申请实施例公开了一种数据封装装置,多尺度解码装置包括解码器和后置处理模块,解码器,用于对码流数据进行解码得到的多个重建图像,将多个重建图像输入至后置处理模块;后置处理模块,用于获取解码器对码流数据进行解码得到的多个重建图像,以及获取多个重建图像的多组描述信息,每个重建图像对应一组描述信息,多组描述信息中的至少一组描述信息包括帧标识信息;若多组描述信息中仅存在一组描述信息包括第一帧标识信息,则选择第一帧标识信息对应的重建图像输入至显示模块进行显示;若多组描述信息中存在至少两组描述信息包括第一帧标识信息,则从第一帧标识信息对应的至少两个重建图像中选取一个重建图像,以及将选取的重建图像输入至显示模块进行显示。
第六方面以及第六方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第七方面,本申请实施例提供一种电子设备,包括:上述第四方面的多尺度编码装置和上述第五方面的数据封装装置。
第八方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第八方面以及第八方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第八方面以及第八方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第九方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的数据封装方法。
第九方面以及第九方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第九方面以及第九方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的显示方法。
第十方面以及第十方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十方面以及第十方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十一方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第十一方面以及第十一方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第十一方面以及第十一方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十二方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的数据封装方法。
第十二方面以及第十二方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十二方面以及第十二方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十三方面,本申请实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第三四方面或第三方面的任意可能的实现方式中的显示方法。
第十三方面以及第十三方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十三方面以及第十三方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十四方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的编码方法。
第十四方面以及第十四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第十四方面以及第十四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十五方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第二方面或第二方面的任意可能的实现方式中的数据封装方法。
第十五方面以及第十五方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十五方面以及第十五方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十六方面,本申请实施例提供一种计算机存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第三方面或第三方面的任意可能的实现方式中的显示方法。
第十六方面以及第十六方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十六方面以及第十六方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十七方面,本申请实施例提供一种计算机程序产品,计算机程序产品包含软件程序,当软件程序被计算机或处理器执行时,使得第一方面或第一方面的任意可能的实现方式中的步骤被执行。
第十七方面以及第十七方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第十七方面以及第十七方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十八方面,本申请实施例提供一种计算机程序产品,计算机程序产品包含软件程序,当软件程序被计算机或处理器执行时,使得第二方面或第二方面的任意可能的实现方式中的步骤被执行。
第十八方面以及第十八方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十八方面以及第十八方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十九方面,本申请实施例提供一种计算机程序产品,其特征在于,计算机程序产品包含软件程序,当软件程序被计算机或处理器执行时,使得第三方面或第三方面的任意可能的实现方式中的步骤被执行。
第十九方面以及第十九方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十九方面以及第十九方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1为示例性示出的应用场景示意图;
图2为示例性示出的场景示意图;
图3a为示例性示出的处理过程示意图;
图3b为示例性示出的参考帧选取示意图;
图4a为示例性示出的数据处理示意图;
图4b为示例性示出的数据处理示意图;
图4c为示例性示出的数据处理示意图;
图5a为示例性示出处理过程示意图;
图5b为示例性示出的编码示意图;
图6a为示例性示出处理过程示意图;
图6b为示例性示出的处理过程示意图;
图7a为示例性示出了的设备结构示意图;
图7b为示例性示出的处理过程示意图;
图7c为示例性示出的处理过程示意图;
图8为示例性示出的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,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,示例性的,多尺度编码模块可以包括前置处理模块和编码器。
示例性的,前置处理模块可以用于多尺度编码决策,编码器可以用于编码。
需要说明的是,多尺度编码模块包含的编码器是单尺度编码器,单尺度编码器可以是指仅能对图像进行一种编码尺度编码,且仅输出一种编码尺度的码流数据的编码器,如H.264编码器,H.265编码器,或者H.266编码器,AV1编码器,AVS3编码器等,本申请实施例对此不作限制。示例性的,单尺度编码器可以是软件编码器,也可以是硬件编码器,本申请实施例对此不作限制。
示例性的,可以在包含单尺度编码器的发送设备中新增一前置处理模块(即在发送设备中写入前置处理模块对应程序代码),即可以得到多尺度编码模块,从而实现采用现有的单尺度编码器实现多尺度编码。
由于现有技术中的多尺度编码器(如SVC(ScalableVideo Coding,可伸缩视频编码)编码器、SHVC(Scalable High efficiencyVideo Coding,可伸缩高效视频编码)编码器)等成本比较高,而目前大多数电子设备中的编码器均是单尺度编码器,因此使用上述描述的方法,可以在不支持多尺度编码的电子设备中,实现多尺度的编解码,无需增加成本。
继续参照图2,示例性的,发送模块可以包括数据封装模块和数据发送模块。示例性的,数据封装模块用于封装数据,数据发送模块用于发送封装后的数据。
继续参照图2,示例性的,多尺度解码模块可以包括解码器和后置处理模块。示例性的,解码器用于解码,后置处理模块用于显示决策。
示例性的,解码器可以是单尺度解码器,单尺度解码器可以是指仅能对一种编码尺度的码流数据进行解码的,解码后产生唯一重建图像的解码器,如H.264解码器,H.265解码器,或者H.266解码器,AV1解码器,AVS3解码器等,本申请实施例对此不作限制。示例性的,单尺度解码器可以是软件解码器,也可以是硬件解码器,本申请实施例对此不作限制。
示例性的,可以在包含单尺度解码器的接收设备中新增一后置处理模块(即在发送设备中写入后置处理模块对应程序代码),即可以得到多尺度解码模块,从而实现采用现有的单尺度解码器实现多尺度解码。
由于现有技术中,支持多尺度解码的解码器(如SVC解码器、SHVC解码器)的成本较高,而目前大多数电子设备中的解码器均是单尺度解码器,因此使用上述描述的方法,可以在不支持多尺度编解码的电子设备中,实现多尺度的解码,无需增加成本。
继续参照图2,示例性的,接收模块包括数据接收模块和数据解析模块。示例性的,数据接收模块用于接收数据,数据解析模块用于解析数据。
继续参照图2,示例性的,图像采集模块采集图像后,可以向前置处理模块输出采集到的图像。示例性的,在视频业务场景中,图像采集模块可以按照设定的视频采样率采集图像,得到视频业务场景对应的视频数据。示例性的,图像采集模块可以按照设定间隔(设定间隔可以按照需求设置)将图像传入前置处理模块,也可以在每采集到一帧图像后再向前置处理模块传入一帧图像,本申请实施例对此不作限制。本申请实施例以视频数据中的一帧图像为例进行示例性说明。
示例性的,前置处理模块可以判断是否需要对图像进行多尺度编码,确定需要对图像进行多尺度编码时,确定针对图像的编码尺度N(N为大于1的正整数),以及确定N种编码尺度对应的N组编码参数,其中,每一种编码尺度对应一种编码参数(也就是确定N种编码尺度中每种编码尺度对应的编码参数)。然后,前置处理模块可以指示编码器按照N组编码参数,对图像进行N次编码,可以得到N组码流数据,每组码流数据对应一种编码尺度。其中,前置处理模块判断是否需要对图像进行多尺度编码的方式,确定编码尺度N的方式,以及确定编码参数的方式,均在后续进行说明。
示例性的,编码参数可以包括以下至少一种:分辨率、量化参数、参考帧信息、目标码率。其中,量化参数和目标码率可以通过相互转换得到,因此,当编码参数包含多种参数时,编码参数可以仅包含量化参数和目标码率中的一种。
示例性的,分辨率可以包括:源分辨率和/或目标编码分辨率。
示例性的,源分辨率是指输入至编码器的图像的分辨率。
示例性的,目标编码分辨率是指图像编码后能够重建的图像的分辨率,或者是编码器实际编码的分辨率。
应当理解的是,源分辨率和目标编码分辨率相同时,可以只输入其中一个。
示例性的,量化参数是指编码器对图像进行编码的编码量化参数。量化参数决定图像编码后的质量失真程度,量化参数越大,图像编码后相对于源图像失真程度越大;量化参数小,图像编码后相对于源图像失真程度越严重小。
示例性的,参考帧可以是编码器对某一帧进行编码所参考的帧,或者解码器对某一帧进行图像重建所参考的帧。参考帧信息用于指示参考帧,可以包括帧标识、尺度标识信息等。其中,帧标识可以包括任一可以指向某一帧图像的标识,如帧号、显示时间(采集的图像对应的呈现时间)。尺度标识信息用于唯一标识一种编码尺度。
示例性的,目标码率是指期望的图像编码后的码率。
应当理解的是,编码参数还可以包括其他参数如目标质量,本申请对此不作限制。示例性的,目标质量是指期望的图像编码后的质量,例如,目标质量可以包括但不限于:目标PSNR(Peak Signal to Noise Ratio,峰值信噪比),目标MSE(Mean Squared Error),均方误差),SSIM(Structural SIMilarity,结构相似性),或者VMAF(Video MultimethodAssessmentFusion,视频多方法评估)等。
示例性的,前置处理模块在确定编码参数后,可以将编码参数和图像传入编码器。示例性的,前置处理模块可以每次将图像和一组编码参数传入编码器进行编码,直至将N组编码参数传入编码器为止。
示例性的,前置处理模块确定无需对图像进行多尺度编码时,可以确定单尺度编码的编码参数,然后指示编码器按照单尺度编码的编码参数,对图像进行单尺度编码,可以得到一组码流数据。
示例性的,编码器在接收到编码参数和图像后,可以按照该编码参数,对图像进行编码,得到码流数据,然后将码流数据传入数据封装模块。
示例性的,前置处理模块还可以确定图像的描述信息。其中,描述信息可以包括多种信息,包括但不限于:尺度标识信息,帧标识、帧类型。应当理解的是,描述信息还可以包括其他信息,本申请对此不作限制。
示例性的,帧类型可以包括但不限于:I/IDR帧(Intra frame,帧内编码帧),关键帧,场景切换帧,参考帧,非参考帧。
示例性的,I/IDR帧是指采用帧内编码方式编码的帧。
示例性的,关键帧是指被大于预设数量阈值的帧作为参考帧的帧。其中,预设数量阈值可以按照需求设置,本申请实施例对此不作限制。
示例性的,场景切换帧是场景切换后,切换后的场景的第一帧图像。
示例性的,非参考帧是指除参考帧之外的帧。
示例性的,针对一帧进行了多尺度编码的图像,前置处理模块确定每组编码参数后,可以将该组编码参数对应编码尺度的尺度标识信息,该图像的帧标识和帧类型,作为该图像在该种编码尺度上的描述信息。也就是说,针对进行了多尺度编码的图像,前置处理模块对应可以生成N组描述信息,每组描述信息对应一种编码尺度,N组描述信息有相同的帧标识信息。
示例性的,针对一帧进行了单尺度编码的图像,前置处理模块可以将该图像的帧标识和帧类型,作为该图像的描述信息。应当理解的是,前置处理模块也可以将单尺度对应编码尺度的尺度标识信息、该图像的帧标识和帧类型,作为该图像的描述信息,本申请实施例对此不作限制。
示例性的,针对一帧进行了多尺度编码的图像,数据封装模块可以将第i组描述信息和第i组码流数据进行封装,得到该图像在第i种编码尺度上封装后的码流数据和描述信息。其中,i为小于或等于N的正整数。
示例性的,针对一帧进行了单尺度编码的图像,前置处理模块可以将该图像的描述信息和码流数据进行封装,得到该图像对应的封装后的码流数据和描述信息。
示例性的,一种可能方式中,数据封装模块可以将封装后的码流数据和描述信息,直接传入数据发送模块。另一种可能的方式中,数据封装模块还可以将封装后的码流数据和描述信息进行存储。
示例性的,数据封装模块还可以依据描述信息确定封装后的码流数据和描述信息的传输策略;然后在将封装后的码流数据和描述信息发送给数据发送模块的同时,将对应的传输策略发送给数据发送模块。
示例性的,数据封装模块依据尺度标识信息确定码流数据对应的编码尺度为最低编码尺度时,确定码流数据的传输策略为第一传输策略;依据尺度标识信息确定码流数据对应的编码尺度为其他编码尺度时,确定码流数据的传输策略为第二传输策略;其中,第一传输策略优于第二传输策略。这样,可以优先传输最低编码尺度的码流数据,以提高最低编码尺度的码流数据传输至接收设备的成功率,从而保证接收设备的用户观看视频的流畅性。
示例性的,第一传输策略可以包括以下至少一种:采用服务质量高于第一预设服务质量的传输信道进行传输,重传数据且重传次数大于第一预设重传次数,将数据的冗余度增加至大于第一冗余阈值,对数据进行FEC(Forward Error Correction,数据包的前向纠错)。
示例性的,第二传输策略可以包括以下至少一种:采用服务质量低于或等于第一预设服务质量的传输信道的进行传输,不重传数据,重传数据且重传次数小于或等于第一预设重传次数,不增加数据的冗余度,将数据的冗余度增加至小于或等于第一冗余阈值,发送前丢弃数据。
其中,第一预设服务质量,第一预设重传次数,第一冗余阈值,均可以按照需求设置,本申请实施例对此不作限制。
示例性的,数据封装模块确定码流数据对应的帧类型为预设帧类型时,确定码流数据的传输策略为第三传输策略;确定码流数据对应的帧类型为非预设帧类型时,确定码流数据的传输策略为第四传输策略;其中,第三传输策略优于第四传输策略。其中,预设帧类型包括以下至少一种:I帧、IDR帧、关键帧、参考帧和场景切换帧。这样,可以优先传输对编解码比较重要的帧的码流数据,以提高其他帧能够成功解码的成功率,从而保证接收设备的用户观看视频的流畅性。
示例性的,第三传输策略可以包括以下至少一种:采用服务质量高于第二预设服务质量的传输信道进行传输,重传数据且重传次数大于第二预设重传次数,将数据的冗余度增加至大于第二冗余阈值,对数据进行FEC(Forward Error Correction,数据包的前向纠错)。
示例性的,第四传输策略可以包括以下至少一种:采用服务质量低于或等于第二预设服务质量的传输信道的进行传输,不重传数据,重传数据且重传次数小于或等于第二预设重传次数,不增加数据的冗余度,将数据的冗余度增加至小于或等于第二冗余阈值,发送前丢弃数据。
其中,第二预设服务质量,第二预设重传次数,第二冗余阈值,均可以按照需求设置,本申请实施例对此不作限制。
示例性的,第二预设服务质量与第一预设服务质量可以相同,也可以不同。第二预设重传次数和第一预设重传次数可以相同,也可以不同。第二冗余阈值和第二冗余阈值可以相同,也可以不同。本申请实施例对此均不作限制。
示例性的,数据接收模块接收到封装的码流数据和描述信息后,可以按照对应的传输策略将封装后的码流数据和描述信息发送给接收设备。
示例性的,接收设备的数据接收模块在接收到封装后的码流数据和描述信息后,将封装后的码流数据和描述信息发送到数据解析模块。
示例性的,数据解析模块可以对封装后的码流数据和描述信息进行解封装,得到描述信息和码流数据。然后,一方面,数据解析模块可以将码流数据发送至解码器,另一方面,数据解析模块可以将描述信息发送至后置处理模块。
示例性的,解码器可以基于码流数据进行图像重建,得到重建图像,然后可以将重建图像发送给后置处理模块。其中,针对进行了多尺度编码的图像,其对应的重建图像包括N个,每个重建图像对应一种编码尺度,由于在显示时,同一帧仅显示一个重建图像,因此需要后处理模块进行显示决策。示例性的,针对进行了单尺度编码的图像,其对应的重建图像为一个。
示例性的,后置处理模块接收到多个重建图像后,可以根据多个重建图像对应的多组描述信息,选取用于显示的重建图像。其中,每个重建图像对应一组描述信息,每组描述信息均包括帧标识信息。示例性的,接收到的多个重建图像中,可能每个重建图像的帧标识信息不同,也可能部分重建图像的帧标识信息相同,进而针对每一个帧标识信息,可以从该帧标识信息对应的重建图像中,选取用于显示的重建图像。后置处理模块接收到显示模块发送的送显信号,或者达到送显周期时,可以从多组描述信息中选取最新解码的一个重建图像对应的帧标识信息,作为第一帧标识信息,然后确定多组描述信息中包含的第一帧标识信息的描述信息的数量。若多组描述信息中仅存在一组描述信息包括第一帧标识信息,则选择第一帧标识信息对应的重建图像进行显示;若多组描述信息中存在至少两组描述信息包括第一帧标识信息,则从第一帧标识信息对应的至少两个重建图像中选取一个重建图像,对选取的重建图像进行显示。
一种可能的方式中,后置处理模块可以根据各重建图像对应描述信息,确定各重建图像的尺度标识信息。然后可以依据第一帧标识信息对应的多个重建图像的尺度标识信息,从第一帧标识信息对应的多个重建图像中,选择编码尺度最高的重建图像。其中,编码尺度越高,图像越优,进而在向用户展示每帧时,均展示最优的图像。
一种可能的方式中,后置处理模块可以依据第一帧标识信息对应的多个重建图像的尺度标识信息,从第一帧标识信息对应的多个重建图像中,选择尺度标识信息与之前显示的重建图像的尺度标识信息最接近的重建图像。进而可以降低相邻帧的差异,保证用户观看每帧视频的视觉流畅性。
示例性的,显示模块接收到后置处理模块发送的重建图像后,可以按照各重建图像的帧号,显示接收到的重建图像。
以下对前置处理模块判断是否需要对图像进行多尺度编码的方式,确定编码尺度N的方式,以及确定编码参数的方式进行说明。
现以对第m(m为正整数)帧图像为例进行说明。
图3a为示例性示出的处理过程示意图。参照图3,示例性的,前置处理模块的数据处理过程如下:
S301,判断是否需要对第m帧图像进行多尺度编码。
示例性的,前置处理模块接收到图像采集模块输入的第m帧图像后,可以依据第m帧图像对所属视频数据中其他帧的编解码重要程度,和/或,第m帧图像对应码流数据对网络的冲击程度,判断是否需要对图像进行多尺度编码。当第m帧图像对所属视频数据中其他帧的编解码重要程度满足第一预设条件,和/或,第m帧图像对应码流数据对网络的冲击程度满足第二预设条件时,确定需要对图像进行多尺度编码。
示例性的,第一预设条件包括以下至少一种:
第m帧图像是I帧或IDR帧;
第m帧图像是场景切换帧;
第m帧图像是参考帧;
第m帧图像是关键帧。
也就是说,当第m帧图像是I帧或IDR帧,和/或是场景切换帧,和/或是参考帧,和/或是关键帧时,表明第m帧图像对视频数据中其他帧的编解码较为重要,此时,可以确定需要对第m帧图像进行多尺度编码,以保证网络传输能力较差时,能够增加将数据量最小的最低编码尺度的码流数据成功传输至接收设备的概率,保证接收设备用户观看视频的流畅性。
示例性的,依据第m帧图像对所属视频数据中其他帧的编解码重要程度,判断是否需要对第m帧图像进行多尺度编码的方式可以包括以下至少一种:
(1)判断第m帧图像是否是I帧或IDR帧。
示例性的,判断第m帧图像是否是I帧或IDR帧,也就是判断第m帧图像是否将要被编码成I帧或IDR帧。
示例性的,可以预先根据视频业务场景,设置GOP(Group ofpicture,图像组)所包含图像的数量S(S为正整数),以及将每个GOP中的第一帧图像设置为I帧或IDR帧。前置处理模块接收到第m帧图像后,可以依据m和S,确定第m帧图像是否将要被编码成为I/IDR帧。示例性的,当m=1时,前置处理模块可以确定第m帧图像是I/IDR帧。当m大于1,且,m小于或等于S时,前置处理模块可以确定第m帧图像不是I/IDR帧。当m大于S时,则前置处理模块可以计算m与S的余数,若余数等于1,则前置处理模块可以确定第m帧图像是I/IDR帧,若余数不等于1,则前置处理模块可以确定第m帧图像不是I/IDR帧。
示例性的,在前置处理模块依据m和S,确定第m帧图像是否是I/IDR帧的过程中,若前置处理模块接收到接收设备反馈的显示失败信息(如花屏),则前置处理模块可以将第m帧图像确定为I/IDR帧,以及可以将该图像作为GOP的第一个帧,并记录m的值为R。前置处理模块接收到R帧之后的图像后,可以根据R、m和S,判断第m帧图像是否是I/IDR帧。示例性的,当(m-R)大于0,且,(m-R)小于或等于S时,前置处理模块可以确定第m帧图像不是I/IDR帧。当(m-R)大于S时,则前置处理模块可以计算(m-R)与S的余数,若余数等于1,则前置处理模块可以确定第m帧图像是I/IDR帧,若余数不等于1,则前置处理模块可以确定第m帧图像不是I/IDR帧。
(2)判断第m帧图像是否为场景切换帧。
示例性的,若m=1,则前置处理模块可以确定第m帧图像是场景切换帧。若m大于1,则前置处理模块可以将第m帧图像与第m-1帧图像进行比较。若第m帧图像与第m-1帧图像相似度小于或等于相似度阈值,则可以确定第m帧图像是场景切换帧。若第m帧图像与第m-1帧图像相似度大于预设相似度阈值,则确定第m帧图像不是场景切换帧。
(3)判断第m帧图像是否是参考帧。
示例性的,前置处理模块在将每帧图像送入编码器之前,可以为每帧图像指定对应的参考帧。
示例性的,判断第m帧图像是否是参考帧,也就是判断第m帧图像是否被指定为其他帧的参考帧。示例性的,第m帧图像可以被指定为第m帧图像之前的其他帧的参考帧,也可以被指定为第m帧图像之后的其他帧的参考帧,在此不再赘述。当第m帧图像被指定为其他帧的参考帧时,可以确定第m帧为参考帧。
(4)判断第m帧图像是否是关键帧。
示例性的,可以判断依赖第m帧图像的码流数据进行编码的其他帧的数量,是否小于预设数量阈值。其中,预设数量阈值可以按照需求设置,例如,一个GOP包括8帧图像,预设数量阈值可以为4,即一个GOP中有4帧图像依赖该图像进行编解码。
示例性的,当依赖第m帧图像进行编解码的其他帧的数量大于或等于预设数量阈值,则可以确定第m帧图像是关键帧。当依赖第m帧图像进行编解码的其他帧的数量小于预设数量阈值,则可以确定第m帧图像是不关键帧。
示例性的,第m帧图像可以是场景切换帧、I帧、IDR帧、参考帧和关键帧中的一种或多种。
示例性的,第二预设条件包括以下至少一种:
第m帧图像的码流数据的数据量,大于预设数据量阈值;
第m帧图像的码流数据的数据量,大于网络传输能力。
也就是说,当第m帧图像的码流数据的数据量,大于预设数据量阈值,或者第m帧图像的码流数据的数据量,大于网络传输能力,则说明第m帧图像对应码流数据对网络的冲击程度比较大,此时,可以确定需要对第m帧图像进行多尺度编码,进而,能够增加将数据量最小的最低编码尺度的码流数据成功传输至接收设备的概率,保证接收设备用户观看视频的流畅性。
示例性的,依据第m帧图像对应码流数据对网络的冲击程度,判断是否需要对第m帧图像进行多尺度编码的方式可以包括以下至少一种:
(1)判断第m帧图像的码流数据的数据量,是否大于预设数据量阈值。
示例性的,前置处理模块可以根据编码器的参数和第m帧图像的图像复杂度,预估第m帧图像的码流数据的数据量,然后判断第m帧图像的码流数据的数据量,是否大于预设数据量阈值。其中,预设数据量阈值可以按照需求设置,本申请实施例对此不作限制。
一种可能的方式中,前置处理模块可以将第m帧图像送入编码器进行预编码,来判断第m帧图像的码流数据的数据量,是否大于预设数据量阈值。
(2)判断第m帧图像的码流数据的数据量,是否大于网络传输能力。
示例性的,前置处理模块可以获取发送设备当前的网络传输能力(如网络带宽,即单位时间(一般指的是1秒钟)内能传输的数据量),以及预估第m帧图像的码流数据的数据量,这可以参照上文中的相关描述,在此不再赘述。然后前置处理模块将第m帧图像的码流数据的数据量,与发送设备当前的网络传输能力进行比较,来判断第m帧图像被的码流数据的数据量,是否大于网络传输能力。
示例性的,当确定需要对第m帧图像进行多尺度编码时,可以执行S302。当确定无需对第m帧图像进行多尺度编码时,可以执行S307。
S302,确定针对第m帧图像的编码尺度N和N组编码参数。
一种可能的方式中,可以预先为视频数据中各帧设置对应的编码尺度,可以参照表1:
表1
帧号 编码尺度
1 N=4
2 N=3
3 N=2
4 不进行多尺度编码
... ...
M(M为正整数) N=2
表1中,M可以为视频数据所包含图像的总帧数,也可以是视频数据中一个GOP包含图像的帧数,本申请实施例对此不作限制。示例性的,当M是一个GOP包含图像的帧数时,不同GOP中相同位置的帧设置的编码尺度可以相同,也可以不同,本申请实施例对此不作限制。
进而,可以从预先为视频数据中各帧设置对应的编码尺度中,查找第m帧图像对应的编码尺度。例如,M为视频数据所包含的图像总帧数,若m=2,则可以确定第m帧图像对应的编码尺度N=3。
一种可能的方式中,可以预先设置各种帧类型对应的编码尺度,如表2:
表2
帧类型 编码尺度
I/IDR帧 N=4
场景切换帧 N=3
关键帧 N=3
参考帧 N=2
... ...
进而,可以根据第m帧图像的帧类型,从预先设置的各种帧类型对应的编码尺度中,查找第m帧图像对应的编码尺度。例如,第m帧图像的帧类型为关键帧,则可以确定第m帧图像对应的编码尺度N=3。
一种可能的方式中,可以预先设置各种网络传输能力对应的编码尺度N,如表3:
表3
网络传输能力 编码尺度
网络数据传输量∈[0,D1] N=4
网络数据传输量∈(D1,D2] N=3
网络数据传输量∈(D3,D4] N=2
网络数据传输量∈(D4,D5] N=2
... ...
示例性的,表3中的D1<D2<D3<D4<D5。其中,D1、D2、D3、D4和D5,可以按照需求设置,本申请实施例对此不作限制。
进而,可以根据第m帧图像的数据量,从预先设置的各种网络传输能力对应的编码尺度中,查找第m帧图像对应的编码尺度。例如,第m帧图像的码流数据的数据量∈(D3,D4],则可以确定第m帧图像对应的编码尺度N=2。
一种可能的方式中,可以预先设置图像的帧类型和网络传输能力,对应的编码尺度,如表4所示:
表4
Figure BDA0003236279930000211
进而,可以根据第m帧图像的码流数据的数据量和帧类型,从预先设置的图像的帧类型和网络传输能力,对应的编码尺度中,查找第m帧图像对应的编码尺度。例如,第m帧图像的码流数据的数据量∈(D3,D4],帧类型为场景切换帧,则可以确定第m帧图像对应的编码尺度N=3。
需要说明的是,表1~表4仅是编码尺度N的示例,并不表示实际应用过程中编码尺度N的值。
一种可能的方式中,对于每种N值,可以预置N种编码尺度中每种编码尺度的编码参数,即预置每种N值对应的N组编码参数。
例如,针对表1中的N=2,可以预置两种编码尺度对应的编码参数,如表5所示:
表5
Figure BDA0003236279930000221
针对表1中的N=3,可以预置三种编码尺度对应的编码参数,如表6所示:
表6
Figure BDA0003236279930000222
针对表1中的N=4,可以预置其中四种编码尺度对应的编码参数,如表7所示:
表7
Figure BDA0003236279930000223
示例性的,表5~表7中,QP越大,编码质量越低,QP越小,编码质量越高。
需要说明的是,虽然表5、表6和表7中示出的第1种编码尺度对应的编码参数相同,但是应当理解的是,表5、表6和表7中的第1种编码尺度对应的编码参数可以是不同的。以及虽然表6和表7中示出的第2种编码尺度对应的编码参数相同,但是应当理解的是,表6和表7中的第2种编码尺度对应的编码参数可以是不同的,以此类推。也就是说,当编码尺度N的值不同时,所对应的同一种编码尺度的编码参数可以相同,也可以不同,本申请实施例对此不作限制。
示例性的,前置处理模块可以根据第m帧图像对应的编码尺度N,从预置的编码参数中,查找出与N对应的编码参数。
例如,第m帧图像对应的编码尺度N=2,则对应的编码参数可以如表5所示。
例如,第m帧图像对应的编码尺度N=3,则对应的编码参数可以如表6所示。
一种可能方式中,可以根据编码尺度N、第m帧图像的图像复杂度、当前的网络传输能力和编码器的参数取值范围中的至少两种,来确定每种编码尺度对应的编码参数。
示例性的,可以根据编码尺度N和编码器的参数取值范围,确定每种编码尺度对应的编码参数。
例如,N=2,编码器的参数取值范围满足第一编码条件,则编码参数如表8所示:
表8
Figure BDA0003236279930000231
例如,N=2,编码器的参数取值范围满足第二编码条件,则编码参数如表9所示:
表9
Figure BDA0003236279930000232
其中,编码器的参数取值范围满足第二编码条件时编码器的编码质量,大于编码器的参数取值范围满足第一编码条件时编码器的编码质量。
示例性的,可以根据编码器的各参数取不同范围值时,编码器的编码质量,来设置第一编码条件和第二编码条件,在此不再赘述。
例如,N=3,编码器的参数取值范围满足第一编码条件,则编码参数如表10所示:
表10
Figure BDA0003236279930000233
示例性的,可根据编码尺度N和网络传输能力,确定每种编码尺度对应的编码参数。
例如,N=2,网络数据传输量大于第一数据量阈值,则编码参数如表11所示:
表11
Figure BDA0003236279930000234
例如,N=2,网络数据传输量大于第二数据量阈值,则编码参数如表12所示:
表12
Figure BDA0003236279930000235
其中,第一数量阈值具体可以需求设置,本申请实施例对此不作限制。
例如,N=3,网络数据传输量大于第一数据量阈值,则编码参数如表13所示:
表13
Figure BDA0003236279930000241
应当理解的是,也可以根据编码尺度N和图像复杂度,确定每种编码尺度对应的编码参数。还可以根据编码尺度N、图像复杂度和编码器的参数取值范围,确定每种编码尺度对应的编码参数。还可以根据编码尺度N、图像复杂度和网络传输能力,确定每种编码尺度对应的编码参数。还可以根据编码尺度N、图像复杂度、编码器的参数取值范围和网络传输能力,确定每种编码尺度对应的编码参数;等等,在此不一一举例说明。
示例性的,编码参数还可以包括参考帧信息。
一种可能的方式中,参考帧信息可以是预先设置的。示例性的,可以针对视频数据中的每帧图像,预先设置对应的参考帧。示例性的,针对每帧图像,可以将该帧图像之前帧类型为预设帧类型(如I/IDR帧、场景切换帧、关键帧、参考帧)的帧,确定为每帧图像在一种编码尺度上的参考帧。
示例性的,在确定每帧图像的参考帧后,可以根据每帧图像的参考帧进入编码器的序号(也就是POC号),确定每帧图像在一种编码尺度上的参考帧信息。
示例性的,可以将每帧图像的参考帧进入编码器的POC号,作为每帧图像在一种编码尺度上的的考帧信息。
示例性的,针对一帧图像,可以依据该帧图像的参考帧进入编码器的POC号,和在对该帧图像进行一种编码尺度的编码时输入至编码器的该帧图像的POC号,确定该帧图像的参考帧与该帧图像的距离;将该帧图像的参考帧和该帧图像的距离,确定为该帧图像在一种编码尺度上的参考帧信息。示例性的,将该帧图像的参考帧和该帧图像的距离,可以是指在对该帧图像进行一种编码尺度的编码时输入至编码器的该帧图像的POC号,与该帧图像的参考帧进入编码器的POC号的差值。
进而,前置处理模块可以从预先设置的参考帧信息中,查找第m帧图像的参考帧信息。
一种可能方式中,当接收到第一反馈信息,根据第一反馈信息确定参考帧信息,第一反馈信息指示已发送码流数据对应的编码帧被成功接收,编码帧被确认为参考帧,参考帧信息用于指示参考帧。这样,可以保证有某一编码帧的码流数据丢失时,只影响本编码帧的解码和显示,不影响其他编码帧的解码和显示,限制了数据丢失对解码显示的影响。
示例性的,第一反馈信息可以包括帧标识信息和尺度标识信息。示例性的,可以根据第一反馈信息中的帧标识信息和尺度标识信息,确定为第m帧图像在一种编码尺度上的参考帧信息。
示例性的,可以将第m帧图像的参考帧进入编码器的POC号,作为第m帧图像在一种编码尺度上的参考帧信息。
示例性的,可以依据第m帧图像的参考帧进入编码器的POC号,和在对第m帧图像进行一种编码尺度的编码时输入至编码器的第m帧图像的POC号,确定第m帧图像的参考帧与第m帧图像的距离;将第m帧图像的参考帧和第m帧图像的距离,确定为第m帧图像在一种编码尺度上的参考帧信息。示例性的,将第m帧图像的参考帧和第m帧图像的距离,可以是指在对第m帧图像进行一种编码尺度的编码时输入至编码器的第m帧图像的POC号,与第m帧图像的参考帧进入编码器的POC号的差值。
示例性的,第m帧图像在不同编码尺度上的参考帧信息可以相同,也可以不同,具体可以按照需求设置,本申请实施例对此不作限制。
图3b为示例性示出的参考帧选取示意图。参照图3,示例性的,F1~F7为7帧图像。其中,F1和F4需要进行多尺度编码,F2、F3、F5、F6、F7无需进行多尺度编码。
在对F4编码之前,未接收到F1~F3任一图像对应码流数据的传输结果,因此F2~F4可以以F1的最低编码尺度的重建图像作为参考进行编码。在对F5编码之前,接收到对F1对应最高编码尺度的码流数据的传输结果是传输成功,则以F1的最高编码尺度的重建图像作为参考对F5编码。在对F6编码之前,接收到对F2对应码流数据的传输结果是传输成功,则以F2的重建图像作为参考对F6编码。在对F7编码之前,接收到对F3的码流数据的传输结果是传输失败,则以F2的重建图像作为参考对F7编码。
示例性的,本申请实施例中,编码参数包括:量化参数和参考帧信息。
示例性的,前置处理模块在确定编码尺度N和N组编码参数后,可以先将一组编码参数和第m帧图像,送入编码器中,由编码器按照该组编码参数,对第m帧图像编码。然后再将下一组编码参数和第m帧图像,送入编码器中,由编码器按照下一组编码参数,对第m帧图像编码,如此循环往复,直至将最后一组编码参数和第m帧图像送入编码器为止。
为了描述上述的循环过程说明,可以设置一参数i,并且令i等于1。然后每次将第i组编码参数和第m帧图像送入编码器后将i加1。
S303,令i=1。
S304,将第i组编码参数和第m帧图像输入至编码器。
示例性的,前置处理模块确定第i组编码参数后,可以将第i组编码参数和第m帧图像输入至编码器,由编码器按照第i组编码参数,对第m帧图像进行编码,得到第i组码流数据。
示例性的,本申请实施例不限制将第i组编码参数和第m帧图像输入至编码器的顺序。例如,可以同时将第i组编码参数和第m帧图像输入至编码器。又例如,可以先将第i组编码参数输入至编码器,再将第m帧图像输入至编码器。还例如,先将第m帧图像输入至编码器,再将第i组编码参数输入至编码器。
S305,判断i是否等于N。
示例性的,前置处理模块在每将第i组编码参数输入至编码器后,可以判断i是否等于N,也就是判断N组编码参数,是否均已输入至编码器。若i不等于N,则说明还有部分组编码参数未输入至编码器,此时可以执行S306。若i等于N,则说明已将N组编码参数输入至编码器,此时可以执行S309。
示例性的,前置处理模块也可以在接收到编码器反馈的编码完成信息后,判断i是否等于N,本申请实施例对此不作限制。
S306,将i加1。
示例性的,在执行S306之后,可以返回执行S304,即将下一组编码参数和第m帧图像输入至编码器,由编码器对第m帧图像进行下一种编码尺度的编码。
S307,确定单尺度编码对应的编码参数。
示例性的,前置处理模块确定不需要对第m帧图像进行多尺度编码时,可以确定单尺度编码对应的编码参数。
示例性的,单尺度编码对应的编码参数可以预先设置,如表14所示:
表14
Figure BDA0003236279930000261
进而,可以将预先设置的单尺度编码的编码参数,作为第m帧图像的单尺度编码对应的编码参数。
S308,将单尺度编码对应的编码参数和第m帧图像输入至编码器。
示例性的,前置处理模块可以将单尺度编码对应的编码参数和第m帧图像输入至编码器,由编码器按照单尺度编码对应的编码参数,对第m帧图像进行编码,得到单尺度编码的码流数据。
S309,将m加1。
示例性的,若i等于N或者执行完S308后,可以将m加1,进而可以将下一帧图像输入至前置处理模块,然后按照上述S301~S308对下一帧图像的进行编码。
需要说明的是,同一个视频业务的视频流中不同图像的编码尺度N可以相同,也可以不同,以及同一个视频业务的视频数据中部分图像可以进行多尺度编码,另一部分图像可以进行单尺度编码。
示例性的,前置处理模块在判断是否需要对第m帧图像进行多尺度编码的同时,还可以按照上文描述的判断方法,确定第m帧图像的帧类型。以及在将第i组编码参数和图像输入至编码器的同时,确定该第i种编码尺度的尺度标识信息。然后前置处理模块可以采用第m帧图像的帧类型、第i种编码尺度的尺度标识信息和帧标识,生成第m帧图像对应的第i组描述信息,再将第m帧图像对应的第i组描述信息,输出至数据封装模块。
这样,通过结合每帧图像对应码流数据对于编解码的重要程度,以及对网络的冲击程度,确定视频流中需要多尺度编码的图像。对重要的和/或容易对网络产生冲击的图像,可以确定需要进行多尺度编码。其中,在对图像进行多尺度编码时,可以将图像编码成一个数据量较小的码流数据(也就是低编码尺度的码流数据),以及编码成一个或者多个数据量较高的码流数据(也就是一个或多个较高编码尺度的码流数据)。进而,可以让低编码尺度的码流数据有更高的概率到达解码端,保证整个播放的流畅,无花屏。对于高编码尺度的码流数据,如果丢失,不会影响播放端的正常解码播放,不产生花屏;如果能够到达解码端,也能提升播放的画质。而对于不重要和/或对网络冲击小的图像,不进行多尺度编码,该数据如果丢失,对解码过程中的图像重建的影响和用户观看影响较小。此外,由于多尺度编码会影响编码压缩效率,增加编码计算时间,所以对部分图像不进行多尺度编码,能降低多尺度编码对压缩率和计算的影响。
一种可能方式中,可以对整帧图像进行低编码尺度的编码,以及对图像中的部分区域进行高编码尺度的编码,进而可以降低编码器进行高编码尺度编码的计算量,提高编码效率。
图4a为示例性示出的数据处理示意图。参照图4a,示例性的,前置处理模块的数据处理过程如下:
S401,判断是否需要对第m帧图像进行多尺度编码。
S402,确定针对第m帧图像的编码尺度N和N组编码参数。
S403,令i=1。
示例性的,S401~S403可以参照S301~S303,在此不再赘述。
S404,判断i是否大于尺度分界阈值。
示例性的,可以预先按照需求设置尺度分界阈值,本申请实施例对此不作限制。
示例性的,可以预先针对不同的N值,设置不同的尺度分界阈值。例如N=1,则尺度分界阈值可以设置为1。又例如,N=3,则尺度分界阈值可以设置为2。还例如,N=4,尺度分界阈值可以设置为2。
示例性的,也可以根据编码尺度N、第m帧图像的图像复杂度、网络传输能力和编码器的参数中的至少一种,确定尺度分界阈值。例如,假设N=4,若网络数据传输量小于第一数据量阈值,则可以确定尺度分界阈值为2。若网络数据传输量大于第一数据量阈值,则可以确定尺度分界阈值为3。又例如,假设N=4,若第m帧图像的图像复杂度低于第一复杂度阈值,则可以确定尺度分界阈值为2。若第m帧图像的图像复杂度高于第一复杂度阈值,则可以确定尺度分界阈值为3。其中,第一复杂度阈值可以按照需求设置,本申请实施例对此不作限制。
示例性的,当当前的编码尺度小于或等于尺度分界阈值时,可以对整帧图像进行编码,当当前的编码尺度大于尺度分界阈值时,可以对整帧图像中的部分区域进行编码。
示例性的,第i组编码参数对应第i种编码尺度,i越大,编码尺度越高。
示例性的,当i小于或等于尺度分界阈值时,可以执行S405。当i大于尺度分界阈值时,可以执行S406。
S405,将第i组编码参数和第m帧图像输入至编码器。
示例性的,S405可以参照上文中的S304,在此不再赘述。
S406,确定第m帧图像中的目标区域,从第m帧图像中提取出目标区域的图像。
示例性的,当确定第i组编码参数中量化参数,不是N组编码参数中量化参数中的最大值时,可以确定第m帧图像中待编码的目标区域。
示例性的,前置处理模块可以对第m帧图像进行分析,确定用户感兴趣的区域,将用户感兴趣的区域确定为目标区域。
示例性的,前置处理模块可以对第m帧图像进行主体检测,将检测出的主体所在的区域,确定为目标区域。例如,人脸所在的区域、动物所在的区域等等。
示例性的,前置处理模块确定目标区域后,可以从第m帧图像中提取出目标区域的图像。
示例性的,前置处理模块从第m帧图像中提取出目标区域的图像后,可以将第m帧图像的其他区域的图像丢弃。
S407,将第i组编码参数和第m帧图像的目标区域的图像输入至编码器。
示例性的,前置处理模块可以将第i组编码参数和第m帧图像的目标区域的图像输入至编码器,然后由编码器对第m帧图像中目标区域的图像,进行第i种编码尺度的编码,得到第m帧图像中目标区域的图像对应的码流数据。
S408,判断i是否等于N。
S409,将i加1。
S410,确定单尺度编码对应的编码参数。
S411,将单尺度编码对应的编码参数和第m帧图像输入至编码器。
S412,将m加1。
示例性的,S408~S412可以参照上文S305~S309在此不再赘述。
示例性的,前置处理模块确定描述信息的方法,可以参照上文的描述,在此不再赘述。
图4b为示例性示出的数据处理示意图。参照图4b,示例性的,前置处理模块可以包括多尺度编码决策模块和图像预处理模块,多尺度编码决策模块执行S401后,若确定需要对第m帧图像进行多尺度编码,则可以执行S402~S404。若i小于或等于尺度边界阈值,则一方面,执行S407中的将i组编码参数输入至编码器,另一方面,将第m帧图像输入至图像预处理模块,由图像预处理模块执行S407中的将第m帧图像输入至编码器。若i大于尺度边界阈值,则一方面,多尺度编码决策模块可以将第i组编码参数和图像输入至图像预处理模块,然后图像预处理模块可以执行S405以及执行S406中将第m帧图像中目标区域的图像输入至编码器。另一方面,多尺度编码决策模块可以执行S406中将i组编码参数输入至编码器。若多尺度编码决策模块确定无需对第m帧图像进行多尺度编码,则可以执行S410,然后一方面可以执行S411中的将无尺度编码对应的编码参数输入至编码器,另一方面,可以将第m帧图像输入至图像预处理模块,由图像预处理模块执行S411中的将第m帧图像输入至编码器。然后再由多尺度编码决策模块执行S408、S409和S412。也就是说,图像预处理模块用于执行S401~S412中对第m帧图像进行处理,以及将处理后的第m帧图像或第m帧图像输入至编码器的步骤,多尺度决策模块用于执行S401~S412中除图像预处理模块所执行的步骤之外的步骤,以及执行将第i组编码参数和第m帧图像输入至图像预处理模块的步骤。
此外,多尺度编码决策模块确定第m帧图像的第i组描述信息后,还可以将第m帧图像的第i组描述信息输入至数据封装模块,这可以参照上文中的描述,在此不再赘述。
示例性的,也可以是由前置处理模块执行S401~S412,即不将前置处理模块进行划分为多尺度编码决策模块和图像预处理模块,如图3所示。
继续参照图4b,示例性的,若对第m帧图像进行了多尺度编码,则后置处理模块接收的解码器重建图像包括:第m帧图像在最低编码尺度上的重建图像和第m帧图像中目标区域在其他编码尺度上的重建图像。
示例性的,当后置处理模块选择其他编码尺度对应的重建图像输出至显示模块时,可以采用第m帧图像中目标区域在其他编码尺度上的重建图像,替换第m帧图像在最低编码尺度的重建图像中目标区域的图像,得到第m帧图像在其他编码尺度上的重建图像;然后将第m帧图像在其他编码尺度上的重建图像输出至显示模块。然后由显示模块,对第m帧图像在其他编码尺度上的重建图像进行显示。
图4c为示例性示出的数据处理示意图。参照图4c,视频数据包括e(e为正整数)帧图像,如图像1、图像2......图像e。
参照图4c(1),示例性的,针对图像1,多尺度编码模块对图像1进行3种编码尺度的编码,得到3种编码尺度的码流数据。
参照图4c(1),示例性的,多尺度编码模块按照第1种编码尺度对应的编码参数,对图像1进行编码,得到第1种编码尺度的码流数据。参照图4c(2),示例性的,针对图像1对应第1种编码尺度的码流数据进行解码,得到图像1',图像1'是图像1对应的重建图像。
参照图4c(1),示例性的,多尺度编码模块先从图像1中提取出目标区域的R2,然后按照第2种编码尺度对应的编码参数对R2进行编码,得到第2种编码尺度的码流数据。参照图4c(2),示例性的,针对图像1对应第2种编码尺度的码流数据进行解码,得到R2',R2'是R2对应的重建图像。
参照图4c(1),示例性的,多尺度编码模块先从图像1中提取出目标区域的R3,然后按照第3种编码尺度对应的编码参数R3进行编码,得到第3种编码尺度的码流数据。参照图4c(2),示例性的,针对图像1对应第3种编码尺度的码流数据进行解码,得到R3',R3'是R3对应的重建图像。
参照图4c(2),示例性的,针对图像1,当选择第1种编码尺度的重建图像输出时,可以将图像1'直接输出至显示模块进行显示。当选择第2种编码尺度的重建图像输出时,可以采用R2'替换图像1'中目标区域的图像,然后输出替换后的图像1'。当选择第3种编码尺度的重建图像输出时,可以采用R3'替换图像1'中目标区域的图像,然后输出替换后的图像1'。
参照图4c(1),示例性的,针对图像2,多尺度编码模块对图像2进行2种编码尺度的编码,得到2种编码尺度的码流数据。
参照图4c(1),示例性的,多尺度编码模块通过按照第1种编码尺度对应的编码参数,对图像2进行编码,得到第1种编码尺度的码流数据。参照图4c(2),示例性的,针对图像2对应第1种编码尺度的码流数据进行解码,得到图像2',图像2'是图像2对应的重建图像。
参照图4c(1),示例性的,多尺度编码模块先从图像2中提取出目标区域的Q2,然后按照第2种编码尺度对应的编码参数对Q2进行编码,得到第2种编码尺度的码流数据。参照图4c(2),示例性的,针对图像2对应第2种编码尺度的码流数据进行解码,得到Q2',Q2'是Q2对应的重建图像。
参照图4c(2),示例性的,针对图像2,当选择第1种编码尺度的重建图像输出时,可以将图像2'直接输出至显示模块进行显示。当选择第2种编码尺度的重建图像输出时,可以采用Q2'替换图像2'中目标区域的图像,然后输出替换后的图像2'。
示例性的,多尺度编码模块对图像e进行单尺度编码,得到对应的码流数据。然后可以对图像e对应的码流数据进行解码,得到图像e',图像e'是图像e对应的重建图像,然后可以直接将图像e'输出显示。
一种可能的方式中,编码参数可以包括:分辨率、量化参数和参考帧信息。
图5a为示例性示出处理过程示意图。参照图5a,示例性的,当发送设备中已有的编码器支持不同分辨率图像的编码,且接收设备中已有的解码器支持不同分辨率图像的解码时,前置处理模块的数据处理过程如下:
S501,判断是否需要对第m帧图像进行多尺度编码。
示例性的,前置处理模块接收到图像采集模块输入的第m帧图像后,可以依据第m帧图像对所属视频数据中其他帧的编解码重要程度,和/或,第m帧图像对应码流数据对网络的冲击程度,和/或,第m帧图像的预测画质,判断是否需要对图像进行多尺度编码。当图像对所属视频数据中其他帧的编解码重要程度满足第一预设条件,和/或,第m帧图像对应码流数据对网络的冲击程度满足第二预设条件,第m帧图像的预测画质满足第三预设条件时,确定需要对图像进行多尺度编码。
示例性的,第一预设条件包括以下至少一种:
第m帧图像是I帧或IDR帧;
第m帧图像是场景切换帧;
第m帧图像是参考帧;
第m帧图像是关键帧。
示例性的,依据第m帧图像对所属视频数据中其他帧的编解码重要程度,判断是否需要对第m帧图像进行多尺度编码的方式,可以参照上文示例性的,在此不再赘述。
示例性的,第二预设条件包括以下至少一种:
第m帧图像的码流数据的数据量,大于预设数据量阈值;
第m帧图像的码流数据的数据量,大于网络传输能力。
示例性的,依据第m帧图像对应码流数据对网络的冲击程度,判断是否需要对第m帧图像进行多尺度编码的方式,可以参照上文示例性的,在此不再赘述。
示例性的,第m帧图像的预测画质包括第一预测画质和第二预测画质,第一预测画质是预测的第m帧图像按照图像的源分辨率进行编码的画质,第二预测画质是预测的第m帧图像按照低于源分辨率的分辨率进行编码的画质。第三预设条件包括:第一预测画质低于或等于第二预测画质。
示例性的,可以根据第m帧图像的图像复杂度和第一目标数据量,预测第m帧图像以源分辨率编码得到的第一预测画质;以及可以根据第m帧图像的图像复杂度和第二目标数据量,预测第m帧图像以低于源分辨率的分辨率编码得到的第二预测画质。示例性的,第一目标数据量和第二目标数据量可以是两个比较接近的值。可选地,第一目标数据量和第二目标数据量之间的差值,小于预设数据量值,预设数据量值可以按照需求设置。
例如,根据第m帧图像的图像复杂度,预测第m帧图像以源分辨率为1920*1080编码成500K的第一预测画质,以及根据第m帧图像的图像复杂度,预测第m帧图像以1280*720的分辨率编码成500K的第二预测画质。若将第m帧图像以1920*1080的分辨率编码成500K的第一预测画质,高于将第m帧图像以1280*720的分辨率编码成500K的第二预测画质,则可以确定无需对第m帧图像进行多尺度编码。若将第m帧图像以1920*1080的分辨率编码成500K的第一预测画质,低于或等于将第m帧图像以1280*720的分辨率编码成500K的第二预测画质,则可以确定需要对第m帧图像进行多尺度编码。
示例性的,当确定需要对第m帧图像进行多尺度编码时,可以执行S502。当确定无需对第m帧图像进行多尺度编码时,可以执行S510。
S502,确定针对第m帧图像的编码尺度N和N组编码参数。
示例性的,确定针对第m帧图像的编码尺度N的方式,可以参照上文S302的描述,在此不再赘述。
一种可能的方式中,对于每种N值,可以预置N种编码尺度中每种编码尺度的编码参数。例如,针对表1中的N=2,可以预置两种编码尺度对应的编码参数,如表15所示:
表15
Figure BDA0003236279930000311
例如,针对表1中的N=3,可以预置三种编码尺度对应的编码参数,如表16所示:
表16
Figure BDA0003236279930000312
例如,针对表1中的N=4,预置其中四种编码尺度对应的编码参数,如表17所示:
表17
Figure BDA0003236279930000313
示例性的,表15~表17中分辨率栏中的“源分辨率”,是指第m帧图像的分辨率。“源分辨率/4”表示分辨率为源分辨率的四分之一,即水平像素为源分辨率水平像素的二分之一,竖直像素为源分辨率竖直像素的二分之一。“源分辨率/8”表示分辨率为源分辨率的八分之一,即水平像素为源分辨率水平像素的四分之一,竖直像素为源分辨率竖直像素的二分之一。“源分辨率/16”表示分辨率为源分辨率的十六分之一,即水平像素为源分辨率水平像素的四分之一,竖直像素为源分辨率竖直像素的四分之一。
需要说明的是,虽然表15、表16和表17中示出的第1种编码尺度对应的编码参数相同,但是应当理解的是,表15、表16和表17中的第1种编码尺度对应的编码参数可以是不同的。以及虽然表16和表17中示出的第2种编码尺度对应的编码参数相同,但是应当理解的是,表16和表17中的第2种编码尺度对应的编码参数可以是不同的,以此类推。也就是说,当编码尺度N的值不同时,所对应的同一种编码尺度的编码参数可以相同,也可以不同,本申请实施例对此不作限制。
示例性的,前置处理模块可以根据第m帧图像对应的编码尺度N,从预置的编码参数中,查找出与N对应的编码参数。
例如,第m帧图像对应的编码尺度N=2,则对应的编码参数可以如表15所示。
例如,第m帧图像对应的编码尺度N=3,则对应的编码参数可以如表16所示。
一种可能方式中,可以根据编码尺度N、第m帧图像的图像复杂度、当前的网络传输能力和编码器的参数取值范围中的至少两种,来确定每种编码尺度对应的编码参数。
示例性的,可以根据编码尺度N和编码器的参数取值范围,确定每种编码尺度对应的编码参数。
例如,N=2,编码器的参数取值范围满足第一编码条件,则编码参数如表18所示:
表18
Figure BDA0003236279930000321
例如,N=2,编码器的参数取值范围满足第二编码条件,则编码参数如表19所示:
表19
Figure BDA0003236279930000322
其中,编码器的参数取值范围满足第二编码条件时编码器的编码质量,大于编码器的参数取值范围满足第一编码条件时编码器的编码质量。
示例性的,可以根据编码器的各参数取不同范围值时,编码器的编码质量,来设置第一编码条件和第二编码条件,在此不再赘述。
例如,N=3,编码器的参数取值范围满足第一编码条件,则编码参数如表20所示:
表20
Figure BDA0003236279930000331
示例性的,可以根据编码尺度N和网络传输能力,来确定每种编码尺度对应的编码参数。
例如,N=2,网络数据传输量大于第一数据量阈值,则编码参数如表21所示:
表21
Figure BDA0003236279930000332
例如,N=2,网络数据传输量大于第二数据量阈值,则编码参数如表22所示:
表22
Figure BDA0003236279930000333
其中,第二数据量阈值大于第一数据量阈值,第一数量阈值和第二数据量阈值具体可以需求设置,本申请实施例对此不作限制。
例如,N=3,网络数据传输量大于第一数据量阈值,则编码参数如表23所示:
表23
Figure BDA0003236279930000334
应当理解的是,也可以根据编码尺度N和图像复杂度,确定每种编码尺度对应的编码参数。还可以根据编码尺度N、图像复杂度和编码器的参数取值范围,确定每种编码尺度对应的编码参数。还可以根据编码尺度N、图像复杂度和网络传输能力,确定每种编码尺度对应的编码参数。还可以根据编码尺度N、图像复杂度、编码器的参数取值范围和网络传输能力,确定每种编码尺度对应的编码参数;等等,在此不一一举例说明。
示例性的,前置处理模块确定第m帧图像的参考帧信息的方式,也可以参照上文中的描述,在此不再赘述。
S503,令i=1。
S504,判断第i组编码参数中的分辨率,是否小于第m帧图像的源分辨率。
示例性的,当第i组编码参数中的分辨率小于第m帧图像的源分辨率时,可以先对第m帧图像进行下采样,再输入至编码器中,也就是先执行S505,再执行S506。
示例性的,当第i组编码参数中的分辨率等于第m帧图像的源分辨率时,则无需对第m帧图像进行下采样,直接将该图像输入至编码器中即可,即执行S507。
S505,按照第i组编码参数中的分辨率,对第m帧图像进行下采样。
示例性的,若第i组编码参数中的分辨率小于第m帧图像的源分辨率,则可以由前置处理模块按照第i组编码参数中的分辨率,对第m帧图像进行下采样。
例如,第m帧图像的源分辨率为1920*1080,第i组编码参数的分辨率为1280*720,则前置处理模块可以将第m帧图像进行下采样,得到分辨率为1280*720的图像。
S506,将第i组编码参数和下采样后的第m帧图像输入至编码器。
S507,将第i组编码参数和第m帧图像输入至编码器。
示例性的,若第i组编码参数中的分辨率等于第m帧图像的源分辨率,则可以直接将第i组编码参数和第m帧图像输入至编码器,可以参照参照S304的描述,在此不再赘述。
S508,判断i是否等于N。
示例性的,S508可以参照S305的描述,在此不再赘述。
S509,将i加1。
示例性的,在执行S509之后,可以返回执行S504~S507,即将下一种编码尺度的编码参数,与下采样后的第m帧图像或第m帧图像输入至编码器,由编码器对第m帧图像进行下一种编码尺度的编码。
S510,确定单尺度编码对应的编码参数。
S511,将单尺度编码对应的编码参数和第m帧图像输入至编码器。
S512,将m加1。
示例性的,S510~S512可以参照上述S307~S309,在此不再赘述。
需要说明的是,同一个视频业务的视频流中的不同图像的编码尺度N可以相同,也可以不同,同一个视频业务的视频流中部分图像可以进行多尺度编码,另一部分图像可以进行单尺度编码,本申请实施例对此不作限制。
示例性的,前置处理模块确定第i组描述信息的方式,可以参照上文的描述,在此不再赘述。
参照图4b,示例性的,图像预处理模块用于执行S501~S512中对第m帧图像进行处理,以及将处理后的第m帧图像或第m帧图像输入至编码器的步骤,多尺度决策模块用于执行S501~S512中除图像预处理模块所执行的步骤之外的步骤,以及执行将第i组编码参数和第m帧图像输入至图像预处理模块的步骤,可以参照上文的描述,在此不再赘述。
此外,多尺度编码决策模块确定第m帧图像的第i组描述信息后,还可以将第m帧图像的第i组描述信息输入至数据封装模块,这可以参照上文中的描述,在此不再赘述。
示例性的,也可以是由前置处理模块执行S501~S512,即不将前置处理模块进行划分为多尺度编码决策模块和图像预处理模块,如图3所示。
图5b为示例性示出的编码示意图。参照图5b,视频流包括e(e为正整数)帧图像,如图像1、图像2......图像e。
参照图5b(1),示例性的,针对图像1,多尺度编码模块对图像1进行3种编码尺度的编码,得到3种编码尺度的码流数据。
参照图5b(1),示例性的,多尺度编码模块可以先按照第1种编码尺度对应的编码参数中的分辨率,对图像1进行采样,得到图像1A。然后按照第1种编码尺度对应的编码参数对图像1A进行编码,得到第1种编码尺度的码流数据。参照图5b(2),示例性的,针对图像1对应第1种编码尺度的码流数据进行解码,得到图像1a,图像1a是图像1A对应的重建图像。
参照图5b(1),示例性的,多尺度编码模块可以先按照第2种编码尺度对应的编码参数中的分辨率,对图像1进行采样,得到图像1B。然后按照第2种编码尺度对应的编码参数对图像1B进行编码,得到第1种编码尺度的码流数据。参照图5b(2),示例性的,针对图像1对应第2种编码尺度的码流数据进行解码,得到图像1b,图像1b是图像1B对应的重建图像。
参照图5b(1),示例性的,多尺度编码模块按照第3种编码尺度对应的编码参数,对图像1进行编码,得到第3种编码尺度的码流数据。参照图5b(2),示例性的,针对图像1对应第3种编码尺度的码流数据进行解码,得到图像1',图像1'是图像1对应的重建图像。
示例性的,可以从图像1a、图像1b和图像1'中选择一帧图像进行显示。
示例性的,多尺度编码模块对图像2进行2种编码尺度的编码,得到2种编码尺度的码流数据。
参照图5b(1),示例性的,多尺度编码模块可以先按照第1种编码尺度对应的编码参数中的分辨率,对图像2进行采样,得到图像2A。然后按照第1种编码尺度对应的编码参数对图像2A进行编码,得到第1种编码尺度的码流数据。参照图5b(2),示例性的,针对图像2对应第1种编码尺度的码流数据进行解码,得到图像2a,图像2a是图像2A对应的重建图像。
参照图5b(1),示例性的,多尺度编码模块按照第2种编码尺度对应的编码参数,对图像2进行编码,得到第2种编码尺度的码流数据。参照图5b(2),示例性的,针对图像2对应第2种编码尺度的码流数据进行解码,得到图像2',图像2'是图像2对应的重建图像。
示例性的,可以从图像2a和图像2'中选择一帧图像进行显示。
示例性的,多尺度编码模块对图像e进行单尺度编码,得到对应的码流数据。然后可以对图像e对应的码流数据进行解码,得到图像e',图像e'是图像e对应的重建图像,然后可以直接将图像e'输出显示。
这样,通过结合每帧图像对应码流数据对编解码中的重要程度,以及对网络的冲击程度,确定视频流中需要多尺度编码的图像。对重要的和/或容易对网络产生冲击的图像,可以确定需要进行多尺度编码,其中,可以将这类的图像编码成一个数据量较小的码流数据,以及将这类的图像编码成一个或者多个数据量较大。进而,可以让低编码尺度的码流数据有更高的概率到达解码端,保证整个播放的流畅,无花屏。对于高编码尺度的码流数据,如果丢失,不会影响播放端的正常解码播放,不产生花屏;如果能够到达解码端,也能提升播放的画质。而对于不重要和/或对网络冲击小的图像,不进行多尺度编码,该数据如果丢失,对解码重建的影响和用户主观影响较小。
此外,由于多尺度编码会影响编码压缩效率,增加编码计算时间,所以对部分图像不进行多尺度编码,能降低多尺度编码对压缩率和计算的影响。
此外,当图像以源分辨率进行编码的画质低于或等于图像一低于源分辨率进行编码的画质时,可以降低图像编码的分辨,以降低对应码流数据的码率,从而减少低码率时的块效应,提升画质且还可以降低编码器的计算量。
需要说明的是,当编码器具有下采样功能时,前置处理模块可以无需对图像进行下采样,而是将源分辨率、目标编码分辨率、量化参数和参考帧信息输入至编码器中,由编码器依据源分辨率和目标编码分辨率,确定是否需要对图像进行下采样。编码器依据源分辨率和目标编码分辨率,确定需要对图像进行下采样时,可以按照目标编码分辨率对图像进行下采样,然后编码器再按照编码参数中的其他参数,对下采样后的图像进行编码。编码器依据源分辨率和目标编码分辨率,确定无需对图像进行下采样时,可以依据编码参数中的其他参数,对该图像进行编码。
一种可能方式中,可以对整帧图像进行低编码尺度的编码,以及对图像中的部分区域进行高编码尺度的编码,进而可以降低编码器进行高编码尺度编码的计算量,提高编码效率。
图6a为示例性示出处理过程示意图。参照图6a,示例性的,当发送设备中已有的编码器支持不同分辨率图像的编码,且接收设备中已有的解码器支持不同分辨率图像的解码时,前置处理模块的数据处理过程如下:
S601,判断是否需要对第m帧图像进行多尺度编码。
S602,确定针对第m帧图像的编码尺度N和N组编码参数。
S603,令i=1。
示例性的,S601~S603可以参照上文S301~S303的描述,在此不再赘述。
S604,判断第i组编码参数中的分辨率,是否小于第m帧图像的源分辨率。
示例性的,若第i组编码参数中的分辨率,小于第m帧图像的源分辨率,则执行S605。若第i组编码参数中的分辨率,等于第m帧图像的源分辨率,则执行S610。
S605,按照第i组编码参数中的分辨率,对第m帧图像进行下采样。
示例性的,S605可以参照上文S505的描述,在此不再赘述。
S606,判断i是否大于尺度分界阈值。
示例性的,若i小于或等于尺度分界阈值,可以执行S607。若i大于尺度分界阈值,可以执行S608。
示例性的,S606可以参照S604的描述,在此不再赘述。
示例性的,本申请实施例不限制S604和S606的执行顺序。
S607,将第i组编码参数和下采样后的第m帧图像输入至编码器。
示例性的,S607可以参照上文S506,在此不再赘述。
S608,确定下采样后的第m帧图像中的目标区域,从下采样后的第m帧图像中提取出目标区域的图像。
S609,将第i组编码参数和下采样后的第m帧图像的目标区域的图像输入至编码器。
示例性的,S608~S609可以参照上文S405~S406中的描述,在此不再赘述。
S610,确定第m帧图像中的目标区域,从第m帧图像中提取出目标区域的图像。
S611,将第i组编码参数和第m帧图像的目标区域的图像输入至编码器。
示例性的,S610~S611可以参照上文S405~S406中的描述,在此不再赘述。
S612,判断i是否等于N。
S613,将i加1。
S614,确定单尺度编码对应的编码参数。
S615,将单尺度编码对应的编码参数和第m帧图像输入至编码器。
S616,将m加1。
示例性的,S612~S616可以参照上文中S305~S309,在此不再赘述。
参照图4b,图像预处理模块用于执行S601~S616中对第m帧图像进行处理,以及将处理后的第m帧图像或第m帧图像输入至编码器的步骤,多尺度决策模块用于执行S601~S616中除图像预处理模块所执行的步骤之外的步骤,以及执行将第i组编码参数和第m帧图像输入至图像预处理模块的步骤,可以参照上文的描述,在此不再赘述。
继续参照图4b,示例性的,若对第m帧图像进行了多尺度编码,则后置处理模块接收的解码器重建图像包括:第m帧图像在最低编码尺度上的重建图像和目标区域的图像在其他编码尺度上重建图像。
示例性的,当后置处理模块选择第m帧图像在第i种编码尺度(除最低编码尺度之外的任一编码尺度)上重建图像,输出至显示模块时,可以按照第i种编码尺度的分辨率,对第m帧图像在最低编码尺度上的重建图像进行上采样,得到上采样图像IMG_UP0。再采用目标区域在第i种编码尺度上重建图像,替换上采样图像IMG_UP0中目标区域的图像,得到第m帧图像在第i种编码尺度上的重建图像。然后将第m帧图像在第i种编码尺度上的重建图像输出至显示模块,由显示模块进行显示。
图6b为示例性示出的处理过程示意图。参照图6b,视频流包括e(e为正整数)帧图像,如图像1、图像2......图像e。
参照图6b(1),示例性的,多尺度编码模块对图像1进行3种编码尺度的编码,得到3种编码尺度的码流数据。
参照图6b(1),示例性的,针对图像1,多尺度编码模块可以先按照第1种编码尺度对应的编码参数中的分辨率,对图像1进行下采样,得到图像1a。然后按照第1种编码尺度对应的编码参数对图像1a进行编码,得到第1种编码尺度的码流数据。参照图6b(2),示例性的,针对图像1对应第1种编码尺度的码流数据进行解码,得到图像1a',图像1a'是图像1a对应的重建图像。
参照图6b(1),示例性的,针对图像1,多尺度编码模块可以先按照第2种编码尺度对应的编码参数中的分辨率,对图像1进行下采样,得到图像1b。然后从图1b中提取出目标区域的R2,再按照第2种编码尺度对应的编码参数对R2进行编码,得到第2种编码尺度的码流数据。参照图6b(2),示例性的,针对图像1对应第2种编码尺度的码流数据进行解码,得到R2',R2'是R2对应的重建图像。
参照图6b(1),示例性的,针对图像1,多尺度编码模块可以先从图像1中提取出目标区域的图像R3,再按照第3种编码尺度对应的编码参数对R3进行编码,得到第3种编码尺度的码流数据。参照图6b(2),示例性的,针对图像1对应第3种编码尺度的码流数据进行解码,得到R3',R3'是R3对应的重建图像。
参照图6b(2),示例性的,针对图像1,当选择第1种编码尺度的重建图像输出时,可以将图像1a'直接输出至图像显示模块进行显示。当选择第2种编码尺度的重建图像输出时,可以按照第2种编码尺度对应编码参数中的分辨率,对图像1a'进行上采样,得到图像1b'。其中,图像1b'与图像1b的分辨率相同。然后采用R2'替换图像1b'中目标区域的图像,并输出替换后的图像1b'。当选择第3种编码尺度的重建图像输出时,可以将按照第3种编码尺度对应编码参数中的分辨率,对图像1a'进行上采样,得到图像1'。其中,图像1'与图像1的分辨率相同。然后采用R3'替换图像1'中目标区域的图像,并输出替换后的图像1'。
参照图6b(1),示例性的,多尺度编码模块对图像2进行2种编码尺度的编码,得到2种编码尺度的码流数据。
参照图6b(1),示例性的,针对图像2,多尺度编码模块可以先按照第1种编码尺度对应的编码参数中的分辨率,对图像2进行下采样,得到图像2a。然后按照第1种编码尺度对应的编码参数,对图像2a进行编码,得到第1种编码尺度的码流数据。参照图6b(2),示例性的,针对图像2对应第1种编码尺度的码流数据进行解码,得到图像2a',图像2a'是图像2a对应的重建图像。
参照图6b(1),示例性的,针对图像2,多尺度编码模块可以先从图像2中提取出目标区域的Q2,再按照第2种编码尺度对应的编码参数,对Q2进行编码,得到第2种编码尺度的码流数据。参照图6b(2),示例性的,针对图像2对应第3种编码尺度的码流数据进行解码,得到Q2',Q2'是Q2对应的重建图像。
参照图6b(2),示例性的,针对图像2,当选择第1种编码尺度的重建图像输出时,可以将图像2a'直接输出至图像显示模块进行显示。当选择第2种编码尺度的重建图像输出时,可以按照第2种编码尺度对应编码参数中的分辨率,对图像2a'进行上采样,得到图像2'。其中,图像2'与图像2的分辨率相同。然后采用Q2'替换图像2'中目标区域的图像,并输出替换后的图像2'。
示例性的,多尺度编码模块对图像e进行单尺度编码,得到对应的码流数据。然后可以对图像e对应的码流数据进行解码,得到图像e',图像e'是图像e对应的重建图像,然后可以直接将图像e'输出显示。
示例性的,当发送设备中已有的编码器不支持不同分辨率图像的编码,且接收设备中已有的解码器不支持不同分辨率图像的解码时,多尺度编码模块和多尺度解码模块的处理方法可以如下:
图7a为示例性示出了的设备结构示意图。参照图7a,发送设备中可以包括N个编码器,以及接收设备中可包括N个解码器。示例性的,发送设备中每个编码器对应支持的分辨率不同,一个编码器所支持的分辨率,可以对应一组编码参数中的分辨率。示例性的,接收设备中每个解码器对应支持的分辨率不同,一个解码器所支持的分辨率,可以对应一组编码参数中的分辨率。
图7b为示例性示出的处理过程示意图。参照图7b,示例性的,当发送设备中已有的编码器不支持不同分辨率图像的编码,且接收设备中已有的解码器不支持不同分辨率图像的解码时,前置处理模块的数据处理过程如下:
S701,判断是否需要对第m帧图像进行多尺度编码。
S702,确定针对第m帧图像的编码尺度N和N组编码参数。
示例性的,S701~S702,可以参照上文S501~S502,在此不再赘述赘述。
S703,按照第J组编码参数中的分辨率,对第m帧图像进行下采样,得到下采样图像IMG_DW1,第J组编码参数与最低编码尺度对应。
示例性的,高编码尺度的编码可以依据低编码尺度编码。示例性的,可以以最低编码尺度进行编码得到的码流数据为基础,对第m帧图像进行高编码尺度的编码。
示例性的,可以从N组编码参数中查找分辨率最低的一组编码参数,作为最低编码尺度对应的编码参数,为了便于说明,可以将最低编码尺度对应的编码参数称为第J组编码参数。然后可以按照第J组编码参数中的分辨率,对第m帧图像进行下采样,得到下采样图像。其中,为了便于区分,将按照最低编码尺度对应编码参数中的分辨率,对第m帧图像进行下采样,得到下采样图像称为IMG_DW1。
S704,将第J组编码参数和下采样图像IMG_DW1输入至第J个编码器。
示例性的,第J个编码器所支持的分辨率,与第J组编码参数中的分辨率相同。
示例性的,在对第m帧图像进行最低编码尺度的编码后,可以对第m帧图像分别进行其他编码尺度的编码,可以参照S705~S712。
示例性的,N组编码参数中除第J组编码参数外,还剩余(N-1)组编码参数。S705~S712,可以从这(N-1)组编码参数中,每次选取一组编码参数和对应待编码的图像,输入至对应的编码器中进行编码。
S705,令i等于1。
S706,按照第i组编码参数中的分辨率,对下采样图像IMG_DW1进行上采样,得到上采样图像IMG_UP1。
示例性的,可以按照第i组编码参数中的分辨率,对下采样图像IMG_DW1进行插值,来进行上采样,得到上采样图像IMG_UP1,其中,本申请实施例不限制上采样的方式。
S707,判断第i组编码参数中的分辨率,是否小于第m帧图像的源分辨率。
示例性的,若第i组编码参数中的分辨率小于第m帧图像的源分辨率,则执行S708。若第i组编码参数中的分辨率等于第m帧图像的源分辨率,则执行S710。
S708,按照第i组编码参数中的分辨率,对第m帧图像进行下采样,得到下采样图像IMG_DW2。
示例性的,可以按照第i组编码参数中的分辨率,对第m帧图像进行下采样,得到下采样图像IMG_DW2。
S709,确定上采样图像IMG_UP1与下采样图像IMG_DW2的差值图像。
示例性的,上采样图像IMG_UP1和下采样图像IMG_DW2的分辨率相同,可以将上采样图像IMG_UP1与下采样图像IMG_DW2对应像素点的像素值做差值,得到差值图像。
S710,确定上采样图像IMG_UP1与第m帧图像的差值图像。
示例性的,S710可以按照S709的描述,在此不再赘述。
S711,将第i组编码参数和差值图像输入至第i个编码器。
示例性的,第i个编码器支持的分辨率与第i组编码参数中的分辨率相同。
S712,判断i是否等于(N-1)。
示例性的,S712可以参照S305的描述,在此不再赘述。
示例性的,若i等于(N-1),则执行S716。若i不等于N,则返回执行S706。
S713,将i加1。
S714,确定单尺度编码对应的编码参数。
S715,将单尺度编码对应的编码参数和第m帧图像输入至编码器。
S716,将m加1。
示例性的,S713~S716可以参照上述S306~S309,在此不再赘述。
需要说明的是,同一个视频业务的视频流中的不同图像的编码尺度N可以相同,也可以不同。同一个视频业务的视频流中部分图像可以进行多尺度编码,另一部分图像可以进行单尺度编码,本申请实施例对此不作限制。
参照图4b,图像预处理模块用于执行S701~S716中对第m帧图像进行处理,以及将处理后的第m帧图像或第m帧图像输入至编码器的步骤,多尺度决策模块用于执行S701~S716中除图像预处理模块所执行的步骤之外的步骤,以及执行将第i组编码参数和第m帧图像输入至图像预处理模块的步骤,可以参照上文的描述,在此不再赘述。
参照图7a,接收设备的数据接收模块接收到封装后的描述数据和码流数据后,可以将封装后的描述数据和码流数据输入至数据解析模块,由数据解析模块对封装后的描述数据和码流数据进行解封装,得到码流数据和描述数据。
示例性的,数据解析模块可以将第i组码流数据,输入至第i个解码器中,由第i个解码器基于第i组码流数据进行图像重建,得到重建图像。
示例性的,每个解码器得到重建图像后,均可以将重建图像输入至后置处理模块。
示例性的,后置处理模块接收的重建图像包括:下采样图像IMG_DW1的重建图像和差值图像的重建图像。
示例性的,当后置处理模块选择第J种编码尺度(也就是最低编码尺度)对应的重建图像进行显示时,可以直接将下采样图像IMG_DW1的重建图像输出至显示模块。
示例性的,当后置处理模块选择第i种编码尺度(除最低编码尺度外的任一其他编码尺度)对应的重建图像输出至显示模块时,可以按照第i种编码尺度的分辨率将下采样图像IMG_DW1的重建图像进行上采样,得到上采样图像IMG_UP2。然后可以将上采样图像IMG_UP2与第i种编码尺度的重建图像进行叠加,得到第m帧图像在第i种编码尺度上的重建图像。然后将第m帧图像在第i种编码尺度上的重建图像,输入至显示模块。
示例性的,对于除最低编码尺度之外的其他编码尺度而言,可以将差值图像的目标区域的图像输入对应的编码器中进行编码,进一步降低编码器的计算量。这可以参照上文中的描述,在此不再赘述。
示例性的,后置处理模块接收的重建图像包括:下采样图像IMG_DW1的重建图像和差值图像中目标区域的图像的重建图像。
示例性的,当后置处理模块选择第i种编码尺度(除最低编码尺度外的任一其他编码尺度)对应的重建图像输出至显示模块时,可以按照第i种编码尺度的分辨率将下采样图像IMG_DW1的重建图像进行上采样,得到上采样图像IMG_UP2。然后可以将上采样图像IMG_UP2与第i种编码尺度的重建图像进行叠加,得到第m帧图像在第i种编码尺度上的重建图像。然后将第m帧图像在第i种编码尺度上的重建图像,输入至显示模块。
图7c为示例性示出的处理过程示意图。参照图7c,视频流包括e(e为正整数)帧图像,如图像1、图像2......图像e。
参照图7c(1),示例性的,多尺度编码模块对图像1进行3种编码尺度的编码,得到3种编码尺度的码流数据。
参照图7c(1),示例性的,针对图像1,多尺度编码模块可以先按照第1种编码尺度对应的编码参数中的分辨率,对图像1进行下采样,得到图像1A。然后按照第1种编码尺度对应的编码参数,对图像1A进行编码,得到第1种编码尺度的码流数据。参照图7c(2),示例性的,针对图像1对应第1种编码尺度的码流数据进行解码,得到图像1a,图像1a是图像1A对应的重建图像。
参照图7c(1),示例性的,针对图像1,多尺度编码模块可以先按照第2种编码尺度对应的编码参数中的分辨率,对图像1进行下采样,得到图像1B。然后按照第2种编码尺度对应的编码参数中的分辨率,对图像1A进行上采样,得到图像1B'。再确定图像1B和图像1B'的差值图像1B。接着,按照第2种编码尺度对应的编码参数对差值图像1B进行编码,得到第2种编码尺度的码流数据。参照图7c(2),示例性的,针对图像1对应第2种编码尺度的码流数据进行解码,得到差值图像1b,差值图像1b是差值图像1B对应的重建图像。
参照图7c(1),示例性的,针对图像1,多尺度编码模块可以先按照第3种编码尺度对应的编码参数中的分辨率,对图像1A进行上采样,得到图像1C',再确定图像1和图像1C'的差值图像1C。接着,按照第3种编码尺度对应的编码参数对差值图像1C进行编码,得到第3种编码尺度的码流数据。参照图7c(2),示例性的,针对图像1对应第3种编码尺度的码流数据进行解码,得到差值图像1c,差值图像1c是差值图像1C对应的重建图像。
参照图7c(2),示例性的,针对图像1,当选择第1种编码尺度的重建图像输出时,可以将图像1a直接输出至图像显示模块进行显示。当选择第2种编码尺度的重建图像输出时,可以按照第2种编码尺度对应编码参数中的分辨率,对图像1a进行上采样,得到图像1a'。其中,图像1a'与差值图像1b的分辨率相同。然后将差值图像1b与图像1a'进行叠加,得到图像1b'并输出。当选择第3种编码尺度的重建图像输出时,可以按照第3种编码尺度对应编码参数中的分辨率,对图1a进行上采样,得到图像1a”。其中,图像1a”与差值图像1c的分辨率相同。然后将差值图像1c与图像1a”进行叠加,得到图像1c'并输出。
参照图7c(1),示例性的,多尺度编码模块对图像2进行2种编码尺度的编码,得到2种编码尺度的码流数据。
参照图7c(1),示例性的,针对图像2,多尺度编码模块可以先按照第1种编码尺度对应的编码参数中的分辨率,对图像2进行下采样,得到图像2A。然后按照第1种编码尺度对应的编码参数对图像2A进行编码,得到第1种编码尺度的码流数据。参照图7c(2),示例性的,针对图像2对应第1种编码尺度的码流数据进行解码,得到图像2a,图像2a是图像2A对应的重建图像。
参照图7c(1),示例性的,针对图像2,多尺度编码模块可以先按照第2种编码尺度对应的编码参数中的分辨率,对图像2A进行上采样,得到图像2B,再确定图像2和图像2B的差值图像2B。接着,按照第2种编码尺度对应的编码参数对差值图像2B进行编码,得到第3种编码尺度的码流数据。参照图7c(2),示例性的,针对图像2对应第3种编码尺度的码流数据进行解码,得到差值图像2b,差值图像2b是差值图像2B对应的重建图像。
参照图7c(2),示例性的,针对图像2,当选择第1种编码尺度的重建图像输出时,可以将图像2a直接输出至图像显示模块进行显示。当选择第2种编码尺度的重建图像输出时,可以按照第2种编码尺度对应编码参数中的分辨率,对图像2a进行上采样,得到图像2a'。其中,图像2a'与差值图像2b的分辨率相同。然后将差值图像2b与图像2a'进行叠加,得到图像2b'并输出。
示例性的,多尺度编码模块对图像e进行单尺度编码,得到对应的码流数据。然后可以对图像e对应的码流数据进行解码,得到图像e',图像e'是图像e对应的重建图像,然后可以直接将图像e'输出显示。
需要说明的是,上述表15~表17示出的是,在预设每种编码尺度对应的编码参数时,针对一种分辨率仅设置了一种量化参数;应当理解的是,在预设每种编码尺度对应的编码参数时,针对一种分辨率可以设置多种量化参数,具体可以按照需求设置,本申请实施例对此不作限制。
例如,针对表1中的N=2,可以预置两种编码尺度对应的编码参数,如表24所示:
表24
Figure BDA0003236279930000421
其中,表24中不同编码尺度的分辨率相同,量化参数也不同。
例如,针对表1中的N=3,可以预置三种编码尺度对应的编码参数,如表25所示:
表25
Figure BDA0003236279930000431
其中,表25中不同编码尺度的分辨率相同,量化参数也不同。
例如,针对表1中的N=4,可以预置其中四种编码尺度对应的编码参数,如表26所示:
表26
Figure BDA0003236279930000432
其中,表26中不同编码尺度的分辨率相同,量化参数也不同。
需要说明的是,上述表18~表23示出的是,根据编码尺度N、第m帧图像的图像复杂度、当前的网络传输能力和编码器的参数取值范围中的至少两种,确定每种编码尺度对应的编码参数时,针对一种分辨率仅确定了一种量化参数。但是,应该理解的是,根据编码尺度N、第m帧图像的图像复杂度、当前的网络传输能力和编码器的参数取值范围中的至少两种,来确定每种编码尺度对应的编码参数时,也可以针对每种分辨率确定多种量化参数,在此不再一一举例说明。
应当理解的是,针对属于同一视频数据的不同图像,在确定某一帧图像需要进行多尺度编码时,确定的每组编码参数可以包括量化参数和参考帧信息;在确定另一帧图像需要进行多尺度编码时,确定的每组编码参数可以包括分辨率、量化参数和参考帧信息。也就是说,针对属于同一帧视频数据的需要进行多尺度编码的不同图像,确定的编码参数所包含的参数种类可以相同,也可以不同,本申请实施例对此不作限制。
一个示例中,图8示出了本申请实施例的一种装置800的示意性框图装置800可包括:处理器801和收发器/收发管脚802,可选地,还包括存储器803。
装置800的各个组件通过总线804耦合在一起,其中总线804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线804。
可选地,存储器803可以用于前述方法实施例中的指令。该处理器801可用于执行存储器803中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置800可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(proceSor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(readonly memory,ROM)、随机存取存储器(random acceS memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(RandomAcceS Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (31)

1.一种编码方法,其特征在于,包括:
获取待编码的图像;
确定针对所述图像的编码尺度N,其中,N为大于1的整数;
确定所述N种编码尺度对应的N组编码参数,其中,每种编码尺度对应一组编码参数;
根据所述N组编码参数,采用预先设置的单尺度编码器对所述图像进行N次编码,以得到N组码流数据。
2.根据权利要求1所述的方法,其特征在于,所述的方法还包括:
根据所述图像对所属视频数据中其他图像的编解码重要程度满足第一预设条件,和/或,所述图像对应的码流数据对网络的冲击程度满足第二预设条件,和/或,所述图像的预测画质满足第三预设条件,确定需要对所述图像进行多尺度编码。
3.根据权利要求2所述的方法,其特征在于,所述第一预设条件包括以下至少一种:
所述图像是I帧或IDR帧;
所述图像是场景切换帧;
所述图像是参考帧;
所述图像是关键帧。
4.根据权利要求2所述的方法,其特征在于,所述第二预设条件包括以下至少一种:
所述图像对应码流数据的数据量,大于预设数据量阈值;
所述图像对应码流数据的数据量,大于网络传输能力。
5.根据权利要求2所述的方法,其特征在于,
所述图像的预测画质包括第一预测画质和第二预测画质,所述第一预测画质是预测的所述图像按照所述图像的源分辨率进行编码的画质,所述第二预测画质是预测的所述图像按照低于所述源分辨率的分辨率进行编码的画质;
所述第三预设条件包括:
所述第一预测画质低于或等于所述第二预测画质。
6.根据权利要求1至5任一所述的方法,其特征在于,所述编码参数包括以下至少一种:分辨率、量化参数、参考帧信息、目标码率。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述确定针对所述图像的编码尺度N,包括:
根据所述图像的图像类型,以及预先设定的图像类型与编码尺度的对应关系,确定所述编码尺度N。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述确定针对所述图像的编码尺度N,包括:
根据预先针对所述图像所属视频数据中各图像设置的编码尺度,确定针对所述图像的编码尺度N。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述确定所述N种编码尺度对应的N组编码参数,包括:
根据所述编码尺度N和所述编码器的参数取值范围,确定所述N组编码参数。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述编码参数包括参考帧信息,当接收到第一反馈信息,根据所述第一反馈信息确定所述参考帧信息,所述第一反馈信息指示已发送码流数据对应的编码帧被成功接收,所述编码帧被确认为所述参考帧,所述参考帧信息用于指示所述参考帧。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述编码参数包括分辨率,所述根据所述N组编码参数,采用预先设置的单尺度编码器对所述图像进行N次编码中的第i次编码,包括:
当第i组编码参数中的分辨率等于所述图像的源分辨率时,将所述第i组编码参数和所述图像输入所述预先设置的单尺度编码器以进行编码;
当第i组编码参数中的分辨率小于所述图像的源分辨率时,将所述图像下采样到所述第i组编码参数中的分辨率,将所述第i组编码参数和所述下采样之后的图像输入所述预先设置的单尺度编码器以进行编码;
其中,所述第i次编码对应的编码参数为所述第i组编码参数,i为1至N之间的任一整数。
12.一种数据封装方法,其特征在于,包括:
获取编码器对图像进行编码得到的码流数据,以及所述码流数据的描述信息;
将所述码流数据和所述码流数据的描述信息进行封装,得到封装后的数据,以存储和/或传输所述封装后的数据。
13.根据权利要求12所述的方法,其特征在于,所述描述信息包括尺度标识信息,所述方法还包括:
依据所述尺度标识信息,确定所述码流数据对应的编码尺度为最低编码尺度时,确定所述码流数据的传输策略为第一传输策略;
依据所述尺度标识信息,确定所述码流数据对应的编码尺度为其他编码尺度时,确定所述码流数据的传输策略为第二传输策略;
其中,所述第一传输策略优于第二传输策略。
14.根据权利要求12至13任一项所述的方法,其特征在于,所述描述信息包括以下至少一种:尺度标识信息、帧类型、帧标识信息。
15.一种显示方法,其特征在于,包括:
获取解码器对码流数据进行解码得到的多个重建图像,以及获取所述多个重建图像对应的多组描述信息,所述多组描述信息中的至少一组描述信息包括第一帧标识信息;
若所述多组描述信息中仅存在一组描述信息包括所述第一帧标识信息,则选择所述第一帧标识信息对应的重建图像进行显示;
若所述多组描述信息中存在至少两组描述信息包括所述第一帧标识信息,则从所述第一帧标识对信息对应的至少两个重建图像中选取一个重建图像,显示所述选取的重建图像。
16.根据权利要求15所述的方法,其特征在于,所述描述信息还包括尺度标识信息,所述从所述第一帧标识信息对应的多个重建图像中选取一个重建图像,包括:
依据所述第一帧标识信息对应重建图像的尺度标识信息,选择编码尺度最高的重建图像。
17.根据权利要求15所述的方法,其特征在于,所述描述信息还包括尺度标识信息,所述从所述第一帧标识信息对应的多个重建图像中选取一个重建图像,包括
依据所述第一帧标识信息对应重建图像的尺度标识信息,选择尺度标识信息与之前显示的重建图像的尺度标识信息最接近的重建图像。
18.根据权利要求15至17任一项所述方法,其特征在于,
所述描述信息通过对接收到的数据进行解封装得到,其中,对接收到的数据进行解封装的数据还包括所述码流数据。
19.一种多尺度编码装置,其特征在于,所述多尺度编码装置包括前置处理模块和单尺度编码器,
所述前置处理模块,用于获取待编码的图像;确定针对所述图像的编码尺度N,其中,N为大于1的整数;确定所述N种编码尺度对应的N组编码参数,其中,每种编码尺度对应一组编码参数;将所述N组编码参数和所述图像输入至所述单尺度编码器;
所述单尺度编码器,用于根据所述N组编码参数,采用预先设置的单尺度编码器对所述图像进行N次编码,以得到N组码流数据。
20.根据权利要求19所述的装置,其特征在于,
所述前置处理模块,用于根据所述图像对所属视频数据中其他帧的编解码重要程度满足第一预设条件,和/或,所述图像对应的码流数据对网络的冲击程度满足第二预设条件,和/或,所述图像的预测画质满足第三预设条件,确定需要对所述图像进行多尺度编码。
21.根据权利要求20所述的装置,其特征在于,所述第一预设条件包括以下至少一种:
所述图像是I帧或IDR帧;
所述图像是场景切换帧;
所述图像是参考帧;
所述图像是关键帧。
22.根据权利要求20所述的装置,其特征在于,所述第二预设条件包括以下至少一种:
所述图像对应码流数据的数据量,大于预设数据量阈值;
所述图像对应码流数据的数据量,大于网络传输能力。
23.根据权利要求20所述的装置,其特征在于,所述图像的预测画质包括第一预测画质和第二预测画质,所述第一预测画质是预测的所述图像按照所述图像的源分辨率进行编码的画质,所述第二预测画质是预测的所述图像按照低于所述源分辨率的分辨率进行编码的画质;所述第三预设条件包括:所述第一预测画质低于或等于所述第二预测画质。
24.根据权利要求19至23任一项所述的装置,其特征在于,
所述前置处理模块,用于根据所述图像的图像类型,以及预先设定的图像类型与编码尺度的对应关系,确定所述编码尺度N。
25.根据权利要求19至24任一项所述的装置,其特征在于,
所述前置处理模块,用于根据所述编码尺度N和所述编码器的参数取值范围,确定所述N组编码参数。
26.根据权利要求19至25任一项所述的装置,其特征在于,所述编码参数包括参考帧信息,当接收到第一反馈信息,根据所述第一反馈信息确定所述参考帧信息,所述第一反馈信息指示已发送码流数据对应的编码帧被成功接收,所述编码帧被确认为所述参考帧,所述参考帧信息用于指示所述参考帧。
27.一种多尺度解码装置,其特征在于,所述多尺度解码装置包括解码器和后置处理模块,
所述解码器,用于对码流数据进行解码得到的多个重建图像,将所述多个重建图像输入至所述后置处理模块;
所述后置处理模块,用于获取所述解码器对码流数据进行解码得到的多个重建图像,以及获取所述多个重建图像对应的多组描述信息,所述多组描述信息中的至少一组描述信息包括第一帧标识信息;若所述多组描述信息中仅存在一组描述信息包括所述第一帧标识信息,则选择所述第一帧标识信息对应的重建图像输入至显示模块进行显示;若所述多组描述信息中存在至少两组描述信息包括所述第一帧标识信息,则从所述第一帧标识信息对应的至少两个重建图像中选取一个重建图像,以及将所述选取的重建图像输入至所述显示模块进行显示。
28.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1至权利要求18中任一项所述的方法。
29.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1至权利要求18中任一项所述的方法。
30.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序运行在计算机或处理器上时,使得所述计算机或所述处理器执行如权利要求1至权利要求18任一项所述的方法。
31.一种计算机程序产品,其特征在于,所述计算机程序产品包含软件程序,当所述软件程序被计算机或处理器执行时,使得权利要求1至18任一项所述的方法的步骤被执行。
CN202111003288.4A 2021-08-30 2021-08-30 编码、封装及显示方法、装置及电子设备 Pending CN115733986A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111003288.4A CN115733986A (zh) 2021-08-30 2021-08-30 编码、封装及显示方法、装置及电子设备
PCT/CN2022/113966 WO2023030070A1 (zh) 2021-08-30 2022-08-22 编码、封装及显示方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111003288.4A CN115733986A (zh) 2021-08-30 2021-08-30 编码、封装及显示方法、装置及电子设备

Publications (1)

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

Family

ID=85290724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111003288.4A Pending CN115733986A (zh) 2021-08-30 2021-08-30 编码、封装及显示方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN115733986A (zh)
WO (1) WO2023030070A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5821986A (en) * 1994-11-03 1998-10-13 Picturetel Corporation Method and apparatus for visual communications in a scalable network environment
US5623308A (en) * 1995-07-07 1997-04-22 Lucent Technologies Inc. Multiple resolution, multi-stream video system using a single standard coder
KR100596705B1 (ko) * 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
CN102111644A (zh) * 2009-12-24 2011-06-29 华为终端有限公司 媒体传输控制方法、装置及系统
US10764602B2 (en) * 2016-01-25 2020-09-01 Koninklijke Kpn N.V. Spatial scalable video coding

Also Published As

Publication number Publication date
WO2023030070A1 (zh) 2023-03-09

Similar Documents

Publication Publication Date Title
US11196989B2 (en) Video encoding method, device and storage medium using resolution information
KR100990565B1 (ko) 하나의 비디오 파일에서 비디오 데이터의 다중 투사를처리하는 시스템 및 방법
CN106464864B (zh) 图像处理装置及方法
US11558639B2 (en) Selective resolution video encoding method, computer device, and readable storage medium
US20090190844A1 (en) Method for scalably encoding and decoding video signal
WO2021057481A1 (zh) 视频编解码方法和相关装置
CN110121065B (zh) 空间排序视频编码应用中的多向图像处理
US9503751B2 (en) Method and apparatus for simplified depth coding with extended prediction modes
US10284810B1 (en) Using low-resolution frames to increase frame rate of high-resolution frames
US20150365698A1 (en) Method and Apparatus for Prediction Value Derivation in Intra Coding
CN108848377B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN112465698A (zh) 一种图像处理方法和装置
US20190141332A1 (en) Use of synthetic frames in video coding
WO2021057705A1 (zh) 视频编解码方法和相关装置
US20100278268A1 (en) Method and device for video coding and decoding
US11979577B2 (en) Video encoding method, video decoding method, and related apparatuses
US20060159176A1 (en) Method and apparatus for deriving motion vectors of macroblocks from motion vectors of pictures of base layer when encoding/decoding video signal
CN115733986A (zh) 编码、封装及显示方法、装置及电子设备
CN114222127A (zh) 一种视频编码方法、视频解码方法及装置
CN110582022B (zh) 视频编解码方法和装置及存储介质
WO2023287315A1 (en) Video coding with dynamic groups of pictures
CN110636293B (zh) 视频编码、解码方法和装置、存储介质及电子装置
CN110677721A (zh) 视频编解码方法和装置及存储介质
CN110572677A (zh) 视频编解码方法和装置、存储介质及电子装置
US20060133499A1 (en) Method and apparatus for encoding video signal using previous picture already converted into H picture as reference picture of current picture and method and apparatus for decoding such encoded video signal

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