Exciting developments in GNU Radio
GNU Radio had a pretty good year in 2010, and we are already on track for an even more productive year in 2011. While we only produced one release in 2010, a large amount of work went into our source repository to improve the quality and stability of the project, and we are on track for a new release soon that incorporates many of these fixes into a new stable release. From here, we have been implementing some major improvements and additions to GNU Radio that will be part of the releases in 2011, so 2010 was an important year for getting us to the next major milestones.
Among the major changes GNU Radio saw last year, one of the biggest was a change in the project maintainer. Eric Blossom began this project almost ten years ago and has been the leading voice and architect of the project ever since. Early on in 2010, Eric decided to move on to other projects and interests and asked Tom Rondaeu to step in and take over. Tom holds a Ph.D. in electrical engineering from Virginia Tech and has been a major contributor to GNU Radio for over six years. He officially took over as the maintainer of GNU Radio in September of 2010.
Along with the new maintainer, we are starting to see new energy being put into GNU Radio. Some of what was developed at the end of last year will begin making its way into the main distribution of GNU Radio this year. Among these features includes some exciting new developments that will enable GNU Radio in ways that were never possible before. The two major features being introduced to GNU Radio include a new vectorization library called VOLK (for Vector-Optimized Library of Kernels) and stream tagging.
VOLK provides a way to access the vector (i.e., SIMD) instructions of general purpose processors. While there are other ways of doing this, a goal of GNU Radio is cross-platform support and an ease of programming and implementing new signal processing features. Until VOLK, adding SIMD code to GNU Radio had been a difficult, assembly-driven process. Instead, VOLK introduces the concept of a vector kernel to perform common mathematical functions in a cross-platform library. Over the next year, we will be improving many of the low-level signal processing blocks by using VOLK kernels instead of generic C++ code. As we make these changes, we expect to see a dramatic increase in the performance and processing capabilities of GNU Radio as well as introduce an extensible vector library for people to use and build upon. Another exciting idea behind VOLK is that it is not designed solely for GNU Radio use and builds as a separate library for incorporation and use in any other project.
The other major change that was introduced last year but will be used more heavily throughout the coming year are the stream tags. Stream tags provide a method of annotating samples with “tags” of information that can be passed downstream in a GNU Radio graph. This feature adds an interface to so that control, metadata, and other information may be passed through a radio system such as timing and state information. Because of these tags, we will be able to realize more advanced digital modems that require logic control and timing information previously unavailable.
From what we are seeing with the new features and the state of GNU Radio, we expect to significantly grow the capabilities of GNU Radio. We are also excited that this will bring in new users that will expand our community and the developers that contribute significantly to our project. On this note, we have identified increasing awareness and developers of GNU Radio as a major goal of the project over the next few years. We are directly pursuing this by hosting the first GNU Radio conference in September of 2011.
More information about GNU Radio can be found at our main homepage.