DE102020100210A1 - Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend - Google Patents

Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend Download PDF

Info

Publication number
DE102020100210A1
DE102020100210A1 DE102020100210.6A DE102020100210A DE102020100210A1 DE 102020100210 A1 DE102020100210 A1 DE 102020100210A1 DE 102020100210 A DE102020100210 A DE 102020100210A DE 102020100210 A1 DE102020100210 A1 DE 102020100210A1
Authority
DE
Germany
Prior art keywords
data
zero
cell
pixel
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020100210.6A
Other languages
English (en)
Inventor
Heonsoo Lee
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 DE102020100210A1 publication Critical patent/DE102020100210A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

Vorgesehen ist eine neuronale Netzwerkvorrichtung, die mindestens einen Prozessor, der konfiguriert, um eine arithmetische Schaltung, die konfiguriert ist, um dritte Daten, die eine Mehrzahl an Pixeln enthalten, basierend auf einem neuronalen Netzwerk, das konfiguriert ist, um eine arithmetische Operation an ersten Daten und zweiten Daten durchzuführen, zu erzeugen, umzusetzen, und einen Komprimierer, der konfiguriert ist, um komprimierte Daten durch Komprimieren der dritten Daten zu erzeugen, wobei der Komprimierer ferner konfiguriert ist, um Bitmap-Daten, welche Positionsinformationen über einen Nicht-Null-Pixel, der einen Nicht-Null-Datenwert aufweist, unter der Mehrzahl an Pixeln aufweisen, basierend auf einer Quadtree-Struktur als die komprimierten Daten zu erzeugen, enthält.

Description

  • Querverweis auf ähnliche Anmeldungen
  • Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung Nr. 10-2019-0055157 , eingereicht am 10. Mai 2019 im koreanischen Patentamt, deren Offenbarung durch Bezugnahme in ihrer Gesamtheit hierin integriert ist.
  • Hintergrund
  • Gebiet
  • Ausführungsbeispiele der vorliegenden Anmeldung beziehen sich auf einen neuronalen Netzwerkprozessor und insbesondere auf einen neuronalen Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und ein Computersystem dasselbe enthaltend.
  • Beschreibung des Stands der Technik
  • Ein neuronales Netzwerk bezieht sich auf eine rechengestützte Architektur, die ein biologisches Gehirn modelliert. Kürzlich wurden, zusammen mit der Entwicklung der neuronalen Netzwerktechnologie, Forschungsarbeiten über das Analysieren von Eingabedaten und die Informationsgewinnung durch Verwenden einer neuronalen Netzwerkvorrichtung unter Verwendung von einem oder mehreren neuronalen Netzwerkmodellen in verschiedenen Arten von elektronischen Systemen durchgeführt.
  • Ein neuronaler Netzwerkprozessor erfordert eine hohe Menge an arithmetischen Operationen an komplexen Eingabedaten, wobei eine Operation zum Schreiben oder Lesen von Eingabedaten in einen oder aus einem externen Speicher des neuronalen Netzwerkprozessors benötigt wird. Dementsprechend, da das Datenvolumen der Eingabedaten groß ist, wird eine lange Zeit zum Schreiben oder Lesen der Eingabedaten in den oder aus dem externen Speicher benötigt.
  • Kurfassung
  • Ein oder mehrere Ausführungsbeispiele sehen einen neuronalen Netzwerkprozessor zum effizienten Komprimieren von Eingabedaten und eine neuronale Netzwerkvorrichtung dasselbe enthaltend vor.
  • Ein oder mehrere Ausführungsbeispiele sehen außerdem ein Komprimierungsverfahren zum effizienten Komprimieren von Eingabedaten vor.
  • Nach einem Aspekt eines Ausführungsbeispiels ist eine neuronale Netzwerkvorrichtung vorgesehen, die mindestens einen Prozessor, der konfiguriert, um eine arithmetische Schaltung, die konfiguriert ist, um dritte Daten, die eine Mehrzahl an Pixeln enthalten, basierend auf einem neuronalen Netzwerk, das konfiguriert ist, um eine arithmetische Operation an ersten Daten und zweiten Daten durchzuführen, zu erzeugen, umzusetzen, und einen Komprimierer, der konfiguriert ist, um komprimierte Daten durch Komprimieren der dritten Daten zu erzeugen, wobei der Komprimierer ferner konfiguriert ist, um Bitmap-Daten, welche Positionsinformationen über einen Nicht-Null-Pixel, der einen Nicht-Null-Datenwert aufweist, unter der Mehrzahl an Pixeln aufweisen, basierend auf einer Quadtree-Struktur als die komprimierten Daten zu erzeugen, enthält.
  • Nach einem weiteren Aspekt eines Ausführungsbeispiels ist ein Computersystem vorgesehen, das einen Speicher, der konfiguriert ist, um mindestens ein Programm zu speichern, und einen Prozessor, der konfiguriert ist, um eine arithmetische Operation eines neuronalen Netzwerks auf einer Merkmalsabbildung, welche eine Mehrzahl an Pixeln aufweist, durch Ausführen des mindestens einen Programms zu verarbeiten, enthält, wobei der Prozessor ferner konfiguriert ist, um die Merkmalsabbildung durch Erzeugen von Bitmap-Daten, welche Positionsinformationen über einen Nicht-Null-Pixel, der einen Nicht-Null-Datenwert aufweist, unter der Mehrzahl an Pixeln enthalten, zu komprimieren.
  • Nach einem weiteren Aspekt eines Ausführungsbeispiels ist ein Verfahren zur Verarbeitung einer Merkmalsabbildung eines neuronalen Netzwerks in einem Computersystem, das einen Speicher enthält, vorgesehen, wobei das Verfahren das Erzeugen komprimierter Daten basierend auf Positionsinformationen, die wiederholt auf einer Teilungsebene der Merkmalsabbildung eine Position um einen Nicht-Null-Pixel herum, der einen Nicht-Null-Datenwert aufweist, unter einer Mehrzahl an Pixeln, die in der Merkmalsabbildung enthalten ist, angeben, und basierend auf Daten des Nicht-Null-Pixels, und das Speichern der komprimierten Daten im Speicher enthält.
  • Figurenliste
  • Die oben genannten und/oder weiteren Aspekte werden aus der nachfolgenden Beschreibung der Ausführungsbeispiele in Verbindung mit den beigefügten Zeichnungen deutlich und leichter geschätzt werden, wobei:
    • 1 ein Blockdiagramm eines elektronischen Systems nach einem Ausführungsbeispiel ist;
    • 2 ein Blockdiagramm des elektronischen Systems nach einem weiteren Ausführungsbeispiel ist;
    • 3 ein neuronales Netzwerk aufzeigt;
    • 4A und 4B eine Convolution Operation eines neuronalen Netzwerks aufzeigen;
    • 5 ein Blockdiagramm eines neuronalen Netzwerkprozessors nach einem Ausführungsbeispiel ist;
    • 6 ein Flussdiagramm eines Verfahrens zum Betreiben eines Komprimierers nach einem Ausführungsbeispiel ist;
    • 7 ein Flussdiagramm eines Verfahrens zum Betreiben eines Komprimierers nach einem weiteren Ausführungsbeispiel ist;
    • 8 ein Flussdiagramm eines Verfahrens zum Betreiben eines Komprimierers nach einem weiteren Ausführungsbeispiel ist;
    • 9 eine Eingabe-Merkmalsabbildung nach einem Ausführungsbeispiel aufzeigt;
    • 10 eine Merkmalsabbildung nach einem Ausführungsbeispiel aufzeigt;
    • 11 ein Verfahren zum Erzeugen von komprimierten Daten nach einem Ausführungsbeispiel aufzeigt;
    • 12 ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel aufzeigt;
    • 13A ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel aufzeigt;
    • 13B ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel aufzeigt;
    • 13C ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel aufzeigt;
    • 14 ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel aufzeigt; und
    • 15 ein Blockdiagramm eines Anwendungsprozessors nach einem Ausführungsbeispiel ist.
  • Detaillierte Beschreibung der Ausführungsformen
  • Nachfolgend werden Ausführungsbeispiele mit Bezug auf die beigefügten Zeichnungen detailliert beschrieben.
  • 1 ist ein Blockdiagramm eines elektronischen Systems 10 nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 1 kann das elektronische System 10 effektive Informationen durch Analysieren von Echtzeit-Eingabedaten basierend auf einem neuronalen Netzwerk extrahieren und einen Kontext oder Steuerkomponenten einer elektronischen Vorrichtung, die das elektronische System 10 enthält, basierend auf den extrahierten Informationen festlegen. Zum Beispiel kann das elektronische System 10 auf eine Drohne, ein modernes Fahrassistenzsystem (ADAS), eine Robotervorrichtung, einen Smart-Femseher (TV), ein Smartphone, eine medizinische Vorrichtung, eine mobile Vorrichtung, eine Bildanzeigevorrichtung, eine Messvorrichtung, einer Internet der Dinge(IoT)-Vorrichtung und Ähnlichem angewandt werden, allerdings sind die Ausführungsbeispiele nicht darauf beschränkt und das elektronische System 10 kann auf verschiedene andere Arten von elektronischen Vorrichtungen angewandt werden.
  • Das elektronische System 10 kann mindestens einen Intellectual Property (IP) Block und einen neuronalen Netzwerkprozessor 100 enthalten. Zum Beispiel kann das elektronische System 10 einen ersten IP-Block IP1, einen zweiten IP-Block IP2 und einen dritten IP-Block IP3 und den neuronalen Netzwerkprozessor 100 enthalten.
  • Das elektronische System 10 kann verschiedene Arten von IP-Blöcken enthalten. Zum Beispiel können die IP-Blöcke eine Verarbeitungseinheit, eine in einer Verarbeitungseinheit enthaltene Mehrzahl an Kernen, einen Multi-Format-Codec (MFC), ein Videomodul (z.B. eine Kameraschnittstelle, einen Joint Photographic Experts Group(JPEG)-Prozessor, einen Videoprozessor, einen Mixer oder Ähnliches), einen dreidimensionalen (3D) Grafikkern, ein Audiosystem, einen Treiber, einen Grafiktreiber, einen flüchtigen Speicher, einen nichtflüchtigen Speicher, einen Speichercontroller, einen Eingabe- und Ausgabeschnittstellenblock, einen Cache-Speicher oder Ähnliches enthalten. Jeder des ersten IP-Blocks IP1 bis dritten IP-Blocks IP3 kann mindestens einen der verschiedenen Arten von IP-Blöcken enthalten.
  • Techniken zum Verbinden von IP-Blöcken enthalten ein Verbindungsschema basierend auf einem Systembus. Zum Beispiel kann ein Advanced Microcontroller Bus Ar-chitecture(AMBA)-Protokoll einer Advanced RISC-Maschine (ARM) als eine Standard-Busspezifikation angewandt werden. Bus-Arten des AMBA-Protokolls können einen Advanced High-Performance Bus (AHB), einen Advanced Peripheral Bus (APB), eine Advanced Extensible Interface (AXI), AXI4, AXI Coherency Extensions (ACE) und Ähnliches enthalten. AXI unter den oben beschriebenen Bus-Arten ist ein Schnittstellenprotokoll zwischen IP-Blöcken und kann eine in vielfacher Hinsicht überragende Adressfunktion, eine Datenverschachtelungsfunktion und Ähnliches vorsehen. Neben den oben genannten können auch andere Arten von Protokollen, wie uNetwork von SONICs Inc., CoreConnect von IBM und ein Open Core-Protokoll von OCP-IP auf den Systembus angewandt werden.
  • Der neuronale Netzwerkprozessor 100 kann ein neuronales Netzwerk erzeugen, das neuronale Netzwerk schulen (oder erlauben, dass das neuronale Netzwerk lernt), eine arithmetische Operation basierend auf empfangenen Eingabedaten durchführen und ein Informationssignal basierend auf dem arithmetischen Operationsergebnis erzeugen oder das neuronale Netzwerk umschulen. Modelle eines neuronalen Netzwerks können verschiedene Arten von Modellen enthalten, wie Convolutional Neural Networks (CNNs), die GoogleNet, AlexNet, VGG Network und Ähnliches enthalten, einen Bereich mit einem Convolutional Neural Network (R-CNN), ein Bereichs-Vorschlag-Netzwerk (RPN), ein Recurrent Neural Network (RNN), ein stapelbasiertes Deep Neural Network (S-DNN), ein State-Space Dynamic Neural Network (S-SDNN), ein Deconvolutional Network, ein Deep Brief Network (DBN), eine eingeschränkte Boltzmann-Maschine (RBM), ein Fully Concolutional Network, ein Long Short-Term Memory (LSTM) Network, ein Klassifikationsnetzwerk und Ähnliches, sind jedoch nicht darauf beschränkt. Der neuronale Netzwerkprozessor 100 kann einen oder mehrere Prozessoren enthalten, die konfiguriert sind, um arithmetische Operationen nach Modellen eines neuronalen Netzwerks durchzuführen. Zusätzlich kann der neuronale Netzwerkprozessor 100 einen separaten Speicher enthalten, der Programme, die Modellen eines neuronalen Netzwerks entsprechen, speichert. Der neuronale Netzwerkprozessor 100 kann eine Verarbeitungsvorrichtung für ein neuronales Netzwerk, eine integrierte Schaltung für ein neuronales Netzwerk, eine Verarbeitungseinheit (NPU) für ein neuronales Netzwerk oder Ähnliches sein.
  • Der neuronale Netzwerkprozessor 100 kann über den Systembus verschiedene Arten von Eingabedaten von mindestens einem IP-Block empfangen und ein Informationssignal basierend auf den Eingabedaten erzeugen. Zum Beispiel kann der neuronale Netzwerkprozessor 100 das Informationssignal durch Durchführen einer neuronalen Netzwerkoperation an den Eingabedaten erzeugen, und die neuronale Netzwerkoperation kann eine Convolution Operation enthalten. Die Convolution Operation des neuronalen Netzwerkprozessors 100 wird mit Bezug auf 4A und 4B detailliert beschrieben. Das durch den neuronalen Netzwerkprozessor 100 erzeugte Informationssignal kann mindestens eines von verschiedenen Arten von Erkennungssignalen, wie ein Spracherkennungssignal, ein Objekterkennungssignal, ein Bilderkennungssignal und ein Bioinformationserkennungssignal, enthalten. Zum Beispiel kann der neuronale Netzwerkprozessor 100 in einem Video-Stream enthaltene Frame-Daten als Eingabedaten empfangen und aus den Frame-Daten ein Erkennungssignal für ein Objekt, das in einem Bild enthalten ist, das durch die Frame-Daten angegeben wird, erzeugen. Allerdings ist der neuronale Netzwerkprozessor 100 nicht darauf beschränkt und der neuronale Netzwerkprozessor 100 kann verschiedene Arten von Eingabedaten empfangen und Erkennungssignale nach den Eingabedaten erzeugen.
  • Nach dem elektronischen System 10 nach einem Ausführungsbeispiel kann der neuronale Netzwerkprozessor 100 einen Null-Pixel mit Null („0“) als einem Datenwert und einen Nicht-Null-Pixel mit einem Nicht-Null-Wert als einem Datenwert unter einer Mehrzahl an Pixeln, die in Eingabe-Merkmalsabbildungsdaten, die für eine Convolution Operation verwendet werden sollen, enthalten sind, identifizieren. Basierend auf der Identifikation kann der neuronale Netzwerkprozessor 100 komprimierte Daten durch Verwenden eines Datenwerts eines Nicht-Null-Pixels und Positionsinformationen des Nicht-Null-Pixels erzeugen. Der neuronale Netzwerkprozessor 100 kann komprimierte Daten eines relativ kleinen Datenvolumens durch Komprimieren von Merkmalsabbildungsdaten erzeugen und die erzeugten komprimierten Daten in einem externen Speicher speichern, wodurch eine Dateneingabe- und -ausgabegeschwindigkeit erhöht wird.
  • In der vorliegenden Spezifikation wird, zur Vereinfachung der Beschreibung, ein Pixel mit Null („0“) als einem Datenwert unter einer in einer Merkmalsabbildung enthaltenen Mehrzahl an Pixeln als ein Null-Pixel bezeichnet und ein Pixel mit einem Nicht-Null-Wert als einem Datenwert unter der Mehrzahl an Pixeln wird als ein Nicht-Null-Pixel bezeichnet.
  • 2 ist ein Blockdiagramm des elektronischen Systems 10 nach einem weiteren Ausführungsbeispiel. Die mit Bezug auf 1 getätigte Beschreibung für das elektronische System 10 aus 2 wird hierin nicht wiederholt.
  • Bezugnehmend auf 2 kann das elektronische System 10 den neuronalen Netzwerkprozessor 100, einen Direktzugriffsspeicher (RAM) 200, einen Prozessor 300, einen Speicher 400 und ein Sensormodul 500 enthalten. Der neuronale Netzwerkprozessor 100 kann dem neuronalen Netzwerkprozessor 100 aus 1 entsprechen.
  • Der RAM 200 kann vorübergehend Programme, Daten oder Anweisungen speichem. Zum Beispiel können im Speicher 400 gespeicherte Programme und/oder Daten nach der Steuerung des Prozessors 300 oder eines Bootcodes vorübergehend auf den RAM 200 geladen werden. Der RAM 200 kann durch Verwenden eines Speichers, wie einem dynamischen RAM (DRAM) oder einem statischen RAM (SRAM), umgesetzt werden.
  • Der Prozessor 300 kann eine allgemeine Operation des elektronischen Systems 10 steuern und der Prozessor 300 kann zum Beispiel eine zentrale Verarbeitungseinheit (CPU) sein. Der Prozessor 300 kann einen einzelnen Kern oder mehrere Kerne enthalten. Der Prozessor 300 kann im RAM 200 und im Speicher 400 gespeicherte Programme und/oder Daten verarbeiten oder ausführen. Zum Beispiel kann der Prozessor 300 Funktionen des elektronischen Systems 10 durch Ausführen von im Speicher 400 gespeicherten Programmen steuern.
  • Der Speicher 400 ist ein Speicher, der Daten speichert, und kann zum Beispiel ein Betriebssystem (OS), verschiedene Arten von Programmen und verschiedene Arten von Daten speichern. Der Speicher 400 kann einen DRAM enthalten, ist jedoch nicht darauf beschränkt. Der Speicher 400 kann mindestens einen von einem flüchten Speicher und einem nichtflüchtigen Speicher enthalten. Der nichtflüchtige Speicher kann einen Festwertspeicher (ROM), einen programmierbaren ROM (PROM), einen elektrisch programmierbaren ROM (EPROM), einen elektrisch löschbaren und programmierbaren ROM (EEPROM), einen Flash-Speicher, einen Phasenübergangs-RAM (PRAM), einen magnetischen RAM (MRAM), einen resistiven RAM (RRAM), einen ferroelektrischen RAM (FeRAM) und Ähnliches enthalten. Der flüchtige Speicher kann einen DRAM, SRAM, Synchron-DRAM (SDRAM), PRAM, MRAM, RRAM, FeRAM und Ähnliches enthalten. Zusätzlich kann der Speicher 400 nach einem Ausführungsbeispiel mindestens eines aus einem Festplattenlaufwerk (HDD), einem Solid-State-Laufwerk (SSD), einer Com-pact-Flash(CF)-Karte, einer Secure Digital (SD) Card, einer Mikro Secure Digital (Mikro-SD) Card, einer extremen Digital(XD)-Karte oder einem Speicherstick enthalten.
  • Das Sensormodul 500 kann Informationen auf dem Umfang des elektronischen Systems 10 sammeln. Das Sensormodul 500 kann ein Bildsignal von der Außenseite des elektronischen Systems 10 erfassen oder empfangen und das erfasste oder empfangene Bildsignal in Bilddaten, d.h. einen Bild-Frame, umwandeln. Zu diesem Zweck kann das Sensormodul 500 eine Erfassungsvorrichtung, zum Beispiel mindestens eine von verschiedenen Arten von Erfassungsvorrichtungen, wie eine Abbildungsvorrichtung, einen Bildsensor, einen Sensor (LIDAR) zur Lichtdetektion und -entfernung, einen Ultraschallsensor und einen Infrarotsensor, enthalten oder ein Erfassungssignal von der Erfassungsvorrichtung empfangen. Nach einem Ausführungsbeispiel kann das Sensormodul 500 einen Bild-Frame an den neuronalen Netzwerkprozessor 100 übermitteln. Zum Beispiel kann das Sensormodul 500 einen Bildsensor enthalten und einen Video-Stream durch fotografieren einer externen Umgebung des elektronischen Systems 10 erzeugen und aufeinanderfolgende Bild-Frames des Video-Streams sequenziell an den neuronalen Netzwerkprozessor 100 übermitteln.
  • Nach dem elektronischen System 10 nach einem Ausführungsbeispiel kann der neuronale Netzwerkprozessor 100 komprimierte Daten durch Verwenden eines Datenwerts eines Nicht-Null-Pixels und Positionsinformationen des Nicht-Null-Pixels wie oben beschrieben erzeugen und die erzeugten komprimierten Daten im RAM 200 oder im Speicher 400 speichern. Der neuronale Netzwerkprozessor 100 kann die komprimierten Daten vorübergehend im RAM 200 speichern und eine entsprechende arithmetische Operation durch Verwenden der vorübergehend gespeicherten komprimierten Daten verarbeiten, wodurch eine Verarbeitungsgeschwindigkeit eines neuronalen Netzwerks erhöht wird. Zusätzlich kann der neuronale Netzwerkprozessor 100 die komprimierten Daten im Speicher 400 speichern, wodurch Merkmalsabbildungsdaten eines relativ kleinen Volumens gespeichert werden.
  • 3 zeigt eine Struktur eines Convolution Neural Network als ein Beispiel einer neuronalen Netzwerkstruktur auf.
  • Bezugnehmend auf 3 kann ein neuronales Netzwerk NN eine Mehrzahl an Schichten, z.B. erste bis n-te Schichten L1 bis Ln, enthalten. Jede der Mehrzahl an Schichten L1 bis Ln kann eine lineare Schicht oder eine nichtlineare Schicht sein und nach einem Ausführungsbeispiel können mindestens eine lineare Schichte und mindestens eine nichtlineare Schicht kombiniert und als eine Schicht bezeichnet werden. Zum Beispiel kann eine lineare Schicht eine Convolution Layer bzw. Faltungsschicht und eine vollständig verbundene Schicht enthalten und eine nichtlineare Schicht kann eine Pooling-Schicht und eine Aktivierungsschicht enthalten.
  • Zum Beispiel kann die erste Schicht L1 eine Faltungsschicht sein, die zweite Schicht L2 kann eine Pooling-Schicht sein und die n-te Schicht Ln kann eine vollständig verbundene Schicht als eine Ausgabeschicht sein. Das neuronale Netzwerk NN kann ferner eine Aktivierungsschicht enthalten und kann ferner eine Schicht enthalten, die konfiguriert ist, um eine weitere Art von arithmetischer Operation durchzuführen.
  • Jede der Mehrzahl an Schichten L1 bis Ln kann Eingabedaten (z.B. einen Bild-Frame) oder eine in einer vorherigen Schicht erzeugte Merkmalsabbildung als eine Eingabe-Merkmalsabbildung empfangen und eine arithmetische Operation an der Eingabe-Merkmalsabbildung durchführen, wodurch eine Ausgabe-Merkmalsabbildung oder ein Erkennungssignal REC erzeugt wird. In diesem Fall gibt eine Merkmalsabbildung Daten an, die verschiedene Merkmale von Eingabedaten darstellen. Erste bis n-te Merkmalsabbildungen FM1, FM2, ... FMn können zum Beispiel ein 2D-Matrix- oder 3D-Matrix(oder Tensor)-Format aufweisen. Die ersten bis n-ten Merkmalsabbildungen FM1, FM2, ... FMn können eine Breite (oder Spalte) W, eine Höhe (oder Reihe) H und eine Tiefe D aufweisen, die jeweils einer x-Achse, einer y-Achse und einer z-Achse auf einem Koordinatensystem entsprechen. Hierin kann die Tiefe D als die Anzahl an Kanälen bezeichnet werden.
  • Die erste Schicht L1 kann die zweite Merkmalsabbildung FM2 durch Falten der ersten Merkmalsabbildung FM1 und einer Gewichtsabbildung WM erzeugen. Die Gewichtsabbildung WM kann die erste Merkmalsabbildung FM1 filtern und kann außerdem als ein Filter oder ein Kernel bezeichnet werden. Eine Tiefe, d.h. die Anzahl an Kanälen, der Gewichtsabbildung WM ist einer Tiefe, d.h. der Anzahl an Kanälen, der ersten Merkmalsabbildung FM1 gleich und die gleichen Kanäle der Gewichtsabbildung WM und der ersten Merkmalsabbildung FM1 können gefaltet werden. Die Gewichtsabbildung WM kann durch Verwenden der ersten Merkmalsabbildung FM1 als ein Gleitfenster auf eine durchquerende Weise verschoben werden. Eine verschobene Menge kann als „Schrittlänge“ oder „Schritt“ bezeichnet werden. Während jeder Verschiebung kann jeder in der Gewichtsabbildung WM enthaltene Gewichtswert mit allen Pixeldaten in einem Bereich, der die erste Merkmalsabbildung FM1 überlappt, multipliziert und zu diesen addiert werden. Daten der ersten Merkmalsabbildung FM1 in dem Bereich, in dem jeder der in der Gewichtsabbildung WM enthaltenen Gewichtswerte die erste Merkmalsabbildung FM1 überlappt, können als Extraktionsdaten bezeichnet werden. Nach der Faltung der ersten Merkmalsabbildung FM1 und der Gewichtsabbildung WM kann ein Kanal der zweiten Merkmalsabbildung FM2 erzeugt werden. Obwohl 3 eine Gewichtsabbildung WM zeigt, kann im Wesentlichen eine Mehrzahl an Gewichtsabbildungen mit der ersten Merkmalsabbildung FM1 gefaltet werden, um eine Mehrzahl an Kanälen der zweiten Merkmalsabbildung FM2 zu erzeugen, und die Anzahl an Kanälen der zweiten Merkmalsabbildung FM2 kann der Anzahl an Gewichtsabbildungen entsprechen.
  • Die zweite Schicht L2 kann die dritte Merkmalsabbildung FM3 durch Verändern einer räumlichen Größe der zweiten Merkmalsabbildung FM2 durch Pooling erzeugen. Das Pooling kann als Sampling oder Downsampling bezeichnet werden. Ein 2D-Pooling-Fenster PW kann auf der zweiten Merkmalsabbildung FM2 in einer Einheit von einer Seite des Pooling-Fensters PW verschoben werden und ein maximaler Wert von Pixeldaten (oder ein Mittelwert der Pixeldaten) in einem Bereich, der mit dem Pooling-Fenster PW überlappt wird, kann ausgewählt werden. Dementsprechend kann die dritte Merkmalsabbildung FM3, die eine veränderte räumliche Größe von der zweiten Merkmalsabbildung FM2 aufweist, erzeugt werden. Die Anzahl an Kanälen der dritten Merkmalsabbildung FM3 ist der Anzahl an Kanälen der zweiten Merkmalsabbildung FM2 gleich.
  • Die n-te Schicht Ln kann Klassen CL der Eingabedaten durch Kombinieren von Merkmalen der n-ten Merkmalsabbildung FMn klassifizieren. Zusätzlich kann die n-te Schicht Ln ein Erkennungssignal SEC, das einer Klasse entspricht, erzeugen. Nach einem Ausführungsbeispiel können die Eingabedaten in einem Video-Stream enthaltenen Frame-Daten entsprechen und die n-te Schicht Ln kann eine Klasse, die einem Objekt entspricht, das in einem Bild enthalten ist, das durch Frame-Daten angegeben wird, basierend auf der von einer vorherigen Schicht übermittelten n-ten Merkmalsabbildung FMn extrahieren, um das Objekt zu erkennen und ein Erkennungssignal REC, das dem erkannten Objekt entspricht, zu erzeugen.
  • 4A und 4B zeigen eine Convolution Operation eines neuronalen Netzwerks auf.
  • Bezugnehmend auf 4A können Eingabe-Merkmalsabbildungen 201 D-Kanäle enthalten und eine Eingabe-Merkmalsabbildung eines jeden Kanals kann eine Größe einer H-Reihe und einer W-Spalte aufweisen, wobei D, H und W natürliche Zahlen sind. Jeder der Kernel 202 kann eine Größe einer R-Reihe und einer S-Spalte aufweisen und die Kernel 202 können Kanäle einer Anzahl enthalten, die der Anzahl an Kanälen (oder Tiefen) D der Eingabe-Merkmalsabbildungen 201 entspricht, wobei R und S natürliche Zahlen sind. Ausgabe-Merkmalsabbildungen (203) können durch eine 3D Convolution Operation zwischen den Eingabe-Merkmalsabbildungen 201 und den Kerneln 202 erzeugt werden und können Y-Kanäle nach der Convolution Operation enthalten.
  • Eine Operation zum Erzeugen einer Ausgabe-Merkmalsabbildung durch eine Convolution Operation zwischen einer Eingabe-Merkmalsabbildung und einem Kernel kann mit Bezug auf 4B beschrieben werden. Eine mit Bezug auf 4B beschriebene 2D Convolution Operation kann zwischen den Eingabe-Merkmalsabbildungen 201 aller Kanäle und den Kerneln 202 all der Kanäle durchgeführt werden, um die Ausgabe-Merkmalsabbildungen (203) all der Kanäle zu erzeugen.
  • Bezugnehmend auf 4B, als ein Beispiel, weist die Eingabe-Merkmalsabbildung 210 eine Größe von 6x6 auf, ein ursprünglicher Kernel 220 weist eine Größe von 3x3 auf und eine Ausgabe-Merkmalsabbildung 230 weist eine Größe von 4x4 auf. Allerdings ist die Größe der Eingabe-Merkmalsabbildung 210, des ursprünglichen Kernels 220 und der Ausgabe-Merkmalsabbildung 230 nicht darauf beschränkt und ein neuronales Netzwerk kann durch verschiedene Größe von Merkmalsabbildungen und Kerneln umgesetzt werden. Zusätzlich sind alle Werte, die in der Eingabe-Merkmalsabbildung 210, dem ursprünglichen Kernel 220 und der Ausgabe-Merkmalsabbildung 230 definiert sind, lediglich illustrativ und Ausführungsformen sind nicht darauf beschränkt.
  • Eine Convolution Operation kann durchgeführt werden, während der ursprüngliche Kernel 220 in einer Fenstereinheit einer Größe von 3x3 auf der Eingabe-Merkmalsabbildung 210 gleitet. Die Convolution Operation kann jeweils eine arithmetische Operation zum Multiplizieren von Pixeldaten in einem bestimmten Fenster mit Gewichtswerten an entsprechenden Positionen im ursprünglichen Kernel 220 und Summieren aller durch das Multiplizieren erhaltenen Werte angeben, um alle Pixeldaten der Ausgabe-Merkmalsabbildung 230 zu erhalten. Die im Fenster der Eingabe-Merkmalsabbildung 210 enthaltenen Daten, die mit den Gewichtsdaten multipliziert werden, können als Extraktionsdaten, die von der Eingabe-Merkmalsabbildung 210 extrahiert werden, bezeichnet werden. Detailliert wird zunächst eine Convolution Operation zwischen dem ursprünglichen Kernel 220 und ersten Extraktionsdaten 211 der Eingabe-Merkmalsabbildung 210 durchgeführt. Das heißt, Pixeldaten 0, 2, 0, 4, 0, 0, 0, 0 und 0 der ersten Extraktionsdaten 211 werden jeweils mit Gewichtsdaten -1, -3, 4, 7, -2, -1, -5, 3 und 1 des ursprünglichen Kernels 220 multipliziert und 0, -6, 0, 28, 0, 0, 0, 0 und 0 können als ein Ergebnis der Multiplikation erhalten werden. Als nächstes kann 22, die ein Ergebnis der Summierung all der erhaltenen Werte ist, berechnet werden und Pixeldaten 231 einer ersten Reihe und einer ersten Spalte in der Ausgabe-Merkmalsabbildung 230 können derart festgelegt werden, dass sie 22 sind. Hierin entsprechen die Pixeldaten 231 der ersten Reihe und der ersten Spalte in der Ausgabe-Merkmalsabbildung 230 den ersten Extraktionswerten 211. Gleichermaßen kann eine Convolution Operation zwischen zweiten Extraktionsdaten 212 der Eingabe-Merkmalsabbildung 210 und dem ursprünglichen Kernel 220 durchgeführt werden, um 2, die Pixeldaten 232 der ersten Reihe und einer zweiten Spalte in der Ausgabe-Merkmalsabbildung 230 ist, festzulegen. Zuletzt kann eine Convolution Operation zwischen 16-ten Extraktionsdaten 213, welche die letzten Extraktionsdaten der Eingabe-Merkmalsabbildung 210 sind, und dem ursprünglichen Kernel 220 durchgeführt werden, um 0, die Pixeldaten 233 einer vierten Reihe und einer vierten Spalte in der Ausgabe-Merkmalsabbildung 230 ist, festzulegen.
  • Eine Convolution Operation zwischen der einen Eingabe-Merkmalsabbildung 210 und dem einen ursprünglichen Kernel 220 kann durch wiederholtes Durchführen eines Produkts von Extraktionsdaten der Eingabe-Merkmalsabbildung 210 und entsprechenden Gewichtswerten des ursprünglichen Kernels 220 und einer Addition der Produktergebnisse verarbeitet werden. Die Ausgabe-Merkmalsabbildung 230 kann als ein Ergebnis der Convolution Operation erzeugt werden.
  • Nach einem Ausführungsbeispiel können negative Pixeldaten durch „0“ ersetzt werden, wenn eine Rectified Linear Unit(ReLU)-Funktion auf die Eingabe-Merkmalsabbildung 210 angewandt wird. Infolgedessen kann die Eingabe-Merkmalsabbildung 210 viele Null-Pixel mit „0“ als einem Datenwert enthalten. Nach einem Ausführungsbeispiel kann der neuronale Netzwerkprozessor 100 komprimierte Daten durch Verwenden von lediglich Positionsinformationen von Nicht-Null-Pixeln und Datenwerten der Nicht-Null-Pixel erzeugen, wodurch Daten der Eingabe-Merkmalsabbildung 210 reduziert werden. Ein vom neuronalen Netzwerkprozessor 100 durchgeführtes Verfahren zum Komprimieren von Daten in der Eingabe-Merkmalsabbildung 210 nach einem Ausführungsbeispiel und eine Einrichtung werden mit Bezug auf die Zeichnungen unten detailliert beschrieben.
  • 5 ist ein Blockdiagramm des neuronalen Netzwerkprozessors 100 nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 5 kann der neuronale Netzwerkprozessor 100 eine Steuerlogik 110, einen Komprimierer 120, einen internen Speicher 130 und eine arithmetische Schaltung 160 enthalten.
  • Der interne Speicher 130 kann externe Daten von der Außenseite des neuronalen Netzwerkprozessors 100 empfangen. Die externen Daten können Eingabedaten sein. Der interne Speicher 130 kann verschiedene Arten von Daten und Gewichtswerten, die für eine arithmetische Operation notwendig sind, und die externen Daten speichern. Zu diesem Zweck kann der interne Speicher 130 einen Kernelspeicher 140, der Kerneldaten KD speichert, einen Eingabe-Merkmalsabbildungs-Speicher 150, der eine Eingabe-Merkmalsabbildung IF speichert, und einen Ausgabe-Merkmalsabbildungs-Speicher 155, der eine Ausgabe-Merkmalsabbildung OF speichert, enthalten. Der Kernelspeicher 140, der Eingabe-Merkmalsabbildungs-Speicher 150 und der Ausgabe-Merkmalsabbildungs-Speicher 155 können ein Teil oder separate Teile an Hardware enthalten, Ausführungsformen sind jedoch nicht darauf beschränkt. Zum Beispiel können der Kernelspeicher 140, der Eingabe-Merkmalsabbildungs-Speicher 150 und der Ausgabe-Merkmalsabbildungs-Speicher 155 Speicher angeben, die verschiedenen Bereichen in einem Hardwareteil entsprechen. Sowohl der Kernelspeicher 140 als auch der Eingabe-Merkmalsabbildungs-Speicher 150 und der Ausgabe-Merkmalsabbildungs-Speicher 155 können durch verschiedene Arten von Speichern, wie einem DRAM, SRAM und einem synchron-dynamischen RAM (SDRAM) umgesetzt werden.
  • Der Eingabe-Merkmalsabbildungs-Speicher 150 kann die Eingabe-Merkmalsabbildung IF speichern und die Eingabe-Merkmalsabbildung IF an die arithmetische Schaltung 160 und den Komprimierer 120 übermitteln. Der Kernelspeicher 140 kann die Kerneldaten KD, die eine Mehrzahl an Gewichtswerten enthalten, die für eine Convolution Operation verwendet werden sollen, enthalten und die Kerneldaten KD an die arithmetische Schaltung 160 übermitteln. Der Ausgabe-Merkmalsabbildungs-Speicher 155 kann die von der arithmetischen Schaltung 160 empfangene Ausgabe-Merkmalsabbildung OF speichern und eine gespeicherte Merkmalsabbildung FM an den Komprimierer 120 ausgeben.
  • Die arithmetische Schaltung 160 kann die Eingabe-Merkmalsabbildung IF vom Eingabe-Merkmalsabbildungs-Speicher 150 empfangen und die Kerneldaten KD vom Kernelspeicher 140 empfangen. Die arithmetische Schaltung 160 kann die Ausgabe-Merkmalsabbildung OF durch Durchführen einer Convolution Operation unter Verwendung des empfangenen Eingabe-Merkmalsabbildungs-Speichers 150 und der empfangenen Kerneldaten KD erzeugen.
  • Die Steuerlogik 110 kann eine allgemeine Operation des neuronalen Netzwerkprozessors 100 steuern und kann zum Beispiel eine CPU sein. Die Steuerlogik 110 kann einen einzelnen Kern oder mehrere Kerne enthalten. Die Steuerlogik 110 kann Funktionen des neuronalen Netzwerkprozessors 100 durch Ausführen von im internen Speicher 130 gespeicherten Programmen steuern.
  • Der Komprimierer 120 kann die Merkmalsabbildung FM empfangen und komprimierte Daten CD durch Verwenden von Positionsinformationen eines Nicht-Null-Pixels mit einem Wert, der nicht null („0“) ist, als einem Datenwert unter einer in der Merkmalsabbildung FM enthaltenen Mehrzahl an Pixeln und eines Datenwerts des Nicht-Null-Pixels erzeugen. Die Merkmalsabbildung FM kann die Eingabe-Merkmalsabbildung IF enthalten, die von außerhalb oder der Ausgabe-Merkmalsabbildung OF, die von der arithmetischen Schaltung 160 empfangen wird, empfangen wird. Der Komprimierer 120 kann eine Datenverarbeitungsschaltung oder eine Software enthalten.
  • Der Komprimierer 120 kann als ein Dekomprimierer agieren, der konfiguriert ist, um komprimierte Daten CD von außerhalb (z.B. dem RAM 200 aus 2) zu empfangen und die empfangenen komprimierten Daten CD zu dekomprimieren. Ein Dekomprimierungsverfahren kann in einer umgekehrten Reihenfolge des Komprimierungsverfahrens durchgeführt werden und somit können Ausführungsbeispiele nicht nur auf dem Komprimierungsverfahren sondern auch auf dem Dekomprimierungsverfahren zur Wiederherstellung der Merkmalsabbildung FM durch komprimierte Daten angewandt werden. Zum Beispiel kann der Komprimierer 120 komprimierte Daten CD von außerhalb empfangen und die empfangenen komprimierten Daten CD dekomprimieren, um eine Eingabe-Merkmalsabbildung IF zu erzeugen und die erzeugte Eingabe-Merkmalsabbildung IF im Eingabe-Merkmalsabbildungs-Speicher 150 zu speichern.
  • Ausführungsbeispiele zum Komprimieren von Eingabedaten enthalten zum Beispiel Komprimieren einer Merkmalsabbildung FM, allerdings sind Ausführungsformen nicht darauf beschränkt und andere Eingabe Daten, zum Beispiel Kerneldaten KD, können komprimiert werden.
  • 6 ist ein Flussdiagramm eines Verfahrens zum Betreiben eines Komprimierers nach einem Ausführungsbeispiel.
  • Bezugnehmend auf 5 und 6 kann der Komprimierer 120 in Operation S10 die komprimierten Daten CD durch Verwenden von Positionsinformationen, die eine Position eines Nicht-Null-Pixels auf einer Teilungsebene wiederholt angeben, und eines Datenwerts des Nicht-Null-Pixels erzeugen. In Operation S20 kann der Komprimierer 120 die erzeugten komprimierten Daten CD an einen Speicher (z.B. den RAM 200 aus 2) derart ausgeben, dass die erzeugten komprimierten Daten CD im Speicher gespeichert werden.
  • 7 ist ein Flussdiagramm eines Verfahrens zum Betreiben eines Komprimierers nach einem weiteren Ausführungsbeispiel. 7 kann mindestens ein Abschnitt (S10 aus 6) eines Verfahrens, das von einem Komprimierer durchgeführt wird, zum Erzeugen von komprimierten Daten sein und zeigt ein Verfahren zum Erzeugen von Bitmap-Daten, die Positionsinformationen einer Nicht-Null-Zelle, die einen Nicht-Null-Pixel enthält, angeben.
  • Bezugnehmend auf 5 und 7 kann der Komprimierer 120 in Operation S110 Gruppen-Mapping-Daten erzeugen, die Positionsinformationen einer Nicht-Null-Gruppe angeben, die mindestens einen Nicht-Null-Pixel unter einer Mehrzahl an Gruppen, welche von einer Mehrzahl an Zellen in Reiheneinheiten unterteilt werden, enthalten.
  • Nach einem Ausführungsbeispiel gibt die Mehrzahl an Zellen Pixeleinheiten an, wobei jede Pixeleinheit N X N Pixel enthält, wobei N eine natürliche Zahl ist und eine Zelle, die mindestens einen Nicht-Null-Pixel enthält, als eine Nicht-Null-Zelle bezeichnet werden kann.
  • In Operation S120 kann der Komprimierer 120 Zell-Mapping-Daten erzeugen, die Positionsinformationen einer Nicht-Null-Zelle in einer Nicht-Null-Gruppe angeben. In Operation S130 kann der Komprimierer 120 Pixel-Anzahldaten erzeugen, welche die in der Nicht-Null-Zelle enthaltene Anzahl an Nicht-Null-Pixeln angeben.
  • Nach einem Ausführungsbeispiel kann der Komprimierer 120 Bitmap-Daten erzeugen, die hierarchische Daten enthalten, die eine Position eines Nicht-Null-Pixels nach einer Teilungsebene angeben, und wie oben in der vorliegenden Spezifikation beschrieben, kann ein Verfahren zum Angeben einer Position eines Nicht-Null-Pixels durch Erzeugen von hierarchischen Daten basierend auf einer Teilungsebene als ein Quadtree-Schema bezeichnet werden. Das Quadtree-Schema wird mit Bezug auf 11 detailliert beschrieben.
  • Nach einem Ausführungsbeispiel kann der Komprimierer 120 Bitmap-Daten, die Gruppen-Mapping-Daten enthalten, die Positionsinformationen einer Nicht-Null-Gruppe angeben, Zellen-Mapping-Daten, die Positionsinformationen einer Nicht-Null-Zelle in der Nicht-Null-Gruppe angeben, und Pixel-Anzahldaten, welche die Anzahl an Nicht-Null-Pixeln angeben, erzeugen.
  • 8 ist ein Flussdiagramm eines Verfahrens zum Betreiben eines Komprimierers nach einem weiteren Ausführungsbeispiel. Detailliert ist 8 mindestens ein Abschnitt (S10 aus 6) eines Verfahrens, das von einem Komprimierer durchgeführt wird, zum Erzeugen von komprimierten Daten und zeigt ein Verfahren zum Erzeugen von Zelldaten, die Positionsinformationen eines Nicht-Null-Pixels in einer Nicht-Null-Zelle und einen Datenwert des Nicht-Null-Pixels angeben.
  • Bezugnehmend auf 5 und 8 kann der Komprimierer 120 in Operation S210 maximale Bit-Daten erzeugen, die Informationen über eine maximale Anzahl an Bits eines Nicht-Null-Pixels angeben. In Operation S220 kann der Komprimierer 120 Pixel-Positionsdaten erzeugen, die Positionsinformationen des Nicht-Null-Pixels durch wiederholtes Angeben einer Position des Nicht-Null-Pixels auf einem Quadranten einer Nicht-Null-Zelle angeben. In Operation S230 kann der Komprimierer 120 Nicht-Null-Pixel-Daten erzeugen, die einen Wert des Nicht-Null-Pixels angeben.
  • Nach einem Ausführungsbeispiel kann der Komprimierer 120 mindestens einen Teil von Zelldaten, die maximale Bit-Daten, die Informationen über eine maximale Bit-Breite eines Nicht-Null-Pixels angeben, Pixel-Positionsdaten, die Positionsinformationen des Nicht-Null-Pixels in einer Nicht-Null-Zelle angeben, und Nicht-Null-Pixel-Daten, die einen Wert des Nicht-Null-Pixels angeben, enthalten, erzeugen.
  • 9 zeigt eine Eingabe-Merkmalsabbildung nach einem Ausführungsbeispiel auf.
  • Bezugnehmend auf 9 kann eine Eingabe-Merkmalsabbildung FM 8X8 Pixel enthalten und eine Mehrzahl an Pixeln kann einen Null-Pixel ZP mit „0“ als einem Datenwert und einen Nicht-Null-Pixel NP mit einem Wert, der nicht „0“ ist, als einem Datenwert enthalten. Wie oben beschrieben, ist eine ReLU-Operation auf die Merkmalsabbildung FM anwendbar und somit können Pixel mit einem Datenwert, der einer negativen Anzahl unter der Mehrzahl an Pixeln entspricht, durch Null-Pixel ZP ersetzt werden.
  • Obwohl 9 Pixel mit Acht-Bit-Daten zeigt, ist dies lediglich illustrativ und jeder der Mehrzahl an Pixeln kann Daten aufweisen, die größer oder kleiner als acht Bits sind. Zusätzlich, obwohl 9 ein Beispiel zeigt, in dem die Merkmalsabbildung FM 8X8 Pixel enthält, kann die Merkmalsabbildung FM Pixel enthalten, die größer oder kleiner als 8X8 sind.
  • 10 zeigt eine Merkmalsabbildung nach einem Ausführungsbeispiel auf.
  • Bezugnehmend auf 10 kann eine Merkmalsabbildung FM drei Gruppen, z.B. eine erste Gruppe G1, eine zweite Gruppe G2 und eine dritte Gruppe G3, enthalten, die in Reiheneinheiten unterteilt sind. Die erste Gruppe kann eine erste Zelle C1, eine zweite Zelle C2 und eine dritte Zelle C3 enthalten, die zweite Gruppe G2 kann eine vierte Zelle C4, eine fünfte Zelle C5 und eine sechste Zelle C6 enthalten, und die dritte Gruppe G3 kann eine siebte Zelle C7, eine achte Zelle C8 und eine neunte Zelle C9 enthalten. In dem Beispiel aus 10 gibt eine Zelle eine Pixeleinheit an, die 4X4 Pixel enthält, und die zweite Zelle C2 enthält einen Nicht-Null-Pixel NP und somit kann die zweite Zelle C2 als eine Nicht-Null-Zelle bezeichnet werden. Zusätzlich kann die erste Gruppe G1, welche die zweite Zelle C2, die eine Nicht-Null-Zelle ist, enthält, als eine Nicht-Null-Gruppe bezeichnet werden.
  • 11 zeigt ein Verfahren zum Erzeugen von komprimierten Daten nach einem Ausführungsbeispiel auf. Detailliert zeigt 11 ein Verfahren zum Erzeugen von komprimierten Daten auf, wenn ein Merkmalsabbildung einen Nicht-Null-Pixel enthält.
  • Bezugnehmend auf 5 und 11 kann die fünften Zelle C5, welche die Merkmalsabbildung FM bildet, einen Nicht-Null-Pixel NP enthalten. Nach einem Ausführungsbeispiel kann der Komprimierer 120 komprimierte Daten CD durch Verwenden der Merkmalsabbildung FM basierend auf einem Quadtree QT erzeugen.
  • Der Komprimierer 120 kann Gruppen-Mapping-Daten GMD durch Angeben, ob jede einer Mehrzahl an Gruppen den Nicht-Null-Pixel NP bei einem entsprechenden Bit enthält, erzeugen. In dem Beispiel aus 11 können die erste Gruppe G1 und die dritte Gruppe G3 den Nicht-Null-Pixel NP womöglich nicht enthalten und die zweite Gruppe G2 kann einen Nicht-Null-Pixel NP enthalten. Der Komprimierer 120 kann ein erstes Bit, das der ersten Gruppe G1 entspricht, und ein drittes Bit, das der dritten Gruppe G3 entspricht, als „0“ konfigurieren und ein zweites Bit, das der zweiten Gruppe G2 entspricht, als „1“ konfigurieren, und infolgedessen kann der Komprimierer 120 „010“ als die Gruppen-Mapping-Daten GMD erzeugen. Da sowohl die erste Gruppe G1 als auch die dritte Gruppe G3 „00“ als Pixeldaten aufweisen, kann der Komprimierer 120 Daten der ersten Gruppe G1 und der dritten Gruppe G3 ignorieren.
  • Der Komprimierer 120 kann Zell-Mapping-Daten CMD durch Angeben, ob eine einer in der zweiten Gruppe G2 enthaltenen Mehrzahl an Zellen den Nicht-Null-Pixel bei einem entsprechenden Bit enthält, erzeugen. In dem Beispiel aus 11 können die vierte Zelle C4 und die sechste Zelle C6 womöglich keinen Nicht-Null-Pixel NP enthalten und die fünfte Zelle C5 kann den Nicht-Null-Pixel NP enthalten. Der Komprimierer 120 kann ein erstes Bit, das der vierten Gruppe G4 entspricht, und ein drittes Bit, das der sechsten Gruppe G6 entspricht, als „0“ konfigurieren und ein zweites Bit, das der fünften Gruppe G5 entspricht, als „1“ konfigurieren, und infolgedessen kann der Komprimierer 120 „010“ als die Zell-Mapping-Daten CMD erzeugen. Da sowohl die vierte Zelle C4 als auch die sechste Zelle C6 „00“ als Pixeldaten aufweisen, kann der Komprimierer 120 Daten der vierten Zelle C4 und der sechsten Zelle C6 ignorieren. Obwohl 11 zeigt, dass drei Bits als die Gruppen-Mapping-Daten GMD und die Zell-Mapping-Daten CMD zugewiesen sind, ist dies lediglich illustrativ und mehr oder weniger Bits als drei Bits können als die Gruppen-Mapping-Daten GMD und die Zell-Mapping-Daten CMD basierend auf der Anzahl an Gruppen und der Anzahl an Zellen zugewiesen werden.
  • Der Komprimierer 120 kann Pixel-Anzahldaten PND basierend auf der Anzahl an Nicht-Null-Pixeln NP erzeugen. In dem Beispiel aus 11 ist die Anzahl an Nicht-Null-Pixeln NP 1 und somit kann der Komprimierer 120 „001“, was der Anzahl an Nicht-Null-Pixeln NP entspricht, als die Pixel-Anzahldaten PND erzeugen. Obwohl 11 zeigt, dass drei Bits als die Pixel-Anzahldaten PND zugewiesen sind, ist dies lediglich illustrativ und mehr oder weniger Bits als drei Bits können als die Pixel-Anzahldaten PND zugewiesen werden.
  • Der Komprimierer 120 kann Bitmap-Daten BMD, welche die Gruppen-Mapping-Daten GMD, die Zell-Mapping-Daten CMD und die Pixel-Anzahldaten PND enthalten, wie oben beschrieben erzeugen. Nach einem Ausführungsbeispiel kann der Komprimierer 120 beliebige Pad-Bits zu den Bitmap-Daten BMD hinzufügen, um die Anzahl an Bits (z.B. eine Mehrzahl von acht Bits) zu erfüllen.
  • Der Komprimierer 120 kann die fünfte Zelle C5 in Quadranten unterteilen und angeben, ob jeder der Quadranten den Nicht-Null-Pixel NP bei einem entsprechenden Bit enthält, wodurch mindestens ein Teil von Pixel-Positionsdaten erzeugt wird. In dem Beispiel aus 11 können ein erster Quadrant Q1, ein zweiter Quadrant Q2 und ein vierter Quadrant Q4 womöglich keinen Nicht-Null-Pixel NP enthalten und ein dritter Quadrant Q3 kann den Nicht-Null-Pixel NP enthalten. Somit kann der Komprimierer 120 ein erstes Bit, das dem ersten Quadranten Q1 entspricht, ein zweites Bit, das dem zweiten Quadranten Q2 entspricht und ein viertes Bit, das dem vierten Quadranten Q4 entspricht, als „0“ konfigurieren und ein drittes Bit, das dem dritten Quadranten Q3 entspricht, als „1“ konfigurieren, und infolgedessen kann der Komprimierer 120 „0010“ als die ersten Pixel-Positionsdaten PLD1 erzeugen.
  • Der Komprimierer 120 kann Pixel-Positionsdaten wie oben beschrieben erzeugen, bis der Nicht-Null-Pixel NP bestimmt wird. In dem Beispiel aus 11 enthält der dritte Quadrant Q3 vier Pixel und der Nicht-Null-Pixel NP ist bei einer ersten Position (oben links) im dritten Quadranten Q3 positioniert und somit kann der Komprimierer 120 lediglich ein Bit, das dem Nichts-Null-Pixel NP entspricht, als „1“ konfigurieren und Bits, die bei den verbleibenden Positionen positioniert sind, als „0“ konfigurieren. Infolgedessen kann der Komprimierer 120 „1000“ als zweite Pixel-Positionsdaten PLD2 erzeugen.
  • In 11 wird ein Nicht-Null-Pixel mit zwei Pixel-Positionsdaten-Teilen bestimmt und somit sind die zwei Pixel-Positionsdaten-Teile in den komprimierten Daten CD enthalten, allerdings sind Ausführungsformen nicht darauf beschränkt und zwei oder mehr oder weniger Pixel-Positionsdaten-Teile können in den komprimierten Daten CD enthalten sein.
  • Der Komprimierer 120 kann Nicht-Null-Pixel-Daten NPD basierend auf einem Datenwert des Nicht-Null-Pixels NP erzeugen. In dem Beispiel aus 11 weist der Nicht-Null-Pixel NP einen Acht-Bit Datenwert von „02“ auf und somit kann der Komprimierer 120 einen Zwei-Bit Datenwert von „00000010“ als die Nicht-Null-Pixel-Daten NPD erzeugen, um dem Acht-Bit Datenwert von „02“ zu entsprechen.
  • Der Komprimierer 120 kann Zelldaten CLD, welche die ersten Pixel-Positionsdaten PLD1, die zweiten Pixel-Positionsdaten PLD2 und die Nicht-Null-Pixel-Daten NPD enthalten, erzeugen und komprimierte Daten CD, welche die Bitmap-Daten BMD und die Zelldaten CLD enthalten, erzeugen. Nach einem Ausführungsbeispiel kann der Komprimierer 120 beliebige Pad-Bits zu den Zelldaten CLD hinzufügen, um die Anzahl an Bits (z.B. eine Mehrzahl von acht Bits) zu erfüllen.
  • Nach einem Ausführungsbeispiel kann eine Position eines Nicht-Null-Pixels basierend auf einem Quadtree bestimmt werden und komprimierte Daten CD können durch Verwenden der bestimmten Position des Nicht-Null-Pixels erzeugt werden, wodurch eine Datenmenge der komprimierten Daten CD reduziert wird und eine Datenübertragungsrate erhöht wird.
  • Nach einem Ausführungsbeispiel kann der Komprimierer 120 die Merkmalsabbildung FM basierend auf den komprimierten Daten CD wiederherstellen. Nach einem Ausführungsbeispiel kann der Komprimierer 120 eine Position einer Nicht-Null-Zelle basierend auf den Gruppen-Mapping-Daten GMD und den Zell-Mapping-Daten CMD wiederherstellen, die Anzahl an Nicht-Null-Pixeln basierend auf den Pixel-Anzahldaten PND wiederherstellen, und eine Position eines Nicht-Null-Pixels basierend auf den ersten Pixel-Positionsdaten PLD1 und den zweiten Pixel-Positionsdaten PLD2 wiederherstellen. Der Komprimierer 120 kann die Merkmalsabbildung FM durch Eingeben eines Datenwerts des Nicht-Null-Pixels an der wiederhergestellten Position des Nicht-Null-Pixels basierend auf den Nicht-Null-Pixel-Daten NPD und Eingeben von „00“ an den verbleibenden Positionen wiederherstellen.
  • Obwohl 11 ein Beispiel zeigt, in dem die komprimierten Daten CD die Gruppen-Mapping-Daten GMD, die Zell-Mapping-Daten CMD, die Pixel-Anzahldaten PND, die ersten Pixel-Positionsdaten PLD1, die zweiten Pixel-Positionsdaten PLD2 und die Nicht-Null-Pixel-Daten NPD sequenziell enthalten, ist dies lediglich illustrativ und die komprimierten Daten können durch verschiedene Sequenzkombinationen der oben beschriebenen Daten erzeugt werden.
  • 12 zeigt ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel auf. Detailliert zeigt 12 ein Verfahren zum Erzeugen von komprimierten Daten auf, wenn eine Merkmalsabbildung einen Nicht-Null-Pixel enthält. Die mit Bezug auf 11 getätigte Beschreibung wird hierin nicht wiederholt.
  • Bezugnehmend auf 5 und 12 kann der Komprimierer maximale Bit-Daten MBD erzeugen. Die maximalen Bit-Daten MBD können eine maximale Anzahl an Bits eines Datenwerts eines Nicht-Null-Pixels NP angeben. Nach einem Ausführungsbeispiel können die maximalen Bit-Daten MBD „die maximale Anzahl an Bits eines Datenwerts des Nicht-Null-Pixels NP - 1“ als einen Datenwert aufweisen. In dem Beispiel aus 2 ist der Datenwert des Nicht-Null-Pixels NP „02“ und somit kann die maximale Anzahl an Bits des Datenwerts des Nicht-Null-Pixels NP 2 sein. Somit können die maximalen Bit-Daten MBD als „001“ konfiguriert werden, was zwei Bits entspricht. Nach einem Ausführungsbeispiel liegt mindestens ein Bit als der Datenwert des Nicht-Null-Pixels NP vor und somit kann „000“ einem Bit entsprechen und „001“ kann zwei Bits entsprechen. Zum Beispiel können die maximalen Bit-Daten MBD, die acht Bits entsprechen, „111“ sein.
  • Wenn die maximalen Bit-Daten MBD vorliegen, kann der Komprimierer 120 die Nicht-Null-Pixel-Daten NPD von „00000010“ durch Entfernen der unnötigen „0“ en zu „10“ verändern. Im Wiederherstellungsprozess kann der Komprimierer 120 durch Berücksichtigen der maximalen Bit-Daten MBD die Pixeldaten als „02“ berücksichtigen.
  • 13A zeigt ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel auf. Detailliert zeigt 13A ein Verfahren zum Erzeugen von komprimierten Daten auf, wenn eine Zelle eine Mehrzahl an Nicht-Null-Pixeln enthält. Die mit Bezug auf 11 und 12 getätigte Beschreibung wird hierin nicht wiederholt. Insbesondere ist mit Bezug auf 11 ein Verfahren zum Erzeugen von Gruppen-Mapping-Daten GMD und Zell-Mapping-Daten CMD in Bitmap-Daten BMD beschrieben worden und somit wird die Beschreibung davon hierin nicht wiederholt.
  • Bezugnehmend auf 5 und 13A kann der Komprimierer „010“ als die Pixel-Anzahldaten PND erzeugen, da die fünfte Zelle C5 zwei Nicht-Null-Pixel, zum Beispiel einen ersten Nicht-Null-Pixel NP1 und einen zweiten Nicht-Null-Pixel NP2, enthält. Der Komprimierer 120 kann „011“ als die maximalen Bit-Daten MBD erzeugen, was vier Bits entspricht, da ein Datenwert des zweiten Nicht-Null-Pixels NP2 „0E“ ist und mit vier Bits dargestellt werden kann.
  • Der Komprimierer 120 kann ein erstes Bit, das dem ersten Quadranten Q1 entspricht, und ein viertes Bit, das dem vierten Quadranten Q4 entspricht, als „0“ konfigurieren und ein zweites Bit, das dem zweiten Quadranten Q2 entspricht, und ein drittes Bit, das dem dritten Quadranten Q3 entspricht, als „1“ konfigurieren. Somit kann der Komprimierer 120 „0110“ als erste Pixel-Positionsdaten PLD1 konfigurieren, da der erste Nicht-Null-Pixel NP1 im zweiten Quadranten Q2 positioniert ist, und der zweite Nicht-Null-Pixel NP2 im dritten Quadranten Q3 positioniert ist. Zusätzlich, da der erste Nicht-Null-Pixel NP1 an einer zweiten Position (oben rechts) im zweiten Quadranten Q2 positioniert ist, kann der Komprimierer 120 „0100“ als zweite Pixel-Positionsdaten PLD2 erzeugen, und da der zweite Nicht-Null-Pixel NP2 an einer ersten Position (oben links) im dritten Quadranten Q3 positioniert ist, kann der Komprimierer 120 „1000“ als dritte Pixel-Positionsdaten PLD3 erzeugen.
  • Der Komprimierer 120 kann „1110“, was „0E“ entspricht, welches ein Datenwert des ersten Nicht-Null-Pixels NP1 ist, als erste Nicht-Null-Pixel-Daten NPD1 erzeugen, „0010“, was „01“ entspricht, welches ein Datenwert des zweiten Nicht-Null-Pixels NP2 ist, als zweite Nicht-Null-Pixel-Daten NPD2 erzeugen, und komprimierte Daten CD durch Anordnen der erzeugten Datenteile nach einer zuvor definierten Regel erzeugen.
  • 13B zeigt ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel auf. Detailliert zeigt 13B ein Verfahren zum Erzeugen von komprimierten Daten auf, wenn eine Zelle eine Mehrzahl an Nicht-Null-Pixeln enthält. Die mit Bezug auf 13A getätigte Beschreibung wird hierin nicht wiederholt.
  • Bezugnehmend auf 5 und 13B kann der Komprimierer 120 jeweils erste maximale Bit-Daten MBD1 und zweite maximale Bit-Daten MBD2 für einen ersten Nicht-Null-Pixel NP1 und einen zweiten Nicht-Null-Pixel NP2 erzeugen. Der Komprimierer 120 kann erste Teilzellendaten SCLD1 erzeugen, welche die ersten maximalen Bit-Daten MBD1, die ersten Pixel-Positionsdaten PLD1, die zweiten Pixel-Positionsdaten PLD2 und die ersten Nicht-Null-Pixeldaten NPD1 in Übereinstimmung mit dem ersten Nicht-Null-Pixel NP1 enthalten, und zweite Teilzellendaten SCLD2 erzeugen, welche die zweiten maximalen Bit-Daten MBD2, die dritten Pixel-Positionsdaten PLD3, vierte Pixel-Positionsdaten PLD4 und die zweiten Nicht-Null-Pixel-Daten NPD2 in Übereinstimmung mit dem zweiten Nicht-Null-Pixel NP2 enthalten. Ein Verfahren zum Erzeugen von allen Daten ist oben beschrieben worden und somit wird die Beschreibung davon hierin nicht wiederholt.
  • 13C zeigt ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel auf. Detailliert zeigt 13C ein Verfahren zum Erzeugen von komprimierten Daten auf, wenn eine Zelle eine Mehrzahl an Nicht-Null-Pixeln enthält. Die mit Bezug auf 13A getätigte Beschreibung wird hierin nicht wiederholt.
  • Bezugnehmend auf 5 und 13C kann der Komprimierer 120 jeweils erste maximale Bit-Daten MBD1 und zweite maximale Bit-Daten MBD2 für einen ersten Nicht-Null-Pixel NP1 und einen zweiten Nicht-Null-Pixel NP2 erzeugen. Der Komprimierer 120 kann erste Pixel-Positionsdaten PLD1, zweite Pixel-Positionsdaten PLD2 und dritte Pixel-Positionsdaten PLD3 basierend auf Positionen des ersten Nicht-Null-Pixels NP1 und des zweiten Nicht-Null-Pixels NP2 in der fünften Zelle C5 erzeugen. Zusätzlich kann der Komprimierer 120 die ersten maximalen Bit-Daten MBD1 und erste Nicht-Null-Pixel-Daten NPD1 in Übereinstimmung mit dem ersten Nicht-Null-Pixel NP1 erzeugen und die zweiten maximalen Bit-Daten MBD2 und zweite Nicht-Null-Pixel-Daten NPD2 in Übereinstimmung mit dem zweiten Nicht-Null-Pixel NP2 erzeugen. Ein Verfahren zum Erzeugen von allen Daten ist oben beschrieben worden und somit wird die Beschreibung davon hierin nicht wiederholt.
  • 14 zeigt ein Verfahren zum Erzeugen von komprimierten Daten nach einem weiteren Ausführungsbeispiel auf. Detailliert zeigt 14 ein Verfahren zum Erzeugen von komprimierten Daten auf, wenn eine Mehrzahl an Zellen mindestens einen Nicht-Null-Pixel enthält. Die mit Bezug auf 11 und 12 getätigte Beschreibung wird hierin nicht wiederholt. Insbesondere ist mit Bezug auf 11 ein Verfahren zum Erzeugen von Bitmap-Daten BMD beschrieben worden und somit wird die Beschreibung davon hierin nicht wiederholt.
  • Bezugnehmend auf 5 und 14 kann der Komprimierer 120 „011“ als Pixel-Anzahldaten PND erzeugen, da die Merkmalsabbildung FM drei Nicht-Null-Pixel, zum Beispiel einen ersten Nicht-Null-Pixel NP1, einen zweiten Nicht-Null-Pixel NP2 und einen dritten Nicht-Null-Pixel NP3, enthält. Der Komprimierer 120 kann die ersten Zelldaten CD1 durch das gleiche Verfahren wie oben mit Bezug auf 12 beschrieben durchführen.
  • Der Komprimierer 120 kann „101“ als zweite Zell-Mapping-Daten CMD2 konfigurieren, da die siebte Zelle C7 in der dritten Gruppe G3 den zweiten Nicht-Null-Pixel NP2 enthält und die neunte Zelle C9 den dritten Nicht-Null-Pixel NP3 enthält. Zusätzlich kann der Komprimierer 120 basierend auf „19“, was ein Datenwert des zweiten Nicht-Null-Pixels NP2 ist, der einen größeren Datenwert zwischen dem zweiten Nicht-Null-Pixel NP2 und dem dritten Nicht-Null-Pixel NP3 aufweist, „100“ als zweite maximale Bit-Daten MBD2 konfigurieren.
  • Der Komprimierer 120 kann dritte Pixel-Positionsdaten PLD3 und vierte Pixel-Positionsdaten PLD4 basierend auf einer Position des zweiten Nicht-Null-Pixels NP2 erzeugen und zweite Nicht-Null-Pixel-Daten NPD2 basierend auf dem Datenwert des zweiten Nicht-Null-Pixels NP2 erzeugen. Zusätzlich kann der Komprimierer 120 fünfte Pixel-Positionsdaten PLD5 und sechste Pixel-Positionsdaten PLD6 basierend auf einer Position des dritten Nicht-Null-Pixels NP3 erzeugen und dritte Nicht-Null-Pixel-Daten NPD3 basierend auf einem Datenwert des dritten Nicht-Null-Pixels NP3 erzeugen.
  • Der Komprimierer 120 kann komprimierte Daten CD durch Anordnen der erzeugten Datenteile nach einer zuvor definierten Regel erzeugen.
  • 15 ist ein Blockdiagramm eines Anwendungsprozessors 1000 nach einem Ausführungsbeispiel. Der Anwendungsprozessor 1000 kann durch ein Ein-Chip-System (SoC) als ein Halbleiterchip umgesetzt werden.
  • Bezugnehmend auf 15 kann der Anwendungsprozessor 1000 einen Prozessor 1010 und einen Arbeitsspeicher 1020 enthalten. Zusätzlich kann der Anwendungsprozessor 1000 ferner ein oder mehrere IP-Module enthalten, die mit einem Systembus verbunden sind. Der Arbeitsspeicher 1020 kann Software, wie verschiedene Arten von Programmen und Anweisungen bezüglich einer Operation eines Systems, das den Anwendungsprozessor 1000 einsetzt, enthalten und kann zum Beispiel ein OS 1021, ein neuronales Netzwerk(NN)-Modul 1022 und ein Komprimierer-Modul 1023 enthalten. Das Komprimierer-Modul 1023 kann als der Komprimierer nach den oben beschriebenen Ausführungsbeispielen fungieren.
  • Das NN-Modul 1022 kann eine arithmetische Operation eines existierenden neuronalen Netzwerkprozessors oder des neuronalen Netzwerkprozessors nach den Ausführungsbeispielen ausführen. Zusätzlich kann das Komprimierer-Modul 1023 ein neuronales Eingabe-Netzwerkmodell empfangen und eine Komprimierungsoperation nach den Ausführungsbeispielen durchführen. Nach einem Ausführungsbeispiel kann das NN-Modul 1022 im OS 1021 umgesetzt werden.
  • Obwohl 15 einen Prozessor 1010 zeigt, kann der Anwendungsprozessor eine Mehrzahl an Prozessoren enthalten. In diesem Fall können manche der Mehrzahl an Prozessoren allgemeinen Prozessoren entsprechen und die anderen können exklusive Prozessoren für die Ausführung eines neuronalen Netzwerkmodels sein.
  • Obwohl Ausführungsformen mit Bezug auf die Figuren beschrieben worden sind, versteht der Fachmann, dass verschiedene Änderungen in Form und Details darin vorgenommen werden können, ohne dabei vom Geist und Umfang, welche durch die nachfolgenden Ansprüche definiert sind, abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 1020190055157 [0001]

Claims (25)

  1. Neuronale Netzwerkvorrichtung, aufweisend: mindestens einen Prozessor, der konfiguriert ist, um folgendes umzusetzen: eine arithmetische Schaltung, die konfiguriert ist, um dritte Daten, die eine Mehrzahl an Pixeln aufweisen, basierend auf einem neuronalen Netzwerk, das konfiguriert ist, um eine arithmetische Operation an ersten Daten und zweiten Daten durchzuführen, zu erzeugen; und einen Komprimierer, der konfiguriert ist, um komprimierte Daten durch Komprimieren der dritten Daten zu erzeugen, wobei der Komprimierer ferner konfiguriert ist, um Bitmap-Daten, welche Positionsinformationen über einen Nicht-Null-Pixel, der einen Nicht-Null-Datenwert aufweist, unter der Mehrzahl an Pixeln aufweisen, basierend auf einer Quadtree-Struktur als die komprimierten Daten zu erzeugen.
  2. Neuronale Netzwerkvorrichtung nach Anspruch 1, wobei die dritten Daten eine Mehrzahl an Zellen aufweisen, wobei jede der Mehrzahl an Zellen n × n Pixel aufweist, wobei n eine natürliche Zahl ist, und wobei die Bitmap-Daten Informationen über eine Position um eine Nicht-Null-Zelle herum, welche den Nicht-Null-Pixel aufweist, unter der Mehrzahl an Zellen aufweisen.
  3. Neuronale Netzwerkvorrichtung nach Anspruch 2, wobei die Bitmap-Daten die Position um die Nicht-Null-Zelle herum durch wiederholtes Angeben der Position um die Nicht-Null-Zelle herum auf einer Mehrzahl an Teilungsebenen für mindestens einen Teil der dritten Daten angeben.
  4. Neuronale Netzwerkvorrichtung nach Anspruch 2, wobei die Bitmap-Daten aufweisen: Gruppen-Mapping-Daten, die Informationen über eine Nicht-Null-Gruppe, welche die Nicht-Null-Zelle aufweist, unter einer Mehrzahl an Gruppen, welche von der Mehrzahl an Zellen in Reiheneinheiten unterteilt werden, angeben; und Zell-Mapping-Daten, die Informationen über die Nicht-Null-Zelle in der Nicht-Null-Gruppe angeben.
  5. Neuronale Netzwerkvorrichtung nach Anspruch 4, wobei die Gruppen-Mapping-Daten „1“ als ein Bit, das der Nicht-Null-Gruppe entspricht, aufweisen und „0“ als ein Bit, das der Gruppe unter der Mehrzahl an Gruppen, welche nicht die Nicht-Null-Gruppe ist, entspricht, aufweisen, und wobei die Zell-Mapping-Daten „1“ als ein Bit, das der Nicht-Null-Zelle entspricht, aufweisen und „0“ als ein Bit, das Zellen unter der Mehrzahl an Zellen, welche nicht die Nicht-Null-Zelle sind, entspricht, aufweisen.
  6. Neuronale Netzwerkvorrichtung nach Anspruch 4, wobei die Mehrzahl an Zellen eine erste Nicht-Null-Zelle und eine zweite Nicht-Null-Zelle aufweist, und wobei die Zell-Mapping-Daten erste Teilzellen-Mapping-Daten, die eine Position um die erste Nicht-Null-Zelle herum angeben, und zweite Teilzellen-Mapping-Daten, die eine Position um die zweite Nicht-Null-Zelle herum angeben, aufweisen.
  7. Neuronale Netzwerkvorrichtung nach Anspruch 2, wobei die Bitmap-Daten ferner Pixel-Anzahldaten aufweisen, die eine Anzahl der in der Nicht-Null-Zelle enthaltenen Nicht-Null-Pixel angeben.
  8. Neuronale Netzwerkvorrichtung nach Anspruch 2, wobei die komprimierten Daten ferner mindestens einen Zelldatenteil aufweisen, der Positionsinformationen und Dateninformationen des Nicht-Null-Pixels aufweist.
  9. Neuronale Netzwerkvorrichtung nach Anspruch 8, wobei jeder des mindestens einen Zelldatenteils Pixel-Positionsdaten, die Informationen über eine Position um den Nicht-Null-Pixel in der Nicht-Null-Zelle herum angeben, und Nicht-Null-Pixel-Daten, die einen Datenwert des Nicht-Null-Pixels angeben, aufweisen.
  10. Neuronale Netzwerkvorrichtung nach Anspruch 9, wobei die Pixel-Positionsdaten basierend auf einem Quadtree, der die Position um den Nicht-Null-Pixel herum durch wiederholtes Angeben der Position um den Nicht-Null-Pixel herum auf einer Mehrzahl an Teilungsebenen für mindestens einen Teil der dritten Daten angibt, erzeugt werden.
  11. Neuronale Netzwerkvorrichtung nach Anspruch 9, wobei die komprimierten Daten ferner maximale Bit-Daten aufweisen, die eine maximale Anzahl an Bits des Datenwerts des Nicht-Null-Pixels angeben.
  12. Neuronale Netzwerkvorrichtung nach Anspruch 11, wobei ein Datenwert der maximalen Bit-Daten m-1 ist, bei dem die maximale Anzahl der Bits des Nicht-Null-Pixels m ist.
  13. Rechnersystem, aufweisend: einen Speicher, der konfiguriert ist, um mindestens ein Programm zu speichern; und einen Prozessor, der konfiguriert ist, um eine arithmetische Operation eines neuronalen Netzwerks auf einer Merkmalsabbildung, welche eine Mehrzahl an Pixeln aufweist, durch Ausführen des mindestens einen Programms zu verarbeiten, wobei der Prozessor ferner konfiguriert ist, um die Merkmalsabbildung durch Erzeugen von Bitmap-Daten, welche Positionsinformationen über einen Nicht-Null-Pixel, der einen Nicht-Null-Datenwert aufweist, unter der Mehrzahl an Pixeln aufweisen, zu komprimieren.
  14. Rechnersystem nach Anspruch 13, wobei der Speicher ferner konfiguriert ist, um komprimierte Daten, welche basierend auf der Komprimierung der Merkmalsabbildung erzeugt werden, zu speichern.
  15. Rechnersystem nach Anspruch 13, wobei der Prozessor ferner konfiguriert ist, um die Bitmap-Daten basierend auf einem Quadtree, der eine Position um den Nicht-Null-Pixel herum durch wiederholtes Angeben der Position um den Nicht-Null-Pixel auf einer Mehrzahl an Teilungsebenen für mindestens einen Teil der Merkmalsabbildung angibt, zu erzeugen.
  16. Rechnersystem nach Anspruch 13, wobei die Merkmalsabbildung eine Mehrzahl an Zellen aufweist, wobei jede der Mehrzahl an Zellen n × n Pixel aufweist, wobei n eine natürliche Zahl ist, und wobei der Prozessor ferner konfiguriert ist, um folgendes als die Bitmap-Daten zu erzeugen: Gruppen-Mapping-Daten, die Informationen über eine Nicht-Null-Gruppe, welche die Nicht-Null-Zelle aufweist, unter einer Mehrzahl an Gruppen, welche von der Mehrzahl an Zellen in Reiheneinheiten unterteilt werden, angeben; und Zell-Mapping-Daten, die Informationen über die Nicht-Null-Zelle in der Nicht-Null-Gruppe angeben.
  17. Rechnersystem nach Anspruch 16, wobei der Prozessor ferner konfiguriert ist, um folgendes zu erzeugen: für die Gruppen-Mapping-Daten „1“ als ein Bit, das der Nicht-Null-Gruppe entspricht, und „0“ als ein Bit, das Gruppen unter der Mehrzahl an Gruppen, welche nicht die Nicht-Null-Gruppe sind, entspricht, und für die Zell-Mapping-Daten „1“ als ein Bit, das der Nicht-Null-Zelle entspricht, und „0“ für ein Bit, das Zellen unter der Mehrzahl an Zellen, welche nicht die Nicht-Null-Zelle sind, entspricht.
  18. Rechnersystem nach Anspruch 16, wobei der Prozessor ferner konfiguriert ist, um Pixel-Anzahldaten zu erzeugen, welche die Anzahl an in der Nicht-Null-Zelle enthaltenen Nicht-Null-Pixeln als die Bitmap-Daten angeben.
  19. Rechnersystem nach Anspruch 13, wobei der Prozess ferner konfiguriert ist, um mindestens einen Zelldatenteil zu erzeugen, der Positionsinformationen des Nicht-Null-Pixels und Dateninformationen des Nicht-Null-Pixels angibt.
  20. Rechnersystem nach Anspruch 19, wobei der Prozessor ferner konfiguriert ist, um Pixel-Positionsdaten, die Informationen über eine Position um den Nicht-Null-Pixel in einer Nicht-Null-Zelle herum angeben, und Nicht-Null-Pixel-Daten, die einen Datenwert des Nicht-Null-Pixels angeben, als jeden des mindestens einen Zelldatenteils zu erzeugen.
  21. Rechnersystem nach Anspruch 20, wobei der Prozessor ferner konfiguriert ist, um die Pixel-Positionsdaten basierend auf einem Quadtree, der eine Position um den Nicht-Null-Pixel herum durch wiederholtes Angeben der Position um den Nicht-Null-Pixel herum auf einer Mehrzahl an Teilungsebenen für mindestens einen Teil der Merkmalsabbildung angibt, zu erzeugen.
  22. Rechnersystem nach Anspruch 20, wobei der Prozessor ferner konfiguriert ist, um maximale Bit-Daten, die eine maximale Anzahl an Bits des Datenwerts des Nicht-Null-Pixels angeben, als jeden des mindestens einen Zelldatenteils zu erzeugen.
  23. Verfahren zur Verarbeitung einer Merkmalsabbildung eines neuronalen Netzwerks in einem Rechnersystem, das einen Speicher aufweist, wobei das Verfahren aufweist: Erzeugen komprimierter Daten basierend auf Positionsinformationen, die wiederholt auf einer Teilungsebene der Merkmalsabbildung eine Position um einen Nicht-Null-Pixel herum, der einen Nicht-Null-Datenwert aufweist, unter einer Mehrzahl an Pixeln, die in der Merkmalsabbildung enthalten ist, angeben, und basierend auf Daten des Nicht-Null-Pixels; und Speichern der komprimierten Daten im Speicher.
  24. Verfahren nach Anspruch 23, wobei Eingabedaten eine Mehrzahl an Zellen aufweisen, wobei jede Zelle n × n Pixel aufweist, wobei n eine natürliche Zahl ist, und die Erzeugung der komprimierten Daten aufweist: Erzeugen von Gruppen-Mapping-Daten, die Informationen über eine Nicht-Null-Gruppe, welche eine Nicht-Null-Zelle aufweist, unter einer Mehrzahl an Gruppen, welche von der Mehrzahl an Zellen in Reiheneinheiten unterteilt werden, angeben; Erzeugen von Zell-Mapping-Daten, die Informationen über die Nicht-Null-Zelle in der Nicht-Null-Gruppe angeben; und Erzeugen von Pixel-Anzahldaten, welche die Anzahl an in der Nicht-Null-Zelle enthaltenen Nicht-Null-Pixeln angeben.
  25. Verfahren nach Anspruch 24, aufweisend: Erzeugen von maximalen Bit-Daten, die Informationen über eine maximale Anzahl an Bits des Nicht-Null-Pixels angeben; und Erzeugen von mindestens einem Zelldatenteil, der Positionsinformationen und Dateninformationen des Nicht-Null-Pixels angibt, als die komprimierten Daten, wobei das Erzeugen des mindestens einen Zelldatenteils aufweist: Erzeugen von Pixel-Positionsdaten, die Informationen über den Nicht-Null-Pixel durch wiederholtes Angeben einer Position um den Nicht-Null-Pixel herum auf einem Quadranten der Nicht-Null-Zelle angeben, um die Position um den Nicht-Null-Pixel herum zu bestimmen; und Erzeugen von Nicht-Null-Pixel-Daten, die einen Datenwert des Nicht-Null-Pixels angeben.
DE102020100210.6A 2019-05-10 2020-01-08 Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend Pending DE102020100210A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190055157A KR20200129957A (ko) 2019-05-10 2019-05-10 피처맵 데이터에 대한 압축을 수행하는 뉴럴 네트워크 프로세서 및 이를 포함하는 컴퓨팅 시스템
KR10-2019-0055157 2019-05-10

Publications (1)

Publication Number Publication Date
DE102020100210A1 true DE102020100210A1 (de) 2020-11-12

Family

ID=72943466

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020100210.6A Pending DE102020100210A1 (de) 2019-05-10 2020-01-08 Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend

Country Status (4)

Country Link
US (1) US11664818B2 (de)
KR (1) KR20200129957A (de)
CN (1) CN111914988A (de)
DE (1) DE102020100210A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645281A (zh) * 2021-07-29 2021-11-12 上海熠知电子科技有限公司 一种面向深度学习的分布式服务器及服务器集群
CN114095033B (zh) * 2021-11-16 2024-05-14 上海交通大学 基于上下文的图卷积的目标交互关系语义无损压缩系统及方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915015B1 (en) 2000-03-21 2005-07-05 Hewlett-Packard Development Company, L.P. Apparatus for and method for SNR scalable quad-tree bit-plane coding
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
KR20120035096A (ko) 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
US9275328B1 (en) 2012-05-03 2016-03-01 Hrl Laboratories, Llc Neuromorphic compiler
US20160358069A1 (en) 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
US10970617B2 (en) 2015-08-21 2021-04-06 Institute Of Automation Chinese Academy Of Sciences Deep convolutional neural network acceleration and compression method based on parameter quantification
CN108427990B (zh) 2016-01-20 2020-05-22 中科寒武纪科技股份有限公司 神经网络计算系统和方法
JP2018089142A (ja) 2016-12-05 2018-06-14 学校法人同志社 脳機能イメージングデータからヒトの脳活動状態を推定する方法
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US11025907B2 (en) * 2019-02-28 2021-06-01 Google Llc Receptive-field-conforming convolution models for video coding

Also Published As

Publication number Publication date
US11664818B2 (en) 2023-05-30
KR20200129957A (ko) 2020-11-18
US20200356844A1 (en) 2020-11-12
CN111914988A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
DE102018133582A1 (de) Vorrichtung zur Ausführung einer neuronalen Netzoperation und Verfahren zum Betreiben dieser Vorrichtung
DE102018126342A1 (de) Transformieren von faltenden neuronalen netzen zum lernen von visuellen sequenzen
DE102018108324A1 (de) System und Verfahren zur Schätzung eines optischen Flusses
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102020101187A1 (de) Winograd-transformationsfaltungsoperation für neuronale netze
DE102019133028A1 (de) Für neuronale netzwerke geeignetes effizientes matrixformat
DE112019001310T5 (de) Systeme und verfahren zum reduzieren der menge an datenspeicher beim maschinellen lernen
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE112020003128T5 (de) Dilatierte faltung mit systolischem array
DE102019122818A1 (de) Neuronale Netzwerkvorrichtung für eine neuronale Netzwerkoperation, Verfahren zum Betreiben einer neuronalen Netzwerkvorrichtung und Anwendungsprozessor, der die neuronale Netzwerkvorrichtung beinhaltet
DE102017100609A1 (de) Online-Erfassung und Klassifizierung von dynamischen Gesten mit rekurrenten faltenden neuronalen Netzwerken
DE112015007176T5 (de) Visuelle Erkennung unter Verwendung von Deep Learning-Attributen
DE102019128750A1 (de) Reduzierung des detailgrades eines polygonnetzes, um eine komplexität einer bildlich wiedergegebenen geometrie innerhalb einer szene zu verringern
DE112019001044T5 (de) Verfahren und vorrichtung für maschinelles lernen, programm, gelerntes modell und diskriminiervorrichtung
DE102019007796A1 (de) Einsetzen eines der Detektion kritischer Kanten dienenden neuronalen Netzwerkes und eines geometrischen Modells zum Bestimmen von Kameraparametern aus einem einzigen Digitalbild
DE102009038454A1 (de) System und Verfahren zum Reduzieren einer Ausführungsdivergenz in Parallelverarbeitungsarchitekturen
DE102021105249A1 (de) Mikrotraining zur iterativen verfeinerung eines neuronalen netzes mit wenigen anpassungen
DE102018124211A1 (de) Lernbasierte Kameraposenschätzung von Bildern einer Umgebung
DE102019115244A1 (de) Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE102020101275A1 (de) Rechenvorrichtung zum Trainieren eines künstlichen neuronalen Netzwerkmodells, Verfahren zum Trainieren des künstlichen neuronalen Netzwerkmodells und Speichersystem zum Speichern desselben
DE102020100210A1 (de) Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend
DE102019134020A1 (de) Dekompprimierungstechniken zur verarbeitung komprimierter daten, die für künstliche neuronale netzwerke geeignet sind
DE102018114799A1 (de) Halbüberwachtes lernen zur orientierungspunktlokalisierung
DE102022107232A1 (de) Gepackter fehlerkorrekturcode (ecc) für komprimierten datenschutz

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)