2009년 9월 26일 토요일

세상에서 제일 아름다운 뒷태 모음

 

정말 예쁘고 귀여운 뒷태 모음들.... 그런데 내 눈에는 어린 아기의 뒷모습이 정말 귀엽게만 보이는데...

 

강아지도 귀엽긴 하지만... 그래도 아기의 작은 발바닥이 어쩜 저리도 귀여울까... ^^;;;

 

2009년 9월 18일 금요일

쏟아지는 정보들 과연 다 정확한가?

바로 어제였다. 주요 포털들의 메인을 장식했었던, 빌게이츠의 딸에 대한 기사.

 

그 기사에는 빌게이츠의 딸, 제니퍼 캐서린 게이츠이 올해 13살이며 나이답지 않게,

 

성숙한 모습이라는 등의 온갖 자극적인 문장들로 사용자들의 클릭을 유도해냈다.

 

다음은 그 기사의 일부.

 

 

반응은 즉각적이었다. 그만큼 영향력 있었고 신문 기사라고 하니깐 믿음직스럽지 아니한가!!

 

하지만 현실은?? 일부 네티즌들은 일년 전의 사건을 거론하며 이 사진이 다른 사람이라고 주장했다.

 

댓글들의 내용은, 이 사진이 이미 일년전부터 인터넷 상에 떠돌던 사진이며,

 

그 주인공은 영화배우 레이첼 리 쿡 이라는 이야기였다.

 

                                     <네이버 이미지 검색 내용 중........>

 

이런 논란 뒤 기사는 잠시 뒤에 감쪽 같이 삭제되어 버렸다.

 

이 하나의 사실만으로 알 수 있듯이, 요즘 시대에 홍수처럼 넘쳐나는 정보들 중에서......

 

과연 그것들이 얼마나 진실되고 정확성을 가지고 있는가는 생각해볼 문제가 아닐 수 없다.

 

불과 얼마전에도 붉어졌던 2PM의 재범 문제도 그렇고,

 

이번 헤프닝도 그렇고.....

 

출처가 명확하다고 해서, 믿을만한 기관이라고 해서, 맹목적으로 아무 생각없이 정보들을

 

받아들이고 있지는 않은가 생각해볼 일이다.

 

우리는 얼마나 비판적 사고를 가지고 현상을 받아 들이고 있는가.

 

2009년 9월 9일 수요일

중앙대 새로운 중앙도서관 야경



 

 

허접한 야경사진 몇장 올려봅니다 .. 중도의 포스가 느껴지는..

 

 

 



 

 

중앙도서관 우측면 방향에서 ..

주변까지 환해지는.. 말 그대로 빛의 상자군요.

 

 

 



 

 

중앙도서관 좌측면의 모습 .. 주변까지 환하게 !

 

 



 

 

해방광장쪽에서 바라본 중도 우측면 모습 .. 역시 멋진 중도입니다.

 

..

 

 

..

 

 

..

 

 

..

 

 

 


 

 

이건 낮의 중앙도서관 모습 ..

 

 

..

 

..

 

..

 

 

 

 

 

 

 

 

이상 허접한 야경촬영 이었습니다 ..

9시 이후엔 중간층 불이 다 꺼져서.. 며칠 시행착오 끝에 결국 담아냈습니다.

 

..

 

야경촬영은 특히 젬병이라.. 헛점 많아도 그냥 즐겁게 감상해 주시길 ..ㅠㅠ

 

 

 

 

사진에 밴딩 노이즈가 너무 많... 털썩..

노이즈가 너무 많이 보인다면 보시는 분 모니터가 좀 밝게 되어있는 것이니 참고를..

..

 

 

PS 법학관에서 바라본 버드뷰 형식의 야경은 별로 이쁘질 않군요 ,,,

나중에 다시 촬영하던가 해야겠습니다.

다육이 적게 죽이고 키우는 방법

오늘 아이들 약 쳐주고 비 오면 호스로 샤워시킬려고 기다리는 중이네요~

아무래도 비는 오지 않을거 같고...할수 없이 한밤에 영양제 섞은 물만 줘야겠어요~

 

다육이를 알고부터 이번 여름까지 4번의 여름을 보냈네요~

 

첫해에는 멋모르고 푸르게푸르게 키웠다가 겨울에 대거 보내고,

(물 많이 먹고 웃자란 줄기는 쉽게 내려 앉아요)

 

두번째해는 무조건 물을 아끼다가 절반은 깍지로 보내고,

절반은 말려서 보내고

(너무 건조하면 깍지가 기승을 부리고, 장마철에도 물은 줘야해요)

 

세번째해는 장마비 다 맞혀서 세덤과 바위솔 대량 보내고,

다육이들은 뚱뚱이들을 다 만들어서 가을모습이 별로였어요.

(세덤류는 여름장마비가 쥐약이에요~

그리고 비를 너무 맞힌 다육이는 단풍이 덜 들어주네요)

 

네번째 여름인 올해는....

방제를 게을리 했더니 물러서 간아이들이 더러 됩니다.

 

아래 프리린제와 같이 왔던 문버스트와 미니고사옹이 어이없이 갔네요...ㅜㅜ

 

 

 

다육이를 키우면서 한아이도 보내지 않고 키우려면

다육이의 노예가 되어야 합니다.

 

취미생활로 기쁨을 얻고자 다육이를 키우는 것인데...

다육이의 노예가 된다면 취지에 어긋나겠지요?ㅎㅎㅎ

 

그래서 이제부터 덜 피곤해 하면서,

그래도 다육이를 적게 죽이는 방법 제가 아는한 공유해 볼까 해요~

 

[제가 즐겨 사용하는 보조제]

살충제 - 코니도(진딧물), 파발마(응애), 매머드(깍지벌레)

(수프라사이드는 고독성이라 사용하지 않아요)

살균제 - 다이센-M, 동부베노밀

 

주의사항 :

대부분 1000배희석이므로 정확한 비율로 희석하는게 젤로 중요합니다.

벌레가 지긋지긋하다고 강하게 희석하면 다육이를 잡을수 있습니다.

그게 무서워 너무 약하게 희석을 할 경우 원하는 살충과 살균효과는 얻지 못하고 벌레들에게 내성을 길러줄 수 있답니다.

전 2ml 계량해서 2리터 생수병에 희석해서 한번씩 쫙 뿌려주고 다시 쫙 뿌려주고 모두 사용하면서 흠뻑 적셔줍니다.

혼용해서 사용하는건 굉장한 주의와 모험이 필요하므로 단독으로 번갈아 사용합니다.

 

여기서 잠깐,

약제 살포는 반드시 바람이 없는 날이나 바람이 몸쪽으로 오지 않는날 뿌려주세요~

그리고 전 3~4시간후에는 반드시 샤워를 시켜줍니다.

약한 아이들은 약해 때문에 죽을수가 있어서 샤워 시킨후 통풍이 잘 되게 해줘야 해요~

약치고 물준뒤 통풍시켜주지 않는건...약치지 않으니만 못하답니당~~

 

 

제가 사용하는 시기를 적어볼게요~ ^^

 

 

1. 다육이를 집으로 들인날 분갈이후 >> 중요!!

살균제(다이센엠)을 살포한 후 3시간후 샤워시키고 베란다안 바람 잘드는곳에서 안정시킨다.

 

이유는?

농원에서는 여러곳에서 모인 다육이들이 있으므로 깍지벌레나 진딧물등 해충이 있을 확률이 높아요~

이쁜 다육이를 들인거지만 벌레도 같이 들였다고 보심 되지요~

만약 그대로 집에 있는 아이와 섞어두신다면....ㄷㄷㄷ

깍지벌레가 느려보여도 바람과 같이 번져나가더라구요...@@

 

그리고 농장에서 속성으로 키운 다육이들은

약해서 집에서 쉽게 무를수 있으니 살균제처리를 해주면 잘 견디더라구요~

 

제가 올여름에 새로온 아이들을 귀찮아 그냥 두었더니 몇몇이 허무하게 가더라구요~

그이전에 부지런하게 작업해 주었을때는 자리도 빨리 잡고 새로 들인아이가 가는일은 없었답니다.

 

요것만 잘해도 건강하게 아이들 키울수 있어요~ ^^

 

 

2. 봄과 가을철 다육식물관리

봄과 가을은 다육이들이 젤로 좋아하는 성장시기인걸 아시잖아요~

그냥 두어도 잘 자라겠지만....

살짜기 도와주면 아이들이 정말 좋아해요~ ^^

 

전 보름, 안되면 한달에 한번씩 꼭 액체비료를 1000배희석해서 흙쪽으로 흠뻑 준답니다.

너무 도와주신다고 진하게 희석하시면 절대 안되세요~

과유불급~아시져!!

 

시간대는 저녁에서 밤사이~

그래야 물이 대략 말라서 한낮에 햇살에 익는걸 방지할 수 있답니다.

아침에 주시면 자칫 다육이숙회가 될 수 있어요...ㅜㅜ

 

영양제를 주시면

첫째, 면역력이 강해져서 벌레가 덜 생깁니다.

둘째, 잎과 줄기가 단단하게 자라서 겨울과 여름을 잘 견딥니다.(과하면 역효과)

세째, 물을 좀 말려도 통통한 잎장을 유지해 줍니다.

넷째, 분갈이를 안해줘도 되요..ㅎㅎㅎ

 

단점이라면....가을에 단풍이 좀 덜 올라와요~~^^;;

 

그리고 봄에는 여름대비 살균제 횟수를 더 많이,

가을에는 겨울대비 살충제 횟수를 더 많이해서 방제도 꼭 잊지말고 해주세요~ ^^

 

 

아래 크라우스 울집에 온지 2년 넘었는데 분갈이 한번도 안해줬어요~

 

 

 

 

3. 여름철 다육식물관리

젤로 어려운게 여름이죠~

지긋지긋해져서 아주 지쳐 나가떨어질때쯤에 그나마 가을이 와주니 다행이라 해야겠지요~ㅎㅎㅎ

 

첫째, 장마대비 비가림은 꼭 해줘야 하는데요~

특히 여름(6월초순부터 7월중순) 장마때 며칠연속 비가 내릴때는 반드시 비가림을 해줘야 해요~

 

둘째, 장마가 끝난후 7월말부터 8월말까지는 폭염 때문에 빛가림을 해줘야 합니다.

그리고 이때는 자칫 물 잘못 주거나 비 맞고 바로 해나면 통통한 다육이들 삶아져서...먹을수도 엄꼬..ㅜㅜ

화분이 젖었는데 해가 나면 그늘을 만들어 주거나,

선풍기를 틀어서라도 화분을 말려주세요~

정 불안하면 많이 젖은아이들은 베란다안으로 들이시는게 웃자라더라도 살리는 길이에요~

 

유의할점은 장마철이라 해서 무조건 물을 안주는건 무리구요~

너무 쪼글거리는 아이들은 되도록 밤에 물을 주심 되세요~

 

참, 여름에 영양제는 절대 주심 안되세요~^^

 

아래 명월이는 2006년도 살던 화분에 그대로 살기에...

장마때도 저보러 물달라 하는 아이네요~ ^^;;

 

 

 

 

4. 겨울철 다육식물관리

겨울은 의외로 수월한 계절입니다.

냉해만 입지 않게 해주시고 동형종 아이들만 신경써주면 되는계절이라~

다육맘들에겐 휴식과 같은 계절이죠~ ^^

 

첫째, 10월말전에는 베란다안으로 들여서 냉해 입지 않게 해야해요~

추위에 강한 아이도 있지만...대체적으로 영상5도이하는 위험한거 같아요~

 

둘째, 베란다 안에 들일때 가능하면 해드는 방향을 체크해서 최대한 빛을 많이 볼 수 있게 해주세요~

바닥과 벽에 알미늄호일을 깔아서 빛반사를 도와주시는 방법도 있어요~

 

세째, 베란다안에 온도계를 설치하시고 강추위가 올경우에는 특히 창가쪽 냉기를 막아주시고,

밤에는 신문지를 덮어서 냉해를 막아주세요~

 

넷째, 겨울에는 건조하면 깍지가 잘 생기니 볕좋은 한낮에 깍지벌레약을 가끔 살포해 주세요~

물은 한달에 한번쯤 온도가 높은날 오전중에 위만 젖을정도로 살짝씩 주셔야 해요~

 

이렇게 관리를 하시다가 삼월삼짇날이 지나 한낮에 온도가 높은날은

가끔 베란다문을 열어서 직광훈련을 시켜주세요~(추운날 냉해 조심)

그리고 식목일이 지나서 (그전에는 아무리 따뜻해도 냉해의 위험이 있더라구요)

비가 온 후에 다육이들을 밖으로 내 보내시면 화상의 위험이 적답니다.

 

아래 립스틱이 올 봄에 직광훈련없이 쨍한날 겁없이 내어놓았다가 화상 입은 아이랍니다.

한번 입은 화상은 일년이 지나야 잎이 떨어져 나가니까 내내 속 쓰려요~ ^^;;

 

 

 

이상 제가 아는한 다육이 최대한 적게 죽이는 방법이었습니다.

주절주절 말이 많았는데...

뻔한얘기, 얕은얘기, 맞지 않는 이야기일수도 있어요~

그래도 조금이라도 도움 되셨으면 하는 마음에 적어보았답니다.

 

저보다 고수분들이 워낙 많으셔서.... 쑥스럽네요~ㅎㅎ

지적은 언제든 감사합니다~~ ^^

 

2009년 9월 3일 목요일

[사진有] 펩시캔에서 개구리 발견~!!!



한 때, 대한민국을 뒤흔들었던 일명 '쥐우깡' 사건을 기억하십니까.

미국에서도 이와 유사한 일이 벌어졌는데요... 이름하여 `프로기펩시(Froggypepsi)`사건....

펩시콜라 캔 안에 개구리가 들어있었다고 발표가 났습니다.

어떻게 된 일인지 구글링을 통해서 알아보았는데요......

해외 뉴스를 통해 공개된 사진과 국내 뉴스 기사를 통해 자세히 공개합니다.

================================================================================



  도저히 불가능할 것 같은 일이 벌어졌다. 펩시 캔콜라 안에 죽은 개구리가 발견돼 미국서 식품 안전성 문제가 다시 도마 위에 올랐다. 한국에서는 새우깡에서 쥐가 발견돼 `쥐우깡`이란 비아냥섞인 말이 생겼는데, 미국에서는 이제 `프로기펩시(Froggypepsi)`라는 신조어가 태어날 것 같다.




  미 텍사스 지역일간지 마이폭스는 2일(현지시간) 미국 플로리다주 지역 일간지 올랜도 센티넬(Orlando Sentinel)의 보도를 인용해 미 식품의약국(FDA)이 펩시콜라 캔에서 죽은 개구리가 발견된 것을 공식 확인했다고 전했다.



  지난달 23일 미국 플로리다주 오몬드 비치에 사는 프레드 데네그리(55)씨는 아내와 함께 콜라를 몇 모금 마셨는데 맛이 이상해 콜라를 쏟아보니 캔 안에서 죽은 동물로 보이는 이물질을 발견됐다. 데네그리씨는 이물질이 캔 밖으로 나오지 않을 정도로 컸다고 밝혔는데, 데네그리씨는 처음 캔콜라 안 이 물질을 쥐로 추정했었다. 당시 데네그리씨는 냉장고안 콜라를 바로 개봉해 마셨다고 주장하고 있다.

하지만 최근 FDA는 펩시콜라 안에 이물질은 개구리였다고 조사 결과를 공식 발표했다. 데네그리씨는 현재 손해배상 청구를 검토 중이다.

펩시측은 "문제의 캔이 올랜도 공장에서 만들어진 것으로 보인다”면서 "엄격한 품질 관리 하에 1분에 1250개의 캔을 만드는 상황에서 이 같은 사건이 발생하는 것은 사실상 불가능하다”는 말만 반복하고 있다.

하지만 펩시콜라에 이물질이 들어간 건 이번이 처음이 아니다. 올해 초 인도 델리 소비자분쟁조정위원회는 뉴델리의 한 주민이 콘돔 등 이물질이 든 펩시콜라를 마시고 정신적 육체적 고통을 당했다며 낸 손해배상 소송에서 원고승소 판결을 내리고 피고 펩시측에 2만3천루피(약 65만원)의 배상금을 지급하라고 명령한 바 있다.

간도?? 뭘 알아야 우리땅이지!!!

 

2009년 9월 4일. 정확히 내일 되겠다.

 

내일이면 간도협약이 100주년이 되는 날인 것이다.

 

만약 이때까지 별다른 이의 제기를 하지 않으면 간도의 소유권은 영원히 중국의 것으로 인정이

 

된다고 해서 한 때 인터넷이 시끌시끌하기도 하였다.

 

말도 많고 시끌시끌한 간도협약,

 

하지만 면장도 뭘 알아야 한다고 하지 않던가. 사실 나 조차도 간도가 어디에 붙어 있는지,

 

간도 협약이 어떻게 이루어지게 된건지 정확히 아는바가 없다.

 

뭘 알아야 우리 땅이지!!!! 이번 기회에 배워보자........ 두둥~~

 

그래서 일단 간도 되찾기 운동본부를 찾았다. 그리고 공부했다.

 

다음은 그에 대한 내용들을 퍼온 것으로.... 온 김에 다들 조금이라도 공부하고 가자 -_-+ 피싱~

 

■ 간도의 유래와 범위 ■

그 후 무산, 온성 사이의 주민이 도강하여 개간하는 자가 점차 급증하여 백두산 동쪽 기슭의 비옥한 토지는 개간하지 않은 곳이 없게 되어 이를 모두 일컬어 간도(間島)라 불렀다. 따라서 두만강과 압록강 대안지역의 개간지역을 자연스레 간도라 부르게 된 것이다. 그리고 간도의 범위는 두만강의 조그마한 삼각주에서 시작하여 한민(韓民)이 개간한 곳은 모두 간도라 부르기 시작하여 점차 확대되었음을 알 수 있다. 간도는 백두산 동쪽과 두만강 대안을 동간도라 부르며, 압록강 대안지역과 송화강 상류지역의 백두산 서쪽을 서간도로 크게 구분된다.

동간도는 노령산맥 이동을 동간도 동부, 노령산맥 이서를 동간도 서부라 부른다. 동간도 동부가 소위 북간도이며 1909년 간도협약 체결 시에 한·청인의 잡거구역으로 규정한 곳이다. 그러나 간도분쟁 당시에 우리 선조들이 생각하는 간도 명칭의 개념은 동으로는 토문강에서 송화강을 거쳐 흑룡강 이동의 연해주를 포함한 지역을 의미하였고, 서로는 압록강 대안을 포함하여 고구려의 영토였던 요양·심양 일대(소위 심요선)까지 확대 해석하기 시작하였다.

이러한 현상은 두만강 대안의 동간도와 압록강 대안의 서간도 지역이 접한 곳이 바로 청과 조선이 약정한 봉금지역이었다. 당시 청은 봉금지역에 대한 관할권이 미약한 상태였으며, 더구나 청 정부는 한족(漢族)의 산해관 이동의 출입을 엄금하였다. 즉 요동 이동의 봉금지역에 대한 한족의 접근을 금지한 결과 무주지로 남아있었다. 이러한 상태에서 우리 민족이 먼저 선점하여 개간을 시작하였다. 따라서 간도 범위는 산해관 이동에서 북쪽으로 유조변책을 따라 길림 북쪽의 송화강선으로 이어져 흑룡강 이동의 연해주를 포함한 지역이다.

 

■ 간도의 정확한 위치 ■

 

■ 간도 분쟁의 성격 ■

 

한·중 간에 완전한 국경선을 결정하지 못한 근본 원인은 양국 간에 광활한 무인지대가 존재했기 때문이다. 따라서 간도분쟁은 봉금지역인 무인지대를 둘러싼 영유권 분쟁임과 동시에 한국, 중국, 러시아, 일본이 개입된 정치적 분쟁이다.

2차에 걸친 한·청 국경회담과 1909년 일·청간의 간도협약 체결 과정에 나타난 논쟁점을 분석하면 간도분쟁을 국경분쟁으로 간주하고 있다. 이러한 논쟁점을 열거하면 첫째, 백두산정계비의 가치 둘째, 비문 내용의 해석 즉 토문강의 실체 셋째, 을유.정해 국경회담의 효력 넷째, 1885년 이후의 교섭서 및 선후장정에 대한 견해 다섯째, 역사상의 사실에 관한 쟁점이다. 한국과 일본은 정계비로서 인정한 반면, 청은 비의 내용에 분계의 문자가 없다고 해서 정계비를 인정하지 않았다. 한, 일, 청 3국은 비문중의 압록강은 인정하나 토문강에 대해서 의견을 달리하였다. 한,일은 토문강을 두만강과는 별개의 강으로 송화강의 원류로 보았으며, 청은 토문강이 도문강이며, 이것이 두만강이라는 것이다. 2차에 걸친 을유·정해 국경회담에서 한, 일은 당시 홍토·석을수의 합류지점 이상의 땅에서는 서로 싸우고 결정하지 않았기 때문에 국경선 전체에 관해 하나도 확정한 것이 없으며, 국경회담이 전부 무효된 것이다. 반면 청은 두만강으로 인정하였으며, 미정된 곳은 무산 이상 2백여 리의 두만강 상류라는 것이다. 1904년 한·청의 변계관리들이 임의로 약정한 변계선후장정의 제1조에서 백두산의 정계비가 국경선으로써 입증되며, 두만강이 양국의 확정 된 국경선이 아님을 명시하였다는 것이 한, 일의 입장이었다. 그런데 청은 선후장정에서 국경이 명백한 것은 두만강 하류지방이며, 추호도 두만강으로 국경선으로 해서는 안 된다는 내용이 없다고 주장하였다. 역사상의 사실에 관한 쟁점에 대해서는 한·일은 두만강 북은 한국의 발상지이며, 그 지역 일대가 한국에 내부하였던 일이 있다. 지금도 한국인의 유적이 많으며 이주의 역사도 청보다 빨라고 한국인의 수도 청인보다 몇 배로 많다는 점이다. 이 지역은 청의 통치외의 지역이며, 정계비 건립 후에도 한국의 허락 없이는 개간하거나 집을 지을 수가 없었다. 또한 두만강 이북지역에는 청의 지명이 없었다. 반면 청의 주장은 다르다. 청이 처음부터 두만강 북을 청의 판도로 여겼으며, 정계비 건립 후에 청병을 파견하였다. 이 지역이 원 이전부터 청의 초기까지 중국의 역대 정권에 복종하였으며, 훈춘·둔화 등의 중국 지명이 있다고 주장하였다.

지금까지의 일본이 대청 교섭 시에 주장한 견해는 간도가 한국영토임을 전제로 하였지만, 일본이 청에 동3성 6안, 즉 신법철도 부설권문제, 대석교 영구간의 지선 문제, 경봉선 철도 연장문제, 무순, 연대 탄광 채굴권 문제, 안봉철도 연선의 광무문제, 간도귀속문제를 청에 제시함으로써 일본의 종래 입장을 변경하였다. 결국 일본은 1909년 9월 4일 일본은 간도영유권을 포기하는 대신에 청은 동3성 5안건을 일본에 양보하기로 하여 간도협약이 체결된 것이다. 이때 한·중의 국경선은 정계비로부터 석을수·두만강으로써 경계를 삼았다.

결국 이와 같은 간도분쟁의 쟁점들은 일본의 책략에 의해 무용지물이 되고 간도를 청에 넘겨주는 결과를 초래하였다. 따라서 1712년 목극등에 의해 세워진 백두산정계비를 조약으로 하는 국경분쟁으로만 간주하기엔 무리가 따르며, 봉금지역인 무주지에 대한 영유권분쟁으로 보는 것이 타당하다. 여하튼 백두산정계비가 한중 간에 완전한 국경선을 결정하지 못한 근본 원인은 양국 간에 광활한 무인지대가 존재하기 때문이다.

 

■ 간도를 되찾아야 하는 이유

 

1. 우리 땅 간도는 민족, 건국의 발상지이다.  
  간도지역의 백두산·송화강·흑룡강 일대는 애초 우리 민족건국의 발상지로서 그 중요성이 매우 크다. 이 지역은 우리 민족 고조선·부여 이래로 재세이화(在世理化), 弘益人間의 건국이념을 실현시켰던 곳이다.

특히 영문국명인 KOREA의 발원지인 고구려의 옛 도읍지가 서간도지역에 있으며 발해 옛도읍지는 북간도지역에 있다. 특히, 이 지역 반만년의 역사 중 우리 민족이 3,352년을 지배하였지만, 한족(漢族)의 지배기간은 5백년 정도에 불과하다.
 
 
  2. 고래로 역사적, 문화적, 경제적, 지리적, 국제법적으로 대한민국의 영토이다.  
    간도지역은 우리 민족의 발원지로서 수천년간 점유해왔던 곳이며, 근대 조선과 청나라가 봉금지대를 설정 무인지대인 상태에서 우리 민족이 먼저 들어가 피땀흘려 개간하였다.

- 만리장성 동쪽끝과 잇닿는 심요지역은 한족(漢族)의 진입을 엄금한 바 있다.
- 1909년 청일간 소위 간도협약은 무효이기 때문에 국제법적으로 간도는 분쟁상태에 있다.

(간도협약의 근거인 을사조약이 무효이기 때문에 간도협약도 원천적 무효이고 1952년 중일간 평화조약에서 ‘중일 양국은 1941년 12월 이전에 체결한 모든 조약 협약 및 협정을 무효로 한다’고 명시했기 때문에 1909년에 체결한 간도협약 역시 무효이다.)  
 
  3. 민족의 역사, 문화 및 동질성의 회복   
    간도회복은 남북통일과 재중동포는 물론 재외동포들에 이르기까지 우리 민족의 동질성 회복을 의미한다. 반세기 이상의 남북분단은 모든 분야에서 이질화를 가져왔다. 그리고 간도지역에 거주하는 재중동포들도 지금까지는 우리의 언어와 전통을 어느 정도 보존하고 있지만 3·4세 후손들은 중국에 동화되어 민족의식이 조금씩 이완되어 가고있는 실정이다. 이러한 환경에서 우리 민족을 하나로 묶을 수 있는 중요한 매개체 중의 하나가 간도영유권 주장이다.

 

 

이 이외에 수 많은 사진 자료와 영상 자료들, 그리고 후원에 대한 이야기들.......

 

직접 찾아가서 읽어보고 느껴보자!

 

http://www.gando.or.kr/

 

[간도 되찾기 운동 본부]

 

 

2009년 9월 2일 수요일

리뉴얼 완료~!! 중앙대학교 중앙도서관

2009년 9월 1일 새학기의 시작과 함께 중앙대학교의 도서관이 리뉴얼을 끝내고 개관식을 치렀다.

 

기존 도서관의 역사성을 유지하며 활용도를 극대화 시키는데 역점을 뒀다고 하던데......

 

처음 둘러본 소감은 역시나!!!였다.

 

아래 사진을 통해 둘러보자. 출처는 중앙인에서 피메님이 올려주신 사진과 글들을 그대로 활용... ^^

 


 

 

커튼월 이라고 하던데.... 벽면 전체가 유리로 이루어져 있어서 채광효과는 확실히 좋은듯...

낮에는 빛을 끌어 들이고, 밤에는 반대로 빛을 뿜어내는....

빛의 상자라고나 할까?

 

 

 

지나치게 빛이 들어오지 않게 적절히 조절해주는 기능이 있어 보이더군요.

게다가 도서관 외부는 반사되는 빛으로 주변까지 환해지는 느낌이..^^*

(새건물이라서 그런건지...기분까지 삐까번쩍..ㄷㄷㄷ)

 


 

 

중앙도서관 1층 로비에 들어오는 저 빛 보이시죠? 따스한 햇빛이 지나치지 않으면서 적당한 밝기로 스며드는데,

정말 느낌이 좋았답니다.  그 느낌이 사진을 보시는 분에게 잘 전해질지 모르겠지만......

 

 

 


 

열람실 내부 (특히 4층 열람실들) 까지 스며드는 적절한 밝기또한, 정말 느낌이 좋았습니다.

 

 

 

 


 

중앙대학교 학우들의 일상 -  

좋은 날씨 속, 아름다운 중앙도서관 옆길입니다.

 

 

 


 

채광에도 도움되고 경관도 아름다운 중정(중앙정원) 입니다.

 

 

 


 

중앙정원 위가 이렇게 탁 트여 있어서, 빛이 1층에서 4층까지 골고루 퍼지도록 설계되었군요 ..

 

..

 

 

..

 

 

..

 

 

..

 

 

..

 

 

 

 

 

간단하게 채광 측면에서 살펴본 .. 허접한 탐방기였습니다.

 

모든사진은 긴축 1280px로 맞춰져 있습니다.

세계문화체험단 참가 제안서

세계문화체험단 참가 신청을 위해 작성한 제안서로서

실제 당선되어 유럽에 지원금을 받고 다녀온 팀이 작성한 내용입니다.

동일한 양식으로 제작되는 LG 글로벌첼린저 등의 지원에 있어서도 유용할 것 입니다.

 

목 차

1. 여행 진행계획
2. 여행조건
3. 기본 여행일정
4. 투숙호텔안내
5. 식당 및 식단표
6. 예상견적서
7. TIME SCHEDULE
8. 건의사항
본 문
CAU 문화 체험단 『No.1 대한민국』
우리 팀은 공과대학 기계공학부와 전자전기 공학부 학생으로 구성되어 있는 『No.1 대한민국』입니다. 저희 팀은 현재 세계 자동차와 유럽 금융을 선도 하고 있는 독일의 문화를 체험하고자 제안서를 작성하였습니다.
총 참가인원은 아래와 같이 4명이며, 여행기간은 2007년 7월 22일부터 8월 8일(16박17일)입니다.
박(기계공학부 01)
김(전자전기공학부 01)
최(전자전기공학부 01)
남(기계공학부 03)
방문할 기관을 간략하게 설명 드리겠습니다.
1. 벤츠,BMW,포르쉐, 폭스바겐,Audi
현재 세계 자동차 시장을 선도하는 세계 유수기업을 방문하여 각회사의 경영이념과 경영전략, 특징, 생산 설비,과정등을 알아본 후 국내 자동차업체와의 비교, 분석을 통해 국내 자동차산업의 발전을 위한 대안을 모색한다. 특히 기업과 대학간의 산학협력이 있는지 살펴보고 있다면 어떤식으로 활동하는 지 알아본다.
2. 보쉬연구소
3. 금융(유럽중앙은행)
현재 유럽의 금융시장이 강세인데 이러한 국제 trend 의 상황에 발맞추어 유럽의 금융심장이라고 할수 있는 프랑크 푸르트의 유럽 중앙은행을 견학하여 현 유럽금융의 실정을 파악하고 금융 system을 한국과 비교, 분석하여 어떤 장단점이 있는지 파악한다.
4. 막스플랑스 연구소
광범위한 분야의 신기술을 개발하는 막스 플랑크 연구소 중 한 곳인 medical~ 를 방문하여 그들의 연구 방식과 연구에 대한 그들의 열정, 마인드 등을 알아본다.
5. 뮌헨공대
`미래 육성 대학`으로 선정되어 연방정부와 주정부의 도움을 받고 있는 뮌헨 공대를 방문하여 `BK21`같은 우리 나라 정부지원 프로그램과의 비교를 해본다. 또한 인재를 중시하는 독일에서 우수 인재를 양성시키는 각종 지원 시스템을 살펴보고 우리 대학 교육문화와의 비교, 분석을 해본다.

원본 : 문화체험제안서.hwp
URL : http://www.happycampus.com/report/view.hcam?no=10772118

2009년 9월 1일 화요일

[전자전기] DSP과목 MFC과제(샘플링 신호 복원)

중앙대 전자전기 DSP과목 신호처리 MFC 프로그래밍 과제입니다.

과제 점수 만점을 받은 과제로 소스파일과 과제 문서 파일이 모두 압축되어 있습니다.

 

목 차

1. 개요
2. 내용
3. 요구조건
본 문
1. 개요 : 일반적인 Digital Signal Process에서, C/D converter는 Continuous-Time Signal을 Sampling을 통하여 Discrete-Time Signal을 만들며, D/C converter는 Discrete-Time Signal을 reconstruction filter에 통과시켜서 Continuous-Time Signal로 복원해 주는 기능을 한다. 두 과정은 다음과 같다.

2. 내용 : Continuous-Time Signal을 sampling하고, sampling된 신호를 low-pass filtering을 통하여 Continuous-Time signal을 복원하는 과정을 구현한다.



- input signal : (, )
- sampling frequency : 2Hz

3. 요구조건
- Screen은 상하 2부분으로 나누며. 상단에는 x(t)를 출력하고 그 위에 sampled 신호를 겹쳐 출력한다. (O 표시나 X 표시로 구분하여 출력) 하단에는 복원된 를 출력한다.

원본 : CAU_DSP_HW#4.zip
 

[전자전기] DSP과목 신호처리 MFC 프로그래밍 과제

중앙대 전자전기 DSP과목 신호처리 MFC 프로그래밍 과제입니다.

과제 점수 만점을 받은 과제로 소스파일과 과제 문서 파일이 모두 압축되어 있습니다.

 

목 차

1. 배경
2. 내용
본 문
1. 배경 : 일반적인 Digital 신호처리 시스템은 다음의 그림과 같이, Continuous-Time Signal을 Sampling 및 Quantization하는 A/D Converter(ADC), ADC를 통해 얻어진 Discrete-Time Sampled Signal을 사용목적에 맞게 처리하는 Digital Processor, 그리고 처리된 Sampled Signal을 Continuous-Signal로 변환해주는 D/A Converter(DAC)로 구성된다.
2. 내용
Data Processing 과정을 S/W로 시현해 본다.

- 입력 신호
(A=0.5, B=0.5, f1=0.4, f2=8.33)

- 임펄스 응답


- 요구 조건
* f1, f2 및 A, B를 입력 받는다.
* 입력 신호는 25 Hz로 sampling 한다.

원본 : CAU_DSP_HW#1.zip 

심폐소생술의 이론과 실습

OCU의 생활속의 응급처치 과목에는 심폐소생술에 대한 레포트가 하나 있습니다.

이 레포트의 비중이 상당히 큰데요,

본 레포트는 평가에서 만점을 받은 레포트로, 상세한 설명 뿐만 아니라 실제 심폐소생술을

시행하는 모습을 촬영하여 사진을 첨부함으로서 알기 쉽게 해놓았습니다.

 

목 차

제 1장. 서 론
1. 심폐소생술이란?
2. 심폐소생술의 필요성
제 2장. 심폐소생술의 배경 이론
1. 용어의 정리
2. 심정지와 심폐소생술
3. 심폐소생술의 원리
제 3장. 심폐소생술
1. 성인 심폐소생술
2. 소아 심폐소생술
제 4장. 심폐소생술 실습 장면
제 5장. 작성 후기
본 문
제 1장. 서 론
1. 심폐소생술이란?
심폐소생술은 심장이 멎은 사람에게 인공호흡과 인공순환을 유지하여 주요 장기에 산소를 공급하는 치료 기술이다. 심정지가 발생한 사람의 흉부를 압박하여 순환을 유지하고 인공호흡으로 혈액을 산소화 시키면 소생시킬 수 있다는 현대 개념의 심폐소생술이 도입된지는 46년이 지났다. 그리고 그 이후로 심정지와 심폐소생술에 대한 다양한 연구를 통해서 심폐소생술은 심정지가 발생한 환자의 생명을 구하는데 기여해왔다. 보통 심폐소생술은 의사나 간호사 혹은 특별하게 훈련받은 전문요원들이나 할 수 있다고 생각하기 쉬운데 기본적인 심폐소생술은 조금만 배우고 익히면 의학지식이 많지 않은 일반인도 응급상황에서 심폐소생술을 하여 전문 의료진이 도착할 때까지 생명을 연장시키는데 커다란 도움을 줄 수 있다.
2. 심폐소생술의 필요성
심정지환자에 있어서 응급구조요원이 도착할 때까지 최상의 응급조치는 최초 목격자에 의한 심폐소생술이다. 목격자에 의한 심폐소생술은 목격자에 의해서 시행되지 않은 경우보다 심정지환자의 생존율을 2~3배 향상시킨다. 따라서 학교, 군대, 집단거주지, 직장, 공공기관 등에서는 기본 소생술을 교육하도록 권장하고 있다.
심장마비가 일어난 후 에도 우리 몸속의 폐와 혈관 내에는 6분정도까지는 생명을 유지시킬 수 있는 산소의 여분이 있다. 만약 숨이 먼저 그쳐도 수 분 동안은 심장이 뛰게 되어 폐 속의 산소는 계속 이용되게 된다.

원본 : 심폐소생술.hwp
 

[공학기술] 유비쿼터스의 정의와 이론

목 차
I. 서 론

II. 본 론

◎ 유비쿼터스의 정의
◎ 유비쿼터스로 변화하는 생활
◎ 유비쿼터스 구현에 필요한 기술들
◎ 유비쿼터스의 한계 및 문제점

III. 결 론
본 문
I. 서 론


과학 기술력, 그 중에서도 통신 기술은 하루가 다르게 빠른 속도로 발전을 거듭하고 있다. 특히 최근의 10년 사이에 정보통신 기술의 발전은 가히 독보적이라고 할 수 있다.
개인 셀룰러 폰의 등장으로 언제 어디서든지 자유롭게 개인간의 통화가 가능해졌고, 인터넷을 통한 데이터의 전송속도 또한 Giga bps급에 이른다. 거기에다가 블루투스, DMB, 그리고 광통신에 이르는 많은 새로운 기술들이 나타나기에 이르렀다.
하지만 거기에 비례해서 사람들의 욕구도 점차 커져만 간다. 보다 더 빠른 통신 속도를 원하고, 지하철 안에서든 도심 밖의 어느 숲에서건 인터넷이 가능해야 한다. 그리고 보다 선명한 음질의 통화를 원한다. 그런데 실제로 이러한 사회가 사람들의 욕구에 맞춰서 조금씩 구현되고 있다.
영화 ‘마이너리티 리포트’를 보면 유비쿼터스의 모든 것을 볼 수 있다. 영화를 보는 관점을 조금만 돌려서 생각해보면 새로운 정보통신 기술의 개념을 배울 수 있는 것이다.
컴퓨터에 키보드나 마우스는 존재 하지 않는다. 그냥 허공에 떠 있는 모니터에 손을 가져다 대면 거기에 맞춰 동작이 이루어진다. 건물을 출입하거나 지하철을 타거나 심지어 길거리를 걸어가고 있는 도중에도 도심 곳곳에 숨겨진 카메라는 사람들을 관찰하고 몸속에 내장된 신분 인식 칩을 읽어 들인다. 따라서 누가 어디에서 무엇을 하는지 모두 노출되게 되어 있고, 범죄자는 숨어있을 곳이 없다. 그 외에도 동영상이 반복되는 액자라던가, 홀로그램 기술이 적용된 화상 전화기라던가, 3D 입체 화면으로 허공에서 구현되는 전자 앨범 등 우리가 상상 속에서 그려봤을 법한, 그러나 현실성 있는 과학기술들이 모두 등장한다. 그리고 이러한 세상이 바로 유비쿼터스의 세상인 것이다.

원본 : 유비쿼터스.hwp
 

[의학약학]고혈압의 위험과 관리

목 차
1. 고혈압이란?
2. 고혈압의 증세
3. 고혈압의 원인
(1) 조절 불가능한 위험인자
(2) 노력에 따라 조절할 수 있는 위험인자
(3) 이차성 고혈압
4. 고혈압의 위험
5. 고혈압의 관리
(1) 체중관리
(2) 운동요법
(3) 식사조절
(4) 생활습관
(5) 스트레스 조절
(6) 기타
6. 요약정리
본 문
1. 고혈압이란?
고혈압은 병명이라기보다 하나의 증세라고 보아야 할 것이다. 혈압은 건강한 사람도 정신적인 흥분이나 운동으로 증가할 수 있고, 또 조금씩 차이가 있는 것이므로 얼마 이상의 혈압을 고혈압으로 보느냐에 대해서는 명확한 경계가 있는 것은 아니지만, 임상적으로는 일단 안정 시에 측정한 혈압으로서 최고혈압(수축기 혈압)이 성인의 경우 150~160mmHg 이상, 최저혈압(이완기 혈압)이 90~95mmHg 이상을 고혈압으로 취급한다.
혈압은 파도와 같이 출렁거려 항상 변동하고 있으며 재는 시간, 장소, 사람 및 기계에 따라 다르며 하루 중에도 최고혈압은 30, 최저는 10mmHg나 다를 수 있다. 대개 5분 안정 후 앉은 자세에서 측정한 것을 수시혈압이라고 하며 기초 대사율 측정 시와 같은 상태에서의 혈압을 기초혈압이라고 한다. 특히 최고혈압 (수축기혈압) 은 변동이 심하므로 미국 고혈압학회에서는 확장기압 (최저혈압) 만을 기준으로 하여 90-104를 경증, 105-114를 중등증, 115mmHg이상을 중증고혈압이라고 분류하고 있다.
[혈압측정법]에는 직접법과 간접법이 있다. 직접법은 동맥내에 바늘이나 카테타를 넣어 직접 동맥내압을 재며 매 심박마다 수축기압과 확장기압을 잴 수 있다. 후자는 수은 혈압계, 시계모양의 아네호이드혈압계 그리고 요즘 많이 보급된 전자식 혈압계를 이용하여 청진 법으로 혈압을 측정한다.

원본 : 고혈압관리.hwp
 

[공학]DMB 기술의 정의와 이론

목 차
1. 서론

2. DMB의 정의

가. DMB의 정의와 유래
나. 지상파 DMB
다. 위성 DMB

3. 지상파 및 위성 DMB 서비스의 특징

가. 지상파 DMB
나. 위성 DMB

4. 지상파 및 위성 DMB의 장단점 비교

5. DMB 사업의 경제적 기대효과

6. DMB서비스의 고찰 및 마무리

7. 참고자료
본 문
1. 서론

최근 디지털방송에 대한 관심이 뜨거워지고 있는 가운데 새로운 개념의 디지털방송, DMB가 주목받고 있다.
DMB 서비스는 디지털 멀티미디어 브로드캐스팅(Digital Multimedia BroadCasting)의
약자로서 쉽게 말해서 디지털화 된 멀티미디어 방송이란 뜻이다. 디지털 부호로 정보를
전송하기 때문에 HD급의 정보를 전송받을 수 있으며, 특히 이동성이 강하기 때문에 컨텐츠 시장을 키울 것이라는 기대를 하기에 충분하다.
우리나라는 2005년 1월 10일부터 시험방송을 해온 위성DMB가 본방송을 시작했다. 2004년 3월 13일 미국 케네디 우주센터에서 발사한 세계 최초의 DMB 서비스 전용 위성인 한별 위성을 통해 전국에 유통된 2만 8천여 개 휴대전화와 차량용 단말기 등에 전파를 보냈고 위성DMB사업자인 TU미디어는 세계최초로 휴대전화로 TV를 보는 위성DMB 서비스의 첫 출발을 자축했다.

2. DMB의 정의

가. DMB의 정의와 유래

DMB 서비스는 디지털 멀티미디어 브로드캐스팅(Digital Multimedia BroadCasting)의 약자로서 쉽게 말해서 디지털화 된 멀티미디어 방송이란 뜻이다.
DMB라는 개념은 DAB(Digital Audio Broadcasting)에서 출발했다. DAB는 87년 유럽에서 결성한 Eureka-147 공동 프로젝트의 고유 명칭이었다. 이 프로젝트의 목표는 이동 수신이 가능한 고음질 서비스를 제공할 수 있는 디지털 오디오 방송을 구현한다는 것이다.
오디오에 치중한 해외의 DAB기반 데이터 방송 서비스에 반해, 국내의 DMB 데이터 방송 서비스는 동영상과 멀티미디어 데이터 서비스를 강조하고 있는 DMB 를 근간으로 한다는 측면에서 보다 본격적이고 진보된 데이터 방송 서비스라 할 수 있다.

원본 : DMB.hwp
 

[공학] 세계문화 탐방 계획서

목 차
I. 서론

◎ F1(Formula 1)이란 무엇인가?
◎ 2010년 F1 한국 그랑프리의 중요성

II. 본론

◎ F1의 역사와 현재의 세계적 흐름
◎ F1에 사용되는 세계 최고의 기술력
◎ 선진 기술과 한국의 자동차 기술의 비교 / 분석
◎ 선진 기술을 이용한 한국의 F1 진출 방안
◎ 2010년 F1 한국 그랑프리의 활성화 방안

III. 결론

◎ 곧 열릴 F1 한국 그랑프리에서 주도적인 역할을 수행하자
◎ 무엇을 수행하고 배워올 것인가

IV. 세부탐방계획

◎ 일별 탐방 계획
◎ 방문 기관 및 세부 일정


V. 소요 예상 경비
본 문
I. 서 론

◎ F1(FORMULA 1)이란 무엇인가?

Formula에는 크게 세 가지로 구분이 된다. F1과 F2, F3가 바로 그것인데, 크게 배기량과 자체 중량으로 이를 나누게 된다. 2010년부터 우리나라에서 열리게 될 F1은 자동차 경주의 최고봉이라 할 수 있는 경기이다. 매년 유럽과 호주, 아시아, 북 남미지역의 16개국에서 총 16레이스가 2주 간격으로 3월부터 11월까지 개최되며, 각 나라에서 열리는 레이스는 그랑프리라 불리게 된다. 총 11개의 팀에서 출전하며 한 팀당 2명의 드라이버가 참가하여 세계 최고의 드라이버 22명만이 참가할 수 있는 꿈의 레이스이다. 최고 시속 300km를 넘어가는 경주용 자동차는 자동차가 아니라 “머신(machine)"이라고 부르며, 1대당 가격이 200억원을 넘어가는 현대 자동차 기술의 집약체라고 할 수 있다.
1995년부터 자연 흡기량 3리터(약 900마력)의 엔진을 사용하기 시작하였고, 길이 3~7km정도 되는 트랙을 평균 시속 245km로 주행하며, 긴 트랙은 40바퀴, 짧은 트랙은 80바퀴 정도를 주행하게 된다. 자체의 최소중량은 600kg이다.

◎ 2010년 F1 한국 그랑프리의 중요성

지난 1950년에 시작되어 올해로 57년째의 역사를 맞이한 F1 그랑프리는 관중 동원과 TV 시청자 규모에서 월드컵, 올림픽과 함께 세계 3대 스포츠 이벤트로 꼽힌다. 2005년 F1 서킷에 입장한 관중수는 총 400만 명이 넘으며, 경기당 평균 관중 20만 명 수준으로 2002년 한일월드컵 축구대회 관중수보다 많은 수치라고 KAVO(Korea Auto Valley Operation)측이 밝혔다. 또 지난 한해 184개국에서 F1 전 경기가 중계되어 5억 8천만 명이 시청하였고 이와 같은 가치 때문에 202개 이상의 기업이 F1팀의 후원사로 참여하는 등 글로벌 스포츠 마케팅의 주요 무대로 활용되고 있다. 또한 F1팀 전체의 연간 예산은 2조 7천억 원에 달한다. 이러한 엄청난 경제적 파급 효과 때문에 많은 나라에서 F1의 유치로 치열한 경쟁을 벌이고 있으며, 한국의 경우에는 남아공, 러시아, 인도, 싱가포르, 멕시코등과의 경쟁을 뚫고 2010년부터 최소 7년간의 그랑프리 유치권을 따냈다.
말레이시아의 경우를 살펴볼 때, 1999년 처음 F1 경기를 유치한 이래, 말레이시아를 해외에 널리 알리는데 큰 공헌을 했고 해마다 엄청난 외국 관광객이 말레이시아를 찾아오게 하는 눈부신 성과를 거두었다. 최근에 그랑프리를 시작한 바레인과 중국의 경우를 살펴보아도 지역경제에 미친 파급효과의 규모가 2500억 원 이상에 이르는 것으로 알려졌다.
세계인의 이목이 모이고, 세계 최고 수준의 자동차 기술력이 집중되며 엄청난 경제적 파급 효과가 예상되는 한국 그랑프리에서 개최국인 한국의 역할 수행에 큰 관심이 유발된다.
과연 2002년 한일 월드컵에서 4강 신화를 이룩하였듯이 주도적인 역할 수행과 큰 위상을 세계에 보일 것인가, 아니면 별들의 잔치에 끼어서 밥상만 차려주고 조용히 물러날 것인가. 한국 그랑프리가 3년 앞으로 다가온 현 시점에서 우리에게 시급한 과제와 선진국과의 기술력을 비교 점검해 보도록 하자.

원본 : 탐방계획서.hwp
 

[전자전기]고주파 동조 증폭기 실험(실험13)

목 차
1. 실험제목
2. 실험목적
3. 이론
(1) 단일동조증폭기
(2) 복동조증폭기

4. 실험예비보고서

5. 시뮬레이션 결과
본 문
1. 실험제목 : 고주파 동조 증폭기 실험 (예비Report)

2. 실험목적
(1) 단일동조증폭기를 실험하여 용량성 결합의 원리와 고주파증폭기의 동조증폭
특성을 이해한다.
(2) 복동조증폭기의 동작을 실험하여 광대역 고주파 증폭기의 주파수 특성을 이해한다.

3. 이론

(1) 단일동조증폭기

필요한 주파수 대역만 증폭시키는 증폭기를 동조증폭기(tuned amplifier)라고 하며,
라디오나 텔레비전수상기에 널리 쓰인다. 동조증폭기는 협대역(narrow band)증폭기와
광대역(wideband)증폭기로나뉜다. 협대역증폭기에는 단일동조용량성결합증폭기
등이 있고, 광대역증폭기에는 복동조증폭기(double-tuned amplifier)와
스테거증폭기(stagger amplifier) 등이 있다.
1) 단 동조 증폭기 : 전자결합의 1차측, 2차측의 어느 한편이 동조회로로 되어 있는 회로를 단 동조회로라고 한다. 그리고 부하 임피던스는 공진주파수에서 가장 크고 그 이외의 주파수에서 적어지며 이러한 증폭기를 콜렉터에 단일로 사용된 증폭기를 단 동조 증폭기라고 한다.
2) 복동조 증폭기 : 공진주파수가 동일한 2개의 동조회로를 전자결합 또는 정전결합한 복 동조 회로를 부하로한 증폭기를 말한다. 단일 동조형에 비해 선택도가 좋아지므로 라디오나 텔레비전의 고주파 증폭기나 중간주파수 증폭기에 사용된다.
다음은 단일동조 증폭기의 회로도와 그 등가회로를 나타낸다.



그리고 공진시 출력전압 및 주파수의 특성은 다음과 같다.
○ 공진시 출력전압: (단, )
○ 단일동조회로의 주파수 특성


(2) 복동조증폭기

복동조증폭기는 실제 라디오 등에서 사용되고 있는 고주파 동조증폭기로서, 스태거증폭기(stagger amplifier)와 더불어 광대역증폭기의 부류에 속한다.
아래 그림은 복동조증폭기와 그 등가회로이다.

원본 : 실험13예비.hwp
 

[전자전기]진폭 및 고주파 변복조(11장)

목 차
1. 실험제목

2. 실험목적
(1) 진폭변조(AM) 및 복조의 원리를 이해하고 동작특성을 확인한다.
(2) 주파수변조(FM) 및 복조의 원래를 이해하고 동작특성을 확인한다.

3. 이론
(1) 변조와 복조
(2) 진폭변조(AM)와 복조
(3) 주파수 변조와 복조

4. 시뮬레이션 결과
본 문
1. 실험제목 : 진폭 및 고주파 변복조 (예비 Report)

2. 실험목적
(1) 진폭변조(AM) 및 복조의 원리를 이해하고 동작특성을 확인한다.
(2) 주파수변조(FM) 및 복조의 원래를 이해하고 동작특성을 확인한다.

3. 이론

(1) 변조와 복조
① 변조(modulation)의 의미 - 고주파의 교류신호를 저주파의 교류신호에 따라 변화시키는 일이다. 신호의 전송을 위해 반송파(carrier)라고 하는 비교적 높은 주파수에 비교적 낮은 가청주파수를 포함시키는 과정이다.
② 반송파(Carrier wave) : 변조에 사용되고 있는 고주파. 음성등의 신호파를 운반하는 역할을 수행한다. (변조된 반송파 = 피변조파)
③ 변조를 해야 하는 이유
a. 주파수 다중화(채널 효율이 좋아짐) : 동시에 여러개의 신호를 보내면 특정한
사람이 수신가능
b. 안테나의 실용성 : 안테나의 길이를 짧게하기 위해(주파수가 높으면 파장이
줄어들어 안테나의 길이가 줄어듦)
c. 협대역폭 : 대역폭이 중심 주파수와 비교해서 좁을 것, 신호의 간섭을 적게하기 위해
d. 공통 처리

④ 변조의 종류
a. 진폭변조(amplitude modulation, AM) : 반송파의 진폭을 신호파의 세기에 따라
변화시키는 조작
b. 주파수변조(frequency modulation, FM) : 반송파의 주파수를 신호파의 세기에
따라 변화시키는 조작
c. 위상변조(phase modulation, PM) : 반송파의 위상을 신호파의 세기에 따라
변화시키는 조작
d. 디지털변조(digital modulation, DM) : 신호를 0과 1의 2진값 정보로 교환하여
베이스 밴드 신호로 만들어 그 신호를 고주파에 싣는 조작

원본 : 실험11예비.hwp
 

[마이크로컴퓨터]마이크로컴퓨터시스템 4비트 ALU의 디자인

본 문
위의 그림에서 4-to-1 MUX에 입력으로 들어가는 게이트들을 다음과 같이 바꿀 수 있다.

위의 그림은 AND, OR, NOT, EOR을 4개의 NAND 게이트로 구성되어 있는 7400 IC 회로 2개로
구성을 한 것이다. 따라서 전체에서 사용된 IC 소자는 다음과 같다.

원본 : hw#2.hwp

텍스트큐브 사이드바에 플래쉬 태그 적용하기

요것이 사이드바 태그 구름


 위에 사진이 깜군이가 사용하는 사이드바 태그 구름입니다. 티스토리에서 사용하던것인데 원 소소는 BLUEnLIVE 님이 공개해주신 겁니다.

 사실 저는 웹소스에 대해 어떤 교육도 받지 못한 무뇌한입니다. 그래서 저것을 텍스트큐브에 적용하기는 쉽지 않았습니다. 왜? 냐면, 티스토리에서는 스킨편집시 파일업로드에서 웬만한 파일은 다 쉽게 업로드 되지만, 텍스트큐브는 제한이 있습니다.

 위에 플래쉬 태그를 적용하기위에서는 swfobject.jstagcloud.swf 이 두파일이 필요한데, 텍스트큐브에서는 요 두 파일을 올릴 수가 없는겁니다. 이것은 제가 뚫을 수 없는 벽이 였습니다. 혼자 무지하게~ 고민하다. 답은 의외로 간단하게 위 두파일은 다른계정에 있어도 상관없겠다 는 결론을 내리고 적용해서 성공했습니다. T.T

 간단한 혼자 삽질 프로젝트를 공개해 드리겠습니다.

<s_sidebar_element>
<!-- 태그목록 모듈 -->
<div class="tagbox widget">
<h3>태그 구름</h3>
<div id="htags" style="display:none;"><tags>
<s_random_tags>
<a href="[##_tag_link_##]" class="[##_tag_class_##]">[##_tag_name_##]</a>
</s_random_tags>
<a href="/"></a></tags></div>
<div id="TiCumulus"><p>Tistory Cumulus Flash tag cloud by <a href="http://zoc.kr">BLUEnLIVE</a> requires Flash Player 9 or better.</p></div>
<script type="text/javascript" src="http://업로드주소/swfobject.js"></script>
<script type="text/javascript">
var t = new SWFObject("http://업로드주소/tagcloud.swf", "tagcloud", "100%", "200", "7", "#FFFFFF");
t.addVariable("tcolor", "0x222222");t.addVariable("hicolor", "0x3C5A91");t.addVariable("tcolor2", "0xF0E68C");
t.addVariable("mode", "tags");t.addVariable("distr", "true");t.addVariable("tspeed", "100");t.addParam("allowScriptAccess", "always");
t.addVariable("tagcloud", document.getElementById('htags').innerHTML.replace(/&amp;/gi, ' ').replace(/class=([\w]+)/gi, 'class="$1"').replace(/\"\"/gi, '"').replace(/class=\"/gi, 'style=\"font-size:').replace(/:cloud([\d])/gi, ':1$1pt;').replace(/TAGS\>/gi, 'tags>').replace(/\<A\s/gi, '<a ').replace(/\<\/A\>/gi, '</a>').replace(/\"/g, "'"));
t.write("TiCumulus");
</script>
</div>
</s_sidebar_element>


 위 소스가 그냥 제가 갖다가 붙인 것입니다.

 빨간색글자가 swfobject.js 와 tagcloud.swf 주소입니다. 제가 좀 얌체같이 쓰지않는 티스토리 계정에 올렸습니다. 혹시 사용해보고 싶으신 분들은, 아무계정이나 두파일을 올린후 올린 주소를 빨간색 글자부분을 지우고 사용하시면 되겠네요.

 그리고 제가 편집한 제 스킨에는 원래 태그목록이 사이드바에 없었습니다. 하지만 사이드바가 나열된 곳에 위 소스를 그냥 갖다붙이니 적용이 되네요.^^

 추가적으로 #FFFFFF는 배경색입니다.
 
 0x222222
태그의 기본색입니다. 바꾸시려면 0x웹색상표를 해주시면 되겠습니다. 웹색상표는 검색하면 잘 나옵니다.^^

  0xFF3333 은 마우스커서를 올렸을때 나타나는 색상입니다.

 0xF0E68C 는 인기태그 색상인데, 제가 인기있는 태그가 없어서 적용될런지는 잘 모르겠네요 ^^

 아무쪼록 저처럼 스킨 혼자 고치기 삽질 프로젝트를 하시는 분들에게 도움이 되었으면,
 합니다.

 #추가사항
 
 혹시 스킨을 수정하였는데, 나오질 않을경우!! 위젯관리에서 태그목록 모듈이 새로 생겼을 겁니다. 그걸 사이드바에 드래그해서 적용시켜주세요.

배우 장진영, 위암 선고 1년만에 사망




▲ 배우 장진영
 


>관련 기사는 밑에 펼쳐서 보기<
펼쳐두기..

한 때 호전되어서 좋아지고 있다고 그러더니....

남자친구랑 외국도 나갔다오고 그래서 다행이다 싶었는데......

오늘 이런 소식이 들려오니 참 안타깝네요.........

고인의 명복을 빕니다.......

h.264/avc의 in-loop deblocking filter

h.264/avc의 in-loop deblocking filter에 대해서 그냥 제가 아는대로만 설명해 보려고 합니다.

뭐 제가 전문가도 아니고 대충 개념정도만 알고있는거라서 참고만 하시는게 좋을것 같습니다;

 

보통 디블럭이라고 하면 후처리 필터라고 알고 계실겁니다. mpeg압축방식처럼 영상을 여러개의 블럭으로 나눠서

인코딩 하는 경우 부작용으로 블럭화 현상이 생기는데(깍두기라고도 하죠) 이런 블럭화 현상이 있는 영상을

보정해주는 걸 보통 deblocking필터라고 합니다. avisynth의 deblocking필터라든지 mpeg2나 mpeg4의 디코더에 있는

deblock필터 등등에 해당하는 얘깁니다. 하지만 h.264/avc의 in-loop deblocking필터는 보통의 후처리 필터와는

약간 개념이 다릅니다. 기본적으로는 deblocking필터이지만 어떤 과정에서 사용되느냐가 다른 후처리 필터들과는

다른점이죠. 인코딩관련 블로그나 게시판을 봐도 이름이 비슷하기 때문에 보통 이 둘을 같다고 생각하시는 분들이

많은것 같아서 이 둘의 차이점에 대해서 말씀드리겠습니다.

 

먼저 단순한 후처리 필터로써 deblocking필터가 사용되는 인코딩과정이나 재생과정을 생각해보면,

-----------------------------------------------------------------------------------------------

  원본소스 -> 후처리(deblocking) -> 인코딩

                                                     인코딩된 영상 -> 디코딩 & deblocking -> 디스플레이(재생)

-----------------------------------------------------------------------------------------------

이런식이죠. 보통의 이런 후처리 deblocking필터는 인코딩과정 내에서는 아무런 영향을 주지 않습니다.

하지만 in-loop deblocking은 그 이름처럼 인코딩 과정내에 삽입되어 작용을 합니다.

예를 들어, 원본소스가 3개의 프레임(A,B,C)으로 이루어진 영상이고 3개의 프레임을 I,P,P프레임으로

인코딩한다고 가정하면...


in-loop deblocking을 사용하지 않는 압축방식은 다음과 같습니다.

  1) A프레임을 I프레임으로 압축 - 참조 프레임 없이 intra코딩 합니다.

  2) B프레임을 P프레임으로 압축 - 이미 압축된 A프레임을 참조하여 inter코딩 합니다.

  3) C프레임을 P프레임으로 압축 - 이미 압축된 B프레임을 참조하여 inter코딩 합니다.


in-loop deblocking을 사용하는 압축방식은 다음과 같습니다.

  1) A프레임을 I프레임으로 압축 - 참조 프레임 없이 intra코딩 합니다.

  2) B프레임을 P프레임으로 압축 - 이미 압축된 A프레임에 deblocking필터를 적용한 후 참조하여 inter코딩 합니다.

  3) C프레임을 P프레임으로 압축 - 이미 압축된 B프레임에 deblocking필터를 적용한 후 참조하여 inter코딩 합니다.

 

이렇게 in-loop deblocking을 사용하는 경우, 이미 압축된 프레임에 deblocking필터를 적용한 후에 참조하여

inter코딩을 하기때문에 더 효율적인 움직임예측이 가능해져서 residual data(움직임예측오류데이터)를 줄일 수 있습니다.

또한 in-loop deblocking을 사용하는 압축방식을 잘 생각해보면 in-loop deblocking은 "h.264/avc의 압축과정"에서

발생하는 블럭화 현상을 제거하여 압축효율을 높이는 것이지 원본소스의 블럭화 현상 제거와는 별로 상관이

없다는것을 알 수 있습니다. 따라서 원본소스가 어찌됐든 in-loop deblocking은 압축효율을 높이기 위해 항상

사용하는게 좋겠죠.(h.264/avc의 모든 프로파일에 적용되는 옵션입니다) 그리고 비교적 비트레이트가 낮은  h.264/avc영상을 볼 때

디코더에서 in-loop deblocking을 사용하지 않을 경우(ex:CoreAVC디코더에서 skip deblocking을 사용하는 경우)에 꽤나 심각한

블럭화 현상이 나타나는 이유도 알 수 있습니다. 참조 프레임에 deblocking필터를 적용하기 때문에 inter코딩 과정에서

deblocking필터에 의한 효과가 점점 누적되게 되고 재생시에 deblocking필터를 사용하지 않으면 누적된 차이가

화면에 그대로 나타나게 되는거죠. 참조 프레임을 사용하지 않는 Intra프레임(I프레임)을 만나면 정상화 되었다가 다시 점점 차이가

나타나는 모습을 볼 수 있습니다. 따라서 원래 인코더가 의도한 영상을 보려면 디코더의 deblocking필터는

특별한 경우가 아니라면(ex:컴퓨터의 사양이 낮아서 원활한 재생이 힘든 경우) 항상 사용하는게 좋습니다.

 

요즘 많이 쓰이는 h.264/avc인코더인 x264에서도 --deblock a:b 옵션으로 in-loop deblocking을

사용할 수 있는데 a,b값을 어떻게 정해야 할지가 가장 어려운 부분이죠..

보통은 a,b값이 높을수록 더 많이 deblock된다고 합니다만 a,b값 말고도 in-loop deblocking에 영향을

주는 요소들이 많이 있습니다. QP값이나 매크로블럭 타잎 등 여러 요소들에 의해서 deblocking을

적용할지 안할지가 결정되기 때문에 이 부분은 기본값인 0:0 에서 너무 차이가 나지 않는 범위내로

정하는게 좋을것 같습니다. 그리고 a,b값을 어떻게 정하더라도 QP값이 낮을수록(비트레이트가 높을수록)

in-loop deblocking의 작용이 줄어들기 때문에 웬만큼 저화질로 인코딩 하는 경우가 아니라면

a,b값을 조절하는게 인코딩된 영상에 그리 크게 영향을 주지는 않을겁니다.

 

여기까지 제가 아는대로 h.264/avc의 in-loop deblocking에 대해서 써봤는데요..

앞서 말씀드린대로 여기저기서 주워들은 내용이기 때문에 얼마든지 잘못된 내용이 있을 수 있습니다;

그리고 사실 인코딩을 하는 입장에서 몰라도 아무런 상관없는 내용이기도 하고요..그냥 보통의 후처리 필터와

어떤점이 다른지 또 어떤식으로 in-loop deblocking이 작용하는지 참고만 하시는 정도로 보시면 좋을것 같습니다. 

H.264 비디오 압축원리와 하드웨어 구현

요즘 연구실에서 하는 작업은 H.264 Intra Prediction Encoder의 HDL 구현이다.
HDL은 Verilog로 구현하고 있으며, 최종적으로 구현과 검증이 완성되면 칩으로 굽게 될 것이다.
H.264는 ITU-T와 ISO에서 공동으로 완성한 Video Compression 표준이다.

Verilog in Source Insight

그 동안 Verilog source 편집을 AcroEdit으로 하다가, 얼마 전에 SourceInsight로 갈아탔다.
SourceInsight는 아피스 다닐 때 효석형으로부터 알게 된 유용한 소스 편집 툴이다.

Windows 환경에서 작업할 때는 보통 소스 편집기와 디버거가 내장된 IDE (MS VC++, Java Netbeans)를 사용하는데,
Unix 환경에서 작업하면 Windows 환경에서 소스를 편집해서 FTP로 Unix로 복사해서 컴파일 및 테스트하는 방법을 사용한다.
원래 vi나 emacs에 능숙하면 Unix에서 바로 작업할 수도 있을텐데, vi나 emacs를 습득하기 위한 learning curve가 나에게 너무 가파르고 (우선 당장 작업해야 하는 경우가 많아서), FTP로 복사하는 것에 큰 불편함을 느끼지 못한다 (지금까지 작업했던 프로젝트의 규모에서는;  물론 메이플스토리 같은 엄청난 규모의 프로젝트는 매번 FTP 복사하기엔 무리가 있을 것이다.ㅎ)
흔히 사람들은 vi나 emacs가 엄청나게 편리하다고 얘기하는데,
AcroEdit 같은 편집기도, macro, replace word 등의 기능을 충분히 지원하고 (이미 그 단축키들을 외우고 있고)
어쨌거나 마우스가 없던 시절을 위해 설계된 vi, emacs가, 마우스를 사용하는 여타 편집기보다 강력할 수 있을지 의문이다.ㅎㅎ

아무튼 본론으로 돌아가서, 위와 같은 이유로 전에는 AcroEdit을 사용했는데, 문득 SourceInsight를 사용하면 더 좋지 않을까 하는 생각이 들었다.  AcroEdit은 프로젝트 개념이 없어서 (다시 보니 있구나.ㅎㅎ 아무튼; ),  매번 관련 source를 일일이 열어야 하는 불편함이 있었다.  그리고 결정적으로 keyword highlight이 되지 않는 것이 가독성을 떨어뜨린다.

본래 SourceInsight도 Verilog 언어를 기본적으로 지원하진 않는다.  대신 language를 추가하는 기능이 있고, 홈페이지에서 Verilog 지원 파일을 제공한다.  하지만 이 파일에 심각한 결함이 있다:

verilog.PNG

본래 Verilog syntax에서는 위와 같이 선언 후에 oPixel_0, oPixel_1을 이어 쓸 수 있는데, verilog.clf 파일에서는 이를 인식하지 못한다.  각자 선언을 다른 줄에 해 주면 문제 없지만, 이렇게 코드를 작성하는 것은 불편하며, 이미 작성된 코드를 바꾸기도 싫다.
그리고 전체 코드가 다음과 같이 일부 highlight 되지 않는 것도 불편하다:

verilog2.PNG

Source Insight는 custom language를 정의할 수 있는 인터페이스를 제공하고 있으며, verilog.clf도 이를 이용해서 만들어진 것이다.
Custom language의 세부 사항은 Options - Document Options - Language - Properties 에서 확인 가능하다.

sourceinsight.PNG

여기에서 주요 keyword에 대한 선언 방식이 regular expression으로 정의되어 있는 것을 볼 수 있다.
Source Insight에서 사용하는 regular expression에 대한 설명은 홈페이지에서 제공한다.

컴파일러 수업에서 regular expression을 배웠으므로, Verilog의 올바른 문법에 맞게 고치려는 시도를 해 보았다.

wire\w+\[.*\]\w+\([a-zA-Z][a-zA-Z0-9_]*\)
wire\w+\([a-zA-Z][a-zA-Z0-9_]*\)

wire\w+\[.*\]\w+\([a-zA-Z][a-zA-Z0-9_]*\)\w*,\w*\([a-zA-Z][a-zA-Z0-9_]*\)
wire\w+\[.*\]\w+\([a-zA-Z][a-zA-Z0-9_]*\)(\w*,\w*\([a-zA-Z][a-zA-Z0-9_]*\))+

위와 같이 whitespace, comma, whitespace 후에 새로운 keyword를 받으면 될 것 같지만, 안 된다;
여기까지 포스팅 하고, 추가 분석은 다음에 시간 나면.ㅎㅎ

덤으로, AcroEdit에서 tab는 2칸 띄우는데, SourceInsight에서는 5칸?이어서 보기에 안 좋다.
AcroEdit에서는 tab이 ‘\t’(ASCII 0×09) 대신 ‘ ‘(ASCII 0×20)을 2개 입력하는 것인가?

아무튼 결론은 좋은 editor를 사용하는 것이 중요하다는 거 ;)

Entry Filed under: Electrical Engineering

Test Automation

연구에는 실험이 많이 필요하다.
구체적으로, 내가 하는 H.264 Intra Prediction 연구에는, 특정 알고리즘을 적용했을 때, bitrate와 PSNR이 어떻게 변하는지 실험을 해야 한다.  실험을 어떤 데이터를 대상으로 하는지도 중요한데,

  • 여러 종류의 이미지 : foreman, mobile, parkrun
  • 여러 size의 이미지 : QCIF(172×144), CIF(352×288), 720p(1280×720), 1080p(1920×1080)
  • 여러 QP 값 : 16, 20, 24, 28

등 여러 변화를 줄 수 있다.
더 많은 실험을 할 수록 더 많은 특성을 파악할 수 있는데, 모든 경우에 대해 실험을 하려면 많은 시간이 필요하다.
이럴 때, 실험을 얼마나 자동화하여, 별도의 조작을 하지 않고 실험을 많이 할 수 있는지가 중요하게 된다.
이러한 automation의 중요성을 근래 연구를 하게 되면서 많이 실감했다.
몇 단계를 걸쳐, 수작업으로 하던 것을 어떻게 편리하게 바꿨는지에 대해 설명하겠다.

Verilog Verification

H.264 encoder와 같은 거대한 application은 처음부터 Verilog로 구현하지 않는다.
우선 C와 같은 언어로 구현한 후에 다수 실험을 거치고, 필요한 부분들을 변경해서, 구현이 완전히 확정되었을 때 HDL로 옮기는 것이 의미가 있다.  HDL 구현은 그만큼 수정하기 어렵기 때문이다.
이와 같이 C 구현을 Verilog로 재구현할 경우, 재구현한 코드가 맞게 동작한다는 것을 검증할 필요가 있다.
구현 초기 단계에 하나의 4×4 block, 혹은 하나의 16×16 block에 대해서는 simulation에서 wire를 하나씩 보면서 검증할 수도 있다:

위에서 recon된 4×4 block의 16개 값이 맞다는 것 정도는 눈으로 검증할 수 있다.
하지만 다음과 같은 4개 16×16 block의 Luma와 Chroma 모두에 대해서는?

이 쯤 되면 곤란하다;
더구나 코드를 수정할 때마다, 처음부터 전부 다시 검증해야 하기 때문에 더 이상 수동적인 방법에 의존할 수 없다.
이를 어떻게 하면 자동화 할 수 있을까?

이를 위해 System C와 같은 언어를 사용할 수 있다고 하는데, Verilog의 File I/O로도 자동화 할 수 있다.

// synopsys translate_off
  integer fReconLuma;
  initial fReconLuma = $fopen( “ReconSim_Luma.txt” );
  always @ ( posedge iClk or negedge iRst ) begin
    if ( iModeCount == pModeCount_I4_BestMode ) begin
      $fdisplay( fReconLuma, “[Y:%d X:%d Blk:%d] %d %d %d %d”, iFrameIndex_Y, iFrameIndex_X, iSubBlockCount,
        iReconstructedPixel_0, iReconstructedPixel_1, iReconstructedPixel_2, iReconstructedPixel_3 );
    end
  end
// synopsys translate_on

위 코드는 recon된 값들을 Y,X 좌표와 block count와 함께 ReconSim_Luma.txt 파일에 출력해 준다:

[Y: 0 X: 0 Blk: 0]  50 216 255 238
[Y: 0 X: 0 Blk: 0]  47 191 195 205
[Y: 0 X: 0 Blk: 0]  45 190 176 167
[Y: 0 X: 0 Blk: 0]  48 215 221 160
[Y: 0 X: 0 Blk: 1] 255 255 255 252
[Y: 0 X: 0 Blk: 1] 230 203 218 185
[Y: 0 X: 0 Blk: 1] 187 170 185 142
[Y: 0 X: 0 Blk: 1] 179 187 192 164

$fopen으로 파일을 열고,
$fdisplay는 C의 fprintf 와 비슷한 형식으로 로그를 찍고, 끝에 newline을 덧붙인다.
본래 C 구현의 reference code에도 다음과 같이 같은 형식의 Recon_Luma.txt를 뽑는다:

  FILE *fp;
  fp = fopen( “Recon_Luma.txt”, “a” );
  for ( j = 0; j < 4; ++j ) {
   fprintf( fp, "[Y:%2d X:%2d Blk:%2d]", nFrameIndexY, nFrameIndexX, nMBIdx );
   for ( i = 0; i < 4; ++i ) {
    fprintf( fp, "\%4d", ipm74x4[ i ][ j ] );
   }
   fprintf( fp, "\n" );
  }
  fclose( fp );

이렇게 C reference code에서 뽑은 Recon_Luma.txt와
Verilog 구현의 simulation을 통해 뽑은 ReconSim_Luma.txt를 diff tool로 비교하면,
어디부터 틀렸는지 금방 확인이 가능하고, verifcation이 자동화 된다.

Diff tool은 WinMerge 추천!  (오픈 소스 툴이다)
SVN settings에서 다음과 같이 원하는 diff tool을 지정할 수 있다:

 

Reference picture list reordering

H.264 / AVC 에서 Reference picture list 관리에 관한 문서

비주얼 2005에서 x264 빌드 시 오류 해결 방안

사용버전 : x264-snapshot-20080414-2245.zip
다운로드 : ftp.videolan.org (아이디, 비번 필요없음)

문제1> NASM 문제..
 x264의 build 폴더 안에는 nasm.exe 가 존재 하지 않는다.
 아래의 사이트에서 nasm-2.02-win32.zip을 다운받는다.
 다운로드 사이트 : http://sourceforge.net/project/showfiles.php?group_id=6208
 다운로드 파일을 열어보면,
 +nasm-2.02 (nasm.exe, ndisasm.exe, COPYING) 이 존재
 +rdoff 존재
 여기서, 빌드를 하기 위해 nasm.exe 파일을
 x264-snapshot-20080414-2245\build\win32\
 폴더 안에 복사해준다.
 그런 후 빌드(현재프로젝트만)를 해보면 잘 되다가
 sad-a.asm 파일의 28번째 라인에서 에러가 발생하게 된다.
 28:  sw_64: dq 64
 라고 되어 있는 것을
 28:  sw_64: dq 64.
 이라고 고쳐준다. 이렇게 안고쳐도 잘 되는 경우가 있다.

문제2> 빌드를 하다 보면 ratecontrol.c 파일의 x264_adaptive_quant함수에서 에러를 동반하게 된다.
        qp_adj = 1.5 * logf(result) - h->rc->aq_threshold;
 이 부분에서 에러가 뜨게 되는데, 아무래도 logf의 문제 인것 같아서
 아래와 같이 바꾸어 주었다.
 먼저 logresult라는 변수를 하나 추가해주어 변경했다.
 float result, qp_adj, logresult;
 x264_cpu_restore(h->param.cpu);
 result = energy;
 logresult = logf(result);
 qp_adj = 1.5 * ((logresult) - (h->rc->aq_threshold));
 
 같은 문제로 같은 파일의 x264_autosense_aq(x264_t *h) 함수에서
 if(energy)
 {
  x264_cpu_restore(h->param.cpu);
  total += logf(energy) * satd;
  n += satd;
 }
 이 부분에서 똑같은 에러가 뜨게 되는데, 마찬가지로 위에서 했던 방법으로 하면된다.
 if(energy)
 {
  x264_cpu_restore(h->param.cpu);
  logen = logf(energy); // 이부분의 logen을 energy에 선언한 옆에 선언해 준다.
  total += logen * satd;
  n += satd;
 }
위와 같이 하면 에러는 발생하지 않고 성공적으로 bin폴더 아래에 라이브러리 파일(libx264.lib)을 출력하게 된다.

라이브러리 파일이 생성이 되었다면, x264프로젝트를 컴파일하여 실행해본다.
실행할때는 command창을 열어서, 그 폴더로 찾아가
인코더 실행명령어를 해본다.
실행 예) x264 -q 28 -o foreman.264 FOREMAN.yuv 352x288
그럼 파일 생성(foreman.264)

또한, 컴파일러에 따른 warning문제가 발생하게 되는데, 상관없으니 신경은 쓰지 않아도 된다.
하지만, 이 부분에 대해 보기가 싫다면
프로젝트 속성-구성속성-C/C++-고급-특정경고사용안함에 warning 번호를 추가 하면 된다.

마지막으로, 자꾸 command 창에서 입력하기가 귀찮으니깐
x264 프로젝트 속성에서 아예 지정하면된다.
프로젝트속성-구성속성-디버깅-명령인수 란에
-q 28 -o foreman.264 FOREMAN.yuv 352x288
이라고 입력하고 확인 버튼을 누른 후 컴파일을 해본다.

Spatial Scalability Within the H.264/AVC Scalable Video Coding Extensiton

H.264/SVC에서 Spatial Scalability를 사용하는 방법에 대한

 

논문.... 참고자료........

H.264 SVC Standard Ver 2008.04

새롭게 변경된 H.264/SVC Standard.....

 

이 바뀐 표준 땜시 다시 코딩해야 하는 사태가......... -_-;;;;

H.264 Encoder Driver / Test Code

* H.264/AVC Encoder Test Code

 

 

Code Overview                                                                                                           

 

main 

   1) h264_encoder_create()

 

      1-1) start_sequence()

 

           1-1-1) init_sps_nalu()

 

           1-1-2) init_pps_nalu()

 

           1-1-3) generate_sps_nalu() ========> SPS NAL Unit

 

           1-1-4) generate_pps_nalu() ========> PPS NAL Unit

 

   loop()

  {

   2) h264_encoder_encode()

      * Register Setting

      2-1) start_slice

      * Register Setting

      * Param Data Setting

 

      2-2) frame_code_I() (or frame_code_p())

      2-2) frame_code_p() (or frame_code_I()) 

      2-3) termiate_slice()

 

      ========> NAL Unit (I / P Slice )

   }

   3) h264_encoder_destroy()

 

 

* H.264 / AVC Encoder  Data Stream

 

 SPS

 PPS

 I

P

P

P

 ...

... 

 

                                                                                                                              

 

 

main

 

   1) h264_encoder_create()

      Encoder pattern description file을 읽어 Structure에 파싱하고

 

      * Register Setting

      설정할 Structure에 값으로, Register를 셋팅한다

 

      - PARM0 :

        각 encoded picture에서 Macroblocks의 갯수

        Macroblock 단위의 encoded picture의 Height

        Macroblock 단위의 encoded picture의 Width

 

      - PARM1 :

        Chroma QP Offset (chroma_qp_index_offset), -12 ~+12

        Alpha offset (slice_alpha_c0_offset_div2)

        Beta offset (slice_beta_offset_div2)

        LCT(Luma coefficients threshold), 0~7

        CCT(Chroma coefficients threshold), 0~7

        Coefficient threshold disable (0:Enable, 1:Disable)

        Intra I 4 * 4 number of modes (0 : 5 , 1 : 9)

 

      - PARM2 : Wathermark 

 

      - PARM4 :

        Disable deblocking operation (0 : Enable, 1 : Disable)

        QPy 의 initial value (Valid value : 0~51)

 

      - PARM6 :

        CbCr data of the current frame in the address mode

        ( 0 : Interleaved CbCr, 1 : Separated CbCr)

 

      - DMAA0 :

        System memory base address (word)

 

      - DMAC0 :

        Transfer length in unit of word

 

      - DMAA1 :

        System memory address increment

        System memory base address (word)

 

      - DMAC1 :

        The transfer length in units of word

        Transfer type (00 : Sequential address mode, 10 : Circular address mode)

        Transfer direction (0 : system -> internal memory, 1 : internal -> system memory)

 

      1-1) start_sequence()

 

           1-1-1) init_sps_nalu()

           SPS(Sequence Parameter Set) : 프로파일, 레벨 등 시퀀스 전체의 부호화에 걸쳐있는

           정보가 포함되어 있는 헤더정보이다. 단, SPC는 시퀀스의 선두에 바로 붙여 지는 것이

           아니고 시퀀스 선두위치에 이르기까지 가장 최근에 보내진 SPS를 헤더정보로 하여 사용함

          

           - profile_idc :

             비트열의 프로파일

 

           - constraint_set0_flag :

             비트열이 베이스라인 프로파일로 복호가능함을 표시하는 플래그

 

           - constraint_set1_flag :

             비트열이 메인 프로파일로 복호 가능함을 표시하는 플래그

 

           - constraint_set2_flag :

             비트열이 확장 프로파일로 복호 가능함을 표시하는 플래그

 

           - constraint_set3_flag :

             레벨로 비트열의 복호가 가능한지를 표시하는 플래그 (FRExt에서..)

 

           - level_idc :

             비트열의 레벨

 

           - seq_parameter_set_id :

             SPS의 ID. PPS는 이 ID를 지정하고 참조한다 0~31의 값을 가진다

 

           - log2_max_frame_num_minus4 :

             0~12의 값을 가지며, 프레임번호를 구할때 최대프레임 번호를 지정하는 파라미터

 

           - pic_order_cnt_type :

             POC(Picture Order Count)의 복호방법을 지정,0~2 의 값을 가짐

          

           - log2_max_pic_order_cnt_lsb_minus4 :

             POC 유형 1에서 MaxPicOrderCntLsb를 추출할 때 사용 0~12의 값을 가짐

 

           - num_ref_frame :

             참조프레임의 최대값을 지정. 0~16의 값을 갖는다

 

           - gqps_in_frame_num_value_allowed_flag :

             값이 1이면, frame_num에 차이가 존재하는 것이 허용된다

 

           - pic_width_in_mbs_minus1 :

             부호화되는 픽쳐의 수평방향 매크로블록 수

 

           - pic_height_in_map_units_minus1 :

             Pic_HeightInMapUnits와 PicSizeInMapUnits을 지정

             PicHeightInMapUnits = pic_height_in_map_units_minus1 + 1

             PicSizeInMapUnits = PicWidthIn * PicHeightInMapUnits

 

           - frame_mbs_only_flag :

             값이 1이면, 프레임 매크로블록 안에 포함된다

 

           - direct_8x8_inference_flag :

             B_Skip, B_Direct_16x16 및 B_Direct_8x8에서의 움직임벡터 추출에 사용된다

             frame_mbs_only_flag의 값이 0dlaus, direct_8x8_inference_flag는 1이다

 

           - frame_cropping_flag :

             값이 1이면, Frame Cropping 에 관한 파라미터가 전송된다

 

           - vui_parameters_present_flag :

             값이 1이면, VUI(Video Usability Information, 비디오표시정보) 파라미터를 전송한다

 

 

           1-1-2) init_pps_nalu()

           PPS(Picture Parameter Set)란 픽쳐 전체의 부호화 모드를 나타내는 헤더정보이다

           PPS는 모든 픽쳐에 반드시 붙여지는 것이 아니고 PPS가 없을 경우 픽쳐의 선두 위치에

           이르기까지 가장 최근에 보내진 PPS를 헤더정보로 하여 사용한다

 

           - pic_parameter_set_id :

             픽쳐 파라미터 세트의 ID. 슬라이스 벡터에서는 이 ID를 지정해서 참조한다

             0~255의 값을 갖는다

 

           - seq_parameter_set_id :

             이 픽쳐 파라미터 세트가 참조하는 SPS의 ID. 0~31의 값을 갖는다

 

           - entropy_coding_mode_flag :

             엔트로피 부호화의 모드를 가리키는 플래그.(0 :CAVLC, 1:CABAC)

 

           - pic_order_present_flag :

             값이 1이면 슬라이스 헤더에서 POC와 관련된 정보를 전송한다

 

           - num_slice_groups_minus1 :

             이 값에 1을 더한 것이 슬라이스 그룹의 수가된다. 값이 0이면 모든 슬라이스가

             동일한 슬라이스 그룹에 속하는 것이 된다

 

           - num_ref_idx_10_active_minus1 :

             num_ref_idx_active_override_flag의 값이 0이면, 참조 픽쳐 리스트 0 에서의 참조

             인덱스의 최대값을 규정한다. 이 값에 1을 더한것이 참조 인덱스의 최대값이 된다

             MbaffFrameFlag가 1인경우, num_ref_idx_10_active_minus1은 프레임 매크로블록에서

             참조 인덱스의 최대값이 되고 필드 매크로블록에서는 2*num_ref_idx_10_active_minus1

             +1 이 참조 인덱스의 최대값이 된다. (0~31의 값을 갖는다)

 

           - num_ref_idx_11_active_minus1 :

             참조 픽쳐 리스트 1에 대한 참조 인덱스의 최대값을 규정

             2*num_ref_idx_10_active_minus1 과 같다

 

           - weighted_pred_flag :

             값이 1이면 P 또는 SP 슬라이스에서 가중치 예측을 사용한다

 

           - weighted_bipred_idc:

             값이 1이면 명시적(Explicit)모드에서 가중치 예측이 B슬라이스에 적용된다

          

           - pic_init_qp_minus26 :

             이 값은 26을 더한 값이 각 슬라이스에서의 휘도에 대해서 양자화 스케일 SliceQSy의

             초기값이 된다

 

           - pic_init_qs_minus26 :

             이 값은 26을 더한 값이 각 SI 또는 SP슬라이스에서 휘도에 대한 양자화 스케일

             SliceQSy의초기값이 된다

 

           - chroma_qp_index_offset :

             색차의 양자화 스케일 QPC(Quantization Parameter - Chroma)를 결정할 때 표참조에

             사용되는 Offset값. -12 ~ +12 의 값을 갖는다

 

           - deblocking_filter_control_present_flag :

             값이 1이면, 디블록킹 필터의 특성을 변경하는 파라미터가 전송된다

 

           - constrained_intra_pred_flag:

             값이 1이면, 화면내 부호화 예측을 행할 때 화면 간 부호화 매크로블록을 참조하는

             것이 금지된다

 

           - redundant_pic_cnt_present_flag :

             값이 1이면, 중복된 픽쳐(Redundant Picture)에 대한 POC가 부호화되고 있는지의

             여부를 나타낸다. 이 경우 redundant_pic_cnt가 부호화 된다

 

           1-1-3) generate_sps_nalu()

           #define BITSTREAM_PUTBITS(value,size,exp_golomb,prevent_0x3) \
                      REG_WRITE(PARM7,(value)); \
                      REG_WRITE(CMD1 ,  REG_BITVAL(CMD1_PREVENT_0x3,prevent_0x3) \
                        | REG_BITVAL(CMD1_EXP_GOLOMB_CODE,exp_golomb) \
                        | REG_BITVAL(CMD1_EXT_PK_GO,1) \
                        | REG_BITVAL(CMD1_EXT_PK_LEN,(size)) )

           #define U(value,size)  BITSTREAM_PUTBITS((value),(size),0,0)
           #define U_RBSP(value,size)  BITSTREAM_PUTBITS((value),(size),0,1)
           #define UE_RBSP(value)  BITSTREAM_PUTBITS((value),0,1,1)  // for Exp-Golomb
           #define SE_RBSP(value)  BITSTREAM_PUTBITS(((value)>0)? (((value)<<1)-1): \

                                                                                ((-(value))<<1),0,1,1)           

           - U(0, 8); // 8  bits , additional zero byte 'leading_zero_8bits'

                         // if it is parameter sets and first slice in picture
           - U(1,24); // 24 bits , start code prefix

             // 위 두라인... Page 121 의 H.264/AVC의 바이트열 포멧을 참조하면

             // 각 NAL 단위의 맨 처음 위치에 시작부호를 부가한다 시작부호는 0x1(3byte)이며

             // 시작부호 앞의 패턴 "00"의 바이트를 임의의 수만큼 붙이는 것도 가능하다

 

           - U(((0<<7)|(NALU_PRIORITY_HIGHEST<<5)|NALU_TYPE_SPS),8);

             // NAL Header를 구성하고 있음... Page 113 참조

             // 8 bits , (forbidden_zero_bit | nal_ref_idc | nal_unit_type)

             // nal_unit_type 을 SPS Type(7)으로 설정함을 확인 할 수 있다(Page 114 테이블참조)

             // nal_unit_type >=6 이므로 비 VCL NAL 단위임을 알 수 있다

 

           - init_sps_nalu 에서 초기화한 SPS(Sequence Parameter Set) param data를 스트리밍

             Write, param에 따라 U_RBSP, UE_RBSP으로 Write함

 

           - SPS Data Write후 Trailing Bit Write

           #define RBSP_TRAILING_BITS() REG_BITWRITE (CMD1,CMD1_ADD_RBSP_TRAILING,1)

  

           1-1-4) generate_pps_nalu()

           - U(0, 8); // 8  bits , additional zero byte 'leading_zero_8bits'

                         // if it is parameter sets and first slice in picture
           - U(1,24); // 24 bits , start code prefix 

           - U(((0<<7)|(NALU_PRIORITY_HIGHEST<<5)|NALU_TYPE_PPS),8);

              // NAL Header를 구성하고 있음... Page 113 참조

              // 8 bits , (forbidden_zero_bit | nal_ref_idc | nal_unit_type)

              // nal_unit_type 을 PPS Type(8)으로 설정함을 확인 할 수 있다(Page 114 테이블참조)

              // nal_unit_type >=6 이므로 비 VCL NAL 단위임을 알 수 있다

 

           - init_pps_nalu 에서 초기화한 PPS(Picture Parameter Set) param data를 스트리밍

             Write, param에 따라 U_RBSP, UE_RBSP,SE_RBSP으로 Write함

 

           - PPS Data Write후 Trailing Bit Write

           #define RBSP_TRAILING_BITS() REG_BITWRITE (CMD1,CMD1_ADD_RBSP_TRAILING,1)

  

   2) h264_encoder_encode()

      * Register Setting

      - REG_BITWRITE(PARM4, PARM4_QP, pFrameStatus->quant);

         // QP : Specifies the initial value of QPy for all the macroblocks in the slice (0~51)

         // QP(Quantization Parameter) -> Page166 디블록킹필터 설명중..

         // pFrameStatus->quant 값은 config txt 에서 읽어온 데이터값

      -  watermark

      2-1) start_slice

         - slice_type 변수값 Setting : I_SLICE or P_SLICE (Page 117)

 

         NAL 헤더 구성

         - U(0, 8); // 8  bits , additional zero byte 'leading_zero_8bits'

                       // if it is parameter sets and first slice in picture
         - U(1,24); // 24 bits , start code prefix 

 

         - if(pEnc->very_first_flag)
              { U(((0<<7)|(NALU_PRIORITY_HIGHEST<<5)|NALU_TYPE_IDR),8); }

               // u(8) , (forbidden_zero_bit | nal_ref_idc | nal_unit_type)
            else  
              { U(((0<<7)|(NALU_PRIORITY_HIGH<<5)|NALU_TYPE_SLICE),8); }

               // u(8) , (forbidden_zero_bit | nal_ref_idc | nal_unit_type)

 

            // IDR (Instantaneous Decoding Refresh) :영상 시퀀스의 선두픽쳐

            // NALU_TYPE_IDR (5), NALU_TYPE_SLICE(1)

 

         Slice Header 구성

         // Page 334의 slice header  테이블 구조 참조

         // Slice header에 맞게 데이터 셋팅 및 업데이트

 

      Register Setting

      - REG_WRITE(DMAA1,REG_BITVAL(DMAA1_INCREMENT,1) | .....
      // System memory address increment

       

     - Config txt파일 및 변수설정값등으로 rec,x,y좌표,offset등 설정이후 DMA Control Cmd수행

      2-2) frame_code_I() (or frame_code_p())

      2-2) frame_code_p() (or frame_code_I()

     - CMD0 Cmd 수행

      // Slice Type , Watermark 관련

      // Cmd 수행하면... Encoding 시작(0Bit)...!!

 

      Encoding 끝날때까지 Delay (STS0 Register의 0Bit Read)

 

      Bitstream_length Return(STS0 Register Read)

 

      2-3) termiate_slice()

      - Encoding된 Data저장할 Buf의 포인터변경 <- Offset

 

   3) h264_encoder_destroy()