[发明专利]一种视频编码优化方法和系统在审
申请号: | 202111563140.6 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114374844A | 公开(公告)日: | 2022-04-19 |
发明(设计)人: | 李日;周瑜锋;谢亚光;朱建国;孙彦龙 | 申请(专利权)人: | 杭州当虹科技股份有限公司 |
主分类号: | H04N19/177 | 分类号: | H04N19/177;H04N19/423;H04N19/436 |
代理公司: | 浙江杭知桥律师事务所 33256 | 代理人: | 陈丽霞 |
地址: | 310000 浙江省杭州市西*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 视频 编码 优化 方法 系统 | ||
1.一种视频编码优化方法,应用于NUMA架构中,其特征在于,方法包括:
服务器的检测,检测服务器的CPU硬件,并获取CPU的节点数及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;
编码器的创建,创建编码线程,并依据CPU的节点数进行原始帧内存和重建帧内存的分配;
视频的编码,依据当前视频帧的gop id,在编码器上对视频进行编码;
码流的合成,对于编码后的视频输出视频码流,依据码流中I帧的显示次序从低到高,将码流拼接成完整的码流。
2.根据权利要求1所述的一种视频编码优化方法,其特征在于,编码器的创建方法包括,
步骤1,初始化设置节点索引变量i=0;
步骤2,调用pthread_setaffinity_np设置编码器的线程运行在节点i的逻辑核心上;
步骤3,创建N(i)个编码线程,分配P(i)个原始帧和Q(i)个重建帧内存。其中:
其中i为节点索引,取正整数且小于M,N为总线程数,P为总原始帧内存数,Q为总重建帧内存数;
步骤4,节点索引变量加1,即i=i+1,当i小于M则继续步骤2,否则编码器创建完成。
3.根据权利要求1所述的一种视频编码优化方法,其特征在于,视频的编码方法包括:
获取当前视频帧的gop id,并对gop id进行更新,其中gop id初始化为0,最大值为M-1;
对当前gop id为i的视频帧,从节点i的原始帧内存和重建帧内存获取帧内存指针赋值给当前帧,将原始帧图像拷贝至该原始帧内存中;
调度节点i上的编码线程编码当前视频帧。
4.根据权利要求2所述的一种视频编码优化方法,其特征在于,创建N(i)个编码线程,分配P(i)个原始帧和Q(i)个重建帧内存,其分配方式为:
N(i)=N/M,P(i)=P/M,Q(i)=Q/M;
其中,i为节点数,取正整数且小于M;N为总线程数,P为总原始帧内存数,Q为总重建帧内存数。
5.根据权利要求3所述的一种视频编码优化方法,其特征在于,gop id更新方式为:第一帧之后,每收到一个I帧或者IDR帧,gop id加1,如果gop id等于M,则gop id赋值为0。
6.一种视频编码优化系统,应用于NUMA架构中,其特征在于,包括服务器检测模块、编码器创建模块、视频编码模块和码流合成模块
服务器检测模块,服务器检测模块用于检测服务器的CPU硬件,并获取CPU的节点数及CPU的节点所包括的逻辑核心,其中CPU的节点总数为M;
编码器创建模块,编码器创建模块用于创建编码线程,并依据CPU的节点数进行原始帧内存和重建帧内存的分配;
视频编码模块,视频编码模块依据当前视频帧的gop id,在编码器上对视频进行编码;
码流合成模块,码流合成模块用于编码后的视频输出视频码流,依据码流中I帧的显示次序从低到高,将码流拼接成完整的码流。
7.根据权利要求6所述的一种视频编码优化系统,其特征在于,编码器创建模块包括:
初始化模块,初始化模块用于初始化设置节点索引变量i=0;
线程运行模块,线程运行模块通过调用pthread_setaffinity_np设置编码器的线程运行在节点i的逻辑核心上;
编码线程创建模块,编码线程创建模块用于创建N(i)个编码线程,分配P(i)个原始帧和Q(i)个重建帧内存,其中:
其中i为节点数,取正整数且小于M,N为总线程数,P为总原始帧内存数,Q为总重建帧内存数;
节点索引判断模块,节点索引判断模块用于对节点索引变量进行判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州当虹科技股份有限公司,未经杭州当虹科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111563140.6/1.html,转载请声明来源钻瓜专利网。