-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität nach 35 U.S.C. §120 der vorläufigen US-Anmeldungen mit den Nummern US 61/426,970 und US 61/426,975, welche beide am 23. Dezember 2010 beim US-amerikanischen Patent- und Markenamt eingereicht wurden. Die Offenbarungen der beiden vorläufigen Anmeldungen werden hiermit durch Inbezugnahme mit aufgenommen.
-
1. Technisches Gebiet
-
Das vorliegende erfinderische Konzept betrifft eine digitale Bildstabilisierung (DIS) und insbesondere ein Verfahren zum Rotieren eines Ziel-Rahmenabschnitts eines Quell-Rahmens, basierend auf einer Fenstertechnik-Interpolation der Pixel in einer horizontalen Zeile eines Ziel-Meta-Rahmens, und Ausgeben der interpolierten Pixel des Ziel-Rahmens in Rasterordnung.
-
2. Diskussion des Standes der Technik
-
Digitalkameras, digitale Videokameras und tragbare Vorrichtungen einschließlich solcher Kameras werden häufig dazu verwendet, Bilder oder Videos aufzunehmen, während die Kamera in der Hand eines Bedieners betrieben wird. Daher kann die Videokamera in der Hand des Bedieners wackeln oder zittern, während das Bild oder das Video aufgenommen wird. Das Zittern kann eine horizontale Komponente, eine vertikale Komponente und eine Drehkomponente enthalten. Das Zittern kann das mit der Hand aufgenommene Video für den Betrachter störend oder verwirrend machen und daher ist es wünschenswert, digitale Schaltkreise zu verwenden, um die Kamera-Trajektorie digital zu beurteilen (d. h., das zwischen jedem Paar von aufeinanderfolgenden Rahmen erfasste Zittern) und um das Zittern aus einer Sequenz von Videorahmen der gleichen Szene zu entfernen.
-
Das durch eine festgelegte, entweder stationäre oder sich bewegende Videokamera erzeugte Video enthält hauptsächlich gleichmäßige Bewegungen (Translation, Rotation) in dem aufgenommenen Video. Andererseits erzeugt eine wackelige Videokamera ein Video mit hochfrequentem Zittern (translatorisch und/oder rotatorisch) bei allen Videobildern.
-
Ein digitales Bildstabilisierungs(DIS)-System beurteilt zunächst unerwünschte (unbeabsichtigte) Bewegung und wendet anschließend Korrekturen (Kompensationen) auf jeden Rahmen in der Bildsequenz an. Der visuelle Effekt eines stabilisierten Videos hängt im hohem Maße von der Qualität der Kamera-Trajektorien-Beurteilung ab. Die globale Bewegung der Kamera/Szene wird analysiert, um zwischen beabsichtigter (z. B. Schwenken) und unbeabsichtigter (Zittern) globaler Bewegung zu unterscheiden.
-
In der Mathematik ist die affine Geometrie die Lehre der geometrischen Eigenschaften, welche durch affine Transformationen unverändert bleiben, d. h., nicht-singuläre lineare Transformationen und Translationen. Ein mathematisches System von durch numerische Koeffizienten definierten Gleichungen, als eine affine Matrix bezeichnet, wurde entwickelt, um das Horizontale, Vertikale, Rotationale und Skalare (bspw. Heranzoomen oder Herauszoomen) der Bewegung, welche zwischen jedem Paar von auf einanderfolgenden Rahmen oder zwischen Abschnitten von diesen (bspw. bewegende Objekte in den Rahmen) erfasst werden, zu kennzeichnen. Die affine Transformationsgleichung ist: x' = sx·x + ry·y + tx y' = rx·x + sy·y + ty wobei (x, y) eine Ziel-Rahmen-Pixelposition ist, und (x', y') die berechnete Quell-Rahmen-Pixelposition nach der affinen Transformation ist, sx, ry, rx, sy, tx und ty sind die affinen Transformations-Koeffizienten.
-
Diese mathematische Beschreibung der Gruppe kann lineare Verschiebung, einen Rotationswinkel, einen Maßstab usw. der Szene enthalten.
-
Das Kamerazittern kann durch eine erste mit irgendwelchen tatsächlich stationären Objekten (z. B. Felsen, Tische, geparkte Fahrzeuge, Berge, die Sonne) in der Szene in Beziehung stehende affine Transformationsmatrix P(n), welche als eine Haupttransformation P(n) oder eine globale Transformation bezeichnet wird, gekennzeichnet sein, während irgendwelche sich bewegenden Objekte (z. B. Vögel, Personen, Bälle, sich bewegende Fahrzeuge, vorbeifahrende Züge) in dem Rahmen durch zusätzliche affine Matrizen Ti(n) gekennzeichnet sein können. Daher kann die Haupttransformation P(n) als eine kompakte Beschreibung der Bewegung des Hintergrundes in dem Rahmen dienen. Transformationen mit kleinen Bewegungen sind als Haupttransformationen P(n) wahrscheinlicher.
-
Sobald die Haupttransformation P(n) erhalten ist, wird diese auf den Quell-Rahmen der aufgenommenen Bilddaten angewendet, und dadurch wird ein korrigierter Ziel-Rahmen erhalten. Wenn die Haupttransformation P(n) eine Drehkomponente enthält, können die Quell-Rahmen-Daten innerhalb der gleichen Zeile des Ziel-Rahmens aus vielen verschiedenen Zeilen des Quell-Rahmens hervorgehen.
-
Die Quell-Rahmen-Pixelposition, welche bestimmt wurde, einer bestimmten Ziel-Rahmen-Pixelposition entsprechen, stimmt möglicherweise nicht exakt mit der Mitte eines vorhandenen Pixels in dem Quell-Rahmen überein. Die Quell-Rahmen-Pixelposition, welche bestimmt wurde, einer bestimmten Ziel-Rahmen-Pixelposition zu entsprechen, kann sogar äquidistant zwischen zwei oder vier benachbarten Pixeln des Quell-Rahmens angeordnet sein. Daher wird keines dieser benachbarten Pixel einzeln die gleiche Helligkeit und Farbe wie das entsprechende Ziel-Rahmen-Pixel aufweisen, deren Durchschnitt jedoch schon. Wenn eine Rotationsbewegung vorliegt, werden sodann viele oder die meisten Pixel des Ziel-Rahmens nicht exakt mit ganzen Pixeln in dem Quell-Rahmen übereinstimmen. In solchen Fällen ist es notwendig, jedes Pixel der Ziel-Rahmen-Bilddaten Ddf von den Bilddaten Dsf einer Mehrzahl von benachbarten Pixeln des Quell-Rahmens zu interpolieren. Diese Interpolation wird unter Verwendung einer affinen Transformationsmatrix, basierend auf den affinen Transformations-Koeffizienten sx, ry, rx, sy, tx und ty durchgeführt. Jedoch können aufgrund des Rotationswinkels des Ziel-Rahmens relativ zu dem Quell-Rahmen die Quell-Rahmen-Daten von Pixeln innerhalb irgendeiner gegebenen Zeile Rd des Ziel-Rahmens aus unterschiedlichen Zeilen des Quell-Rahmens hervorgehen. Falls der Rotationswinkel bspw. ±45 Grad beträgt, können dann die Quell-Rahmen-Daten von Pixeln innerhalb der mittleren Zeile Rd des Ziel-Rahmens aus einem Bereich von Quell-Rahmen-Zeilen hervorgehen, welcher einen Großteil der vertikalen Dimension des Quell-Rahmens umfasst. Daher ist ein Ansatz zum Ausgeben einens Ziel-Rahmens, den Quell-Rahmen in Kacheln (Blöcke) aufzuteilen und lediglich einen Abschnitt jedes Ziel-Rahmens (Zeile Rd) von jeder aus der Mehrzahl von Kacheln (Blöcken) zu interpolieren.
-
Zum Kodieren der Helligkeit und der Farbe von jedem Pixel eines Bildes können verschiedene Datenformate verwendet werden. Ein System ist das der Graustufendaten, bei dem lediglich ein Luma(Y)-Datenwert pro Pixel gespeichert wird. Ein weiteres System ist das 8-Bit-4:2:2-Datenformat, bei dem 4 Luma(Y)-Werte und 2 Chroma(Cb und Cr)-Werte von 4 Pixeln in einem Verhältnis von 4:2:2 gespeichert werden, da das menschliche Auge auf Details der Lichthelligkeit sensibler reagiert als auf Details der Farbvariation. Daher kann es beim Interpolieren eines Pixels eines Ziel-Rahmens von einem Quell-Rahmen optimal sein, verschieden große Interpolationsbereiche für die Luma- und Chroma-Datenwerte zu verwenden. Bspw. kann ein 4×8-Bereich der Luma(Y)-Daten und ein 4×4-Bereich der Chroma(Cb und Cr)-Daten vom dem Quell-Rahmen zur Interpolation jedes Pixels des Ziel-Rahmens in dem 8-Bit-4:2:2-Datenformat verwendet werden.
-
Die Kachel(Block)-Form des Speicher-Managementkonzepts weist einen Mehraufwand auf, um auf die überlappenden Quell-Rahmen-Daten zwischen den benachbarten Kacheln und ebenso die ausgegebenen Ziel-Rahmen-Daten in der Blockform zuzugreifen. Wenn nachfolgende Stufen der Bildverarbeitung die Ziel-Rahmen-Bilddaten in Rasterordnung benötigen (z. B. gesamte Zeilen der Pixel von links nach rechts), erfordert der Aufwand des Verknüpfens dieser Blöcke der interpolierten Ziel-Rahmen-Daten und des Auslesens der Pixel jeder Zeile Rd in Rasterordnung eine größere Bus-Bandbreite, oder erfordert mehrere Zeilenpuffer, um dies zu erreichen.
-
KURZFASSUNG
-
Ein Aspekt des erfinderischen Konzepts sieht ein Pixel-Interpolationsverfahren vor, um eine Bildrotation ohne überlappenden Quell-Rahmen-Zugriff zwischen benachbarten Kacheln durchzuführen. Das offenbarte Verfahren benötigt keinen zusätzlichen rechnerischen Aufwand oder Speicheraufwand, um Zieldaten in Rasterordnung zu erzeugen.
-
Ein Aspekt der Erfindung sieht ein Verfahren zur digitalen Bildstabilisierung, einschließlich Anwenden einer Haupttransformation P(n), welche ein stationäres-/Hintergrund-Objekt in der Szene eines Videorahmens darstellt, vor.
-
Gemäß einer Ausführungsform wird in einer ersten affinen Transformationsvorrichtung der Kompensationseinheit, basierend auf den empfangenen affinen Koeffizienten sx, sy, rx, ry, tx und ty und basierend auf berechneten Ziel-Rahmen-Koordinaten, eine affine Transformation durchgeführt, um die entsprechenden physikalischen Speicherpositionen der erforderlichen Pixeldaten des Quell-Rahmens zu erzeugen. In einigen Farbdaten-Systemen ist zum Durchführen eines Interpolationsvorganges für jedes Pixel des Ziel-Rahmens ein Interpolationsbereich von Daten (z. B. 4 Zeilen mal 8 Spalten) von dem Quell-Rahmen erforderlich. Um auf die erforderlichen Daten für die Rotations-Bildtransformation von dem Quell-Rahmenbereich zuzugreifen, greift das offenbarte Verfahren auf die Pixel des Quell-Rahmens in diagonal angeordneten Meta-Zeilen, die einer Zeile des Ziel-Rahmens entsprechen, zu, und positioniert diese Quell-Daten-Pixel horizontal in mehrere Zeilenpuffer neu, wobei die in den Zeilenpuffern gespeicherten Daten inhaltlich einer oder mehreren gesamten Zeilen von Pixeln in den Ziel-Rahmen entsprechen. Daher kann die Interpolation für eine oder mehrere gesamte Zeilen des Ziel-Rahmens in Rasterordnung fortschreiten.
-
Beispielhafte Ausführungsformen der vorliegenden Erfindung führen eine affine Transformation (Bild-Interpolation) mit Translation, Skalierung und Rotation durch. Sämtliche zum Erzeugen der interpolierten Pixel der aktuellen Zeile Rd des Ziel-Rahmens benötigten Quell-Rahmen-Daten werden innerhalb mehrerer Zeilenpuffer eines Meta-Rahmen-Puffers ausgerichtet. Ein horizontal bewegendes Fensterverfahren wird während des Quell-Rahmen-Daten-Interpolationsverfahrens zum Erzeugen der Ziel-Rahmen-Daten in Rasterordnung verwendet. Die Gestalt des erforderlichen Speicher-Fensterbereichs (z. B. 4×8) des Quell-Rahmens zur Interpolation jedes Pixels des Ziel-Rahmens wird umgestellt, falls die Quell-Rahmen-Daten in dem Zeilenpuffer von unterschiedlichen Zeilen des Quell-Rahmens kommen.
-
Eine Bildverarbeitungsschaltung ist zum Rotieren eines Bildes vorgesehen, mit: einer ersten Transformationsvorrichtung, welche konfiguriert ist zum Erzeugen eines einzelnen Satzes von horizontalen Positionen, welche den. Beginn und das Ende jeder Meta-Zeile von Pixeln in einem Ziel-Meta-Rahmenabschnitt eines ursprünglichen Bild-Rahmens angeben; einer Steuerung für direkten Speicherzugriff, welche dafür eingerichtet ist, jede Meta-Zeile von Pixeln in dem Ziel-Meta-Rahmenabschnitt zu lesen und jede Meta-Zeile horizontal in einen von einer Mehrzahl von Zeilenpuffern zu schreiben; und einer zweiten affinen Transformationsvorrichtung, welche dafür eingerichtet ist ist, jedes Pixel des Ziel-Rahmens zu interpolieren und zu rotieren und die rotierten Pixel in Rasterandordnung auszugeben.
-
Gemäß einer Ausführungsform berechnet das Verfahren die Positionen der Bilddaten, welche innerhalb diagonaler Meta-Zeilen in dem Quell-Rahmen diagonal verteilt sind, und führt Zeilenpuffer-Speichermanagement-Aufgaben durch, um die Rotation eines Bildes mit einem Winkel von bis zu ±45 Grad zu unterstützen.
-
Ein Aspekt des vorliegenden erfinderischen Konzepts sieht eine Bildverarbeitungsschaltung zum Rotieren eines Bildes vor, mit: einer ersten Transformationsvorrichtung, welche konfiguriert ist zum Erzeugen eines Satzes von horizontalen Positionen, welche den Beginn und das Ende jeder Meta-Zeile von Pixeln in einem rotierten Ziel-Rahmenabschnitt eines ursprünglichen Bild-Rahmens angeben; einer Steuerung für direkten Speicherzugriff, welche konfiguriert ist zum Lesen jeder Meta-Zeile von Pixeln in einem Ziel-Rahmenabschnitt und zum Schreiben jeder Zeile in einen von einer Mehrzahl von Zeilenpuffern; und einer zweiten affinen Transformationsvorrichtung, welche konfiguriert ist zum Interpolieren jedes Pixels des rotierten Ziel-Rahmens und zum Ausgeben der Pixel in Rasterordnung.
-
Das Fenster-Interpolations-Bewegungsfenster-Verfahren erzeugt die Ziel-Rahmen-Daten in Rasterordnung. Die Interpolations-Fenster-Mittelposition (x', y') wird basierend auf einer Rotationsgleichung, beispielweise mit affinen Transformations-Gleichungs-Koeffizienten berechnet. Die Interpolations-Fenster-Gestalt und -Position wird in Abhängigkeit von der Mittelposition y' und der vertikalen Position, wo die Quell-Daten in den Zeilenpuffern gespeichert sind, angepasst.
-
Ein weiterer Aspekt des vorliegenden erfinderischen Konzepts sieht ein Verfahren zum Rotieren eines Ziel-Rahmenabschnitts eines ursprünglichen Rahmens gemäß affinen Transformations-Koeffizienten vor, aufweisend: Kopieren der Daten, die den Pixeln der ersten Zeile des Ziel-Rahmens entsprechen, in den ersten aus einer Mehrzahl von Zeilenpuffern, basierend auf den affinen Transformations-Koeffizienten; Kopieren der Daten, die den Pixeln der zweiten Zeile des Ziel-Rahmens entsprechen, in den zweiten aus der Mehrzahl von Zeilenpuffern, basierend auf den affinen Transformations-Koeffzienten; Interpolieren und Rotieren jedes Pixels der Reihe nach in der ersten Zeile des Ziel-Rahmens, basierend auf den in der Mehrzahl von Zeilenpuffern gespeicherten Daten, und Ausgeben der interpolierten Pixel der ersten Zeile des Ziel-Rahmens in Rasterordnung, und anschließendes Interpolieren und Rotieren jedes Pixels der Reihe nach in der zweiten Zeile des Ziel-Rahmens, basierend auf den in der Mehrzahl von Zeilepuffern gespeicherten Daten, und Ausgeben der interpolierten Pixel der zweiten Zeile des Ziel-Rahmens in Rasterordnung.
-
Ein weiterer Aspekt der Erfindung sieht ein Verfahren zum Anwenden einer Haupttransformation P(n), welche ein stationäres-/Hintergrund-Objekt in der Szene eines Videorahmens darstellt, vor.
-
Ein weiterer Aspekt der vorliegenden Erfindung sieht ein Verfahren zum Rotieren eines Ziel-Rahmenabschnitts eines Quell-Rahmens gemäß affinen Transformations-Koeffizienten vor, aufweisend: Kopieren der Bilddaten von Pixeln eines Quell-Rahmens in einer ersten Meta-Zeile, die den Pixeln der ersten Zeile des Ziel-Rahmens entsprechen, in einen ersten Zeilenpuffer, basierend auf den affinen Transformations-Koeffizienten; Kopieren der Bilddaten von Pixeln eines Quell-Rahmens in einer zweiten Meta-Zeile, die den Pixeln der ersten Zeile des Ziel-Rahmens entsprechen, in einen zweiten Zeilenpuffer, basierend auf den affinen Transformations-Koeffizienten; und Interpolieren jedes Pixels der ersten Zeile des Ziel-Rahmens der Reihe nach, basierend auf den Bilddaten, welche in den ersten und zweiten Zeilenpuffern gespeichert sind, und Ausgeben der interpolierten Pixel der ersten Zeile des Ziel-Rahmens in Rasterordnung.
-
Das beispielhafte Verfahren kann ferner aufweisen: Kopieren der Bilddaten von Pixeln des Quell-Rahmens in einer dritten Meta-Zeile, die den Pixeln der ersten Zeile des Ziel-Rahmens entsprechen, in einen dritten Zeilenpuffer, basierend auf den affinen Transformations-Koeffizienten; Kopieren der Bilddaten von Pixeln des Quell-Rahmens in einer vierten Meta-Zeile, die den Pixeln der ersten Zeile des Ziel-Rahmens entsprechen, in einen vierten Zeilenpuffer, basierend auf den affinen Transformations-Koeffizienten; und Interpolieren jedes Pixels der ersten Zeile des Ziel-Rahmens der Reihe nach, basierend auf den Bilddaten, welche in den ersten, zweiten, dritten und vierten Zeilenpuffern gespeichert sind, und Ausgeben der interpolierten Pixel der ersten Zeile des Ziel-Rahmens in Rasterordnung.
-
Verschiedene beispielhafte Ausführungsformen des erfinderischen Konzepts behandeln affine Transformationen, einschließlich translatorischer und rotatorischer Bewegung innerhalb eines bestimmten Rotationsgrades (z. B. bis zu ±45 Grad). Verschiedene andere beispielhafte Ausführungsformen des erfinderischen Konzepts sind optimiert, um affine Transformationen, einschließlich translatorischer und rotatorischer Bewegung innerhalb eines 4:2:2-Datenformats und eines geringeren Rotationsgrads zu behandeln.
-
Da die Quell-Rahmen-Daten von Pixeln innerhalb der gleichen Zeile Rd des Ziel-Rahmens von unterschiedlichen Zeilen des Quell-Rahmens stammen können, ist es ein erster Schritt, die Quell-Rahmen-Daten in horizontale Meta-Zeilen, entsprechend dem Winkel der Rotation des Ziel-Rahmens, neu anzuordnen. Der erste Schritt ordnet sämtliche benötigten Quell-Rahmen-Daten, die einer gesamten Zeile Rd eines Ziel-Rahmens entsprechen, innerhalb mehrerer horizontaler Zeilenpuffer, welche Meta-Zeilen der Quell-Rahmen-Daten Dsf horizontal speichern, an. Vorzugsweise kann jede Zeile des Puffer-Speichers zeitgleich während des Interpolationsverfahrens gelesen werden, und alle Zeilen des Puffer-Speichers, welche in das Interpolationsverfahren dann nicht involviert sind, können zeitgleich mit den nächsten benötigten Quell-Rahmen-Daten beschrieben werden. Daher ist vorzugsweise jede Zeile des Puffer-Speichers als ein unabhängig zugänglicher Zeilenpuffer implementiert.
-
Wenn die benötigten Quell-Rahmen-Daten in dem Puffer-Speicher verfügbar sind, wird ein einfaches und gleichmäßiges horizontales Bewegungsfenster-Interpolationsverfahren durchgeführt zum Erzeugen der Ziel-Rahmen-Daten Ddf jedes Pixels in jeder Zeile Rd des Ziel-Rahmens in Rasterordnung.
-
Die Größe des Meta-Rahmen-Puffers, welche zum Speichern der horizontalen Meta-Zeilen der Quell-Rahmen-Daten Dsf benötigt wird, wird in verschiedenen beispielhaften Ausführungsformen durch Wiederverwenden eines k-Zeilenpuffers reduziert, wobei k eine ganze Zahl ist, um die Ziel-Rahmen-Daten Ddf, die einer oder mehreren Zeilen Rd des Ziel-Rahmens entsprechen, temporär zu speichern. Falls das horizontale Bewegungsfenster ein Nennmaß von 4×4 Pixel oder 4×8 Pixel aufweist, werden dann lediglich vier Zeilen des Zeilenpuffers benötigt, um Ziel-Rahmen-Daten Ddf, die einer oder mehreren Zeilen Rd des Ziel-Rahmens entsprechen, zu speichern, falls der Rotationswinkel des Ziel-Rahmens gleich Null ist (siehe beispielsweise 14). Falls das Bewegungsfenster jedoch einen Nennmaß von 4×4 Pixel aufweist, und falls der Rotationswinkel des Ziel-Rahmens gleich ±45 Grad ist, werden dann sieben Zeiten des Zeilenpuffers benötigt, um die Ziel-Rahmen-Daten Ddf, die lediglich einer Zeile Rd des Ziel-Rahmens entsprechen, zu speichern. Daher enthält ein Sieben-Zeilenpuffer, welcher sieben horizontale Meta-Zeilen der Quell-Rahmen-Daten Dsf speichert, genügend Daten, um in Abhängigkeit von dem Rotationswinkel des Ziel-Rahmens wenigstens eine, und bis zu vier gesamte Zeilen Rd des Ziel-Rahmens 4×4 zu interpolieren. Falls das Interpolationsfenster ein Nennmaß von 4×8 Pixel aufweist, kann dann ein Sieben-Zeilenpuffer einen Rotationswinkel von bis zu 22,5 Grad verarbeiten. Falls der Rotationswinkel des Ziel-Rahmens gleich ±45 Grad ist, werden mehr als sieben Zeilen des Puffers benötigt, um die Ziel-Rahmen-Daten Ddf, die einer Zeile Rd des Ziel-Rahmens entsprechen, zu speichern.
-
Die geteilte Gestalt des horizontalen Bewegungsfensters des Interpolationsschrittes wird sich in Abhängigkeit des Rotationswinkels des Ziel-Rahmens und bei niedrigen Winkeln verändern, abhängig davon, ob dieses durch keine Unterbrechungslinien, durch eine Unterbrechungslinie oder durch mehrere Unterbrechungslinien geteilt ist. In einigen beispielhaften Ausführungsformen ist der Rotationswinkel derart limitiert, dass jedes Bewegungsfenster des Interpolationsschrittes durch höchstens eine Unterbrechungslinie geteilt wird (siehe beispielsweise 15).
-
Ein Aspekt der Erfindung sieht einen digitalen Bildstabilisierungsschaltkreis vor, welcher dafür eingerichtet ist, die hierin offenbarten DIS-Verfahren durchzuführen. Der Schaltkreis, welcher eingesetzt wird, um das durch die Trajektorie der Kamera hervorgerufene Zittern von einer Sequenz von Videorahmen herauszufiltern, kann innerhalb einer Kamera enthalten sein, und betätigt werden, um das Zittern vor dem Speichern der aufgenommenen Videorahmen in Echtzeit zu entfernen. Alternativ kann der DIS-Schaltkreis, welcher eingesetzt wird, um die Trajektorie der Kamera zwischen aufeinanderfolgenden Videorahmen zu beurteilen, und um das Zittern von einer gespeicherten Sequenz von Videorahmen herauszufiltern, ein Mehrzweck-Mikrocomputer sein, welcher durch Software gesteuert wird, die ein digitales Bildstabilisierungs-(DIS)-Verfahren verkörpert, oder kann eine bestimmte Hardware, wie ein MEPG-Videoencoder, sein, welcher in einem ASIC (application specific integrated circuit = anwendungsspezifischer integrierter Schaltkreis) verkörpert ist, welcher dafür optimiert ist, ein digitales Bildstabilisierungs-(DIS)-Verfahren durchzuführen.
-
Beispielhafte Ausführungsformen des erfinderischen Konzepts werden nachfolgend mit Bezug auf die beigefügten Abbildungen detaillierter beschrieben. Das erfinderische Konzept kann jedoch in verschiedenen Gestalten ausgeführt sein, und sollte nicht dahingehend ausgelegt werden, dass dieses auf die hierin dargelegten Ausführungsformen beschränkt ist. Diese Ausführungsformen sind vielmehr vorgesehen, so dass diese Offenbarung gründlich und vollständig ist, und den Schutzumfang des erfinderischen Konzepts dem Fachmann vollständig vermitteln wird. Gleicher Nummerierungen beziehen sich durchgängig auf gleiche Elemente.
-
KURZE BESCHREIBUNG DER ABBILDUNGEN
-
Die beigefügten Abbildungen sind enthalten, um für ein besseres Verständnis des erfinderischen Konzepts zu sorgen, und sind in dieser Spezifikation aufgenommen und bilden einen Teil dieser. Die Abbildungen stellen beispielhafte Ausführungsformen des erfinderischen Konzepts dar, und dienen zusammen mit der Beschreibung dazu, die Prinzipien des erfinderischen Konzepts zu erläutern. In den Figuren ist:
-
1 ein Blockdiagramm eines digitalen Bildstabilisierungs-(DIS)-Schaltkreises, welcher gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ein DIS-Verfahren durchführt;
-
2 ein Blockdiagramm der DIS-Kompensationseinheit in dem DIS-Schaltkreis von 1, welche dafür eingerichtet ist, die Kompensationstransformation P(n) auf die aufgenommenen Quell-Rahmen-Bilddaten Dsf anzuwenden, die Daten Ddf der Pixel eines Ziel-Rahmens zu interpolieren und zu rotieren und in Rasterordnung auszugeben;
-
3 ein Diagramm des aufgenommenen Quell-Rahmens mit einem beispielhaften Ziel-Meta-Rahmen, welcher eine Mehrzahl von diagonal orientierten Meta-Zeilen aufweist, die jeweils eine Teilmenge der Quell-Rahmen-Bilddaten Dsf enthalten und die relative Position eines Ziel-Rahmens, welche durch Interpolieren der Quell-Rahmen-Bilddaten Dsf, die in den Meta-Zeilen des Ziel-Meta-Rahmens enthalten sind, erhalten werden soll, darstellen, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts;
-
4 ein Diagramm eines Abschnittes von horizontalen Meta-Zeilen des in 3 gezeigten beispielhaften Ziel-Meta-Rahmens, wie in einem Luma-Y-Meta-Rahmen-Puffer gespeichert, und der Interpolationsfenster von drei beispielhaften Pixeln des Ziel-Rahmens gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts;
-
5 ein Diagramm, welches vierzehn diagonale, in Stufen ausgerichtete Meta-Zeilen eines beispielhaften Ziel-Meta-Rahmens, und eine Mehrzahl von regelmäßig beabstandeten vertikalen Unterbrechungslinien, die eine Mehrzahl von geteilten/verschobenen/abgestuften Spaltengruppen in einem Ziel-Meta-Rahmen definieren, zeigt;
-
6 ein Diagramm, welches horizontale Meta-Zeilen zeigt, die in dem Luma-Y-Meta-Rahmen-Puffer gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts gespeichert sind;
-
7A ein Flussdiagramm eines Verfahrens des sequenziellen horizontalen Anordnens von diagonalen, in Stufen ausgerichteten Meta-Zeilen eines Ziel-Meta-Rahmens in einem Quell-Rahmen-Bild, und des Schreibens der horizontalen Bilddaten Dsf in Zeilen des Meta-Rahmen-Puffers für die Bewegungsfenster-Interpolation der Pixel in Rasterordnung gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts;
-
7B ein Flussdiagramm eines weiteren Verfahrens des sequenziellen horizontalen Anordnens jeder Gruppe der k + 1 diagonal, stufenweise ausgerichteten Meta-Zeilen eines Ziel-Meta-Rahmens in einem Quell-Rahmen-Bild, und des Schreibens der k + 1 Zeilen der horizontalen Bilddaten in einen (k + 1)-Zeilen-Meta-Rahmen-Puffer für die Bewegungsfenster-Interpolation der Pixel in Rasterordnung gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts;
-
8 ein Flussdiagramm eines beispielhaften Verfahrens des sequenziellen Interpolierens jedes Pixels jeder Zeile eines Ziel-Rahmens durch Bewegungsfenster-Interpolation von Bilddaten in horizontalen Meta-Zeilen des Ziel-Meta-Rahmens gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts;
-
9 ein Blockdiagramm einer beispielhaften Implementierung eines Luma-Y-Meta-Rahmen-Puffers, welcher die Ausrichtung der Quell-Rahmen-Daten Dsf und die Startpositionen für die Interpolation darstellt;
-
10 ein Diagramm, welches die Implementierung eines Luma-Y-Meta-Rahmen-Puffers und Variationen bei den horizontalen Startpositionen der Bewegungsfenster-Interpolation der Meta-Zeilen gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts darstellt;
-
11 ein Blockdiagramm einer beispielhaften Zeilenpuffer-Implementierung eines Luma-Y-Meta-Rahmen-Puffers, der Variationen der vertikalen Startposition (winyshift) der Bewegungsfenster-Interpolation von Meta-Zeilen gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts darstellt;
-
12 ein Diagramm eines beispielhaften Modus der Speicherung der Luma Y und Chroma (CB und CR) Quell-Rahmen-Daten mit einem Zeilenpuffer zum Speichern von Bits, welche die Positionen der vertikalen Unterbrechungslinien-Stellen angeben;
-
13 ein Diagramm, welches die Gestalt eines beispielhaften 4×8 Pixel-Interpolationsfensters darstellt, welches aufgrund Rotation im Uhrzeigersinn des Ziel-Rahmens durch eine vertikale Unterbrechungslinie aufgeteilt ist;
-
14(a) bis (d) stellen die Gestalt und die vertikalen Positionen von beispielhaften, nicht aufgeteilten 4×8 Pixel-Bewegungsfenstern zum Interpolieren von Pixeln in unterschiedlichen Zeilen eines nicht-rotierten Ziel-Rahmens von Quell-Rahmen-Daten gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts dar;
-
15(a) bis 15(e) Diagramme, welche die Gestalt und die Positionen von beispielhaften, aufgeteilten 4×8 Pixel-Bewegungsfenstern zum Interpolieren von unterschiedlichen Pixeln eines ersten, im Uhrzeigersinn rotierten Ziel-Rahmens von Quell-Rahmen-Daten gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts darstellen; und
-
15(f) bis 15(j) Diagramme, welche die Gestalt und die Positionen von beispielhaften, aufgeteilten 4×8 Pixel-Bewegungsfenstern zum Interpolieren von unterschiedlichen Pixeln eines zweiten, entgegen dem Uhrzeigersinn rotierten Ziel-Rahmens von Quell-Rahmen-Daten gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts darstellen.
-
BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
-
1 ist ein Blockdiagramm eines digitalen Bildstabilisierungs-(DIS)-Schaltkreises, welcher gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts ein DIS-Verfahren durchführt. Der DIS-Schaltkreis weist eine Erfassungseinheit (DU = Detection Unit), welche empfangene, ruckartige Videodaten Dsf von einem Quell-Rahmen analysiert, und Zwischenrahmen-Transformationen Ti(n) ausgibt, eine Trajektorieneinheit (TU = Trajectory Unit), welche eine ausgewählte Haupt-/Kompensations-Transformation P(n) ausgibt, welche aus dem Zwischenrahmen-Transformationen Ti(n) ausgewählt ist, und eine Kompensationseinheit (CU = Compensation Unit), welche stabilisierte Videodaten Ddf eines Ziel-Rahmens durch Modifizieren des ruckartigen Videos, basierend auf der ausgewählten Haupt-/Kompensations-Transformation P(n), ausgibt, auf.
-
Nachdem die Erfassungseinheit (DU) die Zwischenrahmen-Transformationen Ti(n) bestimmt, wählt die Trajektorieneinheit (TU) eine der Zwischenrahmen-Transformationen Ti(n) als die Haupttransformation P(n) aus. Falls die Haupttransformation P(n) eine rotatorische Bewegungskomponente enthält, rotiert, interpoliert und gibt die Kompensationseinheit (CU) stabilisierte Videodaten Ddf der Pixel des Ziel-Rahmens in Rasterordnung aus (zeilenweise, beginnend bei der obersten Zeile und von links nach rechts innerhalb jeder Zeile).
-
2 ist ein Blockdiagramm der DIS-Kompensationseinheit 6000 in dem DIS-Schaltkreis von 1, welche dafür eingerichtet ist, die Kompensations-Transformation P(n) auf die aufgenommenen Quell-Rahmen-Bilddaten Dsf anzuwenden, die Daten Ddf des Ziel-Rahmens in Rasterordnung zu interpolieren und auszugeben.
-
Die DIS-Kompensationseinheit 6000 enthält eine erste Transformationsvorrichtung 6220 zum Erzeugen horizontaler Positionsinformationen (z. B. Leseadressen) und zum Berechnen des Unterbrechungslinien-Abstandes, eine DMA(direct memory access = Direktspeicherzugriff)-Steuerung/Read Master 6232, und eine zweite Transformationsvorrichtung 6250 zum Interpolieren (z. B. Rotieren, Verschieben, Skalieren) von Pixeln des Ziel-Rahmens in Rasterordnung. Die Transformationsvorrichtungen können eine der geometrischen Transformationen, wie eine ähnliche Transformation, affine Transformation oder dergleichen sein. Die affine Transformation wird zur Darstellung und Erläuterung der Ausführungsformen des vorliegenden erfinderischen Konzepts ausgewählt, jedoch können andere, wie geometrische Transformationen verwendet werden, ohne von dem Schutzumfang und Grundgedanken der vorliegenden Erfindung abzuweichen.
-
Die parallele Daten-Ausgangs-Schnittstelle 6252 gibt Bilddaten (4:2:2) aus und sieht die Bild-Rahmen-Synchronisationssignale und einen Gegendruck-Abwürg-(Ausgangspuffer)-Mechanismus vor. Die DMA-Steuerung/Read Master 6232 liest ausgewählte Abschnitte der Quell-Rahmen-Daten Dsf, welche in dem Quell-Rahmen-Puffer 6230 gespeichert sind, und schreibt die Quell-Rahmen-Daten Dsf in jeden geeigneten Zeilenpuffer des horizontalen Meta-Rahmen-Puffers 6240. Jede Vorgabe-Quell-Rahmen-Daten-Zugriffsspeicher-Adresse wird durch die erste affine Transformationsvorrichtung 6220 aus der affinen Transformationsgleichung, basierend auf den Koeffizienten der Haupt-Transformation P(n) sx, ry, rx, sy, tx und ty berechnet.
-
Die DIS-Kompensationseinheit 6000 enthält ferner Konfigurations-Register 6210, welche die Koeffizienten der Haupt-Transformation P(n) sx, ry, rx, sy, tx und ty empfangen und speichern, und diese zu jeder der ersten und zweiten affinen Transformationsvorrichtungen 6220 und 6250 weitergeben.
-
Die DMA/Read Master 6232 auf dem AXI-Bus empfängt Anweisungen (Vorgabe-Quell-Rahmen-Daten-Zugriffsspeicher-Adressen) von der ersten affinen Transformationsvorrichtung 6220, basierend auf Bildposition und Rotationsinformationen P(n), welche von dem APB-Bus mittels einer APB-Schnittstelle (I/F) 6212 und von den Konfigurations-Registern 6210 empfangen werden.
-
3 ist ein Diagramm des aufgenommenen Quell-Rahmens mit einem beispielhaften Ziel-Meta-Rahmen, mit einer Mehrzahl von diagonalen, stufenweise orientierten Meta-Zeilen Xd, die jeweils eine Teilmenge der Quell-Rahmen-Bilddaten Dsf und die relative Position des Ziel-Rahmens, welche durch Interpolieren der Quell-Rahmen-Bilddaten Dsf, die in den Meta-Zeilen Xd des Ziel-Meta-Rahmens enthalten sind, gewonnen werden soll, enthalten, gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. Eine Mehrzahl (z. B. vier) von benachbarten, diagonalen, stufenweise orientierten Meta-Zeilen Xd enthält die Bilddaten Dsf, welche benötigt werden, um jede Zeile Rd des Ziel-Rahmens zu interpolieren.
-
Vier Eckpunkte des Ziel-Rahmens (0, 0), (0, dst_w), (dst_h, 0) und (dst_h, dst_w) und die affinen Koeffizienten P(n) (sx, sy, rx, ry, tx, ty) werden an die erste affine Transformationsvorrichtung 6220 gesendet, um die entsprechenden Quell-Rahmen-Datenpositionen zu berechnen. Die affinen Skalierungs-Koeffizienten stellen sicher, dass die Quell-Rahmen-Daten zum Interpolieren des Ziel-Rahmens verfügbar sind.
-
Der rechteckige Quell-Rahmen in 3 zeigt das Bestimmen der Start- und Endpositionen jeder unterbrochenen Linie von Pixeln in einer Meta-Zeile Xd, die einer horizontalen Zeile Rd von Pixeln des rechteckigen Ziel-Rahmens (mit punktierten Linien rotiert gezeigt) entsprechen, Quell-Rahmen. Der Satz von horizontalen Positionen X'[1] gibt den Kreuzungspunkt der oberen Unterbrechungslinie in jeder Zeile von Pixeln des ursprünglichen Quell-Rahmens an. Der Satz von horizontalen Positionen Xs[0][n] gibt den „Beginn” jeder Meta-Zeile über die M×N Pixel des Ziel-Meta-Rahmens an den Kreuzungspunkten der linken Unterbrechungslinie in jeder Zeile von Pixeln des ursprünglichen Quell-Rahmens an. Der Satz von horizontalen Positionen Xs[M][n] gibt das „Ende” jeder Meta-Zeile von Pixeln des Ziel-Meta-Rahmens an den Kreuzungspunkten der linken Unterbrechungslinie in jeder Zeile von Pixeln des ursprünglichen Quell-Rahmens an.
-
4 ist ein Blockdiagramm des Chroma-Meta-Rahmen-Puffers 6241-C, welches einen Abschnitt von sieben horizontalen Meta-Zeilen des in 3 gezeigten beispielhaften Ziel-Meta-Rahmens, welcher in dem Chroma-C-Meta-Rahmen-Puffer 6241-C der DIS-Kompensationseinheit 6000 von 2 gespeichert ist, und die Interpolationsfenster von drei beispielhaften Pixel des Ziel-Rahmens zeigt, wobei zwei der Interpolationsfenster durch eine vertikale Unterbrechungslinie gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts aufgeteilt/verschoben/abgestuft sind.
-
In 4 ist ein Abschnitt von sieben horizontalen Meta-Zeilen des in 3 gezeigten beispielhaften Ziel-Meta-Rahmens gezeigt, welche in sieben Zeilenpuffern LB0 bis LB6 des Chroma-C-Meta-Rahmen-Puffers 6241-C der DIS-Kompensationseinheit 6000 von 2 gespeichert sind. 4 stellt außerdem die Interpolationsfenster von drei beispielhaften Pixeln des Ziel-Rahmens dar, wobei zwei der Interpolationsfenster durch eine vertikale Unterbrechungslinie gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts aufgeteilt/verschoben/abgestuft sind. Jedes Interpolationsfenster ist durch jede Unterbrechungslinie aufgeteilt/verschoben, welche vertikal durch dieses läuft, oder durch keine Unterbrechungslinie, falls keine Unterbrechungslinie vertikal durch dieses läuft. Das 4×4-Interpolationsfenster, welches Ecken mit durchgezogenen bzw. dicken Linien und strichpunktierte Seitenlinien besitzt, ist nicht durch irgendeine Unterbrechungslinie geteilt, und dieses ist ein intaktes Quadrat. Das 4×4-Interpolationsfenster, welches Ecken mit durchgezogenen Linien und strichpunktierte Seitenlinien besitzt, weist lediglich Daten von der Spaltengruppe scg0 und von lediglich vier Zeilen Rs (x' – 1, x, x' + 1, x' + 2) des Quell-Rahmens auf.
-
Das 4×4-Interpolationsfenster mit gestrichelten Linien ist durch eine Unterbrechungslinie zwischen dessen dritter und vierter Spalte geteilt, und ist daher durch diese Unterbrechungslinie geteilt und verschoben. Daher weist der linke 3×4-Abschnitt des 4×4-Interpolationsfensters mit gestrichelten Linien Daten von der Spaltengruppe scg0 und von der Spaltengruppe scg1 auf. Der rechte Abschnitt 1×4 des Interpolationsfensters weist Daten von der Spaltengruppe scg1 auf, und der linke Abschnitt 3×4 des Interpolationsfenster weist Daten von der Spaltengruppe scg0 auf, welche durch die Unterbrechungslinie begrenzt sind. Während das 4×4-Interpolationsfenster mit gestrichelten Linien Daten von lediglich vier Zeilen Rs (x' – 1, x, x' + 1, x' + 2) des Quell-Rahmens aufweist, überspannt dieses fünf Zeilenpuffer (LB1, LB2, LB3, LB4, LB5), aufgrund der horizontalen Anordnung des 4×4-Interpolationsfensters des Ziel-Meta-Rahmens innerhalb der Zeilenpuffer.
-
Das 4×4-Interpolationsfenster mit strichpunktierten Linien ist durch die gleiche Unterbrechungslinie zwischen dessen ersten und zweiten Spalten geteilt, und ist daher durch diese gleiche Unterbrechungslinie geteilt und verschoben. Daher weist der linke 1×4-Abschnitt des 4×4-Interpolationsfensters mit strichpunktierten Linien Daten von der Spaltengruppe scg0 auf, während der rechte 3×4-Abschnitt des 4×4-Interpolationsfenster Daten von der Spaltengruppe scg1 aufweist, welche durch die Unterbrechungslinie begrenzt sind. Während das 4×4-Interpolationsfenster mit strichpunktierten Linien Daten von lediglich vier Zeilen Rs (x' – 2, x' – 1, x, x' + 1) des Quell-Rahmens aufweist, überspannt dieses fünf Zeilenpuffer (LB0, LB1, LB2, LB3, LB4).
-
5 ist ein detailliertes Diagramm eines Abschnitts von vierzehn diagonalen, stufenweise orientierten Meta-Zeilen Xd des in 3 gezeigten beispielhaften Ziel-Meta-Rahmens, welche in dem Quell-Rahmen-Puffer 6230 von 2 gespeichert sind, welches eine Mehrzahl von regelmäßig beabstandeten vertikalen Unterbrechungslinien darstellt, die eine Mehrzahl von geteilten/verschobenen/abgestuften Spaltengruppen (scg) in dem Ziel-Meta-Rahmen definieren.
-
Gemäß 3 und 5 ist jede diagonale, stufenweise orientierte Meta-Zeile Xd durch eine Anzahl von vertikalen Unterbrechungslinien aufgeteilt, welche von keiner Unterbrechungslinie im Falle keiner Rotation oder sehr geringfügiger Rotation, bis zu nicht weniger als einer Unterbrechungslinie pro Pixelbreite im Falle einer ±45 Grad-Rotation reicht. Da alle Meta-Zeilen Xd eines gegebenen Ziel-Meta-Rahmens die gleiche horizontale Ausdehnung besitzen, und da die Unterbrechungslinien regelmäßig beabstandet sind (mit der Breite jeder gestuften Säulengruppe, zum Beispiel scg0), werden sämtliche Meta-Zeilen Xd des Ziel-Meta-Rahmens ungefähr die gleiche Anzahl von Unterbrechungslinien, mit einer Variation von ±1 aufgrund horizontaler Verschiebung, Rotationswinkel und der horizontalen Größe des Ziel-Rahmens besitzen. Für kleine Rotationswinkel wird jede Meta-Zeile Xd des Ziel-Meta-Rahmens keine, eine oder zwei Unterbrechungslinien besitzen. Sämtliche Meta-Zeilen, welche eine oder mehrere Unterbrechungslinien umfassen, werden notwendigerweise deren in verschiedene Zeilen Rs des Quell-Rahmens diagonal verteilte Quell-Rahmen-Daten Dsf besitzen (zum Beispiel in den Quell-Rahmen-Zeilen x', x' – 1, x' – 2, x' – 3 usw.).
-
6 ist ein detailliertes Diagramm eines Abschnittes von neun horizontalen Meta-Zeilen des in 3 gezeigten beispielhaften Ziel-Meta-Rahmens, welche in dem Luma-Y-Meta-Rahmen-Puffer 6241-1-Y (eine beispielhafte Implementierung von 6241-Y der DIS-Kompensationseinheit 6000 von 2 gemäß einer ersten beispielhaften Ausführungsform des erfinderischen Konzepts) gespeichert sind. Das 8-Bit 4:2:2 (eine Ebene, YC-Daten im Interleave-Format)-Datenformat wird durch diese beispielhafte Implementierung mit einem Rotationswinkel von bis zu ±45 Grad in vollem Umfang unterstützt.
-
Gemäß 4 und 6 werden, wenn die Quell-Rahmen-Daten Dsf einer Meta-Zeile Xd des Ziel-Meta-Rahmens in einen Zeilenpuffer kopiert wurden, die Quell-Rahmen-Daten Dsf von zwei oder mehreren unterschiedlichen Zeilen Rs (zum Beispiel von Zeilen x', x' – 1, x' – 2, x' – 3 usw.) des Quell-Rahmens in den Zeilenpuffer kopiert, welcher ausgewählt wird, um die horizontalen Quell-Rahmen-Daten Dsf der einen Meta-Zeile Xd des Ziel-Meta-Rahmens zu speichern.
-
5 und 6 stellen gemeinsam das Ergebnis eines Verfahrens zum horizontalen Anordnen von diagonalen, stufenweise orientierten Meta-Zeilen dar. In 5 ist lediglich ein Abschnitt der Quell-Rahmen-Bild-Daten Dsf innerhalb vierzehn der Meta-Zeilen Xd des Meta-Rahmens des Ziel-Rahmens gezeigt. Jede der in 5 gezeigten Meta-Zeilen Xd ist durch den gleichen Satz von Unterbrechungslinien (zum Beispiel durch 9 Pixelbreiten voneinander beabstandet) bei Xd[9][], Xd[18][], Xd[27][] aufgeteilt. Daher enthält der Abschnitt von jeder der in 5 gezeigten Meta-Zeilen Xd Quell-Rahmen-Bild-Daten Dsf von vier Zeilen Rs (zum Beispiel x' + 3, x' + 2, x' + 1 und x in der ersten Meta-Zeile) des Quell-Rahmens. Innerhalb des Meta-Rahmens des Ziel-Rahmens ist die Grenze des interpolierten Ziel-Rahmens gezeigt. Sieben der gleichen Meta-Zeilen Xd, welche in 5 diagonal verteilt gezeigt sind, sind in 6 horizontal in sieben Zeilenpuffern LB0, LB1, LB2, LB3, LB4, LB5 und LB6 angeordnet gezeigt. Wie in 6 dargestellt ist, wird das Segment einer gegebenen Meta-Zeile Xd, welche in jedem Spaltengruppen-Segment angeordnet ist (zum Beispiel scg0, scg1 usw.) in den gleichen Zeilenpuffer kopiert. Dies ist der Schritt des horizontalen Anordnens. Beispielsweise weist in 5 die erste Meta-Zeile Xd ein erstes Segment innerhalb scg0 und Zeile x' + 3 des Ziel-Rahmens, und ein zweites Segment innerhalb scg1 und Zeile x' + 2 des Ziel-Rahmens, ein drittes Segment innerhalb scg2 und Zeile x' + 1 des Ziel-Rahmens und ein viertes Segment innerhalb scg3 und Zeile x' des Ziel-Rahmens auf. In 6 sind das erste Segment, das zweite Segment, das dritte Segment und das vierte Segment der ersten Meta-Zeile Xd in dem Ziel-Meta-Rahmen alle gezeigt, wie diese horizontal in den ersten Zeilenpuffer LB0 des Meta-Rahmen-Puffer-Speichers 6241-1-Y kopiert sind. Die DMA-Steuerung/Read Master 6232 von 2 führt diesen selektiven Kopier- und Einfügevorgang nacheinander für jede Meta-Zeile Xd des Ziel-Meta-Rahmens, unter der Steuerung der ersten affinen Transformations-Vorrichtung 6220, durch. Die beispielhafte Implementierung 6241-1-Y des Luma-Y-Meta-Rahmen-Puffers 6241-Y in dem horizontalen Meta-Rahmen-Puffer 6240 in 6 speichert die Luma-Y-Daten des gesamten Meta-Rahmens des Ziel-Rahmens. Daher kann in dieser beispielhaften Implementierung die DMA-Steuerung/Read Master 6232 von 2 die benötigten Quell-Bild-Daten des gesamten Ziel-Meta-Rahmens in den Luma-Meta-Rahmen-Speicher 6241-1-Y von 6 kopieren und einfügen. Bei verschiedenen alternativen Ausführungsformen führt die DMA-Steuerung/Read Master 6232 von 2 einen Kopier- und Einfügevorgang nacheinander für jeden gesamten Spaltengruppenabschnitt des Ziel-Meta-Rahmens durch, schreibt jede Spaltengruppe nacheinander (zum Beispiel scg0, dann scg1 usw.) in die Zeilenpuffer bis sämtliche Meta-Zeilen des Meta-Rahmens horizontal in die Zeilenpuffer gespeichert sind. Bei den alternativen Ausführungsformen der 7B, 9, 10 und 11 führt die DMA-Steuerung/Read Master 6232 von 2 einen Kopier- und Einfügevorgang für sieben Meta-Zeilen des Ziel-Meta-Rahmens in einen Puffer mit sieben Zeilenpuffern LB0 bis LB6, welche zur Interpolation des gesamten Ziel-Rahmens wiederverwendet werden, durch.
-
Gemäß den 2, 3 und 4 liest die DMA-Steuerung 6232, wie hierin nachfolgend vollständig beschrieben wird, die diagonal verteilten Quell-Rahmen-Bild-Daten Dsf in Meta-Zeilen, welche zu Zeilen Rd des Ziel-Rahmens von mehreren Zeilen Rs des Quell-Rahmens gehören, und schreibt dann die Bild-Daten Dsf horizontal in die Luma-(Y)-Zeilenpuffer des Meta-Rahmen-Puffers 6241-Y und in die Chroma-(C)-Zeilenpuffer des Meta-Rahmen-Puffers 6241-C. Nachfolgend liest die zweite affine Transformations-Vorrichtung 6250 Interpolationsfenster (zum Beispiel 4×4 oder 4×8 Pixelbereiche) der horizontalen Luma- und Chroma-Quell-Daten (zum Beispiel im Falle von 4:2:2, 4×8 Pixel der Luma-Y-Daten und 4×4 Pixel der Chroma-C-Daten), welche in den Zeilenpuffern gespeichert werden, um jedes interpolierte Pixel des (rotierten) Ziel-Rahmens zu erzeugen, und die interpolierten Pixel jeder Zeile des (rotierten) Ziel-Rahmens in Rasterordnung auszugeben.
-
Die Vorgabe-Quell-Rahmen-Daten-Zugangsspeicher-Adresse wird unter Verwendung der affinen Transformations-Gleichung und der empfangenen affinen Transformations-Koeffizienten von P(n) berechnet. Lese-DMA-Kanäle greifen auf die Daten des Quell-Rahmen im Puffer 6230 (oder in einem externen DRAM) mittels der AXI-Bus-Master-Schnittstelle mit einer 128-Bit Datenbusbreite zu.
-
7A ist ein Flussdiagramm eines ersten beispielhaften Verfahrens zum sequenziellen horizontalen Anordnen der Mehrzahl von diagonalen, stufenweise orientierten Meta-Zeilen eines Ziel-Meta-Rahmens in einem Quell-Rahmen-Bild, welches in dem Quell-Rahmen-Puffer 6230 der DIS-Kompensationseinheit 6000 von 2 gespeichert ist. Dieses Verfahren schreibt sämtliche horizontale Bild-Daten Dsf in sämtliche Zeilen des Meta-Rahmen-Puffers 6240 für die Bewegungsfenster-Interpolation der Pixel in Rasterordnung. Dieser Schritt wird durch die affine Transformations-Vorrichtung II 62520 der DIS-Kompensationseinheit 6000 von 2 durchgeführt.
-
In Schritt S6110 werden die affinen Transformations-Koeffizienten einschließlich eines Skalierungsfaktors, basierend auf den Quell-Rahmen-Dimensionen M'×N', eingestellt, um die Ziel-Rahmen-Dimensionen M×N derart einzustellen, dass die gesamten zum Interpolieren der Ziel-Rahmen-Daten Ddf benötigten Quell-Rahmen-Daten Dsf innerhalb des Quell-Rahmen-Bereichs (verfügbar) sind.
-
In Schritt S6112 wird der Schleifenindex derart initialisiert, dass die erste Meta-Zeile Xd = 0 des Ziel-Meta-Rahmens ausgewählt ist. In Schritt S6120-A wird die Start-Adresse der horizontalen und vertikalen Position der aktuellen Meta-Zeile Xd des Ziel-Meta-Rahmens in dem Quell-Bild durch die erste affine Transformations-Vorrichtung 6220 berechnet. In Schritt S6130-A kopiert die DMA-Steuerung 6232 die Quell-Bild-Daten in der ausgewählten Meta-Zeile Xd von dem Quell-Rahmen-Puffer 6230 in einen der Zeilenpuffer des horizontalen Meta-Rahmen-Puffers 6240. In Schritt S6142 wird eine Zeile Rd des Ziel-Bildes für die Interpolation, basierend auf den Meta-Zeilen Xd, welche horizontal in die Zeilenpuffer des horizontalen Meta-Zeilen-Puffers 6240 kopiert wurden, ausgewählt.
-
In Schritt S6150 wird dann, falls und während die gesamten benötigten Quell-Bild-Daten Dsf der Meta-Zeilen Xd, die der ausgewählten Zeile Rd des Ziel-Rahmens entsprechen, in dem horizontalen Meta-Rahmen-Puffer 6240 gespeichert werden, ein Verfahren der Interpolation (Schritt 6230 von 8) aller Pixel der ausgewählten Zeile Rd des Ziel-Rahmens durchgeführt, und die interpolierten Ziel-Rahmen-Daten Ddf der ausgewählten Zeile Rd werden in Rasterordnung ausgegeben.
-
In Schritt dS6180 wird überprüft, ob sämtliche Zeilen Rd des Ziel-Rahmens interpoliert wurden. Falls bei dem Entscheidungsschritt dS6180 nicht sämtliche Zeilen Rd des Ziel-Rahmens interpoliert wurden (NEIN-Zweig von dS6180), wird dann die Meta-Zeilen-Indexzahl erhöht (Schritt S6182-A) und das Verfahren wiederholt beim Start der nächsten Ausführung der Schleife den Schritt S6120-A. Falls beim Entscheidungsschritt dS6180 sämtliche Zeilen Rd des Ziel-Rahmens interpoliert wurden (JA-Zweig von dS6180), ist anschließend das Verfahren des Interpolierens des Ziel-Rahmens des aktuellen Quell-Rahmens abgeschlossen.
-
In der Praxis kann der Schritt des Interpolierens (Schritt S6230 von 8) der Pixel einer ausgewählten Zeile Rd des Ziel-Rahmens unter Verwendung eines ersten Satzes von Zeilenpuffer zur gleichen Zeit durchgeführt werden (paralleler Pfad), zu welcher während Schritt S6130-A Quell-Rahmen-Daten in einen zweiten Satz von Zeilenpuffern kopiert werden, und die interpolierten Ziel-Rahmen-Daten Ddf der ausgewählten Zeile Rd werden in Rasterordnung ausgegeben. Daher kann bei den Parallel-Pfad-Implementierungen des Verfahrens der Schritt (S6230 von 8) des Interpolierens der Zeilen Rd des Ziel-Rahmens in der Schleife einfach parallel hinter dem Vorgang des Meta-Zeilen-Kopier-Schrittes S6130-A fortschreiten. Diese beispielhafte Ausführungsform kann durch Vorsehen eines großen horizontalen Meta-Rahmen-Puffers 6240 implementiert werden, in welchen die gesamten Quell-Rahmen-Daten Dsf kopiert und gespeichert werden, die benötigt werden, um den gesamten Ziel-Rahmen zu interpolieren. Bei verschiedenen anderen beispielhaften Implementierungen kann die Anzahl an Zeilenpuffern in dem horizontalen Meta-Rahmen-Puffer 6240 durch Wiederverwenden der Zeilenpuffer, um die Quell-Rahmen-Daten Dsf von verschiedenen Meta-Zeilen des Ziel-Rahmens zu unterschiedlichen Zeitpunkten zu speichern, reduziert werden. Falls beispielsweise das Interpolationsfenster gleich 4×8 ist, und der gewünschte maximale Rotationswinkel gleich ±45 Grad ist, werden dann bis zu 11 mit horizontalen Quell-Rahmen-Daten gefüllte Zeilenpuffer benötigt, um die Pixel einer Zeile Rd des Ziel-Rahmens zu interpolieren. Daher ist ein horizontaler Meta-Rahmen-Puffer 6240, welcher im Wesentlichen aus 11 Zeilenpuffern besteht, minimal ausreichend, um die gesamten Pixel aller Zeilen Rd des Ziel-Rahmens in Rasterordnung mit einem Rotationswinkel von bis zu ±45 Grad 4×8 zu interpolieren. Das Vorsehen von weniger als 11 Zeilenpuffern reduziert den Rotationswinkel, welcher 4×8 interpoliert werden kann, wirksam. Andererseits ermöglicht das Vorsehen von mehr als 11 Zeilenpuffern eine Ring-Wiederverwendung der Zeilenpuffer für die 4×8-Interpolation einer Sequenz von Zeilen Rd, zum Beispiel basierend auf Abbilden einer horizontalen Unterbrechungslinie, welche mehrere Interpolationsfenster aufteilt.
-
7B ist ein Flussdiagramm eines zweiten beispielhaften Verfahrens des sequenziellen, horizontalen Anordnens jeder Gruppe von k + 1 diagonalen, stufenweise orientierten Meta-Zeilen Xd eines Ziel-Meta-Rahmens in dem Quell-Rahmen-Bild, welche in dem Quell-Rahmen-Puffer 6230 der DIS-Kompensationseinheit 6000 von 2 gespeichert sind. Dieses Verfahren schreibt k + 1 Zeilen von horizontalen Bild-Daten Dsf von k + 1 Zeilen des Ziel-Meta-Rahmens in die (k + 1) Zeilenpuffer des Meta-Rahmen-Puffers 6241-2-Y. Die horizontalen Bild-Daten Dsf in den (k + 1) Zeilenpuffern des Meta-Rahmen-Puffers 6241-2-Y werden nachfolgend für die Bewegungsfenster-Interpolation der Pixel in einer oder mehreren Zeilen Rd des Ziel-Rahmens in Rasterordnung durch die affine Transformations-Vorrichtung II 6250 der DIS-Kompensationseinheit 6000 von 2 verwendet. Nachdem die gesamten horizontalen Bild-Daten Dsf in den (k + 1) Zeilenpuffern für die Interpolationen verwendet wurden, springt dieses Verfahren zurück, und schreibt die nächsten k Zeilen von horizontalen Bild-Daten Dsf von k-Zeilen des Ziel-Meta-Rahmens in die (k + 1) Zeilenpuffer des Meta-Rahmen-Puffers 6241-2-Y.
-
In Schritt S6110 werden die affinen Transformations-Koeffizienten, einschließlich eines Skalierungsfaktors, basierend auf den Quell-Rahmen-Dimensionen M'×N' eingestellt, um die Ziel-Rahmen-Dimensionen M×N derart einzustellen, dass die gesamten zur Interpolation der Ziel-Rahmen-Daten Ddf benötigten Quell-Rahmen-Daten Dsf innerhalb des Quell-Rahmen-Bereichs (verfügbar) sind.
-
In Schritt S6112 wird der Schleifenindex derart initialisiert, dass die erste Meta-Zeile Xd = 0 des Ziel-Meta-Rahmens ausgewählt ist, und die Anzahl von Zeilenpuffern (k + 1), welche in dem horizontalen Meta-Rahmen-Puffer 6240 verwendet werden, wird bestimmt.
-
In Schritt S6120-B wird die Start-Adresse der horizontalen und vertikalen Positions-Quell-Rahmen-Daten Dsf der ausgewählten Meta-Zeilen Xd bis Xd+k des Ziel-Meta-Rahmens in dem Quell-Bild durch die erste affine Transformations-Vorrichtung 6220 berechnet. In Schritt S6130-B kopiert die DMA-Steuerung 6232 Quell-Rahmen-Daten Dsf der ausgewählten Meta-Zeilen Xd bis Xd+k des Ziel-Meta-Rahmens von dem Quell-Rahmen-Puffer 6230 horizontal in k + 1 Zeilenpuffer des horizontalen Meta-Rahmen-Puffers 6240.
-
In Schritt S6140 werden alle möglichen Ziel-Rahmen-Pixelinterpolationen, basierend auf den Quell-Rahmen-Daten Dsf der Meta-Zeilen Xd bis Xd+k, welche in den k + 1 Zeilenpuffern des horizontalen Meta-Rahmen-Puffers 6240 gespeichert sind, durchgeführt.
-
In dem Unterschritt S6142 wird eine Zeile Rd des Ziel-Bildes für die Interpolation, basierend auf den Meta-Zeilen Xd bis Xd+k, welche horizontal in die Zeilenpuffer des horizontalen Meta-Zeilen-Puffers 6240 kopiert wurden, ausgewählt (durch Einstellen eines Ziel-Zeilen-Index).
-
In dem Unterschritt sS6150 wurden die benötigten Quell-Bild-Daten Dsf der Meta-Zeilen Xd, die der ausgewählten Zeile Rd des Ziel-Rahmens entsprechen, in dem horizontalen Meta-Rahmen-Puffer 6240 gespeichert, und ein Verfahren des Interpolierens (Schritt S6230 von 8) aller Pixel der ausgewählten Zeile Rd des Ziel-Rahmens wird durchgeführt, und die interpolierten Ziel-Rahmen-Daten Ddf der ausgewählten Zeile Rd werden in Rasterordnung ausgegeben.
-
Bei dem Entscheidungsschritt dS6180 wird überprüft, ob alle Zeilen Rd des Ziel-Rahmens, welche von den horizontal in die Zeilenpuffer des horizontalen Meta-Rahmen-Puffers 6240 kopierten Meta-Zeilen Xd bis Xd+k interpoliert werden können, interpoliert wurden. Falls bei dem Entscheidungsschritt dS6150 alle interpolierbaren Zeilen Rd des Ziel-Rahmens nicht interpoliert wurden (NEIN-Zweig von dS6150), wird dann die Meta-Zeilen-Indexzahl erhöht, und das Verfahren wiederholt beim Start der nächsten Ausführung der Schleife den Schritt S6120-A. Daher wird im Unterschritt sS6146 der Index der Ziel-Rahmen-Zeile Rd erhöht, und der Unterschritt sS6150 wird für die nächste Ziel-Rahmen-Zeile Rd+1 wiederholt.
-
Falls bei dem Entscheidungsschritt dS6180 alle interpolierbaren Zeilen Rd des Ziel-Rahmens interpoliert wurden (JA-Zweig von dS6150), ist dann das Interpolieren der Zeilen Rd, welche interpoliert werden können, basierend auf den Meta-Zeilen Xd, welche horizontal in die Zeilenpuffer des horizontalen Meta-Rahmen-Puffers 6240 kopiert wurden, abgeschlossen.
-
Bei dem Entscheidungsschritt dS6180 wird überprüft, ob alle Zeilen Rd des Ziel-Rahmens interpoliert wurden. Falls bei dem Entscheidungsschritt dS6180 nicht alle Zeilen Rd des Ziel-Rahmens interpoliert wurden (NEIN-Zweig von dS6180), wird dann die Meta-Zeilen-Indexzahl erhöht (zum Beispiel durch k – 1 in Schritt S6182-B), und das Verfahren wiederholt beim Start der nächsten Ausführung der Schleife Schritt S6120-B. Falls bei dem Entscheidungsschritt dS6180 alle Zeilen Rd des Ziel-Rahmens interpoliert wurden (JA-Zweig von dS6180), ist dann das Verfahren des Interpolierens des Ziel-Rahmens des aktuellen Quell-Rahmens abgeschlossen.
-
Der Schritt des Interpolierens (Schritt S6230 von 8) von Pixeln einer ausgewählten Zeile Rd des Ziel-Rahmens wird unter Verwendung der horizontalen Bild-Daten Dsf, welche in den k + 1 Zeilenpuffern gespeichert sind, durchgeführt. In Abhängigkeit des Rotationswinkels kann die Interpolation von zusätzlichen Zeilen Rd des Ziel-Rahmens unter Verwendung der horizontalen Bild-Daten, welche in den k + 1 Zeilenpuffern gespeichert sind, durchgeführt werden. Beispielsweise können, falls k gleich 11 ist (12 Zeilenpuffer), dann zwei Zeilen Rd des Ziel-Rahmens mit einem Rotationswinkel von ±45 Grad 4×8 interpoliert werden. In gleicher Weise können, falls k gleich 11 ist (12 Zeilenpuffer), dann fünf Zeilen Rd des Ziel-Rahmens mit einem Rotationswinkel von ±45 Grad 4×4 interpoliert werden.
-
Bei solch beispielhaften Implementierungen wird die Anzahl von Zeilenpuffern in dem horizontalen Meta-Rahmen-Puffer 6240 durch Wiederverwenden von Zeilenpuffern, um die Quell-Rahmen-Daten Dsf von verschiedenen Meta-Zeilen des Ziel-Rahmens zu unterschiedlichen Zeitpunkten zu speichern, reduziert. Beispielsweise werden, falls das Interpolationsfenster gleich 4×8 Pixel ist und der gewünschte maximale Rotationswinkel gleich ±45 Grad ist, dann 11 Zeilenpuffer für die Interpolation der Pixel einer Zeile Rd des Ziel-Rahmens benötigt, welche mit horizontalen Quell-Rahmen-Daten Dsf gefüllt sind. Daher ist ein horizontaler Meta-Rahmen-Puffer 6240, welcher im Wesentlichen aus 11 Zeilenpuffern besteht, minimal ausreichend, um alle Pixel aller Zeilen Rd des Ziel-Rahmens in Rasterordnung mit einem Rotationswinkel von bis zu ±45 Grad 4×8 zu interpolieren. Das Vorsehen von weniger als 11 Zeilenpuffern reduziert den maximalen Rotationswinkel, welcher 4×8 interpoliert werden kann, wirkungsvoll. Andererseits ermöglicht das Vorsehen von mehr als 11 Zeilenpuffern eine Ring-Wiederverwendung der Zeilenpuffer für die 4×8 Interpolation einer Sequenz von Zeilen Rd (zum Beispiel basierend auf Abbilden einer horizontalen Unterbrechungslinie, welche einige Interpolationsfenster aufteilt).
-
8 ist ein Flussdiagramm eines beispielhaften Verfahrens des sequenziellen Interpolierens jedes Pixels jeder Zeile Rd eines Ziel-Rahmens durch eine Bewegungsfenster-Interpolation von Bild-Daten Dsf in horizontalen Meta-Zeilen des Ziel-Meta-Rahmens, welcher in dem Meta-Rahmen-Puffer 6240 von 2 gespeichert ist.
-
Bei dem Entscheidungsschritt dS6210 wird ermittelt, ob genügend horizontale Quell-Rahmen-Daten Dsf in dem horizontalen Meta-Rahmen-Puffer 6240 (hineinkopiert wurden) für die Interpolation der aktuell ausgewählten Ziel-Rahmen-Zeile Rd zum Fortschreiten verfügbar sind. Falls genügend horizontale Quell-Rahmen-Daten Dsf verfügbar sind (JA-Zweig des Entscheidungsschrittes dS6210), beginnt dann die Interpolation der aktuell ausgewählten Zeile Rd des Ziel-Rahmens mit dem Identifizieren der vertikalen Position und der horizontalen Position der benötigten Quell-Rahmen-Daten Dsf, welche in den Zeilenpuffern des horizontalen Meta-Rahmen-Puffers 6240 angeordnet sind. Eine vertikale Startposition für die Interpolation der aktuellen Zeile Rd hängt von dem Rotationswinkel ab, und wird in Schritt S6220 berechnet. In gleicher Weise hängt eine horizontale Startposition für die Interpolation des ersten Pixels (erste Spalte Cd = 0) in der aktuellen Zeile Rd des Ziel-Rahmens von dem Rotationswinkel ab, und wird ebenso in Schritt S6220 berechnet.
-
In Schritt S6230 wird ein Verfahren der Interpolation aller Pixel der aktuell ausgewählten Zeile Rd des Ziel-Rahmens durchgeführt und die interpolierten Ziel-Rahmen-Daten Ddf der ausgewählten Zeile Rd werden in Rasterordnung ausgegeben. Im Unterschritt sS6232 wird das Pixel bei Spalte Cd und Zeile Rd des Ziel-Rahmens von den horizontalen Bild-Daten Dsf, welche in den Zeilenpuffern gespeichert sind, interpoliert (zum Beispiel unter Verwendung eines 4×4-Pixel- oder 4×8-Pixel-Interpolationsfensters). Bei dem Entscheidungsschritt dS6234 wird ermittelt, ob das Pixel in der letzten Spalte (Cd = M) der aktuell ausgewählten Zeile Rd des Ziel-Rahmens interpoliert wurde.
-
Falls das letzte Pixel (Cd = M) der aktuell ausgewählten Zeile Rd nicht interpoliert wurde (NEIN-Zweig des Entscheidungsschrittes dS6234), wird dann der Spaltenindex erhöht (Cd = Cd+1), und der Interpolations-Unterschritt sS6232 wird bei dem nächsten Pixel in der aktuell ausgewählten Zeile Rd des Ziel-Rahmens wiederholt. Falls das letzte Pixel (Cd = M) der aktuell ausgewählten Zeile Rd interpoliert wurde (JA-Zweig des Entscheidungsschrittes dS6234), wird dann der Entscheidungsschritt dS6250 nachfolgend durchgeführt, um zu ermitteln, ob die letzte Zeile (Rd = N) des Ziel-Rahmens interpoliert wurde.
-
Falls die letzte Zeile (Rd = N) des Ziel-Rahmens nicht interpoliert wurde (JA-Zweig des Entscheidungsschrittes dS6234), wird dann der Zeilen-Index erhöht (Rd = Rd+1) und die Ausführung des Entscheidungsschrittes dS6210 wird für die nächste Zeile Rd des Ziel-Rahmens wiederholt. Falls die letzte Zeile (Rd = N) des Ziel-Rahmens interpoliert wurde (JA-Zweig des Entscheidungsschrittes dS6234), wurde dann der Ziel-Rahmen vollständig interpoliert und alle Ziel-Rahmen-Daten Ddf wurden in Rasterordnung ausgegeben.
-
9 ist eine Speicher-Abbildung einer beispielhaften Implementierung 6241-2-Y des Luma-Y-Meta-Rahmen-Puffers 6241-Y in dem horizontalen Meta-Rahmen-Puffer 6240 in 2, welche die Quell-Rahmen-Daten Dsf-Ausrichtung und Startpositionen für die Interpolation darstellt. Ein 7-Zeilen-Puffer 6241-Y ist bei dieser beispielhaften Implementierung vorgesehen, um die Schritte des Verfahrens von 8B durchzuführen. Ein einzelner Anschluss SRAM kann jeden Zeilenpuffer (LB0 bis LB6) verwendet werden. Sieben Zeilenpuffer können gleichzeitig während des Prozesses des Interpolierens der Ziel-Rahmen-Zeile Rd gelesen werden, währenddessen einer oder mehrere zusätzliche Zeilenpuffer (nicht gezeigt) mit den Quell-Rahmen-Daten Dsf, welche für die Interpolation der nächsten Ziel-Rahmen-Zeile Rd+1 benötigt werden, beschrieben werden können. Ein 4×8/4×4-Fensterbereich der Quell-Rahmen-Daten Dsf wird für den Interpolationsvorgang jedes Pixels des Ziel-Rahmens benötigt. Aufgrund der Rotations-Charakteristik können die benötigten Quell-Rahmen-Daten Dsf, welche benötigt werden, um eine Ziel-Rahmen-Zeile Rd zu interpolieren, mehr als 4 Zeilenpuffer umfassen, welche die Quell-Rahmen-Daten enthalten (siehe Diagramme der 4×4-Pixel-Interpolations-Fenster in 4 und siehe Diagramme der 4×8-Pixel-Interpolations-Bereiche in den 13 und 14). Daher sind mehrere (zum Beispiel sieben) Zeilenpuffer vorgesehen, um den Interpolations-Fenster-Vorgang zu unterstützen. Das 8-Bit 4:2:2 (eine Ebene, YC-Daten im Interleave-Format) Datenformat wird durch eine beispielhafte Implementierung bis zu einem Rotationswinkel von 22,5 Grad unterstützt, was ein ausreichender Winkelbereich für die DIS-Kompensation sein kann. Bei alternativen Ausführungsformen ist ein 11-Zeilenpuffer 6241-Y vorgesehen und ein 7-Zeilenpuffer 6241-C vorgesehen, um einen Rotationswinkel von bis zu ±45 Grad zu unterstützen, im Falle einer 4:2:2-Chroma-Unterabtastung.
-
Die DMA-Steuerung 6232 liest die Quell-Rahmen-Daten Dsf und schreibt diese dann in die sieben Luma-Y-Zeilenpuffer 6241-Y (siehe 6241-2-Y) und in die sieben Chroma-(C)-Zeilenpuffer 6241-C. Nachfolgend liest die zweite affine Transformations-Vorrichtung 6250 einen 4×8-Pixel-Fensterbereich der Quell-Rahmen-Luma-Y-Daten (und im Falle der 4:2:2-Chroma-Unterabtastung ein 4×4-Pixel-Fensterbereich der Quell-Rahmen-Chroma-Daten des Quell-Rahmens) von den Zeilenpuffern, um jedes Pixel des interpolierten (zum Beispiel rotierten) Ziel-Rahmens zu erzeugen, und die Pixel des rotierten Bildes (Ziel-Rahmen) in Rasterordnung auszugeben.
-
Gemäß 2 können entsprechend der beispielhaften Implementierung 6241-2-Y von 9 sechzehn 1152×17 innere SRAMs (8 für den Luma-Y-Puffer 6241-Y und 8 für den Chroma-C-Puffer 6241-C) als Zeilenpuffer des Meta-Rahmen-Puffers 6240 verwendet werden, um die geeigneten Interpolations-Fensterdaten vorzusehen, um bis zur HD-Auflösung (1920×1080) des Ziel-Ausgangs-Bildes mit einem Rotationswinkel von bis zu ±22,5 Grad zu unterstützen. Eine größere horizontale Größe des Bildes kann durch Erhöhen der horizontalen Zeilenpuffer-Dimension unterstützt werden.
-
Beim Durchführen des Verfahrens von 8B erzeugt die erste affine Transformations-Vorrichtung 6220 horizontale Positionsinformationen (zum Beispiel Leseadressen), um die Steuerung für direkten Speicherzugriff (DMA)/Read Master 6232 zu steuern, um die ersten sieben Zeilenpuffer des Luma-Y-Meta-Rahmen-Puffers 6241-2-Y zu füllen. Die horizontale Positionsinformation enthält ferner Unterbrechungslinien-Positionsinformationen (zum Beispiel ein Bit), welche zu der zweiten affinen Transformations-Vorrichtung 6250 zum Gebrauch während des Interpolierens (Rotieren, Skalieren) der Pixel des Ziel-Rahmens in Rasterordnung übertragen wird. Die horizontale Positionsinformation enthält ferner horizontale Startpositionsinformationen (zum Beispiel HstartLB0–5), basierend auf der Position des linken Endes jeder Meta-Zeile Xd des Ziel-Meta-Rahmens, da diese in den entsprechenden Zeilenpuffer (zum Beispiel LB0–LB5) kopiert ist. Beispielsweise kann das linke Ende jeder der Meta-Zeilen Xd des Ziel-Meta-Rahmens, welche horizontal in den Zeilenpuffern LB0 bis LB5 gespeichert sind, acht Pixel von dem linken Ende von deren entsprechendem Zeilenpuffer aus LB0 bis LB5 positioniert sein. Die rechtswinklig gekennzeichneten, dicken, dunklen Linien in 9 bilden einen 6×15-Pixelbereich des Ziel-Meta-Rahmens, welcher horizontal in den Zeilenpuffern LB0 bis LB5 gespeichert ist, ab, welcher bei einer horizontalen Startposition (zum Beispiel HstartLB0–5), acht Pixel von dem linken Ende der Zeilenpuffer LB0 bis LB5 positioniert ist. Die in dem Zeilenpuffer LB6 gespeicherten Bild-Daten der Meta-Zeile Xd sind nicht mit den Bild-Daten der Meta-Zeilen Xd, welche in den Zeilenpuffern LB0 bis LB5 gespeichert sind, ausgerichtet. Daher starten die in dem Zeilenpuffer LB6 gespeicherten Bild-Daten der Meta-Zeile Xd bei einer unterschiedlichen horizontalen Zeilenpuffer-Speicheradresse.
-
Jede Vorgabe-Quell-Rahmen-Daten-Zugangsspeicher-Adresse wird durch die affine Transformations-Gleichung, basierend auf affinen Koeffizienten der Haupt-Transformation P(n), welche durch den APB-Bus empfangen werden, berechnet. Lese-DMA-Kanäle greifen auf den Quell-Rahmen-Puffer 6230 (oder einen externen DRAM) mittels der AXI-Bus-Master-Schnittstelle zu, welche eine 128-Bit-Datenbusbreite sein kann. Die DMA/Read Master 6232 auf dem AXI-Bus empfängt Anweisungen (Vorgabe-Quell-Rahmen-Daten-Zugriffsspeicher-Adressen) von der ersten affinen Transformations-Vorrichtung 6220 basierend auf Bildposition und Rotationsinformationen P(n), welche von dem APB-Bus mittels einer APB-I/F 6212 und einem oder mehreren Konfigurations-Registern 6210 empfangen werden.
-
Die erste affine Transformations-Vorrichtung 6220 identifiziert die Positionen in dem Quell-Rahmen-Puffer 6230 der Quell-Rahmen-Daten Dsf, welche benötigt werden, um die ersten sieben Zeilenpuffer LB0 bis LB6 des 6241-2-Y in 9 zu füllen, basierend auf affinen Parametern sx, sy, rx, ry, tx und ty, um die entsprechenden physikalischen Speicherpositionen zu erzeugen. Vier in 3 benannte Ecken des Ziel-Rahmens (0, 0), (0, dst_w), (dst_h, 0) und (dst_h, dst_w) und affine Parameter (sx, sy, rx, ry, tx, ty) werden durch die erste affine Transformations-Vorrichtung 6220 verwendet, um die zugehörigen Quell-Rahmen-Daten-Positionen (Adressen) zu berechnen. Aufgrund der Verteilung der Unterbrechungslinien kann jede Meta-Zeile Xd von benötigten Quell-Rahmen-Daten mehrere horizontale Startpositionen aufweisen, welche basierend auf der Position des ersten Pixels jeder Meta-Zeile bei den Ziel-Meta-Rahmen-Koordinaten Xd[0][y] berechnet werden, wobei y ein Index der Meta-Zeilen ist und bei 0 beginnt und bis zu der letzten vertikalen Position [N] des Ziel-Meta-Rahmens ansteigt.
-
Die erste affine Transformations-Vorrichtung
6241 berechnet die Unterbrechungslinien-Positions-Informationen aus den affinen (Rotations) Gleichungen:
-
Worin: Yd = C (Konstante); Xd[m] aus Xd[0] = Xdi (Min.); Xd[m] = Xde. (ganze Zahl); Xd[m + 1] = Xd[m] + 1; sämtliche Xs[m][C] und Ys[m][C] sind auf ganzzahlige Positionen gerundet. X'[I] wird auf Xs[m][C] eingestellt, lediglich wenn Ys[m][C] ≠ Ys[m – 1][C].
-
Auf alle benötigten Quell-Rahmen-Daten wird von der Start-Horizontal-Position (Xs[0][n]) bis zu der End-Horizontal-Position (Xs[M][n]) zugegriffen, wobei Yd aus 0 bis M (maximale Größe des Ziel-Rahmens) und Tx ein horizontaler Versatz ist (3). Für jede Quell-Vertikalpositions-Berechnung mit der affinen Transformation kann die Ziel-Vertikalposition mehr als eine Quell-Rahmen-Zeile voranschreiten. In diesem Fall stellt die DMA-Steuerung 6232 die Quell-Vertikalposition auf die (n)-te Zeile zwischen der vorhergehenden (n – 1)-ten Zeile und der aktuellen (n + 1)-ten Zeile ein, und stellt dann die (n + 1)-te Zeile als die nächste Quell-Rahmen-Daten-Vertikal-Start-Zugangsposition ein.
-
Die DMA-Steuerung 6232 liest die benötigten Quell-Rahmen-Daten Dsf Meta-Zeile für Meta-Zeile unter Verwendung des Satzes von Unterbrechungslinien-Informationen (Quell-Rahmen-Vertikal-Linien-Positionen), welche basierend auf den Ziel-Meta-Rahmen-Horizontalkoordinaten Xd[x][0] berechnet wurden, wobei x ein Index einer Spaltenposition von Pixeln in den Meta-Zeilen ist und bei 0 beginnt und bis zu dem letzten horizontalen Pixel [M] der Zeile des Ziel-Rahmens ansteigt. Jede durch die DMA-Steuerung 6232 gelesene Meta-Zeile wird in einen Zeilenpuffer des Luma-Y-Meta-Rahmen-Puffers 6242-2-Y von 9 kopiert. Da die Horizontalpositionen der Unterbrechungslinien in dem Quell-Rahmen ebenso vertikal in allen Zeilenpuffern ausgerichtet werden, werden die Unterbrechungslinien-Informationen ebenso gespeichert (als eine Bit-Datei, wie in 12 gezeigt ist) und dazu verwendet, um die Interpolations-Fenstergestalt während des Interpolationsverfahrens, welches durch die zweite affine Transformations-Vorrichtung 6250 durchgeführt wird, zu definieren. X'[I] gibt die veränderte vertikale Position an (Zunahme oder Abnahme hängt von der Rotationsrichtung ab). Während die DMA-Steuerung 6232 auf die benötigten Quell-Rahmen-Daten in dem Zeilenpuffer, welche mit der horizontalen Zeile des Ziel-Rahmens ausgerichtet sind, zugreift und speichert, wird während der Quell-Rahmen-Lesebearbeitung die nachfolgende Positions-(Adress-)-Information gespeichert und der zweiten affinen Transformations-Vorrichtung 6250 verfügbar gemacht:
Horizontale Startposition;
Vertikale Startposition;
AXI-Lese-Transaktions-Start- und Endposition.
-
Die bevorzugte Datenbusbreite des AXI-Datenbusses in der aktuellen beispielhaften Implementierung ist 128 Bit (RDATA = WDATA = 128 Bit). Daher stellt jede AXI-Lese-Anforderungs-Transaktion die Unterbrechungslinien-Positionsinformation, welche ebenso gespeichert werden soll, dar, nicht nur damit die zweite Interpolationsvorrichtung 6250 weiß, die passenden Gestalt-Interpolations-Fenster-Daten auszuwählen, sondern auch um die redundanten Daten zu verwerfen, falls die Start- oder Endposition der AXI-Lese-Daten nicht 128-Bit ausgerichtet ist. Vorzugsweise startet jede gültige Anforderungs-Quell-Rahmen-Datei innerhalb einer AXI-Lese-Transaktion von der geraden Pixelposition der Luma-Y-Daten, um zu vermeiden, nicht übereinstimmende Chroma-Cb-, Cr-Daten an der gleichen horizontalen Position zwischen der Unterbrechungslinien-Position während der Interpolation zu erhalten.
-
Die erforderlichen Kriterien der AXI-Lese-Transaktion hängen von den nachfolgenden Bedingungen ab:
die affine Transformation trifft die Unterbrechungslinien-Bedingung und der Pixelabstand von der letzten Unterbrechungslinien-Position, mit Ausnahme der ersten Anforderung jeder Linie, ist größer als 7 Pixel;
ausgerichtete Unterbrechungsposition bezüglich der vorhergehenden Linie; und
der fortlaufende, benötigte Quell-Rahmen-Daten-Zähler hat während dem Vorgang der beiden vorstehenden Bedingungen die maximale AXI-Ausbruch-Transaktionslänge erreicht.
-
10 ist ein Speicherabbild der beispielhaften Implementierung 6241-2-Y von 9, welches Variationen der horizontalen Startposition der Bewegungsfenster-Interpolation von in dem Meta-Rahmen-Zeilenpuffer 6241-2-Y gespeicherten Meta-Zeilen darstellt, um die Schritte des Verfahrens von 8B durchzuführen.
-
Beim Durchführen des Verfahrens von 8B erzeugt die erste affine Transformations-Vorrichtung 6220 horizontale Positionsinformationen (z. B. Leseadressen), um die Steuerung für direkten Speicherzugriff (DMA)/Read Master 6232 zu steuern, um die ersten sieben Zeilenpuffer LB0–LB6 des Luma-Y-Meta-Rahmen-Puffers 6241-2-Y zu füllen. Die horizontale Positionsinformation enthält horizontale Startpositions-Information (z. B. HstartLB0–5) basierend auf der Position des linken Endes jeder Meta-Zeile Xd des Ziel-Meta-Rahmens, da diese in deren entsprechenden Zeilenpuffer kopiert ist (zum Beispiel LB0–LB5). Beispielsweise ist das linke Ende jeder der Meta-Zeilen Xd des Ziel-Meta-Rahmens, welche horizontal in den Zeilenpuffern LB0 bis LB5 gespeichert sind, sechzehn Pixel (HstartLB0–5 = 16) von dem linken Ende von deren entsprechenden Zeilenpuffer aus LB0 bis LB5 positioniert. Dabei ist das linke Ende der Meta-Zeile Xd des Ziel-Meta-Rahmens, welche horizontal in dem Zeilenpuffer LB6 gespeichert ist, acht Pixel (HstartLB6 = 8) von dem linken Ende von deren entsprechenden Zeilenpuffer LB6 positioniert. Die in den Zeilenpuffern LB0 bis LB5 gespeicherten Bild-Daten wurden vorher eingeholt. Der horizontale Adresszeiger ist für die Zeilenpuffer LB0 bis LB5 gleich acht, und der horizontale Adresszeiger für den Zeilenpuffer LB6 ist gleich null, diese zeigen jedoch auf die gleiche horizontale Position der Quell-Bild-Daten. Daher starten die Bild-Daten der Meta-Zeile Xd, welche in dem Zeilenpuffer LB6 gespeichert ist, bei einer unterschiedlichen horizontalen Zeilenpuffer-Speicheradresse.
-
11 ist ein Diagramm der beispielhaften Zeilenpuffer-Implementierung
6241-2-Y von
9, welches Variationen der vertikalen Startposition winyshift der Bewegungsfenster-Interpolation von Meta-Zeilen, welche in dem Meta-Rahmen-Zeilenpuffer
6241-2-Y gespeichert sind, darstellt. Es gibt interne 2-Bit Signale in einer bevorzugten Implementierung der DIS-Kompensationseinheit
6000 von
2 in dem DIS-Schaltkreis von
1, welche das Verfahren von
8B zum Angeben der vertikalen Position der Interpolation während der Bewegungsfenster-Interpolations-Bearbeitung jeder Zeile R
d des Ziel-Rahmens durchführt. Die Mitte der Zeilenpuffer-Position des Interpolationsfensters (x', y') verändert sich in Abhängigkeit des Unterbrechungslinien-Indikators. Tabelle 1 zeigt die Bedeutung der internen 2-Bit Signale. Tabelle 1 Zeilenpuffer-Vertikal-Fensterbereich-Auswahl-Befehl (winyshift)
WINYSHIFT[1:0] | |
00 | Mitte der Zeilenpuffer-Position ist gleich der Bearbeitungs-Position |
01 | Mitte der Zeilenpuffer-Position ist größer als eine Bearbeitungs-Position |
10 | Mitte der Zeilenpuffer-Position ist kleiner als eine Bearbeitungs-Position |
11 | Mitte der Zeilenpuffer-Position ist kleiner als zwei Bearbeitungs-Position |
-
Wie durch die Pfeil-begrenzten Linien in 11 gezeigt ist, entsprechen unterschiedliche Sätze von Zeilenpuffern LB0 bis LB6 den vier unterschiedlichen winyshift-Befehlen.
-
Es gibt drei Typen von Zeilenpuffer-Vertikalrichtungs-Aktionen, um die nächste Mittellinien-Position anzugeben. Falls die aktuelle Mittellinie gleich n ist,
1. Erhöhung | Voranschreiten zu der nächsten vertikalen Quell-Rahmen-Linie (n + 1) |
2. Wiederholen der Linie | Verbleiben auf der gleichen vertikalen Quell-Rahmen-Linie (n) |
3. Überspringen der Linie | Voranschreiten um zwei vertikale Quell-Rahmen-Linien (n + 2) |
Tabelle 2 charakterisiert die Aktionen, welche die vertikale Richtungsbewegung der Interpolations-Fenster-Mitte in den Zeilenpuffern betrifft:
Aktion | Bedingung |
Wiederholen der Linie | Immer wenn der oberste Zeilenpuffer verwendet |
| wurde und mit Sicherheit nicht erneut verwendet |
| wird |
Überspringen der Linie | Immer wenn winyshift = 2'b11 |
Erhöhung | Sonstiges als die beiden vorstehenden Bedingungen |
-
12 ist ein Diagramm eines beispielhaften Modus des Speicherns von Luma-Y und Chroma-(CB und CR)-Quell-Rahmen-Daten, welche in dem Meta-Rahmen-Zeilenpuffer 6240 von 2 gespeichert sind, mit einem Zeilenpuffer zum Speichern von Bits, welche die Positionen der vertikalen Unterbrechungslinien-Positionen angeben. Die Quell-Bild-Daten (Luma-Y-Daten und Chroma-Cb, -Cr-Daten) und die Unterbrechungslinien-Informations-Bits sind in dem in 12 gezeigten Zeilenpuffer gespeichert. Die Bits, welche die Positionen der vertikalen Unterbrechungslinien-Positionen angeben, weisen ein Bit pro Horizontalposition auf, welche das Vorhandensein oder Nichtvorhandensein einer Unterbrechungslinie angeben.
-
13 ist ein Diagramm, welches die Gestalt eines beispielhaften 4-8-Pixel-Interpolationsfensters darstellt, welches durch eine vertikale Unterbrechungslinie in dem horizontalen Meta-Rahmen-Puffer 6240 in 2 geteilt ist (aufgrund Rotation des Ziel-Rahmens relativ zu dem Quell-Rahmen im Uhrzeigersinn). Der Kreis kennzeichnet die mathematische Mitte des 4-8-Pixel-Interpolationsfensters vor dem horizontalen Anordnen, und die angenäherte Position des Pixels des Ziel-Rahmens, welches davon interpoliert werden soll.
-
14(a) bis 14(d) sind Diagramme, welche die gleichmäßig rechteckige Gestalt und die vertikalen Positionen von beispielhaften nichtgeteilten 4-8-Pixel-Interpolationsfensters zum Interpolieren von Pixeln in verschiedenen Zeilen Rd eines Ziel-Rahmens darstellen. Die 14(a) bis 14(d) stellen unterschiedliche Werte der vertikalen Startposition winyshift der Bewegungsfenster-Interpolation von in einem horizontalen 7-Zeilen-Meta-Rahmen-Zeilenpuffer gespeicherten Meta-Zeilen dar. Die Ziel-Rahmen-Pixel werden von den Quell-Rahmen-Daten Dsf, welche in vier horizontalen Meta-Zeilen des Ziel-Meta-Rahmens enthalten sind, welche in vier Zeilenpuffern im horizontalen Meta-Rahmen-Puffer 6240 in 2 gespeichert sind, interpoliert. Der Wert jeder vertikalen Startposition winyshift ist ebenso angegeben.
-
Die 15(a) bis 15(e) sind Diagramme, welche die Gestalt und Positionen von beispielhaften geteilten 4-8-Pixel-Bewegungsfenstern zum Interpolieren von unterschiedlichen Pixeln eines ersten, im Uhrzeigersinn rotierten Ziel-Rahmens von Quell-Rahmen-Daten Dsf, welche in horizontalen Meta-Zeilen des Ziel-Meta-Rahmens, welche in dem horizontalen Meta-Rahmen-Puffer 6240 in 2 gespeichert sind, enthalten sind, darstellen. Die 15(a) bis 15(e) sind Diagramme, welche die Gestalt eines beispielhaften 4-8-Pixel-Interpolationsfensters darstellen, welches aufgrund einer Rotation im Uhrzeigersinn des Ziel-Rahmens, relativ zu dem Quell-Rahmen, durch eine vertikale Unterbrechungslinie in dem horizontalen Meta-Rahmen-Puffer 6240 in 2 aufgeteilt ist. Der Wert jeder vertikalen Startposition winyshift ist ebenso angegeben.
-
Die 15(f) bis 15(j) sind Diagramme, welche die Gestalt und Positionen von beispielhaften aufgeteilten 4-8-Pixel-Bewegungsfenstern zum Interpolieren von unterschiedlichen Pixeln eines zweiten, im Uhrzeigersinn rotierten Ziel-Rahmens von Quell-Rahmen-Daten Dsf, welche in horizontalen Meta-Zeilen des Ziel-Meta-Rahmens enthalten sind, welche in dem horizontalen Meta-Rahmen-Puffer 6240 in 2 gespeichert sind, darstellen. Die 15(f) bis 15(j) sind Diagramme, welche die Gestalt eines beispielhaftes 4-8-Pixel-Interpolationsfenster darstellen, welches aufgrund einer Rotation im Uhrzeigersinn des Ziel-Rahmens, relativ zu dem Quell-Rahmen, durch eine vertikale Unterbrechungslinie in dem horizontalen Meta-Rahmen-Puffer 6240 in 2 aufgeteilt ist.
-
In jeder der 14(a) bis 14(d) und den 15(a) bis 15(j) gibt es höchstens eine Unterbrechungslinie in jedem 4×8-Interpolations-Fensterbereich. Diese Beschränkung als eine Gestaltungs-Auswahlmöglichkeit reduziert die Implementierungs-Komplexität, da lediglich eine Unterbrechungslinie innerhalb eines 4×8-Interpolations-Fensterbereichs auftritt, reduziert jedoch den Bereich der Rotationswinkel, welche interpoliert werden können. Die korrekten Quell-Rahmen-Daten sollten basierend auf den Unterbrechungslinien-Markierungspunkten gesammelt werden. Jede Zeile von Interpolations-Quell-Rahmen-Daten sollte von der gleichen Quell-Rahmen-Zeile stammen. Die zweite affine Transformationsvorrichtung ermittelt die Interpolations-Fensterposition (Gestalt) durch Vergleichen der Ausgangs-Koordinaten-Information mit der Koordinaten-Information, welche durch die erste affine Transformationsvorrichtung berechnet wurde und in einigen inneren FIFOs und Zeilenpuffern gespeichert ist.
-
Beispielhafte Ausführungsformen der vorliegenden Erfindung reduzieren den Aufwand des Quell-Rahmen-Daten-Zugriffs und Erzeugen den Rasterordnungs-Abtastungs-Typ der Ausgangs-Ziel-Rahmen-Daten. Die Raster-Abtastungs-Ordnung der Ausgangs-Ziel-Rahmen-Daten wird durch die Neuausrichtungs-Anordnung von diagonal verteilten Quell-Rahmen-Daten in mehrere Zeilenpuffer erleichtert.
-
Die Nutzung der Ausführungsformen des vorliegenden erfinderischen Konzepts reduziert den Aufwand, da die gleichen Quell-Rahmen-Daten im Vergleich zu überlappendem Lesen der Quell-Rahmen-Daten bei dem Kachel-Verfahren lediglich einmal gelesen werden, und erzeugt außerdem die Rasterordnungs-Ziel-Rahmen-Daten-Ausgangssequenz nahtlos, ohne weiteren Berechnungs- oder Speicheraufwand.
-
Der vorstehend offenbarte Gegenstand soll als erklärend und nicht als beschränkend angesehen werden, und die beigefügten Ansprüche sind vorgesehen, um alle derartigen Modifikationen, Erweiterungen und andere Ausführungsformen, die in den wahren Erfindungsgedanken und Schutzumfang des erfinderischen Konzepts fallen, abzudecken. Somit soll der Schutzbereich des erfinderischen Konzepts bis zu einem durch das Gesetz erlaubten Ausmaß durch die breitest zulässige Interpretation der nachfolgenden Ansprüche und deren Äquivalente bestimmt werden, und soll durch die vorangehende detaillierte Beschreibung nicht beschränkt oder eingegrenzt werden.