DE69432142T2 - Verfahren und vorrichtung zur effizienten transkodierung - Google Patents
Verfahren und vorrichtung zur effizienten transkodierungInfo
- Publication number
- DE69432142T2 DE69432142T2 DE69432142T DE69432142T DE69432142T2 DE 69432142 T2 DE69432142 T2 DE 69432142T2 DE 69432142 T DE69432142 T DE 69432142T DE 69432142 T DE69432142 T DE 69432142T DE 69432142 T2 DE69432142 T2 DE 69432142T2
- Authority
- DE
- Germany
- Prior art keywords
- vector
- quantization error
- quantized
- vectors
- adder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 26
- 239000013598 vector Substances 0.000 claims description 238
- 238000013139 quantization Methods 0.000 claims description 83
- 230000009466 transformation Effects 0.000 claims description 41
- 230000004048 modification Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000036461 convulsion Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B14/00—Transmission systems not characterised by the medium used for transmission
- H04B14/02—Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation
- H04B14/06—Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using differential modulation, e.g. delta modulation
- H04B14/066—Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using differential modulation, e.g. delta modulation using differential modulation with several bits [NDPCM]
- H04B14/068—Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using differential modulation, e.g. delta modulation using differential modulation with several bits [NDPCM] with adaptive feedback
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
- Die Erfindung betrifft allgemein die Transcodierung von digital codierten Signalen und insbesondere die Transcodierung von Signalen, die durch prädiktive Codierer digital codiert sind.
- Ein prädiktiver Signalformcodierer ist eine Vorrichtung zum Komprimieren der Menge an Informationen in einer Signalform (z. B. Sprache, Bild oder Video) durch Entfernen der statistischen Redundanz unter seinen benachbarten Proben unter Verwendung von Vorhersagemethoden. Mehrere ITU-T- Empfehlungen zur Sprachcodierung (ITU-T steht für den IFU- Sektor für die Normierung bei der Telekommunikation; ITU-T ist ehemals bekannt als CCITT bzw. als Internationaler Beratender Ausschuss für den Fernschreib- und den Fernsprech dienst) haben prädiktive Codiertechniken übernommen (zum Beispiel wird die Differenz-Pulscodemodulation (DPCM) in der Empfehlung G.721 verwendet). Bei diesen prädiktiven Sprachcodierern wird eine ursprüngliche Sprachprobe anhand früherer Sprachproben vorhergesagt, und der Vorhersagefehler (der Unterschied zwischen den ursprünglichen und den vorhergesagten Proben) wird anstelle der ursprünglichen Probe quantisiert und dann durch einen rauschfreien Codierer digital zu einem Bitstrom codiert. Da die Energie des Vorhersagefehlers im Durchschnitt viel kleiner ist als das ursprüngliche Sprachsignal, lässt sich im Allgemeinen ein hohes Kompressionsverhältnis erreichen.
- Prädiktive Codierverfahren wurden auch zur Bild- und Videokompression verwendet. Bei diesen Anwendungen kann die räumliche Korrelation zwischen benachbarten Pixel in einem Bild und, im Falle von Video, die zeitliche Korrelation zwischen aufeinanderfolgenden Bildern ausgenützt werden.
- Typische prädiktive Codierer führen die Vorhersage anhand einer Kopie der rekonstruierten Signalform durch. Damit ist sichergestellt, dass sich während der Rekonstruktion kein Quantisierungsfehler aufbaut. Wenngleich die Vorhersagegenauigkeit verringert ist (wegen einer groben Quantisierung), ist die gesamte Kompressionsleistung im Allgemeinen verbessert.
- Digitale Videocodiersysteme nach dem Stand der Technik arbeiten mit Transformationscodierung zur räumlichen Kompression und mit einer als bewegungskompensierte Vorhersage (MCP) bekannten prädiktiven Codierung zur zeitlichen Kompression. Videokompressionsverfahren, die unlängst in internationale Standards aufgenommen wurden (z. B. in den von der Motion Picture Experts Group (MPEG) der Internationalen Organisation für Normung (ISO) entwickelten MPEG-Standard und in den Standard H.261 der ITU-T), oder andere Verfahren, die für zukünftige Standards in Betracht gezogen werden, arbeiten alle mit einer sogenannten MCP-Technik zur Bereichszuordnung. Bei diesem Verfahren wird jedes Bild in einer Videosequenz in N · N Blöcke, sogenannte Makroblöcke (MBs) unterteilt, wobei N eine vorbestimmte ganze Zahl ist. Für jeden Makroblock wird eine Kopie des zuvor decodierten Bildes durchsucht, um ein N · N-Fenster zu finden, das jenem Makroblock am stärksten ähnelt, und die Pixel in jenem Fenster werden als Vorhersage für jenen Makroblock verwendet. Der Vorhersagefehler wird dann mit einer Kombination aus Transformationscodierung und skalarer Quantisierung codiert, wobei anschließend eine rauschfreie Codierung variabler Länge durchgeführt wird.
- Eine Transcodierung wird bei vielen Anwendungen von komprimiertem digitalem Video erforderlich sein. Zum Beispiel kann es in einigen Fällen wünschenswert sein, die Geschwindigkeit eines digitalen Videobitstroms im Netz zu ändern. Wenn alternativ Videoverkehr mit konstanter Bitrate (CBR) über ein Zellenübermittlungsnetz oder ein ATM-Netz (ATM = Asynchronous Transfer Mode = asynchroner Übertragungsmodus) durchgeführt werden soll, kann es wünschenswert sein, den CBR-Strom in einen VBR-Strom (Strom mit veränderlicher Bitrate) umzuwandeln, um durch statistisches Multiplexen Bandbreite zu sparen. Eine Transcodierung kann auch erforderlich sein für die Umwandlung zwischen zwei Videokompressionsformaten. Zum Beispiel kann es notwendig sein, einen MPEG-codierten Videobitstrom in einen H.261-Bitstrom umzuwandeln, oder umgekehrt. Eine weitere wichtige Anwendung der Transcodierung ist die Durchführung einer Mehr punkt-Videokonferenz; hier kann die Transcodierung notwendig sein, um eine Bildmischung für eine ständig vorhandene Mehrpunkt-Konferenzschaltung zu implementieren.
- In Fig. 1 ist unter dem Bezugszeichen 100 ein schematisches Blockdiagramm eines in der Technik bekannten prädiktiven Signalformcodierers dargestellt. Eine Sequenz von Vektoren, die aus einer Gruppe von Proben ri bestehen, die von einer ursprünglichen Signalform genommen wurden, wird verarbeitet, um eine Sequenz von quantisierten Vektoren Yi zu erzeugen, wobei i = 0, 1, ... ein Zeitindex ist, der angibt, in welcher Reihenfolge die Eingangsvektoren verarbeitet werden. Die Größe L der Eingangsvektoren ist willkürlich. Bei typischen Sprachanwendungen ist L = 1, während bei vielen Videokompressionsanwendungen L > 1.
- Der Codierer arbeitet iterativ, so dass: (1) eine Prädiktoreinheit (102) eine durch den Vektor pi dargestellte Vorhersage des Eingangsvektors ri anhand von ein oder mehr früher rekonstruierten Vektoren zj, j < i, unter Verwendung eines vorbestimmten linearen Vorhersageoperators Pi erzeugt; (2) der Vektor pi wird in einem ersten Verknüpfungsglied (104) von ri subtrahiert, um den Vorhersagefehlervektor ei = ri - pi zu erhalten, wobei der Prädiktor Pi normalerweise so gewählt wird, dass die durchschnittliche Energie des Vorhersagefehlers ei minimiert wird; (3) der Vorhersagefehlervektor ei wird durch eine Transformationseinheit (106) gemäß Ei = Ai[ei] transformiert, wobei Ai[ ] eine lineare Transformation darstellt; (4) der Vektor Ei wird unter Verwendung eines Quantisierers Qi (108) quantisiert, um den quantisierten Vektor Yi = Ei + Di zu erhalten, wobei Di ein Quantisierungsfehlervektor ist, und der quantisierte Vektor Yi wird unter Verwendung eines rauschfreien Codier- Verfahrens (z. B. mit einem Huffman-Code) zu einem binären Wort codiert und wird dann gesendet oder gespeichert; (5) der quantisierte Vektor Yi wird dann in der Rücktransformationseinheit Ai&supmin;¹ (110) zu dem Vektor yi = Ai&supmin;¹[Yi] rücktransformiert, wobei Ai&supmin;¹[ ] eine Rücktransformation ist (d. h. Ai&supmin;¹[Ai[x]] = x); und (6) der Vektor pi wird durch ein zweites Verknüpfungsglied (112) zu yi addiert, so dass man den rekonstruierten Vektor zi = yi + pi erhält, der zur Verwendung bei späteren Iterationen gespeichert wird.
- Bei den meisten Anwendungen wird die Transformation Ai im Voraus festgelegt, d. h. sie ist vorgegeben, während Qi und Pi unter Verwendung vorgewählter Adaptierungsalgorithmen verändert werden. Bei einigen Anwendungen wird die Transformation Ai nicht verwendet; dann ist Ai = I, wobei I eine LXL-Identitätsmatrix ist. Bei der sogenannten Vorwärtsadaptierung werden die Parameter von Qi, Pi und Ai als Nebeninformationen an den Decodierer weitergegeben, während bei der sogenannten Rückwärtsadaptierung Qi, Pi und Ai am Decodierer aus früher empfangenen Informationen ermittelt werden, so dass keine Nebeninformationen gesendet werden müssen.
- Mit Hilfe der Informationen zu Qi, Pi und Ai kann ein Decodierer den Vektor zi rekonstruieren. Der Decodierer (200) gewinnt zunächst die quantisierten Vektoren {Yi} aus dem empfangenen Bitstrom, indem er den rauschfreien Quellcode decodiert, und erhält dann zi. Wie in Fig. 2 unter dem Bezugszeichen 200 gezeigt, wird (1) der quantisierte Vektor Yi zunächst unter Verwendung der Rücktransformationseinheit Ai&supmin;¹ (202) rücktransformiert, so dass man yi = Ai&supmin;¹[Yi] erhält; (2) ein Prädiktor (206) erhält die Vorhersage pi des Eingangsvektors ri aus einem oder mehreren früher rekon struierten Vektoren zj, wobei j < i, wobei wie bei dem Codierer der Vorhersageoperator Pi verwendet wird; und (3) ein Verknüpfungsglied (204), das funktionsmäßig mit dem Prädiktor (206) und mit der Transformationseinheit (Ai&supmin;¹) (202) gekoppelt ist, addiert den Vektor pi zu yi, um den rekonstruierten Vektor zi zu erhalten.
- Der rekonstruierte Vektor zi kann dargestellt werden als zi = ri + di, wobei di = Ai&supmin;¹[Di] eine rücktransformierte Version des Quantisierungsfehlervektors Di ist. Mit anderen Worten, zi unterscheidet sich von dem ursprünglichen Vektor ri nur durch di = Ai&supmin;¹[Di]. Um eine gute Leistung zu erhalten, wird die Transformation Ai so gewählt, dass der Fehler Ai&supmin;¹[Di] oder eine entsprechend gewichtete Version davon klein gehalten wird.
- Ein Transcoder gewinnt zunächst die Sequenz quantisierter Vektoren {Yi} aus dem empfangenen Bitstrom, indem er den rauschfreien Quellcode decodiert, wandelt {Yi} in eine Sequenz von transcodierten Vektoren {Yi'} um und erzeugt dann unter Verwendung des rauschfreien Quellcodes einen neuen Bitstrom, der {Yi'} darstellt. Der Transcoder hat volle Kenntnis über die an dem ursprünglichen Codierer und Decodierer verwendeten Operatoren Qi, Ai und Pi, und zwar von vornherein oder über empfangene Nebeninformationen.
- Bei der bekannten Transcodierung durch Decodieren und erneutes Codieren wird zunächst ein quantisierter Vektor Yi unter Verwendung des Decodierers von Fig. 2 decodiert, um den rekonstruierten Vektor zi = ri + di zu erhalten, und dann wird zi unter Verwendung eines Codierers, möglicherweise mit einem anderen Quantisierer Qi', einem anderen Prädiktor Pi oder sogar mit einer anderen Transformation Ai' erneut codiert, um den transcodierten Vektor Yi' zu er halten. Der transcodierte Vektor kann durch den Decodierer von Fig. 2 unter Verwendung von Qi', Pi' und Ai' decodiert werden. Der schließlich rekonstruierte Vektor zi' kann dann dargestellt werden als zi' = ri + di + di', wobei di' = (Ai')&supmin;¹[Qi'] eine transformierte Version des durch den Transcoder eingeführten Quantisierungsfehlers ist.
- Wenngleich sie vom Konzept her einfach ist, kann die Implementierung des Verfahrens zur Decodierung und erneuten Codierung wegen der hohen Rechen- und Speicheranforderungen recht kostspielig sein. Es besteht also ein Bedarf an einer effizienten Vorrichtung und Verfahren zur Transcodierung, das mit geringer Komplexität implementiert werden kann.
- In einer ersten Ausgestaltung stellt die vorliegende Erfindung eine Vorrichtung gemäß Anspruch 1 bereit. In einer zweiten Ausgestaltung stellt die vorliegende Erfindung ein Verfahren gemäß Anspruch 9 bereit. Weitere Ausgestaltungen werden in den Unteransprüchen beansprucht.
- Fig. 1 zeigt ein schematisches Blockdiagramm eines prädiktiven Signalformcodierers gemäß dem Stand der Technik.
- Fig. 2 zeigt ein schematisches Blockdiagramm eines Decodierers gemäß dem Stand der Technik, der normalerweise in Verbindung mit einem Codierer gemäß Fig. 1 arbeitet.
- Fig. 3 zeigt unter dem Bezugszeichen 300 ein allgemeines schematisches Blockdiagramm eines Systems zur Transcodierung gemäß dem Stand der Technik.
- Fig. 4 zeigt ein schematisches Blockdiagramm einer Vorrichtung gemäß der vorliegenden Erfindung.
- Fig. 5 zeigt ein detaillierteres schematisches Blockdiagramm der Vorrichtung von Fig. 4.
- Fig. 6 zeigt ein detaillierteres alternatives schematisches Blockdiagramm der Vorrichtung von Fig. 4.
- Fig. 7 zeigt eine typische Konfiguration eines H.261- Videocodierers gemäß dem Stand der Technik.
- Fig. 8 veranschaulicht die Unterteilung eines Bildes in immer kleinere Blocke in dem bekannten Standard H.261.
- Fig. 9 zeigt die Indexierung der Koeffizienten in der Transformationsdomäne für den bekannten Standard H.261.
- Fig. 10 zeigt ein schematisches Blockdiagramm einer Ausführungsform des einstufigen Transcoders der vorliegenden Erfindung.
- Fig. 11 zeigt ein schematisches Blockdiagramm eines H.261-Decodierers gemäß dem Stand der Technik.
- Fig. 12 zeigt ein Flussdiagramm einer Ausführungsform von Schritten gemäß dem Verfahren der vorliegenden Erfindung.
- Fig. 3 zeigt unter dem Bezugszeichen 300 ein allgemeines schematisches Blockdiagramm eines Systems zum Transcodieren gemäß dem Stand der Technik. Der Eingang des Transcoders (304) ist ein durch einen prädiktiven Signalformcodierer (302) wie zum Beispiel den H.261-Videocodierer er zeugter Bitstrom. Sein Ausgang ist ein weiterer Bitstrom, der durch einen prädiktiven Signalformdecodierer (306) decodiert werden kann. Der Transcoder (304) modifiziert den Bitstrom gemäß einem vorgegebenen Ziel.
- Die Transcoder-Vorrichtung der vorliegenden Erfindung, die hier als "einstufiger Transcoder" bezeichnet wird, erzielt die Leistung des Transcoders zum "Decodieren und erneuten Codieren" mit nur zwei Transformationen und einer Vorhersageoperation, vorausgesetzt der Prädiktor Pi' und die Transformation Ai', die in dem Transcoder verwendet werden, sind dieselben wie die in dem ursprünglichen Codierer verwendeten Operatoren Pi und Ai, so dass die Komplexität bei der Transcodieroperation herabgesetzt wird. Außerdem verringert der einstufige Transcoder den Speicherbedarf.
- Bei dem in Fig. 4 in einem schematischen Blockdiagramm unter dem Bezugszeichen 400 gezeigten einstufigen Transcoder wird eine modifizierte Version Si des Quantisierungsfehlervektors von dem empfangenen quantisierten Vektor Yi subtrahiert, und der Differenzvektor Ei' wird erneut quantisiert, um den transcodierten Vektor Yi' zu erhalten. Ein Rechner zur Berechnung des Quantisierungsfehlers berechnet dann den rücktransformierten Quantisierungsfehlervektor di' = Ai&supmin;¹[Di'], wobei Di' = Yi' - Ei' der Quantisierungsfehlervektor ist und Ai&supmin;¹ eine Rücktransformation ist. Eine Modifizierungsschaltung ermittelt den modifizierten Quantisierungsfehlervektor Si anhand früherer Vektoren dj', wobei J < 1.
- Die vorliegende Erfindung umfasst eine Vorrichtung zum Transcodieren einer durch einen prädiktiven Signalformcodierer unter Verwendung modifizierter Quantisierungsfehler vektoren Si erzeugten Sequenz von quantisierten Vektoren Yi. Die Vorrichtung (400) umfasst einen Addierer (402), einen Quantisierer (404), einen Rechner (406) zur Berechnung des Quantisierungsfehlervektors (QEVC) und eine Modifizierungsschaltung (408). Der Addierer (402) ist funktionsmäßig so geschaltet, dass er wenigstens einen ersten quantisierten Vektor Yi und wenigstens einen ersten modifizierten Quantisierungsfehlervektor Si empfängt, und dient zur Erzeugung eines Differenzvektors Ei' = Yi - Si zwischen dem quantisierten Vektor Yi und dem modifizierten Quantisierungsfehlervektor Si. Der Quantisierer (404) ist funktionsmäßig mit dem Addierer (402) gekoppelt und dient zur Quantisierung des Differenzvektors Ei', um einen transcodierten Vektor Yi' zu erhalten. Der Rechner (406) zur Berechnung des Quantisierungsfehlervektors (QEVC) ist funktionsmäßig so geschaltet, dass er wenigstens zwei der Vektoren Yi, Ei' und Yi' empfängt, und dient zur Erzeugung des rücktransformierten Fehlervektors di' = Ai&supmin;¹[Di'], wobei Di' ein Quantisierungsfehlervektor ist und Ai&supmin;¹ eine Rücktransformation ist. Die Modifizierungsschaltung (408) verbindet den Rechner QEVC (406) funktionsmäßig mit dem Addierer (402) und dient zur Erzeugung des modifizierten Quantisierungsfehlervektors Si anhand der früheren Werte des Vektors di'.
- Bei einer alternativen Ausführungsform kann die Transcodierungsvorrichtung der vorliegenden Erfindung so gewählt werden, dass sie einen Addierer (402), einen allgemeinen Quantisierer (410) und eine Modifizierungsschaltung (408) umfasst. Bei dieser Implementierung ist der Addierer (402) funktionsmäßig so geschaltet, dass er wenigstens einen ersten quantisierten Vektor Yi und wenigstens einen ersten modifizierten Quantisierungsfehlervektor Si empfängt, und dient zur Erzeugung eines Differenzvektors Ei' = Yi - Si zwischen dem quantisierten Vektor Yi und dem modifizierten Quantisierungsfehlervektor Si; der allgemeine Quantisierer (410) ist funktionsmäßig mit dem Addierer (402) gekoppelt und dient zur Quantisierung des Differenzvektors Ei', um einen transcodierten Vektor Yi' zu erhalten, und zum Empfang wenigstens eines der Vektoren Yi und Ei' und zum Erzeugen eines rücktransformierten Fehlervektors di' = Ai&supmin;¹[Di'], wobei Di' ein Quantisierungsfehlervektor ist und Ai&supmin;¹ eine Rücktransformation ist; und die Modifizierungsschaltung (408) ist funktionsmäßig mit dem allgemeinen Quantisierer (410) gekoppelt und dient zum Erzeugen des modifizierten Quantisierungsfehlervektors Si anhand früherer Werte des Vektors di'.
- Eine Ausführungsform der einstufigen Transcodervorrichtung von Fig. 4 ist in Fig. 5 unter dem Bezugszeichen 500 näher dargestellt. Die Vorrichtung umfasst einen ersten Addierer (502), einen Quantisierer (504), einen Rechner (506) zur Berechnung des Quantisierungsfehlers (QEVC), der einen zweiten Addierer (510) umfasst, der mit einer Rücktransformationseinheit (512) gekoppelt ist, und eine Modifizierungsschaltung (508), die einen mit einer Transformationseinheit (516) gekoppelten Prädiktor (514) umfasst. Der erste Addierer (502) und der Quantisierer (504) sind so miteinander gekoppelt, wie es für den Addierer (402) und den Quantisierer (404) von Fig. 4 dargestellt ist. Der zweite Addierer (510) ist funktionsmäßig so geschaltet, dass er die Vektoren Ei' und Yi' empfängt, und dient zur Erzeugung des Quantisierungsfehlervektors Di'. Die Rücktransformationseinheit (512) ist funktionsmäßig mit dem zweiten Addierer (510) gekoppelt und dient zur Erzeugung des rücktransformierten Fehlervektors di' = Ai&supmin;¹[Di'], wobei Di' ein Quantisierungsfehlervektor ist und Ai&supmin;¹ eine Rücktransformation ist. Der Prädiktor (514) der Modifizierungsschaltung (508) ist funktionsmäßig mit der Rücktransformationseinheit (512) des QEVC (506) gekoppelt und erzeugt den vorhergesagten Quantisierungsfehlervektor si. Die Transformationseinheit (516) ist funktionsmäßig mit dem Prädiktor (514) gekoppelt und dient zur Transformation des vorhergesagten Quantisierungsfehlervektors si zu dem Vektor Si, wie nachstehend ausführlicher beschrieben wird, und zur Übermittlung des modifizierten Quantisierungsfehlervektors Si zu dem ersten Addierer (502) anhand früherer Werte des Vektors di'.
- Die früheren rücktransformierten Quantisierungsfehlervektoren dj' = Ai&supmin;¹[Dj'], j < i, werden durch den Prädiktionsoperator Pi geschickt, um den vorhergesagten Quantisierungsfehlervektor si zu erhalten. Der Vektor si wird wieder transformiert, um den modifizierten Quantisierungsfehlervektor Si = Ai[si] zu erhalten. Der Vektor Si wird dann von dem empfangenen quantisierten Vektor Yi subtrahiert, um den Fehlervektor Ei' = Yi - Si zu erhalten. Der Fehlervektor Ei' wird unter Verwendung des Quantisierers Qi' (504) quantisiert, um den transcodierten Vektor Yi' = Ei' + Di' zu erhalten, wobei Di' der durch den Transcoder eingeführte Quantisierungsfehlervektor ist. Den transformierten Quantisierungsfehlervektor di' erhält man, indem man zunächst den Vektor Ei' von Yi' (unter Verwendung des zweiten Addierers (510)) subtrahiert, um den Quantisierungsfehlervektor Di' = Ei' + Yi' zu erhalten, und dann Di' (unter Verwendung der Rücktransformationseinheit (512)) transformiert, um di' = Ai&supmin;¹[Di'] zu erhalten.
- Der einstufige Transcoder erzeugt dieselbe transcodierte Sequenz {Yi'} wie der Decodierungs- und Recodierungstranscoder. Dies lässt sich zeigen, indem man beweist, dass das Signal am Eingang des Quantisierers in beiden Fällen dasselbe ist:
- Betrachten wir zunächst den Decodierungs- und Recodierungstranscoder. In diesem Fall kann man den Eingang des Quantisierers in dem Recodierer wie folgt darstellen:
- Bi = Ai[zi] - Ai[pi] = zi - Ai[rpi + dpi + dpi'],
- wobei zi = Ai[zi] eine transformierte Version des Decodiererausgangs zi (in dem Transcoder) ist, und rpi, dpi und dpi' die Ausgänge des Prädiktors Pi zum Zeitpunkt i darstellen, wenn sie einzeln durch die Sequenzen {ri}, {di} und {di'} angeregt werden.
- Analog dazu lässt sich der Eingang des Quantisierers bei dem einstufigen Transcoder wie folgt darstellen:
- Ci = Yi - Ai[dpi'], = Zi - Ai[rpi + dpi] - Ai [dpi'].
- Da Ai ein linearer Operator ist, folgt, dass Bi = Ci.
- Die vorliegende Erfindung beruht auf der Tatsache, dass der quantisierte Vektor Yi ohne Ansammlung von Fehlern bei der Rekonstruktion erneut quantisiert werden kann, vorausgesetzt, ein modifizierter Quantisierungsfehlervektor Si wird vor der erneuten Quantisierung zu Yi addiert. Damit wird der durch die Prädiktionsschleife bei der Rekonstruk tion hinzugefügte Quantisierungsfehler des Transcoders kompensiert.
- Der einstufige Transcoder der vorliegenden Erfindung kann auch auf andere Weise implementiert werden. Eine alternative Struktur ist in Fig. 6 dargestellt.
- In Fig. 6 ist unter dem Bezugszeichen 600 ein schematisches Blockdiagramm einer Implementierung einer Vorrichtung gemäß der vorliegenden Erfindung dargestellt, wobei die Differenz zwischen dem Eingang Yi und dem Ausgang Yi' durch die Rückkopplungsschleife geleitet wird. Der Rechner (606) zur Berechnung des Quantisierungsfehlervektors umfasst einen zweiten Addierer (610), der funktionsmäßig so geschaltet ist, dass er Yi und Yi' empfängt, um die Differenz {Xi} zu erhalten, eine Rücktransformationseinheit (612), die funktionsmäßig mit dem zweiten Addierer (610) gekoppelt ist, um den Vektor xi zu liefern, und einen dritten Addierer (614), der xi und si empfängt und verknüpft, und eine Modifizierungsschaltung (608), die einen Prädiktor (616) umfasst, der funktionsmäßig mit dem dritten Addierer (614) gekoppelt ist, um mit Hilfe von di' den vorhergesagten Quantisierungsfehlervektor si bereitzustellen, und eine Transformationseinheit (618), die funktionsmäßig mit dem Prädiktor (616) gekoppelt ist, um den modifizierten Quantisierungsfehlervektor Si zu erzeugen. Der Unterschied bei der Implementierung von Fig. 6 liegt in der Art und Weise, wie der transformierte Quantisierungsfehlervektor di' erzeugt wird:
- Der Eingangsvektor Yi wird von dem transcodierten Vektor Yi' subtrahiert, um den Vektor Xi = Yi' - Yi zu erhalten, der dann zu xi = Ai&supmin;¹[Xi'] transformiert wird. Der vor hergesagte Quantisierungsfehlervektor si wird zu xi addiert, um di' = xi + si zu ermitteln.
- Dass der rücktransformierte Quantisierungsvektor di' in beiden Strukturen derselbe ist, ergibt sich daraus, dass man den VektorAi in Fig. 6 schreiben kann als
- xi = Ai&supmin;¹[Yi' - Ei'] - Si'.
- Die Implementierungen von Fig. 5 und 6 haben daher dieselbe Funktion.
- Mit dem einstufigen Transcoder kann die Geschwindigkeit eines durch einen nach der ITU-T Empfehlung H.261 arbeitenden Videocodierer erzeugten Bitstroms geändert werden. Zunächst ist eine typische Konfiguration eines H.261- Codierers in Fig. 7 unter dem Bezugszeichen 700 dargestellt.
- Der Eingang des Codierers besteht aus einer Sequenz von Bildern, die fortlaufend mit einer nominalen Bildrate von etwa 30 Bildern pro Sekunde abgetastet werden. Jedes Bild besteht aus einer Luminanzkomponente Y und zwei Farbdifferenzkomponenten CB und CR, die nach einem von zwei Formaten, CIF (802) und QCIF (804), abgetastet werden, wobei:
- CIF: 352 · 288 (Y), 176 · 144 (CR), 176 · 144 (CB)
- QCIF: 176 · 144 (Y), 88 · 72 (CR), 88 · 72 (CB).
- Jedes Bild ist in immer kleinere Segmente unterteilt, wie in Fig. 8 unter Bezugszeichen 800 veranschaulicht. Die CIF-Bilder sind in 12 Gruppen von Blöcken (GVB) unterteilt, und die QCIF-Bilder sind in drei Gruppen von Blocken (GVB) unterteilt. Jede GVB (806) besteht aus 33 Makroblöcken (MBs), und ein MB besteht aus vier Luminanzblöcken (808) und zwei Farbdifferenzblöcken (810, 812), wobei jeder Block 64 Pixel (814) hat, die auf einem 8 · 8-Raster angeordnet sind. Jedes Pixel wird dargestellt durch eine ganze Zahl zwischen 1 und 254.
- Die MBs sind die fundamentalen Codierungselemente bei H.26. Die sechs 8 · 8-Blöcke in einem MB sind von 1 bis 6 numeriert, wie in Fig. 8 gezeigt. Angenommen ri,k,m,n stellt das Pixel in der Position (m,n) in dem k-ten Block des i- ten MB dar, wobei i = 0, 1, ..., k = 1, ..., 6 und m,n = 0, 1, ..., 7, dann kann der Eingangsvektor ri für den i-ten MB dargestellt werden als:
- ri = [ri,1,0,0,..., ri,1,7,7, ri,2,0,0,..., ri,2,7,7, ri,3,0,0,..., ri,3,7,7, ri,4,0,0,..., ri,4,7,7, ri,5,0,0,..., ri,5,7,7, ri,6,0,0,..., ri,6,7,7].
- Die Funktionsweise des Codierers wird in Fig. 7 unter dem Bezugszeichen 700 für den i-ten MB wie folgt beschrieben: Zunächst arbeitet eine Bewegungsschätzeinheit (702) mit einem Algorithmus, um einen Bewegungsvektor mi = (mi1, mi2) zu ermitteln. Normalerweise sucht der Algorithmus die Luminanzpixel in dem zuvor rekonstruierten Bild (gespeichert in einem Rahmenpuffer (704)) ab, um ein 16 · 16-Fenster Wi zu finden, bei dem der "Abstand" zwischen den Pixel in jenem Fenster und den entsprechenden Pixel in dem aktuellen MB minimal ist. Der Bewegungsvektor mi stellt den räumlichen Versatz zwischen dem Fenster Wi und dem aktuellen (i- ten) MB dar.
- Die Pixel, die in dem Fenster Wi liegen, bilden den bewegungskompensierten Vektor ui = [ui,1,0,0,..., ui,6,7,7], der in der Bewegungskompensationseinheit (706) gespeichert wird. Die Bewegungsschätzeinheit (702) ist also funktionsmäßig mit dem Rahmenpuffer (704) gekoppelt und liefert der Bewegungskompensationseinheit (706), die außerdem mit dem Rahmenpuffer (704) funktionsmäßig gekoppelt ist, einen bewegungskompensierten Vektor. Die Modeneinheit (710), die funkt ionsmäßig so geschaltet ist, dass sie den Eingangsvektor ri empfängt, ermittelt den Codiermodus (Inter/Intra?). Die Vorhersage pi = [pi,1,0,0,..., Pi,6,7,7] des Eingangsvektors ri erhält man aus ui anhand des Codiermodus des aktuellen MB:
- a. Im Intra-Modus wird pi = 0 gesetzt.
- b. Im Inter-Modus (Vorhersagemodus):
- b1. Wenn das Schleifenfilter (708) auf "Out" steht, wird pi = ui; gesetzt.
- b2. Wenn das Schleifenfilter (708) auf "In" steht, werden die Elemente von ui (Block für Block) unter Verwendung eines trennbaren, zweidimensionalen FIR-Filters mit drei Abzweigungen gefiltert, und der Ausgang des Schleifenfilters wird auf pi gesetzt.
- In jedem Fall ist das Schleifenfilter (708) funktionsmäßig mit der Bewegungskompensationseinheit (706) gekoppelt, um gemäß obiger Beschreibung zu arbeiten.
- An dem ersten Addierer (712) wird der Vektor pi von dem Eingang ri subtrahiert, um den Vorhersagefehlervektor ei = [ei,1,0,0,..., ei6,7,7] = ri - pi zu erhalten. Der Vektor ei wird zu Ei = [Ei,1,0,0,..., Ei,6,7,7] = A[ei] transformiert, wobei A[ ] hier die diskrete Cosinustransformation (DCT) an einer DCT-Einheit (714) darstellt, die funktionsmäßig mit dem ersten Addierer (712) gekoppelt ist. Die DCT wird unabhängig an jeden 8 · 8-Block in dem MB angelegt, um die Transformationskoeffizienten Ei,k,s,t gemäß folgender Gleichung zu erhalten:
- Ei,k,s,t = 0,25 C(s) C(t) ΣΣ 0 ≤ m,n ≤ 7 ri,k,m,n
- cos[π(2m + 1)s/16] cos[π(2n + 1)t/16],
- wobei C(s) = 1/ 2 für s = 0 und ansonsten 1, und C(t) = 1/ 2 für t = 0 und ansonsten 1. Hier sind s und t die Variablen für die Transformationsdomäne. Es sei angemerkt, dass in jedem MB dieselbe Transformation A[ ] verwendet wird. In Fig. 9 ist unter dem Bezugszeichen 900 gezeigt, wie die Indizes t (902) und s (904), beide im Bereich von 0 bis 7, in der Transformationsdomäne verwendet werden.
- Ein Quantisierer (716) ist funktionsmäßig so geschaltet, dass er die Transformationskoeffizienten Ei,k,s,t empfängt, und quantisiert die Koeffizienten unter Verwendung eines skalaren Quantisierers, der gleichmäßig mit einer Schrittgröße Δi arbeitet, mit Ausnahme einer toten Zone um 0 herum. Die Rekonstruktionswerte des Quantisierers sind {0, ±ai, ±(ai + Δi), ±(ai + 2Δi), ..., -2048 ≤ ± (ai + 126Δi) < 2048}, wobei Δi = 2, 4, ..., 62 und ai = 3Δi/2, wenn Δi ungerade ist, und andernfalls ai = 3Δi/2 - 1. Dieselbe Schritt große Δi wird für alle Transformationskoeffizienten in dem MB verwendet, außer im Intra-Modus, und die Probe Ei,k,0,0 wird mit einem einheitlichen skalaren Quantisierer der Schrittgröße Δi = 8 ohne tote Zone quantisiert (da Ei,k,0,0 ≥ 0, werden in diesem Fall auch nur die positiven Rekonstruktionswerte benötigt). Die Entscheidungsbereiche des Quantisierers werden so gewählt, dass die Bildqualität soweit wie möglich verbessert wird.
- Der Ausgang des Quantisierers (716) ist der quantisierte Transformationsvektor Yi = [Yi,1,0,0,..., Yi,6,7,7] = Ei + Di, wobei Di = [Di,1,0,0,..., Di,6,7,7] der Quantisierungsfehlervektor ist.
- Der quantisierte Vektor Yi wird in eine inverse DCT- Einheit (724) eingegeben und weiter transformiert, um den Vektor Yi = [yi,1,0,0,..., Yi,6,7,7] = A&supmin;¹ [Yi] zu erzeugen, wobei A&supmin;¹[ ] eine inverse DCT ist. Die Pixel yi,k,m,n werden nach folgender Gleichung ermittelt:
- Yi,k,m,n = 0,25 ΣΣ 0 ≤ s,t ≤ 7 C(s) C(t) Yi,k,s,t
- cos[π(2m + 1)s/16] cos[π(2n + 1)t/16].
- Der Vektor pi wird in einen zweiten Addierer (726) eingegeben und zu yi addiert, um den rekonstruierten Vektor zi = [zi,1,0,0,..., zi,6,7,7] = yi + pi zu erhalten, und die Pixel zi,k,m,n werden in dem Rahmenpuffer (704) gespeichert.
- Die quantisierten Transformationskoeffizienten Yi,k,s,t werden normalerweise zu einem CBR-Bitstrom codiert, zum Beispiel unter Verwendung eines variablen Codierers (720) mit einem Ausgabepuffer (722), und dann übertragen (oder gespeichert). Zunächst werden die Koeffizienten in jedem Block mit einem als "Zickzack-Abtastung" bekannten Verfah ren von dem 8 · 8-Matrixformat in ein serielles Format umgewandelt (siehe Fig. 9), und dann werden die Koeffizienten in jedem Block durch eine Folge von Werten (Run, Level) dargestellt, wobei "Run" die Anzahl von Nullen vor dem nächsten von Null verschiedenen Wert "Level" darstellt. Diese Werte (Run, Level) werden dann unter Verwendung eines Binärcodes variabler Länge codiert. Der Ausgang des variablen Codierers wird normalerweise zwischengespeichert (720), um einen CBR-Bitstrom zu erzeugen, und die Quantisierungsschrittgröße wird durch, eine Steuereinheit (718) des Quantisierers so eingestellt, dass Pufferüberläufe (oder - unterläufe) verhindert werden. Die Steuereinheit (718) des Quantisierers ist funktionsmäßig mit dem Puffer (722) gekoppelt und setzt ein Einstellsignal an den Quantisierer (716) ab.
- Neben den quantisierten Transformationskoeffizienten Yi,k,s,t sendet der Codierer auch Nebeninformationen, damit der Decodierer das codierte Signal korrekt rekonstruieren kann. Zu den Nebeninformationen gehört das Ursprungsformat (CIF/QCIF), die Quantisiererschrittgröße Δi, die Entscheidung Inter/Intra, der Bewegungsvektor mi (nur im Inter- Modus), und der In/Out-Zustand des Schleifenfilters (wenn der Bewegungsvektor vorhanden ist).
- Die Schrittgröße Δi kann für eine ganze Gruppe von Blöcken (GVB) auf einem festen Wert gehalten werden. In diesem Fall muss nur ein Schrittgrößenwert pro GVB als Nebeninformation gesendet werden. Es ist auch möglich, Δi innerhalb der GVB zu ändern. Dies ermöglicht eine feinere Einstellung der Schrittgröße auf Kosten eines größeren Overhead.
- Der H.261-Codierer sendet auch Nebeninformationen, damit der Codierer einen Block oder einen Makroblock (MB) überspringen kann. Wenn zum Beispiel alle Koeffizienten Ai,k,s,t in einem 8 · 8-Block Null sind, codiert der Codierer diese Blocke überhaupt nicht. Wenn es wenig Bewegung gibt, oder wenn die Bewegungsschätzung nahezu perfekt ist, können analog dazu alle Koeffizienten in einem MB Null sein. In diesem Fall kann der Codierer den gesamten MB überspringen. Wenn ein Block oder ein MB in dem Codierer übersprungen wird, ersetzt der Codierer einfach die fehlenden Koeffizienten durch Nullen.
- Die maximale Bildrate in dem H.261 beträgt ungefähr 30 Bilder/sek, aber aufgrund der Empfehlung kann der Codierer regelmäßig 0, 1, 2 oder 3 Bilder überspringen, um effektive Bildraten von 30, 15, 10 und 7,5 Bilder/sek zu erzielen. Der Codierer kann auch gelegentlich ein Bild überspringen. Dies kann zum Beispiel unmittelbar nach der Codierung eines Bildes im Intra-Modus geschehen. Da der Intra-Modus normalerweise eine große Anzahl von Bits erzeugt, kann das Überspringen eines Bildes dazu beitragen, die Verzögerung beim Zwischenspeichern zu verringern.
- Die Geschwindigkeit eines durch einen H.261-Codierererzeugten Bitstroms kann mit dem Transcoder der vorliegen den Erfindung geändert werden. Ein Transcoder decodiert zunächst den empfangenen Bitstrom unter Verwendung eines Decodierers für den Code variabler Länge, um die Folge von (Run, Level) Werten zu erhalten, und gewinnt dann die durch den Codierer erzeugte Sequenz, von quantisierten Vektoren Yi = [Yi,1,0,0,..., Yi,6,7,7] Der Decodierer gewinnt auch alle Nebeninformationen. Wenn ein Block oder MB nicht codiert ist, setzt der Decodierer für die entsprechenden fehlenden Koeffizienten Nullen ein.
- Typische Folgeoperationen des einstufigen Transcoders werden nachfolgend beschrieben (siehe Fig. 10, Bezugszeichen 1000). Ein variabler Decodierer (1002) gibt den Vektor Yi an einen ersten Addierer (1004) aus und liefert Rahmeninformationen, Inter/Intra-Informationen, Informationen darüber, welche Blocke codiert sind (codiertes Blockmuster oder CBP), Informationen über die Schrittgröße Δi, Bewegungsvektoren mi und Schleifenfilterinformationen an verschiedene Elemente des Transcoders auf einer Vorwärtsregelstrecke. Der erste Addierer (1004) kombiniert den Vektor Yi und einen modifizierten Quantisierungsfehlervektor Si, um den Vektor Ei' einem Quantisierer (1006) und einem zweiten Addierer (1014) zuzuführen. Der Quantisierer (1006) ist funktionsmäßig mit dem ersten Addierer (1004) gekoppelt und liefert einem variablen Codierer (1010) und dem zweiten Addierer (1014) einen quantisierten Ausgangsvektor Yi'. Der variable Codierer (1010) ist funktionsmäßig mit dem Quantisierer (1006) gekoppelt und empfängt Informationen von dem variablen Decodierer (1002) und erzeugt die Ausgangsbits. Der Puffer (1012) ist funktionsmäßig mit dem variablen Codierer (1010) gekoppelt und liefert ein Mittel zum Speichern von Ausgangsbits vor der Übertragung und liefert auch einen Eingang für eine Quantisierersteuerung (1008). Die Quantisierersteuerung (1008) ist funktionsmäßig mit dem Puffer (1012) gekoppelt und sendet ein Steuersignal zu dem Quantisierer (1006), wie oben ausführlicher beschrieben wird. Der zweite Addierer (1014) ist funktionsmäßig so geschaltet, dass er die Vektoren Ei' und Yi' empfängt, und liefert Di' = Ei' - Yi'. Eine inverse DCT-Einheit (1016) ist funktionsmäßig mit dem zweiten Addierer (1014) gekoppelt und liefert einen Rücktransformationsvektor di'. Der Rahmenpuffer (1018) ist funktionsmäßig mit der inversen DCT- Einheit (1016) gekoppelt und liefert den Ausgangsvektor zi. Eine Bewegungskompensationseinheit (1020) ist funktionsmäßig mit dem Rahmenpuffer gekoppelt und empfängt einen Bewegungsvektor von dem variablen Decodierer (1002) und dient zur Bereitstellung eines Ausgangsvektors Wi. Das Schleifenfilter (1022) ist funktionsmäßig mit der Bewegungskompensationseinheit (1020) gekoppelt, empfängt In/Out- Schleifenfilterinformationen von dem variablen Decodierer (1002) und gibt den vorhergesagten Quantisierungsfehlervektor Si aus. Eine DCT-Einheit (1024) ist funktionsmäßig mit dem Schleifenfilter (1022) gekoppelt und gibt den Vektor Si aus.
- Die oben genannten Vektoren werden wie folgt näher beschrieben:
- (1) In dem Transcoder wird keine Bewegungsschätzung vorgenommen. Stattdessen wird der von dem Codierer empfangene Bewegungsvektor mi = (mi1, mi2) dazu verwendet, das 16 · 16-Fenster Wi zu ermitteln, und die Pixel in dem transformierten Quantisierungsfehler-Puffer (siehe unten), die in jenem Fenster liegen, werden verwendet, um den Vektor wi = [wi,1,0,0,..., Wi,6,7,7] zu bilden. Der Bewegungsvektor mi stellt wieder den räumlichen Versatz zwischen dem Fenster Wi und dem aktuellen MB (dem i-ten MB) dar.
- Den vorhergesagten Quantisierungsfehlervektor si = [si,i,0,0,..., si,6,7,7] erhält man aus wi anhand des Codiermodus des aktuellen MB:
- a. Im Intra-Modus wird Si = 0 gesetzt.
- b. Im Inter-Modus (Vorhersagemodus):
- b1. Wenn das Schleifenfilter auf "Out" steht, wird Si = wi gesetzt.
- b2. Wenn das Schleifenfilter auf "In" steht, werden die Elemente von wi (Block für Block) unter Verwendung eines trennbaren, zweidimensionalen FIR- Filters mit 3 Abzweigungen gefiltert, und der Ausgang des Filters wird auf si gesetzt.
- (2) Der Vektor si wird wieder transformiert, um den modifizierten Quantisierungsfehlervektor Si = A[si] zu erhalten, wobei A[ ] die DCT-Operation darstellt, gemäß:
- Si,k,s,t = 0,25 C(s) C(t) ΣΣ 0 ≤ m,n ≤ 7 Si,k,m,n
- cos[πt(2m + 1)s/16] cos[π(2n + 1)t/16].
- (3) Der modifizierte Quantisierungsfehlervektor Si = [Si,1,0,0,..., Si,6,7,7] wird von dem codierten Vektor Yi subtrahiert, um den Fehlervektor Ei' = [E'i,1,0,0,..., E'i,6,7,7] = Yi - Si zu erhalten.
- (4) Die Koeffizienten E'i,k,s,t werden unter Verwendung eines H.261-Quantisierers wie bei dem Codierer (erneut) quantisiert, möglicherweise mit einer anderen Schrittgröße Δi', außer dass für den Term E'i,k,0,0 im Intra-Modus dieselbe Schrittgröße verwendet wird: Δi = Δi' = 8. Als Ergebnis erhält man den transcodierten Transformationsvektor Yi' = [Y'i,1,0,0,...,Y'i,6,7,7] = Ei' + Di', wobei Di' = [D'i,1,0,0,..., D'i,6,7,7] der Quantisierungsverzerrungsvektor für den Transcoder ist.
- (5) Der Fehlervektor Ei' wird von Yi' subtrahiert, um den Quantisierungsfehlervektor Di' zu erhalten, und dann wird Di' unter Verwendung einer inversen DCT rücktransformiert, um di' = A&supmin;¹[Di'] zu erhalten:
- d'i,k,m,n = 0,25 ΣΣ 0 ≤ s,t ≤ 7 C(s) C(t) D'i,k,s,t
- cos[π(2m + 1)s/16] cos[π (2n + 1)t/16]
- Die Pixel d'i,k,m,n werden in einem rekonstruierten Quantisierungsrahmenpuffer für spätere Iterationen gespeichert.
- In dem folgenden Beispiel verwendet der Transcoder den Bewegungsvektor mi, die Inter/Intra-Entscheidung und die von dem H.261-Codierer empfangene Schleifenfilterentscheidung ohne jegliche Modifikationen. Das Ursprungs format (CIF/QCIF) wird ebenfalls nicht modifiziert. Die Implementierung des Transcoders wird dadurch stark vereinfacht.
- Der Transcoder wandelt die transcodierte Sequenz Yi' unter Verwendung eines rauschfreien Quellcodierers wie bei dem H.261-Codierer in einen Bitstrom um.
- Der von dem Transcoder erzeugte Bitstrom wird normalerweise durch einen H.261-Codierer decodiert, wie in Fig. 11 unter dem Bezugszeichen 1100 gezeigt. Nachdem er die Sequenz Yi' wie üblich aus dem empfangenen Bitstrom gewonnen hat, rekonstruiert der Decodierer das Signal Zi' = [zi,1,0,0,..., zi,5,7,7] = ri + di + di' wie folgt:
- (1) Der empfangene Vektor Yi', der normalerweise von einem variablen Decodierer (1102) ausgegeben wird, wird zunächst unter Verwendung einer inversen DCT-Einheit (1104), die funktionsmäßig mit dem variablen Decodierer (1102) gekoppelt ist, transformiert, wobei die inverse DCT-Einheit (1104) eine inverse DCT ermittelt, um den Vektor yi' = [Y'i,1,0,0,..., Y'i,6,7,7] zu erhalten:
- y'i,k,m,n = 0,25 ΣΣ 0 ≤ s,t ≤ 7 C(S) C(t) Y'i,k,s,t
- cos[π(2m + 1)s/16] cos[π(2n + 1)t/16]
- Ein Addierer (1106) ist funktionsmäßig mit der inversen DCT-Einheit (1104) und mit einem Schleifenfilter (1108) gekoppelt, um yi' und pi' zu verknüpfen und den Ausgangsvektor zi' zu erzeugen. Der Vektor zi' ist ein Ausgang des H.261-Decodierers und wird auch als Rückkopplungsvektor für einen Rahmenpuffer (1112) verwendet.
- (2) Eine Bewegungskompensationseinheit (1110) ist funktionsmäßig so geschaltet, dass sie den Ausgang des Rahmenpuffers (1112) und einen Bewegungsvektor mi = (mi1, mi2) von dem Codierer empfängt, mit dem ein 16 · 16 Fenster Wi ermittelt wird. Die Pixel in dem Rekonstruktionspuffer, die in jenem Fenster liegen, werden zur Bildung des Vektors ui' = [u'i,1,0,0,..., u'i,6,7,7] verwendet.
- Ein Schleifenfilter (1108) ist funktionsmäßig mit der Bewegungskompensationseinheit (1110) gekoppelt, um dem Addierer (1106) den Vektor pi' zu liefern. Den Vorhersagewert Pi' = [p'i,1,0,0,..., P'i,6,7,7] erhält man aus ui' anhand des Codiermodus des aktuellen MB:
- a. Im Intra-Modus wird pi' = 0 gesetzt.
- b. Im Vorhersagemodus (Inter-Modus):
- b1. Wenn das Schleifenfilter (1108) auf "Out" steht, wird pi' = ui' gesetzt.
- b2. Wenn das Schleifenfilter (1108) auf "In" steht, werden die Elemente von ui' (Block für Block) unter Verwendung eines trennbaren, zweidimensionalen FIR-Filters mit 3 Abzweigungen gefiltert und der Ausgang des Filters wird gleich pi' gesetzt.
- (3) Der Vektor pi' wird zu yi' addiert, um den rekonstruierten Vektor zi' = yi' + pi' zu erhalten.
- Der gesamte Quantisierungsfehler ist dann die Summe der durch den Codierer bzw. den Transcoder eingeführten Quantisierungsfehler di und di'.
- Fig. 12 zeigt unter dem Bezugszeichen 1200 ein Flussdiagramm einer Ausführungsform der Schritte gemäß dem Verfahren der vorliegenden Erfindung. Das Verfahren ermöglicht die Transcodierung einer Sequenz von quantisierten Vektoren Yi, die durch einen prädiktiven Signalformcodierer unter Verwendung modifizierter Quantisierungsfehlervektoren si erzeugt wurde. Die nachfolgend genannten Vektoren werden oben ausführlicher beschrieben.
- Das Verfahren umfasst die folgenden Schritte: (1) es wird ein Differenzvektor Ei' = Yi - Si zwischen wenigstens einem ersten quantisierten Vektor Yi und einem modifizierten Quantisierungsfehlervektor Si (1202) erzeugt; (2) der Differenzvektor Ei' wird quantisiert, um einen transcodierten Vektor Yi' (1204) zu erhalten; (3) es werden wenigstens zwei der Vektoren Yi, Ei' und Yi' empfangen, und es wird der rücktransformierte Fehlervektor di' = Ai&supmin;¹[Di'] erzeugt, wobei Di' ein Quantisierungsfehlervektor und Ai&supmin;¹ eine Rücktransformation (1206) ist; und es wird der modifizierte Quantisierungsfehlervektor Si anhand früherer Werte des Vektors di' (1208) erzeugt.
- Wie für die Vorrichtung der vorliegenden Erfindung beschrieben, kann die Transformation Ai&supmin;¹ konstant gewählt werden, kann der quantisierte Vektor Yi die Größe L = 1 haben, und kann die Rücktransformation Ai&supmin;¹[ ] eine Identitätsmatrix sein.
- Der Schritt des Erzeugens des modifizierten Quantisierungsfehlervektors Si anhand früherer Werte des Vektors di' kann so gewählt werden, dass er folgendes umfasst: (1) es wird ein vorhergesagter Quantisierungsfehlervektor si erzeugt, und (2) si wird verwendet, um einen modifizierten Quantisierungsfehlervektor Si zu erzeugen, so dass Si = Ai[Si], wobei Ai eine vorbestimmte Transformation ist. Außerdem kann dieser Schritt noch einen der Punkte (1)-(2) umfassen: (1) die empfangenen Vektoren Yi' und Ai' werden zur Ermittelung eines Quantisierungsfehlers Di' = Yi' - Ei' verwendet, und eine Rücktransformation Ai&supmin;¹ wird verwendet, um den Vektor di' gemäß di' = Ai&supmin;¹ zu erzeugen; und (2) die Vektoren Yi und Yi' werden empfangen und verwendet, um einen Fehler Xi' - Yi' - Yi zu ermitteln, wobei die Rücktransformation Ai&supmin;¹ zum Erzeugen eines Vektors xi gemäß xi = Ai&supmin;¹[Xi'] verwendet wird und xi und si addiert werden, um den Vektor di' zu erhalten.
- Der quantisierte Vektor Yi kann von einem prädiktiven digitalen Videocodierer erzeugt werden und stellt quantisierte Transformationskoeffizienten eines Makroblocks (MB) dar, ein fundamentales Codierungselement bei H.261. Zur Vorhersage kann eine bewegungskompensierte Vorhersage (MCP) verwendet werden. Die Transformation A[ ] ist eine diskrete Cosinustransformation (DCT).
- Bei einer Ausführungsform kann für den Videocodierer ein H.261-Codierer gewählt werden.
- Die vorliegende Erfindung kann auch noch in anderen spezifischen Formen verkörpert werden, ohne von ihren wesentlichen Merkmalen abzuweichen. Die beschriebenen Ausführungsformen sind in jeder Hinsicht nur als veranschaulichend und nicht als einschränkend zu verstehen. Der Umfang der Erfindung wird daher durch die beigefügten Ansprüche und nicht durch die vorstehende Beschreibung angegeben. Sämtliche Änderungen, die unter die Bedeutung und in den Äquivalenzbereich der Ansprüche fallen, sollen im Rahmen dieser Ansprüche liegen.
Claims (16)
1. Vorrichtung zum Transcodieren einer Sequenz von
quantisierten Vektoren Yi, die durch einen prädiktiven
Signalformcodierer unter Verwendung modifizierter
Quantisierungsfehlervektoren Si erzeugt wurden, wobei die Vorrichtung
folgendes umfasst:
einen Addierer (402, 502, 602), der funktionsmäßig so
geschaltet ist, dass er wenigstens einen ersten
quantisierten Vektor Yi und wenigstens einen ersten modifizierten
Quantisierungsfehlervektor Si empfängt, um einen
Differenzvektor Ei' = Yi - Si zwischen dem quantisierten Vektor Yi
und dem modifizierten Quantisierungsfehlervektor Si zu
erzeugen;
einen Quantisierer (404, 504, 604), der funktionsmäßig
mit dem Addierer gekoppelt ist, um den Differenzvektor Ei'
zu quantisieren, um einen transcodierten Vektor Yi zu
erhalten;
einen Rechner QEVC (406, 506, 606) zur Berechnung des
Quantisierungsfehlervektors, der funktionsmäßig so
geschaltet ist, dass er wenigstens zwei der Vektoren Yi, Ei' und Yi
empfängt, um den rücktransformierten Fehlervektor di' =
Ai&supmin;¹[Di'] zu erzeugen, wobei Di' ein
Quantisierungsfehlervektor und Ai&supmin;¹ eine Rücktransformation und linear ist; und
eine Modifizierungsschaltung (408, 508, 608), die
funktionsmäßig mit dem QEVC gekoppelt ist, um den
modifizierten Quantisierungsfehlervektor Si anhand früherer Werte
des Vektors di' zu erzeugen, und die so angeordnet ist,
dass sie Si in den Addierer eingibt.
2. Vorrichtung nach Anspruch 1, bei der die
Transformation Ai&supmin;¹ konstant ist.
3. Vorrichtung nach Anspruch 2, bei der der quantisierte
Vektor Yi die Größe L = 1 hat und die Rücktransformation
Ai&supmin;¹[ ] eine Identitätsmatrix ist.
4. Vorrichtung nach Anspruch 2 oder 3, bei der die
Modifizierungsschaltung folgendes umfasst:
einen Prädiktor (514, 616), der funktionsmäßig mit dem
Rechner zur Berechnung des Quantisierungsfehlervektors
gekoppelt ist, um den vorhergesagten
Quantisierungsfehlervektor Si zu erzeugen, und
eine Transformationseinheit (516, 618), die
funktionsmäßig mit dem Prädiktor gekoppelt ist, um unter Verwendung
einer Vorwärtstransformation Ai[ ] den modifizierten
Quantisierungsfehlervektor Si zu erzeugen.
5. Vorrichtung nach Anspruch 3 oder 4, bei der der
Rechner zur Berechnung des Quantisierungsfehlervektors
folgendes umfasst:
einen zweiten Addierer (510), der funktionsmäßig so
geschaltet ist, dass er Yi' und Ei' empfängt, um den
Quantisierungsfehler Di' = Yi' - Ei' zu ermitteln, und
eine Rücktransformationseinheit (512), die
funktionsmäßig so geschaltet ist, dass sie Di' empfängt, um unter
Verwendung einer Rücktransformation Ai&supmin;¹ den Vektor di'
gemäß di' = Ai&supmin;¹[Di'] zu erzeugen.
6. Vorrichtung nach Anspruch 3 oder 4, bei der der
Rechner zur Berechnung des Quantisierungsfehlervektors
folgendes umfasst:
einen zweiten Addierer (610), der funktionsmäßig so
geschaltet ist, dass er Yi und Yi' empfängt, um einen
Fehler Xi' = YI ' - Yi zu ermitteln,
eine Rucktransformationseinheit Ai&supmin;¹ (612), die
funktionsmäßig mit dem zweiten Addierer gekoppelt ist, um einen
Vektor xi gemäß xi = Ai&supmin;¹[Xi'] zu erzeugen, und
einen dritten Addierer (614), der funktionsmäßig so
geschaltet ist, dass er den Vektor xi von der
Rücktransformationseinheit empfängt und von dem Prädiktor ein
Rückkopplungssignal Si = Ai&supmin;¹[Xi'] empfängt, um xi und si zu
addieren, um den Vektor di' zu erhalten.
7. Vorrichtung nach einem der Ansprüche 3 bis 6, die
ferner einen prädiktiven digitalen Videocodierer zum Erzeugen
des quantisierten Vektors Yi umfasst, und bei der der
Prädiktor für eine bewegungskompensierte Vorhersage (MCP)
ausgelegt ist, die Transformation A[ ] die diskrete
Cosinustransformation (DCT) ist, die Transformation A&supmin;¹ die
inverse diskrete Cosinustransformation (IDCT) ist, und bei
dem der Videocodierer ein H.261-Codierer ist.
8. Vorrichtung nach einem der Ansprüche 3 bis 7, bei der
der Quantisierer so ausgelegt ist, dass der quantisierte
Vektor Yi im Betrieb die quantisierten
Transformationskoeffizienten eines Makroblocks (MB) darstellt.
9. Verfahren zum Transcodieren einer Sequenz von
quantisierten Vektoren Yi, die durch einen prädiktiven
Signalformcodierer unter Verwendung von modifizierten
Quantisierungsfehlervektoren Si erzeugt wurde, wobei das Verfahren
die folgenden Schritte umfasst:
es wird ein Differenzvektor Ei' = Yi - Si zwischen
wenigstens einem ersten quantisierten Vektor Yi und einem
modifizierten Quantisierungsfehlervektor Si erzeugt;
der Differenzvektor Ei' wird quantisiert, um einen
transcodierten Vektor Yi' zu erhalten;
es werden wenigstens zwei der Vektoren Yi, Ei' und Yi'
empfangen, und es wird der rücktransformierte Fehlervektor
di' = Ai&supmin;¹[Di'] erzeugt,
wobei Di' ein Quantisierungsfehlervektor und Ai&supmin;¹ eine
Rücktransformation und linear ist; und
es wird der modifizierte Quantisierungsfehlervektor Si
anhand von früheren Werten des Vektors di' erzeugt.
10. Verfahren nach Anspruch 9, bei dem die Transformation
Ai&supmin;¹ konstant ist.
11. Verfahren nach Anspruch 9 oder 10, bei dem der
quantisierte Vektor Yi die Größe L = 1 hat und die
Rücktransformation Ai&supmin;¹[ ] eine Identitätsmatrix ist.
12. Verfahren nach Anspruch 9, 10 oder 11, bei dem der
Schritt des Erzeugens des modifizierten
Quantisierungsfeh
lervektors Si anhand früherer Werte des Vektors di'
folgendes umfasst:
es wird ein vorhergesagter Quantisierungsfehlervektor
Si erzeugt; und
unter Verwendung von Si wird ein modifizierter
Quantisierungsfehlervektor Si erzeugt, so dass Si = Ai[Si], wobei
Ai eine vorbestimmte Transformation ist.
13. Verfahren nach einem der Ansprüche 9 bis 12, bei dem
ferner die empfangenen Vektoren Yi' und Ei' zur Ermittlung
eines Quantisierungsfehlers Di' = Yi' - Ei' verwendet
werden, und bei dem eine Rücktransformation A&supmin;¹ verwendet
wird, um den Vektor di' gemäß di' = Ai&supmin;¹[Di'] zu erzeugen.
14. Verfahren nach einem der Ansprüche 9 bis 12, das
ferner die folgenden Schritte umfasst:
die Vektoren Yi und Yi' werden empfangen und zur
Ermittlung eines Fehlers Xi' = Yi' - Yi verwendet;
die Rücktransformation Ai&supmin;¹ wird verwendet, um einen
Vektor xi gemäß Xi = Ai&supmin;¹[Xi'] zu erzeugen, und
xi und s werden addiert, um den Vektor di' zu
erhalten.
15. Verfahren nach einem der Ansprüche 9 bis 14, bei dem
der quantisierte Vektor Yi durch einen prädiktiven
digitalen Videocodierer erzeugt wird und der Videocodierer ein
H-261-Codierer ist.
16. Verfahren nach einem der Ansprüche 9 bis 15, bei dem
der quantisierte Vektor Yi quantisierte
Transformationskoeffizienten eines Makroblocks (MB) und ein fundamentales
Codierungselement in einem H.261-Code darstellt, wobei
ferner eine bewegungskompensierte Vorhersage (MCP) verwendet
wird, und bei dem die Transformation A[ ] eine diskrete
Cosinustransformation (DCT) ist und die Transformation A&supmin;¹
eine inverse diskrete Cosinustransformation (IDCT) ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/179,020 US5537440A (en) | 1994-01-07 | 1994-01-07 | Efficient transcoding device and method |
PCT/US1994/013840 WO1995019072A1 (en) | 1994-01-07 | 1994-12-01 | Efficient transcoding device and method |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69432142D1 DE69432142D1 (de) | 2003-03-27 |
DE69432142T2 true DE69432142T2 (de) | 2003-07-24 |
Family
ID=22654894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69432142T Expired - Fee Related DE69432142T2 (de) | 1994-01-07 | 1994-12-01 | Verfahren und vorrichtung zur effizienten transkodierung |
Country Status (6)
Country | Link |
---|---|
US (1) | US5537440A (de) |
EP (1) | EP0691054B1 (de) |
JP (1) | JPH08507669A (de) |
CA (1) | CA2154885C (de) |
DE (1) | DE69432142T2 (de) |
WO (1) | WO1995019072A1 (de) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835532A (en) * | 1994-03-21 | 1998-11-10 | Rca Thomson Licensing Corporation | Blind equalizer for a vestigial sideband signal |
US5781237A (en) * | 1994-03-25 | 1998-07-14 | Matsushita Electric Industrial Co., Ltd. | Video coding apparatus and video coding method |
US5715009A (en) | 1994-03-29 | 1998-02-03 | Sony Corporation | Picture signal transmitting method and apparatus |
JP3013698B2 (ja) * | 1994-04-20 | 2000-02-28 | 松下電器産業株式会社 | ベクトル量子化符号化装置と復号化装置 |
SG43051A1 (en) * | 1994-04-21 | 1997-10-17 | British Telecomm | A transcoder |
US5940130A (en) * | 1994-04-21 | 1999-08-17 | British Telecommunications Public Limited Company | Video transcoder with by-pass transfer of extracted motion compensation data |
DE4416967A1 (de) * | 1994-05-13 | 1995-11-16 | Thomson Brandt Gmbh | Verfahren und Vorrichtung zur Transcodierung von Bitströmen mit Videodaten |
US5828421A (en) * | 1994-10-11 | 1998-10-27 | Hitachi America, Ltd. | Implementation efficient digital picture-in-picture decoding methods and apparatus |
US5825970A (en) * | 1994-12-20 | 1998-10-20 | Lg Electronics Inc. | Quantization number selecting apparatus for DVCR and method therefor |
EP0755610B1 (de) * | 1995-02-15 | 2000-04-12 | Koninklijke Philips Electronics N.V. | Vorrichtung und verfahren zur transkodierung von videosignalen |
JP3418485B2 (ja) * | 1995-09-14 | 2003-06-23 | シャープ株式会社 | 画像データ蓄積装置 |
JP3788823B2 (ja) | 1995-10-27 | 2006-06-21 | 株式会社東芝 | 動画像符号化装置および動画像復号化装置 |
JPH1051766A (ja) | 1996-08-05 | 1998-02-20 | Mitsubishi Electric Corp | 画像符号化データ変換装置 |
US6038256A (en) * | 1996-12-31 | 2000-03-14 | C-Cube Microsystems Inc. | Statistical multiplexed video encoding using pre-encoding a priori statistics and a priori and a posteriori statistics |
US5870146A (en) * | 1997-01-21 | 1999-02-09 | Multilink, Incorporated | Device and method for digital video transcoding |
SE9703849L (sv) * | 1997-03-14 | 1998-09-15 | Ericsson Telefon Ab L M | Nedskalning av bilder |
US6212236B1 (en) | 1997-03-26 | 2001-04-03 | Matsushita Electric Industrial Co., Ltd. | Image decoding apparatus |
CN1236527A (zh) * | 1997-07-22 | 1999-11-24 | 皇家菲利浦电子有限公司 | 在视频序列之间进行切换的方法及相应的装置 |
US6507672B1 (en) * | 1997-09-10 | 2003-01-14 | Lsi Logic Corporation | Video encoder for digital video displays |
US6731811B1 (en) * | 1997-12-19 | 2004-05-04 | Voicecraft, Inc. | Scalable predictive coding method and apparatus |
JPH11275592A (ja) * | 1998-01-22 | 1999-10-08 | Victor Co Of Japan Ltd | 動画像符号列変換装置及びその方法 |
US6243495B1 (en) * | 1998-02-13 | 2001-06-05 | Grass Valley (Us) Inc. | Method a group of picture structure in MPEG video |
US6058143A (en) * | 1998-02-20 | 2000-05-02 | Thomson Licensing S.A. | Motion vector extrapolation for transcoding video sequences |
CA2265089C (en) * | 1998-03-10 | 2007-07-10 | Sony Corporation | Transcoding system using encoding history information |
WO1999051033A2 (en) * | 1998-03-31 | 1999-10-07 | Koninklijke Philips Electronics N.V. | Method and device for modifying data in an encoded data stream |
US6477706B1 (en) | 1998-05-01 | 2002-11-05 | Cogent Technology, Inc. | Cable television system using transcoding method |
US6215824B1 (en) * | 1998-05-01 | 2001-04-10 | Boom Corporation | Transcoding method for digital video networking |
US6226328B1 (en) * | 1998-05-01 | 2001-05-01 | Boom Corporation | Transcoding apparatus for digital video networking |
KR100304103B1 (ko) * | 1998-05-29 | 2001-09-24 | 이계철 | 비트율이급변되는재양자화계단크기선택방법및그를이용한비트율제어방법 |
SE9802286L (sv) | 1998-06-26 | 1999-12-27 | Ericsson Telefon Ab L M | Effektiv nedskalning av DCT-komprimerade bilder |
US6483543B1 (en) | 1998-07-27 | 2002-11-19 | Cisco Technology, Inc. | System and method for transcoding multiple channels of compressed video streams using a self-contained data unit |
JP2000059790A (ja) * | 1998-08-05 | 2000-02-25 | Victor Co Of Japan Ltd | 動画像符号列変換装置及びその方法 |
US6310915B1 (en) * | 1998-11-20 | 2001-10-30 | Harmonic Inc. | Video transcoder with bitstream look ahead for rate control and statistical multiplexing |
KR100312421B1 (ko) * | 1998-11-25 | 2001-12-12 | 오길록 | 영상시스템에서의압축동영상변환장치및그방법 |
US6618442B1 (en) * | 1998-12-29 | 2003-09-09 | Intel Corporation | Method and apparatus for transcoding digital video signals |
JP3672185B2 (ja) | 1999-02-09 | 2005-07-13 | ソニー株式会社 | コーディングシステム及びこれを用いた装置並びに記録媒体 |
US6628839B1 (en) * | 1999-02-23 | 2003-09-30 | Matsushita Electric Industrial Co., Ltd. | Image coding system converting apparatus, image coding system converting method, and recording medium |
CN1204751C (zh) * | 1999-04-13 | 2005-06-01 | 松下电器产业株式会社 | 编码数据变换方法、再编码方法、再编码系统以及数据记录媒体 |
US6549147B1 (en) * | 1999-05-21 | 2003-04-15 | Nippon Telegraph And Telephone Corporation | Methods, apparatuses and recorded medium for reversible encoding and decoding |
JP2003504986A (ja) | 1999-07-20 | 2003-02-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ドリフトの影響を受けない変換符号化器及び関連する方法 |
US6401132B1 (en) | 1999-08-03 | 2002-06-04 | International Business Machines Corporation | Subchaining transcoders in a transcoding framework |
US6441754B1 (en) * | 1999-08-17 | 2002-08-27 | General Instrument Corporation | Apparatus and methods for transcoder-based adaptive quantization |
KR100634660B1 (ko) * | 1999-09-13 | 2006-10-16 | 마츠시타 덴끼 산교 가부시키가이샤 | 부호화장치 및 부호화방법 |
DE19946267C2 (de) * | 1999-09-27 | 2002-09-26 | Harman Becker Automotive Sys | Digitales Transcodiersystem |
JP2003520512A (ja) * | 2000-01-14 | 2003-07-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 伝送符号化方法及び伝送符号化装置 |
KR20010105405A (ko) * | 2000-02-04 | 2001-11-28 | 요트.게.아. 롤페즈 | 비트 속도 트랜스코딩 응용들을 위한 양자화 방법 |
US6711212B1 (en) | 2000-09-22 | 2004-03-23 | Industrial Technology Research Institute | Video transcoder, video transcoding method, and video communication system and method using video transcoding with dynamic sub-window skipping |
JP2004512784A (ja) * | 2000-10-24 | 2004-04-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | エンベッドフィルタによるトランスコーディング方法及びトランスコーディング装置 |
US6650707B2 (en) | 2001-03-02 | 2003-11-18 | Industrial Technology Research Institute | Transcoding apparatus and method |
US8391482B2 (en) * | 2001-05-04 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Signal format that facilitates easy scalability of data streams |
US20030007784A1 (en) * | 2001-06-20 | 2003-01-09 | Loui Alexander C. | System and method for authoring a multimedia enabled disc |
US7236529B2 (en) * | 2001-10-30 | 2007-06-26 | Industrial Technology Research Institute | Methods and systems for video transcoding in DCT domain with low complexity |
DE10300048B4 (de) * | 2002-01-05 | 2005-05-12 | Samsung Electronics Co., Ltd., Suwon | Verfahren und Vorrichtung zur Bildcodierung und -decodierung |
US7236521B2 (en) * | 2002-03-27 | 2007-06-26 | Scientific-Atlanta, Inc. | Digital stream transcoder |
US7190723B2 (en) * | 2002-03-27 | 2007-03-13 | Scientific-Atlanta, Inc. | Digital stream transcoder with a hybrid-rate controller |
US7469012B2 (en) * | 2002-05-14 | 2008-12-23 | Broadcom Corporation | System and method for transcoding entropy-coded bitstreams |
JP4196726B2 (ja) * | 2003-05-14 | 2008-12-17 | ソニー株式会社 | 画像処理装置および画像処理方法、記録媒体、並びに、プログラム |
TWI230547B (en) * | 2004-02-04 | 2005-04-01 | Ind Tech Res Inst | Low-complexity spatial downscaling video transcoder and method thereof |
US20050232497A1 (en) * | 2004-04-15 | 2005-10-20 | Microsoft Corporation | High-fidelity transcoding |
US7692683B2 (en) * | 2004-10-15 | 2010-04-06 | Lifesize Communications, Inc. | Video conferencing system transcoder |
US20060248210A1 (en) * | 2005-05-02 | 2006-11-02 | Lifesize Communications, Inc. | Controlling video display mode in a video conferencing system |
US8422546B2 (en) * | 2005-05-25 | 2013-04-16 | Microsoft Corporation | Adaptive video encoding using a perceptual model |
US7818632B2 (en) * | 2005-06-30 | 2010-10-19 | Motorola Mobility, Inc. | Code-word list algorithm |
US8059721B2 (en) | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US8503536B2 (en) | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
US7995649B2 (en) | 2006-04-07 | 2011-08-09 | Microsoft Corporation | Quantization adjustment based on texture level |
US20070237237A1 (en) * | 2006-04-07 | 2007-10-11 | Microsoft Corporation | Gradient slope detection for video compression |
US8711925B2 (en) | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
US20070286277A1 (en) * | 2006-06-13 | 2007-12-13 | Chen Xuemin Sherman | Method and system for video compression using an iterative encoding algorithm |
US8238424B2 (en) | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
US20080240257A1 (en) * | 2007-03-26 | 2008-10-02 | Microsoft Corporation | Using quantization bias that accounts for relations between transform bins and quantization bins |
US8498335B2 (en) * | 2007-03-26 | 2013-07-30 | Microsoft Corporation | Adaptive deadzone size adjustment in quantization |
US8243797B2 (en) | 2007-03-30 | 2012-08-14 | Microsoft Corporation | Regions of interest for quality adjustments |
US8442337B2 (en) | 2007-04-18 | 2013-05-14 | Microsoft Corporation | Encoding adjustments for animation content |
US8331438B2 (en) * | 2007-06-05 | 2012-12-11 | Microsoft Corporation | Adaptive selection of picture-level quantization parameters for predicted video pictures |
US8237765B2 (en) * | 2007-06-22 | 2012-08-07 | Lifesize Communications, Inc. | Video conferencing device which performs multi-way conferencing |
US8139100B2 (en) * | 2007-07-13 | 2012-03-20 | Lifesize Communications, Inc. | Virtual multiway scaler compensation |
US8457958B2 (en) * | 2007-11-09 | 2013-06-04 | Microsoft Corporation | Audio transcoder using encoder-generated side information to transcode to target bit-rate |
US8150187B1 (en) * | 2007-11-29 | 2012-04-03 | Lsi Corporation | Baseband signal quantizer estimation |
US8189933B2 (en) | 2008-03-31 | 2012-05-29 | Microsoft Corporation | Classifying and controlling encoding quality for textured, dark smooth and smooth video content |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
US8326075B2 (en) * | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video encoding using adaptive loop filter |
US8514265B2 (en) * | 2008-10-02 | 2013-08-20 | Lifesize Communications, Inc. | Systems and methods for selecting videoconferencing endpoints for display in a composite video image |
US20100110160A1 (en) * | 2008-10-30 | 2010-05-06 | Brandt Matthew K | Videoconferencing Community with Live Images |
US8311115B2 (en) * | 2009-01-29 | 2012-11-13 | Microsoft Corporation | Video encoding using previously calculated motion information |
US8396114B2 (en) * | 2009-01-29 | 2013-03-12 | Microsoft Corporation | Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming |
US8643695B2 (en) * | 2009-03-04 | 2014-02-04 | Lifesize Communications, Inc. | Videoconferencing endpoint extension |
US8456510B2 (en) * | 2009-03-04 | 2013-06-04 | Lifesize Communications, Inc. | Virtual distributed multipoint control unit |
US8270473B2 (en) * | 2009-06-12 | 2012-09-18 | Microsoft Corporation | Motion based dynamic resolution multiple bit rate video encoding |
US8350891B2 (en) * | 2009-11-16 | 2013-01-08 | Lifesize Communications, Inc. | Determining a videoconference layout based on numbers of participants |
US8705616B2 (en) | 2010-06-11 | 2014-04-22 | Microsoft Corporation | Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures |
US9591318B2 (en) | 2011-09-16 | 2017-03-07 | Microsoft Technology Licensing, Llc | Multi-layer encoding and decoding |
US11089343B2 (en) | 2012-01-11 | 2021-08-10 | Microsoft Technology Licensing, Llc | Capability advertisement, configuration and control for video coding and decoding |
US9635334B2 (en) * | 2012-12-03 | 2017-04-25 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Audio and video management for parallel transcoding |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8005950A (nl) * | 1980-10-30 | 1982-05-17 | Philips Nv | Differentieel pulscode modulatie overdrachtstelsel. |
JPH01238229A (ja) * | 1988-03-17 | 1989-09-22 | Sony Corp | デイジタル信号処理装置 |
US4972260A (en) * | 1988-08-22 | 1990-11-20 | Matsushita Electric Industrial Co., Ltd. | Apparatus for coding a moving-picture signal |
JPH0828875B2 (ja) * | 1989-08-21 | 1996-03-21 | 三菱電機株式会社 | 符号化装置および復号化装置 |
JPH0472909A (ja) * | 1990-07-13 | 1992-03-06 | Sony Corp | オーディオ信号の量子化誤差低減装置 |
JP2753126B2 (ja) * | 1990-09-20 | 1998-05-18 | 株式会社東芝 | ディジタル・シグマデルタ変調器 |
GB9022326D0 (en) * | 1990-10-15 | 1990-11-28 | British Telecomm | Signal coding |
JPH05167998A (ja) * | 1991-12-16 | 1993-07-02 | Nippon Telegr & Teleph Corp <Ntt> | 画像の符号化制御処理方法 |
-
1994
- 1994-01-07 US US08/179,020 patent/US5537440A/en not_active Expired - Lifetime
- 1994-12-01 WO PCT/US1994/013840 patent/WO1995019072A1/en active IP Right Grant
- 1994-12-01 EP EP95904792A patent/EP0691054B1/de not_active Expired - Lifetime
- 1994-12-01 DE DE69432142T patent/DE69432142T2/de not_active Expired - Fee Related
- 1994-12-01 CA CA002154885A patent/CA2154885C/en not_active Expired - Fee Related
- 1994-12-01 JP JP7518478A patent/JPH08507669A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0691054A4 (de) | 1999-04-14 |
DE69432142D1 (de) | 2003-03-27 |
CA2154885C (en) | 1999-07-20 |
EP0691054B1 (de) | 2003-02-19 |
JPH08507669A (ja) | 1996-08-13 |
US5537440A (en) | 1996-07-16 |
EP0691054A1 (de) | 1996-01-10 |
WO1995019072A1 (en) | 1995-07-13 |
CA2154885A1 (en) | 1995-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69432142T2 (de) | Verfahren und vorrichtung zur effizienten transkodierung | |
DE69524141T2 (de) | Adaptiver Bildkodierer mit dynamischer Bitzuteilung | |
DE69425047T2 (de) | Adaptives variables längenkodierungs- und -dekodierungsverfahren für bilddaten | |
DE69535228T2 (de) | Bildumsetzungsvorrichtung | |
DE10190285B4 (de) | Verfahren und System zur Verarbeitung von komprimierten Videosignalen | |
DE69322079T2 (de) | Videokoder mit zwei schichten | |
DE60027955T2 (de) | Verfahren und Vorrichtung zur kontextbasierten Inter/Intra Kodierungsmodeauswahl | |
DE69414931T2 (de) | Transkodierer | |
DE69637335T2 (de) | Bildsignalkodierungsmethode und -vorrichtung | |
DE69830979T2 (de) | Verfahren und vorrichtung zur videocodierung mit variabler bitrate | |
DE69226749T2 (de) | System zur Kompression von sich bewegenden Videobildern mit mehrfachen Auflösungsmerkmalen | |
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE69430147T2 (de) | Bildkodierungsverfahren, und -vorrichtung | |
DE69129595T2 (de) | Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen | |
DE4343211B4 (de) | Adaptives Bildkompressionsverfahren und adaptive Bildkompressionsvorrichtung | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69323586T2 (de) | Gerät zur Schichtkodierung/-dekodierung für ein progressives Eingangsbildsignal | |
DE69435000T2 (de) | Bildkodierungsvorrichtung | |
DE69227352T2 (de) | Verfahren und System für die Ausführung einer hochwirksamen Bildsignalkodierung | |
DE69635369T2 (de) | Videokodierungsvorrichtung | |
DE69118621T2 (de) | Bildkodierungsgerät | |
DE69624669T2 (de) | Videokodierer und -dekodierersystem und -methoden | |
DE69226127T2 (de) | Effiziente Kodierungs- und Dekodierungsanordnungen zur Verarbeitung eines digitalen Bildsignals | |
DE69712836T2 (de) | Vorrichtung und verfahren zur videosignalkodierung | |
DE10343220B3 (de) | Verfahren und Vorrichtung zur Transcodierung eines Datenstroms, der ein oder mehrere codierte digitalisierte Bilder umfasst |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |