kernel vec4 anamorphicScaleHorizontal(sampler image, __table sampler table, vec2 rescale)
{
    vec2 coord = destCoord();
    vec2 loc = vec2(coord.x * rescale.x, 0.5);
    vec4 read_address = 4.0 * sample(table, samplerTransform(table, loc));
    return sample(image, samplerTransform(image, vec2(read_address.x * coord.x, coord.y * rescale.y)));
}

kernel vec4 anamorphicScaleVertical(sampler image, __table sampler table, vec2 rescale)
{
    vec2 coord = destCoord();
    vec2 loc = vec2(coord.y * rescale.y, 0.5);    
    vec4 read_address = 4.0 * sample(table, samplerTransform(table, loc));
    return sample(image, samplerTransform(image, vec2(coord.x * rescale.x, read_address.x * coord.y)));
}