基于内容的自适应视频转码方法及装置的制造方法_3

文档序号:9436451阅读:来源:国知局
,所需的编码比特数越大。由此可见,在给定量化参 数QP的情况下,编码比特数(即:码率)的大小可以表征视频图像的复杂度,编码比特数就 是本申请所述的表征待转码视频内容复杂程度的量化数值。
[0120] 在步骤101-3已经获取了在PSNR大于或者等于40dB情况下的量化参数最大值 QP_max,当量化参数取小于或者等于QP_max的值时,得到的转码后视频都不失真,并且每 个量化参数值都与一个码率值相对应;当量化参数等于QP_max时,与其对应的码率值最 小,即得到了本申请所述的在满足预先设定的客观质量标准下的、表征待转码视频内容复 杂程度的最小量化数值Br_min。在帧率、分辨率等参数不变的情况下,使用该码率最小值进 行转码,既能保证生成的目标视频文件不失真,同时占用网络带宽最小。
[0121] 在本实施例的一个具体例子中,采用如下方式获取与QP_max对应的码率最小值 Br_min:在使用待转码视频的原有视频参数(包括分辨率、帧率等)的情况下,设定量化参 数的值为QP_max,然后使用FFMPEG提供的转码工具执行一次转码操作,根据屏幕输出的相 关信息获取转码输出视频的码率值,即:与QP_max对应的码率最小值Br_min,在后续步骤 102中就可以以该数值为依据进行转码参数的设置。
[0122] 需要说明的是,本实施例采用的是在满足预先设定的客观质量标准下的、与量化 参数最大值对应的码率最小值,作为表征待转码视频内容复杂程度的最小量化数值,在其 他实施方式中也可以采用其他数值作为表征待转码视频内容复杂程度的最小量化数值,并 以此为依据进行后续转码参数的设置,上述实施方式的变更,并不偏离本申请的核心,也在 本申请的保护范围之内。
[0123] 步骤102 :根据表征所述待转码视频内容复杂程度的最小量化数值和所述待转码 视频的视频参数值,设置转码参数的值。
[0124] 对待转码视频进行转码所需设置的转码参数通常包括:码率参数、分辨率参数以 及帧率参数。由于在步骤101中,已经获取了在客观视频不失真情况下的、表征待转码视频 内容复杂度的码率最小值Br_min,因此在本步骤中,可以直接将所述转码参数中的码率参 数的值设置为所述码率最小值Br_min,将所述转码参数中的分辨率参数和帧率参数的值分 别设置为已获取的待转码视频的分辨率值和帧率值。步骤103根据按照上述方式设置的转 码参数进行转码,就可以在帧率和分辨率不变的条件下,既保证目标视频图像不失真,同时 还能够最大限度减少对网络带宽的占用。
[0125] 在本实施例的一个具体例子中,因为采用FFMPEG提供的函数进行转码,因此在本 步骤中需要对函数所使用的AVCodecContext数据结构中转码参数变量进行设置,其中已 获取的待转码视频的分辨率值存储在Res_org中,已获取的待转码视频的帧率值为Fps_ org,则进行转码参数设置的代码如下所示:
[0126]
[0127] 上面给出的代码片断仅仅是示意性的,重点描述了对转码参数中的码率、分辨率 和帧率参数的设置,在具体实施中,为了正确转码,还需要根据需要设置其他相关参数,这 部分内容不属于本申请技术方案的范畴,因此没有示出。
[0128] 采用上述设置方式,在步骤103中就可以转码生成与待转码视频的帧率和分辨率 相同条件下的、码率为Br_min的目标视频。考虑到实际应用中,视频公司通常需要根据同 一个待转码视频文件,生成不同分辨率的目标视频,从而为用户提供不同档次的视频服务 片源,因此本申请的技术方案还进一步提供了以表征待转码视频内容复杂度的最小量化数 值Br_min为依据,进行多个档次的转码参数的设置,从而在后续步骤103中生成多个目标 视频的方案,下面结合图4对该过程涉及的子步骤进行详细说明。
[0129] 步骤102-1 :按照预先设定的规范,根据所述码率最小值获取待转码视频的视频 类型 videoType。
[0130] 本申请所述的视频类型包括:LD码流、SD码流、HD码流、UD码流以及UUD码流。 其中 LD、SD、HD、UD、UUD 分别是 low definition (低清)、standard definition (标清)、high definition (高清)、Ultra High Definition (超高清)以及 Ultra Ultra High Definition (超 超高清)的英文缩写,代表清晰度从低到高的各种级别。由于清晰度不同,每种码流对应的 码率范围和分辨率范围也不相同。
[0131] 本步骤就是按照预先设定的规范,根据已经得到的码率最小值获取待转码视频的 视频类型videoType。在本实施例的一个具体例子中,按照表一所示的规范获取待转码视频 的视频类型:
[0132] 表一码率类型规范
[0133]
[0134] 表1中有定义了三种码率,其中最大值和最小值限定了视频类型所在的码率范 围,比如UD码流对应的码率范围是在最大值2Mbps和最小值1Mbps之间,如果Br_min位于 2Mbps和1Mbps之间,就认为待转码视频的视频类型为UD类型。
[0135] 在本实施例的上述具体例子中,采用了表一的规范定义码率和视频类型之间的对 应关系,在其他实施方式中,可以根据实验结果或者具体的实施需求,调整该表中的设置, 也可以采用其他方式确定待转码视频的视频类型。
[0136] 根据码率最小值获取待转码视频的视频类型后,可以根据已获取的待转码视频的 分辨率对所述视频类型进行修订。具体说是这样的,按照预先设定的规范,获取所述待转码 视频的视频类型对应的分辨率的最小值;判断已获取的待转码视频的分辨率参数值是否低 于上述最小值;若是,用所述已获取的待转码视频的分辨率参数值对应的视频类型作为所 述待转码视频的视频类型。
[0137] 在本实施例的一个具体例子中,采用了表二的规范定义视频类型与分辨率的最小 值之间的对应关系:
[0138] 表二分辨率类型规范
[0139]
[0140] 通常情况下,待转码视频的分辨率应该高于已选取的视频类型的最低分辨率,在 某些情况下,待转码视频的分辨率较低,此时如果用高码率进行视频转码,就会额外占用不 必要的网络带宽资源,因此可以降低待转码视频的视频类型,即:用所述已获取的待转码视 频的分辨率参数值对应的视频类型作为所述待转码视频的视频类型。
[0141] 例如:通过表一获取的待转码视频的视频类型为UD码流,通过表二可以获知UD码 流对应的最低分辨率为1440x1080,而待转码视频的分辨率为1280x720,低于上述最低分 辨率值,此时,就应该用1280x720对应的HD码流作为待转码视频的视频类型。
[0142] 在本实施例的上述具体例子中,利用表二给出的规范获取与某种视频类型对应的 最小分辨率,在其他实施例中,可以根据具体的需要调整该表中的最小分辨率值,也可以不 利用表二而采用其他方式获取与某种视频类型对应的最小分辨率值。
[0143] 在本实施例的上述具体例子中,依据表二中的规范对待转码视频的视频类型进行 修订;在某些有特殊需求的应用场合,允许或者需要针对低分辨率生成高码率的片源,这种 情况下,可以不执行上述修订操作,直接根据码率最小值Br_min获取待转码视频的视频类 型即可。
[0144] 步骤102-2 :按照预先设定的规范,根据所述待转码视频的视频类型选择一种或 者多种目标视频类型genType。
[0145] 为了能够提供不同档次的多种片源,本步骤根据待转码视频的视频类型选择一种 或者多种目标视频类型,选择的具体策略是,在待转码视频分辨率的基础上,可以降低目标 视频的分辨率,生成分辨率等于或者低于待转码视频分辨率的不同档次片源,从而为用户 提供更多的选择。
[0146] 在本实施例的一个具体例子中,采用表三所述的规范确定目标视频类型,例如,待 转码视频的视频类型videoType为UD类型,那么可以选择的目标视频类型genType就包 括:UD码流、HD码流、SD码流和LD码流。
[0147] 表三待转码视频生成码流类型规范
[0148]
[0149] 步骤102-3 :为每一种目标视频类型设置相应的转码参数值。
[0150] 通过之前的步骤102-2已经选择了一种或者多种目标视频类型,在本步骤中就可 以为每一种目标视频类型设置相应的转码参数值。本申请技术方案对转码参数的设置,主 要涉及码率参数和分辨率参数(帧率参数的值直接使用待转码视频的帧率值即可)。为了 能够在限定码率的情况下找到更为合适的分辨率,达到码率和分辨率之间的更为合理的匹 配,本申请技术方案通过建立待转码视频的分辨率和码率模型,从而为各种目标视频设置 最佳的分辨率和编码码率参数。
[0151] 由于在帧率、量化参数等视频参数都确定的情况下,分辨率与码率之间同样存在 着近似线形的关系,请参见图5,其为通过实验获取的分辨率与码率的近线性关系示意图, 可以以此为依据建立二者之间的模型。
[0152] 在本实施例的一个具体例子中,在步骤101中已经获取了在客观视频不失真情 况下的、与量化参数最大值对应的码率最小值Br_min,而已获取的待转码视频的分辨率为 Res_org,因此用(0,0)和(Br_min,Res_org)这两个点就可以生成所述线性模型,即:分辨 率和码率模型。
[0153] 建立起上述模型后,就可以针对每一种目标视频类型,设置与该目标视频类型对 应的转码参数值,即:按照预先设定的规范,选择当前目标视频类型对应的码率最大值与最 小值之间的中间码率值,并将所述转码参数中的码率参数的值设置为所述中间码率值;根 据已建立的分辨率与码率的线性模型,获取与所述中间码率值对应的分辨率值,并将所述 转码参数中的分辨率参数的值设置为所述分辨率值;将所述转码参数中的帧率参数的值设 置为已获取的待转码视频的帧率值。
[0154] 在本实施例的一个具体例子中,目标视频类型包括HD、SD和LD三种码流,先针对 HD码流,采用上述表一定义的规范,选取与HD码流对应的中间码率值900Mbps,并将与HD 码流对应的转码参数中的码率参数设置为900Mbps,再根据已建立的分辨率和码率模型,获 取与900Mbps对应的分辨率为1280x720,并将与HD码流对应的转码参数中的分辨率参数设 置为该值。
[0155] 然后按照同样的处理方法,依次为目标视频类型为SD和LD这两种情况,设置对 应的转码参数。由于本申请技术方案并不涉及对帧率参数的调整,因此与上述三种目标视 频类型各自对应的转码参数中的帧率参数值都设置为已获取的待转码视频的帧率值Fps_ 〇rg。在具体实现中,依然可以采用与前面描述的生成一种目标视频的设置方式相同,即:对 转码函数所使用的AVCodecContext数据结构中转码参数变量进行相应设置即可,此处不 再赘述。
[0156] 在具体的实施过程中,可以对上述设置过程作进一步的优化。由于分辨率与码率 模型为近线性模型,两者之间的关系有时更接近于类抛物线的关系,因此在本步骤中可以 对通过分辨率和码率模型获取的分辨率值进行加权处理,例如对所述分辨率值的宽和高分 别乘以同一个预先设定的调整因子0.9,并用得到的新的分辨率值对所述转码参数中的分 辨率参数进行设置。
[0157] 在具体的实施过程中,为了保证转码生成的视频质量,还可以对通过分辨率和码 率模型得到的分辨率值进行修订。具体说是这样的:按照预先设定的规范,获取当前目标视 频类型对应的分辨率的最小值;判断与所述中间码率值对应的分辨率值是否低于上述分辨 率的最小值;若是,用上述分辨率的最小值作为对所述转码参数中的分辨率参数进行设置 所用的分辨率值。
[0158] 在本实施例的具体例子中,根据上述表二定义的规范获取与当前视频类型对应的 分辨率的最小值,该值通常是根据经验值设定的最差情况,那么通过分辨率和码率模型获 取的分辨率值应该大于等于
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1