MGDC    

Вернуться   MGDC > Development > Programming > J2ME
Справка Пользователи Календарь Все разделы прочитаны

J2ME Java 2 Platform, Micro Edition

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 17.12.2004, 21:07
Аватар для Mixa
Mixa Mixa вне форума
Senior Member
 
Регистрация: 25.06.2004
Адрес: Н.Новгород
Компания: Wireless Lab
Должность: Менеджер по разработке
Сообщений: 800
По умолчанию Defender - image compression code

Given the memory constraints imposed on the software media and the console's RAM/ROM, it makes sense to pack image data in as tight of a format as possible while simultaneously keeping the encoder and decoder small in size.

To that end, I would like to suggest an image format standard for the JGC console. The format is an extension to the "Superpack" technology used in the Defender entry to the 4K Java Programming Contest. The technology was so efficient that it packed 2,779 bytes of compressed PNG data into 443 bytes of packed data! When added to a tightly compressed JAR file, the data file was further reduced to 351 bytes (21% compression)! That's an 8:1 reduction ratio!

http://jgcwiki.datadino.com/jgcwiki/...ion_Technology [src]
Ответить с цитированием

Реклама
  #2  
Старый 19.12.2004, 18:52
Аватар для Ago
Ago Ago вне форума
Member
 
Регистрация: 24.08.2004
Компания: LookatWorld
Должность: j2me programming
Сообщений: 75
По умолчанию

Почитай внимательно, это годится только для 2-цветных картинок. Там фича такая. Имеется несколько 2-цветных картинок в png файлах. И эти картинки записывают просто как набор бит с цветом для 1. для нулевых битов цвет один на все картинки - чёрный. Типа также хранилась графика на ZX Spectrume. Кто владел - тот поймёт (16384, 6912 :)) Да и сам автор этого SuperPack пишет: "the concept is really nothing more than a new iteration of an old approach."
Вобщем сегодня данная технология уже не нужна. Отошла в прошлое, вместе с чёрнобелыми Java телефонами. Но например, карты проходимости я так и храню, побитово.
Ответить с цитированием
  #3  
Старый 20.12.2004, 11:45
Аватар для Mixa
Mixa Mixa вне форума
Senior Member
 
Регистрация: 25.06.2004
Адрес: Н.Новгород
Компания: Wireless Lab
Должность: Менеджер по разработке
Сообщений: 800
По умолчанию

Читаю внимательно еще дальше :)

=============
General Purpose Format
While the Superpack format is too restrictive for a general-purpose solution, it does give us a good starting point. The primary changes that must be made are in the number of colors available and the maximum size of the image.

To allow for a pleasant user experience, it makes sense for the console to produce "True Color" (24 bit color) graphics. Thankfully there is no reason why individual sprites must have 16 million colors available. Even a 256x256 image would only be capable of using ~65,000 colors. Most sprites never even get near that. Realistically, a maximum of 255 colors per image is sufficient. Similarly, a maximum width and height of 256 pixels is also sufficient. Larger images can be stitched together from smaller tiles.

With those limits in mind, it then makes sense to define a format that will get smaller as fewer colors are used. Here is the proposal:
Код:
 
Table 2 
Data Element               Length                                     Notes 
palette_size                1 byte  
palette_entries            3 bytes * palette_size  
width                         1 byte                                      (width - 1) 
height                        1 byte                                      (height - 1) 
image_data                 [see table 3] bits * width * height
You'll note that the "image_data" structure (bits per pixel) changes depending upon the color count. Here are the conditions for the size of each image_data element:

Код:
 
Table 3 
if palette_size       bits per pixel 
1                        1 
< 4                     2 
< 8                     3 
< 16                   4 
< 32                   5 
< 64                    6 
< 128                 7 
< 256                 8
You'll note that the more colors a developer wishes to pack into a given sprite, the more he'll pay for it in memory usage. Thus it is in his best interest to use as few colors as possible in a given sprite. He can make up for the lower color count by using different color palettes for each sprites.

Also note that each tier gives one color less than the maximum allowed by that number of bits. The reason for this is that a zero value is interpreted to be transparent.

=========

Так что ты не прав имхо. Этот алгоритм и для палитризированных имиджей ОК, если верить написанному. Что не удивительно, черно-белых имидж - просто частный случай.
Ответить с цитированием
  #4  
Старый 20.12.2004, 13:17
Аватар для Ago
Ago Ago вне форума
Member
 
Регистрация: 24.08.2004
Компания: LookatWorld
Должность: j2me programming
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Mixa
Читаю внимательно еще дальше :)
Так что ты не прав имхо. Этот алгоритм и для палитризированных имиджей ОК, если верить написанному. Что не удивительно, черно-белых имидж - просто частный случай.
Ок, но тогда не получится такого большого выигрыша, только при частном случае. Я с картинками делаю так: конвертирую их GIF Аниматором в gif,
там же оптимизирую, потом конвертирую утилой gif2png v0.5 beta. она оптимизирует палитры. При этом получается минимальный размер png файла. Пока это годится, но потом появится всё больше true колорных телефонов, с jsr184 и т.д. и там уже 256 цветов будет недостаточно
Ответить с цитированием
  #5  
Старый 20.12.2004, 13:50
Аватар для Ago
Ago Ago вне форума
Member
 
Регистрация: 24.08.2004
Компания: LookatWorld
Должность: j2me programming
Сообщений: 75
По умолчанию

Но собственно эти телодвижения задуманы для старых Nokia40, с их ограничением на 64к jar файла, и вроде на Alcatel тоже что-то не слава богу, а потом наверно простые true-color-ные png будут рулить.
Ответить с цитированием

Реклама
  #6  
Старый 21.12.2004, 17:28
Donz Donz вне форума
Senior Member
 
Регистрация: 19.06.2004
Адрес: Moscow
Должность: Software engineer JavaME
Сообщений: 493
По умолчанию

А как насчёт XAT Image Optimizer? Им стоит пользоваться?
Ответить с цитированием
  #7  
Старый 21.12.2004, 20:29
Аватар для Ago
Ago Ago вне форума
Member
 
Регистрация: 24.08.2004
Компания: LookatWorld
Должность: j2me programming
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Donz
А как насчёт XAT Image Optimizer? Им стоит пользоваться?
Может и стоит. кинь ссылку, плиз. Проверить то просто - кто меньше файло сделает, тот и круче
Ответить с цитированием
  #8  
Старый 21.12.2004, 20:58
Donz Donz вне форума
Senior Member
 
Регистрация: 19.06.2004
Адрес: Moscow
Должность: Software engineer JavaME
Сообщений: 493
По умолчанию

http://xat.com/io/index.html
Серийник: 433fhwaw
Выложи, плз, результаты, а то я сам с дизайном не дружу, эксперимент, так сказать, будет не чистый :)
Если серийники в форуме публиковать нельзя, то сорри.
Ответить с цитированием
  #9  
Старый 21.12.2004, 21:30
Аватар для Ago
Ago Ago вне форума
Member
 
Регистрация: 24.08.2004
Компания: LookatWorld
Должность: j2me programming
Сообщений: 75
По умолчанию

По сравнению с gif animator, после xat, всегда файло меньше получается, ...байт на 30-40 :) то есть xat круче.
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масштабирование Image в J2ME Ago Программирование 27 11.04.2011 13:07


Часовой пояс GMT +4, время: 04:15.


vBulletin® Version 3.6.10.
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Перевод: zCarot