视频编码方法和视频编码器的制作方法

文档序号:7722423阅读:275来源:国知局
专利名称:视频编码方法和视频编码器的制作方法
技术领域
本发明实施例涉及通信技术,尤其涉及一种视频编码方法和视频编码器。
背景技术
目前,视频业务在互联网和移动通信领域中的应用迅速发展。视频业务需要先对源视频文件进行编码,将编码后的视频文件通过互联网或移动通信网络的信道传输给用户终端。现有的视频编码方法采用分辨率固定而量化步长可调的方式,在编码过程中,始终采用预先设定的分辨率进行编码,可以对量化步长进行调整。这种编码方法在信道稳定、带宽充足的情况下,可以保证视频的高质量传输。但是,由于互联网和移动通信网络中的信道带宽较窄,并且信道的稳定性差,因此,采用现有的视频编码方法会导致视频出现严重的 块效应,视频编码的质量差。

发明内容
本发明实施例提供一种视频编码方法,用以解决现有技术中的缺陷,提高视频编
码质量。本发明实施例还提供一种视频编码器,用以解决现有技术中的缺陷,提高视频编
码质量。本发明实施例提供一种视频编码方法,包括判断当前帧是否适应当前信道带宽,如果是,判断当前帧不是立即刷新IDR帧,否贝U,判断当前帧是IDR帧;当当前帧是IDR帧时,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率,以所述最优分辨率对当前帧进行编码;当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。本发明实施例还提供一种视频编码器,包括判断单元,用于判断当前帧是否适应当前信道带宽,如果是,判断当前帧不是立即刷新IDR帧,否则,判断当前帧是IDR帧;分辨率选择单元,用于当当前帧是IDR帧时,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率;编码单元,用于当当前帧是IDR帧时,以所述最优分辨率对当前帧进行编码;当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。由上述技术方案可知,本发明实施例通过根据预设的IDR帧判断条件确定当前帧是否为IDR帧,在IDR帧处选择最优分辨率进行编码;在非IDR帧处以前一帧的分辨率进行编码。预设的IDR帧判断条件与受信道带宽影响的编码性能有关,通过在编码过程中的每个IDR帧进行分辨率选择,从而能够及时根据当前信道状况选择最适合的分辨率,避免了采用固定分辨率导致的窄带情况下的块效应,从而提高了视频编码的质量。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例一的视频编码方法的流程图;图2为本发明实施例二的视频编码方法的流程图;图3为本发明实施例三的视频编码方法中选择最优分辨率的流程图;图4为本发明实施例四的视频编码方法中选择最优分辨率的流程图; 图5为本发明实施例五的视频编码器的结构示意图;图6为本发明实施例六的视频编码器的结构示意图;图7为本发明实施例七的视频编码器的结构示意图;图8为本发明实施例八的视频编码器的硬件实现原理图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图I为本发明实施例一的视频编码方法的流程图。如图I所示,该方法包括如下过程。步骤101 :判断当前帧是否适应当前信道带宽。如果是,判断当前巾贞不是立即刷新(Instantaneous Decoding Refresh,简称IDR)帧,执行步骤103。否则,判断当前帧是IDR帧,执行步骤102。步骤102 :当当前帧是IDR帧时,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率,以该最优分辨率对当前帧进行编码。步骤103 :当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。其中,采样分辨率为对采用原始分辨率的当前帧进行采样后的分辨率,具体的可以采用多种采样方式。当前帧的前一帧的分辨率也是采用本发明实施例一的方法进行选择得到的,有可能是当前帧的前一帧的采样分辨率,也有可能是当前帧的前一帧的原始分辨率,还有可能是当前帧前面第二帧的分辨率。在本发明实施例一中,首先根据当前帧是否适应当前信道带宽来判断当前帧是否为IDR帧,如果当前帧是IDR帧,则从采样分辨率和当前帧的原始分辨率中选择最优的分辨率进行编码,如果当前帧不满足该条件,则以前一帧的分辨率进行编码。IDR帧判断条件与当前帧是否适应当前信道带宽有关,因此,能够及时地根据当前信道状况选择最适合的分辨率,从而避免了采用固定的分辨率导致的块效应,提高了视频编码的质量。图2为本发明实施例二的视频编码方法的流程图。如图2所示,该方法包括如下过程。步骤201 :获取当前帧。在本步骤中,对一个视频进行编码时,在首次执行本步骤时,采用该视频的第一帧作为当前帧;在非首次执行本步骤时,采用上一次作为当前帧的帧的下一帧,作为此次获取的当前帧。步骤202 :判断当前帧是否适应当前信道带宽。 如果是,判断当前帧不是IDR帧,执行步骤204。否则,判断当前帧是IDR帧,执行步骤203。。在本步骤中,通过判断当前帧是否适应当前信道带宽来设置IDR帧。一种较佳的实施方式是,判断当前帧是否适应当前信道带宽的具体判断条件至少包括以下各项之一条件I :当前帧的帧号与上一个IDR帧的帧号超过预设的图像组(Group ofPictures,简称GOP)最大间隔。当前帧的帧号与上一个IDR帧的帧号超过预设的GOP最大间隔,则说明当前与上一次分辨率选择间隔较久。采用条件I可以避免下述情况图像内容缓慢变化,虽然图像内容变化程度没有构成场景切换,但是与上一次分辨率选择中的图像内容相比,已经发生重大变化。因此,在上述情况下,判定为当前帧不适应当前信道带宽,从而将当前帧判定为IDR帧,需要重新选择分辨率。并且,采用条件I还可以避免以下情况信道带宽发生缓慢变化,虽然信道带宽的变化情况没有达到下述条件3中的阈值,但是与上一次分辨率选择中的信道带宽情况相比,已经发生重大变化。因此,在上述情况下,判定为当前帧不适应当前信道带宽,从而将当前帧判定为IDR帧,需要重新选择分辨率。条件2 :检测到当前帧的图像相对前一帧的图像发生场景切换。当检测到当前帧的图像相对前一帧的图像发生场景切换时,图像内容发生较大变化。由于对不同图像内容编码时,对带宽的要求不同,如果图像内容复杂,则需要更高的码率,因此需要更宽的带宽。即使信道条件没有发生改变,对于图像复杂度较低的图像,其带宽足够,如果场景切换后的图像复杂度较高,则有可能同样的信道条件已经无法满足需要。因此,即使信道条件没有发生重大变化,根据场景切换的情况,也判定为当前帧不适应当前信道带宽,将当前帧判定为IDR帧,需要重新选择分辨率。条件3 :与前一帧相比,当前帧的目标码率的变化超过设定的目标码率阈值。由于信道带宽的变化会导致目标码率变化,因此,为使分辨率与信道带宽相适应,如果当前帧的目标码率的变化超过设定的目标码率阈值,判定为当前帧不适应当前信道带宽,将当前帧设为IDR帧,并重新进行分辨率选择。具体地,目标码率阈值可以根据具体应用的网络系统在通常情况下的信道带宽以及希望该视频编码方法达到的对带宽变化的灵敏度进行灵活设置。其中,条件2中检测图像场景切换的过程可以采用多种方法,现有技术中任何能够检测图像场景切换的方法均可适用。在实际应用中,可以采用其中任意一种方法或几种方法的组合进行检测。以下仅对其中两种优选的检测方法予以说明。方法一计算上一个IDR帧至当前帧的前一帧的编码后重建帧的平均亮度直方图;计算当前帧的亮度直方图。对以上两者进行比较并设定亮度直方图阈值。当当前帧的亮度直方图与上一个IDR帧至当前帧的前一帧的编码后重建帧的平均亮度直方图的差异超过设定的亮度直方图阈值时,判定当前帧的图像发生场景切换。其中,在计算上述平均亮度直方图或亮度直方图及设定亮度直方图阈值时,可采用如下所述三种方式之一第一种方式将计算中涉及的所有帧上采样或下采样到相同的分辨率后进行计算,并且设置固定的亮度直方图阈值。第二种方式将计算中涉及的所有帧不进行采样直接计算直方图,再将计算结果折算到相同的分辨率,并且设置固定的亮度直方图阈值。第三种方式将计算中涉及的所有帧不进行采样直接计算直方图,采用的亮度直方图阈值是根据当前图像大小计算得到的,例如,采用固定的阈值乘以图像大小作为亮度直方图阈值。采用上述任意方式的比较直方图的检测方法,当检测到场景切换时,说明图像内容发生了较大变化,则将平均亮度直方图清零。方法二 采用设定分辨率对当前帧进行帧间编码,当帧间编码过程中出现的帧内 编码的宏块数量或比例超过设定的宏块阈值时,判定当前帧的图像发生场景切换。当发生场景切换时,因为图像内容发生较大变化,所以将会有较多宏块采用帧内预测编码模式,因此可以根据帧内编码的宏块数量或比例判断是否发生场景切换。步骤203 :从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率,以该最优分辨率对当前帧进行编码。在本步骤中,具体的编码过程中,采用的分辨率为上述最优分辨率,编码过程中的其它具体步骤和方法可以采用现有的任意编码方法。例如,可以先根据最优分辨率对当前帧进行采样,然后再根据该最优分辨率对当前帧进行编码。在以该最优分辨率对当前帧进行编码的过程中,在确定量化参数时,具体方法是第一步,根据码率控制算法计算原始的量化参数。第二步,对计算获得的原始的量化参数增加或减少预设的偏置值,获得修正的量化参数。该修正的量化参数即为最终确定的量化参数。在根据上述方法确定了量化参数之后,采用上述修正的量化参数对当前帧进行编码。具体地,在第一步中,根据码率控制算法计算原始的量化参数时,可以根据现有的任何码率控制算法计算。具体地,本发明实施例中可以采用的现有的码率控制算法包括以下方法,但不限于以下方法通用视听业务的先进视频编码(Advanced Video Coding for GenericAudiovisual Services,即 H. 264)所采用的联合视频组(Joint Video Team,简称 JVT)的提案基于基本单兀层的自适应码率控制(Adaptive Basic Unit Layer Rate Control forJVT,即G012)、运动图像专家组制定的标准2(Moving Picture Experts Group 2,简称MPEG2)所采用校验模型(Test Model5,简称TM5)、低码率视频编码标准(Video Coding for LowBit Rate Communication,即 H. 263)校验模型(Test Model Near-Time 8,简称 TMN8)等等。在第二步中,对计算获得的原始的量化参数增加或减少预设的偏置值,获得修正的量化参数时,该预设的偏置值可以为一个固定值,该固定值可以根据图像内容、用户需求以及当前帧与前一帧的分辨率之差等实际情况灵活设置,一种较佳的实施方式是将该固定值的范围设置在4至12之间。步骤204 以前一帧的分辨率对当前帧进行编码。在本步骤中,具体的编码过程中,采用的分辨率为前一帧的分辨率,编码过程中的其它具体步骤和方法可以采用现有的任意编码方法。例如,可以先根据前一帧的分辨率对当前帧进行采样,然后再根据前一帧的分辨率对当前帧进行编码。
在以前一帧的分辨率对当前帧进行编码的过程中,可以根据现有的任何码率控制算法计算量化参数,然后采用上述量化参数对当前帧进行编码。具体地,本发明实施例中可以采用的现有的码率控制算法包括以下方法,但不限于以下方法通用视听业务的先进视频编码(Advanced Video Coding for Generic Audiovisual Services,即 H. 264)所米用的联合视频组(Joint Video Team,简称JVT)的提案基于基本单元层的自适应码率控制(Adaptive Basic Unit Layer Rate Control for JVT,即 G012)、运动图像专家组制定的标准 2(Moving Picture Experts Group 2,简称 MPEG 2)所米用校验模型(Test Model5,简称TM5)、低码率视频编码标准(Video Coding for Low Bit Rate Communication,即 H. 263)校验模型(Test Model Near-Time 8,简称 TMN8)。步骤205 :输出当前帧编码后的码流。步骤206 :判断视频是否结束。

如果是,结束流程,否则,返回执行步骤201。在本发明实施例二中,立即刷新帧的设置采用预设的IDR帧判断条件确定,该条件可以包括当前帧与上一个IDR帧的间隔、当前帧的图像是否发生场景切换、当前帧与前一帧的目标码率变化等因素。当当前帧满足该条件时,从采样分辨率和前一帧的分辨率中选择最优的分辨率进行编码。通过IDR帧判断条件确定IDR帧,因为在每个IDR帧处进行分辨率选择,并且IDR帧判断条件与受信道带宽影响的编码性能相关,因此能够及时地根据当前信道状况选择最适合的分辨率,从而避免了采用固定分辨率导致的窄带情况下的块效应,提高了视频编码的质量。并且,采用本发明实施例的视频编码方法,在IDR帧处进行分辨率选择,可以和现有标准兼容,现有的解码器可以正确解码本发明实施例所产生的码流。并且,只有在IDR帧才进行分辨率选择,避免了过分频繁的分辨率切换而导致的时域质量的下降。图3为本发明实施例三的视频编码方法中选择最优分辨率的步骤的流程图。本发明实施例三的视频编码方法采用上述本发明实施例一或本发明实施例二记载的方法。在本发明实施例一的步骤102中以及本发明实施例二的步骤203中,均包括从至少一种采样分辨率和当前的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率的步骤。在本发明实施例三中,通过一种具体的实施方式,对上述从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率的步骤进行详细说明,该步骤包括如下过程。第一步,获取至少一种采样分辨率对应的比较帧,并且,获取当前帧的原始分辨率对应的比较帧。在本步骤中,获取至少一种采样分辨率对应的比较帧与获取当前帧的原始分辨率对应的比较帧的顺序不做限制,可以同时执行,也可以按照任意顺序先后执行。获取至少一种采样分辨率对应的比较帧的具体方法为对当前帧进行至少一种分辨率下采样,获得至少一种采样分辨率。采用每一种采样分辨率对当前帧进行编码并重建。对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧。其中,至少一种采样分辨率至少包括以下各项之一 1、水平采样分辨率;2、垂直采样分辨率;3、水平及垂直采样分辨率。获取当前帧的原始分辨率对应的比较帧的具体方法为采用当前帧的原始分辨率对当前帧进行编码并重建,获得当前帧的原始分辨率对应的比较帧。第二步,计算当前帧的原始分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取当前帧的原始分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率。第三步,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率。在本发明实施例三中,米用一种优选的实施方式。在该方式中,上述至少一种米样分辨率同时包括上述三种采样分辨率,即,本发明实施例三中的采样分辨率包括水平采样分辨率、垂直采样分辨率以及水平及垂直采样分辨率。如图3所示,上述从采样分辨率和当前帧的原始分辨率中选择最优分辨率的步骤具体包括如下过程。步骤301 :采用当前帧的原始分辨率对当前帧进行编码。 步骤302 :对采用当前帧的原始分辨率进行编码后的帧进行重建,获得当前帧的原始分辨率对应的比较帧。步骤303 :计算当前帧的原始分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取当前帧的原始分辨率对应的比较帧的压缩效率或码率。步骤311 :对当前帧进行水平分辨率下采样,获得水平采样分辨率。步骤312 :采用水平采样分辨率对当前帧进行编码。步骤313 :对采用水平采样分辨率进行编码后的帧进行重建。步骤314 :对重建后的帧进行水平分辨率上采样,获得水平采样分辨率对应的比较帧。步骤315 :计算水平采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取水平采样分辨率对应的比较帧的压缩效率或码率。步骤321 :对当前帧进行垂直分辨率下采样,获得垂直采样分辨率。步骤322 :采用垂直采样分辨率对当前帧进行编码。步骤323 :对采用垂直采样分辨率进行编码后的帧进行重建。步骤324 :对重建后的帧进行垂直分辨率上采样,获得垂直采样分辨率对应的比较帧。步骤325 :计算垂直采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取垂直采样分辨率对应的比较帧的压缩效率或码率。步骤331 :对当前帧进行水平及垂直分辨率下采样,获得水平及垂直采样分辨率。步骤332 :采用水平及垂直采样分辨率对当前帧进行编码。步骤333 :对采用水平及垂直采样分辨率进行编码后的帧进行重建。步骤334 :对重建后的帧进行水平及垂直分辨率上采样,获得水平及垂直采样分辨率对应的比较帧。步骤335 :计算水平及垂直采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取水平及垂直采样分辨率对应的比较帧的压缩效率或码率。上述步骤301至步骤303组成第一组步骤,上述步骤311至步骤315组成第二组步骤,上述步骤321至步骤325组成第三组步骤,上述步骤331至步骤335组成第四组步骤。在每一个组内,各个步骤之间的执行顺序如上所述。对于各个组之间的执行顺序不做限制,可以上述四组步骤同时执行,也可以按照任意的先后顺序执行上述四组步骤,还可以在任意组的步骤的执行过程中同时开始执行其它组的步骤。在步骤303、步骤315、步骤325、步骤335均执行完毕之后,执行如下步骤341。步骤341 :从水平采样分辨率、垂直采用分辨率、水平及垂直采样分辨率和当前帧的原始分辨率中,选择具有最佳编码性能的分辨率作为最优分辨率。在本步骤中,可以采用多种依据选择具有最佳编码性能的分辨率。在本发明实施例三中,以多种选择依据中的一种优选的实施方式为例。由于在步骤302、步骤312、步骤322和步骤332中,采用现有的任意编码方法,在编码过程中能够计算得到此次编码的压缩效率和码率等参数,因此,在本发明实施例三的选择具有最佳编码性能的分辨率的实施方式中,选择依据可以为如下各项之一 1、选择编码质量最高的比较帧对应的分辨率;2、选 择压缩效率最高的比较帧对应的分辨率;3、选择码率最低的比较帧对应的分辨率;4、选择失真-代价函数值最小的比较帧对应的分辨率。在上述步骤303、步骤315、步骤325和步骤335中,在计算比较帧的编码质量时,可以采用如下方法之一,但不局限于以下方法,包括峰值信噪比(Peak Signal to NoiseRatio,简称PSNR)方法、平方差和(Square Sum of Difference,简称SSD)方法、结构相似度评价(Sructual Similarity Index Measurement,简称SSIM)方法、由图像质量专家组(Video Quality Experts Group,简称 VQEG)提出的视频质量度量(Video QualityMetrics,简称 VQM)方法。在本实施例三中,在从采样分辨率和当前帧的原始分辨率中选择最优分辨率时,分别采用水平采样分辨率、垂直采样分辨率、水平及垂直采样分辨率、当前帧的原始分辨率这四种分辨率,对分别采用上述四种分辨率对当前帧进行编码的效果进行比较,选出最佳编码性能的分辨率作为最优分辨率。当当前帧满足自适应分辨率条件时,采用上述选出的最优分辨率对当前帧进行编码。通过对多种采样分辨率和当前帧的原始分辨率进行比较,选择编码性能最优的分辨率进行实际编码,从而最大限度地降低了块效应产生的可能性,提高了视频编码的质量。图4为本发明实施例四的视频编码方法中选择最优分辨率的步骤的流程图。本发明实施例四的视频编码方法采用上述本发明实施例一或本发明实施例二记载的方法。在本发明实施例一的步骤101中以及本发明实施例二的步骤203中,均包括从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率的步骤。在本发明实施例四中,通过另一种具体的实施方式,对上述从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率的步骤进行详细说明,该步骤包括如下过程。第一步,获取处理帧。在本步骤中,获取处理帧,在选择最优分辨率的过程中的后续步骤中,均对此步骤获取的该处理帧进行操作。当首次执行获取处理帧的步骤时,采用当前帧作为处理帧。在对处理帧进行水平分辨率下采样或垂直分辨率下采样之后执行获取处理帧的步骤时,以水平分辨率下采样或垂直分辨率下采样获得的帧作为新的处理帧。第二步,获取至少一种采样分辨率对应的比较帧,并且获取处理帧的分辨率对应的比较帧。
在本步骤中,获取至少一种采样分辨率对应的比较帧与获取处理帧的分辨率对应的比较帧的顺序不做限制,可以同时执行,也可以按照任意顺序先后执行。获取至少一种采样分辨率对应的比较帧的具体方法为对处理帧进行至少一种分辨率下采样,获得至少一种采样分辨率。采用每一种采样分辨率对处理帧进行编码并重建。对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧。其中,至少一种采样分辨率至少包括以下各项之一 1、水平采样分辨率;2、垂直采样分辨率。获取处理帧的分辨率对应的比较帧的具体方法为采用处理帧的分辨率对处理帧进行编码并重建,获得处理帧的分辨率对应的比较帧。其中,当采用当前帧作为处理帧时,处理帧的分辨率为当前帧的原始分辨率。第三步,计算处理帧的分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取当前帧的原始分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率。 第四步,从至少一种采样分辨率和处理帧的分辨率中选择具有最佳编码性能的分辨率。如果具有最佳编码性能的分辨率是一种采样分辨率,对处理帧进行该采样分辨率下采样,然后返回执行第一步。如果具有最佳编码性能的分辨率是处理帧的分辨率,则以该处理帧的分辨率作为最优分辨率。在本发明实施例四中,米用一种优选的实施方式。在该方式中,上述至少一种米样分辨率同时包括上述两种采样分辨率,即,本发明实施例四中的采样分辨率包括水平采样分辨率和垂直采样分辨率。如图4所示,上述从采样分辨率和当前帧的原始分辨率中选择最优分辨率的步骤具体包括如下过程。步骤400 获取处理帧。在为一个当前帧选择最优分辨率的过程中,首先在步骤400中获取处理帧,在为该当前帧选择最优分辨率的后续步骤中,均对步骤400获取的该处理帧进行操作。其中,在为一个当前帧选择最优分辨率的过程中,在首次执行步骤400时,步骤400中采用该当前帧作为处理帧。在非首次执行步骤400时,在执行了上一次循环处理的步骤442之后,返回执行步骤400时,步骤400中以水平分辨率下采样获得的帧作为新的处理帧。在执行了上一次循环处理的步骤443之后,返回执行步骤400时,步骤400中以垂直分辨率下采样获得的帧作为新的处理帧。步骤401 :采用处理帧的分辨率对处理帧进行编码。其中,在为一个当前帧选择最优分辨率的过程中,在首次执行步骤401时,处理帧为当前帧,在此情况下,处理帧的分辨率为当前帧的原始分辨率。在首次执行时,步骤401具体为采用当前帧的原始分辨率对当前帧进行编码。在非首次执行步骤401时,处理帧为上一次循环处理中在步骤442中经过水平分辨率下采样获得的帧或者在步骤443中经过垂直分辨率下采样获得的帧,相应地,此时步骤401中处理帧的分辨率为上一次循环处理中的水平采样分辨率或垂直采样分辨率。步骤402 :对采用处理帧的分辨率进行编码后的帧进行重建,获得处理帧的分辨率对应的比较帧。
其中,在首次执行步骤402时,对采用当前帧的原始分辨率进行编码后的处理帧
进行重建。步骤403 :计算处理帧的分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取处理帧的分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率。其中,在首次执行步骤403时,计算当前帧的原始分辨率对应的比较帧的编码质量或失真-代价函数值。步骤411 :对处理帧进行水平分辨率下采样,获得水平采样分辨率。其中,在首次执行步骤411时,对当前帧进行水平分辨率下采样,获得水平采样分辨率。
步骤412 :采用水平采样分辨率对处理帧进行编码。其中,在首次执行步骤412时,采用水平采样分辨率对当前帧进行编码。步骤413 :对采用水平采样分辨率进行编码后的帧进行重建。在本步骤中,对步骤412中编码后的帧进行重建。步骤414:对重建后的帧进行水平分辨率上采样,获得水平采样分辨率对应的比较帧。在本步骤中,对步骤413中重建后的帧进行水平分辨率上采样。步骤415 :计算水平采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取水平采样分辨率对应的比较帧的压缩效率或码率。步骤421 :对处理帧进行垂直分辨率下采样,获得垂直采样分辨率。其中,在首次执行步骤421时,对当前帧进行垂直分辨率下采样,获得垂直采样分辨率。步骤422 :采用垂直采样分辨率对处理帧进行编码。其中,在首次执行步骤422时,采用垂直采样分辨率对当前帧进行编码。步骤423 :对采用垂直采样分辨率进行编码后的帧进行重建。在本步骤中,对步骤422中编码后的帧进行重建。步骤424:对重建后的帧进行垂直分辨率上采样,获得垂直采样分辨率对应的比较帧。在本步骤中,对步骤423中重建后的帧进行垂直分辨率上采样。步骤425 :计算垂直采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取垂直采样分辨率对应的比较帧的压缩效率或码率。上述步骤401至步骤403组成第一组步骤,上述步骤411至步骤415组成第二组步骤,上述步骤421至步骤425组成第三组步骤。在每一个组内,各个步骤之间的执行顺序如上所述。对于各个组之间的执行顺序不做限制,可以上述三组步骤同时执行,也可以按照任意的先后顺序执行上述三组步骤,还可以在任意组的步骤的执行过程中同时开始执行其它组的步骤。在步骤403、步骤415、步骤425均执行完毕之后,执行如下步骤441。步骤441 :从水平采样分辨率、垂直采样分辨率和处理帧的分辨率中,选择具有最佳编码性能的分辨率。在步骤441中,具有最佳编码性能的分辨率的选择依据与本发明实施例三的步骤341相同,在此不再赘述。 在首次执行步骤441时,处理帧的分辨率为当前帧的原始分辨率。如果步骤441选择为水平采样分辨率,执行步骤442 ;如果步骤441选择为垂直采样分辨率,执行步骤443 ;如果步骤441选择为处理帧的分辨率,执行步骤444。步骤442 :对处理帧进行水平分辨率下采样。在步骤442之后,返回执行步骤400进行下一次循环处理,在下一次循环处理的步骤400中,以水平分辨率下采样获得的帧作为新的处理帧。其中,在首次执行步骤442时,对当前帧进行水平分辨率下采样,然后返回执行步骤400进行第二次循环处理,在第二次循环处理的步骤400中,以第一次循环处理中水平分辨率下采样获得的帧作为新的处理帧,如果第二次循环处理的步骤441仍旧选择为水平采样分辨率,则继续执行步骤442后返回执行步骤400进行第三次循环处理,在第三次循环处理的步骤400中,以第二次循环处理中水平分辨率下采样获得的帧作为新的处理帧,以此类推。步骤443 :对处理帧进行垂直分辨率下采样。在步骤443之后,返回执行步骤400进行下一次循环处理,在下一次循环处理的步骤400中,以垂直分辨率下采样获得的帧作为新的处理帧。其中,在首次执行步骤443时,对当前帧进行垂直分辨率下采样,然后返回执行步骤400进行第二次循环处理,在第二次循环处理的步骤400中,以第一次循环处理中垂直分辨率下采样获得的帧作为新的处理帧,如果第二次循环处理的步骤441仍旧选择为垂直采样分辨率,则继续执行步骤443后返回执行步骤400进行第三次循环处理,在第三次循环处理的步骤400中,以第二次循环处理中垂直分辨率下采样获得的帧作为新的处理帧,以此类推,直到在某一次循环处理中步骤441选择为处理帧的分辨率,则进入步骤444。步骤444 以该处理帧的分辨率作为最优分辨率。其中,如果首次循环处理中步骤441选择为处理帧的分辨率,则步骤444以当前帧的原始分辨率作为最优分辨率。对于非首次循环处理的情况,步骤444以该次循环处理的处理帧的分辨率作为最优分辨率。在本实施例四中,在从采样分辨率和当前帧的原始分辨率中为当前帧选择最优分辨率时,采用循环比较的方式,在第一次循环处理中,以当前帧作为处理帧,分别采用水平采样分辨率、垂直采样分辨率、当前帧的原始分辨率这三种分辨率,对分别采用上述三种分辨率对当前帧进行编码的效果进行比较,选出最佳编码性能的分辨率。如果最佳编码性能的分辨率为作为当前帧的原始分辨率,则以该分辨率作为最优分辨率。如果最佳编码性能的分辨率为水平采样分辨率或垂直采样分辨率,则对当前帧进行水平或垂直采样后,以采样后的帧作为新的处理帧开始第二次循环处理,分别采用水平采样分辨率、垂直采样分辨率、处理帧的分辨率这三种分辨率,对分别采用上述三种分辨率对当前帧进行编码的效果进行比较,选出最佳编码性能的分辨率。如果最佳编码性能的分辨率为处理帧的分辨率,则以该分辨率作为最优分辨率。如果最佳编码性能的分辨率为水平采样分辨率或垂直采样分辨率,则对该处理帧进行水平或垂直采样后,以采样后的帧作为新的处理帧开始第三次循环处理。如此循环,直到在某一次循环处理中最佳编码性能的分辨率为处理帧的分辨率,则选择该分辨率作为最优分辨率。从而通过循环比较的方式为当前帧选择最优分辨率,当当前帧满足自适应分辨率条件时,采用上述选出的最优分辨率对当前帧进行编码,从而最大限度地降低了块效应产生的可能性,提高了视频编码的质量。图5为本发明实施例五的视频编码器的结构示意图。如图5所示,该视频编码器至少包括判断单元51、分辨率选择单元52和编码单元53。其中,判断单元51用于判断当前帧是否适应当前信道带宽,如果是,判断当前帧不是立即刷新IDR帧,否则,判断当前帧是IDR帧。分辨率选择单元52用于当当前帧是IDR帧时,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率。编码单元53用于当当前帧是IDR帧时,以最优分辨率对当前帧进行编码,当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。上述判断单元51、分辨率选择单元52和编码单元53可以采用电子器件组成电路模块的硬件方式实现,也可以采用算法程序模块的软件方式实现,或者采用上述硬件方式与软件方式相结合来实现。在上述判断单元51、分辨率选择单元52和编码单元53的基础 上,该视频编码器还可以包括与现有的视频编码器相同或类似的其它单元,在此不再赘述。在上述技术方案的基础上,判断单元51具体用于至少根据以下各项之一进行判断如果当前帧的帧号与上一个IDR帧的帧号超过预设的GOP最大间隔,判断单元51判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽;如果检测到当前帧的图像相对前一帧的图像发生场景切换,判断单元51判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽;如果与前一帧相比,当前帧的目标码率的变化超过设定的目标码率阈值,判断单元51判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽。在上述技术方案的基础上,编码单元53可以采用现有的任意的编码单元,只要在编码的分辨率采用最优分辨率或前一帧的分辨率中适用的分辨率即可。例如,编码单元53具体可以先根据适用的分辨率对当前帧进行采样,然后再根据该适用的分辨率对当前帧进行编码。在上述技术方案的基础上,编码单元53具体用于当当前帧是IDR帧时,根据码率控制算法计算原始的量化参数;对原始的量化参数增加或减少预设的偏置值,获得修正的量化参数;采用修正的量化参数对当前帧进行编码。编码单元53采用的具体的码率控制算法可以参见本发明实施例二中步骤203中记载的多种方法。编码单元53采用的预设的偏置值可以为一个固定值,该固定值可以根据图像内容、用户需求以及当前帧与前一帧的分辨率之差等实际情况灵活设置,一种较佳的实施方式是编码单元53采用的固定值的范围在4至12之间。编码单元53还具体用于当当前帧不是IDR帧时,根据码率控制算法计算量化参数,采用量化参数对当前帧进行编码。编码单元53采用的具体的码率控制算法可以参见本发明实施例二中步骤203中记载的多种方法。在本发明实施例五中,在判断单元中判断当前帧是否适应当前信道带宽,如果当前帧不满足当前信道带宽,则将当前帧设为IDR帧,分辨率选择单元从采样分辨率和当前帧的原始分辨率中选择最优的分辨率提供给编码单元进行编码,如果当前帧满足当前信道带宽,则编码单元以前一帧的分辨率进行编码。判断单元通过IDR帧判断条件确定IDR帧,并且IDR帧判断条件与受信道带宽影响的编码性能相关,分辨率选择单元在每个IDR帧处进行分辨率选择,因此能够及时根据当前信道状况选择最适合的分辨率,从而避免了采用固定分辨率导致的窄带情况下的块效应,从而提高了视频编码的质量。图6为本发明实施例六的视频编码器的结构示意图。该视频编码器的组成结构与本发明实施例五相同,即,该视频编码器包括判断单元51、分辨率选择单元52和编码单元53。进一步地,在本发明实施例六中,分辨率选择单元52具体包括比较帧子单元61、编码性能子单元62和选择子单元63。其中,比较帧子单元61用于获取至少一种采样分辨率对应的比较帧和当前帧的原始分辨率对应的比较帧。编码性能子单元62用于计算当前帧的原始分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取当前帧的原始分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率。选择子单元63用于从至少一种采样分辨率和当前帧的原始分辨率中,选择编码质量最高的、或压缩效率最高的、或码率最低的、或失真-代价函数值最小的比较帧对应的分辨率作为最优分辨率。具体地,比较帧子单元61包括采样模块611、编码与重建模块612和采样恢复模 块613。其中,采样模块611用于对当前帧进行至少一种分辨率下采样,获得至少一种采样分辨率。其中,至少一种采样分辨率至少包括以下各项之一水平采样分辨率;垂直采样分辨率;水平及垂直采样分辨率。编码与重建模块612用于采用每一种采样分辨率对当前帧进行编码并重建,并且,还用于采用当前帧的原始分辨率对当前帧进行编码并重建,获得当前帧的原始分辨率对应的比较帧。采样恢复模块613用于对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧。具体地,选择子单元63在从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率时,选择编码质量最高的分辨率,或者,选择压缩效率最高的分辨率,或者,选择码率最低的分辨率,或者,选择失真-代价函数值最小的分辨率。在本发明实施例六中,在分辨率选择单兀从米样分辨率和当前巾贞的原始分辨率中选择最优分辨率时,比较帧子单元分别获得水平采样分辨率、垂直采样分辨率、水平及垂直采样分辨率、当前帧的原始分辨率这四种分辨率的比较帧,编码性能子单元对分别采用上述四种分辨率对当前帧进行编码的效果进行计算,选择子单元选出最佳编码性能的分辨率作为最优分辨率。当当前帧满足自适应分辨率条件时,采用上述选出的最优分辨率对当前帧进行编码。通过对多种采样分辨率和当前帧的原始分辨率进行比较,选择编码性能最优的分辨率进行实际编码,从而最大限度地降低了块效应产生的可能性,提高了视频编码的质量。图7为本发明实施例七的视频编码器的结构示意图。该视频编码器的组成结构与本发明实施例五相同,即,该视频编码器包括判断单元51、分辨率选择单元52和编码单元53。进一步地,在本发明实施例七中,分辨率选择单元52包括处理帧子单元70、比较帧子单元71、编码性能子单元72和选择子单元73。其中,处理帧子单元70用于获取处理帧。比较帧子单元71用于获取至少一种采样分辨率对应的比较帧和处理帧的分辨率对应的比较帧。编码性能子单元72用于计算处理帧的分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取处理帧的分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率。选择子单元73用于从至少一种采样分辨率和处理帧的分辨率中选择编码质量最高的、或压缩效率最高的、或码率最低的、或失真-代价函数值最小的比较帧对应的分辨率。如果选择的分辨率是一种采样分辨率,选择子单元73对处理帧进行该采样分辨率下采样后传送给处理帧子单元70。如果选择的分辨率是处理帧的分辨率,选择子单元73以该处理帧的分辨率作为最优分辨率。具体地,处理帧子单元70具体用于在首次获取处理帧时,采用当前帧作为处理帧,处理帧子单元70还具体用于在接收来自选择子单元73的下采样获得的帧后,以下采样获得的帧作为新的处理帧。具体地,比较帧子单元71包括采样模块711、编码与重建模块712和采样恢复模块 713。
其中,采样模块711用于对处理帧进行至少一种分辨率下采样,获得至少一种采样分辨率。其中,至少一种采样分辨率至少包括以下各项之一水平采样分辨率;垂直采样分辨率。编码与重建模块712用于采用每一种采样分辨率对处理帧进行编码并重建,并且,编码与重建模块712还用于采用处理帧的分辨率对处理帧进行编码并重建,获得处理帧的分辨率对应的比较帧。采样恢复模块713用于对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧。具体地,选择子单元73在从至少一种采样分辨率和处理帧的分辨率中选择具有最佳编码性能的分辨率时,选择编码质量最高的分辨率,或者,选择压缩效率最高的分辨率,或者,选择码率最低的分辨率,或者,选择失真-代价函数值最小的分辨率。在本发明实施例七中,在分辨率选择单兀从米样分辨率和当前巾贞的原始分辨率中为当前帧选择最优分辨率时,采用循环比较的方式,在第一次循环处理中,处理帧子单元以当前帧作为处理帧,比较帧子单元分别获取水平采样分辨率、垂直采样分辨率、当前帧的原始分辨率这三种分辨率的比较帧,编码性能子单元对分别采用上述三种分辨率对当前帧进行编码的效果进行计算,选择子单元选出最佳编码性能的分辨率。如果最佳编码性能的分辨率为作为当前帧的原始分辨率,则选择子单元以该分辨率作为最优分辨率。如果最佳编码性能的分辨率为水平采样分辨率或垂直采样分辨率,则选择子单元对当前帧进行水平或垂直采样后返回处理帧子单元,处理帧子单元以采样后的帧作为新的处理帧开始第二次循环处理,比较帧子单元分别采用水平采样分辨率、垂直采样分辨率、处理帧的分辨率这三种分辨率获取处理帧,编码性能子单元对分别采用上述三种分辨率对当前帧进行编码的效果进行计算,选择子单元选出最佳编码性能的分辨率。如果最佳编码性能的分辨率为处理帧的分辨率,则选择子单元以该分辨率作为最优分辨率。如果最佳编码性能的分辨率为水平采样分辨率或垂直采样分辨率,则对该处理帧进行水平或垂直采样后,以采样后的帧作为新的处理帧开始第三次循环处理。如此循环,直到在某一次循环处理中最佳编码性能的分辨率为处理帧的分辨率,则选择该分辨率作为最优分辨率。从而通过循环比较的方式为当前帧选择最优分辨率,当当前帧满足自适应分辨率条件时,采用上述选出的最优分辨率对当前帧进行编码,从而最大限度地降低了块效应产生的可能性,提高了视频编码的质量。上述本发明实施例一至本发明实施例四中的视频编码方法,以及本发明实施例五至本发明实施例七中的视频编码器,应用于基于包括整数离散余弦变换(Discrete CosineTransform,简称DCT)的分块离散余弦变换及预测编码相结合的视频编码方法,适用于目前常用的视频编码标准,如运动图像专家组(Moving Picture Experts Group,简称MPEG)制定的版本MPEG1、MPEG2、MPEG4,联合视频组(Joint Video Team,简称JVT)提出的数字视频编解码器标准(Advanced Video Coding简称H. 26x/AVC),及由我国具备自主知识产权的数字音视频编解码技术标准(Advanced Coding of Audio and Video,简称AVS)等视频编码标准。上述本发明实施例一 至本发明实施例四中的视频编码方法以及本发明实施例五至本发明实施例七中的视频编码器中的上采样方法和下采样方法可以预先设定。例如下采样方法可采用联合视频组(Joint Video Team,简称JVT)标准中推荐的5抽头滤波器,滤波系数为-1/8,2/8,6/8,2/8,-1/8 ;上采样方法采用H. 264标准中1/2像素内插方法,SP,采用一个6抽头滤波器,滤波系数为1/32,-5/32,20/32,20/32,-5/32,1/32。以上仅为上采样方法和下采样方法的一个具体实例,在实际应用中还可以采用任何其它的上采样方法和下采样方法,不限于上述方法。需要说明的是对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括随机存取记忆体(Random Access Memory,简称 RAM)、唯读记忆体(Read Only Memroy,简称 ROM)、磁碟或者光盘等各种可以存储程序代码的介质。参见图8,为本发明实施例八视频编码硬件实现原理图,包括处理器(如CPU)、存储器、接口单元等器件,其中,处理器用于实现上述各实施例中的相关方法,或者相关功能单元(如判断单元、分辨率选择单元等);存储器用于存放处理器运行所需的数据或其他数据;接口单元用于在各个硬件之间提供相应的接口进行连接。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种视频编码方法,其特征在于,包括 判断当前帧是否适应当前信道带宽,如果是,判断当前帧不是立即刷新IDR帧,否则,判断当前帧是IDR帧; 当当前帧是IDR帧时,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率,以所述最优分辨率对当前帧进行编码; 当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。
2.根据权利要求I所述的方法,其特征在于,所述判断当前帧是否适应当前信道带宽包括 如果当前帧的帧号与上一个IDR帧的帧号超过预设的图像组GOP最大间隔,则判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽; 或者,如果检测到当前帧的图像相对前一帧的图像发生场景切换,则判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽; 或者,如果与前一帧相比,当前帧的目标码率的变化超过设定的目标码率阈值,则判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽。
3.根据权利要求I所述的方法,其特征在于,所述从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率包括 获取至少一种采样分辨率对应的比较帧; 获取当前帧的原始分辨率对应的比较帧; 计算当前帧的原始分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取当前帧的原始分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率; 从所述至少一种采样分辨率和所述当前帧的原始分辨率中,选择编码质量最高的、或压缩效率最高的、或码率最低的、或失真-代价函数值最小的比较帧对应的分辨率作为最优分辨率。
4.根据权利要求3中任意一项所述的方法,其特征在于, 所述获取至少一种采样分辨率对应的比较帧包括对当前帧进行至少一种分辨率下采样,获得至少一种采样分辨率;采用每一种采样分辨率对当前帧进行编码并重建;对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧;其中,所述至少一种采样分辨率至少包括以下各项之一水平采样分辨率;垂直采样分辨率;水平及垂直采样分辨率; 所述获取当前帧的原始分辨率对应的比较帧包括采用当前帧的原始分辨率对当前帧进行编码并重建,获得当前帧的原始分辨率对应的比较帧。
5.根据权利要求I所述的方法,其特征在于,所述从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率包括 获取处理帧; 获取至少一种采样分辨率对应的比较帧; 获取处理帧的分辨率对应的比较帧; 计算处理帧的分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取处理帧的分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率;从所述至少一种采样分辨率和所述处理帧的分辨率中,选择编码质量最高的、或压缩效率最高的、或码率最低的、或失真-代价函数值最小的比较帧对应的分辨率; 如果选择的分辨率是一种采样分辨率,对所述处理帧进行该采样分辨率下采样,返回执行所述获取处理帧的步骤; 如果选择的分辨率是处理帧的分辨率,以该处理帧的分辨率作为所述最优分辨率。
6.根据权利要求5所述的方法,其特征在于, 所述获取处理帧包括当首次执行获取处理帧的步骤时,采用当前帧作为处理帧;在对所述处理帧进行该采样分辨率下采样之后执行获取处理帧的步骤时,以所述下采样获得的帧作为新的处理帧; 当采用当前帧作为处理帧时,所述处理帧的分辨率为当前帧的原始分辨率。
7.根据权利要求5或6所述的方法,其特征在于, 所述获取至少一种采样分辨率对应的比较帧包括对处理帧进行至少一种分辨率下采样,获得至少一种采样分辨率;采用每一种采样分辨率对处理帧进行编码并重建;对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧;其中,所述至少一种采样分辨率至少包括以下各项之一水平采样分辨率;垂直采样分辨率; 所述获取处理帧的分辨率对应的比较帧包括采用处理帧的分辨率对处理帧进行编码并重建,获得处理帧的分辨率对应的比较帧。
8.根据权利要求I或2所述的方法,其特征在于,所述以所述最优分辨率对当前帧进行编码包括 根据码率控制算法计算原始的量化参数; 对所述原始的量化参数增加或减少预设的偏置值,获得修正的量化参数; 采用所述修正的量化参数对当前帧进行编码。
9.一种视频编码器,其特征在于,包括 判断单元,用于判断当前帧是否适应当前信道带宽,如果是,判断当前帧不是立即刷新IDR帧,否则,判断当前帧是IDR帧; 分辨率选择单元,用于当当前帧是IDR帧时,从至少一种采样分辨率和当前帧的原始分辨率中选择具有最佳编码性能的分辨率作为最优分辨率; 编码单元,用于当当前帧是IDR帧时,以所述最优分辨率对当前帧进行编码;当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。
10.根据权利要求9所述的视频编码器,其特征在于, 所述判断单元具体用于在当前帧的帧号与上一个IDR帧的帧号超过预设的图像组GOP最大间隔时,判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽; 或,所述判断单元具体用于在检测到当前帧的图像相对前一帧的图像发生场景切换时,判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽; 或,所述判断单元具体用于在与前一帧相比,当前帧的目标码率的变化超过设定的目标码率阈值时,判断当前帧不适应当前信道带宽,否则,判断当前帧适应当前信道带宽。
11.根据权利要求9所述的视频编码器,其特征在于,所述分辨率选择单元包括 比较帧子单元,用于获取至少一种采样分辨率对应的比较帧和当前帧的原始分辨率对应的比较帧; 编码性能子单元,用于计算当前帧的原始分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取当前帧的原始分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率; 选择子单元,用于从所述至少一种采样分辨率和所述当前帧的原始分辨率中,选择编码质量最高的、或压缩效率最高的、或码率最低的、或失真-代价函数值最小的比较帧对应的分辨率作为最优分辨率。
12.根据权利要求11所述的视频编码器,其特征在于,所述比较帧子单元包括 采样模块,用于对当前帧进行至少一种分辨率下采样,获得至少一种采样分辨率;所述至少一种采样分辨率至少包括以下各项之一水平采样分辨率;垂直采样分辨率;水平及垂直采样分辨率; 编码与重建模块,用于采用每一种采样分辨率对当前帧进行编码并重建;采用当前帧的原始分辨率对当前帧进行编码并重建,获得当前帧的原始分辨率对应的比较帧; 采样恢复模块,用于对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧。
13.根据权利要求9所述的视频编码器,其特征在于,所述分辨率选择单元包括 处理帧子单元,用于获取处理帧; 比较帧子单元,用于获取至少一种采样分辨率对应的比较帧和处理帧的分辨率对应的比较帧; 编码性能子单元,用于计算处理帧的分辨率和每一种采样分辨率对应的比较帧的编码质量或失真-代价函数值,或,获取处理帧的分辨率和每一种采样分辨率对应的比较帧的压缩效率或码率; 选择子单元,用于从所述至少一种采样分辨率和所述处理帧的分辨率中,选择编码质量最高的、或压缩效率最高的、或码率最低的、或失真-代价函数值最小的比较帧对应的分辨率;如果选择的分辨率是一种采样分辨率,对所述处理帧进行该采样分辨率下采样后传送给所述处理帧子单元;如果选择的分辨率是处理帧的分辨率,以该处理帧的分辨率作为所述最优分辨率。
14.根据权利要求13所述的视频编码器,其特征在于, 所述处理帧子单元具体用于在首次获取处理帧时,采用当前帧作为处理帧;在接收来自所述选择子单元的下采样获得的帧后,以所述下采样获得的帧作为新的处理帧。
15.根据权利要求13或14所述的视频编码器,其特征在于,所述比较帧子单元包括 采样模块,用于对处理帧进行至少一种分辨率下采样,获得至少一种采样分辨率;所述至少一种采样分辨率至少包括以下各项之一水平采样分辨率;垂直采样分辨率; 编码与重建模块,用于采用每一种采样分辨率对处理帧进行编码并重建;采用处理帧的分辨率对处理帧进行编码并重建,获得处理帧的分辨率对应的比较帧; 采样恢复模块,用于对每一个重建后的帧进行该帧对应种类的分辨率上采样,获得每一种采样分辨率对应的比较帧。
16.根据权利要求9或10所述的视频编码器,其特征在于,所述编码单元具体用于当当前帧是IDR帧时,根据码率控制算法计算原始的量化参数;对所述原始的量化参数增加或减少预设的偏置值,获得修正的量化参数;采用所述修正的量化 参数对当前帧进行编码。
全文摘要
本发明提供一种视频编码方法和视频编码器。视频编码方法包括判断当前帧是否适应当前信道带宽,如果是,判断当前帧不是IDR帧,否则,判断当前帧是IDR帧,当当前帧是IDR帧时,从采样分辨率和当前帧的原始分辨率中选择最优分辨率,以最优分辨率对当前帧进行编码;当当前帧不是IDR帧时,以前一帧的分辨率对当前帧进行编码。采用本发明提供的视频编码方法和视频编码器,能够及时根据当前信道状况选择最适合的分辨率,避免采用固定分辨率导致的窄带情况下的块效应,提高视频编码的质量。
文档编号H04N7/26GK102883157SQ20111019512
公开日2013年1月16日 申请日期2011年7月12日 优先权日2011年7月12日
发明者唐慧明, 唐一枝, 虞露, 左旭光, 冯蔚腾 申请人:浙江大学, 华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1