2.2.2. Графикалық хабарды кодтау
Егер қара - ақ суреттемелер туралы айтсақ, онда 0- қара, 1- ақ.
Егер де 256 сұр түстің дамуы түріндегі нүктелердің қиыстыруы түрінде қарастырса (атап айтқанда осындай қазіргі кезде жалпыға танымал), онда сегіз разрядты екілік сан кез келген нүктенің жарықтығын кодтау үшін жеткілікті.
Түрлі-түстің модельдері.
256 түстің дамуы үшін ( әрбір нүкте 3 байтпен кодталады) ең аз мәндер RGB(0,0,0) қара түске сай болады, ал аққа - барынша көптер үлкен координаталар (255,255,255) сәйкес. Түсті құраушының мәнінің байты неғұрлым көп болса, сол түс анағұрлым жарығырақ. Мысалы, қою көк (0,0,128) үш байтпен кодталады, ал ашық көк (0,0,255). Түрлі түсті графиканы өрнектеудің бірнеше режимі бар: А) толық түсті (TrueColor ); Б) High Color ; В) индекстік.
Толық түсті режимде әрбір құраушының жарықтығын кодтау үшін 256 мәннен қолданады (сегіз екілік разряд), яғни бір пиксель түсін кодтау үшін (RGB жүйесінде) 8*3=24 разряд жұмсау керек. Бұл 16,5 млн түсті бірмәнді анықтауға мүмкіндік береді. Бұл адам көзінің сезгіштігіне өте жақын.
CMYK жүйесінің көмегімен кодтағанда түрлі-түсті графиканы өрнектеу үшін 8*4=32 екілік разряд болуы керек.
High Color режимі - бұл 16- разрядты екілік сандардың көмегімен кодтау, яғни әрбір нүктені кодтау кезінде екілік разрядтар саны азаяды. Бірақ кодталған түстердің диапозоны өте көп азаяды.
Бейнеленетін түстердің саны (К) және оларды кодтауға қажетті бит (а) саны арасындағы байланыс төмендегі формуламен табылады: К = 2а.
а
|
К
|
Жеткілікті үшін .....
|
4
|
24=16
|
|
8
|
28=256
|
мультфильмдерде көрінетін сурет салынған бейнелердің типі, бірақ тірі табиғатты бейнелеу үшін жеткіліксіз
|
16(High Color )
|
216=65536
|
журналдардағы суреттерді және фотографияларды бейнелеу
|
24(True Color )
|
232=16777216
|
тірі табиғаттағы бақылайтын сапасына жететіндей бббейнелерді өңдей және жеткізу
|
Экранға шығарылатын бейненің екілік коды бейне жадыда сақталады. Бейне жады - электрондық энергияға тәуелді есте сақтайтын құрылғы. Бейне жады мөлшері дисплейдің айыру қабілетіне және түстердің сандарына байланысты. Бірақ оның ең аз көлемі бейненің бір кадры (бір бет) сыятындай анықталады, яғни айыру қабілеттінің пиксель кодының мөлшеріне көбейту нәтижесі ретінде: Vmin = M*N* a.
Сегіз түсті палитраның екілік коды.
Түс
|
құраушылар
|
|
Қ
|
Ж
|
К
|
Қызыл
|
1
|
0
|
0
|
Жасыл
|
0
|
1
|
0
|
Көк
|
0
|
0
|
1
|
Көкшіл
|
0
|
1
|
1
|
Қара қошқыл
|
1
|
0
|
1
|
Сары
|
1
|
1
|
0
|
Ақ
|
1
|
1
|
1
|
Қара
|
0
|
0
|
0
|
Он алты түсті палитра қолданылатын түстердің санын көбейтуге мүмкіндік береді. Мұнда пиксельдің 4 разрядты кодтауы қолданылады: негізгі түстердің 3 биті+ күшейте түскендіктің 1 биті. Соңғысы негізгі үш түстің үшеудің бір уақытта жарықтығын басқарады (үш электрондық шоқтардың күшейте түскендігін).
Он алты түстік палитраның екілік коды
Түс
|
құраушылар
|
|
Қ
|
Ж
|
К
|
күшейту
|
Қызыл
|
1
|
0
|
0
|
0
|
Жасыл
|
0
|
1
|
0
|
0
|
Көк
|
0
|
0
|
1
|
0
|
Көкшіл
|
0
|
1
|
1
|
0
|
Қара қошқыл
|
1
|
0
|
1
|
1
|
Ашық - сары
|
1
|
1
|
0
|
1
|
Сұр ( ақ )
|
1
|
1
|
1
|
0
|
Қою сұр
|
0
|
0
|
0
|
1
|
Ашық - көкшіл
|
0
|
1
|
1
|
1
|
Ашық - көк
|
0
|
0
|
1
|
0
|
...
|
|
|
|
|
Ашық - ақ
|
1
|
1
|
1
|
1
|
Қара
|
0
|
0
|
0
|
0
|
Негізгі түстердің күшейте түскендігімен жеке-жеке басқару кезінде алынған түстердің саны өседі. Түс тереңдігі 24 бит болатын палитра алу үшін әрбір түске 8 биттен бөлінеді, яғни күшейте түскендіктің 256 деңгейі мүмкін ( К =28).
256 түсті палитраның екілік коды:
Түс
|
құраушылар
|
|
Қ
|
Ж
|
К
|
Қызыл
|
11111111
|
00000000
|
00000000
|
Жасыл
|
00000000
|
11111111
|
00000000
|
Көк
|
00000000
|
00000000
|
00000000
|
Көкшіл
|
00000000
|
11111111
|
11111111
|
Қара қошқыл
|
11111111
|
00000000
|
11111111
|
Сары
|
11111111
|
11111111
|
00000000
|
Ақ
|
11111111
|
11111111
|
11111111
|
Қара
|
00000000
|
00000000
|
00000000
|
Мысал 3. Компьютер бейнежадысының көлемі 512 Кбайт екендігі белгілі. Экранның айыру қабілеттілігі 640 та 200. Мынадай палитрада: А) 8 түс; Б) 16 түс; В) 256 түс; бейне жадыда бір уақытта экранның неше беті орналасады?
130 реңді ақпаратты кодтау үшін неше бит қажет? – 8 бит (яғни 1 байт), өйткені 7 бит көмегімен 0-ден 127-ге дейінгі рең нөмірін сақтауға болады, ал 8 бит 0-ден 255 -ге дейінгі рең нөмірін сақтайды. Мұндай кодтау тәсілі үйлесімсіз екенін көруге болады: 130 255-тен әлдеқайда азырақ, егер а) суретте бір уақытта 138 мүмкін реңнің тек 16 түрлі-түсті реңі болса; б) суретте бір уақытта барлық 130 рең қатысады, бірақ әр түрлі реңмен боялған нүктелердің саны өте айрықшаланса, сурет туралы ақпаратты файлға жазу кезінде қалай тығыздауға болатынын ойланыңдар.
Шешуі. а) 16 реңді ақпаратты сақтау 4 бит (байттың жартысы) жеткілікті екендігі айқын. Бірақ бұл16 рең 130-дан таңдалғандықтан, олардың нөмірлері 4 битке сыймауы мүмкін. Сондықтан палитралар әдісін пайдаланамыз. Біздің суретімізде қолданылатын 16 реңге өзінің “жергілікті” 1-ден 15-ке дейінгі нөмірді тағайындаймыз және барлық суретті байтқа 2 нүкте есебімен кодтаймыз. Ал одан кейін осы ақпарат соңына рең нөмірлері бар 16 пар байттан тұратын сәйкестік кестесін жазамыз (ол орналасқан файлдың соңына): 1 байт – берілген суреттегі біздің “жергілікті” нөміріміз, екінші – осы реңнің нақты нөмірі (егер соңғысының орнына реңнің өзі туралы кодталған ақпарат қолданылса, мысалы, электронды-сәулелік түтіктің “электрондық зеңбіректердің” Red, Green, Blue шырақтануының айқындылығы туралы мәлімет қолданылса, онда мұндай кесте түстер палитрасын береді). Егер сурет неғұрлым үлкен болса, алынатын файл көмелеміндегі ұтыс айтарлықтай болады. б) сурет туралы ақпаратты архивтеудің қарапайым алгоритмін іске асырып көреміз. Ең аз нүктелердің саны боялған реңктерге 128-130 кодтарын, ал қалған реңктерге - 1-127 кодтарын тағайындаймыз. 1-ден 127-ге дейінгі нөмірлері бар реңктердің жетібиттік кодын файлға. (бұл жағдайда байттар тізбегі емес, тұтас биттік ағын болып табылады) жазып аламыз. Қалған үш реңк үшін биттік ағында сан-белгі жазамыз – жетібиттік 0 – және одан кейін бірден екібиттік ”жергілікті” номер, ал файл соңына ”жергілікті” және нақты номерлердің сәйкестік кестесін қосамыз. 128-130 кодтары бар реңктер сирек кездесетіндіктер, жетібиттік нольдер көп болмайды.
Достарыңызбен бөлісу: |