)]}'
{
  "commit": "09705fe711090c25c38fb6119b656ccc7ad30407",
  "tree": "9f818fa44c9ab83583c5c98f285cdaae067a859a",
  "parents": [
    "9b79f6a3d6ea398e5d51d3d1dd69cbfb1725370e"
  ],
  "author": {
    "name": "Yushin Cho",
    "email": "ycho@mozilla.com",
    "time": "Fri Nov 04 16:36:56 2016 -0700"
  },
  "committer": {
    "name": "Yushin Cho",
    "email": "ycho@mozilla.com",
    "time": "Fri Nov 04 16:36:56 2016 -0700"
  },
  "message": "New experiment: Perceptual Vector Quantization from Daala\n\nPVQ replaces the scalar quantizer and coefficient coding with a new\ndesign originally developed in Daala. It currently depends on the\nDaala entropy coder although it could be adapted to work with another\nentropy coder if needed:\n./configure --enable-experimental --enable-daala_ec --enable-pvq\n\nThe version of PVQ in this commit is adapted from the following\nrevision of Daala:\nhttps://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8\n\nMore information about PVQ:\n- https://people.xiph.org/~jm/daala/pvq_demo/\n- https://jmvalin.ca/papers/spie_pvq.pdf\n\nThe following files are copied as-is from Daala with minimal\nadaptations, therefore we disable clang-format on those files\nto make it easier to synchronize the AV1 and Daala codebases in the future:\n av1/common/generic_code.c\n av1/common/generic_code.h\n av1/common/laplace_tables.c\n av1/common/partition.c\n av1/common/partition.h\n av1/common/pvq.c\n av1/common/pvq.h\n av1/common/state.c\n av1/common/state.h\n av1/common/zigzag.h\n av1/common/zigzag16.c\n av1/common/zigzag32.c\n av1/common/zigzag4.c\n av1/common/zigzag64.c\n av1/common/zigzag8.c\n av1/decoder/decint.h\n av1/decoder/generic_decoder.c\n av1/decoder/laplace_decoder.c\n av1/decoder/pvq_decoder.c\n av1/decoder/pvq_decoder.h\n av1/encoder/daala_compat_enc.c\n av1/encoder/encint.h\n av1/encoder/generic_encoder.c\n av1/encoder/laplace_encoder.c\n av1/encoder/pvq_encoder.c\n av1/encoder/pvq_encoder.h\n\nKnown issues:\n- Lossless mode is not supported, \u0027--lossless\u003d1\u0027 will give the same result as\n\u0027--end-usage\u003dq --cq-level\u003d1\u0027.\n- High bit depth is not supported by PVQ.\n\nChange-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "50255563875cca11939f9a223abcb8cdff75d2cf",
      "old_mode": 33188,
      "old_path": "aom_dsp/aom_dsp.mk",
      "new_id": "34be4532fdbf9b1542074d5a4f14e553e8773128",
      "new_mode": 33188,
      "new_path": "aom_dsp/aom_dsp.mk"
    },
    {
      "type": "modify",
      "old_id": "dc9a6b97ede86268395315c1df82a14f5ec46060",
      "old_mode": 33188,
      "old_path": "aom_dsp/aom_dsp_rtcd_defs.pl",
      "new_id": "53af943414e2e99c8176423212f76e68cfe4c2f9",
      "new_mode": 33188,
      "new_path": "aom_dsp/aom_dsp_rtcd_defs.pl"
    },
    {
      "type": "modify",
      "old_id": "9d6cebdbe0ec87bf7df8b871ef9de6acf218de09",
      "old_mode": 33188,
      "old_path": "aom_dsp/daalaboolreader.h",
      "new_id": "8977995a865f2af972f832d9ccf22a19187beb68",
      "new_mode": 33188,
      "new_path": "aom_dsp/daalaboolreader.h"
    },
    {
      "type": "modify",
      "old_id": "49284b0d2e45b88c442c7d7aa4f61661844c763a",
      "old_mode": 33188,
      "old_path": "aom_dsp/entcode.c",
      "new_id": "ff8e8e2cff15cf59f8988e9617ac2ab1824e186b",
      "new_mode": 33188,
      "new_path": "aom_dsp/entcode.c"
    },
    {
      "type": "modify",
      "old_id": "77ed1717642b6fc1405c70adcdaa9c129071a6d4",
      "old_mode": 33188,
      "old_path": "aom_dsp/entcode.h",
      "new_id": "91fcb679595b74acf6f0d686cdc938ace374872c",
      "new_mode": 33188,
      "new_path": "aom_dsp/entcode.h"
    },
    {
      "type": "modify",
      "old_id": "18563b2e33a6fa092b47f4b12ef56ba0c9aeb8e7",
      "old_mode": 33188,
      "old_path": "aom_dsp/entdec.c",
      "new_id": "b015956fa03d93e0e4de21293cd667a2a08fb02d",
      "new_mode": 33188,
      "new_path": "aom_dsp/entdec.c"
    },
    {
      "type": "modify",
      "old_id": "80363b590271fcce087d5bc4d674c723734f9a39",
      "old_mode": 33188,
      "old_path": "aom_dsp/entdec.h",
      "new_id": "6d6e2b51ea40dd974c4b197968eb79f4bddab702",
      "new_mode": 33188,
      "new_path": "aom_dsp/entdec.h"
    },
    {
      "type": "modify",
      "old_id": "3e9cb62c533f609149988b327304c881624be1c2",
      "old_mode": 33188,
      "old_path": "aom_dsp/entenc.c",
      "new_id": "390f61b9ba905d2c15d4ac0fb108caa6848d4d1a",
      "new_mode": 33188,
      "new_path": "aom_dsp/entenc.c"
    },
    {
      "type": "modify",
      "old_id": "32163f794af1012bd044a340a7d2ce2289e8d530",
      "old_mode": 33188,
      "old_path": "aom_dsp/entenc.h",
      "new_id": "5e121b63332611f6ff47edbd8613aa147e869b2d",
      "new_mode": 33188,
      "new_path": "aom_dsp/entenc.h"
    },
    {
      "type": "modify",
      "old_id": "75a2569f2e78bf0350fad4ba4ce38b19dd8f3de6",
      "old_mode": 33188,
      "old_path": "av1/av1_common.mk",
      "new_id": "e254ddc6698242802a9ffd7476fe2a3b8a9628b8",
      "new_mode": 33188,
      "new_path": "av1/av1_common.mk"
    },
    {
      "type": "modify",
      "old_id": "7ec294b92443fcbc7bfec4316e4157d60425498a",
      "old_mode": 33188,
      "old_path": "av1/av1_cx.mk",
      "new_id": "1dc31a466897d95a0e7209505e70bc3929486474",
      "new_mode": 33188,
      "new_path": "av1/av1_cx.mk"
    },
    {
      "type": "modify",
      "old_id": "362e7c6d3542f145045c6204183fbfc211e627e0",
      "old_mode": 33188,
      "old_path": "av1/av1_dx.mk",
      "new_id": "24decc706273393f3df4db91b96c831ef229e194",
      "new_mode": 33188,
      "new_path": "av1/av1_dx.mk"
    },
    {
      "type": "modify",
      "old_id": "d939c4494faa497699ed43ae34e36a11eb9f5719",
      "old_mode": 33188,
      "old_path": "av1/common/av1_rtcd_defs.pl",
      "new_id": "6b7623b15a4a4bb3a8948449b7aafc181970a67f",
      "new_mode": 33188,
      "new_path": "av1/common/av1_rtcd_defs.pl"
    },
    {
      "type": "modify",
      "old_id": "435f7bd534713967be8855ee51c477e3b3ad8503",
      "old_mode": 33188,
      "old_path": "av1/common/blockd.c",
      "new_id": "932bdf2cee959b1aa4da653cc15975e39958b528",
      "new_mode": 33188,
      "new_path": "av1/common/blockd.c"
    },
    {
      "type": "modify",
      "old_id": "d46ba57115ae59161277936235104fef22b95c00",
      "old_mode": 33188,
      "old_path": "av1/common/blockd.h",
      "new_id": "5a1a23042b984c1d146a2105ea5023e13e47fe36",
      "new_mode": 33188,
      "new_path": "av1/common/blockd.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4022cf15f77cb30d9d7488d0eaea3547d01dbfa3",
      "new_mode": 33188,
      "new_path": "av1/common/generic_code.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6059190e3feadb02e9590867b5c2c5b110793e05",
      "new_mode": 33188,
      "new_path": "av1/common/generic_code.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f1c3f9afe39331eb5ae4f934afe526286b6b9655",
      "new_mode": 33188,
      "new_path": "av1/common/laplace_tables.c"
    },
    {
      "type": "modify",
      "old_id": "bb36104d0511d87efc35d98af504800fba4606d9",
      "old_mode": 33188,
      "old_path": "av1/common/odintrin.c",
      "new_id": "868efacc99c9cd44896058a1fcf998fa5782bf47",
      "new_mode": 33188,
      "new_path": "av1/common/odintrin.c"
    },
    {
      "type": "modify",
      "old_id": "f9049c7e41b23aabdf58c3cf72bcd49c52f26d42",
      "old_mode": 33188,
      "old_path": "av1/common/odintrin.h",
      "new_id": "64cadd652014fbd8336086707285c7ed808a5fb6",
      "new_mode": 33188,
      "new_path": "av1/common/odintrin.h"
    },
    {
      "type": "modify",
      "old_id": "0d42119f7613f151e120e922d571bb65151a3feb",
      "old_mode": 33188,
      "old_path": "av1/common/onyxc_int.h",
      "new_id": "b4e51663135169568d710ccd720eb8f644aa5b21",
      "new_mode": 33188,
      "new_path": "av1/common/onyxc_int.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63d9d6921ec4bddfc150e09791bcaa7792393717",
      "new_mode": 33188,
      "new_path": "av1/common/partition.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c86cb81f320c278b468089b55ea08313b1af2bae",
      "new_mode": 33188,
      "new_path": "av1/common/partition.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62f3632da0e6e32339d92f9c76413abf1663eca6",
      "new_mode": 33188,
      "new_path": "av1/common/pvq.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5051b40abf818439755e6e8c4efb114f83dacc7",
      "new_mode": 33188,
      "new_path": "av1/common/pvq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45d51843fc81f48f67629489e5cb225e365c4bcb",
      "new_mode": 33188,
      "new_path": "av1/common/pvq_state.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6cf56fea7ac674870e61db7f870f06d80237fe68",
      "new_mode": 33188,
      "new_path": "av1/common/pvq_state.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "295ed233ed3426607ba7b31a2cfebde9dd30a4f5",
      "new_mode": 33188,
      "new_path": "av1/common/zigzag.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "94c34870a6d47ee8b9b857840b201ee8b7a15a96",
      "new_mode": 33188,
      "new_path": "av1/common/zigzag16.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cb3b9bc632242f05e4da05c29941ed26da8256f9",
      "new_mode": 33188,
      "new_path": "av1/common/zigzag32.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ccc16001f748a1e1ebcec8ca9b7b79301fc10ab",
      "new_mode": 33188,
      "new_path": "av1/common/zigzag4.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ba39ac0684f26435e58594457aeb0ef6bdbd4243",
      "new_mode": 33188,
      "new_path": "av1/common/zigzag8.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "99dbc434ace1584cfca44a06abdafca21e288c58",
      "new_mode": 33188,
      "new_path": "av1/decoder/decint.h"
    },
    {
      "type": "modify",
      "old_id": "d1d0ae7a8446eba22702b99f706003f7a15c9130",
      "old_mode": 33188,
      "old_path": "av1/decoder/decodeframe.c",
      "new_id": "1af7a1a74c387afccaa29ce7497ba2fd894236fa",
      "new_mode": 33188,
      "new_path": "av1/decoder/decodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "fa2d0618dbb37735d4224ec05be103df19025c25",
      "old_mode": 33188,
      "old_path": "av1/decoder/decoder.c",
      "new_id": "1b12476899194f97c6fc124c2d0e10b4cc898c7b",
      "new_mode": 33188,
      "new_path": "av1/decoder/decoder.c"
    },
    {
      "type": "modify",
      "old_id": "d19909e21ec29ba8a0620661c15e5904b07840a4",
      "old_mode": 33188,
      "old_path": "av1/decoder/decoder.h",
      "new_id": "8d28a10ecd8cde11d7e39aee3e5ab9b86f2ad55d",
      "new_mode": 33188,
      "new_path": "av1/decoder/decoder.h"
    },
    {
      "type": "modify",
      "old_id": "1de004851a99214c15149192bb0cec1b481610f8",
      "old_mode": 33188,
      "old_path": "av1/decoder/detokenize.c",
      "new_id": "68d87cbdc741c02304db3083e418f18cbe210a79",
      "new_mode": 33188,
      "new_path": "av1/decoder/detokenize.c"
    },
    {
      "type": "modify",
      "old_id": "c2868d6fb8624a75498ac394ac3fff73ee4affdf",
      "old_mode": 33188,
      "old_path": "av1/decoder/detokenize.h",
      "new_id": "569580cf2a24540e26dfb620199868dd773b7d13",
      "new_mode": 33188,
      "new_path": "av1/decoder/detokenize.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "86187fa9d3baeae5f41bf66f72823093e4793a72",
      "new_mode": 33188,
      "new_path": "av1/decoder/generic_decoder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c3def5fdd4c0ac53f60f57ee76e3aa8cd39f900",
      "new_mode": 33188,
      "new_path": "av1/decoder/laplace_decoder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2340605ee8dc40e6730c30336afd4d3c04873f5b",
      "new_mode": 33188,
      "new_path": "av1/decoder/pvq_decoder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d749040a6090ab5606403c68b0c9518b3d7dda65",
      "new_mode": 33188,
      "new_path": "av1/decoder/pvq_decoder.h"
    },
    {
      "type": "modify",
      "old_id": "156c4f4a88c6c4127c3bc5f039e6bff8f2c06f63",
      "old_mode": 33188,
      "old_path": "av1/encoder/bitstream.c",
      "new_id": "95e86c6c715fde7051a3f036370b9338151f1ad1",
      "new_mode": 33188,
      "new_path": "av1/encoder/bitstream.c"
    },
    {
      "type": "modify",
      "old_id": "7e319c4c5a3ad2e7c3cc9f7a4a3e9d5b4a0aef96",
      "old_mode": 33188,
      "old_path": "av1/encoder/block.h",
      "new_id": "211ae58493f961351a1195194bcbc45df1900ac8",
      "new_mode": 33188,
      "new_path": "av1/encoder/block.h"
    },
    {
      "type": "modify",
      "old_id": "9b21a1da0d28cc6b48ebf22ff19db0ca9e9f1b06",
      "old_mode": 33188,
      "old_path": "av1/encoder/context_tree.c",
      "new_id": "b7b5cbe6b56cbfea8808715b66dbe24b7fb691a3",
      "new_mode": 33188,
      "new_path": "av1/encoder/context_tree.c"
    },
    {
      "type": "modify",
      "old_id": "c482e131a284f0449f55e09bcbbd126b8efa319c",
      "old_mode": 33188,
      "old_path": "av1/encoder/context_tree.h",
      "new_id": "4f1c647d2c29aaa7ea55c57bbf665a6870a384ad",
      "new_mode": 33188,
      "new_path": "av1/encoder/context_tree.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c23b26d21de4b753291c79fc7e1cc3379abc317b",
      "new_mode": 33188,
      "new_path": "av1/encoder/daala_compat_enc.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e3516cc2f3fd2f000f838034902ecb31fc8c5cf",
      "new_mode": 33188,
      "new_path": "av1/encoder/encint.h"
    },
    {
      "type": "modify",
      "old_id": "839f96102e0583d6e8c77b3f43b90c6621c66541",
      "old_mode": 33188,
      "old_path": "av1/encoder/encodeframe.c",
      "new_id": "c3855048cfe899602560206ab7e780b29f6ef55c",
      "new_mode": 33188,
      "new_path": "av1/encoder/encodeframe.c"
    },
    {
      "type": "modify",
      "old_id": "4c938c054d47c470eaf46c8229a50f95988793dc",
      "old_mode": 33188,
      "old_path": "av1/encoder/encodemb.c",
      "new_id": "1b87589546ec75fff323ea4126da60499164c9db",
      "new_mode": 33188,
      "new_path": "av1/encoder/encodemb.c"
    },
    {
      "type": "modify",
      "old_id": "2576b1acae176e89e2c4ac5ca9f8a4b030fe1888",
      "old_mode": 33188,
      "old_path": "av1/encoder/encodemb.h",
      "new_id": "c5f2ac1eab6dc7300ea718e22a907f79f07ccf7c",
      "new_mode": 33188,
      "new_path": "av1/encoder/encodemb.h"
    },
    {
      "type": "modify",
      "old_id": "0b6410a344ee1c8d5d2db6882a5ba9f073915850",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder.c",
      "new_id": "13f54c978199c336a40728d61379d80f0f4fa006",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder.c"
    },
    {
      "type": "modify",
      "old_id": "d8a4b5f8e4a66b281e0f4620f8ada5a50aad9eb7",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder.h",
      "new_id": "daa90b3a16d29e013713a1140d90f30dbd310130",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder.h"
    },
    {
      "type": "modify",
      "old_id": "4d0acee9286904f9a72dbaf009546eb83b0868bc",
      "old_mode": 33188,
      "old_path": "av1/encoder/firstpass.c",
      "new_id": "1dfd0a660a966d8e9f0c7d0093695e33a9b4e52e",
      "new_mode": 33188,
      "new_path": "av1/encoder/firstpass.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "466ede3f1e4033c311c804f33df23707ff004463",
      "new_mode": 33188,
      "new_path": "av1/encoder/generic_encoder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07dcacad7c0de2b15f8b3689800c15d67dfcca39",
      "new_mode": 33188,
      "new_path": "av1/encoder/laplace_encoder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0ee102a639b1549b8c3f56011c0d21173a135f0",
      "new_mode": 33188,
      "new_path": "av1/encoder/pvq_encoder.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6cf1c3bb2821552b17f1a13a5cd1ea5b85528eb1",
      "new_mode": 33188,
      "new_path": "av1/encoder/pvq_encoder.h"
    },
    {
      "type": "modify",
      "old_id": "0b9c91e780799ba98c4dd36bd9276b88a9835c74",
      "old_mode": 33188,
      "old_path": "av1/encoder/rdopt.c",
      "new_id": "92ef15a9be11dc410385d26511d4046fc028c5a8",
      "new_mode": 33188,
      "new_path": "av1/encoder/rdopt.c"
    },
    {
      "type": "modify",
      "old_id": "d5afaae51ad6c0451655435981c9b2f5e13801a4",
      "old_mode": 33188,
      "old_path": "av1/encoder/tokenize.c",
      "new_id": "142bde8046b449d28e2cb7b4b0e73c2731bbb600",
      "new_mode": 33188,
      "new_path": "av1/encoder/tokenize.c"
    },
    {
      "type": "modify",
      "old_id": "64d48b0bebd4587384c4caf63cc28a643a0a9dd9",
      "old_mode": 33261,
      "old_path": "configure",
      "new_id": "7f867e585627359ab58c302e0c6fb7c65507a0f0",
      "new_mode": 33261,
      "new_path": "configure"
    },
    {
      "type": "modify",
      "old_id": "ea6da474697c33666db27e72b092d46ca7625e36",
      "old_mode": 33188,
      "old_path": "test/divu_small_test.cc",
      "new_id": "d3a134a2bff36d2af285a15f734f67207e9de907",
      "new_mode": 33188,
      "new_path": "test/divu_small_test.cc"
    }
  ]
}
