무손실 압축
무손실 압축은 데이터가 손실되지 않는 곳입니다. 입력 한 모든 내용을 완벽하게 검색 할 수 있습니다. 가장 작은 오류가 발생하는 텍스트 또는 이진 파일에 적합합니다.
파일 압축은 파일을 가져 와서 패턴을 스캔하고 이러한 패턴을 공간을 덜 차지하는 다른 것으로 변환하여 작동합니다.
예를 들어 "AAAAAAAA"는 "8A"로 바뀔 수 있습니다.
그것이 "8A"가 평문에 있다면 어떻게되는지 문제가 있기 때문에 그것이 정확하게 작동하는 방식이 아님을 인정합니다. 파일의 압축을 풀면 잘못되었을 것입니다. 시작하기 좋은 곳은 Wikipedia 또는 LZW Data Compression Algorithm 입니다.
아래에 복사 된 간단한 의사 코드가 있습니다.
STRING = get input character
WHILE there are still input characters DO
CHARACTER = get input character
IF STRING+CHARACTER is in the string table then
STRING = STRING+character
ELSE
output the code for STRING
add STRING+CHARACTER to the string table
STRING = CHARACTER
END of IF
END of WHILE
output the code for STRING
모든 압축은 파일을 압축 및 압축 해제하는 데 사용되는 조회 사전을 사용합니다. 사전이 클수록 반품 감소 법칙을 따르 더라도 더 많이 압축 할 수 있습니다 .
압축으로 인해 항상 더 작은 파일이 생성되는 것은 아닙니다. 압축 후 작은 파일을 얻지 못하는 상황 (작은 파일이 있거나 임의의 데이터를 압축 할 때 )이 있습니다 . 임의의 데이터를 압축하는 기능과 관련하여 몇 가지 재미있는 과제 가있었습니다 .
"손실 된"압축
위의 내용은 대부분 무손실 압축 과 관련이 있습니다. MP3, JPG 및 h.264와 같은 비디오 / 오디오 응용 프로그램에 사용되는 다른 유형의 압축은 손실 압축의 예 입니다.
손실 압축은 가장 눈에 띄지 않는 데이터를 삭제하여 작동합니다. 오디오에서 이것은 다른 다양한 것들과 함께 약 30,000 Hrz와 100 Hrz 미만입니다. 그림 (정적)에서는 다양한 것을 제거하고 데이터를 버리고 함께 픽셀을 병합합니다.
손실 압축은 변환 코딩 의 한 형태입니다 . 전체 크기를 줄이기 위해 데이터를 평균화합니다. 예를 들어, 이미지에서 10 픽셀의 블록, 모든 약간 다른 색상이 하나의 색상으로 병합되어 압축 될 수 있습니다.
비디오 압축에서는 종종 마지막 프레임 또는 키 프레임 이후에 변경된 다시 그리기 픽셀에만 명령이 배치됩니다 .