This page provides free software made by Naoki Shibata.

- June 4, 2016 : SSRC 1.33 is released.

This program converts the sampling rate of a PCM wav file. 44.1kHz sampling rate is used for a CD, and 48kHz is used for a DVD. However, converting between these frequencies is hard, because the ratio beteen these two frequencies is 147:160, which are not small numbers. Accordingly, we need a very long FIR filter in order not to degrade the sound quality during conversion. This program utilizes FFTs to apply the FIR filter in order to reduce the amount of computation.

This program also has a function to apply dither to extend the perceived dynamic range. It is optimized for human's ear characteristics.

- You can download the latest version from here. This archive contains Windows(64bit) executable files.
- You can also download version 1.30. This archive contains Windows(32bit) executable files.
- You can browse the source code at GitHub.
- Some experimental results are shown in this page.

Most of today's processors have capabilities to execute SIMD instructions, and we can expect significant speed-ups in various kinds of computation if these instructions are properly used. But, this is technically hard because many popular programming techniques like table look-ups, conditional branches, scattering/gathering operations can easily slow down the computation. With this library, the trigonometric functions(sin, cos, tan, sincos), inverse trigonometric functions(asin, acos, atan, atan2), exponential and logarithmic functions(exp, log, pow, exp2, exp10, expm1, log10, log1p), hyperbolic/inverse hyperbolic functions(sinh, cosh, tanh, asinh, acosh, atanh), and some other functions(cbrt, ilogb, ldexp) can be evaluated in both double precision and single precision without table look-ups, scattering from, or gathering into SIMD registers, or conditional branches using SSE2, AVX, AVX2, FMA4, or ARM NEON instruction sets.

You can download the library here. You can browse the source code at GitHub.

You can see the javadoc here.

Motion blur can be a problem in detecting markers when the camera or the object is moving. BAUM is a software library for drawing and recognizing circular barcodes that are designed to be relatively tolerant of linear motion blur. With this library, those circular barcodes can be recognized from video in real time from Full HD videos utilizing a desktop GPU. Here is the main page. You can browse the source code at GitHub.

GPUMarkerTracker is a tracking software library for AR (augmented reality) markers. It utilizes GPGPU for fast and accurate tracking. It is intended for detecting markers from an HD resolution video so that small markers placed far from the camera can be detected. Read more

Connected Component Labeling(CCL) is a well known technique for assigning a unique label to each of connected components in a given binary image. In this article, I explain a CCL algorithm suitable for GPGPU execution. Here is the main page. You can browse the source code at GitHub.

Are you looking for SuperEQ or in_mpg123? They are here. But why do you still need these? Please let me know.

Contact :