Форум программистов, компьютерный форум CyberForum.ru

кодирование хаффмана - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ход конем http://www.cyberforum.ru/cpp-beginners/thread518740.html
На шахматной доске (8х8) стоят конь и пешка. Конь располагается на поле А, пешка - на поле B. Найти минимальное количество ходов, за которые конь доберется до пешки, если последняя стоит на месте. За один ход конь выполняет стандартное шахматное перемещение (буквой "Г"). Необходимо подсчитать наименьшее количество перемещений для перехода коня с поля А на поле В. Формат входных данных...
C++ Вычитание целых и комплексных чисел Помогите пожалуйста с решением... Написать перегруженные функции и основную программу, а) для вычитания целых чисел; б) для вычитания комплексных чисел. http://www.cyberforum.ru/cpp-beginners/thread518731.html
C++ Пропущенные цифры
Подскажите как реализовать на С? Добавлено через 17 минут Всё получилось. Тема закрыта
Получение данных из реестра C++
Вот кусок кода для проверки: HKEY fKey; DWORD pcbData = 255; char* pvData = new char; if(RegOpenKeyEx(HKEY_CLASSES_ROOT, ".xml", 0, KEY_QUERY_VALUE, &fKey) == ERROR_SUCCESS) //Открываем ключ HKEY_CLASSES_ROOT/.xml { if (RegQueryValueEx(fKey, "", NULL, NULL, (LPBYTE)pvData, &pcbData) == ERROR_SUCCESS) //Читаем его значение (по умолчанию) - "xmlfile" {
C++ Вычислить сумму элементов матрицы лежащих слева от побочной диагонали. http://www.cyberforum.ru/cpp-beginners/thread518655.html
Вычислить сумму элементов матрицы Q (10x10), лежащих слева от побочной диагонали. заранее спасибо)
C++ Деление многочленов, нахождение НОД При реализации НОД у меня многочлен делится на производную идет вот такой порядок: f(x) = g(x)∙q1(x) + r1(x), (1) затем, если r1(x) ≠ 0, – второго данного многочлена, g(x), на первый остаток – на многочлен r1(x): g(x) = r1(x)∙q2(x) + r2(x), (2) далее, если r2(x) ≠ 0, – первого остатка, r1(x), на второй остаток, r2(x): r1(x) = r2(x)∙q3(x) + r3(x), (3) затем, если r3(x) ≠ 0, – второго... подробнее

Показать сообщение отдельно
rozochka90
0 / 0 / 0
Регистрация: 14.09.2011
Сообщений: 20
19.03.2012, 11:23  [ТС]     кодирование хаффмана
для конкретного jpeg сжатия для дерева АС Y у меня в моей программе получились коды в зависимости от вероятности повторений
символы(в 16-ричной системе) - длины 5:
6F - 01010
76 - 01011
77 - 01100
7B - 01101
7D - 01110
81 - 01111
длины 4:
8A - 0000
8D - 0001
9A - 0010
88 - 0011
79 - 0100
и код длины 1:
80 - 1

а в программе jpegsnoop при декодировании моего сохраненного jpeg файла те же самые символы получаются декодированы кодами:
длины 5:
11010
11011
11100
11101
11110
11111
длины 4:
1000
1001
1010
1011
1100
длины 1:
0

а вот с AC-коэффициентами цветоразности получились разные совсем коды:
символы - коды длиной 6
7B - 011110
7C - 011111
символы - коды длиной 5
7F - 00000
86 - 00001
8A - 00010
8B - 00011
8C - 00100
8E - 00101
84 - 01110
символы - коды длиной 4
7E - 0011
7D - 0100
82 - 0101
81 - 0110
символы - коды длиной 1
80 - 1
а в программе jpegsnoop при декодировании тех же символов получаются коды
длины 6:
111110
111111
длины 5:
11000
11001
11010
11011
11100
11101
11110
длины 4:
1000
1001
1010
1011
длины 1:
0
получается различие кодов...а почему непонятно..из-за этого я так понимаю ошибки в маркере закодированных данных....

Добавлено через 12 минут
еще в программе jpegsnoop такую ошибку *** ERROR: @ 0x00000127.7, num_coeffs>64 [68]

*** ERROR: @ 0x00000127.7, num_coeffs>64 [68]
*** ERROR: Bad scan data in MCU(0,0): Lum AC CSS(0,0) @ Offset 0x00000128.0
MCU located at pixel=(0,0)
*** ERROR: @ 0x0000012E.2, num_coeffs>64 [69]
*** ERROR: Bad scan data in MCU(1,0): Lum AC CSS(1,0) @ Offset 0x0000012E.3
MCU located at pixel=(16,0)


и еще такой вопрос...может ли отсутствовать коэффициент EOB(и вообще я не очень понимаю зачем он нужен)...
и вообще правильно ли я понимаю....я перед тем как создавать дерево хаффмана прибавила 128 к каждому кодируемому символу для того чтобы не было отрицательных чисел...нулей у меня нет..все числа положительные. у меня расхождение в мыслях- то ли EOB это коэффициент чтобы закодировать нули(которых у меня нет)...то ли это коэффициент что это конец кодируемого блока 8 на 8...или что???
извините что так много вопросов...просто никак не могу с этим разобраться....
 
Текущее время: 01:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru