CS MSU Graphics Media Lab Video Group http
Типы изображений Изображения Растровые CS MSU Graphics & Media Lab (Video Group) Векторные В http: //www. compression. ru/video/ 2
Чувствительность Восприятие цвета 400 нм 500 нм CS MSU Graphics & Media Lab (Video Group) 600 нм http: //www. compression. ru/video/ 700 нм 4
Пространство RGB (Red, Green, Blue) Blue (0, 0, 1) Cyan (0, 1, 1) Magenta (1, 0, 1) Black (0, 0, 0) White (1, 1, 1) Green (0, 1, 0) Red (1, 0, 0) Yellow (1, 1, 0) CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 5
Пространство CMYK (Cyan, Magenta, Yellow, blac. K). Magenta (1, 0, 1) Blue (0, 0, 1) Black (0, 0, 0) Red (1, 0, 0) White (1, 1, 1) Yellow (1, 1, 0) Cyan (0, 1, 1) Green (0, 1, 0) CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 6
Расчет RGB, CMYK, CMY Magenta (1, 0, 1) Blue (0, 0, 1) Black (0, 0, 0) Red (1, 0, 0) White (1, 1, 1) Yellow (1, 1, 0) Cyan (0, 1, 1) Green (0, 1, 0) CS MSU Graphics & Media Lab (Video Group) RGB CMY С = 255 – R M = 255 – G Y = 255 – B. CMYK K = min(C, M, Y), C = C – K, M = M – K, Y = Y – K. http: //www. compression. ru/video/ 7
Пространство HSV Модель HSV (Hue, Saturation, Value). Построена на основе субъективного восприятия цвета человеком. Blue (0, 0, 1) Cyan (0, 1, 1) Magenta (1, 0, 1) White (1, 1, 1) Black (0, 0, 0) V Green (0, 1, 0) S Red (1, 0, 0) H Yellow (1, 1, 0) CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 8
Модель YUV Y = 0. 299 R + 0. 587 G + 0, 114 B U = – 0. 147 R – 0. 289 G + 0, 436 B V = 0. 615 R + 0. 515 G + 0, 100 B = 0, 877(R – Y) R = Y + 1. 140 V G = Y – 0. 395 U – 0. 581 V B = Y + 2. 032 U CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 9
Модель YIQ Y = 0. 299*R + 0. 587*G + 0. 114*B I = 0. 596*R – 0. 275*G – 0. 321*B Q = 0. 212*R – 0. 523*G + 0. 311*B R = Y + 0. 956*I + 0. 621*Q G = Y – 0. 272*I – 0. 647*Q B = Y – 1. 107*I + 1. 704*Q CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 10
Модель YCb. Cr (SDTV) Y Cb Cr = 0. 299*R + 0. 587*G + 0. 114*B = – 0. 172*R – 0. 339*G + 0. 511*B+128 = 0. 511*R – 0. 428*G + 0. 083*B +128 R = Y + 1. 371( Cr – 128 ) G = Y – 0. 698( Cr – 128) – 0. 336( Cb – 128) B = Y – 1. 732(Cb – 128) CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 11
RLE – Первый вариант Initialization(. . . ); do { byte = Image. File. Read. Next. Byte(); if(является счетчиком(byte)) { counter = Low 6 bits(byte)+1; value = Image. File. Read. Next. Byte(); for(i=1 to counter) Decompressed. File. Write. Byte(value) } else { Decompressed. File. Write. Byte(byte) } while(Image. File. EOF()); CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 16
RLE – Первый вариант (схема) CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 17
RLE – Второй вариант Initialization(. . . ); do { byte = Image. File. Read. Next. Byte(); counter = Low 7 bits(byte)+1; if(если признак повтора(byte)) { value = Image. File. Read. Next. Byte(); for (i=1 to counter) Compressed. File. Write. Byte(value) } else { for(i=1 to counter){ value = Image. File. Read. Next. Byte(); Compressed. File. Write. Byte(value) } Compressed. File. Write. Byte(byte) } while(Image. File. EOF()); CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 18
RLE – Схемы вариантов CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 19
Схема алгоритма LZ CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 22
LZW / Сжатие Init. Table(); Compressed. File. Write. Code(Сlear. Code); Cur. Str=пустая строка; while(не Image. File. EOF()){ //Пока не конец файла C=Image. File. Read. Next. Byte(); if(Cur. Str+C есть в таблице) Cur. Str=Cur. Str+С; //Приклеить символ к строке else { code=Code. For. String(Cur. Str); //code-не байт! Compressed. File. Write. Code(code); Add. String. To. Table (Cur. Str+С); Cur. Str=С; // Строка из одного символа } } code=Code. For. String(Cur. Str); Compressed. File. Write. Code(code); Compressed. File. Write. Code(Code. End. Of. Information); CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 23
LZW / Добавление строк CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 25
Степень сжатия цепочки нулей 0. . 255 256 257 258 259. . 4095 Рассчитываем арифметическую прогрессию: CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 28
Таблица дерево 0 0 0. . 0 255 0. . 1 0 0 32 13 2 3 1 255. . 255 0 45 2 0 0 7 9 76 0. . 255 CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 31
Пример 0 … 255 256 257 258 259 260 261 262 ‘ 0’ … ‘ 255’ Clear. Table End. Of. Information ’ 45, 55’ ’ 55, 151’ ‘ 151, 55’ ’ 55, 55’ CS MSU Graphics & Media Lab (Video Group) Последовательность: 45, 55, 151, 55, 55. Итого в потоке: <256>, <45>, <55>, <151>, <259>. http: //www. compression. ru/video/ 33
LZW / Декомпрессия code=File. Read. Code(); while(code != Сode. End. Of. Information){ if(code = Сlear. Сode) { Init. Table(); code=File. Read. Code(); if(code = Сode. End. Of. Information) {закончить работу}; Image. File. Write. String(Str. From. Table(code)); old_code=code; } else { if(In. Table(code)) { Image. File. Write. String(From. Table(code)); Add. String. To. Table(Str. From. Table(old_code)+ First. Char(Str. From. Table(code))); old_code=code; } else { Out. String= Str. From. Table(old_code)+ First. Char(Str. From. Table(old_code)); Image. File. Write. String(Out. String); Add. String. To. Table(Out. String); old_code=code; } } } CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 34
Алгоритм Хаффмана-2 CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 37
Примеры факсов CS MSU Graphics & Media Lab (Video Group) http: //www. compression. ru/video/ 40
Таблица кодов завершения Длина серии Код белой подстроки Код черной подстроки 0 00110101 0000110111 1 00111 010 2 0111 11 3 1000 10 4 1011 5 1100 0011 6 1110 0010 CS MSU Graphics & Media Lab (Video Group) 7 1111 http: //www. compression. ru/video/ 00011 44
- Slides: 47