Abstract:
A method and apparatus select the wire video size and capture video size of a video telephony product depending upon the desired remote video size. A target frame rate is taken into account when choosing the wire video size and capture video size. Wire video size is chosen as close to the desired remote video size as possible. To provide high quality, the video capture frame rate and capture video sizes are maintained above a predetermined level.

Description:
TECHNICAL FIELD 
     Embodiments of the present invention relate to video conferencing and, more specifically, to correlating remote viewing and local video capture. 
     BACKGROUND INFORMATION 
     Video conferencing and video telephone applications have been advancing with great speed in the past several years. With the increase in global business, it has become increasingly more difficult to engage in face to face meetings with business contacts, clients, and the like. In some measure, the use of the telephone and electronic mail (E-mail) communication has served to cover the gap. However, face to face meetings can still convey more information about the participants than E-mail and telephonic communications. Because of the desire to engage in face to face meetings with contacts, video conferencing has become increasingly more popular. 
     Video conferencing requires apparatus at each location of the conference to allow the participants to have video captured and transmitted to the other location for viewing. The quality of video transmitted and viewed depends on a number of factors, including the size of the picture a viewer sees, and the frame rate of the transmission. A lower frame rate results in more flicker and non-fluid movements. A smaller picture size makes it more difficult to see images and details of images. Frame rates and video size depend on the expected bandwidth of the transmission, the processing speed of any processor processing the transmitted video, and the capabilities of the capture and display devices. 
     Often, remote viewing devices and local video capture devices have different specifications and capabilities, and cannot necessarily display the same capture video size. Even if the same capture video size is available, the frame rate for one of the devices may be far lower than the expected frame rate in the application. Such video capture mismatches lead to problems with transmissions that must be dealt with to ensure quality video communication. When video capture devices differ, and video size or frame rates do not match between two end points, it is time consuming and frustrating to attempt to match capabilities. 
     One method of matching capabilities is to stretch the video image at one of the video conference locations. That is, if a back-end viewing device cannot provide an adequate frame rate for a certain video size, the size is reduced at the back-end, and transmitted to the front-end at the smaller size. The video is then stretched at the front-end video device, allowing display of the video at the desired size and frame rate, but with a reduced quality picture. In other words, the image size at the front-end viewing device is increased from its transmitted size, which is smaller than the desired remote video size. 
     In many instances, the viewer of the remote viewing device video will determine the capture video size of the front-end or local device, and the wire video size for transmission of video between the two devices. It would be desirable to improve the selection of video sizes to increase the quality of remote video. It would a similarly be desirable to select capture video size and wire video size taking into account the capabilities of the local video viewing device. 
     SUMMARY 
     In one embodiment, a method for choosing the wire video size of a video telephony product includes deriving a wire video size from a desired remote video size of a remote viewing device, and choosing a remote viewing target frame rate. A determination is made as to whether the chosen wire video size has a capture frame rate less than a threshold percentage of a maximum frame rate of the remote viewing device and a capture video size less than a threshold percentage of a maximum stretch of the wire video size. If the capture frame rate or capture video size are less than the threshold percentage of the maximum frame rate or the threshold percentage of the maximum stretch of the wire video size, a smaller wire video size is selected, and choosing a target frame rate through determining if a smaller wire video size is selected are repeated. 
     In another embodiment, a video conferencing station includes a host video conferencing device having a video capture device, a transmission device for transmitting video, and a central processing unit. A computer readable medium capable of execution by the central processing unit causes the central processing unit to execute a method as described above. Other methods may also be executed. 
     Other embodiments are described and claimed. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flow chart diagram of a method according to one embodiment of the invention; 
     FIG. 2 is a flow chart diagram of a method according to another embodiment of the invention; 
     FIG. 2A is a flow chart diagram of a method according to yet another embodiment of the invention; 
     FIG. 3 is a block diagram of a video conferencing embodiment of the invention; and 
     FIG. 4 is a block diagram of a computer system on which embodiments of the invention may be utilized. 
    
    
     DESCRIPTION OF EMBODIMENTS 
     In the following detailed description of sample embodiments, reference is made to the accompanying drawings which form a part hereof, and in which are shown by way of illustration, but not of limitation, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice embodiments of the invention, and it is to be understood that other embodiments may be utilized and logical, structural, electrical, and other changes may be made without departing from the scope of the present disclosure. 
     Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer or processor memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. 
     Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present disclosure, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     Standard video telephony products have a number of parameters which are used in the capture, transmission, and display of video. Video signals are captured by a capture device such as a video camera or the like. Each capture device has a range of capture sizes and different capture frame rates at each capture size. 
     Three different video sizes are utilized in the various embodiments of the invention. They are the capture video size (CVS) which is used for video capture at the transmission endpoint or local video telephony product, the wire video size (WVS) which is used for video transmission between the local and remote devices, and the remote video size (RVS) which is the video size at which the user at a remote video device wishes to display transmitted video. The RVS is typically the determining factor, as RVS is chosen by the user at the remote location. The chosen RVS may require a change in either or both of the CVS and WVS of the local video telephony product. Remote video size may also be referred to as requested video size or required video size. 
     Ideally, in a video conferencing application, CVS=WVS=RVS. However, due to the large numbers and capabilities of video telephony products, such a match is not always possible. The International Telecommunication Union (ITU), which is a specialized agency of the United Nations, has set certain standards for video compression. A common video compression standard, ITU-T Recommendation H.263, March, 1996 (hereinafter “H.263”), supports only certain video sizes. Such video sizes include Common Intermediate Format (CIF), Quarter CIF-(QCIF), sub-QCIF (SQCIF), and the like. In such an instance, the WVS is limited to the group of sizes supported by H.263. Different standards allow different wire video sizes. For example, a revised H.263 standard, ITU-T H.263 Version 2, January, 1998 (hereinafter “H.263+”) coder/decoder system for digital transmission includes wire video sizes of any multiple of 4 by any multiple of 4, for example, 356×288, 320×240, or the like. 
     FIG. 1 is a flow chart diagram of a method  100  of choosing a wire video size (WVS) and a capture video size (CVS) for a local video telephony product according to one embodiment of the invention. The method allows the choice of the combination of WVS, RVS, and CVS to provide temporal video quality closest to ideal given the parameters of the equipment in use. Method  100  comprises retrieving a list of available WVS&#39;s for a video capture device of a local or host video telephony product in block  102 , and setting the WVS initially to the RVS desired by a remote viewing device of a remote video telephony product. 
     The operation of setting or deriving the WVS includes obtaining the desired RVS from the remote viewing device in block  103 , comparing available WVS&#39;s to the RVS in block  104 , and selecting the WVS closest to the RVS in block  105 . 
     The capture video size (CVS) is chosen next. To choose a CVS, a determination is made in block  106  whether the local video telephony product can capture the initially set WVS. If the local telephony product can capture the initially set WVS, then the CVS of the local telephony product is set to the WVS in block  108 , and process flow continues at block  112 . If the local telephony product cannot capture the initially set WVS, then the closest video size the local telephony product can capture, given the initially set WVS, is chosen in block  110 , and process flow continues at block  112 . 
     In block  112 , the capture frame rate (CFR) for the CVS is obtained. In block  114 , the target frame rate (TFR) for the chosen WVS is obtained. To determine the best match between the local and remote video telephony devices, certain conditions should be met. The TFR for the chosen WVS is determined based on the expected communication bandwidth between the local and remote devices, and on the central processing unit (CPU) speed of the remote device. 
     To provide the best quality video for the chosen parameters of the method  100 , the CFR should be greater than or equal to a predetermined percentage of the TFR. That is, the TFR is adjusted to a predetermined percentage of the TFR by multiplying the TFR by a maximum frame rate percentage (MaxFR threshold) to determine a frame rate above which it is desired that the CFR remain. In decision block  116 , a determination is made as to whether the CFR is less than the TFR multiplied by the MaxFR threshold. The MaxFR threshold may be set as a predetermined percentage, or may be chosen by the users of the video telephony products to require a specific quality for the video transmission. If the CFR is less than the TFR multiplied by the MaxFR threshold, then process flow continues at block  118 . If the CFR is not less than the TFR multiplied by the MaxFR threshold, then process flow continues at decision block  122 . 
     In decision block  118 , a determination is made as to whether the currently set WVS is the last WVS in the list of available WVS&#39;s obtained in block  102 . If the currently set WVS is the last WVS on the list of available WVS&#39;s, then process flow is complete, and the current parameters in the method  100  are utilized in video transmission. If the currently set WVS is not the last WVS on the list of available WVS&#39;s, then in one embodiment another WVS from the list of WVS&#39;s is chosen as the current WVS. In another embodiment, the new WVS is selected to be the next available WVS which is smaller than the current WVS. Process flow continues at block  106 . 
     To provide the best quality video for the chosen parameters of the method  100 , the CVS should be,greater than or equal to a predetermined percentage of the WVS. That is, the WVS is adjusted to a predetermined percentage of the WVS by multiplying the WVS by a maximum stretch percentage (MaxStretch threshold) to determine a video size above which it is desired that the CVS remain. If the CVS is not less than the WVS multiplied by the MaxStretch threshold in block  122 , then process flow is complete, and the current parameters in the method  100  are utilized in video transmission. If the CVS is less than the WVS multiplied by the MaxStretch threshold in block  122 , process flow continues at block  118 . 
     In another embodiment shown in FIG. 2, a method  200  of choosing a wire video size and a capture video size for a local video telephony product comprises deriving a WVS from a chosen RVS in block  202 , setting the CVS equal to WVS or getting the closest video size and setting it equal to CVS in block  203 , and choosing a TFR in block  204 . The TFR is chosen in one embodiment by the remote viewer side of the video telephone system based on factors including the CPU speed of the remote video device and the expected bandwidth of the communication link between the remote and the local sites. 
     Given the selected WVS, a determination is made in decision block  206  as to whether the CFR is less than the TFR multiplied by the MaxFR threshold. If the CFR is less than the TFR multiplied by the MaxFR threshold, process flow continues at block  210 . If not, process flow continues at decision block  208 . In decision block  208 , given the selected WVS, a determination is made as to whether the CVS is less than the WVS multiplied by the MaxStretch threshold. If the CVS is less than the WVS multiplied by the MaxStretch threshold, process flow continues at block  210 . If not, process flow is complete and the current parameters in the method  200  are utilized in video transmission. In block  210 , a new WvS is selected if another WVS is available, and process flow continues at block  203 . 
     Optionally, in another embodiment  250 , shown in FIG. 2A, the local video telephony product monitors the remote video size of the remote device in block  252 , and if the RVS is changed by the remote video device as determined by decision block  254 , the embodiments of methods  100  and  200  re-choose the wire video size in the manner set forth above. This is initiated at block  256 . This dynamic setting of wire video sizes allows the local video telephony product to adapt to changing remote viewing conditions. 
     In another embodiment, shown in FIG. 3, a video telephony product  300  comprises a video conferencing station  302 . Video conferencing station  302  comprises a video camera  304 , control device  306 , and CPU  308 , all operatively connected. Control device  306  in one embodiment issues commands to the camera  304  and CPU  308  to effect a method such as methods  100  or  200 . In another embodiment, control device  306  is integrated with CPU  308 . In yet another embodiment, control device  306  comprises a computer program written to implement a method such as methods  100  or  200 . Further, the video conferencing station  302  is connectable via a transmission link  310  to a second video conferencing station  312  to transmit video signals between the video conferencing stations  302  and  312 . In one embodiment, the CPU  308  executes the methods  100  or  200  from memory (not shown) to perform the process flow of the methods. 
     In another embodiment, video phone software incorporates the, methods  100  or  200 . Such video phone software may run on a computer such as personal computer  400  shown in FIG.  4 . Computers as shown in FIG. 4, typically include a monitor  401 , keyboard input  402 , central processing unit  404 , and a pointing or selection device such as mouse  405 . Further components of a typical computer system may include a machine readable storage media such as disk drive  406 , hard disk, CD-ROM  408 , DVD, modem, and the like. The processor unit of such a computer typically includes a microprocessor, memory (RAM and ROM), and other peripheral circuitry, not shown. 
     While a desktop computer is shown in FIG. 4, portable or laptop computers can also utilize software embodying the methods of the present invention. Such computers are some of the types of host devices on which embodiments of the present invention may be employed. 
     Any video capture device capable of being used in a video telephony application may employ the methods and software described above. For example, video cameras may be used as video capture devices. The methods of the present invention are in one embodiment utilized to choose WVS and CVS for a digital camera. In another embodiment, a USB camera is utilized. It will be understood by those of skill in the art that other video capture devices are capable of use with the various embodiments of the present invention, and that such other video capture devices are within the scope of embodiments of the invention. 
     Other video compression standards are also amenable to use with the various embodiments of the present invention. These different standards may provide different available wire video sizes and capture video sizes. However, the various embodiments of the invention do not require a specific standard. Instead, any standard for video compression may be used with the embodiments of the invention. 
     The various embodiments of the invention provide methods and apparatus for choosing the CVS and WVS of a video telephony product to achieve a temporal video quality as close to the desired video quality as is possible given the parameters and capabilities of the video products used. Examples of products for which the methods may be utilized include Universal Serial Bus (USB) cameras, video cameras, digital cameras, video telephones, video phone software, video conferencing stations, and the like. 
     Further, it should be understood that the method embodiments of the present invention may also be used by a remote device wishing to transmit a video signal to a local device, and that such methods are within the scope of embodiments of the invention. 
     In certain embodiments of the invention, the methods  100  and  200  comprise computer programs written to derive the information and control the choosing of WVS and CVS for a video telephony product. The computer programs run on a central processing unit of the video telephony product, and may be transferred to memory from permanent storage via disk drive when stored on removable media or via a network connection or modem connection when stored outside of the video telephony product, or via other types of computer or machine readable medium from which it can be read and utilized. The computer programs comprise multiple modules or objects to perform the methods  100  and  200 . The type of computer programming languages used to write the code may vary between procedural code type languages to object oriented languages.. The files or objects need not have a one to one correspondence to the modules or method steps described depending on the desires of the programmer. Further, the method and apparatus may comprise combinations of software, hardware and firmware as is well known to those skilled in the art. 
     Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the invention. It is intended that embodiments of this invention be limited only by the following claims, and the full scope of equivalents thereof.