View Issue Details

IDProjectCategoryView StatusLast Update
0000246JVT JM H.264/AVC reference softwareencoderpublic2011-03-09 20:20
ReporterDiego F. de Souza Assigned ToAlexis Michael Tourapis  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product VersionJM 17.2 
Fixed in VersionJM 18.0 
Summary0000246: Saving a wrong motion vector in the function FullPelBlockMotionBiPred() in the file me_fullsearch.c.
DescriptionIn the function FullPelBlockMotionBiPred() in the file me_fullsearch.c, after the loop over all positions, in the part of the code reproduced below:

  //===== set best motion vector and return minimum motion cost =====
  if (best_pos)
  {
    add_mvs(mv1, &p_Vid->spiral_search[best_pos]);
  }

The function add_mvs has a wrong argument, &p_Vid->spiral_search[best_pos]. It should be &p_Vid->spiral_qpel_search[best_pos].
Additional InformationIn the loop part:

  //===== loop over all search positions =====
  for (pos=0; pos<max_pos; pos++)
  {
    //--- set candidate position (absolute position in pel units) ---
    cand.mv_x = center1.mv_x + (p_Vid->spiral_search[pos].mv_x << 2);
    cand.mv_y = center1.mv_y + (p_Vid->spiral_search[pos].mv_y << 2);

Note that the position is multiplied by 4 by shifting 2 bits to the left. The same result would be achieved when using p_Vid->spiral_qpel_search[pos] without the shifting. As it's shown below:

  //===== loop over all search positions =====
  for (pos=0; pos<max_pos; pos++)
  {
    //--- set candidate position (absolute position in pel units) ---
    cand.mv_x = center1.mv_x + p_Vid->spiral_qpel_search[pos].mv_x;
    cand.mv_y = center1.mv_y + p_Vid->spiral_qpel_search[pos].mv_y;

TagsNo tags attached.

Activities

Alexis Michael Tourapis

2011-03-09 20:19

developer   ~0000402

This has already been fixed in the upcoming JM18.0 version (should be released very soon). You may also wish to update the use of p_Vid->spiral_search in the same function to be p_Vid->spiral_qpel_search and avoid the use of shifts within the me loop.

Alexis Michael Tourapis

2011-03-09 20:20

developer   ~0000403

Already fixed in the development code.

Issue History

Date Modified Username Field Change
2011-03-09 19:19 Diego F. de Souza New Issue
2011-03-09 20:19 Alexis Michael Tourapis Note Added: 0000402
2011-03-09 20:20 Alexis Michael Tourapis Note Added: 0000403
2011-03-09 20:20 Alexis Michael Tourapis Status new => resolved
2011-03-09 20:20 Alexis Michael Tourapis Fixed in Version => JM 18.0
2011-03-09 20:20 Alexis Michael Tourapis Resolution open => fixed
2011-03-09 20:20 Alexis Michael Tourapis Assigned To => Alexis Michael Tourapis