CN117395437B - 一种基于异构计算的视频编解码方法、装置、设备及介质 - Google Patents

一种基于异构计算的视频编解码方法、装置、设备及介质 Download PDF

Info

Publication number
CN117395437B
CN117395437B CN202311685133.2A CN202311685133A CN117395437B CN 117395437 B CN117395437 B CN 117395437B CN 202311685133 A CN202311685133 A CN 202311685133A CN 117395437 B CN117395437 B CN 117395437B
Authority
CN
China
Prior art keywords
instruction
decoder
encoder
video
image
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.)
Active
Application number
CN202311685133.2A
Other languages
English (en)
Other versions
CN117395437A (zh
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.)
Muxi Integrated Circuit Nanjing Co ltd
Original Assignee
Muxi Integrated Circuit Nanjing 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 Muxi Integrated Circuit Nanjing Co ltd filed Critical Muxi Integrated Circuit Nanjing Co ltd
Priority to CN202311685133.2A priority Critical patent/CN117395437B/zh
Publication of CN117395437A publication Critical patent/CN117395437A/zh
Application granted granted Critical
Publication of CN117395437B publication Critical patent/CN117395437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供一种基于异构计算的视频编解码方法、装置、设备及介质,属于数据处理领域。该方法包括:依据应用场景确定编码器和/或解码器的数量,响应于接收到所述编码指令或解码指令,解析并配置所述编码或解码指令到所述编码器或解码器,将原始视频和/或图像码流序列生成压缩码流或解压码流并写入目的视频和/或图像存储器,视频图像压缩或解压缩完成,返回中断信号,任务调度器基于多路中断状态决定编码或解码指令的分发,编码或解码任务完成后取出目的存储器中的视频/图像码流。相比于传统技术,本发明方法中指令的更新速度快,可灵活扩展,可以实现多路视频/图像并行编/解码。

Description

一种基于异构计算的视频编解码方法、装置、设备及介质
技术领域
本公开实施例涉及数据处理领域,具体地涉及一种基于异构计算的视频编解码方法、装置、设备及介质。
背景技术
异构计算实质使用不同类型指令集和体系架构的计算单元组成系统的计算方式,常见的计算单元包括CPU、GPU、FPGA、NPU、DSP或ASIC等芯片,这些芯片组合通常集成在SoC系统中。异构计算可以有效经济地获取高性能计算能力,计算资源利用率高,可扩展性好,发展潜力大。
异构计算芯片中的AI图像增强,超低延时视频直播,云游戏,高压缩率转码的场景均需要使用多个视频编/解码硬核进行视频/图像序列的压缩和解压。这些编/解码器一般是根据不同的应用场景集成在SoC系统中。现有技术中,这些编/解码器的指令更新速度、可扩展性以及工作效率均待进一步完善。
发明内容
本发明的目的在于提供一种基于异构计算的视频编解码方法、装置、设备及介质,以便于至少部分地解决上述问题。
根据本公开的一个方面,提出一种基于异构计算的视频编解码方法,包括:
确定编码器和/或解码器的数量,
外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
视频或图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发,
响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流。
在一些实施例中,该方法还包括,所述读请求根据编码或解码指令中携带的原始视频和/或图像地址信息,发给存储访问控制器进行虚拟地址和物理地址的转换,所述存储访问控制器基于多个读请求进行存储访问的仲裁,并将仲裁后的读请求及其物理地址发给所述原始视频和/或图像存储器。
在一些实施例中,该方法还包括,所述写请求根据编码或解码指令中携带的目的视频和/或图像存储地址信息,发给存储访问控制器进行虚拟地址和物理地址的转换,所述存储访问控制器基于多个写请求进行存储访问的仲裁,并将仲裁后的写请求及其物理地址发给目的视频/图像存储器。
在一些实施例中,该方法还包括,每一帧编码指令或解码的指令与原始视频和/或图像是一一匹配的,由外部处理器从片上或者片外存储搬移到指令存储器中,指令存储器即将写满时停止搬移,指令存储器即将耗尽时需要立即更新指令,若指令耗尽,则停止编码或解码。
在一些实施例中,该方法还包括,所述响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码指令或解码指令的分发,具体为,
任务调度器根据状态处理器上报的多路中断状态判断当前编解码器状态,对于已经结束编码或解码任务的编码器或解码器,下发停止指令,对于需要等待任务的编码器或解码器,下发等待指令,对于继续执行下一帧的编码器或解码器下发下一帧指令。
在一些实施例中,该方法还包括,所述确定编码器或解码器的数量,具体为根据应用场景选通或屏蔽部分编码器或解码器。
在一些实施例中,该方法还包括,任务调度器基于编码器或解码器的负载进行编码指令或解码指令的分发。
在一些实施例中,该方法还包括,所述响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,具体为,所述指令解析器判定控制总线发来的地址,解析出指令发往的目的编码器或解码器,并生成写使能配置寄存器,或者所述指令解析器生成读使能信号,将目的编码器或解码器中寄存器的值读出来,形成指令返回给任务调度器。
根据本公开的另一个方面,提出一种基于异构计算的视频编解码装置,包括:
确定模块,用于确定编码器和/或解码器的数量,
指令预存模块,用于由外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
指令解析模块,用于响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
码流生成模块,用于响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
码流写入模块,用于响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
中断处理模块,用于视频或图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
任务调度模块,用于响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发,
码流取出模块,用于响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流。
本申请实施例还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器运行时执行如上任一实施例方法中的步骤。
本发明旨在实现一种基于异构计算的视频编解码方法和装置,通过本发明实施例的方法,相比现有技术本发明具有如下优点:
指令的更新速度快,本发明由硬件实现快速更新视频/图像编/解码器的指令,期间不需要软件通过外部处理器来逐级逐个下发指令,
可灵活扩展,视频/图像编码器和视频/图像解码器的外部接口高度统一,统一的架构,可以根据任务侧重点灵活扩展,满足多种定制化需求,形成多路视频编/解码阵列,
可以实现多路视频/图像并行编/解码,视频/图像编/解码器可以统计通过数据总线读写存储器的数据量,据此来判断数据总线的空闲程度,进而判定视频/图像编/解码器的负载状态;反馈给任务调度器后,任务调度器将任务发往负载轻的视频/图像编/解码器;视频/图像编/解码器可以同时工作,在存储器带宽允许范围内,不阻塞当前需要调度的任务。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本申请实施例提供的编解码系统架构示意图。
图2为本申请实施例提供的视频编解码方法的示意图。
图3为本申请实施例提供的视频编解码装置的示意图。
图4为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明。在此需要说明的是,对于这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例一
视频/图像的压缩是指多路视频/图像编码器{编码器#0, 编码器#1,编码器#2,……, 编码器 #N-1}根据处理器(CPU或者是RSIC-V)下发的指令序列{编码指令#0,编码指令#1,编码指令#2, ……, 编码指令#X-1}从存储器读取原始的视频/图像序列{原始图像#0, 原始图像#1,……,原始图像 #X-1},经过运行某种压缩算法(例如H264)处理后,将压缩后的视频/图像序列{编码图像#0, 编码图像#1,编码图像#2,……, 编码图像#X’-1}回写至存储器(例如DDR,系统硬盘等)的过程。
视频/图像的解压是指多路视频/图像解码器{解码器#0,解码器#1,解码器#2,……,解码器#M-1}根据处理器下发的指令序列{解码指令#0, 解码指令#1, 解码指令#2, ……, 解码指令#Y-1},从存储器读取压缩后的视频/图像序列{原始图像#0, 原始图像#1, 原始图像#2, ……, 原始图像#Y-1},经过运行某种解压缩算法(例如H264)处理后,将解压缩后的视频/图像序列{解压缩图像#0, 解压缩图像#1, 解压缩图像#2, ……, 解压缩图像#Y’-1}回写至存储器的过程。
本发明中,这些编/解码器可以根据不同的应用场景集成在SoC系统中,均会涉及到N个编码器和M个解码器配合使用。例如,在视频/图像采集时, SoC中需要集成更多的编码器;而在用户终端,需要部署更多的解码器以便于带来更好视频播放体验。而在AI或者转码的应用中,则需要部署一定数量的编码器和解码器配合使用。又例如从产品的价值来区分,实现编/解码器的灵活的扩展,可以匹配高/中/低不同层次的应用场景需求。
为实现视频/图像编解码器在SoC芯片中的灵活部署,本发明的编解码系统架构如图1所示。
其中,任务调度器,依据视频/图像编/解码器的负载,进行视频/图像编/解码任务的调度和仲裁;可以灵活扩展为1个或者多个;控制总线, 用于挂载1个或者多个视频/图像编/解码器,实现编/解码指令的下发和编/解码状态的上报;视频/图像编码器和视频/图像解码器,挂载于控制侧总线和数据侧总线上;主要任务是:1. 接收控制侧总线发来的指令,触发编/解码任务;2.通过数据侧总线从存储器中读取或者回写图像序列;3.上报编/解码状态,经过控制侧总线到达任务调度器。数据总线同样可以实现灵活的挂载;存储器不仅包括SoC片上存储器,还包含系统存储器(例如主板DDR内存)。原始的视频/图像从外部预先存入存储器中;编/解码视频/图像可以输出至外部,提供给软件读取。存储器的容量可以依据视频/图像编/解码器的数量进行灵活的扩展或者缩减。
基于上述架构,本公开提供的一种视频编解码方法,具体地,请参阅图2。具体步骤如下:
步骤S101,确定编码器和/或解码器的数量。
在一些实施例中,可以根据实际应用场景的需要,扩展出满足需求的视频/图像编/解码器阵列,可以理解的是,这里所谓的扩展是灵活变化的,可以是芯片设计阶段的微架构扩展;也可以是芯片量产后通过烧写FUSE方式让某些编/解码器功能屏蔽等,本实施例不做限制。
步骤S102,外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中。
在一些实施例中,外部处理器通过控制总线将编/解码指令预存到指令存储器中。每一帧编/解码的指令与原始视频/图像是一一匹配的,由外部处理器从片上或者片外存储搬移到指令存储器中。指令存储器即将写满时停止搬移,指令存储器即将耗尽时需要立即更新指令。如果指令耗尽,则停止编/解码。外部处理器通过数据总线将原始视频/图像预存到原始视频/图像存储器中。每一帧视频/图像由处理器从片上或者片外存储搬移。在存储即将写满时停止搬移,在原始视频/图像即将全部读出时需要立即更新。
步骤S103,响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器。
在一些实施例中,从存储器中取出指令,通过控制总线传输,可以理解的是指令存储的容量也是可以相应调整大小的,多个视频/图像编/解码器共享这指令存储空间。
指令解析器收到指令,并解析,配置到视频/图像编解码器中。一方面,指令解析器判定控制总线发来的地址,解析出指令发往哪个具体的编/解码器,并生成写使能配置寄存器;另一方面,指令解析器也可以生成读使能,将编/解码器中寄存器的值读出来,形成指令返回给任务调度器。
步骤S104,响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流。
视频/图像编/解码器开始工作,向原始视频/图像存储器发出读请求。在一些实施例中,该读请求根据指令中携带的原视频/图像地址信息,发给存储访问控制器进行例如虚拟地址和物理地址的转换等操作。在一些实施例中,有可能收到来自多个编/解码器访问请求,需要进行存储访问的仲裁;然后将仲裁后的读请求及其物理地址发给原始视频/图像存储器。原始视频/图像存储器响应读请求,返回原始码流序列至视频/图像编/解码器中进行压缩或者解压。
步骤S105,响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器。
视频/图像编/解码器输出压缩或者解压之后的码流,向目的视频/图像存储器发出写请求。该请求根据指令中携带的目的视频/图像存储地址信息,给存储访问控制器进行例如虚拟地址和物理地址的转换等操作。在一些实施例中,有可能收到来自多个编/解码器访问请求,需要进行存储访问的仲裁;然后将仲裁后的写请求及其压缩/解压缩码流发给目的视频/图像存储器中存放。
步骤S106,一帧视频图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器。
一帧视频/图像压缩/解压缩完成后,会发出中断信号返回给状态处理器;多路中断信号汇聚后,通过控制总线发给任务调度器。
S107,响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发。
任务调度器根据状态处理器上报的多路中断状态,需要做出判定:1 当前哪些视频编/解码器已经结束编/解码任务,可以下发停止指令;2. 哪些视频编/解码器需要等待任务,可以下发等待指令;3. 哪些视频编/解码器需要继续执行下一帧,可以立即下发下一帧指令。
在一些实施例中,任务调度器还可以根据编解码器的负载情况进行指令分发,编/解码器可能是空闲,也有可能是忙碌,有些可能编/解码多路码流,负载过大。编/解码调度器向处于空闲状态或者负载轻的视频编/解码器分发指令。
S108,响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流。
任务调度器收集到视频/图像编/解码任务完成的信息后,通知外部处理器,从目的视频/图像编/解码存储器中取走目的码流。
此外为了详细描述本公开的发明构思,以视频/图像编码器设置为M个;视频/图像解码器设置为N个为例,本实施例具体流程简述如下:
快速下发配置指令至视频图像编/解码器。包括:
1.指令的预存。由编/解码任务调度器将一定数量的视频图像编/解码指令预存在指令存储器中,并在指令即将耗尽时实时更新。
2.指令的下发。编/解码任务调度器根据视频/图像编/解码器反馈的工作状态,(2.1)从指令存储器中取出指令;(2.2)经过控制总线,将指令下发给编/解码指令解析器完成指令解析;(2.3)配置视频/图像编/解码器中的寄存器。
3.下一帧指令的更新。(3.1)视频/图像编解码器上报当前帧结束中断,通过编/解码状态处理器向编/解码任务调度器申请下一帧指令更新请求;(3.2)如果编/解码任务调度器不响应,则视频/图像编解码器处于等待状态,持续到编/解码任务调度器响应下一帧指令更新请求。(3.3)或者,编/解码任务调度器也可以直接下发终止命令,终止视频/图像编/解码器的任务。(3.4)或者,响应请求,继续执行步骤2中的2.2。
M x N个编/解码器并行工作,包括:
1. 编/解码之前的图像/视频序列由外部处理器控制DMA预先搬移至原始视频/图像存储器中;
2. M x N个视频/图像编/解码器开始工作后,向存储访问控制器发出M x N个读请求;
3. 存储访问控制器需要完成读请求携带的虚拟地址转换到物理地址,并将读请求发送到数据总线上;
4. M x N个读请求通过数据总线仲裁(竞争数据总线的读带宽)后,将读请求发送给原始视频/图像存储器;
5. 原始视频/图像存储器响应读请求,返回多路原始视频/图像数据给视频/图像编解码器进行编码或者解码操作;
6. M x N个视频/图像编/解码器完成1帧图像之后,会向存储访问控制器发出M xN个写请求;
7. 存储访问控制器需要完成写请求携带的虚拟地址转换到物理地址,并将写请求发到数据总线上;
8. M x N个写请求通过数据总线仲裁(竞争数据总线的写带宽)后,将写请求携带的编/解码结果存储到编/解码视频/图像存储器;
9. 继续进行下一帧编/解码。外部处理器控制DMA从编/解码视频/图像存储器中取出编/解码之后的数据。
实施例二
为实现上述目的,本实施例提出了一种基于异构计算的视频编解码装置300,具体的请参阅图3。该装置包括:
确定模块301,用于确定编码器和/或解码器的数量,
指令预存模块302,用于由外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
指令解析模块303,用于响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
码流生成模块304,用于响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
码流写入模块305,用于响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
中断处理模块306,用于一帧视频图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
任务调度模块307,用于响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发,
码流取出模块308,用于响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流。
在一些实施例中,码流生成模块304,具体还用于所述读请求根据编码或解码指令中携带的原始视频和/或图像地址信息,发给存储访问控制器进行虚拟地址和物理地址的转换,所述存储访问控制器基于多个读请求进行存储访问的仲裁,并将仲裁后的读请求及其物理地址发给所述原始视频和/或图像存储器。
在一些实施例中,码流写入模块305,还用于所述写请求根据编码或解码指令中携带的目的视频和/或图像存储地址信息,发给存储访问控制器进行虚拟地址和物理地址的转换,所述存储访问控制器基于多个写请求进行存储访问的仲裁,并将仲裁后的写请求及其物理地址发给目的视频/图像存储器。
在一些实施例中,指令预存模块302还用于每一帧编码指令或解码的指令与原始视频和/或图像是一一匹配的,由外部处理器从片上或者片外存储搬移到指令存储器中,指令存储器即将写满时停止搬移,指令存储器即将耗尽时需要立即更新指令,若指令耗尽,则停止编码或解码。
在一些实施例中,任务调度模块307还用于任务调度器根据状态处理器上报的多路中断状态判断当前编解码器状态,对于已经结束编码或解码任务的编码器或解码器,下发停止指令,对于需要等待任务的编码器或解码器,下发等待指令,对于继续执行下一帧的编码器或解码器下发下一帧指令。
在一些实施例中,确定模块301还用于所述确定编码器或解码器的数量,具体为根据应用场景选通或屏蔽部分编码器或解码器。
在一些实施例中,任务调度模块307还用于基于编码器或解码器的负载进行编码指令或解码指令的分发。
在一些实施例中,指令解析模块303还用于所述响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,具体为,所述指令解析器判定控制总线发来的地址,解析出指令发往的目的编码器或解码器,并生成写使能配置寄存器,或者所述指令解析器生成读使能信号,将目的编码器或解码器中寄存器的值读出来,形成指令返回给任务调度器。
实施例三
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器。如图4所示,图4为本申请实施例提供的电子设备的结构示意图。
该电子设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备400的各个部分,通过运行或加载存储在存储器402内的软件程序(计算机程序)和/或单元,以及调用存储在存储器402内的数据,执行电子设备400的各种功能和处理数据,从而对电子设备400进行整体监控。
在本申请实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
确定编码器和/或解码器的数量,
外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
一帧视频图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发,
响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流。
可选的,如图4所示,电子设备400还包括:视频编解码装置 403、通信模块404、输入单元405以及电源406。其中,处理器401分别与视频编解码装置 403、通信模块404、输入单元405以及电源406电性连接。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
视频编解码装置 403可用于实现基于异构计算的视频编解码。
通信模块404可用于与其他设备通信。
输入单元405可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源406用于给电子设备400的各个部件供电。可选的,电源406可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源406还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
实施例四
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的一种基于屏障指令的进程同步方法的步骤。例如,该计算机程序可以执行如下步骤:
确定编码器和/或解码器的数量,
外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
一帧视频图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发,
响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种基于异构计算的视频编解码方法中的步骤,因此,可以实现本申请实施例所提供的任一种基于异构计算的视频编解码方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。

Claims (7)

1.一种基于异构计算的视频编解码方法,其特征在于,所述方法包括:
确定编码器和/或解码器的数量,
外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
其中每一帧编码指令或解码的指令与原始视频和/或图像是一一匹配的,由外部处理器从片上或者片外存储搬移到指令存储器中,指令存储器即将写满时停止搬移,指令存储器即将耗尽时需要立即更新指令,若指令耗尽,则停止编码或解码;
响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
视频或图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发,具体为:
任务调度器根据状态处理器上报的多路中断状态判断当前编码器或解码器状态,基于当前编码器或解码器状态及编码器或解码器的负载情况,任务调度器进行指令的分发,包括对于已经结束编码或解码任务的编码器或解码器,下发停止指令,对于需要等待任务的编码器或解码器,下发等待指令,对于继续执行下一帧的编码器或解码器下发下一帧指令,对于处于空闲状态或者负载轻的编码器或解码器分发指令;
响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流;
所述确定编码器或解码器的数量,具体为根据应用场景选通或屏蔽部分编码器或解码器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述读请求根据编码或解码指令中携带的原始视频和/或图像地址信息,发给存储访问控制器进行虚拟地址和物理地址的转换,所述存储访问控制器基于多个读请求进行存储访问的仲裁,并将仲裁后的读请求及其物理地址发给所述原始视频和/或图像存储器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述写请求根据编码或解码指令中携带的目的视频和/或图像存储地址信息,发给存储访问控制器进行虚拟地址和物理地址的转换,所述存储访问控制器基于多个写请求进行存储访问的仲裁,并将仲裁后的写请求及其物理地址发给目的视频/图像存储器。
4.根据权利要求1所述的方法,其特征在于:
所述响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,具体为,所述指令解析器判定控制总线发来的地址,解析出指令发往的目的编码器或解码器,并生成写使能配置寄存器,或者所述指令解析器生成读使能信号,将目的编码器或解码器中寄存器的值读出来,形成指令返回给任务调度器。
5.一种基于异构计算的视频编解码装置,其特征在于,所述装置包括:
确定模块,用于确定编码器和/或解码器的数量,
指令预存模块,用于由外部处理器通过控制总线基于编码或解码任务将编码指令或解码指令预存到指令存储器中,并通过数据总线将原始视频和/或图像预存到原始视频和/或图像存储器中,
指令解析模块,用于响应于接收到所述编码指令或解码指令,指令解析器解析并配置所述编码或解码指令到所述编码器或解码器,
其中每一帧编码指令或解码的指令与原始视频和/或图像是一一匹配的,由外部处理器从片上或者片外存储搬移到指令存储器中,指令存储器即将写满时停止搬移,指令存储器即将耗尽时需要立即更新指令,若指令耗尽,则停止编码或解码;
码流生成模块,用于响应于所述编码器或解码器的读请求,所述原始视频和/或图像存储器返回原始视频和/或图像码流序列至所述编码器或解码器进行压缩或解压,生成压缩码流或解压码流,
码流写入模块,用于响应于所述编码器或解码器的写请求,将所述压缩码流或解压码流写入目的视频和/或图像存储器,
中断处理模块,用于视频或图像压缩或解压缩完成,返回中断信号至状态处理器,多路中断信号汇聚后,通过控制总线发给任务调度器,
任务调度模块,用于响应于接收到多路中断状态,任务调度器基于多路中断状态决定编码或解码指令的分发, 具体为:
任务调度器根据状态处理器上报的多路中断状态判断当前编码器或解码器状态,基于当前编码器或解码器状态及编码器或解码器的负载情况,任务调度器进行指令的分发,包括对于已经结束编码或解码任务的编码器或解码器,下发停止指令,对于需要等待任务的编码器或解码器,下发等待指令,对于继续执行下一帧的编码器或解码器下发下一帧指令,对于处于空闲状态或者负载轻的编码器或解码器分发指令;
码流取出模块,用于响应于所述编码或解码任务完成,所述任务调度器通知所述外部处理器,从所述目的视频和/或图像存储器中取走所述压缩码流或解压码流码流;
所述确定编码器或解码器的数量,具体为根据应用场景选通或屏蔽部分编码器或解码器。
6.一种电子设备,其特征在于:包括存储有可执行程序代码的存储器以及与所述存储器耦合的处理器;其中,所述处理器调用所述存储器中存储的可执行程序代码,执行如权利要求1-4任一项所述的方法。
7.一种计算机可读存储介质,存储有计算机程序,其特征在于:所述计算机程序被处理器运行时执行如权利要求1-4任一项所述的方法。
CN202311685133.2A 2023-12-11 2023-12-11 一种基于异构计算的视频编解码方法、装置、设备及介质 Active CN117395437B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311685133.2A CN117395437B (zh) 2023-12-11 2023-12-11 一种基于异构计算的视频编解码方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311685133.2A CN117395437B (zh) 2023-12-11 2023-12-11 一种基于异构计算的视频编解码方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN117395437A CN117395437A (zh) 2024-01-12
CN117395437B true CN117395437B (zh) 2024-04-05

Family

ID=89466956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311685133.2A Active CN117395437B (zh) 2023-12-11 2023-12-11 一种基于异构计算的视频编解码方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117395437B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1351516A2 (en) * 2002-04-01 2003-10-08 Broadcom Corporation Memory system for video decoding system
CN101151840A (zh) * 2005-01-10 2008-03-26 四次方有限公司 用于视觉媒体统合处理的集成架构
CN106921863A (zh) * 2014-04-22 2017-07-04 联发科技股份有限公司 使用多个解码器核心解码视频比特流的方法、装置以及处理器
CN111316643A (zh) * 2019-03-29 2020-06-19 深圳市大疆创新科技有限公司 视频编码方法、设备和可移动平台
CN111757109A (zh) * 2019-03-27 2020-10-09 北京传送科技有限公司 一种高实时性的并行视频编解码方法、系统和存储介质
CN112714319A (zh) * 2020-12-24 2021-04-27 上海壁仞智能科技有限公司 计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置
CN113660496A (zh) * 2021-07-12 2021-11-16 珠海全志科技股份有限公司 基于多核并行的视频流解码方法及装置
CN114501025A (zh) * 2022-01-14 2022-05-13 山东云海国创云计算装备产业创新中心有限公司 一种视频转码方法、装置、设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007201995A (ja) * 2006-01-30 2007-08-09 Matsushita Electric Ind Co Ltd 映像データ転送処理装置および監視カメラシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1351516A2 (en) * 2002-04-01 2003-10-08 Broadcom Corporation Memory system for video decoding system
CN101151840A (zh) * 2005-01-10 2008-03-26 四次方有限公司 用于视觉媒体统合处理的集成架构
CN106921863A (zh) * 2014-04-22 2017-07-04 联发科技股份有限公司 使用多个解码器核心解码视频比特流的方法、装置以及处理器
CN111757109A (zh) * 2019-03-27 2020-10-09 北京传送科技有限公司 一种高实时性的并行视频编解码方法、系统和存储介质
CN111316643A (zh) * 2019-03-29 2020-06-19 深圳市大疆创新科技有限公司 视频编码方法、设备和可移动平台
CN112714319A (zh) * 2020-12-24 2021-04-27 上海壁仞智能科技有限公司 计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置
CN113660496A (zh) * 2021-07-12 2021-11-16 珠海全志科技股份有限公司 基于多核并行的视频流解码方法及装置
CN114501025A (zh) * 2022-01-14 2022-05-13 山东云海国创云计算装备产业创新中心有限公司 一种视频转码方法、装置、设备及介质

Also Published As

Publication number Publication date
CN117395437A (zh) 2024-01-12

Similar Documents

Publication Publication Date Title
CN110007961B (zh) 一种基于risc-v的边缘计算硬件架构
CN103765384A (zh) 数据处理系统和在数据处理系统中进行任务调度的方法
US20220121600A1 (en) Network-on-chip data processing method and device
CN111182239B (zh) 一种ai视频处理方法与装置
CN106454354B (zh) 一种avs2并行编码处理系统及方法
US7565462B2 (en) Memory access engine having multi-level command structure
CN113344171A (zh) 用于神经网络参数实时动态解压缩的矢量量化解码硬件单元
CN102236543B (zh) 数据解压装置及方法
CN103218329A (zh) 数字信号处理数据传输
CN112491426B (zh) 面向多核dsp的服务组件通信架构及任务调度、数据交互方法
CN113568731A (zh) 一种任务调度方法、芯片以及电子设备
CN114466227B (zh) 一种视频分析方法、装置、电子设备及存储介质
CN117395437B (zh) 一种基于异构计算的视频编解码方法、装置、设备及介质
CN112714319B (zh) 计算机可读取存储介质、使用多个执行单元的视频编解码方法和装置
CN115828044B (zh) 基于神经网络双重稀疏性矩阵乘法运算电路、方法和装置
US11237994B2 (en) Interrupt controller for controlling interrupts based on priorities of interrupts
CN110837415A (zh) 一种基于risc-v多核处理器的线程调度方法和装置
CN115391053B (zh) 基于cpu和gpu混合计算的在线服务方法及装置
US20240184624A1 (en) Method and system for sequencing artificial intelligence (ai) jobs for execution at ai accelerators
WO2023123395A1 (zh) 一种计算任务处理装置、方法及电子设备
CN118296084B (zh) 数据处理设备、指令同步方法、电子设备和存储介质
CN214504452U (zh) 一种用于神经网络推理的异构系统
Goswami et al. Multichannel video software solution for an asynchronous multiprocessor system
CN117979020A (zh) 基于异构计算架构的大数据视频监控一体机及其工作方法
CN116719625A (zh) 数据处理方法、装置、设备和可读存储介质

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
GR01 Patent grant
GR01 Patent grant