21

Re: Скільки є відтінків сірого і як їх записати?

quez написав:
FakiNyan написав:
quez написав:

Картинку робіть. Близькі висоти позначайте близькими кольорами.

тобто не зважати на кольори взагалі? просто використовувати RGB-запис, де 000000 - мінімальна висота, а FFFFFF - максимальна?

Я не можу сказати, як алгоритм стиснення поставиться до переходів типу 0FFFFF → 100000. Але їх варто б уникнути, це 100%. Як — це ще те питання, колір трьохвимірний, а висота — одновимірна, нічого в голову не приходить.

Ще є варіант згодувати сирі дані zip'у (чи чомусь подібному).

ви шось не те кажете, я вам кажу, що буду використовувати алгоритм PNG чи JPG, от, але для себе зроблю помітку, що чорний колір, це висота 0, а білий - максимальна, а все, що між цими кольрами - це інші висоти, при цьому я буду використовувати весь спектр кольорів. Але знаєте що? Мені ж всеодно всю цю інформацію треба тримати в пам'яті, тому що дуже часто треба буде звертатися до клітинок матриці, тому, майбуть, ніяк не можна буде нормально це все зробити, хіба що зробити такий собі масив, в котрому, записано щось типу
{висота:клітинка1, клітинка2, клітинка3} ну це типу якщо декілька клітинок мають однакову висоту, скажіть мені, я туди думаю, чи така оптимізація не допоможе?

22

Re: Скільки є відтінків сірого і як їх записати?

Справа в тому, що при маленькій зміні числа, яке означає колір, колір може змінитись досить сильно — порівняйте кольори в прикладі вище. Алгоритм може знати, що це різні кольори, і тому в цьому місці кодування буде неоптимальним.

Така оптимізація може й допомогти, на більш-менш рівнинній карті. За умови, що є підходяща структура даних: не масив, а словник, у якого по одному ключу є доступ до багатьох елементів, з типовою операцією вибору ключа за значенням. М’яко кажучи, нетривіальна штука.

23 Востаннє редагувалося koala (24.05.2014 08:33:20)

Re: Скільки є відтінків сірого і як їх записати?

Не всі сірі - точно сірі, в англійській вікі детальніше. Тому і виходять там сотні чи тисячі.
Про стиснення: не треба ставити колеса від КАМАЗу на запорожець - якщо вам не потібен саме запорожець з колесамі від КАМАЗу, а не, скажімо, всюдихід. Вам потрібно, очевидно, стиснення без втрат; напоширеніше таке стиснення малюнків - PNG, а воно, в свою чергу, використовує алгоритм DEFLATE, в якого є відкрита реалізація zlib. Тобто для стиснення берете zlib (або будь-що, що його вже використовує) і далі не заморочуєтеся.
До речі, ви ж з C# працюєте? System.IO.Compression містить все, що вам треба.

Подякували: quez1

24

Re: Скільки є відтінків сірого і як їх записати?

koala написав:

Не всі сірі - точно сірі, в англійській вікі детальніше. Тому і виходять там сотні чи тисячі.
Про стиснення: не треба ставити колеса від КАМАЗу на запорожець - якщо вам не потібен саме запорожець з колесамі від КАМАЗу, а не, скажімо, всюдихід. Вам потрібно, очевидно, стиснення без втрат; напоширеніше таке стиснення малюнків - PNG, а воно, в свою чергу, використовує алгоритм DEFLATE, в якого є відкрита реалізація zlib. Тобто для стиснення берете zlib (або будь-що, що його вже використовує) і далі не заморочуєтеся.
До речі, ви ж з C# працюєте? System.IO.Compression містить все, що вам треба.

я тут порахував, при карті 2000х2000 (а в мене вона 400х400), я буду мати 40000 клітинок. Так, як по цих клітинках будуть ходити моби, то я зроблю, аби вони ходили саме по клітинках. Тобто щоб не можна було б перейти з клітинки 1 в 1.5, а тільки в 2, ну тобто в ціле значення, а якщо не можна - то не йдемо. От, і дивіться, якщо висоти будуть дуже різними, то мені всі їх треба позначити числом, якщо використати ushort, то ми отримуємо десь ~65 тысяч висот. Мені здається, що цього предостатньо. І тоді ми будемо мати 40000*2 байти інформації, котру треба буде постійно тримати в оперативній пам'яті. А це всього навсього 80кб, тобто це дуже мало, тому до дупи всю ту компресію.

25

Re: Скільки є відтінків сірого і як їх записати?

я тут порахував, при карті 2000х2000 (а в мене вона 400х400), я буду мати 40000 клітинок.

У мене зламалась математика на цьому місці.

Подякували: koala1

26

Re: Скільки є відтінків сірого і як їх записати?

2000*2000=4000000 (4 мільйони).
400*400=160000 (160 тисяч).

27 Востаннє редагувалося FakiNyan (31.05.2014 13:39:53)

Re: Скільки є відтінків сірого і як їх записати?

блін, ви зруйнували мої мрії. значить 4 мільйони байт це у нас, о боже, кхе-кхе. Ну що вам сказати? блін, випадково написав в гуглі не 4 мільйони, а 4 мільярди, і побачив цисло у 8000 мегабайтів (ну помножив ще на 2) хД Ну 8 метрів всього, хіба це багато? А в моєму випадку взагалі 320кб.

28

Re: Скільки є відтінків сірого і як їх записати?

quez написав:

я тут порахував, при карті 2000х2000 (а в мене вона 400х400), я буду мати 40000 клітинок.

У мене зламалась математика на цьому місці.

ну я прост рахую такий - угу, 2000 на 2 - 4000, одже 2000 на 2000 це в 10 раз більше  :D

29

Re: Скільки є відтінків сірого і як їх записати?

FakiNyan написав:

блін, ви зруйнували мої мрії. значить 4 мільйони байт це у нас, о боже, кхе-кхе. Ну що вам сказати? блін, випадково написав в гуглі не 4 мільйони, а 4 мільярди, і побачив цисло у 8000 мегабайтів (ну помножив ще на 2) хД Ну 8 метрів всього, хіба це багато? А в моєму випадку взагалі 32кб.

Для карти 400х400 особливої оптимізації не треба. А 2000х2000 краще б оптимізувати.

30

Re: Скільки є відтінків сірого і як їх записати?

http://не-дійсний-домен/91SG3.jpg
http://не-дійсний-домен/91SHd.jpg
http://не-дійсний-домен/91SHK.jpg
Наче схоже? угу?
http://не-дійсний-домен/91SJu.jpg

Подякували: 0xDADA11C71

31

Re: Скільки є відтінків сірого і як їх записати?

от я ще в сірих тонах зробив
http://не-дійсний-домен/92hPQ.jpg

32

Re: Скільки є відтінків сірого і як їх записати?

ну не знаю, якщо потрібні відтінки сірого, то я би брав тільки типу aaaaaa - тобто тільки 256 варіантів. На крайняк можна допустити девіацію на 1 в одному з кольорів, тоді кількість варіантів буде 7*255=1785. - цього достатньо?

33

Re: Скільки є відтінків сірого і як їх записати?

трохи обробив

Прихований текст

http://не-дійсний-домен/92iBc.jpg

34

Re: Скільки є відтінків сірого і як їх записати?

Так ось що це таке!

http://s1.postimg.org/ux2k7ojzz/fuckyeah.jpg

Подякували: FakiNyan, 0xDADA11C72

35

Re: Скільки є відтінків сірого і як їх записати?

PNG має не тільки кольоровий формат, але й чорно-білий, по 16 біт на піксель. Плюс стиснення там без втрат. Думаю вам якраз підійде.

36

Re: Скільки є відтінків сірого і як їх записати?

Torbins написав:

PNG має не тільки кольоровий формат, але й чорно-білий, по 16 біт на піксель. Плюс стиснення там без втрат. Думаю вам якраз підійде.

Я вже писав: PNG використовує для стиснення алгоритм DEFLATE, доступні реалізації якого є практично на всіх мовах програмування. Нащо втягати додаткові сутності (картинки), якщо результат буде такий самий?

37

Re: Скільки є відтінків сірого і як їх записати?

Та я ж не проти, але для контролю результату, це діло усе одно доведеться якось у картинку перетворювати.