Are you putting the text 'quality()' in the parameter? That may be the issue.
The quality parameter is a number between 0 and 1 (below 0.4 the results start to be too compressed).
Here are a couple examples of how to set it:
hdmake -src uhr.jpg -dst uhr 1 -xmlflat uhr.xml -html uhr.html
hdmake -src uhr.jpg -dst uhr 0.8 -xmlflat uhr.xml -html uhr.html
The first encodes a tile-set with quality of 1, which is uncompressed, but results in large tile sizes. The second with a quality of 0.8 compressed and with tile sizes reasonable for internet streaming.
For 8bit/component data I usually choose quality between .7 and .85
For 16bit/32bit data I usually choose quality between 0.45 and 0.65