For $18 who can go wrong! Picked up a STMicroelectronics Nucleo-144 board to revamp some skills and do some prototyping. STMicroelectronics literally writes the code for you. Shown is the STM32CubeIDE which includes the linker, debugger, everything, all at no cost. HAL libs, what’s not to like! ## Watermarking Technology and Research Much to my surprise I have received email queries requesting the old watermarking paper that was on the old site be made available again. Without further ado here it is, in all of it’s antiquated glory. I am also receiving queries for information about watermarking, both video and audio. Frankly, if one wants to pick my brain, I suggest hiring me as a consultant. That said, I believe some queries are simply engineers looking for resources. I thought I’d outline what I do when trying to ramp up on cutting edge research where the end game is actually innovation in the area. Other engineers might do things differently or better, but this is what has worked for me. First, I do a Google search, Wikipedia read and I call this the superficial newbies and morons informational hunt. I try to just get almost a marketing feel for the concept. What is it, what is it for, what is the basic technique, where does it go, where it is in R&D currently. I also hunt for code snippets, Matlab scripts and try to play with those scripts, write a few lines of code, just get a technical feel for various approaches. I don’t spend a lot of time doing this, maybe a day tops. Then, the fun comes in. I run down to a University Research library and utilize the vast databases, journal subscriptions of the Academic system and do a literature search. I also perform a patent search on Google patents and the U.S. Patent and Trademark Office. The tricky thing with patents is to make sure my newly formed vague great grand idea and concept has not already been patented. If it is, well, move on and realize great minds think alike. Yet the patent databases are also a good place to review other ideas and evaluate them. It’s also a great place to see what I do not know and do not understand. If I really cannot comprehend a patent, I then go look up, even in an Academic text what I am missing, what equation, what paragraph, what diagram, to understand the paper or patent I’m attempting to digest. After a literature search, if I find a gem, I might dig in to that particular paper, but very often I am learning about the technology utilized and mulling ideas and approaches from others. I actually move on from the literature review to finding my own approach versus study someone’s work until I could “Ace the test” on it. One can even take someone’s idea from a literature search and code it up in Matlab to see how well it works if the brain gears still are not turning. But generally speaking, this is the point I am writing code to learn more about the technology area I’m exploring as well as writing some code to see if my approach and idea is even feasible. For me, I find writing up some code, drawing a block diagram, even breadboarding a circuit, trying something, is the way I figure out what’s going on. Even if my first efforts are huge fails, I learn something by doing instead of just thinking. I get something on paper, screen, digital bits, somewhere. If I stay stuck in my head, the idea and concept stays there too instead of to prototype. The above is just a little bit and I hope it helps someone out there. I guess a key is to not be afraid, not be shy. It is our right as engineer explorers to be dumber than a box of rocks and technically clueless periodically. In other words, don’t be afraid of these massively complex engineering research areas. One foot in front of the other, even while banging around in the dark has always gotten me somewhere. Hey man, turn the light on! ## About The New Site Folks, I just put up this new site. It is WordPress and chosen because it is responsive design, accessible from anywhere and simply mega easy to style, modify and maintain. Expect to see more details as I add all sorts of techno babble, skills and projects on the site. For the moment I am a consultant who works remotely. I have strong expertise in audio signal processing, compression standards, in particular ISO/IEC MPEG, as well as ITU G.7xx speech codecs. I also am an optimization expert and live to write cryptic assembly that I actually comment so one can follow along at home. C is my best language with my Kernighan and Ritchie still with me in tatters. I do have many other languages, including the antiquated Fortran and the obligatory C++. I have a strong hardware background and have implemented projects on all sorts of embedded architectures. Yes, I do run a popular economics site, based in Drupal 7.x, where I did all of the coding modifications. The site currently resides on a CentOS 6.x, unmanaged VPS that I configured and maintain. I build my own systems too. They will have to pry my Wiha T4 Torx from my cold dead hands, I am that geeky. Other skills will be added to the site and overall I’m out to be more chatty. I am a notorious lurker who posts little, yet knows a lot. We’re out to change that. ## H.264 in WebRTC Cisco just did a solid and released H.264 into open source for use in WebRTC. Cisco is absorbing the estimated$13 million in licensing fees from MPEG-LA. The reason Cisco did this was to avoid transcoding of H.264 streams from other video clients, a wise choice. The IETF is determining which video compression algorithm will be the baseline for webRTC this week.

Mozilla will incorporate webRTC, including H.264, into the Firefox browser and Chrome already has it. Google is sticking with VP8 and is a major developer and contributor to webRTC. The IETF vote is in Atlanta this week and we’ll update this post with who won out in the video codec selection. We hope both are supported, yet Cisco is right, the last thing one wants to be doing in a real time stream is transcoding H.264 to VP8. It does seem that stand alone proprietary video conferencing and streaming solutions are going the way of the dinosaur, although webRTC as the meteor which killed the beast is yet to be determined.

Real-time communications in the browser utilizing native codecs and javascript sounds too good to be true and that is becuase it is. Underneath the hood are the typical real time streaming issues such as NAT transversal, firewalls, latency, QoS and synchronization, to name just a few. WebRTC latency was reported to be 150ms with a mininimum of 100ms. While that mets ITU QoS, it is pretty much the crappy out of sync video conferencing most of us experience daily.

It appears at the IETF meeting there was no consensus on which video compression algorithm to make mandatory for webRTC.   It also appears both is not an option, so far and Nexus has hardware implementations of VP8 while hardware acceleration for H.264 is available in many chipsets.

On a technical note, I am downloading the source for webRTC, focus on Opus, (Xiph), since supposedly it is not ported, never mind optimized, on many embedded platforms.    I’ll write up what I find in another post.

## Tools Which Make Remote Consulting Work

Telecommuting saves the environment, allows those with disabilities to more easily perform tasks,  increases productivity and removes distractions that are common in an office environment.    Yet, many employers still do not take advantage of new technologies which enable working remotely.

Here at Musemagic we utilize Skype, ftp, servers,  remote access, chat clients, and our personal favorite, VMware Workstation.   We can create VMware images with not just the deliverables, but the entire development system and test bench.  One can see exactly every step of development and the results by this method.  All one has to do is pull up the image in their VMware player and hit go.    VMware can convert physical machines into virtual ones and vice versa in minutes and enables remote access to a virtual machine.

For embedded projects where JTAG USB drivers are not compatible with VMware (we’ve yet to see this happen), we can also configure a laptop with all development tools for that particular embedded environment.  Evaluation kits are cheap, custom boards are also easy to transport and one can mirror development as well as burn the flash ROM with the latest code drops in minutes.  Of course being able to set up systems, solder daughter boards, design circuitry and other skills one must have to bootstrap a project are a given.

We also can set up Mantis, a bug database, and a code repository of your choice.    With today’s video conferencing and  on-line meeting tools, literally we can be present on your desktop anytime you wish.          This is just a short list of technologies which make remote consulting of all types work.

Our Skype ID is musemagic.  Give us a buzz, even for casual queries.