> 일반적인 문제 > 일반적으로 사용되는 무손실 압축 알고리즘은 무엇입니까?

일반적으로 사용되는 무손실 압축 알고리즘은 무엇입니까?

藏色散人
풀어 주다: 2020-11-04 13:52:00
원래의
19835명이 탐색했습니다.

일반적으로 사용되는 무손실 압축 알고리즘은 다음과 같습니다. 1. 다른 많은 무손실 압축 알고리즘의 기초가 되는 LZ77 알고리즘 2. LZ77을 개선하기 위해 설계된 알고리즘인 LZR 알고리즘 3. LZ77 A가 되는 것을 목표로 하는 LZSS 알고리즘 선형 시간 교체 알고리즘 4. DEFLATE 알고리즘 5. LZMA 알고리즘 등

일반적으로 사용되는 무손실 압축 알고리즘은 무엇입니까?

데이터 압축은 동일하거나 대부분의 데이터를 유지하면서 파일 크기를 줄이는 프로세스입니다. 불필요한 데이터를 제거하거나 보다 효율적인 형식으로 재구성하는 방식으로 작동합니다. 데이터를 압축할 때 손실이 있는 방법을 사용하거나 무손실 방법을 사용하도록 선택할 수 있습니다. 손실 방식은 일부 데이터를 영구적으로 삭제하는 반면, 무손실 방식은 모든 데이터를 유지합니다. 어떤 방법을 사용할지는 파일의 정확성을 얼마나 원하는지에 따라 달라집니다.

이 글에서는 딥러닝 기반의 6가지 무손실 데이터 압축 알고리즘과 4가지 이미지/비디오 압축 알고리즘을 소개합니다.

6 무손실 데이터 압축 알고리즘

무손실 압축 알고리즘은 일반적으로 보관 또는 기타 충실도가 높은 목적으로 사용됩니다. 이러한 알고리즘을 사용하면 파일을 완전히 복구할 수 있도록 하면서 파일 크기를 줄일 수 있습니다. 선택할 수 있는 무손실 압축 알고리즘이 많이 있습니다. 다음은 일반적으로 사용되는 6가지 알고리즘을 소개합니다.

1. LZ77

LZ77 알고리즘은 1977년에 출시되었습니다. 다른 많은 무손실 압축 알고리즘의 기초로 "슬라이딩 윈도우" 개념을 사용합니다. 이 개념에서 LZ77은 사전을 관리합니다. 이 사전은 트리플을 사용합니다.

오프셋: 구문 시작 부분과 파일 시작 부분 사이의 거리

실행 길이: 구문을 구성하는 문자 수

오프셋: 새 구문 기호, 첫 번째 기호를 나타냅니다. 매칭 후 포워드 버퍼에

파일이 파싱되면 사전이 실시간으로 업데이트되어 최신 압축 데이터와 크기를 반영합니다. 예를 들어, 파일에 "abbadabba"라는 문자열이 포함되어 있으면 사전에 압축된 항목은 "abb(0,1,'d')(0,3,'a')"입니다. 아래 표에서 분해 과정을 볼 수 있습니다.

일반적으로 사용되는 무손실 압축 알고리즘은 무엇입니까?

이 예에서 압축된 데이터는 초기 데이터보다 크게 작지 않습니다. 그러나 일반적으로 이 압축 효과는 파일이 매우 길 때 나타납니다.

2. LZR

LZR은 1981년 Michael Rodeh에 의해 제안되었습니다. LZ77을 기반으로 개발되었습니다. 이 알고리즘의 목표는 LZ77의 선형 시간 대체 알고리즘이 되는 것이지만 인코딩 후 Udell 포인터가 파일 내 임의의 오프셋을 가리킬 수 있으므로 상당한 메모리 소모가 필요하므로 성능이 LZ77만큼 좋지 않습니다.

3. LZSS

LZSS, 정식 이름은 Lempel-Ziv-Storer-Szymanski로 1982년에 제안되었습니다. LZ77을 개선하기 위해 설계된 알고리즘이기도 합니다. 실제로 파일 크기가 줄어들었는지 여부를 감지하는 방법을 소개합니다. 압축 효과를 얻을 수 없는 경우 원래 입력 형식이 유지됩니다. LZSS는 또한 쌍만 사용하여 오프셋 문자 사용을 제거합니다. 이 압축 알고리즘은 RAR과 같은 아카이브 형식과 네트워크 데이터 압축에 널리 사용됩니다.

4. DEFLATE

DEFLATE 알고리즘은 1993년에 제안되었습니다. 저자는 필 카츠입니다. 이 알고리즘은 LZ77 또는 LZSS 전처리기를 허프만 코딩과 결합합니다. 허프만 코딩은 1952년에 제안된 법칙입니다. 주로 문자 발생 빈도를 기준으로 코드를 할당하는 엔트로피 코딩입니다.

5. LZMA

LZMA 알고리즘(전체 이름은 Lempel-Ziv Markov 체인 알고리즘(LZMA))은 1998년에 제안되었습니다. LZ77의 개선된 버전이며 .7z 형식의 7-ZIp 파일 보관을 달성하도록 설계되었습니다. . 바이트 수준이 아닌 비트 수준에서 수정된 LZ77 알고리즘을 적용하는 체인 압축 방법을 사용합니다. 이 압축 알고리즘의 출력은 나중에 후속 추가 압축을 위해 산술 코딩을 통해 처리됩니다. 특정 구현에 따라 추가 압축 단계가 도입될 수 있습니다.

6. LZMA2

LZMA2 알고리즘은 2009년에 제안되었으며 LZMA의 개선된 버전입니다. 멀티스레딩 기능 측면에서 LZMA의 성능을 향상시키고, 압축할 수 없는 유형의 데이터 처리 성능을 향상시킵니다.

4 딥러닝 기반 이미지/동영상 압축 알고리즘

위에 소개된 정적 압축 알고리즘 외에도 딥러닝 기반 압축 알고리즘도 선택할 수 있습니다.

1. 다층 퍼셉트론 기반 압축 알고리즘

다층 퍼셉트론(MLP) 기술은 여러 층의 뉴런을 사용하여 데이터를 획득, 처리 및 출력합니다. 데이터 차원 축소 작업, 데이터 압축 등에 적용할 수 있습니다. 최초의 MLP 기반 알고리즘은 1988년에 제안되었으며 다음에 적용되었습니다.

이진 인코딩 - 표준 2개 기호 인코딩

양자화 - 입력을 연속 집합에서 이산 집합으로 제한

특정 필드 내 변환 ——픽셀 수준 데이터 변경

MLP 알고리즘은 분해 신경망의 이전 단계 출력을 사용하여 최상의 이진 코드 조합을 결정합니다. 나중에 이 방법을 최적화하기 위해 예측 기술이 사용됩니다. 예측 기술은 역전파를 통해 인접 데이터를 기반으로 데이터 정확도를 향상시킬 수 있습니다.

2. DeepCoder – 비디오 압축 기반 심층 신경망

DeepCoder는 기존 비디오 압축 기술을 대체하는 CNN(Convolutional Neural Network) 기반 프레임워크입니다. 이 모델은 예측 신호와 잔차 신호에 별도의 CNN을 사용합니다. 스칼라 양자화 기술과 전통적인 파일 압축 알고리즘인 허프만 코딩을 사용하여 인코딩 기능을 바이너리 스트림에 매핑합니다. 일반적으로 이 모델의 성능은 유명한 H.264/AVC 비디오 코딩 사양보다 우수하다고 알려져 있습니다.

3. CNN 기반 압축 알고리즘

CNN은 계층화된 신경망으로 일반적으로 이미지 인식 및 특징 감지에 사용됩니다. 압축에 적용될 때 이러한 신경망은 컨볼루션 작업을 사용하여 인접한 픽셀 간의 상관 관계를 계산합니다. CNN은 MLP 기반 알고리즘보다 더 나은 압축 결과를 보여주고 초해상도 성능을 향상시키며 아티팩트를 줄입니다. 또한 CNN 기반 압축은 PSNR(최고 신호 대 잡음비) 및 SSIM(구조적 유사성)을 감소시키기 때문에 JPEG 이미지의 품질도 향상시킵니다. CNN 기반 압축은 엔트로피 추정 방법을 사용하여 HEVC 성능도 달성합니다.

4. GAN(Generative Adversarial Network) 기반 압축 알고리즘

GAN은 두 개의 신경망을 사용하여 서로 경쟁하여 보다 정확한 분석과 예측을 생성하는 신경망의 일종입니다. 최초의 GAN 기반 압축 알고리즘은 2017년에 제안되었습니다. 이러한 알고리즘의 파일 압축 비율은 다른 일반적인 방법(예: JPEG, WebP 등)의 2.5배입니다. GAN 기반 방법을 사용하면 처리를 병렬화하여 실시간 압축을 달성할 수 있습니다. 주요 원칙은 가장 관련성이 높은 특징을 기반으로 이미지를 압축하는 것입니다. 디코딩할 때 알고리즘은 이러한 특징을 기반으로 이미지를 재구성합니다. CNN 기반 알고리즘과 비교하여 GAN 기반 압축 알고리즘은 적대적 손실을 제거하여 더 높은 품질의 이미지를 생성할 수 있습니다.

요약

압축 알고리즘은 파일 크기를 최적화하는 데 도움이 될 수 있습니다. 알고리즘마다 결과가 다릅니다. 이 문서에서는 6가지 정적 무손실 압축 알고리즘과 4가지 딥러닝 기반 압축 알고리즘을 간략하게 설명합니다. 물론 이러한 알고리즘 중 어느 것도 귀하의 시나리오에 적용되지 않는 경우 이 문서를 확인하여 귀하의 시나리오에 적합한 알고리즘을 찾을 수 있습니다. 많은 알고리즘이 있으며 항상 귀하에게 적합한 알고리즘이 있습니다!

위 내용은 일반적으로 사용되는 무손실 압축 알고리즘은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿