@ michiwoi
Hallo Michi ..
Marco hat geschrieben:Bezüglich CPU könnte unter Umständen ein schnellerer Dual-Core für die AVCHD-Bearbeitung sogar effektiver sein als dieser Quadcore mit "nur" je 2,67 GHz. Wenn die Software die vier Kerne nicht wirklich nutzen kann, sind 2,67 GHz nicht der Hammer für AVCHD. Also mindestens 3 GHz pro Prozessor(kern) halte ich schon für sinnvoll.
Marco
Das trifft die Sache (bis auf die 3GHz) ziemlich exakt ..!
Nicht Prozessorleistung ist das A&O ... Die richtige Prozessor Architektur ist es.
Auch Daigoros Infos gingen genau in die richtige Richtung ...
In den alten Standards wurden in linearer Abfolge je Makroblock die einzelnen Syntaxelemente aus dem Bitsream gelesen, decodiert und direkt verarbeitet.
Diese Arbeitsweise ist in Codierverfahren mit vegleichbar geringem Prädiktionsgrad hinsichtlich der Syntaxelemente von Vorteil, weil Speicherkapazität gespart werden kann.
Syntaxelemente wie beispielsweise Transformationskoeffizienten oder Makroblocktypen in MPEG-2, auf die im späteren Verlauf der Decodierung nicht weitere zugegriffen werden muss, erhalten nur eine lokale Zwischenspeicherung und können nach Abschluss der Rekonstruktion eines Makroblockes direkt verworfen werden.
Die Strategie bisheriger Videodecoder ist auf Lokalität und Speicherplatzoptimierung angelegt.
Das hat sich geändert ... und zwar drastisch.
H.264 schreibt aufgrund der Unterstützung von Langzeitprädiktionen und multiplen Referenzbildern komplexe Möglichkeiten zur Pufferung und Umsortierung der entsprechenden Bilder vor.
Zu den Referenzbildern werden in H.264- Decodern auch Bewegungsvektoren und Referenzbildindizien mitgeführt so dass die Logik der Umsortierung auch bei nicht direkt durchgeführten Bildverarbeitungsoperationen erforderlich ist. In der Bewegungskompensation nach H.264 sind die Implementierung 16 algorithmisch verschiedener Fälle der Interpolation zu berücksichtigen.
Dabei stellt die begrenzte Anzahl verfügbarer Register besonders in den Fällen mit bidirektionaler Filterung und mehrfachen Zwischenergebnissen ein Problem bei der Effizienz bestehender Systeme dar.
Also nicht die Prozessorleistung ist der Engpass sondern der Speicherzugriff in seiner Dynamik ist der springende Punkt.
Der Pentium IV z.B. hat aufgrund der hohe Taktfrequenzen lange Pipeline die eine deutlich geringere Taktrateneffizienz als bei den AMD- und PPC-Prozessoren hat.
Nachteil solcher Strukturen sind der höherer "Verwaltungsaufwand" durch Programmverzwigungen und mehr Hauptspeicherbedarf, sodass ein erheblicher Teil der Funktionseinheiten des Prozessors damit belastet ist, Pipeline-Hemmnisse zu beseitigen und mögliche Doppeldeutigkeiten in mehrfach beschriebenen Speicherzellen zu bereinigen.
Die interne Verarbeitungsgeschwindigkeit aktueller Prozessoren übersteigt den Durchsatz extern angebundener Komponenten aber bereits um ein Vielfaches.
Das betrifft hauptsächlich die schon erwähnte Leistungsfähigkeit beim Hauptspeicherzugriff.
Eine Problematik der softwarebasierten Bildsignalverarbeitung besteht darin, dass die blockbasierte Bildrekonstruktion den Zugriff auf zweidimensionale Datenfelder voraussetzt, während Hauptspeicher und Caches primär für fortlaufende Daten konzipiert sind.
Mit wachsender Bildgröße nimmt der Einfluss des Zugriffes auf zweidimensionale Datenfelder für Referenzbildindizes , Bewegungsvektoren und Seiteninformationen der Codierung noch zu.
Ausserdem spielt im Gegensatz zu H.264 bei MPEG2 der decoderinterne Verwaltungsaufwand keine wirkliche Rolle.
Es geht also nicht wirklich um die Hardware, denn selbst Prozessoren der 2 GHz Klasse reichen aus um Echtzeitleistung zu gewährleisten:
Beispiel: H.264 1080p Level 4 mit 20 Mbit/s incl. CABAC setzt etwa 80 MHz/Bild voraus (ich schenk´mir die Detailberechnung einmal) ..... 25 Bilder/s= 2 GHz.
Voraussetzung ist eben nur, dass die Lastverteilung so geschieht, dass ein Kern beispielsweise die Bilddaten bearbeitet und ein anderer Kern den Verwaltungsaufwand des Bitstreams übernimmt .... und das natürlich genügend Register und Vektorrecheneinheiten vorhanden sind.
Ausschliesslich die Anpassung der Rechenschritte in der Bildverarbeitung an Aufbau und Arbeitsweise der Speicher führt zu besserem Laufzeitverhalten. Die ganze Diskussion um Übertaktung und mehrfach-Kernen treffen das Zentrum des Problems nicht.
Solange die Software angelegt ist, wie in den alten Standards kann es auch mit noch so vielen Kernen nur unbefriedigend funktionieren.