compression op• 데이터 종류: image2d → table
• 호출: import fullseye as fs; fs.ledger.jpeg_quality_estimate(image, max_step: 'int' = 64, n_coeff: 'int' = 21) -> 'dict'(구현을 직접 호출하려면 import imgforensics; imgforensics.jpeg_quality_estimate(image, max_step: 'int' = 64, n_coeff: 'int' = 21) -> 'dict', 원장에서 가져오려면 opsimgforensics.get("jpeg_quality_estimate"))
• GPU: 없음(CPU 참조 구현만)
디코딩된 이미지로부터 양자화 표와 JPEG 품질을 블라인드 추정합니다. table.
파일의 DQT를 읽는 대신 픽셀 만 에서 추정합니다. PNG에 다시 저장 / 붙여 넣은 이미지에서 "원본은 JPEG 품질 N이었다" 보인다). 8x8 블록 DCT를 사용하여 각 계수에 대한 빗 간격을 추정합니다. (Fan & de Queiroz 2003), IJG의 공개 스케일링 규칙으로 만든 표준표의 족으로부터가장 적합한 품질을 선택합니다.
반환(dict):
jpeg_compressed ''빗이 서있는 계수가n_coeff ''개 중 몇 개 있었는지로 판단했다
bool. "JPEG"인증이 아닙니다 (아래 caveats)
quality '' 추정 품질 1..100 (빗이 없으면None '') table ''추정 된(8, 8) ''의 양자화 단계 (0 = 추정 할 수 없음) n_quantized ''DC를 제외한 n_tested = n_coeff - 1 ''계수 중 빗이있는 원시 수 fit_error '' 선택한 품질의 표준 테이블과의 평균 절대 차이 "caveats"이 수치를 말할 수없는 것
실측 (tests/test_imgforensics.py :: test_jpeg_quality_estimate_recovers_quality '', 256x256의 1 / f ^ 1.6 이미지를 Pillow로 인코딩 → 디코딩하여 추정) :
======= ==================================== 진정한 Q 추정 Q 빗이있는 계수 fit_error ======= ==================================== 95 95 11/20 0.091 90 90 19/20 0.579 80 80 13/20 1.308 7071 12/20 2.083 60 60 9/20 2.111 5052 7/20 1.857 40 40 6/20 3.333 30 None 4/20 — ======= ====================================
저품질 측에서 무너지는 것은 원리적인 한계이다. 품질이 떨어질수록 고주파 계수는 0으로양자화되어 빗을 읽는 재료 자체가 이미지에서 사라집니다 ( "빗이 서있는 계수"열그 사라지는 방법). 품질 30에서는 재료가 부족하고 추정을 반환하지 않는다(quality=None). 여기서 억지로 대답을 내지 않는 것이 이 op의 설계 방침이다.
그리고 압축되지 않은 PNG에서jpeg_compressed = False ''/quality = None '' (4 개의 seed로 확인, 같은 테스트로 고정). 여기서 묵묵히 "품질 100"이라고 대답하지 않는 것이간으로, 그러면 「무압축」과 「거의 무열화의 JPEG」가 같은 대답이 된다.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• image_forensics_audit — py -3.11 examples/image_forensics_audit.py
table 를 입력으로 받는 것)compression)error_level_map · jpeg_ghost_map · jpeg_ghost_quality
*Provenance: imgforensics.py — IMGFORENSICS 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.