Norpix Windows CODEC

NorPix Windows codec are based on Microsoft DirectX Media Object, allowing for excellent integration to all Windows application that works with AVI.

NorPix currently provides 6 different codecs:

CODEC name Description
NorPix Motion JPEG codec CPU based. DirectShow compatible codec allowing real time compression to AVI file with Motion JPEG compression.
NorPix H.264 codec CPU/GPU based. DirectShow compatible codec allowing real time compression to AVI file with H.264/AVC compression. H.264/AVC codec can take advantage of Intel Quick Sync compatible processors for image resolution up to 4096x2304 pixels.
NorPix CUDA H.264/AVC codec GPU based. DirectShow compatible codec allowing real time compression using NVIDIA GPU to perform H.264/AVC compression. Requires an NVIDIA GPU with Maxwell or newer chipset.
NorPix CUDA Motion JPEG codec GPU based. DirectShow compatible codec allowing real time compression using NVIDIA GPU to perform real time JPEG compression. Up to 2.5 billion pixels monochrome or 1.5 million pixels color can be compressed real time.
NorPix CUDA H.265/HEVC codec GPU based. DirectShow compatible codec allowing real time compression using NVIDIA GPU to perform H.265/HEVC compression. Requires an NVIDIA GPU with Maxwell 2 or newer chipset.
NorPix AMD H.264/AVC codec GPU based. DirectShow compatible codec allowing real time compression using AMD GPU to perform H.264/AVC compression. Requires an AMD GPU with AMD Video Coding Engine (VCE).

All codecs include settings to allow pattern selection for Bayer interpolation, various color balancing, automatic CPU core load balancing.

MJPEG quality factor (1 to 100% quality).

GOP size and bit rate settings for H.264/H.265 encoding.

Codecs support most image formats and sizes, the most natively as possible, reducing transcoding or image format conversion.

Native supported image formats:

BYR1: 8bit RAW format.
BYR2: 12bit RAW format.
Y8: 8bit Gray format.
Y16: 12bit Gray format.
UIVY: UVY422 format.
Y422: YUV422 format.
UVY411: YUV411 format.
YUV444: YUV444 format.
RGB555: RGB555 format.
RGB565: RGB565 format.
RGB: RGB24 format.
RGB32: RGB with Alpha channel format.

Codecs support concurrent instances, so that when using multiple cameras, all streams can be compressed in parallel.

Codecs provide FourCC selection, with default MJPEG and H.264 FourCC code (MJPG, H264). However, proprietary FourCC codes are also available to force decoders to use our codec for rendering (NPXJ, NPXH).

Codecs are only supported under Windows 10 and 11 (64 bit).

Performance wise, codecs run identically with or without a license code. Non-licensed versions will watermark encoded images.

Performance for NorPix H.264 codec:

  1920 x 1080 YUV422 to H264 1920 x 1080 Raw Bayer to H264
Core i3-2100T Preprocessing (CPU) 10 ms 15 ms
Compression Sandy Bridge CPU Sandy Bridge GPU Sandy Bridge CPU Sandy Bridge GPU
39 ms 13 ms 39 ms 13 ms
Total processing time 49 ms 23 ms 54 ms 28 ms
Core i7-3770
Software Preprocessing 5.52 ms 6.82 ms
Compression Ivy Bridge CPU Ivy Bridge GPU Ivy Bridge CPU Ivy Bridge GPU
21.72 ms 11.55 ms 21.72 ms 11.55 ms
Total processing time 27.24 ms 17.07 ms 28.4 ms 18.37 ms

Preprocessing includes image conversion to an intermediate image format compatible with H.264 compression.

Bayer interpolation and white balancing are performed during preprocessing

Performance for NorPix MJPEG codec:

Image size and type Frame rate CPU load
640x480 raw Bayer 270 80%
640x480 monochrome 330 80%
1920x1080 raw Bayer 33 90%
1920x1080 monochrome 50 80%

CPU load while real time encoding at the specified frame rate including concurrent StreamPix load with image capture, display and streaming to disk. Bayer interpolation included for raw format. Intel core i5-3340M processor.

Using the codecs:

Codec Settings can be accessed via properties dialog of each application using the codec. In case the calling application does not provide any option to access the codec setting, you can run the following utility to access each codec setting:

"All Programs | Norpix | NpxCodec | Codec Settings":

Codec settings

Codecs include 4 setting pages:

H.264 Encoding Page:

H.264 Encoding Page
  • Encoding Profile:
    • High Profile: Use YUV420 color coding.
    • BaseLine: Recommended for monochrome image.
    • Main Profile: Use YUV420 color coding.
  • GOP size: The number of frames to be part of the same group of frames. The larger the GOP size is, the less key frames are inserted with the cost of longer seek time.
  • Bit Rate: Stream bit rate per second of content.
  • Number of Core for Encoding: Instruct the codec about the number of CPU core to use. It is not recommended to use all cores for real time encoding, since CPU resources may not be available to service other StreamPix capture and streaming threads.
MJPEG codec settings

MJPEG codec settings

  • Quality: The jpeg compression quality. 100% quality will give best image quality with low compression factor.

Bayer Conversion

Image Process

Parameters for embedded raw to Bayer interpolation: Before encoding an image, raw Bayer image can be color interpolated. Note that if Bayer is enabled, monochrome image will be interpolated too.

  • Enable/Disable conversion. Only useful if processing a raw Bayer image.
  • Bayer Pattern: Select the Bayer pattern matching your sensor.

White Balancing

Following a Bayer interpolation, or if image format is RGB, codec can perform some automatic white balance correction. Furthermore, one can define a region on the image to be used as a reference for white balance calculation.

White Balancing
  • Enable: Enable/Disable auto white balance.
  • Algorithm:
    • Mean Equalization
    • Gray Word
    • Standard Deviation
    • Mean and Standard Deviation
  • ROI: define WB area

Linear Shift

Linear Shift

Linear window leveling can be performed for pixel depth greater that 8 bits before encoding. By default, encoder will always keep the 8 most significant bits of captured images. Window leveling can be used to force the usage of other bit range:

As an example, a 10 bit image can be leveled in 3 ways:

  • 8 most significant bits (bit 2 to 10, default)
  • 8 middle significant bits (bit 1 to 9)
  • 8 least significant bits (bit 0 to 7)

Pseudo Color

Pseudo Codec

This can be used for remapping monochrome image to pseudo color. Currently, 2 predefined look up table functions are available. Please contact Norpix if you feel more LUT should be added.

Available predefined LUTs are:

  • Rainbow
  • Inverted rainbow

Pseudo color cannot be used with true color RGB or YUV images.

NorPix Lookup table

A text file, comma separated that can be generated (save Excel file as a .csv format) and can be used to force pixel intensity remapping to pseudo color.

NorPix Lookup table

Example:

#Index, Blue, Green, Red Remapping value
0, 255, 0, 0 : gray level 0 will be Remapping as pure blue,
1, 10, 10, ,: gray level 1 will be Remapping as Blue = 10, Green = 10, Red default
[200,255], 255, 255, 255: gray levels 200 to 255 are Remapping to pure white

NorPix Lookup table

Temperature

Correct image temperature.
The range is between 5000K-20000K.

Only useful for color images.

ASC CDL

The American Society of Cinematographers Color Decision List (ASC CDL) has defined a format for the exchange of basic primary color grading information. A 3 parameters formula can be used to define most possible remapping and color correction.

The formula for ASC CDL color correction is:

ASC CDL

out = (i*s +o)p

where:

  • out is the color graded pixel code value.
  • i is the input pixel code value (0=black, 1=white).
  • s is slope (any number 0 or greater, nominal value is 1.0).
  • o is offset (any number, nominal value is 0).
  • p is power (any number greater than 0, nominal value is 1.0).

FourCC settings

Each codec is uniquely identified by a FourCC code. Mediaplayer application can identify what codec has been used to encode the video and search for a corresponding decoder.

FourCC settings

By default, the codec will use standard FourCC name, to allow any MJPEG or H.264 compatible decoder to render the images. That means there is no need to install NorPix codec on playback computers when default FourCC names are used.

If you encounter playback issues, or prefer the end user to use the NorPix codec for decoding, set the FourCC to be either NPXJ for MJPEG or NPXH for H.264.

Licencing the codec

Licence

Contact Norpix to purchase an official license. Images are watermarked when the codecs are used with no valid license.