Browse Source

Remove list search in HistoListUpdateHead, we always know pair index at call site

pull/2940/head
Maxim Shipko 11 months ago
parent
commit
17fc6dbce9
  1. 12
      src/ImageSharp/Formats/Webp/Lossless/HistogramEncoder.cs

12
src/ImageSharp/Formats/Webp/Lossless/HistogramEncoder.cs

@ -464,7 +464,7 @@ internal static class HistogramEncoder
} }
} }
HistoListUpdateHead(histoPriorityList, p); HistoListUpdateHead(histoPriorityList, p, j);
j++; j++;
} }
@ -524,7 +524,7 @@ internal static class HistogramEncoder
} }
else else
{ {
HistoListUpdateHead(histoPriorityList, p); HistoListUpdateHead(histoPriorityList, p, i);
i++; i++;
} }
} }
@ -646,7 +646,7 @@ internal static class HistogramEncoder
histoList.Add(pair); histoList.Add(pair);
HistoListUpdateHead(histoList, pair); HistoListUpdateHead(histoList, pair, histoList.Count - 1);
return pair.CostDiff; return pair.CostDiff;
} }
@ -673,13 +673,11 @@ internal static class HistogramEncoder
/// <summary> /// <summary>
/// Check whether a pair in the list should be updated as head or not. /// Check whether a pair in the list should be updated as head or not.
/// </summary> /// </summary>
private static void HistoListUpdateHead(List<HistogramPair> histoList, HistogramPair pair) private static void HistoListUpdateHead(List<HistogramPair> histoList, HistogramPair pair, int idx)
{ {
if (pair.CostDiff < histoList[0].CostDiff) if (pair.CostDiff < histoList[0].CostDiff)
{ {
// Replace the best pair. histoList[idx] = histoList[0];
int oldIdx = histoList.IndexOf(pair);
histoList[oldIdx] = histoList[0];
histoList[0] = pair; histoList[0] = pair;
} }
} }

Loading…
Cancel
Save