LCA2012 – Friday after lunch

Codec 2 – David Rowe

  • Open speech Codec. Low bitrate 2400 b/s down to 1400 b/s
  • Applcations for digital radio
  • Fills <5000 b/s gap
  • Not a DSP talk
  • Can send 45 calls inside 64 kb/s chanel
  • Not useful for VOIP due to IP/UDP overhead of 8kb/s on 1400b/s data
  • Main use radio spectrum. Less data = less power required since your power gets concentrate on less bits
  • doesn’t matter too much if odd packet dropped
  • proprietary codecs slowing digital voice over radio
  • Proprietary codes: hardware or licensed software form, difficult to distribute, can’t modify
  • Example g729 license $40k. Doesn’t believe closed source codecs benefit society
  • Authors of propriety/patented codecs borrowed heavily from public domain. perhaps 5% is original. Good news is only 5% needs to be replaced
  • Speech coding: eg 16bit samples at 8kHz, comprss to 1400-2400 b/s . What can we thrown away, retain intelligible speech, retain natural speech. Use a model of speech, send model parameters, for effecient than coding waveform
  • Model: example is pitch, humans 50-500 Hz , can be represented with 7 bits, updated every 20ms 7/0.02 = 350b/s to represent pitch
  • Codec 2 uses Sinusoidal speech coding. Multiple Sine waves added togeather
  • Bit allocation: 56bits every 40ms. Of these: Amplitude 32 , Frame energy 10 , voicing 4, pitch 10
  • Developing Codecs: complex DSP algorithms, run codecs in non-realtime, dump values from codecs every “frame” ( 80 samples, 10 ms of speech) . Gnu Octave
  • Banned exports list includes ” Speech codecs below 2400 b/s ” . Have been advised by DECO that Codec 2 has “assessed as not controlled” but waiting for certificate


UEFI and Linux – Matthew Garrett

  • Replacement for PC BIOS
  • BSD licensed core
  • Adds standardized support for new hardware features
  • Platform init
  • EFI image load – loaded drivers
  • EFI OS loader load – oot from ordered list of EFIOS loaders
  • Boot services terminate -> OS handover
  • Boot services – memory allocation, timers, image loading, GUIDs.
  • Runtime services – non-volatile variable store, boot data, system information, crash dumps (already in Linux 3.2)
  • Able to update firmware by reset and grab new firmware out of variables on bootup
  • GPT – GUID partition table – no practical restrictions on size and number – more metadata about partition type and service
  • That all sounds good …. but ….
  • TianoCore – Open Intel reference UEFI reference implementation, 7061 files, >100MB of code, 10% of size of Linux kernel. Bigger than Linux core kernel
  • Large codebase, some bugs
  • UEFI is poorly tested in the real world. UEFI contains a lot of code. UEFI contains a lot of bugs
  • Some problems with secure boot 🙂