GithubHelp home page GithubHelp logo

phoenixstar7 / hm-opencl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mcv-univalle/hm-opencl

1.0 1.0 0.0 46.05 MB

HEVC Test Model With OpenCL Motion Estimation

License: Other

Makefile 0.54% OpenEdge ABL 27.24% C 4.28% C++ 67.33% Shell 0.61%

hm-opencl's Introduction

HM-OpenCL

HEVC Test Model With OpenCL Motion Estimation

HEVC Test Model version 16.4 with a module for performing the Motion Estimation process using a GPU. In this proyect is used OpenCL as parallel programming framework.

Added features

  • TEncOpenCL class: Module for Motion Estimation with OpenCL and it was included in source/Lib/TLibEncoder/ path. This class performs two task:
    • Check the OpenCL conditions for the system (search a OpenCL device support, init OpenCL variables)
    • Execute the module in the GPU
  • TEncOpenCL::findDevices method:verify that the system meets the conditions for running OpenCL (search OpenCL platform and search OpenCL device)
  • TEncOpenCL::compileKernelSource method: initialize the OpenCL variables. Moreover read and compile the OpenCl kernel
  • TEncOpenCL::calcMotionVectors method: Load the pixels of CTU and search area into the input buffers, calculate the sum of absolute differences for one CTU and store the information into temporal buffers for the calculus of motion vectors and rate-distortion cost
  • sad.cl file: Kernel source code for Sum of Absolute differences calculation. This file was included in cl/ path

Modifications

  • EncTop class: function for calling the OpenCL methods was added. Based of system verification show a activation of OpenCL message
  • TAppEncCfg class: Options OpenCL, OpenCLDevice and KernelOpenCL was added in the class in order to configuration file recognize them
  • TEncSearch class: two 3d-array was added:
    • TComMv allMotionVectors[2][33][NUM_CTU_PARTS]
    • Distortion allRuiCost[2][33][NUM_CTU_PARTS]
  • TComDataCU class: The method getIndexBlock was created for mapping the CU index with motion vectors and distortion cost 3D-arrays
  • TEncSearch::xMotionEstimation Method: a condicitonal was added in order to select either motion estimation is performed for the GPU or performed in CPU (no parallel)

Configuration

For motion estimation with OpenCL is necessary to add to configuration file the following parameters:
  • OpenCL:              int         (0: disabled - 1: enabled)
  • OpenCLDevice:   int         (OpenCL device ID)
  • KernelOpenCL: :  string    (path of file "sad.cl")

For more information of HEVC Test Model can to visit the next link:
https://hevc.hhi.fraunhofer.de/

hm-opencl's People

Contributors

gomezpirry avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.