Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Алгоритмы > Срочно! Субдискретизация изображений


Автор: andyag 13.06.02, 12:32
Как реализуется субдискретизация изображений?
Есть, например, картинка 100x100, состоящая из трех каналов Y, U и V.
Субдискретизация по схеме 4:4:4 - значит оставить все без изменений.
По схеме 4:2:2 - значит канал Y не трогать, а каналы U и V уменьшить "по габаритам" в 2 раза? Т. е. если было 3 канала размером по 100x100 пикселей, то должно получиться: 1 канал 100x100 и 2 канала 50x50? Т. е. нужно просто написать функцию для масштабирования этих каналов?

Автор: Demo_S 13.06.02, 13:48
угу. примерно так:)
только вот в жпеге например потом делают такую штуку:
обьединяют некоторое количество участков, так, чтобы каналы были как исходные.
то есть, если ты сделал масштабирование для 16х16, для канала Y осталось 16х16 а для U и V 8х8 то обьединяют четыре блока , так чтобы в сумме для U было 16х16и для Vбыло 16х16
то есть, охватываются сразу четыре блока 16х16.
а для Y понятно будет 4 раза по 16x16.

Автор: andyag 13.06.02, 14:46
Цитата Demo_S, 13.06.02, 17:48:08
угу. примерно так:)
только вот в жпеге например потом делают такую штуку:
обьединяют некоторое количество участков, так, чтобы каналы были как исходные.
то есть, если ты сделал масштабирование для 16х16, для канала Y осталось 16х16 а для U и V 8х8 то обьединяют четыре блока , так чтобы в сумме для U было 16х16и для Vбыло 16х16
то есть, охватываются сразу четыре блока 16х16.
а для Y понятно будет 4 раза по 16x16.

Я, кажется, лажанулся в своей мессаге. 4:2:2 - это, типа, не габариты, а _площадь_, т. е из 4 пикселей сделать 2, т. е. из 2x2 сделать sqrt(2) x sqrt(2). Или меня глючит? Блин, а статейки нет на эту тему?

Автор: GrAnd 14.06.02, 09:11
по моему на самом деле все выглядит немого по другому.
Для уменьшения размера т.е. из 4 точек (2Х2) делать не sqrt(2) на sqrt(2). Берется усреднение в прямом смысле этого слова. И из 4 точек получается либо 1 (усреднение по обоим координатам 1х1) либо уже 2 по одной из координат (1х2) или (2х1). Если надо подробней сообщи, подберу, что-нибудь. ;D ;D ;D

Автор: Demo_S 14.06.02, 13:13
Цитата andyag, 13.06.02, 18:46:27

Блин, а статейки нет на эту тему?

а на кой тебе эта субдискретизация нужна.
если для жпега, то см доку по жпегу
http://www.sources.ru/cpp/graphics/jpeg_doc.rar

Автор: andyag 14.06.02, 15:14
Цитата Demo_S, 14.06.02, 17:13:40

а на кой тебе эта субдискретизация нужна.
если для жпега, то см доку по жпегу
http://www.sources.ru/cpp/graphics/jpeg_doc.rar

Не совсем по жпегу, хотя почти. Алгоритм похожь на жпег, но, только есть несколько новых фишек, преобразование "не совсем DCT", и больше возможностей по настройке. Большинство фишек уже написано, вот надо теперь субдискретизацию прикрутить... :-)

Автор: andyag 14.06.02, 15:18
Цитата GrAnd, 14.06.02, 13:11:57
по моему на самом деле все выглядит немого по другому.
Для уменьшения размера т.е. из 4 точек (2Х2) делать не sqrt(2) на sqrt(2). Берется усреднение в прямом смысле этого слова. И из 4 точек получается либо 1 (усреднение по обоим координатам 1х1) либо уже 2 по одной из координат (1х2) или (2х1). Если надо подробней сообщи, подберу, что-нибудь. ;D ;D ;D

То, как ты описал позволит сделать только несколько прошитых вариантов, т. е. комбинации 4, 3, 2, 1, 0. А хотелось бы побольше вариантов, т. е. если использовать блоки не 2x2, а больше... Хотя... Какой смысл? 256:255:255 как-то глупо смотрится. :-)

Автор: Demo_S 14.06.02, 20:19
но ты все таки посмотри, как оно в жпеге реалзовано, может полегче станет, велосипеды разные изобретать не придется:)))

а насчет прошитиых вариантов, тебе их что, не хватает?
2x1 3x1 4x1
2x2 3x2
3x3
4x4
...

Автор: andyag 14.06.02, 20:30
Цитата Demo_S, 15.06.02, 00:19:31
но ты все таки посмотри, как оно в жпеге реалзовано, может полегче станет, велосипеды разные изобретать не придется:)))

а насчет прошитиых вариантов, тебе их что, не хватает?
2x1 3x1 4x1
2x2 3x2
3x3
4x4
...

Наверно, так и сделаю :-)

Автор: GrAnd 17.06.02, 03:54
Ну вот. После "бурных" дебатов, нашли наконец-то решение над "трудной" задачей ;D ;D ;D

Автор: Demo_S 17.06.02, 05:19
Цитата GrAnd, 17.06.02, 07:54:29
Ну вот. После "бурных" дебатов, нашли наконец-то решение над "трудной" задачей ;D ;D ;D

Типа:
последнее слово мое (с) модератор:)

Автор: GrAnd 17.06.02, 09:40
Да нет с чего ты так. Просто радуюсь, что помогли человеку чем смогли.
P.S.
Спасибо тебе за поздравления. ;D ;D ;D

Автор: andyag 22.06.02, 14:11
Ходят слухи, что субдискретизации 4->3 не бывает (4:3:3), а бывает только 4->0, 4->1, 4->2, 4->4.

Автор: GrAnd 24.06.02, 06:33
Да нет бывать, то она бывает. Проблема только в том, что  обычно переход делают по степеням двойки 0->1->2->4->... А для 4->3 немного  геморно все это реализовывать ;D ;D ;D

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)