In some embodiments, the invention includes a method of processing a video
stream. The method involves detecting a request to playback a particular
frame. It is determined whether a decoded version of the particular frame
is in a decoded frame cache. If it is not, the method includes(i)
determining a frame dependency for the particular frame; (ii) determining
which of the frames in the frame dependency are in the decoded frame
cache; (iii) decoding any frame in the frame dependency that is not in
the decoded frame cache and placing it in the decoded frame cache; and
(iv) using at least some of the decoded frames in the frame dependency to
decode the particular frame to create a decoded version of the particular
frame. In some embodiments, the request to playback a particular frame is
part of a request to perform frame-by-frame backward playback and the
method is performed for successively earlier frames with respect to the
particular frame as part of the frame-by-frame backward playback. In some
embodiments, the part (i) is performed whether or not it is determined
that a decoded version of a particular frame is in the decoded frame
cache without part (iv) being performed. Other embodiments are described
and claimed.