1. A method for compressing video data, comprising: a video input receiving the video data, wherein the video data comprises two or more images; a processor executing an application program; the application program obtaining first image data related to a scene associated with a first communication session; the application program receiving an external constraint; the application program generating first probability data related to said first image data, wherein said first probability data is a probability that one or more pixels will move to another position in a next frame of video data; based on the first probability data and the external constraint, the application program automatically selecting a first compression algorithm to compress the video data, wherein selecting a first compression algorithm includes selecting only said first compression algorithm and no other compression algorithms; in response to selecting the first compression algorithm, the application program compressing at least a first frame of image data including said first image data by applying said first compression algorithm to obtain first compressed data, wherein said first image data is not compressed by any compression algorithm other than said first compression algorithm; sending first compressed data; while still receiving the video data, the application program obtaining second image data related to said scene associated with said first communication session; the application program generating second probability data related to said second image data, wherein said second probability data is a probability that one or more pixels will move to another position in a next frame of video data; based on said second probability data, determining by the application program whether to change from said first compression algorithm to a second compression algorithm; in response to determining that the first compression algorithm should be changed to said second compression algorithm, the application program automatically changing from application of the first compression algorithm to said second compression algorithm, wherein changing to the second compression algorithm includes selecting only said second compression algorithm and no other compression algorithms; in response to selecting the second compression algorithm, the application program compressing at least a second frame of image data including said second image data by applying said second compression algorithm to obtain second compressed data, wherein said second image data is not compressed by any compression algorithm other than said second compression algorithm; and sending second compressed data.