{"id":21732413,"url":"https://github.com/honzasp/vp8l","last_synced_at":"2025-04-13T00:36:24.407Z","repository":{"id":145133985,"uuid":"83021420","full_name":"honzasp/vp8l","owner":"honzasp","description":"WebP lossless (VP8L) image encoder","archived":false,"fork":false,"pushed_at":"2017-04-05T06:48:51.000Z","size":8676,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-13T00:36:19.516Z","etag":null,"topics":["better-than-png","csharp","image-compression","vp8l","webp"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/honzasp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-24T08:51:33.000Z","updated_at":"2020-12-28T21:51:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"6860fdc8-bae7-4831-84e2-062a2a21602c","html_url":"https://github.com/honzasp/vp8l","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/honzasp%2Fvp8l","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/honzasp%2Fvp8l/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/honzasp%2Fvp8l/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/honzasp%2Fvp8l/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/honzasp","download_url":"https://codeload.github.com/honzasp/vp8l/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650417,"owners_count":21139671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["better-than-png","csharp","image-compression","vp8l","webp"],"created_at":"2024-11-26T04:30:19.118Z","updated_at":"2025-04-13T00:36:24.401Z","avatar_url":"https://github.com/honzasp.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VP8L (WebP lossless) encoder\n\nThe program loads an image (in any of the widely supported formats such as JPEG,\nPNG or BMP) and encodes it in the WebP lossless format (VP8L codec). The program\nuses most of the features of the VP8L format to achieve better compression than\nPNG and is not much worse than the official `libwebp` implementation. However,\nthe program is quite slow compared to the heavily optimized image compression\nlibraries currently in use, but this is mostly due to the focus on clarity\nrather than on performance.\n\nThe implemented VP8L features include:\n\n- entropy coding of image data using canonical Huffman codes\n- LZ77 backward references\n- local color cache references (currently disabled, as it does not improve\n  compression)\n- palettization, possibly using sub-byte packing\n- subtract-green color transform to crudely decorrelate color channels\n- spatially-varying prediction\n\nThe notable features that are *not* implemented are:\n\n- spatially-varying Huffman codes\n- advanced cross-color transform\n\nThe encoded images are usually 65%--90% size of PNG and 110%--160% the size of\nlossless WebP images produced by `libwebp`.\n\n## Usage\n\nCompile all the C# files in the `VP8L/` directory and add a reference to\n`System.Drawing` to get an executable `VP8L.exe`. A `Makefile` is attached that\ninvokes `mcs` that will do the trick. The executable can be invoked with two\ncommand-line arguments, as\n\n    VP8L.exe [input] [output]\n\nwhere `[input]` is the path to the input image and `[output]` is the name of the\nproduced `.webp` file. The default paths are `input.png` and `output.webp`.\n\n## Test images\n\nThe distribution includes a small corpus of images in `test/input`, used to test\nthe program. The included script `test.sh` invokes the program and stores the\ngenerated images in `test/output`. It also converts the images into WebP using\n`cwebp`, the tool shipped with `libwebp`, and saves them to `test/ref` for\ncomparison. To check that the output images are valid, the script converts them\nback to PNG using `dwebp`, which also serves as a check that the produced WebP\nimages are valid.\n\nNote that the script expects to find the `dwebp` and `cwebp` binaries in the\n`test/` directory and executes the program using `mono VP8L.exe`.\n\n## Source guide\n\nThe `Main` is located in `VP8L/VP8L.cs`, other source files are mostly named\nafter the main `class` they contain (`Argb.cs`, `Image.cs`, ...) or the `static\nclass` that must be used to wrap functions (`Transform.cs`, `ImageData.cs`,\n...). Read the comments to gain basic understanding of the inner workings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhonzasp%2Fvp8l","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhonzasp%2Fvp8l","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhonzasp%2Fvp8l/lists"}