)]}'
{
  "commit": "4e692bbee29d1566e43ed4499249651d4c01f9c4",
  "tree": "026c07c829b65d4b499dc72723904f7bf12a7229",
  "parents": [
    "9d85ce8e0cc588629650690a5fa0ed559ed77d30"
  ],
  "author": {
    "name": "paulwilkins",
    "email": "paulwilkins@google.com",
    "time": "Tue Dec 08 15:48:24 2015 +0000"
  },
  "committer": {
    "name": "paulwilkins",
    "email": "paulwilkins@google.com",
    "time": "Tue Dec 08 16:54:42 2015 +0000"
  },
  "message": "Changes to exhaustive motion search.\n\nThis change has been imported from VP9 and\nalters the nature and use of exhaustive motion search.\n\nFirstly any exhaustive search is preceded by a normal step search.\nThe exhaustive search is only carried out if the distortion resulting\nfrom the step search is above a threshold value.\n\nSecondly the simple +/- 64 exhaustive search is replaced by a\nmulti stage mesh based search where each stage has a range\nand step/interval size. Subsequent stages use the best position from\nthe previous stage as the center of the search but use a reduced range\nand interval size.\n\nFor example:\n  stage 1: Range +/- 64 interval 4\n  stage 2: Range +/- 32 interval 2\n  stage 3: Range +/- 15 interval 1\n\nThis process, especially when it follows on from a normal step\nsearch, has shown itself to be almost as effective as a full range\nexhaustive search with step 1 but greatly lowers the computational\ncomplexity such that it can be used in some cases for speeds 0-2.\n\nThis patch also removes a double exhaustive search for sub 8x8 blocks\nwhich also contained  a bug (the two searches used different distortion\nmetrics).\n\nFor best quality in my test animation sequence this patch has almost\nno impact on quality but improves encode speed by more than 5X.\n\nRestricted use in good quality speeds 0-2 yields significant quality gains\non the animation test of 0.2 - 0.5 db with only a small impact on encode\nspeed. On most natural video clips, however, where the step search\nis performing well, the quality gain and speed impact are small.\n\nChange-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb2a234c998dfecd9e5dbf59b4cd0681c5d22c10",
      "old_mode": 33188,
      "old_path": "vp10/encoder/block.h",
      "new_id": "ab0252baaef3b7666120904b004e7c5bf03c3b8a",
      "new_mode": 33188,
      "new_path": "vp10/encoder/block.h"
    },
    {
      "type": "modify",
      "old_id": "f050905e75007f7aa8aa37bca75e4b0c8d329a55",
      "old_mode": 33188,
      "old_path": "vp10/encoder/encodeframe.c",
      "new_id": "bcdcff3d341aad23c021718a4bb192e42a510875",
      "new_mode": 33188,
      "new_path": "vp10/encoder/encodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "630f35e788b1b21290e523b14db3be052fd1301d",
      "old_mode": 33188,
      "old_path": "vp10/encoder/encoder.c",
      "new_id": "6bba84845aa8e765062882be714affcda3f9a486",
      "new_mode": 33188,
      "new_path": "vp10/encoder/encoder.c"
    },
    {
      "type": "modify",
      "old_id": "8519c27a68d0bab413e34f9a651f458073ab0838",
      "old_mode": 33188,
      "old_path": "vp10/encoder/encoder.h",
      "new_id": "2a44e47446a635d0ea2816bd755aefe8366e2a98",
      "new_mode": 33188,
      "new_path": "vp10/encoder/encoder.h"
    },
    {
      "type": "modify",
      "old_id": "ea491058a21b16adf2f98d41be0e61c00a6ac6ef",
      "old_mode": 33188,
      "old_path": "vp10/encoder/ethread.c",
      "new_id": "ad47ccf0430c17fae25e1e4875f3ee09cf0dc127",
      "new_mode": 33188,
      "new_path": "vp10/encoder/ethread.c"
    },
    {
      "type": "modify",
      "old_id": "d6ab00fdccc67ed46a393f1393b3e7e94c64ba0e",
      "old_mode": 33188,
      "old_path": "vp10/encoder/mcomp.c",
      "new_id": "04e1dafee9267ac3c28aeb1d2822811542a7d198",
      "new_mode": 33188,
      "new_path": "vp10/encoder/mcomp.c"
    },
    {
      "type": "modify",
      "old_id": "974700e190f52f81cb6c6ec33442c6aa5c3b711e",
      "old_mode": 33188,
      "old_path": "vp10/encoder/rdopt.c",
      "new_id": "bba21716fa0eab57e7b8329cb5d88d7ae5ba4ebd",
      "new_mode": 33188,
      "new_path": "vp10/encoder/rdopt.c"
    },
    {
      "type": "modify",
      "old_id": "d40383f0e00a79e0c061ce9a98758436f794eeea",
      "old_mode": 33188,
      "old_path": "vp10/encoder/speed_features.c",
      "new_id": "ce0aebeab040a7393b80c8c4efd0c436a6c6cdbd",
      "new_mode": 33188,
      "new_path": "vp10/encoder/speed_features.c"
    },
    {
      "type": "modify",
      "old_id": "3969a2ff868dcbbf46f87573a63db622e37d5f32",
      "old_mode": 33188,
      "old_path": "vp10/encoder/speed_features.h",
      "new_id": "3b91999298f089b7ab13783cf9ca48b72ce80890",
      "new_mode": 33188,
      "new_path": "vp10/encoder/speed_features.h"
    },
    {
      "type": "modify",
      "old_id": "45445df8d3ebe9499a98b2320609a6fa4441808f",
      "old_mode": 33188,
      "old_path": "vp9/encoder/vp9_ratectrl.c",
      "new_id": "8ab51cd20e23c226e19f857b15ca1f08675328b0",
      "new_mode": 33188,
      "new_path": "vp9/encoder/vp9_ratectrl.c"
    }
  ]
}
