Multimedia-Gateway für mobile Clients

Transcoding

Die Transcodierung soll dazu dienen, einen qualitativ hochwertigen Videostrom für mobile Clients mit geringen Ressourcen umzuwandeln. Die Umwandlung kann sich auf die Datenrate, auf das Codierungsformat oder auf beides beziehen. Der einfachste Ansatz, komprimierte Videodaten umzuwandeln, ist die Decodierung in einzelne Bilder und anschließende Codierung mit anderen Parametern oder in ein anderes Format. Diese naive Variante eines Transcoders ist jedoch sehr rechenintensiv und kann ohne spezielle Hardware nicht in Echtzeit erledigt werden. Der größte Anteil der benötigten Rechenzeit bei der Transcodierung der betrachteten DCT-basierten Formate wird für die inverse DCT und die Bewegungskompression benötigt. Da es sich bei MPEG-1/2 und H.261/3 um verlustbehaftete Codierungen handelt wird sich die Qualität der umgewandelten Videodaten relativ stark verschlechtern.
Dem ersten Problem kann dadurch entgegengewirkt werden, dass die Manipulationen einzelner Bilder nicht im Pixelbereich, sondern im Frequenzbereich durchgeführt werden, da hierdurch u.U. die Anwendung der DCT entfällt und erheblicher Rechenaufwand eingespart werden kann. Der Qualitätsverlust der erneuten Codierung kann durch Wiederverwendung der Bewegungsvektoren, die bei der Erzeugung des umzuwandelnden Formates berechnet wurden, verringert werden.

Bildbearbeitung im Frequenzbereich

Es gibt viele Arbeiten (z.B. [1], [2] und [3]), die sich mit der Manipulation von Bildern im Frequenzbereich befassen. Hintergrund dieser Überlegungen ist, dass die DCT mathematisch eine lineare Abbildung darstellt und somit jede Bildbearbeitung im Pixelbereich in den Frequenzbereich überführt werden kann. Am deutlichsten ist dieser Sachverhalt zu erkennen, wenn die Bearbeitung eines Bildes als Matrixmultiplikation einzelner Bildblöcke betrachtet wird. Hierbei wird jeder Bildblock x mit einer konstanten Abbildungsmatrix s und dessen Transponierten st multipliziert. Soll diese Abbildung im Frequenzbereich durchgeführt werden, so müssen die Abbildungsmatritzen in diesen überführt werden.
Abbildung eines Blockes x im Pixelbereich:

y = sxst

(x ist der zu skalierende Block, y der skalierte Block, s die Abbildungsmatrix und stdie transponierte Abbildungsmatrix)

Abbildung eines Blockes x im Frequenzbereich:

DCT(y) = DCT(sxst) = DCT(s)DCT(x)DCT(st)=SXSt

Da die einzelnen Bilder einer Videosequenz in den hier betrachteten Formaten als DCT-Blöcke vorliegen, kann also auf die Anwendung der DCT und dessen Inversen verzichtet werden. Die nötigen Berechnungen zur Bestimmung der Abbildungsmatritzen im Frequenzbereich können im Voraus erledigt werden und fallen nicht zur Laufzeit an. Ein weiterer Vorteil der Berechnungen im Frequenzbereich ist die Tatsache, dass die DCT-Böcke einzelner Bilder in den hier betrachteten Videoformaten dünn besetzt sind, also nur wenige von Null verschiedene Werte enthalten. Diese Tatsache kann ausgenutzt werden, um effiziente Algorithmen zu entwerfen, die weniger Operationen als die normale Matrixmultiplikation benötigen.

Wiederverwendung von Bewegungsvektoren

Damit der Qualitätsverlust bei der Transcodierung von Videodaten möglichst gering ist, sollten innerhalb des Transcoder die Bewegungsvektoren der ursprünglichen Codierung wiederverwendet werden. Desweiteren führt die Weiterverwendung zu einer weiteren Reduktion des Rechenaufwands, da die Bewegungskompression stark vereinfacht oder sogar fast vollständig entfallen kann. Die einzelnen Bewegungsvektoren müssen natürlich an das Ausgabeformat des Transcoder angepasst werden. Diese Anpassungen können wie die Bildbearbeitung im Frequenzbereich durchgeführt werden und erfordern daher keinen hohen Rechenaufwand.

Literatur

[1]Dipan Mehta and U.B. Desai, "A Primer To Video Transcoding: Image Transcoding", 8th National Conference On Communications (NCC2002), January 2002.
[2]Rakesh Dugad and Narendra Ahuja, "A Fast Scheme for Image Size Change in the Compressed Domain", IEEE Trans. on Circuits and Systems for Video Technology, vol. 11, no. 4, pp. 461-474, April 2001.
[3]N. Merhav and V. Bhaskaran, "Fast algorithms for DCT-domain image downsampling and for inverse motion compensation", IEEE Transactions on Circuits and Systems for Video Technology, vol. 7, pp. 468-476, June 1997.

Jens Zechlin
19.12.2002