{"id":1865,"date":"2026-10-11T09:13:00","date_gmt":"2026-10-11T13:13:00","guid":{"rendered":"https:\/\/www.xconvert.com\/blog\/?p=1865"},"modified":"2026-08-31T23:05:41","modified_gmt":"2026-09-01T03:05:41","slug":"jpeg-quality-settings-explained","status":"publish","type":"post","link":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained","title":{"rendered":"JPEG Quality Settings Explained: What &#8217;95&#8217; Actually Does"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Drop a photo\u2019s JPEG quality from 100 to 95 and the file often halves. Go from 95 to 90 and it barely moves. Go from 50 to 45 and the picture visibly falls apart. That behaviour makes no sense if you think the number is a percentage of anything \u2014 and it isn\u2019t. \u201cQuality 95\u201d is an index into a formula that scales the table JPEG uses to throw information away, and once you know the formula the whole slider stops being mysterious.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Quick answer:<\/strong> JPEG quality is not a percentage of retained detail. It\u2019s an index that scales the <strong>quantization tables<\/strong>. In libjpeg \u2014 the reference implementation almost everything descends from \u2014 quality <strong>50<\/strong> uses the standard\u2019s example tables unchanged, quality <strong>50\u2013100<\/strong> scales them by <strong>200 \u2212 2Q<\/strong> percent, and quality <strong>1\u201350<\/strong> scales them by <strong>5000 \u00f7 Q<\/strong> percent. So 95 \u2192 10% of the base table, 90 \u2192 20%, 80 \u2192 40%, 50 \u2192 100%, 25 \u2192 200%. There\u2019s also a hard step you can\u2019t see in the number: libvips, which xconvert encodes with, <strong>automatically turns chroma subsampling off at Q \u2265 90<\/strong>, so 90 and 89 differ by more than one point. On xconvert, JPEG <em>conversion<\/em> pages give you a preset ladder (Highest 100 \u00b7 Very High 95 \u00b7 High 90 \u00b7 Medium 80 \u00b7 Low 70 \u00b7 Very Low 60 \u00b7 Lowest 50); <a href=\"https:\/\/www.xconvert.com\/compress-jpeg\">\/compress-jpeg<\/a> hides that ladder and hands you the raw slider, which sits at <strong>65<\/strong> when you select it.<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Jump to a section<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"#index\">The number is an index, not a percentage<\/a><\/li><li><a href=\"#subsampling\">The cliff at 90: chroma subsampling<\/a><\/li><li><a href=\"#hundred\">Why quality 100 still isn\u2019t lossless<\/a><\/li><li><a href=\"#map\">What xconvert\u2019s presets and sliders actually set<\/a><\/li><li><a href=\"#tool\">Compress a JPEG on xconvert<\/a><\/li><li><a href=\"#faq\">FAQ<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"index\">The number is an index, not a percentage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JPEG discards detail in one specific place. Each 8\u00d78 block of the image is converted into frequency coefficients, and then every coefficient is <strong>divided by a number from a quantization table and rounded<\/strong>. Big divisors mean coarse rounding, which means fewer distinct values to store and a smaller file. That rounding <em>is<\/em> the loss \u2014 everything else in JPEG is reversible bookkeeping.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The quality slider does exactly one thing: it scales that table. libjpeg\u2019s own source spells out the mapping:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><em>&quot;The basic table is used as-is (scaling 100) for a quality of 50. Qualities 50\u2026100 are converted to scaling percentage 200 &#8211; 2<\/em>Q; note that at Q=100 the scaling is 0, which will cause jpeg_add_quant_table to make all the table entries 1 (hence, minimum quantization loss). Qualities 1\u202650 are converted to scaling percentage 5000\/Q.&quot;*<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Written out, that\u2019s <code>scaling = 200 \u2212 2Q<\/code> above 50 and <code>scaling = 5000 \/ Q<\/code> below it \u2014 and the second half is a hyperbola, not a line.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"1027\" src=\"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/jpeg-quality-scaling.png\" alt=\"Bar chart showing how far libjpeg scales the JPEG quantization table at each quality value, from 0 percent at quality 100 to 500 percent at quality 10\" class=\"wp-image-1863\" srcset=\"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/jpeg-quality-scaling.png 1600w, https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/jpeg-quality-scaling-300x193.png 300w, https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/jpeg-quality-scaling-1024x657.png 1024w, https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/jpeg-quality-scaling-768x493.png 768w, https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/jpeg-quality-scaling-1536x986.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Two consequences explain everyday behaviour:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>The top of the range is squeezed.<\/strong> Between Q 90 and Q 100 the scaling runs 20% \u2192 0%: a huge relative change in how precisely coefficients are stored, which is why file size climbs so steeply at the top while the picture barely changes. You\u2019re paying a lot of bytes for precision below the threshold of vision.<\/li><li><strong>The bottom is a cliff.<\/strong> Between Q 20 and Q 10 the scaling goes 250% \u2192 500%. Each step down multiplies the divisors far faster than the number suggests, which is why low-quality JPEGs collapse suddenly rather than degrade gracefully.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Quality <strong>50 is the anchor<\/strong>, not the midpoint of anything: it\u2019s the setting at which JPEG uses the example quantization tables published in the standard, untouched.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"subsampling\">The cliff at 90: chroma subsampling<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s a second lever hiding behind the same slider. JPEG splits an image into brightness (luma) and colour (chroma), and because human vision is far more sensitive to brightness than to colour, encoders usually store the colour channels at <em>half resolution<\/em> \u2014 chroma subsampling. It\u2019s a big, cheap saving on photographs and a disaster on anything with hard colour edges: red text on white, screenshots, logos, charts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">xconvert encodes JPEG through libvips, whose documentation states the rule plainly: <em>\u201cChroma subsampling is normally automatically disabled for Q &gt;= 90.\u201d<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So the slider is really controlling two things at once, and one of them is a step function:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Quality<\/th><th>Chroma<\/th><th>What it\u2019s good for<\/th><\/tr><\/thead><tbody><tr><td>100<\/td><td>Full resolution (4:4:4)<\/td><td>Archival masters. Size balloons for detail nobody can see<\/td><\/tr><tr><td>95<\/td><td>Full resolution<\/td><td>xconvert\u2019s <strong>Very High<\/strong> default on conversions \u2014 safe for photos you\u2019ll edit again<\/td><\/tr><tr><td>90<\/td><td>Full resolution<\/td><td>The lowest rung with full colour. A strong \u201chigh-quality web\u201d setting<\/td><\/tr><tr><td>85<\/td><td>Subsampled<\/td><td>Common web default. Colour detail starts being averaged across pixel pairs<\/td><\/tr><tr><td>80<\/td><td>Subsampled<\/td><td>xconvert\u2019s <strong>Medium<\/strong>. Fine for photographs, visible on flat colour and text<\/td><\/tr><tr><td>75<\/td><td>Subsampled<\/td><td>libvips\u2019 own default Q<\/td><\/tr><tr><td>65<\/td><td>Subsampled<\/td><td>Where xconvert\u2019s <strong>Image Quality (%)<\/strong> slider sits on \/compress-jpeg<\/td><\/tr><tr><td>50<\/td><td>Subsampled<\/td><td>The standard\u2019s example tables, unmodified. Ringing around edges is visible<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If your image is a screenshot, a diagram, coloured text, or a logo, that table is the reason to either stay at <strong>90 or above<\/strong> \u2014 or to not use JPEG at all. <a href=\"https:\/\/www.xconvert.com\/blog\/png-vs-webp-vs-jpg\/\">PNG vs WebP vs JPG<\/a> covers which format that content actually wants.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"hundred\">Why quality 100 still isn\u2019t lossless<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">libjpeg\u2019s comment is careful with its words: at Q=100 every table entry becomes 1, giving <em>\u201cminimum quantization loss\u201d<\/em> \u2014 minimum, not zero. Even with divisors of 1, three things have already happened to your pixels: RGB is converted to YCbCr in finite precision and doesn\u2019t convert back to exactly the same integers; the frequency transform is computed and rounded in fixed-point arithmetic; and below Q 90, half your colour resolution is gone before quantization even starts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So a quality-100 JPEG is enormous <em>and<\/em> still not bit-identical to the source. If you need bit-exact pixels, the answer is a lossless format, not a high JPEG number.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same logic explains <strong>generation loss<\/strong>. Every save re-runs the transform-and-round, so re-saving a JPEG \u2014 even at a <em>higher<\/em> quality number \u2014 cannot recover what the previous save discarded; it only adds fresh rounding on top of the damage. Make all your edits, then export once. Never chain compressions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"map\">What xconvert\u2019s presets and sliders actually set<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">xconvert exposes JPEG quality two different ways, and which one you see depends on the kind of page you\u2019re on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On conversion pages<\/strong> \u2014 anything of the form <em>X to JPG<\/em> \u2014 you get a <strong>Quality Preset<\/strong> dropdown. Those words map to exact numbers:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Preset<\/th><th>Quality value<\/th><th>Quantization scaling<\/th><th>Chroma<\/th><\/tr><\/thead><tbody><tr><td>Highest<\/td><td>100<\/td><td>0%<\/td><td>Full resolution<\/td><\/tr><tr><td><strong>Very High (Recommended)<\/strong> \u2014 the default<\/td><td><strong>95<\/strong><\/td><td>10%<\/td><td>Full resolution<\/td><\/tr><tr><td>High<\/td><td>90<\/td><td>20%<\/td><td>Full resolution<\/td><\/tr><tr><td>Medium<\/td><td>80<\/td><td>40%<\/td><td>Subsampled<\/td><\/tr><tr><td>Low<\/td><td>70<\/td><td>60%<\/td><td>Subsampled<\/td><\/tr><tr><td>Very Low<\/td><td>60<\/td><td>80%<\/td><td>Subsampled<\/td><\/tr><tr><td>Lowest<\/td><td>50<\/td><td>100%<\/td><td>Subsampled<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On <a href=\"https:\/\/www.xconvert.com\/compress-jpeg\">\/compress-jpeg<\/a><\/strong> the preset ladder is deliberately hidden, because a preset can\u2019t promise a smaller file \u2014 it promises a quality setting, and a photo already saved at 70 gets <em>bigger<\/em> if you \u201ccompress\u201d it at 95. Instead, <strong>Image Compression<\/strong> offers three modes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Target file size (%) (Best)<\/strong> \u2014 the default, opening at <strong>80<\/strong>. The page states the arithmetic itself: <em>\u201cIf your file is 10 MB, then selecting 80 will produce a 8 MB file.\u201d<\/em><\/li><li><strong>Specific file size<\/strong> \u2014 an exact number with a B \/ KB \/ MB unit.<\/li><li><strong>Image Quality (%)<\/strong> \u2014 the raw libjpeg-style number, a 1\u2013100 slider that opens at <strong>65<\/strong>.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">One thing worth knowing before you reach for the third one. In the size-target modes, <strong>Auto Scale<\/strong> is on and the panel says so: <em>\u201c[Smart Scaling Active] We will automatically adjust the image dimensions to maximize quality while hitting your target file size. Manual resolution settings are hidden to prevent pixelation.\u201d<\/em> Switch to <strong>Image Quality (%)<\/strong> and Smart Scaling steps aside \u2014 which also reveals the <strong>Image resolution<\/strong> group, and that group opens on <strong>Resolution Percentage<\/strong> at <strong>80%<\/strong>. The page does tell you \u2014 an <em>Estimated impact<\/em> panel appears under the slider reading \u201cdimensions reduced to 80.00% of the original\u201d \u2014 but it is easy to scroll straight past, and it means a quality-mode pass shrinks your pixel dimensions by 20% as well unless you set Image resolution to <strong>Keep original<\/strong>. If you want to see what the quality number alone does, set that first.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tool\">Compress a JPEG on xconvert<\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>Open <a href=\"https:\/\/www.xconvert.com\/compress-jpeg\">xconvert.com\/compress-jpeg<\/a> and click <strong>Upload<\/strong> to add your image (from your computer, Google Drive, or Dropbox). The header shows the file\u2019s <strong>WxH<\/strong>, its <strong>Size<\/strong>, and a live <strong>Est. Size<\/strong> for your current settings.<\/li><li>Open <strong>Advanced Options<\/strong>. <strong>IMAGE COMPRESSION<\/strong> opens on <strong>Target file size (%) (Best)<\/strong> with the <strong>File size (%)<\/strong> slider at <strong>80<\/strong> \u2014 leave it there if \u201c20% smaller, decide the quality for me\u201d is what you want.<\/li><li>To drive the quality number yourself, click <strong>Image Quality (%)<\/strong> and set the <strong>Quality Percentage<\/strong> slider. Use <strong>90 or above<\/strong> for screenshots, logos and coloured text (that\u2019s where chroma subsampling switches off); <strong>75\u201385<\/strong> is ample for photographs.<\/li><li>Still in that mode, check the <strong>Image resolution<\/strong> group that just appeared. It opens on <strong>Resolution Percentage 80<\/strong> \u2014 switch it to <strong>Keep original<\/strong> if you don\u2019t want the dimensions changed too.<\/li><li>Leave <strong>FILE EXTENSION<\/strong> on <strong>Same as source<\/strong> (or pick <strong>JPEG<\/strong> \/ <strong>JPG<\/strong>), click <strong>Compress<\/strong>, and download.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Your file is uploaded over an encrypted connection, processed on our servers, and <strong>deleted automatically a few hours later<\/strong>. No account, no watermark.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the wider view of what shrinks a JPEG \u2014 quality, dimensions, and metadata together \u2014 see <a href=\"https:\/\/www.xconvert.com\/blog\/compress-a-jpg-jpeg-image\/\">how to compress a JPG\/JPEG<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">FAQ<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">Is JPEG quality 100 lossless?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">No. At Q=100 libjpeg forces every quantization entry to 1, which its own source describes as <em>\u201cminimum quantization loss\u201d<\/em> \u2014 the least possible, not none. The RGB-to-YCbCr colour conversion and the frequency transform are both computed in finite precision, so a round trip won\u2019t return your exact original pixels. What you do get is a very large file for detail you can\u2019t see. If bit-exact matters, use a lossless format.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">What quality should I use for photos on the web?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">For photographs, <strong>75\u201385<\/strong> is the honest working range: below 85 you\u2019re subsampling colour, which photographs tolerate well, and the scaling factor at 80 (40%) still keeps fine detail. Go to <strong>90 or above<\/strong> only when the image has hard colour edges \u2014 screenshots, diagrams, coloured text, logos \u2014 because that\u2019s where the encoder stops halving the colour resolution. Above 95 you\u2019re mostly buying file size.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Why does the file get <em>bigger<\/em> when I re-save at a higher quality?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Because the quality number sets how precisely the <em>current<\/em> pixels are stored, not how good they were. If a photo was already saved at 70, its detail is gone; saving it again at 95 stores the surviving, already-damaged pixels with far more precision \u2014 including the blocking artifacts, which are expensive to encode faithfully. You get a larger file that looks no better. This is also why \u201ccompress\u201d tools that only offer a quality preset can inflate a file.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Does \u201cquality 80\u201d mean the same thing in every program?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">No, and it\u2019s a common source of confusion. The 0\u2013100 scale comes from libjpeg\u2019s convention, but an encoder is free to use different base tables or a different mapping, and some applications expose an entirely different scale \u2014 a 0\u201312 slider, for example. Two files both labelled \u201cquality 80\u201d from different tools can differ noticeably in size and appearance. The scaling formula quoted above describes libjpeg and the encoders that follow it, which is most of them.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Isn\u2019t 65 too low for the \/compress-jpeg default?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s a deliberate choice for a <em>compressor<\/em>: the page\u2019s job is to make the file smaller, and 65 reliably does that for photos coming out of phones and cameras, which are typically saved in the 85\u201395 range. It is on the low side for graphics, so if you\u2019re compressing a screenshot or anything with text, raise it to 90+ or use the <strong>Target file size (%)<\/strong> mode instead and let Smart Scaling protect the detail.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Does lowering the quality make the image blurry?<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Not blurry exactly \u2014 JPEG\u2019s failure modes are specific and recognisable. You get <strong>blocking<\/strong> (visible 8\u00d78 squares in smooth gradients like skies), <strong>ringing<\/strong> (ghostly halos next to sharp edges, especially text), and <strong>colour bleeding<\/strong> where subsampling averages chroma across neighbouring pixels. Blur is what resizing does. If your image looks soft rather than blocky, the dimensions were reduced \u2014 check whether <strong>Image resolution<\/strong> was left on <strong>Resolution Percentage 80<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Last verified 2026-08-31.<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/raw.githubusercontent.com\/libjpeg-turbo\/libjpeg-turbo\/main\/src\/jcparam.c\">libjpeg-turbo \u2014 <code>jcparam.c<\/code><\/a> \u2014 <code>jpeg_quality_scaling<\/code>: \u201cThe basic table is used as-is (scaling 100) for a quality of 50. Qualities 50\u2026100 are converted to scaling percentage 200 &#8211; 2*Q \u2026 at Q=100 the scaling is 0, which will cause jpeg_add_quant_table to make all the table entries 1 (hence, minimum quantization loss). Qualities 1\u202650 are converted to scaling percentage 5000\/Q.\u201d<\/li><li><a href=\"https:\/\/www.libvips.org\/API\/current\/method.Image.jpegsave.html\">libvips \u2014 <code>Image.jpegsave<\/code><\/a> \u2014 \u201cUse <code>Q<\/code> to set the JPEG compression factor. Default 75\u201d and \u201cChroma subsampling is normally automatically disabled for Q &gt;= 90.\u201d<\/li><li><a href=\"https:\/\/www.w3.org\/Graphics\/JPEG\/itu-t81.pdf\">ITU-T Recommendation T.81 \u2014 the JPEG standard (W3C\u2019s copy of the specification)<\/a> \u2014 defines the DCT-based baseline process and publishes the example quantization tables that libjpeg scales.<\/li><li>xconvert\u2019s own configuration and live tool, checked 2026-08-31 \u2014 the preset-to-number map (Highest 100 \u00b7 Very High 95 \u00b7 High 90 \u00b7 Medium 80 \u00b7 Low 70 \u00b7 Very Low 60 \u00b7 Lowest 50), the <strong>Image Quality (%)<\/strong> slider default of 65 on \/compress-jpeg, the <strong>Target file size (%)<\/strong> default of 80, and and the <strong>Image resolution \u2192 Resolution Percentage 80<\/strong> that appears in quality mode. Confirmed by uploading a 1600&#215;1200 JPEG to \/compress-jpeg on 2026-08-31: switching to Image Quality (%) revealed the Image resolution group with Resolution Percentage selected, the By Percentage slider at 80, and an Estimated impact panel reading \u201cdimensions reduced to 80.00% of the original\u201d.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>JPEG quality isn&#8217;t a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.<\/p>\n","protected":false},"author":3,"featured_media":1862,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,14],"tags":[],"class_list":["post-1865","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to-guides","category-tools"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JPEG Quality Settings Explained: What &#039;95&#039; Actually Does<\/title>\n<meta name=\"description\" content=\"JPEG quality isn&#039;t a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JPEG Quality Settings Explained: What &#039;95&#039; Actually Does\" \/>\n<meta property=\"og:description\" content=\"JPEG quality isn&#039;t a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained\" \/>\n<meta property=\"og:site_name\" content=\"XConvert Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/xconvertcom\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-11T13:13:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/featured-8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"840\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"James\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@xconvert_com\" \/>\n<meta name=\"twitter:site\" content=\"@xconvert_com\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained\"},\"author\":{\"name\":\"James\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/#\\\/schema\\\/person\\\/3434db135e6a7f239ba8414244df9845\"},\"headline\":\"JPEG Quality Settings Explained: What &#8217;95&#8217; Actually Does\",\"datePublished\":\"2026-10-11T13:13:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained\"},\"wordCount\":2099,\"image\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/featured-8.png\",\"articleSection\":[\"How To Guides\",\"Tools\"],\"inLanguage\":\"en-CA\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained\",\"url\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained\",\"name\":\"JPEG Quality Settings Explained: What '95' Actually Does\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/featured-8.png\",\"datePublished\":\"2026-10-11T13:13:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/#\\\/schema\\\/person\\\/3434db135e6a7f239ba8414244df9845\"},\"description\":\"JPEG quality isn't a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#primaryimage\",\"url\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/featured-8.png\",\"contentUrl\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/featured-8.png\",\"width\":1600,\"height\":840,\"caption\":\"The xconvert JPEG compressor at \\\/compress-jpeg with the Upload button highlighted \u2014 set the JPEG quality number yourself\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/jpeg-quality-settings-explained#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.xconvert.com\\\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JPEG Quality Settings Explained: What &#8217;95&#8217; Actually Does\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/\",\"name\":\"XConvert Blog\",\"description\":\"Blog for XConvert file converter\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/#\\\/schema\\\/person\\\/3434db135e6a7f239ba8414244df9845\",\"name\":\"James\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/46be416a360dc6b95bffc4b116d86872c03f8d8e4c1047a3a08033742f03d04d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/46be416a360dc6b95bffc4b116d86872c03f8d8e4c1047a3a08033742f03d04d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/46be416a360dc6b95bffc4b116d86872c03f8d8e4c1047a3a08033742f03d04d?s=96&d=mm&r=g\",\"caption\":\"James\"},\"url\":\"https:\\\/\\\/www.xconvert.com\\\/blog\\\/author\\\/james\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JPEG Quality Settings Explained: What '95' Actually Does","description":"JPEG quality isn't a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained","og_locale":"en_US","og_type":"article","og_title":"JPEG Quality Settings Explained: What '95' Actually Does","og_description":"JPEG quality isn't a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.","og_url":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained","og_site_name":"XConvert Blog","article_publisher":"https:\/\/www.facebook.com\/xconvertcom","article_published_time":"2026-10-11T13:13:00+00:00","og_image":[{"width":1600,"height":840,"url":"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/featured-8.png","type":"image\/png"}],"author":"James","twitter_card":"summary_large_image","twitter_creator":"@xconvert_com","twitter_site":"@xconvert_com","twitter_misc":{"Written by":"James","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#article","isPartOf":{"@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained"},"author":{"name":"James","@id":"https:\/\/www.xconvert.com\/blog\/#\/schema\/person\/3434db135e6a7f239ba8414244df9845"},"headline":"JPEG Quality Settings Explained: What &#8217;95&#8217; Actually Does","datePublished":"2026-10-11T13:13:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained"},"wordCount":2099,"image":{"@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#primaryimage"},"thumbnailUrl":"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/featured-8.png","articleSection":["How To Guides","Tools"],"inLanguage":"en-CA"},{"@type":"WebPage","@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained","url":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained","name":"JPEG Quality Settings Explained: What '95' Actually Does","isPartOf":{"@id":"https:\/\/www.xconvert.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#primaryimage"},"image":{"@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#primaryimage"},"thumbnailUrl":"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/featured-8.png","datePublished":"2026-10-11T13:13:00+00:00","author":{"@id":"https:\/\/www.xconvert.com\/blog\/#\/schema\/person\/3434db135e6a7f239ba8414244df9845"},"description":"JPEG quality isn't a percentage \u2014 it scales the quantization table. What 95, 90, 80 and 65 really do, plus the chroma-subsampling cliff at 90.","breadcrumb":{"@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#primaryimage","url":"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/featured-8.png","contentUrl":"https:\/\/www.xconvert.com\/blog\/wp-content\/uploads\/2026\/08\/featured-8.png","width":1600,"height":840,"caption":"The xconvert JPEG compressor at \/compress-jpeg with the Upload button highlighted \u2014 set the JPEG quality number yourself"},{"@type":"BreadcrumbList","@id":"https:\/\/www.xconvert.com\/blog\/jpeg-quality-settings-explained#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.xconvert.com\/blog"},{"@type":"ListItem","position":2,"name":"JPEG Quality Settings Explained: What &#8217;95&#8217; Actually Does"}]},{"@type":"WebSite","@id":"https:\/\/www.xconvert.com\/blog\/#website","url":"https:\/\/www.xconvert.com\/blog\/","name":"XConvert Blog","description":"Blog for XConvert file converter","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.xconvert.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":"Person","@id":"https:\/\/www.xconvert.com\/blog\/#\/schema\/person\/3434db135e6a7f239ba8414244df9845","name":"James","image":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/secure.gravatar.com\/avatar\/46be416a360dc6b95bffc4b116d86872c03f8d8e4c1047a3a08033742f03d04d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/46be416a360dc6b95bffc4b116d86872c03f8d8e4c1047a3a08033742f03d04d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/46be416a360dc6b95bffc4b116d86872c03f8d8e4c1047a3a08033742f03d04d?s=96&d=mm&r=g","caption":"James"},"url":"https:\/\/www.xconvert.com\/blog\/author\/james"}]}},"_links":{"self":[{"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/posts\/1865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/comments?post=1865"}],"version-history":[{"count":1,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/posts\/1865\/revisions"}],"predecessor-version":[{"id":1866,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/posts\/1865\/revisions\/1866"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/media\/1862"}],"wp:attachment":[{"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/media?parent=1865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/categories?post=1865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xconvert.com\/blog\/wp-json\/wp\/v2\/tags?post=1865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}