mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Videobild kleiner skalieren


Autor: Bernhart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag

Ich möchte mir für ein Projekt einen "Down" Skaler bauen.
Es geht also darum z.b. ein Videobild das jetzt mal digital vorliegen 
mag, in ein kleineres umzuwandeln.

Wie skaliert man, welche verbesserungsmethoden gibt es, oder kurz gesagt 
wonach kann man suchen.

Ich möchte das entweder mit schnellem Prozessor oder FPGA umsetzen. Es 
geht aber erst einmal um die Theorie. Jede Info außer "lass es, gibt es 
ja schon, u.s.w." hilft mir weiter.

Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... nimm jedes zweite Pixel der zweiten Zeile. usw

damit bleibt Dein Bild auch noch bei seeeeehr großer
Verkleinerung schemenhaft erkennbar!

Gruß Fred

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dein Zielbild zB 40 px breit ist und dein Ausgangsbild 60px musst 
du im Ausgangsbild für jeden Pixel im Zielbild 60/40 px Schritte machen, 
damit landest du zwischen den Pixeln. Den Nachkommawert der aktuellen 
Position kannst du nehmen um zwischen den Pixeln linear zu 
interpolieren.

Autor: Bernhart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, sowas geht ja, gibt es da auch noch Softwarespielereihen um das 
ganze schärfer oder genauer darzustellen, bis jetzt ist das ja zeitlich 
gesehen nichts unmögliches. (Was gut ist)
Ich kenne aus dem DTP Bereich RasterImageProzessoren (Rips) die habens 
ganz schön in sich.

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit der beschriebenen linearen interpolation hat man schon nen recht 
brauchbares bild.

Wenn das Seitenverhältnis ein anderes ist gibt es noch Technologien 
welche das Bild unverzerrt skalieren können (rechenintensiv).

Autor: 3361 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt im Wesentlichen 2 Moeglichkeiten. Man legt das neue Bild 
skaliert auf das Alte.
1) Man nimmt der Farbwert an der alten position
2) Man gibt dem neuen Pixel die Farbe der im alten Bild ueber dieses 
Pixel integrierten Flaeche.
Version 2 gibt mehr zu rechnen.

Autor: Bernhart (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch nicht schlecht, bis jetzt habe ich alles soweit verstanden, gibt es 
dafür einen Fachnamen oder ein Tutorial oder Bilder die Unterschiede 
verdeutlichen.

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich war da mal Fachmann - ist aber schon lange her. Schon vor der Zeit 
des Internet, so dass ich auf Links nicht verweisen kann. Ich meine 
aber, bei Wikipedia schon Themen dazu gesehen zu haben.

Technisch richtig und aufwendig sind zwei Abtastratenwandlungen. Erst 
mal noch oben, also soweit die Pixelzahl vervielfältigen, dass die neue 
Zahl Pixeln pro Zeile ein ganzzahliger Teiler ist (KGV). Und dann wieder 
nach unten auf die gewünschte Zahl Pixeln/Zeile.

Bei dem Beispiel von Marius S. wäre das:
Zuerst die 60pel auf 120pel aufblähen, also Abtastrate verdoppeln, dann
120 auf 40pel reduzieren durch ARW um Faktor 3 nach unten.
Die ursprüngliche Folge sei: x1, x2, x3, x4 usw.
Man fügt zunächst '0' ein, um auf die doppelte Rate zu kommen, also x1, 
0, x2, 0, x3, 0, usw., filtert dann, erhält die Folge
x1a, x1b, x2a, x2b, x3a, x3b, usw., nimmt jeden 3. Wert und das Ergebnis 
ist
x1a, x2b, x3a, x4b usw.

Das ganze natürlich zweidimensional - also in vertikaler Richtung auch.
Zur Abtastratenwandlung gehört natürlich auch eine entsprechende 
Anwendung von Filtern. Dabei kann man sich durch geschickte Verfahren 
die u.U. hohe Zwischentaktfrequenz (manchaml?) sparen, mit Grips und 
Mathe ...

Die oben genannten Mittelwertbildungen bzw. Interpolationen sind zwar 
auch nichts anderes ( (a+b)/2 ist das einfachste digitale Filter ) , 
aber diese bringen eine stärkere Verschlechterung der Schärfe als 
notwendig wäre.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.