DE10215350A1 - Videobild-Komprimierungs/Dekomprimierungs-Hard ware System - Google Patents
Videobild-Komprimierungs/Dekomprimierungs-Hard ware SystemInfo
- Publication number
- DE10215350A1 DE10215350A1 DE2002115350 DE10215350A DE10215350A1 DE 10215350 A1 DE10215350 A1 DE 10215350A1 DE 2002115350 DE2002115350 DE 2002115350 DE 10215350 A DE10215350 A DE 10215350A DE 10215350 A1 DE10215350 A1 DE 10215350A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- inverse
- quantization
- unit
- rice
- 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.)
- Withdrawn
Links
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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
- H04N19/426—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Ein Videobild-Komprimierungs-/Dekomprimierungssystem zum Reduzieren von Speicherplatz schließt ein Komprimierungssystem ein, welches eine Eingabekontrolleinheit, eine Frequenztransformationseinheit, eine Quantisierungs- und Rice-Mapping-Einheit, eine Bit-Zählkombinationseinheit, Kodiermittel und eine Ausgabekontrolleinheit aufweist, und ein Dekomprimierungssystem, welches eine Dekomprimierungseingabekontrolleinheit, eine Dekodiereinheit, eine inverse Quantisierungs- und inverse Rice-Mapping-Einheit, eine inverse Frequenztransformationseinheit und eine Dekomprimierungsausgabekontrolleinheit aufweist.
Description
Die vorliegende Erfindung bezieht sich auf ein Videobild-
Komprimierungs/Dekomprimierungs-Hardware System; und insbesondere
auf ein Videobild-Komprimierungs/Dekomprimierungs-Hardware System
zum Reduzieren von Speicherplatz.
In dem US-Patent 5,838,597 für Pau et al ist ein Verfahren zum Reduzie
ren des Speichers durch Optimieren einer Menge des statischen Spei
chers, der von einem MPEG-2 Decoder benötigt wird, durch Verwendung
einer adaptiven differentiellen Pulskodiermodulation (ADPCM)-Technik
offenbart. Der MPEG-2 Video Decoder (der "Videokern") (englisch "video
core" des integrierten Systems) greift durch einen Schnittstellenspeicher
datenbus auf einen externen DRAM-Speicher zu, welcher auch von einem
MPEG Audio Decoder-Kern zum Zugreifen auf jeden Audio-Puffer ver
wendet werden kann, der in derselben DRAM organisiert sein kann. Der
Video Decoder kann auch einen Controller für die Verwaltungssynchroni
täten einschließen.
Gemäß einer herkömmlichen MPEG-2 Architektur enthält der Decoder
einen ersten Silo oder first-in-first-out (FIFO) Puffer, beispielsweise mit
einer Kapazität von 1 Kbit für das Akquirieren und das Schreiben von
komprimierten Daten des externen DRAM, einen Startcode-Detektor, ei
nen bidirektionalen Speicherpuffer für eine Bildschirmanzeige (englisch on
screen display) (OSD) und einen ersten variablen Längen-Decoder für den
komprimierten Eingangsdatenstrom. Die diskrete Kosinus-
Transformations-(DCT)Datenkompression von MPEG-2 wird ausgeführt
durch relative Dekompressionseinheiten einschließlich einer Pipeline, die
typischerweise eine Weglängen (englisch "run-length") Decodierstufe auf
weist, eine inverse Quantisierungsschaltung, einen inversen diskreten Ko
sinus-Transformations-(IDCT) Prozessor und ein Netzwerk für die Er
zeugung oder Konstruktion eines Vorhersagewertes aufweist.
In einer bekannten Architektur wurden die Blöcke der I-DCT-Daten, die
durch die I-DCT-Verarbeitungsschaltung ausgegeben wurden, die die in
verse diskrete Kosinus-Transformation und die Bewegungskompensation
relativ zu den I-, P- und B-Bildern berechnet, in den entsprechenden Puf
fern des externen Speichers in einer kodierten Form geschrieben, d. h. in
der Form von Wörtern mit einer bestimmten Anzahl von Bits, bevor sie
dekodiert und zu der Anzeigeeinheit gesandt wurden. Im Gegensatz dazu
werden gemäß dem US-Patent 5,838,597 für Pau et al die dekomprimier
ten I-DCT Daten relativ zu den I- und P-Bildern gemäß einem ADPCM-
Schema rekomprimiert bevor sie kodiert und in den entsprechenden Puffer
des externen Speichers geschrieben werden. Dies wird durch einen
ADPCM-Kodierer ausgeführt. Die rekomprimierten Daten werden an
schließend dekodiert und dekomprimiert mittels des ADPCM-Dekodierers,
um zu der Anzeigeeinheit zusammen mit den dekomprimierten B-Bildern
gesandt zu werden. Optional kann ein zusätzlicher interner Speicher reali
siert werden, um die Verwaltung des im folgenden beschriebenen exter
nen Speichers zu optimieren. In einem bevorzugten Fall einer "direkten"
Rekonstruktion der B-Bilder wird dies dann wie folgt realisiert: Die
ADPCM-komprimirten I- und P-Prädiktoren werden von dem externen
DRAM-Speicher gelesen und dann ADPCM-dekomprimiert, um eine Be
wegungskompensation des B-Bildes auszuführen, welches zeitgleich
durch die Pipeline MPEG-2 dekomprimiert wird.
Fig. 1 ist ein Blockdiagramm, welches die Rekomprimierung und den
ADPCM-Kodierer gemäß dem zitierten US-Patent 5,838,579 für Pau et al
darstellt.
Der ADPCM-Kodierer enthält einen 64.8 Bit-Puffer (Block-Puffer), eine
dedizierte Schaltung (Varianzabschätzer), einen ROM, eine programmier
bar Logikreihe (PLA), einen Quantisierer, eine Begrenzerschaltung und
einen Multiplexer.
Der Blockpuffer erfasst die I_DCT-Eingangsdaten und der Varianzab
schätzer berechnet den durchschnittlichen Bildelementenwert jedes
Sub-Blocks der I_DCT-Eingangsdaten und den Durchschnitt der Summe der
absoluten Werte der Differenzen zwischen jedem Bildelement des
I_DCT-Daten-Sub-blocks. Koeffizienten der Quantisierung werden in dem (nicht
volatilen) ROM gespeichert. Die PLA empfängt als einen Eingang einen
bestimmten Varianzwert und gibt Werte der benötigten Koeffizienten aus.
Das US-Patent 5,838,579 für Pau et al offenbart jedoch nicht eine Hard
ware, die sieben Codes mit variablen Längen in Segmente bestimmter
Länge packen kann und vice versa. Auch wird ein 75%-
Komprimierungsverhältnis oder eine Technik zum gleichzeitigen Ausfüh
ren der Quantisierung nicht offenbart. Zusätzlich wird Rice Mapping nicht
erwähnt, so dass die Optimierung einer integrierten Schaltung bezüglich
der Komprimierungs- und Dekomprimierungs-Hardware nicht erreicht
werden kann und eine lange Verarbeitungszeit benötigt wird.
Fig. 2 ist ein Blockdiagramm, welches eine Quantisierungseinheit in einer
Videobild-Komprimierungs- und Dekomprimierungs-Hardware darstellt.
Die Quantisierungseinheit schließt eine erste Umwandlungseinheit 210,
einen Quantisierer 220 und eine zweite Umwandlungseinheit 230 ein.
Die erste Umwandlungseinheit 210 schließt einen ersten Vorzeichenum
kehrer 213 und einen Multiplexer 211 ein. Wenn frequenztransformierte
Koeffizienten ein positives Vorzeichen (MSB ist "0") sind, dann werden die
Koeffizienten in einen positiven Teil des Multiplexers 211 eingegeben.
Wenn die frequenztransformierten Koeffizienten ein negatives Vorzeichen
(MSB ist "1") sind, dann werden die Koeffizienten in den ersten Vorzei
chenumkehrer 213 eingegeben und es wird dann das Vorzeichen in ein
positives Vorzeichen umgewandelt. Die vorzeichen-verkehrten Koeffizien
ten werden dann in einen negativen Teil des Multiplexers 211 eingegeben.
Die Koeffizienten, die durch die erste Umwandlungseinheit 210 gelangt
sind, werden dann in den Quantisierer 220 eingegeben und quantisiert.
Die quantisierten Koeffizienten haben dann die ursprünglichen Vorzei
chen, wenn sie durch die zweite Umwandlungseinheit 230 hindurchtreten.
Fig. 3 ist ein Diagramm, welches eine Rice Mapping Einheit in einer Vi
deobild-Komprimierungs- und Dekomprimierungs-Hardware darstellt.
Die Rice Mapping Einheit führt das Rice Mapping für die quantisierten Ko
effizienten aus. Eine zweifache Operation wird für die quantisierten Koeffi
zienten beim Ausführen einer 1-Bit-Linksverschiebung ausgeführt und es
wird dann die positive Umwandlung der quantisierten Koeffizienten, die
ursprünglich ein negatives Vorzeichen hatten, ergänzt durch die Subtrakti
on von 1, was durch das Bit Invertieren implementiert ist. Wenn das ur
sprüngliche Vorzeichen der mit Rice Mapping behandelten Koeffizienten
vor der Quantisierung positiv ist, dann werden die mit Rice Mapping be
handelten Koeffizienten in einen positiven Teil eines Multiplexers eingege
ben und wenn das ursprüngliche Vorzeichen negativ ist, werden die mit
Rice Mapping behandelten Koeffizienten in einen negativen Teil des Mul
tiplexers eingegeben.
Es ist daher ein Ziel der vorliegenden Erfindung ein Videobild-
Komprimierungs-/Dekomprimierungs-Hardware System zum Reduzieren
von Speicherplatz zur Verfügung zu stellen.
In Übereinstimmung mit einem Aspekt der vorliegenden Erfindung wird zur
Verfügung gestellt ein System zum Ausführen der Komprimierung eines
Videobildes, aufweisend: Eingangskontrollmittel zum Empfangen und Aus
richten von zu komprimierenden Daten; Frequenztransformierungsmittel
zum Ausführen von eindimensionalen und/oder zweidimensionalen Fre
quenztransformationen der von der Eingangskontrolle empfangenen Da
ten; Quantisierungs- und Rice Mapping-Mittel zum Ausführen der Quanti
sierung und des Rice Mapping mit den von den Frequenztransforma
tionsmitteln ausgegebenen transformierten Daten; Bit-Zähler-
Kombinationsmittel zum Berechnen einer Bit-Zählung für die quantisierten
und mit Rice Mapping behandelten Daten und zum Auswählen eines
quantisierten Wertes unter den quantisierten Werten, die von den Quanti
sierungs- und Rice Mapping-Mitteln gemäß den Ergebnissen der Bit-
Zählung ausgegeben wurden; Kodiermittel zum Ausführen einer
Golomb-Rice (GR)-Kodierung für die quantisierten und mit Rice Mapping
behandelten Daten und zum Packen der GR-kodierten Werte eines
DC-Wertes und des Quantisierungswertes in ein Komprimierungssegment;
und Ausgangskontrollmittel zum Ausgeben der gepackten Werte.
In Übereinstimmung mit einem weiteren Aspekt der vorliegenden Erfin
dung wird zur Verfügung gestellt ein System zum Ausführen einer De
komprimierung eines Videobildes, aufweisend: Eingangskontrollmittel zum
Empfangen von zu dekomprimierenden Daten; Dekodiermittel zum Entpa
cken der Daten und zum Ausführen einer Golomb-Rice (GR) Dekodierung
mit den nicht gepackten Daten; Invers-Rice-Mapping und
Invers-Quantisierungs-Mittel zum Ausführen von inversem Rice Mapping für die
GR-dekodierten Daten und zum Ausführen einer inversen Quantisierung
für die inversen mit Rice Mapping behandelten Daten; inverse Frequenz
transformationsmittel zum Ausführen einer inversen eindimensionalen
und/oder zweidimensionalen Frequenztransformation für die inversen mit
Rice Mapping behandelten und die inversen quantisierten Daten; und De
komprimierungsausgabekontrollmittel zum Ausgeben der gewünschten
Pixel für die endgültige dekomprimierten Pixel, die von der inversen Fre
quenztransformation erhalten wurden.
In Übereinstimmung mit weiteren Aspekten der vorliegenden Erfindung
wird ein System zum Ausführen von Komprimierung und Dekomprimie
rung eines Videobildes zur Verfügung gestellt, aufweisend: ein Komprimie
rungssystem, aufweisend: Eingangskontrollmittel zum Empfangen und
Ausrichten von zu komprimierenden Daten; Frequenztransformationsmittel
zum Ausführen von eindimensionalen und/oder zweidimensionalen Fre
quenztransformationen der von der Eingangskontrolle empfangenen Da
ten; Quantisierungs- und Rice Mapping-Mittel zum Ausführen von Quanti
sierung und von Rice Mapping mit den von den Frequenztransformati
onsmitteln ausgegebenen transformierten Daten; Bit-Zähler-
Kombinationsmittel zum Kalkulieren einer Bit-Zählung für die quantisierten
und mit Rice Mapping behandelten Daten und zum Auswählen eines
Quantisierungswertes unter den von den Quantisierungs- und Rice Map
ping-Mitteln gemäß den Ergebnissen der Bit-Zählung ausgegebenen
quantisierten Werten; Kodiermittel zum Ausführen einer Golomb-Rice
(GR) Kodierung für die quantisierten und mit Rice Mapping behandelten
Daten und zum Verpacken der GR-kodierten Werte, eines DC-Wertes und
des quantisierten Wertes in ein Komprimierungssegment; und Ausgabe-
Kontrollmittel zum Ausgeben der verpackten Werte, ein Dekomprimie
rungssystem, aufweisend: Eingangskontrollmittel zum Empfangen von zu
dekomprimierenden Daten; Dekodiermittel zum Entpacken der Daten und
zum Ausführen einer Golomb-Rice (GR) Dekodierung mit den unverpack
ten Daten; Invers-Rice-Mapping- und Invers-Quantisierungs-Mittel zum
Ausführen von inversem Rice Mapping mit den GR-dekodierten Daten und
zum Ausführen inverser Quantisierung für die mit inversem Rice Mapping
behandelten Daten; inverse Frequenztransformationsmittel zum Ausführen
inverser eindimensionaler und/oder zweidimensionaler Frequenztransfor
mation für die inversen mit Rice Mapping behandelten und invers quanti
sierten Daten; und Dekomprimierungsausgabekontrollmittel zum Ausge
ben der gewünschten Pixel aus den endgültig dekomprimierten Pixeln, die
von der inversen Frequenztransformation erhalten wurden.
Die obige und andere Ziele und Eigenschaften der vorliegenden Erfindung
werden aus der folgenden Beschreibung von bevorzugten Ausführungs
formen in Verbindung mit den begleitenden Zeichnungen klar, die zeigen:
Fig. 1 ist ein Blockdiagramm, welches die Rekomprimierung und den
ADPCM-Kodierer zeigt;
Fig. 2 ist ein Blockdiagramm, welches eine Quantisierungseinheit in einer
Videobild-Komprimierungs- und Dekomprimierungs-Hardware zeigt;
Fig. 3 ist ein Diagramm, welches eine Rice Mapping Einheit in der Video
bild-Komprimierungs- und Dekomprimierungs-Hardware zeigt;
Fig. 4 ist ein Blockdiagramm, welches eine Komprimierungs-Hardware in
einem Videobild-Komprimierungs-Algorithmus gemäß der vorliegenden
Erfindung zeigt;
Fig. 5 ist ein Diagramm, welches eine Frequenz-Transformations-Einheit
in der Komprimierungs-Hardware gemäß der vorliegenden Erfindung
zeigt;
Fig. 6 ist ein Blockdiagramm, welches die Quantisierungs- und Rice Map
ping-Einheit in der Komprimierungs-Hardware gemäß der vorliegenden
Erfindung zeigt,
Fig. 7 ist ein Blockdiagramm, welches im Detail die Quantisierungs- und
Rice Mapping-Einheit in der Komprimierungs-Hardware gemäß der vorlie
genden Erfindung zeigt;
Fig. 8 ist ein Diagramm, welches die Bit-Zähler-Kombinationseinheit in der
Komprimierungs-Hardware gemäß der vorliegenden Erfindung zeigt;
Fig. 9 ist ein Diagramm, welches die universelle Bit-Zähleinheit in der Bit-
Zählkombinationseinheit gemäß der vorliegenden Erfindung zeigt;
Fig. 10 ist ein Diagramm, welches die Kodiereinheit gemäß der vorliegen
den Erfindung zeigt;
Fig. 11 ist ein Blockdiagramm, welches eine Dekomprimierungs-Hardware
in einem Videobilddekomprimierungsalgorithmus gemäß der vorliegenden
Erfindung zeigt;
Fig. 12 ist ein Blockdiagramm, welches die Dekodiereinheit in der De
komprimierungs-Hardware gemäß der vorliegenden Erfindung zeigt;
Fig. 13 ist ein Diagramm zum Erläutern der Golomb-Rice (GR)-
Dekodierung gemäß der vorliegenden Erfindung;
Fig. 14 ist ein Diagramm, welches eine AC Entpackeinheit in der Deko
diereinheit gemäß der vorliegenden Erfindung zeigt;
Fig. 15 ist ein Diagramm, welches eine Invers-Quantisierungs- und
Invers-Rice-Mapping-Einheit gemäß der vorliegenden Erfindung zeigt; und
Fig. 16 ist ein Diagramm, welches die inverse Frequenz-Transformations-
Einheit in der Dekomprimierungs-Hardware gemäß der vorliegenden Er
findung zeigt.
Im Folgenden wird ein Hardware System im Detail mit Bezug auf die be
gleitenden Zeichnungen beschrieben, welches die Komprimierung und die
Dekomprimierung von Videobildern gemäß der vorliegenden Erfindung
ausführt.
Fig. 4 ist ein Blockdiagramm, welches eine Komprimierungs-Hardware
zeigt, die einen Videobild-Komprimierungsalgorithmus gemäß der vorlie
genden Erfindung implementiert. Eine Komprimierungseingangskontroll
einheit 410 empfängt Daten, die komprimiert werden, und richtet die emp
fangenen Daten aus. Eine Frequenz-Transformationseinheit 420 führt ein
dimensionale und zweidimensionale Frequenz-Transformationen mit den
ausgerichteten Daten durch, wobei die Frequenz-Transformationseinheit
420 im wesentlichen ähnlich zu einer Art von modifizierter
Hadamard-Transformation (KMHT) arbeitet, welche bereits offenbart wurde. Eine
Quantisierungs- und Rice-Mapping-Einheit 430 und eine Bit-Zähl-
Kombinationseinheit 440 führen Quantisierung für die frequenztransfor
mierten Daten durch und erhalten einen Quantisierungswert (q_value).
Eine Kodiereinheit 450 führt eine Golomb-Rice (GR)-Kodierung durch,
welche eine Art von Entropie-Kodierung ist, und verpackt die GR-kodierten
Werte, einen DC-Wert und einen q_value in ein
32-Bit-Komprimierungssegment. Eine Komprimierungsausgangskontrolleinheit
460 gibt die verpackten 32-Bit-Werte auf einer 64-Bit-Basis aus.
Die Komprimierungseingangskontrolleinheit 410 empfängt 64-Bit-Daten
(podata [63 : 0]), ordnet sie neu an und gibt 64-Bit oder 128-Bit-Daten in
die Frequenztransformationseinheit 420 aus. Die Komprimierungsein
gangskontrolleinheit 410 empfängt auch ein Kontrollsignal (is_comp) zum
Bestimmen, ob die Eingangsdaten zu komprimieren sind, ein Bestäti
gungssignal (po_re) zum Bestätigen, ob die Daten von einem VDEC-
ausgegeben wurden, ein erstes Unterscheidungssignal (cc_reg_vdec)
zum Unterscheiden, ob die von dem VDEC ausgegebenen Daten Chromi
nanzkomponenten sind, ein zweites Unterscheidungssignal (hd_not_sd)
zum Bestimmen, ob ein Dekodierer ein HD-Modus oder ein SD-Modus ist,
und ein Komprimierungsverhältniskontrollsignal (is_qt) zum Bestimmen,
ob die Komprimierung 75% oder 50% beträgt.
Fig. 5 ist ein Diagramm, welches die Frequenztransformationseinheit 420
des Komprimierungs-Hardware-Blockdiagramms der Fig. 4 darstellt. Die
Frequenztransformationseinheit führt die Frequenztransformation für einen
1 × 8 oder einen 2 × 8 Pixel-Eingang durch. Im Folgenden wird eine Erklä
rung der Frequenztransformation für den 2 × 8 Pixel-Eingang gegeben. In
der vorliegenden Erfindung arbeitet die Frequenztransformation nach der
KMHT.
Die Frequenztransformation wird zunächst mit einer oberen 1 × 8 Trans
formationseinheit 510 ausgeführt, und es wird dann eine andere Fre
quenztransformation bei einer unteren 1 × 8 Transformationseinheit 520
ausgeführt. Die Ergebnisse der 2 × 8 Transformation schließlich durch Ad
dieren und Subtrahieren von jedem der 1 × 8 transformierten Ergebnisse
von den Einheiten 510 und 520 erhalten. Eine durchgezogene Linie reprä
sentiert eine Addition und eine gestrichelte Linie repräsentiert eine Sub
traktion. In Fig. 5 führen SRs 1-Bit nach rechts-Verschiebeoperationen
aus, d. h. jedes der SRs führt eine Operation aus, die einer Division eines
Wertes durch 2 entspricht. Da die nach rechts-Verschiebung festliegt, wird
sie mit Drähten in der Hardware realisiert.
Die obere 1 × 8 Transformationseinheit 510 ist ausgebildet, um insgesamt
acht Ergebnisse zu erhalten. Die untere 1 × 8 Transformationseinheit 520
ist ausgebildet, um vier Ergebnisse nur für niedrige Frequenzen zu erhal
ten. Im Falle der 1 × 8 Transformation nur zum Ausführen der 50%igen
eindimensionalen Komprimierung werden nämlich nur die Ergebnisse der
oberen 1 × 8 Transformationseinheit 510 in eine Frequenztransformati
onsausgabeeinheit 550 durch eine Komprimierungsverhältnisauswahlein
heit 540 ausgegeben. Zu diesem Zeitpunkt ist die Komprimierungsverhält
nisauswahleinheit 540 eingestellt, um die 50%ige Komprimierung in Ant
wort auf das Komprimierungsverhältniskontrollsignal (is_qt) auszuführen.
Auf der anderen Seite, im Falle einer 2 × 8 Transformation nur zum Aus
führen der 75%igen zweidimensionalen Komprimierung, werden vier Er
gebniswerte von der oberen 1 × 8 Transformationseinheit 510 und vier Er
gebniswerte von der unteren 1 × 8 Transformationseinheit 520 in die 2 × 8
Transformationseinheit 530 eingegeben und voneinander addiert und sub
trahiert, und es werden dann die Ergebnisse der Frequenztransformati
onsausgabeeinheit 550 über die Komprimierungsverhältnisauswahleinheit
540 zur Verfügung gestellt. Zu diesem Zeitpunkt ist das Komprimierungs
verhältnis der Komprimierungsverhältnisauswahleinheit 540 eingestellt,
um eine 75%ige Komprimierung als Antwort auf das Komprimierungsver
hältniskontrollsignal (is_qt) auszuführen.
Wie in den Fig. 2 und 3 dargestellt, wird die Hardware gemäß dem Stand
der Technik im Allgemeinen durch das parallele Verarbeiten von Quanti
sierungswerten ausgeführt, so dass eine Vielzahl von Verdrahtungen und
Multiplexern benötigt wird. Demnach bestehen einige Nachteile darin,
dass ein relativ großer Raum benötigt wird und die Verarbeitungsverzöge
rung erhöht wird. Daher schlägt die vorliegende Erfindung eine Hardware-
Konfiguration zum Implementieren der Quantisierung und des Rice Map
ping in einer identischen Absolut-Wert-Region vor.
Fig. 6 ist ein Blockdiagramm, welches die Quantisierungs- und
Rice-Mapping-Einheit 430 des Komprimierungs-Hardware-Blockdiagramms
gemäß der vorliegenden Erfindung darstellt.
Um sieben AC-Koeffizienten (kmht_out_1 bis kmht_out_7), die von der
Frequenztransformationseinheit 420 ausgegeben wurden zu quantisieren,
werden die AC-Koeffizienten quantisiert, wenn die AC-Koeffizienten ein
positives Vorzeichen aufweisen, und, wenn die Koeffizienten ein negatives
Vorzeichen aufweisen, wird das negative Vorzeichen durch einen Vorzei
chenumkehrer 613 innerhalb einer Absolut-Wert-Umwandlungseinheit 610
umgekehrt, und die dann in ihrem Vorzeichen umgekehrten Koeffizienten
werden dann in einen Multiplexer 610 innerhalb der Absolut-Wert-
Umwandlungseinheit 610 eingegeben. Ein Quantisierer 620 quantisiert die
Ausgänge des Multiplexers 611, und ein Verdoppler (X2 (SL)) 631, wel
cher sich in einer Rice-Mapping-Einheit 630 befindet, führt ein
Rice-Mapping für die quantisierten Absolut-Werte durch, die durch ein Schal
tungsdesign nach links verschoben wurden.
Hier beträgt die Anzahl der Ausgabe-Koeffizienten der Frequenztransfor
mationseinheit 420 acht und die Anzahl der Eingangskoeffizienten, die in
die Quantisierungs- und Rice Mapping-Einheit 430 eingegeben werden,
beträgt sieben, so dass die Anzahl der Koeffizienten nicht übereinstimmt.
Der Grund liegt darin, dass der erste Koeffizient, welcher ein DC-Wert ist,
nicht quantisiert ist, da er die wichtigste Information trägt.
Fig. 7 ist ein Blockdiagramm, welches die Quantisierungs- und
Rice-Mapping-Einheit 430 des Komprimierungs-Hardware-Blockdiagramm der
Fig. 4 zeigt. Um schnell eine Quantisierung auszuführen, wird die Quanti
sierung für alle eingegebenen Koeffizienten parallel durchgeführt, und je
der Koeffizient weist acht bis zehn Quanitisierungsstufen auf, so dass die
62 Quantisierungswerte parallel verarbeitet werden.
Eine Absolut-Wert-Umwandlungseinheit 710 in der Quantisierungs- und
Rice Mapping-Einheit 430 gibt die absoluten Werte der eingegebenen Ko
effizienten aus, wie sie in der Absolut-Wert-Umwandlungseinheit 610 defi
niert sind. Da die Vorzeicheninformation für sieben Koeffizienten, die in
diesen Verfahren erhalten werden können, in dem Rice-Mapping verwen
det werden, wird die Vorzeicheninformation der sieben Koeffizienten in
eine Quantisierungs- und Rice-Mapping-Reiheneinheit 730 eingegeben.
Während der Quantisierung sind die Quantisierungsniveaus bereits ent
sprechend der Anzahl der Quantisierungswerte bestimmt, d. h. acht Quan
tisierungswerte im Falle einer 50%igen Komprimierung und sechzehn
Quantisierungswerte im Falle einer 75%igen Komprimierung. Da die Er
gebnisse der Quantisierung parallel erhalten werden, sind alle möglichen
Ergebnisse der Quantisierung für die sieben Koeffizienten die 62 Quanti
sierungswerte.
Das Rice Mapping wird auf die erhaltenen Quantisierungskoeffizienten
angewandt. Das Rice Mapping führt eine 1-Bit-Linksverschiebung durch
implementiert zusätzlich die Subtraktion von 1 von den erhaltenen Quanti
sierungswerten im Falle eines negativen Vorzeichens. Demnach werden
die Nach-Rechtsverschiebung in der Quantisierung und die Nach-
Linksverschiebung in dem Rice Mapping zur gleichen Zeit durchgeführt.
Beispielsweise macht es eine 2-Bit-Rechtsverschiebung möglich, gleich
zeitig die Quantisierung und das Rice Mapping auszuführen, wenn die
Rechtsverschiebung 3 Bit für die Quantisierung und die Linksverschiebung
1 Bit für das Rice Mapping ausführt.
Wenn die Quantisierung und das Rice Mapping zur gleichen Zeit ausge
führt werden, wenn die 62 Ergebnisse ein negatives Vorzeichen aufwei
sen, dann wird eine zusätzliche Operation durch eine Subtraktion von 1
von den Ergebnissen mit einem negativen Vorzeichen durchgeführt, und
wenn die Ergebnisse ein positives Vorzeichen aufweisen, werden die Er
gebnisse unverändert (absl_M1, . . ., absi_Mi, . . ., abs7_M7) ausgegeben,
wobei Mi ein Quantisierungsniveau für den i-ten Koeffizienten darstellt.
Beispielsweise gibt absz_M7 die verschiedenen 10 quantisierten und mit
Rice Mapping behandelten Ergebnisse zur gleichen Zeit aus, da M7 0 bis 8
und 10 Werte aufweist.
Nachdem die Quantisierung und das Rice Mapping abgeschlossen sind,
wird eine Bit-Zählung berechnet, um den optimalen Quantisierungswert
(q_value) zu selektieren, welcher dann in das
32-Bit-Komprimierungssegment für die Datenkomprimierung eingegeben wird.
Die Bit-Zählung ist eine Summe einer bestimmten Bit-Länge (Komma und
binärer Teil) und einer variablen Bit-Länge (unärer Teil) für jeden Koeffi
zienten. Da die feste Bit-Länge bereits bekannt ist, wird die feste Bit-
Länge aus der Bit-Zählung ausgeschlossen. Die Bit-Zählung zur Bestim
mung des Quantisierungswertes ist nur unter Verwendung des unären
Teils implementiert. Demnach wird nur der unäre Teil (bc1_M1, bc2_M2, . . .,
bc7_M7) in eine Bit-Zählkombinationseinheit 440 eingegeben.
Ein konstanter Offset-Wert (const_offset) ist ein konstanter Wert zur Ver
einfachung der Bestimmung, ob die kalkulierte Bit-Zählung für ein
32-Bit-Segment abgeschlossen ist. Im Falle einer 50%igen Komprimierung, wird
die Zahl "9" ausgegeben und im Falle einer 70%igen Komprimierung, wird
die Zahl "5" ausgegeben. Der Grund wird mit Bezug auf die Fig. 9 be
schrieben.
Die Bit-Zähl-Kombinationseinheit 440 bestimmt den Quantisierungswert
(q_value) und eine binäre Auswahleinheit 750 gibt den ausgewählten Bi
närteil aus, der für die Golomb-Rice-Kodierung notwendig ist, an die Go
lomb-Rice-kodierten Eingangswerte (gr_input1 ~ gr_input5) unter Verwen
dung des bestimmten Quantisierungswertes (q_value). Zu diesem Zeit
punkt weisen der sechste und der siebte Koeffizient nicht den binären Teil
auf, so dass es nicht notwendig ist, diese auszugeben.
Fig. 8 ist ein Diagramm, welches die Bit-Zähl-Kombinationseinheit 440 des
Komprimierungs-Hardware-Blockes der Fig. 4 darstellt.
Die Bit-Zähl-Kombinationseinheit 440 empfängt die 62 unären Quantisie
rungswerte und berechnet Bit-Zählungen durch Ausführen von Kombinati
onen gemäß den Quantisierungswerten (8 Quantisierungswerte bei
50%iger Komprimierung oder 16 bei 75%iger Komprimierung). Die Bit-
Zähl-Kombinationseinheit 440 wählt den endgültigen Quantisierungswert
(q_value) gemäß den Ergebnissen der Bit-Zählung aus. Wenn die Bit-
Zählung berechnet wird, werden auch Verschiebungslängen (sh_l1 ~ sh_l7)
für jeden Code berechnet und für die nächste Kodierverpackung
ausgegeben.
Insbesondere werden die 62 mit Rice Mapping behandelten unären Teile
in einen Satz von sieben Werten gemäß den Quantisierungswerten von q0
bis q15 durch eine Quantisierungs-Koeffizienten-Kombinationseinheit 810
verpackt und in Universal-Bit-Zähleinheiten eingegeben, welche als q0_cN
bis q7_cN dargestellt werden, entsprechend den 50%igen und 75%igen
Komprimierungen und in 75%-Bit-Zähleinheiten, welche als q8_cN bis
q15_cN dargestellt werden und nur der 75%igen Komprimierung entspre
chen. Wenn der Quantisierungswert bei einer 75%igen Komprimierung 15
beträgt, dann sind die Quantisierungsniveaus für jeden Koeffizienten 7, 7,
8, 7, 8, 9 und 10, so dass bc1_7, bc2_7, bc3_8, bc3_8, bc4_7, bc5_8,
bc6_9 und bc7_10, die in der Fig. 8 als q15_cN wiedergegeben sind, in
die 75%-Bit-Zähleinheit eingegeben werden. bc1_7, bc2_7 etc. entspre
chen q15_c1, q15_c2 etc. Auf der anderen Seiten werden im Falle einer
50%-igen Komprimierung nur q0_cN ~ q7_cN eingegeben.
Die Bit-Zähl-Kombinationseinheit 440 berechnet die Menge der von den
Quantisierungswerten erzeugten Bits. Um die erzeugte Menge der Bits zu
berechnen, wird zunächst das Folgende beachtet. Die Universal-Bit-Zähleinheiten
(q0_cN ~ q7_cN) berechnen die Bit-Zählung für alle der
50% ein und 75%igen Kompressionen für q0_cN bis q7_cN. Die 75%-Bit-Zähleinheiten
(q8_cN ~ q15_cN) berechnen die Bit-Zählung für (q8_cN ~ q15_cN)
nur für die 75%ige Komprimierung. Der Quantisierungswert
(q_value) wird in einer Quantisierungswertauswahleinheit 830 gemäß des
berechneten Ergebnisses der Menge der erzeugten Bits bestimmt, was als
Überlauf-Bits (q0_ovf ~ q15_ovf) wiedergegeben wird. Die Bit-Zähleinheit
820 implementiert die Bit-Zählung für die akkumulierte Verschiebungslän
ge (q0_1N ~ q15_1N), die zum Wiedergeben des unären in der
Golomb-Rice-Kodierung notwendig ist (durch Berücksichtigen des unären Teils
ohne die Überlauf-Bits), und sendet die Ergebnisse an eine Verschie
bungslängenauswahleinheit 840.
Die Werte der akkumulierten Länge werden für alle Quantisierungswerte
ausgegeben. Diese Werte werden ausgewählt durch den Quantisierungs
wert (q_value) in der Bit-Zähl-Kombinationseinheit 440 und schließlich als
Signale von sh_l1 bis sh_l7 in der Verschiebungslängenauswahleinheit
840 ausgegeben. Die Menge der von der Golomb-Rice (GR) Kodierung
erzeugten Bits ist gegeben durch:
Menge der Bits von Koeffizient
Menge der Bits von Koeffizient
"c" = k + 1 +(c<<2k) - (1)
wobei k, welches eine Variable ist, die durch den GR-Code definiert ist,
die Bit-Größe des binären Teils des erzeugten GR-Codes ist und "1" einen
Komma-Code repräsentiert. "C<<2k" ist ein unärer Teil, der durch Entfer
nen des niedrigeren binären k-Bit Teils in dem Koeffizienten "c" erhalten
wird und durch den unären Teil repräsentiert wird.
Wenn beispielsweise k = 2 ist und ein Koeffizient "10011" GR-kodiert wird,
werden die beiden niedrigeren Bits "11" binär kodiert, da k = 2 und ein Teil
ohne die niedrigen beiden Bits "100" die Dezimalzahl "4" bedeutet. Die
Zahl "4" stellt die Unär-Zahl "0000" dar. Demnach wird der endgültige
GR-kodierte Koeffizient, der ein Komma einschließt, zu "0000111 ". Die er
zeugten Bits sind 7 Bits. Auch in der Formel 1 ist 2+1+(19<<22) = 2+1+4 = 7,
so dass sie gleich sind.
Die GR-Kodierung kann grundsätzlich eine Art von adaptiver Entropie-Kodierung
sein, da das k Adaptiv durch Erzeugung einer Wahrscheinlich
keit eines Symbols berechnet wird. Das k wird jedoch für jede Koeffizien
ten-Position durch eine Simulation für Bilddaten erzeugt und durch Aus
führen der Hardware gemäß der vorliegenden Erfindung festgelegt.
Fig. 9 ist ein Diagramm, welches die universelle Bit-Zähleinheit 820 dar
stellt.
Die 50%ige Kompression für 32 Bits verwendet 3 Bits (da die Anzahl der
Quantisierungswerte 8 ist, werden 3 Bits benötigt) als Quantisierungswert
und 8 Bits als den DC-Koeffizienten, so dass 7 GR-Codes (AC Koeffizien
ten) in die verbleibenden 21 Bits gefüllt werden. Unterdessen verwendet
die 75%ige Kompression für 32 Bits 4 Bits (4 Bits werden benötigt auf
grund von 16 Quantisierungswerten) als Quantisierungswert (q_value) und
8 Bits als DC-Koeffizient, so dass die GR-Codes (AC-Koeffizienten) in die
verbleibenden 20 Bits gefüllt werden.
Demnach muss im Falle der 50%ige Kompression die Summe der Länge
der GR-Codes kleiner oder gleich 21 Bits sein und im Falle der 75%igen
Kompression muss die Summe der Längen der GR-Codes kleiner oder
gleich 20 Bits sein. Ein Problem besteht darin, dass in einer Hardware ein
komplexer Subtrahierer zum Vergleichen der 21 oder 20 Bits benötigt
wird. Die vorliegende Erfindung führt diesen Vergleich in Hardware sehr
kurz auf folgende Weise aus:
Der Golomb-Rice Code besteht aus der Variable k, das Komma "1" und
der Rest ist Unär-Teil. Da die Variable k bereits durch die Simulation ge
mäß der vorliegenden Erfindung festgelegt wurde, wurde auch die Summe
der 7 Golomb-Rice-Codes bis auf den unären Teil bereits bestimmt. Die
Summe ist nämlich fünfzehn im Falle der 50%igen Komprimierung und
zehn im Falle der 75%igen Komprimierung.
Schließlich lauten die Vergleichsformeln für jede Komprimierung wie folgt:
Im Falle der 50%igen Komprimierung lautet Formel 2 wie folgt:
Im Falle der 50%igen Komprimierung lautet Formel 2 wie folgt:
15 + (die Summe die Längen der unären Teile von 7 GR Codes) < 21 (2)
Im Falle der 75%igen Komprimierung lautet Formel 3 wie folgt:
10 + (die Summe der Längen der unären Teile von 7 GR Codes) < 20 (3)
In den Formeln 2 und 3 wird beispielsweise eine Zahl "6" auf beiden Sei
ten der Formel 2 subtrahiert und eine Zahl "5" wird auf beiden Seiten der
Formel 3 subtrahiert, so dass die vergleichbaren Werte "21" und "20" 15
werden. Die berechneten Formeln sind wie folgt:
Im Falle der 50% Komprimierung:
Im Falle der 50% Komprimierung:
9 + (die Summe der Länge der unären Teile von 7 GR-Codes) < 15 (4)
Im Falle der 75% Komprimierung:
5 + (die Summe der Länge der unären Teile von 7 GR Codes) < 15 (5).
Wenn die Zahl "9" im Falle einer 50%igen Komprimierung als die Bit-Zähl-
Konstante (const_offset) eingegeben wird und die Zahl "5" als die Bit-Zähl-
Konstante (const_offset) im Falle einer 75%igen Kompression eingegeben
wird, so dass die Summe der Bit-Längen der sieben GR-Codes, die grö
ßer als 15 ist, immer erfasst wird. Das bedeutet, dass die Erfassung imp
lementiert ist, wenn die Summe der Bit-Längen der sieben GR-Codes
größer oder gleich 16 ist.
In der Hardware wird eine Bestimmung, ob die Summe der Bit-Längen der
sieben GR-Codes größer oder gleich 16 ist dadurch ausgeführt, dass fest
gestellt wird, ob irgendein Wert größer "1" in den oberen Bits ohne die un
teren 4 Bits, d. h. von den ersten bis zu dem vierten Bit, in dem Ergebnis
der Summe der Bit-Zählung existiert. Demnach weisen die Ergebnisse der
Bit-Zähladdition die Ergebnisse der aktuellen Kalkulation der unteren vier
Bits und die Ergebnisse des bitwise-ORing des Restes der oberen Bits
auf.
Als Ergebnis genügt ein 4-Bit-Addierer, um eine interne Kalkulation der
Bit-Zähleinheit auszuführen, und der Rest der oberen Bits existiert als
Überlaufbits durch das Bit-Weise ODER (englisch bitwise ORing).
Die Bit-Zählung wird für eine 50% Komprimierung beispielhaft beschrie
ben.
Als erstes addiert die Universale-Bitzähleinheit 820 mit den individuellen
Einheiten parallel den unären Teil (q0_cN ~ q7_cN) zu der eingegebenen
Konstanten (const_offset). Die eingegebenen Daten (bc1 ~ bc7,
const_offset) und die Ergebnisse (res0, res1, res2, res3, res4, res5, res6,
res7) weisen eine 4-Bit'-Datenbreite auf und jedes obere Bit außer den
unteren 4 Bits der Daten (bc1 ~ bc7, const_offset) und (res0, res1, res3,
res4, res5, res6, res7) werden Bit-Weise mit oder verknüpft und die Bit
weise mit oder verknüpften Ergebnisse werden logisch aufsummiert und
dann werden die schließlich entstehenden Überlauf-Bits erhalten. Wenn
die übergelaufenen Bits oberhalb "1" liegen, bedeutet das nämlich, dass
der Bit-Zähler höher oder gleich 7 ist, so dass die aktuellen quantisierten
Werte für das 32-Bit-Segment überlaufen.
Die Bit-Zähleinheit 820 berechnet auch die Anzahl der akkumulierten Ver
schiebungen, die zum Verpacken der GR-Codes notwendig sind. Die An
zahl der akkumulierten Verschiebungen der aktuellen Koeffizienten wird
aus der Summe der totalen Längen der vorhergehenden GR-Codes und
der Summe der Länge der unären Teile der aktuellen Koeffizienten be
rechnet. Um die Hardware-Mittel zu reduzieren, werden die resultierenden
Interimswerte, die in der Bit-Zähleinheit 820 verwendet werden, und die
resultierenden Interimswerte für die Berechnung der Anzahl der akkumu
lierten Verschiebungen gemeinsam genutzt (res0, res2, res4), und es wird
ein Weg der parallelen Addition verwendet. Die Quantität der akkumulier
ten Verschiebungen wird durch Aufsummieren der Länge der GR-Codes
eines vorhergehenden Koeffizienten und der Länge eines unären Teils
eines aktuellen Koeffizienten berechnet.
Fig. 10 ist ein Diagramm, welches die Kodiereinheit 450 gemäß der vorlie
genden Erfindung darstellt. Es werden Funktionen für die GR-Codierung
und das Verpacken der quantisierten Daten ausgeführt.
Gemäß Fig. 10 wird das Komma eingefügt und es werden dann die resul
tierenden Werte in eine Trommelverschiebeeinheit 1020 eingegeben,
wenn der binäre Teil gr_input1 bis gr_input5 in eine Komma-Einfügeeinheit
1010 eingegeben wurde. Da die Ergebnisse um die Länge
(sh_11 ~ sh_17) nach rechts verschoben wurden, werden die ausgerich
teten Ergebnisse (align1 ~ align7) zum Verpacken erhalten. Die GR-
Codes, welche AC-Wert sind, werden verpackt, indem für 7 Ergebnisse
(align1 ~ align7) ein Bit-weises ODER in einer Bit-weisen ODER-Einheit
1030 implementiert wird. Um die obige Prozedur in der Hardware leicht
ausführen zu können, werden die Ergebnisse in einer Bit-Umkehr-Einheit
1040 Bit-mäßig umgekehrt, und es wird dann schließlich in einer
32-Bit-Segment-Erzeugungseinheit 1050 durch Verwendung des Quantisie
rungswertes (q_value) und des DC-Wertes (kmht_out0) in einer
32-Bit-Segmenterzeugungseinheit 1050 ein 32-Bit-Komprimierungssegment er
halten.
Da in den 6. und 7. Koeffizienten kein binärer Teil enthalten ist, werden
nur Kommas in der Komma-Einfügeeinheit 1010 ohne jegliche Eingabe
eingefügt. Wenn die verpackten AC-Werte, der Quantisierungswert
(q_value) und der DC-Wert (kmht_out0) in das 32-Bit-Segment verpackt
sind, wird die Bit-Umkehrung zum Reduzieren der Multiplexer-Schaltung
benötigt. Der Grund für die Bit-Umkehr liegt darin, dass die Bits gültiger
Quantisierungswerte (q_value) entsprechend dem Komprimierungsmodus
verändert werden.
Wenn die Rechtsverschiebung implementiert wird, wird "0" eingegeben.
Die "0" repräsentiert einen unären Teil eines aktuellen Koeffizienten und
macht es möglich, dass jeder Code natürlich verbunden ist, wenn das Bit
weise ODER implementiert ist. Die Verschiebungslänge für jeden Koeffi
zienten hat eine Begrenzung für den minimalen Verschiebungswert und
den maximalen Verschiebungswert gemäß einer Existenz des k-Wertes
und des Komma-Bits. Demnach weist der Trommelverschieber (BS) 1020
in der Fig. 10 im Gegensatz zu einem bekannten Trommelverschieber
eine einfache Struktur auf.
Fig. 11 ist ein Blockdiagramm, welches die Dekomprimierungs-Hardware
in einem Videobild-Dekomprimierungsalgorithmus gemäß der vorliegen
den Erfindung darstellt. Der Dekomprimierungsalgorithmus, welcher durch
das inverse Abarbeiten des Komprimierungsalgorithmus ausgeführt wird,
wird ausgeführt, indem eine Golomb-Rice (GR) Dekodierung, ein inverses
Rice Mapping, eine inverse Quantisierung und eine inverse Frequenz
transformation durchgeführt werden. Es wird nun der Betrieb jedes Ele
mentes in der Dekomprimierungshardware beschrieben.
Eine Dekomprimierungs-Eingangskontrolleinheit 1110 empfängt Daten,
die dekomprimiert werden und überträgt die Daten an eine Dekodierein
heit 1120. Die Dekodiereinheit 1120 entpackt die Daten und führt eine GR-
Dekodierung durch. Die inverse Quantisierungs- und inverse Rice Map
ping Einheit 1130 führt eine inverse Quantisierung und ein inverses Rice
Mapping für die GR-kodierten Daten durch. Eine inverse Frequenz-
Transformationseinheit 1140 erhält die endgültigen dekomprimierten Pixel
(ipix0 ~ 15). Schließlich wählt eine Dekomprimierungsausgangskontrol
leinheit 1150 die gewünschten Pixel aus und gibt sie aus. Die Konfigurati
on der Dekomprimierungseingangskontrolleinheit 1110 und der De
komprimierungsausgangskontrolleinheit 1150 kann gemäß den
Schnittstellenbedingungen modifiziert werden, so dass hier die Blöcke
nicht beschrieben werden.
Zu diesem Zeitpunkt wird ein Signal "cc_reg_vdp" verwendet, um Daten
von dem aktuellen VDEC-Speicher für die Chrominanz zu lesen, und es
wird ein Signal "cc_reg_vdec" verwendet, um die Daten von der aktuellen
VDP für die Chrominanz zu lesen. Die Signale "vdeck_ack und "vdp_ack"
sind Speicheranfragesignale der VDEC und des VDP. Ein Signal
"mrd_ori[63 : 0]" wird verwendet, um die Speicherdaten von dem SDRAM zu
lesen. Die Signale "vdec_rd_valid_3pre" und "vdp_rd_valid_3pre' sind
Signale, die feststellen, ob Daten von dem Speicher eingegeben wurden,
und ein Signal "vdp_frame_read" zeigt an, dass die aktuellen Daten dem
VDP Bildlesevorgang dienen. Ein Signal "is_comp" wird verwendet, um
einen Komprimierungsmodus oder einen normalen Modus zu bestimmen,
und ein Signal "icomp_comp_arb[1 : 0]" ist ein Segment- und Pixelauswahl
signal von dem Arbiter, der während der Adressübersetzung aus den ab
geworfenen Adress-Bits erzeugt wurde. Ein Signal "is_qt" ist ein Kompri
mierungsverhältniskontrollsignal, um zu bestimmen, ob die Komprimierung
50% oder 75% beträgt.
Fig. 12 ist ein Blockdiagramm, welches die Decodiereinheit 1120 in den
Dekomprimierungs-Hardware-Blöcken der Fig. 11 gemäß der vorliegen
den Erfindung darstellt.
Die Dekodiereinheit 1120 wählt einen DC-Wert (ikmht_out0_temp) und
Quantisierungswerte (q_value_temp) aus dem komprimierten Segment
(icomp_seg[31 : 0]) und dekodiert AC-Koeffizienten (gr_dec_tempN), wel
che von dem Rest der verpackten Bits, nämlich 21 Bits im Falle einer 50%
Komprimierung und 20 Bits im Falle einer 75% Komprimierung, GR-
dekodiert werden. Die dekodierten Ergebnisse werden in die inverse
Quantisierungs- und inverse Rice Mapping-Einheit 1130 durch Speichern
in einem Flip-Flop (ikmht_out0, iq_value, gr_decN) übertragen.
Die GR-Codes werden von dem komprimierten Segment getrennt und
dann entpackt. Die entpackten GR-Codes werden dekodiert. Die Längen
der GR-Codes sind variabel, so dass die Längen für jeden GR-Code nicht
bekannt sein können. Daher werden sieben abhängige Schritte benötigt,
um die sieben GR-Codes zu dekodieren, so dass dann, wenn dieser Algo
rithmus auf die Hardware angewendet wird, die minimale Anzahl von sie
ben Zyklen, die Verarbeitungsverzögerungszyklen sind, benötigt werden.
Die vorliegende Erfindung trennt jedoch parallel die sieben GR-Codes
durch Verwendung eines führenden Nullzählers, so dass die Dekodierung
der sieben GR-Codes in einem Zyklus implementiert ist.
Insbesondere wird die Länge eines Bit-String von aufeinanderfolgenden
Nullen durch einen führenden Nullzähler unterschieden, so dass der unäre
Teil der GR-Codes für alle Fälle vorher berechnet wird und dann die GR-
Codes dekodiert werden, wenn ein Multiplexer ausgewählt ist. Da das
Entpacken und das GR-Dekodieren bei einer Hardware-Konfiguration eine
lange Verzögerungszeit benötigt, werden die entpackten und GR-
dekodierten Daten in einem Register (ikmht_out0, iq_value, gr_decN) ge
speichert und dann zu dem nächsten Block übertragen. Eine Führungs
nullzählreiheneinheit 1210 erfasst den Bit-String mit aufeinanderfolgenden
Nullen, welcher in jedem verpackten Bit-String beginnt, so dass die binä
ren Werte für den unären Teil berechnet werden und die Start-Positionen
der AC-Koeffizienten bekannt sind.
Fig. 13 ist ein Diagramm zum Definieren der für die GR-Dekodierung ge
mäß der vorliegenden Erfindung notwendigen Signale.
Ein lz(n) ist eine Bitstring-Länge, in welcher "0" Bits einen verpackten Bit-
String (igr_packed_reverse[20 : 0]) von dem n-ten Bit ab nach rechts fort
setzen, und bs(n) stellt ein Bitstring dar, welches an dem n-ten Bit beginnt.
Das ganz links stehende Bit wird als 0-tes Bit bezeichnet und die Anzahl
der Bits wird nach rechts jeweils um 1 erhöht. Der Grund, warum die Zäh
lung der führenden Null ausgeführt wird, liegt für alle Positionen darin,
dass ein Startpunkt der GR-Codes nicht bekannt ist.
Fig. 14 ist ein Diagramm, welches eine AC-Entpackeinheit 1220 in der
Dekodiereinheit 1120 darstellt.
Der unäre Teil und der binäre Teil der GR-Codes werden unter Verwen
dung der Ergebnisse der führenden Nullzählreiheneinheit 1210 dekodiert.
Nachdem man die Länge von lz(0) kennt, welche der unäre Teil des Erst-
GR-Codes ist, ist durch Betrachtung des Komma-Bits und des binären
Teils die Startposition des zweiten GR-Codes bekannt.
Beispielsweise wird bei der 50% Dekomprimierung der unäre Teil des
zweiten GR-Codes durch Selektieren eines der Werte von lz(3) bis lz(9)
gemäß dem lz(0) Wert erhalten und der dritte GR-Code wird aus den
Werten von lz(6) ist lz(12) durch Hinzufügen des lz(0) Wertes zu dem se
lektierten lz-Wert von dem zweiten Code selektiert. Auf dieselbe Art und
Weise wie oben erwähnt, wird die Dekodierung für den unären Teil der
sieben AC-Koeffizienten ausgeführt.
Der unäre Teil der dekodierten AC-Koeffizienten wird mit dem binären Teil
zusammengefügt. Da der binäre Teil der GR-Codes keinerlei Veränderun
gen benötigt, ist es ausreichend, den binären Teil des Bit-Strings auszu
wählen. Das bedeutet, dass der binäre Teil des ersten GR-Codes aus den
Werten von bs(1) bis bs(7) ausgewählt wird, außerdem, Bit-gemäß dem lz(0)
des unären Teils. Die GR-Dekodierung benötigt zwei Schaltungen, da
das Auswählen von Regionen eines Multiplexers sich untereinander un
terscheidet, gemäß den Komprimierungsmoden, wie etwa 50%- oder
75%-Komprimierung. Durch eine saubere Kodierung kann jedoch die
Hardware von beiden verwendet werden.
Fig. 15 ist ein Diagramm, welches die inverse Quantisierungs- und inverse
Rice Mapping Einheit 1130 in der Fig. 11 gemäß der vorliegenden Erfin
dung darstellt. Die inverse Quantisierung und das inverse Rice Mapping
werden für die GR-dekodierten AC-Koeffizienten ausgeführt.
Das inverse Rice Mapping dient dazu, ursprünglich positive oder negative
AC-Koeffizienten zu erhalten. Wenn das inverse Rice Mapping und die
inverse Quantisierung ausgeführt werden, müssen die umgewandelten
ursprünglichen positiven oder negativen AC-Koeffizienten in positive AC-
Koeffizienten umgewandelt werden, wenn die AC-Koeffizienten invers
quantisiert sind. Hier wird das folgende Verfahren verwendet, um die Pro
zedur der Vorzeichenumkehr wegzulassen. Insbesondere erhält man mit
dem inversen Rice Mapping nur absolute Werte (iabsN) der AC Koeffizien
ten, wobei anschließend die inverse Quantisierung für die Ergebnisse
durchgeführt wird. Schließlich werden die inversen Quantisierungsergeb
nisse in negative bzw. positive Werte umgewandelt.
Bei dem Rice Mapping wird "1" in dem AC-Koeffizienten abgezogen,
nachdem der doppelte Wert für den absoluten Wert des negativen AC Ko
effizienten erzeugt wurde, wenn der AC-Koeffizient ein negatives Vorzei
chen aufweist. Daher werden in dem Dekodierzustand die GR-dekodierten
AC-Koeffizienten (gr_decN) durch 2 geteilt und es wird im Falle eines ne
gativen Vorzeichens eine "1" addiert, um den absoluten Wert zu berech
nen. Im Falle eines positiven Vorzeichens werden die GR-dekodierten AC-
Koeffizienten (gr_decN) auf der anderen Seite einfach durch 2 geteilt. Das
letzte signifikante Bit (LSB) bestimmt, ob die GR-dekodierten AC-
Koeffizienten (gr_decN) ein positives oder ein negatives Vorzeichen auf
weisen. Wenn LSB "1" ist, weist der AC-Koeffizient ein negatives Vorzei
chen auf und wenn LSB "0" ist, weist der AC-Koeffizient ein positives Vor
zeichen auf.
Eine inverse Quantisierungseinheit 1520 führt die inverse Quantisierung
für die von der inversen Rice Mapping Einheit 1510 ausgegebenen Werte
(iabsN) durch. Die Quantität, die nach links verschoben werden
muss, wird für jeden AC-Koeffizienten gemäß dem Komprimierungsmodus
(is_qt) und dem inversen Quantisierungswert (iq_value) berechnet. Wenn
die Quantität, die nach links verschoben werden muss, bestimmt ist, wer
den die AC-Koeffizienten bis zur Potenz von "2" nach links verschoben. Zu
diesem Zeitpunkt ist das zur Rechten eingegebene Bit vom Typ 01111. . .,
wobei das erste Bit "0" ist, und der Rest der Bits "1" ist. Mit anderen Wor
ten ist der eingegebene Wert für die niedrigen Bits in der Nähe der Hälfte
des maximal darstellbaren Wertes der Bit-Breite der eingegebenen Bits.
Dies minimiert den Quantisierungsfehler bei inverser Quantisierung. Der
eingegebene Wert wird als Centeroid bezeichnet, da er in der Nähe des
halben Wertes der Bit-Breite liegt.
Wenn die invers quantisierten Werte (iq_absN) von der inversen Quanti
sierungseinheit 1520 ausgegeben werden, eine 2's Komplementumwand
lungseinheit 1530 führt eine 2's Komplementumwandlung durch Verwen
dung der Vorzeicheninformation durch, um die invers quantisierten Werte
(iq_absN) in Werte mit ursprünglichem Vorzeichen umzuwandeln. Die 2's
komplement umgewandelten Werte werden in eine inverse
Frequenztransformationseinheit 1140 eingegeben und dann wird eine
Frequenztransformation durchgeführt. Die Vorzeichen einer
Vorzeichensammeleinheit 1540 bestehen aus LSBs von Signalen
(gr_decN), die von der Dekodiereinheit 1120 ausgegeben wurden.
Schließlich fügt die inverse Quantisierungs- und inverse Rice-Mapping-Einheit
1130 "0111. . ." auf der rechten Seite des inversen Rice-Mapping-Wertes
(iabsN) an und führt eine Linksverschiebung durch Berechnen der
Quantität der inversen Quantisierungsverschiebung (cntN) durch, so dass
die inversen absoluten Quantisierungswerte (iq_absN) berechnet werden.
Fig. 16 ist ein Diagramm, welches die inverse Frequenztransformations
einheit 1140 des Dekomprimierungs-Hardware-Blockdiagramms in Fig. 11
darstellt. Die inverse Frequenztransformationseinheit 1140 implementiert
einen inversen Prozess der Frequenztransformationseinheit 420 in den
Komprimierungs-Hardware-Blockdiagramm.
Eine Gesamtheit von acht Frequenzkoeffizienten, die die DC-Koeffizienten
(ikmht_out0) der Kodiereinheit 1120 und die AC-Koeffizienten (ikmht_out1 ~ ikmht_out7)
der inversen Quantisierungs- und inversen Rice-Mapping-Einheit
1130 sind, werden eingegeben und Pixel (ipix0 ~ ipix15), die den
Raumbereich darstellen, werden erhalten. Insbesondere werden acht Pi
xel von acht Frequenzkoeffizienten im Falle der 50% Dekomprimierung
erhalten. Im Falle der 75% Dekomprimierung vier "0s" werden zusammen
zu vier Frequenzkoeffizienten verbunden und die inverse Transformation
wird ausgeführt, so dass acht Pixel erhalten werden. Dementsprechend
wird eine Gesamtheit von sechzehn Pixeln für die acht Frequenzkoeffi
zienten erhalten.
Im Falle der 75% Dekomprimierung wird eine inverse 2 × 8 Transformation
zu einem Zeitpunkt ausgeführt und die transformierten Werte werden in
eine erste inverse 1 × 8 Transformationseinheit eingegeben und in eine
zweite inverse 1 × 8 Transformationseinheit eingegeben. Zu diesem Zeit
punkt können einige Addierer oder Subtrahierer durch Optimieren der
zweiten 1 × 8 Transformationseinheit entfernt werden, so dass die Ele
mente, die die Hardware bilden, reduziert werden können. In Fig. 16 stel
len durchgezogene Linien Addition dar und gestrichelte Subtraktion. SR
bedeutet eine Bit-Verschiebung nach rechts, d. h. eine "1/2"-Operation.
Hier werden zwei Arten von Addierern in der inversen Frequenztransfor
mation verwendet. Wenn die relativen Bit-Positionen der zwei Eingänge
identisch sind, führt ein erster Addierer (der mit Schrägstrichen gefüllte
Addierer) die gleiche Addition aus wie ein allgemeiner Addierer. Wenn ein
1 Bit Unterschied besteht, wird der größere Wert der Daten nach rechts
verschoben, um dieselbe Anzahl von Bits aufzuweisen. Ein zweiter Addie
rer (der Addierer, der nicht mit Schrägstrichen gefüllt ist) verschiebt den
größeren Wert nach rechts, um die Bit-Position in Übereinstimmung zu
bringen und addiert diese. Da ein Fehler verursacht wird aufgrund des
verlorenen LSB durch eine Rechtsverschiebung, wird eine Rundung aus
geführt, um den Fehler zu reduzieren. Bei der Rundung wird das verloren
gegangene LSB als eine Übertragseingabe zu dem Addierer verarbeitet,
so dass der durchschnittliche Fehler null wird.
Die inversen frequenztransformierten Werte können aufgrund eines Quan
tisierungsfehlers von den Originalpixeln, die von 0 bis 255 reichen, abwei
chen. Wenn ein Sättigungsprozess mit den inversen frequenztransformier
ten Werten ausgeführt wird, können die endgültigen Pixel (ipix0 ~ ipix15)
erhalten werden.
Da die vorliegende Erfindung den Quantisierungs- und den Rice-Mapping-Prozess
integriert, können die Anzahl der Geräteteile, die für die Hard
warekonfiguration notwendig sind, reduziert werden, und es können Ver
packungs- und Entpackungsprozesse schneller ausgeführt werden, so
dass die Geschwindigkeit, die für die Komprimierung und die Dekompri
mierung von Videobildern notwendig ist, erhöht werden kann.
Wenn die vorliegende Erfindung auf eine reale Hardware-Konfiguration
angewandt wird, können niedrige Kosten für die Hardware-Konfiguration
realisiert werden, und es kann der notwendige Speicher für ein Bildverar
beitungssystem um 1/2 im Falle der 50% Komprimierung oder um 1/4 im
Falle der 75% Komprimierung reduziert werden, so dass die Systemkos
ten reduziert werden können, da die Verarbeitung unter Verwendung von
wenig Raum schnell ausgeführt wird.
Da die Verarbeitungsverzögerungszeit in den Komprimierungs- und De
komprimierungsprozeduren durch die schnelle Hardware-Konfiguration
reduziert wird, kann die vorliegende Erfindung bei nur geringer Modifikati
on mit herkömmlicher Videoverarbeitungs-Hardware verwendet werden.
Während die vorliegende Erfindung mit Bezug auf bestimmte Ausfüh
rungsformen beschrieben wurde, ist es dem Fachmann klar, dass viele
Veränderungen und Modifikationen vorgenommen werden können, ohne
den Geist und den Schutzbereich der Erfindung, wie er in den folgenden
Ansprüchen definiert ist, zu verlassen.
Claims (19)
1. System zum Ausführen einer Komprimierung eines Videobildes, auf
weisend:
Eingangskontrollmittel zum Empfangen und Ausrichten von zu komp rimierenden Daten;
Frequenztransformationsmittel zum Ausführen eindimensionaler und/oder zweidimensionaler Frequenztransformationen der von den Eingangskontrollmitteln empfangenen Daten;
Quantisierungs- und Rice-Mapping-Mittel zum Ausführen einer Quan tisierung und von Rice Mapping mit den transformierten Daten, die von den Frequenztransformationsmitteln ausgegeben wurden;
Bit-Zähl-Kombinationsmittel zum Berechnen einer Bit-Zählung für die quantisierten und mit Rice Mapping behandelten Daten und zum Auswählen eines quantisierten Wertes unter den quantisierten von den Quantisierungs- und Rice-Mapping-Mitteln ausgegebenen Werte gemäß Ergebnissen der Bit-Zählung;
Kodiermittel zum Ausführen einer Golomb-Rice (GR) Kodierung für die quantisierten und mit Rice Mapping behandelten Daten und zum Verpacken der GR-kodierten Werte, eines DC-Wertes und des Quan tisierungswertes in ein Komprimierungssegment; und
Ausgangskontrollmittel zum Ausgeben der verpackten Werte.
Eingangskontrollmittel zum Empfangen und Ausrichten von zu komp rimierenden Daten;
Frequenztransformationsmittel zum Ausführen eindimensionaler und/oder zweidimensionaler Frequenztransformationen der von den Eingangskontrollmitteln empfangenen Daten;
Quantisierungs- und Rice-Mapping-Mittel zum Ausführen einer Quan tisierung und von Rice Mapping mit den transformierten Daten, die von den Frequenztransformationsmitteln ausgegeben wurden;
Bit-Zähl-Kombinationsmittel zum Berechnen einer Bit-Zählung für die quantisierten und mit Rice Mapping behandelten Daten und zum Auswählen eines quantisierten Wertes unter den quantisierten von den Quantisierungs- und Rice-Mapping-Mitteln ausgegebenen Werte gemäß Ergebnissen der Bit-Zählung;
Kodiermittel zum Ausführen einer Golomb-Rice (GR) Kodierung für die quantisierten und mit Rice Mapping behandelten Daten und zum Verpacken der GR-kodierten Werte, eines DC-Wertes und des Quan tisierungswertes in ein Komprimierungssegment; und
Ausgangskontrollmittel zum Ausgeben der verpackten Werte.
2. System nach Anspruch 1,
wobei die Frequenztransformationsmittel eine modifizierte
Hadamard-Transformation (KMHT) umfassen.
3. System nach Anspruch 2,
wobei die Frequenztransformationsmittel aufweisen:
eine Vielzahl von eindimensionalen Frequenztransformationseinhei ten und/oder zweidimensionalen Frequenztransformationseinheiten zum parallelen Ausführen von Addition und Subtraktion mit den Pi xeldaten;
eine Komprimierungsauswahleinheit zum Bestimmen eines Kompri mierungsverhältnisses in Antwort auf ein Komprimierungsverhältnis kontrollsignal;
eine Frequenztransformationsausgabeeinheit zum Ausgeben der fre quenztransformierten Daten.
eine Vielzahl von eindimensionalen Frequenztransformationseinhei ten und/oder zweidimensionalen Frequenztransformationseinheiten zum parallelen Ausführen von Addition und Subtraktion mit den Pi xeldaten;
eine Komprimierungsauswahleinheit zum Bestimmen eines Kompri mierungsverhältnisses in Antwort auf ein Komprimierungsverhältnis kontrollsignal;
eine Frequenztransformationsausgabeeinheit zum Ausgeben der fre quenztransformierten Daten.
4. System nach Anspruch 3,
wobei die von der Frequenztransformationsausgabeeinheit ausgege
benen Daten Koeffizienten für eine Vielzahl von AC-Werten und ei
nen DC-Wert einschließen.
5. System nach Anspruch 4,
wobei die Quantisierung und das Rice Mapping nur für die AC-
Koeffizienten in den Quantisierungs- und Rice-Mapping-Mitteln aus
geführt werden.
6. System nach Anspruch 1,
wobei die Quantisierungs- und Rice-Mapping-Einheit aufweist:
eine Absolutwerterzeugungseinheit zum Ausgeben von Absolutwer ten für die frequenztransformierten Daten;
eine Quantisierungs- und Rice-Mapping-Reiheneinheit zum Ausfüh ren der Quantisierung und des Rice Mapping für die von der Absolut werterzeugungseinheit ausgegebenen Daten;
eine Binär- und Unär-Teilerzeugungseinheit zum Erzeugen eines Bi när-Teil und eines Unär-Teils der quantisierten und mit Rice Mapping behandelten Daten; und
eine Binär-Teilauswahleinheit zum Auswählen des Binärteils von der Binär- und Unär-Teilerzeugungseinheit.
eine Absolutwerterzeugungseinheit zum Ausgeben von Absolutwer ten für die frequenztransformierten Daten;
eine Quantisierungs- und Rice-Mapping-Reiheneinheit zum Ausfüh ren der Quantisierung und des Rice Mapping für die von der Absolut werterzeugungseinheit ausgegebenen Daten;
eine Binär- und Unär-Teilerzeugungseinheit zum Erzeugen eines Bi när-Teil und eines Unär-Teils der quantisierten und mit Rice Mapping behandelten Daten; und
eine Binär-Teilauswahleinheit zum Auswählen des Binärteils von der Binär- und Unär-Teilerzeugungseinheit.
7. System nach Anspruch 6,
wobei in den Quantisierungs- und Rice-Mapping-Mitteln die Quanti
sierung und das Rice Mapping durch Anpassen der Quantität einer
Verschiebung im selben Bereich durchgeführt werden.
8. System nach Anspruch 7,
wobei die Bit-Zählkombinationsmittel den unären Teil der quantisier
ten und mit Rice Mapping behandelten Daten von der Binär- und
Unär-Teilerzeugungseinheit empfangen und die Größe der Verschie
bung jedes Codes für die GR-Kodierung entsprechend dem unären
Teil ausgeben.
9. System nach Anspruch 8,
wobei die Kodiermittel aufweisen:
eine Komma-Einfügeeinheit zum Einfügen eines Kommas in die Da ten des binären Teils;
eine Trommelschiebeeinheit zum Ausrichten der mit dem Komma versehenen Daten durch Ausführen einer bis zu der Menge der Ver schiebung reichenden Verschiebung; und
eine Bit-Weise ODER-Einheit zum Bit-weisen Durchführen einer ODER-Verknüpfung mit den ausgerichteten Daten, um die GR-Codes der AC-Werte zu verpacken.
eine Komma-Einfügeeinheit zum Einfügen eines Kommas in die Da ten des binären Teils;
eine Trommelschiebeeinheit zum Ausrichten der mit dem Komma versehenen Daten durch Ausführen einer bis zu der Menge der Ver schiebung reichenden Verschiebung; und
eine Bit-Weise ODER-Einheit zum Bit-weisen Durchführen einer ODER-Verknüpfung mit den ausgerichteten Daten, um die GR-Codes der AC-Werte zu verpacken.
10. System zum Ausführen einer Dekomprimierung eines Videobildes,
aufweisend:
Eingangskontrollmittel zum Empfangen von zu dekomprimierenden Daten;
Dekodiermittel zum Entpacken der Daten und zum Ausführen einer Golomb-Rice (GR) Dekodierung für die entpackten Daten;
inverse Rice Mapping- und inverse Quantisierungsmittel zum Ausfüh ren von inversem Rice Mapping für GR-dekodierten Daten und zum Ausführen inverser Quantisierung für die invers mit Rice Mapping be handelten Daten;
inverse Frequenztransformationsmittel zum Ausführen inverser ein dimensionaler und/oder zweidimensionaler Frequenztransformation für die invers mit Rice Mapping behandelten Daten und die invers quantisierten Daten; und
Dekomprimierungsausgabekontrollmittel zum Ausgeben der ge wünschten Pixel von den schließlich durch die inverse Frequenz transformation erhaltenen dekomprimierten Pixeln.
Eingangskontrollmittel zum Empfangen von zu dekomprimierenden Daten;
Dekodiermittel zum Entpacken der Daten und zum Ausführen einer Golomb-Rice (GR) Dekodierung für die entpackten Daten;
inverse Rice Mapping- und inverse Quantisierungsmittel zum Ausfüh ren von inversem Rice Mapping für GR-dekodierten Daten und zum Ausführen inverser Quantisierung für die invers mit Rice Mapping be handelten Daten;
inverse Frequenztransformationsmittel zum Ausführen inverser ein dimensionaler und/oder zweidimensionaler Frequenztransformation für die invers mit Rice Mapping behandelten Daten und die invers quantisierten Daten; und
Dekomprimierungsausgabekontrollmittel zum Ausgeben der ge wünschten Pixel von den schließlich durch die inverse Frequenz transformation erhaltenen dekomprimierten Pixeln.
11. System nach Anspruch 10,
wobei die Dekodiermittel aufweisen:
eine Auswahleinheit zum Auswählen eines komprimierten Segmentes und zum Auswählen eines DC-Wertes und eines Quantisierungswer tes von dem komprimierten Segment;
eine Führungsnullzählreiheneinheit zum Separieren der GR-Codes auf parallele Art und Weise durch Verwendung eines Führungsnull zählers;
eine Entpackeinheit zum Entpacken der verpackten GR-Codes; und
eine Dekodiereinheit zum Dekodieren der entpackten Daten.
eine Auswahleinheit zum Auswählen eines komprimierten Segmentes und zum Auswählen eines DC-Wertes und eines Quantisierungswer tes von dem komprimierten Segment;
eine Führungsnullzählreiheneinheit zum Separieren der GR-Codes auf parallele Art und Weise durch Verwendung eines Führungsnull zählers;
eine Entpackeinheit zum Entpacken der verpackten GR-Codes; und
eine Dekodiereinheit zum Dekodieren der entpackten Daten.
12. System nach Anspruch 10,
wobei die inversen Rice Mapping und inversen Quantisierungsmittel
aufweisen:
eine Vorzeichensammeleinheit zum Sammeln der Vorzeichen GR- dekodierten Daten;
eine inverse Rice-Mapping-Einheit zum Ausführen des inversen Rice Mappings für absolute Werte der GR-dekodierten Daten;
eine inverse Quantisierungseinheit zum Ausführen der Quantisierung der invers mit Rice Mapping behandelten Daten; und
eine 2's Komplementumwandlungseinheit zum Umwandeln der Vor zeichen der invers quantisierten Daten in die ursprünglichen Vorzei chen.
eine Vorzeichensammeleinheit zum Sammeln der Vorzeichen GR- dekodierten Daten;
eine inverse Rice-Mapping-Einheit zum Ausführen des inversen Rice Mappings für absolute Werte der GR-dekodierten Daten;
eine inverse Quantisierungseinheit zum Ausführen der Quantisierung der invers mit Rice Mapping behandelten Daten; und
eine 2's Komplementumwandlungseinheit zum Umwandeln der Vor zeichen der invers quantisierten Daten in die ursprünglichen Vorzei chen.
13. System nach Anspruch 10,
wobei die inversen Frequenztransformationsmittel eine Vielzahl von
inversen eindimensionalen Frequenztransformationseinheiten und in
versen zweidimensionalen Frequenztransformationseinheiten zum
parallelen Ausführen von Addition und Subtraktion mit den Pixeldaten
aufweisen.
14. System zum Ausführen von Komprimierung und Dekomprimierung
eines Videobildes, aufweisend:
ein Komprimierungssystem, aufweisend:
Eingangskontrollmittel zum Empfangen und Ausrichten von zu komp rimierenden Daten;
Frequenztransformationsmittel zum Ausführen von eindimensionalen und/oder zweidimensionalen Frequenztransformationen der von den Eingangskontrollmitteln empfangenen Daten;
Quantisierungs- und Rice-Mapping-Mittel zum Ausführen von Quanti sierung und von Rice Mapping mit den transformierten Daten, die von den Frequenztransformationsmitteln ausgegeben wurden;
Bit-Zählkombinationsmittel zum Berechnen einer Bit-Zählung für die quantisierten und mit Rice Mapping behandelten Daten und zum Auswählen eines Quantisierungswertes unter den von den Quantisie rungs- und Rice-Mapping-Mitteln gemäß den Ergebnissen der Bit- Zählung ausgegebenen Quantisierungswerten;
Kodiermittel zum Ausführen einer Golomb-Rice (GR) Kodierung für die quantisierten und mit Rice Mapping behandelten Daten und zum Verpacken der GR-kodierten Werte, eines DC-Wertes und des quan tisierten Wertes in ein Komprimierungssegment; und
Ausgabekontrollmittel zum Ausgeben der verpackten Werte, ein Dekomprimierungssystem, aufweisend:
Eingangskontrollmittel zum Empfangen von zu dekomprimierenden Daten;
Dekodiermittel zum Entpacken der Daten und zum Ausführen einer Golomb-Rice (GR) Dekodierung für die entpackten Daten;
inverse Rice Mapping- und inverse Quantisierungsmittel zum Ausfüh ren von inversem Rice Mapping für GR-dekodierten Daten und zum Ausführen inverser Quantisierung für die invers mit Rice Mapping be handelten Daten;
inverse Frequenztransformationsmittel zum Ausführen inverser ein dimensionaler und/oder zweidimensionaler Frequenztransformation für die invers mit Rice Mapping behandelten Daten und die invers quantisierten Daten; und
Dekomprimierungsausgabekontrollmittel zum Ausgeben der ge wünschten Pixel von den schließlich durch die inverse Frequenztransformation erhaltenen dekomprimierten Pixeln.
ein Komprimierungssystem, aufweisend:
Eingangskontrollmittel zum Empfangen und Ausrichten von zu komp rimierenden Daten;
Frequenztransformationsmittel zum Ausführen von eindimensionalen und/oder zweidimensionalen Frequenztransformationen der von den Eingangskontrollmitteln empfangenen Daten;
Quantisierungs- und Rice-Mapping-Mittel zum Ausführen von Quanti sierung und von Rice Mapping mit den transformierten Daten, die von den Frequenztransformationsmitteln ausgegeben wurden;
Bit-Zählkombinationsmittel zum Berechnen einer Bit-Zählung für die quantisierten und mit Rice Mapping behandelten Daten und zum Auswählen eines Quantisierungswertes unter den von den Quantisie rungs- und Rice-Mapping-Mitteln gemäß den Ergebnissen der Bit- Zählung ausgegebenen Quantisierungswerten;
Kodiermittel zum Ausführen einer Golomb-Rice (GR) Kodierung für die quantisierten und mit Rice Mapping behandelten Daten und zum Verpacken der GR-kodierten Werte, eines DC-Wertes und des quan tisierten Wertes in ein Komprimierungssegment; und
Ausgabekontrollmittel zum Ausgeben der verpackten Werte, ein Dekomprimierungssystem, aufweisend:
Eingangskontrollmittel zum Empfangen von zu dekomprimierenden Daten;
Dekodiermittel zum Entpacken der Daten und zum Ausführen einer Golomb-Rice (GR) Dekodierung für die entpackten Daten;
inverse Rice Mapping- und inverse Quantisierungsmittel zum Ausfüh ren von inversem Rice Mapping für GR-dekodierten Daten und zum Ausführen inverser Quantisierung für die invers mit Rice Mapping be handelten Daten;
inverse Frequenztransformationsmittel zum Ausführen inverser ein dimensionaler und/oder zweidimensionaler Frequenztransformation für die invers mit Rice Mapping behandelten Daten und die invers quantisierten Daten; und
Dekomprimierungsausgabekontrollmittel zum Ausgeben der ge wünschten Pixel von den schließlich durch die inverse Frequenztransformation erhaltenen dekomprimierten Pixeln.
15. System nach Anspruch 14,
wobei die Frequenztransformationsmittel aufweisen:
eine Vielzahl von eindimensionalen Frequenztransformationseinhei ten und zweidimensionalen Frequenztransformationseinheiten, die parallel für die Pixeldaten Addition und Subtraktion ausführen;
eine Komprimierungsauswahleinheit zum Bestimmen des Komprimie rungsverhältnisses in Antwort auf ein Komprimierungsverhältniskon trollsignal; und
eine Frequenztransformationsausgabeeinheit zum Ausgeben der fre quenztransformierten Daten.
eine Vielzahl von eindimensionalen Frequenztransformationseinhei ten und zweidimensionalen Frequenztransformationseinheiten, die parallel für die Pixeldaten Addition und Subtraktion ausführen;
eine Komprimierungsauswahleinheit zum Bestimmen des Komprimie rungsverhältnisses in Antwort auf ein Komprimierungsverhältniskon trollsignal; und
eine Frequenztransformationsausgabeeinheit zum Ausgeben der fre quenztransformierten Daten.
16. System nach Anspruch 14,
wobei in den Quantisierungs- und Rice-Mapping-Mitteln die Quanti
sierung und das Rice Mapping durch Anpassen der Quantität der
Verschiebung im selben Bereich durchgeführt werden.
17. System nach Anspruch 14,
wobei die Kodiermittel aufweisen:
eine Komma-Einfügeeinheit zum Einfügen eines Kommas in die für die GR-Kodierung eingegebenen Daten;
eine Trommelverschiebeeinheit zum Ausrichten der mit einem Kom ma versehenen Daten; und
eine Bit-Weise ODER-Einheit zum Bit-weisen ODER-Verknüpfen der ausgerichteten Daten.
eine Komma-Einfügeeinheit zum Einfügen eines Kommas in die für die GR-Kodierung eingegebenen Daten;
eine Trommelverschiebeeinheit zum Ausrichten der mit einem Kom ma versehenen Daten; und
eine Bit-Weise ODER-Einheit zum Bit-weisen ODER-Verknüpfen der ausgerichteten Daten.
18. System nach Anspruch 14,
wobei die inversen Frequenztransformationsmittel eine Vielzahl von
inversen eindimensionalen Frequenztransformationseinheiten und in
versen zweidimensionalen Frequenztransformationseinheiten aufwei
sen, die für die Pixeldaten die Addition und Subtraktion parallel aus
führen.
19. System nach Anspruch 14,
wobei die Dekodiermittel die GR-Codes parallel unter Verwendung
eines führenden Nullzählers separieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0024613A KR100399932B1 (ko) | 2001-05-07 | 2001-05-07 | 메모리의 양을 감소시키기 위한 비디오 프레임의압축/역압축 하드웨어 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10215350A1 true DE10215350A1 (de) | 2002-11-14 |
Family
ID=19709128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2002115350 Withdrawn DE10215350A1 (de) | 2001-05-07 | 2002-04-08 | Videobild-Komprimierungs/Dekomprimierungs-Hard ware System |
Country Status (4)
Country | Link |
---|---|
US (1) | US6798833B2 (de) |
JP (1) | JP2003023635A (de) |
KR (1) | KR100399932B1 (de) |
DE (1) | DE10215350A1 (de) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990150B2 (en) * | 2002-05-14 | 2006-01-24 | Enseo, Inc. | System and method for using a High-Definition MPEG decoder to extract multiple Standard Definition frames from a High-Definition frame |
JP4375305B2 (ja) * | 2004-10-26 | 2009-12-02 | ソニー株式会社 | 情報処理装置および情報処理方法、記録媒体、並びに、プログラム |
US20060256854A1 (en) * | 2005-05-16 | 2006-11-16 | Hong Jiang | Parallel execution of media encoding using multi-threaded single instruction multiple data processing |
US20070110151A1 (en) * | 2005-11-14 | 2007-05-17 | Ess Technology, Inc. | System and method for video frame buffer compression |
TW200727197A (en) * | 2006-01-13 | 2007-07-16 | Sunplus Technology Co Ltd | Real-time compressing and decompressing graphic system |
US7555514B2 (en) * | 2006-02-13 | 2009-06-30 | Atmel Corportation | Packed add-subtract operation in a microprocessor |
US9807431B2 (en) * | 2006-10-20 | 2017-10-31 | Nokia Technologies Oy | Generic indication of adaptation paths for scalable multimedia |
JP4769305B2 (ja) * | 2006-11-14 | 2011-09-07 | 日本電信電話株式会社 | 画像信号符号化方法及び復号方法、情報源符号化及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体 |
US8406296B2 (en) | 2008-04-07 | 2013-03-26 | Qualcomm Incorporated | Video refresh adaptation algorithms responsive to error feedback |
US8005152B2 (en) | 2008-05-21 | 2011-08-23 | Samplify Systems, Inc. | Compression of baseband signals in base transceiver systems |
TWI387314B (zh) * | 2009-03-10 | 2013-02-21 | Univ Nat Central | Image processing apparatus and method thereof |
TWI385597B (zh) * | 2009-11-03 | 2013-02-11 | Teco Elec & Machinery Co Ltd | 影像處理方法以及影像處理系統 |
TWI454150B (zh) * | 2011-05-06 | 2014-09-21 | Altek Corp | 影像檔案的處理方法 |
US9445093B2 (en) * | 2011-06-29 | 2016-09-13 | Qualcomm Incorporated | Multiple zone scanning order for video coding |
TWI493977B (zh) * | 2011-09-20 | 2015-07-21 | Hannstar Display Corp | 影像搜尋模組及其方法 |
TWI478587B (zh) * | 2011-09-30 | 2015-03-21 | Nat Univ Chung Cheng | A Fast Method for Predicting Modular Multimedia Video Coding |
KR102007050B1 (ko) * | 2011-11-03 | 2019-10-01 | 선 페이턴트 트러스트 | 펄스 코드 변조 모드에서 부호화된 블록의 필터링 |
EP2774360B1 (de) | 2011-11-04 | 2017-08-02 | Huawei Technologies Co., Ltd. | Intraprädiktion mit differentieller pulscodemodulation für hocheffiziente videocodierung |
JP2013102297A (ja) * | 2011-11-07 | 2013-05-23 | Canon Inc | 画像符号化方法、画像符号化装置及びプログラム、画像復号方法、画像復号装置及びプログラム |
JP5871628B2 (ja) | 2011-11-07 | 2016-03-01 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
TWI482501B (zh) * | 2012-01-05 | 2015-04-21 | Ambarella Taiwan Ltd | 可調性視訊多層編碼控制快速決策模式演算法 |
US9749656B2 (en) * | 2012-04-11 | 2017-08-29 | Dolby International Ab | Golomb-rice/EG coding technique for CABAC in HEVC |
PL3833022T3 (pl) * | 2012-04-12 | 2022-05-30 | Jvckenwood Corporation | Konstrukcja listy kandydatów do scalania |
US9369149B1 (en) | 2012-05-03 | 2016-06-14 | Integrated Device Technology, Inc. | Method and apparatus for efficient baseband unit processing in a communication system |
CN103428486B (zh) * | 2012-05-24 | 2017-06-09 | 富士通株式会社 | 图像压缩方法和装置 |
CN103581674A (zh) * | 2012-08-07 | 2014-02-12 | 上海算芯微电子有限公司 | 视频数据的压缩/解压缩方法及*** |
US9372692B2 (en) * | 2012-12-29 | 2016-06-21 | Intel Corporation | Methods, apparatus, instructions, and logic to provide permute controls with leading zero count functionality |
US9203933B1 (en) * | 2013-08-28 | 2015-12-01 | Integrated Device Technology, Inc. | Method and apparatus for efficient data compression in a communication system |
US9553954B1 (en) | 2013-10-01 | 2017-01-24 | Integrated Device Technology, Inc. | Method and apparatus utilizing packet segment compression parameters for compression in a communication system |
US9485688B1 (en) | 2013-10-09 | 2016-11-01 | Integrated Device Technology, Inc. | Method and apparatus for controlling error and identifying bursts in a data compression system |
US9398489B1 (en) | 2013-10-09 | 2016-07-19 | Integrated Device Technology | Method and apparatus for context based data compression in a communication system |
US9313300B2 (en) | 2013-11-07 | 2016-04-12 | Integrated Device Technology, Inc. | Methods and apparatuses for a unified compression framework of baseband signals |
CN103686173B (zh) * | 2014-01-09 | 2017-03-01 | 英特尔公司 | 变换与反变换电路 |
KR102099626B1 (ko) | 2014-08-20 | 2020-04-10 | 한국전자통신연구원 | 부호화 장치 및 방법 |
US11436010B2 (en) | 2017-06-30 | 2022-09-06 | Intel Corporation | Method and apparatus for vectorizing indirect update loops |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0147758B1 (ko) | 1995-09-25 | 1998-12-01 | 이준 | Mpeg-2 오디오 복호화기의 합성 필터 |
US5960116A (en) * | 1995-11-02 | 1999-09-28 | Canon Kabushiki Kaisha | Image processing apparatus and method for performing prediction data encoding |
EP0778709B1 (de) | 1995-12-04 | 2001-05-23 | STMicroelectronics S.r.l. | MPEG-2 Dekodierung mit reduziertem RAM Bedarf durch ADPCM Rekomprimierung vor der Speicherung von dekomprimierten MPEG-Daten |
DE69614500T2 (de) | 1996-02-27 | 2001-11-22 | St Microelectronics Srl | Speicherverminderung für das Grundprofil und die Hauptebene eines MPEG-2-Dekoders |
US6002438A (en) | 1996-10-25 | 1999-12-14 | Texas Instruments Incorporated | Method and apparatus for storing decoded video information |
US5929911A (en) | 1997-10-27 | 1999-07-27 | International Business Machines Corporation | Multiformat reduced memory MPEG-2 compliant decoder |
JP2000115783A (ja) * | 1998-10-06 | 2000-04-21 | Canon Inc | 復号化装置及び方法 |
US6704718B2 (en) * | 2001-06-05 | 2004-03-09 | Microsoft Corporation | System and method for trainable nonlinear prediction of transform coefficients in data compression |
-
2001
- 2001-05-07 KR KR10-2001-0024613A patent/KR100399932B1/ko not_active IP Right Cessation
- 2001-08-27 US US09/938,855 patent/US6798833B2/en not_active Expired - Lifetime
-
2002
- 2002-04-08 DE DE2002115350 patent/DE10215350A1/de not_active Withdrawn
- 2002-05-02 JP JP2002130807A patent/JP2003023635A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20020085217A (ko) | 2002-11-16 |
KR100399932B1 (ko) | 2003-09-29 |
US20020163965A1 (en) | 2002-11-07 |
US6798833B2 (en) | 2004-09-28 |
JP2003023635A (ja) | 2003-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10215350A1 (de) | Videobild-Komprimierungs/Dekomprimierungs-Hard ware System | |
US6347157B2 (en) | System and method for encoding a video sequence using spatial and temporal transforms | |
US5341442A (en) | Method and apparatus for compression data by generating base image data from luminance and chrominance components and detail image data from luminance component | |
JP3792789B2 (ja) | 符号化装置 | |
JP5399416B2 (ja) | 参照フレームの圧縮を伴うビデオ符号化システム | |
US5659362A (en) | VLSI circuit structure for implementing JPEG image compression standard | |
USRE39925E1 (en) | Fast JPEG huffman encoding and decoding | |
EP0836328A2 (de) | Verfahren zur Kodierung eines Videosignals | |
JPH06511361A (ja) | アダプティブ・ブロックサイズイメージ圧縮方法およびシステム | |
US6859561B2 (en) | Faster lossless rotation of JPEG images | |
JPH07262175A (ja) | 関数変換演算装置 | |
US5453788A (en) | Apparatus for converting encoded data into image data, including data preparing circuit, to allow enlargement or reduction of image | |
WO2000033255A1 (en) | Compressing and decompressing images | |
JP2003330911A (ja) | 映像データ処理用の単一命令マルチプルデータ(simd)に基づくアルゴリズム | |
KR100944928B1 (ko) | 버터플라이 프로세서를 이용하여 이산 코사인 변환을인코딩하고 계산하는 장치 및 방법 | |
DE112014000643T5 (de) | Bilddatencodierung für Zugriff nach Raster und nach Makroblock | |
CN1539239A (zh) | 帧间编码的方法和装置 | |
US6938105B2 (en) | Data apparatus and method having DMA circuitry to efficiently transfer multivalued bit-plane data | |
JP2000165861A (ja) | 動画像復号装置 | |
JPS61123280A (ja) | 画像デ−タ圧縮装置 | |
CN100396101C (zh) | 产生并使用辅助图像的图像压缩设备及其方法 | |
JP2003333339A (ja) | 画像符号化装置及び画像符号化方法 | |
Papathanassiadis | Image block partitioning: a compression technique suitable for parallel processing | |
JPH0936749A (ja) | 符号化復号化装置およびこれに用いられる符号化方法 | |
JPH1023261A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8127 | New person/name/address of the applicant |
Owner name: MAGNACHIP SEMICONDUCTOR, LTD., CHEONGJU, KR |
|
8139 | Disposal/non-payment of the annual fee |