Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2 Mб
Скачать

Міністерство Освіти і Науки, Молоді та Спорту України Національний Університет “Львівська Політехніка”

Кафедра СКС

Розрахунково-графічна робота №1

На тему: «Стиск зображень з використанням дискретних косинусних перетворень»

Виконав:

ст. гр. СКСc-11

Калинюк О.П

Прийняв:

к.т.н., доцент

Попович Р. Б.

Львів – 2012

Мета роботи

Опрацювати та випробувати в середовищі MATLAB R2012a програму, яка реалізує стиск зображень з використанням дискретного косинусного перетворення.

Опис алгоритму

JPEG стиск

Вхід: lena512.pgm

Вихід: lena512.jpg

Алгоритм стиску

1. Початкове зображення розбиваємо на блоки розміру 8Х8 і кожен піксель у блоці зсуваємо на -128

2. Кожен блок незалежно перетворюємо за допомогою двовимірного ДКП (дискретного косинусного перетворення) – Matlab команда dct2

3. Кожен перетворений блок квантуємо згідно з виразом:

x(j,k)=round(block_dct(j,k)/quant(j,k))

Матриця квантування з елементами quant(j,k):

quant= ,

де параметр Q змінюємо, регулюючи степінь стиску зображення.

Коефіцієнти заокруглюємо до найближчого цілого.

4. Обходячи двовимірний масив ДКП коефіцієнтів зигзагом (змійкою) перетворюємо його в одновимірний вектор

5. Перший коефіцієнт у векторі (так званий DC коефіцієнт) заміняємо на його різницю з першим коефіцієнтом попереднього вектора. Отриману різницю кодуємо за допомогою коду Хафмена.

Таблиця DC коду Хафмена: (категорія, кодове слово) (наведена в файлі dc_huffman_table.txt)

Категорія

Діапазон коефіцієнта

0

0

1

-1,1

2

-3,-2,2,3

3

-7,…,-4,4,…,7

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

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

Таблиця AC коду Хафмена: (число нулів, категорія, кодове слово) (наведена в файлі аc_huffman_table.txt)

Кінець блоку (0, 0, 1010)

7. Послідовно опрацьовуємо всі блоки зображення, як описано раніше.

Результат виконання індивідуального завдання

Отримані Ratio та PSNR та відтворені зображення при 0.25 bpp, 0.5 bpp, 0.75 bpp, 1 bpp, 1.5 bpp.

  1. Q=0,25; Ratio=1.8022 bpp, PSNR=43.9687 dB

  1. Q=0,5; Ratio=0.95107 bpp, PSNR=32.059 dB

  1. Q=0,75; Ratio=0.9733 bpp, PSNR= 34.6077dB

  1. Q=1; Ratio=0.951 bpp, PSNR=32.5837 dB

  1. Q=1,5; Ratio=0.5747 bpp, PSNR= 31.7028dB

  1. Для прикладу: Q=4; Ratio=0.33657 bpp, PSNR=26.6015 dB

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]