SlideShare a Scribd company logo
1 of 30
Download to read offline
СЖАТИЕ ДАННЫХ

Руслан Одинцов
Смоленск, 201 3
Вместо введения
2 5 fps
303 x 2 25 px
RGB

Ис ходное видео: 58. 3 mb, 4975 kbs
Сжатое видео: 0. 32 4 mb, 2 7 kbs
Степеь с жатия R = 0. 00000545 ( 1 84x)
Часть I
Энтропия
Неэнтропийные методы:
Run- L ength Encoding ( RLE )
Ис ходная с трока:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWW
WWWWWBWWWWWWWWWWWWWW
Сжатая с трока:
1 2 W1 B1 2 W3B2 4W1 B1 4W
[ применяетс я в J PE G, PCX и др. ]
Неэнтропийные методы:
Distance Coding ( DC)
aaabc c c a - - > 1 1 301 1 00
ес ли алфавит A = " abc "

[ применяетс я в BWT]
Неэнтропийные методы:
Словарные методы Lempel- Ziv ( LZ)
Информационная энтропия
I nformation is the
resolution of
unc ertainty.
– Claude Shannon
Информационная энтропия:
Минимальная единица информации

1 бит
2 бита
3 бита
Информационная энтропия
Информационная энтропия
Метод Хаффмана
Символ

Код

Вероятнос ть

Код Хаффмана

a

00

0. 5

0

b

01

0. 2 5

10

c

10

0. 1 2 5

110

d

11

0. 1 2 5

111

aaaabbс d - - > 0 0 0 0 1 0 1 0 1 1 0 1 1 1
R = 0. 875
Арифметическое
энтропийное кодирование
Контекстное моделирование

THE ROOM WAS NOT VE RY LARGE
___ ROO_ ___ NOT V___ L____
Структура компрессора

F ilter

Predic tor

Entropy
encoder

Model( s)
Prediction by partial match
( PPM)
abbbabbb
Модель 1 - ого порядка:
Контекс т Символ

Частота

a

a

0

a

b

2

b

a

1

b

b

4
Prediction by partial match ( PPM)
1 . readSymbol( )
2 . shorten c ontext
3. while ( c ontext not found)
4.

output( escape sequence)

5.

shorten c ontext

6. output( c haracter)
7. while ( c ontext length not - 1 ) do
8.

inc freq

9.

shorten c ontext
Dynamic Markov Compression ( DMC)
Часть I I
Потери
Сжатие с потерями
( L ossy compression)

F ilter

Transform

Entropy
encoder

Потери
Сжатие с потерями:
сжатие аудио
- Delta- c oding ( ADPCM)
- Дис кретное косинус ное преобразование ( DCT)
- Пс ихоакус тическое моделирование
- Аналитикос интетичес кое с жатие речи
Преобразование Фурье
DFT

DCT
Сжатие с потерями:
с жатие изображений
- Квантирование, YCbCr
- Дис кретное косинус ное преобразование ( DCT)
- Wavelet
Двумерное дискретное косинусное
преобразование ( DCT)
Двумерное дискретное косинусное
преобразование ( DCT)
Часть I I I
Другое
Колмогоровская сложность
Колмогоровс кая сложнос ть K( x) - мера
вычис лительных рес урс ов, необходимых для
точного определения объекта x.
- Завис имос ть колмогоровс кой сложности от
языка опис ания ограничена
- Колмогоровс кая с ложнос ть невычислима
- На практике значение колмогоровской
с ложнос ти может быть аппрокс имизировано
различными алгоритмами с жатия
Perpetuum mobile в сжатии данных
R = c ompressed_siz e / unc ompressed_size
typ R < 1
avg R > 1
avg R <= 1 - perpetuum mobile в сжатии данных
R_c opy = 1 = c onst
Премия Хаттера
Спасибо за внимание

More Related Content

What's hot

Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Mikhail Kurnosov
 
20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time
Computer Science Club
 
Lecture3 track params_trackercalo_vertex
Lecture3 track params_trackercalo_vertexLecture3 track params_trackercalo_vertex
Lecture3 track params_trackercalo_vertex
sokolskii
 
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Mikhail Kurnosov
 

What's hot (20)

Семинар 6. Многопоточное программирование на OpenMP (часть 6)
Семинар 6. Многопоточное программирование на OpenMP (часть 6)Семинар 6. Многопоточное программирование на OpenMP (часть 6)
Семинар 6. Многопоточное программирование на OpenMP (часть 6)
 
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
Низкоуровневые оптимизации. Андрей Аксенов. Unigine Open Air 2013
 
Векторизация кода (семинар 1)
Векторизация кода (семинар 1)Векторизация кода (семинар 1)
Векторизация кода (семинар 1)
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
 
Семинар 4. Многопоточное программирование на OpenMP (часть 4)
Семинар 4. Многопоточное программирование на OpenMP (часть 4)Семинар 4. Многопоточное программирование на OpenMP (часть 4)
Семинар 4. Многопоточное программирование на OpenMP (часть 4)
 
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)Семинар 7. Многопоточное программирование на OpenMP (часть 7)
Семинар 7. Многопоточное программирование на OpenMP (часть 7)
 
Ngs 1 2
Ngs 1 2Ngs 1 2
Ngs 1 2
 
Семинар 11. Параллельное программирование на MPI (часть 4)
Семинар 11. Параллельное программирование на MPI (часть 4)Семинар 11. Параллельное программирование на MPI (часть 4)
Семинар 11. Параллельное программирование на MPI (часть 4)
 
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
ПВТ - весна 2015 - Лекция 7. Модель памяти С++. Внеочередное выполнение инстр...
 
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
 
20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time20111204 computer graphics_galinsky_lecture12_real_time
20111204 computer graphics_galinsky_lecture12_real_time
 
Lecture3 track params_trackercalo_vertex
Lecture3 track params_trackercalo_vertexLecture3 track params_trackercalo_vertex
Lecture3 track params_trackercalo_vertex
 
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
Кулагин И.И., Пазников А.А., Курносов М.Г. Оптимизация информационных обменов...
 
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
 
С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)
 
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
ПВТ - весна 2015 - Лекция 1. Актуальность параллельных вычислений. Анализ пар...
 
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисленияПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
 
ПРОГРАММИРУЕМЫЙ ФОРМИРОВАТЕЛЬ ТРАЕКТОРИИ ДВИЖЕНИЯ СЛЕДЯЩЕГО ЭЛЕКТРОПРИВОДА
ПРОГРАММИРУЕМЫЙ ФОРМИРОВАТЕЛЬ ТРАЕКТОРИИ ДВИЖЕНИЯ СЛЕДЯЩЕГО ЭЛЕКТРОПРИВОДАПРОГРАММИРУЕМЫЙ ФОРМИРОВАТЕЛЬ ТРАЕКТОРИИ ДВИЖЕНИЯ СЛЕДЯЩЕГО ЭЛЕКТРОПРИВОДА
ПРОГРАММИРУЕМЫЙ ФОРМИРОВАТЕЛЬ ТРАЕКТОРИИ ДВИЖЕНИЯ СЛЕДЯЩЕГО ЭЛЕКТРОПРИВОДА
 
"Применение инфраструктуры YT для поиска нефти и газа". Максим Рябинский, Янд...
"Применение инфраструктуры YT для поиска нефти и газа". Максим Рябинский, Янд..."Применение инфраструктуры YT для поиска нефти и газа". Максим Рябинский, Янд...
"Применение инфраструктуры YT для поиска нефти и газа". Максим Рябинский, Янд...
 
Лекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building BlocksЛекция 8. Intel Threading Building Blocks
Лекция 8. Intel Threading Building Blocks
 

Similar to 13 встреча — Сжатие данных (Р. Одинцов)

Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Mikhail Kurnosov
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Mikhail Kurnosov
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Ontico
 
Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)
Viktoria Vlasenko
 
якобовский - введение в параллельное программирование (3)
якобовский - введение в параллельное программирование (3)якобовский - введение в параллельное программирование (3)
якобовский - введение в параллельное программирование (3)
Michael Karpov
 
Доклад на Highload-2012
Доклад на Highload-2012Доклад на Highload-2012
Доклад на Highload-2012
Alex Tutubalin
 
Глобальная дискретная оптимизация при помощи разрезов графов
Глобальная дискретная оптимизация при помощи разрезов графовГлобальная дискретная оптимизация при помощи разрезов графов
Глобальная дискретная оптимизация при помощи разрезов графов
romovpa
 
Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...
Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...
Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...
AIST
 
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
RF-Lab
 

Similar to 13 встреча — Сжатие данных (Р. Одинцов) (20)

11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 
введение в Gpu
введение в Gpuвведение в Gpu
введение в Gpu
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
Эффективное использование x86-совместимых CPU (Алексей Тутубалин)
 
Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)Основы алгоритмизации (QBasic)
Основы алгоритмизации (QBasic)
 
Видеостримминг, пиратсво, DRM
Видеостримминг, пиратсво, DRMВидеостримминг, пиратсво, DRM
Видеостримминг, пиратсво, DRM
 
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
 
Topic06 signals
Topic06 signalsTopic06 signals
Topic06 signals
 
якобовский - введение в параллельное программирование (3)
якобовский - введение в параллельное программирование (3)якобовский - введение в параллельное программирование (3)
якобовский - введение в параллельное программирование (3)
 
Доклад на Highload-2012
Доклад на Highload-2012Доклад на Highload-2012
Доклад на Highload-2012
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
 
NeoQUEST: небесполезный Pc speaker
NeoQUEST: небесполезный Pc speakerNeoQUEST: небесполезный Pc speaker
NeoQUEST: небесполезный Pc speaker
 
Глобальная дискретная оптимизация при помощи разрезов графов
Глобальная дискретная оптимизация при помощи разрезов графовГлобальная дискретная оптимизация при помощи разрезов графов
Глобальная дискретная оптимизация при помощи разрезов графов
 
29. Сжатие изображений.ppt
29. Сжатие изображений.ppt29. Сжатие изображений.ppt
29. Сжатие изображений.ppt
 
Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...
Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...
Елена Захаренко и Евгений Альтман - Быстрый алгоритм оценки движения полным п...
 
Архитектура Segment Routing
Архитектура Segment RoutingАрхитектура Segment Routing
Архитектура Segment Routing
 
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
2007 Никольская "Разработка программных средств для помехоустойчивого кодиров...
 

More from Smolensk Computer Science Club

More from Smolensk Computer Science Club (8)

12 встреча — Многопоточность-2 (А. Свириденков)
12 встреча — Многопоточность-2 (А. Свириденков)12 встреча — Многопоточность-2 (А. Свириденков)
12 встреча — Многопоточность-2 (А. Свириденков)
 
8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)8 встреча — Язык программирования Python (В. Ананьев)
8 встреча — Язык программирования Python (В. Ананьев)
 
7 встреча — Программирование компьютерных сетей (А. Свириденков)
7 встреча — Программирование компьютерных сетей (А. Свириденков)7 встреча — Программирование компьютерных сетей (А. Свириденков)
7 встреча — Программирование компьютерных сетей (А. Свириденков)
 
5 встреча — Информационная безопастность (А. Свириденков)
5 встреча — Информационная безопастность (А. Свириденков)5 встреча — Информационная безопастность (А. Свириденков)
5 встреча — Информационная безопастность (А. Свириденков)
 
4 встреча — Компьютерная лингвистика (А. Катинская)
4 встреча — Компьютерная лингвистика (А. Катинская)4 встреча — Компьютерная лингвистика (А. Катинская)
4 встреча — Компьютерная лингвистика (А. Катинская)
 
3 встреча — Биоинформатика (продолжение) (А. Фединцев)
3 встреча — Биоинформатика (продолжение) (А. Фединцев)3 встреча — Биоинформатика (продолжение) (А. Фединцев)
3 встреча — Биоинформатика (продолжение) (А. Фединцев)
 
2 встреча — Биоинформатика (А. Фединцев)
2 встреча — Биоинформатика (А. Фединцев)2 встреча — Биоинформатика (А. Фединцев)
2 встреча — Биоинформатика (А. Фединцев)
 
1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)1 встреча — Параллельное программирование (А. Свириденков)
1 встреча — Параллельное программирование (А. Свириденков)
 

13 встреча — Сжатие данных (Р. Одинцов)