For processing, Cinepak divides a video into key (intra-coded) images and inter-coded images. In key images the codebooks are transmitted from scratch, while in inter-coded images codebook entries are selectively updated. Each image is further divided into a number of horizontal bands. The codebooks can be updated on a per-band basis. Each band is divided into 4×4 pixel blocks. Each block can be coded either from the V1 or from the V4 codebook. When coding from the V1 codebook, one codebook index per 4×4 block is written to the bitstream, and the corresponding 2×2 codebook entry is upscaled to 4×4 pixels. When coding from the V4 codebook, four codebook indices per 4×4 block are written to the bitstream, one for each 2×2 subblock. Alternatively to coding from the V1 or the V4 codebook, a 4×4 block in an inter-coded image can be skipped. A skipped block is copied unchanged from the previous frame in a conditional replenishment fashion. The data rate can be controlled by adjusting the rate of key frames and by adjusting the permitted error in each block.