#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다.
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 시스템의 처리 속도 부족으로 발생하는 '프레임 드롭'}}}에 대한 내용은 [[처리지연]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[처리지연#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[처리지연#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.
#!if 리스트 != null
{{{#!if 문서명1 != null
* {{{#!if 설명1 != null
시스템의 처리 속도 부족으로 발생하는 '프레임 드롭': }}}[[처리지연]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[처리지연#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[처리지연#|]] 부분}}}}}}{{{#!if 문서명2 != null
* {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
* {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
* {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
* {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
* {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
* {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
* {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
* {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
* {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}
1. 드롭 프레임의 존재 의미
흑백TV 시절 초당 프레임은 유럽식이 25/미국식이 30프레임이었다. 그러나 컬러방송 시대가 다가오며 미국은 데이터 압축률을 높이고 흑백TV와의 하위호환을 보장하기 위해 기존의 흑백 텔레비전 규격 CCIR 시스템 M에 컬러 관련 기능을 추가시키는 쪽을 택했다.당시 개발진들은 컬러 신호를 따로 전송하기보다는 휘도 신호가 거의 점유하지 않는 대역 속에 넣어서 주파수를 절약하고자 했으나, 기존 흑백 TV 규격인 60필드의 수평 주파수를 사용하면 조건에 맞는 컬러 신호[1]를 추가하는 경우 컬러 신호와 오디오 신호의 고조파[2]들이 서로의 영역을 침범하며 상호 변조를 이르켜 화질과 음질이 떨어지는 문제가 생겼다.
이 문제를 해결하기 위해서는 고조파들이 상호변조를 이르키지 않도록 오디오 신호나 색차 신호의 주파수를 약간 이동시켜 했다. 그러나 오디오 신호의 경우 흑백 TV 표준에서 조금만 벗어나도 수신률이 급격히 떨어지는 문제가 있었다. 하지만 색차 신호의 주파수를 조절하는 경우, 휘도 신호와 간섭을 최소화하기 위해 휘도 신호의 수평주파수까지 약간 이동시켜야 했으나[3], 조금만 이동해도 수신률이 떨어지는 오디오 신호와는 달리 수평 주파수는 조금 이동하더라도 영상에 동기화 신호가 포함되어 있어 기존 수상기에서도 충분히 타이밍을 조정하는 것이 가능했으므로 결국 수평 주파수를 약간 내리면서 색차 신호를 이동시키는 것으로 결정하였다. 그래서 원래 30프레임/s이던 주파수를 29.97프레임(0.1%감소)으로 약간 떨어뜨렸다. 그런데 알다시피 1초에 29.97프레임을 찍을 수는 없다. 마지막 30번째 프레임을 찍다 말 수는 없는 노릇 아니겠는가. 쉽게 말해 PAL 방식은 100초에 2500장, 영화는 2400장을 찍듯, NTSC방식은 100초에 2997장을 찍는 것과 같다.
즉 29.97fps는 1시간(3600초)동안 107,892장의 장면을 찍는 것을 의미한다.
그런데 기존에 사용하던 타임코드(30프레임이 될 때마다 1초씩 카운트)를 그대로 쓰려니 문제가 생겼다. 이 논드롭(Non-Drop) 프레임 타임코드로 1시간은 총 108,000프레임으로 이루어져 있다. 29.97fps로는 1시간 방송을 하고나면 시간이 3.6초가 남아있는 것이다. 그리고 무엇보다 편집은 초단위로 하는데 100초에 2997프레임 같은 단위를 쓸 수는 없었다. 그래서 NTSC관계자들은 00, 10, 20, 30, 40, 50분을 제외한 매 분마다 2프레임씩을 건너뛰기로 결정했다.
28프레임-29프레임-02프레임-03프레임 순으로 00프레임(30프레임)-01프레임을 드롭하고 2프레임을 건너뛰었다. 이렇게 프레임을 카운트하면 1시간은 원래보다 108프레임이 모자란 107,892프레임으로 딱 맞다. 많은 사람들이 착각하는게 프레임을 건너뛴다고, 멀쩡한 프레임을 빼거나 재생하지 않는 것이 아니다. 29.97fps는 1시간 동안 촬영한 총107,892프레임을, 방송에서 1시간 동안 빠짐없이 출력한다.
동일한 이유로, 60fps의 경우에는 59.94fps를 적용한다. NTSC 아날로그 방송이 종료된 지 10년이 지났지만 여전히 일부 컴퓨터 모니터에서 이 규격을 지원하고 있다.
2. 윤년과 윤일을 통한 이해
더 쉬운 이해를 위해서 추가하자면 타임코드는 우리가 1년이 정확히 365일이 아니라 약 365.25일이라 4년마다 돌아오는 윤년마다 2월 29일(윤날)을 더하는 것처럼, 1년을 364.75일로 가정할 때 4년마다 12월 31일(윤날)을 빼는 것과 같다.실제로 지구가 태양을 도는 시간은 365.25일
365.25+365.25+365.25+365.25=1461일=4년
우리가 생각하는 1년=365일
365+365+365+365=1460일---! 하루의 오차가 발생
그러나 윤날을 추가하면..
365+365+365+366(2월29일 하루 추가)=1461일---실제 지구의 공전 시간과 일치.
이를 바탕으로 드롭 프레임 타임코드를 이해하자면..
지구의 공전시간을 364.75일(29.97fps마냥 왠지 모자란 일수)로 가정할 때
364.75+364.75+364.75+364.75=1459일=4년
29.97프레임x3600초=107,892프레임
우리가 생각하는 1년=365일
365+365+365+365=1460일---! 하루의 오차가 발생
30프레임x3600초=108,000프레임---! 108프레임의 오차가 발생
그러나 윤날을 빼면..
365+365+365+364(12월31일 삭제)=1459일---가정한 지구의 공전 시간과 일치.
108,000-108(10분 단위를 제외한 매 분마다 2프레임)=107,892프레임
즉 드롭프레임 타임코드에서 프레임을 건너뛰는 것은 지구의 공전 시간을 364.75일로 가정할 때, 12월 31일(윤날)을 빼는 것과 같다고 생각하면 이해하기 쉽다.
3. 여담
유럽의 경우 컬러로 전환하며 흑백수상기의 지원을 신경쓰지 않고 넘어감으로써 25, 50프레임과 같이 정수로 떨어지는 프레임을 지원하게 된 반면[4], 미국의 경우 컬러 송출을 지원하면서 구형 흑백 수상기의 호환성까지 잡으려고 시도했던 배경을 가진 기술적 잔재이며 특히나 디지털 시스템과 같이 디지털로 타임싱크가 관리되는 현대 환경에서는 아날로그와 전혀 필요가 없는 기술이다.문제는 이로 인해 영화마저 텔레시네의 편의성을 위한 23.97, 타 영상의 경우 59.94 프레임과 같은 식의 실수 프레임과 DCI 규격의 24, 60 정수 프레임이 혼용되는 결과를 낳았으며 드롭 프레임의 경우 완성된 딜리버리에서는 크게 문제가 되지 않지만 영화와 같이 푸티지의 편집이 잦고 특히 VFX와 같이 프레임단위로 작업되는 환경에서는 싱크 문제가 발생하는 이유로 차세대 규격에서는 이 드롭 프레임 지원을 없애라는 요구가 있다. # 다만 경로의존성 문제하고 드롭 프레임으로 찍어놓은 옛날 영상이 워낙 많았던 고로 쉽사리 사라지기는 어려울 것으로 보인다.[5]
[1] 수평주파수의 1/2의 정수배에 해당하는.[2] 원래 없는 것이 정상이지만 전기회로의 비이상성에 의해 매우 쉽게 발생한다.[3] 휘도 신호가 거의 점유하지 않는 대역에 색차 신호를 넣는 방식을 택하였기에 색차신호를 이동시키려면 수평주파수까지 이동해야 했다.[4] 그래서 브라질은 CCIR M 국가 중 유일하게 30, 60프레임 같은 정수 프레임으로 떨어진다.[5] 실제로 NHK는 하이비전 고안 당시 HD 영상의 주사율로 NTSC의 59.94i가 아닌 60i를 밀었고 SMPTE 240M 초안에도 60hz(30p)같은 정수 프레임만 포함되어 있었으나 기존 SD 영상과의 변환 용이성이 떨어지는 문제 때문에 결국 뜻을 접고 후속 기술인 ISDB부터 실수 프레임인 59.94(29.97)로 회귀할 수 밖에 없었다.