-
QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung
KR 10-2011-0005575 , eingereicht am 19. Januar 2011, deren gesamte Offenbarung durch Bezugnahme mit umfasst ist.
-
HINTERGRUND DER ERFINDUNG
-
Gebiet
-
Beispielhafte Ausführungsformen erfinderischer Konzepte betreffen eine Datenkomprimierungstechnologie, wie z. B. Datenkomprimierungsvorrichtungen zum Analysieren von Daten und Bestimmen, ob Daten zu komprimieren sind, basierend auf einem Analyseergebnis, Verfahren zum Betreiben von Datenkomprimierungsvorrichtungen, Verfahren zum Komprimieren von Daten, und/oder Datenverarbeitungsgeräte, welche Datenkomprimierungsvorrichtungen enthalten.
-
Beschreibung des Standes der Technik
-
Datenkomprimierung betrifft eine Technologie zum effizienteren Speichern von Daten auf kleinerem Speicherplatz und tatsächliche Anwendungen dieser Technologie. Eine herkömmliche Datenkomprimierung weist einen Kodierungs- und einen Dekodierungsprozess auf. Während eines Kodierungsprozesses wird die Größe der Daten reduziert. Während eines Decodierungsprozesses werden verschlüsselte Daten in ursprüngliche Daten zurückgesetzt.
-
KURZFASSUNG DER ERFINDUNG
-
Zumindest eine beispielhafte Ausführungsform sieht ein Verfahren zum Betreiben einer Datenkomprimierungsvorrichtung vor. Gemäß zumindest dieser beispielhaften Ausführungsform enthält das Verfahren: Analysieren eines Datenmusters unter Verwendung eines Datenmusteranalysators, während die Daten in einem Eingabepuffer gepuffert werden; Ausgeben eines Analyseergebnisses; und Vorbeileiten oder Komprimieren der gepufferten Daten gemäß dem Analyseergebnis.
-
Bei einem Beispiel enthält das Analysieren des Musters der Daten: Analysieren eines Anzeigebits, das in einer Kopfsequenz der Daten enthalten ist; und, basierend auf dem analysierten Anzeigebit, Anzeigen, ob die Daten zu komprimieren sind.
-
Bei einem weiteren Beispiel kann das Analysieren des Musters der Daten das Zählen einer Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, enthalten. Bei diesem Beispiel kann das Analyseergebnis ein Ergebnis eines Vergleichs zwischen einem Referenzwert und einem Maximum oder einem Minimum der gezählten Häufigkeiten sein.
-
Bei einem weiteren Beispiel kann das Analysieren des Musters der Daten enthalten: Zählen der Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind; Zuweisen eines Passworts zu jedem der Mehrzahl der Zeichen; und Berechnen einer Größe von ermittelten Daten unter Verwendung der Häufigkeit von jedem der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl der Zeichen zugewiesen ist. Das Analyseergebnis kann das Ergebnis aus einem Vergleich zwischen einer Größe der ermittelten Daten und einer Größe der Referenzdaten sein.
-
Bei einem weitern Beispiel kann das Analysieren des Musters der Daten enthalten: Analysieren eines Anzeigebits, das in einer Kopfsequenz der Daten enthalten ist, um zu Bestimmen, ob die Daten zu komprimieren sind; und Zählen der Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, basierend auf einem Analyseergebnis des Anzeigebits. In diesem Beispiel kann das Analyseergebnis ein Ergebnis aus einem Vergleich zwischen einem Referenzwert und einem Maximum oder einem Minimum der gezählten Häufigkeiten sein.
-
Das Vorbeileiten oder das Komprimieren der gepufferten Daten kann gemäß des im Speicher gespeichert Analyseergebnisses das Speichern des Analyseergebnisses in einem Speicher, und das Vorbeileiten der gepufferten Daten oder das Komprimieren der gepufferten Daten unter Verwendung eines Prozessors, enthalten. Die Analyse des Musters der Daten kann abgeschlossen sein bzw. werden, bevor die gepufferten Daten ausgegeben werden.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht eine Datenkomprimierungsvorrichtung vor. Gemäß zumindest dieser beispielhaften Ausführungsform enthält die Datenkomprimierungsvorrichtung: einen Eingabepuffer; einen Datenmusteranalysator, der konfiguriert ist, ein Muster von Daten, die an den Eingabepuffer übertragen werden, zu analysieren und einen Analysecode auszugeben; und einen Datenkomprimierungsmanager, der konfiguriert ist, gemäß des Analysecodes, die gepufferten Daten im Eingabepuffer zu einer nichtflüchtigen Speichervorrichtung zu leiten oder die gepufferten Daten zu komprimieren, um komprimierte Daten zu erzeugen und die komprimierten Daten an die nichtflüchtige Speichervorrichtung zu übertragen.
-
Bei einem Beispiel kann der Datenmusteranalysator ein Anzeigebit, das in einer Kopfsequenz der Daten enthalten ist, anzeigen, um zu bestimmen, ob die Daten zu komprimieren sind, und den Analysecode basierend auf dem Anzeigebit ausgeben. Der Datenmusteranalysator kann eine Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, zählen, und ein Vergleichsergebnis zwischen einem Referenzwert und einem Maximum oder einem Minimum der gezählten Häufigkeiten als den Analysecode ausgeben.
-
In einem weiteren Beispiel kann der Datenmusteranalysator eine Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, zählen, jedem der Mehrzahl der Zeichen ein Passwort zuweisen und ein Vergleichsergebnis zwischen einer Größe von Referenzzeichen und einer Größe von ermittelten Daten als den Analysecode ausgeben. Die ermittelten Daten können unter Verwendung der Häufigkeit von jedem der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl von Zeichen zugewiesen wird, erhalten werden.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann der Datenmusteranalysator enthalten: einen Kopfsequenzanalysator, der konfiguriert ist, ein Steuersignal gemäß einem Anzeigebit, das anzeigt, ob die Daten, die in einer Kopfsequenz der Daten enthalten sind, zu komprimieren sind, auszugeben; und einen Ermittler, der gemäß einem aktivierten Steuersignal aktiviert wird. Der Ermittler ist konfiguriert, die Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, zu zählen, jedem der Mehrzahl der Zeichen ein Passwort zuzuweisen, und ein Vergleichsergebnis zwischen einer Größe von Referenzdaten und einer Größe von ermittelten Daten als Analysecode auszugeben.
-
Gemäß zumindest weiteren beispielhaften Ausführungsformen kann der Datenmusteranalysator einen Musteranalysator enthalten, der konfiguriert ist, die Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, zu zählen, und jedem der Mehrzahl der Zeichen ein Passwort zuzuweisen. Der Datenmusteranalysator kann ferner einen Ermittler enthalten, der konfiguriert ist, eine Häufigkeit von jedem der Zeichen zu empfangen, die von dem Musteranalysator ausgegeben werden, und ein Vergleichsergebnis zwischen einer Größe von Referenzdaten und einer Größe von ermittelten Daten als den Analysecode auszugeben. Die ermittelten Daten können basierend auf der Häufigkeit von jedem der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl der Zeichen zugewiesen ist, erhalten werden.
-
Der Datenkomprimierungsmanager kann enthalten: einen Speicher, der konfiguriert ist, den Analysecode zu speichern; einen Prozessor, der konfiguriert ist, die Pufferdaten zu komprimieren und komprimierte Daten auszugeben; und einen Selektor, der konfiguriert ist, gemäß des im Speicher gespeicherten Analysecodes die gepufferten Daten an die nichtflüchtige Speichervorrichtung vorbeizuleiten oder die gepufferten Daten an den Prozessor zu übertragen.
-
Der Prozessor kann entsprechende Zeichen der gepufferten Daten sequenziell komprimieren und eine Information, die eine Beziehung zwischen den Zeichen anzeigt, ausgeben, ohne dabei duplizierte Zeichen in den gepufferten Daten zu komprimieren.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht ein Datenverarbeitungsgerät vor. Gemäß zumindest dieser beispielhaften Ausführungsform enthält das Datenverarbeitungsgerät: eine nichtflüchtige Speichervorrichtung; und eine Datenkomprimierungsvorrichtung, die konfiguriert ist, vorbeigeleitete oder komprimierte Daten an die nichtflüchtige Speichervorrichtung zu übertragen. Die Datenkomprimierungsvorrichtung enthält: einen Eingabepuffer; einen Datenmusteranalysator, der konfiguriert ist, ein Datenmuster zu analysieren, während die Daten an den Eingabepuffer übertragen werden, und einen Analysecode auszugeben. Das Datenverarbeitungsgerät enthält ferner einen Datenkomprimierungsmanager, der konfiguriert ist, gemäß des Analysecodes, die gepufferten Daten als die umgangenen Daten auszugeben oder die gepufferten Daten zu komprimieren, und die komprimierten Daten auszugeben.
-
Das Datenverarbeitungsgerät kann ein Festkörperlaufwerk (SSD), eine Smart-Card, eine Speicherkarte, ein Smartphone, ein Tablet Personal-Computer (PC), ein persönlicher digitaler Assistent (PDA), eine MP3- oder andere Musikplayervorrichtungen, oder dergleichen sein. Die Datenkomprimierungsvorrichtung kann in einer Speichersteuerung integriert sein, die konfiguriert ist, den nichtflüchtigen Speicher zu steuern.
-
Zumindest eine weitere Ausführungsform sieht ein Verfahren zum Komprimieren von Daten vor, aufweisend: Analysieren der Daten durch einen Datenmusteranalysator, und Bestimmen, ob die Daten zu komprimieren sind; Erzeugen eines Analyseergebnisses, wobei zumindest eines von dem Analysieren und dem Erzeugen durchgeführt wird, während die Daten in einem Eingabepuffer gepuffert werden; und selektives Komprimieren der Daten im Eingabepuffer basierend auf dem Analyseergebnis.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht ein Verfahren zum Betreiben einer Datenkomprimierungsvorrichtung vor, aufweisend: Abgreifen von Daten, die an einen Eingabepuffer übertragen werden; Analysieren eines Musters der abgegriffenen Daten und Ausgeben eines Ergebnisses der Analyse; und Ausgeben von den gepufferten Daten im Eingabepuffer oder den komprimierten Daten gemäß einem Ergebnis der Analyse, wobei die komprimierten Daten durch Komprimieren der gepufferten Daten erzeugt werden.
-
Das Analysieren des Musters der Daten kann abgeschlossen werden, bevor die gepufferten Daten vom Eingabepuffer ausgegeben werden. Wenn die Daten n-Bit-Daten sind, wobei n eine natürliche Zahl ist, können die gepufferten Daten ein Vielfaches der Daten sein.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann das Analysieren der Daten aufweisen: Analysieren eines Anzeigebits, das in einer Kopfsequenz der Daten enthalten ist, wobei das Anzeigebit anzeigt, ob die Daten zu komprimieren sind. Das Analyseergebnis kann basierend auf der Analyse des Anzeigebits erzeugt werden.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann die Analyse der Daten aufweisen: Zählen der Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind; und Vergleichen eines Referenzwerts mit einem Maximum oder einem Minimum der gezählten Häufigkeiten; wobei das Analyseergebnis basierend auf dem Vergleich erzeugt wird.
-
Gemäß zumindest weiteren beispielhaften Ausführungsformen kann die Analyse der Daten aufweisen: Zählen der Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind; Zuweisen eines Passworts zu jedem von einer Mehrzahl von Zeichen; Berechnung eines Ermittlungswerts der Größe der komprimierten Daten basierend auf der Häufigkeit von jedem von der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl von Zeichen zugewiesen ist; und Vergleichen der ermittelten Größe der komprimierten Daten mit einem Referenzwert; wobei das Ergebnis der Analyse basierend auf dem Vergleich erzeugt wird.
-
Gemäß zumindest weiteren beispielhaften Ausführungsformen kann die Analyse der Daten aufweisen: Analysieren eines Anzeigebits, das in einer Kopfsequenz der Daten enthalten ist, wobei das Anzeigebit anzeigt, ob die Daten zu komprimieren sind; Zählen der Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, basierend auf der Analyse des Anzeigebits; und Vergleichen eines Referenzwerts mit einem Maximum oder einem Minimum der gezählten Häufigkeiten; wobei das Analyseergebnis basierend auf dem Vergleich erzeugt wird.
-
Das selektive Komprimieren der gepufferten Daten kann aufweisen: Speichern des Analyseergebnisses in einem Speicher; und selektives Komprimieren der gepufferten Daten unter Verwendung eines Prozessors basierend auf dem Analyseergebnis, das im Speicher gespeichert ist. Das Analysieren der Daten kann abgeschlossen werden, bevor die gepufferten Daten ausgegeben werden.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht eine Datenkomprimierungsvorrichtung vor, aufweisend: einen Datenmusteranalysator, der konfiguriert ist, Daten zu analysieren, die an einen Eingabepuffer übertragen werden, wobei der Datenmusteranalysator ferner konfiguriert ist, einen Analysecode basierend auf der Analyse zu erzeugen; und einen Datenkomprimierungsmanager, der konfiguriert ist, die gepufferten Daten im Eingabepuffer basierend auf dem Analysecode selektiv zu komprimieren.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht ein Datenverarbeitungsgerät vor, aufweisend: eine nichtflüchtige Speichervorrichtung; und eine Datenkomprimierungsvorrichtung, die konfiguriert ist, gepufferte Daten selektiv zu komprimieren. Die Datenkomprimierungsvorrichtung enthält: einen Eingabepuffer; einen Datenmusteranalysator, der konfiguriert ist, ein Muster der Daten zu analysieren und einen Analysecode auszugeben, wobei zumindest eines von dem Analysieren des Musters und dem Ausgeben des Analysecodes durchgeführt wird, während die Daten an den Eingabepuffer übertragen werden; und einen Datenkomprimierungsmanager, der konfiguriert ist, die gepufferten Daten im Eingabepuffer gemäß dem Analysecode selektiv zu komprimieren.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann der Datenmusteranalysator konfiguriert sein, um ein Anzeigebit, das in der Kopfsequenz der Daten enthalten ist, zu analysieren, und den Analysecode basierend auf der Analyse des Anzeigebits zu erzeugen. Das Anzeigebit kann anzeigen, ob die Daten zu komprimieren sind.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann der Datenmusteranalysator konfiguriert sein, eine Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, zu zählen, und den Analysecode basierend auf dem Vergleich zwischen einem Referenzwert und einem Maximum oder einem Minimum der gezählten Häufigkeiten zu erzeugen.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann der Datenmusteranalysator konfiguriert sein, die Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Daten enthalten sind, zu zählen, jedem der Mehrzahl der Zeichen ein Passwort zuzuweisen, und den Analysecode basierend auf einem Vergleich zwischen einer Größe von Referenzdaten und einer ermittelten Größe von komprimierten Daten zu erzeugen, wobei die ermittelte Größe der komprimierten Daten basierend auf einer Häufigkeit von jedem der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl der Zeichen zugewiesen wird, berechnet wird.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann der Datenmusteranalysator aufweisen: einen Kopfsequenzanalysator, der konfiguriert ist, ein Steuersignal basierend auf einem Anzeigebit, das in einer Kopfsequenz der Daten enthalten ist, auszugeben, wobei das Anzeigebit anzeigt, ob Daten zu komprimieren sind; und einen Ermittler, der konfiguriert ist, in Reaktion auf ein Aktivierungssteuersignal selektiv aktiviert zu werden, wobei der Ermittler ferner konfiguriert ist, die Häufigkeit von jedem der Mehrzahl der Zeichen, die in den Daten enthalten sind, zu zählen, jedem der Mehrzahl von Zeichen ein Passwort zuzuweisen, und den Analysecode basierend auf einem Ergebnis eines Vergleichs zwischen einer Größe von Referenzdaten und einer ermittelten Größe von komprimierten Daten zu erzeugen, wobei die ermittelte Größe der komprimierten Daten basierend auf einer Häufigkeit von jedem der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl der Zeichen zugewiesen wird, berechnet wird.
-
Gemäß zumindest weiteren beispielhaften Ausführungsformen kann der Datenmusteranalysator aufweisen: einen Musteranalysator, der konfiguriert ist, die Häufigkeit von jedem der Mehrzahl der Zeichen, die in den Daten enthalten sind, zu zählen, und jedem der Mehrzahl der Zeichen ein Passwort zuzuweisen; und einen Ermittler, der konfiguriert ist, die Häufigkeit von jedem der Mehrzahl der Zeichen zu empfangen und jedem der Mehrzahl der Zeichen vom Musteranalysator das Passwort zuzuweisen, und konfiguriert ist, den Analysecode basierend auf einem Ergebnis eines Vergleichs zwischen einer Größe von Referenzdaten und einer ermittelten Größe von komprimierten Daten zu erzeugen, wobei die ermittelte Größe der komprimierten Daten basierend auf der Häufigkeit von jedem der Mehrzahl der Zeichen und einer Anzahl von Bits des Passworts, das jedem der Mehrzahl der Zeichen zugewiesen wird, berechnet wird.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann der Datenkomprimierungsmanager aufweisen: einen Speicher, der konfiguriert ist, den Analysecode zu speichern; einen Prozessor, der konfiguriert ist, die gepufferten Daten zu komprimieren und komprimierte Daten auszugeben; und einen Selektor, der konfiguriert ist, die gepufferten Daten an eine nichtflüchtige Speichervorrichtung oder den Prozessor, basierend auf dem Analysecode, der im Speicher gespeichert ist, auszugeben.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht ein Verfahren zum Komprimieren von eingegebenen Daten vor, aufweisend: selektives Komprimieren von Daten in einer Datenkomprimierungsvorrichtung, basierend auf einem von einem Muster der Daten und einem Wert eines Anzeigebits, das in einer Kopfsequenz der Daten enthalten ist, wobei sowohl das Muster als auch das Anzeigebit Aufschluss darüber geben, ob die Daten komprimierte Daten sind.
-
Gemäß weiterer beispielhafter Ausführungsformen kann das Verfahren ferner aufweisen: Bestimmen, ob die Daten eine Kopfsequenzinformation enthalten; wobei die Daten basierend auf dem Anzeigebit selektiv komprimiert werden, falls die Daten eine Kopfsequenzinformation enthalten. Die Daten können basierend auf dem Muster der Daten selektiv komprimiert werden, falls die Daten keine Kopfsequenzinformation bzw. Kopfsequenzinformationen enthalten.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann das Verfahren ferner enthalten: Zählen der Häufigkeit von jedem Zeichen, das in den Daten enthalten ist; Vergleichen von einem Maximum oder einem Minimum der Häufigkeit von den gezählten Häufigkeiten mit einem Referenzwert; und wobei die Daten bei dem Schritt zum selektiven Komprimieren basierend auf dem Vergleich zwischen dem Referenzwert und der maximalen oder minimalen Häufigkeit selektiv komprimiert werden.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann das Verfahren ferner aufweisen: Zählen der Häufigkeit von jedem Zeichen, das in den Daten enthalten ist; Zuweisen eines Passworts zu jedem der Zeichen, das in den Daten enthalten ist; Ermitteln einer Größe von komprimierten Daten basierend auf den gezählten Häufigkeiten und einer Anzahl von Bits von jedem zugewiesenen Passwort; Vergleichen einer ermittelten Größe der komprimierten Daten mit einem Referenzwert; und wobei die Daten bei dem Schritt zum selektiven Komprimieren basierend auf dem Vergleich zwischen der ermittelten Größe der komprimierten Daten und dem Referenzwert selektiv komprimiert werden.
-
Zumindest eine weitere beispielhafte Ausführungsform sieht eine Datenkomprimierungsvorrichtung vor, aufweisend: einen Datenkomprimierungsmanager, der konfiguriert ist, Daten basierend auf einem Muster der Daten und einem Wert eines Anzeigebits, das in einer Kopfsequenz der Daten enthalten ist, selektiv zu komprimieren, wobei sowohl das Muster als auch das Anzeigebit darüber Auskunft geben, oh die Daten komprimierte Daten sind.
-
Gemäß zumindest weiterer beispielhafter Ausführungsformen kann die Datenkomprimierungsvorrichtung ferner aufweisen: einen Datenmusteranalysator, der konfiguriert ist, zu bestimmen, ob die Daten Kopfsequenzinformation bzw. Kopfsequenzinformationen enthalten; und wobei der Datenkomprimierungsmanager die Daten basierend auf dem Anzeigebit selektiv komprimiert, falls die Daten einer Kopfsequenzinformation bzw. Kopfsequenzinformationen enthalten.
-
Gemäß zumindest weiteren beispielhaften Ausführungsformen kann der Datenkomprimierungsmanager die Daten basierend auf dem Muster der Daten selektiv komprimieren, falls die Daten keine Kopfsequenzinformation enthalten.
-
Der Datenmusteranalysator kann ferner konfiguriert sein, eine Häufigkeit von jedem Zeichen, das in den Daten enthalten ist, zu zählen, und aus den gezählten Häufigkeiten eine maximale oder eine minimale Häufigkeit mit einem Referenzwert zu vergleichen. Der Datenkomprimierungsmanager kann die Daten basierend auf dem Vergleich zwischen dem Referenzwert und der maximalen oder minimalen Häufigkeit selektiv komprimieren.
-
Der Datenmusteranalysator kann ferner konfiguriert sein, eine Häufigkeit von jedem Zeichen, das in den Daten enthalten ist, zu zählen, jedem der Zeichen, die in den Daten enthalten sind, ein Passwort zuzuweisen, basierend auf den Häufigkeit und einer Anzahl von Bits von jedem zugewiesenen Passwort, eine Größe der komprimierten Daten zu ermitteln, und eine ermittelte Größe der komprimierten Daten mit einem Referenzwert zu vergleichen. Der Datenkomprimierungsmanager kann die Daten basierend auf dem Vergleich zwischen der ermittelten Größe der komprimierten Daten und dem Referenzwert selektiv komprimieren.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Beispielhafte Ausführungsformen von erfinderischen Konzepten werden anhand der nachfolgenden detaillierten Beschreibung, die hinsichtlich der beigefügten Zeichnungen gemacht wird, besser verstanden. In den Zeichnungen zeigen:
-
1A ein Blockdiagramm einer Datenkomprimierungsvorrichtung gemäß einer beispielhaften Ausführungsform erfinderischer Konzepte;
-
1B ein beispielhaftes Ausgabe-Takt-Diagramm für gepufferte Daten, die vom Eingabepuffer 30 von 1 ausgegeben werden;
-
1C eine beispielhafte Struktur von gepufferten Daten, die in 1B dargestellt sind;
-
2 ein Blockdiagramm einer Datenkomprimierungsvorrichtung gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte;
-
3 eine Tabelle zum Erläutern eines beispielhaften Betriebs des Datenmusteranalysators 20B von 2;
-
4 ein Blockdiagramm einer Datenkomprimierungsvorrichtung gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte;
-
5 ein Blockdiagramm einer Datenkomprimierungsvorrichtung gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte;
-
6 ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens einer Datenkomprimierungsvorrichtung;
-
7 ein Flussdiagramm zum Erläutern einer werteren beispielhaften Ausführungsform eines Betriebsverfahrens einer Datenkomprimierungsvorrichtung;
-
8 ein Flussdiagramm zum Erläutern einer weiteren beispielhaften Ausführungsform eines Betriebsverfahrens einer Datenkomprimierungsvorrichtung;
-
9 ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens eines Musteranalysators unter Verwendung der statischen Huffman-Codierungsregel;
-
10 ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahren eines Musteranalysators unter Verwendung der dynamischen Huffman-Codierungsregel;
-
11 ein Datenverarbeitungssystem einschließlich einer Datenkomprimierungsvorrichtung gemäß einer beispielhaften Ausführungsform der erfinderischen Konzepte;
-
12 ein Datenverarbeitungssystem einschließlich einer Datenkomprimierungsvorrichtung gemäß einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte;
-
13 ein Blockdiagramm einer Datenkomprimierungsvorrichtung gemäß einer weiteren beispielhaften Ausführungsform der erfinderischen Konzepte;
-
14 ein Flussdiagramm zum Erläutern einer weiteren beispielhaften Ausführungsform eines Betriebsverfahrens einer Datenkomprimierungsvorrichtung; und
-
15 ein Flussdiagramm zum Erläutern einer weiteren beispielhaften Ausführungsform eines Betriebsverfahrens einer Datenkomprimierungsvorrichtung.
-
DETAILLIERTE BESCHREIBUNG
-
Bezüglich der beigefügten Zeichnungen werden nachfolgend beispielhafte Ausführungsformen ausführlicher beschrieben. Die beispielhaften Ausführungsformen können jedoch auf verschiedene Weisen ausgebildet sein und sollten nicht als auf die beispielhaften Ausführungsformen, die nachfolgend dargestellt werden, beschränkt betrachtet werden. Vielmehr sind diese beispielhaften Ausführungsformen derart angedacht, dass die Offenbarung schlüssig und vollständig ist. In den Zeichnungen können die Größe und relative Größen von Schichten und Bereichen zur Verbesserung der Klarheit übertrieben dargestellt sein. Gleiche Bezugszeichen beziehen sich durchgängig auf gleiche Elemente.
-
Wenn ein Element als mit einem anderen Element „verbunden” oder „gekoppelt” beschrieben ist, ist dies so zu verstehen, dass es direkt mit dem anderen Element verbunden oder gekoppelt ist oder Zwischenelemente vorliegen können. Wenn hingegen ein Element als mit einem anderen Element „direkt verbunden” oder „direkt gekoppelt” beschrieben ist, liegen keine Zwischenelemente vor. Der vorliegend verwendete Begriff „und/oder” enthält eine oder alle Kombinationen von einem oder mehrerer der darauf bezogenen aufgelisteten Gegenstände und kann durch „1” abgekürzt sein.
-
Obwohl die Begriffe erste/erster/erstes, zweite/zweiter/zweites, etc. vorliegend zur Beschreibung von verschiedenen Elementen verwendet werden können, ist dies so zu verstehen, dass diese Elemente nicht auf diese Begriffe zu beschränken sind. Diese Begriffe werden nur dafür verwendet, um ein Element von einem anderen zu unterscheiden. Z. B. könnte ein erstes Signal auch als ein zweites Signal bezeichnet werden, oder vergleichsweise ein zweites Signal auch als erstes Signal, ohne dabei von der Lehre dieser Offenbarung abzuweichen.
-
Die vorliegend verwendete Terminologie dient nur zur Beschreibung bestimmter Ausführungsformen und soll nicht beschränkend sein. Wie vorliegend verwendet sollen die Singularformen „ein/eine/einer/eines” und „der/die/das” auch die Pluralformen enthalten, so lange dies aus dem Kontext nicht eindeutig anders hervorgeht. Die Begriffe „aufweisend” und/oder „aufweisend” oder „enthalten” und/oder „enthaltend” sollen so verstanden werden, dass, wenn sie in dieser Beschreibung verwendet werden, sie das Vorliegen von erwähnten Eigenschaften, Bereichen, Integern, Schritten, Betrieben, Elementen und/oder Komponenten spezifizieren, das Vorliegen oder Hinzufügen von einem oder mehreren Merkmalen, Bereichen, Integern, Schritten, Betrieben, Elementen, Komponenten und/oder Gruppen davon nicht ausschließen.
-
Sofern nicht anders definiert ist, haben alle vorliegend verwendeten Begriffe (einschließlich der technischen und wissenschaftlichen Begriffe) dieselbe Bedeutung, wie sie im Allgemeinen durch einen Experten seines Fachs, auf das sich die beispielhaften Ausführungsformen beziehen, verstanden wird. Ferner sollen Begriffe, wie jene, die in üblichen Wörterbüchern verwendet werden, auch mit der entsprechenden Bedeutung, die mit jeder Bedeutung im Kontext des entsprechenden Fachbereichs und/oder der vorliegenden Anmeldung übereinstimmt, verstanden werden, und nicht auf idealisierte oder zu formelle Weise interpretiert werden, so lange dies nicht ausdrücklich anders definiert ist.
-
In manchen alternativen Ausführungsformen können die erwähnten Eigenschaften/Funktionen anders als in den Figuren dargestellt auftreten. Z. B. können zwei aufeinanderfolgende Figuren auch im Wesentlichen unabhängig voneinander ausgeführt werden oder in umgekehrter Reihenfolge, abhängig von der entsprechenden Eigenschaft/Funktion.
-
Obwohl ein Flussdiagramm die Betriebe als sequenziellen Prozess beschreibt, können viele der Betriebe auch parallel, nebeneinander oder simultan durchgeführt werden. Außerdem kann die Reihenfolge der Betriebe auch umgestellt werden. Ein Prozess kann abgeschlossen werden, wenn seine Betriebe abgeschlossen sind, wobei er auch weitere Schritte aufweisen kann, die nicht in den Figuren enthalten sind. Ein Prozess kann einem Verfahren, einer Funktion, einem Prozessablauf, einer Subroutine, einem Subprogramm etc. entsprechen. Wenn ein Prozess einer Funktion entspricht, kann dessen Abschluss einer Rückführung der Funktion zur Ansprechfunktion oder der Hauptfunktion entsprechen.
-
In der nachfolgenden Beschreibung sind zumindest manche beispielhafte Ausführungsformen bezüglich Funktionen und symbolischen Darstellungen der Betriebe (z. B. in Form von Flussdiagrammen, Datenflussdiagrammen, Prozessflussdiagrammen, teilweisen Flussdiagrammen, Strukturdiagrammen, Blockdiagrammen etc.) beschrieben, wobei zumindest manche davon als Programmmodule oder funktionale Prozesse einschließlich Routinen, Programmen, Aufgaben, Komponenten, Datenstrukturen etc. implementiert sind, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Diese Programmmodule und/oder funktionalen Prozesse können durch Hardware, wie z. B. einer oder mehreren zentralen Prozessoreinheiten (CPUs), digitalen Signalprozessoren (DSPs), anwendungsspezifischen integrierten Schaltungen, feldprogrammierbaren Gate-Arrays(FPGAs)-Computern oder dergleichen implementiert sein.
-
Wie vorliegend offenbart kann der Begriff „Speichermedium” oder „computerlesbares Speichermedium” eine oder mehrere Vorrichtungen zum Speichern von Daten darstellen, einschließlich einem nur-lesbaren Speicher (ROM), einem Direktzugriffsspeichers (RAM), einem magnetischen RAM, einem Kernspeicher, magnetische Diskspeichermedien, optische Speichermedien. Flash-Speichervorrichtungen und/oder greifbare maschinenlesbare Medien zum Speichern von Informationen. Der Begriff „computerlesbares Medium” kann portable oder fixierte Speichervorrichtungen, optische Speichervorrichtungen, verschiedene andere Medien zum Speichern, die eine Anweisung oder Anweisungen und/oder Daten enthalten, aufweisen, ist jedoch nicht darauf beschränkt.
-
Ferner können beispielhafte Ausführungsformen durch Hardware, Software, Firmware, Middleware, Microcode, Hardwarebeschreibungssprache oder durch eine beliebige Kombination daraus implementiert sein. Bei einer Implementierung in Software, Firmware, Middleware oder Microcode kann/können der Programmcode bzw. Programmierungscode oder die Codesegmente zum Durchführen erforderlicher Aufgaben in einer Maschine oder einem computerlesbaren Medium wie z. B. einem computerlesbaren Speichermedium gespeichert sein. Bei der Implementierung in Software führt ein Prozessor oder Prozessoren die erforderlichen Aufgaben durch.
-
Ein Codesegment kann einen Prozess, eine Funktion, ein Subprogramm, ein Programm, eine Routine, eine Subroutine, ein Modul, ein Softwarepaket, eine Klasse oder eine Kombination aus Anweisungen, Datenstrukturen oder Programmbefehlen darstellen. Ein Codesegment kann mit anderen Codesegment oder einer Hardwareschaltung durch Passieren und/oder Empfangen von Informationen, Daten, Argumenten, Parametern oder Speicherinhalten gekoppelt sein. Informationen, Argumente, Parameter, Daten etc. können über eine beliebig passende Einrichtung einschließlich Speicherteilen, Speicherweitergabe, Token-Passing, Netzwerkübertragung etc. weitergegeben, durchgesetzt oder übertragen werden.
-
1A zeigt ein Blockdiagramm einer Datenkomprimierungsvorrichtung 10A gemäß einer beispielhaften Ausführungsform erfinderischer Konzepte. 1B zeigt ein beispielhaftes Ausgabezeitdiagramm für gepufferte Daten, die von dem Eingabepuffer 30 von 1A ausgegeben werden. 1C stellt eine beispielhafte Struktur der gepufferten Daten, die bezüglich 1B diskutiert sind, dar.
-
Wie in den 1A–1C dargestellt, enthält die Datenkomprimierungsvorrichtung 10A einen Datenmusteranalysator 20A, den Eingabepuffer 30 und einen Datenkomprimierungsmanager 40. In zumindest der in 1A dargestellten beispielhaften Ausführungsform enthält die Datenkomprimierungsvorrichtung 10A ferner einen Ausgabepuffer 50. In einem Beispiel kann die Datenkomprimierungsvorrichtung 10A durch eine integrierte Schaltung (IC), eine vorliegend beliebig diskutierte Hardware oder ähnliche Hardware ausgebildet sein.
-
In einem Beispiel kann der Datenmusteranalysator 20A durch vorliegend diskutierte Hardware, wie z. B. einen Prozessor zum Analysieren eines Musters von Eingabedaten DATA ausgebildet sein und der Datenkomprimierungsmanager 40 kann durch vorliegend diskutierte Hardware, wie z. B. einen Prozessor zum selektiven Komprimieren gepufferter Daten BDi vom Eingabepuffer 30 basierend auf einem Analysecode INF1 vom Datenmusteranalysator 20A ausgebildet sein.
-
Bei einem beispielhaften Betrieb analysiert der Datenmusteranalysator 20A ein Muster der Eingabedaten DATA, die an den Eingabepuffer 30 übertragen werden, und erzeugt basierend auf dem analysierten Muster einen Analysecode INF1 (das Analyseergebnis). Der Datenmusteranalysator 20A gibt das Ergebnis der Analyse in Form des Analysecodes INF1 an den Datenkomprimierungsmanager 40 aus.
-
Weiterhin enthält der Datenmusteranalysator 20A, wie in 1A dargestellt, einen Kopfsequenzanalysator 21. Der Kopfsequenzanalysator 21 analysiert ein Anzeigebit, das in einer Kopfsequenz HEADER der Eingabedaten DATA enthalten ist und erzeugt, basierend auf der Analyse des Anzeigebits, den Analysecode INF1. Der Analysecode INF1 kann ein oder mehrere Bits enthalten. D. h., der Analysecode INF1 kann z. B. ein Single- oder Multi-Bit-Code sein.
-
Das Anzeigebit in der Kopfsequenz HEADERzeigt an, ob die Rumpfdaten DATA1 der Eingabedaten bzw. eingegebenen Daten DATA komprimierte Daten sind. Obwohl das Anzeigebit als ein Anzeigebit diskutiert ist, kann es ein oder mehrere Bits enthalten. In einem Beispiel kann das Anzeigebit, das in der Kopfsequenz HEADER enthalten ist, einen ersten Wert (z. B. 1) haben, wenn die Rumpfdaten DATA1 komprimierte Daten (z. B. Multimediadaten) sind. Wenn die Rumpfdaten DATA1 der Eingabedaten DATA hingegen unkomprimierte Daten sind, kann das Anzeigebit, das in der Kopfsequenz HEADER enthalten ist, einen zweiten Wert (z. B. 0) haben, welcher sich vom ersten Wert unterscheidet.
-
Bei diesem Beispiel gibt der Kopfanalysator 21 einen Analysecode INF1 mit dem ersten Wert (z. B. 1) aus, wenn das Anzeigebit den ersten Wert hat, aber gibt einen Analysecode INF1 mit dem zweiten Wert (z. B. 0) aus, wenn das Anzeigebit den zweiten Wert hat (z. B. 0) hat.
-
Der Eingabepuffer 30 puffert die Eingabedaten DATA, die vom Datenbus empfangen werden, und gibt die gepufferten Daten BDi aus. Wenn die Eingabedaten DATA z. B. Multi-Bit-Daten einschließlich einer Anzahl von „a” Bits sind, können die gepufferten Daten BDi auch Multi-Bit-Daten einschließlich einer Anzahl von „b” Bits sein. In diesem Fall sind „a” und „b” natürliche Zahlen, und a = b oder „b” ist ein ganzzahliges Vielfaches von „a”.
-
Bei einem genaueren Beispiel analysiert der Datenmusteranalysator 20A ein Muster von jedem Satz von 8-Bit-Eingabedaten in einem Zeitintervall T, wenn die Eingabedaten DATA 8-Bit-Daten und die gepufferten Daten BDi 64-Bit-Daten sind. Der Eingabepuffer 30 gibt die gepufferten Daten BDi, wobei i = 0, 1, 2, 3, ..., gemäß einem Aktivierungssignal EN, das aktiviert wird, wenn alle der acht Eingabedaten DATA im Eingabepuffer 30 empfangen sind, aus.
-
Weiter komprimiert der Datenkomprimierungsmanager 40, wie in 1A dargestellt, die gepufferten Eingabedaten BDi basierend auf dem Analysecode INF1, der vom Datenmusteranalysator 20A ausgegeben wird, selektiv. Der Datenkomprimierungsmanager 40 gibt dann entweder die gepufferten Daten BDi vom Eingabepuffer 30 oder die komprimierten Daten CDATA, die durch das Komprimieren der gepufferten Daten BDi erzeugt werden, aus. Das heißt, der Datenkomprimierungsmanager 40 umgeht die Komprimierung der gepufferten Daten BDi oder komprimiert die gepufferten Daten BDi, um die komprimierten Daten CDATA zu erzeugen.
-
Wenn z. B. der Analysecode INF1 den zweiten Wert (z. B. 0) aufweist, komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi vom Eingabepuffer 30, um die komprimierten Daten CDATA zu erzeugen, und gibt die komprimierten Daten CDATA an den Ausgabepuffer 50 aus. Wenn hingegen der Analysecode INF1 den ersten Wert (z. B. 1) hat, gibt der Datenkomprimierungsmanager 40 die gepufferten Daten BDi ohne Komprimierung an den Ausgabepuffer 50 aus.
-
Bei der in 1A dargestellten beispielhaften Ausführungsform enthält der Datenkomprimierungsmanager 40 einen Speicher 41, einen Prozessor 43 und einen Selektor 45. Der Speicher 41 empfängt und speichert den Analysecode INF1. Der Selektor 45 gibt die gepufferten Daten BDi, basierend auf dem Analysecode INF1, der im Speicher 41 gespeichert ist, an den Ausgabepuffer 50 aus, oder überträgt die gepufferten Daten BDi zur Komprimierung an den Prozessor 43. Falls z. B. der Analysecode INF1 den ersten Wert hat, gibt der Selektor 45 danach die gepufferten Daten BDi an den Ausgabepuffer 50 aus. Ferner, falls der Analysecode INF1 den zweiten Wert hat, gibt der Selektor 45 die gepufferten Daten BDi zur Komprimierung an den Prozessor 43 aus. Der Prozessor 43 komprimiert die gepufferten Daten BDi, die vom Selektor 45 ausgegeben werden, um die komprimierten Daten CDATA zu erzeugen, und gibt die komprimierten Daten CDATA au den Ausgabepuffer 50 aus.
-
Bezüglich den in 1C dargestellten Daten komprimiert der Prozessor 43 jeweilige Zeichen A1, A2 und A3 selektiv und gibt eine Information, die eine Beziehung zwischen den Zeichen anzeigt, ohne Komprimierung eines Zeichens, das gleich einem vorherig komprimierten Zeichen ist, aus. Bei diesem Beispiel komprimiert der Prozessor 43 das erste Zeichen A1, jedoch nicht das vierte Zeichen A1. Alternativ kann der Prozessor 43 alle Zeichen der gepufferten Daten BDi komprimieren.
-
Rückbezüglich 1A empfängt der Ausgabepuffer 50 die Daten (z. B. die gepufferten Daten BDi oder die komprimierten Daten CDATA) vom Datenkomprimierungsmanager 40 und puffert diese. Die Daten werden dann vom Ausgabepuffer 50 an einen nichtflüchtigen Speicher ausgegeben.
-
Bei der in 1A beispielhaft dargestellten Ausführungsform analysiert der Datenmusteranalysator 20A das Muster der Eingabedaten DATA (z. B. das Anzeigebit, das in der Kopfsequenz HEADER enthalten ist), während die Eingabedaten DATA an den Eingabepuffer 30 übertragen werden und/oder im Eingabepuffer 30 gepuffert werden. Der Datenmusteranalysator 20A überträgt anschließend, basierend auf der Analyse, den Analysecode INF1 an den Datenkomprimierungsmanager 40. Der Datenkomprimierungsmanager 40 bestimmt, basierend auf dem Analysecode INF1, ob die gepufferten Daten BDi zu komprimieren sind.
-
Da der Datenkomprimierungsmanager 40 nicht alle einzelnen Eingabedaten DATA, die im Eingabepuffer 30 gespeichert sind, oder alle einzelnen gepufferten Daten BDi lesen muss, um das Muster aller einzelnen Eingabedaten DATA zu analysieren, kann die Datenkomprimierungsgeschwindigkeit vergrößert werden.
-
2 zeigt ein Blockdiagramm einer Datenkomprimierungsvorrichtung gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte.
-
Im Gegensatz zu den Eingabedaten DATA in den 1A–1C enthalten die Eingabedaten DATA in 2 keine Kopsequenzfinformation mit einem Anzeigebit, das anzeigt, ob die Daten im Rumpf DATA1 komprimierte Daten sind.
-
Bezüglich 2 enthält die Datenkomprimierungsvorrichtung 10B einen Datenmusteranalysator 20B, den Eingabepuffer 30 und den Datenkomprimierungsmanager 40. Bei der in 2 beispielhaft dargestellten Ausführungsform enthält die Datenkomprimierungsvorrichtung 10B ferner den Ausgabepuffer 50.
-
Der Datenmusteranalysator 20B enthält einen Musteranalysator 23. Wenn die Eingabedaten DATA an den Eingabepuffer 30 übertragen werden, empfängt der Musteranalysator 23 die Eingabedaten DATA, analysiert ein Muster der Eingabedaten DATA und gibt, basierend auf dem Analyseergebnis, einen Analysecode INF2 aus. In diesem Fall analysiert der Musteranalysator 23 das Muster von allen der Eingabedaten DATA, die in den gepufferten Daten D0 von 1C enthalten sind, bis nächste gepufferte Daten D1 von 1B ausgegeben werden.
-
Bei diesem Beispiel zählt der Musteranalysator 23 eine Häufigkeit von jedem von einer Mehrzahl von Zeichen, die in den Eingabedaten DATA enthalten sind, vergleicht die maximale (oder minimale) Häufigkeit mit einem Referenzwert und gibt ein Vergleichsergebnis als den Analysecode INF2 an den Datenkomprimierungsmanager 40 aus. Ein einzelnes Zeichen kann k-Bits enthalten, wobei „k” eine natürliche Zahl ist. Zum Beispiel kann k = 8 sein.
-
3 zeigt eine Tabelle zum Erläutern eines beispielhaften Betriebs des Datenmusteranalysators 20B, der in 2 dargestellt ist.
-
Bezüglich den 2 und 3 bestimmt der Musteranalysator 23 die Häufigkeit 10, 100, 1000, 2, 5, 50 etc. von jeweiligen Zeichen von einer Mehrzahl von Zeichen AA, BB, CC, DD, EE, FF etc., die in den Eingabedaten DATA enthalten sind. Der Musteranalysator 23 vergleicht dann eine maximale (oder minimale) Häufigkeit mit einem Referenzwert.
-
Wenn die maximale Häufigkeit größer als der Referenzwert ist (z. B. ist die Iterationszahl von Zeichen entsprechend der maximalen Häufigkeit relativ hoch), gibt der Musteranalysator 23 einen Analysecode INF2 mit dem zweiten Wert (z. B. 0) an den Datenkomprimierungsmanager 40 aus. Der Analysecode INF2 mit dem zweiten Wert zeigt an, dass die Eingabedaten DATA durch den Datenkomprimierungsmanager 40 komprimiert werden sollten. In Reaktion auf den Analysecode INF2 mit dem zweiten Wert komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi vom Eingabepuffer 30 und gibt die komprimierten Daten CDATA an die nichtflüchtige Speichervorrichtung (z. B. eine Flash-Speichervorrichtung) direkt oder über den Ausgabepuffer 50 aus.
-
Wenn die maximale Häufigkeit kleiner oder gleich dem Referenzwert ist, gibt der Musteranalysator 23 einen Analysecode INF2 mit dem ersten Wert (z. B. 1) an den Datenkomprimierungsmanager 40 aus. Der Analysecode INF2 mit dem ersten Wert zeigt an, dass gepufferte Daten BDi nicht durch den Datenkomprimierungsmanager 40 zu komprimieren sind. In Reaktion auf den Analysecode INF2 mit dem ersten Wert umgeht der Datenkomprimierungsmanager 40 die Komprimierung der gepufferten Daten BDi und überträgt die gepufferten Daten BDi an die nichtflüchtige Speichervorrichtung direkt oder über den Ausgabepuffer 50.
-
4 zeigt ein Blockdiagramm der Datenkomprimierungsvorrichtung 10C gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte.
-
Bezüglich 4 enthält die Datenkomprimierungsvorrichtung 10C einen Datenmusteranalysator 20C, den Eingabepuffer 30 und den Datenkomprimierungsmanager 40. Bei der in 4 beispielhaft dargestellten Ausführungsform enthält die Datenkomprimierungsvorrichtung 10C ferner den Ausgabepuffer 50.
-
Der Datenmusteranalysator 20C enthält einen Kopfsequenzanalysator 25 und einen Ermittler 26.
-
Der Kopfsequenzanalysator 25 analysiert ein Anzeigebit, das in der Kopfsequenz HEADER der Eingabedaten DATA enthalten ist. Basierend auf diesem Eingabebit gibt der Kopfsequenzanalysator 25 ein Steuersignal an den Ermittler 26 und einen ersten Steuercode an den Datenkomprimierungsmanager 40 aus. Das Steuersignal steuert einen Betrieb des Ermittlers 26 und der erste Steuercode steuert einen Betrieb des Datenkomprimierungsmanagers 40.
-
Falls das Anzeigebit den ersten Wert (z. B. 1) hat, der anzeigt, dass die Daten im Rumpf DATA1 komprimierte Daten sind, verweigert der Kopfsequenzanalysator 25 dem Ermittler 26 durch Ausgeben eines Steuersignals mit einem ersten Wert (z. B. ein Steuersignal mit einem niedrigen Level bzw. Pegel) an den Ermittler 26 den Betrieb. Der Kopfsequenzanalysator 25 gibt auch einen ersten Steuercode an den Datenkomprimierungsmanager 40 aus. Bei diesem Beispiel weist der erste Steuercode dem Datenkomprimierungsmanager 40 an, die Komprimierung der gepufferten Daten BDi vorbeizuleiten.
-
Falls das Anzeigebit den zweiten Wert (z. B. 0) hat, der anzeigt, dass die Daten im Rumpf DATA1 unkomprimierte Daten sind, aktiviert der Kopfsequenzanalysator 25 den Betrieb des Ermittlers 26 durch Ausgeben eines Steuersignals (z. B. ein Aktivierungssteuersignal mit einem hohen Pegel) an den Ermittler 26.
-
Wenn der Ermittler 26 aktiviert ist, zählt er die Häufigkeiten (z. B. 10, 100, 1000, 2, 5, 50 etc.) der jeweiligen Zeichen (z. B. AA, BB, CC, DD, EE, FF etc.), die in den Eingabedaten DATA (z. B. die Rumpfdaten DATA1), wie z. B. in 3 dargestellt, enthalten sind.
-
Ferner weist der Ermittler 26 bezüglich 4 dem jeweiligen Zeichen AA, BB, CC, DD, EE, FF etc. gemäß einer Codierregel auch Passwörter 1011, 101, 10, 10101, 10001, 110 etc. zu. Der Ermittler 26 ermittelt danach die Größe der komprimierten Daten CDATA basierend auf den Häufigkeiten 10, 100, 1000, 2, 5, 50 etc. der jeweiligen Zeichen AA, BB, CC, DD, EE, FF etc. und der Anzahl an Bits 4, 3, 2, 5, 5, 3 etc. der entsprechenden Passwörter 1011, 101, 10, 10101, 10001, 110 etc., die den jeweiligen Zeichen AA, BB, CC, DD, EE, FF etc. zugewiesen sind. Der Ermittler 26 vergleicht dann die ermittelte Größe der komprimierten Daten (hiernach als „ermittelte Daten ECDATA” bezeichnet) mit der Größe der Referenzdaten, und gibt ein Vergleichsergebnis an den Datenkomprimierungsmanager 40 aus.
-
Bei einem Beispiel berechnet der Ermittler 26 die Größe der ermittelten Daten ECDATA gemäß Gleichung 1.
-
-
In Gleichung 1 ist „n” eine natürliche Zahl und steht für die gesamte Anzahl an Zeichen der Daten, die im Rumpf DATA1 enthalten sind, „fi” steht für die Häufigkeit des i-ten Zeichens und „Bi” steht für die Anzahl an Bits des Passworts, das dem i'ten Zeichen zugewiesen wird.
-
Wie in 3 dargestellt, ist die Häufigkeit des Zeichens AA z. B. 10, die Anzahl der Bits des Passworts 1011, das dem Zeichen AA zugewiesen wird, z. B. 4, die Häufigkeit des Zeichens CC z. B. 1000, und die Anzahl an Bits des Passworts 10, das dem Zeichen CC zugewiesen wird, z. B. 2 etc.
-
Bei einem genaueren Beispiel gibt, falls die Größe der Eingabedaten DATA 5 kB, die Größe der Referenzdaten 3 kB, und die Größe der ermittelten Daten ECDATA, die gemäß Gleichung 1 berechnet wird, größer als 3 kB ist, der Ermittler 26 einen zweiten Steuercode aus, der anzeigt, dass die Komprimierung der gepufferten Daten BDi umgangen werden sollte.
-
Falls hingegen die Größe der ermittelten Daten ECDATA, die gemäß der Gleichung 1 berechnet wird, kleiner als 3 kB ist, gibt der Ermittler 26 den zweiten Steuercode aus, der anzeigt, dass die gepufferten Daten BDi komprimiert werden sollten.
-
Gemäß zumindest manchen beispielhaften Ausführungsformen kann die Größe der Referenzdaten c-mal der Größe der Eingabedaten DATA sein, wobei „c” ein Dezimalteil bzw. Dezimalbruch (z. B. ca. 0,6) ist.
-
Der Analysecode INF3, dargestellt in 4, enthält einen ersten Steuercode, der gemäß einem Anzeigebit, das in der Kopfsequenz HEADER enthalten ist, erzeugt wird und einen zweiten Steuercode, der basierend auf einem Vergleichsergebnis zwischen der Größe der ermittelten Daten ECDATA und der Größe der Referenzdaten erzeugt wird.
-
Wie vorstehend bezüglich den 1A–4 beschrieben, werden die gepufferten Daten BDi durch den Datenkomprimierungsmanager 40 ausgegeben, ohne dabei komprimiert zu werden, falls: die Daten im Rumpf DATA1 bereits komprimiert sind oder die Daten im Rumpf DATA1 unkomprimierte Daten sind, und die Größe der ermittelten Daten ECDATA größer als die der Referenzdaten ist.
-
Ferner analysiert der Datenkomprimierungsmanager 40, wie in 4 dargestellt, den Analysecode INF3 vom Datenmusteranalysator 20C und gibt die gepufferten Daten BDi oder die komprimierten Daten CDATA gemäß einem Analyseergebnis aus. Wenn die Daten im Rumpf DATA1 unkomprimierte Daten sind und die Größe der ermittelten Daten ECDATA geringer als die der Referenzdaten ist, komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi gemäß des Analysecodes INF3, der vom Datenmusteranalysator 20C ausgegeben wird, und gibt die komprimierten Daten CDATA aus.
-
Wie vorstehend beschrieben, während die jeweiligen Eingabedaten DATA an den Eingabepuffer 30 übertragen werden, analysiert der Datenmusteranalysator 20C ein Muster von allen einzelnen Eingabedaten DATA und überträgt den Analysecode INF3 an den Datenkomprimierungsmanager 40. Der Datenkomprimierungsmanager 40 komprimiert die gepufferten Daten BDi gemäß dem Analysecode INF3 selektiv.
-
5 zeigt ein Blockdiagramm der Datenkomprimierungsvorrichtung 10D gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte.
-
Bezüglich 5 enthält die Datenkomprimierungsvorrichtung 10D einen Datenmusteranalysator 20D, den Eingabepuffer 30 und den Datenkomprimierungsmanager 40. In zumindest dieser beispielhaften Ausführungsform enthält die Datenkomprimierungsvorrichtung 10D ferner den Ausgabepuffer 50.
-
Der Datenmusteranalysator 20D enthält einen Musteranalysator 27 und einen Ermittler 28. Ein beispielhafter Betrieb der Datenkomprimierungsvorrichtung 10D wird bezüglich der in 3 beispielhaft dargestellten Tabelle diskutiert.
-
Bezüglich den 3 und 5 zählt der Musteranalysator 27 die Häufigkeiten 10, 100, 1000, 2, 5, 50, etc. der jeweiligen Zeichen AA, BB, CC, DD, EE, FF, etc., die in den Eingabendaten DATA enthalten sind, und weist den jeweiligen Zeichen AA, BB, CC, DD, EE, FF, etc., gemäß einer Codierungsregel die Passwörter 1011, 101, 10, 10101, 10001, 110, etc. zu. Der Musteranalysator 27 übertragt dann die Häufigkeiten 10, 100, 1000, 2, 5, 50, etc. und die Passwörter 1011, 101, 10, 10101, 10001, 110, etc. an den Ermittler 28.
-
Der Ermittler 28 ermittelt die Größe der ermittelten Daten ECDATA basierend auf den empfangenen Häufigkeiten 10, 100, 1000, 2, 5, 50, etc. und den Anzahlen an Bits 4, 3, 2, 5, 5, 3, etc. der jeweiligen Passwörter 1011, 101, 10, 10101, 10001, 110, etc. gemäß Gleichung 1. Der Ermittler 28 vergleicht dann die Größe der ermittelten Daten ECDATA mit der Größe der Referenzdaten, erzeugt einen Analysecode INF4 gemäß einem Vergleichsergebnis und gibt den Analysecode INF4 an den Datenkomprimierungsmanager 40 aus.
-
Wenn die Größe der ermittelten Daten ECDATA kleiner als die Größe der Referenzdaten ist (z. B. ist die Komprimierungseffizienz sehr gut), komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi gemäß dem Analysecode INF4 (z. B. mit einem zweiten Wert, wie z. B. 0), der vom Datenmusteranalysator 20D ausgegeben wird, und gibt die komprimierten Daten CDATA an den Ausgabepuffer 50 aus. Wenn jedoch die Größe der ermittelten Daten ECDATA größer als die Größe der Referenzdaten ist (z. B. ist die Komprimierungseffizienz nicht so gut), gibt der Datenkomprimierungsmanager 40 die gepufferten Daten BDi gemäß dem Analysecode INF4 (z. B. mit einem ersten Wert wie z. B. 1) vom Datenmusteranalysator 20D aus. Bei diesem Beispiel zeigt eine Größe der ermittelten Daten ECDATA, die kleiner als die Größe der Referenzdaten ist, an, dass eine sehr gute Komprimierungseffizienz vorliegt, wobei eine Größe der ermittelten Daten ECDATA, die größer als die Größe der Referenzdaten ist, anzeigt, dass keine gute Komprimierungseffizienz vorliegt.
-
13 zeigt ein Blockdiagramm einer Datenkomprimierungsvorrichtung 1310 gemäß einer weiteren beispielhaften Ausführungsform erfinderischer Konzepte.
-
Bezüglich 13 enthält die Datenkomprimerungsvorrichtung 1310 einen Datenmusteranalysator 1320, den Eingabepuffer 30 und den Datenkomprimierungsmanager 40. In zumindest dieser beispielhaften Ausführungsform enthält die Datenkomprimierungsvorrichtung 1310 ferner den Ausgabepuffer 50.
-
Der Datenmusteranalysator 1320 enthält einen Kopfsequenzanalysator 1325 und einen Musteranalysator 1327. Der Datenmusteranalysator 1320, dargestellt in 13, ist ähnlich den Datenmusteranalysatoren 20A in 1A und 20B in 20, außer dass der Datenmusteranalysator 1320 sowohl einen Kopfsequenzanalysator 1325 als auch einen Musteranalysator 1327 enthält. Ein Beispielbetrieb der Datenkomprimierungsvorrichtung 1310 wird nachfolgend bezüglich des Flussdiagramms, das in 6 dargestellt ist, detailliert beschrieben.
-
Bezüglich 13 erfasst der Kopfsequenzanalysator 1325, ob die Eingabedaten DATA eine Kopfsequenz HEADER enthalten. Falls die Eingabedaten DATA eine Kopfsequenz HEADER enthalten, analysiert der Kopfsequenzanalysator 1325 ein Anzeigebit, das in der Kopfsequenz HEADER der Eingabedaten DATA enthalten ist, und erzeugt, basierend auf der Analyse des Anzeigebits, den Analysecode INF1. Der Analysecode INF1 und das Anzeigebit, die bezüglich 13 diskutiert sind, sind gleich oder zumindest im Wesentlichen gleich dem Analysecode INF1 und dem Anzeigebit, die vorstehend beispielsweise bezüglich 1A diskutiert sind.
-
Wie in 1A bei diesem Beispiel dargestellt, gibt der Kopfsequenzanalysator 1325 den Analysecode INF1 mit dem ersten Wert (z. B. 1) aus, wenn das Anzeigebit den ersten Wert (z. B. 1) bat, und gibt einen Analysecode INF1 mit dem zweiten Wert (z. B. 0) aus, wenn das Anzeigebit den zweiten Wert (z. B. 0) hat.
-
Ferner, bezüglich 13, enthält der Datenmusteranalysator 1320 auch einen Musteranalysator 1327. Falls der Kopfsequenzanalysator 1325 keine Kopfsequenz HEADER in den Eingabedaten DATA erfasst, empfängt der Musteranalysator 1327 die Eingabedaten DATA, analysiert ein Muster der Eingabedaten DATA und gibt einen Analysecode INF2 basierend auf dem Analyseergebnis aus. In diesem Fall analysiert der Musteranalysator 1327 das Muster von allen Eingabedaten DATA.
-
Bei diesem Beispiel zählt der Musteranalysator 1327 eine Häufigkeit von jedem der Mehrzahl der Zeichen, die in den Eingabedaten DATA enthalten sind, vergleicht die (maximale oder minimale) Häufigkeit mit einem Referenzwert und gibt ein Vergleichsergebnis als Analysecode INF2 an den Datenkomprimierungsmanager 40 aus. Wie vorstehend diskutiert, kann ein einzelnes Zeichen k Bits enthalten, wobei „k” eine natürliche Zahl ist. Zum Beispiel ist k = 8.
-
Der Eingabepuffer 30 puffert die Eingabedaten DATA, die von Datenbits empfangen werden, und gibt die gepufferten Daten BDi aus. Bei einem Beispiel, wenn die Eingabedaten DATA Multibitdaten mit einer Anzahl von „a” Bits sind, können die gepufferten Daten BDi auch Multibitdaten mit einer Anzahl von „b” Bits sein. In diesem Fall sind „a” und „b” natürliche Zahlen, und a = b oder „b” ist ein ganzzahliges Vielfaches von „a”.
-
Ferner, bezüglich 1A, komprimiert der Datenkomprimierungsmanager 40 die gepufferten Eingabedaten BDi basierend auf dem Analyseergebnis INF1 oder INF2, das vom Datenmusteranalysator 1320 ausgegeben wird, selektiv. Der Datenkomprimierungsmanager 40 gibt dann die gepufferten Daten BDi vom Eingabepuffer 30, oder komprimierte Daten CDATA, die durch Komprimieren der gepufferten Daten BDi erzeugt werden, aus. Das heißt, der Datenkomprimierungsmanager 40 umgeht die Komprimierung der gepufferten Daten BDi oder komprimiert die gepufferten Daten BDi, um die komprimierten Daten CDATA zu erzeugen.
-
Bei einem Beispiel, wenn der Analysecode INF1 oder INF2 den zweiten Wert (z. B. 0) hat, komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi vom Eingabepuffer 30, um die komprimierten Daten CDATA zu erzeugen, und gibt die komprimierten Daten CDATA an den Ausgabepuffer 50 aus. Wenn hingegen der Analysecode INF1 oder INF2 den ersten Wert (z. B. 1) hat, gibt der Datenkomprimierungsmanager 40 die gepufferten Daten BDi an den Ausgabepuffer 50 ohne Komprimierung aus.
-
In der in 1A dargestellten beispielhaften Ausführungsform enthält der Datenkomprimierungsmanager 40 einen Speicher 41, einen Prozessor 43 und einen Selektor 45. Der Speicher 41 empfangt und speichert den Analysecode INF1 oder INF2. Der Selektor 45 gibt die gepufferten Daten BDi an den Ausgabepuffer 50 aus, oder überträgt die gepufferten Daten BDi an den Prozessor 43 zur Komprimierung basierend auf dem Analysecode INF1 oder INF2, der im Speicher 41 gespeichert ist. Falls z. B. der Analysecode INF1 oder INF2 den ersten Wert hat, gibt der Selektor 45 die gepufferten Daten BDi an den Ausgabepuffer 50 aus. Falls der Analysecode INF1 oder INF2 jedoch den zweiten Wert hat, gibt der Selektor die gepufferten Daten BDi zur Komprimierung an den Prozessor 43 aus. Der Datenkomprimierungsmanager 40 komprimiert die gepufferten Daten BDi, die vom Selektor 45 ausgegeben werden, um die komprimierten Daten CDATA zu erzeugen, und gibt die komprimierten Daten CDATA an den Ausgabepuffer 50 aus.
-
Der Ausgabepuffer 50 empfängt und puffert die Daten (z. B. die gepufferte Daten BDi oder die komprimierten Daten CDATA) vom Datenkomprimierungsmanager 40. Die Daten werden dann vom Ausgabepuffer 50 an den nichtflüchtigen Speicher ausgegeben.
-
6 zeigt ein Flussdiagramm zum Erläutern eines Beispielbetriebs einer Datenkomprimierungsvorrichtung gemäß einer beispielhaften Ausführungsform. Das bezüglich 6 diskutierte Verfahren kann zusammen mit einer Datenkomprimierungsvorrichtung mit einem Datenmusteranalysator einschließlich einem Kopfsequenzanalysator und einem Musteranalysator verwendet werden. Eine beispielhafte Ausführungsform einer solchen Komprimierungsvorrichtung ist in 13 dargestellt. Gemäß dem in 6 dargestellten Verfahren wird nachfolgend die Datenkomprimierungsvorrichtung 1310, dargestellt in 13, beschrieben.
-
Bezüglich den 6 und 13 erfasst der Kopfsequenzanalysator 1325 in S10, ob die Eingabedaten DATA eine Kopfsequenz HEADER enthalten. Falls der Kopfsequenzanalysator 1325 bei S30, basierend auf dem Eingabebit, das in der Kopfsequenz HEADER enthalten ist, bestimmt, dass die Eingabedaten DATA die Kopfsequenz HEADER enthalten, bestimmt der Kopfsequenzanalysator 1325, ob die Eingabedaten DATA bereits komprimiert sind. Der Kopfsequenzanalysator 1325 bestimmt, dass die Eingabedaten DATA bereits komprimiert sind, wenn das Anzeigebit, das in der Kopfsequenz HEADER enthalten ist, anzeigt, dass die Daten im Rumpf DATA1 komprimiert worden sind.
-
Falls der Kopfsequenzanalysator 1325 bei S30 bestimmt, dass der Rumpf DATA1 komprimierte Daten darstellt, überträgt der Kopfsequenzanalysator 1325 den Analysecode INF1, der anzeigt, dass die Eingabedaten DATA bereits komprimiert sind, an den Datenkomprimierungsmanager 40. Als Ergebnis gibt der Datenkomprimierungsmanager 40 die (leitet die Komprimierung der) gepufferten Daten BDi (vorbei) bei S32 an den Ausgabepuffer 50 ohne Komprimierung aus. Die gepufferten Daten BDi, die durch den Datenkomprimierungsmanager 40 umgangen sind, werden dann in der nichtflüchtigen Speichervorrichtung direkt oder über den Ausgabepuffer 50 bei S36 gespeichert.
-
Rückkehrend zu S30, falls der Kopfsequenzanalysator 1325 bestimmt, dass die Daten im Rumpf DATA1 unkomprimierte Daten sind, überträgt der Kopfsequenzanalysator 1325 den Analysecode INF1, der anzeigt, dass die Daten im Rumpf DATA1 unkomprimierte Daten sind, an den Datenkomprimierungsmanager 40. In Reaktion auf den Analysecode INF1 komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi, um die komprimierten Daten CDATA bei S34 zu erzeugen. Die komprimierten Daten CDATA, die vom Datenkomprimierungsmanager 40 ausgegeben werden, werden dann bei S36 direkt oder durch den Ausgabepuffer 50 in einer nichtflüchtigen Speichervorrichtung gespeichert.
-
Rückkehrend zu S20 in 6, falls der Kopfsequenzanalysator 1325 bestimmt, dass die Kopfsequenz HEADER nicht in den Eingabedaten DATA bei S20 existiert, läuft der Prozess, wie nachfolgend bezüglich 7 diskutiert, weiter.
-
7 zeigt ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens einer Datenkomprimierungsvorrichtung. Das in 7 dargestellte Verfahren kann z. B. zusammen mit den Datenkomprimierungsvorrichtungen 10B, 10C und/oder 1310 implementiert sein. Zu Erläuterungszwecken wird nachfolgend das in 7 dargestellte Flussdiagramm bezüglich der in 2 dargestellten Datenkomprimierungsvorrichtung 10B beschrieben. Dabei sollte jedoch beachtet werden, dass die Datenkomprimierungsvorrichtung 1310 die gleichen oder im Wesentlichen gleichen Betriebe durchführen kann.
-
Bezüglich 7 sucht der Musteranalysator 23 von 2 nach einem Muster der Eingabedaten DATA bei S40. Der Musteranalysator 23 analysiert dann ein Muster der Eingabedaten DATA bei S42. Bei diesem Beispiel zählt der Musteranalysator 23 die Häufigkeit von jeder Zeichen, das in den Eingabedaten DATA enthalten ist. Bei S44 vergleicht der Musteranalysator 23 die maximale Häufigkeit (oder minimale Häufigkeit) der gezählten Häufigkeiten mit dem Referenzwert.
-
Falls die maximale Häufigkeit (oder minimale Häufigkeit) größer oder gleich dem Referenzwert ist, überträgt der Musteranalysator 23 den Analysecode INF2, der anzeigt, dass die gepufferten Daten BDi komprimiert werden sollten, an den Datenkomprimierungsmanager 40. In Erwiderung auf den Analysecode INF2 komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi bei S46. Die komprimierten Daten CDATA werden bei S50 dann entweder direkt oder durch den Ausgabepuffer 50 in der nichtflüchtigen Speichervorrichtung gespeichert.
-
Rückkehrend zu S44, wenn die maximale Häufigkeit (oder die minimale Häufigkeit) kleiner als der Referenzwert ist, überträgt der Musteranalysator 23 den Analysecode INF2, der anzeigt, dass die gepufferten Daten BDi nicht komprimiert werden müssen, an den Datenkomprimierungsmanager 40. In Reaktion auf den Analysecode INF2 gibt der Datenkomprimierungsmanager 410 die gepufferten Daten BDi bei S48 ohne Komprimierung an den Ausgabepuffer 50 aus. Die gepufferten Daten BDi, die im Ausgabepuffer 50 gespeichert sind, werden dann bei S50 in der nichtflüchtigen Speichervorrichtung gespeichert.
-
8 zeigt ein Flussdiagramm zum Erläutern einer weiteren beispielhaften Ausführungsform des Betriebsverfahrens einer Datenkomprimierungsvorrichtung. Das in 8 dargestellte Verfahren kann zusammen mit der in 5 dargestellten Datenkomprimierungsvorrichtung 10D implementiert sein.
-
Bezüglich 8 sucht der Musteranalysator 27 von 5 bei S40 ein Muster der Eingabedaten DATA.
-
Bei S60 zählt der Musteranalysator 27 die Häufigkeit von jedem Zeichen, das in den Eingabedaten DATA enthalten ist, weist jedem der Zeichen gemäß einer Codierungsregel ein Passwort zu und gibt die Häufigkeit von jedem Zeichen und das jedem Zeichen zugewiesene Passwort an den Ermittler 28 aus.
-
Bei S80 berechnet der Ermittler 28 die Größe der ermittelten Daten ECDATA unter Verwendung der Häufigkeit von jedem Zeichen, das vom Musteranalysator 27 ausgegeben wird, und der Anzahl von Bits des Passworts, das jedem der Zeichen zugewiesen wird, gemäß Gleichung 1.
-
Bei S82 vergleicht der Ermittler 28 die Größe der ermittelten Daten ECDATA mit der Größe der Referenzdaten.
-
Falls die Größe der ermittelten Daten ECDATA größer als die der Referenzdaten ist, überträgt der Ermittler 28 den Analysecode INF4 der anzeigt, dass die gepufferten Daten BDi nicht komprimiert werden müssen, an den Datenkomprimierungsmanager 40. Als Ergebnis gibt der Datenkomprimierungsmanager 40 die gepufferten Daten BDi bei S84 ohne Komprimierung an den Ausgabepuffer 50 aus. Die gepufferten Daten BDi, die im Ausgabepuffer 50 gespeichert sind, werden dann bei S88 in der nichtflüchtigen Speichervorrichtung gespeichert.
-
Rückkehrend zu S82, wenn die Größe der ermittelten Daten ECDATA kleiner oder gleich der der Referenzdaten ist, überträgt der Ermittler 28 den Analysecode INF4, der anzeigt, dass die gepufferten Daten BDi komprimiert werden sollten, an den Datenkomprimierungsmanager 40. In Reaktion auf den Analysecode INF4 komprimiert der Datenkomprimierungsmanager 40 bei S86 die gepufferten Daten BDi. Die komprimierten Daten CDATA werden dann bei S88 entweder direkt oder über den Ausgabepuffer 50 in der nichtflüchtigen Speichervorrichtung gespeichert.
-
Gemäß zumindest manchen beispielhaften Ausführungsformen zählt der Musteranalysator 27 die Häufigkeit von jedem Zeichen, die in den Eingabedaten. DATA enthalten sind und weist jedem Zeichen gemäß einer Codierungsregel ein Passwort zu. Die Codierungsregel kann eine Huffman-Codierungsregel, eine Lempel-Zip-Welch(LZW)-Codierungsregel, eine arithmetische Codierungsregel, eine Lauflängenendcodierung (RLE), oder eine andere passende Codierungsregel sein. Die Huffman-Codierungsregel kann eine statische Huffman-Codierungsregel oder eine dynamische Huffman-Codierungsregel sein.
-
9 zeigt ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens des Musteranalysators 27 von 5 unter Verwendung einer statischen Huffman-Codierungsregel.
-
Bezüglich 5 und 9 sucht der Musteranalysator 27 bei S40 nach einem Muster der Eingabedaten DATA. Jedes Mal, wenn in den Eingabedaten DATA bei S61 ein Zeichen gefunden wird, erhöht der Musteranalysator 27 (oder vermindert) die Häufigkeit des entsprechenden Zeichens bei S62 um + 1.
-
Der Musteranalysator 27 bestimmt dann bei S63, ob das Ende der Eingabedaten DATA erreicht worden ist. Falls das Ende der Eingabedaten DATA erreicht worden ist zählt der Musteranalysator 27 die Häufigkeit von jedem Zeichen, das in den Eingabedaten DATA enthalten ist und weist jedem Zeichen gemäß einer Codierungsregel bei S64 ein Passwort zu. Bei diesem Beispiel ist die Codierungsregel eine statische Huffman-Codierungsregel.
-
Rückkehrend zu S63, falls das Ende der Eingabedaten DATA nicht erreicht worden ist, schreitet der Prozess zu S40 zurück und fährt für ein nächstes Zeichen in den Eingabedaten DATA wie vorstehend diskutiert fort.
-
Rückkehrend zu S61, falls der Musteranalysator 27 in den Eingabedaten DATA kein Zeichen findet, schreitet der Prozess zu S673 voran und fährt wie vorstehend diskutiert fort.
-
10 zeigt ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens des Musteranalysators 27 von 5 unter Verwendung einer dynamischen Huffman-Codierungsregel.
-
Bezüglich 5 und 10 sucht der Musteranalysator 27 bei S40 nach einem Muster der Eingabedaten DATA.
-
Wenn ein in den Eingabedaten DATA enthaltenes Zeichen bei S66 gefunden wird, bestimmt der Musteranalysator 27 bei S67, ob das Zeichen ein neues Zeichen ist,. Falls das Zeichen ein neues Zeichen ist, fügt der Musteranalysator 27 das Zeichen bei S68 zu einer Zeichenliste hinzu und erhöht (oder verringert) die Häufigkeit des entsprechenden Zeichens bei S69 um + 1.
-
Der Musteranalysator 27 überprüft dann, ob das Ende der Eingabedaten DATA erreicht worden ist. Falls das Ende der Eingabedaten DATA bei S70 erreicht worden ist, zählt der Musteranalysator 27 die Häufigkeit von jedem Zeichen, das in den Eingabedaten DATA enthalten ist und weist bei S79 gemäß einer Codierungsregel jedem Zeichen ein Passwort zu. Bei diesem Beispiel ist die Codierungsregel eine dynamische Huffman-Codierungsregel.
-
Rückkehrend zu S70, falls das Ende der Eingabedaten DATA nicht erreicht worden ist, schreitet der Prozess zu S40 zurück und fährt für den verbleibenden Abschnitt der Eingabedaten DATA wie vorstehend diskutiert fort.
-
Rückkehrend zu S67, wenn ein gefundenes Zeichen kein neues Zeichen ist, schreitet der Prozess zu S69 voran und fährt wie vorstehend diskutiert fort.
-
Rückkehrend zu S66, falls ein Zeichen nicht in den Eingabedaten DATA gefunden wird, schreitet der Prozess zu S70 voran und fährt wie vorstehend diskutiert fort.
-
14 zeigt ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens der Datenkomprimierungsvorrichtung 10A von 1A.
-
Bezüglich den 1A und 14 bestimmt der Kopfsequenzanalysator 21 bei S1402, ob die Eingabedaten DATA bereits komprimiert sind, basierend auf dem Anzeigebit, das in der Kopfsequenz HEADER enthalten ist. Der Kopfsequenzanalysator 21 bestimmt, dass die Eingabedaten DATA bereits komprimiert sind, wenn das Anzeigebit, das in der Kopfsequenz HEADER enthalten ist, anzeigt, dass die Daten, die im Rumpf DATA1 enthalten sind, komprimiert worden sind.
-
Falls der Kopfsequenzanalysator 21 bei S1402 bestimmt, dass die Daten im Rumpf DATA1 komprimierte Daten sind, überträgt der Kopfsequenzanalysator 21 den Analysecode INF1, der anzeigt, dass die Daten bereits komprimiert sind, an den Datenkomprimierungsmanager 40. Als Ergebnis gibt der Datenkomprimierungsmanager 40 bei S1406 die (leitet die Komprimierung der) gepufferten Daten BDi (vorbei) an den Ausgabepuffer 50 ohne Komprimierung aus. Die gepufferten Daten BDi, die durch den Datenkomprimierungsmanager 40 umgangen sind, werden dann bei S1408 direkt oder über den Ausgabepuffer 50 in einer nichtflüchtigen Speichervorrichtung gespeichert.
-
Rückkehrend zu S1402, falls der Kopfsequenzanalysator 21 bestimmt, dass die Daten im Rumpf DATA1 unkomprimierte Daten sind, überträgt der Kopfsequenzanalysator 21 den Analysecode INF1, der anzeigt, dass die Daten im Rumpf DATA1 unkomprimierte Daten sind, an den Datenkomprimierungsmanager 40. In Reaktion auf den Analysecode INF1 komprimiert der Datenkomprimierungsmanager 40 bei S1404 die gepufferten Daten BDi, um die komprimierten Daten CDATA zu erzeugen. Die komprimierten Daten CDATA, die vom Datenkomprimierungsmanager 40 ausgegeben werden, werden dann direkt oder über den Ausgabepuffer 50 bei S1408 in einer nichtflüchtigen Speichervorrichtung gespeichert.
-
15 zeigt ein Flussdiagramm zum Erläutern einer beispielhaften Ausführungsform eines Betriebsverfahrens der Datenkomprimierungsvorrichtung 10C von 4.
-
Bei S1502 bestimmt der Kopfsequenzanalysator 25 durch Analysieren eines Anzeigebits, das in der Kopfsequenz HEADER der Eingabedaten DATA enthalten ist, ob die Eingabedaten DATA komprimierte Daten sind. Falls das Anzeigebit den ersten Wert (z. B. 1) hat, der anzeigt, dass die Daten im Rumpf DATA1 komprimierte Daten sind, untersagt der Kopfsequenzanalysator 25 den Betrieb des Ermittlers 26 bei S1504 durch Ausgeben eines Steuersignals mit einem ersten Wert (z. B. einem Steuersignal mit einem niedrigen Pegel) an den Ermittler 26. Bei S1506 gibt der Kopfsequenzanalysator 25 den Analysecode INF3 an den Datenkomprimierungsmanager 40 aus, der den Datenkomprimierungsmanager 40 anweist, die Komprimierung der gepufferten Daten BDi vorbeizuleiten.
-
Rückkehrend zu S1502, falls das Anzeigebit den zweiten Wert (z. B. 0) hat, der anzeigt, dass die Daten im Rumpf DATA1 unkomprimierte Daten sind, aktiviert der Kopfsequenzanalysator 25 den Betrieb des Ermittlers 26 bei S1508 durch Ausgeben eines Steuersignals (z. B. ein Aktivierungssteuersignal mit einem hohen Pegel) an den Ermittler 26.
-
Bei S1510 ermittelt der Ermittler 26 die Größe der komprimierten Daten CDATA, wie vorstehend bezüglich 4 diskutiert.
-
Bei S1512 vergleicht der Ermittler 26 die ermittelte Größe der komprimierten Daten (hiernach als „ermittelte Daten ECDATA” bezeichnet) mit der Größe der Referenzdaten. Die diesbezüglich diskutierten Referenzdaten sind gleich den vorstehend diskutierten Referenzdaten.
-
Falls die Größe der ermittelten Daten ECDATA größer als die der Referenzdaten ist, überträgt der Ermittler 26 den Analysecode INF3, der anzeigt, dass die gepufferten Daten BDi nicht komprimiert werden müssen, an den Datenkomprimierungsmanager 40. Als Ergebnis gibt der Datenkomprimierungsmanager 40 die gepufferten Daten BDi bei S1506 ohne Komprimierung an den Ausgabepuffer 50 aus. Die gepufferten Daten BDi, die im Ausgabepuffer 50 gespeichert sind, werden dann bei S1516 in der nichtflüchtigen Speichervorrichtung gespeichert.
-
Rückkehrend zu S1512 wenn die Größe der ermittelten Daten ECDATA kleiner oder gleich der der Referenzdaten ist, überträgt der Ermittler 26 den Analysecode INF3, der anzeigt, dass die gepufferten Daten BDi komprimiert werden sollen an den Datenkomprimierungsmanager 40. Bei S1514 komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi in Reaktion auf den Analysecode INF3. Die komprimierten Daten CDATA werden dann bei S1516 entweder direkt oder über den Ausgabepuffer 50 in der nichtflüchtigen Speichervorrichtung gespeichert.
-
11 stellt ein Datenverarbeitungssystem 100 gemäß einer beispielhaften Ausführungsform erfinderischer Konzepte dar. Das Datenverarbeitungssystem 100 kann eine beispielhafte Ausführungsform einer Datenkomprimierungsvorrichtung 10A, 10B, 10C, 10D oder 1310 der 1A, 2, 4, 5, oder 13 enthalten. Das Datenverarbeitungssystem 100 kann durch ein Festkörperlaufwerk (SSD) oder dergleichen ausgebildet sein.
-
Das Datenverarbeitungssystem 100 enthält einen Datenmusteranalysator 20, welcher einer der Datenmusteranalysatoren 20A bis 20D und 1320 sein kann.
-
Bezüglich 11 enthält das Datenverarbeitungssystem (oder das Datenverarbeitungsgerät) 100 eine Speichersteuerung 19 eine Mehrzahl von Flash-Speicher (z. B. NAND)-Vorrichtungen 141. Die Speichersteuerung 90 enthält eine Host-Schnittstelle 101 einschließlich dem Datenmusteranalysator 20, den Datenkomprimierungsmanager 40, einen Hauptprozessor 110, einen flüchtigen Speicher 120, und eine Flash-Management-Steuerung (FMC) 140. Jedes der Elemente 40, 101, 110, 120 und 140 kann Datenverbindungen über einen Datenbus 100-1 durchführen. Die Hostschnittstelle 101 führt Schnittstellenfunktionen zur Datenverbindung zwischen einem Host (nicht dargestellt) und der Speichersteuerung 90 durch.
-
Bei einem Beispiel kann der flüchtige Speicher 120 durch einen dynamischen Direktzyklusspeicher (DRAM) ausgebildet sein und Funktionen des Eingabepuffers 30 und des Ausgabepuffers 50, dargestellt in den 1A, 2, 4, 5, oder 13, durchführen.
-
Während die Eingabedaten DATA, die vom Host ausgegeben werden über einen ersten Datenpfad PFAD1 an die flüchtigen Speicher 120 übertragen werden, empfängt der Datenmusteranalysator 20 die Eingabedaten DATA und analysiert ein Muster der empfangenen Eingabedaten DATA. Das Muster der Eingabedaten DATA wird gemäß einem oder mehrerer der beispielhaften Verfahren, die vorstehend bezüglich 1A bis 10, 13, 14 und 15 beschrieben sind, analysiert.
-
Der Datenmusteranalysator 20 überträgt die Analysecodes INF1, INF2, INF3, oder INF4 gemäß einem Analyseergebnis über den Bus 100-1 an den Datenkomprimierungsmanager 40.
-
Falls die Analysecodes INF, INF2, INF3, oder INF4 anzeigen, dass die Daten nicht komprimiert werden müssen, gibt der Datenkomprimierungsmanager 40 die gepufferten Daten BDi, die vom Eingangspuffer 30 des flüchtigen Speichers 120 gelesen werden, über einen zweiten Datenpfad PFAD2 um die Komprimierung aus und speichert die gepufferten Daten BDi im Ausgabepuffer 50 des flüchtigen Speichers 120.
-
Falls die Analysecodes INF1, INF2, INF3, oder INF4 anzeigen, dass die Daten komprimiert werden sollten, komprimiert der Datenkomprimierungsmanager 40 die gepufferten Daten BDi, die vom Eingabepuffer 30 des flüchtigen Speichers 120 gelesen werden, über den zweiten Datenpfad PFAD2 und speichert die komprimierten Daten CDATA im Ausgabepuffer 50 des flüchtigen Speichers 120.
-
Die im Ausgabepuffer 50 des flüchtigen Speichers 120 gespeicherten Daten (z. B. die gepufferten Daten BDi oder die komprimierten Daten CDATA) werden an den FMC 140 über einen dritten Datenpfad PFAD3 übertragen. Die gepufferten Daten BDi oder die komprimierten Daten CDATA werden dann gemäß der Steuerung der FMC 140 zumindest an die Flash-Speichervorrichtung 141 ausgegeben.
-
12 stellt ein Datenverarbeitungssystem gemäß einer beispielhaften Ausführungsform dar. Das Datenverarbeitungssystem, das in 12 dargestellt ist, enthält die Datenkomprimierungsvorrichtung 10A, 10B, 10C, 10D, oder 1310 der 1A, 2, 4, 5, oder 13.
-
Bezüglich 12 kann das Datenverarbeitungssystem (oder das Datenverarbeitungsgerät) 200 durch eine Smart-Cord, eine Speicherkarte oder dergleichen ausgebildet sein. Wie in 12 dargestellt, enthält das Datenverarbeitungssystem 200 eine Kartenschnittstelle 210, eine Speichersteuerung 220 und eine nichtflüchtige Speichervorrichtung 230.
-
Die Speichersteuerung 220 enthält die Datenkomprimierungsvorrichtung 10, welche eine oder mehrere Datenkomprimierungsvorrichtungen 10A, 10B, 10C, 10D und 1310 darstellt. Bei zumindest manchen beispielhaften Ausführungsformen kann die Datenkomprimierungsvorrichtung 10 extern zur Speichersteuerung 220 angeordnet sein.
-
Die Kartenschnittstelle 210 steuert den Austausch von Daten zwischen einer Speichersteuerung 220 und dem Host (nicht dargestellt). Die Speichersteuerung 220 steuert den Betrieb der nichtflüchtigen Speichervorrichtung 230, z. B. einen Programmierbetrieb, einen Lesebetrieb, und/oder einen Löschbetrieb.
-
Während Daten DATA, die vom Host ausgegeben werden und durch die Kartenschnittstelle 210 eingegeben werden, an den Eingabepuffer 30 übertragen werden, analysiert die Datenkomprimierungsvorrichtung 10 ein Muster der Daten DATA. Basierend auf dieser Analyse komprimiert die Datenkomprimierungsvorrichtung 10 die gepufferten Daten BDi selektiv und gibt die gepufferten Daten BDi oder die komprimierten Daten CDATA an die nichtflüchtige Speichervorrichtung 230 aus.
-
Wie vorstehend gemäß zumindest mancher beispielhafter Ausführungsformen beschrieben, während Daten an den Eingabepuffer übertragen werden, wird ein Muster der Daten analysiert und es wird gemäß einem Analyseergebnis bestimmt, ob die Daten zu komprimieren sind, so dass die Datenkomprimierungszeiten reduziert werden können.
-
Beispielhafte Ausführungsformen werden vorliegend bezüglich der Referenzwerte diskutiert. Diese Referenzwerte sind Konstruktionsparameter, die basierend auf empirischen Studien und/oder Daten bestimmt bzw. festgelegt sind.
-
Während erfinderische Konzepte bezüglich mancher beispielhafter Ausführungsformen genauer dargestellt und beschrieben worden sind, ist zu verstehen, dass verschiedene Änderungen der Form und der Details vorgenommen werden können, ohne dabei vom Geist und Umfang der nachfolgenden Ansprüche abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- KR 10-2011-0005575 [0001]