买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种实现LCEVC视频编码优化的方法_重庆邮电大学_202210447137.6 

申请/专利权人:重庆邮电大学

申请日:2022-04-18

公开(公告)日:2024-03-22

公开(公告)号:CN114827614B

主分类号:H04N19/132

分类号:H04N19/132;H04N19/119;H04N19/124;H04N19/60;H04N19/91;H04N19/42

优先权:

专利状态码:有效-授权

法律状态:2024.03.22#授权;2022.08.16#实质审查的生效;2022.07.29#公开

摘要:本发明涉及一种实现LCEVC视频编码优化的方法,属于多媒体视频处理与传输领域,包括以下步骤:S1:对于给定的输入视频,采用基于Modifiedcubic插值信息的分块下采样方获取最优的下采样输出;S2:将步骤S1所述的分块下采样方法嵌入到LCEVC编码器中,对LCEVC中各个模块进行耗时分析,设计基于CPU‑GPU异构平台的LCEVC编码器框架;S3:根据框架对LCEVC标准中的上采样、改进后的下采样、变换与量化、反变换与反量化、熵编码模块进行并行优化设计,在PC端实现实时低复杂度增强视频编码。本发明提高了LCEVC的编码视频质量,缩短了编码时间,提高了硬件资源的有效利用率。

主权项:1.一种实现LCEVC视频编码优化的方法,其特征在于:包括以下步骤:S1:对于给定的输入视频,采用基于Modifiedcubic插值信息的分块下采样方法获取最优的下采样输出;S2:将步骤S1中所述的基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中,对LCEVC中各个模块分别统计耗时并进行耗时分析,通过耗时分析结果设计一种基于CPU-GPU异构平台的LCEVC编码器框架;所述步骤S2具体包括以下步骤:S21:将步骤S1中所述基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中;S22:选取一组视频序列,对LCEVC编码器在多核CPU上进行多次串行运行测试,求平均数得到每一帧的平均消耗时间,从而得到LCEVC编码器各个模块的耗时占比;S23:通过步骤S22中LCEVC编码器各个模块的耗时占比,设计一种基于CPU-GPU异构平台的LCEVC编码器框架,CPU和GPU之间的通信采用复制数据的方式实现,CPU负责处理的部分包括:1负责读取图像数据,负责将输入视频序列和基本编码器生成的Y、U、V分量数据读入到CPU内存中,并将数据复制后传递到GPU的显存中;2负责读取编码配置文件;3负责输出基本编码器的编码视频、输出重建视频序列、输出码流,负责重建视频PSNR的计算以及GPU线程的调度;对于数据相关性比较低的模块,根据各个模块不同的算法处理过程设计相应的并行优化算法;S3:根据S2中基于CPU-GPU异构平台的LCEVC编码器框架对LCEVC标准中的上采样、改进后的下采样、变换与量化、反变换与反量化、熵编码模块进行并行优化设计,在PC端实现实时低复杂度增强视频编码;所述步骤S3具体包括:S31:对上采样模块并行化处理;采用GPU对上采样插值进行并行实现;上采样并行化具体实现方法如下:S311:将需要上采样的图像从CPU内存中复制到GPU的全局内存中,并将插值系数矩阵复制到常量内存中;S312:对输入的图像上下边界进行填充,将填充后的图像平均分成64个块,块的高度为U_PicHeight8,宽度为U_PicWidth8,其中U_PicHeight和U_PicWidth分别表示待插值视频图像的宽度和长度,然后将图像按照分块分别读入到共享内存中;S313:分配线程块和线程,分配的block数为8,thread数为8;S314:每个线程读取共享内存中所需要的像素值,并从常量内存中读取插值系数进行插值运算,经过cudaDeviceSynchronize函数同步后,将每个块的插值结果保存到全局内存中;S315:最后将GPU全局内存中的上采样结果复制给CPU内存以供后续数据处理使用;S32:将下采样的输入图像分为8×8的块进行并行处理;在GPU中,分配的block数为Pic_Height8,thread数为Pic_Width8,其中Pic_Height和Pic_Width分别表示下采样输入图像的高和宽;S33:对变换与量化模块进行并行化处理;LCEVC提供两种变换方式,2×2的变换或者4×4的变换;在并行优化之前,对LCEVC中的变换方式采用蝶形变换;2×2的变换公式改写为如下形式: LCEVC中变换过程的输入数据是预测残差,对于2×2变换或者4×4变换,变换后会将变换系数解析成层;对于4×4的变换,首先将残差数据分为4×4的块,然后每个块根据变换矩阵进行蝶形变换,最后将变换系数的数据解析为层;变换后采用并行计算对量化模块进行优化;GPU中分配的block数为4,thread数为4;4×4变换在GPU上实现的具体步骤包括:1把残差数据从CPU中复制到GPU的全局内存中,然后将原始图像分成4×4的块;2分配block和thread数目,block数为4,thread数为4;3每个线程根据分配的线程号来读取全局内存中块的数据信息,然后对各个块做蝶形变换,将得到的变换系数解析为层;处理数据的过程中,使用_syncthreads函数进行同步;量化过程的输入是变换系数,量化过程的输入数据为Tin[layer][y][x],对于4×4的变换来说,layer为16,采取完全并行的方式进行量化优化;S34:对反变换、反量化的并行优化方式与S33相同;S35:对熵编码模块中的游程编码和哈夫曼编码并行处理;步骤S35中,以L-1层的U1和V1为基准,将layer中较大的数据块分割为和W16×H16相同大小的数据,分配的block数为16个,分配的thread数目为30个,使用一个thread处理一个W16×H16大小的数据块,基于GPU的熵编码并行优化的具体实现方法为:1从CPU内存中将需要量化的输出数据复制传递给GPU的全局内存;2将熵编码输入的数据按照W16×H16大小的数据块分块读入共享存储器;3每个线程从共享储存器中读取所需要的数据进行游程编码和哈夫曼编码,使用cudaDeviceSynchronize函数等待所有线程都处理完成,将编码数据按序传入全局内存中;通过GPU并行计算得到熵编码结果,将熵编码数据复制传递给CPU的内存,在写入二进制码流文件时直接使用熵编码输出数据;S36:在PC端的GPU平台上实现S31到S35中的并行优化算法,进而实现对LCEVC编码器的加速,实现实时的低复杂度增强视频编码。

全文数据:

权利要求:

百度查询: 重庆邮电大学 一种实现LCEVC视频编码优化的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。