0
Skip to Content
Home
RapidPixel SDK
Consulting
Constant Robotics
Constant Robotics
Home
RapidPixel SDK
Consulting
Constant Robotics
Constant Robotics
Home
RapidPixel SDK
Consulting
Home VCodecImsdk C++ lib. Fast HEVC, H264 and JPEG encoding/decoding on Intel GPU (<= 11 gen)
vcodecimsdk_thumbai.png Image 1 of
vcodecimsdk_thumbai.png
vcodecimsdk_thumbai.png

VCodecImsdk C++ lib. Fast HEVC, H264 and JPEG encoding/decoding on Intel GPU (<= 11 gen)

€600.00

VCodecImsdk C++ library version 4.2.0 provides hardware video encoding/decoding (H264, HEVC and JPEG) for Intel HD Graphics based on Intel Media SDK. WARNING: Intel Media SDK no longer supported by Intel. This codec provides compatibility with <=11 gen Intel CPU.

We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.

Add To Cart

VCodecImsdk C++ library version 4.2.0 provides hardware video encoding/decoding (H264, HEVC and JPEG) for Intel HD Graphics based on Intel Media SDK. WARNING: Intel Media SDK no longer supported by Intel. This codec provides compatibility with <=11 gen Intel CPU.

We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.

Technical support service technical_support_thumbai.png (Copy) technical_support_thumbai.png (Copy)
Technical support service
from €700.00
Options:

VCodecImsdk C++ library version 4.2.0 provides hardware video encoding/decoding (H264, HEVC and JPEG) for Intel HD Graphics based on Intel Media SDK. WARNING: Intel Media SDK no longer supported by Intel. This codec provides compatibility with <=11 gen Intel CPU.

We sell source code of this library as is, without future updates and technical support according to perpetual non-exclusive royalty-free license. You pay once and can use this library in your software and hardware products without limits. Please read the license agreement before purchasing: LICENSE. You can buy technical support service for this product.

Purchase options

You can buy the software by bank transfer. Bank transfer available only for companies. To buy software by bank transfer please send us request to info@constantrobotics.com. Also, you can buy technical support service for this product.

Downloads

Programmer’s manual: DOWNLOAD

Overview

VCodecImsdk C++ library provides hardware video encoding / decoding (H264, HEVC and JPEG) for Intel HD Graphics based on Intel Media SDK on Windows. VCodecImsdk class inherits interface and data structures from open source VCodec interface library (source code included, Apache 2.0 license). The library provides simple interface to be implemented in different C++ projects. It is written with C++11 standard. The library is supplied as source code only in form of CMake project.

Encoding time for 11th Gen Intel(R) Core(TM) i5-1145G7E on Ubuntu 22.04 LTS:

  • H264 codec, 2560x1440 - 11.6 msec, 1920x1080 - 8.6 msec, 1280x720 - 4.4 msec, 640x512 - 2.6 msec.

  • HEVC codec, 2560x1440 - 23.4 msec, 1920x1080 - 15.2 msec, 1280x720 - 9.3 msec, 640x512 - 5.2 msec.

  • JPEG codec, 2560x1440 - 8.2 msec, 1920x1080 - 4.8 msec, 1280x720 - 2.5 msec, 640x512 - 1.2 msec.

Decoding time for 11th Gen Intel(R) Core(TM) i5-1145G7E on Ubuntu 22.04 LTS:

  • H264 codec, 2560x1440 - 7.3 msec, 1920x1080 - 4.8 msec, 1280x720 - 2.5 msec, 640x512 - 1.3 msec.

  • HEVC codec, 2560x1440 - 7.4 msec, 1920x1080 - 4.3 msec, 1280x720 - 2.2 msec, 640x512 - 1.3 msec.

  • JPEG codec, 2560x1440 - 8.7 msec, 1920x1080 - 5.2 msec, 1280x720 - 2.6 msec, 640x512 - 1.3 msec.

Simple interface

namespace cr
{
namespace video
{
class VCodecImsdk : public VCodec
{
public:

    /// Get library version.
    static std::string getVersion();

    /// Class constructor.
    VCodecImsdk();

    /// Class destructor.
    ~VCodecImsdk();

    /// Set parameter value.
    bool setParam(VCodecParam id, float value) override;

    /// Get parameter value.
    float getParam(VCodecParam id) override;

    /// Encode/Decode video frame.
    bool transcode(Frame& src, Frame& dst) override;

    /// Execute command.
     bool executeCommand(VCodecCommand id) override;
};
}
}

Simple example

#include <iostream>
#include "VCodecImsdk.h"

int main(void)
{
    // Create codec and set parameters.
    cr::video::VCodec* videoCodec = new cr::video::VCodecImsdk();
    videoCodec->setParam(cr::video::VCodecParam::BITRATE_KBPS, 7500);
    videoCodec->setParam(cr::video::VCodecParam::GOP, 30);
    videoCodec->setParam(cr::video::VCodecParam::FPS, 30);

    // Create NV12 frame and fill by random values.
    const int width = 1280;
    const int height = 720;
    cr::video::Frame frameNv12(width, height, cr::video::Fourcc::NV12);
    for (uint32_t i = 0; i < frameNv12.size; ++i)
        frameNv12.data[i] = (uint8_t)i;

    // Create output HEVC frame.
    cr::video::Frame frameHEVC(width, height, cr::video::Fourcc::HEVC);

    // Create output file.
    FILE *outputFile = fopen("out.hevc", "w+b");

    // Params for moving object.
    int objectWidth = 128;
    int objectHeight = 128;
    int directionX = 1;
    int directionY = 1;
    int objectX = width / 4;
    int objectY = height / 2;

    // Encode and record 200 frames.
    for (uint32_t n = 0; n < 200; ++n)
    {
        // Draw moving object.
        memset(frameNv12.data, 128, width * height);
        for (int y = objectY; y < objectY + objectHeight; ++y)
            for (int x = objectX; x < objectX + objectHeight; ++x)
                frameNv12.data[y * width + x] = 255;
        objectX += directionX;
        objectY += directionY;
        if (objectX >= width - objectWidth - 5 || objectX <= objectWidth + 5)
            directionX = -directionX;
        if (objectY >= height - objectHeight - 5 || objectY <= objectHeight + 5)
            directionY = -directionY;

        // Encode.
        if (!videoCodec->transcode(frameNv12, frameHEVC))
        {
            std::cout << "Can't encode frame" << std::endl;
            continue;
        }

        // Write to file.
        fwrite(frameHEVC.data, frameHEVC.size, 1, outputFile);  
    }

    // Close file.
    fclose(outputFile);

    return 1;
}

You Might Also Like

VCodecLibav C++ lib. Fast HEVC, H264 and JPEG encoding/decoding based on Libav
VCodecLibav C++ lib. Fast HEVC, H264 and JPEG encoding/decoding based on Libav
€1,500.00
VCodecOneVpl C++ lib. Fast HEVC, H264 and JPEG encoding/decoding on Intel GPU
VCodecOneVpl C++ lib. Fast HEVC, H264 and JPEG encoding/decoding on Intel GPU
€1,500.00
VCodecV4L2 C++ lib. Fast video codec (H264, JPEG) library for Raspberry PI4 and Zero 2
VCodecV4L2 C++ lib. Fast video codec (H264, JPEG) library for Raspberry PI4 and Zero 2
€1,500.00
VCodecJetPack C++ lib. Fast video codec (H264, HEVC) for Nvidia Jetson platforms
VCodecJetPack C++ lib. Fast video codec (H264, HEVC) for Nvidia Jetson platforms
€1,000.00

ABOUT US

ConstantRobotics conducts scientific research in video processing, control protocols, and data exchange. Our diverse team of engineers develops software libraries and applications to simplify complex problems. Customers can test our libraries on their own data before making a purchase. Detailed documentation is available on our website. Our main focus is creating real-time algorithms that run on any platform.

CONTACTS

ConstantRobotics Sp. z o.o. Warsaw, Poland, VAT ID: PL5252930273, info@constantrobotics.com

LICENSES FOR SOFTWARE

Our software libraries are distributed under perpetual licenses. We don't restrict distribution of software libraries as a part of your hardware and software products. Our library prices are the same for all our clients and are based on the following principle: you can create a counterpart of our algorithms with the same or better characteristics, but the cost of your own research will be significantly higher than buying ready-made libraries. By purchasing our libraries you get a solution with proven performance. Two licenses are available for our products: a perpetual license for the compiled version of the library and a perpetual license for the source code. You pay once at the time of purchase. Download licenses:

  • LICENSE FOR SOURCE CODE OF SOFTWARE

  • LICENSE FOR COMPILED VERSION OF SOFTWARE

SEND US MESSAGE

Thank you! We will connect you soon.


© 2025 ConstantRobotics

Privacy Policy | Terms & Conditions | Archive