)]}'
{
  "commit": "cf16b0244f7d1830bb3fd6dcbcac2ba1b3be8bc9",
  "tree": "35b968958f2a59d875b85f53608658f9151c717c",
  "parents": [
    "2159bfb2daf9772a601e6d6a9136d3f8446e06cb"
  ],
  "author": {
    "name": "Cheng Chen",
    "email": "chengchen@google.com",
    "time": "Wed Apr 15 11:19:23 2020 -0700"
  },
  "committer": {
    "name": "Cheng Chen",
    "email": "chengchen@google.com",
    "time": "Thu Apr 16 21:24:23 2020 +0000"
  },
  "message": "Use small interval in exhaustive search for screen content.\n\nSummary:\nUse a smaller search step/interval for exhaustive search.\nBUG\u003daomedia:2650\n\nResults:\n(1). Clip \"Wikipedia\" gains -12.1% (AWCY, 1 pass, fixed arf mode)\n(2). Screen content sets gains -2%. (2 pass, q mode)\n\"sc_web_browsing\" and \"chromoting_numbers\" gain -10% each.\n\nSpeed:\n30-40%, or even double the encoding time due to more motion search.\n\nThis is only applied for the ARF, when the video is detected as\nscreen content type on low speed setting (speed \u003c\u003d 2).\n\nFor screen content videos, our NSTEP/Diamond motion search sometimes\nfails to find the best matching block.\nThis CL [1].https://aomedia-review.googlesource.com/c/aom/+/108861\nreduces the threshold to allow more exhaustive search and improves\nmotion search.\n\nThis CL is based on [1], and forces to use a smaller search interval\nin the exhaustive search based on the observation that the current\nexhaustive search still misses the best candidate block.\nThe reason is that the first iteration of exhaustive search uses a\nlarge search interval. And a local minima is found, which is far away\nfrom the true matching block. The best candidate block position\nis used as the center for following searches. Both search interval\nand range are reduced in the following iterations. Since the initial\ncandidate is far away from the truth, these following iterations\nstill can\u0027t find the global minima, leading to suboptimal prediction\nquality. This happens frequently for videos with a lot of texts,\nwhere the inital search is easily stuck by a local minima due to\nlarge search interval.\n\nThe best example is clip \"Wikipedia\". CL [1] gains 5-6% by using\nmore exhaustive search. This CL is based on it and gains 12%.\n\nUsing smaller interval results in more searches. In order to\nreduce speed overhead, this CL only applies on the ARF.\nLocal tests shows less than 10% more encoding time as compared to [1].\n\nSTATS_CHANGED\n\nChange-Id: I10f37ec073d94ee464552bf3870d3efe6e45a8fb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "724e4ac78d29630217c16f1900392689fb233874",
      "old_mode": 33188,
      "old_path": "av1/encoder/firstpass.c",
      "new_id": "706c24dfe9789b3ecc1b16cfe65e33a1aad1d43e",
      "new_mode": 33188,
      "new_path": "av1/encoder/firstpass.c"
    },
    {
      "type": "modify",
      "old_id": "43f7f5c6c9f60dbe4256ca2afcf94187714df2bf",
      "old_mode": 33188,
      "old_path": "av1/encoder/mcomp.c",
      "new_id": "46737bfcd3187e654e1af601b2b95113a0c99ac9",
      "new_mode": 33188,
      "new_path": "av1/encoder/mcomp.c"
    },
    {
      "type": "modify",
      "old_id": "73135d859156011969c3bf563de43d8df121c286",
      "old_mode": 33188,
      "old_path": "av1/encoder/mcomp.h",
      "new_id": "7d1b3f0fd4b4d9734d54ee9ae807b94782c48646",
      "new_mode": 33188,
      "new_path": "av1/encoder/mcomp.h"
    },
    {
      "type": "modify",
      "old_id": "8db1423e7a08ebbff380c50fe7a1c5c0fbb567f9",
      "old_mode": 33188,
      "old_path": "av1/encoder/motion_search_facade.c",
      "new_id": "207cb4035e8a70fef4eb6a4370f5783896f0a3a1",
      "new_mode": 33188,
      "new_path": "av1/encoder/motion_search_facade.c"
    },
    {
      "type": "modify",
      "old_id": "d3880cddcaf6432ee1341016d5886cf79065907e",
      "old_mode": 33188,
      "old_path": "av1/encoder/nonrd_pickmode.c",
      "new_id": "a442b3bf77fcbfd376502cfad06dddd30ce8ec29",
      "new_mode": 33188,
      "new_path": "av1/encoder/nonrd_pickmode.c"
    },
    {
      "type": "modify",
      "old_id": "79cf1660a74c2e4c37e9fe28f7485d0dbc4818f6",
      "old_mode": 33188,
      "old_path": "av1/encoder/rdopt.c",
      "new_id": "3c3fccd9a64cb2faac67bcaca31fd14dd2176965",
      "new_mode": 33188,
      "new_path": "av1/encoder/rdopt.c"
    },
    {
      "type": "modify",
      "old_id": "387e63b8b428cddc7469247cb7e2ee6ac8930d14",
      "old_mode": 33188,
      "old_path": "av1/encoder/speed_features.c",
      "new_id": "f1833b6ecd2bddae46fb7f5b9a26022ff7c7f496",
      "new_mode": 33188,
      "new_path": "av1/encoder/speed_features.c"
    },
    {
      "type": "modify",
      "old_id": "606adeb19bd1261d6f99d374b41b8fb31ac7508d",
      "old_mode": 33188,
      "old_path": "av1/encoder/temporal_filter.c",
      "new_id": "456202419713946c2f78082092b9f22c56827403",
      "new_mode": 33188,
      "new_path": "av1/encoder/temporal_filter.c"
    },
    {
      "type": "modify",
      "old_id": "e26783099285e8a5c01b0794b84b96e4476c48fd",
      "old_mode": 33188,
      "old_path": "av1/encoder/tpl_model.c",
      "new_id": "db8956e20483dbf8fcb66089515d9beed83a1374",
      "new_mode": 33188,
      "new_path": "av1/encoder/tpl_model.c"
    }
  ]
}
