[멀티미디어] - 멀티미디어 데이터 압축
·
💻 Computer Science/멀티미디어
데이터 압축의 기본 원리와 기법 "데이터 압축"이란 데이터를 더 작은 공간에 효율적으로 기록하기 위한 기술이다. 데이터의 양이 많을 경우 저장장치에 효율적으로 저장하기 어렵고 통신 네트워크를 이용하여 전송하는데 어려움이 생기기에 데이터 압축은 반드시 필요하다. 데이터 압축의 기본 원리는 바로 데이터에 포함된 "중복성"을 제거하는 것이다. 데이터의 중복성으로는 다음이 있다. 통계적 중복성(Statistical Redundancy): 정보이론을 기초로 데이터의 통계에서 나타난 통계적 중복을 제거한다. 주관적 중복성(Subjective Redundancy): 인간의 시각구조를 기초로 눈에 보이는 주관적 중복을 제거한다. 공간적 중복성(Spatial Redundancy): 데이터들 사이에 나타나는 상관관계를 이..
[멀티미디어] - 비디오와 애니메이션 (Video & Animation)
·
💻 Computer Science/멀티미디어
비디오 (Video) 동영상(Moving Image)라고도 불리는 비디오는 정지 이미지들의 연속적인 집합체를 말한다. 비디오는 많은 정지 이미지와 오디오로 구성되어있기에 멀티미디어 데이터의 구성 요소 중 가장 크기가 크며 처리하기 복잡한 데이터이다. 이때, 비디오를 구성하는 이미지 하나하나를 "프레임(Frame)"이라고 하며, 비디오는 화면의 크기와 초당 프레임 수로 구분한다. 이러한 정의로부터 다음의 식을 도출할 수 있다. 비디오의 크기 = 이미지 프레임의 크기 X 초당 프레임 수 아날로그 비디오 아날로그 비디오는 전기적 신호이기에 시각 정보들은 신호의 진폭 변화에 따라 프로그래밍된다. 프로그래밍된 신호들은 프레임과 수평 주사선으로 나타나고, 이러한 비디오 신호들에 대한 적절한 타이밍을 조정하는 동기화..
[프로그래밍 언어론] - 프로그래밍 언어의 구현
·
💻 Computer Science/프로그래밍 언어론
프로그래밍 언어 정의 어떤 프로그램이 올바른 형태인지, 올바른 프로그램을 실행했을 때 어떻게 실행되는 것이 올바른 것인지 규정하는 것을 "프로그래밍 언어 정의"라고 한다. 프로그래밍 언어의 형태에 관한 규정인 "구문(Syntax) 규칙"과 실행 결과에 관한 규정인 "의미(Semantics) 규칙"을 합쳐 프로그래밍 언어의 정의가 된다. 프로그래밍 언어 구현 프로그래밍 언어로 작성된 프로그램을 수행하는 프로그램을 "프로그래밍 언어 구현"이라고 한다. "함수 모형(Functional Model)"을 통해 프로그래밍 언어의 구현을 쉽게 이해할 수 있다. 어떤 프로그래밍 언어 $L$의 구현은 $L$로 작성된 어떤 프로그램 $P_L$이 주어졌을 때, 입력 데이터 $in$을 받아 출력 데이터 $out$을 내야한다...
[프로그래밍 언어론] - 구문 분석
·
💻 Computer Science/프로그래밍 언어론
프로그램 분석 문자가 모여 어휘를 분석하고, 어휘들이 구문에 맞추어 프로그램을 구성한다. 프로그램의 분석은 크게 "어휘 분석"과 "구문 분석"으로 구분된다. 어휘 분석 어휘 분석의 목적은 "프로그램에서 사용된 단어를 구별해 내는 것"이다. 어휘 분석을 통하여 얻어지는 결과를 "토큰(Token)"이라고 한다. 토큰은 문법적으로 더 이상 나누어질 수 없는 요소이며, 토큰에는 연산자, 구분자, 식별자, 예약어 등이 포함된다. 연산자(Operator): 연산을 수행하기 위해 사용되는 토큰으로, +, -, =, * 등이 있다. 구분자(Separator): 프로그래밍 요소를 구분하는 토큰으로, 세미콜론(;), 콤마(,) 등이 있다. 연산자를 제외한 대부분의 기호가 구분자이다. 식별자(Identifier): 프로그램..
[멀티미디어] - 이미지와 그래픽 (Image & Graphic)
·
💻 Computer Science/멀티미디어
멀티미디어를 구성하는 이미지와 그래픽은 시각 정보로서 정보를 기억함에 있어 큰 영향을 미친다. 이미지는 스캐너 또는 디지털 카메라와 같은 장치를 통해 입력된 그림과 같은 시각 정보이며, 그래픽은 컴퓨터 소프트웨어를 통해 제작된 인위적인 그림을 말한다. 이 포스팅에 나오는 "영상"이라는 단어는 동영상이 아니라 "정지 영상", 즉 2차원 평면 위에 그려진 시각적 표현물을 말하는 것임을 기억하길 바란다. 이미지 (Image) 위에서 언급했듯, 이미지(Image)는 스캐너 또는 카메라와 같은 장치를 통해 입력된 그림과 같은 시각 정보이다. 이미지를 표현하는 방법도, 이미지를 처리하는 방법도 다양하며, 또한 컴퓨터에 저장되는 이미지 파일 종류도 다양하다. 이미지 기본 개념 이미지에서 반드시 알아야 하는 중요한 개..
[멀티미디어] - 사운드 (Sound)
·
💻 Computer Science/멀티미디어
사운드 정의 사운드란 소리를 뜻하는 영단어로, 물리적인 진동 작용인 음파에 기초를 두고 있는 개념이다. 우리가 귀로 들을 수 있는 모든 것은 음파의 형태로 우리의 귀에 도달하고 그리고 우리가 인지하게 된다. 결국, 일반적인 사운드는 매체 안에 있는 분자들의 진동으로 생성된 파장을 통해 전달되는데 이를 측정하고 기록하여 전자적으로 처리할 수 있다. 아날로그 사운드 아날로그 사운드는 실제 세상에서 듣는 소리를 의미한다. 각각의 소리는 소리의 크기, 소리의 높이, 음색으로 구성된다. 순소한 소리의 기본적인 진동은 사인파 모양을 형성한다. 먼저 사운드를 제대로 이해하기 위한 기본 용어들을 정리하겠다. 진폭(Amplitude): 파형의 최고점 또는 최저점과 중앙선의 차이, 즉. 파장의 높이이다. 주기(Period..
[프로그래밍 언어론] - 구문론과 의미론
·
💻 Computer Science/프로그래밍 언어론
구문론과 의미론 사람들이 일반적으로 사용하는 언어는 오랜 시간 거쳐 발전해왔고, 이러한 언어를 연구하는 분야 중 대표적으로 "구문론(Syntax)"와 "의미론(Semantics)"이 있다. 구문론은 문장이 구성되는 방식을 연구하는 분야이고, 의미론은 문장이 나타내는 의미에 대해 연구하는 분야이다. 언어마다 특유의 문장 구성 방식이 있고 그에 맞춰 의미를 해석할 수 있다. 즉, 구문론과 의미론을 통하여 각 언어를 엄밀하게 정의할 수 있다. (이를 "언어의 형식적 정의"라고 한다.) 언어의 형식적 정의는 프로그래밍 언어에서도 매우 중요한데, 컴퓨터가 이해할 수 있도록 프로그래밍 언어는 명확한 구문과 의미가 정의되어야 한다. 또한 실제 프로그램을 작성하는 사람이 원하는 바를 잘 전달할 수 있도록 명확한 사용체..
loading