digital signal processing w/ javascript

35
Digital Signal Processing w/ Javascript @rafael_sps

Upload: rafael-specht-da-silva

Post on 03-Aug-2015

210 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Digital Signal Processing w/ Javascript

Digital Signal Processing w/

Javascript@rafael_sps

Page 2: Digital Signal Processing w/ Javascript

Who?rafael

specht da silva

Telecommunication Technologist

Javascript enthusiast

Page 3: Digital Signal Processing w/ Javascript
Page 4: Digital Signal Processing w/ Javascript
Page 5: Digital Signal Processing w/ Javascript

“... mathematical manipulation of an

information signal to modify or improve it”

Page 6: Digital Signal Processing w/ Javascript
Page 7: Digital Signal Processing w/ Javascript

Sampling

Page 8: Digital Signal Processing w/ Javascript
Page 9: Digital Signal Processing w/ Javascript
Page 10: Digital Signal Processing w/ Javascript
Page 11: Digital Signal Processing w/ Javascript

Why this isimportant?

Page 12: Digital Signal Processing w/ Javascript

var playBuffer = function (buffer) {

source = context.createBufferSource();

source.buffer = buffer;

var processor = context.createScriptProcessor(512, 2, 2);

processor.onaudioprocess = onAudioProcess;

source.connect(processor);

processor.connect(context.destination);

source.start(0, startOffset % buffer.duration);

}

Page 13: Digital Signal Processing w/ Javascript

var onAudioProcess = function (ev) {

inputBuffer = ev.inputBuffer;

outputBuffer = ev.outputBuffer;

inputData = inputBuffer.getChannelData(0);

outputData0 = outputBuffer.getChannelData(0);

outputData1 = outputBuffer.getChannelData(1);

for (var sample = 0, len = inputData.length; sample < len; sample++) {

outputData0[sample] = (1 - panelX) * inputData[sample];

outputData1[sample] = panelX * inputData[sample];

}

}

Page 14: Digital Signal Processing w/ Javascript

DEMO

Page 15: Digital Signal Processing w/ Javascript
Page 16: Digital Signal Processing w/ Javascript
Page 17: Digital Signal Processing w/ Javascript

Quantization

Page 18: Digital Signal Processing w/ Javascript
Page 19: Digital Signal Processing w/ Javascript

COMPRESS

Page 20: Digital Signal Processing w/ Javascript

// Original (37)[1.1, 1.8, 2.3, 2.4, 1.9, 2.7, 3.2, 3.4, 3.1]

// Quantized (19)

[1, 2, 2, 2, 2, 3, 3, 3, 3]

// Compressed (15)

[1, ‘2 4’, ‘3 4’]

Page 21: Digital Signal Processing w/ Javascript

Images

Page 22: Digital Signal Processing w/ Javascript

var canvas = document.getElementById('canvas');

var ctx = canvas.getContext('2d');

function make_base(src) {

base_image = new Image();

base_image.src = src;

base_image.onload = function(){

ctx.drawImage(base_image, 0, 0);

imageLoaded(base_image);

}

}

Page 23: Digital Signal Processing w/ Javascript

var img = ctx.getImageData(

0,

0,

canvas.width,

canvas.height

);

Page 24: Digital Signal Processing w/ Javascript

img.height // number

img.width // number

img.data // Uint8ClampedArray

r g b a r g b a

[65, 113, 130, 255, 65, 113, 130, 255, ...

Page 25: Digital Signal Processing w/ Javascript
Page 26: Digital Signal Processing w/ Javascript

Compressing

Page 27: Digital Signal Processing w/ Javascript

var red = [];

var green = [];

var blue = [];

var alpha = [];

for (var i = 4; i < imgData.data.length; i+=4) {

red.push(imgData.data[i])

green.push(imgData.data[i+1])

blue.push(imgData.data[i+2])

alpha.push(imgData.data[i+3])

}

Page 28: Digital Signal Processing w/ Javascript

Image Diff

Page 29: Digital Signal Processing w/ Javascript

Video

Page 30: Digital Signal Processing w/ Javascript

Video Diff

Page 31: Digital Signal Processing w/ Javascript

“Always bet on JS”

Brendan Eich

Page 32: Digital Signal Processing w/ Javascript
Page 33: Digital Signal Processing w/ Javascript

Thank you

@rafael_spsgithub.com/rssilva

Page 34: Digital Signal Processing w/ Javascript

References

Images:

https://farm7.staticflickr.com/6075/6068692939_3fa9b50838_b.jpg

http://www.curtopoa.com.br/images/albuns/fotos-aereas-porto-alegre/cais_porto_alegre.jpghttp://wvwri.org/wp-content/uploads/2014/01/1391018991.jpghttps://www.flickr.com/photos/murilocardoso/6020194265https://www.flickr.com/photos/josephkennelty/9554300993https://www.flickr.com/photos/takeabreakwithme/3234099003https://www.flickr.com/photos/busiguy6/457381735/in/photolist-nQthL-oN8PmF-f29NoU-dCtU8y-pvt5S-9KoqQh-23cgG-35D6wU-ccbYUC-GqcDZ-azBSCm-p5sZXB-6ib9Wb-56Srho-hH5RD-fc6RYp-gfcqpQ-vmaEe-56NhmD-azUZWy-5Y95gU-bUu2s-eDhQLn-6YW9JX-8YQVX1-8M8pUQ-bCnrz-8AsQiz-imtb9d-7N9J1y-ogg8U-5NtoYg-4cELXj-bUoJRy-vmaEc-wGktP-fpNZBa-bGQycT-bGQaTk-5KSTpm-dqtWeP-ruZnP4-9cM7SK-qrm1Lr-7rDrFc-7QRNWn-9KEpL9-oVwQbZ-9PxYEY-pDkEs3https://www.flickr.com/photos/wdig/7176747886https://www.flickr.com/photos/poulomee/16140153959https://www.flickr.com/photos/voulez-vous/12076930664