| Amiga Impact

  · Accueil
  · Actualités
   · Proposer une info
  · Agenda
   · Proposer une date
  · Articles
  · Forum
  · Petites Annonces
  · Chat IRC
  · À propos du site
   · Confidentialité



 | Connexion

Identifiant :

Mot de passe :

 Mémoriser

  · Inscription
  · Mot de passe oublié



 | En ligne

Illustration du profil de huggyone76




 | Nous suivre

Flux RSSGoogle+TwitterFacebook





Forum

/   Forums d'Amiga Impact
   /  Convertir du Ham8 en BMP ou autre

Accueil Forums AmigaOS, MorphOS et AROS Général Convertir du Ham8 en BMP ou autre

Ce sujet a 14 réponses, 8 participants et a été mis à jour par  Tcheko, il y a 2 ans et 11 mois.

15 sujets de 1 à 15 (sur un total de 15)

Auteur Messages   
#272268 Convertir du Ham8 en BMP ou autre
 le 27/10/2016 à 18:39


thellier

Participant
  • Messages : 610

Hello

Suite à un fil sur english amiga board (sur le nombre de couleurs vraiment possibles dans une image ham8) je voudrais pouvoir convertir une très grosse image HAM8 vers du .BMP ou autre format non destructif pour ensuite compter les couleurs

Un prog existe ? Amiga ou PC …

Merci

D’autre part dans ce meme fil on pretend que en mode modify les 2 bits faibles ne sont pas modifiés mais seuls les 6 bits forts
Je n’y crois pas (cad je pense que les 6bits forts + 2 bits à 0 remplacent l’ancienne valeur ) et ne trouve pas de reference sur ce point du Ham8
Que dis le hardware ref manual?

Alain Thellier

Edit:
Le sujet complet
http://eab.abime.net/showthread.php?t=84516&highlight=ham8

#272272 Répondre à : Convertir du Ham8 en BMP ou autre
 le 27/10/2016 à 18:54


Kaizen 35

Participant
  • Messages : 317

il me semble que paintshop pro lisait du iff amiga. après HAM8, je ne sait pas… à tester ?

^^ ^^ ^^

#272276 Répondre à : Convertir du Ham8 en BMP ou autre
 le 27/10/2016 à 19:33


sayasupacrew

Participant
  • Messages : 3787

le top de la conversion, a mon sens.

en version ouine ou tux,

http://www.xnview.com/fr/

A2000, blizzard 060, 128 edo Add, VA2000 + CX scandoubleur, xsurf, MegChip
A2000, combo030 scsi 2 mo add, A2058 2mo, Vlabmotion, xsurf (cm hs)
A4000T, Eagle 060, PIV, Xsurf, Delfina LITE, VariO(le tout en recapage)
A500 vampirisé 128 mo, HDMI out, mini SD, AGA soft,virtua CPU
CD 32 TF328 + 8 Mo + RVB + Clavier Ps2 (en recapage)
To8D, Mo6, Mo5 + Lect Disq 3,5
TI99A4, c=64, Jopac Brant + 60 cartouches
Morphos on Powermac G5

#272285 Répondre à : Convertir du Ham8 en BMP ou autre
 le 27/10/2016 à 20:56


IDNO530311

Participant
  • Messages : 154

je confirme, Paint shop pro c’est très bien travailler avec l’IFF de l’amiga
Tout du moins jusqu’à sa version 7 (celle que j’utilise)

#272298 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 01:46


bigdan

Admin bbPress
  • Messages : 4656

Thellier: intéressante ta question. Perso, j’essaierai avec ImageFX (sauvegarde en TIFF ou PNG) !

Le nombre de couleurs dépends de l’image (entre 262 144 soit palette de 18bits RGB et 16 777 216 couleurs soit 24 bits RGB). Si je comprends bien, les 2 bits de poids faibles correspondent à la dernière modif de set (index dans une palette de 64 couleurs).. Une vrai bazar ces formats HAM6 – HAM8 de 1992 !

https://www.ibm.com/developerworks/power/library/pa-spec16/

IDNO53011: Paint Shop Pro sait très bien travailler… Je vérifie demain avec 2 ou 3 images HAM8 piquées sur Aminet !

#272304 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 09:15


Tcheko

Modérateur
  • Messages : 998

Il n’est pas nécessaire de compter les couleurs pour savoir combien le mode HAM8 peut en afficher. Si la palette de base est bien choisie et si l’on fait usage de tricks avec la copper list en modifiant à la volée les couleurs de base en fonction de la position du raster, il est possible d’afficher plus de couleurs.

Cette astuce était déjà possible en HAM6 avec le mode sliced HAM.

D’autres sont allés plus loin et ont inventé le Dynamic HiRes capable d’afficher 4096 couleurs en haute résolution avec seulement une palette de 16 couleurs et sans les effets de frange du HAM6. Bon. moins de 10% de cpu disponible avec un 68000 cependant…

Le mode HAM8 divise les octets en deux parties. Deux bits pour choisir le mode opératoire et 6 bits pour la valeur de l’opération.

Il y a quatre opérations possibles :

Hold : utilise la valeur pour afficher une couleur de base
Modify : utilise la valeur pour altérer un des canons R, G ou B (3 opérations…).

L’opération Modify altère les 6 bits de poids fort d’un des canons couleur du pixel précédent (soit le rouge, soit le bleu, soit le vert). Les deux bits de poids faible restent inchangés et sont issus de la couleur de la palette de base.

Si l’on change la palette à l’aide d’une copper list (un changement de couleur tous les 8 pixels lowres), il est possible d’altérer une couleur de la palette tous les 8 pixels. Sur un écran en 320 pixels de large, c’est donc 40 changements de couleurs possibles par ligne.

Il est donc possible d’afficher bien plus que les 262144 couleurs annoncées en faisant appel à la copper list pour modifier les couleurs à la volée lors de l’affichage.

Il est évident qu’un simple programme qui transformerait une image HAM8 ordinaire trouvera à l’arrivée 262144 couleurs maximum (faut il encore que toute la palette soit présente dans l’image!).

Le mode HAM est génial. C’est un décompresseur chromatique matériel qui permet d’afficher des milliers de couleurs avec une consommation mémoire ridicule. Son seul défaut est la légère perte de résolution horizontale, le fameux effet des couleurs qui bavent un peu…

#272305 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 09:30


hivernaal

Participant
  • Messages : 4075

Merci pour cette super explication j’adore !

A4000T + Happyga, A500, ART member.

#272306 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 09:54


Kaizen 35

Participant
  • Messages : 317

cool cette explication 🙂

^^ ^^ ^^

#272307 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 10:45


cyb0rg

Participant
  • Messages : 991

J’ai toujours trouvé le mode HAM dégueulasse … Comme un bon vieux jpeg trop compressé…

Only amiga makes it possible
XTR Games
Magic Productions
tilde

#272308 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 10:52


thellier

Participant
  • Messages : 610

@all
Effectivement xnview marche très bien pour le HAM8
Merci

@tcheko
C’est une bonne explication du HAM & co
Mais à mon avis tout ce qui change la palette est hors sujet car ce qui m’importe c’est combien un fichier iff ham8 peut vraiment préserver de couleurs comme « conteneur »
Trop étendre le concept de palette ce serait aller vers le fait qu’un écran en 1 couleur (sans bitmaps juste la couleur de fond) pourrait par programme afficher 4096 couleurs par ex (copper list)

Ensuite je répéte ce que j’ai écrit sur English Amiga Board ici:

> 262144 […] le nombre qui est le plus pertinent.

En fait, il y a 256 valeurs possibles pour chaque canal R, G ou B (cad toute les valeurs entre 0 et 255)

Voyons le HAM8:
Parmi celles ci 64 peuvent être obtenues en mode modification (Modify) de pixel (tel que 0 4 8 12 16 etc …)
Mais aussi la palette peut être définie pour utiliser 64 autres valeurs (comme 1 2 3 5 6 7 9 etc …)
celles-ci peuvent être obtenues lorsqu’on prend (Hold) une couleur de pixel depuis la palette

Donc, le total des valeurs possibles est de 64 + 64 valeurs pour chaque canal R, G ou B
Donc, 128 * 128 * 128 = 2097152 = 2 millions de couleurs non 16 comme dit souvent …

pandy71:
> Est-ce pas mieux définir le problème de dire que les 2 bits de poids faibles ne viennet que de la palette

Non, parce que vous pouvez accéder à seulement 64 couleurs de la palette en HAM8 de sorte que vous ne pouvez pas récupérer toutes les valeurs de POSSIBLES de 0 à 255, mais seulement 64 parmi elles

> 2 + 2 + 2 = 6 bits et 6 + 6 + 6 = 18; 6 + 18 = 24.
Cette formule laisse supposer que si on prend (Hold) une couleur de la palette (donc avec 8 bits de précision) dans un pixel, vous pouvez modifier dans le prochain pixel SEULEMENT les 6 bits de poids forts pour (par exemple) le canal rouge: mais ce n’est pas le cas car il REMPLACE le canal rouge (par exemple) de sorte que vous perdez les 2 bits de poids faibles

Note: Il y a un débat sur ces fameux 2 bits de poids faibles. Wikipedia dit comme Tcheko mais je préferai une référence comme le hardware reference manual

Jack Burton:
>j’ai fait un test sur ImageFX 2.6 avec une image représentant la palette de couleurs 24bit. en 4096×4096 pixels

J’ai essayé avec votre image comme exemple en utilisant mon propre programme de DatatypeToHam
(dans WinUAE avec beaucoup de ram)

DatatypeToHam 144 Full_24bit_RGB_palette.png 4096 4096

J’ai obtenu un fichier iff ham8 mais trop grand pour tout amiga classique (mais pour info il charge sur une Sam460 + OS4.1fe)

Puis j’ai chargé dans XnView pour PC (qui a un beau support du chargement HAM8 ) ==> 258304 couleurs
PaintShopPro donne même résultat une fois converti en BMP

Donc, le message est: DatatypeToHam peut générer une VRAIE image 258304 couleurs en HAM8

🙂

Alain Thellier

#272311 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 11:01


thellier

Participant
  • Messages : 610

Note: DatatypeToHam n’a pas brisé ici la limite des 262144 couleurs car justement il prend pas en compte une palette avec des 2 bits de poids faibles
Faudra que je l’update un peu…

Alain

#272330 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 13:48


Tcheko

Modérateur
  • Messages : 998

Si l’on part du principe que l’on ne dispose que d’une couleur dans la palette, celle ci peut être changée de 64 différentes manières pour chaque canon.

Ainsi, 64(R) x 64(G) x 64(B) ou alors 262144 combinaisons possibles et cela à partir d’une seule couleur dans la palette.

La palette peut contenir 64 couleurs différentes ce qui est largement suffisant pour adresser les 2 bits de poids faible ‘manquants’ pour atteindre les 8 bits de précision par canon.

Afin d’atteindre les 2^24 couleurs (16 millions et des briquettes), il nous faut :

4 couleurs pour chaque canon R, G et B avec des valeurs pour les bits de poids faible : 00, 01, 10 et enfin 11. Peu importe la valeur des bits de poids fort pour ces couleurs puisqu’ils sont altérables avec l’opération Modify. Cependant pour simplifier, considérons que les 6 bits de poids fort sont tous à zéro pour l’ensemble des couleurs.

Donc, 4 couleurs par canon et il y a 3 canons soit 8 combinaisons possibles entre R, G, et B

Couleur 0: R00, G00, B00

Rouge pur
Couleur 1: R01, G00, B00
Couleur 2: R10, G00, B00
Couleur 3: R11, G00, B00

Vert pur
Couleur 4: R00, G01, B00
Couleur 5: R00, G10, B00
Couleur 6: R00, G11, B00

Bleu pur
Couleur 7: R00, G00, B01
Couleur 8: R00, G00, B10
Couleur 9: R00, G00, B11

Jaune
Couleur 10: R01, G01, B00
Couleur 11: R01, G10, B00
Couleur 12: R01, G11, B00

Couleur 13: R10, G01, B00
Couleur 14: R10, G10, B00
Couleur 15: R10, G11, B00

Couleur 16: R11, G01, B00
Couleur 17: R11, G10, B00
Couleur 18: R11, G11, B00

Violet
Couleur 19: R01, G00, B01
Couleur 20: R01, G00, B10
Couleur 21: R01, G00, B11

Couleur 22: R10, G00, B01
Couleur 23: R10, G00, B10
Couleur 24: R10, G00, B11

Couleur 25: R11, G00, B01
Couleur 26: R11, G00, B10
Couleur 27: R11, G00, B11

Bleu ciel
Couleur 28: R00, G01, B01
Couleur 29: R00, G01, B10
Couleur 30: R00, G01, B11

Couleur 31: R00, G10, B01
Couleur 32: R00, G10, B10
Couleur 33: R00, G10, B11

Couleur 34: R00, G11, B01
Couleur 35: R00, G11, B10
Couleur 36: R00, G11, B11

Gris
Couleur 37: R01, G01, B01
Couleur 38: R10, G10, B10
Couleur 39: R11, G11, B11

Et le reste des combinaisons possibles :
Couleur 40: R01, G01, B10
Couleur 41: R01, G01, B11
Couleur 42: R01, G10, B01
Couleur 43: R01, G10, B10
Couleur 44: R01, G10, B11
Couleur 45: R01, G11, B01
Couleur 46: R01, G11, B10
Couleur 47: R01, G11, B11

Couleur 48: R10, G01, B01
Couleur 49: R10, G01, B10
Couleur 50: R10, G01, B11
Couleur 51: R10, G10, B01
Couleur 52: R10, G10, B11
Couleur 53: R10, G11, B01
Couleur 54: R10, G11, B10
Couleur 55: R10, G11, B11

Et enfin…

Couleur 56: R11, G01, B01
Couleur 57: R11, G01, B10
Couleur 58: R11, G01, B11
Couleur 59: R11, G10, B01
Couleur 60: R11, G10, B10
Couleur 61: R11, G10, B11
Couleur 62: R11, G11, B01
Couleur 63: R11, G11, B10

Donc. En choisissant convenablement la palette des 64 couleurs du mode HAM8, il est techniquement possible d’accéder au 16 millions de couleurs…

En partant de ce principe, il est possible de fabriquer une image avec toutes les couleurs simplement :

Premier octet : 00 000001 – couleur n°1 R0x00 G0x00 B0x00
Second octet : 01 000000 – Modify canon R
Troisième octet : 01 000001 – Modify canon R (R0x030, G0x00, B0x00)
Quatrième octet : 01 000010 – Modify canon R (R0x040, G0x00, B0x00)

65eme octet : 01 111111 – Modify canon R (R0xFC, G0x00, B0x00)

Pour aller chercher les autres bits de poids faible, changer la couleur de départ :
Premier octet : 00 000002 – couleur n°1 R0x01 G0x00 B0x00
Second octet : 01 000000 – Modify canon R
Troisième octet : 01 000001 – Modify canon R (R0x031, G0x00, B0x00)

65eme octet : 01 111111 – Modify canon R (R0xFD, G0x00, B0x00)

etc…

Seul hic. La taille de l’image qui doit pour pouvoir être composée des 16 millions de couleurs avoir autant de pixels soit 4096 x 4096.

Il ne doit pas être bien compliqué d’écrire un bout de code pour fabriquer une telle image. 🙂

PS: notons que 64 couleurs x 64(R) x 64(G) x 64(B) = 2^24… mais il fallait faire la démonstration des bits de poids faibles pour comprendre comment accéder à toutes les couleurs.

PS2: Correction de la couleur n°63…

#272332 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 13:59


Kaizen 35

Participant
  • Messages : 317

petit hors sujet :

Tcheko et Thellier, c’est quoi vos métiers si ce n’est pas trop indiscret ?

car là, vous m’épatez… O_O

^^ ^^ ^^

#272339 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 14:22


thellier

Participant
  • Messages : 610

@tcheko
Ton raisonnement ne tiens que si les 2 bits de poids faibles venant de la palette ne sont jamais affecté par les « Modify » suivants du R,G ou B
C’est justement ce point qui est litigieux : si tu as une source (hors wikipedia) qui le confirme alors donne la

>pouvoir être composée des 16 millions de couleurs avoir autant de pixels soit 4096 x 4096
En fait si certaines couleurs ne sont « atteignables » qu’en modifiant plusieurs pixels de suite (max 4) il vaudrait mieux prevoir 4*4096*4096 pour être tranquille = ouups

@kaizen35
Je suis support informatique chez Orange j’aide des personnes d’Orange à faire des requêtes sur diverses applis qui mesurent le trafic sur le réseau = bof bof
Mais surtout j’ai eu mon premier Amiga dès 1988 🙂

#272343 Répondre à : Convertir du Ham8 en BMP ou autre
 le 28/10/2016 à 15:20


Tcheko

Modérateur
  • Messages : 998

@thellier
Les bits de poids faible ne sont pas affectés par le modify.

Extrait de la documentation AGA.guide de l’archive ASM-One :

The old 6 bitplane HAM mode, unlike before, works in HIRES and SHRES
resolutions.

As before bitplanes 5 and 6 control it

s function as follows:

+—–+—–+——–+——–+——————+
| BP6 | BP5 | RED | GREEN | BLUE |
+—–+—–+——–+——–+——————+
| 0 | 0 | select new base register (1 of 16) |
+—–+—–+——–+——–+——————+
| 0 | 1 | hold | hold | modify |
+—–+—–+——–+——–+——————+
| 1 | 0 | modify | hold | hold |
+—–+—–+——–+——–+——————+
| 1 | 1 | hold | modify | hold |
+—–+—–+——–+——–+——————+

There is a new 8 bitplane HAM (Hold and Modify) mode. This mode is invoked
when BPU field in @{« BPLCON0 » link BPLCON0} is set to 8 , and HAMEN is set. Bitplanes 1 and 2
are used as control bits analagous to the function of bitplanes 5 and 6 in
6 bitplane HAM mode:

+—–+—–+——–+——–+——————+
| BP2 | BP1 | RED | GREEN | BLUE |
+—–+—–+——–+——–+——————+
| 0 | 1 | select new base register (1 of 64) |
+—–+—–+——–+——–+——————+
| 0 | 1 | hold | hold | modify |
+—–+—–+——–+——–+——————+
| 1 | 0 | modify | hold | hold |
+—–+—–+——–+——–+——————+
| 1 | 1 | hold | modify | hold |
+—–+—–+——–+——–+——————+

Since only 6 bitplanes are available for modify data, the data is placed in
6 MSB. The 2 LSB are left unmodified, which allows creation of all
16,777,216 colors simultaneously, assuming one had a large enough screen
and picked one`s base registers judiciously. This HAM mode also works in
HIRES and SHRES modes.

Pour atteindre toutes les couleurs, il n’est pas nécessaire d’avoir plus de 4096 x 4096 pixels. Il suffit pour cela d’arranger les ordres convenablement. Je n’ai pas réfléchis à la façon d’arranger toutes les instructions mais il y a forcément une combinaison ‘magique’. La première qui me vient à l’esprit est de faire une image de 64 pixels de haut avec comme départ les 64 couleurs de base sur chaque ligne… et 262144 pixels de largeur. Haha.

@kaizen35 : développeur indépendant.


15 sujets de 1 à 15 (sur un total de 15)

Vous devez être connecté pour répondre à ce sujet.

                   
Derniers sujetsFraîcheur
 · A500 – Modifié en stock Retrohax.net il y a 3 heures et 44 minutes
 · MorphOS au quotidien il y a 3 heures et 48 minutes
 · Vendredi 18/10/19 à 21h : 8ème soirée Chat IRC sur #amigaimpact il y a 4 heures et 20 minutes
 · Alchimie treize il y a 7 heures et 7 minutes
 · Skynet ! Le commencement ! il y a 9 heures et 44 minutes
 · [VENDS] APOLLO 1230 turbo MK3 – 68030+68882 40Mhz + 8 Go il y a 10 heures et 44 minutes
 · raspberry pi ami amiga os 4 il y a 10 heures et 49 minutes
 · Goex Drive pour Amiga 1200 il y a 11 heures et 30 minutes
 · L'histoire Amiga de Team 17 il y a 14 heures et 54 minutes
 · [VENDS] Calculatrice HP-48GX il y a 15 heures et 45 minutes





RechercheFraîcheur


Copyright © 2004-2019 Amiga Impact. Tous droits réservés. Les marques citées sont déposées par leurs propriétaires respectifs.
Conditions d'Utilisation, Politique de Confidentialité et Information sur les cookies.


Fil RSS WordPressNicolas Gressard, Conseil et développement informatique

Do NOT follow this link or you will be banned from the site!