Glossary#

ABI#

Application Binary Interface

The binary interface used by the linker process, to link compiled libraries. Either defined by the compiler or by a standard agreed to by multiple compilers.

Not to be confused with API, which is the interface used before the code is compiled.

API#

Application Programming Interface

Exposed by libraries to compile source code against. Not to be confused with ABI, which is the interface used by the linker - after compilation.

Bonjour#

Zero-configuration networking, enabling automatic discovery of devices on a local network.

Camera Property Model#

A pre-defined set of properties and/or values for a camera.

CameraSDK#

The SDK mediating communication with the camera. One of the SDKs offered from Phase One.

declspec#
_P1_SDK_STATIC#

Microsoft’s Visual C++ compiler requires functions that are imported from an external dynamically linked library, to be declared using the keyword: __declspec(dllimport). This tells the linker that function will be present at runtime, in a external dynamically loaded library.

In our SDK’s we use the predefine _P1_SDK_STATIC to not prefix library functions with with any declspec in our header files. Thereby enabling static linking.

Debayering#
Demosaic#
Demosaicing#

Conversion from raw Bayer pattern image data to RGB data. Demosaicing is also known as “debayering” or “raw conversion”.

Dynamic loader#

An OS mechanism that loads dynamic libraries into memory, when the application uses dlopen / LoadLibrary like functionality.

Dynamic linker#

An OS service that runs just before an application is launched, automatically resolving all its dynamic library dependencies.

Exceptions#

Errors; all error handling in the SDKs is done through exceptions.

Garbage Collector#

A runtime mechanism that automatically manages memory allocation and deallocation. Programming languages can include such a mechanism, to free the developer from the task of handling memory.

Notably C, C++ does not have a garbage collector. C# does, however.

Host computer#

The user’s computer, meaning the computer where Camera- / Image-SDK is running.

Host system#

The operating system on the host computer.

ImageSDK#

The SDK used to processing IIQ image files. One of the SDKs offered from Phase One.

IQP#

IQ Protocol - the protocol used to communicate between the camera and the CameraSDK, using wither network or USB as transport.

Property#

A variable in the camera, which can either be read or set atomically through the CameraSDK. E.g. ISO, shutter-time or the serial number.

Property Specification#

A description of a property, containing e.g. the property’s name, ID and type.

SDK#

Software Development Kit

SONAME#

Meta-data field in the ELF file format. Used by shared object files (.so) to state their ABI compatibility and alias name.

In executables the SONAME is used to reference the dynamic libraries.

RPATH#

Field in ELF formatted executables (as used on Linux), that directs the dynamic linker where to look for dependent libraries.

Unmanaged code#

Code or runtime that does not include a garbage collector or an intermediate representation, used by an execution engine (interpreter or JIT). Examples of unmanaged code are C and C++.

Is the oppersite of managed code which has intermediate representation and / or a garbage collector. Examples are C# (.NET), Python and Java.

Target Build System#

In relation to CMake

CMake is a build system compiler, meaning that it translates its CMakeLists.txt files into project files for popular build systems. Such as: Visual Studio C++ projects (.vcxproj), Unix Makefiles, XCode projects, Ninja etc.

When CMake creates Makefiles from your CMakeLists.txt, Makefiles is then the target build system. CMake hands off the actual building process to this target system - also known as the generator in CMake lingo.