키프레임
앞에서 동영상을 언급하면서 B-frame 에 대한 말이 나왔습니다.
이제 동영상에서 중요한 키프레임에 대해서 설명하고자 합니다.
한 화면뿐인 이미지 파일은 그 한 화면에 전체 정보를 가지고 있습니다. 어떤 식의 압축을 하던지 말입니다. 압축률 좋은 jpeg의 경우 불필요한 부분을 제거한다고 하더군요. 정보의 손실이 있는 셈이죠 그래서 정보의 손실이 없는 비손실 jpeg도 나왔습니다.
동영상의 경우에는
처음 화면은 전체 정보를 가지고 있습니다. 그러나 그 뒤의 화면들까지 전체 정보를 가지고 있을 필요는 없습니다. 앞의 전체 정보를 가지고 있는 화면과 비교해서 차이나는 정보만 담고 있으면 됩니다. 이렇게 해서 용량을 줄이게 되죠. 이 때 전체 정보를 담고 있는 화면을 키프레임이라고 합니다.
첫 프레임(처음 화면)만 전체 정보를 가지고 있는 것은 아니고 매 주기마다 전체 정보를 가지고 있는 키프레임을 만듭니다. 1초에 1화면일 수도 있고, 그 이상일 수도 있죠.
그 예를 보여 드리겠습니다. (gif 파일입니다)
키 프레임을 하나만 사용했다고 보시면 됩니다.
제가 예전에 만들었던 동영상을 이용했습니다.
1) 우리에게 보여지는 모습
2) 실제 저장된 모습
h.264의 경우 I-frame 이 키프레임입니다.
그리고 P-frame은 일반 프레임(이전 정보만 살핌)이고, B-frame은 특수 프레임(이전과 이후 정보를 살핌)이죠.
용량, 화질
1. 용량, 화질에 대하여 가정과 결과
키프레임을 많이 넣을수록 화질은 좋아지지만, 용량은 늘어나게 되겠죠. 일반적인 생각입니다.
그러나, 같은 용량으로 대비하면 키 프레임이 적을수록 화질이 뛰어나다?
이해가 가십니까?
단순한 계산으로 추측하면 이런 결과가 나옵니다.
즉, 용량이 같은 파일에서는 키프레임이 많을수록 화질이 떨어질 것으로 보인다는 겁니다.
극단적이고 단순한 예를 들어 보겠습니다.
(극단적이고 단순하다는 것은 잘못된 결론을 도출할 가능성도 높다)
(움직임이 많은 영상, 적은 영상의 구분도 해야하지만 복잡해지므로 이것도 제쳐둡니다)
1) 가정
동영상 크기 : 5000 KByte
프레임 수 : 500 개
일반프레임과 키프레임의 용량 비율 : 일반프레임 1에 키프레임 5 1
(즉, 일반 프레임이 1 프레임에 1 KByte 차지하면 키 프레임은 1 프레임에 5 KByte 차지로 가정)
2) 결과 (소수점 이하 생략)
프레임 하나 하나의 용량
- 키프레임만으로 이루어진 경우 2
프레임(키프레임) : 10 KByte (5000 / 500)
- 키프레임을 50개 쓴 화면의 경우
키 프레임 : 35 KByte
일반 프레임 : 7 KByte (7.14)
- 키프레임을 10개 쓴 경우
키 프레임 : 46 KByte
일반 프레임 : 9 KByte (9.26)
보시면 아시겠지만, 키 프레임을 10개 쓴 경우 일반 프레임이 키 프레임만 사용한 영상의 키프레임 용량과 맞먹습니다 그리고 키프레임의 질은 4.6배
3) 결과 - 좀 더 생각해보면
위의 결과를 보고, 키프레임을 넣지 말자 하시는 분이 계십니까? 오해입니다.
키프레임만으로 이루어진 경우는 곧 일반 프레임만으로 이루어진 것과 비슷합니다.
키 프레임을 하나도 사용하지 않았을 때 (동영상 자체의 특성상, 이럴 수는 없을 것으로 보입니다. 그러므로 일반 프레임만으로 이루어진 경우의 수치적 결과는 아무 의미 없습니다만)
- 일반 프레임만으로 이루어진 경우
각 프레임 (일반 프레임) : 10 KByte (5000/500)
- 키 프레임 1개 쓸 경우
키 프레임 : 49 KByte
일반 프레임 : 10 KByte (9.92)
4) 결과 - 조금 더 깊이 생각해보면
키 프레임과 일반 프레임의 거리가 멀어질수록 일반 프레임의 결과물은 질이 떨어집니다. 빛의 근원에서 멀어지면 빛이 옅어지듯이.
그러니, 이 수치만으로 실제에 적용한다는 것은 무리가 있습니다.
2. 결론
일반 프레임의 생성 메카니즘을 안다면 적당한 값을 찾을 수 있겠지만, 현재로서는 모르겠습니다.
키 프레임을 많이 넣을수록 화질이 좋아진다는 견해에 대해 다시 생각해볼 기회 정도로 생각하시고, 이 부분을 읽으셨으면 합니다.
'IT > 멀티미디어' 카테고리의 다른 글
h.264 앞에 추가되어지는 프레임 문제 - 해결? - 녹화 / 인코딩 (추가) (0) | 2010.04.22 |
---|---|
키 프레임 많이 넣을 것인가? 적게 넣을 것인가? (0) | 2010.04.20 |
다른 코덱을 사용해 볼까? (0) | 2010.04.20 |
동영상 제작 코덱으로 'H.264/MPEG4-AVC' 를 사용하다가 (0) | 2010.04.18 |
또다른 동영상 플레이어 - 톡플레이어 (0) | 2009.10.01 |