This recipe shows how to convert HD SDR footage (1080p or 720p) into high-quality 4K HDR10 using Pixop’s Deep Restoration 2 (DVRES2) Fine-tuning and InfinteHDR filters. Under the hood, we leverage the built-in config ID 5a76dfdd-ab15-4137-b919-e7a0f256a5d6
(“HQ live action, enhanced, 4K, HDR10”), which handles codec selection, upscaling, inverse tone-mapping and HDR color-space mapping for you.
When to Use This Recipe
Use this processing recipe when:
- Your source footage is HD SDR (e.g., 1080p or 720p, progressive).
- You want to produce a UHD (4K) HDR10 deliverable (800 nits) with minimal manual configuration.
- You need:
- AI-powered detail restoration via Pixop Deep Restoration 2 Fine-tuning, which upscales footage without deblurring or denoising, preserving fine details and texture, while injecting realistic details into lossy compressed footage.
- ML-powered inverse tone-mapping via Pixop InfinteHDR, which performs automatic SDR to HDR expansion, while compensating for over-exposure.
- Built-in color-space conversion from SDR (Rec.709) → HDR10 (Rec.2020 / SMPTE2084).
- A 10-bit HEVC-encoded file in a MOV container.
Recommended Configuration
Pixop provides a built-in configuration that includes all required filters and settings. Simply reference confId: 5a76dfdd-ab15-4137-b919-e7a0f256a5d6
. You can view this built-in config directly in our API Reference:
Retrieve video processing configuration details (ReplaceconfId
with 5a76dfdd-ab15-4137-b919-e7a0f256a5d6
.)
How to Use This Recipe
-
Ensure you have a valid API key (
X-API-Key: YOUR_API_KEY
). See our Quick Start Guide for details. -
Import your source video (if not already imported) from S3 or HTTPS. Example (HTTPS import):
curl --request POST \ --url https://api.pixop.com/api/v1/videos/in/https \ --header 'X-API-Key: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "name": "My Video", "url": "https://example.com/myvideo.mp4" } '
-
Start the processing job, using the
SOURCE_VIDEO_ID
and referencing the built-inconfId: 5a76dfdd-ab15-4137-b919-e7a0f256a5d6
:curl --request POST \ --url 'https://api.pixop.com/api/v1/videos/SOURCE_VIDEO_ID/processing/start/5a76dfdd-ab15-4137-b919-e7a0f256a5d6?startPosMs=0&endPosMs=10000' \ --header 'X-API-Key: YOUR_API_KEY' \ --header 'accept: application/json'
The
startPosMs
andendPosMs
parameters limit processing to the first 10 seconds. We recommend testing on short clips to keep costs down; to process the entire video, simply remove these parameters. -
Monitor the job status by polling the Video Processing Status endpoint until the status updates to
DONE
:curl --request GET \ --url https://api.pixop.com/api/v1/videos/TARGET_VIDEO_ID/processing/status \ --header 'X-API-Key: YOUR_API_KEY' \ --header 'accept: application/json'
Alternatively, you can create a webhook to receive status updates.
-
Export the processed 4K HDR10 file to S3 or download it via HTTPS. Example (HTTPS download):
curl --request POST \ --url https://api.pixop.com/api/v1/videos/TARGET_VIDEO_ID/out/https \ --header 'X-API-Key: YOUR_API_KEY' \ --header 'accept: application/json'
Full API usage details are available in our API Reference and Quick Start Guide.
Output Example
- Container: MOV
- Codec: HEVC (H.265), 10-bit (4:2:0)
- Resolution: 3840×2160 (UHD 4K)
- Color Space: BT.2020, SMPTE2084 (HDR10), limited range, mastering display (800 nits)
- Filter: DVRES2 (Pixop Deep Restoration 2 Fine-tuning)
- Inverse Tone-Mapper: INFINTEHDR (Pixop InfiniteHDR)
Below is a sample workflow diagram (for illustration only):
flowchart TB A(["<b>HD SDR Video</b><br/>(1080p or 720p, AVC 8-bit, Rec.709)"]) A -->|"Import (S3 or HTTPS)"| B["<b>Pixop Processing Job</b><br/>(“HQ live action, enhanced, 4K, HDR10“ built-in config)"] B -->|"Export (S3 or HTTPS download)"| C(["<b>4K HDR10 Deliverable</b><br/>(3840×2160, HEVC 10-bit, BT.2020 / SMPTE2084)"])
Tips & Considerations
-
Processing Time: Pixop Deep Restoration 2 (DVRES2) Fine-tuning combined with Pixop InfiniteHDR and 10-bit HEVC encoding increases job duration, so allow extra time compared to simple upscaling.
-
Source Quality: Best results come from clean, well-produced HD SDR masters. Heavy noise, compression artifacts and over-exposure may limit HDR mapping quality.
-
Color-Space Metadata: The built-in config includes mastering display data, Maximum Content Light Level (Max CLL), and Maximum Frame Average Light Level (Max FALL) for 800 nits. If you need different HDR parameters, consider creating a custom configuration (see below).
-
Custom Configs: To tweak HDR metadata (e.g., Max FALL, Max CLL) or use a different tone-mapping algorithm, modify this JSON (copied from the built-in config), and then call:
curl --request POST \ --url https://api.pixop.com/api/v1/processing-configurations \ --header 'X-API-Key: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "name": "Custom: HQ live action, enhanced, 4K, HDR10", "description": "Custom: Upscaling to 4K resolution for high-quality live action and 800 nits HDR10 upconversion.", "options": { "encodingConfiguration": { "codec": "HEVC", "pixelFormat": { "yuv": "4:2:0", "bitDepth": 10 } }, "container": "MOV", "filters": { "scaler": "DVRES2" }, "filterSettings": { "dvres2Variant": "FINE_TUNING", "resolution": { "tag": "UHD_4K", "aspectRatioTag": "DISPLAY" } }, "processingSettings": { "outputColorSpaceConversion": { "mappingMode": "STRICT_USER", "colorProfile": { "colorSpace": "BT2020NC", "colorPrimaries": "BT2020", "transferCharacteristics": "SMPTE2084", "colorRange": "LIMITED", "hdrFormat": "HDR10", "masteringDisplay": { "red": { "x": 0.68, "y": 0.32 }, "green": { "x": 0.265, "y": 0.69 }, "blue": { "x": 0.15, "y": 0.06 }, "whitePoint": { "x": 0.3127, "y": 0.329 } }, "maxCll": 800, "maxFall": 200 }, "metadataOnly": false, "inverseToneMapper": { "algorithm": "INFINITEHDR", "outputNits": 800, "saturationBoost": 1.25 } }, "outputScanning": "AUTO" } } } '
Then supply your new
confId
instead of the built-in one.