User Rating 0.0
Total Usage 0 times

Drop BPG files here

or click to browse

92%

Higher values preserve detail but increase file size

Is this tool helpful?

Your feedback helps us improve.

About

BPG (Better Portable Graphics) achieves 30 - 50% smaller file sizes than JPEG at equivalent visual quality by leveraging HEVC intra-frame compression. The problem: virtually no browser, image viewer, or CMS supports BPG natively. Opening a .bpg file in Windows Photos or uploading it to WordPress fails silently. This tool embeds a full HEVC decoder compiled to JavaScript, performing real decompression of transform coefficients, motion compensation, and loop filtering - identical to desktop decoders. Output quality is user-controllable; setting quality below 85% introduces visible DCT artifacts around edges. For archival photography originally shot in BPG, maintain quality at 92 - 100% to preserve detail.

bpg converter bpg to jpg bpg decoder image converter hevc image better portable graphics

Formulas

BPG stores pixel data in YCbCr color space. Conversion to RGB for JPEG output uses ITU-R BT.601 matrix transformation:

R = Y + 1.402 (Cr 128)
G = Y 0.344136 (Cb 128) 0.714136 (Cr 128)
B = Y + 1.772 (Cb 128)

where Y = luminance (0 - 255), Cb = blue-difference chroma, Cr = red-difference chroma. JPEG quality Q maps to quantization table scaling:

S = {
5000Q if Q < 50200 2Q if Q 50

where S = scaling factor applied to baseline quantization matrices. Lower Q values produce smaller files with more compression artifacts.

Reference Data

FormatCompressionMax ResolutionColor DepthAlpha ChannelBrowser SupportTypical Use Case
BPGHEVC Intra (Lossy/Lossless)16384 × 163848 - 14 bitYesNoneHigh-compression photography
JPEGDCT (Lossy)65535 × 655358 bitNoUniversalWeb images, photos
PNGDEFLATE (Lossless)Unlimited1 - 16 bitYesUniversalGraphics, screenshots
WebPVP8 (Lossy/Lossless)16383 × 163838 bitYesModern browsersWeb optimization
AVIFAV1 Intra (Lossy/Lossless)65535 × 655358 - 12 bitYesChrome, FirefoxNext-gen web images
HEICHEVC (Lossy/Lossless)8192 × 81928 - 10 bitYesSafari onlyApple device photos
JPEG XLVarDCT/ModularUnlimited8 - 32 bitYesLimitedFuture replacement
TIFFVarious (LZW, ZIP)Unlimited1 - 32 bitYesNone nativePrint, archival
GIFLZW (Lossless)65535 × 655358 bit indexedYes (1-bit)UniversalAnimations, icons
BMPNone/RLE32767 × 327671 - 32 bitYesUniversalWindows legacy
ICONone/PNG256 × 2561 - 32 bitYesUniversalFavicons, icons
SVGXML (Vector)InfiniteN/AYesUniversalLogos, illustrations

Frequently Asked Questions

BPG uses patented HEVC/H.265 compression. Browser vendors and OS developers avoided native support due to licensing costs from MPEG-LA. You need a dedicated decoder - this tool embeds one compiled to JavaScript, performing full HEVC intra-frame decompression client-side.
Use quality 92 - 100% for archival conversion. BPG at quality 28 roughly equals JPEG at quality 80 visually. Converting BPG to JPEG below 85% compounds quantization artifacts from both encoders, degrading edges and gradients noticeably.
No. JPEG does not support alpha channels. Transparent regions are composited against white during conversion. If you need transparency, export the decoded image data to PNG instead - this tool focuses on JPEG output for maximum compatibility.
BPG employs HEVC transforms with variable block sizes (4×4 to 64×64 CTUs), advanced motion prediction repurposed for intra-frame coding, Sample Adaptive Offset filtering, and CABAC entropy coding. JPEG uses fixed 8×8 DCT blocks with simpler Huffman coding, limiting compression efficiency.
The decoder runs in browser memory. Practical limits are approximately 50MB input files or 16384×16384 pixel dimensions. Larger files may cause memory errors on devices with under 4GB RAM. Processing occurs entirely on your device - no server upload required.
HEVC decompression involves inverse integer transforms, deblocking filters, and SAO post-processing for each coding tree unit. The JavaScript decoder is slower than native implementations. A 4000×3000 pixel image typically decodes in 2 - 5 seconds depending on device CPU.