Theory
દરેક pixel ફેરવવો, કે ફક્ત લીટીઓ દોરવી?
ચિત્ર બનાવવા display એ પોતાનો beam ખસેડવો પડે (કે પોતાના pixels સુધારવા પડે), પણ એ કરવાની બે પાયામાં જ જુદી રીતો છે, અને એમાંથી graphics hardware ના બે કુટુંબ ઘડાયાં.
Raster scan display દરેક pixel પર, હરોળ પ્રમાણે, beam ફેરવે છે અને સંઘરેલા data પરથી આખો પડદો રંગે છે. Random scan display એને બદલે beam ને લીટીઓના છેડા વચ્ચે સીધો ખસેડે છે અને ફક્ત ચિત્રના લસરકા જ દોરે છે. આ પાઠ બંનેને સામસામે મૂકે છે. Raster ની રીત જીતી ગઈ અને આજના પડદા એના પર જ ચાલે છે, પણ બંને સમજવાથી સ્પષ્ટ થાય છે કે frame buffer અને pixel પ્રમાણે દોરવું કેમ મહત્ત્વનાં છે.
Theory
Raster scan: દરેક હરોળ ફેરવો
Raster scan display માં beam નિશ્ચિત ઢબે ફરે છે: એ હરોળ પર આડો સરકે છે, પછી પછીની હરોળે ઊતરે છે, અને એમ ઉપરથી નીચે આખો પડદો આવરી લે છે, અને પડદો તાજો રાખવા આ ફરી ફરી કરે છે. ત્યાં ચિત્રમાં કશું હોય કે ન હોય, એ દરેક pixel પર જાય જ છે.
ચિત્ર frame buffer માં (જેને refresh buffer પણ કહે છે) pixel ની કિંમતોની જાળી તરીકે સંઘરાય છે, અને display આ buffer વાંચીને દરેક pixel નો રંગ જાણે છે. દરેક pixel સ્વતંત્ર રીતે ગોઠવી શકાતો હોવાથી raster displays ભરેલા વિસ્તારો, છાયા અને વાસ્તવિક ચિત્રો સારી રીતે સંભાળે છે. TVs અને આજના monitors આમ જ ચાલે છે, અને એટલે જ raster પ્રચલિત રીત છે.
Theory
Random scan: ફક્ત લસરકા દોરો
Random scan display માં (જેને vector, stroke કે calligraphic પણ કહે છે) beam દરેક pixel પર ફરતો નથી. એને બદલે એ ચિત્રની દરેક લીટીના છેડા સુધી સીધો જાય છે અને એ લીટી દોરે છે, અને એમ ગમે તે ક્રમે કૂદકા મારીને લસરકા દોરે છે, ફક્ત ત્યાં જ જ્યાં ચિત્રમાં ખરેખર લીટીઓ છે.
ચિત્ર લીટી દોરવાના હુકમોની યાદી તરીકે સંઘરાય છે (display file કે display list), અને પડદો તાજો રાખવા display એ યાદી ફરી ફરી દોરે છે. આનાથી બહુ સુંવાળી, ઊંચા resolution વાળી લીટીઓ મળે છે, જે wireframe ચિત્રો માટે ઉત્તમ છે; પણ એ ભરેલા કે છાયાવાળા વિસ્તારો સહેલાઈથી બનાવી શકતું નથી (એ લીટીઓ દોરે છે, પ્રદેશો નહીં). Random scan displays શરૂઆતની vector graphics ની systems માં વપરાતાં.
At a glance
| પાસું | Raster scan | Random scan |
|---|---|---|
| Beam નો રસ્તો | દરેક હરોળ, દરેક pixel પર ફરે | લીટીઓના છેડા વચ્ચે સીધો કૂદે |
| ચિત્ર કઈ રીતે સંઘરાય | Pixels ની જાળી તરીકે (frame buffer) | લીટીના હુકમોની યાદી તરીકે (display file) |
| શેમાં સારું | ભરેલા વિસ્તારો, છાયા, વાસ્તવિક ચિત્રો | સુંવાળી, ઊંચા resolution વાળી લીટીઓ |
| શેમાં નબળું | બહુ ઝીણી લીટીઓ દાંતાવાળી લાગી શકે | ભરેલા કે છાયાવાળા વિસ્તારો |
Quiz
Raster scan display પોતાનું ચિત્ર કઈ રીતે સંઘરે છે, અને એનો beam કઈ રીતે ફરે છે?
- લીટીના હુકમોની યાદી તરીકે; beam લીટીઓના છેડા વચ્ચે કૂદે છે
- Frame buffer માં pixel ની કિંમતોની જાળી તરીકે; beam દરેક હરોળ પર, pixel પ્રમાણે ફરે છે
- ફક્ત ભૌમિતિક આકારો તરીકે; beam વર્તુળો દોરે છે
- એ ચિત્ર સંઘરતું જ નથી
Show the answer
Frame buffer માં pixel ની કિંમતોની જાળી તરીકે; beam દરેક હરોળ પર, pixel પ્રમાણે ફરે છે
Raster scan display ચિત્રને frame buffer માં pixel ની કિંમતોની જાળી તરીકે સંઘરે છે, અને beam પડદા પર હરોળ પ્રમાણે ફરીને દરેક pixel ને આવરી લે છે તથા buffer વાંચીને દરેકને રંગે છે. વિકલ્પ A random scan (vector) display વર્ણવે છે, જે લીટીના હુકમોની યાદી સંઘરે છે અને beam ને લીટીઓના છેડા વચ્ચે સીધો ખસેડે છે, એટલે કે સામેની રીત. વિકલ્પ C એ raster scanning ની રીત નથી; એ તો buffer પરથી pixels રંગે છે, સીધા આકારો નહીં. વિકલ્પ D ખોટો છે: raster displays ચિત્ર ચોક્કસપણે સંઘરે છે, એટલે કે frame buffer માં, અને એ જ પડદા પર ફરી ફરી દેખાડાય છે. Raster એટલે frame buffer પરથી દરેક pixel; random scan એટલે display list પરથી ફક્ત લીટીઓ.
Think first
Random scan સામે raster scan કેમ પ્રચલિત બની ગયું?
Random scan સુંદર સુંવાળી લીટીઓ દોરતું હતું. તો પણ raster scan displays કેમ જીતી ગયાં? વિચારીને પછી tap કરો.
Show the answer
કારણ કે raster scan ફક્ત લીટીચિત્રો નહીં પણ ભરેલાં, છાયાવાળાં, ફોટા જેવાં ચિત્રો બતાવી શકે છે; અને memory સસ્તી થતાં એની pixel ની જાળીવાળી રીત લોકોને જે ચિત્રો જોઈતાં હતાં એ માટે ઘણી વધુ બહુમુખી અને વિસ્તારી શકાય એવી નીવડી.
Random scan (vector) display એક જ બાબતમાં ઉત્તમ છે: તીક્ષ્ણ લીટીઓ. એ ચિત્રના લસરકા સીધા દોરે છે, એટલે wireframes અને line art અદ્ભુત સુંવાળાં લાગે છે. પણ મૂળે એ લીટીઓ દોરે છે, પ્રદેશો નહીં, એટલે એ વિસ્તારોને રંગથી સહેલાઈથી ભરી શકતું નથી કે ખરાં દૃશ્યોની સુંવાળી છાયા, પોત અને ફોટા જેવી વિગત આપી શકતું નથી; એનું ચિત્ર લસરકાનો સમૂહ છે, રંગનું આખું ક્ષેત્ર નહીં.
Raster display એથી ઊંધું, frame buffer માં દરેક pixel ને સ્વતંત્ર રીતે સંઘરે છે અને કાબૂમાં રાખે છે, એટલે એ ગમે તે ચિત્ર રંગી શકે છે: સળંગ ભરણી, ઢાળવાળા રંગ, ફોટા, video, અને દરેક pixel ને ગમે તે રંગ; અને ટેલિવિઝન, ફોટા, games તથા સમૃદ્ધ user interfaces ને બરાબર આ જ જોઈએ છે.
ઐતિહાસિક અડચણ memory ની હતી: દરેક pixel સાચવતા frame buffer ને ઘણી memory જોઈએ, જે શરૂઆતમાં મોંઘી હતી (એટલે ફક્ત લીટીની યાદી સંઘરતાં vector displays ને ફાયદો હતો). પણ memory નાટકીય રીતે સસ્તી અને ઝડપી થતાં એ અડચણ ખસી ગઈ, અને raster ની ગમે તે ચિત્ર બતાવવાની ક્ષમતા, સસ્તી memory તથા મોટા પાયે બનતાં raster hardware (પહેલાં TVs, પછી monitors) સાથે મળીને એને સાર્વત્રિક પસંદગી બનાવી દીધી.
Raster એની કિંમત એ ચૂકવે છે કે ઝીણી ત્રાંસી લીટીઓ દાંતાવાળી લાગી શકે છે (aliasing), કારણ કે એમને pixel ની જાળી પર આશરે જ બેસાડવી પડે છે; અને Bresenham જેવા line drawing ના algorithms બરાબર એટલા માટે જ છે. એટલે memory પોસાય એવી થતાં raster બહુમુખીપણા ના જોરે જીત્યું: એ ફક્ત લીટીઓ નહીં, બધું જ બતાવી શકે છે. આખું ચિત્ર બતાવવાની ક્ષમતા વત્તા સસ્તી memory એ ફક્ત સુંદર લીટીઓને હરાવી દીધી.
Summary
Key takeaways
- Displays બે રીતે દોરે છે: raster scan (દરેક pixel પર ફરવું) કે random scan (ફક્ત લીટીઓ દોરવી).
- Raster scan beam ને હરોળ પ્રમાણે દરેક pixel પર ફેરવે છે અને ચિત્ર frame buffer માંથી (pixel ની કિંમતોની જાળી) વાંચે છે.
- Raster ભરેલા વિસ્તારો, છાયા અને વાસ્તવિક ચિત્રો સારી રીતે સંભાળે છે; આજના પડદા પર એનું જ રાજ છે.
- Random scan (vector કે stroke) beam ને લીટીઓના છેડા વચ્ચે સીધો ખસેડે છે અને લીટીના હુકમોની યાદી (display file) તરીકે સંઘરાયેલા લસરકા દોરે છે.
- Random scan સુંવાળી, ઊંચા resolution વાળી લીટીઓ આપે છે પણ વિસ્તારો સહેલાઈથી ભરી કે છાયા આપી શકતું નથી.
- Raster એટલા માટે જીત્યું કે એ ગમે તે ચિત્ર બતાવી શકે છે (ભરણી, છાયા, ફોટા), અને ખાસ કરીને memory સસ્તી થયા પછી.
- યાદ રાખવાની કડી: raster એટલે frame buffer પરથી દરેક pixel; random scan એટલે display list પરથી ફક્ત લીટીઓ.