Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 32 reacties

Panasonic heeft in Japan patent aangevraagd op een technologie om het zogeheten rolling shutter-effect bij cmos-beeldsensors te verminderen. In plaats van het na elkaar uitlezen van pixelrijen geschiedt de uitlezing vertraagd en parallel.

Een belangrijk verschil tussen beeldsensors op basis van ccd- en cmos-technologie is de mogelijkheid om bij het eerstgenoemde sensortype de pixels tegelijk uit te lezen, terwijl bij cmos-beeldsensors de pixels rij na rij worden uitgelezen. Bij bewegende beelden kan in het laatste geval het 'rolling shutter'-effect optreden.

Dit is goed te zien als de camera snel naar links en rechts wordt gedraaid. Rechte lijnen van bijvoorbeeld lantaarnpalen of gebouwen lijken dan op de opname gebogen, doordat de onderste pixelrijen op een iets later moment worden uitgelezen dan de rijen erboven. Vooral bij video is het rolling shutter-effect goed zichtbaar.

Bij de afbeeldingen op Egami van het patent van Panasonic, ingediend op 8 januari 2010, is te zien dat niet alleen verschillende pixelrijen tegelijk worden uitgelezen, maar ook dat de uitlezing niet-sequentieel plaatsvindt. Het 'jello'-effect kan hierdoor worden verminderd. Vanwege het paarsgewijze uitlezen lijkt het te gaan om een beeldsensor met twee uitleeskanalen.

Panasonic patent verminderen rolling shutter cmos-beeldsensor

Moderatie-faq Wijzig weergave

Reacties (32)

Interessante techniek, maar aangezien deze manier van CMOS uitlezen alleen het effect veranderd (en daardoor optisch verminderd) vraag ik me wel af wat het effect is op de vele tools die er tegenwoordig zijn om "rolling shutter" materiaal fatsoenlijk te kunnen gebruiken in de Postproductie.

Zo heeft The Foundry plugins als deze om effectief dmv. optical flow rolling shutter tegen te gaan. En is er daarnaast ook in matchmoving software als PFTrack de optie om te corrigeren voor rolling shutter (waar het voorheen heel lastig tracken was op 5D materiaal).

Overigens nemen duurdere professionele camera's zoals de Arri Alexa een andere route om rolling shutter tegen te gaan: Simpelweg sneller wegschrijven.

edit @TD-er:
Dat deze filters (die van the Foundry is inderdaad een filter, PFTrack houdt gewoonweg rekening met het feit dat het gebruikte materiaal aan het effect van rolling shutter onderhevig is) niet perfect kunnen zijn is logisch. Echter is het wel de praktijkt op dit moment. En dat is het enige dat ik stel.

Wat mij bij consumenten cameras (DSLR met videofunctie) de grootste belemmering lijkt voor het gebruik van een mechanische shutter is de enorme gevoeligheid voor slijtage. De kosten voor een dergelijk systeem dat enkel betrekking heeft op de (voor DSLR fabrikanten) bonusfunctie die video is.

[Reactie gewijzigd door mark_vb op 25 juli 2011 23:05]

Sneller wegschrijven doet deze sensor feitelijk ook.
En je wilt veel liever niet hoeven te corrigeren, want hoe goed die filters ook zijn, ze kunnen altijd artifacten introduceren, doordat bijvoorbeeld 2 dingen in tegengestelde richting naar elkaar toe bewegen en elkaar passeren. (voorbeeld wat gewoon echt niet artifact-vrij te corrigeren is)

Een oplossing die wel werkt is een mechanische shutter gebruiken en zodoende het gehele beeld tegelijk blootstellen aan licht.
Nadeel is wel dat je belichtingstijd + uitleestijd de maximale framerate bepalen.
Bij traditionele CMOS sensoren is de framerate eigenlijk alleen maar beperkt door de belichtingstijd (pixel integratietijd) of de uitleessnelheid (Mpixel/sec)

Als shutter zou je een klein 1-pixel grote LCD kunnen gebruiken voor de sensor, of iets mechanisch.
Het is niet juist dat in CMOS techniek alleen maar rij naar rij uitgelezen kan worden, in zogenaamde rolling shutter mode. Dit hangt van het type pixel af. Er zijn CMOS pixels die op een enigzins vergelijkbare wijze als interline CCD's hun opgebouwde lading tijdelijk in de pixel opslaan op een zogenaamde storage node zodat global shutter mogelijk is. Daarvoor is wel extra ruimte in de pixel nodig, dus wordt het bij kleine pixels meestal niet toegepast.
Klopt, CMOSIS is een fabrikant die dergelijke sensoren maakt.
Best wel interessante producten. Voordelen van CMOS en geen rolling shutter.
Als je toch weet dat je beweging horizontaal zit, kun je net zo goed je sensor een kwartslag draaien. Is ook in de streetview camera gebeurd. Overigens in het artikel wordt over draaing gesproken, als het object van links naar rechts gaat heb je er ever hard last van.
Je hebt er in vertikale richting net zo hard last van, alleen is de vervorming dan anders.
Je moet het effect vergelijken met een drilpudding op een bord. Schud het bord in een bepaalde richting en het effect wat je dan ziet is precies wat je ziet met een sensor met rolling shutter.
In vertikale richting druk je het dus in elkaar of je rekt het uit.

Maar goed, met de sensoren die global-shutter technieken hebben, heb je daar dus helemaal geen last meer van.
Wat is hier anders aan dan Bv de sensor van de Canon EOS 7D? Die heeft een 8 channel readout kanaal voor de sensor, dus zelfs nog meer dan deze 2.

/edit: Het lijkt hier trouwens over minimaal 4 kanalen te gaan aangezien er minimaal 4 transfers tegelijk plaatsvinden.

[Reactie gewijzigd door zonoskar op 25 juli 2011 15:26]

8 channel readout ≠ parallel uitlezen

sowieso leest de 7D (net als de 5Dmk2, 500D, 550D, 600D) in video modus niet elke lijn van de sensor uit. Er wordt aardig wat geskipped wat een van de mindere kanten aan DSLR video is op dit moment. Die 8 kanalen zijn eigenlijk vooral van toepassing bij het wegschrijven van hoge resolutie stills in burst. Het is (mede) de reden dat een 7D 8fps continuous schiet versus 3.8fps bij een 550D (welke 4 channels tot zijn beschikking heeft).

edit @TD-er:
In de dagelijkse praktijk is het probleem (ook bij moderne sensoren als die in de 7D of 550D en 600D) niet zozeer lichtgebrek. Het probleem is de sterke gevoeligheid voor bijvoorbeeld Moiré. Sensoren zijn snel genoeg om hogere framerates te halen, waar het probleem ligt is bij de schrijfsnelheid naar flashgeheugen en de daarmee samenhangende compressie.

[Reactie gewijzigd door mark_vb op 25 juli 2011 23:10]

Er wordt aardig wat geskipped wat een van de mindere kanten aan DSLR video is op dit moment.
De meeste moderne sensoren kunnen binning toepassen naast skipping en tegelijk de bayer-afstand tussen de pixels behouden.
Zo kun je ongestraft een lagere resolutie uitlezen op een hogere framerate en tegelijk toch al het licht pakken van de sensoren die je niet uitleest.
Dit doordat het binning-algoritme naburige pixels middelt. (of optelt, goedkope manier van hogere ISO)
Met een sensor die 18 Mpixel haalt op zo'n 8 fps, heb je dus een uitleessnrelheid van 144 Mpixel/sec.
Dat is meer dan voldoende voor full-HD op 60 fps en met een 20% extra pixels voor beeldstabilisatie kun je dan ook nog wel 1080p50 halen.

Dat binning/skipping hoeft niet precies een geheeltallige factor te zijn.
Tenzij je hiermee de uitleestijd drastisch verkort, verander je volgens mij hiermee je rolling shutter alleen in fuzzy-shutter. Rechte lijnen zijn niet meer gebogen, maar worden wel een tikje onscherp door random verschoven beeldlijnen.
Hmm dat lijkt mij juist niet, immers het beeld wat op de CMOS en zijn scherpte wordt bepaald door je lens en niet door de techniek die de sensor uitleest. De samenhang van de afbeelding wordt meer bepaald door het uitlezen, je krijgt misschien minder bollingen maar zo te lezen zal het niet geëlimineerd zijn.

Het lijkt mij daarnaast ook als ze volgens de bron parallel uitlezen dat hiermee in theorie ook de uitleestijd gehalveerd kan worden. Dit is natuurlijk ook afhankelijk van de verwerkingskracht van de chip.
Normaal gesproken lees je elke pixel na elkaar uit.
Dus met een pixelclock van 100 MHz en een ~10 Mpixel sensor kun je dan ongeveer 10 fps halen op volledig frame-grootte. (er is ook nog een horizontal blanking en vertical blanking waarin geen pixels worden uitgelezen, dus die framerate komt een fractie lager uit)
Elke pixel (of eigenlijk pixelrij) wordt gereset en dan voor X pixelclocks met rust gelaten en dan uitgelezen.
Zo heb je dus een bepaalde pixel-integratietijd, oftewel sluitertijd, die bepaalt hoeveel licht er op de pixel valt.
De tijd die nodig is om een heel beeld uit te lezen begint dus bij het resetten van de eerste pixel en stopt bij het uitlezen van de laatste pixel.
Alle bewegingsonscherpte kan dus opgedaan worden in die periode. Deze periode is dus langer dan bij een CCD, waar alleen de sluitertijd meetelt voor de bewegingsonscherpte.
Als je beeld en camera echter stil staan (dus geen bewegingsonscherpte), is CMOS in principe scherper dan CCD bij gelijke lens. Dit komt omdat je niet de lading over hoeft te dragen waarbij er lading 'lekt' naar naburige pixels.
Kortom, je wilt de uitleestijd zo kort mogelijk maken om bewegingsonscherpte te beperken, maar ook de rolling-shutter effecten.
Op het plaatje laten ze zien dat 8 opeenvolgende beeldlijnen net iets na elkaar uitgelezen worden, zodat de 9e regel weer precies aansluit op de eerste.
Voordeel is dat je geen segmenten ziet van stukken die je eerder uitleest en tegelijkertijd het rolling-shutter effect. De hoek bij gelijke snelheid is nog maar 1/8e van wat het zou zijn als je alle regels na elkaar uit leest, bij gelijke pixel-clock.

Bijkomend voordeel is dan ook nog dat je een veel hogere netto pixelclock kunt hanteren. (tot 8x zo hoog) en dus ook een hogere fps kunt halen. (mits de belichtingstijd zover omlaag kan)
De meeste sensoren tegenwoordig hebben toch al een aantal seriele lijnen voor de data en dat kunnen er dus ook prima 8 worden.
De sub-30$ sensoren van Aptina bijvoorbeeld (14 Mpixel, 160 Mpixel/sec) hebben al 4 lijnen van 700 Mbps per stuk, dus ik kan me voorstellen dat dit soort sensoren makkelijk 8 van die lijnen kunnen hebben en dan zit je al snel op zo'n 320 - 350 Mpixel/s. Dat is toch zo'n 30 fps op 10Mpixel met zo'n 12 - 14 bit per pixel. Een beetje suurdere sensor zal zo het dubbele kunnen halen.

Ik vraag me alleen wel af of dit patent-waardig is, want er zijn al jaren high-fps sensoren die de data met meerdere parallelle lijnen afvoeren (en uitlezen). Maar nog niet dat ze na elkaar begonnen met lezen. Waarschijnlijk ook omdat het resetten van een rij pixels nogal wat storing kan geven op de naburige lijnen. Maar of dat innoverend genoeg is....
Klopt misschien wel maar dat ziet er veel beter uit, snel bewegende beelden hoeven niet scherm te zijn, maar als er scheve gebouwen voorbij komen zien we dat wel :)

Mij lijkt dit dus fijner dan scheve gebouwen bij hevige beweging...

[Reactie gewijzigd door watercoolertje op 25 juli 2011 14:53]

als ze de sensor een kwartslag zouden draaien had je veel minder last van het probleem, aangezien je zowieso al last hebt van vertekening over de breedte ivm groothoeklenzen etc. Dus dan zou het minder opvallen, dingen worden dan misschien iets ingedrukt of opgerekt bij een snelle pan beweging, maar dat is minder irritant dan rolling shutter.
Maar hoe werkt dit dan met videoopnames van deze camera's? Want ik gebruik de 5D en 7D uitsluitend daarvoor en het viel me al op, maar wist niet hoe het heette.
Video zal juist veel minder last hebben van rolling-shutter effecten met dit soort sensoren.
De hoek als gevolg van beweging zal bij dit soort sensoren een factor kleiner zijn, afhankelijk van hoeveel lijnen je in 'kanon' kunt uitlezen.
Als het vaker voorkomt bij horizontale bewegingen, dan hoeven ze eigenlijk toch alleen maar het uitlezen van de chip een kwartslag te draaien? Ongeveer het zelfde als je camera een kwartslag draaien, alleen houd je dan de gewenste beeldverhoudingen... 8)7
Dan heb je het probleem met verticale bewegingen. En gezien de richting van de zwaartekracht zijn die gangbaarder.

[Reactie gewijzigd door MSalters op 26 juli 2011 13:30]

Ja is dat zo? Gebouwen staan altijd verticaal toch en met filmen beweeg je toch niet zo veel verticaal?
Ja. Je moet veel meer spierkracht uitoefenen om de zwaartekracht te compenseren. Nu heb je wel een redelijk snel feedback mechanisme, maar spieren zijn niet superprecies en je hebt dus zelden precies 100% compensatie. Dat levert je dus een kleine netto verticale kracht op, waardoor je camera een beetje verticaal trilt. In de horizontale richting heb je normaal geen spierkracht nodig, waardoor je ook minder onbedoelde trillingen hebt. 't Is niet 100% gescheiden, je lichaam is niet recht en hoekig ontworpen, maar het scheelt wel. Probeer maar eens een gewicht van 10 kilo met gestrekte armen voor je te houden, dan vallen die trillingen veel meer op.
ik zou snel patent aanvragen als ik jou was :')
Je hebt het probleem ook met vertikale beweging. Je object zal korter of langer lijken door de beweging.
Alsof je een pudding op een bordje heen en weer beweegt door het bord te bewegen.
Sinds de BBC Top Gear in HD opneemt zie ik zelfs rolling shutter op TV. Vooral bij een show als Top Gear valt dat dan ook nogal op. :P

Maar een beeldsensor met 2 uitleeskanalen lijkt me duurder om te produceren, dus het zal echt wel even duren voor dit in consumentenapparatuur terecht kan komen.

Overigens vind ik rolling shutter nog niet eens zo'n heel erg groot probleem. Het ziet er een beetje vreemd uit maar het valt alleen op bij snelle beelden/pans en het is geen complete verstoring van het beeld. Interlacing, dat is pas een hel. Perfect deinterlacen kàn namelijk gewoon niet, tenzij je de helft van de verticale resolutie compleet wegmikt. Wat dat betreft zijn de meeste nieuwe camera's een zegen die je in 720p of zelfs 1080p op laten nemen. Dat beetje rolling shutter neem ik dan voor lief.

Overigens zou je rolling shutter met de helft kunnen verminderen als je weer gaat interlacen. Je zou dan eerst de even lijnen uitlezen en voor het volgende field de oneven lijnen. Het uitlezen van alleen de even of oneven lijnen kost slechts de helft van de tijd, dus heb je de helft minder rolling shutter.

Daarbij, laten we niet vergeten hoe we aan rolling shutter komen: dit hoort bij CMOS. Vroeger had je een CCD-sensor nodig voor een beetje fatsoenlijke beeldkwaliteit want CMOS was dikke shit voor webcams. De verbeterde CMOS-sensoren van vandaag de dag echter hebben ongelofelijk goedkope foto- en videocamera's mogelijk gemaakt, met een zeer respectabele kwaliteit.
Maar een beeldsensor met 2 uitleeskanalen lijkt me duurder om te produceren, dus het zal echt wel even duren voor dit in consumentenapparatuur terecht kan komen.
Het is helemaal niet duurder.
Je moet nu al meerdere seriele lijnen hebben om de data af te kunnen voeren, dus parallel uitlezen is helemaal geen probleem. Sterker nog, het zal een stuk makkelijker zijn omdat je niet meer de lastige buffering hoeft te doen.
En je hebt nauwelijks meer bufferlijnen nodig voor vertikale binning, doordat je het binnen 2 lijnen kunt middelen/optellen voor een binning van 8 beeldlijnen.
Kunnen ze het niet gewoon software matig oplossen?
Deshaker voor VirtualDub haalt de rolling shutter eruit, kunnen ze dat algoritme niet realtime toepassen?
Kunnen ze het niet gewoon software matig oplossen?
Voor stilstaand beeld kan je het 'oplossen' - maar zo gauw er beweging is kan je alleen maar het meest storende tegengaan (een gebouw dat er uit ziet als drilpudding).. maar een auto die ook toevallig voorbij rijdt wordt door die correctie juist nog vreemder vervormd.
Dit gaat niet geheel op, de huidige gangbare techniek om rolling shutter (post) tegen te gaan is door middel van optical flow of (local) motion estimation. Dit zorgt ervoor dat de auto (of dus de pixels die de vorm van de auto maken om preciezer te zijn) anders gecorrigeerd wordt dan het gebouw in jouw voorbeeld.

Echter is deze techniek behoorlijk duur (in de zin van processortijd) waardoor het niet realtime gedaan kan worden, zoals Pim suggereert.
Dit gaat niet geheel op, de huidige gangbare techniek om rolling shutter (post) tegen te gaan is door middel van optical flow of (local) motion estimation. Dit zorgt ervoor dat de auto (of dus de pixels die de vorm van de auto maken om preciezer te zijn) anders gecorrigeerd wordt dan het gebouw in jouw voorbeeld.
Sowieso kan je, net als bij interlacing, het originele beeld nooit meer terugkrijgen. Want dat is er gewoon niet. Er zit een tijdsverschil tussen de lijnen, de content op die lijnen is gewoon anders dan wat je had gehad als je het hele beeld in één keer had uitgelezen.

Interlacing is eigenlijk ook gewoon een tijdsverschil tussen de even en oneven lijnen van het beeld. Alleen is dat expres.

Natuurlijk zijn er slimme truukjes om het effect optisch flink weg te poetsen, maar echt perfect zal nooit gaan. Dat is genoeg reden om te proberen een oplossing te verzinnen.
Hoe zit dat nou eigenlijk met een foto van een snel bewegend object? Of een foto tijdens een pan Die moet dan toch ook schuin worden? Daar hoor je nooit wat over.
Ook dat komt voor. Zie bijvoorbeeld deze foto die ik met een mobieltje heb gemaakt: http://tweakers.net/ext/f/Bhpa1xp7XwpIsW6H1gzwhM2Z/full.jpg

Kan je video nog met filtertjes een beetje stabiliseren, bij een foto gaat dat niet meer. De neus van de auto voor de vrachtwagen staat er gewoon niet op, terwijl die er wel op had gestaan als het hele beeld in één keer was uitgelezen. Valt dus ook niet meer te recoveren.

[Reactie gewijzigd door W3ird_N3rd op 26 juli 2011 02:28]

niet alleen duur.. ook niet foutloos, vandaar dat je het eigenlijk niet kan 'oplossen' in software en de uiteindelijke oplossing dan ook echt zal moeten liggen in het niet sequentieel uitlezen van de sensor - of dermate snel dat het effect nihil is.
Hoe zit dat nou eigenlijk met een foto van een snel bewegend object? Of een foto tijdens een pan Die moet dan toch ook schuin worden? Daar hoor je nooit wat over.

Trouwens, was het niet al zo dat (sommige) CMOSsen in een keer uitgelezen konden worden, maar dat daar gewoon een andere controller/processor voor nodig was?

[Reactie gewijzigd door Dancing_Animal op 26 juli 2011 00:21]

Trouwens, was het niet al zo dat (sommige) CMOSsen in een keer uitgelezen konden worden, maar dat daar gewoon een andere controller/processor voor nodig was?
Daar is wel wat meer voor nodig dan alleen een andere controller.
Je moet de sensorwaarde namelijk per pixel vastleggen.
Hoe zit dat nou eigenlijk met een foto van een snel bewegend object? Of een foto tijdens een pan Die moet dan toch ook schuin worden? Daar hoor je nooit wat over.
Als je camera een global shutter heeft, zoals een mechanische shutter in dSLR cameras, dan heb je geen last van rolling shutter effecten.
Maar bij CMOS-cameras zonder mechanische shutter heb je wel degelijk dat probleem.
Alleen bij foto's maken zal je je camera vaak stil houden, dus dan valt het sowieso niet op.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True