프로그램이 커지면 실행파일을 작게 만들고 lib 등을 따로 뺌
윈도우 확장자 -> .dll .exe .ini .bmp
리눅스 -> 확장자 따로 없음 .a(archive : 정적 라이브러리), .so(shared object : 동적 라이브러리)
Data : 문자, 숫자, 멀티미디어(사운드, 이미지), 문서 등을 포함
- Character
- String
- “hello” -> hello□(널문자: 스트링임을 구분하기 위해 붙여서 저장) 6바이트로 저장 또는
- String str = “hello”
- data[5] = hello
- length : 5 (ex: str.length 할때 null문자가 나올때까지 데이터를 읽어서 찾음)
- End of string : String에서 7비트 찍다가 이 문자 나오면
\n : nextline \r : 캐리지 라인 (뒤로 가있는 커서를 앞으로 옮김) - 리눅스와 윈도우에서 텍스트 옮길 때 유닉스는 \r이 안붙고 윈도우만 붙는 경우, 또는 개행 코드가 달라서 변환이 제대로 안되는 경우가 있음
- String
- Ascii (American Standard Code 7비트를 사용함)
- 대, 소문자
- 숫자 문자
- 특수 문자
- Unicode (2,3 바이트)
Utf-8 : 영 숫자 1바이트 , 한글 3바이트
Utf-16 : 한글 2바이트
- Unicode (2,3 바이트)
- Binary
- 32bit : 한번에 보내는 메모리 양이 32 bit, Integer 4byte / Long 4byte
- 64bit : 한번에 보내는 메모리 양이 64 bit, Integer 4byte / Long 8byte
- Little Endian -> 1234 순서대로 저장
- Big Endia -> 4321 순으로 저장
그래서 받을 때는 host byte로 변환, 보낼 때는 network byte로 변환해서 저장
- Json
{
“name” : “Json”
“color” : [“red”, “orange”]
}
와
{
“color” : [“red”, “orange”],
“name” : “Json”
}
리스트는 순서가 안변함
노드는 변할 수 있음
* Compression(압축)
- 손실된 압축 (Lossy) Ex :
- Size만 줄이는 압축 (Loseless) Ex : 알집
-
소리
-
보통 sin 파가 나옴
-
소리 크기(진폭)와 높이(Hz) 에 의해서 결정됨
-
디지털화 하는 방법(44000Hz일때) => PCM(pulse code modulation)
-
Hz를 8bit로 쪼개고, 1초에 44000번 샘플링을 함 -> 60s * 44000B = 2.6MB
-
32bit로 쪼개면 * 2.6MB
-
-
자연 소리를 디지털화 할때 가청주파수 까지만 녹음해서 용량을 줄임
-
-> MP3
-
-
이미지
-
RGB : (pixel : 화소 : 단위면적당 화소의 개수) 1byte, 1byte, 1byte : 8x8x8 가지 색을 저장할 수 있음 -> BitMap (bmp)
-
압축할 때 4x4 블럭안에 있는 값을 대표값으로 2x2 블럭으로 압축함
-
bmp -> jpeg로 압축할때 압축율 높이면 (데이터 많이 날아가서) 사진이 거칠어짐
-
-
동영상
-
1초 24장의 사진을 보여줌
-
mpeg : 기준이미지를 정하고, 그 뒤는 차이만 저장함으로 저장 용량을 줄임
-
기준이미지를 10장에 한번씩만 저장함 그사이는 차이만 저장함 (시간 중복성을 제거)
-
-
기준 이미지를 받고 다음 기준이미지가 들어올 때 까지 기다릴때 버퍼링이 걸린다.
-
RTSP (Real Time Streaming Protocol)
-
( Moving Picture Experts Group) : 영상 :: 국제 표준화 단체
(Joint)MPEG : 이미지
MP(EG)3 : 소리
=> 멀티미디어는 사람의 착각을 이용해서 사람이 알아채지 못하는 부분을 삭제해서 압축함
무손실 압축 : FLAG (mp3보다 사이즈가 큼)
'CS > Computer' 카테고리의 다른 글
Video call (feat.WebRTC) (0) | 2021.02.08 |
---|---|
Operating System (0) | 2019.06.07 |
프로그램에 관하여 (0) | 2019.05.14 |
DLL (Dynamic Link Library) (0) | 2019.05.07 |
RPA (Robotic Process Automation) (0) | 2019.04.24 |