[질문] Jpeg 라이브러리 관련 질문입니다. (Update)

ddangkyoung의 이미지

혹시 Jpeg 소스를 분석해보신적이 있는 분이라면 좀 도와주십시오.

현재 제가 하고자 하는 일은

Jpeg 라이브러리에서 512 * 512 이미지를

DCT수행하고, 양자화를 수행하여

512 * 512 계수가 나오는데

이중에서 각각의 블럭(8*8픽셀)의 첫번째 계수

즉 각 블럭의 DC 성분이 되겠죠.

이 성분만 뽑아서 이 값을 하나의 픽셀로 하여 8배 축소된 이미지를 만드는 것인데요.

DC성분만 뽑는 법은 알겠는데

이것을 가지고 픽셀을 구성하여 8배 축소된 이미지를 만드는 법을 도저히 모르겠습니다;

Jpeg 고수님들 도와주세요.

부탁드립니다.

simpid의 이미지

질문하신 내용으로는 해본적도 없고...
어떻게 하는지도 모르겠습니다.

다만 8배 축소된 이미지를 얻는 방법은
LIBJPEG 에서 지원하는 기능입니다.

굳이 직접 개발해야 하시는 이유가 있다면 모르겠지만...
그렇지 않다면 LIBJPEG 을 이용하셔도 됩니다.

ddangkyoung의 이미지

그런데 라이브러리 코드를 직접 만져서 1/8로 압축해야 하는 거라서요 ㅠ

예를들어 한 블럭이 8 * 8 픽셀로 이루어 져 있다면

DCT 계수는 8*8의 64개가 나오겠죠.

그중에서 0,0성분
즉 DC성분만을 뽑아서
이것들을 한 픽셀값으로 모으면

가로 세로 1/8된 픽셀 배열이 생깁니다.

이것을 Decomress해서 출력해야 합니다.

어떻게 방법이 없을까요...

jinhoy의 이미지

원본 가로/세로 크기에서 1/8줄어든 가로/세로 크기로 비트맵을 만든다 생각하시면 쉽게 하실 수 있을 것입니다. Thumbnail 안에 pixel 값으로 각 Block의 DC 성분을 넣는 것이지요. Thumbnail은 굳이 JPEG이 아니어도 될거 같은데요. 만약에 이미 본인이 Encorder/ Decorder를 만들어 놓았다면, 1/8줄어든 가로/세로 크기 비트맵으로 만들어서 다시 압축하면 되지 않을까요?

cococo의 이미지

일단 이미지를 압축을 풀고,
버퍼에 있는 큰 이미지를 1/8로 줄인 다음에
다시 압축하면 되지 않나요?

wrapping 으로 함수를 하나 만들어서 기존 라이브러리에 추가하면 될 것 같은데..( 편법같지만. -_-;; )

행복은 희생없이는 얻을 수 없는 것인가?
시대는 불행없이는 넘을 수 없는 것인가?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.