Overview OpenCV is a Computer Vision / Image Processing library. It used in ffmpeg video processing / streaming and ROS robot operating system. you can install it from here: http://opencv.org/downloads... Modules in the lib directory: opencv_core - data structures , maths opencv_imgproc -image processing. opencv_highgui - image / video reading / writing opencv_features2d - feature point detectors , descriptors , matchers opencv_calib3d -camera calibration, 2-view geometry estimation, stereo opencv_video ......
Overview Native activities – create an application based only on native code, without a single line of Java. Use cases: Android sensor polling – more accurate than Java eventsCross platform 3D – include a common OpenGL static lib that can also be linked in say an ObjectiveC app. (If writing purely for Android, just use the Java API and import android.opengl.GLES20.* package, adapting a TextureView to perform EGL init like a GLSurfaceView - the performance leverages the same OpenGL ES calls via JNI ......
*note: for brevity, error checking code has been left out of this post. Overview The JNI API allows Java applications to invoke native C/C++ code and native C/C++ code to invoke Java. Using the JNI comes at the cost of losing JIT portability & type safety – recompilation of native code is machine instruction-set specific. Usage Declare a Native Method in Java: class MyClass { private native void doSomething(); // indicate method is implemented in another language public static void main(String[] ......
in java.util.concurrent package - JDK 7 A Framework for Divide and Conquer recursively divides a task into smaller subtasks until threshold check indicates subtask size is small enough to execute serially. Optimal threshold is affected by specific computational steps & obtained through profiling – heuristic: between 100 and 10000. abstracts multithreading - automatically scale up. Leverages work-stealing - Each worker thread maintains a queue of tasks. If one worker thread’s queue is empty, it ......
Overview OpenCL is a GPGPU API that abstracts over acceleration devices (be they CPU, GPU or FPGA) to provide data-parallelism (as well as task-parallelism) behavior. heterogeneous portability is achieved by avoiding high level abstractions and exposing the hardware in a context that explicitly defines its work scheduling capabilities. An OpenCL application consists of two parts: the host program that runs on the CPU - API functions to discover devices and their capabilities & create a context, ......
OverviewA compute shader is a programmable shader stage that expands OpenGL beyond graphics programming. Like other programmable shaders, a compute shader is designed and implemented with GLSL. A compute shader provides single stage SIMD pipeline parallelized on the GPU. The compute shader provides memory sharing and thread synchronization features to allow more effective parallel programming methods. Create a Compute Shader Program: glCreateShader(GL_COMPUTE_S... - create a compute shader glShaderSource() ......