Was sind die Engpässe in einem normalen CMOS-Sensorchip?

Um es klarzustellen, ich beziehe mich nicht auf eine Verarbeitungsstufe, sondern nur auf Hardware. Was hindert mich daran, es mit einer höheren Rate zu probieren? Wird es ausbrennen oder einfach anfangen, mir Müll zu geben?

Was ist der Grund dafür, dass ein Chip, der 20-MP-Bilder aufnehmen kann, kein 20-MP-Video aufnehmen kann? Ist es die Rate, mit der das Pixelarray Daten überträgt? Belichtungsrate? Elektrisches Rauschen?

Was hindert einen 20-Megapixel-Sensor daran, beispielsweise 240p-Videos mit extrem hohen FPS aufzunehmen?

Haben Sie normalerweise auch die Kontrolle darüber, ob Sie aus dem Pixelarray abtasten können, oder sind Sie gezwungen, dies in vorgegebenen Mustern zu tun? Können Sie zum Beispiel einfach 2x schneller von der Hälfte des Arrays abtasten? Kann diese Hälfte zufällig sein?

Antworten (2)

Was hindert mich daran, es mit einer höheren Rate zu probieren?

Jeder diskrete Schritt in der Operation braucht Zeit. Das Ändern des Werts von Eingängen zu einem Logikgatter braucht Zeit. Sobald sich diese Eingänge stabilisiert haben, braucht es Zeit, um einen stabilen Ausgang vom Gate zu erhalten. Das Platzieren eines neuen Werts auf einem Datenbus braucht Zeit, und das anschließende Signalisieren der anderen Vorrichtung(en), dass die Daten bereit sind, braucht Zeit.

In einem komplizierten Gerät wie einem Bildsensor haben Sie möglicherweise Hunderte oder Tausende von Signalen, die sich parallel ändern und miteinander interagieren, und daher ist ein Synchronisationssignal erforderlich – etwas, das all diese Änderungen auf einmal startet und dann genug zulässt Zeit, bis sich die analogen Signale in allen betroffenen Teilen stabilisiert haben. Diese Synchronisation kommt von einem Taktsignal, das so etwas wie der Herzschlag des Systems ist. Die Periode der Uhr – die Zeit zwischen einem Tick und dem nächsten – muss lang genug sein, um die langsamste Komponente aufzunehmen.

Wird es ausbrennen oder einfach anfangen, mir Müll zu geben?

Höchstwahrscheinlich Müll. Die "Werte", über die wir hier sprechen, sind Spannungen. In der digitalen Elektronik kann der digitale Wert eines bestimmten Signals nur 0 oder 1, ein oder aus sein. Aber diese Werte werden durch analoge Spannungen dargestellt, zum Beispiel könnten Spannungen zwischen 0,0 V und 0,5 V eine logische 0 oder einen falschen Wert darstellen, und Spannungen zwischen 2,4 V und 3,3 V könnten eine 1 oder einen wahren Wert darstellen. Wenn Sie jedoch versuchen, ein Signal zu lesen, bevor es sich stabilisiert hat, kann es irgendwo zwischen 0 V und 3,3 V liegen.

Es besteht jedoch auch die Gefahr, dass ein Gerät dauerhaft beschädigt wird, wenn Sie versuchen, es so schnell laufen zu lassen, dass es die verbrauchte Energie nicht verbrauchen kann. Hitze ist der Feind der Elektronik – Materialien haben im Allgemeinen einen geringeren Widerstand und arbeiten schneller, wenn sie kühl sind.

Was ist der Grund dafür, dass ein Chip, der 20-MP-Bilder aufnehmen kann, kein 20-MP-Video aufnehmen kann?

Es gibt eine Reihe von Faktoren. Erstens müsste die Lesegeschwindigkeit des Sensors geringer sein als der Kehrwert der Bildrate: Wenn Sie ein Video mit 30 fps wünschen, müssten Sie in der Lage sein, den gesamten 20-Mp-Sensor in weniger als 1/30 s zu lesen. Zweitens würde die Kamera auch einen Datenbus benötigen, der diese Rate unterstützen könnte. Ich weiß nicht, wie hoch die Datenbusgeschwindigkeit in einer modernen DSLR ist, aber für 30 fps 20 Mp-Daten benötigen Sie einen 24-Bit-Bus mit etwa 30 * 20.000.000 = 60 MHz, was wahrscheinlich schneller ist als Sie finden würden in den meisten Kameras. Drittens benötigt die Kamera selbst einige Zeit, um die Daten zu verarbeiten – selbst RAW-Dateien werden verarbeitet und bis zu einem gewissen Grad komprimiert. Viertens benötigen Sie einen Ort, an dem Sie all diese Daten speichern können. Selbst eine große SD- oder CF-Karte würde nicht mehr als ein paar Minuten Video mit 20 Mp aufnehmen. Fünfte, die Schreibgeschwindigkeit des Flash-Speichers ist bereits ein limitierender Faktor; Kameras speichern Bilder normalerweise zwischen, während sie in den Speicher geschrieben werden, und die meisten Kameras haben nur genügend Speicher, um ein paar Dutzend RAW-Bilder in voller Auflösung zwischenzuspeichern, die im Burst-Modus aufgenommen wurden. Sechstens haben die meisten Menschen keine praktische Möglichkeit, 20 Mp-Videos anzusehen – selbst 4K-UHD-Videos haben nur etwa 8,3 Mp pro Frame. Es gibt einen 8K-Standard, also ist es klarEs ist nicht unmöglich, Daten von einem hochauflösenden Sensor schnell zu lesen, aber aus all den oben aufgeführten Gründen ist es nicht verwunderlich, dass Sie diese Fähigkeit in Ihrer aktuellen DSLR nicht finden.

Haben Sie normalerweise auch die Kontrolle darüber, ob Sie aus dem Pixelarray abtasten können, oder sind Sie gezwungen, dies in vorgegebenen Mustern zu tun? Können Sie zum Beispiel einfach 2x schneller von der Hälfte des Arrays abtasten? Kann diese Hälfte zufällig sein?

Ich habe mich nicht wirklich mit dem Lesen einzelner Pixel von einem Bildsensor befasst, aber Sie müssten davon ausgehen, dass dies die Dinge erheblich verlangsamen würde, da Sie die Pixelkoordinaten jedes Pixels, das Sie lesen wollten, an den senden müssten Sensor. Das Lesen von Daten vom Sensor in einem Muster, das der Sensor bereits kennt, würde viel Arbeit (und wahrscheinlich Zeit) sparen. Wenn Sie sich das Datenblatt für einen Bildsensor ( z. B. diesen ) ansehen, werden Sie feststellen, dass es viele Register gibt, die steuern, welche Daten gelesen und wie diese Daten formatiert werden sollen. Es gibt also sicherlich eine gewisse Kontrolle, aber Das Lesen des gesamten Bildes in zufälliger Reihenfolge ist wahrscheinlich nicht praktikabel.


Aus einem Kommentar:

CMOS-Sensoren sind normalerweise in der Lage, Videos mit höheren FPS bei niedrigeren Auflösungen aufzunehmen. Weißt du, was sie dazu befähigt? ... Macht die CPU ein Downsampling oder der Sensor selbst?

Ein Blick auf das oben verlinkte Datenblatt könnte helfen. Sie können viel nachlesen, auch wenn Sie es nicht vollständig verstehen. Zum Beispiel können wir nur aus den Spezifikationen erkennen, dass der Sensor selbst die Daten begrenzen muss, die er für verschiedene Formate sendet, weil er bei niedrigeren Auflösungen mehr Frames übertragen kann. Zu den wichtigsten Merkmalen gehört Folgendes:

maximum image transfer rate:
QSXGA (2592x1944): 15 fps 1080p: 30 fps
1280x960: 45 fps
720p: 60 fps
VGA (640x480): 90 fps
QVGA (320x240): 120 fps

Beim Durchstöbern finden Sie Informationen über Subsampling und Windowing. Bei der Unterabtastung gibt der Sensor nur einige der Pixel aus, z. B. jeden zweiten Pixel oder jeden vierten Pixel. Dies reduziert effektiv die Auflösung des Sensors. Die Fensterung begrenzt den rechteckigen Bereich des Sensors, von dem Pixel ausgegeben werden. Diese Funktionen (und viele mehr) werden vom Sensor selbst ausgeführt und sind konfigurierbar.

Sehen Sie sich auch die Datenblätter für andere Sensoren an. Ich habe einen für einen ON Semiconductor-Sensor (PDF) gefunden, der ziemlich informativ ist. Hier finden Sie weitere Informationen über Subsampling und Windowing sowie eine Reihe von Timing-Diagrammen, die eine Vorstellung von den Synchronisierungsproblemen geben, über die ich oben gesprochen habe.

Wenn Sie interessante Formen der Unterabtastung durchführen möchten, sind CCDs viel nützlicher, sodass Sie sie nicht auf CMOS implementieren müssen
„…die meisten Kameras haben nur genug Speicher, um ein Dutzend oder weniger Bilder in voller Auflösung zwischenzuspeichern, die im Burst-Modus aufgenommen wurden.“ ???? 2017 stimmt das nicht.
@MichaelClark Hängt natürlich von der Größe ab. Eine Canon 5D mk IV kann 15-20 RAW-Bilder, IIRC, puffern. Es wäre jedoch egal, ob es 50 oder 100 wären – der Punkt ist, dass das Schreiben in den Flash-Speicher ein Engpass ist.
Ich sehe den Qualifizierer roh in Ihrer Antwort nicht. Ein JPEG-Bild kann auch in voller Auflösung sein. Es gibt inzwischen viele Kameras, die JPEG mit voller Burst-Rate aufnehmen können, bis die Speicherkarte voll ist oder der Akku leer ist.
@MichaelClark Ich denke, du verfehlst den Punkt.
Nein, ich verfehle den Punkt nicht. Sie haben eine Aussage nicht qualifiziert, die qualifiziert werden muss, um wahr zu sein.
CMOS-Sensoren sind normalerweise in der Lage, Videos mit höheren FPS bei niedrigeren Auflösungen aufzunehmen. Wissen Sie, was sie dazu befähigt? Ich interessiere mich hauptsächlich für den Hardwarepfad dieses Prozesses. Macht die CPU ein Downsampling oder der Sensor selbst? Wenn das so ist, wie?
Die 7D Mark II kann etwa 30 RAW-Bilder mit 10 fps aufnehmen, bevor der Puffer für jeden, der zählt, ins Stocken gerät.
@dingrite Es scheint eher ein Problem der Verarbeitungsleistung in der CPU und der Schreibgeschwindigkeit auf der Speicherkarte zu sein als der Einschränkungen beim Auslesen des Sensors. Die Bandbreite zwischen Sensor und Pufferspeicher (wo die ausgelesenen Daten nach der Digitalisierung, aber vor der Verarbeitung durch die CPU gehalten werden) ist wahrscheinlich nicht viel breiter als nötig, um die CPU mit ihrer maximalen Datenrate zu versorgen, könnte es aber wahrscheinlich sehr leicht sein wenn die CPU schneller wäre. Das Problem bei Hochleistungs-CPUs ist der Energieverbrauch, der sich natürlich auf die Akkulaufzeit auswirkt ... Es ist alles ein System, das darauf ausgelegt ist, als System so effizient wie möglich zu arbeiten.
@dingrite Meine Antwort oben wurde aktualisiert, um Ihren Kommentar aufzunehmen.
Die Lesegeschwindigkeit des Sensors und die Geschwindigkeit des Datenbusses sind erheblich schneller als realistische Bildraten. Jedes Mal, wenn Sie den Live-Ansichtsmodus verwenden, ziehen Sie Daten vom gesamten Sensor. Der Grund, warum eine Kamera kein 20-MP-Video aufnehmen kann, liegt ausschließlich darin, dass das Video komprimiert werden muss (sonst wären die Flash-Karten nicht schnell genug) und die Kompressorhardware diese Größen nicht verarbeiten kann. Mit alternativer Firmware wie Magic Lantern können viele Kameras RAW-Videos (in voller Auflösung) jeweils nur wenige Sekunden lang aufnehmen.
@dgatwood Die Sensoren, die ich mir angesehen habe, verfügen alle über eine Sub-Sampling-Funktion, mit der Sie eine niedrigere Auflösung (daher weniger Daten) für Dinge wie Live-Ansicht lesen können.
Heh. Sie haben Recht. Mein Fehler. Sie machen Subsampling in der Hardware. Sie fragen den gesamten Bereich des Sensors ab, aber nicht alle Pixel. Ich denke, das Beste, was sie erreicht haben, ist ~3,5K-Video mit 24 fps auf einer 5D Mark III – immer noch weit mehr als 1080p, aber bei weitem nicht die volle Auflösung.
@dgatwood Wenn Sie auf einem Gerät wie einem Smartphone in den Kameraansichtsmodus wechseln, zeigt das IPS einen Rohdaten-Feed mit nativer Bildschirmauflösung und 60 fps an? Und wenn nicht, kann das eine Drittanbieter-App tatsächlich tun?

Sie stellen wirklich eine Frage, die in Solid-State-Engineering.SE gehört, wenn es eine solche Site gäbe. Ich habe Chips mit 64 parallelen Auslesungen gesehen, sodass jede Kette mit einer relativ langsamen Geschwindigkeit (Auslesen von 1/64 des Arrays) laufen kann, während eine hohe Gesamtbildrate beibehalten wird. Dann gibt es Bedenken wie die Pixelgröße: Je größer das Pixel, desto mehr Licht kann es sammeln, aber desto größer ist (im Allgemeinen) seine Kapazität, was zu anderen Geschwindigkeitsproblemen führt.
Und so weiter :-( . Trotzdem gibt es spezielle Videokameras, die kontinuierlich mit Tausenden von FPS laufen. Sie haben nicht nur spezielle Sensoren, sondern auch ultraschnelle Busse zu superschnellem Speicher.