)]}'
{
  "commit": "c17b62e1bd8fe9335ba247061c072b10392e88a7",
  "tree": "ce9b28fcd55dd269215e4d9901e1dd179ece3c66",
  "parents": [
    "ec1871554b4793ad274ed8ae764ff5044d75e0d4"
  ],
  "author": {
    "name": "Timothy B. Terriberry",
    "email": "tterribe@xiph.org",
    "time": "Wed May 05 17:58:19 2010 -0400"
  },
  "committer": {
    "name": "Timothy B. Terriberry",
    "email": "tterribe@xiph.org",
    "time": "Tue Jun 15 19:55:14 2010 -0700"
  },
  "message": "Change bitreader to use a larger window.\n\nChange bitreading functions to use a larger window which is refilled less\n often.\n\nThis makes it cheap enough to do bounds checking each time the window is\n refilled, which avoids the need to copy the input into a large circular\n buffer.\nThis uses less memory and speeds up the total decode time by 1.6% on an ARM11,\n 2.8% on a Cortex A8, and 2.2% on x86-32, but less than 1% on x86-64.\n\nInlining vp8dx_bool_decoder_fill() has a big penalty on x86-32, as does moving\n the refill loop to the front of vp8dx_decode_bool().\nHowever, having the refill loop between computation of the split values and\n the branch in vp8_decode_mb_tokens() is a big win on ARM (presumably due to\n memory latency and code size: refilling after normalization duplicates the\n code in the DECODE_AND_BRANCH_IF_ZERO and DECODE_AND_LOOP_IF_ZERO cases.\nUnfortunately, refilling at the end of vp8dx_bool_decoder_fill() and at the\n beginning of each decode step in vp8_decode_mb_tokens() means the latter\n requires an extra refill at the end.\nPlatform-specific versions could avoid the problem, but would require most of\n detokenize.c to be duplicated.\n\nChange-Id: I16c782a63376f2a15b78f8086d899b987204c1c7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ff4d7527cbc7914d1e67d3bc87456cc596cf0db4",
      "old_mode": 33188,
      "old_path": "vp8/common/arm/vpx_asm_offsets.c",
      "new_id": "b1e64571f9885398f642ef68510164d17daae068",
      "new_mode": 33188,
      "new_path": "vp8/common/arm/vpx_asm_offsets.c"
    },
    {
      "type": "modify",
      "old_id": "495004f9cd6794548151f094100a7c1c90f61cea",
      "old_mode": 33188,
      "old_path": "vp8/decoder/arm/dboolhuff_arm.h",
      "new_id": "d2ebc71e8401bead92eb60bb5213f1b90e299b57",
      "new_mode": 33188,
      "new_path": "vp8/decoder/arm/dboolhuff_arm.h"
    },
    {
      "type": "modify",
      "old_id": "f146d604ec624e4bfcb2230acb9b651f2fb7c4b2",
      "old_mode": 33188,
      "old_path": "vp8/decoder/arm/dsystemdependent.c",
      "new_id": "6defa3d5da6e5aa49dc77655dd8ec9ac18ef5dad",
      "new_mode": 33188,
      "new_path": "vp8/decoder/arm/dsystemdependent.c"
    },
    {
      "type": "modify",
      "old_id": "7027c0f54d372e9ba25d0652e87a4cea1f56c248",
      "old_mode": 33188,
      "old_path": "vp8/decoder/dboolhuff.c",
      "new_id": "389aed01365f3a2b1cef9d02092877f6aa480825",
      "new_mode": 33188,
      "new_path": "vp8/decoder/dboolhuff.c"
    },
    {
      "type": "modify",
      "old_id": "c6d69e776fd63b08930fb338b111686630f943f3",
      "old_mode": 33188,
      "old_path": "vp8/decoder/dboolhuff.h",
      "new_id": "7ec235786f2294b63650d7d20426aabb90312bb2",
      "new_mode": 33188,
      "new_path": "vp8/decoder/dboolhuff.h"
    },
    {
      "type": "modify",
      "old_id": "7e004238ab8b1c334b74edac76d30e2ddecf5961",
      "old_mode": 33188,
      "old_path": "vp8/decoder/decodemv.c",
      "new_id": "2b004df05c40c6245472404aaf8a0f995afa913b",
      "new_mode": 33188,
      "new_path": "vp8/decoder/decodemv.c"
    },
    {
      "type": "modify",
      "old_id": "0f1b879cab34a3b0b17ed7bf282decedc50914b7",
      "old_mode": 33188,
      "old_path": "vp8/decoder/decodframe.c",
      "new_id": "8d9db10fdc5d111afc67ce283b2d2177b3868cd8",
      "new_mode": 33188,
      "new_path": "vp8/decoder/decodframe.c"
    },
    {
      "type": "modify",
      "old_id": "881b49ebc1dbe7af341bdab5d52f98f5e835627e",
      "old_mode": 33188,
      "old_path": "vp8/decoder/demode.c",
      "new_id": "07be9fb35677eacf33bcda965710a363b36381bb",
      "new_mode": 33188,
      "new_path": "vp8/decoder/demode.c"
    },
    {
      "type": "modify",
      "old_id": "d6f5ca26c11f39fd9fd09cee3af5886594c84d1a",
      "old_mode": 33188,
      "old_path": "vp8/decoder/detokenize.c",
      "new_id": "b202b7b443f82c2638fa14d322ba7f6202accf3f",
      "new_mode": 33188,
      "new_path": "vp8/decoder/detokenize.c"
    },
    {
      "type": "modify",
      "old_id": "ad64a38af5f4ac700f7144d6c8762375552e4fa4",
      "old_mode": 33188,
      "old_path": "vp8/decoder/generic/dsystemdependent.c",
      "new_id": "4585d088225a3affbedfd0eb20decb94bc83d4a6",
      "new_mode": 33188,
      "new_path": "vp8/decoder/generic/dsystemdependent.c"
    },
    {
      "type": "modify",
      "old_id": "87bba2020bcbc8e2fd8ab978cb3071e116ccdb94",
      "old_mode": 33188,
      "old_path": "vp8/decoder/threading.c",
      "new_id": "38d60421057ffdf4014e4a3ad0d5e913f184904e",
      "new_mode": 33188,
      "new_path": "vp8/decoder/threading.c"
    }
  ]
}
