[Libva] Ivy bridge PRM and H.264 encoder implementation
Joe Bloggsian
joebloggsian at gmail.com
Tue Jul 3 13:28:30 PDT 2012
It is great that intel have released proper documentation for the Ivy
bridge GPU/media engines. Kudos to them; if only all silicon vendors
were so progressive!
In particular it is very interesting to see the detailed information on
the VME engine in Vol4 Part2, which seems a much more sophisticated
piece of hardware than I expected.
Comparing the documentation to the even the staging branch of
intel-driver (in particular inter_frame.asm). It *appears* that there
are significant hardware features that the current encoder
implementation might not be using (or could be used better). A couple of
examples:
1) The search and cost centers of the current implementation appear to
always be zero. It seems to me this will firstly be resulting in
improper costings for the motion vector selection (mv cost should be
relative to an approximation of the predicted motion vectors). Secondly
it implies a limitation of max MV that can be found to 16 x, 12 y
integer pixels from the origin (not nearly enough for HD video). This
seems consistent with the poor MV selection I see in the encoded video.
It should be easy (and far better) to set the search and cost centers to
(one of the) MVs found in the macroblock to the left as this is on the
whole going to be a much better approximation of the predicted MVs, and
this would also allow the encoder to find long MVs. One can imagine
other even better ways to set the search position.
2) It appears that none of the early exit options are used;
EarlySkipSuccess, IMESuccess, EarlyIMEStop, SkipSuccess, etc. These
ought to be a "free" significant performance gain just for setting some
registers?
Does the above seem reasonable and are there any existing plans to
implement these kinds of improvements?
If not already being worked on - would it be interesting for me to
attempt to make changes similar to those I described and provide patches?
Cheers,
Bloggsian
More information about the Libva
mailing list