Фільтр відео масштабування компанії Елекард в контексті технологііdirectshow

метод Ланцоша (Lanczos) для шести точок.

Таким чином, даний фільтр реалізує всі необхідні для нього функції і, крім того, надає додатковий функціонал для більш зручної, повноцінної роботи з ним без реалізації додаткових фільтрів.

Методи масштабування цифрових зображень, що застосовуються в фільтрі компанії Елекард

метод Ланцоша

Метод Ланцоша (третього порядку) відноситься до числа методів, що дозволяють масштабувати цифрові зображення з найкращою якістю. В даний час він застосовується в багатьох популярних графічних програмах, наприклад ACDSee ®, AdobePhotoshop ®, GIMPі інші.

Даний метод використовує нормовану функцію кардинального синуса sinc (x). У лінійному випадку формула перетворення за методом Ланцоша має вигляд [4]:

Функція має вигляд [4]:

Фільтр відео масштабування компанії Елекард в контексті технологііdirectshow

де позначає кордон фільтра.

Для фільтрів Ланцоша близько 2 і 3, найбільш часто використовуваних в комп'ютерній графіці, отримаємо функції наступного вигляду:

Фільтр відео масштабування компанії Елекард в контексті технологііdirectshow

Фільтр відео масштабування компанії Елекард в контексті технологііdirectshow

Таким чином, повне вираз, що описує фільтр Ланцоша порядку, набирає вигляду:

Для двовимірного випадку масштабування методом Ланцоша може бути розділене на дві стадії: спочатку проводиться масштабування кожного рядка по горизонталі, а потім проводиться масштабування кожного стовпчика пікселів зі зміненим горизонтальним масштабом по вертикалі.

Двовимірний фільтр Ланцоша в загальному вигляді можна описати виразом [4]:

Крапку з координатами (x0, y0) інтерпольованого зображення можна отримати, скориставшись наступним виразом [4]:

Інтерполяція проводиться по квадратному ділянці зображення розміром пікселів.

Способи оптимізації програми на мові Сі

Існує безліч способів оптимізувати програму, написану на мові Сі. До основних методів, що дає найбільший приріст швидкості, можна віднести:

вибір оптимального алгоритму;

оптимізація наявної програмної реалізації алгоритму;

застосування технології SIMD;

Кожен з цих способів дає певний приріст продуктивності, і тільки застосування їх в сукупності дозволяє отримати максимальне прискорення. Розглянемо кожен з методів більш докладно.