일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 다이아몬드헤드
- LG전자
- S-VHS
- 컬러버스터
- 캠코더
- 소니캠코더수리
- 필립스
- 소니만세
- 비디오변환
- 비디오기기
- Digital8
- 아날로그캠코더
- 브라운관TV
- 삼성전자
- SQPB
- VHS
- 비디오
- 소니
- HI8
- 레트로TV
- 8mm캠코더
- 8mm
- vcr
- Video8
- 파나소닉
- 소니캠코더고장
- 매크로비전
- 비디오믹서
- 팩트체크
- 비디오테이프
Archives
- Today
- Total
아무거나 적당히 운영되는 이상한 블로그
이상한 파일 분석기 본문
어느 기기에서 사용되는 파일인데, 사진 파일로 보입니다. 일단 HxD로 열어봅시다.
YCbYCr 이라는 걸로 봐서는 YUV계통의 사진 파일임을 알 수 있습니다. 잘 보면 Y가 2번 나옵니다. 이건 4:2:2 타입의 YUV임을 알 수 있습니다. 그런데 왜 이걸 그렇게 만든거지?
아무튼 0A~0D값으로 가로 세로값을 알아내고 파일을 RAW로 개조하고 RawViewer로 찔러보니 해당 파일은 YVYU 타입임을 알 수 있습니다.
그러면 한번 자동으로 변환하는 프로그램을 만들어봅시다. 그런데 문제는 YVYU to RGB의 외부 모듈이 없어서 그냥 대충 만들어야 했습니다.
일단 YVYU에서 순서가 다른 YUY2 to RGB를 http://minnimok.egloos.com/5161623 에서 찾아서 구현을 해둡니다.
y1변환=int(binascii.hexlify(사진y1).decode('ascii'), base=16)
v변환=int(binascii.hexlify(사진v).decode('ascii'), base=16)
y2변환=int(binascii.hexlify(사진y2).decode('ascii'), base=16)
u변환=int(binascii.hexlify(사진u).decode('ascii'), base=16)
b1값=round(65536*(1.164*(y1변환-16)+2.018*(u변환-128))/65536)
g1값=round(65536*(1.164*(y1변환-16)-0.813*(v변환-128)-0.391*(u변환-128))/65536)
r1값=round(65536*(1.164*(y1변환-16)+1.596*(v변환-128))/65536)
b2값=round((76284*(y2변환-16)+132252*(u변환-128))>>16)
g2값=round((76284*(y2변환-16)-53281*(v변환-128)-25625*(u변환-128))>>16)
r2값=round((76284*(y2변환-16)+104595*(v변환-128))>>16)
...
rawData = rawData + r1바이트 + g1바이트 + b1바이트 + r2바이트 + g2바이트 + b2바이트
구현한건 좋았는데 속도가 너무 느립니다. 파이썬이라서 그런가...
'잡담' 카테고리의 다른 글
공포의 아톰 230 메인보드 (0) | 2021.09.10 |
---|---|
태진음향 TMS-7000 노래방 노래반주기 본체 사진 (0) | 2021.09.09 |
잉크젯 프린터의 헤드 사진 (0) | 2020.06.10 |
개인용으로 만든 시간 덧샘 계산 파이썬 프로그램 (0) | 2020.05.27 |
리눅스 우분투 CUI(Headless)서버에서 OpenRCT2 서버 돌리기 (0) | 2020.05.04 |
Comments