)]}'
{
  "commit": "903801f1ef7ac8d13d4f57571d048b604e8aaafd",
  "tree": "23567c0947d8492ea9333ff924ed02e0d505c8bb",
  "parents": [
    "e78c174e540117dcfcdff505d38478d4ac6df844"
  ],
  "author": {
    "name": "Yunqing Wang",
    "email": "yunqingwang@google.com",
    "time": "Fri Dec 27 15:25:54 2013 -0800"
  },
  "committer": {
    "name": "Yunqing Wang",
    "email": "yunqingwang@google.com",
    "time": "Fri Jan 31 14:44:53 2014 -0800"
  },
  "message": "vp9 decoder: row-based multi-threaded loopfilter\n\nImplemented parallel loopfiltering, which uses existing tile-\ndecoding threads. Each thread works on one row, and when that row\nis loopfiltered, it moves to next unattended row. To ensure the\ncorrect filtering order, threads are synchronized and one\nsuperblock is filtered only if the superblocks it depends on are\nfiltered already.\n\nTo reduce synchronization overhead and speed up the decoder, we use\nnsync \u003e 1 for high resolution.\n\nPerformance tests:\n1. on desktop:\n8-tile 4k video using 8 threads, speedup: 70% - 80%\n4-tile HD video using 4 threads, speedup: ~35%\n2. on mobile device(Nexus 7):\n4-tile 1080p video using 4 threads, speedup: 18% - 25%\n4-tile 1080p video using 2 threads, speedup: 10% - 15%\n\nChange-Id: If54b4a11960dd706c22d5ad145ad94156031f36a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2266e0ec29ffac6fa5f87dbe0e9a95f381ff8cdc",
      "old_mode": 33188,
      "old_path": "vp9/common/vp9_loopfilter.c",
      "new_id": "dd304c909a7432365d84df674e9714b14a50fd28",
      "new_mode": 33188,
      "new_path": "vp9/common/vp9_loopfilter.c"
    },
    {
      "type": "modify",
      "old_id": "43373f4b18b4e967d7dbf01f48a9463a20364cd5",
      "old_mode": 33188,
      "old_path": "vp9/common/vp9_loopfilter.h",
      "new_id": "668e898cf7845e6c49c46c7e6b8e4e9e12039afa",
      "new_mode": 33188,
      "new_path": "vp9/common/vp9_loopfilter.h"
    },
    {
      "type": "modify",
      "old_id": "1d9be5322b1356f2026c26f97e927893cf7913ac",
      "old_mode": 33188,
      "old_path": "vp9/decoder/vp9_decodeframe.c",
      "new_id": "311c83e6c34db6e4b7b35ba4c6d7e9cb913ae680",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_decodeframe.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "280e351ae5abe2185c7009ca6e16aeefa1ab9104",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_dthread.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4478354baa996e5089e1baaa8bfe16e0b740f2e5",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_dthread.h"
    },
    {
      "type": "modify",
      "old_id": "c6e9205bb527d81b91c16e87c96f506757686127",
      "old_mode": 33188,
      "old_path": "vp9/decoder/vp9_onyxd_if.c",
      "new_id": "c14a05d1e79274a025e22f19987853904e13b8ce",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_onyxd_if.c"
    },
    {
      "type": "modify",
      "old_id": "242c600ccd1d102e9e7b49fcb72141e9a6639136",
      "old_mode": 33188,
      "old_path": "vp9/decoder/vp9_onyxd_int.h",
      "new_id": "6c6c239265892829d4161e2c49fa3a66d27ed1b8",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_onyxd_int.h"
    },
    {
      "type": "modify",
      "old_id": "d953e72b333aa724e7174e9f3b564e41b9e6501b",
      "old_mode": 33188,
      "old_path": "vp9/decoder/vp9_thread.c",
      "new_id": "5d31d3d98b08dfa983f87646a6ca6eb9697cf2a8",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_thread.c"
    },
    {
      "type": "modify",
      "old_id": "bc69cfa1f5fb5ef51aebbc04c5d3d74e98691451",
      "old_mode": 33188,
      "old_path": "vp9/decoder/vp9_thread.h",
      "new_id": "2f8728dcf6e524b9e0db7b68a86d12f522f9a12c",
      "new_mode": 33188,
      "new_path": "vp9/decoder/vp9_thread.h"
    },
    {
      "type": "modify",
      "old_id": "b722200f7df7a6c86c38294b1ad174f1649df79f",
      "old_mode": 33188,
      "old_path": "vp9/vp9dx.mk",
      "new_id": "de210f4b77f2b7c451a9893f75d199b969ae099a",
      "new_mode": 33188,
      "new_path": "vp9/vp9dx.mk"
    }
  ]
}
