DE102021211047A1 - Technologien zur region-of-interest-videocodierung - Google Patents

Technologien zur region-of-interest-videocodierung Download PDF

Info

Publication number
DE102021211047A1
DE102021211047A1 DE102021211047.9A DE102021211047A DE102021211047A1 DE 102021211047 A1 DE102021211047 A1 DE 102021211047A1 DE 102021211047 A DE102021211047 A DE 102021211047A DE 102021211047 A1 DE102021211047 A1 DE 102021211047A1
Authority
DE
Germany
Prior art keywords
frame
region
interest
video
parameter
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
DE102021211047.9A
Other languages
English (en)
Inventor
Praveen P. Nair
Palanivel Guruva Reddiar
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE102021211047A1 publication Critical patent/DE102021211047A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

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

Abstract

Techniken zur Region-of-Interest-Videocodierung sind offenbart. Ein Rechenknoten kann einen gewichteten durchschnittlichen Rauschparameter für einen codierten Frame mit einer Region-of-Interest durch Gewichten von Rauschen in der Region-of-Interest anders als Rauschen außerhalb der Region-of-Interest bestimmen. Ein derartiger gewichteter mittlerer Rauschparameter kann verwendet werden, um darauffolgende Frames des Videos zu codieren, um die Gesamtqualität der Codierung zu verbessern. Andere Anwendungen des gewichteten mittleren Rauschparameters sind offenbart.

Description

  • HINTERGRUND
  • Videocodierung erfordert einen Kompromiss zwischen Videoqualität und Bitrate einer Codierung. In einigen Fällen wird ein Codierer einen Frame codieren und dann einen Rauschparameter basierend auf den Differenzen zwischen dem codierten Frame und dem ursprünglichen Frame berechnen. Der Rauschparameter kann dann als Rückkopplung beim Abstimmen von Codierungsparametern, wie etwa der Anzahl von Bits, die dem nächsten Frame zugewiesen werden, verwendet werden. Ein derartiger Ansatz codiert jedoch möglicherweise Regions-of-Interest des Videos mit geringer Verzerrung nicht.
  • Figurenliste
  • Die hierin beschriebenen Konzepte sind beispielhaft und nicht einschränkend in den begleitenden Figuren veranschaulicht. Der Einfachheit und Klarheit der Veranschaulichung halber, sind in den Figuren veranschaulichte Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Soweit als angemessen angesehen, wurden Bezugszeichen in den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben.
    • 1 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform eines Quell-Rechenknotens zum Codieren und Senden von Video und eines Senken-Rechenknotens zum Empfangen und Decodieren von Video;
    • 2A ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform eines Rechenknotens der 1;
    • 2B stellt einen weiteren Überblick über beispielhafte Bauelemente innerhalb eines Rechenknotens der 1 bereit;
    • 3 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform einer Umgebung, die von einem Quell-Rechenknoten der 1 eingerichtet werden kann;
    • 4 ist ein vereinfachtes Blockdiagramm mindestens einer Ausführungsform einer Umgebung, die von einem Senken-Rechenknoten der 1 eingerichtet werden kann;
    • 5 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Codieren von Video, das von einem Quell-Rechenknoten der 1 ausgeführt werden kann;
    • 6 ist ein vereinfachtes Flussdiagramm mindestens einer Ausführungsform eines Verfahrens zum Decodieren von Video, das von einem Senken-Rechenknoten der 1 ausgeführt werden kann;
    • 7 veranschaulicht einen Überblick über eine Edge-Cloud-Konfiguration zum Edge-Computing;
    • 8 veranschaulicht Betriebsschichten unter Endpunkten, einer Edge-Cloud und Cloud-Rechenumgebungen;
    • 9 veranschaulicht einen beispielhaften Ansatz für Networking und Dienste in einem Edge-Computing-System;
    • 10 veranschaulicht einen Rechen- und Kommunikationsnutzungsfall, der Mobilzugriff auf Anwendungen in einem Edge-Computing-System involviert;
    • 11 veranschaulicht eine beispielhafte Mobil-Edge-Systemreferenzarchitektur, die gemäß einer ETSI-Multi-Access-Edge-Computing-Spezifikation (Multi-Access Edge Computing - MEC) eingerichtet ist;
    • 12 veranschaulicht eine Domain-Topologie für jeweilige Internet-der-Dinge-Netzwerke (IoT -Netzwerke), die durch Links mit jeweiligen Gateways gekoppelt sind, gemäß einem Beispiel;
    • 13 veranschaulicht ein Cloud-Rechennetzwerk in Kommunikation mit einem Mesh-Netzwerk von IoT-Vorrichtungen, die als eine Fog-Vorrichtung am Rand des Cloud-Rechennetzwerks arbeiten, gemäß einem Beispiel;
    • 14 veranschaulicht eine Zeichnung eines Cloud-Rechennetzwerks oder einer Cloud, in Kommunikation mit einer Anzahl von Internet-der-Dinge-Vorrichtungen (IoT-Vorrichtungen) gemäß einem Beispiel;
    • 15 veranschaulicht ein Blockdiagramm für eine beispielhafte IoT-Verarbeitungssystemarchitektur, auf der eine oder mehrere der hierin besprochenen Techniken (zum Beispiel Operationen, Prozesse, Verfahren und Methodologien) ausgeführt werden können, gemäß einem Beispiel;
    • 16 veranschaulicht eine Übersicht über Schichten verteilter Rechenoperationen, die unter einem Edge-Computing-System eingesetzt werden, gemäß einem Beispiel; und
    • 17 veranschaulicht eine beispielhafte Softwareverteilungsplattform gemäß einem Beispiel.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Obwohl die Konzepte der vorliegenden Offenbarung verschiedene Modifikationen und alternative Formen erfahren können, wurden spezifische Ausführungsformen beispielhaft in den Zeichnungen gezeigt und sind hierin ausführlich beschrieben. Es versteht sich jedoch, dass keine Absicht besteht, die Konzepte der vorliegenden Offenbarung auf die bestimmten offenbarten Formen zu beschränken, sondern vielmehr alle Modifikationen, Äquivalente und Alternativen abzudecken, die mit der vorliegenden Offenbarung und den angehängten Ansprüchen konsistent sind.
  • Verweise in der Spezifikation auf „1 Ausführungsform“, „eine Ausführungsform... „eine veranschaulichende Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform ein spezielles Merkmal, eine spezielle Struktur oder Charakteristik beinhalten kann, aber jede Ausführungsform kann dieses spezielle Merkmal, die spezielle Struktur oder Charakteristik beinhalten oder nicht. Darüber hinaus verweisen derartige Ausdrücke nicht notwendigerweise auf die gleiche Ausführungsform. Weiter wird, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder Charakteristik in Verbindung mit einer Ausführungsform beschrieben wird, vorgeschlagen, dass es innerhalb der Kenntnis eines Fachmanns liegt, ein derartiges Merkmal, eine derartige Struktur oder Charakteristik in Verbindung mit anderen Ausführungsformen zu bewirken, unabhängig davon, ob explizit beschrieben oder nicht. Zusätzlich versteht es sich, dass Elemente, die in einer Liste in Form von „mindestens einem A, B und C“ enthalten sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten können. Gleichermaßen können Elemente, die in Form von „mindestens eines von A, B oder C“ aufgelistet sind, (A); (B); (C); (A und B); (A und C); (B und C); oder (A, B und C) bedeuten.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon umgesetzt sein. Die offenbarten Ausführungsformen können auch als Anweisungen umgesetzt sein, die von einem flüchtigen oder nichtflüchtigen maschinenlesbaren (zum Beispiel computerlesbaren) Speichermedium, das von einem oder mehreren Prozessoren gelesen und ausgeführt werden kann, getragen oder auf diesem gespeichert werden. Ein maschinenlesbares Speichermedium kann als eine beliebige Speicherungsvorrichtung, ein beliebiger Mechanismus oder eine beliebige andere physische Struktur zum Speichern oder Übertragen von Informationen in einer von einer Maschine lesbaren Form (zum Beispiel ein flüchtiger oder nichtflüchtiger Speicher, eine Medienplatte oder eine andere Medienvorrichtung) umgesetzt werden.
  • In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in spezifischen Anordnungen und/oder Reihenfolgen gezeigt sein. Es versteht sich jedoch, dass derartige spezifische Anordnungen und/oder Reihenfolgen eventuell nicht erforderlich sind. Vielmehr können derartige Merkmale bei einigen Ausführungsformen auf eine andere Weise und/oder in einer anderen Reihenfolge als in den veranschaulichenden Figuren gezeigt angeordnet sein. Zusätzlich soll die Aufnahme eines Struktur- oder Verfahrensmerkmals in einer speziellen Figur nicht andeuten, dass ein derartiges Merkmal bei allen Ausführungsformen erforderlich ist und bei einigen Ausführungsformen möglicherweise nicht enthalten ist oder mit anderen Merkmalen kombiniert werden kann.
  • Nun beinhaltet unter Bezugnahme auf 1 ein veranschaulichendes System 100 einen Quell-Rechenknoten 102 und einen Senken-Rechenknoten 104, die von einem Netzwerk 106 verbunden werden. Bei der veranschaulichenden Ausführungsform nimmt der Quell-Rechenknoten 102 Video, das aus mehreren Frames besteht, auf. Der Quell-Rechenknoten 102 identifiziert eine Region-of-Interest in jedem Frame und codiert den Frame basierend auf der identifizierten Region-of-Interest. Nachdem jeder Frame codiert wurde, wird ein gewichteter durchschnittlicher Rauschparameter basierend auf einem gewichteten Durchschnitt des Signal-Rausch-Verhältnisses in der Region-of-Interest und des Signal-Rausch-Verhältnisses außerhalb der Region-of-Interest bestimmt. Der gewichtete mittlere Rauschparameter kann als Parameter zur Codierung nachfolgender Frames verwendet werden. Der gewichtete mittlere Rauschparameter kann den absoluten Rauschpegel angeben oder ein Signal-Rausch-Verhältnis angeben. Der Quell-Rechenknoten 102 sendet die codierten Frames zu dem Senken-Rechenknoten 104.
  • Der veranschaulichende Senken-Rechenknoten 104 ist dazu konfiguriert, automatisch eine Region-of-Interest in den codierten Frames zu identifizieren. Der Senken-Rechenknoten 104 kann dann die Nicht-ROI-Bereiche des Bildes verbessern, wie etwa durch Verwenden eines Generative Adversarial Network.
  • Sowohl der Quell-Rechenknoten 102 als auch der Senken-Rechenknoten 104 können als ein beliebiger geeigneter Rechenknoten, wie etwa der in 2A gezeigte Rechenknoten 200 oder der in 2B gezeigte Edge-Rechenknoten 250, umgesetzt sein. Der Quell-Rechenknoten 102 und/oder der Senken-Rechenknoten 104 können in einem Edge-Computing-System, einem Datenzentrumrechensystem oder einem beliebigen anderen geeigneten Rechensystem umgesetzt sein oder einen Teil davon bilden. Das Netzwerk 106, das den Quell-Rechenknoten 102 mit dem Senken-Rechenknoten 104 verbindet, kann ein beliebiges geeignetes Netzwerk oder eine beliebige Kombination von Netzwerken sein. Das Netzwerk 106 kann zum Beispiel eine beliebige Kombination eines Internets, eines Intranets, eines Ethernet-basierten Netzwerks, eines TCP/IP-Netzwerks, eines Edge-Netzwerks usw. sein.
  • Bei weiteren Beispielen können beliebige der Rechenknoten (zum Beispiel der Senken-Rechenknoten 102 und/oder der Senken-Rechenknoten 104) oder Vorrichtungen, die unter Bezugnahme auf die vorliegenden Edge-Computing-Systeme und die vorliegende Umgebung erläutert sind, basierend auf den in den 2A und 2B dargestellten Bauelementen erfüllt werden. Jeweilige Edge-Rechenknoten können als ein Typ von Vorrichtung, Gerät, Computer oder anderem „Thing“ umgesetzt sein, das in der Lage ist, mit anderen Edge-, Networking- oder Endpunktbauelementen zu kommunizieren. Zum Beispiel kann eine Edge-Rechenvorrichtung als ein Personal Computer, Server, Smartphone, eine mobile Rechenvorrichtung, ein Smart-Gerät, ein fahrzeuginternes Rechensystem (zum Beispiel ein Navigationssystem), eine eigenständige Vorrichtung mit einem Außengehäuse, einer Hülle usw. oder eine andere Vorrichtung oder ein anderes System, die/das in der Lage ist, die beschriebenen Funktionen auszuführen, umgesetzt sein.
  • Bei dem in 2A abgebildeten vereinfachten Beispiel weist ein Edge-Rechenknoten 200 eine Rechen-Engine (hierin auch als „Rechenschaltungsanordnung“ bezeichnet) 202, ein Eingabe/Ausgabe-Subsystem (E/A-Subsystem) 208, eine Datenspeicherung 210, ein Kommunikationsschaltungssubystem 212 und optional eine Kamera 214 und/oder eine oder mehrere Peripherievorrichtungen 216 auf. Bei anderen Beispielen können jeweilige Rechenvorrichtungen andere oder zusätzliche Bauelemente beinhalten, wie etwa jene, die man typischerweise in einem Computer (zum Beispiel einer Anzeige, Peripherievorrichtungen usw.) antrifft. Zusätzlich dazu können bei einigen Beispielen ein oder mehrere der veranschaulichenden Bauelemente in ein anderes Bauelement integriert sein oder anderswie einen Teil davon bilden.
  • Der Rechenknoten 200 kann als eine beliebige Art von Engine, Vorrichtung oder Sammlung von Vorrichtungen verkörpert sein, die in der Lage sind, verschiedene Rechenfunktionen auszuführen. Bei einigen Beispielen kann der Rechenknoten 200 als eine einzelne Vorrichtung verkörpert sein, wie etwa eine integrierte Schaltung, ein eingebettetes System, ein feldprogrammierbares Gate-Array (FPGA), ein System-on-a-Chip (SOC) oder ein anderes integriertes System oder eine andere integrierte Vorrichtung. Bei dem veranschaulichenden Beispiel weist der Rechenknoten 200 einen Prozessor 204 und einen Speicher 206 auf oder ist als dieser verkörpert. Der Prozessor 204 kann als eine beliebige Art von Prozessor verkörpert sein, der in der Lage ist, die hierin beschriebenen Funktionen (zum Beispiel Ausführen einer Anwendung) auszuführen. Der Prozessor 204 kann zum Beispiel als ein oder mehrere Mehrkernprozessoren, ein Mikrocontroller, eine Verarbeitungseinheit, eine Spezial- oder Sonderzweckverarbeitungseinheit oder ein anderer Prozessor oder eine andere Verarbeitungs-/Steuerschaltung verkörpert sein.
  • Bei einigen Beispielen kann der Prozessor 204 als FPGA, anwendungsspezifische integrierte Schaltung (ASIC), rekonfigurierbare Hardware oder Hardwareschaltungsanordnung oder andere spezialisierte Hardware verkörpert sein, diese beinhalten oder mit dieser gekoppelt sein, um Leistungsfähigkeit der hierin beschriebenen Funktionen zu erleichtern. Bei einigen Beispielen kann der Prozessor 204 auch als eine spezialisierte x-Verarbeitungseinheit (xPU) verkörpert sein, die auch als eine Datenverarbeitungseinheit (Data Processing Unit - DPU), eine Infrastrukturverarbeitungseinheit (Infrastructure Processing Unit - IPU) oder eine Netzwerkverarbeitungseinheit (Network Processing Unit - NPU) bekannt ist. Eine derartige xPU kann als eine eigenständige Schaltung oder ein eigenständiges Schaltungs-Package verkörpert sein, innerhalb eines SOC integriert sein oder mit einer Networking-Schaltungsanordnung (zum Beispiel in einem SmartNIC oder erweiterten SmartNIC), einer Beschleunigungsschaltungsanordnung, Speicherungsvorrichtungen oder AI-Hardware (zum Beispiel GPUs oder programmierte FPGAs) integriert sein. Eine derartige xPU kann dazu ausgelegt sein, eine Programmierung zu empfangen, um einen oder mehrere Datenströme zu verarbeiten und spezifische Aufgaben und Aktionen für die Datenströme auszuführen (wie etwa Hosten von Mikrodiensten, Ausführen von Dienstverwaltung oder -orchestrierung, Organisieren oder Verwalten von Server- oder Datenzentrum-Hardware, Verwalten von Dienstnetzen oder Sammeln und Verteilen von Telemetrie), außerhalb der CPU oder Allzweckverarbeitungshardware. Es versteht sich jedoch, dass eine xPU, ein SOC, eine CPU und andere Variationen des Prozessors 204 koordiniert miteinander arbeiten können, um viele Arten von Operationen und Anweisungen innerhalb des Rechenknotens 200 und für diesen auszuführen.
  • Der Speicher 206 kann als ein beliebiger Typ flüchtiger (zum Beispiel dynamischer Direktzugriffsspeicher (Dynamic Random Access Memory - DRAM) usw.) oder nichtflüchtiger Speicher oder nichtflüchtiger Datenspeicher umgesetzt sein, der in der Lage ist, die hier beschriebenen Funktionen auszuführen. Flüchtiger Speicher kann ein Speichermedium sein, das Leistung benötigt, um den Zustand der von dem Medium gespeicherten Daten aufrechtzuerhalten. Nicht einschränkende Beispiele für flüchtigen Speicher können diverse Typen von Direktzugriffsspeicher (Random Access Memory - RAM), wie DRAM oder statischen Direktzugriffsspeicher (Static Random Access Memory - SRAM), beinhalten. Ein bestimmter Typ von DRAM, der in einem Speichermodul verwendet werden kann, ist synchroner dynamischer Direktzugriffsspeicher (Synchronous Dynamic Random Access Memory - SDRAM).
  • Bei einem Beispiel ist die Speichervorrichtung eine blockadressierbare Speichervorrichtung, wie etwa jene, die auf NAND- oder NOR-Technologien basieren. Eine Speichervorrichtung kann auch eine dreidimensionale Kreuzpunktspeichervorrichtung (zum Beispiel Intel®-3D XPoint™-Speicher) oder andere byteadressierbare nichtflüchtige Speichervorrichtungen zum Schreiben an Ort und Stelle beinhalten. Die Speichervorrichtung kann auf das Die selbst und/oder auf ein gehäustes Speicherprodukt verweisen. Bei einigen Beispielen kann der 3D-Kreuzpunktspeicher (zum Beispiel Intel®-3D XPoint™-Speicher) eine transistorlose stapelbare Kreuzpunktarchitektur umfassen, bei der Speicherzellen an dem Schnittpunkt von Wortleitungen und Bitleitungen sitzen und einzeln adressierbar sind, und bei der die Bitspeicherung auf einer Änderung des Bahnwiderstands basiert. Bei einigen Beispielen kann der gesamte oder ein Teil des Speichers 206 in den Prozessor 204 integriert sein. Der Speicher 206 kann verschiedene Software und Daten speichern, die während des Betriebs verwendet werden, wie etwa eine oder mehrere Anwendungen, Daten, die von der (den) Anwendung(en) bearbeitet werden, Bibliotheken und Treiber.
  • Die Rechenschaltungsanordnung 202 ist kommunikativ mit anderen Bauelementen des Rechenknotens 200 über das E/A-Subsystem 208 gekoppelt, das als Schaltungsanordnung und/oder Bauelemente umgesetzt sein kann, um Eingabe/Ausgabe-Operationen mit der Rechenschaltungsanordnung 202 (zum Beispiel mit dem Prozessor 204 und/oder dem Hauptspeicher 206) und anderen Bauelementen der Rechenschaltungsanordnung 202 zu erleichtern. Das E/A-Subsystem 208 kann zum Beispiel als Speichersteuervorrichtungs-Hubs, Eingabe/Ausgabe-Steuerungs-Hubs, integrierte Sensor-Hubs, Firmwarevorrichtungen, Kommunikationsverbindungen (zum Beispiel Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtleiter, Leiterbahnen usw.) und/oder andere Bauelemente und Subsysteme umgesetzt sein oder diese anderswie beinhalten, um die Eingabe/Ausgabe-Operationen zu erleichtern. Bei einigen Beispielen kann das E/A-Subsystem 208 einen Teil eines System-on-a-Chip (SoC) bilden und gemeinsam mit dem Prozessor 204 und/oder dem Speicher 206 und/oder anderen Bauelementen der Rechenschaltungsanordnung 202 in die Rechenschaltungsanordnung 202 integriert sein.
  • Die eine oder die mehreren veranschaulichenden Datenspeicherungsvorrichtungen 210 können als eine beliebige Art von Vorrichtungen umgesetzt sein, die zur Kurzzeit- oder Langzeitspeicherung von Daten konfiguriert sind, wie etwa zum Beispiel Speichervorrichtungen und Schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeicherungsvorrichtungen. Individuelle Datenspeicherungsvorrichtungen 210 können eine Systempartition beinhalten, die Daten und Firmwarecode für die Datenspeicherungsvorrichtung 210 speichert. Individuelle Datenspeicherungsvorrichtungen 210 können auch eine oder mehrere Betriebssystempartitionen beinhalten, die Dateien und ausführbare Dateien für Betriebssysteme in Abhängigkeit von zum Beispiel dem Typ des Rechenknotens 200 speichern.
  • Bei einigen Ausführungsformen kann die Datenspeicherungsvorrichtung 210 einen Prozessor 220, einen Speicher 222 und einen Beschleuniger 224 beinhalten. Der Prozessor 220 und/oder der Speicher 222 kann dem Prozessor 204 und/oder dem Speicher 206 ähnlich sein, wobei eine Beschreibung aus Gründen der Klarheit nicht wiederholt wird. Natürlich können bei einigen Ausführungsformen die Kapazität, Geschwindigkeit, Bandbreite usw. des Prozessors 220 und/oder des Speichers 222 von jener des Prozessors 204 und/oder des Speichers 206 unterschiedlich sein. Der Beschleuniger 224 kann als eine beliebige Schaltung oder Schaltungen, die bestimmte Rechenaufgaben beschleunigen können verkörpert sein. Der Beschleuniger 224 kann zum Beispiel als ein feldprogrammierbares Gate-Array (Field Programmable Gate Array - FPGA), eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit - ASIC), eine neuronale Netzwerkschaltung, eine Grafikverarbeitungseinheit (Graphics Processing Unit - GPU), eine Universalgrafikverarbeitungseinheit (General Purpose Graphics Processing Unit - GPGPU) usw. verkörpert sein.
  • Bei der veranschaulichenden Ausführungsform sind die Datenspeicherungsvorrichtung 210 und, falls vorhanden, der Prozessor 220, der Speicher 222 und der Beschleuniger 224 alle in einem Speicherungsvorrichtungschassis oder Speicherungsvorrichtungseinschluss eingeschlossen, das/der die Speicherungsvorrichtung 210 von anderen Bauelementen des Rechenknotens 200, wie etwa der Rechenschaltungsanordnung 202, trennt.
  • Die Kommunikationsschaltungsanordnung 212 kann als eine beliebige Kommunikationsschaltung, -vorrichtung oder -sammlung davon verkörpert sein, die in der Lage ist, Kommunikationen über ein Netzwerk zwischen der Rechenschaltungsanordnung 202 und einer anderen Rechenvorrichtung (zum Beispiel einem Edge-Gateway eines umsetzenden Edge-Computing-Systems) zu ermöglichen. Die Kommunikationsschaltungsanordnung 212 kann dazu konfiguriert sein, eine oder mehrere beliebige Kommunikationstechniken (zum Beispiel verdrahtete oder drahtlose Kommunikationen) und assoziierte Protokolle (zum Beispiel ein zellulares Networking-Protokoll, wie etwa einen 3GPP-4G- oder 5G-Standard, ein drahtloses lokales Netzwerkprotokoll, wie etwa IEEE 802.11/Wi-FiⓇ, ein Wireless Wide Area Network Protocol, Ethernet, Bluetooth®, Bluetooth Low Energy, ein IoT-Protokoll, wie etwa IEEE 802.15.4 oder ZigBee®, Low-Power Wide Area Network (LPWAN)- oder Low-Power Wide Area-Protokolle (LPWA-Protokolle) usw.), um eine derartige Kommunikation zu bewirken.
  • Die veranschaulichende Kommunikationsschaltungsanordnung 212 beinhaltet eine Netzwerkschnittstellensteuervorrichtung (NIC) 226, die auch als Host-Fabric-Schnittstelle (HFI) bezeichnet werden kann. Die NIC 226 kann als ein oder mehrere Add-In-Boards, Tochterkarten, Netzwerkschnittstellenkarten, Controllerchips, Chipsätze oder andere Vorrichtungen verkörpert sein, die von dem Rechenknoten 200 verwendet werden können, um sich mit einer anderen Rechenvorrichtung (zum Beispiel einem Edge-Gateway-Knoten) zu verbinden. Bei einigen Beispielen kann die NIC 226 als Teil eines System-on-a-Chip (SoC) verkörpert sein, das einen oder mehrere Prozessoren beinhaltet, oder auf einem Multichipgehäuse enthalten sein, das auch einen oder mehrere Prozessoren beinhaltet. Bei einigen Beispielen kann die NIC 226 einen lokalen Prozessor (nicht gezeigt) und/oder einen lokalen Speicher (nicht gezeigt) beinhalten, die beide für die NIC 226 lokal sind. Bei derartigen Beispielen kann der lokale Prozessor der NIC 226 dazu in der Lage sein, eine oder mehrere der Funktionen der Rechenschaltungsanordnung 202, die hierin beschrieben ist auszuführen. Zusätzlich oder alternativ dazu kann bei derartigen Beispielen der lokale Speicher der NIC 226 in ein oder mehrere Bauelemente des Client-Rechenknotens auf Platinenebene, Sockelebene, Chip-Ebene und/oder anderen Ebenen integriert sein.
  • Die veranschaulichende Kamera 214 kann als eine beliebige geeignete Vorrichtung verkörpert sein, die in der Lage ist, eine Reihe von Bildern aufzunehmen. Bei der veranschaulichenden Ausführungsform weist die Kamera 214 eine Linse auf, die Licht auf einen Bildsensor fokussiert. Bei anderen Ausführungsformen können unterschiedliche Bildgebungselemente verwendet werden, wie etwa Aperturen, Spiegel, Filter usw. Der Bildsensor kann auf einem beliebigen geeigneten Sensor basieren, wie etwa CMOS-Sensoren (Complementary-Metal-Oxide-Semiconductor-Sensoren), CCD-Sensoren (Charged Coupled Device-Sensoren), thermischen Sensoren usw. Die Kamera 214 kann eine beliebige geeignete Auflösung aufweisen, wie etwa 640 x 480, 768 x 1024, 1024 x 1280, 1080 x 1920, 2160 x 3840, 4320 x 7680 usw. Die Kamera 214 kann Video mit einer beliebigen geeigneten Framerate aufnehmen, wie etwa 24 Frames pro Sekunde (FPS), 30 FPS, 60 FPS, 120, FPS, 240 FPS usw. Die Kamera 214 kann für einen beliebigen geeigneten Farbbereich empfindlich sein, wie etwa Millimeterwelle, Infrarot, sichtbares Licht, Ultraviolett, Röntgen usw. Die Kamera 214 kann eine Schwarz/Weiß-Kamera sein oder kann zwei oder mehr Kanäle aufweisen, wie etwa einen roten, einen grünen und einen blauen Kanal.
  • Zusätzlich kann bei einigen Beispielen ein jeweiliger Rechenknoten 102 eine oder mehrere Peripherievorrichtungen 216 beinhalten. Derartige Peripherievorrichtungen 216 können eine beliebige Art von Peripherievorrichtung beinhalten, die man in einer Rechenvorrichtung oder einem Server antrifft, wie etwa Audioeingabevorrichtungen, eine Anzeige, andere Eingabe-/Ausgabevorrichtungen, Schnittstellenvorrichtungen und/oder andere Peripherievorrichtungen, in Abhängigkeit von der speziellen Art des Rechenknotens 200. Bei weiteren Beispielen kann der Rechenknoten 200 von einem jeweiligen Edge-Rechenknoten (ob ein Client, Gateway oder Aggregationsknoten) in einem Edge-Computing-System oder ähnlichen Formen von Geräten, Computern, Subsystemen, Schaltungen oder anderen Bauelemente verkörpert werden.
  • Zusätzlich kann bei einigen Beispielen ein jeweiliger Rechenknoten 200 eine oder mehrere Peripherievorrichtungen 214 beinhalten. Derartige Peripherievorrichtungen 214 können eine beliebige Art von Peripherievorrichtung beinhalten, die man in einer Rechenvorrichtung oder einem Server antrifft, wie etwa Audioeingabevorrichtungen, eine Anzeige, andere Eingabe-/Ausgabevorrichtungen, Schnittstellenvorrichtungen und/oder andere Peripherievorrichtungen, in Abhängigkeit von der speziellen Art des Rechenknotens 200. Bei weiteren Beispielen kann der Rechenknoten 200 von einem jeweiligen Edge-Rechenknoten (ob ein Client, Gateway oder Aggregationsknoten) in einem Edge-Computing-System oder ähnlichen Formen von Geräten, Computern, Subsystemen, Schaltungen oder anderen Bauelemente verkörpert werden.
  • Es versteht sich, dass sich bei einigen Ausführungsformen die spezielle Hardware für den Quell-Rechenknoten 102 von der des Senken-Rechenknotens 104 unterscheiden kann. Zum Beispiel kann der Quell-Rechenknoten 102 bei einigen Ausführungsformen eine relativ leistungsfähige Rechenschaltungsanordnung 202 beinhalten, während der Senken-Rechenknoten 104 eine weniger leistungsfähige Rechenschaltungsanordnung 202 beinhalten kann. Gleichzeitig kann der Senken-Rechenknoten 104 eine Datenspeicherung 210 beinhalten, die mehr Speicherung oder mehr Fähigkeit als die Datenspeicherung 210 in dem Quellen-Rechenknoten 102 aufweist (oder der Quellen-Rechenknoten 102 kann keine Datenspeicherung 210 beinhalten). Bei einem Beispiel weist der Quell-Rechenknoten 102 eine Kamera 214 auf, und der Senken-Rechenknoten 104 weist keine Kamera 214 auf.
  • Bei einem ausführlicheren Beispiel veranschaulicht 2B ein Blockdiagramm eines Beispiels für Bauelemente, die in einem Edge-Rechenknoten 250 zum Umsetzen der hierin beschriebenen Techniken (zum Beispiel Operationen, Prozesse, Verfahren und Methodologien) vorhanden sein können. Dieser Edge-Rechenknoten 250 stellt eine nähere Ansicht der jeweiligen Bauelemente des Knotens 200 bereit, wenn er als oder als Teil einer Rechenvorrichtung (zum Beispiel als eine Mobilvorrichtung, eine Basisstation, ein Server, ein Gateway usw.) verkörpert wird. Der Edge-Rechenknoten 250 kann beliebige Kombinationen der hierin referenzierten Hardware oder logischen Bauelemente beinhalten, und er kann eine beliebige Vorrichtung, die mit einem Edge-Kommunikationsnetzwerk oder einer Kombination derartiger Netzwerke verwendbar ist, beinhalten oder mit dieser koppeln. Die Bauelemente können als integrierte Schaltungen (Integrated Circuits - ICs), Teile davon, diskrete elektronische Vorrichtungen oder andere Module, Anweisungssätze, programmierbare Logik oder Algorithmen, Hardware, Hardwarebeschleuniger, Software, Firmware oder eine Kombination davon, die in dem Edge-Rechenknoten 250 angepasst sind, oder als Bauelemente, die anderswie in einem Chassis eines größeren Systems eingebaut sind, umgesetzt werden.
  • Die Edge-Rechenvorrichtung 250 kann Verarbeitungsschaltungsanordnungen in der Form eines Prozessors 252 beinhalten, der ein Mikroprozessor, ein Mehrkernprozessor, ein Multi-Thread-Prozessor, ein Ultraniederspannungsprozessor, ein eingebetteter Prozessor, eine xPU/DPU/IPU/NPU, eine Spezialverarbeitungseinheit, eine spezialisierte Verarbeitungseinheit oder andere bekannte Verarbeitungselemente sein kann. Der Prozessor 252 kann ein Teil eines System-on-Chip (SoC) sein, in dem der Prozessor 252 und andere Bauelemente in einer einzigen integrierten Schaltung oder einem einzigen Package gebildet sind, wie etwa die Edison™- oder Galileo™-SoC-Platinen von Intel Corporation, Santa Clara, Kalifornien. Als ein Beispiel kann der Prozessor 252 einen auf Intel® Architecture Core™ basierenden CPU-Prozessor, wie etwa einen Quark™-, einen Atom™-, einen i3-, einen i5-, einen i7-, einen i9- oder einen Prozessor der Klasse MCU oder einen anderen derartigen Prozessor, der von Intel® verfügbar ist, beinhalten. Eine beliebige Anzahl anderer Prozessoren kann jedoch verwendet werden, wie etwa von Advanced Micro Devices, Inc. (AMD®) Sunnyvale, Kalifornien, erhältlich, ein MIPS®-basiertes Design der MIPS Technologies, Inc., Sunnyvale, Kalifornien, ein ARM®-basiertes Design, lizenziert von ARM Holdings, Ltd. oder eines Kunden dieser, oder deren Lizenznehmer oder Anwender. Die Prozessoren können Einheiten beinhalten, wie etwa einen A5-A13-Prozessor von Apple® Inc., einen Snapdragon®-Prozessor von QualCommon® Technologies, Inc., oder einen OMAP™-Prozessor von Texas Instruments, Inc. Der Prozessor 252 und die begleitende Schaltungsanordnung können in einem einzigen Sockelformfaktor, mehreren Sockelformfaktoren oder einer Vielfalt anderer Formate bereitgestellt sein, einschließlich in beschränkten Hardwarekonfigurationen oder Konfigurationen, die weniger als alle der in 2B gezeigten Elemente beinhalten.
  • Der Prozessor 252 kann über ein Interconnect 256 (zum Beispiel einen Bus) mit einem Systemspeicher 254 kommunizieren. Eine beliebige Anzahl von Speichervorrichtungen kann verwendet werden, um eine gegebene Menge an Systemspeicher bereitzustellen. Als Beispiele kann der Speicher 254 Direktzugriffsspeicher (RAM) gemäß einem JEDEC-Design (JEDEC: Joint Electron Devices Engineering Council) sein, wie etwa den Standards DDR- oder mobilen DDDR (zum Beispiel LPDDR, LPDDR2, LPDDR3 oder LPDDR4). Bei bestimmten Beispielen kann ein Speicherbauelement einem von JEDEC veröffentlichten DRAM-Standard entsprechen, wie etwa JESD79F für DDR-SDRAM, JESD79-2F für DDR2-SDRAM, JESD79-3F für DDR3-SDRAM, JESD79-4A für DDR4-SDRAM, JESD209 für Low Power DDR (LPDDR), JESD209-2 für LPDDR2, JESD209-3 für LPDDR3 und JESD209-4 für LPDDR4. Derartige Standards (und ähnliche Standards) können als DDR-basierte Standards bezeichnet werden und Kommunikationsschnittstellen der Speicherungsvorrichtungen, die derartige Standards umsetzen, können als DDR-basierte Schnittstellen bezeichnet werden. Bei diversen Umsetzungen können die einzelnen Speichervorrichtungen einer beliebige Anzahl unterschiedlicher Gehäusetypen sein, wie etwa Single Die Package (SDP), Dual Die Package (DDP) oder Quad Die Package (Q17P). Diese Vorrichtungen können bei einigen Beispielen direkt auf eine Hauptplatine gelötet werden, um eine Lösung mit niedrigerem Profil bereitzustellen, während die Vorrichtungen bei anderen Beispielen als ein oder mehrere Speichermodule konfiguriert sind, die wiederum von einem gegebenen Steckverbinder mit der Hauptplatine gekoppelt sind. Eine beliebige Anzahl anderer Speicherumsetzungen kann verwendet werden, wie etwa andere Typen von Speichermodulen, zum Beispiel Dual-Inline-Speichermodule (DIMMs) unterschiedlicher Sorten, einschließlich, ohne darauf beschränkt zu sein, microDIMMs oder MiniDIMMs.
  • Um eine nichtflüchtige Speicherung von Informationen, wie etwa Daten, Anwendungen, Betriebssystemen und so weiter, bereitzustellen, kann eine Speicherung 258 auch über das Interconnect 256 mit dem Prozessor 252 koppeln. Bei einem Beispiel kann die Speicherung 258 über ein Festkörperplattenlaufwerk (SSDD) umgesetzt sein. Andere Vorrichtungen, die für die Speicherung 258 verwendet werden können, beinhalten Flash-Speicherkarten, wie etwa Secure Digital-Karten (SD-Karten), microSD-Karten, eXtreme Digital-Bild Karten (XD-Bildkarten) und dergleichen und Universal Serial Bus Flash-Laufwerke (USB-Flash-Laufwerke). Bei einem Beispiel kann die Speichervorrichtung Speichervorrichtungen sein oder beinhalten, die Chalkogenidglas, NAND-Flash-Speicher mit mehreren Schwellenniveaus, NOR-Flash-Speicher, Phasenwechselspeicher mit einzelnen oder mehreren Niveaus (PCM) verwenden, einen resistiven Speicher, Nanodrahtspeicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), antiferroelektrischen Speicher, magnetoresistiven Direktzugriffsspeicher (MRAM-Speicher), der Memristortechnologie beinhaltet, resistiven Speicher, einschließlich des Metalloxidbasis-, des Sauerstoffvakanzbasis und des leitfähigen Brücken-Direktzugriffsspeichers (CB-RAM) oder Spin-Transfer-Torque-MRAM (STT-MRAM), einer Spintronic Magnetübergangsspeicherbasierten Vorrichtung, einer MTJ-basierten Vorrichtung (Magnetic Tunnel Junction - MTJ), einer DW- (Domain Wall)- und SOT- (Spin Orbit Transfer) -basierten Vorrichtung, einer Thyristor basierten Speichervorrichtung oder einer Kombination beliebiger der Obigen oder eines anderen Speichers.
  • Bei Niedrigleistungsumsetzungen kann die Speicherung 258 ein On-Die-Speicher oder Register sein, die mit dem Prozessor 252 assoziiert sind. Bei einigen Beispielen kann die Speicherung 258 jedoch unter Verwenden eines Mikrofestplattenlaufwerks (HDD) umgesetzt werden. Weiter kann eine beliebige Anzahl neuer Technologien für die Speicherung 258 zusätzlich zu oder an Stelle der beschriebenen Technologien verwendet werden, wie unter anderem Widerstandswechselspeicher, Phasenwechselspeicher, holographische Speicher oder chemische Speicher.
  • Die Bauelemente können über das Interconnect 256 kommunizieren. Das Interconnect 256 kann eine beliebige Anzahl von Technologien beinhalten, einschließlich Industriestandardarchitektur (ISA), erweiterte ISA (EISA), Peripheriebauelemente-Interconnect (PCI), erweitertes Peripheriebauelemente-Interconnect (PCIx), PCI-Express (PCIe) oder eine beliebige Anzahl anderer Technologien. Das Interconnect 256 kann ein proprietärer Bus sein, der zum Beispiel in einem auf SoC basierenden System verwendet wird. Andere Bussysteme können enthalten sein, wie etwa unter anderem eine Inter-Integrated Circuit-Schnittstelle (I2C-Schnittstelle), eine Serial Peripheral Interface-Schnittstelle (SPI-Schnittstelle), Punkt-zu-Punkt-Schnittstellen und ein Leistungsbus.
  • Das Interconnect 256 kann den Prozessor 252 mit einem Transceiver 266 für Kommunikationen mit den verbundenen Edge-Vorrichtungen 262 koppeln. Der Transceiver 266 kann eine beliebige Anzahl von Frequenzen und Protokollen verwenden, wie etwa 2,4-GigaHertz-Übertragungen (GHz-Übertragungen) unter dem IEEE 802.15.4-Standard unter Verwenden des Bluetooth®-Niederenergie-Standards (BLE-Standards), wie unter anderem durch die Bluetooth@-Special Interest Group definiert, oder des ZigBee®-Standards. Eine beliebige Anzahl von Funkgeräten, die für ein bestimmtes drahtloses Kommunikationsprotokoll konfiguriert sind, kann für die Verbindungen zu den verbundenen Edge-Vorrichtungen 262 verwendet werden. Zum Beispiel kann eine WLAN-Einheit (Wireless Local Area Network-Einheit) verwendet werden, um Wi-Fi®-Kommunikationen gemäß dem Standard 802.11 des IEEE (Institute of Electrical and Electronics Engineers) umzusetzen. Zusätzlich können drahtlose Weitbereichskommunikationen, zum Beispiel gemäß einem zellularen oder anderen drahtlosen Weitbereichsprotokoll über eine Wireless-Weitbereichsnetzwerk-Einheit (WWAN-Einheit) stattfinden.
  • Der drahtlose Netzwerk-Transceiver 266 (oder mehrere Transceiver) kann unter Verwenden mehrerer Standards oder Funkgeräte für Kommunikationen in einer anderen Reichweite kommunizieren. Beispielsweise kann der Edge-Rechenknoten 250 mit nahen Vorrichtungen, zum Beispiel innerhalb von etwa 10 Metern, unter Verwenden eines lokalen Transceivers basierend auf Bluetooth Low Energy (BLE) oder einem anderen Niedrigleistungsfunkgerät kommunizieren, um Leistung zu sparen. Weiter entfernte verbundene Edge-Vorrichtungen 262, können zum Beispiel innerhalb von etwa 50 Metern über ZigBee® oder andere Zwischenleistungsfunkgeräte erreicht werden. Beide Kommunikationstechniken können über ein einziges Funkgerät mit unterschiedlichen Leistungspegeln stattfinden oder können über separate Transceiver stattfinden, zum Beispiel über einen lokalen Transceiver, der BLE verwendet, und einen separaten Mesh-Transceiver, der ZigBee® verwendet.
  • Ein drahtloser Netzwerktransceiver 266 (zum Beispiel ein Funk-Transceiver) kann enthalten sein, um mit Vorrichtungen oder Diensten in einer Cloud (zum Beispiel einer Edge-Cloud 295) über lokale oder Weitverkehrsnetzwerkprotokolle zu kommunizieren. Der drahtlose Netzwerk-Transceiver 266 kann ein LPWA-Transceiver (Low Power Wide Area - LPWA) sein, der unter anderem den Standards IEEE 802.15.4 oder IEEE 802.15.4g folgt. Der Edge-Rechenknoten 250 kann über einen weiten Bereich unter Verwenden von LoRaWAN™ (Long Range Wide Area Network), das von Semtech und der LoRa Alliance entwickelt wird, kommunizieren. Die hierin beschriebenen Techniken sind nicht auf diese Technologien beschränkt, sondern können mit einer beliebigen Anzahl anderer Cloud-Transceiver, die Kommunikationen mit großer Reichweite, niedriger Bandbreite umsetzen, wie etwa Sigfox, und anderen Technologien, verwendet werden. Weiter können andere Kommunikationstechniken, wie etwa Zeitschlitz-Kanalspringen, die in der Spezifikation IEEE 802.15.4e beschrieben sind, verwendet werden.
  • Eine beliebige Anzahl anderer Funkkommunikationen und Protokolle kann zusätzlich zu den für den drahtlosen Netzwerk-Transceiver 266 erwähnten Systemen, wie hierin beschrieben, verwendet werden. Der Transceiver 266 kann zum Beispiel einen zellularen Transceiver beinhalten, der Spreizspektrum-Kommunikationen (SPA/SAS-Kommunikationen) zum Umsetzen von Hochgeschwindigkeitskommunikationen verwendet. Weiter kann eine beliebige Anzahl anderer Protokolle verwendet werden, wie etwa Wi-Fi® - Netzwerke für Mittelgeschwindigkeitskommunikationen und Bereitstellung von Netzwerkkommunikationen. Der Transceiver 266 kann Funkgeräte beinhalten, die mit einer beliebigen Anzahl von 3GPP-Spezifikationen (Third Generation Partnership Project - 3GPP) kompatibel sind, wie etwa Long-Term-Evolution- (LTE-) und 5th-Generation-Kommunikationssystemen (SG-Kommunikationssystemen), die am Ende der vorliegenden Offenbarung ausführlicher besprochen sind. Eine Netzwerkschnittstellensteuervorrichtung (NIC) 268 kann enthalten sein, um eine verdrahteten Kommunikation zu Knoten der Edge-Cloud 295 oder zu anderen Vorrichtungen, wie etwa den verbundenen Edge-Vorrichtungen 262 (zum Beispiel die in einem Netzwerk arbeiten), bereitzustellen. Die verdrahtete Kommunikation kann eine Ethernet-Verbindung bereitstellen oder kann auf anderen Arten von Netzwerken basieren, wie etwa, unter vielen anderen Controller Area Network (CAN), Local Interconnect Network (LIN), DeviceNet, ControlNet, Data Highway+, PROFIBUS oder PROFINET. Eine zusätzliche NIC 268 kann enthalten sein, um das Verbinden mit einem zweiten Netzwerk zu ermöglichen, wobei zum Beispiel eine erste NIC 268 Kommunikationen mit dem Cloud über Ethernet bereitstellt und eine zweite NIC 268 Kommunikationen mit anderen Vorrichtungen über einen anderen Typ von Netzwerk bereitstellt.
  • Angesichts der Vielfalt von Typen anwendbarer Kommunikationen von der Vorrichtung zu einem anderen Bauelement oder einem anderen Netzwerk, kann eine anwendbare Kommunikationsschaltungsanordnung, die von der Vorrichtung verwendet wird, ein beliebiges oder mehrere der Bauelemente 264, 266, 268 oder 270 beinhalten oder mit diesen umgesetzt sein. Dementsprechend können bei verschiedenen Beispielen anwendbare Mittel zum Kommunizieren (zum Beispiel Empfangen, Übertragen usw.) von einer derartigen Kommunikationsschaltungsanordnung umgesetzt werden.
  • Der Edge-Rechenknoten 250 kann eine Beschleunigungsschaltungsanordnung 264 beinhalten oder mit dieser gekoppelt sein, die von einem oder mehreren Beschleunigern für künstliche Intelligenz (AI), einem neuronalen Compute Stick, neuromorpher Hardware, ein FPGA, einer Anordnung von GPUs, einer Anordnung aus xPUs/DPUs/IPU/NPUs, einem oder mehreren SoCs, einer oder mehreren CPUs, einem oder mehreren digitalen Signalprozessoren, dedizierten ASICs oder anderen Formen spezialisierter Prozessoren oder Schaltungsanordnung, die zum Erfüllen einer oder mehrerer spezialisierter Aufgaben ausgelegt sind, verkörpert werden. Diese Aufgaben können AI-Verarbeitung (einschließlich Operationen zum maschinellen Lernen, Training, Inferenzieren und Klassifizierungsoperationen), Verarbeitung visueller Daten, Netzwerkdatenverarbeitung, Objekterfassung, Regelanalyse oder dergleichen beinhalten. Zu diesen Aufgaben können auch die an anderer Stelle in diesem Dokument diskutierten spezifischen Edge-Rechenaufgaben für Dienstverwaltungs- und Dienstoperationen gehören.
  • Das Interconnect 256 kann den Prozessor 252 mit einem Sensor-Hub oder einer externen Schnittstelle 270 koppeln, der/die zum Verbinden zusätzlicher Vorrichtungen oder Subsysteme verwendet wird. Die Vorrichtungen können Sensoren 272, wie etwa Beschleunigungsmesser, Niveausensoren, Strömungssensoren, optische Lichtsensoren, Kamerasensoren, Temperatursensoren, Sensoren eines globalen Navigationssystems (zum Beispiel GPS), Drucksensoren, barometrische Drucksensoren und dergleichen beinhalten. Der Hub oder die Schnittstelle 270 kann weiter verwendet werden, um den Edge-Rechenknoten 250 mit Aktuatoren 274, wie etwa Leistungsschaltern, Ventilaktuatoren, einem akustischen Tongenerator, einer visuellen Warnvorrichtung und dergleichen, zu verbinden.
  • Bei einigen optionalen Beispielen können verschiedene Eingabe/AusgabeVorrichtungen (E/A-Vorrichtungen) innerhalb des Edge-Rechenknotens 250 vorhanden oder mit diesem verbunden sein. Beispielsweise kann eine Anzeige oder eine andere Ausgabevorrichtung 284 enthalten sein, um Informationen, wie etwa Sensorablesungen oder Aktuatorposition, zu zeigen. Eine Eingabevorrichtung 286, wie etwa ein Touchscreen oder eine Tastatur, kann enthalten sein, um eine Eingabe entgegenzunehmen. Eine Ausgabevorrichtung 284 kann eine beliebige Anzahl von Formen einer Audio- oder visuellen Anzeige beinhalten, einschließlich einfacher visueller Ausgaben, wie etwa binärer Statusindikatoren (zum Beispiel Leuchtdioden (LEDs)) und visueller Mehrzeichenausgaben, oder komplexere Ausgaben, wie etwa Anzeigebildschirme (zum Beispiel Flüssigkristallanzeige-Bildschirme (LCD-Bildschirme)), wobei die Ausgabe von Zeichen, Grafiken, Multimediaobjekten und dergleichen aus dem Betrieb des Edge-Rechenknotens 250 erzeugt oder produziert wird. Eine Anzeige- oder Konsolenhardware kann im Kontext des vorliegenden Systems verwendet werden, um eine Ausgabe bereitzustellen und eine Eingabe eines Edge-Computing-Systems zu empfangen; Bauelemente oder Dienste eines Edge-Computing-Systems zu verwalten; einen Zustand eines Edge-Rechenbauelements oder eines Edge-Rechendienstes zu identifizieren, oder eine beliebige andere Anzahl von Verwaltungs- oder Verwaltungsfunktionen oder Dienstnutzungsfällen zu leiten.
  • Eine Batterie 276 kann den Edge-Rechenknoten 250 mit Strom versorgen, obwohl sie bei Beispielen, bei denen der Edge-Rechenknoten 250 an einem festen Ort montiert ist, eine Stromversorgung aufweisen kann, die mit einem Stromnetz gekoppelt ist, oder die Batterie als Backup oder für temporäre Fähigkeiten verwendet werden kann. Die Batterie 276 kann eine Lithium-Ion-Batterie oder eine Metall-Luft-Batterie, wie etwa eine Zink-Luft-Batterie, eine Aluminium-Luft-Batterie, eine Lithium-Luft-Batterie und dergleichen, sein.
  • Eine Batterieüberwachungsvorrichtung/Ladevorrichtung 278 kann in dem Edge-Rechenknoten 250 enthalten sein, um den Ladezustand (SoCh) der Batterie 276, falls enthalten, zu verfolgen. Die Batterieüberwachungsvorrichtung/Ladevorrichtung 278 kann verwendet werden, um andere Parameter der Batterie 276 zu überwachen, um Ausfallvorhersagen, wie etwa den Gesundheitszustand (SoH: State of Health) und den Funktionszustand (State of Function - SoF) der Batterie 276 bereitzustellen. Die Batterieüberwachungs-/Ladevorrichtung 278 kann eine integrierte Batterieüberwachungsschaltung beinhalten, wie etwa eine LTC4020 oder einen LTC2990 von Linear Technologies, eine ADT7488A von ON Semiconductor in Phoenix, Arizona, oder einen IC der UCD90xxx Familie von Texas Instruments in Dallas, TX. Die Batterieüberwachungsvorrichtung/Ladevorrichtung 278 kann die Informationen über die Batterie 276 über das Interconnect 256 zu dem Prozessor 252 kommunizieren. Die Batterieüberwachungsvorrichtung/Ladevorrichtung 278 kann auch einen Analog-DigitalWandler (ADC) beinhalten, der es dem Prozessor 252 ermöglicht, die Spannung der Batterie 276 oder den Stromfluss von der Batterie 276 direkt zu überwachen. Die Batterieparameter können verwendet werden, um Handlungen zu bestimmen, die der Edge-Rechenknoten 250 ausführen kann, wie etwa Übertragungsfrequenz, Mesh-Netzwerkbetrieb, Abtastfrequenz und dergleichen.
  • Ein Leistungsblock 280 oder eine andere Leistungsversorgung, die mit einem Stromnetz gekoppelt ist, kann mit der Batterieüberwachungsvorrichtung/Ladevorrichtung 278 gekoppelt sein, um die Batterie 276 zu laden. Bei einigen Beispielen kann der Leistungsblock 280 mit einem drahtlosen Leistungsempfänger ersetzt werden, um die Leistung drahtlos, zum Beispiel durch eine Schleifenantenne in dem Edge-Rechenknoten 250, zu erhalten. Eine drahtlose Batterieladeschaltung, wie etwa unter anderem ein LTC4020-Chip von Linear Technologies in Milpitas, Kalifornien, kann in der Batterieüberwachungsvorrichtung/Ladevorrichtung 278 enthalten sein. Die spezifischen Ladeschaltungen können basierend auf der Größe der Batterie 276 und somit dem erforderlichen Strom ausgewählt werden. Das Laden kann unter anderem unter Verwenden des von der Airfuel Alliance veröffentlichten Airfuel Standards, des von dem Wireless Power Consortium veröffentlichten Qi-Drahtlosladestandards oder des von der Alliance for Wireless Power veröffentlichten Rezence Ladestandards ausgeführt werden.
  • Die Speicherung 258 kann Anweisungen 282 in der Form von Software, Firmware oder Hardwarebefehlen zum Umsetzen der hierin beschriebenen Techniken beinhalten. Obwohl derartige Anweisungen 282 als Codeblöcke gezeigt sind, die in dem Speicher 254 und der Speicherung 258 enthalten sind, versteht es sich, dass beliebige der Codeblöcke durch fest verdrahtete Schaltungen ersetzt werden können, die zum Beispiel in einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit - ASIC) eingebaut sind.
  • Bei einem Beispiel können die Anweisungen 282, die über den Speicher 254, die Speicherung 258 oder den Prozessor 252 bereitgestellt werden, als ein nichtflüchtiges maschinenlesbares Medium 260 verkörpert sein, das Code beinhaltet, um den Prozessor 252 anzuweisen, elektronische Operationen in dem Edge-Rechenknoten 250 auszuführen. Der Prozessor 252 kann über das Interconnect 256 auf das nichtflüchtige maschinenlesbare Medium 260 zugreifen. Beispielsweise kann das nichtflüchtige maschinenlesbare Medium 260 von Vorrichtungen umgesetzt werden, die für die Speicherung 258 beschrieben sind, oder kann spezifische Speichereinheiten, wie etwa optische Platten, Flash-Laufwerke oder eine beliebige Anzahl anderer Hardwarevorrichtungen, beinhalten. Das nichtflüchtige, maschinenlesbare Medium 260 kann Anweisungen beinhalten, um den Prozessor 252 anzuweisen, eine spezifische Sequenz oder einen spezifischen Fluss von Aktionen auszuführen, wie zum Beispiel mit Bezug auf das Flussdiagramm bzw. die Flussdiagramme und Blockdiagramme von Operationen und Funktionalität, die oben dargestellt sind, beschrieben. Wie hierin verwendet, sind die Begriffe „maschinenlesbares Medium“ und „computerlesbares Medium“ austauschbar.
  • Bei einem spezifischen Beispiel können die Anweisungen 282 auch auf dem Prozessor 252 (separat oder in Kombination mit den Anweisungen 282 des maschinenlesbaren Mediums 260) die Ausführung oder Operation einer vertrauenswürdigen Ausführungsumgebung (TEE) 290 konfigurieren. Bei einem Beispiel arbeitet das TEE 290 als ein geschützter Bereich, der für den Prozessor 252 zur sicheren Ausführung von Anweisungen und zum sicheren Zugriff auf Daten zugänglich ist. Verschiedene Umsetzungen der TEE 290 und eines begleitenden sicheren Bereichs in dem Prozessor 252 oder dem Speicher 254 können beispielsweise durch Verwenden von Intel® Software Guard Extensions (SGX) oder ARM® TrustZone®-Hardwaresicherheitserweiterungen, Intel® Management Engine (ME) oder Intel® Converged Security Manageability Engine (CSME) bereitgestellt werden. Andere Aspekte von Sicherheitshärtung, Hardware-Vertrauensankern und vertrauenswürdigen oder geschützten Operationen können in der Vorrichtung 250 vor der TEE 290 und dem Prozessor 252 umgesetzt werden.
  • Nun unter Bezugnahme auf 3 richtet der Quell-Rechenknoten 102 bei einer veranschaulichenden Ausführungsform eine Umgebung 300 während des Betriebs ein. Die veranschaulichende Umgebung 300 weist einen Videocodierer 302 auf. Die verschiedenen Module der Umgebung 300 können als Hardware, Software, Firmware oder eine Kombination davon umgesetzt sein. Zum Beispiel können die verschiedenen Module, Logik und andere Bauelemente der Umgebung 300 einen Teil des Prozessors 204 oder anderen Hardwarebauelements des Quell-Rechenknotens 102, wie etwa des Speichers 206, der Datenspeicherung 210 usw., bilden oder anderswie von diesen eingerichtet werden. Daher können bei einigen Ausführungsformen ein oder mehrere der Module der Umgebung 300 als eine Schaltungsanordnung oder Sammlung elektrischer Vorrichtungen (zum Beispiel Videocodierungsschaltungsanordnung 312 usw.) umgesetzt sein. Bei einigen Ausführungsformen können einige oder alle der Module der Umgebung 300 zum Beispiel als ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), eine Beschleunigervorrichtung und/oder dergleichen umgesetzt sein. Es versteht sich, dass bei einigen Ausführungsformen eine oder mehrere der Schaltungen (zum Beispiel die Videocodiererschaltungsanordnung 312 usw.) einen Teil des Prozessors 204 und/oder des Speichers 206 und/oder des E/A-Subsystems 208 und/oder der Datenspeicherung 210 und/oder anderer Bauelemente des Quell-Rechenknotens 102 bilden können. Zum Beispiel können bei einigen Ausführungsformen einige oder alle der Module als der Prozessor 204 sowie der Speicher 206 und/oder die Datenspeicherung 210 verkörpert sein, die Anweisungen speichern, die der Prozessor 204 ausführen soll. Zusätzlich können bei einigen Ausführungsformen eines oder mehrere der veranschaulichenden Module einen Teil eines anderen Moduls bilden, und/oder eines oder mehrere der veranschaulichenden Module können voneinander unabhängig sein. Weiter können bei einigen Ausführungsformen eines oder mehrere der Module der Umgebung 300 als virtualisierte Hardwarebauelemente oder emulierte Architektur umgesetzt sein, die von dem Prozessor 204 oder anderen Bauelementen des Quell-Rechenknotens 102 eingerichtet und aufrechterhalten werden können. Es versteht sich, dass einige der Funktionalitäten eines oder mehrerer der Module der Umgebung 300 eine Hardware-Umsetzung erfordern können, wobei in diesem Fall Ausführungsformen von Modulen, die derartige Funktionalitäten umsetzen, mindestens teilweise als Hardware umgesetzt werden.
  • Der Videocodierer 302, der als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon wie oben besprochen, verkörpert sein kann, ist dazu konzipiert, Video zu codieren, das von einer Videoquelle, wie etwa der Kamera 214, kommt, empfangen wird. Bei einigen Ausführungsformen kann der Videocodierer 302 auf Video zugreifen, das auf dem Quell-Rechenknoten 102 gespeichert ist (wie etwa in der Datenspeicherung 21 gespeichert ist), oder kann Video von einem entfernten Rechenknoten, wie etwa von dem Kommunikationssubsystem 212, empfangen.
  • Der veranschaulichende Videocodierer 302 ist dazu konfiguriert, automatisch eine Region-of-Interest von Frames des Videos zu bestimmen. Der Videocodierer 302 kann Parameter oder Anweisungen dazu empfangen, wie eine Region-of-Interest bestimmt werden soll. Zum Beispiel kann der Videocodierer 302 Anweisungen zum Kennzeichnen einer Person als eine Region-of-Interest, Kennzeichnen eines Autos als eine Region-of-Interest, Kennzeichnen eines Teils eines Autos, wie etwa eines Nummernschilds, als eine Region-of-Interest usw. empfangen. Der Videocodierer 302 kann auf maschinellem Lernen basierte Algorithmen anwenden, um die Regions-of-Interest zu identifizieren. Der Videocodierer 302 kann auf Parameter für einen derartigen Algorithmus, der auf dem Quell-Rechenknoten 102 gespeichert ist, zugreifen, kann sie von einem Benutzer des Quell-Rechenknotens 102 empfangen, kann sie von einem anderen Rechenknoten 102 empfangen, sie unter Verwenden eines Trainingsalgorithmus zum maschinellen Lernen erzeugen usw.
  • Für jedes Frame des Videos kann der Videocodierer 302 eine Region-of-Interest des Frames bestimmen. Der Videocodierer 302 kann die Region-of-Interest auf eine beliebige geeignete Weise angeben, wie etwa durch Auswählen von Makroblöcken als die Region-of-Interest einschließlich des Angebens eines Begrenzungskastens um die Region-of-Interest, Angebens einer Kontur um die Region-of-Interest usw.
  • Der Videocodierer 302 ist dazu konzipiert, Frames des Videos zu codieren. Der Videocodierer 302 kann dazu einen beliebigen geeigneten Codierungsalgorithmus verwenden, wie etwa einen Algorithmus, der bewegungskompensierte diskrete Cosinus-Transformationen einsetzt. Der Videocodierer 302 kann die Bereiche des Frames codieren, die als eine Region-of-Interest in höherer Qualität gekennzeichnet sind. Wie unten ausführlicher besprochen, kann ein Rauschparameter der Codierung des vorhergehenden Frames als ein Parameter zum Codieren des aktuellen Frames verwendet werden.
  • Der Videocodierer 302 ist dazu konfiguriert, nach dem Codieren ein gewichtetes mittleres Signal-Rausch-Verhältnis für jeden Frame zu bestimmen. Das gewichtete durchschnittliche Signal-Rauschverhältnis basiert auf einem berechneten Signal-Rausch-Verhältnis des Bereichs des Frames, der als eine Region-of-Interest bezeichnet wird, und dem berechneten Signal-Rausch-Verhältnis Bereichs des Frames, der nicht als eine Region-of-Interest bezeichnet wird, wobei die zwei unterschiedlichen berechneten Signal-Rausch-Verhältniswerte unterschiedlich gewichtet werden. Wie hierin verwendet, verweist Rauschen auf Unterschiede in einem codierten Frame von dem ursprünglichen Frame, und das Signal-Rausch-Verhältnis verweist das Verhältnis des maximalen Signals (das heißt der höchsten Intensität eines Pixels) zu dem Rauschen. Bei der veranschaulichenden Ausführungsform wird das Rauschen jedes Pixels in dem ROI mit einer anderen Menge gewichtet als jedes Pixel in dem Nicht-ROI. Bei anderen Ausführungsformen kann das gewichtete durchschnittliche Signal-Rausch-Verhältnis zum Beispiel die relative Größe des ROI gegenüber dem Nicht-ROI, die Form des ROI usw. berücksichtigen. Der Parameter oder die Parameter, die bei der Gewichtung verwendet werden, können von beliebigen geeigneten Faktoren abhängen, wie etwa von einer Benutzereinstellung, einem Parameter, der basierend auf einem Algorithmus auf der Basis maschinellen Lernens usw. bestimmt wird.
  • Bei einer Ausführungsform kann der Videocodierer 302 ein gewichtetes durchschnittliches Spitzen-Signal-Rausch-Verhältnis berechnen. Bei der veranschaulichenden Ausführungsform ist das gewichtete mittlere Spitzen-Signal-Rausch-Verhältnis (WAPS) definiert als: WAPS = 10 log MAX I 2 MSE ,
    Figure DE102021211047A1_0001
    oder, äquivalent, WAPS = 20 log MAX I 10 logMSE ,
    Figure DE102021211047A1_0002
    wobei MAX I = 2 B 1, und
    Figure DE102021211047A1_0003
    MSE = 1 m n i = 0 m 1 j = 0 n 1 ROI ( i , j ) × ( I ( i , j ) K ( i , j ) ) 2 .
    Figure DE102021211047A1_0004
  • B die Bittiefe ist, m die Länge des Frames ist, n die Höhe des Frames ist, ROI(i, j) a zurückgibt, falls sich das Pixel an Koordinaten (i, j) in einer Region-of-Interest befindet, und ansonsten b zurückgibt, a der Gewichtungsfaktor für ROI-Pixel ist, b der Gewichtungsfaktor für Nicht-ROI-Pixel ist, I(i, j) die Intensität des Pixels des codierten Frames mit der Koordinate (i, j) ist, und K(i, j) die Intensität des Pixels des ursprünglichen Frames mit der Koordinate (i, j) ist. Die ROI(I, j) stellt sicher, dass das Rauschen der ROI-Pixel anders gewichtet wird als das Rauschen der Nicht-ROI-Pixel. Die veranschaulichende Bittiefe beträgt 8 Bit. Bei anderen Ausführungsformen kann sie höher oder niedriger sein, wie etwa 6 bis 20 Bits. Die Länge und Höhe des Frames können beliebige geeignete Werte, wie etwa eine beliebige Auflösung der oben aufgelisteten Kamera 214, sein. Die Intensität I und K kann ein beliebiger Wert von 0 bis zu dem Maximum der Bittiefe (das heißt 2B - 1) sein. Das Verhältnis zwischen a und b kann ein beliebiges geeignetes Verhältnis sein, wie etwa irgendwo von 1 bis 1.000. Es versteht sich, dass nur die relativen Werte von a und B wichtig sind, da das Eskalieren beider einfach den Wert aller ähnlichen WAPS-Messungen skalieren würden. Bei der veranschaulichenden Ausführungsform kann a oder b auf 1 festgelegt sein. Zum Beispiel kann b auf 1 festgelegt sein und a kann ein beliebiger geeigneter Wert über 1 sein.
  • Es versteht sich, dass der Frame mehrere Kanäle, wie etwa mehrere Farbkanäle, aufweisen kann. Die WAPS können für mehrere Kanäle auf eine beliebige geeignete Weise berechnet werden. Zum Beispiel können die WAPS für jeden Kanal separat berechnet und miteinander summiert werden. Die Gesamtintensität für alle Kanäle kann addiert werden, um einen Kanal zu bilden, dessen WAPS berechnet wird. Die Kanäle können von einem Farbraum in einen anderen umgewandelt werden, wie etwa von RGB zu YCbCr oder HSL, bevor die WAPS für jeden Kanal bestimmt werden.
  • Bei einer anderen Ausführungsform kann der Videocodierer 302 ein Maß eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindex (WASS) ausführen. Der WASS kann bestimmt werden, indem das Strukturähnlichkeitsindexmaß (SSIM) für verschiedene Fenster berechnet wird, wie etwa ein SSIM für die ROI und ein anderes SSIM für die Nicht-ROI. Das SSIM für die ROI kann gewichtet werden, wie etwa mit dem Faktor a gewichtet werden, der oben für die WAPS beschrieben ist, und dann zu dem SSIM für die Nicht-ROI hinzugefügt werden, die ebenfalls gewichtet werden kann, wie etwa mit dem Faktor b, der oben beschrieben ist. Das Ergebnis der Summe der beiden gewichteten SSIM-Werte kann der WASS sein.
  • Der Videocodierer 302 kann einen nachfolgenden Frame basierend auf dem gewichteten durchschnittlichen Signal-Rausch-Verhältnis eines vorhergehenden Frames codieren. Bei der veranschaulichenden Ausführungsform verwendet der Videocodierer 302 das gewichtete durchschnittliche Signal-Rausch-Verhältnis des unmittelbar vorhergehenden Frames als einen Parameter zum Codieren des aktuellen Frames. Bei einigen Ausführungsformen verwenden Frames, wie etwa Referenz-Frames oder Frames unmittelbar nach Referenz-Frames, möglicherweise nicht den gewichteten Mittelwert irgendeines anderen Frames als einen Parameter zum Codieren des Frames. Das gewichtete durchschnittliche Signal-Rausch-Verhältnis des vorhergehenden Frames, wie etwa der WAPS oder des WASS, kann als ein Parameter verwendet werden, um Parameter des Codierens des aktuellen Frames abzustimmen, wie etwa die Parameter, die eine Anzahl von Bits angeben, die für die Bereiche des Frames, die als eine Region-of-Interest markiert sind, und für Bereiche des Frames, die nicht als eine Region-of-Interest markiert sind, verwendet werden sollen. Auf diese Weise kann das Signal-Rausch-Verhältnis sowohl der ROI als auch der Nicht-ROI als ein Parameter beim Bestimmen von Auswahlen in einer Ratenverzerrungsoptimierungsvorgehensweise verwendet werden.
  • Unter Bezugnahme auf 4 legt nun der Senken-Rechenknoten 104 bei einer veranschaulichenden Ausführungsform während des Betriebs eine Umgebung 400 fest. Die veranschaulichende Umgebung 400 beinhaltet einen Videodecoder 402, einen Videoverbesserer 404 und einen Videoinferenzierer 406. Die verschiedenen Module der Umgebung 400 können als Hardware, Software, Firmware oder eine Kombination davon umgesetzt sein. Zum Beispiel können die verschiedenen Module, Logik und andere Bauelemente der Umgebung 400 einen Teil des Prozessors 204 oder anderer Hardwarebauelemente des Senken-Rechenknotens 104, wie etwa des Speichers 206, der Datenspeicherung 210 usw., bilden oder anderswie von diesen eingerichtet werden. Daher können bei einigen Ausführungsformen ein oder mehrere der Module der Umgebung 400 als eine Schaltungsanordnung oder Sammlung elektrischer Vorrichtungen (zum Beispiel eine Videodecodiererschaltungsanordnung 402, eine Videoverbesserungsschaltungsanordnung 404, eine Videoinferenzschaltungsanordnung 406 usw.) verkörpert sein. Bei einigen Ausführungsformen können einige oder alle der Module der Umgebung 400 zum Beispiel als ein feldprogrammierbares Gate-Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC), eine Beschleunigervorrichtung und/oder dergleichen verkörpert sein. Es versteht sich, dass bei einigen Ausführungsformen eine oder mehrere der Schaltungen (zum Beispiel die Objektmanagerschaltungsanordnung 402, die Abfragemanagerschaltungsanordnung 404 und die Datenspeicherungssteuervorrichtungs-Schaltungsanordnung 406 usw.) einen Teil des Prozessors 204 und/oder des Speichers 206 und/oder des E/A-Subsystems 208 und/oder der Datenspeicherung 210 und/oder anderer Bauelemente des Senken-Rechenknotens 104 bilden können. Zum Beispiel können bei einigen Ausführungsformen einige oder alle der Module als der Prozessor 204 sowie der Speicher 206 und/oder die Datenspeicherung 210 verkörpert sein, die Anweisungen speichern, die der Prozessor 204 ausführen soll. Zusätzlich können bei einigen Ausführungsformen eines oder mehrere der veranschaulichenden Module einen Teil eines anderen Moduls bilden, und/oder eines oder mehrere der veranschaulichenden Module können voneinander unabhängig sein. Weiter können bei einigen Ausführungsformen ein oder mehrere der Module der Umgebung 400 als virtualisierte Hardwarebauelemente oder emulierte Architektur umgesetzt sein, die von dem Prozessor 204 oder anderen Bauelementen des Senken-Rechenknotens 104 eingerichtet und aufrechterhalten werden können. Es versteht sich, dass einige der Funktionalitäten eines oder mehrerer der Module der Umgebung 400 eine Hardware-Umsetzung erfordern können, wobei in diesem Fall Ausführungsformen von Modulen, die derartige Funktionalitäten umsetzen, mindestens teilweise als Hardware umgesetzt werden.
  • Der Videodecoder 402, der als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon, wie oben besprochen, verkörpert sein kann, ist dazu konzipiert, Frames eines Videos zu decodieren. Die zu decodierenden Frames können zum Beispiel von dem Quell-Rechenknoten 102, der das Video aufgenommen hat, empfangen werden. Bei anderen Ausführungsformen kann der Videodecoder 402 einen Frame empfangen, indem er darauf von einer lokalen Speicherungsvorrichtung zugreift, es von einem lokalen Sensor empfängt oder es von einer entfernten Rechenvorrichtung empfängt, die nicht diejenige ist, die den Frame aufgenommen hat. Der Videodecoder 402 kann einen Decodierungsalgorithmus verwenden, der dem Codierungsalgorithmus entspricht, der zum Codieren des Videos verwendet wird.
  • Der Videoverbesserer 404, der, wie oben besprochen als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein kann, ist dazu konfiguriert, das decodierte Frame zu verbessern. Es versteht sich, dass, obwohl die Region-of-Interest von hoher Qualität sowohl für maschinelles Inferenzieren als auch menschlichen Verbrauch sein kann, der Bereich, der nicht als eine Region-of-Interest markiert ist, von relativ niedriger Qualität sein kann, insbesondere wie von einem menschlichen Betrachter wahrgenommen. Daher kann der Videoverbesserer 404 die Qualität der Interest verbessern, wie etwa durch Verwenden eines Generative Adverserial Network oder eines anderen auf maschinellem Lernen basierenden Algorithmus. Obwohl ein derartiger Ansatz natürlich das Rauschen nicht entfernen kann, um den codierten Frame in den ursprünglichen Frame zurückzuführen, kann er die wahrgenommene Qualität des Videos für menschlichen Verbrauch verbessern. Zusätzlich dazu kann der Videoverbesserer 404 die Präzision des maschinellen Sehens auf Kosten zusätzlicher Rechenressourcen verbessern.
  • Der Videoverbesserer 404 kann die Qualität des Nicht-ROI-Teils des Frames basierend auf einem gewichteten mittleren Signal-Rausch-Verhältnis verbessern, wie etwa dem gewichteten mittleren Signal-Rausch-Verhältnis des codierten Frames oder dem gewichteten mittleren Signal-Rausch-Verhältnis des Frames, der zum Codieren des aktuellen Frames verwendet wird. Der Videoverbesserer 404 kann das gewichtete durchschnittliche Signal-Rausch-Verhältnis zwischen dem codierten Frame und dem Frame berechnen, nachdem die Qualität zum Beispiel von dem Generative Adverserial Network verbessert wurde. Das Generative Adverserial Network (oder ein anderer Qualitätsverbesserungsalgorithmus) kann die Verbesserungsmenge abstimmen, bis das berechnete gewichtete durchschnittliche Signal-Rausch-Verhältnis des verbesserten Frames relativ zu dem codierten Frame mit einer vorbestimmten Schwellendifferenz eines gewichteten durchschnittlichen Signal-Rausch-Verhältniswerts, der mit den codierten Frame empfangen wird, übereinstimmt oder innerhalb dieser liegt.
  • Der Videoinferenzierer 406, der, wie oben besprochen,als Hardware, Firmware, Software, virtualisierte Hardware, emulierte Architektur und/oder eine Kombination davon verkörpert sein kann, ist dazu konfiguriert, eine Inferenz auf den empfangenen Frames auszuführen. Der Videoinferenzierer 406 kann eine Inferenz auf den Frames vor oder nach einer Qualitätsverbesserung durch den Videoverbesserer 404 ausführen. Es versteht sich, dass bei der veranschaulichenden Ausführungsform die Bereiche des Frames, die als eine Region-of-Interest markiert sind, nicht von dem Videoverbesserer 404 verbessert werden, und dass es die Bereiche sind, die als ein Region-of-Interest markiert sind, auf die sich der Videoinferenzierer 406 fokussiert. Infolgedessen behindert der Videoverbesserer 404 die Leistungsfähigkeit des Videoinferenzierers 406 nicht.
  • Unter Bezugnahme auf 5 kann nun ein Quell-Rechenknoten 102 bei Verwendung ein Verfahren 500 zum Codieren eines Videos ausführen. Das Verfahren 500 beginnt bei Block 502, in dem der Quell-Rechenknoten 102 Parameter zum Identifizieren einer Region-of-Interest bestimmt. Die Region-of-Interest kann zum Beispiel ein Bereich mit einer Person darin, ein Bereich mit einem Auto darin, ein Bereich mit einem Nummernschild eines Autos darin usw. sein. Die Parameter, die zum Bestimmen der Region-of-Interest verwendet werden, können beliebige geeignete Parameter sein, wie etwa Parameter eines auf maschinellem Lernen basierenden Bildverarbeitungsalgorithmus. Der Quell-Rechenknoten 102 kann die Parameter auf eine beliebige geeignete Weise bestimmen. Beispielsweise kann der Quell-Rechenknoten 102 auf Parameter für einen derartigen Algorithmus zugreifen, der auf dem Quell-Rechenknoten 102 gespeichert ist, kann sie von einem Benutzer des Quell-Rechenknotens 102 empfangen, kann sie von einem anderen Rechenknoten 102 empfangen, sie unter Verwenden eines Trainingsalgorithmus zum maschinellen Lernen erzeugen usw.
  • Bei Block 504 empfängt der Quell-Rechenknoten 102 einen Frame an einem Sensor, wie etwa der Kamera 214. Bei einigen Ausführungsformen kann der Quell-Rechenknoten 102 einen Frame zum Beispiel empfangen, indem er auf ihn von der Datenspeicherung 210 auf dem Quell-Rechenknoten 102 zugreift, ihn von einem anderen Rechenknoten empfängt usw.
  • Bei Block 506 bestimmt der Quell-Rechenknoten 102 eine Region-of-Interest des Frames mit Verwendung der bestimmten Parameter zum Identifizieren einer Region-of-Interest. Der Quell-Rechenknoten 102 kann die Region-of-Interest auf eine beliebige geeignete Weise angeben, wie etwa durch Auswählen von Makroblöcken als die Region-of-Interest beinhaltend und, Angeben eines Begrenzungskastens um die Region-of-Interest, Angeben einer Kontur um die Region-of-Interest usw.
  • Bei Block 508 codiert der Quell-Rechenknoten 102 einen Frame des Videos. Der Quell-Rechenknoten 102 kann dazu einen beliebigen geeigneten Codierungsalgorithmus verwenden, wie etwa einen Algorithmus, der bewegungskompensierte diskrete Cosinus-Transformationen einsetzt. Der Quell-Rechenknoten 102 kann die Bereiche des Frames codieren, die als eine Region-of-Interest in höherer Qualität markiert sind. Es versteht sich, dass bei einigen Ausführungsformen bestimmte Frames, wie etwa Referenz-Frames, möglicherweise nicht codiert sind.
  • Der Quell-Rechenknoten 102 kann den Frame basierend auf dem gewichteten durchschnittlichen Signal-Rausch-Verhältnis des vorhergehenden Frames bei Block 510 codieren. Auf das gewichtete mittlere Signal-Rausch-Verhältnis des vorhergehenden Frames wird oben bezüglich des Video-Encoders 302 und unten bezüglich des Blocks 514 näher eingegangen. Das gewichtete durchschnittliche Signal-Rausch-Verhältnis des vorhergehenden Frames, wie etwa der WAPS oder des WASS, kann als ein Parameter verwendet werden, um Parameter des Codierens des aktuellen Frames abzustimmen, wie etwa die Parameter, die eine Anzahl von Bits angeben, die für die Bereiche des Frames, die als eine Region-of-Interest markiert sind, und für Bereiche des Frames, die nicht als eine Region-of-Interest markiert sind, verwendet werden sollen.
  • Bei Block 512 sendet der Quell-Rechenknoten 102 bei der veranschaulichenden Ausführungsform den codierten Frame an die entfernte Rechenvorrichtung, wie etwa einen Senken-Rechenknoten 104. Zusätzlich oder alternativ dazu kann der Quell-Rechenknoten 102 bei einigen Ausführungsformen den codierten Frame lokal auf dem Quell-Rechenknoten 102 zur späteren Verarbeitung oder Übertragung speichern.
  • Bei Block 514 bestimmt der Quell-Rechenknoten 102 ein gewichtetes durchschnittliches Signal-Rausch-Verhältnis des codierten Frames. Rauschen verweist auf Unterschiede in einem codierten Frame von dem ursprünglichen Frame, und das gewichtete durchschnittliche Signal-Rausch-Verhältnis basiert auf einem berechneten Signal-Rausch-Verhältnis des Bereichs des Frames, der als eine Region-of-Interest markiert ist, und dem berechneten Signal-Rausch-Verhältnis des Bereichs des Frames, der nicht als eine Region-of-Interest bezeichnet wird, wobei die zwei verschiedenen berechneten Rauschwerte unterschiedlich gewichtet werden. Der Quell-Rechenknoten 102 kann ein beliebiges geeignetes gewichtetes durchschnittliches Signal-Rausch-Verhältnis berechnen, wie etwa die WAPS oder den WASS, die oben im Zusammenhang mit dem Videocodierer 402 erörtert wurden. Wie oben erörtert, kann das gewichtete durchschnittliche Signal-Rausch-Verhältnis als eine Eingabe beim Bestimmen von Parametern zum Codieren des nächsten Frames verwendet werden. Das Verfahren 500 verschleift dann zu Block 504 zurück, um den nächsten Frame an dem Sensor zu empfangen.
  • Unter Bezugnahme auf 6 kann nun ein Senken-Rechenknoten 104 bei Verwendung ein Verfahren 600 zum Decodieren eines Videos ausführen. Das Verfahren 600 beginnt bei Block 602, bei dem der Senken-Rechenknoten 104 einen Video-Frame empfängt. Bei der veranschaulichenden Ausführungsform empfängt der Senken-Rechenknoten 104 den Frame von dem Quell-Rechenknoten 102, der das Video aufgenommen hat. Bei anderen Ausführungsformen kann der Senken-Rechenknoten 104 einen Frame empfangen, indem er auf ihn von einer lokalen Speicherungsvorrichtung zugreift, ihn von einem lokalen Sensor empfängt oder ihn von einer entfernten Rechenvorrichtung empfängt, die nicht diejenige ist, die den Frame aufgenommen hat. Bei der veranschaulichenden Ausführungsform empfängt der Senken-Rechenknoten 104 auch eine Angabe des gewichteten durchschnittlichen Signal-Rausch-Verhältnisses des aktuellen und/oder vorhergehenden Frames.
  • Bei Block 604 bestimmt der Senken-Rechenknoten 104 eine Region-of-Interest. Bei der veranschaulichenden Ausführungsform wendet der Senken-Rechenknoten 104 einen auf maschinellem Lernen basierenden Algorithmus an, um Bereiche zu identifizieren, die als Region-of-Interest codiert wurden. Der auf maschinellem Lernen basierende Algorithmus kann unter Verwenden markierter oder unmarkierter Trainingsdaten von Frames mit Bereichen, die als Region-of-Interest codiert sind, und Bereichen, die als Nicht-Region-of-Interest codiert sind, trainiert werden. Die Trainingsdaten können zum Beispiel mit Verwendung des Videocodierers 402 erzeugt werden. Bei einigen Ausführungsformen können die Trainingsdaten mit Verwendung eines Videocodierers erzeugt werden, der kein gewichtetes durchschnittliches Signal-Rausch-Verhältnis des vorhergehenden Frames einsetzt, um den aktuellen Frame zu codieren.
  • Bei Block 606 verbessert die Senken-Rechenvorrichtung 104 die Qualität des Nicht-Region-of-Interest-Teils des Frames. Es versteht sich, dass, obwohl die Region-of-Interest von hoher Qualität sowohl für maschinelles Inferencing als auch menschlichen Verbrauch sein kann, der Bereich, der nicht als eine Region-of-Interest markiert ist, von relativ niedriger Qualität sein kann. Daher kann die Senken-Rechenvorrichtung 104 die Qualität der Nicht-Region-of-Interest verbessern, wie etwa durch Verwenden eines Generative Adversarial Network oder eines anderen auf maschinellem Lernen basierten Algorithmus. Obwohl ein derartiger Ansatz natürlich das Rauschen nicht entfernen kann, um den codierten Frame in den ursprünglichen Frame zurückzuführen, kann er die wahrgenommene Qualität des Videos für menschlichen Verbrauch verbessern.
  • Bei Block 608 verbessert die Senken-Rechenvorrichtung 104 die Qualität des Nicht-ROI-Teils des Frames basierend auf einem gewichteten mittleren Signal-Rausch-Verhältnis, wie etwa dem gewichteten mittleren Signal-Rausch-Verhältnis des codierten Frames oder dem gewichteten mittleren Signal-Rausch-Verhältnis des Frames, der zum Codieren des aktuellen Frames verwendet wird. Die Senken-Rechenvorrichtung 104 kann das gewichtete durchschnittliche Signal-Rausch-Verhältnis zwischen dem codierten Frame und dem Frame berechnen, nachdem die Qualität zum Beispiel von dem Generative Adversarial Network verbessert wurde. Das Generative Adversarial Network (oder ein anderer Qualitätsverbesserungsalgorithmus) kann die Verbesserungsmenge abstimmen, bis das berechnete gewichtete durchschnittliche Signal-Rausch-Verhältnis des verbesserten Frames relativ zu dem codierten Frame mit einer vorbestimmten Schwellendifferenz des gewichteten durchschnittlichen Signal-Rausch-Verhältniswerts der bei Block 602 empfangen wird, übereinstimmt oder innerhalb davon liegt.
  • Nachdem der Frame verbessert wurde, kann er zu einem anderen Bauelement weitergeleitet werden, wie etwa zu einer Anzeige, um für einen einem Benutzer angezeigt zu werden, oder zu einem Videoinferenzierer 406, damit ein Inferenzierer den Frame verarbeitet. Das Verfahren 600 kehrt dann zu Block 602 zurück, um den nächsten Frame des Videos zu empfangen.
  • Beispielhafte Rechenausführungsformen
  • Die folgenden Abschnitte präsentieren verschiedene Beispiele von Rechenvorrichtungen, Systemen, Architekturen und Umgebungen, die in Verbindung mit der DFS-Speicherungs- und Abfrageverarbeitungsfunktionalität verwendet werden können, die durch diese Offenbarung hindurch beschrieben sind.
  • Beispielhafte Edge-Computing-Ausführungsformen
  • 7 ist ein Blockdiagramm 700, das einen Überblick über eine Konfiguration zur Edge-Computing zeigt, die eine Verarbeitungsschicht beinhaltet, die in vielen der folgenden Beispiele als eine „Edge-Cloud“ bezeichnet wird. Wie gezeigt, befindet sich die Edge-Cloud 710 gemeinsam an einem Egde-Ort, wie etwa einem Zugangspunkt oder einer Basisstation 740, einem lokalen Verarbeitungs-Hub 750 oder einer Zentrale 720, und kann somit mehrere Entitäten, Vorrichtungen und Geräteinstanzen beinhalten. Die Edge-Cloud 710 befindet sich viel näher an den Endpunktdatenquellen 760 (Verbraucher und Erzeuger) (zum Beispiel autonome Fahrzeuge 761, Benutzergerät 762, Geschäfts- und Industriegerät 763, Videoaufnahmevorrichtungen 764, Drohnen 765, intelligente Städte- und Gebäudevorrichtungen 766, Sensoren und IoT-Vorrichtungen 767 usw.) als das Cloud-Datenzentrum 730. Rechen-, Speicher- und Speicherressourcen, die an den Rändern in der Edge-Cloud 710 angeboten werden, sind für das Bereitstellen von Antwortzeiten mit ultraniedriger Latenz für Dienste und Funktionen, die von den Endpunktdatenquellen 760 verwendet werden, sowie für das Reduzieren von Netzwerk-Backhaul-Verkehr von der Edge-Cloud 710 zu dem Cloud-Datenzentrum 730 kritisch, wodurch unter anderen Vorteilen Energieverbrauch und Netzwerknutzungen insgesamt verbessert werden.
  • Rechnen, Speicher und Speicherung sind knappe Ressourcen und nehmen im Allgemeinen in Abhängigkeit von dem Edge-Ort ab (wobei zum Beispiel weniger Verarbeitungsressourcen an Verbraucherendpunktvorrichtungen verfügbar sind als an einer Basisstation, als an einer Zentrale). Je näher sich der Edge-Ort jedoch am Endpunkt (zum Beispiel Benutzergerät (UE)) befindet, desto mehr sind Raum und Leistung häufig eingeschränkt. Somit versucht Edge-Computing die Menge an Ressourcen, die für Netzwerkdienste benötigt werden, durch die Verteilung von mehr Ressourcen, die sich sowohl geografisch als auch in der Netzwerkzugriffszeit näher befinden, zu reduzieren. Auf diese Weise versucht Edge-Computing, die Rechenressourcen gegebenenfalls zu den Arbeitslastdaten zu bringen oder die Arbeitslastdaten zu den Rechenressourcen zu bringen.
  • Folgendes beschreibt Aspekte einer Edge-Cloud-Architektur, die mehrere potenzielle Einsätze abdeckt und Einschränkungen adressiert, die einige Netzbetreiber oder Dienstanbieter in ihren eigenen Infrastrukturen aufweisen können. Diese beinhalten Variation von Konfigurationen basierend auf dem Kantenort (weil Kanten auf einer Basisstationsebene zum Beispiel mehr eingeschränkte Leistungsfähigkeit und Fähigkeiten in einem mandantenfähigen Szenario aufweisen können); Konfigurationen basierend auf der Art des Rechnens, des Speichers, der Speicherung, Fabric-, Beschleunigungs- oder ähnlicher Ressourcen, die Edge-Standorten, Ebenen von Standorten oder Gruppen von Standorten zur Verfügung stehen; die Dienst-, Sicherheits- und Verwaltungs- und Orchestrierungsfähigkeiten; und verwandte Ziele zum Erreichen der Nutzbarkeit und Leistungsfähigkeit von Enddiensten. Diese Einsätze können eine Verarbeitung in Netzwerkschichten bewerkstelligen, die in Abhängigkeit von Latenz-, Entfernungs- und Timing-Charakteristiken als „Nah-Edge“-, „Nah-Edge“-, „Lokal-Edge“-, „Mittel-Edge“- oder „Fern-Edge“-Schichten betrachtet werden können.
  • Edge-Computing ist ein sich entwickelndes Paradigma, bei dem das Rechnen an oder näher an der „Kante“ eines Netzwerks ausgeführt wird, typischerweise durch die Verwendung einer Rechenplattform (zum Beispiel x86 oder ARM-Rechenhardwarearchitektur), die an Basisstationen, Gateways, Netzwerkroutern oder anderen Vorrichtungen umgesetzt ist, die sich viel näher an Endpunktvorrichtungen befinden, die Daten produzieren und verbrauchen. Edge-Gateway-Server können zum Beispiel mit Pools von Speicher und Speicherungsressourcen ausgestattet sein, um ein Rechnen in Echtzeit für Verwendungsfälle mit niedriger Latenz (zum Beispiel autonomes Fahren oder Videoüberwachung) für verbundene Client-Vorrichtungen auszuführen. Oder als ein Beispiel können Basisstationen mit Rechen- und Beschleunigungsressourcen erweitert werden, um Dienstarbeitslasten für verbundene Nutzergeräte direkt zu verarbeiten, ohne weitere Daten über Backhaul-Netzwerke zu kommunizieren. Oder als ein anderes Beispiel kann Zentralamtnetzverwaltungshardware durch standardisierte Rechenhardware ersetzt werden, die virtualisierte Netzwerkfunktionen ausführt und Rechenressourcen für die Ausführung von Diensten und Verbraucherfunktionen für verbundene Vorrichtungen anbietet. Innerhalb von Edge-Computing-Netzwerken kann es Szenarien in Diensten geben, in denen die Rechenressource zu den Daten „bewegt“ wird, sowie Szenarien, in denen die Daten zu der Rechenressource „bewegt“ werden. Oder als ein Beispiel können Basisstationsrechen-, Beschleunigungs- und Netzwerkressourcen Dienste bereitstellen, um die Arbeitslastanforderungen nach Bedarf durch Aktivieren ruhender Kapazität (Subskription, Capacity on Demand) zu skalieren, um Eckfälle, Notfälle zu verwalten oder Langlebigkeit für eingesetzte Ressourcen über einen wesentlich längeren umgesetzten Lebenszyklus bereitzustellen.
  • 8 veranschaulicht Betriebsschichten zwischen Endpunkten, eine Edge-Cloud und Cloud-Rechenumgebungen. Insbesondere bildet 8 Beispiele für Rechennutzungsfälle 805 ab, die Edge-Cloud 710 unter mehreren veranschaulichenden Schichten der Netzwerkberechnung nutzen. Die Schichten beginnen bei einer Endpunktschicht (Vorrichtungen- und Dinge-Schicht) 800, die auf die Edge-Cloud 710 zugreift, um Datenanlegungs-, Analyse- und Datenverbrauchsaktivitäten auszuführen. Die Edge-Cloud 710 kann mehrere Netzwerkschichten überspannen, wie etwa eine Edge-Vorrichtungsschicht 810 mit Gateways, Vor-Ort-Servern oder Netzwerkgeräten (Knoten 815), die sich in physisch nahen Edge-Systemen befinden, eine Netzwerkzugangsschicht 820, die Basisstationen, Funkverarbeitungseinheiten, Netzwerk-Hubs, regionale Datenzentren (DC) oder lokales Netzwerkgerät (Gerät 825) beinhaltet; und beliebige Geräte, Vorrichtungen oder Knoten, die sich dazwischen befinden (in Schicht 812, nicht ausführlich veranschaulicht). Die Netzwerkkommunikationen innerhalb der Edge-Cloud 710 und zwischen den verschiedenen Schichten können über eine beliebige Anzahl verdrahteter oder drahtloser Medien stattfinden, einschließlich über Konnektivitätsarchitekturen und Technologien, die nicht abgebildet sind.
  • Beispiele für Latenz, die aus Netzwerkkommunikationsentfernungs- und Verarbeitungszeitauflagen resultieren, können von weniger als einer Millisekunde (ms), wenn inmitten der Endpunktschicht 800, unter 5 ms an der Edge-Vorrichtungsschicht 810, bis sogar zwischen 10 und 40 ms, wenn mit Knoten an der Netzwerkzugangsschicht 820 kommuniziert wird, reichen. Jenseits der Edge-Cloud 710 befinden sich Schichten des Kernnetzwerks 830 und des Cloud-Datenzentrums 840, jeweils mit zunehmender Latenz (zum Beispiel zwischen 50 bis 60 ms an der Kernnetzwerkschicht 830 bis 100 oder mehr ms an der Cloud-Datenzentrumsschicht). Infolgedessen werden Operationen an einem Kernnetzwerk-Datenzentrum 835 oder einem Cloud-Datenzentrum 845 mit Latenzen von mindestens 50 bis 100 ms oder mehr nicht in der Lage sein, viele zeitkritische Funktionen der Verwendungsfälle 805 zu realisieren. Jeder dieser Latenzwerte wird zu Veranschaulichungs- und Kontrastzwecken bereitgestellt; es versteht sich, dass die Verwendung anderer Zugangsnetzwerkmedien und -technologien die Latenzen weiter reduzieren kann. Bei einigen Beispielen können jeweilige Teile des Netzwerks relativ zu einer Netzwerkquelle und einem Netzwerkziel als „Close-Edge“-, „Local-Edge“-, „Near-Edge“-, „Middle-Edge“- oder „Far-Edge“-Schichten kategorisiert sein. Beispielsweise kann aus der Perspektive des Kernnetzwerk-Datenzentrums 835 oder eines Cloud-Datenzentrums 845 ein Zentralen- oder Inhaltsdatennetzwerk als innerhalb einer „Near-Edge“-Schicht („near“ (nahe) an der Cloud, mit hohen Latenzwerten, wenn mit den Vorrichtungen und Endpunkten der Verwendungsfälle 805 kommuniziert wird) befindlich betrachtet werden, wohingegen ein Zugangspunkt, eine Basisstation, ein Vor-Ort-Server oder ein Netzwerk-Gateway als innerhalb einer „Far-Edge“-Schicht („far“ (fern) von der Cloud entfernt, mit niedrigen Latenzwerten, wenn mit den Vorrichtungen und Endpunkten der Verwendungsfälle 805 kommuniziert wird) befindlich betrachtet werden können. Es versteht sich, dass andere Kategorisierungen einer speziellen Netzwerkschicht als ein „Close“-, „Local“-, „Near“-, „Middle“- oder „Far“-Edge bildend auf Latenz, Entfernung, Anzahl von Netzwerksprüngen oder anderen messbaren Charakteristiken basieren können, wie von einer Quelle in einer beliebigen der Netzwerkschichten 800-840 gemessen.
  • Die unterschiedlichen Verwendungsfälle 805 können aufgrund mehrerer Dienste, die die Edge-Cloud nutzen, auf Ressourcen unter Nutzungsdruck von eingehenden Strömen zugreifen. Um Ergebnisse mit niedriger Latenz zu erzielen, gleichen die Dienste, die innerhalb der Edge-Cloud 710 ausgeführt werden, variierende Voraussetzungen in Bezug auf Folgendes aus: (a) Priorität (Durchsatz oder Latenz) und Servicequalität (QoS: Quality of Service) (zum Beispiel kann Verkehr für ein autonomes Auto eine höhere Priorität als ein Temperatursensor im Zusammenhang mit der Antwortzeitvoraussetzung aufweisen; oder eine Leistungsfähigkeitsempfindlichkeit/-engstelle kann an einer Rechen-/Beschleuniger-, Speicher-, Speicherungs- oder Netzwerkressource in Abhängigkeit von der Anwendung existieren); (b) Zuverlässigkeit und Widerstandsfähigkeit (zum Beispiel müssen einige Eingangsströme bearbeitet und der Verkehr mit missionskritischer Zuverlässigkeit geleitet werden, wohingegen einige anderen Eingangsströme je nach Anwendung einen gelegentlichen Ausfall tolerieren können); und (c) physische Einschränkungen (zum Beispiel Leistung, Kühlung und Formfaktor).
  • Die Ende-zu-Ende-Dienstansicht für diese Verwendungsfälle involviert das Konzept eines Dienstflusses und ist mit einer Transaktion assoziiert. Die Transaktion gibt die Gesamtdienstvoraussetzung für die Entität an, die den Dienst verbraucht, sowie die assoziierten Dienste für die Ressourcen, Arbeitslasten, Arbeitsabläufe und Unternehmensfunktions- und Unternehmensebenenvoraussetzungen. Die Dienste, die mit den beschriebenen „Begriffen“ ausgeführt werden, können in jeder Schicht auf eine Weise verwaltet werden, dass Echtzeit- und Laufzeitvertragskonformität für die Transaktion während des Lebenszyklus des Dienstes sichergestellt wird. Wenn einem Bauelement in der Transaktion sein vereinbartes SLA fehlt, kann das System als ein Ganzes (Bauelemente in der Transaktion) die Fähigkeit bereitstellen, (1) die Auswirkung der SLA-Verletzung zu verstehen und (2) andere Bauelemente in dem System zu erweitern, um das gesamte Transaktions-SLA wieder aufzunehmen, und (3) Schritte umzusetzen, um Abhilfe zu schaffen.
  • Dementsprechend kann unter Berücksichtigung dieser Variationen und Dienstleistungsmerkmale Edge-Computing innerhalb der Edge-Cloud 710 die Fähigkeit bereitstellen, mehrere Anwendungen der Verwendungsfälle 805 (zum Beispiel Objektverfolgung, Videoüberwachung, verbundene Autos usw.) in Echtzeit oder nahezu Echtzeit zu versorgen und auf diese zu reagieren und Voraussetzungen für ultraniedrige Latenz für diese mehreren Anwendungen zu erfüllen. Diese Vorteile ermöglichen eine ganz neue Klasse von Anwendungen (VNFs (Virtual Network Functions), FaaS (Function as a Service), Edge as a Service (EaaS), Standardprozesse usw.), die herkömmliches Cloud-Computing aufgrund von Latenz oder anderen Einschränkungen nicht nutzen können.
  • Mit den Vorteilen von Edge-Computing ergeben sich jedoch die folgenden Vorbehalte. Die am Edge befindlichen Vorrichtungen sind häufig ressourcenbeschränkt, sodass Druck auf die Nutzung von Edge-Ressourcen besteht. Typischerweise wird dies durch das Pooling von Speicher- und Speicherungsressourcen zur Verwendung durch mehrere Benutzer (Mandanten) und Vorrichtungen adressiert. Die Edge kann leistungs- und kühlungseingeschränkt sein, sodass der Leistungsverbrauch von den Anwendungen, die die meiste Leistung verbrauchen, berücksichtigt werden muss. Es kann inhärente Leistungs-Leistungsfähigkeits-Kompromisse in diesen gepoolten Speicherressourcen geben, da viele von ihnen wahrscheinlich neu entwickelte Speichertechnologien verwenden, bei denen höhere Leistung eine größere Speicherbandbreite benötigt. Gleichermaßen sind verbesserte Sicherheit von Hardware und vertrauenswürdigen Root-of-Trust-Funktionen auch erforderlich, da Edge-Orte unbemannt sein können und sogar zugelassenen Zugriff benötigen können (zum Beispiel, wenn sie an einem Drittpartei Standort untergebracht sind). Derartige Probleme werden in der Edge-Cloud 710 in einem Multi-Mandanten-, Multi-Eigentümer- oder Multi-Zugriff-Umfeld vergrößert, in dem Dienste und Anwendungen von vielen Benutzern angefordert werden, insbesondere da die Netzwerknutzung dynamisch schwankt und sich die Zusammensetzung der mehreren Stakeholder, Verwendungsfälle und Dienste ändert.
  • Auf einer generischeren Ebene kann ein Edge-Computing-System derart beschrieben werden, dass es eine beliebige Anzahl von Einsätzen an den zuvor besprochenen Schichten einschließt, die in der Edge-Cloud 710 arbeiten (Netzwerkschichten 800-840), die eine Koordination vom Client und verteilten Rechenvorrichtungen bereitstellen. Ein oder mehrere Edge-Gateway-Knoten, ein oder mehrere Edge-Aggregationsknoten und ein oder mehrere Kerndatenzentren können über Schichten des Netzwerks verteilt sein, um eine Umsetzung des Edge-Computing-Systems durch oder im Auftrag eines Telekommunikationsdienstanbieters („telco“ oder „TSP“), Internet-der-Dinge-Dienstanbieters, Cloud-Dienstanbieters (CSP), einer Unternehmensentität oder einer beliebigen anderen Anzahl von Entitäten bereitzustellen. Verschiedene Umsetzungen und Konfigurationen des Edge-Computing-Systems können dynamisch bereitgestellt werden, wie etwa, wenn sie orchestriert sind, um Dienstzielsetzungen zu erfüllen.
  • Im Einklang mit den hierin bereitgestellten Beispielen kann ein Client-Rechenknoten als eine beliebige Art von Endpunktbauelement, -vorrichtung, -gerät oder anderem dazu in der Lage sein, als ein Produzent oder Verbraucher von Daten zu kommunizieren. Weiter bedeutet die Bezeichnung „Knoten“ oder „Vorrichtung“, wie sie in dem Edge-Computing-System verwendet wird, nicht notwendigerweise, dass ein derartiger Knoten oder diese Vorrichtung in einer Client- oder Agent-/Minion-/Folgerrolle arbeitet; vielmehr verweisen beliebige der Knoten oder Vorrichtungen in dem Edge-Computing-System auf einzelne Entitäten, Knoten oder Subsysteme, die diskrete oder verbundene Hardware- oder Softwarekonfigurationen beinhalten, um die Edge-Cloud 710 zu erleichtern oder zu verwenden.
  • Daher ist die Edge-Cloud 710 aus Netzwerkbauelementen und funktionalen Merkmalen gebildet, die von und innerhalb von Edge-Gateway-Knoten, Edge-Aggregationsknoten oder anderen Edge-Rechenknoten unter den Netzwerkschichten 810-830 betrieben werden. Die Edge-Cloud 710 kann somit als eine beliebige Art von Netzwerk umgesetzt sein, das Edge-Computing- und/oder Speicherungsressourcen bereitstellt, die sich in der Nähe von funkzugangsnetzwerk-fähigen (RAN-fähigen) Endpunktvorrichtungen (zum Beispiel Mobilcomputervorrichtungen, IoT-Vorrichtungen, Smartvorrichtungen usw.) befinden, die hierin besprochen werden. Mit anderen Worten kann die Edge-Cloud 710 als ein „Kante“ gedacht werden, die die Endpunkteinrichtungen und traditionelle Netzwerkzugangspunkte, die als ein Eingangspunkt in Dienstanbieter-Kernnetze dienen, verbindet, einschließlich Mobilträgernetzwerken (zum Beispiel Global System for Mobile Communications-Netzwerke (GSM-Netzwerke), Long-Term Evolution-Netzwerke (LTE-Netzwerke, 5G/6G-Netzwerke usw.), während auch Speicherungs- und/oder Rechenfähigkeiten bereitgestellt werden. Andere Arten und Formen von Netzwerkzugang (zum Beispiel WiFi, Long-Range-Wireless, verdrahtete Netzwerke, einschließlich optischer Netzwerke) können auch an Stelle von oder in Kombination mit derartigen 3GPP-Trägernetzenwerken genutzt werden.
  • Die Netzwerkbauelemente der Edge-Cloud 710 können Server, Multi-Mandanten-Server, Geräterechenvorrichtungen und/oder eine beliebige andere Art von Rechenvorrichtungen sein. Zum Beispiel kann die Edge-Cloud 710 eine Geräterechenvorrichtung beinhalten, die eine eigenständige elektronische Vorrichtung einschließlich eines Gehäuses, eines Chassis, eines Fachs oder eine Umhüllung ist. Unter Umständen kann das Gehäuse für eine Portabilität derart bemessen sein, dass es von einem Menschen getragen und/oder versandt werden kann. Beispielhafte Gehäuse können Materialien beinhalten, die eine oder mehrere Außenflächen bilden, die Inhalte des Geräts teilweise oder vollständig schützen, wobei der Schutz Wetterschutz, Schutz vor gefährlichen Umgebungen (zum Beispiel EMI, Vibration, extreme Temperaturen) beinhalten kann und/oder Eintauchbarkeit ermöglichen kann. Beispielhafte Gehäuse können Leistungsschaltungsanordnungen beinhalten, um Leistung für stationäre und/oder tragbare Umsetzungen bereitzustellen, wie etwa AC-Leistungseingänge, DC-Leistungseingänge, AC/DC- oder DC/AC-Wandler(n), Leistungsregler, Transformatoren, Ladeschaltungsanordnungen, Batterien, verdrahtete Eingänge und/oder drahtlose Leistungseingänge. Beispielhafte Gehäuse und/oder Oberflächen davon können Montagehardware beinhalten oder mit dieser verbunden sein, um eine Befestigung an Strukturen, wie etwa Gebäuden, Telekommunikationsstrukturen (zum Beispiel Masten, Antennenstrukturen usw.) und/oder Racks (zum Beispiel Server-Racks, Blade-Befestigungen usw.), zu ermöglichen. Beispielhafte Gehäuse und/oder Oberflächen davon können einen oder mehrere Sensoren (zum Beispiel Temperatursensoren, Vibrationssensoren, Lichtsensoren, Akustiksensoren, kapazitive Sensoren, Näherungssensoren usw.) unterstützen. Ein oder mehrere derartige Sensoren können in der Oberfläche enthalten, von dieser getragen oder anderswie eingebettet und/oder an der Oberfläche des Geräts montiert sein. Beispielhafte Gehäuse und/oder Oberflächen davon können mechanische Konnektivität unterstützen, wie etwa Antriebshardware (zum Beispiel Räder, Propeller usw.) und/oder Anlenkungs-Hardware (zum Beispiel Roboterarme, schwenkbare Fortsätze usw.). Unter einigen Umständen können die Sensoren eine beliebige Art von Eingabevorrichtungen beinhalten, wie etwa Benutzerschnittstellenhardware (zum Beispiel Tasten, Schalter, Wählscheiben, Schieber usw.). Unter einigen Umständen beinhalten beispielhafte Gehäuse Ausgabevorrichtungen, die darin enthalten, davon getragen, darin eingebettet und/oder daran angebracht sind. Ausgabevorrichtungen können Anzeigen, Touchscreens, Leuchten, LEDs, Lautsprecher, E/A-Ports (zum Beispiel USB) usw. beinhalten. Unter einigen Umständen sind Edge-Vorrichtungen Vorrichtungen, die in dem Netzwerk für einen spezifischen Zweck (zum Beispiel eine Ampel) präsentiert werden, können aber Verarbeitungs- und/oder andere Kapazitäten aufweisen, die für andere Zwecke genutzt werden können. Derartige Edge-Vorrichtungen können von anderen vernetzten Vorrichtungen unabhängig sein und können mit einem Fach versehen sein, das einen Formfaktor aufweist, der für seinen primären Zweck geeignet ist; aber dennoch für andere Rechenaufgaben, die ihre primäre Aufgabe nicht stören, verfügbar ist. Edge-Vorrichtungen beinhalten Internet-der-Dinge-Vorrichtungen. Die Geräterechenvorrichtung kann Hardware- und Softwarebauelemente beinhalten, um lokale Probleme, wie etwa Vorrichtungstemperatur, Vibration, Ressourcennutzung, Aktualisierungen, Leistungsprobleme, physische und Netzwerksicherheit usw., zu verwalten. Beispielhafte Hardware zum Umsetzen einer Geräterechenvorrichtung ist in Verbindung mit 2B beschrieben. Die Edge-Cloud 710 kann auch einen oder mehrere Server und/oder einen oder mehrere Server mit mehreren Mandanten beinhalten. Ein derartiger Server kann ein Betriebssystem beinhalten und eine virtuelle Rechenumgebung umsetzen. Eine virtuelle Rechenumgebung kann einen Hypervisor beinhalten, der eine oder mehrere virtuelle Maschinen, einen oder mehrere Container usw. verwaltet (zum Beispiel Spawning, Einsetzen, Zerstören usw.). Derartige virtuelle Rechenumgebungen stellen eine Ausführungsumgebung bereit, in der eine oder mehrere Anwendungen und/oder andere Software, Code oder Skripte ausgeführt werden können, während sie von einer oder mehreren anderen Anwendungen, Software, Code oder Skripten isoliert sind.
  • In 9 tauschen verschiedene Client-Endpunkte 910 (in der Form von Mobilvorrichtungen, Computern, autonomen Fahrzeugen, Geschäftsrechenanlagen, industriellen Verarbeitungsanlagen) Anforderungen und Antworten aus, die für den Typ der Endpunktnetzwerkaggregation spezifisch sind. Beispielsweise können Client-Endpunkte 910 Netzwerkzugang über ein verdrahtetes Breitbandnetzwerk erhalten, indem Anforderungen und Antworten 922 durch ein Vor-Ort-Netzwerksystem 932 (On-Premise-Netzwerksystem) ausgetauscht werden. Einige Client-Endpunkte 910, wie etwa mobile Rechenvorrichtungen, können Netzwerkzugang über ein drahtloses Breitbandnetzwerk erhalten, indem Anfragen und Antworten 924 durch einen Zugangspunkt (zum Beispiel Mobilfunkturm) 934 ausgetauscht werden. Einige Client-Endpunkte 910, wie etwa autonome Fahrzeuge, können Netzwerkzugang für Anforderungen und Antworten 926 über ein drahtloses Fahrzeugnetzwerk durch ein Straßennetzwerksystem 936 erhalten. Ungeachtet der Art des Netzwerkzugangs, kann der TSP jedoch Aggregationspunkte 942, 944 innerhalb der Edge-Cloud 710 einsetzen, um Verkehr und Anforderungen zu aggregieren. Somit kann der TSP innerhalb der Edge-Cloud 710 verschiedene Rechen- und Speicherungsressourcen einsetzen, wie etwa bei Edge-Aggregationsknoten 940, um angeforderten Inhalt bereitzustellen. Die Edge-Aggregationsknoten 940 und andere Systeme der Edge-Cloud 710 sind mit einer Cloud oder einem Datenzentrum 960 verbunden, die/das ein Backhaul-Netzwerk 950 verwendet, um Anforderungen mit höherer Latenz von einer Cloud/einem Datenzentrum für Websites, Anwendungen, Datenbankserver usw. zu erfüllen. Zusätzliche oder konsolidierte Instanzen der Edge-Aggregationsknoten 940 und der Aggregationspunkte 942, 944, einschließlich j ener, die auf einem einzigen Server-Framework eingesetzt werden, können auch innerhalb der Edge-Cloud 710 oder anderer Bereiche der TSP-Infrastruktur vorhanden sein.
  • Es versteht sich, dass die hier besprochenen Edge-Computing-Systeme und - Anordnungen bei verschiedenen Lösungen, Diensten und/oder Verwendungsfällen, die Mobilität involvieren anwendbar sein können. Als ein Beispiel zeigt 10 einen vereinfachten Fahrzeugrechen- und Kommunikationsnutzungsfall, der Mobilzugriff auf Anwendungen in einem Edge-Computing-System 1000, das eine Edge-Cloud 710 umsetzt, involviert. In diesem Verwendungsfall können jeweilige Client-Rechenknoten 1010 als fahrzeuginterne Rechensysteme (zum Beispiel fahrzeuginterne Navigations- und/oder Infotainmentsysteme) verkörpert sein, die sich in entsprechenden Fahrzeugen befinden, die mit den Edge-Gateway-Knoten 1020 während des Befahrens einer Straße kommunizieren. Beispielsweise können sich die Edge-Gateway-Knoten 1020 in einem Schrank am Straßenrand oder einem anderen Einschluss befinden, der in eine Struktur eingebaut ist, die andere, separate, mechanische Nutzung aufweist, die entlang der Straße, an Kreuzungen der Straße oder anderen Orten nahe der Straße platziert werden kann. Während jeweilige Fahrzeuge entlang der Straße fahren, kann sich die Verbindung zwischen ihrem Client-Rechenknoten 1010 und einer speziellen Edge-Gateway-Vorrichtung 1020 ausbreiten, um eine konsistente Verbindung und einen konsistenten Kontext für den Client-Rechenknoten 1010 aufrechtzuerhalten. Gleichermaßen können mobile Edge-Knoten an den Diensten mit hoher Priorität oder gemäß den Durchsatz- oder Latenzauflösungsanforderungen für den oder die zugrunde liegenden Dienste aggregieren (zum Beispiel im Fall von Drohnen). Die jeweiligen Edge-Gateway-Vorrichtungen 1020 beinhalten eine Menge an Verarbeitungs- und Speicherungsfähigkeiten, und daher kann etwas Verarbeitung und/oder Speicherung von Daten für die Client-Rechenknoten 1010 auf einer oder mehreren der Edge-Gateway-Vorrichtungen 1020 ausgeführt werden.
  • Die Edge-Gateway-Vorrichtungen 1020 können mit einem oder mehreren Edge-Ressourcenknoten 1040 kommunizieren, die veranschaulichend als Rechenserver, - geräte oder -bauelemente umgesetzt sind, die sich an oder in einer Kommunikationsbasisstation 1042 (zum Beispiel einer Basisstation eines Mobilfunknetzwerks) befinden. Wie oben besprochen, beinhalten die jeweiligen Edge-Ressourcenknoten 1040 eine Menge an Verarbeitungs- und Speicherungsfähigkeiten, und somit kann etwas Verarbeitung und/oder Speicherung von Daten für die Client-Rechenknoten 1010 auf dem Edge-Ressourcenknoten 1040 ausgeführt werden. Zum Beispiel kann die Verarbeitung von Daten, die weniger dringend oder wichtig sind, von dem Edge-Ressourcenknoten 1040 ausgeführt werden, während die Verarbeitung von Daten, die eine höhere Dringlichkeit oder Wichtigkeit aufweisen, von den Edge-Gateway-Vorrichtungen 1020 ausgeführt werden kann (zum Beispiel in Abhängigkeit von den Fähigkeiten jedes Bauelements oder von Informationen in der Anforderung, die Dringlichkeit oder Wichtigkeit angeben). Basierend auf Datenzugriff, Datenort oder Latenz kann die Arbeit auf Edge-Ressourcenknoten fortgesetzt werden, wenn sich die Verarbeitungsprioritäten während der Verarbeitungsaktivität ändern. Gleichermaßen können konfigurierbare Systeme oder Hardwareressourcen selbst aktiviert werden (zum Beispiel durch einen lokalen Orchestrator), um zusätzliche Ressourcen bereitzustellen, um den neuen Bedarf zu erfüllen (zum Beispiel Anpassen der Rechenressourcen an die Arbeitslastdaten).
  • Der eine oder die mehreren Edge-Ressourcenknoten 1040 kommunizieren auch mit dem Kerndatenzentrum 1050, das Rechenserver, Geräte und/oder andere Bauelemente beinhalten kann, die sich an einem zentralen Ort (zum Beispiel einer Zentrale eines zellularen Kommunikationsnetzwerks) befinden. Das Kerndatenzentrum 1050 kann ein Gateway zu der globalen Netzwerk-Cloud 1060 (zum Beispiel Internet) für die Operationen der Edge-Cloud 710 bereitstellen, die von dem einen oder den mehreren Edge-Ressourcenknoten 1040 und den Edge-Gateway-Vorrichtungen 1020 gebildet werden. Zusätzlich kann das Kerndatenzentrum 1050 bei einigen Beispielen eine Menge an Verarbeitungs- und Speicherungsfähigkeiten beinhalten, und somit kann etwas Verarbeitung und/oder Speicherung von Daten für die Client-Rechenvorrichtungen auf dem Kerndatenzentrum 1050 ausgeführt werden (zum Beispiel Verarbeitung mit niedriger Dringlichkeit oder Wichtigkeit oder hoher Komplexität).
  • Die Edge-Gateway-Knoten 1020 oder die Edge-Ressourcen-Knoten 1040 können die Verwendung zustandsorientierter Anwendungen 1032 und einer geografischen verteilten Datenbank 1034 anbieten. Obwohl die Anwendungen 1032 und die Datenbank 1034 als horizontal auf einer Schicht der Edge-Cloud 710 verteilt veranschaulicht sind, versteht es sich, dass Ressourcen, Dienste, oder andere Bauelemente der Anwendung vertikal über die Edge-Cloud verteilt sein können (einschließlich eines Teils der Anwendung, die an dem Client-Rechenknoten 1010 ausgeführt wird, anderer Teile an den Edge-Gateway-Knoten 1020 oder den Edge-Ressourcen-Knoten 1040 usw.). Zusätzlich dazu kann es, wie zuvor angegeben, Peer-Beziehungen auf einer beliebigen Ebene geben, um Dienstzielsetzungen und Verpflichtungen zu erfüllen. Weiter können sich die Daten für einen speziellen Client oder eine spezielle Anwendung basierend auf sich ändernden Bedingungen von Edge zu Edge bewegen (zum Beispiel basierend auf Beschleunigungsressourcenverfügbarkeit, Folgen der Autobewegung usw.). Beispielsweise kann basierend auf der „Abklingrate“ des Zugangs eine Vorhersage getroffen werden, um den nächsten Besitzer zum Fortsetzen zu identifizieren, oder wann die Daten oder der rechnerische Zugang nicht mehr sinnvoll sein werden. Diese und andere Dienste können genutzt werden, um die Arbeit, die benötigt wird, um die Transaktion konform und verlustfrei zu halten, abzuschließen.
  • Bei weiteren Szenarien kann ein Container 1036 (oder ein Pod von Containern) flexibel von einem Edge-Knoten 1020 zu anderen Edge-Knoten (zum Beispiel 1020, 640 usw.) migriert werden, so dass der Container mit einer Anwendung und Arbeitslast nicht rekonstituiert, rekompiliert, reinterpretiert werden muss, damit Migration funktioniert. Bei derartigen Einstellungen kann es jedoch etwas Abhilfe oder „Swizzling“-Übersetzungsoperationen, die angewandt werden, geben. Zum Beispiel kann sich die physische Hardware am Knoten 1040 vom Edge-Gateway-Knoten 1020 unterscheiden, und daher wird die Hardware-Abstraktionsschicht (HAL), die den unteren Rand des Containers bildet, erneut auf die physische Schicht des Ziel-Edge-Knotens abgebildet. Dies kann irgendeine Form einer späten Bindungstechnik beinhalten, wie etwa binäre Übersetzung der HAL von dem nativen Containerformat in das physische Hardwareformat, oder kann Abbildungsschnittstellen und Operationen beinhalten. Eine Pod-Steuervorrichtung kann verwendet werden, um die Schnittstellenabbildung als Teil des Containerlebenszyklus anzusteuern, was Migration zu/von unterschiedlichen Hardware-Umgebungen beinhaltet.
  • Die Szenarien, die 10 einschließt, können verschiedene Arten von mobilen Edge-Knoten nutzen, wie etwa einen Edge-Knoten, der in einem Fahrzeug (Auto/Lastkraftwagen/Straße/Zug) gehostet ist, oder eine andere mobile Einheit, da sich der Edge-Knoten zu anderen geografischen Orten entlang der Plattform, die ihn hostet, bewegen wird. Bei Fahrzeug-zu-Fahrzeug-Kommunikationen können einzelne Fahrzeuge sogar als Netzwerk-Edge-Knoten für andere Autos fungieren (zum Beispiel um Caching, Reporting, Datenaggregation usw. ausführen). Somit versteht es sich, dass die Anwendungsbauelemente, die in verschiedenen Edge-Knoten bereitgestellt sind, in statischen oder mobilen Einstellungen verteilt sein können, einschließlich Koordination zwischen einigen Funktionen oder Operationen an einzelnen Endpunktvorrichtungen oder den Edge-Gateway-Knoten 1020, einigen anderen an dem Edge-Ressourcenknoten 1040 und anderen in dem Kerndatenzentrum 1050 oder der globalen Netzwerk-Cloud 1060.
  • Bei weiteren Konfigurationen kann das Edge-Computing-System FaaS-Rechenfähigkeiten durch die Verwendung jeweiliger ausführbarer Anwendungen und Funktionen umsetzen. Bei einem Beispiel schreibt ein Entwickler Funktionscode (hier zum Beispiel „Computercode“), der eine oder mehrere Computerfunktionen darstellt, und der Funktionscode wird auf eine FaaS-Plattform hochgeladen, die zum Beispiel von einem Edge-Knoten oder ein Datenzentrum bereitgestellt wird. Ein Trigger, wie beispielsweise ein Service-Use-Fall oder ein Edge-Bearbeitungsereignis, initiiert die Ausführung des Funktionscodes mit der FaaS-Plattform.
  • Bei einem Beispiel für FaaS wird ein Container verwendet, um eine Umgebung bereitzustellen, in der Funktionscode (zum Beispiel eine Anwendung, die von einem Dritten bereitgestellt werden kann) ausgeführt wird. Der Container kann eine beliebige Entität mit isolierter Ausführung sein, wie etwa ein Prozess, ein Docker- oder Kubernete-Container, eine virtuelle Maschine usw. Innerhalb des Edge-Computing-Systems werden verschiedene Rechenzentren-, Edge- und Endpunktvorrichtungen (einschließlich Mobilvorrichtungen) verwendet, um Funktionen „hochzudrehen“ (zum Beispiel Funktionsaktionen zu aktivieren und/oder zuzuordnen), die auf Anfrage skaliert werden. Der Funktionscode wird auf der physischen Infrastrukturvorrichtung (zum Beispiel auf dem Edge-Rechenknoten) und darunterliegenden virtualisierten Containern ausgeführt. Schließlich wird der Container auf der Infrastruktur als Reaktion darauf, dass die Ausführung abgeschlossen ist, „heruntergedreht“ (zum Beispiel deaktiviert und/oder freigegeben).
  • Weitere Aspekte von FaaS können das Einsetzen von Edge-Funktionen auf eine Dienstart ermöglichen, einschließlich einer Unterstützung jeweiliger Funktionen, die Edge-Computing als einen Dienst unterstützen (Edge-as-a-Service oder „EaaS“). Zusätzliche Merkmale von FaaS können beinhalten: eine granuläre Abrechnungskomponente, die es Kunden (zum Beispiel Computercodeentwicklern) ermöglicht, nur zu bezahlen, wenn ihr Code ausgeführt wird; gemeinsame Datenspeicherung zum Speichern von Daten zur Wiederverwendung durch eine oder mehrere Funktionen; Orchestrierung und Verwaltung zwischen einzelnen Funktionen; Funktionsausführungsverwaltung, Parallelität und Konsolidierung; Verwaltung von Container- und Funktionsspeicherplätzen; Koordination von Beschleunigungsressourcen, die für Funktionen verfügbar sind; und Verteilung von Funktionen zwischen Containern (einschließlich „warmer“ Container, die bereits eingesetzt oder betrieben wurden, versus „kalter“, die Initialisierung, Einsatz oder Konfiguration erfordern).
  • Das Edge-Computing-System 1000 kann einen Edge-Bereitstellungsknoten 1044 beinhalten oder mit diesem in Kommunikation stehen. Der Edge-Bereitstellungsknoten 1044 kann Software, wie etwa die beispielhaften computerlesbaren Anweisungen 282 der 2B, zu verschiedenen Empfangsteilnehmern zum Umsetzen eines beliebigen der hierin beschriebenen Verfahren verteilen. Der beispielhafte Edge-Bereitstellungsknoten 1044 kann von einem beliebigen Computerserver, einem beliebigen Heimserver, einem beliebigen Inhaltsliefernetzwerk, einem virtuellen Server, einem Softwareverteilungssystem, einer zentralen Einrichtung, einer Speicherungsvorrichtung, einem beliebigen Speicherungsknoten, einer beliebigen Dateneinrichtung umgesetzt werden, Cloud-Dienst usw., der in der Lage ist, Softwareanweisungen (zum Beispiel Code, Skripte, ausführbare Binärprogramme, Container, Pakete, komprimierte Dateien und/oder Ableitungen davon) zu speichern und/oder an andere Rechenvorrichtungen zu übertragen. (Ein) Bauelement(e) des beispielhaften Edge-Bereitstellungsknotens 644 kann (können) sich in einer Cloud, in einem lokalen Netzwerk, in einem Randnetzwerk, in einem Weitverkehrsnetzwerk, im Internet und/oder einem beliebigen anderen Ort befinden, der kommunikativ mit der/den Empfangspartei(n) gekoppelt ist. Die Empfangsteilnehmer können Kunden, Clients, Partner, Benutzer usw. der Entität sein, die den Edge-Bereitstellungsknoten 1044 besitzt und/oder betreibt. Beispielsweise kann die Entität, die den Edge-Bereitstellungsknoten 1044 besitzt und/oder betreibt, ein Entwickler, ein Verkäufer und/oder ein Lizenzgeber (oder ein Kunde und/oder Verbraucher davon) von Softwareanweisungen, wie etwa die beispielhaften computerlesbaren Anweisungen 282 der 2B, sein. Die Empfangsteilnehmer können Verbraucher, Dienstanbieter, Benutzer, Einzelhändler, OEMs usw. sein, die die Softwareanweisungen zur Verwendung erwerben und/oder in Lizenz vergeben und/oder weiterverkaufen und/oder in Unterlizenz vergeben.
  • Bei einem Beispiel beinhaltet der Edge-Bereitstellungsknoten 1044 einen oder mehrere Server und eine oder mehrere Speichervorrichtungen. Die Speichervorrichtungen hosten computerlesbare Anweisungen, wie etwa die beispielhaften computerlesbaren Anweisungen 282 der 2B, wie unten beschrieben. Ähnlich den oben beschriebenen Edge-Gateway-Vorrichtungen 1020 stehen der eine oder die mehreren Server des Edge-Bereitstellungsknotens 1044 in Kommunikation mit einer Basisstation 1042 oder einer anderen Netzwerkkommunikationsentität. Bei einigen Beispielen reagieren der eine oder die mehreren Server auf Anforderungen, um die Softwareanweisungen als Teil einer kommerziellen Transaktion zu einer anfordernden Partei zu übertragen. Die Zahlung für die Lieferung, den Verkauf und/oder die Lizenz der Softwareanweisungen kann von dem einen oder den mehreren Servern der Softwareverteilungsplattform und/oder über eine Drittpartei-Zahlungsentität gehandhabt werden. Die Server ermöglichen es Käufern und/oder Lizenzgebern, die computerlesbaren Anweisungen 282 von dem Edge-Bereitstellungsknoten 1044 herunterzuladen. Zum Beispiel können die Softwareanweisungen, die den beispielhaften computerlesbaren Anweisungen 282 der 2B entsprechen können, zu der/den beispielhaften Prozessorplattform/en heruntergeladen werden, die die computerlesbaren Anweisungen 282 ausführen sollen, um die hier beschriebenen Verfahren umzusetzen.
  • Bei einigen Beispielen kann (können) sich die Prozessorplattform(en), die die computerlesbaren Anweisungen 282 ausführt (ausführen), physisch an unterschiedlichen geografischen Orten, gerichtlichen Zuständigkeit usw. befinden. Bei einigen Beispielen bieten ein oder mehrere Server des Edge-Bereitstellungsknotens 1044 periodisch Aktualisierungen an, übertragen sie und/oder setzen Aktualisierungen an den Softwareanweisungen (zum Beispiel an den beispielhaften computerlesbaren Anweisungen 282 der 2B) durch, um sicherzustellen, dass Verbesserungen, Patches, Aktualisierungen usw. verteilt und auf die Softwareanweisungen, die an den Endbenutzervorrichtungen umgesetzt sind, angewandt werden. Bei einigen Beispielen können unterschiedliche Bauelemente der computerlesbaren Anweisungen 282 von unterschiedlichen Quellen und/oder zu unterschiedlichen Prozessorplattformen verteilt werden; zum Beispiel können unterschiedliche Bibliotheken, Plug-ins, Bauelemente und andere Typen von Rechenmodulen, ob kompiliert oder interpretiert, von unterschiedlichen Quellen und/oder zu unterschiedlichen Prozessorplattformen verteilt werden. Zum Beispiel kann ein Teil der Softwareanweisungen (zum Beispiel ein Skript, das an sich nicht ausführbar ist) von einer ersten Quelle verteilt werden, während ein Interpreter (der in der Lage ist, das Skript auszuführen) von einer zweiten Quelle verteilt werden kann.
  • 11 veranschaulicht eine mobile Edge-Systemreferenzarchitektur (oder MEC-Architektur) 1100, wie sie von ETSI-MEC-Spezifikationen angegeben ist. 11 veranschaulicht insbesondere eine MEC-Architektur 1100 mit MEC-Hosts 1102 und 1104, die Funktionalitäten gemäß der ETSI-GS-MEC-003-Spezifikation bereitstellen. Bei einigen Aspekten können Verbesserungen an der MEC-Plattform 1132 und dem MEC-Plattformmanager 1106 verwendet werden, um gewichtete durchschnittliche Rauschparameter bei der Videocodierung und -decodierung verwendet werden, wie oben ausführlicher beschrieben, zu verwenden.
  • Unter Bezugnahme auf 11 kann die MEC-Netzwerkarchitektur 1100 MEC-Hosts 1102 und 1104, einen Virtualisierungsinfrastrukturmanager (VIM) 1108, einen MEC-Plattformmanager 1106, einen MEC-Orchestrator 1110, ein Operationenunterstützungssystem 1112, einen Benutzeranwendungs-Proxy 1114, eine UE-App 1118, die auf dem UE 1120 läuft, und ein CFS-Portal 1116 beinhalten. Der MEC-Host 1102 kann eine MEC-Plattform 1132 mit Filterregelsteuerbauelement 1140, eine DNS-Handhabungsbauelement 1142, ein Dienstregister 1138 und MEC-Dienste 1136 beinhalten.
  • Die MEC-Dienste 1136 können mindestens einen Scheduler beinhalten, der verwendet werden kann, um Ressourcen zum Instanziieren von MEC-Apps (oder NFVs) 1126, 1127 und 1128 auf der Virtualisierungsinfrastruktur 1122 auszuwählen. Die MEC-Apps 1126 und 1128 können dazu ausgelegt sein, Dienste 1130 und 1131 bereitzustellen, die Verarbeiten von Netzwerkkommunikationsverkehr unterschiedlicher Typen beinhalten können, die mit einer oder mehreren drahtlosen Verbindungen (zum Beispiel Verbindungen zu einer oder mehreren RAN- oder Telecom-Kernnetzwerkentitäten) assoziiert sind. Die MEC-App 1105, die innerhalb des MEC-Hosts 1104 instanziiert ist, kann den MEC-Apps 1126-7728, die innerhalb des MEC-Hosts 1102 instanziiert sind, ähnlich sein. Die Virtualisierungsinfrastruktur 1122 beinhaltet eine Datenebene 1124, die über eine MP2-Schnittstelle mit der MEC-Plattform gekoppelt ist. Zusätzliche Schnittstellen zwischen verschiedenen Netzwerkentitäten der MEC-Architektur 1100 sind in 11 veranschaulicht.
  • Der MEC-Plattformmanager 1106 kann ein MEC-Plattformmanager 1144, ein MEC-App-Regel- und Anforderungsverwaltungsbauelement 1146 und ein MEC-App-Lebenszyklusverwaltungsbauelement 1148 beinhalten. Die verschiedenen Entitäten innerhalb der MEC-Architektur 1100 können Funktionalitäten ausführen, wie von der ETSI-GS MEC-003-Spezifikation offenbart.
  • Bei einigen Aspekten ist die Remote-Anwendung (oder App) 1150 dazu konfiguriert, mit dem MEC-Host 1102 (zum Beispiel mit den MEC-Apps 1126-7728) über den MEC-Orchestrator 1110 und den MEC-Plattformmanager 1106 zu kommunizieren.
  • 12 veranschaulicht eine beispielhafte Domain-Topologie für jeweilige Internet-der-Dinge-Netzwerke (IoT-Netzwerke), die durch Links mit jeweiligen Gateways gekoppelt sind. Das Internet der Dinge (IoT) ist ein Konzept, bei dem eine große Anzahl von Rechenvorrichtungen miteinander und mit dem Internet verbunden sind, um Funktionalität und Datenerhebung auf sehr niedrigen Ebenen bereitzustellen. Somit kann, wie hier verwendet, eine IoT-Vorrichtung eine halbautonome Vorrichtung beinhalten, die eine Funktion, wie etwa Abtasten oder Steuern, unter anderem in Kommunikation mit anderen IoT-Vorrichtungen und einem breiteren Netzwerk, wie etwa dem Internet, ausführt.
  • Häufig sind IoT-Vorrichtungen hinsichtlich Speicher, Größe oder Funktionalität beschränkt, wodurch ermöglicht wird, dass größere Anzahlen für ähnliche Kosten wie kleinere Anzahlen von größeren Vorrichtungen eingesetzt werden. Eine IoT-Vorrichtung kann jedoch ein Smartphone, Laptop, Tablet oder PC oder eine andere größere Vorrichtung sein. Weiter kann eine IoT-Vorrichtung eine virtuelle Vorrichtung sein, wie etwa eine Anwendung auf einem Smartphone oder einer anderen Rechenvorrichtung. IoT-Vorrichtungen können IoT-Gateways beinhalten, die verwendet werden, um IoT-Vorrichtungen mit anderen IoT-Vorrichtungen und mit Cloud-Anwendungen zu koppeln, zur Datenspeicherung, Prozesssteuerung und dergleichen.
  • Netzwerke von IoT-Vorrichtungen können kommerzielle und Haushaltsautomatisierungsvorrichtungen beinhalten, wie etwa Wasserverteilungssysteme, Stromverteilungssysteme, Pipeline-Steuersysteme, Anlagensteuersysteme, Lichtschalter, Thermostate, Schlösser, Kameras, Alarme, Bewegungssensoren und dergleichen. Die IoT-Vorrichtungen können durch Remote-Computer, Server und andere Systeme zugänglich sein, um zum Beispiel Systeme zu steuern oder auf Daten zuzugreifen.
  • Das zukünftige Wachstum des Internets und ähnlicher Netzwerke kann sehr große Anzahlen von IoT-Vorrichtungen beinhalten. Dementsprechend wird im Kontext der hierin besprochenen Techniken eine Anzahl von Neuerungen für ein derartiges zukünftiges Networking die Notwendigkeit adressieren, dass alle diese Schichten ungehindert wachsen, verbundene Ressourcen entdecken und zugänglich machen und die Fähigkeit unterstützen, verbundene Ressourcen zu verbergen und aufzugliedern. Eine beliebige Anzahl von Netzwerkprotokollen und Kommunikationsstandards kann verwendet werden, wobei jedes Protokoll und jeder Standard dazu entworfen ist, spezifische Ziele zu adressieren. Weiter sind die Protokolle Teil der Fabric, die für Menschen zugängliche Dienste unterstützt, die unabhängig von Ort, Zeit oder Raum arbeiten. Die Innovationen beinhalten Diensterbringung und assoziierte Infrastruktur wie Hardware und Software; Sicherheitsverbesserungen; und die Bereitstellung von Diensten basierend auf Servicequalität-Bedingungen(QoS-Bedingungen), die in Dienstebenen- und Diensterbringungsvereinbarungen festgelegt sind. Es versteht sich, dass die Verwendung von IoT-Vorrichtungen und -netzwerken, wie etwa jenen, die in 12 und 13 eingeführt werden, eine Anzahl neuer Herausforderungen in einem heterogenen Konnektivitätsnetzwerk darstellt, das eine Kombination verdrahteter und drahtloser Technologien umfasst.
  • 12 stellt insbesondere eine vereinfachte Zeichnung einer Domain-Topologie bereit, die für eine Anzahl von Internet-of-T\hings-Netzwerken (IoT-Netzwerken) verwendet werden kann, die IoT-Vorrichtungen 1204 umfassen, wobei die IoT-Netzwerke 1256, 1258, 1260, 1262 durch Backbone-Links 1202 mit jeweiligen Gateways 1254 gekoppelt sind. Zum Beispiel kann eine Anzahl von IoT-Vorrichtungen 1204 mit einem Gateway 1254 und miteinander durch das Gateway 1254 kommunizieren. Um die Zeichnung zu vereinfachen, ist nicht jede IoT-Vorrichtung 1204 oder jeder Kommunikations-Link (zum Beispiel Link 1216, 1222, 1228 oder 1232) benannt. Die Backbone-Links 1202 können eine beliebige Anzahl verdrahteter oder drahtloser Technologien beinhalten, einschließlich optischer Netzwerke, und können Teil eines lokalen Netzwerks (LAN), eines Weitverkehrsnetzwerks (WAN) oder des Internets sein. Außerdem erleichtern derartige Kommunikations-Links optische Signalwege zwischen sowohl den IoT-Vorrichtungen 1204 und Gateways 1254, einschließlich der Verwendung von MUX/DeMUX-Bauelementen, die eine Verbindung der verschiedenen Vorrichtungen miteinander erleichtern.
  • Die Netztopologie kann eine beliebige Anzahl von Typen von IoT-Netzwerken beinhalten, wie etwa ein Mesh-Netzwerk, das mit dem Netzwerk 1256 unter Verwenden von Bluetooth-Low-Energy(BLE)-Links 1222 bereitgestellt wird. Andere Arten von IoT-Netzwerken, die vorhanden sein können, beinhalten ein Wireless-Local-Area-Network (WLAN-Netzwerk) 1258, das verwendet wird, um mit IoT-Vorrichtungen 1204 durch IEEE802.11(Wi-Fi®)-Links 1228 zu kommunizieren, ein Mobilfunknetz 1260, das verwendet wird, um mit IoT-Vorrichtungen 1204 über ein LTE/LTE-A(4G)- oder 5G-Mobilfunknetzwerk zu kommunizieren, und ein Low-Power-Wide-Area-Netzwerk (LPWA) 1262, zum Beispiel ein LPWA-Netzwerk, das mit der von der LoRa-Allianz veröffentlichten LoRaWan-Spezifikation kompatibel ist, oder ein IPv6-over-Low-Power-Wide-Area-Networks-Netzwerk (LPWAN-Netzwerk), das mit einer von der Internet Engineering Task Force (IETF) veröffentlichten Spezifikation kompatibel ist. Weiter können die jeweiligen IoT-Netzwerke mit einem externen Netzanbieter (zum Beispiel einem Ebene-2- oder Ebene-3-Anbieter) unter Verwenden einer beliebigen Anzahl von Kommunikations-Links kommunizieren, wie beispielsweise einem LTE-Zellular-Link, einem LPWA-Link oder einem Link basierend auf dem IEEE-802.15.4-Standard, wie Zigbee®. Die jeweiligen IoT-Netzwerke können auch mit Verwendung einer Vielfalt von Netzwerk- und Internetanwendungsprotokollen, wie dem Constrained Application Protocol (CoAP), arbeiten. Die jeweiligen IoT-Netzwerke können auch in Koordinatorvorrichtungen integriert werden, die eine Kette von Links bereitstellen, die einen Clusterbaum aus verknüpften Vorrichtungen und Netzwerken bildet.
  • Jedes dieser IoT-Netzwerke kann Gelegenheiten für neue technische Funktionen bieten, wie etwa die hierin beschriebenen. Die verbesserten Technologien und Netzwerke können das exponentielle Wachstum von Vorrichtungen und Netzwerken ermöglichen, einschließlich der Verwendung von IoT-Netzwerken in „Fog“-Vorrichtungen oder in „Edge“-Computing-Systeme integriert. Da die Verwendung derartiger verbesserter Technologien zunimmt, können die IoT-Netzwerke für Selbstverwaltung, funktionale Weiterentwicklung und Zusammenarbeit entwickelt werden, ohne dass ein direkter menschlicher Eingriff erforderlich ist. Die verbesserten Technologien können es IoT-Netzwerken sogar ermöglichen, ohne zentralisierte gesteuerte Systeme zu funktionieren. Dementsprechend können die hierin beschriebenen verbesserten Technologien verwendet werden, um Netzverwaltungs- und Betriebsfunktionen weit über aktuelle Umsetzungen hinaus zu automatisieren und zu verbessern.
  • Bei einem Beispiel können Kommunikationen zwischen IoT-Vorrichtungen 1204, wie beispielsweise über die Backbone-Links 1202, von einem die zentralen System zur Authentifizierung, Autorisierung und Abrechnung (AAA) geschützt werden. Bei einem dezentralen AAA-System können verteilte Zahlungs-, Kredit-, Audit-, Autorisierungs- und Authentifizierungssysteme über miteinander verbundene heterogene Netzwerkinfrastruktur umgesetzt werden. Dies erlaubt es Systemen und Netzwerken, sich zu autonomen Operationen hin zu bewegen. Bei diesen Typen autonomer Operationen können Maschinen sogar Verträge für Human Resources abschließen und Partnerschaften mit anderen Maschinennetzwerken aushandeln. Dies kann das Erreichen gegenseitiger Ziele und die ausgewogene Dienstleistungserbringung gegenüber umrissenen geplanten Dienstleistungsebenenvereinbarungen erlauben sowie Lösungen erreichen, die eine Zählung, Messungen, nachvollziehbar kalt und Verfolgbarkeit bereitstellen. Das Schaffen neuer Versorgungskettenstrukturen und -verfahren kann es ermöglichen, dass eine Vielzahl von Diensten ohne menschliches Zutun angelegt, bezüglich des Wertes genutzt und kollabiert werden.
  • Derartige IoT-Netzwerke können durch die Integration von Sensortechnologien, wie Ton-, Licht-, elektronischer Verkehrs-, Gesichts- und Mustererkennung, Geruch, Vibration, in die autonomen Organisationen unter den IoT-Vorrichtungen weiter verbessert werden. Die Integration sensorischer Systeme kann systematische und autonome Kommunikation und Koordination der Dienstleistungserbringung gegen vertragliche Dienstleistungsziele, Orchestrierung und Laufzeitdiensts (QoS) basiertes Schwärmen und Fusion von Ressourcen ermöglichen. Einige der individuellen Beispiele der netzbasierten Ressourcenverarbeitung umfassen Folgendes.
  • Das Mesh-Netzwerk 1256 kann zum Beispiel von Systemen erweitert werden, die Inline-Daten-zu-Informationen-Transformationen ausführen. Zum Beispiel können selbstbildende Ketten von Verarbeitungsressourcen, die ein Multilink-Netzwerk umfassen, die Transformation von Rohdaten in Informationen auf eine effiziente Weise verteilen und die Fähigkeit, zwischen Assets und Ressourcen und deren assoziierter Verwaltung unterscheiden. Darüber hinaus können die richtigen Bauelemente von infrastruktur- und ressourcenbasierten Vertrauens- und Dienstindizes eingefügt werden, um die Datenintegrität, Qualität und Sicherheit zu verbessern und eine Metrik einer Datenkonfidenz bereitzustellen.
  • Das WLAN-Netzwerk 1258 kann zum Beispiel Systeme verwenden, die eine Standardumwandlung ausführen, um Multistandard-Konnektivität bereitzustellen, wodurch IoT-Vorrichtungen 1204, die unterschiedliche Protokolle verwenden, kommunizieren können. Weitere Systeme können eine nahtlose Interkonnektivität über eine Mehrfachstandardinfrastruktur bereitstellen, die sichtbare Internetressourcen und verborgene Internetressourcen umfasst.
  • Kommunikationen in dem Mobilfunknetzwerk 1260 können zum Beispiel von Systemen verbessert werden, die Daten auslagern, Kommunikationen auf weiter entfernte Vorrichtungen erweitern oder beides. Das LPWA-Netzwerk 1262 kann Systeme beinhalten, die Nicht-Internetprotokoll (IP) -zu-IP-Verbindungen, Adressieren und Routing ausführen. Weiter kann jede der IoT-Vorrichtungen 1204 den geeigneten Transceiver für die Weitverkehrskommunikation mit dieser Vorrichtung beinhalten. Weiter kann jede IoT-Vorrichtung 1204 andere Transceiver für Kommunikationen unter Verwenden zusätzlicher Protokolle und Frequenzen beinhalten. Dies wird weiter im Zusammenhang mit Kommunikationsumgebung und Hardware einer IoT-Verarbeitungsvorrichtung gemäß den 14 und 15 erläutert.
  • Schließlich können Cluster von IoT-Vorrichtungen dahingehend ausgestattet sein, mit anderen IoT-Vorrichtungen sowie mit einem Cloud-Netzwerk zu kommunizieren. Dies kann ermöglichen, dass die IoT-Vorrichtungen ein Ad-hoc-Netzwerk zwischen den Vorrichtungen bilden, wodurch erlaubt wird, dass sie als eine einzelne Vorrichtung fungieren, die als eine Fog-Vorrichtung, Fog-Plattform oder Fog-Netzwerk bezeichnet werden kann. Diese Konfiguration wird weiter mit Bezug auf 13 unten erörtert.
  • 13 veranschaulicht ein Cloud-Computing-Netzwerk in Kommunikation mit einem Mesh-Netzwerk von IoT-Vorrichtungen (Vorrichtungen 1302), die als eine Fog-Plattform in einem vernetzten Szenario arbeiten. Das Mesh-Netzwerk aus IoT-Vorrichtungen kann als ein Fog-Netzwerk 1320 bezeichnet werden, das aus einem Netzwerk von Vorrichtungen eingerichtet wird, die am Rand der Cloud 1300 betrieben werden. Um das Diagramm zu vereinfachen, ist nicht jede IoT-Vorrichtung 1302 beschriftet.
  • Das Fog-Netzwerk 1320 kann als ein massiv verbundenes Netzwerk angesehen werden, in dem eine Anzahl von IoT-Vorrichtungen 1302 miteinander zum Beispiel über Funk-Links 1322 in Kommunikation stehen. Das Fog-Netzwerk 1320 kann eine horizontale, physische oder virtuelle Ressourcenplattform einrichten, die als zwischen IoT-Edge-Vorrichtungen und Cloud- oder Datenzentren angesiedelt betrachtet werden kann. Ein Fog-Netzwerk kann bei einigen Beispielen vertikal isolierte, latenzempfindliche Anwendungen durch geschichtete, föderierte oder verteilte Rechen-, Speicherungs- und Netzkonnektivitätsoperationen unterstützen. Ein Fog-Netzwerk kann jedoch auch verwendet werden, um Ressourcen und Dienste an und zwischen der Edge und der Cloud zu verteilen. Somit sind Bezugnahmen in dem vorliegenden Dokument auf „Edge“, „Fog“ und „Cloud“ nicht notwendigerweise getrennt oder sich gegenseitig ausschließend.
  • Als ein Beispiel kann das Fog-Netzwerk 1320 unter Verwenden einer Interconnect-Spezifikation, die von der Open Connectivity Foundation™ (OCF) veröffentlicht wurde, ermöglicht werden. Dieser Standard ermöglicht es Vorrichtungen, sich gegenseitig zu entdecken und Kommunikationen für Interconnects aufzubauen. Es können auch andere Interconnect-Protokolle verwendet werden, einschließlich zum Beispiel des optimierten Link-State-Routing-Protokolls (OLSR-Protokolls), des Better-Approach-to-Mobile-Ad-hoc-Networking-Routing-Protokolls (B.A.T.M.A.N.-Routing-Protokolls) oder des OMA-Lightweight-M2M-Protokolls (LWM2M-Protokolls).
  • Bei diesem Beispiel sind drei Typen von IoT-Vorrichtungen 1302 gezeigt, Gateways 1304, Datenaggregatoren 1326 und Sensoren 1328, obwohl beliebige Kombinationen von IoT-Vorrichtungen 1302 und Funktionalität verwendet werden können. Die Gateways 1304 können Edge-Vorrichtungen sein, die Kommunikationen zwischen der Cloud 1300 und dem Fog-Netzwerk 1320 bereitstellen, und können auch die Backend-Prozessfunktion für Daten bereitstellen, die von Sensoren 1328 erhalten werden, wie etwa Bewegungsdaten, Flussdaten, Temperaturdaten und dergleichen. Die Datenaggregatoren 1326 können Daten von einer beliebigen Anzahl der Sensoren 1328 sammeln und die Backend-Verarbeitungsfunktion für die Analyse ausführen. Die Ergebnisse, Rohdaten oder beides können durch die Gateways 1304 an die Cloud 1300 weitergegeben werden. Die Sensoren 1328 können beispielsweise vollständige IoT-Vorrichtungen 1302 sein, die dazu in der Lage sind, sowohl Daten zu sammeln als auch die Daten zu verarbeiten. In einigen Fällen können die Sensoren 1328 in ihrer Funktionalität stärker eingeschränkt sein, zum Beispiel Sammeln der Daten und Zulassen, dass die Datenaggregatoren 1326 oder Gateways 1304 die Daten verarbeiten.
  • Kommunikationen von einer beliebigen IoT-Vorrichtung 1302 können entlang eines zweckmäßigen Pfades zwischen einer beliebigen der IoT-Vorrichtungen 1302 weitergeleitet werden, um die Gateways 1304 zu erreichen. In diesen Netzwerken stellt die Anzahl an Interconnects wesentliche Redundanz bereit, die es ermöglicht, dass Kommunikationen aufrechterhalten werden, selbst mit dem Verlust einer Anzahl an IoT-Vorrichtungen 1302. Weiter kann die Verwendung eines Mesh-Netzwerks ermöglichen, dass IoT-Vorrichtungen 1302 verwendet werden, die sehr niedrige Leistung aufweisen oder sich in einem Abstand von der Infrastruktur die verwendet werden soll, befinden, da die Reichweite zum Verbinden mit einer anderen IoT-Vorrichtung 1302 viel kleiner als die Reichweite zum Verbinden mit den Gateways 1304 sein kann.
  • Das von diesen IoT-Vorrichtungen 1302 bereitgestellte Fog-Netzwerk 1320 kann Vorrichtungen in der Cloud 1300, wie etwa einem Server 1306, als eine einzelne Vorrichtung präsentiert werden, die sich am Rand der Cloud 1300 befindet, zum Beispiel ein Fog-Netzwerk, das als eine Vorrichtung oder Plattform arbeitet. Bei diesem Beispiel können die Warnungen, die von der Fog-Plattform kommen, gesendet werden, ohne als von einer spezifischen IoT-Vorrichtung 1302 innerhalb des Fog-Netzwerks 1320 kommend identifiziert zu werden. Auf diese Weise kann das Fog-Netzwerk 1320 als eine verteilte Plattform betrachtet werden, die Rechen- und Speicherressourcen bereitstellt, um unter anderem verarbeitungs- oder datenintensive Aufgaben, wie etwa Datenanalytik, Datenaggregation und Maschinenlernen, auszuführen.
  • Bei einigen Beispielen können die IoT-Vorrichtungen 1302 unter Verwenden eines imperativen Programmierstils konfiguriert sein, wobei zum Beispiel jede IoT-Vorrichtung 1302 eine spezifische Funktion und Kommunikationspartner aufweist. Die IoT-Vorrichtungen 1302, die die Fog-Plattform bilden, können jedoch in einem deklarativen Programmierstil konfiguriert sein, was es den IoT-Vorrichtungen 1302 ermöglicht, ihre Operationen und Kommunikationen neu zu konfigurieren, wie etwa benötigte Ressourcen als Reaktion auf Bedingungen, Anfragen und Vorrichtungsausfälle zu bestimmen. Als ein Beispiel kann eine Abfrage von einem Benutzer, der sich an einem Server 1306 befindet, über die Operationen einer Teilsatzes von Geräten, die von den IoT-Vorrichtungen 1302 überwacht werden, dazu führen, dass die Vorrichtung des Fog-Netzwerks 1320 die IoT-Vorrichtungen 1302, wie etwa bestimmte Sensoren 1328, benötigt, um die Abfrage zu beantworten. Die Daten von diesen Sensoren 1328 können dann von einer beliebigen Kombination der Sensoren 1328, Datenaggregatoren 1326 oder Gateways 1304 aggregiert und analysiert werden, bevor sie von dem Fog-Netzwerk 1320 zu dem Server 1306 gesendet werden, um die Abfrage zu beantworten. Bei diesem Beispiel können IoT-Vorrichtungen 1302 in dem Fog-Netzwerk 1320 die verwendeten Sensoren 1328 basierend auf der Abfrage auswählen, wie etwa Hinzufügen von Daten von Flusssensoren oder Temperatursensoren. Falls weiter einige der IoT-Vorrichtungen 1302 nicht betriebsbereit sind, können andere IoT-Vorrichtungen 1302 in dem Fog-Netzwerk 1320 analoge Daten, falls verfügbar, bereitstellen.
  • Bei anderen Beispielen können die hierin beschriebenen Operationen und Funktionalität von einer IoT- oder Edge-Rechenvorrichtung in der beispielhaften Form eines elektronischen Verarbeitungssystems umgesetzt sein, in dem gemäß einem Ausführungsbeispiel ein Satz oder eine Folge von Anweisungen ausgeführt werden kann, um zu bewirken, dass das elektronische Verarbeitungssystem eine beliebige der hier besprochenen Methodologien ausführt. Die Vorrichtung kann eine IoT-Vorrichtung oder ein IoT-Gateway sein, einschließlich einer Maschine, die durch Aspekte eines Personal Computers (PC), eines Tablet-PC, eines Personal Digital Assistant (PDA), eines Mobiltelefons oder Smartphones oder einer beliebigen Maschine verkörpert ist, die in der Lage ist, Anweisungen (sequenziell oder anderswie) auszuführen, die Aktionen spezifizieren, die von dieser Maschine ausgeführt werden sollen.
  • Obwohl in den obigen Beispielen nur eine einzige Maschine abgebildet und referenziert werden kann, ist weiter zu verstehen, dass eine derartige Maschine eine beliebige Sammlung von Maschinen beinhaltet, die einzeln oder gemeinsam einen Satz (oder mehrere Sätze) von Anweisungen ausführen, um ein oder mehrere der hier besprochenen Verfahren auszuführen. Weiter sollen diese und ähnliche Beispiele für ein prozessorbasiertes System derart verstanden werden, dass sie einen beliebigen Satz von einer oder mehreren Maschinen beinhalten, die von einem Prozessor, einem Satz von Prozessoren oder einer Verarbeitungsschaltungsanordnung (zum Beispiel einen Computer) gesteuert oder betrieben werden, um individuell oder gemeinsam Anweisungen zum Ausführen einer beliebigen oder mehrerer der hierin besprochenen Verfahren auszuführen. Dementsprechend können bei verschiedenen Beispielen anwendbare Mittel zum Verarbeiten (zum Beispiel Verarbeiten, Steuern, Erzeugen, Bewerten usw.) von einer derartigen Verarbeitungsschaltungsanordnung verkörpert werden.
  • 14 veranschaulicht eine Zeichnung eines Cloud-Rechennetzwerks oder einer Cloud 1400 in Kommunikation mit einer Anzahl von IoT-Vorrichtungen (IoT). Die Cloud 1400 kann das Internet darstellen oder kann ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), wie beispielsweise ein proprietäres Netzwerk für ein Unternehmen, sein. Die IoT-Vorrichtungen können eine beliebige Anzahl unterschiedlicher Typen von Vorrichtungen beinhalten, die in verschiedenen Kombinationen gruppiert sind. Zum Beispiel kann eine Verkehrssteuerungsgruppe 1406 IoT-Vorrichtungen entlang von Straßen in einer Stadt beinhalten. Diese IoT-Vorrichtungen können Ampeln, Verkehrsflussüberwachungsgeräte, Kameras, Wettersensoren und dergleichen beinhalten. Die Verkehrssteuergruppe 1406 oder andere Untergruppen können über verdrahtete oder drahtlose Verbindungen 1408, wie etwa LPWA-Links und dergleichen mit der Cloud 1400 in Kommunikation stehen. Weiter kann ein verdrahtetes oder drahtloses Unternetzwerk 1412 den IoT-Vorrichtungen erlauben, miteinander zu kommunizieren, wie beispielsweise über ein lokales Netz, ein drahtloses lokales Netzwerk und dergleichen. Die IoT-Vorrichtungen können eine andere Vorrichtung, wie etwa einen Gateway 1410 oder 1428, verwenden, um mit entfernten Standorten, wie etwa der Cloud 1400, zu kommunizieren; die IoT-Vorrichtungen können auch einen oder mehrere Server 1430 verwenden, um die Kommunikation mit der Cloud 1400 oder mit dem Gateway 1410 zu erleichtern. Zum Beispiel können der eine oder die mehreren Server 1430 als Zwischennetzknoten arbeiten, um eine lokale Edge-Cloud- oder Fog-Umsetzung in einem lokalen Netzwerk zu unterstützen. Weiter kann das abgebildete Gateway 1428 in einer Cloud-zu-Gateway-Konfiguration zu vielen Edge-Vorrichtungen betrieben werden, wie beispielsweise mit den verschiedenen IoT-Vorrichtungen 1414, 1420, 1424, die auf eine Zuweisung und Verwendung von Ressourcen in der Cloud 1400 beschränkt oder dynamisch sind.
  • Andere beispielhafte Gruppen von IoT-Vorrichtungen können unter anderem entfernte Wetterstationen 1414, lokale Informationsendgeräte 1416, Alarmsysteme 1418, Geldautomaten 1420, Alarmtafeln 1422 oder sich bewegende Fahrzeuge, wie etwa Einsatzfahrzeuge 1424 oder andere Fahrzeuge 1426, beinhalten. Jede dieser IoT-Vorrichtungen kann mit anderen IoT-Vorrichtungen, mit Servern 1404, mit einer anderen IoT-Fog-Vorrichtung oder einem anderen IoT-Fog-System (nicht gezeigt, aber in 13 abgebildet) oder einer Kombination davon in Kommunikation stehen stehen. Die Gruppen von IoT-Vorrichtungen können in verschiedenen Wohn-, Gewerbe- und Industrieumgebungen (einschließlich sowohl in privaten als auch in öffentlichen Umgebungen) eingesetzt werden.
  • Wie aus 14 ersichtlich ist, kann eine große Anzahl von IoT-Vorrichtungen durch die Cloud 1400 kommunizieren. Dies kann es unterschiedlichen IoT-Vorrichtungen erlauben, autonom Informationen von andere Vorrichtungen anzufordern oder an diese zu liefern. Zum Beispiel kann eine Gruppe von IoT-Vorrichtungen (zum Beispiel die Verkehrssteuerungsgruppe 1406) eine aktuelle Wettervorhersage von einer Gruppe entfernter Wetterstationen 1414, die die Vorhersage ohne menschliches Eingreifen bereitstellen können, anfordern. Weiter kann ein Einsatzfahrzeug 1424 von einem Geldautomaten 1420 gewarnt werden, dass gerade ein Einbruch stattfindet. Wenn das Einsatzfahrzeug 1424 zu dem Geldautomaten 1420 fährt, kann es auf die Verkehrssteuergruppe 1406 zugreifen, um eine Freigabe zu dem Standort anzufordern, indem beispielsweise Ampeln rot werden, um Querverkehr an einer Kreuzung rechtzeitig Zeit zu blockieren, damit das Einsatzfahrzeug 1424 ungehinderten Zugang zur Kreuzung hat.
  • Cluster von IoT-Vorrichtungen, wie etwa die entfernten Wetterstationen 1414 oder die Verkehrssteuergruppe 1406, können dahingehend ausgestattet sein, um mit anderen IoT-Vorrichtungen sowie mit der Cloud 1400 zu kommunizieren. Dies kann es den IoT-Vorrichtungen erlauben, ein Ad-hoc-Netzwerk zwischen den Vorrichtungen zu bilden, wodurch es ihnen erlaubt wird, als eine einzige Vorrichtung zu fungieren, die als eine Fog-Vorrichtung oder ein Fog-System (zum Beispiel wie oben unter Bezugnahme auf 13 beschrieben) bezeichnet werden kann.
  • 15 ist ein Blockdiagramm eines Beispiels für Bauelemente, die in einer IoT-Vorrichtung 1550 zum Umsetzen der hierin beschriebenen Techniken vorhanden sein können. Die IoT-Vorrichtung 1550 kann beliebige Kombinationen der in dem Beispiel gezeigten oder in der Offenbarung oben referenzierten Bauelemente beinhalten. Die Bauelemente können als ICs, Teile davon, diskrete elektronische Vorrichtungen oder andere Module, Logik, Hardware, Software, Firmware oder eine Kombination davon, die in der IoT-Vorrichtung 1550 angepasst sind, oder als Bauelemente, die anderswie in einem Chassis eines größeren Systems integriert sind, umgesetzt werden. Zusätzlich dazu soll das Blockdiagramm aus 15 eine Ansicht auf hohem Niveau von Bauelementen der IoT-Vorrichtung 1550 darstellen. Jedoch können einige der gezeigten Bauelemente weggelassen werden, können zusätzliche Bauelemente vorhanden sein und können unterschiedliche Anordnungen der gezeigten Bauelemente bei anderen Umsetzungen auftreten.
  • Die IoT-Vorrichtung 1550 kann Verarbeitungsschaltungsanordnungen in der Form eines Prozessors 1552 beinhalten, der ein Mikroprozessor, ein Mehrkernprozessor, ein Multi-Thread-Prozessor, ein Ultraniederspannungsprozessor, ein eingebetteter Prozessor oder andere bekannte Verarbeitungselemente sein kann. Der Prozessor 1552 kann ein Teil eines System-on-Chip (SoC) sein, in dem der Prozessor 1552 und andere Bauelemente zu einer einzigen integrierten Schaltung oder einem einzigen Package gebildet sind, wie etwa die Edison™- oder Galileo™-SoC-Platinen von Intel. Als ein Beispiel kann der Prozessor 1552 einen Intel®-Architecture-Core™-basierten Prozessor, wie etwa einen Quark™, einen Atom™, einen i3-, einen i5-, einen i7- oder einen Prozessor der Klasse MCU oder einen anderen derartigen von der Intel® Corporation, Santa Clara, CA, USA, erhältlichen Prozessor beinhalten. Eine beliebige Anzahl anderer Prozessoren kann jedoch verwendet werden, wie etwa von Advanced Micro Devices, Inc. (AMD) Sunnyvale, CA, erhältlich, ein MIPS-basiertes Design von MIPS Technologies, Inc. Sunnyvale, CA, ein ARM-basiertes Design unter Lizenz der ARM Holdings, Ltd. oder eines Kunden davon, oder deren Lizenznehmer oder Anwender. Die Prozessoren können Einheiten beinhalten, wie etwa einen A5-A14-Prozessor von Apple® Inc., einen Snapdragon™-Prozessor von Qualcomm® Technologies, Inc. oder einen OMAP™-Prozessor von Texas Instruments, Inc.
  • Der Prozessor 1552 kann über ein Interconnect 1556 (zum Beispiel einen Bus) mit einem Systemspeicher 1554 kommunizieren. Eine beliebige Anzahl von Speichervorrichtungen kann verwendet werden, um eine gegebene Menge von Systemspeicher bereitzustellen. Als Beispiele kann der Speicher Direktzugriffsspeicher (RAM) gemäß einem JEDEC-Design (JEDEC: Joint Electron Devices Engineering Council) sein, wie etwa den DDR- oder mobilen DDDR-Standards (zum Beispiel LPDDR, LPDDR2, LPDDR3 oder LPDDR4). Bei verschiedenen Umsetzungen können die individuellen Speichervorrichtungen beliebige einer Anzahl unterschiedlicher Package-Typen sein, wie etwa Single Die Package (SDP), Dual Die Package (DDP) oder Quad Die Package (Q17P). Diese Vorrichtungen können bei einigen Beispielen direkt auf eine Hauptplatine gelötet werden, um eine Lösung mit niedrigerem Profil bereitzustellen, während die Vorrichtungen bei anderen Beispielen als ein oder mehrere Speichermodule konfiguriert werden, die wiederum von einem gegebenen Steckverbinder mit der Hauptplatine gekoppelt werden. Eine beliebige Anzahl anderer Speicherumsetzungen kann verwendet werden, wie etwa andere Typen von Speichermodulen, zum Beispiel Dual Inline Memory Modules (DIMMs) unterschiedlicher Varianten, einschließlich, ohne darauf beschränkt zu sein, microDIMMs oder MiniDIMMs.
  • Um eine nichtflüchtige Speicherung von Informationen, wie etwa Daten, Anwendungen, Betriebssysteme und so weiter, bereitzustellen, kann eine Speicherung 1558 auch über das Interconnect 1556 mit dem Prozessor 1552 koppeln. Bei einem Beispiel kann der Speicher 1558 über ein Solid-State-Laufwerk (SSDD) umgesetzt werden. Andere Vorrichtungen, die für die Speicherung 1558 verwendet werden können, beinhalten Flash-Speicherkarten, wie etwa SD-Karten, Micro-SD-Karten, xD-Bildkarten und dergleichen und USB-Flash-Laufwerke. Bei Niedrigleistungsumsetzungen kann die Speicherung 1558 ein On-Die-Speicher oder Register sein, die mit dem Prozessor 1552 assoziiert sind. Bei einigen Beispielen kann die Speicherung 1558 jedoch unter Verwenden eines Mikro-Festplattenlaufwerks (HDD) umgesetzt werden. Weiter kann eine beliebige Anzahl neuer Technologien für die Speicherung 1558 zusätzlich zu oder an Stelle der beschriebenen Technologien verwendet werden, wie unter anderem Widerstandswechselspeicher, Phasenwechselspeicher, holographische Speicher oder chemische Speicher.
  • Die Bauelemente können über das Interconnect 1556 kommunizieren. Das Interconnect 1556 kann eine beliebige Anzahl von Technologien beinhalten, einschließlich Industriestandardarchitektur (ISA), erweiterte ISA (EISA), Peripheriebauelemente-Interconnect (PCI), erweitertes Peripheriebauelemente-Interconnect (PCIx), PCI-Express (PCIe) oder eine beliebige Anzahl anderer Technologien. Das Interconnect 1556 kann ein proprietärer Bus sein, der zum Beispiel in einem SoC-basierten System verwendet wird. Andere Bussysteme können enthalten sein, wie etwa unter anderem eine I2C-Schnittstelle, eine SPI-Schnittstelle, Punkt-zu-Punkt-Schnittstellen und ein Leistungsbus.
  • Angesichts der Vielfalt von Typen anwendbarer Kommunikationen von der Vorrichtung zu einem anderen Bauelement oder einem anderen Netzwerk, kann eine anwendbare Kommunikationsschaltungsanordnung, die von der Vorrichtung verwendet wird, ein beliebiges oder mehrere der Bauelemente 1562, 1566, 1568 oder 1570 beinhalten oder mit diesen umgesetzt sein. Dementsprechend können bei verschiedenen Beispielen anwendbare Mittel zum Kommunizieren (zum Beispiel Empfangen, Übertragen usw.) von einer derartigen Kommunikationsschaltungsanordnung umgesetzt werden.
  • Das Interconnect 1556 kann den Prozessor 1552 mit einem Mesh-Transceiver 1562 zur Kommunikation mit anderen Mesh-Vorrichtungen 1564 koppeln. Der Mesh-Transceiver 1562 kann eine beliebige Anzahl von Frequenzen und Protokollen verwenden, wie unter anderem zum Beispiel 2,4-Gigahertz (GHz)-Übertragungen nach dem IEEE-802.15.4-Standard, unter Verwendung des Bluetooth®-Low-Energy-Standards (BLE-Standards), wie von der Bluetooth® Special Interest Group definiert, oder des ZigBee®-Standards. Eine beliebige Anzahl von Funkgeräten, die für ein bestimmtes drahtloses Kommunikationsprotokoll konfiguriert sind, kann für die Verbindungen mit Mesh-Vorrichtungen 1564 verwendet werden. Zum Beispiel kann eine WLAN-Einheit verwendet werden, um Wi-Fi™-Kommunikationen gemäß dem 802.11-Standard des Institute of Electrical and Electronics Engineers (IEEE) umzusetzen. Außerdem können drahtlose Weitverkehrskommunikationen, zum Beispiel gemäß einem Zellular- oder anderem drahtlosen Weitverkehrsprotokoll, über eine WWAN-Einheit erfolgen.
  • Der Mesh-Transceiver 1562 kann unter Verwenden mehrerer Standards oder Funkgeräte für Kommunikationen mit einer anderen Reichweite kommunizieren. Zum Beispiel kann die IoT-Vorrichtung 1550 mit nahen Vorrichtungen, zum Beispiel innerhalb von etwa 10 Metern, unter Verwenden eines lokalen Transceivers basierend auf BLE oder eines anderen Niedrigleistungsfunkvorrichtungen kommunizieren, um Leistung zu sparen. Weiter entfernte Mesh-Vorrichtungen 1564, zum Beispiel innerhalb von etwa 50 Metern, können über ZigBee oder andere Mittelleistungsfunkgeräte erreicht werden. Beide Kommunikationstechniken können über ein einzelnes Funkgerät mit unterschiedlichen Leistungspegeln oder über separate Transceiver erfolgen, beispielsweise über einen lokalen Transceiver, der BLE verwendet, und einen separaten Mesh-Transceiver, der ZigBee verwendet.
  • Ein drahtloser Netzwerk-Transceiver 1566 kann enthalten sein, um mit Vorrichtungen oder Diensten in der Cloud 1500 über Lokal- oder Weitverkehrsnetzprotokolle zu kommunizieren. Der drahtlose Netzwerk-Transceiver 1566 kann ein LPWA-Transceiver sein, der unter anderem die Standards IEEE 802.15.4 oder IEEE 802.15.4g einhält. Die IoT-Vorrichtung 1550 kann über einen weiten Bereich unter Verwenden von LoRaWAN™ (Long Range Wide Area Network), das von Semtech und der LoRa Alliance entwickelt wird, kommunizieren. Die hierin beschriebenen Techniken sind nicht auf diese Technologien beschränkt, sondern können mit einer beliebigen Anzahl anderer Cloud-Transceiver verwendet werden, die Kommunikationen mit großer Reichweite und geringer Bandbreite umsetzen, wie beispielsweise Sigfox und andere Technologien. Weiter können andere Kommunikationstechniken, wie etwa Zeitschlitz-Kanalspringen, die in der Spezifikation IEEE 802.15.4e beschrieben sind, verwendet werden.
  • Eine beliebige Anzahl anderer Funkkommunikationen und Protokolle kann zusätzlich zu den Systemen verwendet werden, die für den Mesh-Transceiver 1562 und Drahtlosnetz-Transceiver 1566 erwähnt wurden, wie hierin beschrieben. Zum Beispiel können die -Transceiver 1562 und 1566 einen LTE- oder anderen zellularen Transceiver beinhalten, der Spreizspektrum-Kommunikationen (SPA/SAS-Kommunikationen) zum Umsetzen von Hochgeschwindigkeitskommunikationen verwendet. Weiter kann eine beliebige Anzahl anderer Protokolle verwendet werden, wie etwa Wi-Fi® -Netzwerke für Mittelgeschwindigkeitskommunikationen und Bereitstellung von Netzwerkkommunikationen.
  • Die Funk-Transceiver 1562 und 1566 können Funkgeräte beinhalten, die mit einer beliebigen Anzahl von 3GPP-Spezifikationen (Third Generation Partnership Project-Spezifikationen) kompatibel sind, insbesondere Long Term Evolution (LTE), Long Term Evolution-Advanced (LTE-A) und Long Term Evolution-Advanced Pro (LTE-A Pro). Es kann angemerkt werden, dass Funkgeräte, die mit einer beliebigen Anzahl anderer fixer, mobiler oder Satellitenkommunikationstechnologien und -standards kompatibel sind, ausgewählt werden können. Diese können zum Beispiel eine beliebige Cellular-Wide-Area-Funkkommunikationstechnologie beinhalten, wie zum Beispiel ein 5th-Generation-Kommunikationssystem (5G-Kommunikationssystem), eine Global-System-for-Mobile-Communications-Funkkommunikationstechnologie (GSM-Funkkommunikationstechnologie), eine General-Packet-Radio-Service-Funkkommunikationstechnologie (GPRS-Funkkommunikationstechnologie) oder eine Enhanced-Data-Rates-or-GSM Evolution -Funkkommunikationstechnologie (EDGE-Funkkommunikationstechnologie, eine UMTS-Kommunikationstechnologie (Universal-Mobile-Telecommunications-System-Kommunikationstechnologie. Zusätzlich zu den oben aufgeführten Standards kann eine beliebige Anzahl von Satelliten-Uplink-Technologien für den drahtlosen Netzwerk-Transceiver 1566 verwendet werden, die unter anderem mit Standards konform sind, die von der ITU (International Telecommunication Union) oder dem ETSI (European Telecommunications Standards Institute) ausgegeben werden. Man versteht daher, dass die hierin bereitgestellten Beispiele somit auf verschiedene andere Kommunikationstechnologien, sowohl bestehende als auch noch nicht formulierte, anwendbar sind.
  • Eine Netzschnittstellensteuervorrichtung (NIC) 1568 kann enthalten sein, um eine verdrahtete Kommunikation zu der Cloud 1500 oder zu anderen Vorrichtungen, wie etwa den Mesh-Vorrichtungen 1564, bereitzustellen. Die verdrahtete Kommunikation kann eine Ethernet-Verbindung bereitstellen oder auf anderen Arten von Netzwerken basieren, wie etwa unter anderem Controller Area Network (CAN), Local Interconnect Network (LIN), DeviceNet, ControlNet, Data Highway+, PROFIBUS oder PROFINET. Eine zusätzliche NIC 1568 kann enthalten sein, um eine Verbindung mit einem zweiten Netzwerk zu ermöglichen, wobei zum Beispiel eine NIC 1568 Kommunikationen mit der Cloud über Ethernet bereitstellt, und eine zweite NIC 1568, die Kommunikationen mit anderen Vorrichtungen über einen anderen Typ von Netzwerk bereitstellt.
  • Die Verbindung 1556 kann den Prozessor 1552 mit einer externen Schnittstelle 1570 koppeln, die verwendet wird, um externe Vorrichtungen oder Subsysteme zu verbinden. Die externen Vorrichtungen können Sensoren 1572 beinhalten, wie Beschleunigungsmesser, Niveausensoren, Durchflusssensoren, optische Lichtsensoren, Kamerasensoren, Temperatursensoren, Sensoren eines globalen Positionierungssystems (GPS), Drucksensoren, Luftdrucksensoren und dergleichen. Die externe Schnittstelle 1570 kann weiter dazu verwendet werden, die IoT-Vorrichtung 1550 mit Aktuatoren 1574, wie etwa Leistungsschaltern, Ventilaktuatoren, einem akustischen Tongenerator, einer visuellen Warnvorrichtung und dergleichen, zu verbinden.
  • Bei einigen optionalen Beispielen können verschiedene Eingabe/AusgabeVorrichtungen (E/A-Vorrichtungen) innerhalb der IoT-Vorrichtung 1550 vorhanden oder mit dieser verbunden sein. Beispielsweise kann eine Anzeige oder eine andere Ausgabevorrichtung 1584 enthalten sein, um Informationen, wie etwa Sensorablesungen oder Aktuatorposition, zu zeigen. Eine Eingabevorrichtung 1586, wie etwa ein Touchscreen oder eine Tastatur, kann enthalten sein, um eine Eingabe entgegenzunehmen. Eine Ausgabevorrichtung 1586 kann eine beliebige Anzahl von Formen einer Audio- oder visuellen Anzeige beinhalten, einschließlich einfacher visueller Ausgaben, wie etwa binärer Statusindikatoren (zum Beispiel LEDs) und visueller Mehrzeichenausgaben, oder komplexere Ausgaben, wie etwa Anzeigebildschirme (zum Beispiel LCD-Bildschirme), wobei die Ausgabe von Zeichen, Grafiken, Multimediaobjekten und dergleichen aus dem Betrieb der IoT-Vorrichtung 1550 erzeugt oder produziert wird.
  • Eine Batterie 1576 kann die IoT-Vorrichtung 1550 mit Strom versorgen, obwohl sie in Beispielen, in denen die IoT-Vorrichtung 1550 an einem festen Ort montiert ist, eine Stromversorgung aufweisen kann, die mit einem Stromnetz gekoppelt ist. Die Batterie 1576 kann eine Lithium-Ion-Batterie oder eine Metall-Luft-Batterie, wie etwa eine Zink-Luft-Batterie, eine Aluminium-Luft-Batterie, eine Lithium-Luft-Batterie und dergleichen, sein.
  • Eine Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 kann in der IoT-Vorrichtung 1550 enthalten sein, um den Ladezustand (SoCh) der Batterie 1576 zu verfolgen. Die Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 kann verwendet werden, um andere Parameter der Batterie 1576 zu überwachen, um Ausfallvorhersagen bereitzustellen, wie etwa den Gesundheitszustand (SoH) und den Funktionszustand (SoF) der Batterie 1576. Die Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 kann eine integrierte Batterieüberwachungsschaltung beinhalten, wie etwa einen LTC4020 oder einen LTC2990 von Linear Technologies, einen ADT7488A der ON Semiconductor, Phoenix, Arizona, oder einen IC der UCD90xxx-Familie der Texas Instruments, Dallas, TX. Die Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 kann die Informationen über die Batterie 1576 über das Interconnect 1556 zu dem Prozessor 1552 kommunizieren. Die Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 kann auch einen Analog-DigitalWandler (ADC) beinhalten, der es dem Prozessor 1552 ermöglicht, die Spannung der Batterie 1576 oder den Stromfluss von der Batterie 1576 direkt zu überwachen. Die Batterieparameter können verwendet werden, um Handlungen zu bestimmen, die die IoT-Vorrichtung 1550 ausführen kann, wie etwa Übertragungsfrequenz, Mesh-Netzwerkbetrieb, Erfassung von Frequenz und dergleichen.
  • Ein Leistungsblock 1580 oder eine andere Leistungsversorgung, die an ein Stromnetz gekoppelt ist, kann mit der Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 gekoppelt werden, um die Batterie 1576 zu laden. Bei einigen Beispielen kann der Leistungsblock 1580 mit einem drahtlosen Leistungsempfänger ersetzt werden, um die Leistung drahtlos, zum Beispiel durch eine Schleifenantenne in der IoT-Vorrichtung 1550, zu erhalten. Eine drahtlose Batterieladeschaltung, wie etwa unter anderem ein LTC4020-Chip der Linear Technologies, Milpitas, CA, kann in der Batterieüberwachungsvorrichtung / Ladevorrichtung 1578 enthalten sein. Die speziellen ausgewählten Ladeschaltungen hängen von der Größe der Batterie 1576 und somit dem erforderlichen Strom ab. Das Laden kann unter anderem unter Verwenden des von der Airfuel Alliance veröffentlichten Airfuel Standards, des von dem Wireless Power Consortium veröffentlichten Qi-Drahtlosladestandards oder des von der Alliance for Wireless Power veröffentlichten Rezence Ladestandards ausgeführt werden.
  • Die Speicherung 1558 kann Anweisungen 1582 in der Form von Software, Firmware oder Hardwarebefehlen zum Umsetzen der hierin beschriebenen Techniken beinhalten. Obwohl derartige Anweisungen 1582 als Codeblöcke gezeigt sind, die in dem Speicher 1554 und der Speicherung 1558 enthalten sind, versteht es sich, dass beliebige der Codeblöcke durch fest verdrahtete Schaltungen ersetzt werden können, die zum Beispiel in einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit - ASIC) eingebaut sind.
  • Bei einem Beispiel können die Anweisungen 1582, die über den Speicher 1554, die Speicherung 1558 oder den Prozessor 1552 bereitgestellt werden, als ein nichtflüchtiges maschinenlesbares Medium 1560 verkörpert sein, das Code beinhaltet, um den Prozessor 1552 anzuweisen, elektronische Operationen in der IoT-Vorrichtung 1550 auszuführen. Der Prozessor 1552 kann über das Interconnect 1556 auf das nichtflüchtige, maschinenlesbare Medium 1560 zugreifen. Beispielsweise kann das nichtflüchtige maschinenlesbare Medium 1560 von Vorrichtungen verkörpert sein, die für die Speicherung 1558 der 15 beschrieben sind, oder kann spezifische Speicherungseinheiten, wie etwa optische Platten, Flash-Laufwerke oder eine beliebige Anzahl anderer Hardwarevorrichtungen, beinhalten. Das nichtflüchtige, maschinenlesbare Medium 1560 kann Anweisungen enthalten, um den Prozessor 1552 zum Ausführen einer speziellen Folge oder eines speziellen Flusses von Handlungen anzuweisen, wie zum Beispiel mit Bezug auf das/die Flussdiagramm(e) und Blockdiagramm(e) von Operationen und Funktionen beschrieben, die oben beschrieben sind.
  • Auch bei einem spezifischen Beispiel können die Anweisungen 1588 auf dem Prozessor 1552 (separat oder in Kombination mit den Anweisungen 1588 des maschinenlesbaren Mediums 1560) die Ausführung oder Operation einer vertrauenswürdigen Ausführungsumgebung (TEE) 1590 konfigurieren. Bei einem Beispiel arbeitet das TEE 1590 als ein geschützter Bereich, der für den Prozessor 1552 zur sicheren Ausführung von Anweisungen und zum sicheren Zugriff auf Daten zugänglich ist. Verschiedene Umsetzungen der TEE 1590 und eines begleitenden sicheren Bereichs in dem Prozessor 1552 oder dem Speicher 1554 können beispielsweise durch Verwenden von Intel® Software Guard Extensions (SGX) oder ARM® TrustZone®-Hardwaresicherheitserweiterungen, Intel® Management Engine (ME) oder Intel® Converged Security Manageability Engine (CSME) bereitgestellt werden. Andere Aspekte von Sicherheitshärtung, Hardware-Vertrauensankern und vertrauenswürdigen oder geschützten Operationen können in der Vorrichtung 1550 vor der TEE 1590 und dem Prozessor 1552 umgesetzt werden.
  • Auf einer generischeren Ebene kann beschrieben werden, dass ein Edge-Computing-System eine beliebige Anzahl von Anwendungen umfasst, die in einer Edge-Cloud 710 arbeiten, die Koordination von Client- und verteilten Rechenvorrichtungen bereitstellen. 16 stellt einen weiter abstrahierten Überblick über Schichten verteilten Rechnens bereit, die zu Veranschaulichungszwecken in einer Edge-Computing-Umgebung eingesetzt werden.
  • 16 bildet generisch ein Edge-Computing-System zum Bereitstellen von Edge-Diensten und Anwendungen an Multi-Stakeholder-Entitäten ab, wie sie unter einem oder mehreren Client-Rechenknoten 2002, einem oder mehreren Edge-Gateway-Knoten 2012, einem oder mehreren Edge-Aggregationsknoten 2022, einem oder mehreren Kerndatenzentren 2032 und einer globalen Netzwerk-Cloud 2042 verteilt sind, wie sie über Schichten des Netzwerks verteilt sind. Die Umsetzung des Edge-Computing-Systems kann bei einem oder im Auftrag eines Telekommunikationsdienstanbieters ( „Telco“ oder „TSP“), Internet-of-Things-Dienstanbieters, Cloud-Dienstanbieters (CSP), einer Unternehmensentität oder einer beliebigen anderen Anzahl von Entitäten bereitgestellt werden.
  • Jeder Knoten oder jede Vorrichtung des Edge-Computing-Systems befindet sich auf einer speziellen Schicht, die den Schichten 2010, 2020, 2030, 2040, 2050 entspricht. Zum Beispiel befinden sich die Client-Rechenknoten 2002 jeweils auf einer Endpunktschicht 2010, während sich jeder der Edge-Gateway-Knoten 2012 auf einer Edge-Vorrichtungenschicht 2020 (lokale Ebene) des Edge-Computing-Systems befindet. Zusätzlich dazu befindet sich jeder der Edge-Aggregationsknoten 2022 (und/oder Fog-Vorrichtungen 2024, falls sie mit oder unter einer Fog-Networking-Konfiguration 2026 angeordnet oder betrieben werden) auf einer Netzwerkzugangsschicht 2030 (einer Zwischenebene). Fog-Computing (oder „Fogging“) verweist allgemein auf Erweiterungen von Cloud-Computing zum Rand eines Netzwerks eines Unternehmens, typischerweise in einem koordinierten verteilten oder Mehrknotennetzwerk. Einige Formen des Fog-Computing stellen den Einsatz von Rechen-, Speicherungs- und Networking-Diensten zwischen Endgeräten und Cloud-Rechendatenzentren im Auftrag der Cloud-Computing-Standorte bereit. Derartige Formen von Fog-Computing stellen Operationen bereit, die mit dem Edge-Computing, wie hierin erörtert, konsistent sind; viele der hierin erörterten Edge-Computing-Aspekte sind auf Fog-Netzwerke, Fog und Fog-Konfigurationen anwendbar. Weiter können Aspekte der hier besprochenen Edge-Computing-Systeme als ein Fog konfiguriert sein oder Aspekte eines Fog können in eine Edge-Computing-Architektur integriert sein.
  • Das Kerndatenzentrum 2032 befindet sich auf einer Kernnetzwerkschicht 2040 (zum Beispiel einer regionalen oder geografisch zentralen Ebene), während sich die globale Netzwerk-Cloud 2042 auf einer Cloud-Datenzentrumschicht 2050 (zum Beispiel einer nationalen oder globalen Schicht) befindet. Die Verwendung von „Kern“ ist als Begriff für einen zentralisierten Netzwerkort tiefer im Netzwerk vorgesehen, auf den mehrere Edge-Knoten oder Bauelemente zugreifen können; ein „Kern“ bezeichnet jedoch nicht notwendigerweise den „Mittelpunkt“ oder den tiefsten Ort des Netzwerks. Dementsprechend kann sich das Kerndatenzentrum 2032 innerhalb, an oder nahe der Edge-Cloud 710 befinden.
  • Obwohl eine veranschaulichende Anzahl von Client-Rechenknoten 2002, Edge-Gateway-Knoten 2012, Edge-Aggregationsknoten 2022, Kerndatenzentren 2032, globalen Netzwerk-Clouds 2042 in 16 gezeigt ist, versteht es sich, dass das Edge-Computing-System mehr oder weniger Vorrichtungen oder Systeme auf jeder Schicht beinhalten kann. Außerdem nimmt, wie in 16 gezeigt, die Anzahl von Bauelementen jeder Schicht 2010, 2020, 2030, 2040, 2050 allgemein auf jeder niedrigeren Ebene zu (das heißt, wenn sie sich näher zu Endpunkten bewegt). Daher kann ein Edge-Gateway-Knoten 2012 mehrere Client-Rechenknoten 2002 bedienen, und ein Edge-Aggregationsknoten 2022 kann mehrere Edge-Gateway-Knoten 2012 bedienen.
  • Im Einklang mit den hierin bereitgestellten Beispielen kann jeder Client-Rechenknoten 2002 als eine beliebige Art von Endpunktbauelement, -vorrichtung, -gerät oder „Thing“ umgesetzt werden, das/die in der Lage ist, als ein Erzeuger oder Verbraucher von Daten zu kommunizieren. Weiter bedeutet die Bezeichnung „Knoten“ oder „Gerät“, wie sie in dem Edge-Computing-System 2000 verwendet wird, nicht notwendigerweise, dass ein derartiger Knoten oder diese Vorrichtung in einer Client- oder Agent-/Minion-/Folgerrolle arbeitet; vielmehr verweisen beliebige der Knoten oder Vorrichtungen in dem Edge-Computing-System 2000 auf einzelne Entitäten, Knoten oder Subsysteme, die getrennte oder verbundene Hardware- oder Softwarekonfigurationen beinhalten, um die Edge-Cloud 710 zu erleichtern oder zu verwenden.
  • Daher ist die Edge-Cloud 710 aus Netzwerkbauelementen und funktionalen Merkmalen gebildet, die von und innerhalb der Edge-Gateway-Knoten 2012 bzw. der Edge-Aggregationsknoten 2022 der Schichten 2020, 2030 betrieben werden. Die Edge-Cloud 710 kann als eine beliebige Art von Netzwerk umgesetzt werden, das Edge-Computing- und/oder Speicherressourcen bereitstellt, die sich in der Nähe einer funkzugangsnetzwerkfähigen (RANfähigen) Endpunktvorrichtungen (zum Beispiel Mobilcomputervorrichtungen, IoT-Vorrichtungen, Smartvorrichtungen usw.) befinden, die in 16 als die Client-Rechenknoten 2002 gezeigt sind. Mit anderen Worten kann die Edge-Cloud 710 als ein „Rand“ gedacht werden, der die Endpunkteinrichtungen und traditionelle Mobilnetzzugangspunkte verbindet, der als ein Eingangspunkt in Dienstanbieter-Kernnetze dient, einschließlich Trägernetzwerken (zum Beispiel GSM-Netzwerke (Global System for Mobile Communications-Netzwerke), LTE-Netzwerke (Long Term Evolution-Netzwerke, 5G-Netzwerke usw.), während auch Speicherungs- und/oder Rechenfähigkeiten bereitgestellt werden. Andere Arten und Formen von Netzwerkzugang (zum Beispiel WiFi, Wi-Range Wireless Networks) können auch an Stelle von oder in Kombination mit derartigen 3GPP-Trägernetzwerken genutzt werden.
  • Bei einigen Beispielen kann die Edge-Cloud 710 einen Teil einer Fog-Networking-Konfiguration 2026 (zum Beispiel ein Netzwerk aus Fog-Vorrichtungen 2024, nicht im Detail gezeigt) bilden oder anderswie einen Eintrittspunkt in oder über eine Fog-Netzwerkkonfiguration 2026 bereitstellen, die als eine horizontale und verteilte Architektur auf Systemebene umgesetzt sein kann, die Ressourcen und Dienste verteilt, um eine spezifische Funktion auszuführen. Beispielsweise kann ein koordiniertes und verteiltes Netzwerk aus Fog-Vorrichtungen 2024 Rechen-, Speicherungs-, Steuer- oder Networking-Aspekte im Kontext einer IOT-Systemanordnung ausführen. Andere vernetzte, aggregierte und verteilte Funktionen können in der Edge-Cloud 710 zwischen der Cloud-Datenzentrumschicht 2050 und den Client-Endpunkten (zum Beispiel Client-Rechenknoten 2002) existieren. Einige davon werden in den folgenden Abschnitten im Zusammenhang mit Netzwerkfunktionen oder Dienstvirtualisierung erläutert, einschließlich der Nutzung virtueller Edges und virtueller Dienste, die für mehrere Stakeholder orchestriert werden.
  • Die Edge-Gateway-Knoten 2012 und die Edge-Aggregationsknoten 2022 arbeiten zusammen, um den Client-Rechenknoten 2002 verschiedene Edge-Dienste und Sicherheit bereitzustellen. Weil jeder Client-Rechenknoten 2002 stationär oder mobil sein kann, kann weiter jeder Edge-Gateway-Knoten 2012 mit anderen Edge-Gateway-Vorrichtungen zusammenwirken, um gegenwärtig bereitgestellte Edge-Dienste und Sicherheit auszubreiten, wenn sich der entsprechende Client-Rechenknoten 2002 über eine Region bewegt. Dazu kann jeder der Edge-Gateway-Knoten 2012 und/oder Edge-Aggregationsknoten 2022 mehrere Mandanten und mehrere Stakeholder-Konfigurationen unterstützen, in denen Dienste von mehreren Dienstanbietern und mehreren Verbrauchern über eine einzelne oder mehrere Rechenvorrichtungen unterstützt und koordiniert (oder für die gehostet) werden können.
  • 17 veranschaulicht eine beispielhafte Softwareverteilungsplattform 2105 zum Verteilen von Software, wie etwa der beispielhaften computerlesbaren Anweisungen 282 der 2B, zu einer oder mehreren Vorrichtungen, wie etwa beispielhaften Prozessorplattform(en) 2100 und/oder beispielhaften verbundenen Edge-Vorrichtungen 262. Die beispielhafte Softwareverteilungsplattform 2105 kann von einem beliebigen Computerserver, einer beliebigen Dateneinrichtung, einem beliebigen Cloud-Dienst usw. umgesetzt werden, der in der Lage ist, Software zu speichern und zu anderen Rechenvorrichtungen (zum zu Beispiel Dritten, den beispielhaften verbundenen Edge-Vorrichtungen 262 der 2B) zu übertragen. Beispielhafte verbundene Edge-Vorrichtungen können Kunden, Clients, Verwaltungsvorrichtungen (zum Beispiel Server), Dritte (zum Beispiel Kunden einer Entität sein, die Softwareverteilungsplattform 2105 besitzt und/oder betreibt). Beispielhafte verbundene Edge-Geräte können in kommerziellen und/oder Heimautomatisationsumgebungen arbeiten. Bei einigen Beispielen ist eine Drittpartei ein Entwickler, ein Verkäufer und/oder ein Lizenzgeber von Software, wie etwa der beispielhaften computerlesbaren Anweisungen 282 der 2B. Die Drittparteien können Verbraucher, Benutzer, Einzelhändler, OEMs usw. sein, die die Software zur Verwendung kaufen und/oder in Lizenz vergeben und/oder weiterverkaufen und/oder in Unterlizenz vergeben. Bei einigen Beispielen bewirkt verteilte Software eine Anzeige einer oder mehrerer Benutzeroberflächen (UIs) und/oder grafischer Benutzeroberflächen (GUIs), um die eine oder die mehreren Vorrichtungen (zum Beispiel verbundene Edge-Vorrichtungen) geografisch und/oder logisch voneinander getrennt (zum Beispiel physisch getrennte IoT-Geräte, gekennzeichnet durch die Verantwortung von Wasserverteilungssteuerung (zum Beispiel Pumpen), Stromverteilungssteuerung (zum Beispiel Relais) usw.) zu identifizieren.
  • Bei dem veranschaulichten Beispiel der 17 beinhaltet die Softwareverteilungsplattform 2105 einen oder mehrere Server und eine oder mehrere Speichervorrichtungen. Die Speichervorrichtungen speichern die computerlesbaren Anweisungen 282, die, wie oben beschrieben den beispielhaften computerlesbaren Anweisungen 282 der 2B entsprechen können. Der eine oder die mehreren Server der beispielhaften Softwareverteilungsplattform 2105 stehen in Kommunikation mit einem Netzwerk 2110, das einem beliebigen oder mehreren beliebigen des Internets und/oder beliebigen der oben beschriebenen beispielhaften Netzwerke 295 entsprechen kann. Bei einigen Beispielen reagieren der eine oder die mehreren Server auf Anforderungen, die Software als Teil einer kommerziellen Transaktion zu einer anfordernden Partei zu übertragen. Die Zahlung für die Lieferung, den Verkauf und/oder die Lizenz der Software kann von dem einen oder den mehreren Servern der Softwareverteilungsplattform und/oder über eine Drittpartei-Zahlungsentität gehandhabt werden. Die Server ermöglichen es Käufern und/oder Lizenzgebern, die computerlesbaren Anweisungen 282 von der Softwareverteilungsplattform 2105 herunterzuladen. Zum Beispiel kann die Software, die den beispielhaften computerlesbaren Anweisungen 282 der 2B entsprechen kann, auf die beispielhafte(n) Prozessorplattform(en) 2100 (zum Beispiel beispielhafte verbundene Edge-Vorrichtungen) heruntergeladen werden, die die computerlesbaren Anweisungen 282 ausführen sollen/soll, um die Software umzusetzen. Bei einigen Beispielen sind ein oder mehrere Server der Softwareverteilungsplattform 2105 kommunikativ mit einer oder mehreren Sicherheitsdomänen und/oder Sicherheitsvorrichtungen verbunden, durch die Anforderungen und Übertragungen der beispielhaften computerlesbaren Anweisungen 282 durchgehen müssen. Bei einigen Beispielen bieten ein oder mehrere Server der Softwareverteilungsplattform 2105 periodisch Aktualisierungen an, übertragen und/oder setzen Aktualisierungen zu der Software durch (zum Beispiel die beispielhaften computerlesbaren Anweisungen 282 der 2B), um sicherzustellen, dass Verbesserungen, Patches, Aktualisierungen usw. verteilt und auf die Software an den Endbenutzervorrichtungen angewandt werden.
  • Bei dem veranschaulichten Beispiel der 17 sind die computerlesbaren Anweisungen 282 auf Speichervorrichtungen der Softwareverteilungsplattform 2105 in einem besonderen Format gespeichert. Ein Format von computerlesbaren Anweisungen beinhaltet unter anderem eine spezielle Codesprache (zum Beispiel Java, JavaScript, Python, C, C#, SQL, HTML usw.) und/oder einen speziellen Codezustand (zum Beispiel unkompilierter Code (zum Beispiel ASCII), interpretierter Code, verknüpfter Code, ausführbarer Code (zum Beispiel ein Binärprogramm) usw.). Bei einigen Beispielen liegen die computerlesbaren Anweisungen 282, die in der Softwareverteilungsplattform 2105 gespeichert sind, in einem ersten Format vor, wenn sie zu den beispielhafte(n) Prozessorplattform(en) 2100 übertragen werden. Bei einigen Beispielen ist das erste Format ein ausführbares Binärprogramm, in dem bestimmte Typen der Prozessorplattform(en) 2100 ausgeführt werden können. Bei einigen Beispielen ist das erste Format jedoch unkompilierter Code, der eine oder mehrere Vorbereitungsaufgaben erfordert, um das erste Format in ein zweites Format umzuwandeln, um eine Ausführung auf der (den) beispielhaften Prozessorplattform(en) 2100 zu ermöglichen. Beispielsweise muss/müssen die empfangende(n) Prozessorplattform(en) 2100 möglicherweise die computerlesbaren Anweisungen 282 in dem ersten Format kompilieren, um ausführbaren Code in einem zweiten Format zu erzeugen, der in der Lage ist, auf der (den) Prozessorplattform(en) 2100 ausgeführt zu werden. Bei noch anderen Beispielen ist das erste Format interpretierter Code, der beim Erreichen der Prozessorplattform(en) 2100 von einem Interpreter interpretiert wird, um die Ausführung von Anweisungen zu erleichtern.
  • BEISPIELE
  • Veranschaulichende Beispiele der hierin offenbarten Technologien sind unten bereitgestellt. Eine Ausführungsform der Technologien kann ein oder mehrere der unten beschriebenen Beispiele und beliebige Kombinationen davon beinhalten.
  • Beispiel 1 beinhaltet einen Rechenknoten zum Codieren von Video, wobei der Rechenknoten einen Videocodierer zum Bestimmen eines Region-of-Interest-Gewichtungsparameters (ROI-Gewichtungsparameters) und eines Nicht-ROI-Gewichtungsparameters umfasst; Empfangen eines ersten Frames eines Videos von einer Videoquelle; Bestimmen einer Region-of-Interest des ersten Frames; Codieren des ersten Frames basierend auf der bestimmten Region-of-Interest des ersten Frames, um einen codierten ersten Frame zu erzeugen; Bestimmen eines gewichteten durchschnittlichen Rauschparameters des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; Empfangen eines zweiten Frames eines Videos von einer Videoquelle, wobei das zweite Frame nach dem ersten Frame liegt; Bestimmen einer Region-of-Interest des zweiten Frames; und Codieren des zweiten Frames basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames.
  • Beispiel 2 beinhaltet den Gegenstand von Beispiel 1, und wobei der Videocodierer weiter ausgelegt ist zum Bestimmen des Rauschparameters der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codieren; und Bestimmen des Rauschparameters der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codierung.
  • Beispiel 3 beinhaltet den Gegenstand eines der Beispiele 1 und 2, und wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rauschverhältnisses umfasst.
  • Beispiel 4 beinhaltet den Gegenstand eines der Beispiele 1 bis 3, und wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  • Beispiel 5 beinhaltet den Gegenstand eines der Beispiele 1 bis 4, und wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  • Beispiel 6 beinhaltet den Gegenstand eines der Beispiele 1 bis 5, und wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  • Beispiel 7 beinhaltet den Gegenstand eines der Beispiele 1 bis 6, und wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  • Beispiel 8 beinhaltet ein System, das den Rechenknoten nach Anspruch 1 umfasst, das weiter einen Senken-Rechenknoten umfasst, wobei der Senken-Rechenknoten einen Videodecoder zum Empfangen des zweiten Frames des Videos von der Quellenrechenvorrichtung umfasst; Bestimmen der Region-of-Interest des zweiten Frames des Videos mit Verwendung eines auf maschinellem Lernen basierenden Algorithmus; und Verbessern der Qualität der bestimmten Region-of-Interest des zweiten Frames des Videos mit Verwendung eines zweiten auf maschinellem Lernen basierenden Algorithmus.
  • Beispiel 9 beinhaltet ein Verfahren zum Codieren von Video, wobei das Verfahren Folgendes umfasst: Bestimmen durch einen Rechenknoten eines Region-of-Interest-Gewichtungsparameters (ROI-Gewichtungsparameters) und eines Nicht-ROI-Gewichtungsparameters; Empfangen durch den Rechenknoten, eines ersten Frames eines Videos von einer Videoquelle; Bestimmen durch den Rechenknoten, einer Region-of-Interest des ersten Frames; Codieren durch den Rechenknoten, des ersten Frames basierend auf der bestimmten Region-of-Interest des ersten Frames, um einen codierten ersten Frame zu erzeugen; Bestimmen durch den Rechenknoten eines gewichteten durchschnittlichen Rauschparameters des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; Empfangen durch den Rechenknoten eines zweiten Frames eines Videos von einer Videoquelle, wobei der zweite Frame nach dem ersten Frame liegt; Bestimmen durch den Rechenknoten, einer Region-of-Interest des zweiten Frames; und Codieren durch den Rechenknoten des zweiten Frames basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames.
  • Beispiel 10 beinhaltet den Gegenstand des Beispiels 9 und beinhaltet weiter das Bestimmen des Rauschparameters der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codierung; und das Bestimmen des Rauschparameters der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codieren.
  • Beispiel 11 beinhaltet den Gegenstand eines der Beispiele 9 und 10, und wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rauschverhältnisses umfasst.
  • Beispiel 12 beinhaltet den Gegenstand eines der Beispiele 9 bis 11, und wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  • Beispiel 13 beinhaltet den Gegenstand eines der Beispiele 9 bis 12, und wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  • Beispiel 14 beinhaltet den Gegenstand eines der Beispiele 9Networkingbis 13, und wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  • Beispiel 15 beinhaltet den Gegenstand eines der Beispiele 9 bis 14, und wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  • Beispiel 16 beinhaltet einen Rechenknoten zum Codieren von Video, wobei der Rechenknoten Folgendes umfasst: Mittel zum Bestimmen eines Region-of-Interest-Gewichtungsparameters (ROI-Gewichtungsparameters) und eines Nicht-ROI-Gewichtungsparameters; Mittel zum Empfangen eines ersten Frames eines Videos von einer Videoquelle; Mittel zum Bestimmen einer Region-of-Interest des ersten Frames; Mittel zum Codieren des ersten Frames basierend auf der bestimmten Region-of-Interest des ersten Frames, um einen codierten ersten Frame zu erzeugen; Mittel zum Bestimmen eines gewichteten durchschnittlichen Rauschparameters des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; Mittel zum Empfangen eines zweiten Frames eines Videos von einer Videoquelle, wobei der zweite Frame nach dem ersten Frame liegt; Mittel zum Bestimmen einer Region-of-Interest des zweiten Frames; und Mittel zum Codieren des zweiten Frames basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames.
  • Beispiel 17 beinhaltet den Gegenstand des Beispiels 16 und beinhaltet weiter Mittel zum Bestimmen des Rauschparameters der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codierung; und Mittel zum Bestimmen des Rauschparameters der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codierung.
  • Beispiel 18 beinhaltet den Gegenstand eines der Beispiele 16 und 17, und wobei das Mittel zum Bestimmen des gewichteten durchschnittlichen Rauschparameters Mittel zum Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rausch-Verhältnisses umfasst.
  • Beispiel 19 beinhaltet den Gegenstand eines der Beispiele 16 bis 18, und wobei das Mittel zum Bestimmen des gewichteten durchschnittlichen Rauschparameters Mittel zum Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  • Beispiel 20 beinhaltet den Gegenstand eines der Beispiele 16 bis 19, und wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  • Beispiel 21 beinhaltet den Gegenstand eines der Beispiele 16 bis 20, wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  • Beispiel 22 beinhaltet den Gegenstand eines der Beispiele 16 bis 21, wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  • Beispiel 23 beinhaltet ein oder mehrere computerlesbare Medien, die eine Vielzahl darauf gespeicherter Anweisungen umfassen, die, wenn sie ausgeführt werden, bewirken, dass ein Rechenknoten einen Region-of-Interest-Gewichtungsparameter (ROI-Gewichtungsparameter) und einen Nicht-ROI-Gewichtungsparameter bestimmt;einen ersten Frame eines Videos von einer Videoquelle empfängt; eine Region-of-Interest des ersten Frames bestimmt; den ersten Frame basierend auf der bestimmten Region-of-Interest des ersten Frames codiert, um einen codierten ersten Frame zu erzeugen; einen gewichteten durchschnittlichen Rauschparameter des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren bestimmt, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; einen zweiten Frame eines Videos von einer Videoquelle empfängt, wobei der zweite Frame nach dem ersten Frame liegt; eine Region-of-Interest des zweiten Frame bestimmt; und den zweiten Frame basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames codiert.
  • Beispiel 24 beinhaltet den Gegenstand des Beispiels 23, und wobei die Vielzahl von Anweisungen weiter bewirkt, dass der Rechenknoten den Rauschparameter der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codieren bestimmt; und den Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codierung bestimmt.
  • Beispiel 25 beinhaltet den Gegenstand eines der Beispiele 23 und 24, und wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rauschverhältnisses umfasst.
  • Beispiel 26 beinhaltet den Gegenstand eines der Beispiele 23 bis 25, und wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  • Beispiel 27 beinhaltet den Gegenstand eines der Beispiele 23 bis 26, und wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  • Beispiel 28 beinhaltet den Gegenstand eines der Beispiele 23 bis 27, wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  • Beispiel 29 beinhaltet den Gegenstand eines der Beispiele 23 bis 28, wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  • Beispiel 30 beinhaltet einen Rechenknoten zum Decodieren von Video, wobei der Rechenknoten einen Videodecoder zum Empfangen eines Video-Frames umfasst; Bestimmen einer Region-of-Interest des Video-Frames mit Verwendung eines auf maschinellem Lernen basierten Algorithmus; und Verbessern der Qualität der bestimmten Region-of-Interest des Video-Frames mit Verwendung eines zweiten auf maschinellem Lernen basierten Algorithmus umfasst.
  • Beispiel 31 beinhaltet den Gegenstand des Beispiels 30, und wobei das Empfangen des Video-Frames das Empfangen eines gewichteten durchschnittlichen Rauschparameters, der mit dem Frame assoziiert ist, umfasst, wobei das Verbessern der Qualität der bestimmten Region-of-Interest das Verbessern der Qualität der bestimmten Region-of-Interest basierend auf dem gewichteten durchschnittlichen Rauschparameter, der mit dem Frame assoziiert ist, umfasst.
  • Beispiel 32 beinhaltet den Gegenstand eines der Beispiele 30 und 31 und beinhaltet weiter das Ausführen einer Inferenz auf dem Frame nach einer Verbesserung der Qualität durch den zweiten auf maschinellem Lernen basierten Algorithmus.
  • Beispiel 33 beinhaltet ein Verfahren zum Decodieren von Video, wobei das Verfahren Folgendes umfasst: Empfangen durch einen Rechenknoten, eines Video-Frames; Bestimmen durch den Rechenknoten, einer Region-of-Interest des Video-Frames mit Verwendung eines auf maschinellem Lernen basierten Algorithmus; und Verbessern der Qualität der bestimmten Region-of-Interest des Video-Frames mit Verwendung eines zweiten auf maschinellem Lernen basierten Algorithmus.
  • Beispiel 34 beinhaltet den Gegenstand des Beispiels 33, und wobei das Empfangen des Video-Frames das Empfangen eines gewichteten durchschnittlichen Rauschparameters, der mit dem Frame assoziiert ist, umfasst, wobei das Verbessern der Qualität der bestimmten Region-of-Interest das Verbessern der Qualität der bestimmten Region-of-Interest basierend auf dem gewichteten durchschnittlichen Rauschparameter, der mit dem Frame assoziiert ist, umfasst.
  • Beispiel 35 beinhaltet den Gegenstand eines der Beispiele 33 und 34 und beinhaltet weiter das Ausführen einer Inferenz auf dem Frame nach einer Verbesserung der Qualität durch den zweiten auf maschinellem Lernen basierten Algorithmus.
  • Beispiel 36 beinhaltet einen Rechenknoten zum Decodieren von Video, wobei der Rechenknoten Mittel zum Empfangen eines Video-Frames; Mittel zum Bestimmen einer Region-of-Interest des Video-Frames mit Verwendung eines auf maschinellem Lernen basierten Algorithmus; und Mittel zum Verbessern der Qualität der bestimmten Region-of-Interest des Video-Frames mit Verwendung eines zweiten auf maschinellem Lernen basierten Algorithmus umfasst.
  • Beispiel 37 beinhaltet den Gegenstand des Beispiels 36, und wobei das Mittel zum Empfangen des Video-Frames Mittel zum Empfangen eines gewichteten durchschnittlichen Rauschparameters, der mit dem Frame assoziiert ist, umfasst, wobei die Mittel zum Verbessern der Qualität der bestimmten Region-of-Interest Mittel zum Verbessern der Qualität der bestimmten Region-of-Interest basierend auf dem gewichteten durchschnittlichen Rauschparameter, der mit dem Frame assoziiert ist, aufweisen.
  • Beispiel 38 beinhaltet den Gegenstand eines der Beispiele 36 und 37 und beinhaltet weiter Mittel zum Ausführen einer Inferenz auf dem Frame nach einer Verbesserung der Qualität durch den zweiten auf maschinellem Lernen basierten Algorithmus.
  • Beispiel 39 beinhaltet ein oder mehrere computerlesbare Medien, die eine Vielzahl darauf gespeicherter Anweisungen umfassen, die, wenn sie ausgeführt werden, bewirken, dass ein Rechenknoten einen Video-Frame empfängt; eine Region-of-Interest des Video-Frames mit Verwendung eines auf maschinellem Lernen basierten Algorithmus bestimmt; und Verbessern der Qualität der bestimmten Region-of-Interest des Video-Frames mit Verwendung eines zweiten auf maschinellem Lernen basierten Algorithmus.
  • Beispiel 40 beinhaltet den Gegenstand des Beispiels 39, und wobei das Empfangen des Video-Frames das Empfangen eines gewichteten durchschnittlichen Rauschparameters, der mit dem Frame assoziiert ist, umfasst, wobei das Verbessern der Qualität der bestimmten Region-of-Interest das Verbessern der Qualität der bestimmten Region-of-Interest basierend auf dem gewichteten durchschnittlichen Rauschparameter, der mit dem Frame assoziiert ist, umfasst.
  • Beispiel 41 beinhaltet den Gegenstand eines der Beispiele 39 und 40 und beinhaltet weiter das Ausführen einer Inferenz auf dem Frame nach einer Verbesserung der Qualität durch den zweiten auf maschinellem Lernen basierten Algorithmus.
  • Bei einigen Ausführungsformen kann mindestens eines der Systeme oder Bauelemente, die in einer oder mehreren der vorstehenden Figuren dargelegt sind, dazu konfiguriert sein, eine oder mehrere Operationen, Techniken, Prozesse und/oder Verfahren, wie in den vorhergehenden Beispielen dargelegt, auszuführen. Der Rechenknoten 102, der Edge-Knoten 250, die Edge/IoT-Verarbeitungsvorrichtung 1550 usw. können zum Beispiel als ein beliebiges der Beispiele 1 bis 8, 16 bis 22, 30 bis 32 oder 36 bis 38 umgesetzt sein oder können das Verfahren nach einem der Beispiele 9 bis 15 oder 33 bis 35 ausführen.

Claims (25)

  1. Rechenknoten zum Codieren von Video, wobei der Rechenknoten umfasst: einen Videocodierer zum: Bestimmen eines Region-of-Interest-Gewichtungsparameters (ROI-Gewichtungsparameters) und eines Nicht-ROI-Gewichtungsparameters; Empfangen eines ersten Frames eines Videos von einer Videoquelle; Bestimmen einer Region-of-Interest des ersten Frames; Codieren des ersten Frames basierend auf der bestimmten Region-of-Interest des ersten Frames, um einen codierten ersten Frame zu erzeugen; Bestimmen eines gewichteten durchschnittlichen Rauschparameters des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; Empfangen eines zweiten Frames eines Videos von einer Videoquelle, wobei der zweite Frame nach dem ersten Frame liegt; Bestimmen einer Region-of-Interest des zweiten Frames; und Codieren des zweiten Frames basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames.
  2. Rechenknoten nach Anspruch 1, wobei der Videocodierer weiter ausgelegt ist zum: Bestimmen des Rauschparameters der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codierung; und Bestimmen des Rauschparameters der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codieren.
  3. Rechenknoten nach einem der Ansprüche 1 oder 2, wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rauschverhältnisses umfasst.
  4. Rechenknoten nach einem der Ansprüche 1 oder 2, wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  5. Rechenknoten nach einem der Ansprüche 1 bis 4, wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  6. Rechenknoten nach einem der Ansprüche 1 bis 5, wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  7. Rechenknoten nach Anspruch 6, wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  8. System, das den Rechenknoten nach einem der Ansprüche 1 bis 7 umfasst, das weiter einen Senken-Rechenknoten umfasst, wobei der Senken-Rechenknoten Folgendes umfasst: einen Videodecoder zum: Empfangen des zweiten Frames des Videos von der Quellenrechenvorrichtung; Bestimmen der Region-of-Interest des zweiten Frames des Videos mit Verwendung eines auf maschinellem Lernen basierenden Algorithmus; und Verbessern der Qualität der bestimmten Region-of-Interest des zweiten Frames des Videos mit Verwendung eines zweiten auf maschinellem Lernen basierenden Algorithmus.
  9. Verfahren zum Codieren von Video, wobei das Verfahren umfasst: Bestimmen durch einen Rechenknoten eines Region-of-Interest-Gewichtungsparameters (ROI-Gewichtungsparameters) und eines Nicht-ROI-Gewichtungsparameters; Empfangen durch den Rechenknoten eines ersten Frames eines Videos von einer Videoquelle; Bestimmen durch den Rechenknoten einer Region-of-Interest des ersten Frames; Codieren durch den Rechenknoten des ersten Frames basierend auf der bestimmten Region-of-Interest des ersten Frames, um einen codierten ersten Frame zu erzeugen; Bestimmen durch den Rechenknoten eines gewichteten durchschnittlichen Rauschparameters des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; Empfangen durch den Rechenknoten eines zweiten Frames eines Videos von einer Videoquelle, wobei der zweite Frame nach dem ersten Frame liegt; Bestimmen durch den Rechenknoten einer Region-of-Interest des zweiten Frames; und Codieren durch den Rechenknoten des zweiten Frames basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames.
  10. Verfahren nach Anspruch 9, das weiter umfasst: Bestimmen des Rauschparameters der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codierung; und Bestimmen des Rauschparameters der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codieren.
  11. Verfahren nach einem der Ansprüche 9 oder 10, wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rauschverhältnisses umfasst.
  12. Verfahren nach einem der Ansprüche 9 oder 10, wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  13. Verfahren nach einem der Ansprüche 9 bis 12, wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  14. Verfahren nach einem der Ansprüche 9 bis 13, wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  15. Verfahren nach Anspruch 14, wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  16. Ein oder mehrere computerlesbare Medien, die eine Vielzahl darauf gespeicherter Anweisungen umfassen, die, wenn sie ausgeführt werden, einen Rechenknoten zu Folgendem veranlassen: Bestimmen eines Region-of-Interest-Gewichtungsparameters (ROI-Gewichtungsparameters) und eines Nicht-ROI-Gewichtungsparameters; Empfangen eines ersten Frames eines Videos von einer Videoquelle; Bestimmen einer Region-of-Interest des ersten Frames; Codieren des ersten Frames basierend auf der bestimmten Region-of-Interest des ersten Frames, um einen codierten ersten Frame zu erzeugen; Bestimmen eines gewichteten durchschnittlichen Rauschparameters des ersten Frames basierend auf der Differenz zwischen dem codierten ersten Frame und dem ersten Frame ohne Codieren, wobei der gewichtete durchschnittliche Rauschparameter von einem Rauschparameter der Region-of-Interest des ersten Frames, gewichtet mit dem ROI-Gewichtungsparameter, und einem Rauschparameter der Region außerhalb der Region-of-Interest des ersten Frames, gewichtet mit dem Nicht-ROI-Gewichtungsparameter, abhängt; Empfangen eines zweiten Frames eines Videos von einer Videoquelle, wobei der zweite Frame nach dem ersten Frame liegt; Bestimmen einer Region-of-Interest des zweiten Frames; und Codieren des zweiten Frames basierend auf der bestimmten Region-of-Interest des zweiten Frames und basierend auf dem gewichteten durchschnittlichen Rauschparameter des ersten Frames.
  17. Computerlesbares Medium oder computerlesbare Medien nach Anspruch 16, wobei die Vielzahl von Anweisungen den Rechenknoten weiter zu Folgendem veranlasst: Bestimmen des Rauschparameters der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region-of-Interest des codierten ersten Frames und der Region-of-Interest des ersten Frames ohne Codierung; und Bestimmen des Rauschparameters der Region außerhalb der Region-of-Interest des ersten Frames basierend auf einem pixelweisen Vergleich der Region außerhalb der Region-of-Interest des codierten ersten Frames und der Region außerhalb der Region-of-Interest des ersten Frames ohne Codieren.
  18. Computerlesbares Medium oder computerlesbare Medien nach einem der Ansprüche 16 oder 17, wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen Spitzensignal-zu-Rauschverhältnisses umfasst.
  19. Computerlesbares Medium oder computerlesbare Medien nach einem der Ansprüche 16 oder 17, wobei das Bestimmen des gewichteten durchschnittlichen Rauschparameters das Bestimmen eines gewichteten durchschnittlichen strukturellen Ähnlichkeitsindexmaßes umfasst.
  20. Computerlesbares Medium oder computerlesbare Medien nach einem der Ansprüche 16 bis 19, wobei der zweite Frame der Frame unmittelbar nach dem ersten Frame ist.
  21. Computerlesbares Medium oder computerlesbare Medien nach einem der Ansprüche 16 bis 20, wobei der ROI-Gewichtungsparameter mindestens zehn Mal der Nicht-ROI-Gewichtungsparameter ist.
  22. Computerlesbares Medium oder computerlesbare Medien nach Anspruch 21, wobei der Nicht-ROI-Gewichtungsparameter eins ist.
  23. Rechenknoten zum Decodieren von Video, wobei der Rechenknoten umfasst: einen Videodecoder zum: Empfangen eines Video-Frames; Bestimmen einer Region-of-Interest des Video-Frames mit Verwendung eines auf maschinellem Lernen basierenden Algorithmus; und Verbessern der Qualität der bestimmten Region-of-Interest des Video-Frames mit Verwendung eines zweiten auf maschinellem Lernen basierenden Algorithmus.
  24. Rechenknoten nach Anspruch 23, wobei zum Empfangen des Video-Frames das Empfangen eines gewichteten durchschnittlichen Rauschparameters, der mit dem Frame assoziiert ist, umfasst, wobei Verbessern der Qualität der bestimmten Region-of-Interest das Verbessern der Qualität der bestimmten Region-of-Interest basierend auf dem gewichteten durchschnittlichen Rauschparameter, der mit dem Frame assoziiert ist, umfasst.
  25. Rechenknoten nach Anspruch 24, der weiter das Ausführen einer Inferenz auf dem dem Frame nach einer Verbesserung der Qualität durch den zweiten auf maschinellem Lernen basierten Algorithmus umfasst.
DE102021211047.9A 2020-12-23 2021-09-30 Technologien zur region-of-interest-videocodierung Pending DE102021211047A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/132,714 2020-12-23
US17/132,714 US20210152834A1 (en) 2020-12-23 2020-12-23 Technologies for region-of-interest video encoding

Publications (1)

Publication Number Publication Date
DE102021211047A1 true DE102021211047A1 (de) 2022-06-23

Family

ID=75909394

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021211047.9A Pending DE102021211047A1 (de) 2020-12-23 2021-09-30 Technologien zur region-of-interest-videocodierung

Country Status (3)

Country Link
US (1) US20210152834A1 (de)
CN (1) CN114666587A (de)
DE (1) DE102021211047A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295131B1 (en) * 2021-06-15 2022-04-05 Knoetik Solutions, Inc. Smoke and fire recognition, fire forecasting, and monitoring
WO2023235532A1 (en) * 2022-06-03 2023-12-07 Clearobject Corporation Edge device video analysis system
CN115396669A (zh) * 2022-08-22 2022-11-25 上海工程技术大学 一种基于兴趣区域增强的视频压缩方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768084B2 (en) * 2005-03-01 2014-07-01 Qualcomm Incorporated Region-of-interest coding in video telephony using RHO domain bit allocation
US8315466B2 (en) * 2006-12-22 2012-11-20 Qualcomm Incorporated Decoder-side region of interest video processing
US10375407B2 (en) * 2018-02-05 2019-08-06 Intel Corporation Adaptive thresholding for computer vision on low bitrate compressed video streams
US20220021887A1 (en) * 2020-07-14 2022-01-20 Wisconsin Alumni Research Foundation Apparatus for Bandwidth Efficient Video Communication Using Machine Learning Identified Objects Of Interest
US20220165054A1 (en) * 2020-10-13 2022-05-26 Google Llc Distributed sensor data processing using multiple classifiers on multiple devices

Also Published As

Publication number Publication date
US20210152834A1 (en) 2021-05-20
CN114666587A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
DE102020125219A1 (de) End-to-end -dienstqualität in edge-computing -umgebungen
DE102021209145A1 (de) Verfahren und vorrichtung zum koordinieren von edge-plattformen
DE102020131613A1 (de) Verfahren, system und produkt zum implementieren von deterministischem on-boarding und planen virtualisierter arbeitslasten für edge-computing.
DE102022203247A1 (de) Disintermedierte Attestierung in einem MEC-Service-MESH-Framework
DE112020004736T5 (de) Edge-computing-technologien für transportschichtüberlastregelung und point-of-presence-optimierungen auf grundlage erweiterter vorab-dienstgüte-benachrichtigungen
DE102019123244A1 (de) Verbesserungen der verfolgung von multi-access-edgecomputing (mec)-gebührenerfassung und -abrechnung
DE102019217367A1 (de) VERWALTUNG DER DIENSTQUALITÄT (QoS) IN EDGE-COMPUTING-UMGEBUNGEN
DE102020202398A1 (de) Edge-server-cpu mit dynamischer deterministischer skalierung
DE102021210705A1 (de) Intelligente datenweiterleitung in edge-netzen
DE102021209282A1 (de) Verfahren, einrichtungen und systeme zur gemeinsamen nutzung von rechenressourcen zwischen edge-rechenknoten unter verwendung eines overlay-managers
DE102021210882A1 (de) Erweitertes peer-to-peer (p2p) mit edge-vernetzung
DE112020007003T5 (de) Multi-funkzugangstechnologie-verkehrsverwaltung
DE102021207160A1 (de) Verfahren und einrichtung zur verwaltung der dienstgüte in bezug auf service-level-agreements in einer rechenvorrichtung
DE102021211047A1 (de) Technologien zur region-of-interest-videocodierung
DE112020003742T5 (de) Verfahren, systeme, erzeugnisse und vorrichtungen zur verbesserung von jobplanungseffizienz
DE112020007229T5 (de) Föderiertes mec-framework für kraftfahrzeugdienste
DE102022203249A1 (de) Mehrfachzugriff-edge-computing- (mec-) fahrzeug-zu-alles-(v2x-) interoperabilitätsunterstützung für mehrere v2x-nachrichtenbroker
DE102022208681A1 (de) Schichtübergreifende automatisierte fehlernachverfolgung und anomaliedetektion
DE112019003316T5 (de) Verteiltes berechnungsverfahren, vorrichtung und system
DE112020006555T5 (de) Rekonfigurierbare funksysteme mit funkschnittstellen-engines und virtuellen funkmaschinen
DE102022203111A1 (de) Auf netzwerkfluss basierende hardwarezuweisung
DE102021209043A1 (de) Methods and apparatus to select a location of execution of a computation
DE102022208684A1 (de) Verfahren und einrichtung für resilienz mithilfe digitaler zwillinge
US20210117697A1 (en) Edge automatic and adaptive processing activations
DE102022121227A1 (de) Dynamische slice-rekonfiguration während fafo(fault-attack-failure-outage)-ereignissen

Legal Events

Date Code Title Description
R083 Amendment of/additions to inventor(s)