Comments (8)
Hi @a-storm, PyTurboJPEG is a wrapper of libjpeg-turbo (TurboJPEG API), and there is no public API to directly decode JPEG to DCT coefficients through TurboJPEG API. However, this might be done through the tjTransform function call to capture the raw DCT coefficients within the callback. Unfortunately, the implementation effort is high, I will try to investigate the possibility this year. Thanks for your feedback.
from pyturbojpeg.
Thank you for your respond! I'll try to explore tjTransform.
from pyturbojpeg.
Hi @lilohuang , according to turbo jpeg doc, there are two function: jpeg_read_coefficients()
and jpeg_write_coefficients()
, which could read the entire image into a set of virtual coefficient-block arrays, one array per component. The return value is a pointer to an array of virtual-array descriptors. Each virtual array can be accessed directly using the JPEG memory manager's access_virt_barray method (see Memory management, below, and also read structure.txt's discussion of virtual array handling). Or, for simple transcoding to a different JPEG file format, the array list can just be handed directly to jpeg_write_coefficients().
Is there any way I could call these two functions from this python wrapper? Thanks.
from pyturbojpeg.
@xiaonengmiao, unfortunately not, because jpeg_read_coefficients() and jpeg_write_coefficients(), are not TurboJPEG API, they're libjpeg-turbo low-level API, you need to write C program to access them. Thanks. PyTurboJPEG only provides python wrapper of TurboJPEG API.
from pyturbojpeg.
@xiaonengmiao, unfortunately not, because jpeg_read_coefficients() and jpeg_write_coefficients(), are not TurboJPEG API, they're libjpeg-turbo low-level API, you need to write C program to access them. Thanks. PyTurboJPEG only provides python wrapper of TurboJPEG API.
Understood, thanks anyway.
from pyturbojpeg.
@a-storm were you able to use the tjTransform to obtain/modify the DCT table? I wanted to hook into DCT table and replace the coefficients with ones calculated by my algorithm.
from pyturbojpeg.
@nixenos nope. I calculated them with scipy. share it please if you succeed.
from pyturbojpeg.
@lilohuang is calling tjTransform for replacing DCT coefficients supported by this library?
@a-storm sure, I'm planning to try it anyways, if it won't work I might need to switch my project to C++, which would be very unfortunate as I'm on a tight time schedule (it's for my masters thesis and I need to get it working soon hehe)
from pyturbojpeg.
Related Issues (20)
- support partial frame decoding HOT 4
- 'Unable to locate turbojpeg library automatically. ' 'You may specify the turbojpeg library path manually.\n' 'e.g. jpeg = TurboJPEG(lib_path)' HOT 10
- Cannot install due to timeout HOT 2
- Unable to locate turbojpeg library automatically. You may specify the turbojpeg library path manually HOT 5
- Tag releases on GitHub HOT 1
- Lossless drop HOT 1
- lose rotation info using this repo HOT 10
- encoding a grayscale image HOT 2
- Multiple transform operations and modification of dct coefficents during transform HOT 2
- `scale_with_quality()` returns empty data if decoding the image to be scaled triggers a warning. HOT 1
- lib paths missing on NetBSD HOT 3
- silent crash on wrong array shape HOT 1
- About Benchmark Details HOT 3
- OSX Homebrew lib path for Apple M1 HOT 2
- Not working on mac m2 with python3.7 HOT 1
- Unable to Identify TurboJPEG Class HOT 5
- Pass icc_profile for picture's encode HOT 2
- How to get encoded data without marker? HOT 5
- Problem with copynone using libjpeg-turbo 3.0.0 HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyturbojpeg.