The growth in personal computer (PC) usage and connectivity has forged new and creative ways for individuals and businesses to communicate and share information. Among these new methods include those which add video sequences to traditional methods of communication. Adding video sequences allow individuals and businesses to participate in activities such as video conferencing, video mail, interactive document editing, and object display.
Video sequences often contain large amounts of information. In order to transmit video sequences over bandlimited channels such as the Public Switched Telephone Network (PSTN), local area networks (LANs), the Internet, broadcast, and mobile networks, data rate control is required for encoding the video sequences. Data rate control may also be needed for encoding the video sequences for transmission over non-band-limited channels. Recording mediums such as hard drives, compact disk read only memory (CD-ROM) drives, and digital video disk (DVD) drives have storage constraints that need to be satisfied.
A necessary parameter in the process of data rate control is the frame rate of the video sequence. In real-time environments, the exact frame rate is often non-deterministic. An example of this uncertainty in the frame rate is observed when fluctuations in system load on a computer system may temporarily increase or decrease the video capture frame rate. Many application program interfaces (APIs) such as Microsoft's Video for Windows.RTM. API fail to report the frame rate to installed video encoders during real-time capture and compression.