9P by neo with xguru 5달전 | favorite | 댓글 2개
  • CPNG("Compatible Network Graphics")는 약 30년 된 PNG 이미지 형식의 100% 호환 가능한 포크. PNG의 기능을 현대적으로 확장하면서도 기존의 브라우저, 운영체제, 엔진 등과의 호환성 유지
  • 목표: 기존 PNG보다 인코딩/디코딩 속도가 훨씬 빠르며 (인코딩 10배 이상, 디코딩 2-3배 이상), 이를 통해 새로운 기능을 추가할 수 있는 동력과 라이브러리 채택
  • 주요 특징:
    • Constrained Deflate 스트림: 기존 라이브러리 대비 인코딩 속도를 10-25배, 디코딩 속도를 2-3배 향상시키는 기능으로, 이미 fpng/fpnge에서 구현됨
    • 멀티스레드 인코딩/디코딩: Apple이 이미 사용 중인 기술. CPNG 부가 청크에 탐색 테이블 추가, 이미지를 스트립 단위로 병렬 인코딩/디코딩 가능.
    • FP16 및 LOGLUV32 지원: HDR 이미지를 PNG만 지원하는 브라우저와 OS에서도 합리적인 방식으로 볼 수 있도록 설계. HDR 데이터는 간단하고 빠른 절차를 통해 손실 없이 복구 가능
    • .EXR 대안으로서의 CPNG: .EXR 형식은 너무 많은 압축 형식을 지원하여 실제로는 호환되지 않음. CPNG는 손실 없는 톤 매핑 대안을 제공하며, 대부분의 브라우저와 OS에서 미리보기 가능.
    • LOGLUV32의 설계: 파일 크기 부풀림을 피하면서 진정한 HDR을 달성하기 위한 설계 진행 중. 다른 "HDR" 솔루션들은 실제로 사용되는 비트보다 더 많은 16비트 픽셀을 저장해야 함을 지적하며, 이는 낭비라고 주장.
  • 라이브러리 작성자의 중요성: 호환성을 유지하는 한, 실질적으로 형식을 제어하는 것은 라이브러리 작성자임.

GN⁺의 의견

  • CPNG는 기존의 PNG 형식과 완벽하게 호환되면서도 현대적인 기능을 추가한 새로운 이미지 형식으로, 특히 인코딩/디코딩 속도의 혁신적인 향상과 HDR 지원이 주목할 만함.
  • 이러한 발전은 웹 개발자, 그래픽 디자이너, 소프트웨어 엔지니어 등 다양한 분야의 전문가들에게 매우 유익하고 흥미로운 변화를 가져올 것으로 기대됨.
  • 호환성을 중심으로 한 접근 방식은 기술의 발전과 사용자 경험 향상을 동시에 추구하는 현대 소프트웨어 개발의 중요한 원칙을 반영함.

오잉... 과연 새로운 이미지 표준이 될 수 있을까요?

아직도 차세대 이미지 표준은 webp 말고는 딱히 성공한 게 없긴 한데...
Webp도 결국 구글이 크롬 점유율로 밀어붙인 느낌이고...

Hacker News 의견
  • PNG 포맷이 여러 호환되지 않는 버전으로 분화될 가능성에 대한 우려

    PNG의 초기 역사에서 이미 알파 채널, 점진적 렌더링, APNG 지원의 불일치 문제가 있었음. PSD와 SVG 파일도 오랫동안 브라우저나 기기, 앱, 버전에 따라 다르게 보이는 문제가 있었음. PNG를 확장하는 것은 거의 모든 실제 사용에서 문제를 일으킬 수 있으며, 새로운 기능을 사용하는 디자이너로 인해 이미지가 "깨져" 보일 수 있음. HDR과 같은 일부 기능은 일부 렌더러에서만 표시될 수 있어 "하위 호환"이라도 문제가 될 수 있음. 새로운 포맷을 만들고 필요에 따라 웹페이지와 장치가 대체하는 것이 더 나을 수 있음.

  • PNG를 개선하려는 이유와 그 가치에 대한 긍정적인 평가

    PNG에 새로운 기능을 하위 호환 가능한 방식으로 통합할 수 있다면, 모든 브라우저, 운영 체제, 엔진 등과 즉시 호환될 수 있어 가치가 있음.

  • libpng의 인코딩 속도가 jpg나 tiff보다 10배 이상 느린 점과 LOGLUV32 기술에 대한 칭찬

    libpng의 인코딩 속도가 느린 점을 발견하고, LOGLUV32 부분이 매우 영리하다고 생각함. 톤맵된 대체 이미지와 기존 위에 구축하는 아이디어가 마음에 들지만, 포맷 확장이 호환성 문제로 이어지지 않기를 바람.

  • 새로운 이미지 포맷에 대한 열정적인 반응과 엔지니어링에 대한 감상

    개인적으로 필요하지 않음에도 이에 대해 읽는 것을 즐겼으며, 이러한 사려 깊은 이미지 포맷과 글쓰기 작업이 더 많이 필요함.

  • 현대 이미지 포맷의 효율성에 대한 궁금증

    손실 없는 포맷과 손실 있는 포맷에서 각각 어떤 것이 크기나 압축 해제 속도 측면에서 가장 효율적인지, 현재 기술의 상태에 대해 궁금함.

  • JPEG XT와 JPEG-HDR에 대한 언급 부족 지적

    JPEG XT와 JPEG-HDR에 대한 언급이 없음을 지적함.

  • PNG의 간소화된 하위 호환 가능한 버전에 대한 아이디어 제시

    PNG의 간소화된 버전을 만들어 저복잡성 임베디드 시스템에서 사용할 수 있도록 하고, 기존 이미지 뷰어와의 호환성을 유지하면서 "전체 PNG"를 구현할 필요가 없도록 함. DEFLATE는 이미 압축되지 않은 블록을 지원하기 때문에 이는 하위 호환 방식으로 작동함.

  • "100% 하위 호환"의 의미에 대한 질문과 APNG와의 유사성에 대한 의견

    "100% 하위 호환"이 정확히 무엇을 의미하는지, 새로운 기능을 사용하는 파일이 있을 때 합리적인 이미지를 반환하는 APNG와 유사한 방식으로 하위 호환되는지에 대한 의문 제기.

  • CPNG에 대한 감탄과 CPNG를 인식하는 라이브러리의 성능 향상에 대한 기대

    CPNG를 인식하는 라이브러리에 대한 성능 향상이 인상적이며, CPNG를 인식하지 못하는 기존 라이브러리가 CPNG 이미지를 읽을 때 성능 저하가 발생하는지, CPNG가 PNG보다 얼마나 더 클지에 대한 궁금증 표현.