Described herein are a number of approaches for implementing a
multistandard video encoder. In several embodiments, a single encoder
supports multiple video encoding standards via dedicated hardware
datapaths, while using shared buffers to store a video data between
processing stages. In one such embodiment, system for video encoding is
described. The system includes a number of encoding stages, for
performing tasks associated with encoded video data. The system also
includes a number of encoding buffers, coupled to the encoding stages,
for storing video data between encoding stages. The encoding stages are
operable to encode the video data in accordance with a number of video
encoding standards, and the encoding buffers are operable to store
partially encoded video data, regardless of the video encoding standard
selected.