Iterative video encoding systems, methods and computer program products, where residue quantization and data packing operations of an encoding process may he repeated with various values for a quantization parameter, without repeating the determination of macroblock prediction code. In an embodiment, the size of an actual file generated by encoding is compared to a target file size. The QP may be adjusted depending on the amount by which these file sizes differ. The quantization and packing may then be repeated with the adjusted QP. In an embodiment, a greater difference in these file sizes results in a greater adjustment to the QP.