-

아,,그렇군요!!자세히설명해주셔서감사합니다!!

스테레오와 모노의 차이점은 스피커에서 나오는 소리를 어떻게 하느냐에 대한 차이입니다.

 

좀 쉽게 예를 들어 설명하겠습니다.

 

바이올린과 피아노를 사용한 클래식 음악이 있다고 하고 스피커는 2채널(2개)라고 하겠습니다.

 

일단 모노는 저 두 악기의 소리를 그냥 내보냅니다.

 

다시 말하면 2개의 스피커가 동시에 피아노 바이올린의 두가지 소리를 내보낸다는 것이죠

 

좀더 쉽게 설명하면 이어폰으로 들을 때 한개의 이어폰을 빼도 다른 한쪽의 이어폰에서

 

피아노, 바이올린 이 두가지 악기의 소리를 모두 들을 수 있는 것입니다.

 

그리고 스테레오는 저 두 악기를 각각 스피커 한개 씩 나눠서 내보내는 것입니다.

 

즉, 이어폰의 한쪽을 빼면 다른 곳에서는 피아노, 바이올린 이 둘중 한개만 소리가 나는 방식입니다.

 

물론 이것을 지원하려면 두 악기를 따로 녹음해야 합니다.

 

아 그리고 스테레오를 사용하는 이유는 좀더 현장감 있는 소리를 만들기 위해서 입니다.

 

영화같은 경우 5채널을 사용하는데요 스피커를 앞, 뒤 양옆 이런 식으로 배치하면 정말

 

현장에서 직접 소리를 듣는 느낌이 나겠죠?

 

그리고 용량차이가 나는이유는 기술상 스테레오가 좀더 많은 용량을 차지하기 때문입니다.

-

'Knowledge' 카테고리의 다른 글

[ASP.NET] 세션(SESSION)  (0) 2018.06.21
[ASP.NET] Session  (0) 2018.06.21
[스크랩] 비틀즈로 알아보는 모노와 스테레오의 차이  (0) 2018.06.04
SnapLock  (0) 2018.06.04
[.NET] Hashtable Generic  (0) 2018.05.30

비틀즈로 알아보는 모노와 스테레오의 차이

http://soundz.egloos.com/4922031

비틀즈The Beatles 카탈로그가 재발매 되면서 모든 앨범이 스테레오 기준으로 제작되고, 또 이걸 죄다 모은 스테레오 박스와, 지금껏 구하기 힘들었던 모노버전을 별도로 모은 모노 박스가 발매된다는 소식은 이미 전해 드렸습니다. (국내최초단독특종보도였음을 당시 한번 강조하면서. 흠흠...)

그런데 이글루스 쪽은 아니지만, 네이버 쪽에서는 '모노/스테레오가 뭐 다른거삼?' 이런 질문을 매우 많이 받았습니다. 아무래도 주이용자의 연령분포의 차이가 이런데서 드러나는 것 같은데, 쪽지로 온 것은 대충 다 설명을 드렸지만 댓글로 달리거나 한 질문들은 별도로 답하질 못해서 겸사겸사 이런 포스트를 날립니다.

음향기기나 기술에 경험과 관심이 없는 중고생들은 그럴 수 있겠으나 자주 이어폰 꽂고 음악을 듣는 대학생이나 20대들이 스테레오가 기본적으로 어떤 개념인지 모르는 것은 다소 의외였습니다. 이런 것도 세대차이일까요? ^^;;

아무튼 가장 많은 오해는 모노와 스테레오를 음질의 차이라고 이해하는 경우가 가장 많았습니다. 그러니까 질문 안 한 분들 중에도 이런 식으로 잘못 알고계신 분들이 많다는 이야기겠지요. 모노는 음질이 후진 것, 스테레오는 뭔가 단어가 근사하니까 음질이 좋은 것 이런 식으로 이해하는 경우가 많았습니다.

결론부터 말하면 모노와 스테레오는 음질의 차이하고는 아무런 관련이 없습니다. 리마스터링으로 인해 나타는 음색의 차이와도 관련없습니다.

* 리마스터링이 단지 음질 업그레이드라고 생각하시는 분들도 많은데 리마스터링은 어느 엔지니어가 담당하느냐에 따라 단순히 음질의 개선 뿐만이 아니라 곡의 느낌에 상당한 변화를 줍니다. 

모노와 스테레오는 음의 입체감과 관련된 개념입니다. 모노는 이름 그대로 소리가 한 방향에서만 들리는 것이고 스테레오는 두 방향에서 들립니다. (그래서 결과적으로는 좌-중-우 세 방향에서 들립니다.) 이 방향을 채널이라고 하는데 채널이 두개라 stereo라고 합니다. 그래서 채널이 5개면 5.1채널이 됩니다. (0.1에 해당하는 서브우퍼는 특정 음대역을 재생하는 장치지 특정 채널을 재생하는 것이 아닙니다.)

이어폰이나 헤드폰이 두짝인 것은 사람 귀가 두개여서가 아니라 소리가 두 곳에서 나오기 때문입니다. 모노 이어폰은 당연히 한짝 밖에 달려있지 않습니다.

그니까 이런 차이는 전~~~혀 중요하지 않습니다.

스테레오의 개념은 이미 19세기 말에 정립됐지만 상업화 된 것은 50년대입니다. 그러나 클래식 음반에 먼저 적용됐고, 대중음악에는 60년대 들어서야 보급됩니다. 비틀즈가 데뷔할 무렵입니다. 그리고 60년대 후반이 되면 모노 우세에서 스테레오 우위로 대중음악 시장도 전환됩니다.

그래서 "화이트 앨범"까지의 비틀즈 앨범들이 모노와 스테레오 별도의 버전으로 존재하는 것입니다. 여기에 비틀즈는 스테레오 믹스의 두 채널을 기술적으로 합치는 방식으로 모노 믹스를 제작하지 않고 모노믹스를 우선 제작한 후 별도로 스테레오 믹스를 제작했기 때문에 여러 노래에서 모노/스테레오 버전의 차이가 발생했습니다. 

예를 들어 'Please Please Me(앨범말고 노래)'의 모노와 스테레오 버전을 각기 들어보면 스테레오 버전에서는 존이 가사를 틀려서 멋적게 웃는 광경이 그대로 들어있습니다. 즉, 모노믹스와 스트레오믹스에 사용된 보컬 트랙이 서로 다른 것이지요.

이런 이유로 그동안 수많은 팬들이 비틀즈 앨범의 모노버전을 (첫 네장의 경우는 스테레오를) 상업적으로 발매해 줄 것을 요구했었습니다. 인터넷에는 비틀즈 모노 버전 발매를 위한 세계 팬들의 청원 서명사이트도 있습니다. 이번에 비틀즈 박스가 스테레오와 모노 두가지 형태로 나오는 것은 돈 더벌기 위해 EMI와 애플이 꼼수를 쓰는 것은 아닙니다. 

아무튼 말로 설명하는 것보다 직접 듣고 확인하는 것이 더 정확하고 빠르겠습니다. 고맙게도 비틀즈의 현행 CD들을 보면 초기 곡들의 모노와 스테레오 버전의 차이를 확인 할 수 있는 트랙들이 있습니다.


비교 1. "1"앨범을 이용

너무 팔린 나머지 현대인의 생활소품이라는 지위를 획득한 "1" CD에는 'Can't Buy Me Love', 'A Hard Day's Night', 'Eight Days a Week'가 스테레오 버전으로 실려있습니다. 
이어폰이나 헤드폰을 끼고, 'Can't Buy Me Love', 'A Hard Day's Night' 두곡을 현행 "A Hard Day's Night" CD에 실린 같은 곡의 모노 버전과 비교해서 들으시면 모노/스테레오의 차이, 입체감의 차이라는 것이 무엇인지 확인하실 수 있습니다. 물론 음질의 차이도 느껴지시겠지만 그건 무시하셔야 합니다. 당연히 "1"은 2000년에 리마스터링한 음반이니까요. ^^;;
'Eight Days a Week'는 현행 "Beatles for Sale" CD의 같은 트랙과 비교하시면 됩니다.

비슷한 경우로 "레드앨범"이라고도 불리는 "The Beatles / 1962–1966"에는 위의 세곡 외에도 'And I Love Her'의 스테레오 버전이 실려있어 오리지널 CD의 모노 버전과 비교해 볼 수 있습니다. 

* "레드앨범"에는 'All My Loving'의 스테레오 버전도 실려있지만 이 믹스는 초기 2트랙 녹음의 한계로 모노 버전과 이미지의 차이가 크지 않습니다.


비교 2. "The Capitol Albums, Volume 1"과 "Volume 2"
미국에서 발매된 비틀즈의 앨범들을 모은 이 박스세트는 모든 곡들이 모노/스테레오 버전으로 함께 들어있기 때문에 이 박스 세트를 가지고 계신 분은 손쉽게 모노/스테레오 차이를 경험하실 수 있습니다.

비틀즈 초중기 곡들의 모노/스테레오 버전은 
거의 대부분 이 박스세트를 통해 처음 CD데뷔했습니다. 
특히 "Help!"와 "Rubber Soul"의 65년 오리지널 스테레오 믹스도 
이 박스세트를 통해 이미 공개됐습니다.


비교 3. "EP Collection"과 "Singles Collection"
갖고 계신 분은 그리 많지 않지만 92년에 나온 "EP Collection"과 "Singles Collection"에는 수많은 초중기 곡들의 모노믹스가 실려있습니다. 특히 "Magical Mystery Tour" EP의 모노 버전과 스테레오 버전이 함께 들어있기 때문에 비교해서 듣기 좋습니다.


일단 현행 CD를 통해 손쉽게 모노와 스테레오의 기술적인 차이를 이해하는 방법을 적어봤습니다. 앞에서도 언급했던 두가지 믹스에서 발견되는 소소한 차이는 비틀즈 카탈로그가 재발매되기 전에 한번 주욱 정리하도록 하겠습니다. :)


'Knowledge' 카테고리의 다른 글

[ASP.NET] Session  (0) 2018.06.21
모노와 스테레오의 차이  (0) 2018.06.04
SnapLock  (0) 2018.06.04
[.NET] Hashtable Generic  (0) 2018.05.30
[스크랩] [C#] 람다식 작성  (0) 2018.05.30


링크: https://library.netapp.com/ecmdocs/ECMP1196889/html/GUID-7334EEB5-94E9-4500-BA40-681DEC572420.html


-

What SnapLock is

SnapLock is an alternative to the traditional optical "write once, read many" (WORM) data. SnapLock is used for the storage of read-only WORM data.

SnapLock is a license-based, disk-based, open-protocol feature that works with application software to administer non-rewritable storage of data. The primary objective of this Data ONTAP feature is to provide storage-enforced WORM and retention functionality by using open file protocols such as CIFS and NFS. SnapLock can be deployed for protecting data in strict regulatory environments in such a way that even the storage administrator is considered an untrusted party.

SnapLock provides special purpose volumes in which files can be stored and committed to a non-erasable, non-rewritable state either forever or for a designated retention period. SnapLock allows this retention to be performed at the granularity of individual files through standard open file protocols such as CIFS and NFS.

-

How SnapLock works

The WORM data on SnapLock volumes is administered in the same way as data on regular (non-WORM) volumes. SnapLock volumes operate in WORM mode and support standard file system semantics. You can create data on a SnapLock volume and commit it to the WORM state by transitioning the file from a writable state to a read-only state.

Marking an active writable file as read-only on a SnapLock volume commits the data to WORM. When a file is committed to WORM, it cannot be altered or deleted by applications, users, or administrators until the file retention date is reached. The exception is in SnapLock Enterprise volumes, where you can delete a file before it reaches the retention date by using the privileged delete feature.

The data that is committed to the WORM state on a SnapLock volume cannot be changed or deleted before its retention date. However, you can change or delete the empty directories and files that are not committed to a WORM state. Directories do not behave any differently than they would on regular volumes, with the exception that they cannot be renamed or moved once created. It is a requirement for regulatory compliance that WORM data be not only non-erasable and non-rewritable, but it must also be locked down in the same location at which it was created. In the case of WORM implementation, this means that the directory path to WORM files must be locked down and should never change.

In Data ONTAP 7.0 and later, WORM files can be deleted after their retention dates have been reached. The retention date on a WORM file is set when the file is committed to the WORM state, but it can be extended at any time. The retention period can never be shortened for any WORM file.

-




MD5

위키백과, 우리 모두의 백과사전.
둘러보기로 가기검색하러 가기

MD5(Message-Digest algorithm 5)는 128비트 암호화 해시 함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년에 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안했다.

1996년에 MD5의 설계상 결함이 발견되었다. 이것은 매우 치명적인 결함은 아니었지만, 암호학자들은 해시 용도로 SHA-1과 같이 다른 안전한 알고리즘을 사용할 것을 권장하기 시작했다. 2004년에는 더욱 심한 암호화 결함[1]이 발견되었고. 2006년에는 노트북 컴퓨터 한 대의 계산 능력으로 1분 내에 해시 충돌을 찾을 정도로 빠른 알고리즘이 발표[2]되기도 하였다. 현재는 MD5 알고리즘을 보안 관련 용도로 쓰는 것은 권장하지 않으며, 심각한 보안 문제를 야기할 수도 있다. 2008년 12월에는 MD5의 결함을 이용해 SSL 인증서를 변조하는 것이 가능하다는 것이 발표되었다[1].

알고리즘[편집]

단일 MD5 연산. MD5에서는 이 단일 연산을 64번 실행한다. 16개의 연산을 그룹화한 4 라운드로 묶인다. F는 각 라운드에서 사용하는 비선형 함수를 가리키며, 각 라운드에서는 각각 다른 함수를 사용한다. Mi는 입력 메시지의 32-비트 블록을 의미한다.

left shifts는 s칸 만큼의 레프트 로테이션을 가리키며, s는 각 연산 후 값이 변한다. Addition 은 모듈로 232 덧셈을 말한다.

MD5는 임의의 길이의 메시지(variable-length message)를 입력받아, 128비트짜리 고정 길이의 출력값을 낸다. 입력 메시지는 512 비트 블록들로 쪼개진다; 메시지를 우선 패딩하여 512로 나누어떨어질 수 있는 길이가 되게 한다. 패딩은 다음과 같이 한다: 우선 첫 단일 비트, 1을 메시지 끝부분에 추가한다. 512의 배수의 길이보다 64 비트가 적은 곳까지 0으로 채운다. 나머지 64 비트는 최초의(오리지널) 메시지의 길이를 나타내는 64 비트 정수(integer)값으로 채워진다.

메인 MD5 알고리즘은 A,B,C,D라고 이름이 붙은 32 비트 워드 네 개로 이루어진 하나의 128 비트 스테이트(state)에 대해 동작한다. A,B,C,D는 소정의 상수값으로 초기화된다. 메인 MD5 알고리즘은 각각의 512 비트짜리 입력 메시지 블록에 대해 차례로 동작한다. 각 512 비트 입력 메시지 블록을 처리하고 나면 128 비트 스테이트(state)의 값이 변하게 된다.

하나의 메시지 블록을 처리하는 것은 4 단계로 나뉜다. 한 단계를 "라운드"(round)라고 부른다; 각 라운드는 비선형 함수 F, 모듈라 덧셈, 레프트 로테이션(left rotation)에 기반한 16개의 동일 연산(similar operations)으로 이루어져 있다. 오른쪽 그림은 한 라운드에서 이루어지는 한 연산(operation)을 묘사하고 있다.

함수 F에는 4가지가 있다; 각 라운드마다 각각 다른 F가 쓰인다:

는 각각 XOR논리곱논리합 그리고 NOT 연산을 의미한다.

의사코드[편집]

MD5 알고리즘의 의사코드는 다음과 같다:

//Note: All variables are unsigned 32 bits and wrap modulo 2^32 when calculating
var int[64] r, k
//r specifies the per-round shift amounts
r[ 0..15] := {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22}
r[16..31] := {5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20}
r[32..47] := {4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21}
//Use binary integer part of the sines of integers as constants:
for i from 0 to 63
    k[i] := floor(abs(sin(i + 1)) × (2 pow 32))
//Initialize variables:
var int h0 := 0x67452301
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476
//Pre-processing:
append "1" bit to message
append "0" bits until message length in bits ≡ 448 (mod 512)
append bit (bit, not byte) length of unpadded message as 64-bit little-endian integer to message
//Process the message in successive 512-bit chunks:
for each 512-bit chunk of message
    break chunk into sixteen 32-bit little-endian words w[i], 0 ≤ i ≤ 15
    //Initialize hash value for this chunk:
    var int a := h0
    var int b := h1
    var int c := h2
    var int d := h3
    //Main loop:
    for i from 0 to 63
        if 0 ≤ i ≤ 15 then
            f := (b and c) or ((not b) and d)
            g := i
        else if 16 ≤ i ≤ 31
            f := (d and b) or ((not d) and c)
            g := (5×i + 1) mod 16
        else if 32 ≤ i ≤ 47
            f := b xor c xor d
            g := (3×i + 5) mod 16
        else if 48 ≤ i ≤ 63
            f := c xor (b or (not d))
            g := (7×i) mod 16
        temp := d
        d := c
        c := b
        b := b + leftrotate((a + f + k[i] + w[g]) , r[i])
        a := temp
    //Add this chunk's hash to result so far:
    h0 := h0 + a
    h1 := h1 + b
    h2 := h2 + c
    h3 := h3 + d
var int digest := h0 append h1 append h2 append h3 //(expressed as little-endian)
  //leftrotate function definition
  leftrotate (x, c)
      return (x << c) or (x >> (32-c));
  • 참고: RFC 1321에 나온 공식외에 다음과 같은 공식을 쓰면 퍼포먼스가 향상될 수 있다(어셈블리어가 사용될 때 유용하다 - 다른 언어가 쓰일 경우에는 대개 컴파일러가 위의 코드를 최적화 해준다.)
(0  ≤ i ≤ 15): f := d xor (b and (c xor d))
(16 ≤ i ≤ 31): f := c xor (d and (b xor c))

각주[편집]

  1. 이동 Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger. “MD5 considered harmful today: Creating a rogue CA certificate”.


+ Recent posts