)]}'
{
  "commit": "9d2f6c0b5740ee61916f260a1b0f29261edff744",
  "tree": "4757f72891c0de721760f3313b01aa5d91d4fb3f",
  "parents": [
    "e127728445505df1828287b9c7f1d84dc9af2c11"
  ],
  "author": {
    "name": "Marco Paniconi",
    "email": "marpan@google.com",
    "time": "Mon Aug 15 23:16:21 2022 -0700"
  },
  "committer": {
    "name": "Jerome Jiang",
    "email": "jianj@google.com",
    "time": "Wed Aug 31 16:53:41 2022 +0000"
  },
  "message": "rtc: Fix to color artifacts under high motion\n\nFor RTC: the golden reference is used as longer-term\nreference, but the color_sensitivity flags are\nonly defined relative to the last reference.\nThis can cause color artifacts for high motion\nif golden is selected as the best reference and\nhas different uv-signal than the source.\n\nThe fix here is to define a color_sensitivity for\ngolden reference at the superblock level, and for\nnow skip testing the golden reference if this\ncolor flag is set. Logic is also based on source_variance\nand content_stats, to avoid any regression from too\nmuch/unneeded skipping.\n\nThis reduces color artifacts in the issue below.\nTo reduce further: logic above on golden-ref can be better\ntuned, and defining color_sensitivity for alt-ref would\nalso be needed, but since alt-ref is closer to last ref,\nthe impact from that is less.\n\nStats changed are neutral/small:\n               avg-psnr  ovr-pnsr  ssim   IC-speedup\nspeed 7 derf:   0.03      0.03     0.05   -0.01\nspeed 9 derf:   0.15      0.18     0.18   -0.15\nspeed 9 rtc:    0.25      0.23     0.33    0.03\nspeed 10 rtc:  -0.01     -0.02    -0.03   -0.14\nspeed 10 screen:0.26      0.09     0.34    0.04\n\nBug: aomedia:3308\nBug: aomedia:3313\n\nChange-Id: Ie23ab25d8189540ea11d95c46cf9ea4f549c583d\n(cherry picked from commit c6a503f4b15da2ecef856f917d08473ea788ae00)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "46a56a55d3463fa2fc35fbfefdbd8f7d495eebf6",
      "old_mode": 33188,
      "old_path": "av1/encoder/block.h",
      "new_id": "0ad118db635458a508b4259ff9ea9666c13daf1c",
      "new_mode": 33188,
      "new_path": "av1/encoder/block.h"
    },
    {
      "type": "modify",
      "old_id": "6a360319320099b616575cfa5ee409765cf56c9c",
      "old_mode": 33188,
      "old_path": "av1/encoder/encodeframe.c",
      "new_id": "2a395aa30fe3b6c6a498ef7524293eeb4d48c1ab",
      "new_mode": 33188,
      "new_path": "av1/encoder/encodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "f188f0ef4c449cb571429cc3c699ac1b6a556f17",
      "old_mode": 33188,
      "old_path": "av1/encoder/nonrd_pickmode.c",
      "new_id": "58fc07a477ce8adcc46e1d81fa9d4a76f4e89ef8",
      "new_mode": 33188,
      "new_path": "av1/encoder/nonrd_pickmode.c"
    },
    {
      "type": "modify",
      "old_id": "c5e2eddb3386d5d183f62ca3d86fd8a4a28b9140",
      "old_mode": 33188,
      "old_path": "av1/encoder/var_based_part.c",
      "new_id": "ab27d1f88d9b23843d3b71fc94d6f6d1f12cacbc",
      "new_mode": 33188,
      "new_path": "av1/encoder/var_based_part.c"
    }
  ]
}
