一种视频编码优化方法和系统技术方案

技术编号:33145902 阅读:61 留言:0更新日期:2022-04-22 13:57
本发明专利技术涉及视频编码技术,公开了一种视频编码优化方法和系统,一种视频编码优化方法应用于NUMA架构中,其方法包括:检测服务器的CPU硬件,并获取CPU的节点总数以及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;依据检测的CPU节点总数,进行编码内核的创建;依据当前视频帧的gop id,在编码器上对视频进行编码;对于编码后的视频输出视频码流,依据码流中I帧的显示次序从低到高,将码流依次拼接成完整的码流。本发明专利技术在提高编码并行度的同时,避免了常规软件编码存在的远程访问内存。同时提高了编码并行度,提升编码速度,同时不会损失编码质量。失编码质量。失编码质量。

【技术实现步骤摘要】
一种视频编码优化方法和系统


[0001]本专利技术涉及视频编码技术,尤其涉及了应用于NUMA架构中的一种视频编码优化方法和系统。

技术介绍

[0002]目前,针对超高清视频的软件编码器,都采用多种并行编码策略的组合来实现超高清实时转码。常用的并行编码策略有:
[0003](1)、帧内行级并行编码(利用多线程实现帧内多行同时编码);
[0004](2)、帧级并行编码(利用多线程实现多帧同时编码);
[0005](3)、GOP级并行编码(利用多线程实现多个GOP同时编码)。
[0006]通过基于多线程的并行编码,尽可能充分调动多核心CPU的计算资源。与此同时,为满足超高清视频实时编码的计算要求,硬件一般会采用超多核心CPU的服务器。
[0007]目前的多核CPU普遍采用的是NUMA架构,即“非一致性内存访问”。NUMA架构解决了多核心CPU上通过传统的北桥访问内存造成的性能瓶颈问题。在NUMA架构中,服务器被分为若干个节点(SOCKET),每个节点上有单独的CPU和内存。CPU通过内存控制器直接访问本地地址,速度快延时短;通过QPI LINK远程访问其他节点物理地址。
[0008]在NUMA架构的CPU上运行的多线程软件,应尽可能减少内存远程访问。正常的多线程编码,特别是4K/8K超高清编码,需要访问的内存是很多的,其中,重建帧数据、原始帧数据是内存占用量最大的部分。
[0009]原始帧主要在预分析阶段用来计算图像特性和编码复杂度,从而确定编码的量化参数及其他参数;重建帧则主要给帧内、帧间预测提供参考像素。此外,在编码模式选择阶段,需要利用重建图像和原始图像来计算编码失真。因此,存储重建帧和原始帧的内存毫无疑问是编码中访问频率最高的部分。
[0010]在NUMA架构的多核CPU上运行4K/8K超高清编码时,由于编码线程之间有相互依赖且依赖条件不是一直成立的,因此线程经常会进入WAIT状态,待条件成立,线程又再次进入RUN状态。CPU调度线程实现线程状态的切换,此过程中,线程有可能从一个NUMA节点切换到另一个NUMA节点。
[0011]因此,线程所访问的重建帧内存、原始帧内存与编码线程本身不能时刻保证在同一节点内,不可避免的会存在大量的内存远程访问,导致不能最大限度发挥多核CPU的计算能力。
[0012]在视频编码标准中,一般包含三种编码帧:I帧、P帧、B帧。视频编码中常用GOP(Group of picture)来代表视频编码序列中两个I帧之间的一组图像,GOP长度表示GOP内帧的数量,是编码器的重要参数。
[0013]GOP并行编码是超高清实时编码的常用手段。采用Close gop帧结构,这样可以保证相邻的GOP之间可以独立编码,并行度可以成倍提升。编码器将GOP码流按照GOP先后次序重新打包,形成最终的完整码流。编码内核是指具备完整编码能力的软件模块;编码内核的
输入为原始视频图像序列,输出为编码后的视频码流。
[0014]例如现有技术中,专利申请号为:CN202011644043.5201910600394.7;专利名称为,一种用于8K超高清视频的实时编码的方法及系统,专利申请日:2020

12

31。在NUMA架构CPU上,其将编码任务限定在一个节点内部,不能最大限度发挥多节点CPU的计算能力。

技术实现思路

[0015]本专利技术针对现有技术中的视频编码,在NUMA架构CPU上,其将编码任务限定在一个节点内部,不能最大限度发挥多节点CPU的计算能力的问题,提供了一种视频编码优化方法和系统。
[0016]为了解决上述技术问题,本专利技术通过下述技术方案得以解决:
[0017]一种视频编码优化方法,应用于NUMA架构中,其方法包括:
[0018]服务器的检测,检测服务器的CPU硬件,并获取CPU的节点总数以及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;
[0019]编码器的创建,依据检测的CPU节点总数,进行编码内核的创建;
[0020]视频的编码,依据当前视频帧的gop id,在编码器上对视频进行编码;
[0021]码流的合成,对于编码后的视频输出视频码流,依据码流中I帧的显示次序从低到高,将码流依次拼接成完整的码流。
[0022]作为优选,编码器的创建方法包括:
[0023]步骤1,初始化设置节点索引变量i=0;
[0024]步骤2,调用pthread_setaffinity_np设置编码器的线程运行在节点i的逻辑核心上;
[0025]步骤3,创建编码内核i,编码内核绑定在了节点i上;
[0026]步骤4,对编码内核进行初始化,包括原始帧内存和重建帧内存的分配;
[0027]步骤5,节点索引变量加1,即i=i+1,当i小于M则继续步骤2,否则编码器创建完成。
[0028]作为优选,视频的编码方法包括:
[0029]获取当前视频帧的gop id,并对gop id进行更新,其中gop id初始化为0,最大值为M

1;
[0030]对当前gop id为i的视频帧,将当前帧送给节点i上的编码内核,编码内核将原始图像拷贝到自己的原始帧内存中,然后开始编码。
[0031]作为优选,gop id更新方式为:第一帧之后,每收到一个I帧或者IDR帧,gop id加1,如果gop id等于M,则gop id赋值为0。
[0032]为了解决上述技术问题,本专利技术还提供了一种视频编码优化系统,应用于NUMA架构中,其包括服务器检测模块、编码器创建模块、视频编码模块和码流合成模块;
[0033]服务器检测模块,服务器检测模块检测服务器的CPU硬件,并获取CPU的节点总数以及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;
[0034]编码器创建模块,编码器创建模块依据检测的CPU节点总数,进行编码内核的创建;
[0035]视频编码模块,视频编码模块依据当前视频帧的gop id,在编码器上对视频进行
编码;
[0036]码流合成模块,码流合成模块对于编码后的视频输出视频码流,依据码流中I帧的显示次序从低到高,将码流依次拼接成完整的码流。
[0037]作为优选,编码器创建模块包括:节点初始化模块、线程运行设置模块、编码内核创建模块、编码内核初始化模块、索引变量更新模块;
[0038]节点初始化模块,初始化设置节点索引变量i=0;
[0039]线程运行设置模块,线程运行设置模块调用pthread_setaffinity_np设置编码器的线程运行在节点i的逻辑核心上;
[0040]编码内核创建模块,编码内核创建模块用于创建编码内核i,并将编码内核绑定节点i上;
[0041]编码内核初始化模块,对编码内核进行初始化,包括原始帧内存和重建帧内存的分配;
[0042]索引变量更本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视频编码优化方法,应用于NUMA架构中,其特征在于,方法包括:服务器的检测,检测服务器的CPU硬件,并获取CPU的节点总数以及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;编码器的创建,依据检测的CPU节点总数,进行编码内核的创建;视频的编码,依据当前视频帧的gop id,在编码器上对视频进行编码;码流的合成,对于编码后的视频输出视频码流,依据码流中I帧的显示次序从低到高,将码流依次拼接成完整的码流。2.根据权利要求1所述的一种视频编码优化方法,其特征在于,编码器的创建方法包括:步骤1,初始化设置节点索引变量i=0;步骤2,调用pthread_setaffinity_np设置编码器的线程运行在节点i的逻辑核心上;步骤3,创建编码内核i,编码内核绑定在了节点i上;步骤4,对编码内核进行初始化,包括原始帧内存和重建帧内存的分配;步骤5,节点索引变量加1,即i=i+1,当i小于M则继续步骤2,否则编码器创建完成。3.根据权利要求1所述的一种视频编码优化方法,其特征在于,视频的编码方法包括:获取当前视频帧的gop id,并对gop id进行更新,其中gop id初始化为0,最大值为M

1;对当前gop id为i的视频帧,将当前帧送给节点i上的编码内核,编码内核将原始图像拷贝到自己的原始帧内存中,然后开始编码。4.根据权利要求3所述的一种视频编码优化方法,其特征在于,gop id更新方式为:第一帧之后,每收到一个I帧或者IDR帧,gop id加1,如果gop id等于M,则gop id赋值为0。5.一种视频编码优化系统,应用于NUMA架构中,其特征在于:包括服务器检测模块、编码器创建模块、视频编码模块和码流合成模块;服务器检测模块,服务器检测模块检测服务器的CPU硬件,并获取CPU的节点总数以及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;编码器创建...

【专利技术属性】
技术研发人员:李日朱建国廖义谢亚光孙彦龙
申请(专利权)人:杭州当虹科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1