{"id":161,"date":"2005-12-18T07:28:50","date_gmt":"2005-12-18T15:28:50","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/?p=161"},"modified":"2007-11-01T21:53:01","modified_gmt":"2007-11-02T04:53:01","slug":"worlds-simplest-vector-quantizer","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/worlds-simplest-vector-quantizer\/","title":{"rendered":"World&#8217;s Simplest Vector Quantizer"},"content":{"rendered":"<p>Vladimir &#8220;VAG&#8221; Gneushev has uncovered the world&#8217;s simplest vector quantizer codec. An FMV format named AVS was used in a 1994 CD-ROM title called <em><a href=\"http:\/\/www.mobygames.com\/game\/dos\/creature-shock\">Creature Shock<\/a><\/em>. Intraframes carry a vector codebook and vector map; interframes also carry a change map. The audio chunks are actually Creative VOC chunks. <a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=AVS\">Complete details are here.<\/a><\/p>\n<p>The strangest thing about this particular VQ codec is that the vectors can have a dimension of 3. For example, the intraframes are comprised of 3&#215;3 pixel vectors. 3 is not divisible by many common video frame resolutions. This game ran on IBM VGAs in 320x200x256 color mode. But the resolution of the movies was actually 318&#215;198. Look carefully at a screenshot from the game:<\/p>\n<p><center><br \/>\n<img decoding=\"async\" src=\"\/eggs\/images\/creatureshock.png\" alt=\"Creature Shock Screenshot\" \/><br \/>\n<em>screenshot courtesy of <a href=\"http:\/\/www.mobygames.com\/\">MobyGames<\/a><\/em><br \/>\n<\/center><\/p>\n<p>The top row, bottom row, and 2 right columns are all left undrawn.<\/p>\n<p>So, who wants to implement this format first? If the inspiration strikes you, <a href=\"http:\/\/samples.mplayerhq.hu\/game-formats\/avs\/\">here are some sample files<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;ve found it! The world&#8217;s simplest VQ codec&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,4,34],"tags":[],"class_list":["post-161","post","type-post","status-publish","format-standard","hentry","category-game-hacking","category-reverse-engineering","category-vector-quantization"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=161"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/161\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}