WO2020199050A1 - 视频编码方法、设备和可移动平台 - Google Patents

视频编码方法、设备和可移动平台 Download PDF

Info

Publication number
WO2020199050A1
WO2020199050A1 PCT/CN2019/080681 CN2019080681W WO2020199050A1 WO 2020199050 A1 WO2020199050 A1 WO 2020199050A1 CN 2019080681 W CN2019080681 W CN 2019080681W WO 2020199050 A1 WO2020199050 A1 WO 2020199050A1
Authority
WO
WIPO (PCT)
Prior art keywords
video data
encoding
core
data
processor
Prior art date
Application number
PCT/CN2019/080681
Other languages
English (en)
French (fr)
Inventor
崔明礼
秦东
崔明
Original Assignee
深圳市大疆创新科技有限公司
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 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to PCT/CN2019/080681 priority Critical patent/WO2020199050A1/zh
Priority to CN201980005411.0A priority patent/CN111316643A/zh
Publication of WO2020199050A1 publication Critical patent/WO2020199050A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/423Methods 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 characterised by memory arrangements

Definitions

  • Embodiments of the present invention provide a video encoding method, a device, and a movable platform, and the movable platform includes the camera.
  • the movable platform can be, for example, a drone, an unmanned ship, an unmanned car, a robot, a handheld electronic device, and the like.
  • Handheld electronic devices are, for example, terminal devices such as mobile phones, tablet computers, notebook phones, and wearable devices.
  • the drone may be, for example, a rotorcraft, for example, a multi-rotor aircraft propelled by a plurality of propulsion devices through the air, and the embodiments of the present invention are not limited thereto.
  • the storage address of the encoding reference data of the video data currently to be encoded is obtained according to the video data currently to be encoded.
  • the encoding reference data of the video data currently to be encoded includes: encoding data of adjacent video data of the video data currently to be encoded. Since the processor core of this embodiment can encode the video data currently to be encoded according to the encoding data of the adjacent video data of the video data currently to be encoded, the accuracy of the parallel encoded video data can be guaranteed. For example, if the current video data to be encoded is the nth frame, the adjacent video data is the n-1th frame.
  • Synchronizer The data that needs to be accessed between multiple encoder cores can be written to the off-chip memory (ie SDRAM in Figure 3), and the written data coordinates or address information are transmitted to the encoder core that needs to be accessed through the synchronizer .
  • the function of the synchronizer is to synchronize the coordinates or address information between multiple encoder cores, such as encoding reference frame data, encoding reference motion vector data coordinates (for example, the encoding reference data storage address in the above embodiment).
  • the synchronizer can be connected to any encoder core, through the valid&ready standard handshake interactive interface, internally through MUX and DEMUX, any two encoder cores can be strobed for interactive communication. FIFO stores the interactive data in the middle to avoid loss.
  • core_amount the number of encoder cores, which is 3 in this embodiment
  • core x frame n encoder finish Encoder core x frame n encoding ends
  • the encoder core 0 completes the encoding of tile 0
  • the data buffer on the right of tile 0 is stored in the SRAM in the encoder core 0
  • the encoder core 0 sends a ready signal to the shared controller.
  • Encoder core 1 encodes tile 1 next to tile 0.
  • Encoder core 1 encodes the pixels on the left of tile 1 (during deblock and sao filtering, or intra prediction). It needs to refer to the pixels of tile 0.
  • Encoder core 1 shares control. The device sends a request signal.
  • Shared memory In addition to sharing data between multiple encoder cores through off-chip memory or direct connection (ie SRAM in the encoder core), data can also be shared through shared memory.
  • the shared memory here is integrated in the multi-core scheduling device of.
  • the data that multiple encoder cores need to access can be shared memory.
  • the off-chip memory 403 is SDRAM.

Landscapes

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

Abstract

一种视频编码方法、设备和可移动平台,该方法包括:获取当前待编码的视频数据(S201);从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核(S202);根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址(S203);将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码(S204)。由于将当前待编码的视频数据的编码参考数据的存储地址发送给处理器核,以便处理器核获取编码参考数据,再对视频数据进行编码,从而实现多个处理器核间的同时并行编码视频数据,以保障视频高分辨率和实时性的要求。

Description

视频编码方法、设备和可移动平台 技术领域
本发明实施例涉及视频编码技术领域,尤其涉及一种视频编码方法、设备和可移动平台。
背景技术
随着视频超高分辨率和超高帧率的需求越来越高,视频传输和存储都需要大量带宽。为了节约带宽并保证视频质量,需要对视频进行编码后再传输。为了编码实时性,须采用硬件编解码方式对视频进行编码处理,其中,分辨率从最小64x64分辨率到8192x8192或更高的分辨率,帧率也从25到几百帧每秒。现有技术的视频编码方法大多是利用单核处理器进行串行编码,但是随着视频分辨率、实时性要求的进一步提高,通过单处理器的串行编码所实现的视频信号编码方法越来越不能满足日益增长的对视频信号高分辨率和实时性的要求。
发明内容
本发明实施例提供一种视频编码方法、设备和可移动平台,用于实现并行编码视频数据,以满足对视频高分辨率和实时性的要求。
第一方面,本发明实施例提供一种视频编码方法,包括:
获取当前待编码的视频数据;
从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核;
根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;
将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。
第二方面,本发明实施例提供一种视频编码设备,包括:多核调度装置以及多个处理器核;
所述多核调度装置,用于获取当前待编码的视频数据;并从所述多个处理器核中确定用于编码所述视频数据的当前空闲的处理器核;
根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;
将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。
第三方面,本发明实施例提供一种可移动平台,包括:成像装置以及如第二方面本发明实施例所述的视频编码设备;其中,所述成像装置,用于采集视频数据。
第四方面,本发明实施例提供一种芯片,包括:存储器和处理器;
所述存储器,用于存储程序指令;所述处理器用于调用存储器中的程序指令执行如第一方面本发明实施例所述的视频编码方法。
第五方面,本发明实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如第一方面本发明实施例所述的视频编码方法。
第六方面,本发明实施例提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现第一方面本发明实施例所述的视频编码方法。
本发明实施例提供的视频编码方法、设备和可移动平台,通过获取当前待编码的视频数据;从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核;根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。由于本实施例将当前待编码的视频数据的编码参考数据的存储地址发送给处理器核,以便处理器核获取编码参考数据,再据此对视频数据进行编码,从而实现多个处理器核间的可以同时并行编码视频数据,以保障视频信号高分辨率和实时性的要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明的实施例的无人飞行系统的示意性架构图;
图2为本发明一实施例提供的视频编码方法的流程图;
图3为本发明一实施例提供的编码架构示意图;
图4为本发明一实施例提供的视频编码设备的结构示意图;
图5为本发明一实施例提供的可移动平台的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本发明的实施例提供了视频编码方法、装置和可移动平台,该可移动平台为包括该拍摄装置。该可移动平台例如可以是无人机、无人船、无人汽车、机器人、手持电子设备等。手持电子设备例如是手机、平板电脑、笔记本电话、可穿戴设备等终端设备。其中无人机例如可以是旋翼飞行器(rotorcraft),例如,由多个推动装置通过空气推动的多旋翼飞行器,本发明的实施例并不限于此。
图1是根据本发明的实施例的无人飞行系统的示意性架构图。本实施例以旋翼无人机为例进行说明。
无人飞行系统100可以包括无人机110、显示设备130和控制终端140。其中,无人机110可以包括动力系统150、飞行控制系统160、机架和承载在机架上的云台120。无人机110可以与控制终端140和显示设备130进行无线通信。
机架可以包括机身和脚架(也称为起落架)。机身可以包括中心架以及与中心架连接的一个或多个机臂,一个或多个机臂呈辐射状从中心架延伸出。脚架与机身连接,用于在无人机110着陆时起支撑作用。
动力系统150可以包括一个或多个电子调速器(简称为电调)151、一个或多个螺旋桨153以及与一个或多个螺旋桨153相对应的一个或多个电机152,其中电机152连接在电子调速器151与螺旋桨153之间,电机152和螺旋桨153设置在无人机110的机臂上;电子调速器151用于接收飞行控制系统160产生的驱动信号,并根据驱动信号提供驱动电流给电机152,以控制电机152的转速。电机152用于驱动螺旋桨旋转,从而为无人机110的飞行提供动力,该动力使得无人机110能够实现一个或多个自由度的运动。在某些实施例中,无人机110可以围绕一个或多个旋转轴旋转。例如,上述旋转轴可以包括横滚轴(Roll)、偏航轴(Yaw)和俯仰轴(pitch)。应理解,电机152可以是直流电机,也可以交流电机。另外,电机152可以是无刷电机,也可以是有刷电机。
飞行控制系统160可以包括飞行控制器161和传感系统162。传感系统162用于测量无人机的姿态信息,即无人机110在空间的位置信息和状态信息,例如,三维位置、三维角度、三维速度、三维加速度和三维角速度等。传感系统162例如可以包括陀螺仪、超声传感器、电子罗盘、惯性测量单元(Inertial Measurement Unit,IMU)、视觉传感器、全球导航卫星系统和气压计等传感器中的至少一种。例如,全球导航卫星系统可以是全球定位系统(Global Positioning System,GPS)。飞行控制器161用于控制无人机110的飞行,例如,可以根据传感系统162测量的姿态信息控制无人机110的飞行。应理解,飞行控制器161可以按照预先编好的程序指令对无人机110进行控制,也可以通过响应来自控制终端140的一个或多个控制指令对无人机110 进行控制。
云台120可以包括电机122。云台用于携带拍摄装置123。飞行控制器161可以通过电机122控制云台120的运动。可选地,作为另一实施例,云台120还可以包括控制器,用于通过控制电机122来控制云台120的运动。应理解,云台120可以独立于无人机110,也可以为无人机110的一部分。应理解,电机122可以是直流电机,也可以是交流电机。另外,电机122可以是无刷电机,也可以是有刷电机。还应理解,云台可以位于无人机的顶部,也可以位于无人机的底部。
拍摄装置123例如可以是照相机或摄像机等用于捕获图像的设备,拍摄装置123可以与飞行控制器通信,并在飞行控制器的控制下进行拍摄。本实施例的拍摄装置123至少包括感光元件,该感光元件例如为互补金属氧化物半导体(Complementary Metal Oxide Semiconductor,CMOS)传感器或电荷耦合元件(Charge-coupled Device,CCD)传感器。可以理解,拍摄装置123也可直接固定于无人机110上,从而云台120可以省略。
显示设备130位于无人飞行系统100的地面端,可以通过无线方式与无人机110进行通信,并且可以用于显示无人机110的姿态信息。另外,还可以在显示设备130上显示拍摄装置拍摄的图像。应理解,显示设备130可以是独立的设备,也可以集成在控制终端140中。
控制终端140位于无人飞行系统100的地面端,可以通过无线方式与无人机110进行通信,用于对无人机110进行远程操纵。
应理解,上述对于无人飞行系统各组成部分的命名仅是出于标识的目的,并不应理解为对本发明的实施例的限制。
图2为本发明一实施例提供的视频编码方法的流程图,如图2所示,本实施例的方法可以包括:
S201、获取当前待编码的视频数据。
本实施例中,获取当前待编码的视频数据,该视频数据可以是成像装置采集的视频数据。
S202、从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核。
本实施例中的多核处理器可以用于编码视频数据,并且多核处理器中包括多个处理器核,每个处理器核均可用于编码视频数据,多个处理器核中的 至少一个处理器核可以同时编码视频数据。在同一时间多个处理器核中可能存在处于占用状态的处理器核,也可能存在处理空闲状态的处理器核。因此,为了保证编码的效率,将当前处于空闲状态的处理器核用于编码当前待编码的视频数据,所以从该多核处理器的多个处理核中确定用于编码该视频数据的当前空闲的处理器核。可选地,若存在多个当前空闲的处理器核,则可以从中随机确定一个用于编码该视频数据的当前空闲的处理器核。或者,可选地,多个处理器核中的每个处理器核设置有标识,若存在多个当前空闲的处理器核,则可以从这些当前空闲的处理器核中确定标识的值最小的处理器核。
可选地,本实施例可以获取每个处理器核的idle指示,若处理器核的idle指示为1时,说明该处理器核为当前空闲的处理器核,若处理器核的idle指示为0时,说明该处理器核为当前占用的处理器核。
可选地,从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核之后,还将确定的该处理器核置为占用状态,例如将该处理器核的idle指示置为0,以避免将该处理器核分配给用于编码其它视频数据,避免编码冲突。
S203、根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址。
本实施例中,在获得当前待编码的视频数据之后,由于存在多个处理器核是并行编码视频数据,在编码当前待编码的视频数据时,需要参考其它数据,该数据称为该当前待编码的视频数据的编码参数数据。因此,本实施例根据该当前待编码的视频数据,获取该当前待编码的视频数据的编码参考数据的存储地址。
S204、将所述存储地址发送给确定所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。
本实施例中,在获取上述编码参考数据的存储地址之后,将该存储地址发送给上述S202中确定的处理器核,该处理器核接收到该存储地址之后,根据该存储地址获取当前待编码的视频数据的编码参考数据,然后根据该编码参数据对该视频数据进行编码。可选地,在该处理器核根据所述编码参考数据对所述视频数据编码结束后,将所述处理器核置为空闲状态,例如将该处 理器核的idle指示置为1,以便将该处理器核及时分配用于编码其它视频数据。
本实施例中,通过获取当前待编码的视频数据;从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核;根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。由于本实施例将当前待编码的视频数据的编码参考数据的存储地址发送给处理器核,以便处理器核获取编码参考数据,再据此对视频数据进行编码,从而实现多个处理器核间的可以同时并行编码视频数据,以保障视频信号高分辨率和实时性的要求。
在一些实施例中,所述当前待编码的视频数据的编码参考数据包括:所述当前待编码的视频数据的相邻视频数据的编码数据。由于本实施例的处理器核可以根据当前待编码的视频数据的相邻视频数据的编码数据,对当前待编码的视频数据进行编码,可以保证并行编码视频数据的准确性。例如:当前待编码的视频数据为第n帧,则相邻视频数据为第n-1帧。
在一些实施例中,在所述处理器核根据所述编码参考数据对所述视频数据进行编码之后,获取视频数据的编码数据的存储地址,并将所述视频数据的编码数据作为另一视频数据的编码参考数据。处理器核根据编码参考数据对当前待编码的视频数据进行编码后,将该视频数据的编码数据存储至一存储器中,然后本实施例可以获取该编码数据的存储地址,并将该视频数据的编码数据作为另一视频数据的编码参考数据。例如:该视频数据为第n帧,在处理器核对第n帧进行编码之后,将该第n帧的编码数据存储至一存储器中,然后本实施例可以获取该第n帧的编码数据的存储地址,当需要编码第n+1帧时,由于编码第n+1帧需要参考第n帧,因此,第n帧的编码数据作为第n+1帧的编码参考数据。
其中,上述视频数据的编码数据的存储地址可以为:存储在片外存储中的地址。处理器核在获得视频数据的编码数据之后,将该视频数据的编码数据存储至片外存储器中,该片外存储器例如可以为同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)。或者,
上述视频数据的编码数据的存储地址可以为:存储在编码该视频数据的处理器核内的存储器中的地址。处理器核在获取视频数据的编码数据之后,将该视频数据的编码数据存储至该处理核内的存储器中,该处理器核内的存储器例如可以为静态随机存取存储器(Static Random-Access Memory,SRAM)静态随机存取存储器SRAM,该SRAM又例如可以为双倍速率(Double Data Rate,DDR SRAM)。
在一些实施例中,所述编码参考数据包括:所述多核处理器中每个处理器核在编码视频数据时均需的参考数据。该参考数据是每个处理器核在编码视频数据时均由需要使用的,也是每个处理器核共享的。
可选地,所述参考数据的存储地址为存储在所述多个处理器核共享的存储器的地址。该参考数据可以存储在该多核处理器中每个处理器核共享的存储器,该存储器为多个处理器核外的存储器。可选地,所述多个处理器核共享的存储器为位于所述多个处理器核外的SRAM。
在一些实施例中,还可以获取所述多核处理器中各处理器核间的编码合作模式;并将与所述编码合作模式对应的编码配置参数发送给所述处理器核,以便所述处理器核根据所述编码配置参数和所述编码参考数据对所述视频数据进行编码。本实施例中,编码合作模式有多种,例如:一种编码合作模式指示所述多核处理器用于编码多帧视频数据,另一种编码合作模式指示所述多核处理器用于编码同一帧视频数据中的多垂直条带,再一种编码合作模式指示所述多核处理器用于编码同一帧视频数据中的多水平条带,本实施例并不限于此。在获取多核处理器中各处理器核间的当前编码合作模式之后,将与所述当前编码合作模式对应的编码配置参数发送给多核处理器中的每个处理器核,然后每个处理器核在编码视频数据时,可以根据所述编码配置参数和视频数据的编码参考数据对视频数据进行编码。
在一些实施例中,若所述编码合作模式指示所述多核处理器用于编码多帧视频数据,则所述当前待编码的视频数据为一帧视频数据。当前待编码的视频数据的相邻视频数据例如为相邻帧的视频数据。
在一些实施例中,若所述编码合作模式指示所述多核处理器用于编码同一帧视频数据中的多垂直条带,则所述当前待编码的视频数据为一帧视频数据中的垂直条带。当前待编码的视频数据的相邻视频数据例如为同一帧视频 数据中的相邻垂直条带。
在一些实施例中,若所述编码合作模式指示所述多核处理器用于编码同一帧视频数据中的多水平条带,则所述当前待编码的视频数据为一帧视频数据中的水平条带。当前待编码的视频数据的相邻视频数据例如为同一帧视频数据中的相邻水平条带。
下面以高效视频编码(High Efficiency Video Coding,HEVC)编码器(coder)为例对上述本发明实施例的方案进行描述。如图3所示,多核编码器(Encoder Multicore Wrap),其包含多核调度装置(Multicore Scheduler)、3个Encoder core(编码器核,即上述实施例中的处理器核),也可以例化2个或多个核,本实施例对编码器核的数量不做限定。而且多个编码器核间的协同合作由多核调度装置同步或调度完成。
其中,每个编码器核内部包括:功能逻辑电路(LOGIC CORE)、总线访问模块(AXI MASTER)、配置模块(Configuration:由SW REG(软件寄存器)和AHB(AHB从机接口)组成)、内部存储单元(例如SRAM,即上述实施例中的处理器核内部的存储器)。
其中,多核调度装置包括如下模块:同步器(Synchronizer)、调度器(Scheduler)、共享控制器(shared controller)、共享存储器(例如SRAM,即上述实施例中的多个处理器核共享的存储器),下面对各个模块进行描述。
同步器:多个编码器核间需要相互访问的数据可以写到片外存储器(即图3中的SDRAM),并通过同步器将写完的数据坐标或地址信息传给需要访问的编码器核。该同步器的功能是同步多个编码器核间的坐标或地址信息,如编码参考帧数据、编码参考运动向量数据的坐标(例如即为上述实施例中的编码参考数据的存储地址)。同步器可以连接任意编码器核,通过valid&ready标准握手交互接口连接,内部通过MUX和DEMUX可以选通任意两个编码器核进行交互通信。中间由FIFO存储交互数据,避免丢失。Valid&ready交互时序中,当vld和rdy同时有效(也就是高电平有效)时将数据存到FIFO或输出到下级模块。如编码序列是P序列时,编码器核0编码第n帧,编码器核1编码第n+1帧,编码器核0写出的重构数据作为编码器核1运动估计的参考数据,要保证编码器核1的参考数据一定被编码器核0写出到片外存储器,就需要编码器核0将写出到片外的重构数据位置经过 同步器送给编码器核1,编码器核1通过同步器接到重构数据位置(即参考数据位置)后进行判断,保证所需要的参考数据准备就绪后,才开始进行运动估计。
调度器:调度多个编码器核间协同合作进行编码,软件只需将待编码帧的编码配置参数写到芯片内,并选择编码合作模式,调度器根据编码合作模式,将编码配置参数转发到编码器核中的配置模块,并启动编码。
编码合作模式1:多个编码器核同时编码多帧,每个编码器核编码一帧,多帧间有参考数据和运动向量的依赖性,通过同步器完成多个编码器核(即多帧)间参考数据和运动向量的同步。
编码合作模式2:多个编码器核同时编码一帧,每个编码器核编码一个水平条带(tile)或一个垂直条带(slice),多个编码器核(即多slice或多tile)间有帧内预测的相邻数据参考依赖,还有滤波的相邻数据依赖,这些数据都通过共享控制器完成多个编码器核(多slice或多tile)间的共享。熵编码进行独立编码,生成独立的stream。
编码合作模式3:多个编码器核同时编码一帧,每个编码器核编码一行CTB,CTB编码间的数据依赖(同合作模式2)通过共享控制器共享。
调度器调度不限于以上三种合作模式,调度器内部主要管理:软件配置数据的分发和控制,建立多个编码器核间同步信息通道,控制编码器核开始和结束编码。调度器上课以根据不同的合作模式,采用不同的状态机控制。
以编码合作模式1为例,调度器中有如下几个变量:
core_amount:编码器核的数量,本实施例中为3;
core_x_idle:编码器核x的空闲指示,为1时,表示编码器核x空闲;
core_x_curr_buf_id:编码器核x的待编码帧buffer id;
core_x_ref_buf_id:编码器核x的参考帧buffer id。
编码过程例如:
1、frame n:待编码frame n(第n帧)准备参数;
2、wait frame end interrupt:等待编码帧结束中断;
3、core_x_idle判断:判断空闲的核码核,当多个核码核空闲时,选择x小的编码器核,选择后将选择的core x idle置为0;
4、core_x_curr_buf_id:设置core_x_curr_buf_id为n;
5、core_x_ref_buf_id:设置core_x_ref_buf_id为n-1或0,原则是选择前1帧的重构帧做参考;
6、Setup AHB channel to core x:建立编码器核x AHB写通道;
7、Frame n parameter write into core x:配置参数到编码器核x;
8、Start core x encoder:启动编码器核x,开始编码;
9、Setup core x and y synchronization chnnel:建立当前帧编码的编码器核x和参考帧编码的编码器核y的同步信息通路;
10、core x frame n encoder finish:编码器核x的frame n编码结束;
11、core_x_idle置位:将core_x_idle置1,同时上报帧结束中断;
12、Frame n done:frame n编码结束。
共享控制器:多个编码器核间需要相互访问的数据可以写到片外存储器,并通过同步器将写完的数据坐标信息传给需要访问的编码器核。也可以使用共享控制器直接进行多个编码器核间的访问。在编码合作模式2下,多个编码器核同时编码一帧中不同的tile/slice,在tile/slice编码时deblock和sao滤波都需要参考旁边tile/slice的像素。因此,使用共享控制器,在编码器核0完成tile 0的编码后,将tile 0右侧的数据buffer在编码器核0内的SRAM中,编码器核0向共享控制器发出ready信号。编码器核1编码tile0旁边的tile 1,编码器核1编码tile 1左侧像素时(进行deblock和sao滤波时,或进行帧内预测时)需要参考tile0的像素,编码器核1向共享控制器发出请求信号。共享控制器接收到编码器核0的ready信号和编码器核1的请求信号后,将编码器核0的SRAM读控制信号连接到编码器核1,建立直接连线关系,向编码器核0和编码器核1发送建立成功信号。编码器核0和编码器核1接到连接成功信号后,编码器核1直接访问编码器核0中的SRAM。编码器核1访问编码器核0的SRAM完毕后,向共享控制器发送ready信号,共享控制器取消直接连线关系,释放编码器核0的SRAM。
共享存储器:多个编码器核间除了通过片外存储器或直接连线共享数据(即编码器核内的SRAM)外,还可以通过共享存储器共享数据,这里的共享存储器是集成在多核调度装置中的。多个编码器核编码都需要访问的数据可以采用共享存储器方式。
以速度控制(rate control)参数为例,软件将rate control参数直接存放在 共享存储器中,多个编码器核经访问仲裁器访问共享存储器。
其中,共享存储器访问仲裁器按请求&应答模式仲裁为:多个编码器核都需要访问rate control参数,编码器核向共享存储器访问仲裁器发送访问请求,共享存储器访问仲裁器接到访问请求按照先到先得的原则将请求排序,排在最前边的请求最先得到应答。编码器核得到应答后,可以访问共享存储器。编码器核访问共享存储器完毕后向共享存储器访问仲裁器发送请求结束信号,共享存储器访问仲裁器接到请求结束信号,取消编码器核的访问权,然后应答下一个请求。
因此,基于上述方案,本发明实施例提供的是通用多核实现架构,多核实现架构下依赖数据的同步方式与架构,多核实现架构下共享存储资源的方式,通用多核调度控制方式与架构。
本发明实施例中还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序执行时可包括如图2及其对应实施例中的视频编码方法的部分或全部步骤。
图4为本发明一实施例提供的视频编码设备的结构示意图,如图4所示,本实施例的视频编码设备400可以包括:多核调度装置401以及多个处理器核402。
所述多核调度装置401,用于获取当前待编码的视频数据;并从所述多个处理器核402中确定用于编码所述视频数据的当前空闲的处理器核402;
根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;
将所述存储地址发送给确定的所述处理器核402,以便所述处理器核402根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。
在一些实施例中,所述编码参考数据包括:所述当前待编码的视频数据的相邻视频数据的编码数据。
在一些实施例中,所述处理器核402,还用于根据所述编码参考数据对所述视频数据进行编码之后,存储所述视频数据的编码数据;
所述多核调度装置401,还用于获取所述视频数据的编码数据的存储地址,并将所述视频数据的编码数据作为另一视频数据的编码参考数据。
在一些实施例中,处理器核402内包括存储器4021,所述视频数据的编码数据的存储地址为:存储在编码该视频数据的处理器核402内的存储器4021中的地址;或者,
所述视频数据的编码数据的存储地址为:存储在所述片外存储器403中的地址。其中,片外存储器403可以是视频编码设备400外的存储器,也可以是视频编码设备400内的存储器。例如:若视频编码设备400为芯片或芯片的多核处理器,则片外存储器403是视频编码设备400外的存储器,其中,图4以片外存储器403是视频编码设备400外的存储器为例示出,但本实施例并不限于此。
在一些实施例中,所述片外存储器403为SDRAM。
在一些实施例中,所述处理器核402内的存储器4021为SRAM。
在一些实施例中,所述编码参考数据包括:所述多个处理器核中每个处理器核在编码视频数据时均需的参考数据。
在一些实施例中,所述视频编码设备400还包括:所述多个处理器核402共享的存储器404;
所述参考数据的存储地址为存储在所述多个处理器核402共享的存储器的地址。
其中,多个处理器核402共享的存储器404可以是多核调度装置401外的存储器,也可以多核调度装置401内的存储器,图4中以多个处理器核402共享的存储器404是多核调度装置401内的存储器为例示出,本实施例并不限于此。
在一些实施例中,所述多个处理器核402共享的存储器404为位于所述多个处理器核402外的SRAM。
在一些实施例中,所述多核调度装置401,还用于:获取所述多个处理器核402中各处理器核402间的编码合作模式;将与所述编码合作模式对应的编码配置参数发送给所述处理器核402;
所述处理器核402,用于根据所述编码配置参数和所述编码参考数据对所述视频数据进行编码。
在一些实施例中,若所述编码合作模式指示多个处理器核402用于编码多帧视频数据,则所述当前待编码的视频数据为一帧视频数据。
在一些实施例中,若所述编码合作模式指示多个处理器核402用于编码同一帧视频数据中的多垂直条带,则所述当前待编码的视频数据为一帧视频数据中的垂直条带。
在一些实施例中,若所述编码合作模式指示多个处理器核402用于编码同一帧视频数据中的多水平条带,则所述当前待编码的视频数据为一帧视频数据中的水平条带。
在一些实施例中,所述多核调度装置401,还用于在从多个处理器核402中确定用于编码所述视频数据的当前空闲的处理器核之后,将所述处理器核置为占用状态;以及在所述处理器核402根据所述编码参考数据对所述视频数据编码结束后,将所述处理器核402置为空闲状态。
本实施例的视频编码设备,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明一实施例提供的可移动平台的结构示意图,如图5所示,本实施例的可移动平台500可以包括:成像装置501以及视频编码设备502。其中,所述成像装置501,用于采集视频数据。视频编码设备502用于编码成像装置501采集的视频数据。其中,视频编码设备502例如可以采用图4所示实施例的结构,其对应地,可以执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (30)

  1. 一种视频编码方法,其特征在于,包括:
    获取当前待编码的视频数据;
    从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核;
    根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;
    将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。
  2. 根据权利要求1所述的方法,其特征在于,所述编码参考数据包括:所述当前待编码的视频数据的相邻视频数据的编码数据。
  3. 根据权利要求1或2所述的方法,其特征在于,还包括:
    在所述处理器核根据所述编码参考数据对所述视频数据进行编码之后,获取视频数据的编码数据的存储地址,并将所述视频数据的编码数据作为另一视频数据的编码参考数据。
  4. 根据权利要求2或3所述的方法,其特征在于,视频数据的编码数据的存储地址为:存储在片外存储器中的地址,或者,存储在编码该视频数据的处理器核内的存储器中的地址。
  5. 根据权利要求4所述的方法,其特征在于,所述片外存储器为同步动态随机存取存储器SDRAM。
  6. 根据权利要求4所述的方法,其特征在于,所述处理器核内的存储器为静态随机存取存储器SRAM。
  7. 根据权利要求1-6任一项所述的方法,其特征在于,所述编码参考数据包括:所述多核处理器中每个处理器核在编码视频数据时均需的参考数据。
  8. 根据权利要求7所述的方法,其特征在于,所述参考数据的存储地址为存储在多个处理器核共享的存储器的地址。
  9. 根据权利要求8所述的方法,其特征在于,所述多个处理器核共享的存储器为位于所述多个处理器核外的SRAM。
  10. 根据权利要求1-9任一项所述的方法,其特征在于,还包括:
    获取所述多核处理器中各处理器核间的编码合作模式;
    将与所述编码合作模式对应的编码配置参数发送给所述处理器核,以便所述处理器核根据所述编码配置参数和所述编码参考数据对所述视频数据进行编码。
  11. 根据权利要求10所述的方法,其特征在于,若所述编码合作模式指示所述多核处理器用于编码多帧视频数据,则所述当前待编码的视频数据为一帧视频数据。
  12. 根据权利要求10所述的方法,其特征在于,若所述编码合作模式指示所述多核处理器用于编码同一帧视频数据中的多垂直条带,则所述当前待编码的视频数据为一帧视频数据中的垂直条带。
  13. 根据权利要求10所述的方法,其特征在于,若所述编码合作模式指示所述多核处理器用于编码同一帧视频数据中的多水平条带,则所述当前待编码的视频数据为一帧视频数据中的水平条带。
  14. 根据权利要求1-13任一项所述的方法,其特征在于,所述从多核处理器中确定用于编码所述视频数据的当前空闲的处理器核之后,还包括:
    将所述处理器核置为占用状态;
    在所述处理器核根据所述编码参考数据对所述视频数据编码结束后,将所述处理器核置为空闲状态。
  15. 一种视频编码设备,其特征在于,包括:多核调度装置以及多个处理器核;
    所述多核调度装置,用于获取当前待编码的视频数据;并从所述多个处理器核中确定用于编码所述视频数据的当前空闲的处理器核;
    根据当前待编码的视频数据,获取所述当前待编码的视频数据的编码参考数据的存储地址;
    将所述存储地址发送给确定的所述处理器核,以便所述处理器核根据所述存储地址获取所述编码参考数据,并根据所述编码参考数据对所述视频数据进行编码。
  16. 根据权利要求15所述的设备,其特征在于,所述编码参考数据包括:所述当前待编码的视频数据的相邻视频数据的编码数据。
  17. 根据权利要求15或16所述的设备,其特征在于,所述处理器核,还用于根据所述编码参考数据对所述视频数据进行编码之后,存储所述视频 数据的编码数据;
    所述多核调度装置,还用于获取所述视频数据的编码数据的存储地址,并将所述视频数据的编码数据作为另一视频数据的编码参考数据。
  18. 根据权利要求16或17所述的设备,其特征在于,所述视频数据的编码数据的存储地址为:存储在编码该视频数据的处理器核内的存储器中的地址;或者,存储在片外存储器中的地址。
  19. 根据权利要求18所述的设备,其特征在于,所述片外存储器为同步动态随机存取存储器SDRAM。
  20. 根据权利要求18所述的设备,其特征在于,所述处理器核内的存储器为静态随机存取存储器SRAM。
  21. 根据权利要求15-20任一项所述的设备,其特征在于,所述编码参考数据包括:所述多个处理器核中每个处理器核在编码视频数据时均需的参考数据。
  22. 根据权利要求21所述的设备,其特征在于,还包括:所述多个处理器核共享的存储器;
    所述参考数据的存储地址为存储在所述多个处理器核共享的存储器的地址。
  23. 根据权利要求22所述的设备,其特征在于,所述多个处理器核共享的存储器为位于所述多个处理器核外的SRAM。
  24. 根据权利要求15-22任一项所述的设备,其特征在于,所述多核调度装置,还用于:获取所述多个处理器核中各处理器核间的编码合作模式;将与所述编码合作模式对应的编码配置参数发送给所述处理器核;
    所述处理器核,用于根据所述编码配置参数和所述编码参考数据对所述视频数据进行编码。
  25. 根据权利要求24所述的设备,其特征在于,若所述编码合作模式指示多个处理器核用于编码多帧视频数据,则所述当前待编码的视频数据为一帧视频数据。
  26. 根据权利要求24所述的设备,其特征在于,若所述编码合作模式指示多个处理器核用于编码同一帧视频数据中的多垂直条带,则所述当前待编码的视频数据为一帧视频数据中的垂直条带。
  27. 根据权利要求24所述的设备,其特征在于,若所述编码合作模式指示多个处理器核用于编码同一帧视频数据中的多水平条带,则所述当前待编码的视频数据为一帧视频数据中的水平条带。
  28. 根据权利要求15-27任一项所述的设备,其特征在于,所述多核调度装置,还用于在从多个处理器核中确定用于编码所述视频数据的当前空闲的处理器核之后,将所述处理器核置为占用状态;以及在所述处理器核根据所述编码参考数据对所述视频数据编码结束后,将所述处理器核置为空闲状态。
  29. 一种可移动平台,其特征在于,包括:成像装置以及如权利要求15-28任一项所述的视频编码设备;
    其中,所述成像装置,用于采集视频数据。
  30. 一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序;所述计算机程序在被执行时,实现如权利要求1-14任一项所述的视频编码方法。
PCT/CN2019/080681 2019-03-29 2019-03-29 视频编码方法、设备和可移动平台 WO2020199050A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2019/080681 WO2020199050A1 (zh) 2019-03-29 2019-03-29 视频编码方法、设备和可移动平台
CN201980005411.0A CN111316643A (zh) 2019-03-29 2019-03-29 视频编码方法、设备和可移动平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/080681 WO2020199050A1 (zh) 2019-03-29 2019-03-29 视频编码方法、设备和可移动平台

Publications (1)

Publication Number Publication Date
WO2020199050A1 true WO2020199050A1 (zh) 2020-10-08

Family

ID=71159512

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/080681 WO2020199050A1 (zh) 2019-03-29 2019-03-29 视频编码方法、设备和可移动平台

Country Status (2)

Country Link
CN (1) CN111316643A (zh)
WO (1) WO2020199050A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235579B (zh) * 2020-09-28 2022-09-06 深圳市洲明科技股份有限公司 视频处理方法、计算机可读存储介质及电子设备
CN117395437B (zh) * 2023-12-11 2024-04-05 沐曦集成电路(南京)有限公司 一种基于异构计算的视频编解码方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267564A (zh) * 2008-04-16 2008-09-17 中国科学院计算技术研究所 一种多处理器视频编码芯片装置和方法
CN101272497A (zh) * 2008-05-07 2008-09-24 北京数码视讯科技股份有限公司 一种视频编码方法
CN101466041A (zh) * 2009-01-16 2009-06-24 清华大学 一种用于多核处理器的多视点视频编码的任务调度方法
CN103634604A (zh) * 2013-12-01 2014-03-12 北京航空航天大学 一种面向多核dsp运动估计的数据预取方法
CN103873874A (zh) * 2014-02-19 2014-06-18 同观科技(深圳)有限公司 一种基于可编程并行处理器的全搜索运动估计方法
US9148670B2 (en) * 2011-11-30 2015-09-29 Freescale Semiconductor, Inc. Multi-core decompression of block coded video data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103227919B (zh) * 2013-03-29 2015-11-25 苏州皓泰视频技术有限公司 一种基于多核处理器Tilera的SVC编码方法
CN106921862A (zh) * 2014-04-22 2017-07-04 联发科技股份有限公司 多核解码器系统和视频解码方法
CN104539972A (zh) * 2014-12-08 2015-04-22 中安消技术有限公司 一种多核处理器中视频并行解码的控制方法和装置
CN105005546B (zh) * 2015-06-23 2018-01-30 中国兵器工业集团第二一四研究所苏州研发中心 一种内置交点队列的异步axi总线结构
CN105263022B (zh) * 2015-09-21 2018-03-02 山东大学 一种针对hevc视频编码的多核混合存储管理方法
CN109271333B (zh) * 2017-07-17 2022-03-01 深圳市中兴微电子技术有限公司 一种sram控制方法及控制器、控制系统
CN108540797A (zh) * 2018-03-23 2018-09-14 南京邮电大学 基于多核平台的hevc帧内/帧间联合wpp编码方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267564A (zh) * 2008-04-16 2008-09-17 中国科学院计算技术研究所 一种多处理器视频编码芯片装置和方法
CN101272497A (zh) * 2008-05-07 2008-09-24 北京数码视讯科技股份有限公司 一种视频编码方法
CN101466041A (zh) * 2009-01-16 2009-06-24 清华大学 一种用于多核处理器的多视点视频编码的任务调度方法
US9148670B2 (en) * 2011-11-30 2015-09-29 Freescale Semiconductor, Inc. Multi-core decompression of block coded video data
CN103634604A (zh) * 2013-12-01 2014-03-12 北京航空航天大学 一种面向多核dsp运动估计的数据预取方法
CN103873874A (zh) * 2014-02-19 2014-06-18 同观科技(深圳)有限公司 一种基于可编程并行处理器的全搜索运动估计方法

Also Published As

Publication number Publication date
CN111316643A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
JP6885485B2 (ja) 複数カメラネットワークを利用して静止シーン及び/又は移動シーンを取り込むためのシステム及び方法
CN109076249B (zh) 用于视频处理和显示的系统和方法
US20190243388A1 (en) Unmanned aerial vehicle including an omnidirectional depth sensing and obstacle avoidance aerial system and method of operating same
US11140332B2 (en) Imaging control method, imaging device and unmanned aerial vehicle
EP3635950B1 (en) Imaging device, camera-equipped drone, and mode control method, and program
WO2020181494A1 (zh) 参数同步方法、拍摄装置和可移动平台
CN108924520B (zh) 传输控制方法、装置、控制器、拍摄设备及飞行器
WO2018120351A1 (zh) 一种对无人机进行定位的方法及装置
WO2020199050A1 (zh) 视频编码方法、设备和可移动平台
US11216661B2 (en) Imaging system and method for unmanned vehicles
WO2020019106A1 (zh) 云台和无人机控制方法、云台及无人机
CN112672133A (zh) 基于无人机的立体成像方法和装置、计算机可读存储介质
CN110383810B (zh) 信息处理设备、信息处理方法和信息处理程序
WO2021217371A1 (zh) 可移动平台的控制方法和装置
CN109949381A (zh) 图像处理方法、装置、图像处理芯片、摄像组件及飞行器
CN113791640A (zh) 一种图像获取方法、装置、飞行器和存储介质
WO2021168821A1 (zh) 可移动平台的控制方法和设备
WO2020037542A1 (zh) 数据指令处理方法、存储芯片、存储系统和可移动平台
JP2023157917A (ja) 撮影方法
WO2020237429A1 (zh) 遥控设备的控制方法和遥控设备
WO2020172873A1 (zh) 无人机的通信方法及无人机
WO2022000245A1 (zh) 飞行器的定位方法、辅助定位系统的控制方法和装置
CN111465919A (zh) 用于支持可移动平台环境中的低延迟的系统和方法
CN113784050A (zh) 一种图像获取方法、装置、飞行器和存储介质
WO2021223141A1 (zh) 无人机通信方法、系统和无人机

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19922348

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19922348

Country of ref document: EP

Kind code of ref document: A1