<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/index.php?action=history&amp;feed=atom&amp;title=ViewQuest_VQC</id>
	<title>ViewQuest VQC - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/index.php?action=history&amp;feed=atom&amp;title=ViewQuest_VQC"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=ViewQuest_VQC&amp;action=history"/>
	<updated>2026-04-18T09:35:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=ViewQuest_VQC&amp;diff=15508&amp;oldid=prev</id>
		<title>Kostya: Created page with &quot;* FOURCCs: VQC1, VQC2, VQS1, VQS2 * Company: VideoQuest Technologies Inc * Samples: ???  There seem to be four different codec IDs that somewhat differ in frame header for...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=ViewQuest_VQC&amp;diff=15508&amp;oldid=prev"/>
		<updated>2021-01-01T10:33:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;* FOURCCs: VQC1, VQC2, VQS1, VQS2 * Company: &lt;a href=&quot;/index.php?title=VideoQuest_Technologies_Inc&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;VideoQuest Technologies Inc (page does not exist)&quot;&gt;VideoQuest Technologies Inc&lt;/a&gt; * Samples: ???  There seem to be four different codec IDs that somewhat differ in frame header for...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;* FOURCCs: VQC1, VQC2, VQS1, VQS2&lt;br /&gt;
* Company: [[VideoQuest Technologies Inc]]&lt;br /&gt;
* Samples: ???&lt;br /&gt;
&lt;br /&gt;
There seem to be four different codec IDs that somewhat differ in frame header format but they all employ the same compression which is splitting frame into stripes, applying 1-D transform which looks like LGT 5/3 wavelet transform, and coding result in 32-bit chunks using fixed quantisation and variable-length codes.&lt;br /&gt;
&lt;br /&gt;
== Data Format ==&lt;br /&gt;
After the frame header the actual data follows. Bitstream is coded MSB.&lt;br /&gt;
&lt;br /&gt;
Data is coded as 32-byte chunks with the following scheme: first two bytes are transmitted as is and the rest is coded with the following codes.&lt;br /&gt;
&lt;br /&gt;
  10 - end of chunk&lt;br /&gt;
  00 - output 0&lt;br /&gt;
  0100 - skip 3 entries&lt;br /&gt;
  0101 - skip 4 entries&lt;br /&gt;
  0110 - skip 5 entries&lt;br /&gt;
  0111 - skip 6 entries&lt;br /&gt;
  1100 - output 1&lt;br /&gt;
  1101 - output -1&lt;br /&gt;
  111000 - output 2&lt;br /&gt;
  111001 - output 3&lt;br /&gt;
  111010 - output 4&lt;br /&gt;
  111011 - signed 8-bit value follows, 0=end of data&lt;br /&gt;
  111100 - output -2&lt;br /&gt;
  111101 - output -3&lt;br /&gt;
  111110 - output -4&lt;br /&gt;
  111111 - signed 6-bit value follows&lt;br /&gt;
&lt;br /&gt;
After that values are expanded using fixed quantisation tables and three-pass wavelet transform is applied.&lt;br /&gt;
&lt;br /&gt;
Transform:&lt;br /&gt;
&lt;br /&gt;
  s0 = y0[0] + (y1[0] &amp;gt;&amp;gt; 1);&lt;br /&gt;
  for (i = 0; i &amp;lt; size / 2 - 1; i++) {&lt;br /&gt;
    dst[i*2]     = s0;&lt;br /&gt;
    s0 = y0[i + 1] + ((y1[i] + y1[i + 1]) &amp;gt;&amp;gt; 1);&lt;br /&gt;
    dst[i*2 + 1] = ((dst[i*2] + s0) &amp;gt;&amp;gt; 1) - 2 * y1[i];&lt;br /&gt;
  }&lt;br /&gt;
  dst[width - 2] = s0;&lt;br /&gt;
  dst[width - 1] = y0[size / 2 - 1] + ((y1[width / 2 - 1] - 2 * y1[size / 2 - 2]) &amp;gt;&amp;gt; 2) - y1[size / 2 - 2];&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Undiscovered Video Codecs]]&lt;br /&gt;
[[Category:Wavelet Video Codecs]]&lt;/div&gt;</summary>
		<author><name>Kostya</name></author>
	</entry>
</feed>