#75
Beitrag
von hagge » Mo 4. Dez 2006, 11:17
[quote=""Panurg""]Bitte verstehe es nicht als doofes Rumgemaule, sondern als interessierte Frage eines Laien: In den Geräten der Weltmarken ist aber eine bildgenaue Ansteuerung/Edition möglich; vielleicht ja nicht jeder beliebige Frame, aber besser als sekundenraster doch bestimmt - selbst oft gemacht. Wie ist das denn damöglich? Ist das ein Patent, ein Betriebsgeheimnis? Etwas, was der Topf wegen bestimmter Hard- oder Firmwarestrukturen nicht hergibt?[/quote]
wohliks hat ja schon eine Erklärung gegeben, die aber denke ich nicht alle Aspekte umfasst. Was da noch fehlt ist die Datenorganisation auf der Platte, die eigentlich hauptsächlich für die Schnittmethode des Topfes verantwortlich ist.
Wenn man in einer Datei etwas "wegschneidet", dann bedeutet das, dass man das übriggebliebene Ende direkt an den übriggebliebenden Anfang hängen muss. Das heißt normalerweise, dass man tatsächlich das Endstück umkopieren muss, also die Daten hinten lesen und weiter vorne in der Datei wieder neu schreiben muss. Das ist bei so langen Video-Dateien aber mit einem gewissen Zeitaufwand verbunden.
Der Topf macht das darum komplett anders: er kopiert nicht ein einziges Byte dabei, sondern er nimmt einfach ein Stück der Datei zwischendrin logisch weg. Das kann man aber nur verstehen, wenn man weiß, wie die Daten auf der Platte angeordnet sind.
Die gesamte Platte ist in sog. Cluster unterteilt, also Datenblöcke gleicher Größe. Diese werden in einer Tabelle, der sog. File Allocation Table (FAT), verwaltet. Eine Datei umfasst immer eine ganzzahlige Anzahl Cluster. Es kann also durchaus sein, dass das letzte Cluster einer Datei nicht komplett belegt ist, wenn die Datei nicht genau ein Vielfaches der Clustergröße lang ist. Im allgemeinen ist dieser ungenutzte Platz (Verschnitt) aber vernachlässigbar, speziell bei so langen Dateien wie beim Topf.
In der FAT steht nun zu jedem Cluster drin, ob das Cluster frei ist, oder welches das nächste logische Cluster in der Datei ist. Der Anfang einer Datei, also das erste Cluster, ist im Inhaltsverzeichnis (Directory) angegeben, ab dann hangelt sich das System anhand der FAT durch die Datei. Ob die Cluster dabei wirklich aufsteigend nacheinander folgen, oder kreuz und quer und vor und zurück auf der Platte verteilt sind, ist dabei erstmal irrelevant. Sie sind logisch über die FAT als eine aneinander hängende Kette verknüpft. (Anmerkung: eine Datei, die aus mehreren nichtzusammenhängenden Abschnitten besteht, nennt man fragmentiert. Sowas spielt dann bei der absoluten Zugriffsgeschwindigkeit eine Rolle, da hier der Lesekopf der Platte ständig hin- und herfahren muss. Für unsere Betrachtung hier ist das aber nicht von Bedeutung.)
Ein File, das aus den Custern A-F besteht, sieht dann also in etwa so aus:
A -> B -> C -> D -> E -> F
Wenn der Topf nun was schneidet, dann nimmt er einfach die entsprechenden Cluster aus der Datei weg und verkettet die restlichen Cluster anders. Angenommen, die Werbung beginnt in Cluster C und endet in Cluster E. Wenn der Topf nun die Werbung wegschneidet, dann nimmt er einfach die Cluster C, D und E aus der Liste, markiert sie also in der FAT wieder als frei, und verkettet dann B in der FAT direkt zu F. Und schon ist der Schnitt fertig. Das übrige File sieht also so aus:
A -> B -> F
C: frei
D: frei
E: frei
Hieran sieht man nun zwei Dinge:
1. Der Topf schneidet *nicht* an GOP-Grenzen, sondern irgendwo ganz hart zwischendrin, wo halt eben ein Cluster endet. Entsprechend holpert das Bild auch beim Schnittübergang.
2. Wenn man zu knapp markiert, schneidet der Topf evtl. zu viel weg. In meinem Beispiel begann die Werbung ja irgendwo mitten in C und endete mitten in E. Wenn nun C und E jeweils komplett weggenommen werden, dann fehlt auch ein Stück vor und nach der Werbung vom Film. Besser wäre hier, wenn der Topf nur den Sektor D weggeschnitten hätte. Dann hätte man zwar danach immer noch ein wenig von der Werbung übrig, aber zumindest würde nichts vom Film verloren gehen. Meiner Ansicht nach schneidet der Topf das schlicht und einfach falsch.
In der Praxis sind das natürlich viel viel mehr Cluster inder Datei und man kann dadurch immer noch halbwegs genau schneiden. Die Clustergröße ist übrigens von der Plattengesamtgröße abhängig. Bei meiner 160GB-Platte ist ein Cluster so etwa 3-5 Sekunden lang. Schneidet man also nur etwa 5s nach Beginn der Werbung bis ca. 5s vor Ende der Werbung, dann verliert man garantiert nichts vom Film.
Übrigens klappt so genauso das "Speichern" der markierten Daten. Drückt man statt auf "Schneiden" auf "Speichern" der Daten, dann werden die Cluster C-E eben nicht freigegeben, sondern als eigene Datei angelegt:
Originaldatei: A -> B -> F
Cut-Datei: C -> D -> E
Insgesamt ist die Schnittfunktion vom Topf also prinzipbedingt nicht sonderlich genau, dafür aber sauschnell, weil kein einziges Byte der Datei selbst umkopiert werden muss. Es werden nur Änderungen in der FAT und im Directory vorgenommen.
Man könnte sich nun durchaus ein TAP vorstellen, das das zu löschende Stück tatsächlich entfernt, indem das Dateiende umkopiert wird. Das würde zu einem deutlich besseren Übergang und zu einer verbesserten Genauigkeit führen. Sinnvollerweise sollte sich das Schnitt-TAP dann an der GOP-Struktur orientieren. Theoretisch sollten damit immerhin so genaue Schnitte wie mit dem Schnittprogramm Mpeg2Schnitt möglich sein. Also OUT-Schnitte an I- und P-Frames, IN-Schnitte an I-Frames. In der Praxis könnte der Bild/Tonversatz ein Problem sein, der hier ja noch nicht behoben ist. Bei Mpeg2Schnitt geht ja üblicherweise ein korrigierender Demux-Schritt voraus, z.B. mit ProjectX, der hier noch fehlt.
Gruß,
Hagge
Zuletzt geändert von
hagge am Mo 4. Dez 2006, 11:24, insgesamt 1-mal geändert.