High Throughput JPEG 2000 (HTJ2K)�for Media Applications
Michael Smith, Wavelet Consulting LLC�miksmith@gmail.com
1
Introducing HTJ2K
Joint ISO/ITU standard published in August 2019� ITU-T Rec T.814 | ISO 15444-15
Enhances JPEG 2000 Part 1
Lossless transcoding to/from JPEG 2000 Part 1
2
JPEG2000 Part-1 Compression
3
Color Transform, �Level Offset, �Normalization
Discrete �Wavelet�Transform
Quantization
Tier 1 Coding
- Context Labeling �- Binary Arithmetic �Coding
Tier 2 Coding
Image Samples
Compressed�Data
pixels
pixels
bits
quantized wavelet coefficients
wavelet �coefficients
JPEG2000 Part-15 Compression (HTJ2K)
4
Color Transform, �Level Offset, �Normalization
Discrete �Wavelet�Transform
Quantization
Fast Block Coder
- single CleanUp pass�- optional MagRef�- optional SigProp
Tier 2 Coding
Image Samples
Compressed�Data
pixels
pixels
bits
quantized wavelet coefficients
wavelet �coefficients
HTJ2K is fast
5
| 400 Mbps | 800 Mbps | Lossless (4000 Mbps) |
J2K Part1 | 22 fps | 11 fps | 2.4 fps |
HTJ2K | 112 fps | 98 fps | 73 fps * |
Speed-up | 5x | 9x | 30x |
CPU decoding on 2018 MacBook Pro laptop (6-core)
SDR 3840x2160 24p 4:4:4 10bit (Netflix Meridian content)
CPU encoding has similar speed-ups
* this is decoding at ~3x faster than real-time (24p), so the decoded data throughput is 3x the compressed data rate, i.e., 3 x 4000Mbp s= 12000Mbs = 1.5GBytes/sec which is approaching the limits of the internal SSD read-rate
HTJ2K is flexible
HTJ2K supports any image data structure
HTJ2K supports lossy or lossless compression
HTJ2K supports resolution scalability and spatial random access
HTJ2K supports a range of practical end-to-end latencies
6
HTJ2K is now
via JavaScript OpenHTjs - https://www.npmjs.com/package/openht
7
HTJ2K enables no-proxy
Try web demo here:
https://demo.noproxy.cloud/
8
HTJ2K Resolution Progressive Example
9
LL 2
LH 2
HL 2
HH 2
LH 1
HH 1
HL 1
Wavelet decomposition visualization
J2C code-stream
HTJ2K Resolution Progressive Example
10
LL 2
Not Downloaded or Decoded
Partial Code-stream Download and Decode
11 kilobytes
J2C code-stream
HTJ2K Resolution Progressive Example
11
LL 2
LH 2
HL 2
HH 2
Not Downloaded or Decoded
Partial code-stream download and decode
38 kilobytes
J2C code-stream
HTJ2K Resolution Progressive Example
12
LL 2
LH 2
HL 2
HH 2
LH 1
HH 1
HL 1
Not Downloaded or Decoded
Partial code-stream download and decode
140 kilobytes
J2C code-stream
HTJ2K Resolution Progressive Example
13
LL 2
LH 2
HL 2
HH 2
LH 1
HH 1
HL 1
Full code-stream download and decode
3857 kilobytes
J2C code-stream
HTJ2K is a Prores alternative
14
Bitrate Efficiency is as good or better than Prores.
These tests were performed using Resolve 17 on MacOS
XQ
XQ
4444
4444
HQ
HQ
422
422
LT
LT
Proxy
Proxy
HTJ2K Lossless Performance on 16bit half-float imagery
15
ACES OpenEXR 16bit half-float 3840x2160 24p 4:4:4 �Netflix Meridian short – first 10000 frames
Latency vs quality of previous codecs
Previous codecs can be used for either high quality or very low latency, but not both
HTJ2K supports a range of latencies
End-to-End latency is affected by several factors, including:
HTJ2K supports a range of latencies
HTJ2K 11-lines
More latency means more quality,
how much latency do you need?
XS – Light Subline
XS – Light
HTJ2K 23-lines
XS - Main
HTJ2K 3-frames
Examples are compressed at 2 bits per pixel with cropping and 4x zoom for display in PowerPoint
More latency means more quality, how much latency do you need?
Trend in this direction
Plot from:�T. Edwards and M. D. Smith, "High Throughput JPEG 2000 for Broadcast and IP-Based Applications," in SMPTE Motion Imaging Journal, vol. 130, no. 4, pp. 22-35, May 2021, doi: 10.5594/JMI.2021.3066183.�https://ieeexplore.ieee.org/document/9424052
HTJ2K has good performance across a range of latencies
HTJ2K supports multi-generation encode/decode
Plot from:�T. Edwards and M. D. Smith, "High Throughput JPEG 2000 for Broadcast and IP-Based Applications," in SMPTE Motion Imaging Journal, vol. 130, no. 4, pp. 22-35, May 2021, doi: 10.5594/JMI.2021.3066183.�https://ieeexplore.ieee.org/document/9424052
HTJ2K is the future
21
APPENDIX
22
HTJ2K is not JPEG-XS
23
Feature | HTJ2K | JPEG-XS |
Supports low latency (sub-frame) | YES | YES |
Supports traditional high latency (frame) | YES | NO |
Lossy coding (can be Visually Lossless) | YES | YES |
16bit Mathematically Lossless Coding | YES | NO |
Fast encoding/decoding on different platforms | YES | YES |
Lossless transcoding to/from J2K | YES | NO |
Open source | YES | TBD |
Royalty-free Intent | YES | NO |