Added Audio Codecs presentation
5
audiocodecs/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
out/
|
||||||
|
out/**
|
||||||
|
|
||||||
|
work/
|
||||||
|
work/**
|
22
audiocodecs/Makefile
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
SRC = ./slides/*.md
|
||||||
|
TEMP_DIR = ./work/
|
||||||
|
TEMP_MD = $(TEMP_DIR)/work.md
|
||||||
|
OUT_DIR = ./out/
|
||||||
|
INCLUDE_DIR = ./media/
|
||||||
|
|
||||||
|
all: $(OUT_DIR)/index.html
|
||||||
|
|
||||||
|
$(OUT_DIR)/index.html: $(TEMP_MD)
|
||||||
|
mkdir -p $(OUT_DIR)
|
||||||
|
mdslides $(TEMP_MD) --include $(INCLUDE_DIR) --output $(OUT_DIR)
|
||||||
|
|
||||||
|
$(TEMP_MD): $(SRC)
|
||||||
|
mkdir -p $(TEMP_DIR)
|
||||||
|
cat $(SRC) > $(TEMP_MD)
|
||||||
|
|
||||||
|
preview: $(OUT_DIR)/index.html
|
||||||
|
xdg-open $(OUT_DIR)/index.html
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(OUT_DIR)/
|
||||||
|
rm -rf $(TEMP_DIR)/
|
0
audiocodecs/README.md
Normal file
25
audiocodecs/media/Cc-by-nc-sa_icon.svg
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="42" viewBox="0 0 120 42" baseProfile="basic" version="1.1">
|
||||||
|
<g id="surface1">
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(66.666667%,69.803922%,67.058824%);fill-opacity:1;" d="M 3.410156 0.453125 L 116.761719 0.652344 C 118.347656 0.652344 119.761719 0.417969 119.761719 3.816406 L 119.621094 41.144531 L 0.546875 41.144531 L 0.546875 3.675781 C 0.546875 2 0.710938 0.453125 3.410156 0.453125 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 117.753906 0 L 2.246094 0 C 1.007813 0 0 1.007813 0 2.246094 L 0 41.492188 C 0 41.773438 0.226563 42 0.507813 42 L 119.492188 42 C 119.773438 42 120 41.773438 120 41.492188 L 120 2.246094 C 120 1.007813 118.992188 0 117.753906 0 Z M 2.246094 1.015625 L 117.753906 1.015625 C 118.433594 1.015625 118.984375 1.566406 118.984375 2.246094 C 118.984375 2.246094 118.984375 18.042969 118.984375 29.46875 L 36.429688 29.46875 C 33.402344 34.9375 27.570313 38.652344 20.882813 38.652344 C 14.1875 38.652344 8.359375 34.941406 5.335938 29.46875 L 1.015625 29.46875 C 1.015625 18.042969 1.015625 2.246094 1.015625 2.246094 C 1.015625 1.566406 1.566406 1.015625 2.246094 1.015625 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 34.523438 19.550781 C 34.527344 27.082031 28.425781 33.1875 20.894531 33.191406 C 13.367188 33.199219 7.257813 27.097656 7.253906 19.566406 C 7.253906 19.5625 7.253906 19.558594 7.253906 19.550781 C 7.246094 12.023438 13.347656 5.914063 20.878906 5.910156 C 28.410156 5.90625 34.519531 12.003906 34.523438 19.535156 C 34.523438 19.539063 34.523438 19.546875 34.523438 19.550781 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 31.972656 8.445313 C 34.996094 11.46875 36.507813 15.171875 36.507813 19.550781 C 36.507813 23.929688 35.019531 27.59375 32.050781 30.539063 C 28.894531 33.640625 25.167969 35.191406 20.867188 35.191406 C 16.617188 35.191406 12.957031 33.652344 9.882813 30.578125 C 6.804688 27.503906 5.269531 23.828125 5.269531 19.550781 C 5.269531 15.277344 6.804688 11.574219 9.882813 8.445313 C 12.878906 5.421875 16.539063 3.910156 20.867188 3.910156 C 25.246094 3.910156 28.949219 5.421875 31.972656 8.445313 Z M 11.917969 10.480469 C 9.359375 13.0625 8.082031 16.085938 8.082031 19.554688 C 8.082031 23.023438 9.347656 26.023438 11.875 28.550781 C 14.40625 31.082031 17.417969 32.34375 20.914063 32.34375 C 24.410156 32.34375 27.445313 31.066406 30.027344 28.511719 C 32.480469 26.140625 33.707031 23.152344 33.707031 19.554688 C 33.707031 15.984375 32.460938 12.953125 29.96875 10.460938 C 27.476563 7.972656 24.460938 6.726563 20.914063 6.726563 C 17.367188 6.726563 14.367188 7.976563 11.917969 10.480469 Z M 18.644531 18.03125 C 18.253906 17.179688 17.667969 16.753906 16.886719 16.753906 C 15.511719 16.753906 14.820313 17.679688 14.820313 19.535156 C 14.820313 21.390625 15.511719 22.320313 16.886719 22.320313 C 17.796875 22.320313 18.449219 21.867188 18.839844 20.960938 L 20.75 21.980469 C 19.839844 23.597656 18.472656 24.40625 16.652344 24.40625 C 15.246094 24.40625 14.121094 23.976563 13.273438 23.113281 C 12.429688 22.253906 12.003906 21.066406 12.003906 19.550781 C 12.003906 18.0625 12.441406 16.882813 13.3125 16.007813 C 14.183594 15.132813 15.273438 14.695313 16.574219 14.695313 C 18.5 14.695313 19.878906 15.453125 20.710938 16.972656 Z M 27.632813 18.03125 C 27.242188 17.179688 26.667969 16.753906 25.914063 16.753906 C 24.507813 16.753906 23.804688 17.679688 23.804688 19.535156 C 23.804688 21.390625 24.507813 22.320313 25.914063 22.320313 C 26.828125 22.320313 27.464844 21.867188 27.828125 20.960938 L 29.78125 21.980469 C 28.871094 23.597656 27.507813 24.40625 25.691406 24.40625 C 24.285156 24.40625 23.164063 23.976563 22.316406 23.113281 C 21.476563 22.253906 21.050781 21.066406 21.050781 19.550781 C 21.050781 18.0625 21.480469 16.882813 22.339844 16.007813 C 23.195313 15.132813 24.285156 14.695313 25.613281 14.695313 C 27.535156 14.695313 28.910156 15.453125 29.742188 16.972656 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 62.503906 15.222656 C 62.503906 21.152344 57.695313 25.960938 51.761719 25.960938 C 45.832031 25.960938 41.023438 21.152344 41.023438 15.222656 C 41.023438 9.292969 45.832031 4.484375 51.761719 4.484375 C 57.695313 4.484375 62.503906 9.292969 62.503906 15.222656 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 54.871094 12.117188 C 54.871094 11.703125 54.535156 11.367188 54.121094 11.367188 L 49.378906 11.367188 C 48.964844 11.367188 48.628906 11.703125 48.628906 12.117188 L 48.628906 16.859375 L 49.953125 16.859375 L 49.953125 22.476563 L 53.546875 22.476563 L 53.546875 16.859375 L 54.871094 16.859375 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 53.371094 9.121094 C 53.371094 10.015625 52.648438 10.742188 51.75 10.742188 C 50.855469 10.742188 50.128906 10.015625 50.128906 9.121094 C 50.128906 8.226563 50.855469 7.5 51.75 7.5 C 52.648438 7.5 53.371094 8.226563 53.371094 9.121094 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 51.734375 3.390625 C 48.523438 3.390625 45.804688 4.511719 43.578125 6.753906 C 41.296875 9.074219 40.15625 11.816406 40.15625 14.988281 C 40.15625 18.15625 41.296875 20.882813 43.578125 23.160156 C 45.863281 25.441406 48.582031 26.582031 51.734375 26.582031 C 54.929688 26.582031 57.695313 25.433594 60.039063 23.132813 C 62.246094 20.949219 63.347656 18.234375 63.347656 14.988281 C 63.347656 11.738281 62.226563 8.996094 59.980469 6.753906 C 57.734375 4.511719 54.988281 3.390625 51.734375 3.390625 Z M 51.765625 5.480469 C 54.398438 5.480469 56.632813 6.40625 58.46875 8.261719 C 60.328125 10.097656 61.257813 12.339844 61.257813 14.988281 C 61.257813 17.652344 60.347656 19.867188 58.527344 21.625 C 56.613281 23.519531 54.359375 24.464844 51.765625 24.464844 C 49.171875 24.464844 46.9375 23.527344 45.058594 21.652344 C 43.183594 19.78125 42.246094 17.558594 42.246094 14.988281 C 42.246094 12.417969 43.191406 10.175781 45.089844 8.261719 C 46.910156 6.40625 49.132813 5.480469 51.765625 5.480469 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 48.402344 32.746094 C 48.714844 32.746094 49.003906 32.777344 49.265625 32.832031 C 49.523438 32.886719 49.75 32.976563 49.933594 33.105469 C 50.121094 33.230469 50.261719 33.398438 50.367188 33.609375 C 50.46875 33.820313 50.519531 34.078125 50.519531 34.386719 C 50.519531 34.722656 50.445313 35 50.292969 35.222656 C 50.140625 35.445313 49.914063 35.625 49.617188 35.769531 C 50.027344 35.886719 50.332031 36.09375 50.535156 36.386719 C 50.738281 36.679688 50.839844 37.035156 50.839844 37.449219 C 50.839844 37.78125 50.773438 38.070313 50.644531 38.316406 C 50.511719 38.558594 50.335938 38.761719 50.117188 38.914063 C 49.898438 39.070313 49.644531 39.183594 49.363281 39.257813 C 49.082031 39.332031 48.792969 39.371094 48.496094 39.371094 L 45.277344 39.371094 L 45.277344 32.746094 Z M 48.214844 35.425781 C 48.476563 35.425781 48.6875 35.363281 48.855469 35.242188 C 49.023438 35.117188 49.105469 34.917969 49.105469 34.640625 C 49.105469 34.484375 49.078125 34.359375 49.023438 34.261719 C 48.96875 34.160156 48.894531 34.085938 48.800781 34.027344 C 48.707031 33.972656 48.601563 33.933594 48.480469 33.914063 C 48.359375 33.890625 48.234375 33.878906 48.101563 33.878906 L 46.738281 33.878906 L 46.738281 35.425781 Z M 48.300781 38.234375 C 48.441406 38.234375 48.578125 38.222656 48.707031 38.195313 C 48.839844 38.167969 48.953125 38.121094 49.054688 38.054688 C 49.152344 37.992188 49.230469 37.902344 49.289063 37.789063 C 49.347656 37.679688 49.378906 37.539063 49.378906 37.363281 C 49.378906 37.023438 49.28125 36.78125 49.089844 36.636719 C 48.898438 36.492188 48.644531 36.417969 48.328125 36.417969 L 46.738281 36.417969 L 46.738281 38.234375 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 51.09375 32.746094 L 52.726563 32.746094 L 54.277344 35.363281 L 55.820313 32.746094 L 57.445313 32.746094 L 54.984375 36.828125 L 54.984375 39.371094 L 53.523438 39.371094 L 53.523438 36.789063 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 98.441406 37.730469 C 98.519531 37.886719 98.625 38.011719 98.761719 38.109375 C 98.894531 38.203125 99.046875 38.273438 99.226563 38.320313 C 99.40625 38.367188 99.589844 38.390625 99.78125 38.390625 C 99.910156 38.390625 100.050781 38.378906 100.199219 38.359375 C 100.347656 38.335938 100.484375 38.296875 100.617188 38.234375 C 100.746094 38.171875 100.851563 38.085938 100.941406 37.976563 C 101.023438 37.871094 101.070313 37.730469 101.070313 37.566406 C 101.070313 37.386719 101.011719 37.242188 100.898438 37.128906 C 100.785156 37.019531 100.632813 36.925781 100.449219 36.851563 C 100.261719 36.777344 100.050781 36.710938 99.820313 36.65625 C 99.582031 36.601563 99.347656 36.539063 99.105469 36.472656 C 98.859375 36.410156 98.617188 36.332031 98.382813 36.242188 C 98.148438 36.15625 97.9375 36.039063 97.753906 35.894531 C 97.566406 35.753906 97.417969 35.574219 97.304688 35.363281 C 97.191406 35.148438 97.132813 34.890625 97.132813 34.589844 C 97.132813 34.246094 97.207031 33.953125 97.351563 33.703125 C 97.496094 33.453125 97.683594 33.242188 97.917969 33.074219 C 98.152344 32.910156 98.421875 32.785156 98.71875 32.703125 C 99.011719 32.625 99.308594 32.585938 99.605469 32.585938 C 99.953125 32.585938 100.285156 32.625 100.601563 32.699219 C 100.921875 32.777344 101.203125 32.902344 101.449219 33.078125 C 101.699219 33.25 101.894531 33.472656 102.039063 33.738281 C 102.183594 34.011719 102.257813 34.335938 102.257813 34.71875 L 100.84375 34.71875 C 100.832031 34.519531 100.789063 34.355469 100.71875 34.226563 C 100.648438 34.097656 100.554688 33.996094 100.4375 33.921875 C 100.320313 33.847656 100.1875 33.792969 100.035156 33.765625 C 99.886719 33.734375 99.71875 33.71875 99.542969 33.71875 C 99.425781 33.71875 99.308594 33.730469 99.191406 33.753906 C 99.074219 33.78125 98.96875 33.824219 98.875 33.882813 C 98.777344 33.945313 98.699219 34.023438 98.636719 34.117188 C 98.578125 34.210938 98.546875 34.328125 98.546875 34.46875 C 98.546875 34.597656 98.570313 34.703125 98.617188 34.785156 C 98.667969 34.863281 98.765625 34.941406 98.910156 35.007813 C 99.058594 35.074219 99.257813 35.144531 99.511719 35.210938 C 99.769531 35.277344 100.105469 35.367188 100.519531 35.472656 C 100.640625 35.496094 100.8125 35.542969 101.03125 35.605469 C 101.25 35.671875 101.46875 35.773438 101.683594 35.917969 C 101.902344 36.058594 102.085938 36.25 102.246094 36.488281 C 102.402344 36.726563 102.480469 37.03125 102.480469 37.402344 C 102.480469 37.703125 102.421875 37.984375 102.304688 38.246094 C 102.1875 38.503906 102.011719 38.730469 101.78125 38.917969 C 101.550781 39.105469 101.261719 39.253906 100.917969 39.359375 C 100.574219 39.464844 100.179688 39.515625 99.726563 39.515625 C 99.363281 39.515625 99.007813 39.472656 98.664063 39.382813 C 98.320313 39.292969 98.019531 39.152344 97.757813 38.957031 C 97.492188 38.765625 97.285156 38.519531 97.128906 38.222656 C 96.976563 37.925781 96.902344 37.574219 96.90625 37.167969 L 98.320313 37.167969 C 98.320313 37.390625 98.359375 37.578125 98.441406 37.730469 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 106.644531 32.746094 L 109.121094 39.371094 L 107.609375 39.371094 L 107.109375 37.894531 L 104.632813 37.894531 L 104.113281 39.371094 L 102.648438 39.371094 L 105.152344 32.746094 Z M 106.730469 36.808594 L 105.894531 34.378906 L 105.875 34.378906 L 105.015625 36.808594 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 72.519531 32.746094 L 75.285156 37.191406 L 75.300781 37.191406 L 75.300781 32.746094 L 76.667969 32.746094 L 76.667969 39.371094 L 75.210938 39.371094 L 72.453125 34.9375 L 72.433594 34.9375 L 72.433594 39.371094 L 71.070313 39.371094 L 71.070313 32.746094 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 82.195313 34.511719 C 82.109375 34.371094 82 34.25 81.871094 34.144531 C 81.742188 34.039063 81.59375 33.957031 81.429688 33.898438 C 81.265625 33.839844 81.09375 33.8125 80.914063 33.8125 C 80.585938 33.8125 80.308594 33.875 80.078125 34 C 79.851563 34.128906 79.664063 34.296875 79.523438 34.511719 C 79.382813 34.722656 79.277344 34.964844 79.210938 35.238281 C 79.148438 35.511719 79.113281 35.792969 79.113281 36.082031 C 79.113281 36.359375 79.148438 36.632813 79.210938 36.894531 C 79.277344 37.15625 79.382813 37.394531 79.523438 37.601563 C 79.664063 37.8125 79.851563 37.980469 80.078125 38.109375 C 80.308594 38.234375 80.585938 38.296875 80.914063 38.296875 C 81.359375 38.296875 81.707031 38.164063 81.957031 37.890625 C 82.210938 37.617188 82.363281 37.257813 82.417969 36.8125 L 83.828125 36.8125 C 83.792969 37.226563 83.695313 37.601563 83.539063 37.9375 C 83.386719 38.269531 83.179688 38.554688 82.929688 38.789063 C 82.675781 39.027344 82.378906 39.207031 82.039063 39.332031 C 81.699219 39.453125 81.324219 39.515625 80.914063 39.515625 C 80.40625 39.515625 79.953125 39.429688 79.546875 39.25 C 79.140625 39.078125 78.800781 38.832031 78.519531 38.523438 C 78.242188 38.214844 78.027344 37.851563 77.878906 37.433594 C 77.730469 37.015625 77.65625 36.566406 77.65625 36.082031 C 77.65625 35.585938 77.730469 35.128906 77.878906 34.703125 C 78.027344 34.28125 78.242188 33.910156 78.519531 33.59375 C 78.800781 33.28125 79.140625 33.03125 79.546875 32.851563 C 79.953125 32.671875 80.40625 32.585938 80.914063 32.585938 C 81.28125 32.585938 81.625 32.636719 81.949219 32.742188 C 82.273438 32.847656 82.566406 33 82.820313 33.203125 C 83.078125 33.402344 83.289063 33.652344 83.457031 33.949219 C 83.625 34.246094 83.730469 34.585938 83.773438 34.96875 L 82.363281 34.96875 C 82.335938 34.804688 82.28125 34.648438 82.195313 34.511719 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 114.578125 14.980469 C 114.585938 20.824219 109.847656 25.566406 104.003906 25.574219 C 98.15625 25.574219 93.414063 20.84375 93.410156 14.996094 C 93.410156 14.992188 93.410156 14.984375 93.410156 14.980469 C 93.40625 9.136719 98.140625 4.394531 103.988281 4.390625 C 109.832031 4.382813 114.574219 9.121094 114.578125 14.964844 C 114.578125 14.96875 114.578125 14.976563 114.578125 14.980469 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 103.917969 3.386719 C 100.707031 3.386719 97.988281 4.507813 95.761719 6.746094 C 93.480469 9.066406 92.335938 11.8125 92.335938 14.980469 C 92.335938 18.148438 93.480469 20.875 95.761719 23.15625 C 98.046875 25.4375 100.765625 26.574219 103.917969 26.574219 C 107.113281 26.574219 109.878906 25.425781 112.21875 23.125 C 114.425781 20.941406 115.53125 18.226563 115.53125 14.980469 C 115.53125 11.734375 114.40625 8.988281 112.164063 6.746094 C 109.917969 4.507813 107.171875 3.386719 103.917969 3.386719 Z M 103.949219 5.472656 C 106.578125 5.472656 108.8125 6.398438 110.652344 8.257813 C 112.511719 10.089844 113.4375 12.332031 113.4375 14.980469 C 113.4375 17.648438 112.53125 19.859375 110.710938 21.621094 C 108.796875 23.511719 106.539063 24.460938 103.949219 24.460938 C 101.355469 24.460938 99.121094 23.523438 97.242188 21.648438 C 95.367188 19.773438 94.425781 17.550781 94.425781 14.980469 C 94.425781 12.410156 95.375 10.167969 97.273438 8.257813 C 99.089844 6.398438 101.316406 5.472656 103.949219 5.472656 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 98.777344 13.34375 C 99.242188 10.425781 101.292969 8.867188 103.871094 8.867188 C 107.570313 8.867188 109.828125 11.554688 109.828125 15.136719 C 109.828125 18.628906 107.425781 21.34375 103.8125 21.34375 C 101.324219 21.34375 99.097656 19.816406 98.691406 16.808594 L 101.613281 16.808594 C 101.699219 18.371094 102.710938 18.917969 104.160156 18.917969 C 105.804688 18.917969 106.878906 17.386719 106.878906 15.046875 C 106.878906 12.59375 105.953125 11.292969 104.214844 11.292969 C 102.945313 11.292969 101.84375 11.757813 101.613281 13.34375 L 102.460938 13.339844 L 100.164063 15.636719 L 97.863281 13.339844 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 88.628906 14.980469 C 88.632813 20.9375 83.808594 25.769531 77.851563 25.773438 C 71.894531 25.777344 67.058594 20.953125 67.054688 14.996094 C 67.054688 14.992188 67.054688 14.984375 67.054688 14.980469 C 67.050781 9.023438 71.878906 4.191406 77.835938 4.1875 C 83.792969 4.183594 88.625 9.007813 88.628906 14.964844 C 88.628906 14.96875 88.628906 14.976563 88.628906 14.980469 Z "/>
|
||||||
|
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 77.828125 3.386719 C 81.078125 3.386719 83.824219 4.507813 86.070313 6.746094 C 88.316406 8.988281 89.4375 11.734375 89.4375 14.980469 C 89.4375 18.226563 88.335938 20.941406 86.128906 23.125 C 83.789063 25.425781 81.019531 26.574219 77.828125 26.574219 C 74.671875 26.574219 71.953125 25.4375 69.671875 23.15625 C 67.386719 20.875 66.246094 18.148438 66.246094 14.980469 C 66.246094 11.8125 67.386719 9.066406 69.671875 6.746094 C 71.898438 4.507813 74.613281 3.386719 77.828125 3.386719 Z M 68.855469 11.867188 C 68.507813 12.84375 68.335938 13.882813 68.335938 14.980469 C 68.335938 17.550781 69.273438 19.773438 71.152344 21.648438 C 73.027344 23.523438 75.261719 24.460938 77.855469 24.460938 C 80.449219 24.460938 82.703125 23.511719 84.621094 21.617188 C 85.261719 21 85.789063 20.324219 86.203125 19.589844 L 81.832031 17.644531 C 81.535156 19.113281 80.226563 20.109375 78.640625 20.226563 L 78.640625 22.011719 L 77.308594 22.011719 L 77.308594 20.226563 C 76.007813 20.210938 74.75 19.675781 73.789063 18.835938 L 75.386719 17.226563 C 76.15625 17.949219 76.925781 18.273438 77.976563 18.273438 C 78.65625 18.273438 79.410156 18.007813 79.410156 17.121094 C 79.410156 16.808594 79.289063 16.589844 79.097656 16.425781 L 77.992188 15.933594 L 76.613281 15.320313 C 75.933594 15.015625 75.355469 14.761719 74.777344 14.503906 Z M 77.855469 5.472656 C 75.222656 5.472656 73 6.398438 71.179688 8.257813 C 70.683594 8.753906 70.253906 9.277344 69.890625 9.820313 L 74.320313 11.796875 C 74.722656 10.566406 75.890625 9.820313 77.308594 9.738281 L 77.308594 7.949219 L 78.640625 7.949219 L 78.640625 9.738281 C 79.558594 9.78125 80.5625 10.03125 81.554688 10.800781 L 80.03125 12.367188 C 79.46875 11.96875 78.757813 11.6875 78.046875 11.6875 C 77.472656 11.6875 76.660156 11.863281 76.660156 12.585938 C 76.660156 12.699219 76.695313 12.796875 76.761719 12.882813 L 78.246094 13.542969 L 79.25 13.988281 C 79.890625 14.273438 80.503906 14.546875 81.113281 14.816406 L 87.054688 17.464844 C 87.25 16.683594 87.347656 15.855469 87.347656 14.980469 C 87.347656 12.332031 86.417969 10.089844 84.5625 8.257813 C 82.722656 6.398438 80.488281 5.472656 77.855469 5.472656 Z "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 19 KiB |
68
audiocodecs/media/Opus_bitrate+latency_comparison.svg
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="674" height="497">
|
||||||
|
<defs>
|
||||||
|
<marker orient="auto" id="Arrow2Send" style="overflow:visible">
|
||||||
|
<path d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="matrix(-0.3,0,0,-0.3,0.69,0)" style="fill:#808080"/>
|
||||||
|
</marker>
|
||||||
|
<marker orient="auto" id="Arrow2Mstart" style="overflow:visible">
|
||||||
|
<path d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="scale(0.6,0.6)" style="fill:#808080"/>
|
||||||
|
</marker>
|
||||||
|
<marker orient="auto" id="Arrow2Mend" style="overflow:visible">
|
||||||
|
<path d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="scale(-0.6,-0.6)" style="fill:#808080"/>
|
||||||
|
</marker>
|
||||||
|
<linearGradient id="linearGradient3793">
|
||||||
|
<stop style="stop-color:#ff9966" offset="0"/>
|
||||||
|
<stop style="stop-color:#ffff66" offset="0.5"/>
|
||||||
|
<stop style="stop-color:#66ff6c" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient x1="78" x2="380" id="linearGradient3803" xlink:href="#linearGradient3793" gradientUnits="userSpaceOnUse"/>
|
||||||
|
<linearGradient x1="74" y1="173" x2="601" y2="173" id="linearGradient3825" xlink:href="#linearGradient3793" gradientUnits="userSpaceOnUse"/>
|
||||||
|
</defs>
|
||||||
|
<path d="m 59,131 567,0" id="path1" style="stroke:#808080;stroke-linecap:round"/>
|
||||||
|
<use transform="translate(0,75)" xlink:href="#path1"/>
|
||||||
|
<use transform="translate(0,158)" xlink:href="#path1"/>
|
||||||
|
<use transform="translate(0,253)" xlink:href="#path1"/>
|
||||||
|
<path d="m 59,47 556,0" style="stroke:#808080;stroke-width:5;stroke-linecap:round;marker-end:url(#Arrow2Send)"/>
|
||||||
|
<path d="m 59,47 0,370" style="stroke:#808080;stroke-width:5;stroke-linecap:round;marker-end:url(#Arrow2Send)"/>
|
||||||
|
<path d="m 652,66 0,313" style="stroke:#808080;stroke-width:2.5;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend)"/>
|
||||||
|
<path d="m 119,425 464,0" style="stroke:#808080;stroke-width:2.5;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend)"/>
|
||||||
|
<ellipse cx="484.25" cy="162" rx="141.75" ry="44" style="fill:#66ff6c"/>
|
||||||
|
<path d="m 633,99.63936 a 274,38 0 0 1 -548,0 274,38 0 1 1 548,0 z" style="fill:#808080"/>
|
||||||
|
<ellipse cx="352" cy="92" rx="274" ry="38" style="fill:url(#linearGradient3803)"/>
|
||||||
|
<ellipse cx="115.5" cy="107.5" rx="42" ry="19" style="fill:#ff9966"/>
|
||||||
|
<ellipse cx="210" cy="170" rx="132" ry="28" style="fill:url(#linearGradient3825)"/>
|
||||||
|
<ellipse cx="295" cy="206" rx="85" ry="19" style="fill:#66ff6c"/>
|
||||||
|
<ellipse cx="200.5" cy="232" rx="84.5" ry="19" style="fill:#ffff66"/>
|
||||||
|
<ellipse cx="285.5" cy="291" rx="131.5" ry="28" style="fill:#66ff6c"/>
|
||||||
|
<ellipse cx="417.5" cy="389" rx="207.5" ry="28" style="fill:#66ff6c"/>
|
||||||
|
<rect width="461" height="38" x="122" y="459" style="fill:#ffffff;stroke:#808080"/>
|
||||||
|
<circle cx="142.5" cy="478" r="11.5" style="fill:#ff9966;stroke:#808080"/>
|
||||||
|
<circle cx="304.5" cy="478" r="11.5" style="fill:#ffff66;stroke:#808080"/>
|
||||||
|
<circle cx="443" cy="478" r="11.5" style="fill:#66ff6c;stroke:#808080"/>
|
||||||
|
<text style="font-size:19px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="339" y="16">Bitrate (kbps/channel)</tspan></text>
|
||||||
|
<text transform="matrix(0,1,-1,0,0,0)" style="font-size:19px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="205.1291" y="-4.7897768">Delay (ms)</tspan></text>
|
||||||
|
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="53.892239">0</tspan></text>
|
||||||
|
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="137.91626">20</tspan></text>
|
||||||
|
<use transform="translate(-300.1782,174.41626)" xlink:href="#text1"/>
|
||||||
|
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="295.91626">80</tspan></text>
|
||||||
|
<text style="font-size:19px;text-align:end;text-anchor:end;font-family:DejaVu Sans"><tspan x="49.392632" y="390.91626">200</tspan></text>
|
||||||
|
<text id="text1" style="font-size:19px;font-family:DejaVu Sans"><tspan x="325.37552" y="38.5">40</tspan></text>
|
||||||
|
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="574.30951" y="38.5">80</tspan></text>
|
||||||
|
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="167.28203" y="485.08325">narrowband</tspan></text>
|
||||||
|
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="329.12265" y="485.08325">wideband</tspan></text>
|
||||||
|
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="464.8848" y="485.08325">> wideband</tspan></text>
|
||||||
|
<text style="font-size:19px;font-family:DejaVu Sans"><tspan x="138.71498" y="444" style="font-size:15px;font-family:DejaVu Sans">Phone quality</tspan></text>
|
||||||
|
<text style="font-size:15px;font-family:DejaVu Sans"><tspan x="458.48438" y="444">High fidelity</tspan></text>
|
||||||
|
<text transform="matrix(0,1,-1,0,0,0)" style="font-size:15px;font-family:DejaVu Sans"><tspan x="95.674614" y="-662">Real-time (live)</tspan></text>
|
||||||
|
<text transform="matrix(0,1,-1,0,0,0)" style="font-size:15px;font-family:DejaVu Sans"><tspan x="276.49753" y="-662">Archival</tspan></text>
|
||||||
|
<text id="text2" style="font-size:23px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="59.024021" y="254.70996">≈</tspan></text>
|
||||||
|
<use transform="translate(0,89)" xlink:href="#text2"/>
|
||||||
|
<text style="font-size:22px;font-weight:bold;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="351.97852" y="97.875977">Opus</tspan></text>
|
||||||
|
<text style="font-size:20px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="115.64648" y="114.78027">G.729</tspan></text>
|
||||||
|
<text style="font-size:20px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="210.20508" y="175.50781">Speex (NB, WB)</tspan></text>
|
||||||
|
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="484.55859" y="170.0083">AAC-LD</tspan></text>
|
||||||
|
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="294.98926" y="214.0083">G.722.1C</tspan></text>
|
||||||
|
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="200.90283" y="240.0083">G.729.1</tspan></text>
|
||||||
|
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="286.62097" y="299.01904">AMR-WB+</tspan></text>
|
||||||
|
<text style="font-size:22px;text-align:center;text-anchor:middle;font-family:DejaVu Sans"><tspan x="418.30029" y="396.0791">Vorbis, AAC, MP3</tspan></text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.8 KiB |
|
@ -0,0 +1,121 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" width="1010" height="750">
|
||||||
|
<defs>
|
||||||
|
<marker orient="auto" id="Arrow1Lend" style="overflow:visible">
|
||||||
|
<path d="m 2,0 -17.5,5 5,-5 -5,-5 L 2,0"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<path d="M 54,601.25 54,11" style="stroke:#000000;stroke-width:2.5;marker-end:url(#Arrow1Lend)"/>
|
||||||
|
<path d="m 54,600 927,0" style="stroke:#000000;stroke-width:2.5;marker-end:url(#Arrow1Lend)"/>
|
||||||
|
<path d="m 56,140 880,0" id="path1" style="stroke:#808080"/>
|
||||||
|
<use transform="translate(0,324)" xlink:href="#path1"/>
|
||||||
|
<use transform="translate(0,173)" xlink:href="#path1"/>
|
||||||
|
<use transform="translate(0,61)" xlink:href="#path1"/>
|
||||||
|
<path d="m 66,545 c 0,0 59.53937,-39.58131 93,-51 34.49024,-11.77005 108,-17 108,-17" style="fill:none;stroke:#d40000;stroke-width:6.5"/>
|
||||||
|
<path d="m 742,589 0,23" style="stroke:#000000;stroke-width:1.5"/>
|
||||||
|
<path d="m 542,587.5 0,23" style="stroke:#000000;stroke-width:1.5"/>
|
||||||
|
<path d="m 152,589.5 0,23" style="stroke:#000000;stroke-width:1.5"/>
|
||||||
|
<path d="m 339,587.5 0,23" style="stroke:#000000;stroke-width:1.5"/>
|
||||||
|
<path d="m 110,533.5 c 0,0 88.0744,-86.98401 136,-126 29.99904,-24.42207 54.35606,-51.52254 94.49685,-67.36295 C 383.54121,323.15068 436.99962,326.5 436.99962,326.5" style="fill:none;stroke:#d40000;stroke-width:6.5"/>
|
||||||
|
<use transform="translate(125.979,-195.6211)" xlink:href="#circle1"/>
|
||||||
|
<path d="m 640,375.56288 47.05856,-27.73544 54.91886,-17.30053" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
|
||||||
|
<path d="m 54.5,590.5 c 0,0 119.29034,-92.17939 179.962775,-106.80834 30.80214,-21.04194 83.0768,-87.3015 132.29694,-121.58986 C 418.16799,327.15803 540.49963,324.5 540.49963,324.5" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
|
||||||
|
<path d="m 438.01129,364.51799 c 0,0 84.11186,-67.2359 129.05856,-96.73544 26.60255,-17.45985 82.91886,-47.30053 82.91886,-47.30053" style="fill:none;stroke:#000000;stroke-width:6.5"/>
|
||||||
|
<path d="m 541.01129,252.51799 c 0,0 58.89827,-43.72363 92.05856,-58.73544 34.12182,-15.4471 107.91885,-31.30053 107.91885,-31.30053" style="fill:none;stroke:#000000;stroke-width:6.5"/>
|
||||||
|
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
|
||||||
|
<tspan x="686" y="384">G.722</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:40px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
|
||||||
|
<tspan x="555" y="96">Opus</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
|
||||||
|
<tspan x="376" y="404">Speex</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;fill:#d40000;stroke:#d40000;font-family:Sans">
|
||||||
|
<tspan x="368" y="319">AMR-WB</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;fill:#d40000;stroke:#d40000;font-family:Sans">
|
||||||
|
<tspan x="275.0625" y="472.66406">AMR-NB</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:32px;fill:#000000;stroke:#000000;font-family:Sans">
|
||||||
|
<tspan x="684.64844" y="205.64844">G.719</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:32px;fill:#000000;stroke:#000000;font-family:Sans">
|
||||||
|
<tspan x="625.17188" y="263.64844">G.722.1C</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
|
||||||
|
<tspan x="690.64844" y="514.64844">G.711</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="320" y="679">bitrate (kb/s)</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="142.77441" y="639.79102">8</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="319.09961" y="639.19244">16</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="523.52246" y="638.19244">32</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="723.52246" y="638.19244">64</tspan>
|
||||||
|
</text>
|
||||||
|
<text x="302.36218" y="-8.0003748" transform="matrix(0,-1,1,0,0,0)" style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="-379.68359" y="32.132812">Quality</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:20px;font-family:Sans">
|
||||||
|
<tspan x="62" y="459">narrowband</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:20px;font-family:Sans">
|
||||||
|
<tspan x="64.195312" y="307.45605">wideband</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:20px;font-family:Sans">
|
||||||
|
<tspan x="63.855469" y="197.45605">super-wideband</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:20px;font-family:Sans">
|
||||||
|
<tspan x="65.549797" y="136.51758">fullband</tspan>
|
||||||
|
</text>
|
||||||
|
<use transform="translate(126.979,-340.6211)" xlink:href="#circle1"/>
|
||||||
|
<use transform="translate(74.979004,-324.6211)" xlink:href="#circle1"/>
|
||||||
|
<use transform="translate(28.979004,-298.6211)" xlink:href="#circle1"/>
|
||||||
|
<path d="m 279.01129,489.51799 41.97742,-0.036" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
|
||||||
|
<use transform="translate(-295.021,-181.6211)" xlink:href="#circle1"/>
|
||||||
|
<use transform="translate(-334.021,-181.6211)" xlink:href="#circle1"/>
|
||||||
|
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
|
||||||
|
<tspan x="266.28125" y="526.54688">iLBC</tspan>
|
||||||
|
</text>
|
||||||
|
<circle cx="616.021" cy="670.6210976" r="8.25" id="circle1" style="fill:#0000FF"/>
|
||||||
|
<text style="font-size:24px;font-family:Sans">
|
||||||
|
<tspan x="630.02148" y="677.62109">royalty-free, open-source</tspan>
|
||||||
|
</text>
|
||||||
|
<circle cx="616.021" cy="699.6210976" r="8.25" style="fill:#000000"/>
|
||||||
|
<text style="font-size:24px;font-family:Sans">
|
||||||
|
<tspan x="629.02148" y="706.62109">royalty-free, not open-source</tspan>
|
||||||
|
</text>
|
||||||
|
<circle cx="616.021" cy="728.6210976" r="8.25" style="fill:#d40000"/>
|
||||||
|
<text style="font-size:24px;font-family:Sans">
|
||||||
|
<tspan x="628.56055" y="735.62109">licensing fees, not open-source</tspan>
|
||||||
|
</text>
|
||||||
|
<use transform="translate(0,-85.91113)" xlink:href="#path1"/>
|
||||||
|
<text style="font-size:20px;font-family:Sans">
|
||||||
|
<tspan x="67.549797" y="50.606445">fullband stereo</tspan>
|
||||||
|
</text>
|
||||||
|
<path d="m 935.46484,589.58054 0,23" style="stroke:#000000;stroke-width:1.5"/>
|
||||||
|
<text style="font-size:28px;font-family:Sans">
|
||||||
|
<tspan x="906.9873" y="640.77295">128</tspan>
|
||||||
|
</text>
|
||||||
|
<path d="m 691.0113,129.51799 c 0,0 51.42122,-21.62916 78.05855,-29.735442 54.3019,-16.52516 165.91885,-38.30053 165.91885,-38.30053" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
|
||||||
|
<path d="m 614.0113,129.01799 c 0,0 76.8316,-24.55278 116.05855,-33.735442 66.90471,-15.66178 202.91885,-36.30053 202.91885,-36.30053" style="fill:none;stroke:#d40000;stroke-width:6.5"/>
|
||||||
|
<text style="font-size:32px;fill:#0000FF;stroke:#0000FF;font-family:Sans">
|
||||||
|
<tspan x="679.64844" y="156.64844">Vorbis</tspan>
|
||||||
|
</text>
|
||||||
|
<text style="font-size:32px;fill:#d40000;stroke:#d40000;font-family:Sans">
|
||||||
|
<tspan x="597.14062" y="161.20605">AAC</tspan>
|
||||||
|
</text>
|
||||||
|
<path d="m 106,564 c 0,0 108.62764,-130.93334 171.41061,-187.90905 104.57989,-94.9065 197.30824,-194.96992 339.16443,-253.9001 145.1082,-60.281132 204.73066,-56.202052 318.42497,-64.190852" style="fill:none;stroke:#0000FF;stroke-width:6.5"/>
|
||||||
|
<path d="m 763.0113,173.01799 c 0,0 71.82567,-66.35467 115.05855,-87.735442 17.32221,-8.56668 55.91885,-15.30053 55.91885,-15.30053" style="fill:none;stroke:#0000ff;stroke-width:6.5"/>
|
||||||
|
<text style="font-size:32px;fill:#0000ff;stroke:#0000ff;font-family:Sans">
|
||||||
|
<tspan x="850.14062" y="133.20605">MP3</tspan>
|
||||||
|
</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 7.4 KiB |
252
audiocodecs/media/linear-PCM.svg
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="500" height="375" viewBox="0 0 500 375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
|
||||||
|
<title>Gnuplot</title>
|
||||||
|
<desc>Produced by GNUPLOT 4.6 patchlevel 3 </desc>
|
||||||
|
|
||||||
|
<g id="gnuplot_canvas">
|
||||||
|
|
||||||
|
<rect x="0" y="0" width="500" height="375" fill="none"/>
|
||||||
|
<defs>
|
||||||
|
|
||||||
|
<circle id="gpDot" r="0.5" stroke-width="0.5"/>
|
||||||
|
<path id="gpPt0" stroke-width="0.167" stroke="currentColor" d="M-1,0 h2 M0,-1 v2"/>
|
||||||
|
<path id="gpPt1" stroke-width="0.167" stroke="currentColor" d="M-1,-1 L1,1 M1,-1 L-1,1"/>
|
||||||
|
<path id="gpPt2" stroke-width="0.167" stroke="currentColor" d="M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1"/>
|
||||||
|
<rect id="gpPt3" stroke-width="0.167" stroke="currentColor" x="-1" y="-1" width="2" height="2"/>
|
||||||
|
<rect id="gpPt4" stroke-width="0.167" stroke="currentColor" fill="currentColor" x="-1" y="-1" width="2" height="2"/>
|
||||||
|
<circle id="gpPt5" stroke-width="0.167" stroke="currentColor" cx="0" cy="0" r="1"/>
|
||||||
|
<use xlink:href="#gpPt5" id="gpPt6" fill="currentColor" stroke="none"/>
|
||||||
|
<path id="gpPt7" stroke-width="0.167" stroke="currentColor" d="M0,-1.33 L-1.33,0.67 L1.33,0.67 z"/>
|
||||||
|
<use xlink:href="#gpPt7" id="gpPt8" fill="currentColor" stroke="none"/>
|
||||||
|
<use xlink:href="#gpPt7" id="gpPt9" stroke="currentColor" transform="rotate(180)"/>
|
||||||
|
<use xlink:href="#gpPt9" id="gpPt10" fill="currentColor" stroke="none"/>
|
||||||
|
<use xlink:href="#gpPt3" id="gpPt11" stroke="currentColor" transform="rotate(45)"/>
|
||||||
|
<use xlink:href="#gpPt11" id="gpPt12" fill="currentColor" stroke="none"/>
|
||||||
|
</defs>
|
||||||
|
<g style="fill:none; color:white; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,352.6 L466.3,352.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,352.6 M466.3,352.6 h0.01"/> <g transform="translate(61.6,358.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–8</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,330.6 L466.3,330.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,330.6 M466.3,330.6 h0.01"/> <g transform="translate(61.6,336.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–7</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,308.6 L466.3,308.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,308.6 M466.3,308.6 h0.01"/> <g transform="translate(61.6,314.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–6</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,286.6 L466.3,286.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,286.6 M466.3,286.6 h0.01"/> <g transform="translate(61.6,292.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–5</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,264.6 L466.3,264.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,264.6 M466.3,264.6 h0.01"/> <g transform="translate(61.6,270.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–4</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,242.6 L466.3,242.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,242.6 M466.3,242.6 h0.01"/> <g transform="translate(61.6,248.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–3</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,220.6 L466.3,220.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,220.6 M466.3,220.6 h0.01"/> <g transform="translate(61.6,226.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–2</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,198.6 L466.3,198.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,198.6 M466.3,198.6 h0.01"/> <g transform="translate(61.6,204.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>–1</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,176.5 L466.3,176.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,176.5 M466.3,176.5 h0.01"/> <g transform="translate(61.6,182.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>0</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,154.5 L466.3,154.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,154.5 M466.3,154.5 h0.01"/> <g transform="translate(61.6,160.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>1</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,132.5 L466.3,132.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,132.5 M466.3,132.5 h0.01"/> <g transform="translate(61.6,138.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>2</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,110.5 L466.3,110.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,110.5 M466.3,110.5 h0.01"/> <g transform="translate(61.6,116.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>3</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,88.5 L466.3,88.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,88.5 M466.3,88.5 h0.01"/> <g transform="translate(61.6,94.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>4</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,66.5 L466.3,66.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,66.5 M466.3,66.5 h0.01"/> <g transform="translate(61.6,72.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>5</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,44.5 L466.3,44.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,44.5 M466.3,44.5 h0.01"/> <g transform="translate(61.6,50.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>6</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M72.8,22.5 L466.3,22.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M72.8,22.5 M466.3,22.5 h0.01"/> <g transform="translate(61.6,28.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>7</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="gnuplot_plot_1"><title>gnuplot_plot_1</title>
|
||||||
|
<g style="fill:none; color:white; stroke:black; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="red" d="M72.8,261.6 L76.8,245.7 L80.7,227.5 L84.7,207.5 L88.7,186.2 L92.7,164.3 L96.6,142.3 L100.6,121.0 L104.6,100.8 L108.6,82.3 L112.5,66.2 L116.5,52.7 L120.5,42.4 L124.5,35.3 L128.4,31.6 L132.4,31.4 L136.4,34.5 L140.4,40.7 L144.3,49.8 L148.3,61.3 L152.3,74.7 L156.3,89.4 L160.2,105.0 L164.2,120.8 L168.2,136.2 L172.2,150.6 L176.1,163.5 L180.1,174.5 L184.1,183.1 L188.1,189.1 L192.0,192.4 L196.0,192.8 L200.0,190.4 L204.0,185.4 L207.9,178.0 L211.9,168.6 L215.9,157.6 L219.9,145.6 L223.8,133.1 L227.8,120.6 L231.8,108.9 L235.8,98.3 L239.7,89.6 L243.7,83.1 L247.7,79.2 L251.7,78.3 L255.6,80.5 L259.6,86.0 L263.6,94.7 L267.6,106.5 L271.5,121.1 L275.5,138.2 L279.5,157.4 L283.5,178.1 L287.4,199.8 L291.4,221.8 L295.4,243.6 L299.4,264.4 L303.3,283.8 L307.3,301.1 L311.3,316.0 L315.3,328.0 L319.2,336.7 L323.2,342.1 L327.2,344.0 L331.2,342.6 L335.1,337.9 L339.1,330.2 L343.1,319.8 L347.1,307.3 L351.0,293.2 L355.0,277.9 L359.0,262.2 L363.0,246.5 L366.9,231.6 L370.9,217.9 L374.9,205.9 L378.9,196.0 L382.8,188.6 L386.8,184.0 L390.8,182.1 L394.8,183.2 L398.7,186.9 L402.7,193.1 L406.7,201.6 L410.7,211.8 L414.6,223.4 L418.6,235.7 L422.6,248.3 L426.6,260.5 L430.5,271.7 L434.5,281.4 L438.5,289.1 L442.5,294.3 L446.4,296.7 L450.4,296.1 L454.4,292.2 L458.4,285.1 L462.3,274.9 L466.3,261.6 h0.01"/></g>
|
||||||
|
</g>
|
||||||
|
<g id="gnuplot_plot_2"><title>gnuplot_plot_2</title>
|
||||||
|
<g style="fill:none; color:white; stroke:red; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:green; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(127, 127, 127)" d="M72.8,176.5 L72.8,264.6 M90.7,176.5 M108.6,176.5 L108.6,88.5 M126.5,176.5 L126.5,22.5 M144.3,176.5 L144.3,44.5 M162.2,176.5 L162.2,110.5 M180.1,176.5 M198.0,176.5 L198.0,198.6 M215.9,176.5 L215.9,154.5 M233.8,176.5 L233.8,110.5 M251.7,176.5 L251.7,88.5 M269.6,176.5 L269.6,110.5 M287.4,176.5 L287.4,198.6 M305.3,176.5 L305.3,286.6 M323.2,176.5 L323.2,352.6 M341.1,176.5 L341.1,330.6 M359.0,176.5 L359.0,264.6 M376.9,176.5 L376.9,198.6 M394.8,176.5 M412.6,176.5 L412.6,220.6 M430.5,176.5 L430.5,264.6 M448.4,176.5 L448.4,286.6 M466.3,176.5 L466.3,264.6 h0.01"/></g>
|
||||||
|
</g>
|
||||||
|
<g id="gnuplot_plot_3"><title>gnuplot_plot_3</title>
|
||||||
|
<g style="fill:none; color:white; stroke:rgb(127, 127, 127); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:blue; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(72.8,264.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(90.7,176.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(108.6,88.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(126.5,22.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(144.3,44.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(162.2,110.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(180.1,176.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(198.0,198.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(215.9,154.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(233.8,110.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(251.7,88.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(269.6,110.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(287.4,198.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(305.3,286.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(323.2,352.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(341.1,330.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(359.0,264.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(376.9,198.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(394.8,176.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(412.6,220.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(430.5,264.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(448.4,286.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(466.3,264.6) scale(4.80)" color="blue"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 19 KiB |
BIN
audiocodecs/media/output.webm
Normal file
1302
audiocodecs/media/presentationsourceqr.svg
Normal file
After Width: | Height: | Size: 77 KiB |
1312
audiocodecs/media/presentationsourceqr2.svg
Normal file
After Width: | Height: | Size: 58 KiB |
5
audiocodecs/media/samples/ATTRIBUTION.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
music - "The Show Must Be Go" by Kevin MacLeod, CC-BY 3.0
|
||||||
|
|
||||||
|
voice - LibriVox recording of "The Art of War" by Sun Tzu, Read by Moira Fogarty, Public Domain
|
||||||
|
|
||||||
|
Test\_mp3\_opus\_16kbps.wav - Audio sample by Shishirdasika, licensed under CC-BY-SA 4.0
|
BIN
audiocodecs/media/samples/Test_mp3_opus_16kbps.flac
Normal file
BIN
audiocodecs/media/samples/music.c2
Normal file
BIN
audiocodecs/media/samples/music.flac
Normal file
BIN
audiocodecs/media/samples/music.mp3
Normal file
BIN
audiocodecs/media/samples/music.ogg
Normal file
BIN
audiocodecs/media/samples/music.opus
Normal file
BIN
audiocodecs/media/samples/music.spx
Normal file
BIN
audiocodecs/media/samples/music.wav
Normal file
BIN
audiocodecs/media/samples/musicaac.m4a
Normal file
BIN
audiocodecs/media/samples/musicalac.m4a
Normal file
BIN
audiocodecs/media/samples/musicc2.flac
Normal file
BIN
audiocodecs/media/samples/musiclb.opus
Normal file
BIN
audiocodecs/media/samples/musiclb.spx
Normal file
BIN
audiocodecs/media/samples/musiculb.opus
Normal file
BIN
audiocodecs/media/samples/voice.c2
Normal file
BIN
audiocodecs/media/samples/voice.flac
Normal file
BIN
audiocodecs/media/samples/voice.mp3
Normal file
BIN
audiocodecs/media/samples/voice.ogg
Normal file
BIN
audiocodecs/media/samples/voice.opus
Normal file
BIN
audiocodecs/media/samples/voice.spx
Normal file
BIN
audiocodecs/media/samples/voice.wav
Normal file
BIN
audiocodecs/media/samples/voiceaac.m4a
Normal file
BIN
audiocodecs/media/samples/voicealac.m4a
Normal file
BIN
audiocodecs/media/samples/voicec2.flac
Normal file
BIN
audiocodecs/media/samples/voicec2lb.flac
Normal file
BIN
audiocodecs/media/samples/voicelb.opus
Normal file
BIN
audiocodecs/media/samples/voicelb.spx
Normal file
BIN
audiocodecs/media/samples/voicemb.opus
Normal file
BIN
audiocodecs/media/samples/voiceulb.opus
Normal file
255
audiocodecs/media/sinewave.svg
Normal file
|
@ -0,0 +1,255 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="500" height="375" viewBox="0 0 500 375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
|
||||||
|
<title>Gnuplot</title>
|
||||||
|
<desc>Produced by GNUPLOT 4.6 patchlevel 3 </desc>
|
||||||
|
|
||||||
|
<g id="gnuplot_canvas">
|
||||||
|
|
||||||
|
<rect x="0" y="0" width="500" height="375" fill="none"/>
|
||||||
|
<defs>
|
||||||
|
|
||||||
|
<circle id="gpDot" r="0.5" stroke-width="0.5"/>
|
||||||
|
<path id="gpPt0" stroke-width="0.167" stroke="currentColor" d="M-1,0 h2 M0,-1 v2"/>
|
||||||
|
<path id="gpPt1" stroke-width="0.167" stroke="currentColor" d="M-1,-1 L1,1 M1,-1 L-1,1"/>
|
||||||
|
<path id="gpPt2" stroke-width="0.167" stroke="currentColor" d="M-1,0 L1,0 M0,-1 L0,1 M-1,-1 L1,1 M-1,1 L1,-1"/>
|
||||||
|
<rect id="gpPt3" stroke-width="0.167" stroke="currentColor" x="-1" y="-1" width="2" height="2"/>
|
||||||
|
<rect id="gpPt4" stroke-width="0.167" stroke="currentColor" fill="currentColor" x="-1" y="-1" width="2" height="2"/>
|
||||||
|
<circle id="gpPt5" stroke-width="0.167" stroke="currentColor" cx="0" cy="0" r="1"/>
|
||||||
|
<use xlink:href="#gpPt5" id="gpPt6" fill="currentColor" stroke="none"/>
|
||||||
|
<path id="gpPt7" stroke-width="0.167" stroke="currentColor" d="M0,-1.33 L-1.33,0.67 L1.33,0.67 z"/>
|
||||||
|
<use xlink:href="#gpPt7" id="gpPt8" fill="currentColor" stroke="none"/>
|
||||||
|
<use xlink:href="#gpPt7" id="gpPt9" stroke="currentColor" transform="rotate(180)"/>
|
||||||
|
<use xlink:href="#gpPt9" id="gpPt10" fill="currentColor" stroke="none"/>
|
||||||
|
<use xlink:href="#gpPt3" id="gpPt11" stroke="currentColor" transform="rotate(45)"/>
|
||||||
|
<use xlink:href="#gpPt11" id="gpPt12" fill="currentColor" stroke="none"/>
|
||||||
|
</defs>
|
||||||
|
<g style="fill:none; color:white; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,352.6 L466.3,352.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,352.6 M466.3,352.6 h0.01"/> <g transform="translate(39.2,358.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>0</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,330.6 L466.3,330.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,330.6 M466.3,330.6 h0.01"/> <g transform="translate(39.2,336.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>1</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,308.6 L466.3,308.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,308.6 M466.3,308.6 h0.01"/> <g transform="translate(39.2,314.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>2</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,286.6 L466.3,286.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,286.6 M466.3,286.6 h0.01"/> <g transform="translate(39.2,292.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>3</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,264.6 L466.3,264.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,264.6 M466.3,264.6 h0.01"/> <g transform="translate(39.2,270.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>4</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,242.6 L466.3,242.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,242.6 M466.3,242.6 h0.01"/> <g transform="translate(39.2,248.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>5</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,220.6 L466.3,220.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,220.6 M466.3,220.6 h0.01"/> <g transform="translate(39.2,226.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>6</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,198.6 L466.3,198.6 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,198.6 M466.3,198.6 h0.01"/> <g transform="translate(39.2,204.6)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>7</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,176.5 L466.3,176.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,176.5 M466.3,176.5 h0.01"/> <g transform="translate(39.2,182.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>8</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,154.5 L466.3,154.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,154.5 M466.3,154.5 h0.01"/> <g transform="translate(39.2,160.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>9</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,132.5 L466.3,132.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,132.5 M466.3,132.5 h0.01"/> <g transform="translate(39.2,138.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>10</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,110.5 L466.3,110.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,110.5 M466.3,110.5 h0.01"/> <g transform="translate(39.2,116.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>11</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,88.5 L466.3,88.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,88.5 M466.3,88.5 h0.01"/> <g transform="translate(39.2,94.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>12</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,66.5 L466.3,66.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,66.5 M466.3,66.5 h0.01"/> <g transform="translate(39.2,72.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>13</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,44.5 L466.3,44.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,44.5 M466.3,44.5 h0.01"/> <g transform="translate(39.2,50.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>14</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:black; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(192, 192, 192)" class="gridline" d="M50.4,22.5 L466.3,22.5 h0.01"/></g>
|
||||||
|
<g style="fill:none; color:red; stroke:rgb(192, 192, 192); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="black" d="M50.4,22.5 M466.3,22.5 h0.01"/> <g transform="translate(39.2,28.5)" style="stroke:none; fill:black; font-family:Arial; font-size:16.00pt; text-anchor:end">
|
||||||
|
<text><tspan>15</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g id="gnuplot_plot_1"><title>gnuplot_plot_1</title>
|
||||||
|
<g style="fill:none; color:white; stroke:black; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:red; stroke:currentColor; stroke-width:4.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="red" d="M50.4,187.5 L52.5,182.3 L54.6,177.1 L56.7,171.9 L58.8,166.8 L60.8,161.6 L62.9,156.5 L65.0,151.4 L67.1,146.3 L69.2,141.3 L71.3,136.3 L73.4,131.4 L75.5,126.5 L77.6,121.7 L79.7,116.9 L81.7,112.3 L83.8,107.7 L85.9,103.2 L88.0,98.7 L90.1,94.4 L92.2,90.1 L94.3,86.0 L96.4,81.9 L98.5,78.0 L100.6,74.1 L102.6,70.4 L104.7,66.8 L106.8,63.3 L108.9,59.9 L111.0,56.7 L113.1,53.6 L115.2,50.6 L117.3,47.7 L119.4,45.0 L121.5,42.5 L123.5,40.1 L125.6,37.8 L127.7,35.7 L129.8,33.7 L131.9,31.9 L134.0,30.3 L136.1,28.8 L138.2,27.4 L140.3,26.2 L142.4,25.2 L144.4,24.4 L146.5,23.7 L148.6,23.1 L150.7,22.8 L152.8,22.5 L154.9,22.5 L157.0,22.6 L159.1,22.9 L161.2,23.4 L163.3,24.0 L165.3,24.8 L167.4,25.7 L169.5,26.8 L171.6,28.1 L173.7,29.5 L175.8,31.1 L177.9,32.8 L180.0,34.7 L182.1,36.7 L184.2,38.9 L186.2,41.3 L188.3,43.8 L190.4,46.4 L192.5,49.2 L194.6,52.1 L196.7,55.1 L198.8,58.3 L200.9,61.6 L203.0,65.0 L205.1,68.6 L207.1,72.2 L209.2,76.0 L211.3,79.9 L213.4,83.9 L215.5,88.0 L217.6,92.2 L219.7,96.5 L221.8,100.9 L223.9,105.4 L226.0,110.0 L228.0,114.6 L230.1,119.3 L232.2,124.1 L234.3,128.9 L236.4,133.8 L238.5,138.8 L240.6,143.8 L242.7,148.8 L244.8,153.9 L246.9,159.0 L248.9,164.2 L251.0,169.3 L253.1,174.5 L255.2,179.7 L257.3,184.9 L259.4,190.2 L261.5,195.4 L263.6,200.6 L265.7,205.8 L267.8,210.9 L269.8,216.1 L271.9,221.2 L274.0,226.3 L276.1,231.3 L278.2,236.3 L280.3,241.3 L282.4,246.2 L284.5,251.0 L286.6,255.8 L288.7,260.5 L290.7,265.1 L292.8,269.7 L294.9,274.2 L297.0,278.6 L299.1,282.9 L301.2,287.1 L303.3,291.2 L305.4,295.2 L307.5,299.1 L309.6,302.9 L311.6,306.5 L313.7,310.1 L315.8,313.5 L317.9,316.8 L320.0,320.0 L322.1,323.0 L324.2,325.9 L326.3,328.7 L328.4,331.3 L330.5,333.8 L332.5,336.2 L334.6,338.4 L336.7,340.4 L338.8,342.3 L340.9,344.0 L343.0,345.6 L345.1,347.0 L347.2,348.3 L349.3,349.4 L351.4,350.3 L353.4,351.1 L355.5,351.7 L357.6,352.2 L359.7,352.5 L361.8,352.6 L363.9,352.6 L366.0,352.3 L368.1,352.0 L370.2,351.4 L372.3,350.7 L374.3,349.9 L376.4,348.9 L378.5,347.7 L380.6,346.3 L382.7,344.8 L384.8,343.2 L386.9,341.4 L389.0,339.4 L391.1,337.3 L393.2,335.0 L395.2,332.6 L397.3,330.1 L399.4,327.4 L401.5,324.5 L403.6,321.5 L405.7,318.4 L407.8,315.2 L409.9,311.8 L412.0,308.3 L414.1,304.7 L416.1,301.0 L418.2,297.1 L420.3,293.2 L422.4,289.1 L424.5,285.0 L426.6,280.7 L428.7,276.4 L430.8,271.9 L432.9,267.4 L435.0,262.8 L437.0,258.2 L439.1,253.4 L441.2,248.6 L443.3,243.7 L445.4,238.8 L447.5,233.8 L449.6,228.8 L451.7,223.7 L453.8,218.6 L455.9,213.5 L457.9,208.3 L460.0,203.2 L462.1,198.0 L464.2,192.8 L466.3,187.5 h0.01"/></g>
|
||||||
|
</g>
|
||||||
|
<g id="gnuplot_plot_2"><title>gnuplot_plot_2</title>
|
||||||
|
<g style="fill:none; color:white; stroke:red; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:green; stroke:currentColor; stroke-width:1.50; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<path stroke="rgb(127, 127, 127)" d="M50.4,176.5 M67.0,176.5 L67.0,154.5 M83.7,176.5 L83.7,110.5 M100.3,176.5 L100.3,66.5 M116.9,176.5 L116.9,44.5 M133.6,176.5 L133.6,22.5 M150.2,176.5 L150.2,22.5 M166.9,176.5 L166.9,22.5 M183.5,176.5 L183.5,44.5 M200.1,176.5 L200.1,66.5 M216.8,176.5 L216.8,88.5 M233.4,176.5 L233.4,132.5 M250.0,176.5 M266.7,176.5 L266.7,198.6 M283.3,176.5 L283.3,242.6 M299.9,176.5 L299.9,286.6 M316.6,176.5 L316.6,308.6 M333.2,176.5 L333.2,330.6 M349.8,176.5 L349.8,352.6 M366.5,176.5 L366.5,352.6 M383.1,176.5 L383.1,352.6 M399.8,176.5 L399.8,330.6 M416.4,176.5 L416.4,308.6 M433.0,176.5 L433.0,264.6 M449.7,176.5 L449.7,220.6 M466.3,176.5 L466.3,198.6 h0.01"/></g>
|
||||||
|
</g>
|
||||||
|
<g id="gnuplot_plot_3"><title>gnuplot_plot_3</title>
|
||||||
|
<g style="fill:none; color:white; stroke:rgb(127, 127, 127); stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:blue; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(50.4,176.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(67.0,154.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(83.7,110.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(100.3,66.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(116.9,44.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(133.6,22.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(150.2,22.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(166.9,22.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(183.5,44.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(200.1,66.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(216.8,88.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(233.4,132.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(250.0,176.5) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(266.7,198.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(283.3,242.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(299.9,286.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(316.6,308.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(333.2,330.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(349.8,352.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(366.5,352.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(383.1,352.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(399.8,330.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(416.4,308.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(433.0,264.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(449.7,220.6) scale(4.80)" color="blue"/>
|
||||||
|
<use xlink:href="#gpPt6" transform="translate(466.3,198.6) scale(4.80)" color="blue"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g style="fill:none; color:black; stroke:currentColor; stroke-width:1.00; stroke-linecap:butt; stroke-linejoin:miter">
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 21 KiB |
7794
audiocodecs/media/voiceqrcode.svg
Normal file
After Width: | Height: | Size: 351 KiB |
28
audiocodecs/slides/00-title.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
[comment]: # (THEME = blood)
|
||||||
|
[comment]: # (CODE_THEME = base16/zenburn)
|
||||||
|
|
||||||
|
[comment]: # (controls: true)
|
||||||
|
[comment]: # (keyboard: true)
|
||||||
|
[comment]: # (markdown: { smartypants: true })
|
||||||
|
[comment]: # (hash: true)
|
||||||
|
[comment]: # (respondToHashChanges: true)
|
||||||
|
[comment]: # (slideNumber: 'c/t')
|
||||||
|
|
||||||
|
[comment]: # (Note for future me, add a system to concat Markdown files in the Makefile so that this shit is easier to parse)
|
||||||
|
[comment]: # (Probably a good starting structure [replace slidex with a better name, like 01-intro, 02-about, etc]:
|
||||||
|
.
|
||||||
|
├── media
|
||||||
|
│ ├── slide1
|
||||||
|
│ ├── slide2
|
||||||
|
│ ├── slide3
|
||||||
|
│ └── slide4
|
||||||
|
└── slides
|
||||||
|
├── slide1.md
|
||||||
|
├── slide2.md
|
||||||
|
└── slide3.md
|
||||||
|
)
|
||||||
|
|
||||||
|
# Audio Codecs
|
||||||
|
By Logan G
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
19
audiocodecs/slides/01-intro.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<video width="960" height="540" controls>
|
||||||
|
<source src="media/output.webm" type="video/webm">
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
||||||
|
|
||||||
|
<div style="font-size: 0.66em">
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ffmpeg \
|
||||||
|
-i $INPUT \
|
||||||
|
-filter_complex "[0:a]pan=mono|c0=0.5*FL+0.5*FR,asplit=2[aout][audiovis]; \
|
||||||
|
[audiovis]showwaves=s=1920x1080:mode=p2p:colors=white,format=yuv420p[v]" \
|
||||||
|
-map "[v]" -map "[aout]" -c:v libx264 -crf 36 -c:a libaac -b:a 64k -ac 1
|
||||||
|
output.mp4
|
||||||
|
```
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
39
audiocodecs/slides/02-1-pcm.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
### Digital Audio Representation
|
||||||
|
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
![Picture of PCM encoded sine wave](media/sinewave.svg) <!-- .element: style="image-rendering: crisp-edges;background-color:white;" -->
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
Image by Aquegg
|
||||||
|
|
||||||
|
Licensed under [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
![Picture of PCM encoded waveform](media/linear-PCM.svg) <!-- .element: style="image-rendering: crisp-edges;background-color:white;" -->
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
Image by Aquegg
|
||||||
|
|
||||||
|
Licensed under [CC-BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Audio is typically represented in a digital form using Pulse Code Modulation, or PCM.
|
||||||
|
|
||||||
|
On the left there is an example of a sine wave. The red line represents the original analog signal, with the blue dots representing the data points
|
||||||
|
in the PCM encoded version. A similar idea is happening on the right, but with a more complex waveform.
|
||||||
|
|
||||||
|
During the conversion process from analog to digital, better know as "quantization", the amplitude of the analog signal is converted into digital data points
|
||||||
|
at regular intervals. In this example, a simple rounding algorithm is used. Do however note that there are more complicated algorithms,
|
||||||
|
but you could spend many hours just talking about those alone, and the specifics aren't particularly important here.
|
||||||
|
|
||||||
|
[comment]: # (|||) <!--------------------------------------------------------->
|
22
audiocodecs/slides/02-2-terms.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
### Important Terminology
|
||||||
|
|
||||||
|
<div style="font-size: 0.8em;">
|
||||||
|
|
||||||
|
- Bit/Sampling Depth
|
||||||
|
- Number of bits that represent each data point
|
||||||
|
- Typically 16/24/32 bits
|
||||||
|
- Sampling Rate
|
||||||
|
- Number of data points per second
|
||||||
|
- Typically 44.1/48kHz
|
||||||
|
- Bit Rate
|
||||||
|
- Number of bits per second of audio
|
||||||
|
- Varies wildly
|
||||||
|
- Audio Channels
|
||||||
|
- Number of audio streams contained
|
||||||
|
- Typically 2 (Stereo)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
13
audiocodecs/slides/03-1-commoncodecs.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
### Common Audio Codecs
|
||||||
|
|
||||||
|
- WAV
|
||||||
|
- FLAC
|
||||||
|
- ALAC
|
||||||
|
- WMA
|
||||||
|
- Dolby Digital
|
||||||
|
- MP3
|
||||||
|
- AAC
|
||||||
|
- Vorbis
|
||||||
|
- Opus
|
||||||
|
|
||||||
|
[comment]: # (|||) <!--------------------------------------------------------->
|
33
audiocodecs/slides/03-2-losslessvslossy.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
### "Lossless" vs "Lossy"
|
||||||
|
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Lossless
|
||||||
|
|
||||||
|
- Perfect representation of the digital input*
|
||||||
|
- Typically very large (>1Mbit/s)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Lossy
|
||||||
|
|
||||||
|
- Deliberately removes data to save space
|
||||||
|
- Typically very small (<128Kbit/s)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
There are two main types of audio codecs, "Lossless", and "Lossy".
|
||||||
|
|
||||||
|
Lossless codecs perfectly duplicate whatever digital audio was put into them. Now, it is important
|
||||||
|
to note that since digital audio isn't a perfect representation of an audio signal, that does not mean that
|
||||||
|
it can perfectly replicate the original.
|
||||||
|
|
||||||
|
Compared to lossy codecs, which, deliberately destroy the signal in order to achieve a smaller file size.
|
||||||
|
This destruction isn't random through, lossy codecs specifically make changes to the original waveform that
|
||||||
|
are least likely to be perceived by a human listener.
|
||||||
|
|
||||||
|
[comment]: # (|||) <!--------------------------------------------------------->
|
27
audiocodecs/slides/03-3-commoncodecssorted.md
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
### Common Audio Codecs
|
||||||
|
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
###### Lossless
|
||||||
|
- WAV*
|
||||||
|
- FLAC
|
||||||
|
- ALAC
|
||||||
|
- WMA*
|
||||||
|
- Dolby Digital TrueHD
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
###### Lossy
|
||||||
|
- MP3
|
||||||
|
- AAC
|
||||||
|
- WMA*
|
||||||
|
- Dolby Digital
|
||||||
|
- Vorbis
|
||||||
|
- Opus
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
55
audiocodecs/slides/04-1-wav.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
### WAV
|
||||||
|
|
||||||
|
- Published in 1991
|
||||||
|
- Formerly patented
|
||||||
|
- Not really an audio codec
|
||||||
|
- Typically used as a container for raw audio
|
||||||
|
- Extremely easy to play
|
||||||
|
- Supported natively across many OSs
|
||||||
|
- Supports virtually any analog signal(s)
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/music.wav">WAV Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.wav">WAV Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
The first codec I'm going to talk about this WAV. Now, WAV isn't actually an audio codec.
|
||||||
|
WAV is actually just an audio container for raw audio, which I'll talk more about later.
|
||||||
|
|
||||||
|
WAV was originally developed by IBM and Microsoft in 1991. It used to be a patented audio format
|
||||||
|
but the patent has since long expired.
|
||||||
|
|
||||||
|
Fun Fact: WAV is not just restricted to raw audio. It can represent many analog signals, up to 2.1GHz.
|
||||||
|
|
||||||
|
WAV is also extremely easy to parse since it's basically just raw audio.
|
||||||
|
|
||||||
|
[comment]: # (|||)
|
66
audiocodecs/slides/04-2-wavformat.md
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em;">
|
||||||
|
|
||||||
|
| WAV/RIFF Header Format |
|
||||||
|
| :------: |
|
||||||
|
| FileTypeBlocID<br>4 bytes<br><br><br> |
|
||||||
|
| FileSize<br>4 bytes<br><br><br> |
|
||||||
|
| FileFormatID<br>4 bytes<br><br><br> |
|
||||||
|
| FormatBlocID<br>4 bytes<br><br><br> |
|
||||||
|
| BlocSize<br>4 bytes<br><br><br> |
|
||||||
|
| AudioFormat<br>2 bytes |
|
||||||
|
| NbrChannels<br>2 bytes |
|
||||||
|
| Frequence<br>4 bytes<br><br><br> |
|
||||||
|
| BytePerSec<br>4 bytes<br><br><br> |
|
||||||
|
| BytePerBloc<br>2 bytes |
|
||||||
|
| BitsPerSample<br>2 bytes |
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em;">
|
||||||
|
|
||||||
|
| WAV Data Chunk Format |
|
||||||
|
| :------: |
|
||||||
|
| DataBlocID<br>4 bytes<br><br><br> |
|
||||||
|
| DataSize<br>4 bytes<br><br><br> |
|
||||||
|
| SampledData<br>2-3 bytes typically<br><br><br> |
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
So easy in fact that I can just show you the entire format.
|
||||||
|
|
||||||
|
```
|
||||||
|
[Master RIFF chunk]
|
||||||
|
FileTypeBlocID (4 bytes) : Identifier « RIFF » (0x52, 0x49, 0x46, 0x46)
|
||||||
|
FileSize (4 bytes) : Overall file size minus 8 bytes
|
||||||
|
FileFormatID (4 bytes) : Format = « WAVE » (0x57, 0x41, 0x56, 0x45)
|
||||||
|
|
||||||
|
[Chunk describing the data format]
|
||||||
|
FormatBlocID (4 bytes) : Identifier « fmt␣ » (0x66, 0x6D, 0x74, 0x20)
|
||||||
|
BlocSize (4 bytes) : Chunk size minus 8 bytes, which is 16 bytes here (0x10)
|
||||||
|
AudioFormat (2 bytes) : Audio format (1: PCM integer, 3: IEEE 754 float)
|
||||||
|
NbrChannels (2 bytes) : Number of channels
|
||||||
|
Frequence (4 bytes) : Sample rate (in hertz)
|
||||||
|
BytePerSec (4 bytes) : Number of bytes to read per second (Frequence * BytePerBloc).
|
||||||
|
BytePerBloc (2 bytes) : Number of bytes per block (NbrChannels * BitsPerSample / 8).
|
||||||
|
BitsPerSample (2 bytes) : Number of bits per sample
|
||||||
|
|
||||||
|
[Chunk containing the sampled data]
|
||||||
|
DataBlocID (4 bytes) : Identifier « data » (0x64, 0x61, 0x74, 0x61)
|
||||||
|
DataSize (4 bytes) : SampledData size
|
||||||
|
SampledData
|
||||||
|
```
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
||||||
|
|
69
audiocodecs/slides/05-alac.md
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
### ALAC
|
||||||
|
|
||||||
|
<sup><sup>**A**pple **L**ossless **A**udio **C**odec</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 2004
|
||||||
|
- Fully Open Source, Patent and Royalty Free
|
||||||
|
- Decent software support
|
||||||
|
- Supports:
|
||||||
|
- 32-bit sampling depth
|
||||||
|
- 384kHz sampling rate
|
||||||
|
- 8 audio channels
|
||||||
|
- Typically 50% the size of equivalent PCM audio
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/musicalac.m4a">ALAC Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicealac.m4a">ALAC Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Distinct from Alcohol Advisory Council of New Zealand
|
||||||
|
Apache 2 license
|
||||||
|
|
||||||
|
Now, let's talk about actual audio codecs.
|
||||||
|
|
||||||
|
ALAC was first developed in 2004 by Apple.
|
||||||
|
Although originally proprietary, Apple eventually opened up the standard
|
||||||
|
and reference implementation under the Apache 2 license.
|
||||||
|
|
||||||
|
Software support for ALAC is decent. Most modern platforms can play it, although Firefox is
|
||||||
|
not one of them.
|
||||||
|
|
||||||
|
It also has decent capabilities, such as a 32-bit sampling depth, 384kHz sampling rate and up to 8 full bandwidth audio channels.
|
||||||
|
|
||||||
|
One thing that many lossless codecs, like ALAC, do, is compress raw audio. Specialzied audio codecs
|
||||||
|
are more efficient at this job than say gzip, as they can achieve compression ratios of around 50% without
|
||||||
|
any degradation of the audio signal.
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
11
audiocodecs/slides/06-1-wma.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
### WMA
|
||||||
|
|
||||||
|
<sup><sup>**W**indows **M**edia **A**udio</sup></sup>
|
||||||
|
|
||||||
|
- Proprietary and Garbage
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Now, let's talk about WMA
|
||||||
|
It's shit.
|
||||||
|
|
||||||
|
[comment]: # (|||) <!--------------------------------------------------------->
|
33
audiocodecs/slides/06-2-wma.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
### WMA
|
||||||
|
|
||||||
|
<sup><sup>**W**indows **M**edia **A**udio</sup></sup>
|
||||||
|
|
||||||
|
- Developed in 1999 by Microsoft
|
||||||
|
- Very poor software support
|
||||||
|
- Patented with royalties
|
||||||
|
- Lossless and Lossy versions
|
||||||
|
- Supports:
|
||||||
|
- 24-bit sampling depth
|
||||||
|
- 96kHz sampling rate
|
||||||
|
- 8* audio channels
|
||||||
|
|
||||||
|
Note:
|
||||||
|
|
||||||
|
Okay there's a little more to say about it.
|
||||||
|
WMA was originally developed in 1999 by none other than Microsoft in
|
||||||
|
order to replace MP3 and WAV. Software support is extremely poor, so poor in fact
|
||||||
|
that I could not even make audio samples for this presentation, let alone play them.
|
||||||
|
|
||||||
|
This may surprise you, but WMA is both patented and has royalties for its use.
|
||||||
|
|
||||||
|
WMA does come in both lossy and lossless versions, but they both are kinda garbage.
|
||||||
|
|
||||||
|
It does however support up to 24-bit sampling depth, 96kHz sampling rate and up to 8 channels,
|
||||||
|
as long as you're using the lossy version.
|
||||||
|
|
||||||
|
Designed to replace MP3 and WAV
|
||||||
|
WMA Lossless only supports 6 channels
|
||||||
|
Microsoft lied about the audio quality
|
||||||
|
FFmpeg only supportes WMAv1 lossy and WMAv2 lossy
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
55
audiocodecs/slides/07-ac3.md
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
### Dolby Digital
|
||||||
|
|
||||||
|
<sup><sup>Doesn't stand for anything</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.6em;">
|
||||||
|
|
||||||
|
- Patented with royalties
|
||||||
|
- Some software support
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="font-size: 0.6em; text-align: center; display: grid; grid-template-columns: 1fr 1fr 1fr;">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Dolby AC-3
|
||||||
|
- Lossy
|
||||||
|
- 16-bit sampling depth
|
||||||
|
- Up to 48kHz sampling rate
|
||||||
|
- Up to 5+1 audio channels
|
||||||
|
- Up to 640 kbit/s*
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Dolby Digital Plus
|
||||||
|
- Lossy
|
||||||
|
- 16-bit sampling depth
|
||||||
|
- Up to 48kHz sampling rate
|
||||||
|
- Up to 15+1 audio channels
|
||||||
|
- Up to 6144 kbit/s
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Dolby TrueHD
|
||||||
|
- Lossless
|
||||||
|
- 24-bit sampling depth
|
||||||
|
- Up to 192kHz sampling rate
|
||||||
|
- Up to 7+1 audio channels
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Now, I'm gonna briefly talk about Dolby Digital. I only mentioned this one and not
|
||||||
|
its competitor, DTS, because you can actually use this one.
|
||||||
|
|
||||||
|
It's a proprietary format developed by Dolby, although it does have some software support.
|
||||||
|
For instance, FFmpeg can both encode and decode AC-3 audio.
|
||||||
|
|
||||||
|
Commonly seen on BluRays
|
||||||
|
Mention DTS
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
66
audiocodecs/slides/08-flac.md
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
### FLAC
|
||||||
|
|
||||||
|
<sup><sup>**F**ree **L**ossless **A**udio **C**odec</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 2001 by Josh Coalson, later merged into Xiph.Org
|
||||||
|
- Fully Open Source, Patent and Royalty Free
|
||||||
|
- Very good software support
|
||||||
|
- Supports:
|
||||||
|
- 32-bit sampling depth
|
||||||
|
- 192kHz sampling rate
|
||||||
|
- 8 audio channels
|
||||||
|
- Typically slightly better than ALAC
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/music.flac">FLAC Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.flac">FLAC Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Now, for the holy grail of lossless audio codecs, FLAC.
|
||||||
|
|
||||||
|
FLAC was originally made in 2001 by Josh Coalson, but was later adopted by the Xiph.Org
|
||||||
|
foundation, who you will hear about several times throughout this presentation.
|
||||||
|
|
||||||
|
It started as a fully open standard with no royalties, and is the most popular lossless codec
|
||||||
|
for music.
|
||||||
|
|
||||||
|
Many things are able to play it, even some lower end music players have FLAC support.
|
||||||
|
|
||||||
|
Similar capabilities to ALAC as well.
|
||||||
|
|
||||||
|
Made by Xiph Foundation
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
26
audiocodecs/slides/09-lossy.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
### Lossy Codecs Comparison
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em">
|
||||||
|
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
![Picture of various lossy audio codecs and their dynamic range at certain bitrates](media/Opus_quality_comparison_colorblind_compatible.svg) <!-- .element: style="width: 80%;image-rendering: crisp-edges;background-color:white;" -->
|
||||||
|
|
||||||
|
Image by Jean-Marc Valin
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
![Chart of various audio codecs showcasing audio delay, processing power and bitrate](media/Opus_bitrate+latency_comparison.svg) <!-- .element: style="width: 80%;image-rendering: crisp-edges;background-color:white;" -->
|
||||||
|
|
||||||
|
Image by Jean-Marc Valin and Flugaal
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
||||||
|
|
56
audiocodecs/slides/10-mp3.md
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
### MP3
|
||||||
|
|
||||||
|
<sup><sup>**MP**EG-1 Audio Layer **3**</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 1992
|
||||||
|
- Formerly patented with royalties
|
||||||
|
- Extremely good software support
|
||||||
|
- Supports:
|
||||||
|
- 16-bit sampling depth?
|
||||||
|
- 48kHz sampling rate
|
||||||
|
- 2 audio channels
|
||||||
|
- 320 kbit/s bitrate
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/music.mp3">MP3 Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.mp3">MP3 Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Runs on toaster
|
||||||
|
Prominent in less than legitimate music obtaining sources
|
||||||
|
There is also MPEG-2 and MPEG-3 but they are for low bitrate and kinda suck
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
57
audiocodecs/slides/11-aac.md
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
### AAC
|
||||||
|
|
||||||
|
<sup><sup>**A**dvanced **A**udio **C**odec</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 1998
|
||||||
|
- Open standard with royalties
|
||||||
|
- Also sometimes called "MP4 Audio"
|
||||||
|
- Very good software support
|
||||||
|
- Supports:
|
||||||
|
- 24-bit sampling depth
|
||||||
|
- 96kHz sampling rate
|
||||||
|
- 48* audio channels
|
||||||
|
- 256 kbit/s/channel bitrate
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/musicaac.m4a">AAC Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voiceaac.m4a">AAC Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
48 channels have up to 96kHz sampling rate, plus 16 channels with 120Hz sampling rate, plus 16 "dialog" channels, plus 16 digital data channels
|
||||||
|
Used in bluray movies
|
||||||
|
Fairly common bluetooth audio format
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
61
audiocodecs/slides/12-vorbis.md
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
### Vorbis
|
||||||
|
|
||||||
|
<sup><sup>It doesn't stand for anything :(</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 2000 by Xiph.Org Foundation
|
||||||
|
- Fully Open Standard and Royalty Free
|
||||||
|
- Extremely good software support
|
||||||
|
- Supports:
|
||||||
|
- Floating point samples
|
||||||
|
- 655.36kHz sampling rate
|
||||||
|
- 255 audio channels
|
||||||
|
- Superseded by Opus
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/music.ogg">Vorbis Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.ogg">Vorbis Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Encodes with quality presets, not constant/variable/target bitrates
|
||||||
|
Floating point samples makes Vorbis very flexible, it's 32-bit floats though
|
||||||
|
Fairly popular audiobook format
|
||||||
|
Commonly paired with Therora video format
|
||||||
|
Created because of a licensing dispute with MP3
|
||||||
|
FSF approved
|
||||||
|
Standard is public domain
|
||||||
|
Apple are weird and don't support it
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
58
audiocodecs/slides/13-opus.md
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
### Opus
|
||||||
|
|
||||||
|
<sup><sup>It doesn't stand for anything either >:(</sup></sup>
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 2012 by Xiph.Org
|
||||||
|
- Fully Open Standard and Royalty Free
|
||||||
|
- Very good software support
|
||||||
|
- Low latency, music or speech optimized audio codec
|
||||||
|
- Supports:
|
||||||
|
- 16-bit sampling depth only
|
||||||
|
- 48kHz sampling rate
|
||||||
|
- 255 audio channels
|
||||||
|
- 256 kbit/s/channel bitrate
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/music.opus">Opus Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.opus">Opus Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Commonly used for low latency voice applications (Discord, Skype (new), Teams, Source Engine 1&2, Zoom, basically anything WebRTC)
|
||||||
|
Also commonly used for music playback (YouTube, Spotify)
|
||||||
|
Typical latency is 27ms for default frame size
|
||||||
|
2-way Bluetooth audio codec
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
14
audiocodecs/slides/14-weirdcodecs.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
### Weird Audio Codecs
|
||||||
|
|
||||||
|
- Codec2
|
||||||
|
- Lyra
|
||||||
|
- Speex
|
||||||
|
- Full Rate
|
||||||
|
- G.7xx
|
||||||
|
- SILK
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Full Rate and G.7xx is for telephony
|
||||||
|
SILK is Skype
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
51
audiocodecs/slides/15-speex.md
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
### Speex
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 2003 by Xiph.Org
|
||||||
|
- Speech optimized, low latency audio codec
|
||||||
|
- Fully Open Standard and Royalty Free
|
||||||
|
- Okay software support
|
||||||
|
- Supports:
|
||||||
|
- 16-bit sampling depth
|
||||||
|
- 32kHz sampling rate
|
||||||
|
- 2 audio channels
|
||||||
|
- 44 kbit/s bitrate
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/music.spx">Speex Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.spx">Speex Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
asd
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
53
audiocodecs/slides/16-1-c2.md
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
### Codec2
|
||||||
|
|
||||||
|
<!-- Samples encoded at 2400 bit/s -->
|
||||||
|
|
||||||
|
<div style="font-size: 0.55em;">
|
||||||
|
|
||||||
|
- Developed in 2010 by David Grant Rowe
|
||||||
|
- Speech optimized, ultra low bandwidth audio codec
|
||||||
|
- Fully Open Standard and Royalty Free
|
||||||
|
- Very poor software support
|
||||||
|
- Supports:
|
||||||
|
- 16-bit sampling depth only
|
||||||
|
- 8kHz sampling rate only
|
||||||
|
- 1 audio channel
|
||||||
|
- 3.2 kbit/s bitrate
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="text-align: center; display: grid; grid-template-columns: 1fr 1fr;">
|
||||||
|
<div> <!-- Left pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Music
|
||||||
|
|
||||||
|
<audio controls src="media/samples/musicc2.flac">Codec2 Music Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
"The Show Must Be Go" by Kevin MacLeod
|
||||||
|
|
||||||
|
Licensed under [CC-BY 3.0](https://creativecommons.org/licenses/by/3.0/deed.en)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div> <!-- Right pane -->
|
||||||
|
<!-- Title -->
|
||||||
|
|
||||||
|
##### Voice
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicec2.flac">Codec2 Voice Sample</audio>
|
||||||
|
|
||||||
|
<div style="font-size: 0.33em; line-height: 0.1em;">
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
|
||||||
|
Read by Moira Fogarty
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Officially supported 700 bit/s - 3200 bit/s, but a white paper exists for 450 bit/s
|
||||||
|
Developer worked on Speex
|
||||||
|
[comment]: # (|||) <!--------------------------------------------------------->
|
7
audiocodecs/slides/16-2-c2qr.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
![QR code containing a Codec2 encoded recording](media/voiceqrcode.svg) <!-- .element: style="width:50%; image-rendering: pixelated;" -->
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat $FILE | c2dec 700C - - | ffplay -f s16le -ar 8000 -
|
||||||
|
```
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
71
audiocodecs/slides/17-lbr.md
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
### Low Bitrate Comparison
|
||||||
|
|
||||||
|
Original:
|
||||||
|
|
||||||
|
<div style="font-size: 0.3em">
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.flac">FLAC Voice Sample</audio>
|
||||||
|
|
||||||
|
LibriVox recording of "The Art of War" by Sun Tzu
|
||||||
|
<span style="padding-right: 5em"></span>
|
||||||
|
Read by Moira Fogarty
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---------
|
||||||
|
|
||||||
|
<div style="font-size: 0.5em; text-align: center; display: grid; grid-template-columns: 1fr 1fr 1fr;">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Codec2
|
||||||
|
|
||||||
|
2400 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicec2.flac">C2 2400 bit/s Voice Sample</audio>
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
1600 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicec2lb.flac">C2 1600 bit/s Voice Sample</audio>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Speex
|
||||||
|
|
||||||
|
16000 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voice.spx">Speex 16kbit/s 8kHz Voice Sample</audio>
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
8000 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicelb.spx">Speex 8kbit/s 8kHz Voice Sample</audio>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
##### Opus
|
||||||
|
|
||||||
|
32000 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicemb.opus">Opus 32kbit/s Voice Sample</audio>
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
16000 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voicelb.opus">Opus 16kbit/s Voice Sample</audio>
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
|
8000 bit/s:
|
||||||
|
|
||||||
|
<audio controls src="media/samples/voiceulb.opus">Opus 8kbit/s Voice Sample</audio>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
18
audiocodecs/slides/18-containers.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
### Multimedia Containers
|
||||||
|
|
||||||
|
- Many audio formats cannot be stored "as-is" on disk
|
||||||
|
- Common audio containers:
|
||||||
|
- RIFF/WAV (wav)
|
||||||
|
- MPEG-4 (mp4/m4a)
|
||||||
|
- OGG (ogg)
|
||||||
|
- Uncommon audio containers:
|
||||||
|
- WebM (webm)
|
||||||
|
- Matroska (mka)
|
||||||
|
|
||||||
|
Note:
|
||||||
|
MPEG-4 supports AAC, FLAC, MP3, ALAC, and Opus
|
||||||
|
OGG supports Vorbis, Opus, Speex, and FLAC
|
||||||
|
WebM supports Vorbis and Opus, and is a subset of Matroska apparently
|
||||||
|
Matroska supports everything made maybe ever
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
9
audiocodecs/slides/19-resources.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
### Useful Resources
|
||||||
|
|
||||||
|
https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio
|
||||||
|
|
||||||
|
https://en.wikipedia.org/wiki/Comparison_of_audio_coding_formats
|
||||||
|
|
||||||
|
https://en.wikipedia.org/wiki/Codec_listening_test
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
11
audiocodecs/slides/98-source.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
![Presentation Source QR](media/presentationsourceqr2.svg) <!-- .element: style="width:30%; image-rendering: pixelated;" -->
|
||||||
|
|
||||||
|
[Presentation Source](https://git.qtechofficial.com/logan/presentations/src/branch/master/audiocodecs)
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
This presentation is licensed under [CC-BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)
|
||||||
|
|
||||||
|
![CC-BY-NC-SA Icon](media/Cc-by-nc-sa_icon.svg)
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|
10
audiocodecs/slides/99-funfacts.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
## Fun Facts:
|
||||||
|
|
||||||
|
This presentation took 23 hours
|
||||||
|
|
||||||
|
LibreOffice crashed 6 times, so I stopped using it
|
||||||
|
|
||||||
|
<br>
|
||||||
|
Made with mdslides + reveal.js
|
||||||
|
|
||||||
|
[comment]: # (!!!) <!--------------------------------------------------------->
|