-
Die
vorliegende Erfindung bezieht sich auf einen Videokodierer und ein
Videokodierungsverfahren. Genauer bezieht sich die vorliegende Erfindung auf
einen Videokodierer und ein Videokodierungsverfahren, wodurch Bildrahmen
durch zyklisches Einfügen
einer intrarahmen-kodierten Region in jeden der Bildrahmen aufgefrischt
werden.
-
Ein
Video-Codec (Kodierer/Dekodierer) hat ein Problem, dass wenn Fehler
in Bitströmen
in Kommunikationskanälen
und Speichersystemen gemischt sind, Bilddaten nicht korrekt dekodiert
werden können,
wobei Verschlechterung der Bildqualität verursacht wird. Mit Übertragungskanälen geringer
Bitrate und Funknetzen insbesondere treten Bitfehler und Zellenverlust
leicht auf. Es ist deshalb erforderlich, Fehlerwiderstandsfähigkeit
zu erhöhen.
-
Es
gibt einige Gegenmaßnahmen
gegenüber
Fehlern. Eine der effektiven Gegenmaßnahmen besteht darin, Bildrahmen
durch zyklisches Einfügen in
die Bildrahmen einer Bildregion, in der Intrarahmenkodierung durchgeführt wird,
aufzufrischen. Eine derartige Bildregion kann unabhängig von
anderen Rahmen dekodiert werden und wird somit nicht durch Fehler
beeinträchtigt,
die in Bitströmen
in den anderen Rahmen gemischt sind. Deshalb erlaubt die Verwendung
des Auffrischungsverfahrens zum zyklischen Einfügen einer Intrarahmenkodierungs-Bildregion
in jeden von Bildrahmen, die Fehlerwiderstandsfähigkeit zu erhöhen.
-
Als
ein Auffrischungsverfahren ist ein Verfahren bekannt, das Intraschnitt
(intrasclice) genannt wird. Z. B. wird mit MPEG-2-Video (ISO-IEC CD 13818-2) eine Umschaltung
zwischen einem Intrarahmenkodierungsmodus (Intra-Modus) und einem Interrahmenkodierungsmodus
(Inter-Modus) in Einheiten von 16 × 16 Pixeln (Makroblock) durchgeführt. Z.
B. wurde ein auf Intraschnitt basiertes Auffrischungsverfahren vorgeschlagen,
durch das von einem Rahmen, der aus vertikalen 30 Makroblöcken und
horizontalen 44 Makroblöcken
besteht, eine Region bestehend aus zwei Makroblockzeilen (Makroblocklinien)
(vertikale zwei Makroblöcke
x horizontale 44 Makroblöcke)
in dem Intra-Modus kodiert wird, die intrarahmen-kodierte Region
um zwei Zeilen jeden Rahmen verschoben wird und 15 Rahmen einen
Zyklus bilden.
-
In
diesem Intraschnittschema wird, wenn eine Suche nach dem Bewegungsvektor
durchgeführt
wird, der mit einem Makroblock in Verbindung steht, der in einer
Region über
der intrarahmen-kodierten Region des aktuellen Rahmens vorhanden ist,
der zu kodieren ist, der Suchbereich von dem vorherigen Rahmen,
der als der Bezugsrahmen dient, eingeschränkt, und die Suche wird nicht
von der nicht-aufgefrischten Region durchgeführt.
-
Z.
B. wird die Suche nach Bewegungsvektoren für Makroblöcke in dem aktuellen Rahmen
so eingeschränkt,
dass von Makroblöcken
in dem vorherigen Rahmen Makroblöcke
in entsprechenden Stellen zu der intrarahmen-kodierten Region in
dem aktuellen Rahmen nicht in der Bewegungsvektor-Suchregion enthalten
sind. In dem Fall von Intraschnitt, worin die Richtung der Auffrischung
von oben nach unten ist, werden deshalb alle Bewegungsvektoren,
die von unten nach oben gerichtet sind, eingeschränkt. Derartige
Einschränkungen
erlauben, dass Rahmen in dem schlechtesten Fall durch den (2 Zyklen – 1)-ten Rahmen
von einem Rahmen, worin Fehler aufgetreten sind, vollständig aufgefrischt
werden, und erlauben, das Fehlerausbreitung konvergiert.
-
Angenommen
z. B., dass der Zyklus von Intraschnitt vier Rahmen ist und Fehler
in dem ganzen Bitstrom in dem ersten Rahmen in einem Zyklus von vier
Rahmen aufgetreten sind. In diesem Fall werden bei Kodierung eines
Makroblocks in einem eingegebenen Rahmen in dem Inter-Modus nur
Makroblöcke,
die, von Makroblöcken
in dem Bezugsrahmen, vorhanden sind in der gleichen Stelle wie und
der Region über
diesem Makroblock, der zu kodieren ist in dem eingegebenen Rahmen
für die
Bewegungsvektorssuche verwendet. Somit konvergiert der Bereich, durch
den sich die Effekte von Fehlern ausbreiten, mit der untersten Region
in dem Rahmen.
-
Die
Zahl von kodierten Bits in dem Intra-Modus ist zweimal oder mehr
größer als
die in dem Inter-Modus, wenn die gleichen Quantisierungsparameter
verwendet werden. Da es Einschränkungen
in Übertragungsraten
gibt, ist es erforderlich, dass die Übertragungsrate von Bitströmen auf
einen gewissen Wert oder geringer begrenzt wird. Wenn das auf Intraschnitt
basierte Auffrischungsschema verwendet wird, ist es deshalb erforderlich,
die Zahl von kodierten Bits um den Betrag entsprechend dem Intraschnitt,
der einzufügen
ist, zu reduzieren, indem Quantisierungsparameter größer als
in dem Fall gemacht werden, wo kein Intraschnitt eingefügt wird. Dies
bildet jedoch eine ernsthafte Ursache von Verschlechterung von Bildqualität.
-
Wie
in der japanischen ungeprüften
Patentveröffentlichung
Nr.
9-247682 auf dem
Weg eines Beispiels offenbart, wurden vor kurzem mehrere adaptive
Auffrischungsschemata vorgeschlagen, die nur Regionen in einer Szene
adaptiv auffrischen, die eine große Bewegung aufweisen, um dadurch
die Einfügungszahl
von Intrakodierungsregionen zu reduzieren. Für unbewegte (stille) Regionen
ohne Bewegung können
Fehlerverdeckungstechniken eingesetzt werden, durch die entsprechende
Regionen in dem vorherigen Rahmen in den aktuellen Rahmen eingebettet
werden. Durch adaptive Auffrischung nur von Regionen, die in der
Bewegung groß sind,
wird es somit möglich,
eine Reduzierung von Informationsinhalt zu bewirken, während die
Fehlerwiderstandsfähigkeit
aufrechterhalten wird.
-
Die
herkömmlichen
adaptiven Auffrischungsschemata teilen ein Problem, dass die Bewegung, die
intra-kodierte Regionen in einer Szene haben, nicht betrachtet werden.
-
D.
h. die herkömmlichen
adaptiven Auffrischungsschemata übernehmen
das Prinzip, dass sobald eine Region durch eine intra-kodierte Region aufgefrischt
ist, sie nicht aufgefrischt wird, bis eine neue Bewegung, die mit
dieser Region in Verbindung steht, erfasst wird. Somit wird, sobald
eine Region in dem Intra-Modus kodiert ist, sie eindeutig als eine
unbewegte Regionen in diesem Punkt betrachtet und aus dem Auffrischungsbereich
ausgeschlossen, bis eine neue Bewegung, die mit dieser Region in
Verbindung steht, erfasst wird.
-
Aus
diesem Grund fallen in dem Fall, dass wenn ein Szenenwechsel auftritt
und das Bild nach dem Szenenwechsel unbewegt ist, intra-kodierte
Regionen in dem Szenenwechselrahmen wegen Fehlern während einer Übertragung
zu dem Decoder heraus, Fehlerwiederherstellung wird verzögert, was zu
einem ernsthaften Problem führt.
Dies wird in 11 veranschaulicht.
-
In 11 wird
angenommen, dass ein Szenenwechsel in einem Rahmen N + 1 auftritt,
und es keine Bewegung für
eine Weile in Regionen von Makroblock MBi in nachfolgenden Rahmen
gibt. Im allgemeinen wird die Umschaltung zwischen Kodierungsmodi,
wie etwa dem Intra-Modus und dem Inter-Modus, auf einer Basis Makroblock
für Makroblock
gemäß dem Grad
von zeitlicher Kor relation in einem eingegebenen Videosignal adaptiv
durchgeführt.
Wenn z. B., wie ein Szenenwechsel, eine drastische Anderung in dem
Bild auftritt, sodass Korrelation zwischen vorherigen und aktuellen
Rahmen vollständig
verloren geht, wird der Intra-Modus verwendet. Somit werden die
meisten der Makroblöcke
in dem Szenenwechselrahmen N + 1 in dem Intra-Modus kodiert. Wenn
der herkömmliche
Typ einer adaptiven Auffrischung von oben nach unten in einem Vier-Rahmen-Zyklus
von Rahmen N + 2 durchgeführt wird,
ist in Rahmen N + 2 der Makroblock MBi wiederum aufzufrischen, wie
gezeigt. Da der Makroblock MBi in dem vorherigen Rahmen N + 1 in
dem Intra-Modus kodiert ist, wird jedoch die Auffrischung des Makroblocks
MBi in Rahmen N + 2 unvermeidlich übersprungen. In diesem Fall
wird der Inter-Modus als der Kodierungsmodus für den Makroblock MBi in Rahmen
N + 2 gewählt.
Da es jedoch keine Bewegung gibt, wird tatsächlich der nicht-kodierte Modus verwendet,
in dem der entsprechende Makroblock in dem vorherigen Rahmen für eine Anzeige
verwendet wird, ohne kodiert zu werden.
-
Danach
kommt MBi für
eine Auffrischung in Rahmen N + 6 erneut an die Reihe. Es sei denn,
es wird in dem Makroblock MBi bis zu diesem Zeitpunkt eine Bewegung
erfasst, wird die Auffrischung des Makroblocks in Rahmen N + 6 ebenso übersprungen.
-
Somit
wird der Makroblock MBi für
eine lange Zeit nicht aufgefrischt. Falls der Makroblock MBi in dem
Szenenwechselrahmen N + 1 wegen Übertragungsfehlern
ausfällt,
kann deshalb korrekte Information nach einem Szenenwechsel für Regionen
des Makroblocks MBi nicht erhalten werden, sodass das Bild in dem
vorherigen Rahmen N vor dem Szenenwechsel angezeigt wird, wie es
ist.
-
In
Literaturstelle
EP
0485798A2 werden ein Verfahren und eine Vorrichtung zum
Auffrischen von bewegungskompensierten sequenziellen Videobildern
beschrieben. Hier wird ein Bildbe reich während der Übertragung einer Menge von
bewegungskompensierten sequenziellen Videobildern aufgefrischt. Die
Videobilder sind in eine Vielzahl von benachbarten Regionen unterteilt.
Der Bildbereich während
eines Auffrischungszyklus wird durch Übermitteln einer unterschiedlichen
Region in jedem aufeinanderfolgende Videobild der Menge ohne Bewegung
des Kompensation aufgefrischt. Bewegungskompensation der zuvor aufgefrischten
Regionen des Bildbereiches während
des Auffrischungszyklus wird auf einen Bereich beschränkt, der
die zuvor aufgefrischte Region enthält. Videobilddaten von einer
aktuellen Region, die aufgefrischt wird, werden zur Verwendung durch
den Decoder bei ihrer Identifikation als nicht-bewegungskompensierte
Daten kodiert.
-
In
Literaturstelle
EP
0712252A1 wird eine Bewegungsbildkodierungs- und Dekodierungseinrichtung
beschrieben. Diese wird als eine Einrichtung beschrieben, die ein
Bild effizient auffrischen kann und Bildverschlechterung korrigieren
kann, die durch einen Kodierer in einer kurzen Zeit verursacht wird. Um
dies zu tun, ist sie mit einem Regionenformmessungsmittel versehen,
das die Form einer Bewegungskompensationsregion misst, durch Unterscheiden
des Bewegungskompensationsbereiches von der anderen Region in einem
Bild eines Rahmens. Sie ist auch versehen mit einem Bewegungsrichtungsschätzungsmittel,
das die Bewegungsrichtung basierend auf dem geschätzten Startpunkt
der Bewegungsrichtung in der Bewegungskompensationsregion schätzt. Eine
Auffrischungsoperation wird in der geschätzten Bewegungsrichtung von
dem Startpunkt der geschätzten
Bewegungsrichtung in der Bewegungskompensationsregion durchgeführt. In
dem Fall, wo ein Fehler in einem Block auftritt, meldet ein Codefehlerblocknummermeldemittel
die Blocknummer und einen Auffrischungsstartpunkt. Die Literaturstelle
fährt mit
einer Beschreibung fort, dass die Auffrischungsoperation entweder
nur in dem geschätzten
Bewegungsvektor oder in dem geschätzten Bewegungsvektor, aber
begrenzt auf jene Blöcke,
die den Bewegungskompensationsbereich enthalten oder zu ihm gehören, ausgeführt werden
kann. Dies erlaubt, dass jene Blöcke
in dem statischen Bereich nicht der Auffrischungsoperation unterzogen
werden, wobei erlaubt wird, dass die Auffrischungsoperation auf
eine effizientere Art und Weise ausgeführt wird.
-
In
Literaturstelle
USA 4827338 wird
ein hybrider Kodierungsprozess durch Transformation, für die Übertragung
von Bildsignalen, beschrieben. Hier werden die Bilder, die zu übertragen
sind, durch eine Sequenz von Rahmen definiert, wobei jeder Rahmen eine
Menge von in einer Matrix organisierten Blöcken enthält, jeder Block eine Menge
von digitalen Daten enthält,
die in Matrixform organisiert sind und einen Teil des Bildes darstellen.
Der Prozess umfasst die Stufen zum Transformieren jedes Blocks in
dem Frequenzbereich, Quantifizieren des transformierten Koeffizienten
jedes Blocks, Evaluieren des Datenvolumens, das für eine Kodierung
des transformierten Blocks durch statistische Kodierung im Intrarahmenmodus
notwendig ist, Evaluieren des Datenvolumens, falls für eine Kodierung
des transformierten Blocks durch statistische Kodierung im Interrahmenmodus
notwendig, Vergleichen der Datenvolumina und Entscheiden des Kodierungsmodus.
Die Beschreibung fährt
fort, über
eine Entscheidungseinheit zu sprechen, die über den Kodierungsmodus für jeden
Block entscheidet, abhängig
von Signalen von dem Verarbeitungsmittel und dem Bewegungserfassungsmittel.
Sie steuert auch die Adressierung eines Speichers, und kann Auffrischen
gegenwärtig
transformierter Blöcke
vermeiden, die bereits den Speicher enthalten. Das Bewegungserfassungsmittel
ist von einem herkömmlichen
Wesen, wobei lediglich der Block auf Unterschiede zwischen dem aktuellen transformierten
Block und dem entsprechenden Block des vorangehenden Rahmens analysiert
wird.
-
Wie
oben beschrieben, erfordert das herkömmliche auf Intraschnitt basierte
Auffrischungsschema, was den Betrag von Kodierung beträchtlich erhöht, Quantisierungsparameter
groß zu
machen, um Kodierung in der gleichen Rate zu erzielen, wobei sich
die Bildqualität
verschlechtert.
-
Außerdem wird
mit den adaptiven Auffrischungsschemata, um nur Bewegungsregionen
aufzufrischen, da keine Auffrischung für eine Weile nach einem Szenenwechsel
durchgeführt
wird, Fehlerwiederherstellung in dem Fall verzögert, dass Fehler in dem Szenenwechselrahmen
gemischt sind, wobei die Qualität
eines angezeigten Bildes verschlechtert wird.
-
Wenn
der Bewegungsvektorsuchbereich eingeschränkt wird, um Fehlerwiederherstellung durch
Auffrischung sicherzustellen, können
des weiteren korrekte Bewegungsvektoren abhängig von der Bildbewegung nicht
gefunden werden, wobei sich die Bildqualität verschlechtert.
-
Es
ist ein Ziel der vorliegenden Erfindung, einen Videokodierer und
ein Videokodierungsverfahren bereitzustellen, die gestatten, dass
die Effekte von Übertragungsfehlern
abgeschwächt
werden und dadurch die Bildqualität verbessert wird, ohne Erhöhung des
Umfangs von Kodierung.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Videokodierer vorgesehen,
umfassend: Kodierungsmittel zum selektiven Durchführen eines
Intrarahmenkodierungsmodus für
Intrarahmenkodierung eines eingegebenen Videosignals, eines Interkodierungsmodus
für Interrahmenkodierung
und eines nicht-kodierten Modus, worin keine Kodierung durchgeführt wird
und der vorherige Rahmen für
eine Anzeige verwendet wird; Modusauswahlmittel zum adaptiven Auswählen eines
Kodierungsmodus unter den Kodierungsmodi für jede vorbestimmte Region
in dem eingegebenen Videosignal; und wobei das Kodierungsmittel
ent hält
Intrarahmenkodierungsmittel für
Intrarahmenkodierung von aufzufrischenden Regionen, die durch ein
Auffrischungsbestimmungsmittel bestimmt sind, gekennzeichnet durch:
Auffrischungssteuermittel zum Erfassen einer Bewegungsregion von
innerhalb eines Rahmens und Einrichten einer intrarahmen-kodierten
Region für
eine Auffrischung in einem Abschnitt eines Auffrischungsbereiches
in dem nächsten
Rahmen, der die Bewegungsregion enthält, wobei das Auffrischungssteuermittel
enthält
Bestimmungsmittel zum Bestimmen, ob jede der intrarahmen-kodierten
Regionen, die kodiert sind durch das Kodierungsmittel in dem Intrarahmenkodierungsmodus
in dem vorherigen Rahmen, zu einer Bewegungsregion oder einer Stillregion
gehört, und
das Auffrischungsbestimmungsmittel reagiert auf eine Bestimmung
des Bestimmungsmittels zum Einbeziehen von intrarahmen-kodierten
Regionen, die zu der Bewegungsregion in dem Auffrischungsbereich
gehören,
und Ausschließen
von intrarahmen-kodierten Regionen, die zu der Stillregion gehören, aus
dem Auffrischungsbereich, und das Kodierungsmittel Mittel zum zyklischen
Einfügen
der intrarahmen-kodierten Regionen in jeden von Bildrahmen gemäß einer
vorbestimmten Auffrischungszyklusperiode enthält.
-
Dieser
Videokodierer setzt ein adaptives Auffrischungsschema voraus, das
nur eine Bewegungsregion innerhalb eines Rahmens als eine Auffrischungsbereich
auswählt
und eine intra-kodierte Region in einen Teil des Auffrischungsbereiches
einfügt. D.
h. eine unbewegte Region wird aus dem Auffrischungsbereich ausgeschlossen.
Im Vergleich mit dem normalen Intraschnitt wird somit, da die unbewegte
Region nicht aufgefrischt wird, die Zahl von Makroblöcken, die
in dem Intra-Modus zu kodieren sind, verringert und bei der gleichen
Rate können
die Quantisierungsparameter entsprechend klein gemacht werden, was
hilft, die Bildqualität
zu verbessern.
-
Bei
Bestimmung des Auffrischungsbereiches wird ferner, anders als bei
der herkömmlichen
Auffrischung, die Bewegung der intra-kodierten Region in dem Rahmen
berücksichtigt.
-
D.
h. es wird eine Untersuchung des Grades von Korrelation zwischen
jeder von Bildregionen, die in dem Intra-Modus kodiert sind, und
der entsprechenden Bildregion in dem vorherigen Rahmen durchgeführt, und
es wird eine Bestimmung davon gemacht, zu welcher einer Bewegungsregion
mit Bewegung und einer unbewegten Region ohne Bewegung die Bildregion
gehört.
Basierend auf dem Ergebnis dieser Bestimmung wird der Auffrischungsbereich
bestimmt. In diesem Fall wird die intra-kodierte Region, die zu
der Bewegungsregion gehört,
in den Auffrischungsbereich in dem nächsten Rahmen aufgenommen,
und die intra-kodierte Region, die zu der unbewegten Region gehört, wird
aus dem Auffrischungsbereich in dem nächsten Rahmen ausgeschlossen,
sodass Fehlerwiederherstellung durch Auffrischung durchgeführt werden
kann, selbst wenn die intra-kodierte Region, die zu der Bewegungsregion
gehört,
durch Fehler während
einer Übertragung zu
dem Kodierer ausfällt.
Durch dynamisches Ändern des
Auffrischungsbereiches auf einer Basis Bildregion für Bildregion
gemäß dem Vorhandensein
oder Fehlen von Bewegung der intra-kodierten Region in dem vorherigen
Rahmen wird somit fortgesetzt, eine intra-kodierte Bildregion, falls
sie eine Bewegungsregion ist, als den Auffrischungsbereich auszuwählen, bis
sie später
erneut intra-kodiert
und betrachtet wird, zu einer unbewegten Region zu gehören. Somit
wird in derartigen Situationen, da es einen Szenenwechselrahmen
gibt und das Bild nach dem Szenenwechsel unbewegt ist, ein intra-kodierter
Makroblock in dem Szenenwechselrahmen als eine Bewegungsregion behandelt
und in einem vorbestimmten Zeitpunkt aufgefrischt, der durch den
Auffrischungsbereich bestimmt wird. Selbst wenn ein Intra-Makroblock
in dem Szenenwechselrahmen während Übertragung
zu dem Decoder ausfällt,
kann deshalb Fehlerwiederherstellung basierend auf Auffrischung
relativ früh
durchgeführt
werden.
-
Die
vorliegende Erfindung stellt ferner einen Videokodierer bereit,
wobei wenn die intrarahmen-kodierten Regionen mehr als eine vorbestimmte Zahl,
die zu der Bewegungsrichtung gehören,
in einem Rahmen enthalten sind, das Auffrischungssteuermittel bestimmt,
dass der Rahmen ein Szenenwechselrahmen ist und wechselt in dem
nächsten Rahmen
die Stelle, in der eine intrarahmen-kodierte Region für eine Auffrischung
eingerichtet ist, um die zyklische Auffrischungsoperation in einem
Ende des nächsten
Rahmens zu beginnen.
-
Allgemein
enthält
der Szenenwechselrahmen einen großen Umfang von Kodierung, und
daher gibt es eine hohe Wahrscheinlichkeit von Fehlern, die eingemischt
sind, vorausgesetzt, dass die Wahrscheinlichkeit des Auftretens
eines Fehlers unverändert
bleibt. Wenn Fehler eingemischt sind, kann, da Korrelation zwischen
aktuellen und vorherigen Rahmen verloren geht, eine Technik, wie
Fehlerverdeckung, nicht verwendet werden. Durch Identifizieren eines
Szenenwechsels und Beginnen einer Auffrischungsoperation in einem
Ende des Rahmens wird es, selbst wenn Fehler in dem Szenenwechsel
Rahmen auftreten, möglich,
von den Fehlern im schlechtesten Fall in einem Auffrischungszyklus
einer vorbestimmten Zahl von Rahmen wiederherzustellen.
-
Außerdem stellt
die vorliegende Erfindung einen Videokodierer bereit, wobei wenn
eine Region in dem nächsten
Rahmen, die sich in der gleichen Stelle wie die intrarahmen-kodierten
Region für
eine Auffrischung in dem vorherigen Rahmen befindet, in dem Interkodierungsmodus
zu kodieren ist, das Auffrischungssteuermittel ein Sperrmittel zum
Sperren einer Bewegungsvektorssuche nur nach Bewegungsvektoren von
einer Bewegungsregion in dem vorherigen Rahmen, die durch das Auffri schungssteuermittel
bestimmt wird, enthält,
wobei die Bewegungsvektoren in Bewegungsvektoren in der Richtung
entgegengesetzt zu der Richtung der Auffrischung enthalten sind.
-
Um
Fehlerwiederherstellung in (2 Zyklen – 1) Malen sicherzustellen,
sperrt, wie zuvor beschrieben, das herkömmliche Intraschnittschema
die Suche nach Bewegungsvektoren in der Richtung entgegengesetzt
zu der Richtung der Auffrischung vollständig. Bei der unbewegten Region
gibt es eine geringe Möglichkeit,
dass Fehler eingemischt sind. Durch Entfernen der unbewegten Region
aus dem Bewegungsvektor-Suchbereich wird somit der Bewegungsvektor-Suchbereich
eingeengt, was eine Verbesserung der Bildqualität bewirkt.
-
Diese
Zusammenfassung der Erfindung beschreibt nicht notwendigerweise
alle notwendigen Merkmale, sodass die Erfindung auch eine Teilkombination
dieser beschriebenen Merkmale sein kann.
-
Die
Erfindung kann aus der folgenden detaillierten Beschreibung vollständiger verstanden
werden, wenn in Verbindung mit den begleitenden Zeichnungen aufgenommen,
in denen:
-
1 ein
Blockdiagramm eines Videokodierers gemäß einer ersten Ausführungsform
der vorliegenden Erfindung ist;
-
2 ein
Flussdiagramm für
den Kodierungsprozess in dem Videokodierer von 1 ist;
-
3 eine
schematische Darstellung einer Auffrischungsoperation ist, die horizontale
Makroblockzeilen verwendet;
-
4 eine
schematische Darstellung einer Auffrischungsoperation ist, die vertikale
Makroblockzeilen verwendet;
-
5 eine
schematische Darstellung einer Auffrischungsoperation in Einheiten
einer festen Zahl von Makroblöcken
ist;
-
6 ein
Diagramm zur Verwendung bei der Erläuterung der Auffrischungsoperation
des Videokodierers von 1 ist;
-
7 ein
Diagramm zur Verwendung bei der Erläuterung der Auffrischungsoperation
des Videokodierers von 1 ist, wenn es einen Szenenwechsel gibt;
-
8 ein
Diagramm zur Verwendung bei der Erläuterung von Einschränkungen
in dem Bewegungsvektor-Suchbereich in dem Videokodierer von 1 ist;
-
9 eine
schematische Darstellung eines Funkkommunikationssystems ist, auf
das die vorliegende Erfindung angewendet wird;
-
10 ein
Beispiel einer Operationsform des Funkkommunikationssystems von 9 ist;
und
-
11 ein
Diagramm zur Verwendung bei der Erläuterung der Operation eines
herkömmlichen adaptiven
Auffrischungsschemas ist.
-
In 1 wird
ein eingegebenes Videosignal in Makroblöcke in einer Blockbildungsschaltung 11 unterteilt.
Das eingegebene Videosignal, das in Makroblöcke unterteilt ist, tritt in
einen Subtrahierer 12 ein, wo das eingegebene Videosignal
und ein Vorhersagevideosignal, das später zu beschreiben ist, subtrahiert
werden und ihre Differenz ein Vorhersagerest-Fehlersignal liefert.
Eines von beiden des Vorhersagerestsignals und des eingegebenen
Videosignals von der Blockbildungsschaltung 11 wird durch einen
Modusauswahlschalter 13 ausgewählt und dann diskreter Kosinustransformation
in einer DCT-Schal tung 14 unterzogen. DCT-Koeffizientendaten,
die in der DCT-Schaltung 14 erhalten
werden, werden in einer Quantisierungsschaltung 15 quantisiert.
Die Ausgabe der Quantisierungsschaltung 15 wird in zwei
geteilt; eine wird in einem Kodierer variabler Länge 25 nach variabler
Länge kodiert.
-
Die
andere der geteilten Ausgaben der Quantisierungsschaltung 15 wird
in einer Dequantisierungsschaltung 16 und Umkehr-DCT(IDCT) Schaltung 17 in
einer Sequenz dequantisiert und DCT-kodiert, und dann in einem Addierer 18 zu
einem Vorhersagebildsignal von einem Schalter 21 addiert,
wobei dadurch ein lokales dekodiertes Signal erzeugt wird. Das lokale
dekodierte Signal wird in einen Rahmenspeicher 19 gespeichert
und dann in eine Bewegungskompensationsschaltung 20 eingespeist.
Die Bewegungskompensationsschaltung führt den Bewegungskompensationsprozess,
wie etwa Bewegungserfassung und Bewegungsvektorssuche, auf der Basis
von Korrelation zwischen dem eingegebenen Videosignal und dem Videosignal
in dem vorherigen Rahmen, der in dem Rahmenspeicher 19 gespeichert
ist, durch, wobei dadurch das Vorhersagevideosignal erzeugt und
notwendige Information zu einem Modusselektor 22 und einer
Auffrischungsbestimmungsschaltung 23 gesendet wird.
-
Eine
Kodierungssteuerschaltung 24, die für Ratensteuerung verwendet
wird, steuert Kodierung auf der Basis kodierter Information von
einer Kodierersektion 28 und des Pufferbetrages von einem
Ausgangspuffer 17 und sendet notwendige Information zu
der Kodiererschaltung variabler Länge 25. In der Kodiererschaltung
variabler Länge 25 wird
DCT-Koeffizienteninformation zusammen mit Bewegungsvektorinformation
und Modusinformation MODE kodiert. Bilddaten, die durch die Kodierung
erzeugt werden, werden zu einer Multiplexerschaltung 26 gesendet,
wo sie mit kodierten Sprachdaten und anderen kodierten Daten kombiniert
werden, und das resultierende multiplexte Signal wird dann als kodierte
Daten (Bitstrom) über
einen Übertra gungskanal
mit der Übertragungsrate,
die in dem Ausgangspuffer 27 geglättet wird, übertragen.
-
Die
Modusselektorschaltung 22 führt eine adaptive Auswahl zwischen
Makroblöcken
für Interrahmenkodierung
und Makroblöcken
für Intrarahmenkodierung
basierend auf Vorhersageinformation P von der Bewegungskompensationsschaltung 20 durch,
die den Grad von Intermakroblockkorrelation anzeigt.
-
Für Intrarahmenkodierung
wird der Schalter 13 zu einem Anschluss A durch Modusauswahlschalterinformation
M umgeschaltet, und der Schalter 21 wird zu einem Anschluss
A durch Schalterinformation S umgeschaltet. Für Interrahmenkodierung wird
andererseits der Schalter 13 zu Anschluss B umgeschaltet,
und der Schalter 21 wird zu Anschluss B umgeschaltet.
-
Kodierungsmodi
enthalten einen Intramodus (INTRA) für Intrarahmenkodierung, einen
Intermodus (INTER) für
Interrahmenkodierung und einen Nicht-Kodierungsmodus (NOT_CODED),
worin entsprechende Makroblockinformation in dem vorherigen Rahmen
für eine
Anzeige verwendet wird wie sie ist. Eine Auswahl wird unter diesen
Kodierungsmodi auf einer Basis Makroblock für Makroblock adaptiv durchgeführt. Normalerweise
wird der INTRA-Modus in dem Fall ausgewählt, wo es keine Interrahmenkorrelation
gibt. Wenn Interrahmenkorrelation für eine Vorhersage eingesetzt
werden kann, wird der INTER-Modus ausgewählt. Wenn es keine Änderung
in einem Bild gibt und daher Kodierung unnötig ist, wird der Modus NOT_CODED
ausgewählt.
-
Wenn
die Auffrischungsbestimmungsschaltung 23 eine Instruktion
abgibt, Auffrischung durchzuführen,
wählt außerdem die
Modusauswahlschaltung 23 den INTRA-Modus.
-
Die
Modusauswahlschaltinformation MODE, die einen Kodierungsmodus anzeigt,
der durch die Modusauswahlschaltung 22 ausge wählt wird,
wird zu der Kodierungsschaltung variabler Länge 25 und der Auffrischungsbestimmungsschaltung 23 gesendet. Die
Auffrischungsbestimmungsschaltung führt eine Bestimmung bezüglich dessen
durch, ob jeder Makroblock in eine Auffrischungsregion einzubeziehen ist
oder nicht, auf der Basis des ausgewählten Kodierungsmodus, der
durch den Modusauswahlmodus MODE angezeigt wird, und des Vorhandenseins
oder Fehlens von Bewegung in intrarahmen-kodierten Makroblöcken. Basierend
auf dem Ergebnis dieser Bestimmung wird bestimmt, ob Auffrischung
durchzuführen
ist oder nicht.
-
Das
heißt
die vorliegende Ausführungsform setzt
das adaptive Auffrischungsschema voraus, das nur Bewegungsregionen
in jedem Rahmen als einen Auffrischungsbereich auswählt. Bei
einer Bestimmung des Auffrischungsbereiches wird jedoch, anders
als in dem herkömmlichen
adaptiven Auffrischungsschema, die Bewegung eines Bildes über Rahmen
in jedem Intramakroblock, der in dem INTRA-Modus kodiert ist, betrachtet.
In diesem Fall wird für
einen Intramakroblock, für
den die Bestimmung ist, dass er zu einer Bewegungsregion gehört, seine Region
in den Auffrischungsbereich in dem nächsten Rahmen einbezogen, sodass
die Auffrischung Wiederherstellung von Fehlern bereitstellen wird,
selbst wenn der Makroblock selbst durch Fehler während einer Übertragung
zu dem Decoder ausfällt.
Ein Intramakroblock, für
den die Bestimmung ist, dass er zu einer unbewegten Region gehört, wird
aus dem Auffrischungsbereich in dem nächsten Rahmen ausgeschlossen.
Auf diese Art und Weise wird der Auffrischungsbereich in dem nächsten Rahmen
auf einer Basis Makroblock für
Makroblock gemäß dem Vorhandensein
oder Fehlen von Bewegung des Bildes in jedem Intramakroblock in
dem vorherigen Rahmen dynamisch geändert.
-
2 ist
ein Flussdiagramm für
die Verarbeitungsoperation der Auffrischungsbestimmungsschaltung 23,
das die Operation zum Durchführen
zyklischer Auffrischung durch Verschieben der INTRA-Kodierungsregion
von oben nach unten in Einheiten einer horizontalen Makroblockzeile
von Rahmen zu Rahmen veranschaulicht.
-
Hier
stellen i und j Adressen in der vertikalen bzw. horizontalen Richtung
in dem Rahmen eines Makroblocks, der zu kodieren ist, dar. V_NMB
und H_NMB stellen die Zahlen von Makroblöcken in der vertikalen bzw.
horizontalen Richtung in dem Rahmen dar. N ist die Zählung in
einem Zähler,
die eine Makroblockzeile einer Auffrischungsstelle anzeigt.
-
Ein
zweidimensionales Feld D[i][j] enthält Elemente zum Managen von
Auffrischungssteuerinformation, die für jeden Makroblock anzeigt,
ob er zu einer Bewegungsregion gehört, die Auffrischung benötigt, oder
nicht, auf der Basis der Historie von Bewegungsregionen-/Stillregionenbestimmungen
für jeden
Makroblock. Die Auffrischungssteuerinformation für einen Makroblock, in dem
Umschreiben durchgeführt
wurde, nämlich
einen Makroblock, für
den die Bestimmung Bewegungsregion wegen dem Vorhandensein einer
Bildänderung
ist, wird auf FALSE (FALSCH) gesetzt. Die Auffrischungssteuerinformation für
einen Makroblock, für
den die Bestimmung ist, dass es keine Änderung in einem Bild gibt,
wird auf TRUE (WAHR) gesetzt.
-
Das
FALSE zeigt an, dass der entsprechende Makroblock gegenwärtig zu
einer Bewegungsregion gehört.
Es sei denn, das FALSE wird zu dem TRUE umgeschrieben, wird dieser
Makroblock in einem spezifischen Rahmen, der durch den Auffrischungszyklus
bestimmt wird, aufgefrischt.
-
Der
Zähler
SC, der in der Auffrischungsbestimmungsschaltung 23 vorgesehen
ist, zählt
die Zahl von INTRA-Makroblöcken,
für die
die Bestimmung Bewegungsregion ist, für den Zweck einer Bestimmung
eines Szenenwechsels.
-
Vor
einem Start der Kodierung wird zuerst der Zählerwert N, um die Auffrischungsstelle
zu finden, auf 0 initialisiert (Schritt S101).
-
Als
Nächstes
wird der Zähler
SC für
eine Szenenwechselbestimmung auf 0 initialisiert, bevor ein eingegebener
1 Rahmen kodiert wird (Schritt S102).
-
In
Schleife 1 und Schleife 2 werden die Auffrischungsbestimmung und
der Kodierungsprozess für
jeden Makroblock in dem Rahmen durchgeführt. In Schleife 2, die aus
Schritten S104 bis S114 besteht, wird eine Verarbeitung in der gleichen
Makroblockzeile in der horizontalen Richtung durchgeführt. Durch
Verschachtelung von Schleife 2 innerhalb von Schleife 1, die aus
Schritten S103 und S104 besteht, wird die Makroblockzeile, die ein
Objekt der Verarbeitung ist, von oben nach unten verschoben, wobei
dadurch ein Rahmen in seiner Gesamtheit verarbeitet wird.
-
In
Schritt S105 wird eine Untersuchung bezüglich dessen durchgeführt, ob
zwei Bedingungen erfüllt
sind oder nicht: (1) der Rest der Division des Auffrischungszählerwertes
N durch die Zahl von Makroblöcken
in der vertikalen Richtung, V_NMB, ist gleich Adresse i eines Makroblocks,
der gegenwärtig ein
Objekt der Kodierung ist; und (2) der Wert des Feldes D[i][j] ist
FALSE. Falls der Makroblock, der im Begriff ist kodieren zu werden,
zu der Makroblockzeile gehört,
die aufzufrischen ist, dann ist N modulo V_NMB gleich i, der Adresse
des Makroblocks, der im Begriff ist kodieren zu werden. Falls außerdem der Feldwert
D[i][j] FALSE ist, dann wird entschieden, dass der Makroblock, der
im Begriff ist kodieren zu werden, zu einer Bewegungsregion gehört, die
aufgefrischt werden muss.
-
Falls
N modulo V_NMB gleich der Adresse i des Makroblocks ist, der im
Begriff ist kodieren zu werden, und der Feldwert D[i][j] FALSE ist,
was die Notwendigkeit der Auffrischung anzeigt, dann wird deshalb
die Auffrischung bestimmt und die Kodierungsmodusinformation MODE
wird zu dem INTRA-Modus umgeschrieben (Schritt S106).
-
Nach
dem Kodierungsprozess (Schritt S107) wird eine Kodierungsmodusbestimmung
durchgeführt
(Schritt S108), und dann wird das Feld D[i][j] durch einen Kodierungsmodustyp
aktualisiert.
-
Falls
der MODE INTRA ist, dann wird, um zu bestimmen, ob der Makroblock
unbewegt ist, die Summe (SAD) von Absolutwerten von Vorhersageresten
des Makroblocks, für
den der Bewegungsvektor, der sich aus der Bewegungskompensationsschaltung 20 ergibt,
(0, 0) ist, mit einer Schwelle TH verglichen (Schritt S109). D.
h. es wird eine Untersuchung bezüglich
dessen gemacht, zu welchem Grad sich der Makroblock, der in dem
INTRA-Modus kodiert
ist, von dem Makroblock der gleichen Adresse in dem vorherigen Rahmen
unterscheidet. Falls SAD größer als
TH ist, ist die Bestimmung, dass das Bild in Bewegung ist. In diesem
Fall wird der entsprechende Feldwert D[i][j] auf FALSE gesetzt,
was die Notwendigkeit von Auffrischung anzeigt (Schritt S110), und
die Zählung
in dem Zähler
SC für
eine Szenenwechselbestimmung wird um eins inkrementiert (Schritt
S111). Falls andererseits SAD nicht größer als TH ist, wird bestimmt,
dass der Makroblock unbewegt ist. In diesem Fall wird der entsprechende
Feldwert D[i][j] auf TRUE gesetzt, was anzeigt, dass es keine Notwendigkeit
einer Auffrischung gibt (Schritt S112).
-
Falls
der MODE INTER ist, wird entschieden, dass es eine Bewegung in dem
Makroblock gibt, und dann wird der entspre chende Feldwert D[i][j]
auf FALSE gesetzt, was die Notwendigkeit einer Auffrischung anzeigt
(Schritt S113).
-
Falls
der MODE NOT_CODED ist, wird das Feld D[i][j] nicht aktualisiert
und die Operation geht zu der nächsten
Schleife.
-
Als
ein Ergebnis wird der Feldwert D[i][j] nur auf TRUE umgeschrieben,
wenn ein Makroblock in einer unbewegten Region aufgefrischt wird.
D. h. wenn bestimmt wird, dass ein Makroblock, der in dem INTRA-Modus
kodiert ist, zu einer Bewegungsregion gehört, oder wenn ein Makroblock
in dem INTER-Modus kodiert ist, wird der Feldwert D[i][j] auf FALSE
gehalten und es wird fortgesetzt, den Makroblock als einen Auffrischungsbereich
auszuwählen,
bis der Makroblock in der gleichen Stelle in dem nachfolgenden Rahmen
als der Makroblock in dem INTRA-Modus erneut kodiert wird und es
bestimmt wird, dass er zu einer unbewegten Region gehört.
-
Nach
der Terminierung von Schleife 1 und Schleife 2, d. h. wenn Kodierung
für einen
Rahmen abgeschlossen ist, wird der Zählerwert SC für eine Szenenwechselbestimmung
mit einer Schwelle E verglichen (Schritt S116). Falls SC > E, wird entschieden,
dass der Rahmen, für
den Kodierung abgeschlossen wurde, nicht ein Szenenwechselrahmen ist,
in dem eine Szene wechselt. In diesem Fall wird, um die Auffrischungszeile
um eins vorzurücken,
(N + 1) durch V_NMB geteilt und der Rest wird als ein neuer Wert
für N gesetzt
(Schritt S117). Falls andererseits SC nicht größer als E ist, wird entschieden,
dass der Rahmen, für
den Kodierung abgeschlossen wurde, ein Szenenwechselrahmen ist.
In diesem Fall wird N auf 0 zurückgesetzt
(Schritt S118), wobei dadurch erlaubt wird, dass die Auffrischungsoperation von
oben des nächsten
Rahmens neu gestartet wird.
-
In
dem Kodierungsprozess (Schritt S107) sperrt die Bewegungskompensationsschaltung 20 Bewegungskompensation
von einer Bewegungsregion unter nicht-aufgefrischten Regionen in
dem Bezugsrahmen, um ein Vorhersagebildsignal zu erzeugen.
-
In
der obigen Beschreibung wird die Auffrischungsoperation basierend
auf horizontalen Makroblockzeilen durchgeführt, wie in 3 gezeigt.
Alternativ kann, wie in 4 gezeigt, die Auffrischungsoperation
basierend auf vertikalen Makroblockzeilen durchgeführt werden.
In einem derartigen Fall ist es nur erforderlich, dass die Division
von N durch V_NMB in Schritten S105 und S117 durch die Division
von N durch H_NMB, oder die Zahl von Makroblöcken in der horizontalen Richtung,
ersetzt wird.
-
D.
h. mit vertikaler Auffrischung werden in Schritt S105 Bestimmungen
von (J:N mod H_NMB) und (D[i][j]: FALSE) durchgeführt. Mit
anderen Worten wird eine Prüfung
bezüglich
dessen durchgeführt, ob
die zwei Bedingungen beide erfüllt
sind: (1) der Rest der Division des Auffrischungszählerwertes,
N, durch die Zahl von Makroblöcken
in der horizontalen Richtung, H_NMB, ist gleich der Adresse j eines
Makroblocks, der im Begriff ist kodiert zu werden; und (2) der entsprechende
Feldwert D[i][j] wurde auf FALSE gesetzt. Wenn der Makroblock, der
im Begriff ist kodiert zu werden, zu einer Makroblockzeile gehört, die aufzufrischen
ist, wird der Rest der Division von N durch H_NMB gleich der Adresse
i dieses Makroblocks sein. Wenn der Feldwert D[i][j] auf FALSE gesetzt
wurde, bedeutet es, dass der Makroblock zu einer Bewegungsregion
gehört,
die aufgefrischt werden muss.
-
Wenn
in Schritt S105 N mod H_NMB gleich der Adresse j des Makroblocks
ist, der im Begriff ist kodiert zu werden, und außerdem der
entsprechende Feldwert D[i][j] FALSE anzeigt, wird somit die Kodierungsmodusinformation
MODE zu dem INTRA- Modus
umgeschrieben, sodass eine Auffrischungsoperation durchgeführt wird.
-
In
dem obigen Beispiel wird die Auffrischung auf einer Basis einer
horizontalen Zeile oder einer vertikalen Zeile durchgeführt. Alternativ
kann die Auffrischung in Einheiten einer vorgeschriebenen Zahl von
Makroblöcken
durchgeführt
werden, wie in 5 gezeigt. In diesem Fall werden
in Schritt S105 Bestimmungen bezüglich
(i × V_NMB
+ j)/RN: N mod ((i × V_NMB
+ j)/RN) mod D[i][j]: FALSE durchgeführt.
-
Genauer
wird der obige Auffrischungsmodus jede horizontale Zeile oder vertikale
Zeile durchgeführt,
die Auffrischung kann aber in Einheiten einer vorbestimmten Zahl
(R × N)
von Makroblöcken durchgeführt werden,
wie in 5 gezeigt. In diesem Fall werden in Schritt S105
((i × V_NMB
+ j)/RN: N mod(V_NMB × H_NMB)/RN)
and (D[i][j] : FALSE) bestimmt. Mit anderen Worten zeigt der Wert,
der durch Dividieren der Adresse (i × V_NMB + j) des Makroblocks,
der zu kodieren ist, durch die vorbestimmten Zahl (R × N) erhalten
wird, eine Ordnung an, in der die Region aufzufrischen ist. Es wird
bestimmt, ob zwei Bedingungen: eine, dass ein Wert gleich dem Rest
ist, der durch den Wert des Auffrischungszählers N durch die Zahl ((V_NMB × H_NMB)/RN)
von Regionen erhalten wird, die aufzufrischen sind, und die andere,
dass der Wert des Feldes D[i][j] "FALSE" ist, hergestellt sind oder nicht. Falls
der Makroblock, der gegenwärtig
zu kodieren ist, zu dem Makroblock gehört, der aufzufrischen ist,
ist der Wert, der durch Dividieren der Adresse (i × V_NMB
+ j) des Makroblocks, der zu kodieren ist, durch die vorbestimmte Zahl
(RN) erhalten wird, gleich dem Rest, der erhalten wird durch Dividieren
des Wertes des Zählers
N durch die Zahl ((V_NMB × H_NMB)/RN)
von Regionen, die innerhalb des Rahmens aufzufrischen sind. Falls
der Wert des Feldes D[i][j] "FALSE" ist, wird auch bestimmt, dass
der entsprechende Makroblock, der zu kodieren ist, zu der Bewegungsregion
gehört, die
aufzufrischen ist.
-
Deshalb
wird in Schritt S106, falls der Wert, der durch Dividieren der Adresse
(i × V_NMB
+ j) des Makroblocks, der zu kodieren ist, durch die vorbestimmte
Zahl RN erhalten wird, gleich dem Rest ist, der erhalten wird durch
Dividieren des Wertes des Zählers
N durch die Zahl ((V_NMB × H_NMB)/RN) von
Regionen, die innerhalb des Rahmens aufzufrischen sind, und der
Wert des Feldes D[i][j] "FALSE" ist, was die Notwendigkeit
der Auffrischung anzeigt, bestimmt, dass die Auffrischung durchgeführt werden muss,
und dann wird die Kodierungsmodusinformation MODE zu dem INTRA-Modus
umgeschrieben.
-
Wie
oben beschrieben, wird in dieser Ausführungsform bestimmt, ob ein
Makroblock aufzufrischen ist, basierend darauf, ob er umgeschrieben wurde
als ein Ergebnis einer Änderung
in einem Bild, nachdem es zuletzt aufgefrischt wurde. In diesem Punkt
ist die wichtige Sache zu bestimmen, falls ein INTRA-Kodierungsmakroblock
einschließlich
Makroblöcken,
die zuvor aufgefrischt wurde, in dem INTER-Modus kodiert ist, er
NOT_CODED wird. Falls er so bestimmt werden kann, gehört der INTRA-Kodierungsmakroblock
zu einer unbewegten Region. Selbst wenn er ausfällt, können die Effekte durch Verwenden
des entsprechenden Makroblocks in dem unmittelbar vorangehenden
Rahmen wie er ist unterdrückt
werden. Falls nicht, ist der Makroblock in einer Bewegungsregion
vorhanden. Falls er ausfällt,
werden somit die Effekte dann ernsthaft. Falls der Makroblock in
einer unbewegten Region vorhanden ist und nicht umgeschrieben wurde,
muss der aufgefrischt werden.
-
6 zeigt
eine Auffrischungsoperation für horizontale
Makroblockzeilen einer Rahmensequenz. In diesem Beispiel wird angenommen,
dass die Zyklusperiode der Auffrischung vier Rah men ist und die
Auffrischungsoperation von oben nach unten des Rahmens durchgeführt wird.
-
In 6 setzen
sich anschließend
zu dem INTRA-Makroblock MBi in einer unbewegten Region, der in Rahmen
N aufgefrischt wird, NOT_CODED Makroblöcke, die zu einer unbewegten
Region gehören,
durch vier fortlaufende Rahmen entsprechend dem Zyklus der Auffrischung
fort. In diesem Fall wird in Rahmen N + 1 das entsprechende Feld
D[i][j] auf TRUE aufrechterhalten, was anzeigt, dass es keine Notwendigkeit
einer Auffrischung gibt; somit wird die Auffrischung des Makroblocks
MB1 in Rahmen N + 1 übersprungen.
Da dem INTRA-Makroblock Mni + 3 in einer unbewegten Region, der
in Rahmen N + 3 aufgefrischt wird, NOT_CODED Makroblöcke bis
Rahmen N + 6 folgen, wird gleichermaßen der Makroblock MBi + 3
in Rahmen N + 7 übersprungen.
Falls jedoch der Makroblock MBi + 3 in Rahmen N + 7 übersprungen
wird, wird er jedoch, da er in dem INTER-Modus kodiert ist, in dem
nächsten
Auffrischungszyklus aufgefrischt.
-
Deshalb
stellt diese Ausführungsform
Wiederherstellung von Fehlern in, in dem schlechtesten Fall, einer
(2 Zyklen – 1)
Zahl von Rahmen sicher.
-
7 zeigt
eine Auffrischungsoperation, wenn es einen Szenenwechsel gibt.
-
Wenn
ein Szenenwechsel in Rahmen N + 1 auftritt, werden im wesentlichen
alle Makroblöcke
in Rahmen N + 1 in dem INTRA-Modus kodiert. In diesem Fall wird,
da jeder INTRA-Makroblock in einer Bewegungsregion vorhanden ist,
der entsprechende Feldwert D[i][j] auf FALSE gesetzt, was die Notwendigkeit
einer Auffrischung anzeigt. Selbst wenn die Intra-Makroblöcke in Rahmen
N + 1 wegen Fehlern während
einer Übertragung
zu dem Decoder ausfallen, kann somit Fehlerwiederherstellung danach
relativ früh
durchgeführt
werden.
-
In
der vorliegenden Ausführungsform
wird, wie zuvor beschrieben, wenn bestimmt wird, dass ein Rahmen
ein Szenenwechselrahmen ist, nachdem er kodiert wurde, die Auffrischungsstelle
auf den Anfangswert in dem nächsten
Rahmen zurückgesetzt, sodass
die zyklische Auffrischung oben in dem nächsten Rahmen gestartet wird.
In dem Fall der Auffrischung von oben nach unten wird deshalb die
Auffrischung in der obersten Makroblockzeile in Rahmen N + 2 folgend
dem Szenenwechselrahmen N + 1 gestartet.
-
Allgemein
involviert der Rahmen, in dem ein Szenenwechsel auftritt, eine große Menge
von Kodierung und hat daher eine große Wahrscheinlichkeit, dass
ein Fehler eingemischt ist, unter der gleichen Wahrscheinlichkeit
des Auftretens des Fehlers. In dem Fall, wo Fehler eingemischt sind,
kann eine effektive Technik, wie etwa Verdeckung, wegen dem Fehlen
einer Korrelation mit dem vorherigen Rahmen nicht verwendet werden.
Wenn kein Szenenwechsel besonders betrachtet wird, wird die auf
Auffrischung beruhende Wiederherstellung in dem schiechtesten Fall
eine (2 Zyklen – 1)
Zahl von Rahmen brauchen. Durch Starten der Auffrischung von oben
des Rahmens unmittelbar nach einem Szenenwechsel, wie in dieser
Ausführungsform,
kann jedoch Wiederherstellung in dem schlechtesten Fall in einem
Zyklus durchgeführt
werden, wie in 7 gezeigt, selbst wenn der Szenenwechselrahmen
Fehler enthält.
-
8 zeigt
eine Beziehung zwischen INTRA-Kodierungsregionen, die durch Auffrischung
eingefügt
werden, und unbewegten Regionen.
-
Wie
zuvor beschrieben, beschränkt
bei einer Suche nach dem Bewegungsvektor, der mit einem Makroblock
in Verbindung steht in einer Region 1 über einer Intra-Kodierungsregion
in dem aktuellen Rahmen N + 2, das herkömmliche System den Suchbereich von
dem vorherigen Rahmen N + 1, der als der Bezugsrahmen dient, und
sperrt Bewegungskompensation von der gesamten Region 2,
die noch nicht aufgefrischt wurde.
-
Für die unbewegte
Region gibt es jedoch wenig Notwendigkeit, Bewegungskompensation
zu sperren, da es eine geringe Möglichkeit
gibt, dass Fehler eingemischt sind. In der vorliegenden Ausführungsform
wird deshalb, um Einschränkungen
in dem Bewegungsvektor-Suchbereich zu erleichtern und dadurch die
Bildqualität
zu verbessern, die Bewegungsvektorsuche mit Bezug auf unbewegte
Regionen (J1 in Rahmen N, j2 in Rahmen N + 1 und J3 in Rahmen N
+ 2) in der Region 2 gestattet. Dies wird implementiert,
indem der Auffrischungsbestimmungsschaltung 23 erlaubt
wird, Bewegungsregionen und unbewegte Regionen in der Region 2 in
dem Bezugsrahmen unter Verwendung des Feldes D[i][j] zu untersuchen
und die Bewegungskompensationsschaltung 20 zu instruieren,
die Suche nach nur den Bewegungsregionen zu sperren. Die Richtung
der Auffrischung kann nicht nur von oben nach unten, sondern auch
von unten nach oben oder von links nach rechts sein. In diesem Fall
ist es erforderlich, die Suche nach, von Bewegungsvektoren in der
Richtung entgegengesetzt zu der Richtung der Auffrischung, nur Bewegungsvektoren
von Regionen zu sperren, die als Bewegungsregionen betrachtet werden.
-
Die
erste Ausführungsform
wurde als Aktualisierung des Feldes D[i][j] auf den Wert TRUE beschrieben,
der anzeigt, dass es keine Notwendigkeit einer Auffrischung gibt,
sobald wie ein unbewegter INTRA-Makroblock erscheint. Die Bedingungen
können
strenger gemacht werden, derart, dass falls ein unbewegter INTRA-Makroblock
n Mal (n > 1) erscheint,
er betrachtet werden kann, zu einer unbewegten Region zu gehören. In
diesem Fall kann, selbst wenn ein INTRA-Makroblock in einer Stelle
in n fortlaufenden Rahmen ausfällt,
Fehlerwiederherstellung durch Auffrischung durchgeführt werden.
-
Obwohl
die Ausführungsform
im Sinne einer Kodierung auf einer Rahmenbasis beschrieben wurde,
ist die vorliegende Erfindung außerdem gleichermaßen auf
Kodierung auf einer Feldbasis anwendbar.
-
Als
Nächstes
wird eine zweite Ausführungsform
der vorliegenden Erfindung nachstehend beschrieben.
-
9 zeigt
eine Konfiguration eines Funkkommunikationssystems, das den Videokodierer
der vorliegenden Erfindung verwendet. Das Funkkommunikationssystems
enthält
ein Videoübertragungssystem 120 und
ein Videowiederaufbausystem 130. Bildinformation wird von
dem Videoübertragungssystem
zu dem Videowiederaufbausystem über
ein Netz 140 transferiert, das mit einer Basisstation 141 versehen
ist.
-
Das
Videoübertragungssystem 120 umfasst eine
Videosignal-Eingabesektion 121, eine Informationsquellen-Kodierersektion 122 mit
einer robusten Prozessorsektion 123, eine Übertragungsleitungs-Kodierersektion 123,
eine Übertragungsleitungs-Kodierersektion 124 und
eine Funksektion 125. In der Informationsquellen-Kodierersektion
werden Bewegungskompensation, diskrete Kosinustransformation (DCT),
Quantisierung und so weiter durchgeführt. In der Übertragungsleitungs-Kodierersektion
werden Fehlererfassung und Korrekturverarbeitung in kodierten Daten
durchgeführt.
Die Informationsquellen-Kodierersektion hat den Videokodierer von 1,
und der robuste Prozessor implementiert die oben beschriebenen Auffrischungssteuerfunktionen.
-
Das
Videowiederaufbausystem 130 umfasst eine Funksektion 131,
eine Informationsquellen-Decodersektion 133 mit einem robusten
Prozessor 134 und eine Videosignal-Ausgabesektion 135.
Die Informationsquellen-Decodersektion ist angepasst, Bit ströme zu dekodieren,
die durch den Videokodierer von 1 erhalten
werden. Der robuste Prozessor 134 hat Fehlerverdeckungsfunktionen.
-
10 zeigt
eine Form einer Operation des Funkkommunikationssystems gemäß der zweiten Ausführungsform.
Wie gezeigt, wird Videoinformation unter Endgeräten 50, wie etwa Laptop-Computern 151 und
Desktop-Computern 152, über
ein Kommunikationsnetz 140 mit Basisstationen 141, 142 und 143 übertragen.
-
Bildinformation,
die durch eine Kamera 151a als eine Bildinformations-Eingabesektion
eingefangen wird, die in dem Laptop-Computer 151 installiert ist,
wird durch den Informationskodierer kodiert, der in den Computer
eingebaut ist. Die kodierten Daten, die von der Informationsquellen-Kodierersektion
ausgegeben werden, und andere Sprachinformation und Daten werden
zusammen multiplext und dann per Funk von der Funksektion und einer
Antenne 151b, die in den Computer eingebaut ist, übertragen.
Die übertragene
Bildinformation wird zu dem Netz 140 durch eine nahe der
Basisstationen 141 bis 143 zu dem Netz 140 gesendet
und dann durch die Antenne 152a des Zielcomputers 152 durch
eine nahe der Basisstationen empfangen. Die empfangene Information
wird in die Bildkodierungsinformation, Sprachinformation und Daten
demultiplext. Die Bildkodierungsinformation wird durch die Informationsquellen-Decodersektion,
die in den Computer eingebaut ist, kodiert und dann auf der Anzeige
des Computers angezeigt.
-
Bildinformation,
die durch die Kamera 152b eingefangen wird, wird auf die
gleiche Art und Weise wie oben unter Verwendung der Informationsquellen-Kodierersektion
kodiert. Die kodierte Information und andere Sprachinformation und
Daten werden zusammen multiplext und dann per Funk von der Antenne 152a übertragen.
Das übertragene
Funksignal wird durch die Antenne 151a durch das Netz 140 empfangen.
Die empfangene Information wird in die Bildkodierungsinformation
und andere Sprachinformation und Daten demultiplext. Die Bildkodierungsinformation
wird durch die Informationsquellen-Decodersektion in dem Computer
dekodiert und dann auf seiner Anzeige angezeigt.
-
Wie
oben beschrieben, können
gemäß der vorliegenden
Erfindung, durch Implementieren der adaptiven Auffrischungsinformation
zum Bestimmen des Auffrischungsbereiches auf der Basis einer Bestimmung,
ob eine intra-kodierte Bildregion entweder eine Bewegungsregion
oder eine unbewegte Region ist, die Effekte von Übertragungsfehlern ohne Erhöhung des
Umfangs von Kodierung verringert werden, wobei somit erlaubt wird,
die Bildqualität
zu erhöhen. Durch
Rücksetzen
der Auffrischungsstelle auf die Anfangsstelle in dem Rahmen unmittelbar
folgend einem Szenenwechselrahmen kann außerdem frühe Fehlerwiederherstellung
in dem Fall des Ausfalls des Szenenwechselrahmens wegen Übertragungsfehlern
durchgeführt
werden.