이미지 및 사진 · 이미지 변환기 및 압축기
JPEG 세대 손실: 동일한 사진을 다시 저장하면 어떻게 되나요?
· 작동 방식
이미지 형식 JPEG 이미지 품질
모든 손실 저장은 정보를 버리고 폐기된 내용은 누적됩니다. 10번 저장된 사진은 동일한 품질로 한 번 저장된 사진과 동일하지 않습니다. 이 게시물에서는 이유, 문제를 악화시키는 요소, 그리고 한 번만 발생하도록 워크플로를 구성하는 방법에 대해 설명합니다.
매주 더 흐려지는 이미지 — 첫 번째 버전과 최신 버전을 비교할 때까지 아무도 눈치 채지 못한 느린 감소
지난 주의 JPEG에서 새 버전이 시작될 때마다 주간 캠페인 이미지가 지루하고 시끄러워질 수 있습니다. 8세대 외에는 1세대를 보는 사람이 없기 때문에 변경 사항이 눈에 띄지 않을 수 있습니다. ToolAcre의 형식 논리는 증명할 수 있는 메커니즘의 이름을 지정합니다. JPEG은 모든 품질에서 손실이 발생하며 JPEG를 다시 인코딩하면 첫 번째 손실에 또 다른 손실 라운드가 추가됩니다.
하나의 슬라이더 값에 대해 토론하기 전에 작업 흐름을 감사하십시오. 가장 먼저 보관된 소스를 찾고 또 다른 JPEG을 작성한 모든 작업을 나열합니다. 다운로드, 이름 바꾸기 또는 복사 자체로는 생성 손실이 발생하지 않습니다. 디코딩하고 인코딩을 수행합니다. 이러한 구별은 자르기, 크기 조정, 승인 및 최종 배송 간의 불필요한 내보내기를 드러내는 경우가 많습니다.
lossy가 lossy인 이유 — 양자화는 주파수 계수를 반올림하며 반올림은 디코딩으로 취소할 수 없습니다.
계획의 주파수 계수 설명은 그럴듯한 배경 자료이지만 해당 계산은 이 응용 프로그램에 없습니다. 브라우저는 JPEG 인코더를 소유합니다. ToolAcre는 캔버스 픽셀, MIME 유형 및 품질을 전달한 다음 Blob을 받습니다. 따라서 신뢰할 수 있는 클레임은 동작적입니다. 세부 정보는 삭제되고 삭제된 정보는 나중에 PNG을 선택하여 복원할 수 없습니다.
증거 경계를 좁게 유지한다고 해서 권장 사항이 약화되는 것은 아닙니다. 손실 단계는 손실 전송 파일이 필요한 경우에만 발생해야 합니다. 도구 간에 중간 항목을 저장해야 하는 경우 가능한 경우 원본 프로젝트 또는 무손실 래스터를 유지하십시오. 다음 내보내기는 피할 수 있는 JPEG 근사치를 아직 유지하지 못한 픽셀에서 시작할 수 있습니다.
저장소는 JPEG 계수 수학이 아닌 손실이 있는 브라우저 인코딩을 확인합니다.
두 번째 저장 시 디코더는 첫 번째 JPEG에서 픽셀을 생성하고 인코더는 해당 픽셀의 근사값을 다시 계산합니다. 새 패스는 JPEG 이전 소스에 액세스할 수 없으며 이미 도입된 인공물과 원본 세부정보를 구별할 수 없습니다. ToolAcre의 경고는 동일한 형식과 품질이 바이트를 그대로 유지한다고 제안하는 대신 이를 두 번째 라운드라고 명시적으로 부릅니다.
하나의 파일 이름을 덮어쓰는 대신 모든 세대를 유지하는 유용한 실험입니다. 마스터로 시작하여 `round-1.jpg`을 생성하고 `round-2.jpg`에 대한 결과를 로드한 후 계속하세요. 각각을 마스터 및 직계 상위와 비교하십시오. 별도의 파일을 사용하면 점진적인 변경 사항을 볼 수 있으며 테스트 자체가 참조를 파괴하는 것을 방지할 수 있습니다.
두 번째 저장은 디코딩된 픽셀에서 두 번째 브라우저 인코딩입니다.
저장 간 자르기 또는 크기 조정으로 인해 추가 픽셀 작업이 발생합니다. 이 코드에서 변경된 차원은 대상 인코더가 PNG인 경우에도 계획을 리샘플링된 것으로 표시합니다. `drawImage`은 인코딩 전에 높은 스무딩을 사용하여 선택한 소스 직사각형을 대상 형상으로 다시 그리므로 치수 변경은 JPEG의 손실 쓰기와 별도로 기록되어야 합니다.
아웃라인은 이동된 블록 그리드에 추가 손상을 입히지만 이 브라우저 파이프라인은 블록 정렬을 노출하지 않습니다. 방어 가능한 절차는 변수를 분리하는 것입니다. 먼저 동일한 크기의 JPEG 내보내기를 반복한 다음 크기 조정을 반복합니다. 두 번째 시퀀스가 더 많이 변경되면 관찰은 인코더 수준 설명을 고안하지 않고 해당 브라우저와 테스트 이미지에 속합니다.
크기를 조정하면 리샘플링이 추가됩니다. 블록 그리드 설명은 구현 증거 외부에 있습니다.
매 라운드마다 동일한 품질 번호를 사용한다고 해서 안전한 항구가 만들어지는 것은 아닙니다. 값은 현재 브라우저의 인코더에 명령으로 전달됩니다. 이는 체크섬, 세부 정보 보유 비율 또는 다른 인코더가 숫자를 동일하게 매핑한다는 약속이 아닙니다. 소스 기록에서는 브라우저와 플랫폼에 따라 출력이 약간 다를 수 있다고 경고합니다.
품질 100은(는) 여전히 JPEG에 대해 손실이 있는 것으로 분류됩니다. 이후 세대에서 숫자를 늘리면 바이트가 추가될 수 있지만 이전에 제거된 텍스처를 소환할 수는 없습니다. 1세대 배송 사본과 측정된 크기를 검사하여 품질을 선택하세요. 승인되면 승인된 내보내기를 다음 소스로 사용하는 대신 콘텐츠가 변경될 때마다 마스터에서 해당 복사본을 다시 생성합니다.
품질 수치는 인코더 입력이며 동등한 양자화를 보장하지 않습니다.
5회에 걸쳐 시연하려면 부드러운 하늘, 머리카락, 나뭇잎, 고대비 가장자리가 포함된 사진을 선택하세요. 크기를 고정하고 하나의 브라우저와 하나의 품질을 사용하세요. 번호가 매겨진 파일 이름으로 각 라운드를 저장한 다음 추가 편집을 적용하지 않는 뷰어에서 100 퍼센트로 6개 파일을 모두 비교합니다.
미리 결정된 증가 또는 감소를 주장하는 대신 출력 바이트를 기록합니다. 이후 라운드는 픽셀과 인코더에 따라 더 작거나 클 수 있습니다. 크기 방향은 품질 점수가 아닙니다. 상세한 경계와 매끄러운 영역 주변의 변화를 찾아보고 원본을 그대로 유지한 채 실험을 중지합니다.
여기서 다루지 않는 내용 — 이 문제가 발생하지 않는 무손실 형식 및 RAW 또는 마스터 파일 편집
무손실 대상 인코딩은 다르게 동작하지만 품질이 저하된 JPEG을 PNG로 변환하면 품질이 저하된 디코딩된 픽셀만 정확하게 저장됩니다. 이전 손실을 되돌리지 않습니다. RAW 개발, 레이어 프로젝트 및 카메라별 마스터 워크플로는 JPEG, PNG, WebP 및 단일 프레임 GIF 입력을 허용하는 이 브라우저 변환기 외부에 있습니다.
또한 이 도구는 세대를 자동으로 비교하거나 인지 점수를 계산하지 않습니다. 첫 번째 결과 전후 창은 시각적 검토를 지원하는 반면, 다운로드한 파일은 보다 엄격한 기본 크기 비교를 허용합니다. 선택한 환경이 보관 장소라는 인증이 아니라 해당 시설을 검사 보조 도구로 취급하십시오.
요점: 마스터를 유지하고 한 번만 내보내기 — 반복 단계가 아닌 마지막 단계로 이미지 변환기 및 압축기를 사용하는 방법
하나의 진실 소스를 유지하고 손실 파일을 대체 가능한 파생 파일로 만듭니다. 이러한 단순한 소유권 규칙은 소셜 캘린더가 근사치의 사슬이 되는 것을 방지합니다. ToolAcre는 모든 작은 편집 후에 반복되는 보이지 않는 중간이 아닌 특정 수신자 또는 채널에 대한 최종 인코딩이어야 합니다.
새 변형이 필요한 경우 마스터를 다시 열고 필요한 모든 형상을 한 번 적용한 후 한 번 내보냅니다. 손상된 계보보다는 설정이나 승인 메모를 보관하세요. 브라우저는 언제든지 JPEG 또 다른 전달을 생성할 수 있습니다. 이전 세대가 버린 정보를 재구성할 수는 없습니다.