깨진 jpg 파일을 복구


11

안녕하세요. 비슷한 질문이 많이 있었지만, 많이 검색 한 후 내 상황을 설명하는 게시물을 찾지 못했습니다.

특정 지점 이후에 색상이 잘못되고 모든 픽셀이 왼쪽으로 이동하는 jpg 파일이 있습니다. 나는 이것이 변경되는 시점에서 누락 된 바이트 때문이라고 생각합니다. vi로 파일을 편집하려고했지만 누락 된 바이트가 어디에 있는지 알아내는 것이 불가능한 것 같습니다 .vi는 사용하기가 매우 복잡합니다. 나는 또한 나노를 시도했지만 바이너리 안전하지 않습니다.

이것은 문제의 이미지 중 하나입니다.

여기에 이미지 설명을 입력하십시오

그래서 두 가지 질문을하고 싶습니다 :

  1. Linux에서 이러한 이미지를 복구하려면 어떻게해야합니까?
  2. Linux의 바이너리 텍스트 편집기에서 파일을 안전하게 열고 편집하려면 어떻게해야합니까?

편집 : hexedit를 사용하여 위치 0x27F000에서 0x27F403까지는 0xff가 하나 뿐이고 0x27F404에서 0x27FFFF는 0x00 만 있다는 것을 발견했습니다. 이것은 다음과 같은 것을 만듭니다 :

    0027EFF0   F8 83 C3 E2  09 35 AF 13  44 6E C5 FD  C7 EF 23 E8  .....5..Dn....#.
    0027F000   FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
    [...]
    0027F400   FF FF FF FF  00 00 00 00  00 00 00 00  00 00 00 00  ................
    [...]
    0027FFF0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................
    00280000   8F 39 6E 47  4F 43 5F 36  7C 73 66 F1  0D AE AD AF  .9nGOC_6|sf.....

임의의 숫자 로이 바이트를 변경하면 이미지의 이동을 해제 할 수 있었지만 여전히 색상 문제가 있습니다.

누군가 jpeg 인코딩에 대한 문서를 알려 주시면 8x8 블록이 끝나는 위치를 알 수 있습니다.

왜 위치가 너무 정확한지 궁금합니다 (0x27F000 ~ 0x27FFFF). 캠의 버그 또는 사용한 메모리 카드 일 수 있습니까?


한 번 큰 이미지 세트에서 이런 일이 발생했습니다. 나는 방금 그들을 삭제했다, 부끄러움. 당신이 이것들을 수리하는 데 성공했는지 알고 싶습니다. 앞으로 힘든 일이 있습니다.
dtmland 2016 년

네, 그것은 부끄러운 일입니다.이 jpeg 파일이 어떻게 인코딩되는지 알아 내려고 노력 중입니다. 삭제해야 할 8x4000px 줄입니다. 이 파일에는 4.4MB의 파일로 정확히 4KB가 손상되었습니다. 0.1 % 미만입니다 !!!
Falk

답변:


2

http://en.wikipedia.org/wiki/JPEG#Entropy_coding 에있는 Wikipedia 기사 에는 많은 정보가 있습니다. 현재 문제와 가장 관련이있는 것은 다음과 같습니다.

이전 양자화 된 DC 계수는 현재 양자화 된 DC 계수를 예측하는데 사용된다. 둘 사이의 차이는 실제 값이 아니라 인코딩됩니다. 63 양자화 된 AC 계수의 인코딩은 이러한 예측 차이를 사용하지 않는다.

이미지의 나머지 부분에서 색상이 변하는 것은 하나의 잘못된 DC 계수로 인해 나머지 부분에 모두 적용됩니다. 색상에 안정적으로 영향을 미치는 작은 영역 (아마도 1 바이트, 2 바이트-실제로는 비트 시퀀스 일 수 있음)을 찾아서 다른 값을 시도 할 수 있습니다.

그래픽 편집기에서 이미지를 간단하게 수정하는 것이 더 쉬울 수 있습니다. 시프트 (및 랩 어라운드)가 아닌 게시 ​​한 이미지와 같이 밝기가 더 낮을 수 있습니다. 영역을 선택하고 레벨 도구를 사용할 수 있습니다. 색상 이동과 관련이있는 다른 사용자는 색상 채널 (JPG는 RGB 또는 Y'CbCr 일 수 있음)의 분해를보고 각 채널을 개별적으로 고정하여 채널을 교환하여 충분한 결과를 얻을 수 있습니다.

편집 : 죄송합니다. 귀하의 질문이 몇 살인지 보지 못했습니다. 아마도 이것은 당신이나 다른 사람에게 유용 할 것입니다.


많은 감사, 질문의 나이에 신경 쓰지 말고 여전히 이미지와 그 이상을 가지고 있습니다.
Falk

카메라가 그러한 상황을 기대하지 않았다는 것은 부끄러운 일이라고 생각합니다. 각 n (32) 행의 블록마다 키 블록을 배치해야합니다. 다른 문제는 허프만과 같이 손실이 많은 압축 후 적용되는 무손실 압축이 있는지조차 모른다는 것입니다. 그래픽 편집기로 이미지를 여는 것보다 약간의 바이트로 재생하고 싶습니다. 먼저 대부분이 이미지를 열지 않으려 고합니다. 두 번째로 일부 슬라이더로 정확한 보정을 찾을 수 있다고 생각하지 않습니다. @ Random832 감사합니다. 더 알고 있다면 알려주십시오.
Falk


0

시도 했습니까 photorec? 다음과 같이 우분투에 설치할 수 있습니다.

sudo apt-get install testdisk

다음을 사용하여 설명서를 확인하십시오.

man photorec

photorec터미널에서 다음과 같이 실행 하십시오.

photorec

소스와 대상을 선택하고 jpg 파일을 자동으로 복구하도록 요청합니다.

원본이 손상되지 않도록하려면 dd명령 을 사용하여 복사하는 것이 좋습니다 . 행운을 빕니다!


1
안녕하세요, photorec은 손상된 파일 시스템에서 파일을 복구하도록 설계되었습니다. 필자의 경우 파일 시스템은 훌륭하지만 이미지가 손상되어 완전히 다른 상황입니다.
Falk

3
안녕, 내가 이전에 쓴대로 파일 시스템에 아무 문제가 없습니다, 어쨌든 오류가있는 JPEG 파일입니다.
Falk

1
나는 photorec의 작동 방식을 알고 있으며, 필요한 것은 아닙니다. 사진을 수리하지 않고 그대로 복사하면됩니다.
포크

1
나는 단지 도와 주려고 노력하고있다. 당신은 입력하려고, 당신은 시도하지 않았다? 나는 실제로 그것을 SD 카드에서 실행했고 네, 그것들을 복사하지만 그것들도 수정했습니다. 시험해 볼 수 없어요? 시도해 볼 가치가 없다면, 행운을 빈다. 내가 말하는 것은 그것이 나를 위해 그것을 수리했다는 것입니다. 끝없는 논의를 피하기 위해 더 이상 답변하지 않겠습니다.
Vincent Gerris

1
photorec이 장치로 매개 변수로 실행되도록되어 있기 때문에 시도하지 않을 것입니다. 내가 가지고있는 jpg 파일은 내 hdd에있어 완벽하게 좋습니다. 상황이 다른 유형일뿐입니다. 어쨌든 고마워요.
포크

-1

방금 Photorec을 사용하여 손상된 SD 카드에서 사진을 복구했습니다. 모든 파일을 복구하지는 않았지만 많은 수의 파일을 복구하는 데 큰 도움이되었습니다. 그 말로 MP4 비디오는 복구되었지만 열 수 없었습니다. 일부 JPEG 파일은 복구되었지만 샘플은이 스레드의 시작 부분에 제공된 것처럼 보지 못하거나 실제로 엉망이되었습니다. Photorec는 그들을 고치지 못했습니다.

결론 : Photorec은 손상된 파일 시스템에서 손실 된 파일을 검색하도록 설계되었지만 손상된 파일의 내용을 복구하기 위해 아무것도하지 않습니다.


안녕, 원더, 나는 photorec를 알고 있지만, 내가 찾고있는 것이 아닙니다. 손상된 파일은 수정하지 않습니다.
Falk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.