자바(JAVA) 리듬게임 만들기 강좌 5강 - 화면 전환 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리의 게임 화면에서 시작 버튼을 눌러서 메인 화면으로 넘어가는 부분을 구현해보는 시간을 가집니다.
※ 5강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.
'자바 리듬게임 만들기 강좌' 카테고리의 다른 글
자바(JAVA) 리듬게임 만들기 강좌 4강 - 메뉴 바 구현하기 (How To Make Java Rhythm Game #4)
자바(JAVA) 리듬게임 만들기 강좌 4강 - 메뉴 바 구현하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리가 만들 게임 화면에서의 메뉴 바 부분을 구현해보는 시간을 가집니다.
※ 4강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.
'자바 리듬게임 만들기 강좌' 카테고리의 다른 글
자바(JAVA) 리듬게임 만들기 강좌 3강 - 시작 화면에 음악 삽입하기 (How To Make Java Rhythm Game #3)
자바(JAVA) 리듬게임 만들기 강좌 3강 - 시작 화면에 음악 삽입하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 시작 화면에 음악을 삽입하고 그 음악을 재생하는 방법에 대해서 공부합니다.
※ 3강에 사용된 전체 소스 코드 & 강의 동영상을 올립니다.
'자바 리듬게임 만들기 강좌' 카테고리의 다른 글
자바(JAVA) 리듬게임 만들기 강좌 2강 - 게임 시작 화면 개발하기 (How To Make Java Rhythm Game #2)
자바(JAVA) 리듬게임 만들기 강좌 2강 - 게임 시작 화면 개발하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 우리가 만들 리듬게임의 게임 시작 화면을 개발하는 시간을 가집니다.
※ 2강 전체 소스 코드 & 강의 동영상을 올립니다.
'자바 리듬게임 만들기 강좌' 카테고리의 다른 글
자바(JAVA) 리듬게임 만들기 강좌 1강 - 자바 개발 환경 구축 및 GUI 시작하기 (How To Make Java Rhythm Game #1)
자바(JAVA) 리듬게임 만들기 강좌 1강 - 자바 개발 환경 구축 및 GUI 시작하기 (How To Make Java Rhythm Game) 강의 동영상입니다. 기존에 진행하던 자바 리듬게임 만들기 강좌를 완전히 새롭게 개편해서 준비해보았습니다. 자바 게임 개발을 시작하기 전에 자바의 개발 환경 구축을 마치고 처음으로 자바 GUI 창을 띄워보는 시간을 가집니다. 자, 한 번 즐겁게 공부를 시작합시다.
※ 1강 소스 파일 & 강의 동영상을 올려드립니다.
'자바 리듬게임 만들기 강좌' 카테고리의 다른 글
애니메이션의 개념을 알아보자!
● 애니메이션의 개요
애니메이션은 기본적으로 일련의 정지된 이미지(Still Image)를 연속적으로 보여주어 그 이미지를 보는 사람으로 하여금 이미지들을 연속된 동작으로 착각하도록 합니다. 이러한 현상은 잔상효과에 의한 것으로 '잔상효과'란 이미지가 이미 사라졌음에도 불구하고 사람의 눈이나 뇌에 계속 남아 있으려는 경향을 의미합니다. 일반적으로 초당 15장 이상의 그림이 보여지면 자연스러운 움직임을 얻을 수 있습니다. 텔레비전, 영사기, 비디오 플레이어는 각각이 표시하는 초당 프레임 율이 다르지만 모두 잔상효과를 이용하고 있습니다.
애니메이션의 정의는 '생명이 없는 사물에 영혼이나 정신을 부여하는 행위'로 정의할 수 있습니다. 즉, 애니메이션은 생명을 지니지 않은 것이 작자의 의도에 따라 의인화되어 필름이나 VTR 등의 영상매체를 통하여 창조되는 기술이나 기법을 일컫습니다. 또한 애니메이션은 낱장의 그림 또는 사물의 이동을 한 프레임(Frame)씩 촬영하여 마치 살아 있는 것과 같은 효과를 보여주는 영화를 말하기도 하며 더 나아가서 시간, 운동, 빛에 대한 모든 영상언어와 영상기술을 총칭합니다. 현재 우리들이 접할 수 있는 대부분의 TV만화 시리즈, 단편 만화, 극장판 장편 만화영화 등의 애니메이션이 이 정의에 포함됩니다.
애니메이션은 컴퓨터가 등장하기 이전의 2차원을 기반으로 하는 전통적 애니메이션과 컴퓨터에 의해서 만들어지는 애니메이션 그리고 특수효과로 나눌 수 있습니다.
- 2차원 기반의 전통적인 애니메이션
플립북 애니메이션, 셀 애니메이션, 키프레이밍과 인비트윈 등이 있습니다.
- 컴퓨터 애니메이션
트위닝, 곡선을 따라 이동하는 스프라이트 애니메이션, 방향과 크기를 정해주는 벡터 애니메이션, 스크립트 애니메이션, 3차원 컴퓨터 애니메이션, 핵심 동작만을 정해주면 중간 단계를 예측해주는 키프레이밍 애니메이션, 관절끼리의 연관을 계산해서 자연스러운 역운동학 등 다양합니다.
- 특수효과
실 이미지에 애니메이션을 합성하는 로토스코핑, 형태의 변환을 의미하는 모핑, 알고리즘을 이용하는 절차적 방법, 미립자 시스템 등이 있습니다.
● 애니메이션의 종류
1) 플립북 애니메이션(Flip-Book Animation)
플립북 애니메이션은 가장 기본이 되는 애니메이션으로 프레임(Frame) 애니메이션이라고도 합니다. 애니메이션 내에 존재하는 모든 프레임을 한 장 한 장 그려나가는 것으로 어렸을 때 책의 가장 자리에 그림을 그려 빠르게 넘기면 나타나는 효과를 떠올리면 됩니다. 플립북 애니메이션은 파일 크기가 크기 때문에 인터넷과 같이 제한된 데이터 전송 환경에서는 사용하기 힘들다는 장점이 있습니다.
2) 셀 애니메이션(Cel Animation)
1913년 존 랜돌프가 개발하여 지금에 이르는 모든 전통적 애니메이션은 이 방법으로 만들어졌습니다. 셀 애니메이션의 "CEL"이란 단어는 투명한 종이를 뜻하는 Celluloid의 "CEL"을 의미합니다. 애니메이션을 만들기 위해서는 하나의 배경 CEL과 여러 장의 전경 CEL이 필요하고, 일반적으로 이러한 CEL들이 여러 개의 층을 이루어 하나의 프레임을 만들어 냅니다.
3) 스프라이트 애니메이션(Sprite-based Animation)
스프라이트는 애니메이션에서 독립적으로 움직이는 개체를 말합니다. 아케디으 게임 속에 등장하는 캐릭터들의 애니메이션이 이 항목에 속합니다. 스프라이트 애니메이션은 플립북 애니메이션과는 달리 스프라이트만을 다시 그려주면 되기 때문에 파일의 크기나 요구되는 데이터 전송 대여폭도 플립북 애니메이션보다 적습니다.
4) 벡터 애니메이션(Vector Animation)
이 방식은 스프라이트가 Bitmap이 아닌 수학적인 공식으로 이루어진 것을 제외하면 스프라이트 애니메이션과 일치합니다. 벡터 애니메이션의 또 하나의 장점은 크기에 상관 없이 깨끗하게 보여진다는 것입니다. 이러한 성질을 Scalable하다고 말합니다.
5) 키 프레이밍과 트위닝(Key-Framing and Tweening)
일반적인 만화영화 제작에서, 숙련된 애니메이터는 키 프레임(Key Frame)이라는 중요한 장면만을 그리고 그 나머지는 값싼 애니메이터를 이용해 애니메이션을 완성해 나갑니다. 트위닝은 이러한 키 프레임 사이(Between)를 채우면서 애니메이션을 만든다는 의미인 IN-BETWEENING에서 유래되었습니다. 여기서 프레임이란 '각 화면 이미지'를 뜻하며 보통 1초 동안 보여주는 화면의 수를 프레임 율(Frame Rate)라고 말합니다. 프레임 레이트가 높을수록 화질이 선명하고 부드러운 표현이 가능하지만 그만큼 용량이 커진다는 단점이 있습니다.
6) 모핑(Morphing)
모핑은 2개의 서로 다른 이미지나 3차원 모델 사이의 '변화하는 과정을 서서히 나타내는 것'을 말합니다. 모핑의 원리는 간단합니다. 처음 프레임과 마지막 프레임을 지정해 주고 나머지는 컴퓨터가 생성하도록 하는 것입니다. 이러한 과정을 인터폴레이션(Interpolation)이라고 합니다.
7) 로토스코핑(Rotoscoping)
로토스코핑은 크게 2가지 의미로 사용됩니다. 하나는 실제 영화의 한 장면에 애니메이션을 삽입하는 것이고, 다른 하나는 사진 속에 있는 특정 인물이나 사물을 투명종이 위에 그려 넣는 작업을 말합니다. 대개 로토스코핑은 전자보다는 후자를 일컫습니다.
8) 미립자 시스템(Particle System)
비, 불, 연기, 폭발 등의 자연 현상들을 시뮬레이션 하기에 좋은 컴퓨터 애니메이션을 의미합니다. Particle System에서는 분자들의 다발에 대해 그 행동과 특성을 하나하나 부여해 비디오나 영화에서 폭발 등의 특수효과에 사용합니다. 영화 트위스터는 토네이도를 시뮬레이션 하기 위해 미립자 시스템을 이용하였습니다.
● 애니메이션 기법
1) 양파껍질 효과(Onion-Skinning)
Onion-Skinning은 부드러운 동작을 만들어내기 위해 셀 애니메이션에서 사용되었던 방법을 빌려온 것으로, 양파 껍질이 투명하다는 사실에서 이같은 용어가 사용되었습니다. 셀 애니메이션에서 셀이 가지는 의미는 애니메이터들이 어느 한 프레임에 대한 작업을 진행하는 동안 그 전후 프레임들을 볼 수가 있다는 것입니다. 셀과 유사한 개념인 Onion-Skinning을 사용하게 되면, 한 눈으로 프레임의 처음부터 끝까지 볼 수 있어, 프레임이 어떤 식으로 흘러 가는지 쉽게 알아 볼 수 있다는 것입니다.
2) 도려내기 효과(Cut-Out)
Cut-Out은 셀 애니메이션에서 역시 사용했던 방식입니다. 손을 흔드는 등과 같이 캐릭터의 동작이 정해져 있을 경우에 캐릭터의 몸 전체를 다시 그리는 것보다는 손만을 다시 그리는 것이 효과적입니다. 따라서 캐릭터의 몸은 한 번만 그려서 백그라운드로 사용하고, 분리되어 있는 손과 합성하여 동작을 만들어냅니다.
3) 가감속(Ease-out/Ease-in)
실세계에서 사물들은 항상 같은 속도로 움직이는 것이 아닙니다. 예를 들어 차가 출발할 때 서서히 가속이 되고, 커브를 돌 때는 서서히 속도가 줄어듭니다. 애니메이션에서 출발이나 정지, 회전과 같이 하나의 동작에서 다른 동작으로의 이동은 전형적으로 키 프레임(Key-Frame)을 사용합니다. 한 물체가 키 프레임으로 다가가거나 멀어질 때, 점차 느려지는 것을 Ease-in, 점차 빨라지는 것을 Ease-Out이라고 말합니다.
4) 반복(Cycle)
많은 동작들은 반복적이어서 여러 개의 프레임을 하나의 Cycle이나 Loop로 만들 수 있습니다. 가장 기본적인 Cycle은 걷기 동작입니다. 한 번 Cycle을 만들면 그 Cycle을 반복하면서 무한정으로 움직이게 할 수 있습니다.
5) 찌그러짐과 늘어남(Squash and Stretch)
찌그러짐과 늘어남은 물체가 유연성이나 탄성을 갖도록 하여 고무과 같이 부드럽고 물컹거리는 느낌을 갖도록 한다는 것입니다. 따라서 물체가 멈추거나 방향을 바꿀 때 또는 딱딱한 물체에 부딪혔을 때 움직이는 방향으로 물체가 압축되어 눌릴 수 있습니다. 찌그러지거나 늘어나는 효과는 움직이는 물체가 무게가 있다는 것을 느끼게 하거나, 짓눌리고 잡아 당겨지는 동작을 강조하기 위해 사용되는 동작입니다.
6) 보조 액션과 중첩 액션(Secondary Action/Overlapping Action)
보조 액션은 주액션에 더해지는 간단한 동작을 의미합니다. 이렇게 만들어진 보조 액션을 주 액션에 더하여 애니메이션을 완성하여 나가는 것을 중첩 액션이라고 말합니다.
7) 과장(Exaggeration)
과장 역시 애니메이션에 강한 인상을 심어줄 수 있는 좋은 방법입니다. 특히, 웹에서의 애니메이션은 데이터 전송의 한계성을 가지므로 애니메이션의 크기가 작고, 따라서 경우에 따라 색깔과 동작을 과장을 통하여 이용자의 눈에 띄도록 합니다.
'멀티미디어' 카테고리의 다른 글
| 압축의 원리에 대해서 알아보자! (허프만 코딩 알고리즘) (0) | 2017.04.21 |
|---|---|
| 음악을 만드는 방법, MIDI란 무엇일까? (0) | 2017.04.21 |
| 아날로그를 디지털로 바꾸는 방법 (표본화, 양자화, 부호화) (0) | 2017.04.21 |
| 사운드(Sound)의 기본 개념 이해하기! (0) | 2017.04.21 |
| 이미지와 그래픽의 개념을 정리해보자 (0) | 2017.04.21 |
압축의 원리에 대해서 알아보자! (허프만 코딩 알고리즘)
● 압축
기본적으로 압축의 원리는 공간적으로 중복 성격의 데이터가 존재한다는 '공간적 상관관계'와 영상에서 시간이 지나도 화면에 큰 차이가 없는 경우가 있다는 '시간적 상관관계'라는 특성을 바탕으로 합니다. 즉, 유사한 데이터의 반복을 압축함으로써 용량을 줄일 수 있다는 원리에 입각하는 것입니다. 압축의 종류는 손실 압축과 무손실 압축으로 나눌 수 있습니다. 먼저 손실 압축은 중복되고 필요하지 않은 정보가 손실되는 것을 허용하는 것을 말합니다. 인간의 시각으로는 감지할 수 없는 자료를 제거하는 것이 그 예시입니다. 그 다음으로 무손실 압축은 처리상에서 자료의 손실이 없으며 입출력 영상이 완전히 동일하도록 압축하는 것을 의미합니다. 의료영상, 설계도면 등에서 활용됩니다.
인간의 최소 가청 한계에 의하면 인간은 약 1KHz에서 2KHz 정도의 소리를 듣는데 수월하게 설계되어있습니다. 마스킹 효과란 '특정 주파수가 가지는 에너지가 다른 주파수의 에너지보다 훨씬 클 때 이를 마스커 주파수라고 말하며 마스커 주파수만 유독 잘 들리게 되는 효과'를 말합니다. 결과적으로 마스커 주파수를 위주로 필터링을 하면 듣기에는 비슷하지만 용량은 훨씬 줄일 수 있게 됩니다. MP3 또는 MPEG Layer 3는 이러한 마스킹 효과를 이용합니다. MP3는 오디오 데이터의 압축기술로서 MPEG-1 기능 사양 중 일부입니다. MPEG-1의 오디오 부분의 Layer 3를 MP3라는 이름으로 사용합니다. Layer 3의 경우 압축률이 10 ~ 12정도 되기 때문에 상당히 효율적입니다. 곡 전체의 정보를 담는 헤더 뒤에 데이터가 프레임이라는 단위로 저장되며 프레임의 크기는 고정되어 있어 압축률이 높은 부분에서도 쓸모 없는 용량을 차지한다는 단점을 가지고 있습니다.
압축과 관련하여 가장 유명한 두 방식이 바로 Run Length Coding 방식과 허프만 코딩(Huffman Coding) 방식입니다.
- Run Length Coding
AAAAAAABBCCCDEEEEFFFFFFG라는 텍스트가 있을 때 이것을 각각 '문자 X 반복 횟수'로 표현하는 방법입니다. 저 텍스트는 원래 24개의 문자를 가져 24바이트의 용량이지만 A7B2C3D1E4F6G1으로 표현이 가능하기 때문에 결과적으로 14바이트로 줄어들게 됩니다. 따라서 압축에 성공한 것입니다. 하지만 이러한 방식에 문제점이 많아 나중에 '전치문자'라는 것을 사용하게 됩니다. 반복되는 문자는 '전치문자 X 반복된 횟수 X 반복 문자'와 같은 방식으로 적용이 됩니다. 이러한 방식으로 위 텍스트를 다시 표현해보면 *7A*2B*3CD*4E*6FG가 됩니다. 반복되지 않는 문자는 그대로 쓰는 것입니다.
- 허프만 코딩(Huffman Coding)
대부분의 압축 프로그램에서 사용하는 방법입니다. 자주 사용되는 문자는 적은 비트로 된 코드로 변환해서 표현하고, 별로 사용되지 않는 문자는 많은 비트로 된 코드로 변환하여 표현함으로써 전체 데이터를 표현하는 데 필요한 비트의 양을 줄이는 방법입니다. 허프만 코딩에서는 압축 대상이 되는 데이터마다 최대한 효율적으로 압축될 수 있게끔 코드를 생성하고 그 체계에 따라 압축합니다. 그렇게 되려면 데이터마다 각 문자에 대한 특정 코드가 정해져야만 하는데 이 때 필요한 것이 허프만 트리입니다.
아래는 허프만 코딩에 관한 문제입니다.
< 문제 >
다음 데이터는 R, G, B, C, M, Y, K를 사용하여 나타낸 이미지입니다. 픽셀의 깊이는 16비트라고 가정했을 때 각각의 문항에 답하세요.
|
R |
G |
Y |
G |
|
B |
B |
R |
R |
|
C |
R |
K |
C |
|
K |
B |
G |
R |
|
C |
B |
C |
K |
|
G |
M |
B |
G |
|
C |
G |
G |
C |
|
B |
B |
G |
R |
1) 원본 이미지의 용량을 계산하세요.
이미지의 가로 픽셀 수는 4개, 세로 픽셀 수는 8개, 각 픽셀 당 16비트를 할당하므로 원본 이미지의 총 용량은 4 X 8 X 16 = 32 x 16 = 512 bit입니다.
2) 허프만 코딩을 했을 때 각 색상의 코드 값을 설명하세요.
데이터에서 사용되는 각 문자에 대한 출현 빈도수를 구하면 아래와 같습니다.
|
문자 |
R |
G |
B |
C |
M |
Y |
K |
|
출현빈도 |
6 |
8 |
7 |
6 |
1 |
1 |
3 |
빈도수를 기준으로 내림차순으로 정렬하면 아래와 같습니다.
이후에 가장 작은 문자의 집합을 2개씩 계속해서 합치는 과정을 반복해 허프만 코드를 작성하면 아래와 같은 과정을 거치게 됩니다.
위와 같이 최종 호프만 코드가 완성되었습니다. 왼쪽의 경로는 0, 오른쪽의 경로는 1의 코드를 붙여서 코드를 정리하면 아래와 같이 표로 정리가 가능합니다.
|
색상 |
비트 |
|
G |
01 |
|
B |
10 |
|
R |
11 |
|
C |
000 |
|
K |
0010 |
|
M |
00110 |
|
Y |
00111 |
3) 허프만 코딩 후 이미지의 용량을 계산하세요.
허프만 코드표에는 각각의 색상에 대한 비트 수가 붙어있습니다. 이것을 이용해 빈도수와 각각 곱해서 계산하면 다음과 같이 계산할 수 있습니다.
2 X 8 + 2 X 7 + 2 X 6 + 3 X 6 + 4 X 3 + 5 X 1 + 5 X 1 = 82 bit
4) 압축률을 계산하세요.
압축률은 ‘원시 자료 : 압축된 자료’로 계산할 수 있습니다. 이 경우에는 512bit에서 82bit로 압축이 이루어졌기 때문에 압축률은 256 : 41로서 약 6입니다.
'멀티미디어' 카테고리의 다른 글
| 애니메이션의 개념을 알아보자! (0) | 2017.04.21 |
|---|---|
| 음악을 만드는 방법, MIDI란 무엇일까? (0) | 2017.04.21 |
| 아날로그를 디지털로 바꾸는 방법 (표본화, 양자화, 부호화) (0) | 2017.04.21 |
| 사운드(Sound)의 기본 개념 이해하기! (0) | 2017.04.21 |
| 이미지와 그래픽의 개념을 정리해보자 (0) | 2017.04.21 |
음악을 만드는 방법, MIDI란 무엇일까?
● MIDI에 대해서
지난 시간에는 아날로그 데이터를 디지털 데이터로 변환하는 과정에 대해서 학습하는 시간을 가졌습니다. 이번 시간에는 MIDI에 대해서 학습하는 시간을 가지도록 하겠습니다. MIDI가 나오기 이전에 초창기의 전자악기는 아날로그 방식을 사용하여 음색의 편집과 조작이 쉽지 않았기 때문에 디지털 악기가 개발되어 보급될 필요가 있었습니다. 이 때 각 제조업체의 악기마다 서로 다른 방식의 신호 체계를 가지고 있어 여러 대의 악기를 연결하기 쉽지 않았습니다. 따라서 1983년, MIDI 라는 표준 인터페이스가 개발되어 지금까지 사용되고 있습니다.
MIDI는 음을 특정 표기법에 따라 숫자나 문자로 상징적으로 표현한 파일을 의미합니다. MIDI는 장치를 컴퓨터와 연결하는 하드웨어 및 그 위에서 주고받는 메시지를 정의하는 하나의 프로토콜을 의미합니다. 파일 크기가 매우 작다는 장점이 있지만 정확한 소리 조절이 어렵다는 단점도 존재합니다.
신디사이저란 '음의 높이, 음표의 길이, 음의 강약 등에 대한정보에 따라 실제 음을 생성해주는 장치'입니다. 이러한 신디사이저는 악기의 대표적인 음만을 가지고 있습니다. 전기 신호를 합성해서 음을 생성하며 소리는 음원부에서 발생합니다. 음원부를 이용하여 연주를 하는 곳은 건반부입니다. 음을 합성하는 방법은 정현파를 이용하여 합성하는 FM 방식, 소리를 디지털 데이터로 변환하여 저장해 두었다가 사용하는 PCM 방식, 음향 악기와 전자 악기 소리를 재현하는 AI 방식으로 나누어집니다. 또한 악기의 모든 음을 가지고 있는 부분을 '샘플러(Sampler)'라고 합니다. 실제 소리를 디지털 방식으로 직접 녹음해 놓은 것을 의미합니다. 믹서(Mixer)란 여러 개의 오디오를 출력하여 하나의 출력으로 만들어 주는 것을 의미합니다. 드럼 모듈은 드럼의 소리를 담아놓은 모듈이며 미디 인터페이스 카드란 컴퓨터와 미디 모듈간의 연결을 담당하는 인터페이스 카드입니다.
MIDI의 모든 데이터 값은 Big-Endian 방식으로 저장이 되어집니다. 데이터 값의 다수가 Variable-Length 형식으로 저장이 됩니다. 따라서 원래의 데이터 1byte의 lower 7bit를 사용하며, 새로이 top bit를 1로 추가합니다. 단, LSB의 top bit는 0을 추가합니다. 최대 4 byte까지 가능합니다.
MIDI 파일은 하나의 Header Chunk와 여러 개의 Track Chunk 들로 이루어져 있습니다. Header Chunk는 하나의 곡 전체에 대한 정보들을 담고 있으며, 하나의 MIDI 파일 당 하나의 Header Chunk를 가집니다. 또한 파일의 가장 맨 앞에 위치하게 됩니다. 실제 데이터가 들어 있는 파일 형식을 설정하는 부분입니다.
MIDI 하드웨어 장치에 대한 설명은 아래와 같습니다.
1) 신디사이저(Synthesizer)
신디사이저는 '전기적인 신호를 합성하여 음을 생성하는 장치'를 의미합니다. 음원부는 소리를 발생시키고 건반부는 음원부를 이용하여 연주하는 부분입니다.
2) 샘플러(Sampler)
신디사이저는 악기의 대표 음을, 샘플러는 악기의 모든 음을 가지고 있습니다. 더 정교한 음 또는 음원에 없는 새로운 음을 만들고자 할 때 사용합니다. 실제 소리를 녹음하여 악기로 변환하거나 각종 효과음으로 활용합니다.
3) 믹서(Mixer)
여러 개의 오디오 출력을 섞어서 하나의 출력으로 생성합니다. 각 출력의 균형 등을 맞추어 주는 이퀄라이저(Equalizer)가 장착됩니다. 또한 음악의 균형을 맞추어 녹음하고 연주하는데 많이 이용됩니다.
4) MIDI 인터페이스 카드
컴퓨터와 미디 모듈 간의 다른 신호 체계를 연결하는 부분입니다.
5) 미디 전용 케이블
동축 케이블 형태로서 둥근 모양 5핀으로 구성됩니다.
6) 앰프와 스피커
출력 장치입니다.
( MIDI 작곡 프로그램으로 유명한 Cubase 강좌는 따로 블로그 내에서 진행하고 있습니다. )
'멀티미디어' 카테고리의 다른 글
| 애니메이션의 개념을 알아보자! (0) | 2017.04.21 |
|---|---|
| 압축의 원리에 대해서 알아보자! (허프만 코딩 알고리즘) (0) | 2017.04.21 |
| 아날로그를 디지털로 바꾸는 방법 (표본화, 양자화, 부호화) (0) | 2017.04.21 |
| 사운드(Sound)의 기본 개념 이해하기! (0) | 2017.04.21 |
| 이미지와 그래픽의 개념을 정리해보자 (0) | 2017.04.21 |
아날로그를 디지털로 바꾸는 방법 (표본화, 양자화, 부호화)
● 아날로그를 디지털로 변환
아날로그를 디지털로 변환하는 과정을 서술하는 문제는 멀티미디어 혹은 컴퓨터 네트워크 등의 과목에서 단골 문제로 가장 많이 출제되고 있습니다.
1) 표본화(Sampling)
2) 양자화(Quantizing)
3) 부호화(Coding)
아날로그 사운드를 디지털로 변환(ADC)하는 과정은 표본화, 양자화, 부호화 과정을 거칩니다.
먼저 표본화는 아날로그 파형을 디지털 형태로 변환하기 위해 표본을 취하는 것을 의미합니다. 이 때 나이키스트 정리에 따르면 표본화 시 원음을 그대로 반영하기 위해서는 원음이 가지는 최고 주파수의 2배 이상으로 표본화를 해야 합니다. 따라서 음악 CD의 경우 표본화 율이 44.1KHz 정도는 유지되어야 사람의 가청 주파수를 모두 지원할 수 있습니다.
두 번째로 양자화는 표본화된 각 점을 어느 정도의 정밀도로 표현할 것인지 정하는 것을 의미합니다. 8 bit로 양자화를 하면 값을 256 단계로 표현할 수 있지만, 정밀도를 높여서 16bit로 양자화를 하면 좀 더 세밀한 65,536 단계로 표현이 가능합니다.
마지막으로 부호화는 표본화와 양자화를 거친 디지털 정보를 2진수로 표현하는 과정입니다. 대체적으로 사운드 파일의 원본의 용량은 크기 때문에 일반적으로 부호화 과정에서 압축하여 저장합니다.
디지털 사운드 파일의 크기 및 음질의 비교는 아래와 같습니다.
- 표본화율이 11.025KHz이고 양자화 정밀도가 8bit이면서 1분의 길이를 가진 mono 음악 파일은 11,025 X 8 X 60 = 5,292,000 bit 정도의 크기를 가지고 있습니다. 약 650 KBytes로 정리가 가능합니다.
- 표본화율이 22.05KHz이고 양자화 정밀도가 16bit이면서 1분의 길이를 가진 stereo 음악 파일은 약 5.25 MB의 용량을 가지게 됩니다.
- 표본화율이 44.1KHz이고 양자화 정밀도가 16bit이면서 1분의 길이를 가진 stereo 음악 파일은 약 10.5MB의 용량을 가지며 흔한 음악 CD입니다.
● 사운드의 저장 방식
기본적으로 사운드를 저장할 때는 용량은 낮추되 고품질을 유지하는 것이 관건이 되겠습니다. 아날로그 사운드는 기본적으로 PCM 방식으로 표본화되어 디지털 사운드로 변환됩니다. 그러나 실질적으로 PCM 방식은 용량이 크기 때문에 ADPCM 방식을 주로 사용합니다.
1) PCM(Pulse Coded Modulation)
PCM 방식은 '입력된 값 그대로를 기록하는 방법'을 의미합니다. 압축을 하지 않기 때문에 용량이 크며 CD 등에서 활용되는 고품질의 저장 방식입니다.
2) ADPCM(Adaptive Differential Pulse Coded Modulation)
국제 멀티미디어 협회(IMA)에서 제안한 방식으로 디지털화한 결과를 PCM 방식처럼 그대로 저장하는 것이 아니라, 바로 앞 신호와의 차이를 저장하는 방식입니다. 여기서 차이만 저장하는 방식은 DPCM 방식이라고 하는데, DPCM은 인접한 값과의 차이가 크면 비효율적이라는 단점을 가지고 있습니다. ADPCM 방식은 그에 반해 DPCM에서 인접한 값과의 차이가 크면 진폭을 나누는 단계를 크게 하고, 차이가 작으면 진폭을 나누는 단계를 작게하여 가변적으로 차이를 정밀하게 저장하는 방식입니다. 기본적으로 PCM 방법으로 기록한 것과 내용이 같으나 데이터 압축에 의한 값을 기록하므로 최대 4:1까지 압축이 가능합니다. 멀티미디어 협회에서 기본적인 알고리즘을 정의하였으나, 업체마다 다르게 구현하여 상호 호환성이 부족한 실정입니다.
파일의 크기는 기본적으로 표본화 율 X 해상도 X 모드(Mono = 1, Stereo = 2) X 시간(초)로 계산이 가능합니다.
1분 길이의 음악 CD는 44,100(Hz) X 16(bit) X 2(Stereo) X 60(초) = 84,672,000bit로서 약 10.6MB의 크기입니다.
결과적으로 CD 한 장의 용량이 650MB이므로 그 안에는 약 10곡에서 15곡의 음악이 저장 가능합니다.
아날로그 정보의 디지털화 과정을 블록 다이어그램으로 그리면 아래와 같습니다.
위 설명 중에서 표본화(Sampling) 과정에서 나이키스트 정리를 이용한다고 했습니다. 나이키스트 이론은 '표본화 시 원음을 그대로 반영하기 위해서는 원음이 가지는 최고 주파수의 2배 이상으로 표본화해야 한다'는 뜻을 가진 이론입니다. 사람의 경우 약 20Hz에서 20,000Hz 정도의 가청 주파수를 가지고 있기 때문에 음악 CD는 44.1KHz의 표본화율로 구성이 됩니다. 이를 수식으로 표현하면 f(s) >= 2 X f(m)입니다.
'멀티미디어' 카테고리의 다른 글
| 압축의 원리에 대해서 알아보자! (허프만 코딩 알고리즘) (0) | 2017.04.21 |
|---|---|
| 음악을 만드는 방법, MIDI란 무엇일까? (0) | 2017.04.21 |
| 사운드(Sound)의 기본 개념 이해하기! (0) | 2017.04.21 |
| 이미지와 그래픽의 개념을 정리해보자 (0) | 2017.04.21 |
| 이미지 압축 방식에 대해서 알아보자! (0) | 2017.04.21 |
사운드(Sound)의 기본 개념 이해하기!
● 사운드의 개요
사운드란 '귀로 들을 수 있는 모든 정보'를 의미합니다. 음악, 음성, 음향 효과 등을 단독 혹은 혼합 사용하여 멀티미디어 환경을 구축할 수 있습니다. 또한 정보 전달 시 사운드의 장점은 다음과 같습니다. 먼저, 시각 + 청각 미디어로 정보전달 효과를 상승시킬 수 있습니다. 그리고 시각 + 청각 미디어를 혼합하여 피 전달자의 흥미를 유발할 수 있습니다.
사운드는 흔히 정보를 전달하는 주요한 수단 중 하나로서 '음성(Voice)'가 있고 단독으로 음악 감상, 또는 정보전달 시 부수적 효과를 제공하는 '음악(Music)'과 마지막으로 배경효과로 사용되어 상황을 좀 더 현실감 있게 전달하는 '음향효과(Sound Effect)'가 있습니다. 이러한 음향효과는 보통 자연적인 음향효과와 합성된 음향효과로 나누어집니다.
컴퓨터에서 이러한 사운드는 아날로그 형태의 사운드를 디지털화 시킨 '디지털 오디오(Digital Audio)' 혹은 전자 악기와 다른 기계 간의 정보를 전송하기 위한 통신 규약인 '미디(MIDI)'로 분류할 수 있습니다. 디지털 오디오를 생각해볼 때 원음에 충실하려면 많은 용량이 필요합니다. 예를 들어 음악 CD는 3분에 약 30MB가 필요합니다. 반면에 미디는 실제 소리는 없이 연주 방법과 시기에 대한 정보를 가지고 있습니다. 3분 정도의 미디 음악을 듣기 위해서 약 8KB 정도가 필요하며 좋은 MIDI 사운드 음원을 가지고 있는 것이 관건입니다.
인간의 감각기관은 누구나 알듯이 시각, 청각, 후각, 촉각, 미각입니다. 이 중에서 주요 정보전달 수단은 바로 시각과 청각입니다. 사람은 이중 채널 모델을 가지고 있으며 각 채널은 하정된 정보 처리 능력을 가지고 있습니다. 여기서 적극적인 학습은 학습 과정에서 인지 과정이 공동 작용하는 것을 수반합니다. 이를 위해서 사운드를 적절하게 활용하면 유리합니다. 학습 후 기억의 정도를 고려할 때 단순히 보거나 듣기만 하는 것에 비해서 보면서 동시에 들은 경우가 50% 정도로 훨씬 효율적으로 기억할 수 있었습니다.
● 사운드의 원리
사운드의 원리는 바로 물체의 진동입니다. 물체가 진동하면 주변의 공기에 진동으로 생성된 압력이 전달되면서 사운드가 생성됩니다. 이러한 사운드는 공명으로서 존재하며 공명의 형태를 파형(Waveform)이라고 부릅니다. 파형은 주기, 진폭, 주파수로 그 특징을 정할 수 있습니다. 주기(T)와 주파수(F)는 반비례 관계입니다. 주파수(F)는 1 / T Hz와 같기 때문입니다. 대역폭은 0 - 20Hz을 초저주파, 20 - 20KHz를 가청영역, 20KHz - 1GHz를 초음파, 마지막으로 1GHz - 10THz를 극초음파라고 나누고 있습니다. 여기서 가장 중요하게 봐야 할 부분은 20 - 20KHz 가청영역입니다.
- 푸리에 정리
푸리에 정리란 '어떤 주기적 파형도 많은 수의 정현파의 합으로 나타낼 수 있다는 수학적 정리'를 의미합니다.
푸리에 급수 : 임의의 주기함수를 직교관계에 있는 삼각함수의 합으로 나타내는 것
푸리에 변환 : 임의의 비주기함수를 시간영역에서 주파수의 영역으로 나타내는 것
결과적으로 주기적인 파형은 이산형 스펙트럼을, 비주기적 파형은 연속형 스펙트럼을 가지게 됩니다.
주파수 대역이란 '주파수 요소가 값을 가지는 범위'를 의미합니다.
주파수 대역의 크기는 BW = F(Upper) - F(Lower)입니다.
달팽이관의 바깥쪽에서 높은 소리를 듣고 안쪽에서 낮은 소리를 듣습니다.
'멀티미디어' 카테고리의 다른 글
| 음악을 만드는 방법, MIDI란 무엇일까? (0) | 2017.04.21 |
|---|---|
| 아날로그를 디지털로 바꾸는 방법 (표본화, 양자화, 부호화) (0) | 2017.04.21 |
| 이미지와 그래픽의 개념을 정리해보자 (0) | 2017.04.21 |
| 이미지 압축 방식에 대해서 알아보자! (0) | 2017.04.21 |
| 이미지의 입출력 방식 이해하기! (0) | 2017.04.21 |
5강 이미지 파일.zip
jl1.0.1.jar