CN110199269A - 用于多处理器之间的数据处理的方法和电子装置 - Google Patents

用于多处理器之间的数据处理的方法和电子装置 Download PDF

Info

Publication number
CN110199269A
CN110199269A CN201880008043.0A CN201880008043A CN110199269A CN 110199269 A CN110199269 A CN 110199269A CN 201880008043 A CN201880008043 A CN 201880008043A CN 110199269 A CN110199269 A CN 110199269A
Authority
CN
China
Prior art keywords
data
processor
memory
processing
segment
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.)
Granted
Application number
CN201880008043.0A
Other languages
English (en)
Other versions
CN110199269B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN110199269A publication Critical patent/CN110199269A/zh
Application granted granted Critical
Publication of CN110199269B publication Critical patent/CN110199269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Telephone Function (AREA)

Abstract

一种电子装置可包括:第一存储器,用于以指定速率存储第一数据;第一处理器,被连接到第一存储器,并且被配置为将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;第二存储器,用于以比指定速率快的速率存储所述多个第二数据中的至少一些第二数据;第二处理器,被连接到第二存储器,并且被配置为处理所述多个第二数据中的至少一些第二数据;以及DMA控制模块,被连接到第二处理器,用于在第一存储器与第二存储器之间发送/接收数据,其中,DMA控制模块被配置为:至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分出的小的大小的所述多个第二数据中的至少一些第二数据;将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且将由第二处理器通过使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。

Description

用于多处理器之间的数据处理的方法和电子装置
技术领域
本公开涉及用于处理图像的电子装置和方法。
背景技术
直接存储器访问(DMA)是一种用于无需通过中央处理器(CPU)而在存储器之间或者存储器与输入/输出装置之间直接传输数据的技术。
DMA不需要CPU干预数据传输,使得CPU可执行其他任务,从而改善CPU管理。因此,DMA可在数字信号处理领域中被有效地使用。
发明内容
技术问题
为了使用DMA,必须将用于控制DMA的代码插入到操作代码中。结果是,必须在需要用于操作的数据的时刻提供输入数据,并且必须在操作结束的时刻产生输出数据。然而,这种情况可能存在如下所述的问题。
首先,DMA和图像位置计算频繁地且共同地在图像处理算法中被使用,并且公共代码的重复会降低代码的可循环性。DMA和图像位置计算需要通过硬件的直接控制,因此设计者必须充分了解处理器(诸如,数字信号处理器(DSP))的架构。因此,设计者可能需要大量时间来对DMA和图像位置计算进行编程。
此外,当在不同的异构操作环境中使用多个处理器时,可能难以执行编程使得一个处理器将参数传输到另一处理器。
根据各种实施例,可提供在处理图像的同时输入将通过DMA被处理的图像数据的功能。此外,本公开的各种实施例可提供一种执行在系统中分离图像处理操作代码和DMA代码的算法的电子装置,其中,在所述系统中,多个处理器在异构操作环境中进行操作。
技术方案
根据本公开的各种实施例的电子装置包括:第一存储器,以指定速度存储第一数据;第一处理器,与第一存储器连接并且被配置为将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;第二存储器,以高于所述指定速度的速度存储所述多个第二数据中的至少一些第二数据;第二处理器,与第二存储器连接并且被配置为处理所述多个第二数据中的至少一些第二数据;以及直接存储器访问(DMA)控制模块,与第二处理器连接并且被配置为在第一存储器与第二存储器之间发送和接收数据,其中,DMA控制模块被配置为:至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分的较小大小的所述多个第二数据中的至少一些第二数据;将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且将由第二处理器使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。
根据本公开的各种实施例的电子装置的控制方法包括:以指定速度将第一数据存储在第一存储器中;由与第一存储器连接的第一处理器将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;以高于所述指定速度的速度存储所述多个第二数据中的至少一些第二数据;由与第二存储器连接的第二处理器处理所述多个第二数据中的至少一些第二数据;并且由与第二处理器连接的DMA控制模块在第一存储器与第二存储器之间发送和接收数据,其中,DMA控制模块被配置为:至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分出的较小大小的所述多个第二数据中的至少一些第二数据;将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且将由第二处理器使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。
有益效果
根据各种实施例,提供了一种用于处理图像的电子装置和方法,其中,在所述电子装置和方法中,可提供在处理图像的同时输入将通过DMA被处理的图像数据的功能。此外,本公开的各种实施例可提供一种在多个处理器在异构操作环境中进行操作时执行用于处理图像的算法的电子装置和方法,其中,在所述算法中,图像处理操作代码和DMA代码是分开的。
附图说明
图1是根据各种实施例的电子装置和网络的框图。
图2是根据各种实施例的电子装置的框图。
图3是根据各种实施例的编程模块的框图。
图4是用于描述根据实施例的主机环境和目标环境的框图。
图5是用于描述根据实施例的图像和输入图块的概念的示例性示图。
图6是用于描述根据实施例的输出图块的示例性示图。
图7是用于描述根据实施例的第二处理器的图像处理的示例性示图。
图8是根据实施例的图像处理的流程图。
图9是用于描述根据实施例的同时执行图块发送/接收和图块处理的过程的示例性示图。
图10是用于描述根据实施例的用于在处理器之间实现图像处理的算法的示例性示图。
图11是示出根据实施例的电子装置的图像处理方法的流程图。
具体实施方式
在下文中,将参照附图公开本公开的各种实施例。然而,在此使用的实施例和术语并不旨在将本公开限于特定实施例,并且应被解释为包括根据本公开的实施例的各种修改、等同物和/或替代物。关于附图的描述,类似的参考标号可用于指相似或相关的元件。将理解,除非相关上下文另有明确说明,否则与项目相应的名词的单数形式可包括一个或更多个事物。在本公开中,诸如“A或B”、“A或/和B中的至少一个”或“A或/和B中的一个或更多个”的表述可包括一起列出的项目的所有可能组合。在此使用的诸如“第一”、“第二”、“主要”或“次要”的表述可表示各种元件而不管顺序和/或重要性如何,并且不限制相应的元件。当描述元件(诸如,第一元件)与另一元件(诸如,第二元件)“可操作地或通信地耦接”/“可操作地或通信地耦接到”另一元件(诸如,第二元件)或者“连接”到另一元件(诸如,第二元件)时,该元件可直接被连接到所述另一元件或者可通过另一元件(例如,第三元件)被连接到所述另一元件。
本公开中使用的“被配置为(或被设置)…”的表述可根据情况用例如“适合于…”、“具有…的能力”、“被适配为…”、“被制造为…”、“能够…”或“被设计为…”替换。可选地,在一些情况下,表述“被配置为…的设备”可表示该设备“能够”与另一设备或组件一起操作。例如,短语“被配置(或被设置)为执行A、B和C的处理器”可以是用于执行相应的操作的专用处理器(例如,嵌入式处理器)或可通过执行存储在存储装置的至少一个软件程序来执行相应的操作的通用处理器(诸如,中央处理器(CPU)或应用处理器)。
根据本公开的各种实施例的电子装置可包括例如以下项中的至少一项:智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书(e-book)阅读器、台式PC、膝上型PC、上网本计算机、工作站、服务器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、移动医疗设备、相机或可穿戴装置。可穿戴装置的示例可包括以下项中的至少一项:配件型(例如,手表、戒指、手镯、脚镯、项链、眼镜、隐形眼镜、头戴式装置(HMD)等)、织物或布料集成型(例如,电子服装等)、身体附着型(例如,皮肤垫、纹身等)、身体可植入电路等。在一些实施例中,电子装置可包括例如以下项中的至少一项:电视(TV)、数字视频盘(DVD)播放器、音频设备、冰箱、空调、真空吸尘器、烤箱、微波炉、洗衣机、空气净化器、机顶盒、家庭自动控制面板、安全控制面板、媒体盒(例如,Samsung HomeSyncTM、Apple TVTM或GoogleTVTM)、游戏机(例如,XboxTM或PlayStationTM)、电子词典、电子钥匙、摄像机或电子相框。
在其他实施例中,电子装置可包括以下项中的至少一项:各种医疗设备(例如,各种便携式医学测量装置(血糖仪、心率测量装置、血压测量装置、体温测量装置等)、磁共振血管造影(MRA)、磁共振成像(MRI)、计算机断层扫描(CT)、成像装置或超声装置)、导航系统、全球导航卫星系统(GNSS)、事件数据记录器(EDR)、飞行数据记录器(FDR)、车辆信息娱乐装置、用于船舶的电子设备(例如,用于船舶的导航系统和回转罗盘)、航空电子设备、安全装置、汽车头单元、工业或家用机器人、自动柜员机(ATM)、销售点(POS)、物联网(例如,电灯泡、各种传感器、电表或气表、洒水装置、火灾警报装置、恒温器、路灯、烤面包机、锻炼器材、热水箱、加热器、锅炉等)。根据一些实施例,电子装置可包括家具、建筑物/结构的一部分或车辆的一部分、电子板、电子签名接收装置、投影仪和各种测量仪器(例如,水、电、气、电波测量装置等)。根据各种实施例,电子装置可以是柔性的,或者可以是上述各种装置中的两个或更多个的组合。根据本公开的实施例,电子装置不限于以上描述的那些装置。在此,本公开的各种实施例中使用的术语“用户”可指使用电子装置的人或使用电子装置的装置(例如,人工智能电子装置)。
图1是根据本公开的各种实施例的电子装置和网络的框图。参照图1,公开了根据本公开的各种实施例的网络环境100中的电子装置101。电子装置101可包括总线110、处理器120、存储器130、输入/输出(I/O)接口150、显示器160和通信接口170。根据一些实施例,电子装置101可省略前述元件中的至少一个元件或者还可包括其他元件。总线110可包括用于连接例如元件110至元件170并在元件110至元件170之间传输通信(例如,控制消息或数据)的电路。处理器120可包括中央处理器(CPU)、应用处理器(AP)和通信处理器(CP)中的一个或更多个。处理器120可执行用于例如电子装置101的至少一个其他元件的控制和/或通信的操作或数据处理。
存储器130可包括易失性存储器和/或非易失性存储器。存储器130可存储例如与电子装置101的至少一个其他元件相关联的指令或数据。根据本公开的实施例,存储器130可存储软件和/或程序140。程序140可包括例如内核141、中间件143、应用编程接口(API)145和/或应用程序(或“应用”)147等中的至少一个。内核141、中间件143和API 145中的至少一些可被称为操作系统(OS)。内核141可控制或管理例如用于执行在其他程序(例如、中间件143、API 145或应用程序147)中实现的操作或功能的系统资源(例如,总线110、处理器120、存储器130等)。内核141提供接口,其中,中间件143、API 145或应用程序147通过该接口访问电子装置101的单独组件以控制或管理系统资源。
中间件143可用作用于允许例如API 145或应用程序147在与内核141通信时交换数据的媒介。此外,中间件143可基于优先级处理从应用程序147接收到的一个或更多个任务请求。例如,中间件143可将使用电子装置101的系统资源(例如,总线110、处理器120、存储器130等)的优先级给予应用程序147中的至少一个,并且可处理所述一个或更多个任务请求。API 145是用于应用147控制由内核141或中间件143提供的功能的接口,并且可包括例如用于文件控制、窗口控制、图像处理或字符控制的至少一个接口或功能(例如,指令)。I/O接口150可将例如从用户或另一外部装置输入的指令或数据传输到电子装置101的其他组件,或者向用户或另一外部装置输出从电子装置101的其他组件接收到的指令或数据。
显示器160可包括例如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、微机电系统(MEMS)显示器或电子纸显示器。显示器160可向用户例如显示各种内容(例如,文本、图像、视频、图标和/或符号等)。显示器160可包括触摸屏,并且接收例如通过使用电子笔或用户的身体的一部分进行的触摸输入、手势输入、接近输入或悬停输入。通信接口170在电子装置101与外部装置(例如,车辆装置102、电子装置104或服务器106)之间建立通信。例如,通信接口170可通过无线通信或有线通信被连接到网络162,以与外部装置(例如,第二外部电子装置104或服务器106)通信。
无线通信可包括使用例如以下项中的至少一项的蜂窝通信协议:长期演进(LTE)、先进LTE(LTE-A)、码分多址(CDMA)、宽带CDMA(WCDMA)、通用移动电信系统(UMTS)、无线宽带(WiBro)、全球移动通信系统(GSM)等。根据实施例,无线通信可包括无线保真(WiFi)、蓝牙、蓝牙低功耗(BLE)、Zigbee、近场通信(NFC)、磁性安全传输(MST)、射频(RF)和体域网(BAN)中的至少一个。根据实施例,无线通信可包括全球导航卫星系统(GNSS)。GNSS可包括例如全球定位系统(GPS)、全球导航卫星系统(格洛纳斯)、北斗导航卫星系统(“北斗”)和伽利略(欧洲全球基于卫星的导航系统)中的至少一个。在下文中,“GPS”可与“GNSS”互换使用。有线通信可包括例如通用串行总线(USB)、高清晰度多媒体接口(HDMI)、推荐标准(RS)-232、电力线通信、普通老式电话服务(POTS)等中的至少一个。网络162可包括电信网络,例如,计算机网络(例如,局域网(LAN)或广域网(WAN))、互联网和电话网络中的至少一个。
第一外部电子装置102和第二外部电子装置104中的每个可以是与电子装置101相同类型或不同类型的装置。根据本公开的各种实施例,由电子装置101执行的一些操作或全部操作可在另一电子装置或多个电子装置(例如,电子装置102或电子装置104、或服务器106)中被执行。根据本公开的实施例,当电子装置101必须自动地或根据请求执行功能或服务时,电子装置101可请求另一装置(例如,电子装置102或电子装置104、或服务器106)执行与所述功能或服务相关联的至少一些功能而不是执行所述功能或服务,或者除了执行所述功能或服务之外,电子装置101可请求另一装置(例如,电子装置102或电子装置104、或服务器106)执行与所述功能或服务相关联的至少一些功能。另一电子装置(例如,电子装置102或电子装置104、或服务器106)可执行请求的功能或附加功能,并且将执行结果传输到电子装置101。电子装置101可随后处理接收到的结果或者进一步处理接收到的结果以提供请求的功能或服务。为此,例如,可使用云计算、分布式计算或客户端-服务器计算技术。
根据本公开的各种实施例,第一数据和第二数据可包括图像数据,并且第一处理器可被配置为基于第二存储器确定所述多个第二数据中的至少一些第二数据的位置、大小、形状或数量中的至少一个。
根据本公开的各种实施例,所述多个第二数据中的至少一些第二数据可包括第一部分数据、第二部分数据和第三部分数据,并且第二处理器被配置为在处理第一部分数据之后处理第二部分数据,并且DMA控制模块可被配置为在第二处理器处理第二部分数据的同时,将处理的第一部分数据发送到第一存储器并且从第一存储器接收第三部分数据。
根据本公开的各种实施例,所述多个第二数据中的至少一些第二数据可被划分成块,其中,每个块具有相等的大小。
根据本公开的各种实施例,第二处理器可被配置为接收处理数据,其中,所述处理数据包括用于设置所述多个第二数据中的至少一些第二数据的数据和用于设置针对所述多个第二数据的至少一些第二数据的处理的数据,并且所述处理数据可包括以下项或以下项的组合:所述多个第二数据中的至少一些第二数据的位置和大小、针对所述多个第二数据中的至少一些第二数据的处理的重叠、非处理区域、处理顺序、处理位置。
根据本公开的各种实施例,第二处理器可被配置为通过使用处理命令和处理数据处理所述多个第二数据中的至少一些第二数据并且控制DMA控制模块。
根据本公开的各种实施例,所述多个第二数据中的至少一些第二数据可被调整为保持具有指定大小并且可由第二处理器处理。
根据本公开的各种实施例,DMA控制模块可包括包含第一通道和第二通道的多个通道,并且可被配置为当完成通过第一通道发送第一部分数据时,在通过第二通道发送第二部分数据期间通过第一通道发送第三部分数据。
根据本公开的各种实施例,第二处理器可被配置为将确定第三部分数据的确定数据发送到DMA控制模块,并且DMA控制模块可被配置为从第一存储器接收与所述确定数据相应的所述多个第二数据中的至少一些第二数据。
根据本公开的各种实施例,第二处理器还可包括:高速缓存,存储用于标识第二处理器针对所述多个第二数据中的至少一些第二数据的处理的处理标识以及处理数据。
根据本公开的各种实施例,处理命令可用规定第一处理器与第二处理器之间的数据发送和接收的处理命令算法来实现,并且处理命令算法可包括与以下项中的至少一项相应的参数:针对所述多个第二数据中的至少一些第二数据的处理、该处理的调整、与第一存储器的一部分相应的第一存储器地址、或与第二存储器的一部分相应的第二存储器地址。
根据本公开的各种实施例,可基于第一处理器确定第一存储器地址和第二存储器地址,并且第一处理器可被配置为基于第二处理器将第一存储器地址和第二存储器地址转换为与第二处理器的操作环境相应的地址。
根据本公开的各种实施例,第一处理器可被配置为产生用于传输处理命令的包并且将该包发送到第二处理器,并且该包可包括用于标识第二处理器针对所述多个第二数据的至少一部分的处理的处理标识、用于标识该包的包标识、以及关于所述参数的数据。
根据本公开的各种实施例,第一处理器可被配置为基于先进先出(FIFO)算法将该包发送到第二处理器。
根据本公开的各种实施例,第二处理器可被配置为基于该包的接收来处理所述多个第二数据中的至少一些第二数据。
根据本公开的各种实施例,第二处理器可被配置为将与所述多个第二数据的处理状态有关的信息发送到第一处理器。
图2是根据本公开的各种实施例的电子装置201的框图。电子装置201可形成图1中示出的整个电子装置101或图1中示出的电子装置101的一部分。电子装置201可包括一个或更多个处理器(例如,应用处理器(AP))210、通信模块220、用户识别模块(SIM)224、存储器230、传感器模块240、输入装置250、显示器260、接口270、音频模块280、相机模块291、电力管理模块295、电池296、指示器297和电机298。处理器210通过驱动操作系统(OS)或应用程序来控制连接到处理器210的多个硬件组件或软件组件并且执行针对各种数据的处理和操作。处理器210可用例如片上系统(SoC)来实现。根据本公开的实施例,服务器210可包括图形处理单元(GPU)和/或图像信号处理器。处理器210可包括图2中示出的元件中的至少一些元件(例如,蜂窝模块221)。处理器210将从其他元件(例如,非易失性存储器)中的至少一个接收到的指令或数据加载到易失性存储器中以处理所述指令或数据,并且将结果数据存储在非易失性存储器中。
通信模块220可具有与通信接口170相同或相似的配置。通信模块220可包括例如蜂窝模块221、WiFi模块223、蓝牙(BT)模块225、GNSS模块227、NFC模块228和射频(RF)模块229。蜂窝模块221可通过通信网络提供例如语音呼叫、视频呼叫、文本服务或互联网服务。根据本公开的实施例,蜂窝模块221可通过使用SIM 224(例如,SIM卡)来识别和认证通信网络中的电子装置201。根据本公开的实施例,蜂窝模块221可执行可由处理器210提供的功能中的至少一个功能。根据本公开的实施例,蜂窝模块221可包括通信处理器(CP)。根据一些实施例,蜂窝模块221、WiFi模块223、BT模块225、GNSS模块227和NFC模块228中的至少一些(例如,两个或更多个)可被包括在一个集成芯片(IC)或IC封装中。RF模块229可例如发送和接收通信信号(例如,RF信号)。RF模块229可包括收发器、功率放大模块(PAM)、频率滤波器、低噪声放大器(LNA)或天线。根据本公开的另一实施例,蜂窝模块221、WiFi模块223、BT模块225、GNSS模块227或NFC模块228中的至少一个可通过单独的RF模块发送和接收RF信号。SIM224可例如包括包含SIM或嵌入式SIM的卡,并且可包括唯一标识信息(例如,集成电路卡标识符(ICCID)或用户信息(例如,国际移动用户标识码(IMSI))。
存储器230(例如,存储器130)可例如包括内部存储器232和/或外部存储器234。内部存储器232可例如包括易失性存储器(例如,动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)等)或非易失性存储器(例如,一次性可编程只读存储器(OTPROM)、可编程ROM(PROM))、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩模ROM、闪速ROM、闪存和固态驱动器(SSD)等)中的至少一个。外部存储器234还可包括闪存驱动器,例如,紧凑型闪存(CF)、安全数字(SD)、微型SD、迷你SD、极限数字(xD)、多媒体卡(MMC)或记忆棒。外部存储器234可通过各种接口在功能上或物理上与电子装置201连接。
传感器模块240测量物理量或感测电子装置201的操作状态,以将测量的或感测的信息转换为电信号。传感器模块240可例如包括以下项中的至少一项:手势传感器240A、陀螺仪传感器240B、压力传感器240C、磁性传感器240D、加速度传感器240E、握持传感器240F、接近传感器240G、颜色传感器240H(例如,红色/绿色/蓝色(RGB)传感器)、生物传感器240I、温度/湿度传感器240J、照度传感器240K和紫外(UV)传感器240M。另外地或可选地,传感器模块240可包括电子鼻传感器(未示出)、肌电图(EMG)传感器(未示出)、脑电图(EEG)传感器(未示出)、心电图(ECG)传感器(未示出)、红外(IR)传感器、虹膜传感器和/或指纹传感器。传感器模块240还可包括用于控制传感器模块240中包括的至少一个传感器的控制电路。在一些实施例中,电子装置201还可包括作为处理器210的一部分的或与处理器210分离的被配置为控制传感器模块240的处理器,以在处理器210的睡眠状态期间控制传感器模块240。
输入装置250可包括例如触摸面板252、(数字)笔传感器254、键256或超声输入装置258。触摸面板252可使用电容型、电阻型、IR型或超声波型中的至少一种。触摸面板252还可包括控制电路。触摸面板252还可包括向用户提供触觉反应的触觉层。(数字)笔传感器254可包括识别片,其中,所述识别片是触摸面板252的一部分或单独的识别片。键256还可包括物理按钮、光学键或键区。超声输入装置258通过麦克风(例如,麦克风288)感测由输入工具产生的超声波,并且检查与感测的超声波相应的数据。
显示器260(例如,显示器160)可包括面板262、全息图装置264、投影仪266和/或用于控制它们的控制电路。面板262可被实现为柔性的、透明的或可穿戴的。面板262可与触摸面板252被配置在一个模块中。根据本公开的实施例,面板262可包括能够测量由于用户的触摸而产生的压力的强度的压力传感器(或“力传感器”)。压力传感器可与触摸面板252一体地被实现,或者可被实现为与触摸面板252分离的一个或更多个传感器。全息图装置264可通过使用光的干涉在空中显示立体图像。投影仪266可通过光的投射将图像显示在屏幕上。屏幕可位于电子装置201的内部或外部。接口270可包括HDMI 272、USB 274、光学接口276或D-超小型(D-sub)278。接口270可被包括在图1中示出的通信接口170中。另外地或可选地,接口270可包括移动高清链路(MHL)接口、SD/多媒体卡(MMC)接口或红外数据协会(IrDA)接口。
音频模块280可双向地转换声音和电信号。音频模块280中的至少一个元件可被包括在图1中示出的输入/输出接口145中。音频模块280可处理通过扬声器282、受话器284、耳机286或麦克风288输入或输出的声音信息。相机模块291可以是例如能够捕获静止图像或运动图像的装置,并且根据实施例,相机模块291可包括一个或更多个图像传感器(例如,前置传感器或后置传感器)、镜头、图像信号处理器(ISP)或闪光灯(例如,LED、氙灯等)。电力管理模块295可管理电子装置201的电力。根据本公开的实施例,电力管理模块295可包括电力管理集成电路(PMIC)、充电器IC或电池电量计。PMIC可具有有线和/或无线充电方案。无线充电方案包括磁共振型、磁感应型和电磁型,并且对于无线充电,还可包括附加电路,例如,线圈回路、谐振电路或整流器。电池量表可测量电池296的剩余电量或在充电期间电池296的电压、电流或温度。电池296可包括例如可充电电池和/或太阳能电池。
指示器297显示电子装置201或电子装置201的一部分(例如,处理器210)的特定状态,例如,启动状态、消息状态或充电状态。电机298可将电信号转换为机械振动或者产生振动或触觉效果。电子装置201可包括根据诸如数字多媒体广播(DMB)、数字视频广播(DVB)或mediaFloTM的标准来处理媒体数据的用于支持移动TV的装置(例如,GPU)。在此描述的前述元件中的每个元件可用一个或更多个组件来配置,其中,所述一个或更多个组件的名称可随着电子装置的类型而变化。在本公开的各种实施例中,电子装置(例如,电子装置201)的一些组件可被省略,或者还可包括其他元件,并且组件中的一些组件可被耦接以形成一个实体并且相同地执行被耦接之前的组件的功能。
图3是根据本公开的各种实施例的编程模块的框图。根据本公开的实施例,编程模块310(例如,程序140)可包括用于控制与电子装置(例如,电子装置101)相关联的资源的OS和/或在OS上执行的各种应用(例如,应用程序147)。OS可包括AndroidTM、iOSTM、WindowsTM、SymbianTM、TizenTM或BadaTM。参照图3,编程模块310可包括内核320(例如,内核141)、中间件330(例如,中间件143)、应用编程接口(API)360(例如,API 145)和/或应用370(例如,应用程序147)。编程模块310的至少一部分可被预先加载在电子装置上,或者可从外部装置(例如,电子装置102或电子装置104、或服务器106)下载。
内核320可包括系统资源管理器321和/或装置驱动器323。系统资源管理器321可执行系统资源的控制、分配、检索等。根据本公开的实施例,系统资源管理器321可包括进程管理单元、存储器管理单元或文件系统管理单元。装置驱动器323可包括例如显示驱动器、相机驱动器、蓝牙驱动器、共享存储器驱动器、USB驱动器、键区驱动器、WiFi驱动器、音频驱动器或进程间通信(IPC)驱动器。中间件330可包括提供应用370共同需要的功能或者通过API 360向应用370提供各种功能以允许应用370使用电子装置中的有限系统资源。根据实施例,中间件330可包括以下项中的至少一项:运行时库335、应用管理器341、窗口管理器342、多媒体管理器343、资源管理器344、电力管理器345、数据库管理器346、包管理器347、连接管理器348、通知管理器349、位置管理器350、图形管理器351和安全管理器352。
运行时库335可包括库模块,其中,编译器在应用370被执行时使用该库模块通过编程语言添加新功能。运行时库335执行输入/输出管理、存储器管理或计算功能处理。应用管理器341可管理应用370的生命周期。窗口管理器342可管理在屏幕中使用的图形用户界面(GUI)资源。多媒体管理器343可识别播放媒体文件所需的格式,并通过使用适合于相应格式的编解码器对媒体文件执行编码或解码。资源管理器344可管理应用370的源代码或存储器空间。电力管理器345可管理电池或电力并且提供电子装置的操作所需的电力信息。根据本公开的实施例,电力管理器345可与基本输入/输出系统(BIOS)一起操作。数据库管理器346可产生、搜索或改变用于应用370中的至少一个应用的数据库。包管理器347可管理以包文件格式分布的应用的安装或更新。
连接管理器348可管理无线连接。通知管理器349可提供事件,例如,到达的消息、约定、接近通知等。位置管理器350可管理关于电子装置的位置信息。图形管理器351可管理例如将向用户提供的图形效果或与图形效果有关的用户界面。安全管理器352可提供例如系统安全或用户认证。根据本公开的实施例,中间件330还可包括用于管理电子装置的语音或视频呼叫功能的电话管理器或者形成上述组件的功能的组合的中间件模块。根据本公开的实施例,中间件330可提供每种类型的OS专用的模块。此外,中间件330可删除一些现有的元件或者动态地添加新元件。API 360可被设置为根据OS具有不同配置的一组API编程函数。例如,在Android或iOS的情况下,可为每个平台提供一个API集,并且在Tizen的情况下,可提供两个或更多个API集。
应用370可包括能够提供功能的一个或更多个应用,例如,主页应用371、拨号器应用372、短消息服务/多媒体消息服务(SMS/MMS)应用373、即时消息(IM)应用374、浏览器应用375、相机应用376、闹钟应用377、联系人应用378、语音拨号应用379、电子邮件应用380、日历应用381、媒体播放器应用382、相簿应用383、时钟应用384、健康保健应用(例如,用于测量运动量、血糖等的应用)、或环境信息提供应用(例如,用于提供气压、湿度或温度信息等的应用)。根据实施例,应用370可包括支持电子装置与外部电子装置之间的信息交换的信息交换应用。信息交换应用可包括例如用于将特定信息传输到外部电子装置的通知转发应用或用于管理外部电子装置的装置管理应用。例如,通知转发应用可将在电子装置的另一应用中产生的通知信息传输到外部电子装置,或者可从外部电子装置接收通知信息并且将通知信息提供给用户。装置管理应用可管理(例如,安装、去除或更新)与电子装置通信的外部装置的功能(例如,打开/关闭外部电子装置本身(或外部电子装置的一部分)或对显示器的亮度(或分辨率)进行控制)、由运行在外部电子装置中的应用提供的或由外部电子装置提供的服务(例如,呼叫服务或消息服务)。根据实施例,应用370可包括根据外部电子装置的属性指定的应用(例如,移动医疗设备的装置健康保健应用)。根据实施例,应用370可包括从外部电子装置接收的应用。编程模块310的至少一部分可通过软件、固件、硬件(例如,处理器210)或它们中的两个或更多个的组合被实现(例如,被执行),并且可包括例如用于执行一个或更多个功能的模块、程序、例程、指令集或进程。
在此使用的术语“模块”可表示例如包括硬件、软件和固件中的一个或两个或更多个的组合的单元,并且可与诸如逻辑、逻辑块、部件或电路的术语互换使用。“模块”可以是整体配置的部件、执行一个或更多个功能的最小单元或最小单元的一部分。“模块”可被机械地或电子地实现,并且可包括专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、以及执行已知的或将被开发的特定操作的可编程逻辑器件。根据各种实施例的设备的至少一部分(例如,设备的模块或功能)或方法的至少一部分(例如,操作)可以以编程模块的形式利用存储在计算机可读存储介质(例如,存储器130)中的指令来实现。当所述指令被处理器(例如,处理器120)执行时,处理器可执行与所述指令相应的功能。计算机可读记录介质包括硬盘、软盘或磁介质(例如,磁带、光学介质(例如,光盘只读存储器(CD-ROM)或数字通用盘(DVD)、磁光介质(例如,软光盘)、嵌入式存储器等。所述指令可包括由编译器产生的代码或者可由解释器执行的代码。根据本公开的各种实施例的模块或编程模块可包括前述元件中的一个或更多个,省略前述元件中的一些元件,或者还包括附加的其他元件。由根据各种实施例的模块、程序或另一组件执行的操作可被顺序地、并行地、重复地或启发式地执行,或者,所述操作中的一个或更多个操作可以以不同的顺序被执行或者被省略,或者一个或更多个其他操作可被添加。
图4是用于描述根据实施例的主机环境和目标环境的框图。
如图4所示,在主机环境410和目标环境420中,电子装置101可包括第一存储器411、第一处理器412、第二存储器421、第二处理器422、直接存储器访问(DMA)控制器423和第二存储器421。第一存储器411、第一处理器412、第二存储器421、第二处理器422和DMA控制器423可通过总线430互连。第二存储器421可被连接到第二处理器422和DMA控制器423。
第一存储器411和第一处理器412可属于主机环境410、并且第一存储器421、DMA控制器423和第二处理器422可属于目标环境420。
第一存储器411可以是由第一处理器412直接控制或由DMA控制器423进行DMA控制的存储装置。第一存储器411可以是外部存储器。程序或数据可被存储在第一存储器411中,并且可根据需要从第一存储器411被发送到第二存储器421。第一存储器411可比第二存储器421具有更大的存储容量以及更低的数据存储速度和数据读出速度。例如,第一存储器411可具有第一数据访问速度。第一数据访问速度可低于第二存储器421的数据访问速度,即,第二数据访问速度。第一存储器411可具有第一存储容量。第一存储容量可大于第二存储器421的存储容量,即,第二存储容量。第一存储器411可被称为辅助存储器装置。
第二存储器421可被第一处理器421或第二处理器422直接控制。第二存储器421可被DMA控制器423进行DMA控制。第二存储器421可关注速度而不是存储容量。因此,第二存储器421可比第一存储器411具有更小的存储容量以及更高的数据存储速度和数据读出速度。例如,第二存储器421可具有第二数据访问速度和第二存储容量。第二数据访问速度可高于第一数据访问速度。第二存储容量可小于第一存储容量。第二存储器421可被称为主存储器装置。
第一处理器412可读取存储在第一存储器411中的数据,基于存储的指令计算读取的数据,并且将计算出的数据存储在第一存储器411中。第一处理器412可将执行特定操作的命令提供给第二处理器422。第一处理器可以是CPU。
第二处理器422可读取存储在第二存储器421中的数据,基于存储的指令计算读取的数据,并且将计算出的数据存储在第二存储器421中。第二处理器422可通过DMA控制器423将数据存储在第一存储器411中或者通过DMA控制器423从第一存储器411读取数据。第二处理器422可以是数字信号处理器(DSP)。第二处理器422可以是负责数字信号处理的处理器。第一处理器412可以是通用处理器,而第二处理器422可以是能够执行高速计算并且被紧致化的数字信号处理专用处理器。第二处理器422可执行基本功能,诸如,滤波、傅立叶变换、相关函数的计算、编码、调制/解调、微分、积分和自适应信号处理。当第二处理器422处于目标环境420中时,第二处理器422可从主机环境410中的第一处理器412接收用于执行特定操作的命令,并且根据该命令执行特定操作。
DMA控制器423可在第一存储器411与第二存储器421之间传输数据。DMA控制器423可在无需第一处理器412或第二处理器422的干预的情况下实现第一存储器411与第二存储器421之间的数据移动。
总线430可以是数据在第一存储器411、第二处理器412、DMA控制器423和第二处理器422中移动的路径。总线430可与图1的电子装置101的总线110相应。图4的总线430可用作基于DMA的数据移动路径。
图5是用于描述根据实施例的图像和输入图块的概念的示例性示图。
电子装置101可通过使用第一处理器412或第二处理器422进行图像处理来改变图像的特性。例如,图像处理的类型可包括模糊、锐化、角点检测等。图像处理可包括由第一处理器412或第二处理器422对图像执行的模糊、锐化和角点检测。更具体地,在图像处理中,第一处理器412或第二处理器422可将与图像处理的类型相应的滤波器或功能应用于图像的像素。在此,处理或数据处理可被理解为图像处理或针对图像数据的图像处理。
可由第一处理器412或第二处理器422以图块为单位执行图像处理。可将图像的数据划分成具有小的大小的多个图块数据,并且可随着顺序地处理所述多个图块数据而处理图像的数据。可随着处理所述多个图块数据中的至少一些图块数据而处理图像的数据。
例如,参照图5,可由第一处理器412或第二处理器422将图像500划分成多个图块510。第一处理器412或第二处理器422可从多个图块510中选择一些图块或全部图块并且处理选择的图块520。
第一处理器412或第二处理器422可将图像500划分成多个图块510以处理存储在第一存储器411中的图像500。每个图块510可以是图像500的为了针对图像500的图像处理而划分出的特定部分。图像500可包括多个像素。多个图块510中的每个图块可包括单个像素或多个像素。多个图块510中的每个图块是图像处理的单位,并且可由第一处理器412或第二处理器422对每个图块执行图像处理。根据用于划分图像500的方法,多个图块510可具有各种形式。在图5中,图像500可被划分成总共6×4=24个矩形图块510。
第一处理器412或第二处理器422可从多个图块510中选择将要进行图像处理的目标。选择的至少一个图块510可被称为输入图块520。例如,第一处理器412或第二处理器422可选择多个图块510中的一些图块作为输入图块520。第一处理器412或第二处理器422可选择多个图块510中的全部图块作为输入图块520。可顺序地选择多个图块510中的单个图块或多个图块作为输入图块520。可根据处理数据确定从多个图块510之中被选择作为输入图块520的图块。稍后可描述处理数据。
按照这样,第一处理器412或第二处理器422将图像500划分成多个图块510并且多个图块510中的一些图块或全部图块被选择的处理可被理解为确定(计算)图块。第一处理器412或第二处理器422可计算图块以处理图像500。图块的计算可包括:确定多个图块510中的将作为输入图块520的每个图块多大(确定每个图块的大小),并且确定图像500的多个图块510中的哪个图块将被确定为具有该大小的图块(确定图块的位置)。通过图块的确定,第一处理器412或第二处理器422可确定将被处理的图块的位置、大小、形状或数量中的至少一个。
输入图块520可被DMA控制器423从第一存储器411读取并且被存储在第二存储器421中,并且输入图块520可被临时存储在第二存储器421中,直到被第二处理器422读取为止。在此,可由第一处理器412或第二处理器422控制DMA控制器423读取和存储输入图块520。第二存储器421比第一存储器411具有更小的存储容量和更高的访问速度,使得被临时存储在第二存储器421中的输入图块520的特性可取决于第二存储器421的特性。输入图块520的特性可包括输入图块520的位置、大小、形状和数量中的至少一个,并且第二存储器421的特性可包括第二存储器421的存储容量和访问速度。例如,第一处理器412或第二处理器422可能需要计算和确定每个输入图块520的大小以不超过第二存储器421的存储容量。
对于图块划分和选择,第一处理器412或第二处理器422必须知道图像500中的单位图块的大小和将被处理的图块的位置。第一处理器412或第二处理器422可基于单位图块的大小确定多个划分的图块510中的每个图块的面积和形式(图块划分),并且基于将被处理的图块的位置从多个图块510中确定输入图块520(图块选择)。第一处理器412或第二处理器422可执行包括图块划分和图块选择的图块计算。
在此,处理数据可包括单位图块的大小和将被处理的图块的位置。第一处理器412或第二处理器422可基于处理数据执行图块计算。可通过经由应用程序编程接口(API)从电子装置101的用户接收处理数据来实现将处理数据传输到第一处理器412或第二处理器422。
第一处理器412或第二处理器422可控制DMA控制器423将从图块计算确定的输入图块520从第一存储器411移动到第二存储器421。可由DMA控制器将从图块计算确定的输入图块520存储在第二存储器421中。此后,存储在第二存储器421中的输入图块520可从第二存储器421被读取,并且由第二处理器422处理。
第二处理器422可处理多个图块510中的一些图块或全部图块。当输入图块520被从第一存储器411存储到第二存储器421时,第二处理器422可从第二存储器421读取输入图块520,并且处理输入图块520,因此产生输出图块610。在此,输入图块520可包括多个图块510中的一些图块或全部图块。
可向第一处理器412或第二处理器422提供处理数据。处理数据可包括用于在图像500的多个图块510中设置输入图块520的第一处理数据和用于设置处理的第二处理数据。
用于设置输入图块520的第一处理数据可包括用于设置输入图块520的位置和大小。第一处理数据可包括关于将图块存储在存储器411中或从存储器411读取图块所需要的条件的信息。第一处理数据中的位置和大小可用于图块计算。更具体地,第一处理数据可包括从第一存储器411读取输入图块520或者将输出图块610存储在第一存储器411中所需要的位置和大小。
用于处理输入图块520的第二处理数据可包括输入图块520之间的重叠区域和非处理区域、以及输入图块520的处理顺序和处理位置。也就是说,第二处理数据可包括与输入图块520的处理有关的处理方法、处理类型(例如,模糊、锐化和角点检测)等。例如,第二处理数据可涉及从第一存储器411读取输入图块520的顺序、从第一存储器411存储输出图块610的顺序、或者将被应用于输入图块520的图像处理的类型。
用于设置输入图块520的位置可与将会作为输入图块520的多个图块510在第一存储器411中存在的位置相关联。例如,该位置可以是被选择作为输入图块520的多个图块510在第一存储器411中的地址。
用于设置输入图块520的大小可与输入图块520在第一存储器411中占据的空间相关联。例如,大小可包括分配给存储在第一存储器411的地址处的输入图块520的存储容量。
图6是用于描述根据实施例的输出图块的示例性示图。
包括在处理数据中的用于设置处理的第二处理数据可包括在第一图块510-1与第二图块510-2之间存在的重叠区域601和非处理区域。
用于设置处理的重叠区域可以是相邻图块之间的重叠部分。图像500可被划分成多个图块510。如图6(a)所示,图像500可包括输入图块520。
图像500可被划分,使得相邻图块彼此重叠。如图6(b)所示,作为相邻的划分图块510的第一图块510-1和第二图块510-2可包括它们之间的重叠区域601。
当第二处理器422处理任何一个输入图块520时,由于缺少相邻像素,无效区域边缘像素612-1可能无法处理。无效区域边缘像素612-1可被包括在接下来处理的图块中,并且下一输入图块520的位置和大小可被确定,使得无效区域边缘像素612-1被包括在下一输入图块520中。当无效区域边缘像素612-1被包括在下一输入图块520中时,可产生重叠区域601。用于设置处理的关于重叠的第二处理数据可指示或确定重叠区域601的存在/不存在或者相邻输入图块520之间的重叠区域601的面积。
用于设置处理的非处理区域可以是位于输出图块610的边缘处的像素的区域。如图6(c)所示,当第二处理器422处理输入图块520时,可产生输出图块610。输出图块610可包括处理的像素所在的有效区域611和未处理的像素所在的无效区域612。根据应用于输入图块520的图像处理的类型,3×3形式的滤波器620可被应用于输出图块610的有效区域611和无效区域612中的每个像素。第二处理器422可将滤波器620应用于位于有效区域611的边缘的有效区域边缘像素611-1以及相邻的无效区域612的像素。第二处理器422可将滤波器620应用于位于无效区域612的边缘的无效区域边缘像素612-1。这是因为应用了滤波器620的区域超出了图块的边界,因此不存在可与无效区域边缘像素612-1一起处理的相邻的像素。如上所述,输出图块610中的无效区域612的存在可以是用于考虑相邻图块510-1与510-2之间的重叠区域601的基础。
参照回图5,用于设置针对输入图块520的处理的第二处理数据可包括输入图块520的处理顺序和处理位置。
处理顺序可以是访问从图像500划分出的多个图块510中的全部图块或一些图块的顺序。访问可包括由DMA控制器423进行的DMA。也就是说,访问顺序可包括由DMA控制器423对存储在第一存储器411中的输入图块520的读取顺序以及由DMA控制器423对第一存储器411中的输出图块610的存储顺序。可通过第一处理器412或第二处理器422的计算选择多个图块510中的全部图块或一些图块作为输入图块520,并且可由DMA控制器423从第一存储器411一个接一个地或多个接多个地顺序地读取选择的输入图块520,并且可由第二处理器422处理读取的输入图块520,并且可由DMA控制器423将每个处理结果(输出图块610)存储在第一存储器511中。在这种情况下,处理顺序可涉及第一存储器411中的哪个输入图块520将被首先访问以及哪个输入图块520将被稍后访问。处理顺序还可涉及哪个输出图块610被首先存储在第一存储器411中以及哪个输出图块610将被稍后存储在第一存储器411中。
处理位置可表示存储器的关于将由第二处理器422应用于输入图块520的图像处理的功能存在的地址。该功能可取决于将被应用于输入图块520的图像处理的类型。因此,该功能的位置(即,该功能的存储器地址)可随着图像处理的类型而不同。更具体地,处理位置可以是存储在第一存储器411中的滤波器620的功能的地址。例如,当图像处理的类型是模糊时,第一存储器411的存储关于模糊的滤波器620的功能的地址可与处理位置相应。
处理数据可被存储在高速缓存中。第二处理器422可包括能够存储用于快速图像处理的有关数据的高速缓存。在高速缓存中,可存储用于识别将由第二处理器422执行的每个图像处理操作的处理标识。通过API从用户提供的处理数据可随着每个图像处理操作而变化。因此,处理数据可随着识别每个图像处理操作的处理标识而改变。
处理标识与处理数据一起可以以表的形式被存储在高速缓存中。处理标识可与处理数据相关联或与处理数据相匹配,其中,处理数据包括当前将被执行的图像处理操作所需要的输入图块520的处理顺序、输入图块520的处理位置、输入图块520的位置、输入图块520的大小或输入图块520之间的重叠中的至少一个。
例如,指示针对第一图像的第一图像处理操作的第一处理标识可与第一图像处理操作所需要的第一处理数据相关联或与第一图像处理操作所需要的第一处理数据相匹配。关联的或匹配的结果可被存储在高速缓存中。接下来,指示针对与第一图像不同的第二图像的第二图像处理操作的第二处理标识可与第二图像处理操作所需要的第二处理数据相关联或与第二图像处理操作所需要的第二处理数据相匹配,并且关联的或匹配的结果可被存储在高速缓存中。第二处理器422可终止通过第一图像处理操作对第一图像的处理,然后开始通过第二图像处理操作处理第二图像。
第一处理器412可将针对输入图块520执行图像处理的命令提供给第二处理器422。第一处理器412可将执行特定操作的命令提供给第二处理器422。第一处理器412可控制第二处理器422执行图像处理操作。一旦第一处理器412将处理命令提供给第二处理器422,第二处理器422就可通过DMA控制器423读取存储在第二存储器421中的输入图块520,并且针对读取的输入图块520执行图像处理。
处理命令可涉及关于从处理开始到处理结束由第二处理器422进行的图像处理的整体操作,其中,整体操作包括操作的多个方面。例如,整体操作可包括第一处理器412与第二处理器422之间的数据发送和接收。处理命令可包括图像处理的类型、将被处理的输入图块510、以及关于将被处理的输入图块510的存储器地址。处理命令还可涉及由第二处理器422对DMA控制器423的控制。处理命令可包括关于图像处理的调整的信息。调整可包括控制第二处理器422接收具有指定大小的输入图块520。
第二处理器422可针对基于处理数据确定的输入图块520执行图像处理。在第二处理器422处理图像的同时,输入图块520可被准备。在输入图块520的准备之后或者至少与输入图块520的准备同时,第二处理器422可完成针对输入图块520的图像处理。在针对输入图块520的图像处理完成或输出图块610产生之后,或者至少与针对输入图块520的图像处理完成或输出图块610产生同时,第二处理器422可接收下一输入图块520并且执行针对下一输入图块520的图像处理。
DMA控制器423可与第一存储器411、第二存储器421、第一处理器412和第二处理器422连接。DMA控制器423可控制第一存储器411和第二存储器421,使得关于输入图块520和输出图块610的数据在第一存储器411与第二存储器421之间被发送或被接收。DMA控制器423的发送和接收可通过第一处理器412和/或第二处理器422的控制被执行。
DMA控制器423可根据第一处理器411或第二处理器421的控制来读取输入图块520。DMA控制器423可接收由第一处理器411或第二处理器421计算出的输入图块520的条件以读取输入图块520。DMA控制器423可持续读取存储在第一存储器411中的图像500的与计算出的输入图块520的条件相应的一部分。DMA控制器423可将图像500的持续读取的部分发送到第二存储器421。DMA控制器423可将根据输入图块520产生的输出图块610从第二存储器421发送到第一存储器411。
因为对第二处理器422的第二存储器421的数据访问的速度高,所以输入图块520可被存储在与第二处理器422相邻的第二存储器421中。因此,对于第二处理器422,在第二存储器421中顺序地存储、读取和处理作为图像500的一部分的输入图块520可比从具有低数据访问速度的第一存储器411读取图像500并且一次性处理图像500更有效。
当需要处理仅图像500的特定部分时,不需要读取图像500或多个图块510中全部图块。在这种情况下,第二处理器422对存储在具有低数据访问速度的第一存储器411中的图像500执行处理可能是低效的。第二处理器422对多个图块510中的全部图块执行处理也可能是低效的。
另一方面,在电子装置101中,DMA控制器423可从第一存储器411读取与特定部分相应的输入图块520并且将该输入图块520存储在第二存储器421中,并且第二处理器422可针对存储在第二存储器421中的输入图块520执行图像处理。因此,第二处理器422可关注用于图像处理的操作。因此,作为整体,针对图像数据的处理速度可提高,并且处理时间可减少。
图7是用于描述根据实施例的第二处理器的图像处理的示例性示图,图8是根据实施例的图像处理的流程图。
在下文中,参照图7和图8,将描述第二处理器422的图像处理操作。
如图7(a)所示,图像500可被第一处理器412或第二处理器422划分成至少一个图块。在此,多个图块510可包括划分图像500所得到的图块,其中,图像500可被划分成多个图块510。
如图7(b)所示,多个图块510中的全部图块或一些图块可被第一处理器412或第二处理器422确定为输入图块520。确定的输入图块520可被DMA控制器423读取。第一处理器412或第二处理器422可基于处理数据确定(计算)输入图块520。第一处理器412或第二处理器422可控制DMA控制器423以与确定的(计算的)输入图块520相应的图块为单位从第一存储器411读取图像500或者将图像500存储在第二存储器421中。在第二处理器422以图块为单位处理图像500的同时,DMA控制器423可以持续地以图块为单位读取和存储图像500。
更具体地,在操作805,第二处理器422可接收处理数据。可由用户提供处理数据。第二处理器422对处理数据的接收可通过用户经由API将处理数据传输到第二处理器422来实现。处理数据可由第一处理器412接收,并且接收到的处理数据可被从第一处理器412发送到第二处理器422。
在操作810,第二处理器422可从第一处理器412接收处理命令。处理命令还可包括用于由第一处理器412对第二处理器422的控制的命令。更具体地,处理命令可还包括由第一处理器412命令第二处理器422执行图像处理顺序。
在操作815,第二处理器422可确定(计算)输入图块520的条件以选择输入图块520。如上所述,输入图块520的条件的确定(计算)可由第一处理器412执行。第二处理器422可基于处理数据确定输入图块520的位置和大小、以及重叠区域和/或非处理区域。输入图块520的条件可包括第一存储器411的地址和分配的存储容量。
在本操作中,第二处理器422可确定(计算)将被应用于输入图块520的图像处理的条件。第二处理器422可基于处理数据确定图像处理的类型,诸如,模糊、锐化和角点检测。图像处理的条件可包括第一存储器411的存储关于图像处理滤波器620的功能的地址。
在操作820,第二处理器422可一个接一个地或多个接多个地顺序地从第二处理器421接收输入图块520。可通过由DMA控制器423将接收到的输入图块520从第一存储器411预先存储在第二存储器421中来准备接收到的输入图块520。
如图7(c)所示,可由第二处理器422处理输入图块520。
更具体地,在操作825,第二处理器422可处理接收到的输入图块520并且产生输出图块610。
如图7(d)所示,输出图块610可通过DMA控制器423被存储在第一存储器411中。输出图块610可被存储在第一存储器411的缓冲器701中。
更具体地,在操作830,第二处理器422可将输出图块610存储在第二存储器421中。存储在第二存储器421中的输出图块610可被DMA控制器423移动到第一存储器并且存储在第一存储器411中。当输出图块610被移动到第一存储器411时,输出图块610可被存储在输入图块520曾经存在过的原始位置,其中,输入图块520被从第二存储器421传输到第二处理器422以进行图像处理。例如,与分配给输入图块520的存储容量一样多的输出图块610可被存储在第一存储器411的曾经存在过输入图块520的地址处。
此外,第二处理器422可将图像处理结果报告给第一处理器412。可在在操作825产生输出图块610之后或者在操作830存储输出图块610之前或之后报告图像处理结果。
可针对每个输入图块520重复执行图7(b)至图7(d)中所示的操作820和830(如从图7(d)至图7(b)由虚线所示)。当多个图块510中的全部图块是输入图块520时,可对多个图块510中的全部图块重复执行图像处理。当多个图块510中的一些图块是输入图块520时,可对多个图块510中的一些图块重复执行图像处理。
DMA控制器423可将输入图块520从第一存储器411存储到第二存储器421。输入图块520从第一存储器411到第二存储器421的存储可由第一处理器412或第一处理器412控制。DMA控制器423可从第一存储器411读取由第一处理器412或第二处理器422确定(计算)的输入图块520,并且将读取的输入图块520存储在第二存储器421中。DMA控制器423可将输出图块610从第二存储器421传输到第一存储器411。在图像处理之后,第二处理器422可将输出图块610存储在第二存储器421中。DMA控制器423可读取存储在第二存储器421中的输出图块610,并且将读取的输出图块610再次存储在第一存储器411中。
当第二处理器422处理输入图块520时,DMA控制器423可重复地执行输入图块520从第一存储器411到第二存储器421的移动。因此,输入图块520可始终被准备在第二存储器421中以进行图像处理。
当第二处理器422产生输出图块610并且将输出图块610存储在第二存储器421中时,DMA控制器423可重复地执行将存储的输出图块610从存储器处理器421移动到第一存储器411。因此,输入图块520可被准备在第二存储器421中,并且同时,输出图块610可被存储在第一存储器411中。
可同时执行在操作820的在第二存储器421中准备输入图块520、在操作825的图像处理、以及在操作830的存储输出图块610。由于操作820和830的重复,电子装置101可并行地或同时执行当前输入图块处理、当前输出图块存储和下一输入图块准备。
第二处理器422可调整将被处理的输入图块520的大小。第二处理器422可调整下一输入图块520的大小,使得下一输入图块520的大小与当前处理的当前输入图块520的大小相同。
输入图块520的大小或形状可被改变以与处理数据相应。假设第二处理器422当前处理具有第一大小的输入图块520。然后,当输入图块520被改变为与第一大小不同的第二大小时,具有第二大小的输入图块520可被DMA控制器423存储在第二存储器421中。在这种情况下,第二处理器422仍然可读取与第一大小相应的输入图块520。第二处理器422可控制DMA控制器423从第一存储器411读取与第一大小相应的输入图块520。按照这种方式,第二处理器422可在调整输入图块520的大小的情况下处理输入图块520。
图9是用于描述根据实施例的同时执行图块发送/接收和图块处理的处理的示例性示图。
电子装置101可同时执行由DMA控制器423进行的数据访问和由第二处理器422进行的图块处理。如图9所示,随着时间的推移,第二处理器处理操作900和DMA控制操作910可被同时执行。第二处理器处理操作900可表示由第二处理器422针对输入图块520执行的图像处理。DMA控制操作910可包括将输入图块520发送到第二存储器421以及将输入图块520传输到第二处理器422的操作911a、912a和913a。DMA控制操作910可包括接收存储在第二存储器421中的输出图块610以及将输出图块610存储在第一存储器411的操作911b、912b和913b。
首先,在操作911a,DMA控制器423可将第一输入图块发送到第二存储器421。第二处理器422可随后从第二存储器421读取第一输入图块,其中,第二处理器422可随后执行处理第一输入图块的第一处理901。第二处理器422可通过处理第一输入图块来产生第一输出图块。第二处理器422可将第一输出图块存储在第二存储器421中。
在操作912a,DMA控制器423可在第一处理901期间将第二输入图块发送到第二存储器421。
当第一处理901结束时,第二处理器422可开始处理第二输入图块的第二处理902。第二处理器422可通过处理第二输入图块来产生第二输出图块。第二处理器422可将第二输出图块存储在第二存储器421中。
在操作911b,DMA控制器423可在第二处理902期间从第二存储器421接收第一输出图块。
在操作913a,DMA控制器423可在第二处理902期间将第三输入图块发送到第二存储器421。
当第二处理902结束时,第二处理器422可开始处理第三输入图块的第三处理903。第二处理器422可通过处理第三输入图块来产生第三输出图块。第二处理器422可将第三输出图块存储在第二存储器421中。
在操作912b,DMA控制器423可在第三处理903期间从第二存储器421接收第二输出图块。
DMA控制器423不仅可在由第二处理器422进行图像处理期间发送图块,而且可在处理开始之前或者在处理完成之后发送图块。在操作913b,DMA控制器423可在第三处理903完成之后接收第三输出图块。
DMA控制器423的第二输入图块发送操作912a可在第二处理器901的第一处理901期间被执行。DMA控制器423的第一输出图块接收操作911b和第三输入图块发送操作913a可在第二处理器422的第二处理902期间被执行。DMA控制器423的第二输出图块发送操作912b可在第二处理器422的第三处理903期间被执行。因此,各个处理操作901、902和903以及若干图块发送和接收操作911b、912a、912b和913a可同时发生。也就是说,DMA控制器423的操作可与第二处理器422的操作部分地或完全地重叠。
为了使第二处理器处理操作900和DMA控制操作910被同时执行,DMA控制器423可包括多个通道。更具体地,可通过多个通道执行由DMA控制器423对输入图块520和输出图块610的发送和接收。例如,假设DMA控制器423通过第一通道和第二通道将第一输入图块至第三输入图块发送到第二存储器421。第一输入图块和第二输入图块可分别通过第一通道和第二通道被发送到第二存储器421。在此,当首先完成了通过第一通道对第一输入图块的发送时,即使在通过第二通道对第二输入图块的发送期间,DMA控制器423也可产生针对执行图像处理操作的第二处理器422的中断。该中断可指示通过第一通道的第一输入图块的发送完成被通知给第二处理器422,并且是否通过第一通道发送第三输入图块被询问。响应于该中断,第二处理器422可控制DMA控制器423开始通过第一通道发送第三输入图块。
图10是用于描述根据实施例的用于在处理器之间实现图像处理的算法的示例性示图。
在存在主机处理器和目标处理器的主机-目标环境中,主机处理器可命令目标处理器执行特定任务。主机环境和目标环境可基于不同的OS被操作。当主机处理器和目标处理器在不同的OS下进行操作时,目标处理器必须能够识别主机处理器的命令。因此,用于在主机-目标环境中实现任意任务的算法可包括使目标处理器能够识别主机处理器的命令的转译。
根据本公开的具有主机-目标环境的电子装置101可包括用作主机处理器的第一处理器412和用作目标处理器的第二处理器422。第一处理器412可传输处理命令以促使第二处理器422执行图像处理任务。当第一处理器412和第二处理器422基于不同的OS进行操作时,用于实现图像处理任务的算法可包括使第二处理器422能够识别第一处理器412的处理命令的转译。
图10中所示的是规定第一处理器412与第二处理器422之间的图像处理任务的算法的示例。这样的图像处理任务算法可用编程语言来表示。图像处理任务算法可包括:命令第一处理器412通过第二处理器422执行图像处理的处理命令算法1010、以及将来自第二处理器422的图像处理结果报告给第一处理器412的处理结果报告算法1020。
处理命令算法1010可包括参数,其中,参数包含关于处理操作、存储器访问地址和处理操作调整的值。
关于处理操作的值可指示第二处理器422必须执行的图像处理。存储器访问地址可指示第一存储器411的存储将由第二处理器422处理的输入图块520的地址。存储器访问地址可以是通过DMA进行存储器访问所需的地址。关于处理操作调整的值可指示输入图块520的改变(诸如,使输入图块520的大小相等)或将被执行的图像处理的类型的改变。
参数中的存储器访问地址可以是可由主机环境中的第一处理器412识别的主机虚拟地址。主机虚拟地址必须被转译为可由目标环境中的第二处理器422识别的目标虚拟地址。处理命令算法1010可包括虚拟地址的转译。
处理命令算法1010可包括形成传输参数的包。包的头部可包括标识将被应用于输入图块520的图像处理的处理标识和指示包的独有特性的包标识。包的数据部分可包括关于参数的数据。
处理命令算法1010可包括将包从第一处理器412传输到第二处理器422的先进先出(FIFO)算法。在处理命令算法1010中,可使包入队到处理命令队列1001。可通过处理命令队列1001的后部输入包。可使包从处理命令队列1001出队。可通过处理命令队列1001的前部输出包。
第二处理器422可对传输的包进行解码,并且产生处理操作、存储器访问地址、处理操作调整以及与处理操作、存储器访问地址、处理操作调整有关的数据。第二处理器422可从处理数据提取与产生的数据相应的数据,并且基于提取的数据来处理输入图块520。
例如,在图6(b)中,假设第一处理器412将包括针对第二图块510-2的图像处理(例如,模糊)的处理命令传输到第二处理器422。处理命令算法1010可包括第二处理器422对第二图块510-2执行图像处理(例如,模糊)的操作。第二处理器422可根据处理命令对第二图块510-2执行模糊。
处理结果报告算法1020可包括第二处理器422将图像处理结果报告给第一处理器412的操作。图像处理结果可涉及包括处理或未处理输入图块520的处理状态。
处理结果报告算法1020可包括对处理结果进行打包。处理结果报告算法1020可包括将处理结果包从第二处理器422传输到第一处理器412的FIFO算法。
可将处理结果包入队到处理命令队列1002。可通过处理结果队列1002的后部输入处理结果包。可将处理结果包从处理结果队列1002出队。可通过处理结果队列1002的前部输出处理结果包。
图11是示出根据实施例的电子装置101的图像处理方法的流程图。
在操作1101,第二处理器422可接收处理数据。可由用户通过API来提供处理数据。可由第一处理器412接收处理数据。
在操作1103,第一处理器412可命令第二处理器422执行图像处理。第一处理器412可命令第二处理器422基于用处理命令算法1010和处理结果报告算法1020实现的处理命令来执行图像处理。
在操作1105,第二处理器422可确定(计算)输入图块520。输入图块520的确定可包括确定与处理数据相应的输入图块520的位置和大小。输入图块520的位置可表示输入图块520的第一存储器411的地址,并且输入图块520的大小可表示将被处理的输入图块520的容量。在当前操作中,输入图块520的确定可包括对应用于输入图块520的图像处理类型的确定。第二处理器422可确定用于与处理数据相应的图像处理的滤波器620。第一处理器412也可接收处理数据,因此对输入图块520和用于图像处理的滤波器620的确定也可由第一处理器412执行。
在操作1107,第二处理器422可将对于传输与确定的(计算的)输入图块的520的位置和大小相应的输入图块520的请求发送到DMA控制器423。第二处理器422可将对于读取将被应用于输入图块520的图像处理功能的请求发送到DMA控制器423。第二处理器422可将读取输入图块520和图像处理功能所需的数据发送到DMA控制器423。读取输入图块520所需的数据可包括关于计算的输入图块520的第一存储器411的地址(位置)和容量(大小)的数据。第一处理器412可确定输入图块520,因此对于传输输入图块520的请求也可由第一处理器412发送到DMA控制器523。
在操作1109,DMA控制器423可从第二处理器422接收对于传输输入图块520的请求,并且从第一存储器411读取计算的输入图块520。DMA控制器423可读取与从第二处理器422接收到的存储器地址和容量相应的输入图块520。在操作1110,DMA控制器423可将读取的输入图块520存储在第二存储器421中。
在操作1111,第二处理器422可从第二处理器421读取输入图块520。第二处理器422可直接访问第二存储器421并且接收输入图块520。
在操作1113,第二处理器422可处理输入图块520并且产生输出图块610。更具体地,第二处理器422可将在操作1105确定的关于图像处理功能的滤波器620应用于输入图块520。
在操作1115,第二处理器422可将输出图块610传输到第二存储器421。第二处理器422可直接访问第二存储器421以将输入图块520传输到第二存储器421。
在操作1117,第二处理器422可将输入图块520的图像处理结果报告给第一处理器412。图像处理结果可包括针对输入图块520的图像处理是否成功。
在操作1119,可将输出图块610从第二存储器421移动到第一存储器411并且将输出图块610存储在第一存储器411中。在操作1120,DMA控制器423可从第二存储器421读取输出图块610,并且将输出图块610存储在第一存储器411中。
在操作1121,可由DMA控制器423将输出图块610存储在第一存储器411中。
根据本公开的各种实施例的电子装置的图像处理方法包括:以指定速度将第一数据存储在第一存储器中;由与第一存储器连接的第一处理器将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;以高于所述指定速度的速度存储所述多个第二数据中的至少一些第二数据;由与第二存储器连接的第二处理器处理所述多个第二数据中的至少一些第二数据;并且由与第二处理器连接的DMA控制模块在第一存储器与第二存储器之间发送和接收数据,其中,DMA控制模块被配置为:至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分出的较小大小的所述多个第二数据中的至少一些第二数据;将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且将由第二处理器使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。
根据本公开的各种实施例,第一数据和第二数据可包括图像数据,并且第一处理器可被配置为基于第二存储器确定所述多个第二数据中的至少一些第二数据的位置、大小、形状或数量中的至少一个。
根据本公开的各种实施例,所述多个第二数据中的至少一些第二数据可包括第一部分数据、第二部分数据和第三部分数据,并且第二处理器被配置为在处理第一部分数据之后处理第二部分数据,并且DMA控制模块可被配置为在第二处理器处理第二部分数据的同时,将处理的第一部分数据发送到第一存储器并且从第二存储器接收第三部分数据。
根据本公开的各种实施例,在其上记录有指令的存储介质中,其中,所述指令当被至少一个处理器执行时促使所述至少一个处理器执行至少一个操作,其中,所述至少一个操作包括:以指定速度将第一数据存储在第一存储器中;由与第一存储器连接的第一处理器将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;以高于所述指定速度的速度存储所述多个第二数据中的至少一些第二数据;由与第二存储器连接的第二处理器处理所述多个第二数据中的至少一些第二数据;并且由与第二处理器连接的DMA控制模块在第一存储器与第二存储器之间发送和接收数据,其中,DMA控制模块被配置为:至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分出的较小大小的所述多个第二数据中的至少一些第二数据;将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且将由第二处理器使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。
在此公开的实施例已经被提供用于描述和理解公开的技术问题,并不旨在限制本公开的范围。因此,应被解释为,本公开的范围包括基于本公开的技术精神的任何改变或其他各种实施例。

Claims (15)

1.一种电子装置,包括:
第一存储器,以指定速度存储第一数据;
第一处理器,与第一存储器连接,并且被配置为将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;
第二存储器,以高于所述指定速度的速度存储所述多个第二数据中的至少一些第二数据;
第二处理器,与第二存储器连接,并且被配置为处理所述多个第二数据中的至少一些第二数据;以及
直接存储器访问DMA控制模块,与第二处理器连接,并且被配置为在第一存储器与第二存储器之间发送和接收数据,
其中,DMA控制模块被配置为:
至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分出的较小大小的所述多个第二数据中的至少一些第二数据;
将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且
将由第二处理器使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。
2.如权利要求1所述的电子装置,其中,第一数据和第二数据包括图像数据,并且
第一处理器被配置为基于第二存储器确定所述多个第二数据中的至少一些第二数据的位置、大小、形状或数量中的至少一个。
3.如权利要求1所述的电子装置,其中,所述多个第二数据中的至少一些第二数据包括第一部分数据、第二部分数据和第三部分数据,
第二处理器被配置为在处理了第一部分数据之后处理第二部分数据,并且
DMA控制模块被配置为在第二处理器处理第二部分数据的同时,将处理的第一部分数据发送到第一存储器并且从第一存储器接收第三部分数据。
4.如权利要求1所述的电子装置,其中,所述多个第二数据中的至少一些第二数据被划分成块,其中,每个块具有相等的大小。
5.如权利要求1所述的电子装置,其中,第二处理器被配置为接收处理数据,其中,所述处理数据包括用于设置所述多个第二数据中的至少一些第二数据的数据和用于设置针对所述多个第二数据中的至少一些第二数据的处理的数据,并且
所述处理数据包括以下项或以下项的组合:所述多个第二数据中的至少一些第二数据的位置和大小、针对所述多个第二数据中的至少一些第二数据的处理的重叠、非处理区域、处理顺序、处理位置。
6.如权利要求5所述的电子装置,其中,第二处理器被配置为通过使用所述处理命令和所述处理数据处理所述多个第二数据中的至少一些第二数据并控制DMA控制模块。
7.如权利要求3所述的电子装置,其中,DMA控制模块包括包含第一通道和第二通道的多个通道,并且被配置为当完成通过第一通道发送第一部分数据时,在通过第二通道发送第二部分数据期间通过第一通道发送第三部分数据。
8.如权利要求3所述的电子装置,其中,第二处理器被配置为将确定第三部分数据的确定数据发送到DMA控制模块,并且
DMA控制模块被配置为从第一存储器接收所述多个第二数据中与所述确定数据相应的至少一些第二数据。
9.如权利要求1所述的电子装置,其中,第二处理器还包括:高速缓存,存储用于标识第二处理器针对所述多个第二数据中的至少一些第二数据的处理的处理标识以及所述处理数据。
10.如权利要求1所述的电子装置,其中,用规定第一处理器与第二处理器之间的数据发送和接收的处理命令算法来实现所述处理命令,并且
所述处理命令算法包括与以下项中的至少一项相应的参数:针对所述多个第二数据中的至少一些第二数据的处理、对处理的调整、与第一存储器的一部分相应的第一存储器地址、或与第二存储器的一部分相应的第二存储器地址。
11.如权利要求10所述的电子装置,其中,第一处理器被配置为产生用于传输所述处理命令的包并且将所述包发送到第二处理器,并且
所述包包括用于标识第二处理器针对所述多个第二数据中的至少一些第二数据的处理的处理标识、用于标识所述包的包标识、以及关于所述参数的数据。
12.如权利要求1所述的电子装置,其中,第二处理器被配置为将与所述多个第二数据的处理状态有关的信息发送到第一处理器。
13.一种方法,包括:
以指定速度将第一数据存储在第一存储器中;
由与第一存储器连接的第一处理器将第一数据划分成多个第二数据,其中,每个第二数据的大小小于第一数据的大小;
以高于所述指定速度的速度存储所述多个第二数据中的至少一些第二数据;
由与第二存储器连接的第二处理器处理所述多个第二数据中的至少一些第二数据;并且
由与第二处理器连接的直接存储器访问DMA控制模块在第一存储器与第二存储器之间发送和接收数据,
其中,DMA控制模块被配置为:
至少基于从第一处理器发送到第二处理器的针对所述多个第二数据的处理命令,从第一存储器接收从第一数据划分出的较小大小的所述多个第二数据中的至少一些第二数据;
将所述多个第二数据中的至少一些第二数据发送到第二处理器;并且
将由第二处理器使用所述多个第二数据中的至少一些第二数据处理的第三数据发送到第一存储器。
14.如权利要求13所述的方法,其中,第一数据和第二数据包括图像数据,并且
第一处理器被配置为基于第二存储器确定所述多个第二数据中的至少一些第二数据的位置、大小、形状或数量中的至少一个。
15.如权利要求13所述的方法,其中,所述多个第二数据中的至少一些第二数据包括第一部分数据、第二部分数据和第三部分数据,
第二处理器被配置为在处理了第一部分数据之后处理第二部分数据,并且
DMA控制模块被配置为在第二处理器处理第二部分数据的同时,将处理的第一部分数据发送到第一存储器并且从第一存储器接收第三部分数据。
CN201880008043.0A 2017-01-23 2018-01-23 用于多处理器之间的数据处理的方法和电子装置 Active CN110199269B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2017-0010673 2017-01-23
KR1020170010673A KR20180086792A (ko) 2017-01-23 2017-01-23 복수의 프로세서들 사이에 데이터를 처리하는 방법 및 전자 장치
PCT/KR2018/000997 WO2018135925A1 (ko) 2017-01-23 2018-01-23 복수의 프로세서들 사이에 데이터를 처리하는 방법 및 전자 장치

Publications (2)

Publication Number Publication Date
CN110199269A true CN110199269A (zh) 2019-09-03
CN110199269B CN110199269B (zh) 2023-08-29

Family

ID=62908195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880008043.0A Active CN110199269B (zh) 2017-01-23 2018-01-23 用于多处理器之间的数据处理的方法和电子装置

Country Status (5)

Country Link
US (1) US11132302B2 (zh)
KR (1) KR20180086792A (zh)
CN (1) CN110199269B (zh)
DE (1) DE112018000474T5 (zh)
WO (1) WO2018135925A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669784B (zh) * 2017-10-13 2021-06-22 华为技术有限公司 一种进程间通信的方法及系统
US11580386B2 (en) * 2019-03-18 2023-02-14 Electronics And Telecommunications Research Institute Convolutional layer acceleration unit, embedded system having the same, and method for operating the embedded system
KR102642962B1 (ko) * 2023-07-18 2024-03-05 메티스엑스 주식회사 프로세서에서 단일 트랜잭션으로부터 변환된 복수의 트랜잭션들을 처리하는 방법 및 이를 수행하기 위한 프로세서

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293586A (en) * 1988-09-30 1994-03-08 Hitachi, Ltd. Data processing system for development of outline fonts
JP2001326893A (ja) * 2000-05-17 2001-11-22 Matsushita Electric Ind Co Ltd カメラシステム
US20030106053A1 (en) * 2001-12-04 2003-06-05 Sih Gilbert C. Processing digital video data
US20080098208A1 (en) * 2006-10-24 2008-04-24 Arm Limited Analyzing and transforming a computer program for executing on asymmetric multiprocessing systems
US20090136142A1 (en) * 2007-11-27 2009-05-28 Ravi Krishna Kosaraju Memory optimized cache generation for image tiling in gis/cad browser applications
CN105893143A (zh) * 2015-02-13 2016-08-24 三星电子株式会社 用于对多个数据进行批处理的方法和设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3128799B2 (ja) 1988-09-30 2001-01-29 株式会社日立製作所 データ処理装置、データ処理システム及びアウトラインフォントデータ発生方法
US7446774B1 (en) * 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US9152384B2 (en) 2013-08-12 2015-10-06 Oracle International Corporation System and method for referencing a dynamic module system within a component oriented application development framework
US9256543B2 (en) 2014-01-15 2016-02-09 Oxide Interactive Llc Method and system for efficient communication and command system for deferred operation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293586A (en) * 1988-09-30 1994-03-08 Hitachi, Ltd. Data processing system for development of outline fonts
JP2001326893A (ja) * 2000-05-17 2001-11-22 Matsushita Electric Ind Co Ltd カメラシステム
US20030106053A1 (en) * 2001-12-04 2003-06-05 Sih Gilbert C. Processing digital video data
KR100952861B1 (ko) * 2001-12-04 2010-04-13 퀄컴 인코포레이티드 디지털 비디오 데이터 처리
US20080098208A1 (en) * 2006-10-24 2008-04-24 Arm Limited Analyzing and transforming a computer program for executing on asymmetric multiprocessing systems
US20090136142A1 (en) * 2007-11-27 2009-05-28 Ravi Krishna Kosaraju Memory optimized cache generation for image tiling in gis/cad browser applications
CN105893143A (zh) * 2015-02-13 2016-08-24 三星电子株式会社 用于对多个数据进行批处理的方法和设备

Also Published As

Publication number Publication date
WO2018135925A1 (ko) 2018-07-26
CN110199269B (zh) 2023-08-29
US20190377691A1 (en) 2019-12-12
DE112018000474T5 (de) 2019-10-02
US11132302B2 (en) 2021-09-28
KR20180086792A (ko) 2018-08-01

Similar Documents

Publication Publication Date Title
CN107257954A (zh) 用于提供屏幕镜像服务的设备和方法
CN105512164B (zh) 使用语音标签管理图像的方法和装置
CN107665485A (zh) 用于显示图形对象的电子装置和计算机可读记录介质
CN109874365A (zh) 用于执行无线充电的设备及其方法
CN107959877A (zh) 电子设备和电子设备播放多媒体内容的方法
CN107393501A (zh) 电子设备
CN106066758A (zh) 用于显示屏幕的电子设备及其控制方法
CN107402733A (zh) 用于合成图形数据的电子设备及其方法
CN106354451A (zh) 用于操作电子设备的方法和电子设备
CN108376546A (zh) 语音输入方法以及用于支持该方法的电子设备和系统
CN107548486A (zh) 用于提供快捷用户界面的电子装置及其方法
CN107085507A (zh) 数据收发方法及装置
CN108700995A (zh) 电子设备和用于切换和对齐其应用的方法
CN107925738A (zh) 用于提供图像的方法、电子设备和存储介质
CN107851416A (zh) 电子设备的显示方法和装置
CN108028891A (zh) 电子设备和照相方法
CN105426069B (zh) 用于产生预览数据的方法和电子设备
CN106372102A (zh) 电子装置和用于管理电子装置上的文件夹中的对象的方法
CN108351692A (zh) 手势感测方法和支持其的电子设备
KR102358849B1 (ko) 스마트 워치에 대한 정보를 제공하는 전자 장치와 이의 동작 방법
CN108604190A (zh) 用于控制应用的电子装置及其操作方法
CN108475162A (zh) 用于显示用户界面的方法和用于支持该方法的电子装置
CN108427533A (zh) 电子设备及用于确定电子设备的环境的方法
CN109196546A (zh) 电子设备和包括该电子设备的信息处理系统
CN108110818A (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