android 软解8k视频,一种基于CPU的8K超高清视频高速解码方法与流程

bf7a069b48e85d9adb8111305849492d.gif

本发明涉及信息技术领域,具体涉及一种基于cpu的8k超高清视频高速解码方法。

背景技术:

高时效性是编、解码系统的灵魂,如何快速将数据量惊人的8k超高清视音频信号实时解码为视频信号并输出到显示终端,一直是困扰超高清从业者的一大难题。传统的解码系统主要依靠高性能fpga芯片和高性能gpu阵列来进行解决巨量解码运算,但是高性能的fpga解码芯片价格昂贵,目前能提供8k解码芯片的企业仅有socionext、sharp等企业,且不对外出售。采用gpu阵列进行8k视频解码同样面临价格问题,不论是采用价格昂贵的单块nvidia显卡,如rtx6000,还是采用价格相对较低的多块显卡构成解码矩阵,同样价格昂贵。上述两种方案除了价格高昂以外,其解码效率也不尽如人意。如socionext的fpga解码架构,其解码帧率不超过80fps,而采用gpu架构的方案效率更低,仅能满足50fps的解码帧率。

技术实现要素:

本发明的目的在于:本发明提供了一种基于cpu的8k超高清视频高速解码方法,解决了目前的解码系统解码效率低的技术问题。

本发明采用的技术方案如下:

一种基于cpu的8k超高清视频高速解码方法,在cpu中对8k视频流进行以下操作:

步骤1:构建视频流图像中物体的动态矢量权重表;

步骤2:获取视频流中的连续场景,对所述连续场景的基础帧及后续帧进行解码;

步骤3:利用动态矢量权重表,提取物体在解码后的基础帧及后续帧中的差异区间;

步骤4:利用所述差异区间形成最小解码矩阵,并对所述最小解码矩阵进行解码。

进一步的,所述步骤1中,构建动态矢量权重表的具体步骤如下:

步骤1.1对视频流图像中的物体进行识别并初步分类;

步骤1.2对初步分类后的物体,计算每个物体的权重,所述权重与物体的运动矢量正相关;

步骤1.3利用所述权重构建所述动态矢量权重表。

进一步的,所述步骤2中所述基础帧为连续场景的首帧图像,后续帧为连续场景中除基础帧外的其他帧图像。

进一步的,步骤3中,利用cpu的子程序指令,按照物体在动态矢量权重表中的顺序,依次比对该物体在基础帧和后续帧中的运动矢量,得到该物体的差异区间。

进一步的,所述差异区间按照链表的形式在高速cpu高速缓存中进行组合,得到最小解码矩阵。

进一步的,所述差异区间储存在所述高速cpu的第二级和第三级缓存中。

进一步的,所述最小解码矩阵具有解码阈值,当最小解码矩阵的大小大于所述解码阈值时,cpu对该最小解码矩阵进行解码,反之不进行解码。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1.本发明利用多种智能技术,可对8k超高清视频中的场景进行识别、对场景中的高运动矢量目标进行分类和分析,生成动态矢量权重表,能够有效提高8k超高清视频的解码效率。

2.本发明能够有效降低由于采用gpu阵列进行网络解码所付出的高昂硬件成本,使得解码系统的通用性进一步加强,其灵活性和广泛性可以为后续8k超高清视频在更多领域的应用带来新的解决方案。

3.本发明除能使用cpu单独进行解码外,还附带cpu+gpu的联合工作模式,为8k超高清视频解码能力的后续扩展和在更高码率上的应用带来了新的曙光。也是第一种彻底摆脱fpga和gpu方案8k超高清视频解码方案。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明的整体流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以下结合实施例对本发明的特征和性能作进一步的详细描述。

实施例

cpu和gpu都是具有运算能力的芯片,cpu更像“通才”——指令运算(执行)为重加数值运算,gpu更像“专才”——图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力——“擅长和不擅长”。芯片的速度主要取决于三个方面:微架构,主频和ipc(每个时钟周期执行的指令数)。

(1)从微架构上看

cpu微架构的设计是面向指令执行高效率而设计的,因而cpu是计算机中设计最复杂的芯片。和gpu相比,cpu核心的重复设计部分不多,这种复杂性不能仅以晶体管的多寡来衡量,这种复杂性来自于实现:如程序分支预测,推测执行,多重嵌套分支执行,并行执行时候的指令相关性和数据相关性,多核协同处理时候的数据一致性等等复杂逻辑。

gpu其实是由硬件实现的一组图形函数的集合,这些函数主要用于绘制各种图形所需要的运算。这些和像素,光影处理,3d坐标变换等相关的运算由gpu硬件加速来实现。图形运算的特点是大量同类型数据的密集运算——如图形数据的矩阵运算,gpu的微架构就是面向适合于矩阵类型的数值计算而设计的,大量重复设计的计算单元,这类计算可以分成众多独立的数值计算——大量数值运算的线程,而且数据之间没有像程序执行的那种逻辑关联性。

因此从微架构上看,cpu擅长的是像操作系统、系统软件和通用应用程序这类拥有复杂指令调度、循环、分支、逻辑判断以及执行等的程序任务。它的并行优势是程序执行层面的,程序逻辑的复杂度也限定了程序执行的指令并行性,上百个并行程序执行的线程基本看不到。gpu擅长的是图形类的或者是非图形类的高度并行数值计算,gpu可以容纳上千个没有逻辑关系的数值计算线程,它的优势是无逻辑关系数据的并行计算。

(2)从主频上看

gpu执行每个数值计算的速度并没有比cpu快,从目前主流cpu和gpu的主频就可以看出了,cpu的主频都超过了3ghz,甚至3.8ghz,而gpu的主频最高还不到2ghz,主流的也就1ghz。所以gpu在执行少量线程的数值计算时速度并不能超过cpu。

目前gpu数值计算的优势主要是浮点运算,它执行浮点运算快是靠大量并行,但是这种数值运算的并行性在面对程序的逻辑执行时毫无用处。

(3)从ipc上看

cpu和gpu无法比较,因为gpu大多数指令都是面向数值计算的,少量的控制指令也无法被操作系统和软件直接使用。如果比较数据指令的ipc,并行的原因gpu显然要高过cpu,但是,如果比较控制指令的ipc,自然是cpu的要高的多。

另外,目前有些gpu也能够支持比较复杂的控制指令,比如条件转移、分支、循环和子程序调用等,但是gpu程序控制这方面的增加,和支持操作系统所需要的能力cpu相比还是天壤之别,而且指令执行的效率也无法和cpu相提并论。

由此可见,在8k解码运算中gpu的运算性能除了跟gpu本身的架构有关以外,还与cpu的性能息息相关。因为gpu的控制需要一套复杂的指令集,这套指令集则是由cpu驱动的。cpu更适合处理逻辑控制密集的计算任务,而gpu适合处理数据密集的计算任务。并且由于现代cpu的发展,使得cpu与计算机主存的交换速度要远远大于gpu与计算机主存的交换速度,因此gpu更适合处理simd(singlelnstructionmultidata,单数据多指令)的运算,即将数据放到显存中进行多次计算的计算任务。

目前比较流行cpu+gpu的协同计算模型,在这个模型中,cpu与cpu协同工作,各司其职。cpu负责进行逻辑性强的事物处理和串行计算,gpu则专注于执行高度线程化的并行处理任务。cpu、gpu各自拥有相互独立的存储器地址空间:主机端的内存和设备端的显存。

而本发明提供一种基于cpu的8k超高清视频高速解码方法,发挥cpu在逻辑处理和指令集执行上的优势,利用cpu在逻辑处理方面的优势,预先判断图像的高动态矢量区间,利用cpu的高主频提高继发解码的效率,具体步骤如下:

在cpu中对8k视频流进行以下操作:

步骤1:从网络端获取已经编码的超高清8k视频数据流,包括视频数据和音频数据,构建视频流图像中物体的动态矢量权重表;

步骤1.1采用人工智能方式,对视频流中的物体进行识别,再利用cpu的微架构特点,通过有序的指令集,对视频流图像中的物体进行初步分类;

步骤1.2对初步分类后的物体,计算每个物体的权重,所述权重与物体的运动矢量正相关,即运动矢量大的物体权重高,运动矢量小的物体权重低;

步骤1.3利用所述权重构建所述动态矢量权重表,其中物体与权重一一对应,并按权重大小进行排序,以备后续算法的调用和调整。

步骤2:获取视频流中的连续场景,对所述连续场景的基础帧及后续帧进行解码;

由于视频流中的前一小段可能是上一场景的后半段,因此需要对连续场景进行识别,具体为对转场帧进行识别,如果5帧之内不转场,则判断该段视频为连续场景,而连续场景的首帧图像即为基础帧,除基础帧外的其他帧图像为后续帧。

步骤3:利用动态矢量权重表,提取物体在解码后的基础帧及后续帧中的差异区间;

具体为利用cpu的子程序指令,按照物体在动态矢量权重表中的顺序,依次比对该物体在基础帧和后续帧中的运动矢量,得到该物体的差异区间,权重高的物体差异区间大,权重中等的较小,权重低的差异区间几乎不变;差异区间是用来做预测编码的,例如汽车,由于其运动矢量大,则权重高,那它的差异区间就大。由于gpu在逻辑处理能力方面独特的优势,这一过程会比在gpu中快很多,而以最小的代价进行后续解码。

步骤4:利用所述差异区间形成最小解码矩阵,并对所述最小解码矩阵进行解码;所述差异区间按照链表的形式在高速cpu高速缓存的第二级和第三级缓存中进行组合,得到最小解码矩阵。所述最小解码矩阵具有解码阈值,本实施例解码阈值设置为10mb,当最小解码矩阵的大小大于10mb时,cpu对该最小解码矩阵进行解码,反之不进行解码。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值