CN116471414A - 视频的处理方法、装置及异构处理芯片 - Google Patents

视频的处理方法、装置及异构处理芯片 Download PDF

Info

Publication number
CN116471414A
CN116471414A CN202310308242.6A CN202310308242A CN116471414A CN 116471414 A CN116471414 A CN 116471414A CN 202310308242 A CN202310308242 A CN 202310308242A CN 116471414 A CN116471414 A CN 116471414A
Authority
CN
China
Prior art keywords
processing
acceleration module
module
video stream
encoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310308242.6A
Other languages
English (en)
Inventor
缪泽翔
王豪
陈高星
陆彦珩
刘子豪
徐淑淞
李思成
黄林峰
范益波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202310308242.6A priority Critical patent/CN116471414A/zh
Publication of CN116471414A publication Critical patent/CN116471414A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例提供了一种视频的处理方法及装置,包括:获取输入视频,并对输入视频进行解码,得到解码视频流;对解码视频流进行内容分析的过程中,在确定加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至加速模块进行处理,获得编码参数;对解码视频流进行编码的过程中,在确定加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至加速模块进行处理,获得编码视频流。本申请既通过加速模块对高计算量密度图形任务的计算优势,解决了相关技术中纯软件方式的算力瓶颈和计算时间过长的问题,还通过通用模块对任务的灵活调度,解决了相关技术中纯硬件方案算力固化难以提升的问题。

Description

视频的处理方法、装置及异构处理芯片
技术领域
本申请涉及视频处理技术领域,特别是涉及一种视频的处理方法、装置、异构处理芯片、电子设备、机器可读介质。
背景技术
视频编解码是视频处理的典型应用环节,目前已广泛应用在互联网的各个领域中。
在目前,可以采用纯软件或纯硬件的方式实现视频编解码,其中,纯软件方式通过编解码软件在中央处理器(CPU,Central Processing Unit)中运行,利用CPU的算力实现视频编解码。纯硬件的方式则通过针对视频编解码设计的专用计算单元来处理视频编解码任务。
但是,发明人经过研究发现,目前的方案中,纯软件的方式受限于CPU的设计上限,计算时间长且易陷入算力瓶颈,而纯硬件的方式也因存在设计上限,导致算力难以进一步提升。
发明内容
本申请实施例提供了一种视频的处理方法,以解决相关技术中计算效率低下的问题。
相应的,本申请实施例还提供了一种视频的处理装置、异构处理芯片、电子设备以及存储介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种视频的处理方法,应用于异构处理芯片中的通用模块,所述异构处理芯片还包括:加速模块,所述方法包括:
获取输入视频,并对所述输入视频进行解码,得到解码视频流;
对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数;
对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流。
本申请实施例公开了一种视频的处理装置,应用于异构处理芯片中的通用模块,所述异构处理芯片还包括:加速模块,所述装置包括:
解码模块,用于获取输入视频,并对所述输入视频进行解码,得到解码视频流;
分析模块,用于获取对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数;
编码模块,用于获取对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流。
本申请实施例公开了一种异构处理芯片,所述异构处理芯片包括:通用模块和加速模块,所述通用模块和所述加速模块通信连接;
所述通用模块用于获取输入视频,并对所述输入视频进行解码,得到解码视频流;
在所述通用模块对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,所述通用模块将至少部分内容分析任务,发送至所述加速模块进行处理;以及根据所述加速模块发送的第一处理结果,获得编码参数;
在所述通用模块对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,所述通用模块将至少部分编码任务,发送至所述加速模块进行处理,以及根据所述加速模块处理发送的第二处理结果和所述编码参数,获得编码视频流;
所述加速模块用于处理接收到的所述内容分析任务,获得第一处理结果并发送至所述通用模块;以及处理接收到的编码任务,获得第二处理结果并发送至所述通用模块。
本申请实施例还公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的方法。
本申请实施例还公开了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的方法。
与相关技术相比,本申请实施例包括以下优点:
本申请实施例中,可以在处理视频编解码任务时,利用异构处理芯片的设计来改善视频编解码的算力瓶颈和效率问题,具体在通用模块确定加速模块的状态满足预设条件的情况下,由通用模块将内容分析的过程的至少部分内容分析任务,发送至所述加速模块进行处理,以及由通用模块将编码过程的至少部分编码任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编解码任务的基础上,可以通过任务调度,将高计算量密度的编解码任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理内容分析和编码过程中的高计算量密度的编解码任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。本申请实施例既通过加速模块对高计算量密度图形任务的计算优势,解决了相关技术中纯软件方式的算力瓶颈和计算时间过长的问题,还通过通用模块对任务的灵活调度,解决了相关技术中纯硬件方案算力固化难以提升的问题。
附图说明
图1是本申请实施例的一种系统架构图;
图2是相关技术提供的一种视频的处理方法的系统架构图;
图3是本申请实施例的一种异构处理芯片的结构示意图;
图4是本申请实施例的一种视频类服务的云端转码场景示意图;
图5是本申请实施例的一种视频类服务的本地转码场景示意图;
图6是本申请实施例的一种视频的处理方法的步骤流程图;
图7是本申请实施例的一种视频的处理方法的具体步骤流程图;
图8是本申请实施例的一种编码过程示意图;
图9是本申请实施例的一种视频的处理装置的框图;
图10是本申请一实施例提供的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
为使本领域技术人员更好地理解本申请,以下对本申请涉及的概念进行说明:
视频转码(Video Transcoding)是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码,再编码的过程。
视频编码:对视频的图像帧进行压缩方便其存储与传输。具体的,图像信息经采集后生成的原始视频数据,数据量非常大。涉及视频的传输与存储时,传输网络与存储设备无法容忍原始视频数据的巨大数据量,必须将原始视频数据经过编码压缩后,再进行传输与存储。
视频解码:对已编码的视频进行反向处理获得编码前的原始视频流的技术。
解码视频流:即为编码前的原始视频流,是由原始的视频帧图像组成的yuv(一种颜色编码,y为明亮度,uv为颜色度)视频序列,解码视频流是对输入视频解码后所获得的。
编码视频流:解码视频流经过视频编码处理后得到的文件,也称为视频裸流文件,视频裸流文件经过后续的封装处理后,即可得到可以观看的影音视频。
内容分析:也称为内容自适应分析,可以通过对视频内容的分析,选择对后续编码最为有利的编码参数及编码方案,即内容分析是视频编码的前置过程,用于优化视频编码的实现,提高编码质量。
编码参数:内容分析后得到的适用于后续编码操作的参数,包括视频流的视频帧对应的量化参数偏移值。
异构处理芯片:将专门设计的用于密集型视频图像计算的加速模块,设置在以CPU类型算力为主的通用模块的外围后,所形成的一体式集成芯片,通用模块和所述加速模块共用同一内存片区;其中,加速模块在处理密集型的视频图像任务时有较大优势,加速模块的单算子相比于基于CPU核的计算方案具有约两个数量级的加速,总体具有15%~100%的端到端加速效果;通用模块则在处理计算密度相对较低但高逻辑复杂度的任务时有较大优势。
分块处理:将视频帧分割为多个图像分块,图像分块也称为编码单元(CU,CodingUnit),是编码过程中的一个处理对象。分块处理可以提升视频编码的细粒度。
图像参数:在本申请实施例中指图像分块的图像参数,具体指图像分块的方差、亮度、梯度、色度等信息。
前处理参数:视频编码过程可以分为:编码前处理过程和编码执行过程。编码前处理过程可以对视频流进行自适应量化、帧间搜索等操作,从而对待编码视频的视频帧进行预编码,目的是得到前处理参数,前处理参数可以反映视频帧的对后续参考帧的参考价值参数,前处理参数具体包含视频帧的帧类型,以及适用于后续编码执行过程的量化参数偏移值。
量化参数(QP,Quantization Parameter):量化就是把信号的连续取值映射成多个离散的幅值的过程,实现了信号取值多对一的映射,量化可以有效减小信号的取值范围,进而获得更好的压缩效果,量化参数是一种可以在编码过程中导出量化步长的参数,用于控制编码后码流的体积大小和质量,量化参数越小,编码后的码流体积越大,画面质量越高;量化参数越大,编码后的码流体积越小,画面质量越低。
量化参数偏移值:用于修正量化参数的数值。
自适应量化计算:图像处理技术的一种量化方式,对图像变换后分量系数要进行量化,自适应量化就是对量化等级Q值进行自动地的调节,使图像细节较少的像块占用较少的数据量,图像细节丰富的像块能够享受较多的数据量,而平均数据量仍符合设计值。
帧间搜索:用于决策视频帧的帧类型以及进一步确定量化参数偏移值。
帧内预测(intra):仅使用当前帧重建像素进行预测的模式。
帧间预测(inter):使用之前已编码帧的像素进行当前帧预测的模式。
本申请实施例中的视频的处理方法可以应用于视频转码(包含解码、处理和编码)场景。该应用场景可以包括:视频类服务的云端转码场景、视频类服务的本地转码场景等。以视频类服务的云端转码场景为例,本申请实施例中的视频的处理方法可以由云服务器实现视频的转码。以视频类服务的本地转码场景为例,本申请实施例中的视频的处理方法可以由转码服务器或用户设备实现视频的转码。
参照图1,其示出了本申请实施例提供的一种视频的处理方法的系统架构图,包括:转码服务器、视频服务器和用户设备;转码服务器可以从视频服务器获取输入视频并转码后获得新的编码视频流,之后将新的编码视频流发送至用户设备。转码服务器可以是云服务器,也可以是本地的转码服务器,本申请实施例对此不做限定。
具体的,参照图1,转码服务器中设置有异构处理芯片,异构处理芯片包括:专门设计的用于密集型视频图像计算的加速模块,以及以CPU类型算力为主的通用模块,加速模块设置在通用模块的外围,通用模块和所述加速模块共用同一内存片区。
参照图2,其示出了相关技术的一种视频处理方法的系统架构图,包括:通用CPU芯片和转码卡,其中,通用CPU芯片和转码卡相互独立,通用CPU芯片具有自己独立使用的系统内存片区,转码卡也具有自己独立使用的转码卡内存片区。在执行视频转码任务时,首先需要通用CPU芯片将视频数据从系统内存片区转写到转码卡内存片区,之后转码卡再从转码卡内存片区获得视频数据并转码输出。
相关技术中,转码主要由转码卡实现,受限于转码卡的设计上限,会导致算力存在瓶颈,难以进一步提升,另外,由于通用CPU芯片和转码卡相互独立且各自分别使用独立的内存片区,则转码时由于通用CPU芯片和转码卡之间存在频繁的数据交互,使得每次交互都需要从系统内存片区和转码卡内存片区中反复读写数据,造成数据传输延迟较大,严重影响转码效率。
为了解决上述问题,参照图1,本申请实施例采用包括加速模块以及通用模块的异构处理芯片来实现视频转码,其中,通用模块利用其CPU类型算力的优势,主要参与执行视频转码过程中计算密度相对较低但具有高逻辑复杂度的处理任务(如解码、分块、滤波等),而加速模块利用其对图形任务的处理优势,主要参与执行视频转码过程中计算量较为密集的处理任务(如帧间搜索、帧间预测等)。
具体的,对视频的转码可以大致分为四个环节:解码、前处理、内容分析和编码。在获取输入视频后,可以通过异构处理芯片的通用模块首先对输入视频进行解码,获得解码视频流,之后在进行对解码视频流的前处理时,通用模块可以将至少部分高计算量密度的前处理任务(如利用分辨率转换函数进行分辨率转换的前处理任务),发送至加速模块进行处理,并根据加速模块的返回结果,完成前处理环节;前处理完成后,在针对前处理后的视频编码流进行内容分析的过程中,通用模块可以将至少部分高计算量密度的内容分析任务(如计算图像分块的图像参数的任务),发送至加速模块进行处理,并根据加速模块的返回结果,完成内容分析环节,并获得编码参数;最后在根据编码参数对解码视频流进行编码的过程中,通用模块可以将至少部分高计算量密度的编码任务(如帧间预测任务、帧间搜索任务),发送至加速模块进行处理,并根据加速模块的返回结果,完成编码环节,并获得编码视频流输出给用户设备。
其中,通用模块在将高计算量密度的任务发送至加速模块进行处理之前,通用模块需判断加速模块的状态是否满足预设条件,该判断过程旨在判断加速模块当前的负载状态是否允许其继续处理后续任务,该判断过程具体可以由通用模块先获取加速模块的负载状态;并在负载状态为空闲状态的情况下,确定加速模块的状态满足预设条件。
进一步的,参照图3,其示出了一种异构处理芯片的结构示意图,本申请实施例可以将加速模块布置在通用模块的外围从而形成一体的异构处理芯片,且通用模块和加速模块共用同一系统内存片区。这样,通用模块和加速模块在进行数据交互时,即可在同一系统内存片区内实现数据的交互,从而解决了相关技术中不同内存片区的数据交互带来的数据传输延迟的问题,提高了转码效率。
本申请实施例可以在处理视频编解码任务时,利用异构处理芯片的设计来改善视频编解码的算力瓶颈和效率问题,具体在通用模块确定加速模块的状态满足预设条件的情况下,由通用模块将内容分析的过程的至少部分内容分析任务,发送至所述加速模块进行处理,以及由通用模块将编码过程的至少部分编码任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编解码任务的基础上,可以通过任务调度,将高计算量密度的编解码任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理内容分析和编码过程中的高计算量密度的编解码任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。本申请实施例既通过加速模块对高计算量密度图形任务的计算优势,解决了相关技术中纯软件方式的算力瓶颈和计算时间过长的问题,还通过通用模块对任务的灵活调度,解决了相关技术中纯硬件方案算力固化难以提升的问题。
需要说明的是,基于本申请实施例提供视频的处理方法,可以实现的几种具体场景如下:
在一种实现方式中,参照图4,其示出了本申请实施例提供的一种视频类服务的云端转码场景示意图,包括:用户设备、云服务器、视频服务器,其中,云服务器中可以设置本申请实施例如图3所示的异构处理芯片,用户设备在请求对视频进行转码时,云服务器可以从视频服务器中获取待转码的输入视频,并利用异构处理芯片对输入视频进行转码,获得转码视频流并输出给用户设备。具体的,通用模块利用其CPU类型算力的优势,主要参与任务的调度,以及执行视频转码过程中计算密度相对较低但具有高逻辑复杂度的处理任务,而加速模块利用其对图形任务的处理优势,主要参与执行视频转码过程中计算量较为密集的处理任务。
在另一种实现方式中,参照图5,其示出了本申请实施例提供的一种视频类服务的本地转码场景示意图,包括:用户设备、转码服务器、视频服务器,其中,转码服务器中可以设置本申请实施例如图3所示的异构处理芯片,用户设备在请求对视频进行转码时,转码服务器可以从视频服务器中获取待转码的输入视频,并利用异构处理芯片对输入视频进行转码,获得转码视频流并输出给用户设备。具体的,通用模块利用其CPU类型算力的优势,主要参与任务的调度,以及执行视频转码过程中计算密度相对较低但具有高逻辑复杂度的处理任务,而加速模块利用其对图形任务的处理优势,主要参与执行视频转码过程中计算量较为密集的处理任务。
需要说明的是,本申请实施例中获取视频以及其他使用到的信息、信号或数据的过程,都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
参照图6,其示出了本申请实施例提供的一种视频的处理方法的步骤流程图,应用于异构处理芯片中的通用模块,异构处理芯片还包括:加速模块,方法包括:
步骤101,获取输入视频,并对所述输入视频进行解码,得到解码视频流。
在本申请实施例中,若要对输入视频进行转码,首先需要将其进行解码,获得解码视频流,解码具体可以采用二进制的熵解码方式进行实现。其中,视频解码是对已编码的视频进行反向处理获得编码前的原始视频流的技术,解码后的解码视频流可以反映更原始的视频数据,后续可以基于解码视频流实现对视频图像的处理以及再次编码输出。
可选的,所述通用模块和所述加速模块共用同一内存片区,所述通用模块为CPU算力类型的计算模块。
在本申请实施例中,参照图3,通用模块和加速模块可以共用同一系统内存片区,通用模块为CPU算力类型的计算模块。CPU算力类型的通用模块可以基于CPU算力优势,提高对任务调度的灵活性,并且在处理计算密度相对较低但具有高逻辑复杂度的任务时,具有更高优势。申请实施例将加速模块布置在通用模块的外围从而形成一体的异构处理芯片,且通用模块和加速模块共用同一系统内存片区。这样,通用模块和加速模块在进行数据交互时,即可在同一系统内存片区内实现数据的交互,从而解决了相关技术中不同内存片区的数据交互带来的数据传输延迟的问题,提高了转码效率。
需要说明的是,解码过程由于其计算量密度不大,解码任务更适配于通用模块的CPU算力类型,因此为了满足效率要求,可以由异构处理芯片中CPU算力类型的通用模块来进行解码。
步骤102,对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数。
在本申请实施例中,解码获得解码视频流后,可以进行内容分析环节,内容分析可以通过对视频内容的分析,选择对后续编码最为有利的编码参数及编码方案,从而优化视频编码的实现,提高编码质量。在执行对解码视频流进行内容分析的过程中,通用模块可以在确定加速模块的状态满足预设条件的情况下,将至少部分计算量密度较高的内容分析任务,发送至加速模块进行处理,并根据加速模块处理内容分析任务后发送的第一处理结果,获得编码参数。而通用模块可以处理其余计算量密度相对较小的内容分析任务。
具体的,内容分析包含对视频帧进行分块,并对图像分块进行图像参数的计算、根据图像分块的图像参数进行自适应分析获得编码参数等操作,而其中对图像分块进行图像参数的计算过程是计算量密度非常大的操作,因此,通用模块可以在确定加速模块的状态满足预设条件的情况下,将对图像分块进行图像参数的计算任务调度至加速模块进行计算,计算结果会返回给通用模块,再结合通用模块对自身任务的处理结果,获得编码参数,从而本申请实施例利用加速模块针对图形处理任务的优势,提升视频转码效率。
步骤103,对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流。
在本申请实施例中,内容分析获得适用于后续编码的编码参数后,可以进行视频编码,视频编码的目的是对视频的图像帧进行压缩方便其存储与传输。在执行对解码视频流编码的过程中,通用模块可以在确定加速模块的状态满足预设条件的情况下,将至少部分计算量密度较高的编码任务,发送至加速模块进行处理,并根据加速模块处理编码任务后发送的第一处理结果,获得编码参数。而通用模块可以处理其余计算量密度相对较小的编码任务。
具体的,视频编码包含对视频帧进行分块,编码前处理、编码执行等操作,而编码前处理中的帧间搜索,以及编码执行中的帧间预测是计算量密度非常大的操作,因此,通用模块可以在确定加速模块的状态满足预设条件的情况下,将对帧间搜索的计算任务以及帧间预测的计算任务调度至加速模块进行计算,计算结果会返回给通用模块,再结合通用模块对自身任务的处理结果,完成视频编码,获得编码视频流进行输出,从而本申请实施例利用加速模块针对图形处理任务的优势,提升视频转码效率。
综上所述,本申请实施例可以在处理视频编解码任务时,利用异构处理芯片的设计来改善视频编解码的算力瓶颈和效率问题,具体在通用模块确定加速模块的状态满足预设条件的情况下,由通用模块将内容分析的过程的至少部分内容分析任务,发送至所述加速模块进行处理,以及由通用模块将编码过程的至少部分编码任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编解码任务的基础上,可以通过任务调度,将高计算量密度的编解码任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理内容分析和编码过程中的高计算量密度的编解码任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。本申请实施例既通过加速模块对高计算量密度图形任务的计算优势,解决了相关技术中纯软件方式的算力瓶颈和计算时间过长的问题,还通过通用模块对任务的灵活调度,解决了相关技术中纯硬件方案算力固化难以提升的问题。
参照图7,其示出了本申请实施例提供的一种视频的处理方法的具体步骤流程图,应用于异构处理芯片中的通用模块,所述异构处理芯片还包括:加速模块,方法包括:
步骤201,获取输入视频,并对所述输入视频进行解码,得到解码视频流。
该步骤具体可以参照上述步骤101,此处不做赘述。
步骤202,对所述解码视频流进行图像前处理,获得修正后的解码视频流。
在本申请实施例中,图像前处理环节是在视频编码前,对解码视频流的图像进行处理的环节,通过对解码视频流的图像进行适当的处理,可以使得后续编码后的视频流画面质量更高,并满足视频的实际应用需求。图像前处理包括:锐化、模糊、缩放中的一种或多种,图像前处理可以视频流的画面展现效果进行修正。
在一种实现方式中,可以由异构处理芯片的通用模块进行图像前处理并获得修正后的解码视频流。
或者,也可以采用在确定所述加速模块的状态满足预设条件的情况下,将包含解码视频流的图像前处理任务,发送至所述加速模块进行对所述解码视频流的图像前处理,并获取所述加速模块处理所述图像前处理任务后发送的修正后的解码视频流的方式实现步骤202。
其中,所述图像前处理包括:锐化、模糊、缩放中的一种或多种。
在另一种实现方式中,当图像前处理中存在计算量密度较高的计算任务时,则通用模块还可以在确定加速模块的状态满足预设条件的情况下,将包含解码视频流的图像前处理任务,发送至加速模块进行处理,并获取加速模块处理图像前处理任务后发送的修正后的解码视频流,这种实现方式在出现计算量密度较高的计算任务时,充分利用了加速模块对图形数据的处理优势来加速图像前处理的运算效率。
例如,当图像前处理中采用分辨率转换函数scale对解码视频流的视频帧进行分辨率转换时,该任务的计算量密度非常大,CPU算力类型的通用模块处理该任务的耗时较长,严重影响视频转码效率,此时,通用模块可以将该任务调度至加速模块进行处理,加速模块利用自身对图形数据的处理优势,可以加快该任务的处理效率,进而为整体视频转码效率的提升做出贡献。
步骤203,在对所述解码视频流进行内容分析的过程中,对所述解码视频流的视频帧进行分块处理,获得所述视频帧的第一图像分块。
在本申请实施例中,对解码视频流进行内容分析时,首先需要对解码视频流的视频帧进行分块处理,分块处理可以将视频帧分割为多个第一图像分块,使得后续的内容分析可以基于第一图像分块的维度实现,图像分块也称为CU,CU是编码过程中的一个基础处理对象。例如,可以按照每个第一图像分块为64×64或32×32的大小对视频帧进行分块处理,具体分块处理可以采用串行依次处理、行级并行处理、帧级并行处理等方式。
步骤204,在确定所述加速模块的状态满足预设条件的情况下,将包括所述第一图像分块的内容分析任务发送至所述加速模块进行处理,所述内容分析任务用于计算所述第一图像分块的图像参数。
在本申请实施例中,在进行内容分析的过程中,需要在获得第一图像分块之后计算第一图像分块的图像参数,第一图像分块的图像参数包括第一图像分块的方差、梯度、亮度、色度等参数,由于计算图像参数是计算量密度非常大的操作,因此,通用模块可以在确定加速模块的状态满足预设条件的情况下,将对图像分块进行图像参数的内容分析任务调度至加速模块进行计算,计算结果会返回给通用模块,再结合通用模块对自身任务的处理结果,获得编码参数,从而本申请实施例利用加速模块针对图形处理任务的优势,提升视频转码效率。
步骤205,获取所述加速模块针对所述内容分析任务计算完成后发送的所述第一图像分块的图像参数。
在本申请实施例中,由于通用模块将计算量密度较大、且用于计算第一图像分块的图像参数的内容分析任务调度至加速模块进行处理,则加速模块利用其对图形数据的处理优势处理内容分析任务后,会返回给通用模块第一图像分块的图像参数。
步骤206、根据所述第一图像分块的图像参数,获得所述编码参数。
在本申请实施例中,通用模块获得了第一图像分块的图像参数后,可以基于自适应分析获得编码参数,编码参数是适用于后续编码操作的参数,可以包括视频流的视频帧对应的量化参数偏移值。
针对视频转码的内容分析过程,本申请实施例在通用模块确定加速模块的状态满足预设条件的情况下,由通用模块将内容分析的过程的至少部分内容分析任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的内容分析任务的基础上,可以通过任务调度,将高计算量密度的编解码任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理内容分析中的高计算量密度的内容分析任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。
步骤207、对所述解码视频流的视频帧进行分块处理,获得所述视频帧的第二图像分块。
在本申请实施例中,对解码视频流进行编码时,首先需要对解码视频流的视频帧进行分块处理,分块处理可以将视频帧分割为多个第二图像分块,使得后续的编码可以基于第二图像分块的维度实现,例如,可以按照每个第二图像分块为64×64或32×32的大小对视频帧进行分块处理,具体分块处理可以采用串行依次处理、行级并行处理、帧级并行处理等方式。
步骤208、根据所述解码视频流的视频帧以及所述第二图像分块,进行编码前处理计算,并在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码前处理任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码前处理任务后发送的第三处理结果,获得前处理参数。
在本申请实施例中,针对最后的编码过程,可以将其分为编码前处理环节和编码执行环节。
编码前处理环节可以对视频流进行自适应量化、帧间搜索等操作,从而对待编码视频的视频帧进行预编码,目的是得到前处理参数,前处理参数可以反映视频帧的对后续参考帧的参考价值参数,前处理参数具体包含视频帧的帧类型,以及适用于后续编码执行过程的量化参数偏移值。
编码执行环节首先基于对解码视频流的视频帧进行帧间预测和帧内预测,通过预测结果和前处理参数对整个解码视频流进行编码,最终得到编码视频流,编码视频流也称为视频裸流文件,视频裸流文件经过后续的封装处理后,即可得到可以观看的影音视频。
具体的,在根据解码视频流的视频帧以及第二图像分块进行编码前处理计算的过程中,存在计算量密度较大的至少部分编码前处理任务,而CPU算力类型的通用模块对这种任务的计算效率较低,因此,通用模块可以在确定加速模块的状态满足预设条件的情况下,将计算量密度较大的至少部分编码前处理任务发送至加速模块进行处理,根据加速模块处理编码前处理任务后发送的第三处理结果,获得前处理参数。本申请实施例由通用模块将内容分析的过程的至少部分编码前处理任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编码前处理任务的基础上,可以通过任务调度,将高计算量密度的编码前处理任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理编码前处理中的高计算量密度的编码前处理任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。
可选的,步骤208具体可以包括:
子步骤2081、根据所述第二图像分块进行自适应量化计算,获得所述第二图像分块的第二量化参数偏移值。
子步骤2082、在确定所述加速模块的状态满足预设条件的情况下,将包括所述解码视频流的视频帧的目标编码前处理任务发送至所述加速模块进行处理,所述目标编码前处理任务用于根据所述解码视频流的视频帧进行帧间搜索,获得包括所述视频帧的第三量化参数偏移值的第三处理结果。
子步骤2083、获取所述加速模块发送的包括所述视频帧的第三量化参数偏移值的第三处理结果,并将所述第二量化参数偏移值、所述第三量化参数偏移值作为所述前处理参数。
在本申请实施例中,针对子步骤2081-2083,编码前处理过程首先可以对第二图像分块进行自适应量化计算,获得第二图像分块的第二量化参数偏移值,自适应量化是图像处理技术的一种量化方式,对图像变换后分量系数要进行量化,自适应量化就是对量化等级Q值进行自动地的调节,使图像细节较少的像块占用较少的数据量,图像细节丰富的像块能够享受较多的数据量,而平均数据量仍符合设计值。
进一步的,获得第二图像分块的第二量化参数偏移值之后,要进行帧间搜索操作,帧间搜索用于决策视频帧的帧类型以及进一步确定量化参数偏移值,但是,帧间搜索由于用到了最小可接受视觉误差函数(JND,just noticeable difference),因此是计算量密度较大的目标编码前处理任务,而CPU算力类型的通用模块对这种任务的计算效率较低,因此,通用模块可以在确定加速模块的状态满足预设条件的情况下,将计算量密度较大的用于帧间搜索的目标编码前处理任务发送至加速模块进行处理,根据加速模块处理目标编码前处理任务后发送的包括视频帧的第三量化参数偏移值的第三处理结果。
最后,通用模块根据加速模块发送的包括视频帧的第三量化参数偏移值的第三处理结果,将第二量化参数偏移值、第三量化参数偏移值作为前处理参数,前处理参数后续可以用于编码执行操作,用于提升编码精度。
步骤209、根据所述前处理参数,所述编码参数、以及所述解码视频流的视频帧,进行编码执行处理,并在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码执行任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码执行任务后发送的第四处理结果,获得编码视频流。
在本申请实施例中,编码过程可以将其分为编码前处理环节和编码执行环节。编码前处理过程获得的前处理参数可以用于编码执行环节,以提升编码执行精度,在编码执行环节中,依次需进行预测过程、变换及量化过程、重建过程、滤波过程和熵编码过程。
在编码执行环节中,也存在至少部分编码执行任务为计算量密度较大的任务,则通用模块可以在确定加速模块的状态满足预设条件的情况下,将计算量密度较大的至少部分编码执行任务发送至加速模块进行处理,根据加速模块处理编码执行任务后发送的第四处理结果,获得编码视频流。本申请实施例由通用模块将内容分析的过程的至少部分编码执行任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编码执行任务的基础上,可以通过任务调度,将高计算量密度的编码执行任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理编码执行中的高计算量密度的编码执行任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。
可选的,所述编码参数包括:所述解码视频流的视频帧的第一量化参数偏移值:步骤209具体可以包括:
子步骤2091、在确定所述加速模块的状态满足预设条件的情况下,将包含所述解码视频流的视频帧的编码执行任务发送至所述加速模块进行处理,所述编码执行任务用于根据所述解码视频流的视频帧进行帧间预测,获得包含帧间预测结果的第四处理结果。
子步骤2092、根据所述解码视频流的视频帧进行帧内预测,获得帧内预测结果。
子步骤2093、根据所述解码视频流的视频帧、预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值、所述帧内预测结果、以及所述帧间预测结果,进行变换及量化处理,获得变换系数。
子步骤2094、根据所述变换系数进行像素重建操作,获得与所述视频帧的原始像素值对应的重建像素值。
子步骤2095、根据所述帧间预测结果对所述重建像素值进行滤波,获得滤波信息。
子步骤2096、根据所述滤波信息、所述帧间预测结果、所述变换系数对所述解码视频流进行编码,获得所述编码视频流。
在本申请实施例中,针对子步骤2091-2096,编码执行过程首先是预测环节,预测环节包括帧内预测和帧间预测,帧内预测是仅使用当前帧重建像素进行预测的模式,帧间预测是使用之前已编码帧的像素进行当前帧预测的模式,采用了这两种预测模式后,可以获取帧内预测结果和帧间预测结果,其中帧内预测结果包括视频帧中第二图像块的帧内预测代价参数,帧间预测结果包括视频帧中第二图像块的帧间预测代价参数,第二图像块的帧内预测代价参数和帧间预测代价参数是后续计算第二图像块的量化参数的重要参数。每个第二图像块的帧内预测代价代表了当前帧总信息量,第二图像块的帧内预测代价与帧间预测代价的差值,则代表了当前帧从它的参考帧中传递到的信息量。
具体的,针对帧内预测过程,其计算量密度相对较小,因此可以采用通用模块处理帧内预测任务,获得帧内预测结果。而针对帧间预测过程,由于其用到了运动估计函数(ME,motion estimate),并具体以运动估计生成运动矢量来获得帧间预测结果,所以帧间预测任务的计算量密度较大,CPU算力类型的通用模块对帧间预测任务的处理效率较低,因此,通用模块可以在确定加速模块的状态满足预设条件的情况下,将计算量密度较大的至少部分用于帧间预测的编码执行任务,发送至加速模块进行处理,获得加速模块处理编码执行任务后发送的帧间预测结果。
进一步的,在获得帧间预测结果和帧内预测结果后,可以根据解码视频流的视频帧、预设的基础量化参数、第一量化参数偏移值、第二量化参数偏移值、第三量化参数偏移值、帧内预测结果、以及帧间预测结果,进行变换及量化处理,获得变换系数,具体的,预设的基础量化参数可以是根据实际需求设定的量化参数,第一量化参数偏移值、第二量化参数偏移值、第三量化参数偏移值可以对预设的基础量化参数进行修正,获得修正后的目标量化参数,目标量化参数用于精确控制编码后码流的体积大小和质量。另外,帧间预测结果可以进一步求得残差信息,对残差信息进行变换和量化,可以获得变换系数,其中,在量化过程中,需要用到目标量化参数。
进一步的,变换及量化过程之后,可以根据变换系数进行像素重建操作,获得与视频帧的原始像素值对应的重建像素值,根据帧间预测结果对重建像素值滤波后,获得的滤波结果可以作为后续帧间预测、帧间搜索时的参考像素。
最后,根据滤波信息、帧间预测结果、变换系数对解码视频流进行编码,获得编码视频流,综上,除了帧间预测过程为计算量密度较大的计算任务需要被调度至加速模块进行处理,其余计算任务的计算量密度都较小,可以由通用模块进行处理。
可选的,所述帧间预测结果包括:与所述视频帧中的原始像素值对应的第一预测像素值;所述帧内预测结果包括:与所述视频帧中的原始像素值对应的第二预测像素值;子步骤2093具体可以包括:
子步骤20931、根据所述视频帧中的原始像素值与对应的第一预测像素值之间的第一差值,以及所述原始像素值与对应的第二预测像素值之间的第二差值,计算获得残差信息。
子步骤20932、对所述残差信息进行变换操作,获得变换结果。
子步骤20933、根据预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值,对所述变换结果进行量化处理,获得所述变换系数。
在本申请实施例中,针对子步骤20931-20933,帧间预测结果包括:与视频帧中的原始像素值对应的第一预测像素值;所述帧内预测结果包括:与视频帧中的原始像素值对应的第二预测像素值,则根据原始像素值与对应的第一预测像素值之间的第一差值,以及原始像素值与对应的第二预测像素值之间的第二差值,可以计算获得残差信息,残差信息进一步经过变换操作,可获得变换结果,需要说明的是,一些实现方式中,变换操作中也可以使用帧间预测结果来辅助计算。最后,第一量化参数偏移值、第二量化参数偏移值、第三量化参数偏移值可以对预设的基础量化参数进行修正,获得修正后的目标量化参数,目标量化参数用于精确控制编码后码流的体积大小和质量,利用目标量化参数可以进一步对变换结果进行量化处理,获得变换系数。
可选的,子步骤2094具体可以包括:
子步骤20941、对所述变换系数依次进行反量化和反变换处理,获得残差重建信息。
子步骤20942、根据所述残差重建信息、所述帧间预测结果以及所述帧内预测结果,获得与所述视频帧的原始像素值对应的重建像素值。
在本申请实施例中,针对子步骤20941-20942,重建获得重建像素值的过程,首先可以对变换系数依次进行反量化和反变换处理,获得残差重建信息,之后再根据残差重建信息、帧间预测结果以及帧内预测结果,获得与视频帧的原始像素值对应的重建像素值,从而完成像素重建。
综上,参照图8,其示出了一种编码过程示意图,编码过程可以划分为编码前处理环节和编码执行环节,针对编码前处理过程,旨在得到前处理参数,前处理参数可以反映视频帧的对后续参考帧的参考价值参数,前处理参数具体包含视频帧的帧类型,以及适用于后续编码执行过程的量化参数偏移值。编码执行环节首先基于对解码视频流的视频帧进行帧间预测和帧内预测,通过预测结果和前处理参数对整个解码视频流进行编码,最终得到编码视频流,编码视频流也称为视频裸流文件,视频裸流文件经过后续的封装处理后,即可得到可以观看的影音视频。
具体的,编码前处理过程在输入解码视频流后,通用模块可以先进行自适应量化,再进行低分辨率帧内估计,最后在内容分析时,通用模块可以将计算量密度较大的帧间搜索任务调度至加速模块进行处理,针对该调度环节,通用模块可以判断加速模块是否可用(加速模块的状态是否满足预设条件),若是,则将计算量密度较大的帧间搜索任务调度至加速模块进行处理,若否,则为了保证计算过程的连续性,可以由通用模块处理帧间搜索任务。执行完内容分析后,可以获得编码前处理环节对应的前处理参数。
进一步的,编码前处理环节执行完成后,可以继续执行编码执行环节,首先开始压缩帧,通过多个并行线程传输压缩帧,并判断波浪式并行处理(WPP,Wavefront ParallelProcessing)线程是否启用,并在启用的情况下,WPP以图像分块行(ProcessRow)为单位将当前帧和参考帧同步给加速模块进行帧间预测,而通用模块执行帧内预测,之后通用模块根据前处理参数、帧内预测结果、以及帧间预测结果,进行变换及量化处理,获得变换系数;通用模块再根据变换系数进行像素重建操作,获得与视频帧的原始像素值对应的重建像素值;通用模块再根据帧间预测结果对所述重建像素值进行滤波,获得滤波信息;最后,通用模块根据滤波信息、帧间预测结果、变换系数解码视频流进行熵编码,获得编码视频流。
其中,针对加速模块处理帧间预测任务的过程,通用模块为了保证处理流程的紧凑性,可以判断预设时长内是否已获得加速模块发送的帧间预测结果,若是,则使用加速模块发送的帧间预测结果进行后续编码操作,若否,则通用模块执行帧间预测,避免因长时间未获得帧间预测结果而耽误编码执行流程的运行。
可选的,所述方法还可以包括:
步骤210、获取所述加速模块的负载状态。
步骤211、在所述负载状态为空闲状态的情况下,确定所述加速模块的状态满足预设条件。
在本申请实施例中,针对步骤210-211,通用模块在将高计算量密度的任务发送至加速模块进行处理之前,通用模块需判断加速模块的状态是否满足预设条件,该判断过程旨在判断加速模块当前的负载状态是否允许其继续处理后续任务,该判断过程具体可以由通用模块先获取加速模块的负载状态;并在负载状态为空闲状态的情况下,确定加速模块的状态满足预设条件。
可选的,所述方法还可以包括:
步骤212、在确定所述加速模块的状态不满足预设条件,或在预设时长内未接收到所述加速模块的返回结果的情况下,通过所述通用模块处理准备发送至所述加速模块进行处理的至少部分内容分析任务,以及至少部分编码任务。
在本申请实施例中,在确定所述加速模块的状态不满足预设条件的情况下,可以确定当前加速模块负载较大,不足以处理更多的高计算量密度任务,则可以通过通用模块处理准备发送至加速模块进行处理的至少部分高计算量密度的内容分析任务,以及至少部分高计算量密度的编码任务。
进一步的,通用模块在预设时长内未接收到所述加速模块的返回结果的情况下,可以认为当前加速模块出现故障而导致计算结果未在规定时间内返回给通用模块,则为了保证视频转码过程的连续性,可以通过通用模块处理准备发送至加速模块进行处理的至少部分高计算量密度的内容分析任务,以及至少部分高计算量密度的编码任务。
参照图3,本申请实施例还提供了一种异构处理芯片,异构处理芯片包括:通用模块和加速模块,通用模块和加速模块通信连接;通用模块用于获取输入视频,并对输入视频进行解码,得到解码视频流;在通用模块对解码视频流进行内容分析的过程中,在确定加速模块的状态满足预设条件的情况下,通用模块将至少部分内容分析任务,发送至加速模块进行处理;以及根据加速模块发送的第一处理结果,获得编码参数;在通用模块对解码视频流进行编码的过程中,在确定加速模块的状态满足预设条件的情况下,通用模块将至少部分编码任务,发送至加速模块进行处理,以及根据加速模块处理发送的第二处理结果和编码参数,获得编码视频流;加速模块用于处理接收到的内容分析任务,获得第一处理结果并发送至通用模块;以及处理接收到的编码任务,获得第二处理结果并发送至通用模块。
异构处理芯片的具体描述可以参照上述实施例的内容,此处不做赘述。
综上所述,本申请实施例可以在处理视频编解码任务时,利用异构处理芯片的设计来改善视频编解码的算力瓶颈和效率问题,具体在通用模块确定加速模块的状态满足预设条件的情况下,由通用模块将内容分析的过程的至少部分内容分析任务,发送至所述加速模块进行处理,以及由通用模块将编码过程的至少部分编码任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编解码任务的基础上,可以通过任务调度,将高计算量密度的编解码任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理内容分析和编码过程中的高计算量密度的编解码任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。本申请实施例既通过加速模块对高计算量密度图形任务的计算优势,解决了相关技术中纯软件方式的算力瓶颈和计算时间过长的问题,还通过通用模块对任务的灵活调度,解决了相关技术中纯硬件方案算力固化难以提升的问题。
参照图9,其示出了本申请实施例提供的一种视频的处理装置的框图,应用于异构处理芯片中的通用模块,所述异构处理芯片还包括:加速模块,装置包括:
解码模块301,用于获取输入视频,并对所述输入视频进行解码,得到解码视频流;
分析模块302,用于获取对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数;
编码模块303,用于获取对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流。
可选的,装置还包括:
分块模块,用于对所述解码视频流的视频帧进行分块处理,获得所述视频帧的第一图像分块;
分析模块302,包括:
分析子模块,用于在确定所述加速模块的状态满足预设条件的情况下,将包括所述第一图像分块的内容分析任务发送至所述加速模块进行处理,所述内容分析任务用于计算所述第一图像分块的图像参数。
可选的,所述分析模块302,包括:
图像参数子模块,用于获取所述加速模块针对所述内容分析任务计算完成后发送的所述第一图像分块的图像参数;
编码参数子模块,用于根据所述第一图像分块的图像参数,获得所述编码参数。
可选的,所述编码模块303包括:
分块子模块,用于对所述解码视频流的视频帧进行分块处理,获得所述视频帧的第二图像分块;
前处理子模块,用于根据所述解码视频流的视频帧以及所述第二图像分块,进行编码前处理计算,并在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码前处理任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码前处理任务后发送的第三处理结果,获得前处理参数;
执行子模块,用于根据所述前处理参数,所述编码参数、以及所述解码视频流的视频帧,进行编码执行处理,并在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码执行任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码执行任务后发送的第四处理结果,获得编码视频流。
可选的,前处理子模块,包括:
自适应量化单元,用于根据所述第二图像分块进行自适应量化计算,获得所述第二图像分块的第二量化参数偏移值;
帧间搜索单元,用于在确定所述加速模块的状态满足预设条件的情况下,将包括所述解码视频流的视频帧的目标编码前处理任务发送至所述加速模块进行处理,所述目标编码前处理任务用于根据所述解码视频流的视频帧进行帧间搜索,获得包括所述视频帧的第三量化参数偏移值的第三处理结果;
前处理参数单元,用于获取所述加速模块发送的包括所述视频帧的第三量化参数偏移值的第三处理结果,并将所述第二量化参数偏移值、所述第三量化参数偏移值作为所述前处理参数。
可选的,所述执行子模块,包括:
帧间预测单元,用于在确定所述加速模块的状态满足预设条件的情况下,将包含所述解码视频流的视频帧的编码执行任务发送至所述加速模块进行处理,所述编码执行任务用于根据所述解码视频流的视频帧进行帧间预测,获得包含帧间预测结果的第四处理结果。
可选的,所述编码参数包括:所述解码视频流的视频帧的第一量化参数偏移值:
所述执行子模块,包括:
帧内预测单元,用于根据所述解码视频流的视频帧进行帧内预测,获得帧内预测结果;
变化及量化单元,用于根据所述解码视频流的视频帧、预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值、所述帧内预测结果、以及所述帧间预测结果,进行变换及量化处理,获得变换系数;
重建单元,用于根据所述变换系数进行像素重建操作,获得与所述视频帧的原始像素值对应的重建像素值;
滤波单元,用于根据所述帧间预测结果对所述重建像素值进行滤波,获得滤波信息;
编码单元,用于根据所述滤波信息、所述帧间预测结果、所述变换系数对所述解码视频流进行编码,获得所述编码视频流。
可选的,所述帧间预测结果包括:与所述视频帧中的原始像素值对应的第一预测像素值;所述帧内预测结果包括:与所述视频帧中的原始像素值对应的第二预测像素值;
所述变化及量化单元,包括:
残差子单元,用于根据所述视频帧中的原始像素值与对应的第一预测像素值之间的第一差值,以及所述原始像素值与对应的第二预测像素值之间的第二差值,计算获得残差信息;
变化子单元,用于对所述残差信息进行变换操作,获得变换结果;
量化子单元,用于根据预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值,对所述变换结果进行量化处理,获得所述变换系数。
可选的,所述重建单元,包括:
残差重建子单元,用于对所述变换系数依次进行反量化和反变换处理,获得残差重建信息;
重建子单元,用于根据所述残差重建信息、所述帧间预测结果以及所述帧内预测结果,获得与所述视频帧的原始像素值对应的重建像素值。
可选的,所述装置还包括:
第一本地处理模块,用于对所述解码视频流进行图像前处理,获得修正后的解码视频流;
或,调度计算模块,用于在确定所述加速模块的状态满足预设条件的情况下,将包含解码视频流的图像前处理任务,发送至所述加速模块进行对所述解码视频流的图像前处理,并获取所述加速模块处理所述图像前处理任务后发送的修正后的解码视频流;
其中,所述图像前处理包括:锐化、模糊、缩放中的一种或多种。
可选的,所述装置还包括:
状态获取模块,用于获取所述加速模块的负载状态;
判断模块,用于在所述负载状态为空闲状态的情况下,确定所述加速模块的状态满足预设条件。
可选的,所述装置还包括:
第二本地处理模块,用于在确定所述加速模块的状态不满足预设条件,或在预设时长内未接收到所述加速模块的返回结果的情况下,通过所述通用模块处理准备发送至所述加速模块进行处理的至少部分内容分析任务,以及至少部分编码任务。
可选的,所述通用模块和所述加速模块共用同一内存片区,所述通用模块为CPU算力类型的计算模块。
综上所述,本申请实施例可以在处理视频编解码任务时,利用异构处理芯片的设计来改善视频编解码的算力瓶颈和效率问题,具体在通用模块确定加速模块的状态满足预设条件的情况下,由通用模块将内容分析的过程的至少部分内容分析任务,发送至所述加速模块进行处理,以及由通用模块将编码过程的至少部分编码任务,发送至所述加速模块进行处理,通用模块在处理低计算量密度的编解码任务的基础上,可以通过任务调度,将高计算量密度的编解码任务调度至加速模块,使得加速模块可以利用其对图形数据的处理优势专注于处理内容分析和编码过程中的高计算量密度的编解码任务,再结合通用模块对任务的灵活调度,提升了编解码的整体效率。本申请实施例既通过加速模块对高计算量密度图形任务的计算优势,解决了相关技术中纯软件方式的算力瓶颈和计算时间过长的问题,还通过通用模块对任务的灵活调度,解决了相关技术中纯硬件方案算力固化难以提升的问题。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括终端设备、服务端(集群)等各类型的设备。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括终端设备、服务端(集群)等电子设备。图10示意性地示出了可被用于实现本申请实施例中所述的各个实施例的示例性装置1000。
对于一个实施例,图10示出了示例性装置1000,该装置具有一个或多个处理器1002、被耦合到(一个或多个)处理器1002中的至少一个的控制模块(芯片组)1004、被耦合到控制模块1004的存储器1006、被耦合到控制模块1004的非易失性存储器(NVM)/存储设备1008、被耦合到控制模块1004的一个或多个输入/输出设备1010,以及被耦合到控制模块1004的网络接口1012。
处理器1002可包括一个或多个单核或多核处理器,处理器1002可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1000能够作为本申请实施例中所述终端设备、服务端(集群)等设备。
在一些实施例中,装置1000可包括具有指令1014的一个或多个计算机可读介质(例如,存储器1006或NVM/存储设备1008)以及与该一个或多个计算机可读介质相合并被配置为执行指令1014以实现模块从而执行本公开中所述的动作的一个或多个处理器1002。
对于一个实施例,控制模块1004可包括任意适当的接口控制器,以向(一个或多个)处理器1002中的至少一个和/或与控制模块1004通信的任意适当的设备或组件提供任意适当的接口。
控制模块1004可包括存储器控制器模块,以向存储器1006提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1006可被用于例如为装置1000加载和存储数据和/或指令1014。对于一个实施例,存储器1006可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1006可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,控制模块1004可包括一个或多个输入/输出控制器,以向NVM/存储设备1008及(一个或多个)输入/输出设备1010提供接口。
例如,NVM/存储设备1008可被用于存储数据和/或指令1014。NVM/存储设备1008可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1008可包括在物理上作为装置1000被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备1008可通过网络经由(一个或多个)输入/输出设备1010进行访问。
(一个或多个)输入/输出设备1010可为装置1000提供接口以与任意其他适当的设备通信,输入/输出设备1010可以包括通信组件、音频组件、传感器组件等。网络接口1012可为装置1000提供接口以通过一个或多个网络通信,装置1000可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1002中的至少一个可与控制模块1004的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,装置1000可以但不限于是:服务端、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1000可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1000包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种视频的处理方法及装置、异构处理芯片、电子设备、机器可读介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种视频的处理方法,其特征在于,应用于异构处理芯片中的通用模块,所述异构处理芯片还包括:加速模块,所述方法包括:
获取输入视频,并对所述输入视频进行解码,得到解码视频流;
对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数;
对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流。
2.根据权利要求1所述的方法,其特征在于,在对所述解码视频流进行内容分析的过程中,所述方法还包括:
对所述解码视频流的视频帧进行分块处理,获得所述视频帧的第一图像分块;
在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,包括:
在确定所述加速模块的状态满足预设条件的情况下,将包括所述第一图像分块的内容分析任务发送至所述加速模块进行处理,所述内容分析任务用于计算所述第一图像分块的图像参数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数,包括:
获取所述加速模块针对所述内容分析任务计算完成后发送的所述第一图像分块的图像参数;
根据所述第一图像分块的图像参数,获得所述编码参数。
4.根据权利要求1所述的方法,其特征在于,所述对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流,包括:
对所述解码视频流的视频帧进行分块处理,获得所述视频帧的第二图像分块;
根据所述解码视频流的视频帧以及所述第二图像分块,进行编码前处理计算,并在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码前处理任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码前处理任务后发送的第三处理结果,获得前处理参数;
根据所述前处理参数,所述编码参数、以及所述解码视频流的视频帧,进行编码执行处理,并在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码执行任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码执行任务后发送的第四处理结果,获得编码视频流。
5.根据权利要求4所述的方法,其特征在于,在根据所述解码视频流的视频帧以及所述第二图像分块,进行编码前处理计算的过程中,所述方法还包括:
根据所述第二图像分块进行自适应量化计算,获得所述第二图像分块的第二量化参数偏移值;
所述在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码前处理任务发送至所述加速模块进行处理,根据所述加速模块处理所述编码前处理任务后发送的第三处理结果,获得前处理参数,包括:
在确定所述加速模块的状态满足预设条件的情况下,将包括所述解码视频流的视频帧的目标编码前处理任务发送至所述加速模块进行处理,所述目标编码前处理任务用于根据所述解码视频流的视频帧进行帧间搜索,获得包括所述视频帧的第三量化参数偏移值的第三处理结果;
获取所述加速模块发送的包括所述视频帧的第三量化参数偏移值的第三处理结果,并将所述第二量化参数偏移值、所述第三量化参数偏移值作为所述前处理参数。
6.根据权利要求5所述的方法,其特征在于,所述在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码执行任务发送至所述加速模块进行处理,包括:
在确定所述加速模块的状态满足预设条件的情况下,将包含所述解码视频流的视频帧的编码执行任务发送至所述加速模块进行处理,所述编码执行任务用于根据所述解码视频流的视频帧进行帧间预测,获得包含帧间预测结果的第四处理结果。
7.根据权利要求6所述的方法,其特征在于,所述编码参数包括:所述解码视频流的视频帧的第一量化参数偏移值:
所述根据所述加速模块处理所述编码执行任务后发送的第四处理结果,获得编码视频流,包括:
根据所述解码视频流的视频帧进行帧内预测,获得帧内预测结果;
根据所述解码视频流的视频帧、预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值、所述帧内预测结果、以及所述帧间预测结果,进行变换及量化处理,获得变换系数;
根据所述变换系数进行像素重建操作,获得与所述视频帧的原始像素值对应的重建像素值;
根据所述帧间预测结果对所述重建像素值进行滤波,获得滤波信息;
根据所述滤波信息、所述帧间预测结果、所述变换系数对所述解码视频流进行编码,获得所述编码视频流。
8.根据权利要求7所述的方法,其特征在于,所述帧间预测结果包括:与所述视频帧中的原始像素值对应的第一预测像素值;所述帧内预测结果包括:与所述视频帧中的原始像素值对应的第二预测像素值;
所述根据所述解码视频流的视频帧、预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值、所述帧内预测结果、以及所述帧间预测结果,进行变换及量化处理,获得变换系数,包括:
根据所述视频帧中的原始像素值与对应的第一预测像素值之间的第一差值,以及所述原始像素值与对应的第二预测像素值之间的第二差值,计算获得残差信息;
对所述残差信息进行变换操作,获得变换结果;
根据预设的基础量化参数、所述第一量化参数偏移值、所述第二量化参数偏移值、所述第三量化参数偏移值,对所述变换结果进行量化处理,获得所述变换系数。
9.根据权利要求7所述的方法,其特征在于,所述根据所述变换系数进行像素重建操作,获得与所述视频帧的原始像素值对应的重建像素值,包括:
对所述变换系数依次进行反量化和反变换处理,获得残差重建信息;
根据所述残差重建信息、所述帧间预测结果以及所述帧内预测结果,获得与所述视频帧的原始像素值对应的重建像素值。
10.根据权利要求1所述的方法,其特征在于,在所述对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数之前,还包括:
对所述解码视频流进行图像前处理,获得修正后的解码视频流;
或,在确定所述加速模块的状态满足预设条件的情况下,将包含解码视频流的图像前处理任务,发送至所述加速模块进行对所述解码视频流的图像前处理,并获取所述加速模块处理所述图像前处理任务后发送的修正后的解码视频流;
其中,所述图像前处理包括:锐化、模糊、缩放中的一种或多种。
11.一种视频的处理装置,其特征在于,应用于异构处理芯片中的通用模块,所述异构处理芯片还包括:加速模块,所述装置包括:
解码模块,用于获取输入视频,并对所述输入视频进行解码,得到解码视频流;
分析模块,用于获取对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分内容分析任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述内容分析任务后发送的第一处理结果,获得编码参数;
编码模块,用于获取对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,将至少部分编码任务,发送至所述加速模块进行处理,并根据所述加速模块处理所述编码任务后发送的第二处理结果以及所述编码参数,获得编码视频流。
12.一种异构处理芯片,其特征在于,所述异构处理芯片包括:通用模块和加速模块,所述通用模块和所述加速模块通信连接;
所述通用模块用于获取输入视频,并对所述输入视频进行解码,得到解码视频流;
在所述通用模块对所述解码视频流进行内容分析的过程中,在确定所述加速模块的状态满足预设条件的情况下,所述通用模块将至少部分内容分析任务,发送至所述加速模块进行处理;以及根据所述加速模块发送的第一处理结果,获得编码参数;
在所述通用模块对所述解码视频流进行编码的过程中,在确定所述加速模块的状态满足预设条件的情况下,所述通用模块将至少部分编码任务,发送至所述加速模块进行处理,以及根据所述加速模块处理发送的第二处理结果和所述编码参数,获得编码视频流;
所述加速模块用于处理接收到的所述内容分析任务,获得第一处理结果并发送至所述通用模块;以及处理接收到的编码任务,获得第二处理结果并发送至所述通用模块。
13.一种电子设备,其特征在于,包括:
处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1至10任一所述的方法。
14.一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1至10任一所述的方法。
CN202310308242.6A 2023-03-27 2023-03-27 视频的处理方法、装置及异构处理芯片 Pending CN116471414A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310308242.6A CN116471414A (zh) 2023-03-27 2023-03-27 视频的处理方法、装置及异构处理芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310308242.6A CN116471414A (zh) 2023-03-27 2023-03-27 视频的处理方法、装置及异构处理芯片

Publications (1)

Publication Number Publication Date
CN116471414A true CN116471414A (zh) 2023-07-21

Family

ID=87176292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310308242.6A Pending CN116471414A (zh) 2023-03-27 2023-03-27 视频的处理方法、装置及异构处理芯片

Country Status (1)

Country Link
CN (1) CN116471414A (zh)

Similar Documents

Publication Publication Date Title
US20230232022A1 (en) Method and apparatus of hevc de-blocking filter
KR101644208B1 (ko) 이전에 계산된 모션 정보를 이용하는 비디오 인코딩
CN109788316B (zh) 码率控制、视频转码方法与装置、计算机设备及存储介质
US9414086B2 (en) Partial frame utilization in video codecs
WO2022088631A1 (zh) 图像编码方法、图像解码方法及相关装置
US10368071B2 (en) Encoding data arrays
CN111741302B (zh) 数据处理方法、装置、计算机可读介质及电子设备
EP1689187A1 (en) Method and system for video compression and decompression (CODEC) in a microprocessor
US10812832B2 (en) Efficient still image coding with video compression techniques
WO2016167936A1 (en) Complex region detection for display stream compression
KR20180122354A (ko) 디스플레이 스트림 압축에서의 양자화 파라미터들의 적응적 계산을 위한 장치 및 방법들
CN111510739A (zh) 一种视频传输方法及装置
CN113132728B (zh) 编码方法及编码器
CN107079154B (zh) 向后兼容的hdr视频多层压缩技术
US10616585B2 (en) Encoding data arrays
WO2024078066A1 (zh) 视频解码方法、视频编码方法、装置、存储介质及设备
US20110110435A1 (en) Multi-standard video decoding system
US8798140B2 (en) Encoding video frames in a video encoder
CN104053009A (zh) 一种监控视频的编码方法及装置
CN116471414A (zh) 视频的处理方法、装置及异构处理芯片
US20150271512A1 (en) Dynamic frame padding in a video hardware engine
US10531096B2 (en) Decoder, method and system for decoding multimedia streams
EP3326367A1 (en) Modification to block size for transform mode in display stream compression
CN101188768A (zh) 基于rgb编解码器发送和接收运动图像的方法和设备
US9414076B2 (en) System architecture for distributed coding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination