A non-transitory computer-readable storage medium storing instructions which, when executed by a computing device, cause the computing device to synthesize photo-realistic animation of an object, the instructions utilizing a first database of image samples showing an object in a plurality of appearances, a second database of visual features for each image sample of the object, and a third database of non-visual features of the object, the instructions comprising:
- obtaining, for each frame in a plurality of N frames of an object animation, a target feature vector comprising visual features and non-visual features associated with the object animation;
- selecting, via a processor and an audio/video unit selection process, longest possible candidate image samples from the first database utilizing the target feature vector to generate a photo-realistic animation of the object;
- calculating, for each pair of candidates of two consecutive frames, a concatenation cost from a combination of the visual features from the second database and the non-visual features from the third database;
- and
- performing a Viterbi search to find the least expensive path through the candidates accumulating a target cost and the concatenation cost.