DE102019130366A1 - Bildskalierung - Google Patents

Bildskalierung Download PDF

Info

Publication number
DE102019130366A1
DE102019130366A1 DE102019130366.4A DE102019130366A DE102019130366A1 DE 102019130366 A1 DE102019130366 A1 DE 102019130366A1 DE 102019130366 A DE102019130366 A DE 102019130366A DE 102019130366 A1 DE102019130366 A1 DE 102019130366A1
Authority
DE
Germany
Prior art keywords
image
input
video
hdmi
pixels
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
DE102019130366.4A
Other languages
English (en)
Inventor
Anand Venkitasubramani
Bhavana Muralikrishna
Shreeja Sugathan
Niall D. O'Connell
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.)
Analog Devices International ULC
Original Assignee
Analog Devices International ULC
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 Analog Devices International ULC filed Critical Analog Devices International ULC
Publication of DE102019130366A1 publication Critical patent/DE102019130366A1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43632Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • H04N21/43635HDMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0117Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0125Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level one of the standards being a high definition standard
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2352/00Parallel handling of streams of display data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/12Use of DVI or HDMI protocol in interfaces along the display data pipeline

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Television Systems (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

In einem Beispiel wird ein Videoprozessor offenbart, der Folgendes aufweist: einen Eingabepuffer zum Empfangen eines Eingangsbildes; eine Schneideschaltung zum Aufteilen des Eingangsbildes in mehrere N vertikale Scheiben; N parallele Eingangspuffer zur Entrasterung; N parallele Bildskalierer, wobei jeder Skalierer hardwaretechnisch dazu ausgebildet ist, eine der N vertikalen Scheiben gemäß einem Bildskalierungsalgorithmus in einer Rasterform zu skalieren; N parallele Ausgangspuffer zur Neurasterung; und einen Ausgangsmultiplexer zum Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.

Description

  • Technisches Gebiet der Offenbarung
  • Diese Offenbarung bezieht sich im Allgemeinen auf das Gebiet der Datenverarbeitung und insbesondere, jedoch nicht ausschließlich, auf ein System und ein Verfahren zur Videoverarbeitung.
  • Hintergrund
  • Moderne Videosysteme können über Schnittstellen wie die Hochauflösungs-Multimedia-Schnittstelle (HDMI), DisplayPort, den universellen seriellen Bus vom Typ C (USB-C) und die digitale Videoschnittstelle (DVI) als nicht einschränkendes Beispiel digitale Videosignale hoher Qualität empfangen und wiedergeben.
  • Figurenliste
  • Die vorliegende Offenbarung wird am besten aus der folgenden genauen Beschreibung in Zusammenschau mit den beigefügten Figuren verstanden. Es wird betont, dass gemäß der Standardpraxis in der Industrie verschiedene Merkmale nicht zwingend maßstabsgetreu gezeichnet sind und nur zu Veranschaulichungszwecken verwendet werden. Wenn eine Skala explizit oder implizit gezeigt ist, liefert sie nur ein veranschaulichendes Beispiel. In anderen Ausführungsformen können die Abmessungen der verschiedenen Merkmale zur Vereinfachung der Erklärung willkürlich vergrößert oder verkleinert sein.
    • 1a und 1b sind Darstellungen verschiedener Ausführungsformen eines Videosystems gemäß den Lehren der vorliegenden Beschreibung.
    • 2 ist eine Darstellung der vertikalen Bildaufteilung gemäß den Lehren der vorliegenden Beschreibung.
    • 3 ist eine Blockdiagrammdarstellung, wie eine Bildskalierung gemäß den Lehren der vorliegenden Beschreibung erfolgt.
    • 4 ist ein Blockdiagramm, das eine Skalierungsoperation gemäß den Lehren der vorliegenden Beschreibung darstellt.
    • 5 ist ein Blockdiagramm eines veranschaulichenden Skalierers gemäß den Lehren der vorliegenden Beschreibung.
    • 6 ist ein Blockdiagramm, das die Pipelinebildung gemäß den Lehren der vorliegenden Beschreibung darstellt.
    • 7 ist ein Ablaufdiagramm eines Verfahrens zum Hochskalieren von Video gemäß den Lehren der vorliegenden Beschreibung.
    • 8 ist ein Blockdiagramm eines HDMI-Systems gemäß den Lehren der vorliegenden Beschreibung.
    • 9a und 9b sind ein Blockdiagramm eines Ein-Chip-Systems gemäß den Lehren der vorliegenden Beschreibung.
  • Zusammenfassung
  • In einem Beispiel wird ein Videoprozessor offenbart, der Folgendes aufweist: einen Eingabepuffer zum Empfangen eines Eingangsbildes; eine Schneideschaltung (slicer circuit) zum Aufteilen des Eingangsbildes in mehrere N vertikale Scheiben (slices); N parallele Bildskalierer, wobei jeder Skalierer hardwaretechnisch dazu ausgebildet ist, eine der N vertikalen Scheiben gemäß einem Bildskalierungsalgorithmus zeilenweise zu skalieren; und einen Ausgangsmultiplexer zum Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.
  • Ausführungsformen der Offenbarung
  • Die folgende Offenbarung liefert viele verschiedene Ausführungsformen oder Beispiele zum Implementieren verschiedener Merkmale der vorliegenden Offenbarung. Spezifische Beispiele für Komponenten und Anordnungen werden im Folgenden beschrieben, um die vorliegende Offenbarung zu vereinfachen. Diese sind natürlich nur Beispiele und sollen nicht einschränkend sein. Ferner kann die vorliegende Offenbarung Bezugsziffern und/oder Buchstaben in den verschiedenen Beispielen oder in einigen Fällen in verschiedenen Figuren wiederholen. Diese Wiederholung dient dem Zweck der Einfachheit und Klarheit und schreibt an sich keine spezifische Beziehung zwischen den verschiedenen erörterten Ausführungsformen und/oder Konfigurationen vor. Unterschiedliche Ausführungsformen können unterschiedliche Vorteile haben und für keine der Ausführungsformen ist ein spezieller Vorteil zwingend erforderlich.
  • Viele zeitgenössische Anzeigesysteme übertreffen ihre Datenquellen in Bezug auf Anzeigeauflösung, Farbtiefe und Bildrate. Neuere Fernsehgeräte sind beispielsweise zu ultrahochauflösender 4K- und 8K-Anzeige (4K- und 8K-UHD-Anzeige) fähig. Diese Anzeigetechnologien sind in der Lage, die Grenzen des vom Menschen wahrnehmbaren Sehens zu testen. Oftmals werden diese Anzeigen jedoch von Anzeigenquellen der vorherigen Generation gesteuert, die die Anzeigefähigkeiten nicht voll ausnutzen können. Beispielsweise haben viele Verbraucher einen Blu-ray Disc-Spieler der ersten Generation. Die meisten gängigen Blu-ray Disc-Spieler zeigen Videos in hoher Auflösung (HD) (z. B. 720p) oder sogenanntem Full HD (1080p) an. Das „p“ in 720p und 1080p bezieht sich auf ein HD-Signalformat mit progressiver Abtastung (oder „ohne Zeilensprung“). 720p HD zeigt 1280 Pixel horizontal über den Bildschirm hinweg und 720 horizontale Pixel vertikal nach unten auf dem Bildschirm an, was 720 horizontale Zeilen mit einem Seitenverhältnis von 16 bis 9 ergibt. 1080p Full HD zeigt 1920 Pixel horizontal über den Bildschirm hinweg und 1080 horizontale Pixel vertikal nach unten auf dem Bildschirm an, was 1080 horizontale Zeilen mit einem Seitenverhältnis von 16 zu 9 ergibt. Im Vergleich zu den informellen, aber häufig verwendeten Bezeichnungen 720i und 1080i, bei denen sich das „i“ auf ein HD-Signalformat mit Zeilensprung bezieht, vermindern 720p und 1080p die Notwendigkeit, Bildflimmern zu verhindern, indem alle Zeilen anstelle von nur alternierenden Zeilen in einem Einzelbild übertragen werden.
  • Obwohl Blu-ray Disc-Spieler 720p HD und 1080p Full HD liefern können, können sie auch ältere digitale Video-Discs (DVDs) abspielen. Viele Anwender haben immer noch eine große Sammlung vorhandener DVDs, die sie nicht durch Blu-ray-Discs ersetzen möchten. DVDs sind mit einer maximalen Auflösung von 480p (720 × 480 Pixel) noch eingeschränkter.
  • Man vergleiche diese Auflösungen mit einem 4K-UHD-Fernseher, der eine Auflösung von 3840 × 2160 bietet, oder einem 8K-UHD-Fernseher, der eine Auflösung von 7680 × 4320 bietet.
  • Diese Auflösungen sind so hoch, dass eine standardmäßige Blu-ray-Disc nicht über die Datenkapazität zum Speichern eines 4K- oder 8K-Videos verfügt. Daher werden in der aktuellen Situation 4K und 8K im Allgemeinen als Video-Streaming-Technologien betrachtet. Moderne Verbraucher erwarten jedoch, dass Videos in Echtzeit gestreamt und auf ihren Fernsehgeräten mit wenig bis gar keinem Puffer abgespielt werden. 4K- und 8K-Videos können möglicherweise nicht erfolgreich gestreamt werden, wenn der Anwender nicht über eine sehr hochwertige Internetverbindung verfügt, z. B. einen Glasfaseranschluss. Verbraucher mit 4K- und 8K-UHD-fähigen Fernsehgeräten verfügen daher über eine hochleistungsfähige Anzeige, sind aber mit einer großen Anzahl von Videoquellen konfrontiert, die diese Anzeige nicht mit ihrer vollen Auflösung ansteuern können.
  • Viele vorhandene Fernsehgeräte haben die Fähigkeit, Videoströme von alten Vorrichtungen mit niedrigeren Auflösungen wie etwa 480p-DVDs oder 720p- und 1080p-Blu-ray-Disc-Spielern zu unterstützen. Die Verbraucher sind jedoch möglicherweise unzufrieden damit, körnige Videos mit niedriger Auflösung auf einem hochauflösenden Fernseher anzusehen, für den sie einen hohen Preis bezahlt haben.
  • Um den Verbrauchern mit solchen Fernsehgeräten ein erstklassiges Seherlebnis zu bieten, verfügen viele Fernsehgeräte nun über eine Videohochskalierungsfähigkeit. Beispielsweise empfangen diese Fernsehgeräte möglicherweise einen 1080p-Eingangsstrom und skalieren diesen Strom auf eine 4K-UHD-Auflösung hoch. Wenn die Auflösung aber auf 8K und mehr ansteigt, kann eine solche Hochskalierung die Fähigkeiten der Typen von Mikroprozessoren, Digitalsignalprozessoren (DSPs) oder der Hardware wie beispielsweise anwendungsspezifischen integrierten Schaltungen (ASICs), die zum Bereitstellen der Hochskalierung verwendet werden, überfordern.
  • Beispielsweise erfordert die Verarbeitung eines Videos mit 8K-UHD und 60 Bildern pro Sekunde die Verarbeitung von ungefähr 2,4 Gigapixeln pro Sekunde. Gängige DSPs, die für eine solche Verarbeitung verwendet werden, arbeiten jedoch bei ungefähr 700 Megapixeln pro Sekunde. Das Entwerfen noch größerer oder schnellerer DSPs oder noch größerer oder schnellerer Konvertierungshardware ist eine nichttriviale Aufgabe.
  • Die vorliegende Beschreibung offenbart ein System und ein Verfahren zum Bereitstellen einer Hochskalierung oder einer Herunterskalierung eines Videos in ein HD-Format durch Aufteilen des Videostroms in mehrere N vertikale Scheiben und paralleles Verarbeiten der N vertikalen Scheiben auf N parallelen Skalierer-Hardwareelementen oder DSPs. Herunterskalieren wird möglicherweise unterstützt, wenn der Inhalt in der Quelle eine hohe Auflösung (z. B. 8 K) aufweist und die Quelle keine Herunterskalierungsfunktion aufweist, die Anzeige jedoch nur eine niedrigere Auflösung (z. B. 1080p oder 4 K) unterstützt. In diesem Fall muss möglicherweise ein Herunterskalierer zwischen der Quelle und der Anzeige angeordnet werden.
  • In dieser Beschreibung werden Beispiele in Bezug auf einen Hochauflösungs-Multimedia-Schnittstellen-Empfänger (HDMI-Empfänger) erörtert, der Video in vier parallelen Skalierern auf 8K hochskaliert. All diese Beispiele sind als nicht einschränkende Beispiele zu verstehen. In anderen Ausführungsformen können andere Videostandards sowie andere Zwischenverbindungen verwendet werden. Beispielsweise könnte Video über ein digitales Übermittlungssystem wie beispielsweise das Internet oder über andere Schnittstellen wie beispielsweise den universellen seriellen Bus (USB), USB-C, Display-Port oder dergleichen übermittelt werden. Ferner sollte die Lehre des Hochskalierens von Video in dieser Beschreibung nicht als eine ausschließliche Funktion eines hierin geschaffenen Videosignalprozessors verstanden werden. Ein Videosignalprozessor kann viele Arten von Videosignalverarbeitung einschließlich anderer Dienste wie Farbraumkonvertierung, Zuschneiden, Zeilensprungentflechtung und Bildratenkonvertierung als veranschaulichendes und nicht einschränkendes Beispiel bieten.
  • Ausführungsformen der vorliegenden Beschreibung können eine ASIC oder ein Ein-Chip-System (SoC) mit den hierin gelehrten N parallelen Skalierern sowie andere Elemente wie Entrasterungspuffer, Neurasterungspuffer, HDMI-Controller, Controller für doppelte Datenrate (DDR-Controller), physische und logische Schnittstellen und andere geeignete Elemente umfassen. Die hierin diskutierten Skalierer können in einigen Beispielen als Blöcke geistigen Eigentums (IP-Blöcke) bereitgestellt sein. Ein IP-Block, der einen Skalierer aufweist, kann nur den Skalierer aufweisen oder Unterstützungselemente aufweisen, die speziell dazu ausgebildet sind, den Skalierer für die Verwendung in den Lehren der vorliegenden Beschreibung anzupassen. Zum Beispiel kann ein IP-Block nicht nur den Skalierer aufweisen, sondern auch Unterstützungselemente wie einen Pixelkonverter, einen Entrasterungspuffer, einen Neurasterungspuffer und/oder einen Ausgangsmultiplexer. In einigen Fällen können die N Skalierer monolithisch als parallele Skaliereinheit bereitgestellt sein. In diesem Fall kann der Skalierer als ein IP-Block, eine separate ASIC oder ein Teil einer integrierten Schaltung bereitgestellt sein. Obwohl in der vorliegenden Beschreibung maßgeschneiderte Schaltungen als ein Beispiel eines Skalierers verwendet werden, können darüber hinaus Skalierer der vorliegenden Beschreibung auch unter Verwendung von DSPs, Grafikverarbeitungseinheiten (GPUs), Zentralverarbeitungseinheiten (CPUs) oder anderen geeigneten Verarbeitungselementen gebaut werden.
  • Der parallele Skalierer der vorliegenden Beschreibung weist als nicht einschränkendes und veranschaulichendes Beispiel vier unabhängige Skalierer auf, die bei ungefähr 600 bis 700 MHz arbeiten. Diese vier unabhängigen Skalierer bieten zusammen eine Bildverarbeitungsleistung von insgesamt 2,4 Gigapixeln pro Sekunde und ermöglichen so die Hochskalierung von Videos einschließlich 480p, 720p, 1080p und 4K auf bis zu 8K in Echtzeit. Darüber hinaus kann ein System gemäß der vorliegenden Beschreibung in Zusammenarbeit mit einem kooperativen Zeilensprung-Entflechter auch andere Videoformate wie 480i, 720i und 1080i hochskalieren.
  • Eine veranschaulichende Ausführungsform des Skalierers der vorliegenden Beschreibung stellt vier parallele Skalierer bereit, von denen jeder im Wesentlichen den gleichen Bildskalierungsalgorithmus bietet. Der Bildskalierungsalgorithmus kann ein Polynominterpolationsalgorithmus sein, der eine Bildskalierung hoher Qualität liefert, indem nicht nur eine lineare Näherung zwischen zwei Punkten berechnet wird, sondern eine Kurve basierend auf vier Punkten von Eingangsdaten interpoliert wird. Jeder Punkt von Eingangsdaten kann ein einzelnes Pixel sein. Somit kann der Skalierer eine Zeile von Eingangspixeln hernehmen und diese Zeile in vier parallele Stücke unterteilen, wobei jedes Stück ungefähr 2000 Pixel enthält. Diese 2000-Pixel-Stücke werden dann nacheinander von den vier parallelen Skalierern verarbeitet und jeder Skalierer empfängt dann einen Block aus der nächsten Zeile, nachdem er seine interpolierten Pixel an einen FIFO-Puffer (reihenfolgetreuen Puffer, zuerst rein, zuerst raus) ausgegeben hat. Die ausgegebenen Bilder können miteinander gemultiplext, neugerastert und dann mit voller 8K-UHD-Auflösung an eine Videoanzeige ausgegeben werden.
  • Um sicherzustellen, dass die FIFO-Puffer für jeden Skalierer nicht leer werden, können die Bildskalierer in einer Pipeline angeordnet werden. Alle Scheiben-Skalierer arbeiten gleichzeitig parallel. Zu Beginn des Bildes beginnen sie mit Viertelzeilen-Versätzen, vorausgesetzt, die Eingabe erfolgt in einem Rasterformat. Diese Viertelversatzverzögerung dient dazu, die Entrasterungs- und Neurasterungs-Puffergrößen annähernder zu optimieren. Wenn die Eingabe hingegen als Datei in einem Dateisystem gespeichert wäre, könnten alle Scheiben-Skalierer zusammen am Anfang des Einzelbildes starten. Für den Echtzeitbetrieb ist die Neurasterungs-Puffergröße jedoch besser, wenn die Skalierer mit Viertelzeilen-Versätzen beginnen.
  • Wenn das Bild in vier vertikale Scheiben geschnitten und jede Scheibe von einem eigenen Skalierer unabhängig verarbeitet wird, besteht die Gefahr, dass das Bild als vier diskrete Bilder mit einer Linie zwischen den Scheiben angezeigt wird. Dies kann aus Sicht des Endanwenders als suboptimales Seherlebnis betrachtet werden. In vielen Fällen ist es vorzuziehen, ein kontinuierliches Bild bereitzustellen, das so aussieht, als wäre es ursprünglich als einzelnes 8K-UHD-Bild codiert. Um dies zu erreichen, kann jeder Skalierer als erste Eingabe für ein bestimmtes Quartil auf einer gegebenen Zeile ein oder mehrere vorhergehende Pixel aus dem vorhergehenden Quartil empfangen. Wenn beispielsweise eine bilineare Interpolation verwendet wird, würde der Skalierer 2 als erstes Eingabepixel das letzte Pixel von Quartil 1 empfangen. Somit wäre der Skalierer in der Lage, einen gewichteten Durchschnitt auf der Basis des Abstands eines neuen Pixels von den zwei umgebenden Pixeln zu interpolieren. Für ein besseres Anzeigeerlebnis kann anstelle der Nutzung einer bilinearen Interpolation eine Polynominterpolation wie etwa eine bikubische Interpolation verwendet werden. Eine bikubische Interpolation benötigt vier Pixel als Eingabe und berechnet daraus einen gewichteten Durchschnitt, anstatt einen einfachen linearen gewichteten Durchschnitt unter zwei Pixeln zu berechnen. Da eine bikubische Interpolation vier Eingangspixel erfordert, kann jedes Quartil die letzten zwei Pixel des vorherigen Quartiis als seine ersten zwei Pixel empfangen. In ähnlicher Weise kann jedes Quartil 2 Pixel aus dem nächsten Quartil empfangen, um die skalierten Ausgangspixel an dem Ende des Quartiis zu berechnen. Dies gibt dem Skalierer vier Pixel, mit denen er eine bikubische Interpolation berechnen kann. Wenn andere Interpolationsalgorithmen verwendet werden, kann eine andere Anzahl vorheriger Pixel aus dem vorherigen Quartil bereitgestellt werden, um für einen glatten Übergang zwischen vertikalen Scheiben zu sorgen.
  • Sobald die Skalierer eine vollständige Ausgangszeile erfolgreich berechnet haben, kann diese Ausgangszeile neugerastert und dann auf die Anzeige gebracht werden. Um eine befriedigendes Anwendererlebnis zu bieten, können die Skalierer so ausgebildet sein, dass sie ungefähr 60 Bilder pro Sekunde verarbeiten können, wodurch sichergestellt wird, dass die Anzeige mit den gewünschten 60 Bildern pro Sekunde angesteuert werden kann.
  • Ein System und ein Verfahren zum Bereitstellen einer Bildskalierung werden nun unter besonderer Bezugnahme auf die beigefügten Figuren beschrieben. Es ist zu beachten, dass über die Figuren hinweg bestimmte Bezugszeichen wiederholt werden können, um anzugeben, dass eine bestimmte Vorrichtung oder ein bestimmter Block über die Figuren hinweg gänzlich konsistent oder im Wesentlichen konsistent ist. Dies soll jedoch keine besondere Beziehung zwischen den verschiedenen offenbarten Ausführungsformen implizieren. In bestimmten Beispielen kann auf eine Gattung von Elementen mit einem bestimmten Bezugszeichen („Objekt 10“) Bezug genommen werden, während auf einzelne Arten oder Beispiele der Gattung mit einem mit Bindestrich versehenen Bezugszeichen („erstes spezifisches Objekt 10-1“ und „zweites spezifisches Objekt 10-2“) Bezug genommen werden kann.
  • 1a und 1b sind Darstellungen verschiedener Ausführungsformen eines Videosystems 100 gemäß den Lehren der vorliegenden Beschreibung.
  • In der in 1a dargestellten Ausführungsform liefert eine HDMI-Quelle 104 ein Signal. Die HDMI-Quelle 104 kann beispielsweise ein VHS-Spieler, ein DVD-Spieler, ein Blu-ray-Disc-Spieler oder ein digitales Medieninhaltsbereitstellungssystem wie etwa Online-Video oder in einem lokalen Speicher gespeichertes Video sein. In diesem Beispiel liefert die HDMI-Quelle 104 das Ausgangsvideo mit einer niedrigeren Auflösung wie 480p oder HD mit 720p oder 1080p. Die HDMI-Quelle 104 liefert ihr Ausgangsvideosignal an die HDMI-Senke 108.
  • Die HDMI-Senke 108 empfängt das Eingangsvideo mit seiner nativen Auflösung, beispielsweise 480p, 720p, 1080p oder einer anderen Auflösung. Die HDMI-Senke 108 ist jedoch dazu ausgebildet, sich kommunikationstechnisch mit einer Anzeige wie etwa dem Fernsehgerät 116 zu koppeln. Das Fernsehgerät 116 ist zu einer höheren Auflösung als der nativen Auflösung der HDMI-Quelle 104 fähig. Beispielsweise kann das Fernsehgerät 116 zu einer Auflösung wie 4K oder 8K-UHD fähig sein. Um einem Anwender oder Zuschauer des Fernsehgeräts 116 ein erstklassiges Videoerlebnis zu bieten, kann ein Videoprozessor 112 zwischen der HDMI-Senke 108 und dem Fernsehgerät 116 angeordnet sein. Der Videoprozessor 112 kann in der Lage sein, eine Ultra-HD-Ausgabe mit der vollen Auflösungskapazität des Fernsehgeräts 116 zu liefern. Insbesondere kann der HDMI-Prozessor 112 dazu ausgebildet sein, ein HDMI-Signal mit niedrigerer Auflösung von der HDMI-Senke 108 zu empfangen, dieses Signal auf eine höhere Auflösung wie 4K oder 8K-UHD hochzuskalieren und das hochskalierte Bild zu dem Fernsehgerät 116 zu übertragen. Das Fernsehgerät 116 empfängt dann die UHD-HDMI-Ausgabe von dem Videoprozessor 112 und zeigt das Video auf seinem Bildschirm an.
  • Es ist zu beachten, dass das Videosystem 100-1 nicht notwendigerweise die physische Beziehung zwischen den verschiedenen Elementen spezifiziert. In dieser Ausführungsform sind die HDMI-Quelle 104, die HDMI-Senke 108, der HDMI-Prozessor 112 und das Fernsehgerät 116 in einer Blockdiagrammkonfiguration gezeigt, die separate logische Funktionen darstellt. Es ist jedoch zu beachten, dass diese Elemente in jeder geeigneten Konfiguration angeordnet sein können. Beispielsweise könnten die HDMI-Quelle 104, die HDMI-Senke 108, der HDMI-Prozessor 112 und das Fernsehgerät 116 alle eine physisch verpackte Einheit sein. Insbesondere könnte das Fernsehgerät 116 die Fähigkeit haben, digitales Video von einer HDMI-Quelle 104 zu empfangen, das Video an eine HDMI-Senke 108 weiterzuleiten, das Video in dem Videoprozessor 112 zu verarbeiten und das Video auf einem Bildschirm des Fernsehgeräts 116 anzuzeigen. Alternativ könnte die HDMI-Quelle 104 eine vollständig separate Vorrichtung sein, beispielsweise ein Videoabspieler oder eine Netzverbindung, und die HDMI-Senke 108 könnte auch als separater HDMI-Empfänger für das System bereitgestellt sein. Der Videoprozessor 112 könnte als separate logische Vorrichtung oder als eigenständiges Beistellgerät, die/das eine HDMI-Senke 108 für die Videohochskalierungsfunktionalität bereitstellt, ausgeführt sein.
  • Der Videoprozessor 112 könnte dann sein hochskaliertes Ausgangssignal an eine UHD-fähige Anzeige wie etwa das Fernsehgerät 116 liefern. Dies zeigt nur zwei von vielen möglichen Ausführungsformen und im Allgemeinen könnte jede logische Gruppierung oder physische Konfiguration und Anordnung verwendet werden.
  • 1b ist ein Blockdiagramm des Videosystems 100-2, in dem bestimmte Elemente in einem Ein-Chip-System (SoC) 150 angeordnet sind. Das SoC 150 kann ein monolithischer Herstellungsgegenstand sein, der auf einem Siliziumsubstrat oder einem anderen Halbleitersubstrat basiert, wobei logische Elemente sowie elektrische und elektronische Elementen darin über einen Herstellungsprozess wie die Siliziumwaferherstellung bereitgestellt sind. In dieser Ausführungsform kann der Videosignalprozessor 124 analog zu dem HDMI-Prozessor 112 von 1a sein. Der Serialisierer/Entserialisierer-Empfänger (SERDES-Empfänger) 120 kann analog zu der HDMI-Senke 108 von 1a sein. Der SERDES-Sender 128 kann als Teil des Videoprozessors 112 von 1a oder analog dazu betrachtet werden.
  • In dieser Ausführungsform ist der SoC 150 kommunikationstechnisch mit einem dynamischen Direktzugriffsspeicher (DRAM) 132 gekoppelt. Der DRAM 132 stellt einen Betriebsspeicher für den SoC 150 bereit. Der SERDES-Empfänger 120 kann eine beliebige geeignete Art von SERDES sein und Signale in einem oder mehreren Formaten einschließlich beispielsweise HDMI, Direktmedienschnittstelle (DMI), USB-C, Ethernet (mit eingebettetem Video in Ethernet-Paketen) oder anderen geeigneten Videoübertragungsmechanismen empfangen. Der SERDES-Empfänger 120 liefert sein Videosignal an den Videosignalprozessor 124.
  • Der Videosignalprozessor 124 kann eine beliebige Anzahl von Videosignalverarbeitungsfunktionen für sein Eingangsvideo bieten. Diese können in einem veranschaulichenden und nichteinschränkenden Beispiel Farbraumkonvertierung (oder „Gamut“-Konvertierung, bei der die Anzahl der angezeigten Farben erhöht oder verringert werden kann), Zuschneiden von Bildern (z. B. von 16×9 auf 4×3 oder anderes Zuschneiden), Entflechten von Videos mit Zeilensprung, Skalieren (einschließlich Hochskalieren, z. B. von einem Format wie 480p, 480i, 720p, 1080p oder dergleichen auf 4K oder 8K-UHD) und Bildratenkonvertierung (z. B. Interpolieren und Hinzufügen oder Entfernen von Einzelbildern zum Konvertieren zwischen Formaten wie 24 Einzelbilder pro Sekunde und 60 Einzelbilder pro Sekunde.
  • Es ist zu beachten, dass die verschiedenen Funktionen des Videosignalprozessors 124 von verschiedenen zugeordneten oder kooperativen logischen Blöcken ausgeführt werden können. In einigen Fällen können diese Funktionen in eine Pipeline eingefügt werden, so dass beispielsweise ein Bild zugeschnitten oder entflechtet wird, bevor eine Skalierung durchgeführt wird. In einigen Ausführungsformen können die verschiedenen Elemente des Videosignalprozessors 124 durch einen IP-Block bereitgestellt werden, der als eine „Black Box“ mit definierten Eingaben, definierten Ausgaben und einer definierten Verarbeitungsfunktion, die an den Eingaben ausgeführt wird, um die Ausgaben zu erzeugen, fungieren kann. Mit solchen IP-Blöcken können Systementwickler diese Funktionen vorteilhafterweise als eigenständige Einheiten verkaufen.
  • Sobald der Videosignalprozessor 124 das Konvertieren und Verarbeiten seines Videos beendet hat, liefert er das Ausgangsvideo an den SERDES-Sender 128, der das Ausgangssignal an eine Anzeige wie die UHD-fähige Anzeige 116 von 1a, einen Computermonitor oder eine kommerzielle Anzeige (z. B. ein Jumbotron- oder eine große Konferenzraumanzeige) oder eine andere Anzeigetechnologie ausgibt.
  • 2 ist eine Darstellung der vertikalen Bildaufteilung gemäß den Lehren der vorliegenden Beschreibung.
  • 2 zeigt ein Originaleinzelbild 204, das ein aus einem Videostrom extrahiertes Einzelbild sein kann. Beispielsweise kann das Originaleinzelbild 204 ein einzelnes Videobild sein, das auf einem Bildschirm angezeigt wird, beispielsweise für 1/24 oder 1/60 Sekunde. Es ist zu beachten, dass HDMI Videokomprimierung verwendet, z. B. Anzeigestromkomprimierung (DSC). Da HDMI DSC verwendet und andere Videoformate Komprimierung bieten, sind Einzelbilder anfangs möglicherweise nicht als monolithische Bilder verfügbar. Vielmehr verwenden Komprimierungstechnologien häufig ein Delta zwischen dem vorherigen Einzelbild und dem aktuellen Einzelbild und ändern nur die Pixel, die sich zwischen den Einzelbildern unterscheiden. Einige Ausführungsformen der vorliegenden Beschreibung erzielen jedoch Vorteile, indem sie das Video in einem unkomprimierten Bild-für-Bild-Format bearbeiten. Um das Originaleinzelbild 204 aus dem Videostrom zu erhalten, kann daher eine DSC-Funktion erforderlich sein, um das Vollbild aus den Quelldaten aufzubauen. Sobald das Einzelbild 204 richtig aufgebaut ist, kann es gemäß den Lehren der vorliegenden Beschreibung verarbeitet werden.
  • Als veranschaulichendes Beispiel kann ein Skalierer verwendet werden, um das Originaleinzelbild 204 auf der Grundlage einer 7680x4320-Pixel-Bitkarte mit 48-Bit-Farbtiefe auf eine 8K-Auflösung hochzuskalieren. Es ist zu beachten, dass hier 8K-Video mit 48-Bit-Farbtiefe als nicht einschränkendes Beispiel angegeben wird und andere Videoauflösungen verwendet werden können. In einigen Ausführungsformen kann auch ein Verfahren zum Konvertieren von einer niedrigeren Farbtiefe wie beispielsweise einer 24-Bit-Farbtiefe durch Erzeugen von Zufallsbits auf der LSB-Seite jeder Farbkomponente in einem Pixel durch einen Prozess, der normalerweise als Up-Dithering bezeichnet wird, bereitgestellt werden.
  • Es ist zu beachten, dass Dithering und Hochskalierung getrennte Prozesse sein können oder zusammen durchgeführt werden können. Die Hochskalierung kann die Form einer linearen Interpolation annehmen, bei der ein Punkt zwischen zwei anderen Punkten interpoliert wird, wobei ein Pixel zwischen zwei anderen Pixeln interpoliert wird und dem neuen Pixel eine Farbe gegeben wird, die auf einem linearen gewichteten Durchschnitt der Farben der zwei nächsten Pixel basiert. Andere Ausführungsformen können kompliziertere Algorithmen verwenden, um eine bessere Interpolation und somit eine bessere Bildskalierung bereitzustellen. Beispielsweise könnte ein Skalierer einen Interpolationsalgorithmus verwenden, bei dem das neu abgetastete Pixel aus einer Anzahl benachbarter Pixel interpoliert wird, indem diese mit einer geeigneten Impulsantwort gewichtet werden, die von der Art des zur Skalierung verwendeten Kernels bestimmt wird. Beispielsweise werden bei einem Interpolationsverfahren wie der bikubischen Interpolation vier Pixel verwendet, um einen Wert des neuen Pixels zu interpolieren. Der neue Wert wird aus zwei Pixeln in jeder Dimension horizontal und vertikal interpoliert (d. h. zwei Pixeln horizontal auf jeder Seite des neuen Pixels sowie vertikal zwei darüber und zwei darunter). Diese Art der Interpolation ergibt sowohl eine bessere Position als auch eine bessere Farbe für das neue Pixel.
  • An einem gegebenen Prozessknoten (wie beispielsweise 28 nm) erreichen vorhandene Skalierer jedoch maximal ungefähr 650 bis 700 MHz, wodurch 650 bis 700 Megaabtastungen pro Sekunde zum Interpolieren eines neuen Bildes geliefert werden. Dies kann für die Interpolation von beispielsweise 1080p Full HD auf 4K UHD ausreichend sein. 700 Megaabtastungen pro Sekunde reichen jedoch nicht zum Interpolieren aus, wenn die Eingangs- oder Ausgangsrate des Skalierers mehr als 4K bei 60 Hz beträgt, z. B. 8K bei 60 Hz. Um eine sehr hohe Auflösung wie 8K-UHD-Hochskalierung zu bieten, ist möglicherweise zusätzliche Verarbeitungsleistung erforderlich.
  • Da es nicht trivial ist, einen größeren und schnelleren Skalierer-IP-Block zu entwerfen, schneidet die vorliegende Beschreibung das Originaleinzelbild 204 vertikal in das geschnittene Einzelbild 212. Das geschnittene Einzelbild 212 enthält eine Anzahl von vertikalen Scheiben 208, nämlich Scheibe 208-1, Scheibe 208-2, Scheibe 208-3 und Scheibe 208-4. Bei Verwendung der 8K-Auflösung als Beispiel weist das geschnittene Einzelbild 206 4320 Zeilen auf, wobei jede Zeile in Quartile mit etwas weniger als 2000 Pixeln unterteilt ist. Jedes Quartil oder jede Scheibe 208 kann einem dedizierten Skalierer in einer Parallel-Skaliererarchitektur zugewiesen werden, so dass beispielsweise Scheibe 208- 1 einem ersten Skalierer zugewiesen wird, Scheibe 208-2 einem zweiten Skalierer zugewiesen wird, Scheibe 208-3 einem dritten Skalierer zugewiesen wird und Scheibe 208-4 einem vierten Skalierer zugewiesen wird. Diese Skalierer können Pixel zeilenweise interpolieren, wie es durch die Zeile 212 dargestellt ist, die 7680 Pixel enthält. Diese Zeile ist in vier Quartile oder Scheiben als Scheibe 208-1, Scheibe 208-2, Scheibe 208-3 und Scheibe 208-4 unterteilt. Wenn ein erster Skalierer Pixel für die Scheibe 208-1 interpoliert, kann er bei jeder Operation ein Interpolationsverfahren verwenden, um ein neues Pixel aus vier Eingangspixeln in jeder Dimension (d. h. vertikal und horizontal) zu interpolieren. Dieses Ausgangspixel wird dann als neues Pixel zwischen den beiden vorhergehenden und den beiden folgenden Pixeln ausgegeben. Der Skalierer inkrementiert dann um ein Pixel, nimmt eine neue Menge von Pixeln her und interpoliert ein oder mehrere neue Pixel in der Mitte dieser vier Pixel.
  • Es ist jedoch zu beachten, dass dann, wenn die Scheiben 208 als vollständig unabhängige Einheiten behandelt werden, die Ausgabe wie vier verwandte, aber verschiedene Bilder mit sichtbaren Linien zwischen den vier Scheiben aussieht. Daher empfangen die Scheiben 208-2, 208-3 und 208-4 jeweils als ihre ersten drei Pixel die letzten drei Pixel der vorherigen Scheibe, was es den an diesen drei Scheiben arbeitenden Skalierern ermöglicht, die Startgrenzpixel zwischen den Scheiben zu interpolieren. In ähnlicher Weise empfangen die Scheiben 208-1, 208-2 und 208-3 jeweils die ersten drei Pixel der nächsten Scheibe als ihre letzten drei Pixel, wodurch die Skalierer, die an diesen drei Scheiben arbeiten, die Endgrenzpixel zwischen den Scheiben interpolieren können. Der horizontale Versatzwert kann zu Beginn jeder Scheibe mit Ausnahme des ersten Scheibe moduliert werden.
  • Dies stellt sicher, dass dann, wenn das geschnittene Einzelbild 206 auf 8K hochskaliert wird, das Ausgangsvideo wie ein einzelnes nahtloses Bild ohne Linien aussieht. Somit werden, wie es in Zeile 212 dargestellt ist, die letzten drei Pixel 220 der Scheibe 208-1 einem zweiten Skalierer als die ersten drei Pixel der Scheibe 208-2 bereitgestellt. Somit haben die Scheiben 208-1 und 208-4 1923 Pixel, während die Scheiben 208-2 und 208-3 1926 Pixel haben. Diese Verwendung der letzten und ersten Pixel der vorhergehenden und der nachfolgenden Scheibe trägt dazu bei, eine gleichmäßige Skalierung über vertikale Scheibengrenzen hinweg zu gewährleisten.
  • 3 ist eine Blockdiagrammdarstellung davon, wie eine Bildskalierung gemäß den Lehren der vorliegenden Beschreibung erfolgt.
  • Beginnend mit dem Eingangsbild 304 wird das Bild in vier vertikale Scheiben 308-1, 308-2, 308-3 und 308-4 geschnitten. Jede Scheibe 308 repräsentiert ungefähr ein Viertel des Eingangsbildes 304, obwohl, wie es in der vorherigen Figur dargestellt ist, die Scheiben 308-2, 308-3 und 308-4 ein oder mehrere Pixel aus dem vorherigen Bild enthalten können (z. B. ein vorheriges Pixel, wenn eine lineare Interpolation verwendet wird, oder drei vorherige Pixel, wenn eine Interpolation höherer Ordnung (z. B. bikubisch) verwendet wird).
  • Vier unabhängige Skalierer skalieren dann die Scheiben 308 auf hochskalierte Scheiben 312 hoch. Die Scheibe 308-1 wird nämlich auf die Scheibe 312-1 hochskaliert. Die Scheibe 308-2 wird auf die Scheibe 312-2 hochskaliert. Die Scheibe 308-3 wird auf die Scheibe 312-3 hochskaliert. Die Scheibe 308-4 wird auf die Scheibe 312-4 hochskaliert. In dieser Beschreibung werden lineare Interpolation und Interpolation höherer Ordnung als Beispiele für Bildskalierungstechniken verwendet, die eingesetzt werden können. Es ist jedoch zu beachten, dass viele Bildskalierungsalgorithmen bekannt sind und die Lehren der vorliegenden Beschreibung nicht zwingend ein bestimmtes Bildskalierungsverfahren erfordern. Vielmehr sind die hierin enthaltenen Lehren mit jedem Bildskalierungsalgorithmus kompatibel.
  • Die skalierten Scheiben 312 werden dann durch horizontales Rekombinieren der verschiedenen Scheiben 312 und durch Multiplexen des Ergebnisses zu einem hochskalierten Bild 316 miteinander gemultiplext. Beispielsweise kann das Originalbild 304 ein 1080p-Full-HD-Bild sein, während das hochskalierte Bild 316 ein 4K- oder 8K- UHD-Bild sein kann.
  • 4 ist ein Blockdiagramm, das eine Skalierungsoperation gemäß den Lehren der vorliegenden Beschreibung darstellt.
  • In der Darstellung von 4 soll eine Eingabe 404 hochskaliert werden. Zur Erleichterung der Bezugnahme werden Pixel innerhalb der Eingabe 404 als Pixel A, E, I, M und Q bezeichnet. Zur Veranschaulichung müssen die Pixel möglicherweise horizontal um einen Faktor vier hochskaliert werden. Bei der Konvertierung zwischen 1080p und 8K-UHD müssen beispielsweise drei zusätzliche horizontale Pixel aus jedem Quellpixel interpoliert werden. Es mag kontraintuitiv erscheinen, dass der Übergang von 1080p auf 8K eine Vervierfachung bedeutet, aber dies ist tatsächlich der Fall. Bei 1080p bezieht sich die Zahl 1080 auf die Anzahl vertikaler Zeilen in einer Auflösung von 1920x1080, während sich in 8K die Zahl 8K auf die Anzahl horizontaler Pixel pro Zeile in einer Auflösung von 7680x4320 bezieht. Somit ist 8K in jeder Dimension ungefähr viermal größer als 1080p und enthält ungefähr 16mal mehr Gesamtpixel.
  • Somit soll das Pixel A der Eingabe 404 in der Ausgabe 408 zu den Pixeln ABCD interpoliert werden. Das Pixel E der Eingabe 404 soll in der Ausgabe 408 zu den Pixeln EFGH interpoliert werden. Das Pixel I der Eingabe 404 soll in der Ausgabe 408 zu den Pixeln IJKL interpoliert werden. Das Pixel M der Eingabe 404 soll in der Ausgabe 408 zu den Pixeln MNOP interpoliert werden.
  • Wie bereits erwähnt erfordert das Interpolieren auf eine Auflösung von 8K ungefähr 2,4 Megapixel pro Sekunde Verarbeitungsleistung. Da vorhandene Skalierer aufgrund von Implementierungsbeschränkungen wie verfügbarem MIPS in einem eingebetteten System oder maximaler Geschwindigkeit an einem bestimmten Prozessknoten häufig auf eine Kapazität von 700 Megapixel pro Sekunde beschränkt sind, können diese Skalierer möglicherweise unzureichend sein, um 1080p in Echtzeit auf 8K zu interpolieren. Somit werden in diesem Beispiel vier unabhängige Skalierer verwendet, um die vier Quartile der Eingabe 404 zu interpolieren. Insbesondere interpoliert ein erster Skalierer drei zusätzliche Pixel ab Pixel A, ein zweiter Skalierer interpoliert drei zusätzliche Pixel ab Pixel E, ein dritter Skalierer interpoliert drei zusätzliche Pixel ab Pixel I und ein vierter Skalierer interpoliert drei zusätzliche Pixel ab Pixel M. Wie es in dem Blockdiagramm dargestellt ist, wird die Interpolation in Echtzeit durchgeführt. Jeder Scheiben-Skalierer arbeitet mit einer vertikalen Scheibe, deren Zeilenbreite 1/N der Eingangszeilenbreite entspricht, und skaliert die Zeile mit einer langsameren Zeitdauer, die einer Zeilenzeit der tatsächlichen Eingabe entspricht. Dies ist anders als bei mehreren parallelen Skalierungsoperationen, die A, B, C und D zum Zeitpunkt des Eintreffens von E berechnet haben.
  • Um sicherzustellen, dass die Ausgangspuffer nicht leer werden, können die Skalierer wie dargestellt in pipelineartig arbeiten. Beispielsweise interpoliert der Skalierer 412-1 zuerst die Pixel ABCD und schreibt diese in einen Ausgangspuffer. Während der Skalierer 412-1 an demselben Quartil der nächsten Zeile arbeitet, interpoliert der Skalierer 412-2 die Pixel EFGH und schreibt diese in seinen Ausgangspuffer.
  • Während der Skalierer 412-2 an einem zweiten Quartil einer weiteren Zeile arbeitet, interpoliert der Skalierer 412-3 die Pixel IJKL und schreibt diese in seinen Ausgangspuffer. Während der Skalierer 412-3 an dem dritten Quartil einer anderen Zeile arbeitet, interpoliert der Skalierer 412-4 die Pixel MNOP und schreibt diese in seinen Ausgangspuffer. Sobald die Skalierer die vollständige interpolierte Zeile in ihre Ausgangspuffer geschrieben haben, können die vier Quartile miteinander gemultiplext und in einen Ausgangspuffer geschrieben werden, um diese Zeile der Ausgabe auf dem skalierten Bild zu zeichnen.
  • In Fällen, in denen eine lineare Interpolation verwendet wird, kann jedes Pixel als einfacher gewichteter Durchschnitt seiner zwei nächsten Punkte in jeder Dimension (horizontal und vertikal) interpoliert werden (wobei basierend auf der Nähe zu einem Punkt mehr oder weniger stark gewichtet wird). Wenn eine bikubische Interpolation verwendet wird, kann das Pixel aus jeweils zwei Punkten oberhalb und unterhalb und jeweils zwei Punkten links und rechts interpoliert werden, wodurch eine kubische Interpolation in jeder Dimension geliefert wird.
  • 5 ist ein Blockdiagramm eines beispielhaften Skalierers gemäß den Lehren der vorliegenden Beschreibung.
  • Wie zuvor diskutiert weist der Skalierer 500 vier unabhängige Skalierer auf, nämlich S1 512-1 bis S4 512-4. Obwohl diese Skalierer unabhängig voneinander arbeiten, ist der parallele Skalierer 500 dazu ausgebildet, diese Skalierer zu betreiben, um ein einzelnes skaliertes Ausgangsbild zu liefern.
  • Der parallele Skalierer 500 empfängt eine Videoeingabe 502. Die Videoeingabe 502 wird wie zuvor erläutert in vier vertikale Scheiben aufgeteilt. Insbesondere hat eine erste Scheibe 1923 Pixel (mit 3 Pixeln vom Beginn der zweiten Scheibe), eine zweite Scheibe 1926 Pixel (einschließlich der letzten drei Pixel aus der ersten Scheibe und der ersten drei Pixel aus der dritten Scheibe), eine dritte Scheibe hat 1926 Pixel (einschließlich der letzten drei Pixel aus der zweiten Scheibe und der ersten drei Pixel aus der vierten Scheibe) und eine vierte Scheibe hat 1923 Pixel (einschließlich der letzten drei Pixel aus der dritten Scheibe).
  • Ein Zweck von Entrasterungspuffern 504 besteht darin, die Eingangspixel zu verlangsamen, so dass der Scheiben-Skalierer mit der langsameren Rate, die seiner maximalen Fähigkeit entspricht, arbeiten kann. Beispielsweise kann jeder Scheiben-Skalierer in einer Zeilenzeit aus 480 Eingangspixeln nur 1920 skalierte Pixel erzeugen. Für eine 8K-Ausgabe müssen jedoch 7680 Pixel in einer Zeilenzeit erzeugt werden, wofür 1920 Eingabepixel in einer Zeilenzeit verarbeitet werden müssen. Da jeder Scheiben-Skalierer nur 480 Eingangspixel in einer Zeilenzeit verarbeiten kann, werden die 1920 Eingangspixel in einer Zeile auf eine Rate von 480 Eingangspixeln verlangsamt. Die Eingaberate in den Entrasterungspuffer ist die tatsächliche Eingaberate (1920 Pixel in einer Zeilenzeit) und die Ausgabe dieses Puffers hat eine ein Viertel der Geschwindigkeit (z. B. 480 Eingangspixel pro Zeilenzeit).
  • Die erste Scheibe wird an den Entrasterungspuffer 504-1 geliefert. Die zweite Scheibe wird an den Entrasterungspuffer 504-2 geliefert. Die dritte Scheibe wird an den Entrasterungspuffer 504-3 geliefert. Die vierte Scheibe wird an den Entrasterungspuffer 504-4 geliefert. Entrasterungspuffer 504 nehmen die gerasterten Eingaben her und erzeugen eine Ausgabe mit einer Rate, die gleich der Zeilenrate des Bildes ist.
  • Der Entrasterungspuffer 504-1 liefert seine Zeilen an den Konvertierer 508-1, der Entrasterungspuffer 504-2 liefert seine Ausgabe an den Konvertierer 508-2, der Entrasterungspuffer 504-3 liefert seine Ausgabe an den Konvertierer 508-3 und der Entrasterungspuffer 504-4 liefert seine Ausgabe an den Konvertierer 508-4.
  • Vier-Pixel-zu-ein-Pixel-Konvertierer 508-1 sammeln die vier Pixel, die zum Interpolieren zu einem Pixel verwendet werden sollen. Da das System vier Pixel in einem Taktzyklus transportiert und behandelt (z. B. getrieben durch die Taktfrequenz von 600 bis 700 MHz mit der Anforderung, 2400 Megapixel pro Sekunde zu konvertieren), kann es erforderlich sein, vier Pixel in ein Pixel zu konvertieren, das jeder Scheiben-Skalierer an einem Pixel arbeitet, als wäre er ein Einzelpixelverarbeitungs-Skalierer. Die Pixelkonvertierer 508 liefern ihre Ausgabe (z. B. jeweils ein einzelnes Pixel) an die Skalierer. Insbesondere liefert der Konvertierer 508-1 seine Ausgabe an den Skalierer S1 512-1, der Konvertierer 508-2 liefert seine Ausgabe an den Skalierer S2 512-2, der Konvertierer 508-3 liefert seine Ausgabe an den Skalierer S3 512-3 und der Konvertierer 508-4 liefert seine Ausgabe an den Skalierer S4 512-4.
  • Die Skalierer 512 führen die rechenintensivste Operation des parallelen Skalierers 500 durch. In dem veranschaulichenden Beispiel nehmen die Skalierer 512 die vier Pixel in jeder Dimension, die durch die Entrasterungspuffer geliefert werden, und interpolieren aus den Eingangspixeln ein oder mehrere interpolierte Pixel in der Mitte dieser Eingangspixel. Da die Skalierer 512 dedizierte Hardware sein können (wie in einer ASIC oder einem SoC), können sie dazu ausgelegt sein, die Interpolationsoperation in einem einzigen Taktzyklus auszuführen. Somit liefert ein mit 700 MHz arbeitender Skalierer 512 700 Millionen Abtastungen pro Sekunde Interpolation. Es ist zu beachten, dass die Anzahl der verwendeten Pixel vom verwendeten Skalierer-Kernel abhängt. Beispielsweise werden zwei Eingabepixel für die bilineare Interpolation und vier Pixel für die bikubische Interpolation verwendet und eine andere Anzahl von Pixeln kann für andere Modelle verwendet werden.
  • Die Skalierer 512 liefern ihre Ausgabe an die Neurasterungspuffer 516. Der Skalierer S1 512-1 liefert seine Ausgabe an den Neurasterungspuffer 516-1, der Skalierer S2 512-2 liefert seine Ausgabe an den Neurasterungspuffer 516-2, der Skalierer S3 512-3 liefert seine Ausgabe an den Neurasterungspuffer 516-3 und der Skalierer S4 512-4 liefert seine Ausgabe an den Neurasterungspuffer 516-4.
  • Die Neurasterungspuffer 516 liefern dann ihre neugerasterten Ausgaben an einen Ausgangsmultiplexer 520, der die vier vertikalen Scheiben aus den vier Quartilen des Bildes zu einer einzigen Ausgangszeile des Bildes kombiniert. Der Ausgangsmultiplexer 520 liefert dann diese Zeile als Videoausgabe 524.
  • 6 ist ein Blockdiagramm, das die Pipelinebildung gemäß den Lehren der vorliegenden Beschreibung darstellt. Wie zuvor erläutert kann eine Pipelinebildung verwendet werden, um sicherzustellen, dass die Ausgangspuffer nicht leer bleiben, um Pufferunterläufe zu vermeiden.
  • Wie es in 6 dargestellt ist, kann eine Eingangszeile in vier Quartile unterteilt werden. Diese werden als L1Q1 für das erste Quartil der Zeile 1, L1Q2 für das zweite Quartil der Zeile 1, L1Q3 für das dritte Quartil der Zeile 1 und L1Q4 für das vierte Quartil der Zeile 1 bezeichnet. Jedes Quartil kann einem bestimmten Skalierer zugeordnet werden, wie beispielsweise dem Skalierer 512 von 5. Beispielsweise könnte der Skalierer S1 512-1 Q1, der Skalierer S2 512-2 Q2, der Skalierer S3 512-3 Q3 und der Skalierer S4 512-4 Q4 zugewiesen werden. Somit arbeitet jeder Skalierer konsequent an dem gleichen Quartil seiner Eingangszeile. Um die Pipelinebildung bereitzustellen, arbeiten die Scheiben-Skalierer an derselben Eingangszeile, arbeiten jedoch auf zeitlich verteilte Weise. Wie es in 6 gezeigt ist, arbeitet S1 vollständig während der Zeile 1; S2 arbeitet 3/4 seiner Zeit an der aktuellen Zeile (z. B. für Zeile 1) und 1/4 seiner Zeit am Beginn der nächsten Zeile (z. B. für Zeile 2); S3 arbeitet die Hälfte seiner Zeit an der aktuellen Zeile (z. B. für Zeile 1) und die Hälfte seiner Zeit am Beginn der nächsten Zeile (z. B. für Zeile 2); S4 arbeitet 1/4 seiner Zeit an der aktuellen Zeile (z. B. für Zeile 1) und 3/4 seiner Zeit am Anfang der nächsten Zeile (z. B. für Zeile 2).
  • Unter der Annahme, dass der Skalierer mit der ersten Zeile des ersten Bildes in einem Videostrom beginnt, wird L1Q1 zum Zeit= t0 mit 1/4 Pixelrate skaliert. Dies bedeutet, dass der erste Skalierer 1/4 der Pixel von L1 empfängt und mit ungefähr einem Viertel der gewünschten Pixelrate arbeitet. Zum Hochskalieren auf 8K sind beispielsweise ungefähr 2,4 Gigaabtastungen pro Sekunde erforderlich, während jeder Skalierer mit ungefähr 600 bis 700 Megaabtastungen pro Sekunde arbeiten kann. Zu diesem Zeitpunkt ist der Re-Neurasterungspuffer für den Skalierer S1 512-1 3/16 Zeilen tief.
  • Der Skalierer S1 beginnt an L1Q1 zu arbeiten und arbeitet zwischen der Zeit = t0 und der Zeit = t3 an L1Q1. Zu allen Zeiten schreibt der Skalierer S1 512-1 seine Ausgabe in die skalierte L1Q1-Ausgabe.
  • Zur Zeit = t1 beginnt der Skalierer S2 512-2 mit der Arbeit an L1Q2. Wie bei L1Q1 wird L1Q2 mit 1/4 Pixelrate skaliert und der Neurasterungspuffer für den Skalierer S2 512-2 ist 3/16 Zeilen tief.
  • Zur Zeit = t2 beginnt der Skalierer S3 512-3 mit der Skalierung von L1Q3. Wie bei L1Q1 und L1Q2 wird L1Q3 mit 1/4 Pixelrate skaliert und der Neurasterungspuffer für den Skalierer S3 512-3 ist 3/16 Zeilen tief.
  • Zur Zeit = t4 hat der Skalierer S1 512-1 seine Arbeit an L1Q1 beendet und liefert eine skalierte L1Q1-Ausgabe an seinen Ausgangspuffer. Unterdessen beginnt der Skalierer S4 512-4 mit der Arbeit an L1Q4. Wie bei L1Q1, L1Q2 und L1Q3 wird L1Q4 mit 1/4 Pixelrate skaliert und der Neurasterungspuffer des Skalierers S4 512-4 ist 3/16 Zeilen tief.
  • In einem nächsten Zyklus beginnt der Skalierer S1 512-1 zur Zeit = t0 an L2Q1 zu arbeiten, während die anderen Skalierer ihre Arbeit an ihren jeweiligen Quartilen von L1 fortsetzen. Zur Zeit = t1 des neuen Zyklus beginnt der Skalierer S2 512-2 mit der Arbeit an L2Q2. Zur Zeit = t2 des neuen Zyklus beginnt der Skalierer S3 512-3 mit der Arbeit an L1Q3 des neuen Zyklus und zur Zeit = t3 des neuen Zyklus beginnt der Skalierer S4 512-4 mit der Arbeit an L2Q4. Die Ausgaben können dann gemultiplext werden.
  • Die nachstehende Tabelle zeigt den Zustand der Neurasterungspuffer zu verschiedenen Ausgabezeiten. Diese Tabelle zeigt nur ein Beispiel, bei dem es sich um die gleiche oder eine andere Ausführungsform handeln kann als der an anderer Stelle in dieser Beschreibung dargestellten. Für jedes Quartil einer Zeile:
    1. 1. 1/4 Ausgangszeile wird aus dem Q1-, Q2-, Q3- oder Q4-Neurasterungspuffer entnommen
    2. 2. 1/16 Ausgangszeile wird von jedem Skalierer erzeugt
    3. 3. 1/4 Eingangszeile ist das Maximum, das ein bestimmter Entrasterungspuffer aufnehmen kann, abhängig von der Verfügbarkeit der erforderlichen Eingabe und dem Platz in diesem Puffer.
    Entrasterungspuffer Neurasterungspuffer
    Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Ausgabevideo
    1/4 (7,4, 8,1, 8,2, 8,3) 1/16 (7,8) 1/16 (7,12) 1/16 (7,16) 3/16 3/16 3/16 3/16 Dieses Muster wiederholt sich
    1/4 - 1/16 + 1/16 = 1/4 (8,1 - 8,4) 1/16 (7,8) 1/16 (7,12) 1/16 (7,16) 3/16 + 1/16 - 1/4 = 0 3/16 3/16 3/16 1/4
    1/4 - 1/16 3/16 1/16 - 1/16 + 1/4 = 1/4 1/16 (7,12) 1/16 (7,16) 0 + 1/16 = 1/16 3/16 + 1/16-1/4 = 3/16 3/16 1/4
    3/16 - 1/16 2/16 (8,3, 8,4) 1/4 - 1/16 3/16 (8,6 bis 8,8) 1/16 - 1/16 + 1/4 = (8,9 - 8,12) 1/16 (7,16) 1/16 + 1/16 = 2/16 0 + 1/16 1/16 3/16 + 1/16 - 1/4 = 0 3/16 1/4
    2/16 - 1/16 1/16 (8,4) 3/16 - 1/16 = 1/8 (8,7, 8,8) 1/4 - 1/16 = 3/16 (8,10 bis 8,12) 1/16 - 1/16 + 1/4 (8,13 8,16) 2/16 + 1/16 = 3/16 1/16 + 1/16 = 2/16 0 + 1/16 1/16 3/16 + 1/16 - 1/4 = 0 1/4
    1/16 - 1/16 + 1/4 = 1/4 (9,1 bis 9,4) 2/16 - 1/16 (8,8) 3/16 - 1/16 = (8,11, 8,12) 1/4 - 1/16 = 3/16 (8,14 bis 8,16) 3/16 + 1/16 - 1/4 = 0 2/16 + 1/16 = 3/16 1/16 + 1/16 = 2/16 0+ 1/16 = 1/16 1/4
  • Durch Bereitstellen dieser parallelen und zur Pipeline geformten Skalierung verwirklicht das System der vorliegenden Beschreibung einen 12-Bit-Prozess mit 4:4:4-Farbcodierungsdaten. 4:4:4 ist ein Farbformat, bei dem die Luma- und Chroma-Komponenten bei voller Bandbreite erhalten bleiben. Die Farbe kann in einem Farbraum wie YUV (Y = Luma, UV = Chrominanz) wiedergegeben werden. In anderen Ausführungsformen können andere Farbräume wie Rot, Grün, Blau (RGB) oder Cyan, Magenta, Gelb, Schwarz (CMYK) verwendet werden.
  • Vorteilhafterweise kann dieses Verfahren mit gerichteter Interpolation verwendet werden, die Schärfe, Detail und Bildverbesserung bietet und auch Unterstützung für vom Anwender steuerbare horizontale und vertikale Auflösungen sowie Seitenverhältniskonvertierung liefert.
  • 7 ist ein Ablaufdiagramm eines Verfahrens 700 zum Hochskalieren von Video gemäß den Lehren der vorliegenden Beschreibung.
  • Das Verfahren 700 kann durch beliebige geeignete Hardware oder Kombination von Hardware, Software und/oder Firmware durchgeführt werden. Zur Vereinfachung der Bezugnahme wird die Vorrichtung, die das Verfahren 700 ausführt, als Skalierer bezeichnet. Darunter ist jede Hardware, Software und/oder Firmware zu verstehen, die das Verfahren bereitstellt.
  • In Block 704 empfängt der Skalierer das ursprüngliche Eingangsbild. Das ursprüngliche Eingangsbild kann zum Beispiel ein Video in einem beliebigen geeigneten Format wie etwa als veranschaulichendes und nicht einschränkendes Beispiel 480p, 720p, 1080p oder 4K-UHD sein. Es ist zu beachten, dass diese Formate nur als Beispiel dienen und andere Auflösungen gemäß den Anforderungen einer bestimmten Ausführungsform unterstützt werden können.
  • In Block 708 unterteilt der Skalierer das Eingangsbild in N vertikale Scheiben. In den vorstehenden Beispielen zeigen Abbildungen, dass das Bild in vier vertikale Scheiben unterteilt ist, von denen jede als Quartil bezeichnet wird. Dies ist beispielsweise nützlich, wenn ein Video mit einem 700-MHz-Skalierer auf 8K hochskaliert wird. Andere Ausführungsformen können jedoch eine andere Anzahl von Scheiben oder andere Arten von Hardware, die bei anderen Taktgeschwindigkeiten arbeiten, erfordern.
  • In Block 712 betreibt der Skalierer parallel mehrere einzelne Pro-Scheibe-Skalierer, um die vertikalen Scheiben hochzuskalieren und Zwischenpunkte zwischen Pixeln für jedes Bild zu interpolieren. Diese Interpolation kann beispielsweise die Form einer linearen Interpolation zwischen zwei Punkten in jeder Dimension, einer Interpolation höherer Ordnung (z. B. einer bikubischen Interpolation) zwischen vier Punkten in jeder Dimension, einer anderen Polynominterpolation oder einem anderen geeigneten Hochskalierung- oder Herunterskalierungs-Algorithmus, der mit den Lehren der vorliegenden Beschreibung kompatibel ist, annehmen.
  • In Block 716 weist das Hochskalieren der vertikalen Scheiben ein Glätten von Grenzen zwischen den Scheiben auf. Der Skalierer kann dies beispielsweise durchführen, indem er eine, drei oder eine andere Anzahl von Pixeln aus der vorherigen Scheibe für die nächste Scheibe bereitstellt. Dies ermöglicht eine reibungslose Interpolation zwischen den Scheiben. In anderen Ausführungsformen, insbesondere solchen, die einen anderen Algorithmus als lineare Interpolation oder Interpolation höherer Ordnung verwenden, können andere geeignete Algorithmen verwendet werden, um die Grenzen zu glätten.
  • Das Ergebnis sind N einzelne hochskalierte Scheiben.
  • In Block 720 multiplext der Skalierer die skalierten Scheiben miteinander. Dies ermöglicht die Ausgabe der skalierten Scheiben als ein einzelnes Bild. Beispielsweise kann der Multiplexer eine Reihe von Eingangszeilen aufweisen, wobei jeder einzelne Skalierer ein Quartil oder ansonsten 1/N Eingangszeile liefert. Der Multiplexer verknüpft diese Quartile oder 1/N-Quantile miteinander und erzeugt so eine einzige zusammenhängende Ausgangszeile.
  • In Block 724 kann, sobald alle Zeilen eines Ausgangsbildes gesammelt worden sind, dieses Ausgangsbild für 1/k Sekunde auf den Bildschirm geliefert werden, wobei k die Bildrate ist (z. B. 24 Bilder pro Sekunde oder 60 Bilder pro Sekunde, zur Veranschaulichung).
  • In Block 798 ist das Verfahren abgeschlossen.
  • 8 ist ein Blockdiagramm eines HDMI-Systems gemäß den Lehren der vorliegenden Beschreibung. In diesem Beispiel weist das HDMI-System die HDMI-Quelle 800 und die HDMI-Senke 802 auf.
  • Die HDMI-Quelle 800 kann beispielsweise durch einen DVD-Spieler, einen Blu-ray-Disc-Spieler, einen Computer oder eine andere Videoquelle bereitgestellt werden. Die HDMI-Quelle 800 empfängt Video- und Audiosignale, die von dem HDMI-Sender 804 gesendet werden sollen. Der HDMI-Sender 804 weist drei physisch getrennte Kommunikationskanäle auf, nämlich den Datenanzeigekanal (DDC), das übergangsminimierte Differenzsignalisierungssignal (TMDS-Signal) und den Unterhaltungselektroniksteuerungskanal (CEC-Kanal). Die HDMI-Quelle 800 kann auch einen HDMI-Ethernet-und-Audio-Rückgabe-Kanal (HEAC) bereitstellen, der ein optionaler Kanal für Ethernet- und Audio-Rückgabe ist. Darüber hinaus kann die HDMI-Quelle 800 eine optionale Hot-Plug-Detektionskanal-Leitung (HPD-Leitung) bereitstellen, die entweder hoch oder niedrig ist und die Detektion einer Verbindung ermöglicht.
  • Die verschiedenen Kanäle und Funktionen einer HDMI-Quelle 800 und einer HDMI-Senke 802 werden durch den HDMI-Standard bereitgestellt, der verschiedene Ausführungsformen und Iterationen aufweist. Die Darstellung dieser Figur ist lediglich als veranschaulichendes Beispiel eines Ethernet-Controller-Paares zu verstehen und sollte nicht als einschränkendes Beispiel verstanden werden oder die Lehren der vorliegenden Beschreibung auf eine bestimmte Version des HDMI-Standards beschränken. Im Allgemeinen sollten die Lehren dieser Figur als veranschaulichender Rahmen verstanden werden, in dem die Lehren der vorliegenden Beschreibung praktiziert werden können. Insbesondere können in Ausführungsformen, in denen HDMI als Übertragungsstandard für Audio- und Videodaten verwendet wird, Ausführungsformen der Lehren der vorliegenden Beschreibung Elemente wie die in der HDMI-Quelle 800 und der HDMI-Senke 802 gezeigten aufweisen.
  • Der TMDS-Kanal zwischen dem HDMI-Sender 804 und dem HDMI-Empfänger 808 verwebt Video-, Audio- und Hilfsdaten unter Verwendung von drei verschiedenen Pakettypen. Diese werden als Videodatenperiode, Dateninselperiode und Steuerperiode bezeichnet.
  • Während der Videodatenperiode werden die Pixel des Ausgangsvideos zwischen dem HDMI-Sender 804 und dem HDMI-Empfänger 808 übertragen. Die Dateninselperiode, die horizontale oder vertikale Austastintervalle belegen kann, wird verwendet, um Audio- und Hilfsdaten zwischen dem HDMI-Sender 804 und dem HDMI-Empfänger 808 zu übertragen. Diese Audio- und Hilfsdaten können als eine Folge von Paketen übertragen werden, ähnlich wie bei einer Datenübertragung über ein herkömmlicheres Kommunikationsmedium wie Ethernet oder den universellen seriellen Bus (USB).
  • Die Steuerperiode tritt zwischen der Videoperiode und der Dateninselperiode auf und wird zum Übertragen von Steuersignalen verwendet. HDMI verwendet die TMDS-Kanäle, um mit 8b/10b-Codierung codierte Zeichen zu übertragen. Es ist zu beachten, dass HDMI mit dem älteren Standard für die digitale visuelle Schnittstelle (DVI-Standard) abwärtskompatibel ist, da DVI auch TMDS für die Übertragung von Videodaten verwendet. HDMI verwendet jedoch einen kleineren Verbinder und bietet außerdem die Möglichkeit, die Dateninselperiode und die Steuerperiode zwischen den horizontalen und vertikalen Austastintervallen der Videodatenperiode bereitzustellen.
  • Der Anzeigedatenkanal bietet Kommunikation basierend auf der Busspezifikation für inter-integrierte Schaltungen (I2C-Busspezifikation) bereit. Der HDMI-Standard erfordert von seinen Vorrichtungen, dass sie den DDC oder den erweiterten Datenanzeigekanal (EDDC) implementieren, der von der HDMI-Quelle 800 zum Lesen von erweiterten Anzeigeidentifikationsdaten (EDID) oder erweiterten EDID aus der HDMI-Senke 802 verwendet wird. EDID 810 informieren die HDMI-Quelle 800 darüber, welche Audio- und/oder Videoformate die HDMI-Senke 802 akzeptieren kann. Der HDMI-Standard erfordert, dass der DDC eine Bandbreite von mindestens 100 kb pro Sekunde unterstützt, und kann auf noch schnellere Geschwindigkeiten hochskaliert werden. In einigen Ausführungsformen wird der DDC auch verwendet, um einen Schutz für digitalen Inhalt mit hoher Bandbreite (HDCP) bereitzustellen, der verwendet wird, um die Verwaltung digitaler Rechte (DRM) für Inhalt, der zwischen der HDMI-Quelle 800 und der HDMI-Senke 802 übertragen wird, durchzusetzen. Dies trägt dazu bei, sicherzustellen, dass ein Verbraucher mit einer zwischengeschalteten Vorrichtung keine hochwertigen digitalen Videos aus dem Videostrom extrahieren kann.
  • In der Darstellung von 8 kommunizieren Tx CEC 812 und Rx CEC 816 über eine CEC-Leitung. Über die CEC-Leitung kann ein Endanwender CEC-fähige Vorrichtungen befehligen und steuern. Aktuelle Iterationen des HDMI-Standards ermöglichen die Steuerung von bis zu 15 verschiedenen CEC-fähigen Vorrichtungen über die HDMI-Verbindung. Somit kann ein Anwender ein Fernsehgerät, einen DVD-Spieler, einen Blu-ray-Disc-Spieler oder andere Vorrichtungen mit nur einer einzigen Fernbedienung steuern wie beispielsweise einer Fernsehfernbedienung, einer Beistellgerät-Fernbedienung, einer DVD-Spieler-Fernbedienung oder einer anderen Fernbedienung, die eine einzelne Vorrichtung steuert, steuern. Vorteilhafterweise ermöglicht CEC, dass sich einzelne CEC-fähige Vorrichtungen ohne Anwendereingriff gegenseitig befehligen und steuern können.
  • CEC bietet einen bidirektionalen seriellen Einzeldrahtbus, der auf dem Standard-AV.link-Protokoll des Europäischen Komitees für elektrotechnische Normung (CENELEC) basiert.
  • Wo vorgesehen, kann eine HEAC-Versorgungsleitung eine Kommunikation zwischen einem Sender HEAC 820 und einem Empfänger HEAC 824 bereitstellen. Der HDMI-Ethernet-und-Audio-Rückkanal stellt sowohl den Audio-Rückkanal (ARC) als auch den HDMI-Ethernet-Kanal (HEC) bereit. Die gemeinsame HEAC wurde in HDMI-Standard 1.4 eingeführt und bietet eine gerichtete Hochgeschwindigkeits-Datenkommunikation für HEC und die Möglichkeit, Audiodaten über ARC stromaufwärts zu senden.
  • ARC ist eine Audioverbindung, die andere Kabel zwischen TV und Empfänger oder Lautsprechersystem repliziert. Dies kann verwendet werden, wenn das Fernsehgerät anstelle anderer Geräte einen Videostrom erzeugt oder empfängt. Dies kann beispielsweise verwendet werden, wenn Videos über eine Anwendung auf einem Smart-TV (z. B. über den Streaming-Anbieter Netflix) bereitgestellt werden, der Ton jedoch von anderen Geräten, z. B. externen Lautsprechern, geliefert wird. Ohne ARC müsste die Audioausgabe aus dem Fernsehgerät über ein separates Kabel in das Lautsprechersystem geleitet werden. Mit ARC kann der Ton jedoch direkt von dem Fernsehgerät an den Lautsprecher gesendet werden. Der HEC legt Video-, Audio- und Datenströme in einem einzigen HDMI-Kabel zusammen und ermöglicht IP-basierte Anwendungen über HDMI. Dies bietet eine bidirektionale Ethernet-Kommunikation mit 100 MB/s oder mehr. Physisch gesehen ist der HEC ein Hybrid, der gleichzeitig 100Base-T-Signale über ein einzelnes verdrilltes Paar von Datengütedraht sendet und empfängt.
  • 9a und 9b sind ein Blockdiagramm eines Ein-Chip-Systems 900 gemäß den Lehren der vorliegenden Beschreibung.
  • Es ist zu beachten, dass das SoC 900 als ein veranschaulichendes und nicht einschränkendes Beispiel eines Formfaktors bereitgestellt ist, der in den Lehren der vorliegenden Beschreibung verwendet werden kann. In diesem Fall stellt der SoC 900 monolithisch eine Reihe von Videoverarbeitungsfunktionen auf einem HDMI-Empfänger bereit und liefert das verarbeitete Video als HDMI-Ausgabe. Ein solches SoC wurde als SoC 150 in 1b dargestellt. Die Lehren des SoC 150 von 1b können auf das SoC 900 von 9a und 9b angewendet werden, wenn sie kompatibel sind. Es versteht sich jedoch, dass das SoC 900 in einigen Beispielen eine separate oder alternative Ausführungsform zu dem SoC 150 von 1b sein kann. In anderen Beispielen kann das SoC 900 als detailliertere Darstellung der Lehren des SoC 150 von 1b angesehen werden.
  • In 9a ist gezeigt, dass das SoC 900 mit einem Direktzugriffsspeicher wie DDR 3/4 948 arbeiten kann. Dies ist ein dynamischer Direktzugriffsspeicher mit doppelter Datenrate (DRAM), der in einigen Ausführungsformen nicht Teil des SoC 900 ist, sondern als separates Modul bereitgestellt ist. Diese Darstellung sollte jedoch nicht so verstanden werden, dass sie die Verwendung eines chipinternen DDR mit dem SoC 900 ausschließt. Vielmehr stellt dies nur eine übliche Ausführungsform dar, bei der der DDR 948 als von dem SoC 900 separates, modulares Element bereitgestellt ist.
  • Mit Ausnahme des DDR 948 sind die anderen in 9a und 9b dargestellten Elemente üblicherweise in einem SoC wie dem SoC 900 enthalten. Dies sollte jedoch nicht so verstanden werden, dass ein SoC 900 alle hier dargestellten Elemente aufweisen muss oder dass es keine anderen als die abgebildeten Elemente aufweisen kann. Stattdessen ist das SoC 900 als Veranschaulichung einer häufig verwendeten Konfiguration bereitgestellt.
  • Der Einfachheit halber ist das SoC 900 in drei Blöcke unterteilt, nämlich die Blöcke 901 und 902 von 9a und den Block 903 von 9b. Die Blöcke 901 und 903 können mit ungefähr 700 MHz oder 700 Megaabtastungen pro Sekunde arbeiten. Im Gegensatz dazu weist Block 902 Echtzeit-Videooperationen auf, die möglicherweise mit einer viel schnelleren Geschwindigkeit wie beispielsweise 2,4 Gigaabtastungen pro Sekunde ausgeführt werden müssen. Diese höhere Geschwindigkeit kann beispielsweise erforderlich sein, um eine Echtzeitverarbeitung und eine Hochskalierung von 8K-Videos zu ermöglichen.
  • In Block 901 stellt ein HDMI-Empfänger PHY 904 eine physische Schnittstelle zum Empfangen von Videodaten aus einer Videoquelle bereit. Die Videoquelle kann irgendeine der in dieser Beschreibung diskutierten Quellen oder irgendeine andere Videoquelle sein, die für die Lehren dieser Beschreibung geeignet ist. Zum Beispiel zusätzlich zu HDMI, DisplayPort oder einer analogen Videoschnittstelle wie CVBS (zusammengesetztes Videobasisbandsignal, auch bekannt als Farbe, Video, Austastung und Synchronisierung).
  • Das von dem HDMI-Empfänger PHY 904 empfangene Eingangsvideo wird von einer digitalen HDMI-Empfängerschaltung 906 verarbeitet. Die digitale HDMI-Empfängerschaltung 906 weist die Logik zum Verarbeiten einer HDMI-Eingabe gemäß dem HDMI-Standard auf. Es ist zu beachten, dass die digitale HDMI-Empfängerschaltung 906 auch eine HDCP-Fähigkeit 908 aufweisen kann. Der HDCP 908 bietet wie in 8 dargestellt DRM für HDMI-Inhalt.
  • Die digitale HDMI-Empfängerschaltung 906 liefert ihre Ausgabe an eine Verbindungsdatendekomprimierungsschaltung 910. Die Verbindungsdatendekomprimierungsschaltung 910 kann erforderlich sein, um das komprimierte HDMI-Videosignal in eine Folge von Einzelbildern umzuwandeln, wobei jedes Einzelbild seine eigene Bitkarte ist. Dies kann erforderlich sein, da HDMI gemäß Industriestandards ein komprimiertes Videoformat bereitstellt, in dem Videobilder nicht als eine Reihe von Bitkarten, sondern als eine Reihe von Deltas zu einem Referenzbild bereitgestellt sind.
  • Das dekomprimierte Video kann an den Bildpuffer-Komprimierer 912 geliefert werden, der die Bildpuffer-Komprimierung bereitstellt und das Ergebnis über den DDR-3/4-Speichercontroller 940 im Speicher speichert. Der Speichercontroller 940 kommuniziert mit DDR 3/4 PHY 944, was die Kommunikation mit dem DDR 948 bereitstellt. Wie oben erwähnt muss der DDR 948 nicht unbedingt Teil des SoC 900 sein, sondern kann in einigen Beispielen stattdessen als separate modulare Einheit bereitgestellt sein. Der DDR 3/4 PHY 994 kann Komprimierungscodecs aufweisen.
  • Der Bildpuffer-Dekomprimierer 914 empfängt die komprimierten Informationen aus dem Speicher und liefert dann das dekomprimierte Video an einen Entflechter/Skalierer 916. Der Entflechter/Skalierer 916 kann mehrere Funktionen bieten. Wenn beispielsweise Video in einem Format mit Zeilensprung anstelle eines Formats mit progressiver Abtastung bereitgestellt wird, muss es möglicherweise zuerst in das Formats mit progressiver Abtastung konvertiert werden, bevor es skaliert werden kann. Somit kann die Entflechterfunktion des Entflechters/Skalierers 916 diese Entflechtung bereitstellen. Der Entflechter/Skalierer 916 kann auch einen parallelen Skalierer wie den Skalierer 500 von 5 bereitstellen. Dieser kann Bilder gemäß den Lehren der vorliegenden Beschreibung hoch- oder herunterskalieren.
  • Sobald der Entflechter/Skalierer 916 das Bild verarbeitet, entflechtet und hoch- oder herunterskaliert hat, können die Videobilder an den Verbindungsdatenkomprimierer 918 zu liefern. Der Verbindungsdatenkomprimierer 918 komprimiert das Video gemäß dem HDMI-Standard, so dass keine Folge von einzelnen Bitkarten einzelner Bilder mehr ist, sondern ein komprimiertes Videoformat basierend auf Unterschieden zwischen Einzelbildern bereitgestellt wird.
  • In 9b liefert der DSC-Komprimierer 920 sein komprimiertes HDMI-kompatibles Signal an die digitale HDMI-Senderschaltung 924. Wie bei der digitalen HDMI-Empfängerschaltung 906 weist die digitale HDMI-Senderschaltung 924 die Logik zum Bereitstellen des HDMI-Signals auf und kann HDCP 928 für DRM aufweisen.
  • Die digitale HDMI-Senderschaltung 924 liefert ihre Daten an den HDMI-Sender PHY 932, der das HDMI-Signal an eine Anzeige wie beispielsweise das UHD-fähige Fernsehgerät 116 von 1 ausgibt.
  • Beispielimplementierungen
  • Die folgenden Beispiele werden zur Veranschaulichung bereitgestellt.
  • In einem Beispiel ist ein Videoprozessor offenbart, der Folgendes aufweist: einen Eingangspuffer zum Empfangen eines Eingangsbildes; eine Schneideschaltung zum Aufteilen des Eingangsbildes in mehrere N vertikale Scheiben; N parallele Bildskalierer, wobei jeder Skalierer hardwaretechnisch dazu ausgebildet ist, eine der N vertikalen Scheiben gemäß einem Bildskalierungsalgorithmus zeilenweise zu skalieren; und einen Ausgangsmultiplexer zum Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.
  • Es ist ferner ein Videoprozessor offenbart, der ferner eine Logik und eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms und zum Extrahieren des Eingangsbilds aus dem Eingangsvideostrom aufweist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem jede vertikale Scheibe im Wesentlichen eine 1/N-Quantil des Eingangsbildes ist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem N = 4.
  • Es ist ferner ein Videoprozessor offenbart, bei dem das Eingangsbild ein Vollbild eines Videostroms ist und bei dem das Ausgangsbild auf 7680 horizontale Pixel × 4320 vertikale Pixel skaliert ist.
  • Es ist ferner ein Videoprozessor offenbart, der eine Logik und eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms mit 8K-UHD-Auflösung und zum Herunterskalieren des Bildes auf eine niedrigere Auflösung über die N parallelen Bildskalierer aufweist.
  • Es ist ferner ein Videoprozessor offenbart, der eine Logik und eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms mit einer Auflösung, die aus 480p, 480i, 720p, 720i, 1080p, 1080i und 4K-Ultra-High-Definition (UHD) ausgewählt ist, und zum Skalieren des Eingangsvideostroms über die N parallelen Bildskalierer in einen Ausgangsvideostrom mit 8K-UHD-Auflösung aufweist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem der Bildskalierungsalgorithmus eine bilineare Interpolation aufweist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem der Bildskalierungsalgorithmus eine Interpolation höherer Ordnung aufweist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem der Bildskalierungsalgorithmus eine Interpolation höherer Ordnung aufweist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem vertikale Scheiben, die im Wesentlichen ein erstes, zweites und drittes Quartil darstellen, drei erste Pixel aus einer nachfolgenden Scheibe enthalten, und vertikale Scheiben, die ein zweites, drittes und viertes Quartil darstellen, drei letzte Pixel aus einer vorhergehenden Scheibe enthalten; und die erste, zweite und dritte Scheibe auch die drei ersten Pixel der nachfolgenden Scheibe enthalten.
  • Es ist ferner ein Videoprozessor offenbart, bei dem mindestens einige der vertikalen Scheiben ein oder mehrere letzte Pixel aus einer vorhergehenden oder nachfolgenden Scheibe enthalten.
  • Es ist ferner ein Videoprozessor offenbart, bei dem mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer vorhergehenden oder nachfolgenden Scheibe enthalten.
  • Es ist ferner ein Videoprozessor offenbart, bei dem die N Bildskalierer in Pipelines angeordnet sind, um Pufferunterläufe zu verhindern.
  • Es ist ferner ein Videoprozessor offenbart, bei dem das Ausgangsbild ein Einzelbild eines mit einer Hochauflösungs-Multimedia-Schnittstelle (HDMI) kompatiblen Videostroms ist.
  • Es ist ferner ein Videoprozessor offenbart, bei dem das Eingangsbild ein Einzelbild eines mit einer Hochauflösungs-Multimedia-Schnittstelle (HDMI) kompatiblen Videostroms ist.
  • Es ist ferner ein Block geistigen Eigentums (IP-Block) offenbart, der den Videoprozessor eines der vorhergehenden Beispiele aufweist.
  • Es ist auch ein Ein-Chip-System (SoC) offenbart, das Folgendes aufweist: eine Schaltungsanordnung zum Empfangen eines Eingangsbildes; einen Bildschneider zum Aufteilen des Eingangsbildes in mehrere N Scheiben; N Bildskalierer, die dazu ausgelegt sind, die N Scheiben parallel zu skalieren, und die eine Interpolatorschaltung zum Interpolieren von Zwischenpixeln zwischen Pixeln in dem Eingangsbild aufweisen; und einen Ausgangsmultiplexer zum Multiplexen der skalierten vertikalen Scheiben in ein kombiniertes skaliertes Ausgangsbild.
  • Es ist ferner ein SoC offenbart, das ferner aufweist: N Eingangs-Entrasterungspuffer zum Empfangen des Eingangsbilds mit 1/N der Pixelrate; und einen Neurasterungspuffer zum Sammeln der N skalierten Scheiben und zum Ausgeben von diesen mit einer Pixelrate von 1.
  • Es ist ferner ein SoC offenbart, das ferner eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms und zum Extrahieren des Eingangsbilds aus dem Eingangsvideostrom aufweist.
  • Es ist ferner ein SoC offenbart, bei dem jede vertikale Scheibe im Wesentlichen eine 1/N-Quantil des Eingangsbildes ist.
  • Es ist ferner ein SoC offenbart, bei dem N = 4 ist.
  • Es ist ferner ein SoC offenbart, bei dem das Eingangsbild ein Einzelbild eines Videostroms ist und bei dem das Ausgangsbild auf 7680 horizontale Pixel × 4320 vertikale Pixel skaliert ist.
  • Es ist ferner ein SoC offenbart, das eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms mit einer Auflösung, die aus 480p, 480i, 720p, 720i, 1080p, 1080i und 4K-Ultra-High-Definition (UHD) ausgewählt ist, und zum Skalieren des Eingangsvideostroms über die N parallelen Bildskalierer in einen Ausgangsvideostrom mit 8K-UHD-Auflösung aufweist.
  • Es ist ferner ein SoC offenbart, bei dem die Interpolatorschaltung einen linearen Interpolator aufweist.
  • Es ist ferner ein SoC offenbart, bei dem die Interpolatorschaltung einen Polynominterpolator aufweist.
  • Es ist ferner ein SoC offenbart, bei dem die Interpolatorschaltung einen Interpolator höherer Ordnung aufweist und bei dem mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer vorhergehenden Scheibe enthalten.
  • Es ist ferner ein SoC offenbart, bei dem die Interpolatorschaltung einen Interpolator höherer Ordnung aufweist und bei dem mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer nachfolgenden Scheibe enthalten.
  • Es ist ferner ein SoC offenbart, bei dem mindestens einige der vertikalen Scheiben ein oder mehrere letzte Pixel aus einer vorhergehenden Scheibe enthalten.
  • Es ist ferner ein SoC offenbart, bei dem mindestens einige der vertikalen Scheiben ein oder mehrere letzte Pixel aus einer nachfolgenden Scheibe enthalten.
  • Es ist ferner ein SoC offenbart, bei dem mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer vorhergehenden Scheibe enthalten.
  • Es ist ferner ein SoC offenbart, bei dem mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer nachfolgenden Scheibe enthalten.
  • Es ist ferner ein SoC offenbart, bei dem die N Bildskalierer in Pipelines angeordnet sind, um Pufferunterläufe zu verhindern.
  • Es ist ferner das SoC einer Reihe der obigen Beispiele offenbart, das ferner Folgendes aufweist: einen Hochauflösungs-Multimedia-Schnittstellen-Empfänger (HDMI-Empfänger) zum Empfangen eines Eingangs-HDMI-Videostroms; einen DSC-Dekomprimierer zum Dekomprimieren der HDMI-Videoeingabe und zum Extrahieren des Eingangsbildes; einen DSC-Komprimierer zum Empfangen des Ausgangsbildes und zum Codieren des Ausgangsbildes in einen skalierten Ausgangs-HDMI-Videostrom; und einen HDMI-Sender zum Senden des skalierten Ausgangs-HDMI-Videostroms.
  • Es ist ferner ein SoC offenbart, das ferner einen Codec für die Bildpufferkomprimierung aufweist.
  • Es ist ferner ein SoC offenbart, das ferner eine Schnittstelle für dynamischen Direktzugriffsspeicher aufweist.
  • Es ist ferner ein SoC offenbart, das ferner einen Zeilensprung-Entflechter (Deinterlacer) aufweist.
  • Es ist ferner ein SoC offenbart, das ferner einen Farbraumkonvertierer aufweist.
  • Es ist ferner ein SoC offenbart, das ferner einen Bildzuschneider aufweist.
  • Es ist ferner ein SoC offenbart, das ferner einen Bildratenkonvertierer aufweist.
  • Es ist zudem ein Verfahren zum Skalieren eines Bildes offenbart, das Folgendes aufweist: Empfangen eines Eingangsbildes; Aufteilen des Eingangsbildes in mehrere N Scheiben; paralleles rasterbasiertes Skalieren der N Scheiben gemäß einem Bildskalierungsalgorithmus; und Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.
  • Es ist ferner ein Verfahren offenbart, das ferner ein Empfangen und Extrahieren des Eingangsbildes aus einem Eingangsvideostrom aufweist.
  • Es ist ferner ein Verfahren offenbart, bei dem jede Scheibe im Wesentlichen eine 1/N-Quantil des Eingangsbildes ist.
  • Es ist ferner ein Verfahren offenbart, bei dem N = 4 ist.
  • Es ist ferner ein Verfahren offenbart, bei dem das Eingangsbild ein Einzelbild eines Videostroms ist und bei dem das Ausgangsbild auf 7680 horizontale Pixel × 4320 vertikale Pixel skaliert ist.
  • Es ist ferner ein Verfahren offenbart, das ferner ein Hochskalieren eines Bildes auf eine 8K-UHD-Auflösung oder das Herunterskalieren des Bildes von einer 8K-UHD-Auflösung aufweist.
  • Es ist ferner ein Verfahren offenbart, bei dem der Bildskalierungsalgorithmus eine lineare Interpolation aufweist.
  • Es ist ferner ein Verfahren offenbart, bei dem der Bildskalierungsalgorithmus eine Polynominterpolation aufweist.
  • Es ist ferner ein Verfahren offenbart, bei dem der Bildskalierungsalgorithmus eine quadratische Interpolation aufweist.
  • Es ist ferner ein Verfahren offenbart, bei dem mindestens einige der vertikalen Scheiben ein oder mehrere letzte Pixel aus einer vorhergehenden Scheibe enthalten.
  • Es ist ferner ein Verfahren offenbart, bei dem mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer vorhergehenden Scheibe enthalten
  • Es ist ferner ein Verfahren offenbart, das ferner ein Einbinden der parallelen zeilenweisen Bildskalierung zu einer Pipeline aufweist.
  • Es ist ferner ein Verfahren offenbart, bei dem das Ausgangsbild ein Einzelbild eines mit einer Hochauflösungs-Multimedia-Schnittstelle (HDMI) kompatiblen Videostroms ist.
  • Es ist ferner ein Verfahren offenbart, bei dem das Eingangsbild ein Einzelbild eines mit einer Hochauflösungs-Multimedia-Schnittstelle (HDMI) kompatiblen Videostroms ist.
  • Es ist ferner das Verfahren einer Reihe der obigen Beispiele offenbart, das ferner ein Bereitstellen einer Bildpufferkomprimierung und -dekomprimierung aufweist.
  • Es ist ferner ein SoC offenbart, das ferner eine Schnittstelle für dynamischen Direktzugriffsspeicher aufweist.
  • Es ist ferner das Verfahren einer Reihe der obigen Beispiele offenbart, das ferner ein Bereitstellen von Zeilensprung-Entflechtung (Deinterlacing) aufweist.
  • Es ist ferner das Verfahren einer Reihe der obigen Beispiele offenbart, das ferner ein Bereitstellen einer Farbraumkonvertierung aufweist.
  • Es ist ferner das Verfahren einer Reihe der obigen Beispiele offenbart, das ferner ein Bereitstellen eines Bildzuschneidens aufweist.
  • Es ist ferner eine Vorrichtung offenbart, die eine Mittel zum Durchführen des Verfahrens einer Reihe der obigen Beispiele aufweist.
  • Es ist ferner eine Vorrichtung offenbart, bei der die Mittel ein Ein-Chip-System aufweisen.
  • Es ist ferner eine Vorrichtung offenbart, bei der die Mittel einen Beistellkasten aufweisen.
  • Es ist ferner ein intelligentes Fernsehgerät offenbart, das eine Vorrichtung nach einem oder mehreren der obigen Beispiele aufweist.
  • Es sind auch ein oder mehrere konkrete nichtflüchtige computerlesbare Medien offenbart, auf denen Befehle gespeichert sind, um es einer programmierbare Vorrichtung zu befehlen, das Verfahren auszuführen oder zumindest einen Teil der Vorrichtung einer Reihe der obigen Beispiele zu realisieren.
  • Es sind auch ein oder mehrere konkrete nichtflüchtige computerlesbare Medien offenbart, wobei die Befehle Hardwarebeschreibungssprachen-Anweisungen aufweisen.
  • Das Vorstehende umreißt Merkmale einer oder mehrerer Ausführungsformen des hierin offenbarten Gegenstands. Diese Ausführungsformen sind bereitgestellt, um es Fachleuten zu ermöglichen, verschiedene Aspekte der vorliegenden Offenbarung besser zu verstehen. Auf bestimmte gut verstandene Begriffe sowie zugrunde liegende Technologien und/oder Standards kann Bezug genommen werden, ohne dass diese im Detail beschrieben werden. Es wird erwartet, dass die Fachleute über Hintergrundwissen oder Informationen in diesen Technologien und Standards verfügen oder Zugriff auf diese haben, um die Lehren dieser Beschreibung zu praktizieren.
  • Die Fachleute werden erkennen, dass sie die vorliegende Offenbarung leicht als Grundlage zum Entwerfen oder Modifizieren anderer Prozesse, Strukturen oder Variationen zum Ausführen derselben Zwecke und/oder zum Erzielen derselben Vorteile wie die hierin eingeführten Ausführungsformen verwenden können. Die Fachleute werden auch erkennen, dass solche äquivalenten Konstruktionen nicht vom Gedanken und Schutzumfang der vorliegenden Offenbarung abweichen und dass sie verschiedene Änderungen, Ersetzungen und Abänderungen daran vornehmen können, ohne vom Gedanken und Umfang der vorliegenden Offenbarung abzuweichen.
  • Es ist zu beachten, dass die oben unter Bezugnahme auf die Figuren diskutierten Aktivitäten auf jede integrierte Schaltung anwendbar sind, die eine Signalverarbeitung (beispielsweise eine Gestensignalverarbeitung, eine Videosignalverarbeitung, eine Audiosignalverarbeitung, eine Analog-Digital-Umsetzung, eine Digital-Analog-Umsetzung) beinhaltet, insbesondere solche, die spezielle Softwareprogramme oder Algorithmen ausführen können, von denen einige der Verarbeitung digitalisierter Echtzeitdaten zugeordnet sein können. Bestimmte Ausführungsformen können sich auf Multi-DSP-, Multi-ASIC- oder Multi-SoC-Signalverarbeitung, Gleitkommaverarbeitung, Signal-/Steuerverarbeitung, Festfunktionsverarbeitung, Mikrocontrolleranwendungen usw. beziehen. In bestimmten Zusammenhängen können die hierin diskutierten Merkmale auf medizinische Systeme, wissenschaftliche Instrumente, drahtlose und drahtgebundene Kommunikation, Radar, industrielle Prozesssteuerung, Audio- und Videogeräte, Strommessung, Instrumente (die hochpräzise sein können) und andere auf digitaler Verarbeitung basierende Systeme anwendbar sein. Darüber hinaus können bestimmte oben diskutierte Ausführungsformen in digitalen Signalverarbeitungstechnologien für medizinische Bildgebung, Patientenüberwachung, medizinische Instrumentierung und häusliche Gesundheitsfürsorge eingesetzt werden. Dies könnte beispielsweise Lungenmonitore, Beschleunigungsmesser, Herzfrequenzmonitore oder Schrittmacher zusammen mit Peripheriegeräten dafür umfassen. Andere Anwendungen können Kraftfahrzeugtechnologien für Sicherheitssysteme (z. B. Stabilitätssteuersysteme, Fahrassistenzsysteme, Bremssysteme, Infotainment- und Innenraumanwendungen jeglicher Art) umfassen. Darüber hinaus können Antriebsstrangsysteme (z. B. in Hybrid- und Elektrofahrzeugen) hochpräzise Datenkonvertierungs-, Render- und Anzeigeprodukte für die Batterieüberwachung, Steuersysteme, Meldungssteuerungen, Wartungsaktivitäten und anderes verwenden. In wieder anderen beispielhaften Szenarien können die Lehren der vorliegenden Offenbarung auf den Industriemärkten anwendbar sein, die Prozesssteuersysteme umfassen, die dazu beitragen, Produktivität, Energieeffizienz und Zuverlässigkeit zu steigern. In Verbraucheranwendungen können die Lehren der oben diskutierten Signalverarbeitungsschaltungen zur Bildverarbeitung, zur Autofokussierung und zur Bildstabilisierung (z. B. für digitale Standbildkameras, Camcorder usw.) verwendet werden. Andere Verbraucheranwendungen können Audio- und Videoprozessoren für Heimkinosysteme, DVD-Rekorder und HD-Fernsehgeräte umfassen. Weitere Verbraucheranwendungen können fortschrittliche Berührungsbildschirm-Controller (z. B. für jeden Typ einer tragbaren Medienvorrichtung) umfassen. Daher könnten solche Technologien leicht Teil von Smartphones, Tablets, Sicherheitssystemen, PCs, Spieltechnologien, virtueller Realität, Simulationstraining usw. sein.
  • Das Vorstehende umreißt Merkmale mehrerer Ausführungsformen, so dass Fachleute die Aspekte der vorliegenden Offenbarung besser verstehen können. Fachleute sollten erkennen, dass sie die vorliegende Offenbarung leicht als Grundlage zum Entwerfen oder Abwandeln anderer Prozesse und Strukturen zum Ausführen derselben Zwecke und/oder zum Erreichen derselben Vorteile der hierin eingeführten Ausführungsformen verwenden können. Fachleute sollten auch erkennen, dass solche äquivalenten Konstruktionen nicht vom Gedanken und Schutzumfang der vorliegenden Offenbarung abweichen und dass sie verschiedene Änderungen, Ersetzungen und Abänderungen daran vornehmen können, ohne vom Gedanken und Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • Die speziellen Ausführungsformen der vorliegenden Offenbarung können ohne Weiteres eine Ein-Chip-System-Zentralverarbeitungseinheits-Baugruppe (SoC-CPU-Baugruppe) enthalten. Ein SoC stellt eine integrierte Schaltung (IC) dar, die Komponenten eines Computers oder eines anderen elektronischen Systems in einen einzelnen Chip integriert. Es kann digitale, analoge, Mischsignal- und Funkfrequenz-Funktionen aufweisen, die alle auf einem einzelnen Chipsubstrat bereitgestellt sein können. Andere Ausführungsformen können ein Mehrchipmodul (MCM) mit mehreren Chips umfassen, die in einer einzelnen elektronischen Baugruppe angeordnet sind und dazu ausgebildet sind, über die elektronische Baugruppe eng miteinander zu interagieren. Jedes Modul, jede Funktion oder jedes Blockelement einer ASIC oder eines SoC kann gegebenenfalls in einem wiederverwendbaren Block geistigen Eigentums (IP-Block, „Black Box“) bereitgestellt sein, der separat verteilt werden kann, ohne die logischen Details des IP-Blocks preiszugeben. In verschiedenen anderen Ausführungsformen können die digitalen Signalverarbeitungsfunktionalitäten in einem oder mehreren Siliziumkernen in anwendungsspezifischen integrierten Schaltungen (ASIC), feldprogrammierbaren Gatteranordnungen (FPGA) und anderen Halbleiterchips implementiert sein.
  • In einigen Fällen können die Lehren der vorliegenden Beschreibung in ein oder mehrere konkrete nichtflüchtige computerlesbare Medien codiert werden, auf denen ausführbare Befehle gespeichert sind, die, wenn sie ausgeführt werden, einem programmierbaren Vorrichtung (wie etwa einen Prozessor oder DSP) befehlen, die hierin offenbarten Verfahren oder Funktionen auszuführen. In Fällen, in denen die Lehren hierin zumindest teilweise in einer Hardwarevorrichtung (wie etwa einer ASIC, einem IP-Block oder einem SoC) verkörpert sind, könnte ein nichtflüchtiges Medium eine Hardwarevorrichtung enthalten, die mit Logik programmiert ist, um die hierin offenbarten Verfahren oder Funktionen auszuführen. Die Lehren könnten auch in Form der Registertransferebene (RTL) oder einer anderen Hardwarebeschreibungssprache wie VHDL oder Verilog praktiziert werden, die verwendet werden können, um einen Herstellungsprozess zur Herstellung der offenbarten Hardwareelemente zu programmieren.
  • In beispielhaften Implementierungen können zumindest einige Teile der hier umrissenen Verarbeitungsaktivitäten auch in Software implementiert sein. In einigen Ausführungsformen können eines oder mehrere dieser Merkmale in Hardware implementiert sein, die außerhalb der Elemente der offenbarten Figuren bereitgestellt ist, oder auf jede geeignete Weise zusammengelegt sein, um die beabsichtigte Funktionalität zu erzielen. Die verschiedenen Komponenten können Software (oder Erwiderungs-Software) enthalten, die koordinieren kann, um die hierin beschriebenen Operationen zu erreichen. In wieder anderen Ausführungsformen können diese Elemente beliebige geeignete Algorithmen, Hardware, Software, Komponenten, Module, Schnittstellen oder Objekte aufweisen, die Operationen davon erleichtern.
  • Zusätzlich können einige der Komponenten, die den beschriebenen Mikroprozessoren zugeordnet sind, entfernt oder auf andere Weise konsolidiert werden. Im Allgemeinen können die in den Figuren dargestellten Anordnungen in ihren Darstellungen logischer sein, wohingegen eine physische Architektur verschiedene Permutationen, Kombinationen und/oder Hybride dieser Elemente aufweisen kann. Es ist unbedingt zu beachten, dass unzählige mögliche Entwurfskonfigurationen verwendet werden können, um die hierin beschriebenen Betriebsziele zu erreichen. Dementsprechend weist die zugehörige Infrastruktur eine Vielzahl von Ersatzanordnungen, Entwurfsoptionen, Vorrichtungsmöglichkeiten, Hardwarekonfigurationen, Softwareimplementierungen, Ausstattungsoptionen usw. auf.
  • Jede geeignet ausgebildete Prozessorkomponente kann jede Art von Befehlen ausführen, die den Daten zugeordnet sind, um die hierin dargelegten Operationen zu erreichen. Jeder hier offenbarte Prozessor könnte ein Element oder ein Objekt (zum Beispiel Daten) von einem Zustand oder Gegenstand in einen anderen Zustand oder Gegenstand transformieren. In einem weiteren Beispiel können einige hier umrissene Aktivitäten mit fester Logik oder programmierbarer Logik (z. B. Software und/oder Computerbefehlen, die von einem Prozessor ausgeführt werden) implementiert werden und die hierin identifizierten Elemente könnten ein Typ programmierbarer Prozessor, programmierbare digitale Logik (z. B. eine FPGA, ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM), ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM)), eine ASIC mit digitaler Logik, Software, Code, elektronische Befehle, Flash-Speicher, optische Platten, CD-ROMs, DVD-ROMs, magnetische oder optische Karten, andere Arten von maschinenlesbaren Medien, die zum Speichern elektronischer Befehle geeignet sind, oder jede geeignete Kombination davon umfassen. Im Betrieb können Prozessoren Informationen in jedem geeigneten Typ eines nichtflüchtigen Speichermediums (z. B. Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), FPGA, EPROM, elektrisch löschbaren programmierbaren ROM (EEPROM) usw.), Software, Hardware oder einer/m anderen geeigneten Komponente, Vorrichtung, Element oder Objekt speichern, sofern dies angemessen ist und auf bestimmten Erfordernissen basiert. Ferner könnten die in einem Prozessor verfolgten, gesendeten, empfangenen oder gespeicherten Informationen in einer beliebigen Datenbank, einem Register, einer Tabelle, einem Cache, einer Warteschlange, einer Steuerliste oder einer Speicherstruktur bereitgestellt werden, basierend auf bestimmten Erfordernissen und Implementierungen, die alle in einem beliebigen geeigneten Zeitraum aufgerufen werden können. Jedes der hier diskutierten Speicherelemente sollte so verstanden werden, dass es unter den allgemeinen Begriff „Speicher“ fällt. In ähnlicher Weise sollte jedes der hier beschriebenen potenziellen Verarbeitungselemente, Module und Maschinen so verstanden werden, dass es unter den allgemeinen Begriff „Mikroprozessor“ oder „Prozessor“ fällt. Ferner können in verschiedenen Ausführungsformen die hier beschriebenen Prozessoren, Speicher, Netzkarten, Busse, Speichervorrichtungen, zugehörigen Peripheriegeräte und andere Hardwareelemente durch einen Prozessor, einen Speicher und andere zugehörige Vorrichtungen realisiert werden, die durch Software oder Firmware konfiguriert sind, um die Funktionen dieser Hardwareelemente zu emulieren oder zu virtualisieren.
  • Computerprogrammlogik, die die gesamte oder einen Teil der hier beschriebenen Funktionalität implementiert, ist in verschiedenen Formen verkörpert, einschließlich, jedoch nicht beschränkt auf eine Quellcodeform, eine computerausführbare Form, eine Hardwarebeschreibungsform und verschiedene Zwischenformen (z. B. Topographien oder Formulare, die von einem Assembler, Kompilierer, Linker oder Locator erstellt wurden). In einem Beispiel enthält der Quellcode eine Reihe von Computerprogrambefehlen, die in verschiedenen Programmiersprachen implementiert sind, beispielsweise einem Objektcode, einer Assemblersprache oder einer Hochsprache wie OpenCL, RTL, Verilog, VHDL, Fortran, C, C++ , JAVA oder HTML zur Verwendung in verschiedenen Betriebssystemen oder Betriebsumgebungen. Der Quellcode kann verschiedene Datenstrukturen und Kommunikationsnachrichten definieren und verwenden. Der Quellcode kann in einer computerausführbaren Form (z. B. über einen Interpreter) vorliegen oder der Quellcode kann (z. B. über einen Übersetzer, Assembler oder Kompilierer) in eine computerausführbare Form konvertiert werden.
  • In den Erörterungen der obigen Ausführungsformen können die Kondensatoren, Puffer, Grafikelemente, Zwischenverbindungsplatinen, Taktgeber, DDRs, Kamerasensoren, Umsetzer, Induktoren, Widerstände, Verstärker, Schalter, digitalen Kerne, Transistoren und/oder andere Komponenten leicht ersetzt, ausgetauscht oder auf andere Weise modifiziert werden, um besonderen Schaltungsanforderungen Rechnung zu tragen. Darüber hinaus ist zu beachten, dass die Verwendung von komplementären elektronischen Vorrichtungen, Hardware, nichtflüchtiger Software usw. eine ebenso praktikable Option zur Implementierung der Lehren der vorliegenden Offenbarung bietet.
  • In einer beispielhaften Ausführungsform kann eine beliebige Anzahl elektrischer Schaltungen der Figuren auf einer Platine einer zugeordneten elektronischen Vorrichtung implementiert sein. Die Platine kann eine allgemeine Leiterplatte sein, die verschiedene Komponenten des internen elektronischen Systems der elektronischen Vorrichtung aufnehmen und ferner Anschlüsse für andere Peripheriegeräte bereitstellen kann. Insbesondere kann die Platine die elektrischen Verbindungen bereitstellen, über die die anderen Komponenten des Systems elektrisch kommunizieren können. Beliebige geeignete Prozessoren (einschließlich Digitalsignalprozessoren, Mikroprozessoren, unterstützender Chipsätze usw.), Speicherelemente usw. können auf der Basis bestimmter Konfigurationserfordernisse, Verarbeitungsanforderungen, Computerentwürfe usw. geeignete mit der Platine gekoppelt werden. Andere Komponenten wie etwa externe Speicher, zusätzliche Sensoren, Controller für Audio-/Videoanzeige und Peripheriegeräte können als Einsteckkarten, über Kabel oder in die Platine selbst integriert an die Platine angeschlossen sein. In einer anderen beispielhaften Ausführungsform können die elektrischen Schaltungen der Figuren als eigenständige Module (z. B. eine Vorrichtung mit zugeordneten Komponenten und Schaltungen, die zum Ausführen einer bestimmten Anwendung oder Funktion ausgebildet sind) oder als Einsteckmodule in anwendungsspezifische Hardware von elektronischen Vorrichtungen implementiert sein.
  • Es ist zu beachten, dass bei den zahlreichen hierin bereitgestellten Beispielen die Wechselwirkung in Bezug auf zwei, drei, vier oder mehr elektrische Komponenten beschrieben sein kann. Dies wurde jedoch nur zum Zwecke der Klarheit und des Beispiels vorgenommen. Es versteht sich, dass das System auf jede geeignete Weise zusammengefasst werden kann. Entlang ähnlicher Entwurfsalternativen können beliebige der dargestellten Komponenten, Module und Elemente der Figuren in verschiedenen möglichen Konfigurationen kombiniert werden, die alle klar im breiten Schutzumfang dieser Beschreibung liegen. In bestimmten Fällen kann es einfacher sein, eine oder mehrere der Funktionen eines bestimmten Satzes von Abläufen zu beschreiben, wenn nur auf eine begrenzte Anzahl von elektrischen Elementen Bezug genommen wird. Es versteht sich, dass die elektrischen Schaltungen der Figuren und ihre Lehren leicht skalierbar sind und eine große Anzahl von Komponenten sowie kompliziertere/komplexere Anordnungen und Konfigurationen einbeziehen können. Dementsprechend sollten die bereitgestellten Beispiele den Schutzumfang nicht einschränken oder die allgemeinen Lehren der elektrischen Schaltungen, wie sie möglicherweise auf eine Vielzahl anderer Architekturen angewendet werden, nicht behindern.
  • Zahlreiche weitere Änderungen, Ersetzungen, Variationen, Abänderungen und Abwandlungen können Fachleuten bekannt sein und es ist beabsichtigt, dass die vorliegende Offenbarung alle derartigen Änderungen, Ersetzungen, Variationen, Abänderungen und Abwandlungen umfasst, die unter den Schutzumfang der beigefügten Ansprüche fallen. Um das Patent- und Markenamt der Vereinigten Staaten (USPTO) und darüber hinaus alle Leser eines Patents, das für diese Anmeldung erteilt wurde, bei der Auslegung der beigefügten Ansprüche zu unterstützen, möchte der Anmelder feststellen, dass der Anmelder keine der folgenden Absichten hat: (a) Die beigefügten Ansprüche sollen sich nicht auf 35 USC § 112 (f), wie er zum Anmeldetag vorliegt, berufen, es sei denn, die Worte „Mittel für“ oder „Schritte für“ werden in den jeweiligen Ansprüchen ausdrücklich verwendet; und (b) Keine Aussage in der Beschreibung soll diese Offenbarung auf irgendeine Weise beschränken, die in den beigefügten Ansprüchen ansonsten nicht wiedergegeben ist.
  • Gemäß einem Aspekt wird in einem Beispiel ein Videoprozessor offenbart, der Folgendes aufweist: einen Eingabepuffer zum Empfangen eines Eingangsbildes; eine Schneideschaltung zum Aufteilen des Eingangsbildes in mehrere N vertikale Scheiben; N parallele Eingangspuffer zur Entrasterung; N parallele Bildskalierer, wobei jeder Skalierer hardwaretechnisch dazu ausgebildet ist, eine der N vertikalen Scheiben gemäß einem Bildskalierungsalgorithmus in einer Rasterform zu skalieren; N parallele Ausgangspuffer zur Neurasterung; und einen Ausgangsmultiplexer zum Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.

Claims (20)

  1. Videoprozessor, der Folgendes aufweist: einen Eingangspuffer zum Empfangen eines Eingangsbildes; eine Schneideschaltung zum Aufteilen des Eingangsbildes in mehrere N vertikale Scheiben; N parallele Bildskalierer, wobei jeder Skalierer hardwaretechnisch dazu ausgebildet ist, eine der N vertikalen Scheiben gemäß einem Bildskalierungsalgorithmus zeilenweise zu skalieren; und einen Ausgangsmultiplexer zum Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.
  2. Videoprozessor nach Anspruch 1, der ferner eine Logik und eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms und zum Extrahieren des Eingangsbilds aus dem Eingangsvideostrom aufweist.
  3. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei jede vertikale Scheibe im Wesentlichen ein Quartil des Eingangsbildes ist.
  4. Videoprozessor nach einem der vorhergehenden Ansprüche, der eine Logik und eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms mit einer Auflösung, die aus 480p, 480i, 720p, 720i, 1080p, 1080i und 4K-Ultra-High-Definition (UHD) ausgewählt ist, und zum Skalieren des Eingangsvideostroms über die N parallelen Bildskalierer in einen Ausgangsvideostrom mit 8K-UHD-Auflösung aufweist.
  5. Videoprozessor nach einem der vorhergehenden Ansprüche, der eine Logik und eine Schaltungsanordnung zum Empfangen eines Eingangsvideostroms mit 8K-UHD-Auflösung und zum Herunterskalieren des Bildes auf eine niedrigere Auflösung über die N parallelen Bildskalierer aufweist.
  6. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei der Bildskalierungsalgorithmus eine lineare Interpolation aufweist.
  7. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei der Bildskalierungsalgorithmus eine Interpolation höherer Ordnung aufweist.
  8. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei vertikale Scheiben, die im Wesentlichen ein erstes, zweites und drittes Quartil darstellen, drei erste Pixel aus einer nachfolgenden Scheibe enthalten, und vertikale Scheiben, die ein zweites, drittes und viertes Quartil darstellen, drei letzte Pixel aus einer vorhergehenden Scheibe enthalten.
  9. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei die N Bildskalierer in Pipelines einbezogen sind.
  10. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei das Ausgangsbild ein Einzelbild eines mit einer Hochauflösungs-Multimedia-Schnittstelle (HDMI) kompatiblen Videostroms ist.
  11. Videoprozessor nach einem der vorhergehenden Ansprüche, wobei das Eingangsbild ein Einzelbild eines mit einer Hochauflösungs-Multimedia-Schnittstelle (HDMI) kompatiblen Videostroms ist.
  12. Block geistigen Eigentums (IP-Block), der den Videoprozessor eines der vorhergehenden Beispiele aufweist.
  13. Ein-Chip-System (SoC), das Folgendes aufweist: eine Schaltungsanordnung zum Empfangen eines Eingangsbildes; einen Bildschneider zum Aufteilen des Eingangsbildes in mehrere N Scheiben; N Bildskalierer, die dazu ausgelegt sind, die N Scheiben parallel zu skalieren, und die eine Interpolatorschaltung zum Interpolieren von Zwischenpixeln zwischen Pixeln in dem Eingangsbild aufweisen; und einen Ausgangsmultiplexer zum Multiplexen der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.
  14. SoC nach Anspruch 13, das ferner aufweist: N Eingangs-Entrasterungspuffer zum Empfangen des Eingangsbildes mit 1/N der Pixelrate; und einen Neurasterungspuffer zum Sammeln der N skalierten Scheiben und zum Ausgeben von diesen mit einer Pixelrate von 1.
  15. SoC nach Anspruch 13 oder 14, wobei die Interpolatorschaltung einen Interpolator höherer Ordnung aufweist und wobei mindestens einige der vertikalen Scheiben drei letzte Pixel aus einer nachfolgenden Scheibe enthalten.
  16. SoC nach einem der Ansprüche 13 bis 15, das ferner Folgendes aufweist: einen Hochauflösungs-Multimedia-Schnittstellen-Empfänger (HDMI-Empfänger) zum Empfangen eines Eingangs-HDMI-Videostroms; einen DSC-Dekomprimierer zum Dekomprimieren der HDMI-Videoeingabe und zum Extrahieren des Eingangsbildes; einen DSC-Komprimierer zum Empfangen des Ausgangsbildes und zum Codieren des Ausgangsbildes in einen skalierten Ausgangs-HDMI-Videostrom; und einen HDMI-Sender zum Senden des skalierten Ausgangs-HDMI-Videostroms.
  17. Verfahren zum Skalieren eines Bildes, das Folgendes aufweist: Empfangen eines Eingangsbildes; Aufteilen des Eingangsbildes in mehrere N Scheiben; paralleles rasterbasiertes Skalieren der N Scheiben gemäß einem Bildskalierungsalgorithmus; und Kombinieren der skalierten vertikalen Scheiben zu einem kombinierten skalierten Ausgangsbild.
  18. Verfahren nach Anspruch 17, das ferner ein Empfangen und Extrahieren des Eingangsbildes aus einem Eingangsvideostrom aufweist.
  19. Verfahren nach Anspruch 17 oder 18, das ferner ein Hochskalieren eines Bildes auf eine 8K-UHD-Auflösung oder ein Herunterskalieren des Bildes von einer 8K-UHD-Auflösung aufweist.
  20. Verfahren nach einem der Ansprüche 17 bis 19, wobei der Bildskalierungsalgorithmus eine quadratische Interpolation aufweist, und wobei mindestens einige der vertikalen Scheiben ein oder mehrere letzte Pixel aus einer vorhergehenden Scheibe enthalten.
DE102019130366.4A 2018-11-12 2019-11-11 Bildskalierung Pending DE102019130366A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/188,209 2018-11-12
US16/188,209 US10972744B2 (en) 2018-11-12 2018-11-12 Image scaling

Publications (1)

Publication Number Publication Date
DE102019130366A1 true DE102019130366A1 (de) 2020-05-14

Family

ID=70469256

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019130366.4A Pending DE102019130366A1 (de) 2018-11-12 2019-11-11 Bildskalierung

Country Status (4)

Country Link
US (2) US10972744B2 (de)
KR (1) KR20200055668A (de)
CN (1) CN111182305B (de)
DE (1) DE102019130366A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190311697A1 (en) * 2016-12-01 2019-10-10 Lg Electronics Inc. Image display device and image display system comprising same
US10972744B2 (en) * 2018-11-12 2021-04-06 Analog Devices International Unlimited Company Image scaling
US11631159B2 (en) * 2020-03-31 2023-04-18 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Zoom control of digital images on a display screen
WO2022120385A1 (en) * 2020-12-03 2022-06-09 Sying, Inc. Devices and methods for audio signal transmission from hdmi to usb-c
CN114205486B (zh) * 2022-01-27 2024-05-17 卡莱特云科技股份有限公司 一种基于Scaler的视频文件实时缩放方法及视频处理器
US20240169883A1 (en) * 2022-11-17 2024-05-23 Qualcomm Incorporated Power efficient display architecture
WO2024116449A1 (ja) * 2022-11-30 2024-06-06 パナソニックIpマネジメント株式会社 音声再生装置、制御方法、および、プログラム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950006769B1 (ko) * 1992-12-31 1995-06-22 현대전자산업주식회사 고선명 텔레비젼의 색차신호 동벡터 추출방법 및 움직임 보상장치
US5949490A (en) * 1997-07-08 1999-09-07 Tektronix, Inc. Distributing video buffer rate control over a parallel compression architecture
US6832009B1 (en) 1999-09-24 2004-12-14 Zoran Corporation Method and apparatus for improved image interpolation
US7292772B2 (en) * 2000-05-29 2007-11-06 Sony Corporation Method and apparatus for decoding and recording medium for a coded video stream
US20040183817A1 (en) 2002-12-03 2004-09-23 Bitstream Inc. Methods, systems, and programming for scaled display of web pages
JP2005049834A (ja) * 2003-07-11 2005-02-24 Matsushita Electric Ind Co Ltd メディアデータ表示装置、メディアデータ表示方法およびメディアデータ表示プログラム
US7411628B2 (en) * 2004-05-07 2008-08-12 Micronas Usa, Inc. Method and system for scaling, filtering, scan conversion, panoramic scaling, YC adjustment, and color conversion in a display controller
EP1839446A1 (de) * 2005-01-19 2007-10-03 THOMSON Licensing Verfahren und vorrichtung zur echtzeit- parallelkodierung
EP1908303A4 (de) * 2005-07-01 2011-04-06 Sonic Solutions Verfahren, vorrichtung und system zur verwendung bei der multimediasignalcodierung
US8195008B2 (en) * 2007-06-28 2012-06-05 Broadcom Corporation Method and system for processing video data in a multipixel memory to memory compositor
US8159606B2 (en) 2008-08-04 2012-04-17 Thomson Licensing Method and apparatus for reversible, polynomial based image scaling
WO2011002914A1 (en) * 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
US20110078236A1 (en) 2009-09-29 2011-03-31 Olsen Jr Dan R Local access control for display devices
CN101697114B (zh) * 2009-10-23 2012-02-08 广东威创视讯科技股份有限公司 多屏拼接显示处理方法和装置
US8982964B2 (en) * 2010-09-16 2015-03-17 Panasonic Intellectual Property Management Co., Ltd. Image decoding device, image coding device, methods thereof, programs thereof, integrated circuits thereof, and transcoding device
WO2012112929A2 (en) * 2011-02-17 2012-08-23 The Johns Hopkins University Methods and systems for registration of radiological images
US8687922B2 (en) * 2012-02-24 2014-04-01 Apple Inc. Parallel scaler processing
US9232139B2 (en) * 2012-07-24 2016-01-05 Apple Inc. Image stabilization using striped output transformation unit
US10448032B2 (en) * 2012-09-04 2019-10-15 Qualcomm Incorporated Signaling of down-sampling location information in scalable video coding
US9349072B2 (en) 2013-03-11 2016-05-24 Microsoft Technology Licensing, Llc Local feature based image compression
KR20140129607A (ko) * 2013-04-30 2014-11-07 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
US9307191B2 (en) 2013-11-19 2016-04-05 Microsoft Technology Licensing, Llc Video transmission
KR102210956B1 (ko) 2014-01-06 2021-02-02 삼성전자주식회사 영상표시장치 및 영상표시장치의 구동방법, 이동단말장치 및 이동단말장치의 구동방법
US9405446B1 (en) * 2014-03-24 2016-08-02 Amazon Technologies, Inc. Efficient and interactive presentation of item images
CN104104888A (zh) * 2014-07-01 2014-10-15 大连民族学院 一种并行多核fpga数字图像实时缩放处理方法和装置
US10073553B2 (en) 2014-09-22 2018-09-11 Google Llc Scripting cross-device wearable interaction
US10277904B2 (en) * 2015-08-28 2019-04-30 Qualcomm Incorporated Channel line buffer data packing scheme for video codecs
US10120187B2 (en) * 2016-02-18 2018-11-06 Nvidia Corporation Sub-frame scanout for latency reduction in virtual reality applications
GB2556908B (en) * 2016-11-24 2021-10-13 Emdalo Tech Limited Ie System and method for determining the presence of objects in an image
US10972744B2 (en) * 2018-11-12 2021-04-06 Analog Devices International Unlimited Company Image scaling

Also Published As

Publication number Publication date
CN111182305A (zh) 2020-05-19
US20200154120A1 (en) 2020-05-14
CN111182305B (zh) 2022-03-01
US10972744B2 (en) 2021-04-06
KR20200055668A (ko) 2020-05-21
US20210203966A1 (en) 2021-07-01
US11463715B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
DE102019130366A1 (de) Bildskalierung
DE69635970T2 (de) Schaltung und Verfahren zur Umwandlung eines Fernsehsignals
US20120314777A1 (en) Method and apparatus for generating a display data stream for transmission to a remote display
JP5639089B2 (ja) ピクチャ系列を表示する方法及び装置
CN1973535A (zh) 缩减并混和两个高分辨率图像的设备和方法
DE102015108424A1 (de) Dynamische Frame-Wiederholung in einem Variable-Wiederauffrischungs-Rate-System
DE102013020808A1 (de) Effiziente Autostereo-Unterstützung unter Verwendung von Anzeigesteuerungsfenster
CN105657485A (zh) 一种音视频播放设备
DE202014011562U1 (de) Modusunabhängige Video und Standbildframeaufnahme
DE5816786T1 (de) Mobile informationskommunikationsvorrichtung, verbindungseinheit für eine mobile informationskommunikationsvorrichtung und externe eingabe-/ausgabeeinheit für eine mobile informationskommunikationsvorrichtung
CN106063260B (zh) 视频处理器、视频处理器的工作方法
EP2763401A1 (de) Eingebettetes System zur Videoverarbeitung mit Hardware-Mitteln
DE60009140T2 (de) Verfahren und system zur dekodierung von videosequenzen und grafiken
DE69020753T2 (de) Farbfernsehbildfenster für ein Videoanzeigegerät.
DE202012013682U1 (de) Videokommunikation mit ultraniedriger Latenz
WO2016012441A1 (de) Einrichtung und verfahren zum anzeigen von informationen auf einer mehrere einzelne bildschirm-module aufweisenden bildschirm-anordnung
DE112015001136T5 (de) Komprimierte Austastlückenübertragung über eine Multimedia-Verbindung
DE69839079T2 (de) System und verfahren für 2-abgriff/3-abgriff flimmerfiltern
DE202016008753U1 (de) Bei Gigabit-Ethernet anwendbare vernetzte Videokommunikation
CN205005201U (zh) 一种音视频播放设备
CN107529024A (zh) 多功能图像视频切换板
DE102007021546A1 (de) Kantenglättung mit Hilfe mehrerer Anzeigeköpfe eines Grafikprozessors
WO2017158850A1 (ja) 画像処理装置、および画像処理方法
JP4997172B2 (ja) 画像分割処理用の画像信号処理装置、方法及びプログラム
CN105516633A (zh) 一种图像处理系统

Legal Events

Date Code Title Description
R012 Request for examination validly filed