PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Crop bei DivX ohne recompress?


Mr. Lolman
2004-07-08, 00:12:14
Geht denn das? (also z.B die 2 obersten Zeilen, ohne Neukomprimierung, wegschneiden?)

Muh-sagt-die-Kuh
2004-07-08, 00:34:27
Original geschrieben von Mr. Lolman
Geht denn das? (also z.B die 2 obersten Zeilen, ohne Neukomprimierung, wegschneiden?) Die obersten 2 Zeilen definitiv nicht, da dann die Linienanzahl nicht mehr durch 16 (Blockgröße bei Luma-Blöcken) teilbar wäre.....ein crop von x * 16 Linien ist theoretisch ohne Rekompression möglich.

Marcel
2004-07-08, 00:57:04
Original geschrieben von Muh-sagt-die-Kuh
Die obersten 2 Zeilen definitiv nicht, da dann die Linienanzahl nicht mehr durch 16 (Blockgröße bei Luma-Blöcken) teilbar wäre.....ein crop von x * 16 Linien ist theoretisch ohne Rekompression möglich.

Jupp, theoretisch schon, nur praktisch nicht.
War vor einiger Zeit auch mal Thema einer Diskussion auf Doom9, ergebnislos. Was mich erstaunte - das sollte doch eigentlich mit nicht allzuviel Aufwand machbar sein. Aber anscheind hat noch niemand ein entsprechendes Tool gebaut.

Ikon
2004-07-08, 01:21:21
Original geschrieben von Muh-sagt-die-Kuh
Die obersten 2 Zeilen definitiv nicht, da dann die Linienanzahl nicht mehr durch 16 (Blockgröße bei Luma-Blöcken) teilbar wäre.....ein crop von x * 16 Linien ist theoretisch ohne Rekompression möglich.

MPEG4 ist nicht mehr auf fixe Makroblöcke von 16x16 beschränkt, aber dennoch ist eine nachträgliche Änderung der Auflösung praktisch unmöglich. Ein entsprechendes Programm wäre wohl sehr kompliziert zu schreiben. Man müsste sämtliche Blockbezüge, VOL-Header und v.a. die Quantisierungsmatrix eines fertigen Video-Streams verändern.

Marcel
2004-07-08, 01:28:32
Original geschrieben von Ikon
MPEG4 ist nicht mehr auf fixe Makroblöcke von 16x16 beschränkt, aber dennoch ist eine nachträgliche Änderung der Auflösung praktisch unmöglich. Ein entsprechendes Programm wäre wohl sehr kompliziert zu schreiben. Man müsste sämtliche Blockbezüge, VOL-Header und v.a. die Quantisierungsmatrix eines fertigen Video-Streams verändern.

16x16 ergibt sich auch erst durch die verringerte Auflösung der Farben. Sprich, 8x8, auf 200% gezoomt.
Die heute üblichen MPEG4-Implementierungen verwenden aber durch die Bank die 8x8-Blöcke. Oder irre ich mich da?

Wieso sollte die Quantisierungsmatrix geändert werden?

Muh-sagt-die-Kuh
2004-07-08, 01:53:31
Original geschrieben von Marcel
16x16 ergibt sich auch erst durch die verringerte Auflösung der Farben. Sprich, 8x8, auf 200% gezoomt.
Die heute üblichen MPEG4-Implementierungen verwenden aber durch die Bank die 8x8-Blöcke. Oder irre ich mich da?Soweit ich weiß 8x8 Blöcke für Chroma und 16x16 für Luma.Wieso sollte die Quantisierungsmatrix geändert werden? Dafür gibt es absolut keinen Grund.

Muh-sagt-die-Kuh
2004-07-08, 01:57:37
Original geschrieben von Ikon
MPEG4 ist nicht mehr auf fixe Makroblöcke von 16x16 beschränkt, aber dennoch ist eine nachträgliche Änderung der Auflösung praktisch unmöglich. Ein entsprechendes Programm wäre wohl sehr kompliziert zu schreiben. Man müsste sämtliche Blockbezüge, VOL-Header und v.a. die Quantisierungsmatrix eines fertigen Video-Streams verändern. MPEG-4 ist generell nicht mehr auf 16x16 Blöcke beschränkt, das ist richtig....das Advanced Simple Profile, dem XviD oder DivX entsprechen, verwendet jedoch Makroblöcke mit fixer Größe, neu ist gegenüber MPEG-2 nur GMC, QPel Motion-Estimation sowie ein alternativer Quantisierer.

Technisch gesehen ist ein Crop ohne Re-Encode nicht so schwierig. Klar, man muss Header und Block-Indizes anpassen, aber im Prinzip schmeisst man einfach eine komplette Reihe Makroblöcke weg....

Gast
2004-07-08, 03:49:49
Die Blockgrösse ist relativ egal, der Hauptgrund warum es unmöglich ist, ist daß du die Vektoren zur Bewegungskompensation abschneiden würdest. Ergo muss zwangsläufig neukomprimiert werden, sonst würden einige davon aus dem Bild heraus zeigen, und das geht nicht :)

Ikon
2004-07-08, 09:46:44
Original geschrieben von Marcel
16x16 ergibt sich auch erst durch die verringerte Auflösung der Farben. Sprich, 8x8, auf 200% gezoomt.
Die heute üblichen MPEG4-Implementierungen verwenden aber durch die Bank die 8x8-Blöcke. Oder irre ich mich da?

Bei XviD sind 8x8 und 16x16 möglich.

Original geschrieben von Marcel
Wieso sollte die Quantisierungsmatrix geändert werden?

Der Gedanke ging in die falsche Richtung. Ich dachte daran, einige Pixel/Zeilen einer Makroblockreihe wegzuschneiden, dann wäre eine Modifikation der QM nötig. Da diese aber nur pro Frame und nicht pro Block gespeichert wird (im VOL-Header), würde dann so ziemlich alles andere nicht mehr passen -> weshalb man eben nur in ganzen Blockreihen schneiden könnte.

Original geschrieben von Gast
Die Blockgrösse ist relativ egal, der Hauptgrund warum es unmöglich ist, ist daß du die Vektoren zur Bewegungskompensation abschneiden würdest. Ergo muss zwangsläufig neukomprimiert werden, sonst würden einige davon aus dem Bild heraus zeigen, und das geht nicht


Die Bezüge ließen sich wohl anpassen, aber wie gesagt, ein solches Programm zu realisieren dürfte nicht leicht sein.

Und vorallem, wer will schon ganze Blockreihen schneiden? Das ist nicht sehr praxisgerecht.