Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Інші шляхи підвищення ступеня стиску

Можливості по распараллеливанию

Навіть швидкий погляд на цей узагальнений алгоритм дозволяє помітити, що він порівняно легко распараллеливается. Зображення 320х288 містить 330 макроблоків, які можна кодувати й декодировать незалежно. Кожний макроблок, у свою чергу, містить шість блоків даних для ДКП. Распараллелить ДКП дуже важливо, тому що, не вважаючи пошуку векторів зсуву, це сама повільна операція. Помітимо також, що інші перетворення легко конвейеризуются. У результаті ми одержуємо паралельно-конвеєрну схему обробки потоку відеоданих.

Досить заманливо виглядає можливість распараллелить обробку різних кадрів, але тут ми зіштовхуємося зі складностями. Як правило, компресор будується таким чином, щоб після стиску зображення піддавалося зворотним перетворенням. Таким чином, ми одержуємо кадр із втратами й архівуємо інші кадри, відштовхуючись від нього. Це дозволяє не накопичувати помилки, одержувані ще при квантуванні. Таким чином, якщо на екрані між кадрами спостерігалися більші зміни, і якість зображення довелася понизити, то при стабілізації зображення якість швидко підвищується практично до якості вихідного відеоряду. Неприємний ефект, породжуваний цим прийомом, полягає в тім, що з'являється мерехтіння окремих крапок (або областей) зображення, значення кольору в які округляється те в більшу, то в меншу сторону.

При розпакуванні наші можливості по паралельній обробці різних кадрів досить обмежені, оскільки велико залежність між кадрами в потоці (великий відсоток P-P- і B-кадрів).

Описаний вище алгоритм у цілому вкрай близький більшості застосовуваних зараз на практиці алгоритмам стиску відео. Однак нові (або добре забуті старі) ідеї з'являються щорічно. Якщо для алгоритмів стиску без втрат можна говорити про ріст ступеня стиску на 1% у рік (щодо попереднього року) для досить великого тестового масиву даних, то для алгоритмів стиску відео мова звичайно йде об 3-5% збільшення ступеня стиску для досить великого відеофрагмента при тій же візуальній якості.

Однак старе добре "правило важеля", винайдене ще Архімедом, дотримується й тут. І якщо з однієї сторони підвищується ступінь стиску, то з іншої сторони доводиться пройти, додаючи ту ж силу, набагато більший шлях. У цьому випадку росте складність програми й упаде швидкість роботи, як при компресії, так і при декомпресії.

Перелічимо основні шляхи підвищення ступеня стиску:

- Зміна алгоритму стиску I-Кадрів. Вище наведений алгоритм, заснована на ДКП. Сьогодні всі частіше використовуються алгоритми, засновані на вэйвлетах (див. опис JPEG-2000).

- Зміна алгоритму стиску без втрат. Вище наведений алгоритм, що використовує стиск по алгоритму Хаффмана. Однак недавно закінчився основний патент на арифметичний стиск (дающее перевага 2-15%) і, відповідно, всі частіше використовується саме воно.

- Зміна алгоритму роботи з векторами зсуву блоків. Підбор векторів зсувів блоків по найменшому середньоквадратичному зсуві не є оптимальним. Cуществуют алгоритми дающие кращий результат при деяких додаткових витратах часу при стиску.

- Застосування обробки коефіцієнтів. Можна намагатися одержати більше інформації про зображення зі збережених коефіцієнтів. Наприклад, можливо швидке порівняння коефіцієнтів після ДКП у сусідніх блоках і їхнє усереднення по досить складних алгоритмах. Цей прийом помітно знижує кількість артефактів внесених у зображення ДКП, при цьому допускаючи реалізацію, що працює в реальному часі.

- Застосування обробки кадрів, що виходять. Відоме лихо алгоритмів стиску зображень - неминуча "блочность" (добре помітні границі макроблоків). У принципі існують алгоритми, що працюють із кадрів зовсім без застосування блоків (навіть без векторів зсуву блоків), але такий підхід поки не виправдує себе ні по ступені стиску, ні по швидкості роботи декодера. Однак можна побудувати досить швидкі алгоритми постобработки, які досить акуратно заберуть видимі границі між блоками, не вносячи істотних перешкод у саме зображення. Існують також алгоритми, що усувають на лету ефект Гиббса (див. опис JPEG) і т.п. Таким чином, істотно поліпшується візуальна якість зображення. Це також означає, що можна підвищити ступінь стиску при тій же візуальній якості.

- Поліпшення алгоритмів масштабування зображень. Як правило, відео на комп'ютері переглядають у весь екран. При цьому навіть застосування дуже простого й швидкого кусочно-лінійного масштабування здатно кардинально знизити швидкість програвання ролика. Тобто примітивна операція масштабування зображення буде працювати помітно довше, ніж складний алгоритм декодера. Однак швидкості сучасних комп'ютерів швидко ростуть і ті алгоритми, що викликали падіння швидкості до 7 кадрів у секунду на Celeron-300 дають живе відео - більше 30 кадрів на P 4-1200 (починає використовуватися розширений набір команд і т.п.). Т.е. з'являється можливість використовувати більше складні і якісні алгоритми масштабування на весь екран, одержуючи більше високу якість, чим для использовавшейся раніше билинейной інтерполяції (у більшості відеокарт реалізованої апаратно).

- Застосування попередньої обробки відео. Якщо ми хочемо одержати досить високий ступінь стиску, то можна заздалегідь пророчити, що в нашім зображенні постраждають високі частоти. Воно стане згладженим, пропадуть багато дрібних деталей. При цьому, як правило, з'являються додаткові артефакти у вигляді смужок, ореолів у різких границь, хвиль. Значно підвищити якість зображення після кодування дозволяє предобработка з видаленням високих частот. При цьому існують алгоритми, що обробляють потік таким чином, що візуально якість зображення не змінюється, однак після декодера ми одержуємо істотно більше якісне зображення.

Вище перераховані лише окремі напрямки робіт. Фактично за 90-е роки зміни й поліпшення торкнулися всіх модулів алгоритму, побудованого за класичною схемою. Свою лепту в цей процес вносять також виробники мікропроцесорів і особливо Intel. Процесори, починаючи з P4, спеціально призначені для обробки потокових даних. Особливості архітектури процесора (зокрема невеликої в порівнянні із процесорами AMD кэш першого рівня), дають значна перевага одним алгоритмам і роблять неефективними інші. Однак загальне вдосконалювання алгоритмів стиску відео йде дуже швидко й найближчим часом можна чекати тільки збільшення швидкості появи нових розробок.

<== предыдущая лекция | следующая лекция ==>
Використання векторів зсувів блоків | Порівняння стандартів
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 436; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.