diff options
Diffstat (limited to 'content/posts/extreme-epilepsend.md')
-rw-r--r-- | content/posts/extreme-epilepsend.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/content/posts/extreme-epilepsend.md b/content/posts/extreme-epilepsend.md index d693e5c..909dbbc 100644 --- a/content/posts/extreme-epilepsend.md +++ b/content/posts/extreme-epilepsend.md @@ -7,7 +7,7 @@ tags: ["computer-vision", "multiprocessing", "epilepsend", "video"] --- -Kevin and I created [Epilepsend](/posts/bad-apple-animated-qr-code/) for an MIT final project a few months ago, and the thing about final projects is the deadline is always a day too early, no matter how early you start. Our project couldn't even break the 0.3 mbps barrier until two days before the deadline! Fortunately, I discovered that an earlier commit had cropped the camera feed to avoid distortion, at the cost of significantly reducing the camera acuity. [Removing that code](https://git.exozy.me/k/6.8301-Project/commit/a1d77a466dcc694f0101d2588529ada8c858ed94) boosted our bandwidth by an order of magnitude. So I've been wondering: Are there any other bandwidth-boosting tweaks out there that we just didn't have time to try? +Kevin and I created [Epilepsend](/posts/bad-apple-animated-qr-code/) for an MIT final project a few months ago, and the thing about final projects is the deadline is always a day too early, no matter how early you start. Our project couldn't even break the 0.3 mbps barrier until two days before the deadline! Fortunately, I discovered that an earlier commit had cropped the camera feed to avoid distortion, at the cost of significantly reducing the camera acuity. [Removing that code](https://git.unnamed.website/6.8301-project/commit/?id=a1d77a466dcc694f0101d2588529ada8c858ed94) boosted our bandwidth by an order of magnitude. So I've been wondering: Are there any other bandwidth-boosting tweaks out there that we just didn't have time to try? I initially wanted Epilepsend to be lightweight enough to run on my laptop, but it has a bad habit of scorching my CPU. Sure, it can hit 2 mbps for a few seconds, and then the temperature skyrockets and Epilepsend starts lagging behind the camera stream. For the *Bad Apple!!* demo, I had to use a 32-thread Ryzen 3950X CPU instead. More compute never hurts, so I recently tried some tweaks to fully embrace the more powerful CPU. @@ -19,7 +19,7 @@ The monitor only shows the entire complete frame for 1/60 seconds! Consequently, And if you have a beefy CPU and cooling, it's completely useless. Instead, just try to decode every frame. Easy as that. -Another conceptually simple tweak I tried was putting the Reed-Solomon decoding in its own thread. Welp, Python's GIL decided to ruin my day so I had to use both the `threading` and `multiprocessing` modules, but it [worked in the end](https://git.exozy.me/k/6.8301-Project/commit/078079bbd5596c17322b6329c6fce66d997f8e82). CPU usage went up by a factor of three! Hooray! +Another conceptually simple tweak I tried was putting the Reed-Solomon decoding in its own thread. Welp, Python's GIL decided to ruin my day so I had to use both the `threading` and `multiprocessing` modules, but it [worked in the end](https://git.unnamed.website/6.8301-project/commit/?id=078079bbd5596c17322b6329c6fce66d997f8e82). CPU usage went up by a factor of three! Hooray! On the physical side of things, I built a structure out of random books to hold my phone so my arms don't get sore. I also tried placing a large foam board, held in place by a plush unicorn, behind the camera and turning up the encoder's screen brightness to avoid stuff from the background appearing as reflections in the encoder's screen. |