internal Sample(BitStream bitStream, byte bitsPerComponent, byte componentCount)
{
if (bitStream == null)
throw new ArgumentNullException("bitStream");
if (bitsPerComponent <= 0 || bitsPerComponent > 16)
throw new ArgumentOutOfRangeException("bitsPerComponent");
if (componentCount <= 0 || componentCount > 5)
throw new ArgumentOutOfRangeException("componentCount");
m_bitsPerComponent = bitsPerComponent;
componentsLength = componentCount;
if (componentCount >= 1) m_components_r = (short)bitStream.Read(bitsPerComponent);
else m_components_r = 0;
if (componentCount >= 2) m_components_g = (short)bitStream.Read(bitsPerComponent);
else m_components_g = 0;
if (componentCount >= 3) m_components_b = (short)bitStream.Read(bitsPerComponent);
else m_components_b = 0;
if (componentCount >= 4) m_components_a = (short)bitStream.Read(bitsPerComponent);
else m_components_a = 0;
//m_components = new short[componentCount];
//for (short i = 0; i < componentCount; ++i)
// m_components[i] = (short)bitStream.Read(bitsPerComponent);
}