Wie man die für ein Graustufenvideo benötigten Bytes berechnet

521
Oliver Larsen

Was ist der minimale Speicher (in Bytes) zum Speichern eines Graustufenvideos von fünf Sekunden mit einer Bildrate von 14 Bildern pro Sekunde, in dem die Abmessung jedes Bilds 480 x 320 beträgt? Für jedes Pixel in diesem Video müssen mindestens 6 verschiedene Status gespeichert werden können

Bei ähnlichen Fragen an der Tafel nahm ich an, dass die Berechnung in etwa so aussehen würde:

480 * 320 * 8 bit * 14 fps * 5 Sekunden = 8601600

8601600/8 = 10752000 Bytes

Die richtige Antwort lautet: 4032000, aber ich verstehe nicht, wie das berechnet wurde oder was mit 6 Status gemeint ist.

0
Ist das eine Hausaufgabe? 8 Bit kann 256 Zustände eines Pixels speichern, Sie benötigen jedoch nur 6. Haben Sie eine feste Byte-Größe? Kannst du Kompression machen? ... Máté Juhász vor 7 Jahren 1
Was waren diese "ähnlichen Fragen"? Máté Juhász vor 7 Jahren 0
Eher wie eine Prüfung aus dem letzten Jahr versuche ich zu verstehen. Es gibt keine Komprimierung. Die ähnlichen Fragen: http://superuser.com/questions/829056/how-to-calculate-bytes-need-for-an-imimage-with-256-level-gray-scale?newreg=2888100354bd478bb5a99f6883d959d1 - http: // stackoverflow.com/questions/27559103/video-size-calculation - Ich weiß nur, was ich zitiert habe, aber ich gehe davon aus, dass die Bytegröße nicht festgelegt ist, nein. Oliver Larsen vor 7 Jahren 0
Es gibt sechs verschiedene Graustufen. Sie können also weder 1 Bit für Farbe verwenden, noch würde es sinnvoll sein, 32 Bit zu verwenden. Verwenden Sie die minimale Anzahl von Bits, über die Sie verfügen, und geben Sie für sechs verschiedene Graustufen an, und führen Sie die Berechnung so aus, wie Sie es getan haben. Seth vor 7 Jahren 0
@Seth die Frage ist nicht klar, 3 Bits können 8 verschiedene Zustände haben, es ist also gut, die 6 Farben hier zu speichern. Beispielsweise können 8 Pixel eine Gesamtzahl von 6 ^ 8 Zuständen haben, die auf 21 Bits (2 ^ 21> 6 ^ 8) statt auf 24 gespeichert werden können. Und es gibt noch weiteren Raum für die Optimierung ... Máté Juhász vor 7 Jahren 2
@Seth Danke, das hat es einfacher gemacht zu verstehen .. warum aber durch 16 teilen? wenn 480 x 320 x 6 Bit x 14 fps x 5 Sekunden = 645152000 -> 645152000/16 = 4032000 Oliver Larsen vor 7 Jahren 0
Es ist ziemlich klar, da es nach dem "Minimum Memory" und einer künstlichen Schulbuchfrage (keine Komprimierung usw.) fragt. Es speichert also 14 * 5 Datenstrukturen mit einer Auflösung von 470 * 320 Pixeln. Die Variable, die Sie belassen, ist die Anzahl der Bits für die Farbtiefe. Das absolute Minimum, das Sie benötigen, wäre das kleinste 2 ^ n, dh> = 6, das wäre 2 ^ 3. Wenn Sie Informationen über die Datenstruktur haben, müssen Sie entsprechend anpassen, zB wäre der kleinstmögliche Wert für [Bitmaps] (https://en.wikipedia.org/wiki/BMP_file_format#Pixel_storage) 4. Seth vor 7 Jahren 0
Mein Kommentar enthält zwar die Antwort, aber die Division durch 16 ist falsch, selbst wenn Sie das gleiche Ergebnis erzielen würden. Sie sollten in Ihrem Lernmaterial nachlesen, wie die Konvertierung von Dezimal zu Binär funktioniert. Sie müssen die minimale Anzahl von Bits ermitteln, die Sie für sechs verschiedene Zustände benötigen. Um eine magische Software zu erhalten, weisen Sie jedem dieser Zustände einen Grauwert zu und zeigen Sie das Video an. Seth vor 7 Jahren 0
@Seth Mhh .. warte. Also muss ich meine dezimalzahl in binär konvertieren? so base 2 100110011101000011110100000000 länge 30 .. das ist die geringste bis 2 ^ 4 = 16 also 480 * 320 * 6 * 14 * 5 -> 645152000/2 ^ 4 = 4032000 Oliver Larsen vor 7 Jahren 0
Ich habe eine Antwort hinzugefügt, die detaillierter darauf eingeht, was ich getan habe, um zur gewünschten Nummer zu gelangen (die normalerweise erforderlich ist). Sie haben die falsche Zahl konvertiert. Ich hoffe, meine Antwort reicht aus, um das klar zu stellen. Seth vor 7 Jahren 0

1 Antwort auf die Frage

0
Seth

Ok, lass uns das Schritt für Schritt machen. Sie haben bereits die wichtigsten Informationen identifiziert, nämlich:

  • Auflösung von 480x320
  • 14 Bilder pro Sekunde
  • 5 Sekunden Aufnahmezeit
  • 6 verschiedene Status

Es ist alles nur eine einfache Multiplikation dieser Zahlen. Der einzige Haken ist, dass Sie die 6 nicht einfach für die Anzahl der Statuen verwenden können, aber Sie müssen etwas damit tun. Der Text sagt Ihnen, dass diese 6 auf jedes einzelne Pixel in einem Bild für diese Aufnahme anspricht. Als solches ist es (am wahrscheinlichsten) die Farbtiefe. Die Farbtiefe eines Bildes wird normalerweise als die Anzahl von Bits angegeben, mit der die Farbe "codiert" wird. Es wäre ziemlich umständlich, die Namen der Farben jedes Pixels aufzuschreiben (und würde viel mehr Platz beanspruchen).

Sie müssen also diese Dezimalzahl 6 in ihr binäres Äquivalent konvertieren. Es gibt verschiedene Ansätze, wie das geschehen soll, aber das Endergebnis sollte immer die binäre Darstellung 110 sein. Mit dieser Information wissen Sie, dass die minimale Anzahl von Bits zur Darstellung der Dezimalzahl 6 im Binärformat 3 ist.

Wenn es ein IRL-Beispiel wäre, müssten Sie Datenstrukturen und Definitionen berücksichtigen. Für eine Bitmap sieht es beispielsweise so aus, als würden Sie mindestens 4 Bit benötigen. Da in Ihrer Übung keine zusätzlichen Informationen angegeben werden, möchte die Person, die diese Frage gestellt hat, wahrscheinlich 3 Bits als Farbtiefe verwenden.

Nun, da wir alle Details haben, ist es nur:

color depth * resolution * frames per second * seconds 3 bit * (480 pixels * 320 pixels) * 14 * 5 = 32 256 000 bit 32 256 000 bit / 8 bit = 4 032 000 bytes 

Diese Übung überprüft, wann immer Sie die technischen Begriffe verstehen und Dezimalzahlen in Binärzahlen umwandeln können.

Zum Spaß könnten Sie davon ausgehen, dass Sie 105 verschiedene Grautypen benötigen. In diesem Fall würden Sie mit 9187 Kilobytes rechnen.