SlideShare ist ein Scribd-Unternehmen logo
1 von 18
IMAGING


      ~ Ishita
Agenda


   What is ICL?
   ICL Architecture
   Image Encoding
   Image Decoding
   Code Flow
   Image file Formats
   Queries
ICL
   Image Conversion Library
   based on active objects, to support encoding
    and decoding image files
   conversion of an image in a well-defined image
    format into a native Symbian OS bitmap
   conversion of a native Symbian OS bitmap into a
    well-defined image format.
   image transformations (rotation, scaling, etc.)
    applied to native Symbian OS bitmaps or directly
    to an image in a well defined format.
ICL ARCHITECTURE
IMAGE DECODING
Image Decoding
   Image decoding is the process of taking an image stored
    in a file or descriptor, converting it from a specified
    format and writing the output to a CFbsBitmap.

   The CImageDecoder object is created specifying the
    source image and decoder plugin as parameters.

   The CImageDecoder::Convert() function then decodes
    the image using the methods provided by the plugin.

   The results of the conversion are then saved to a
    CFbsBitmap.
Architectural Overview
   The ICL JPEG Decoder is implemented as ECOM plugin,
    which uses the ICL framework for JPEG conversion.
 The key player in image decoding is the
  CImageDecoder class. This API is an interface
  to an extendable plug-in-based system. The
  plug-in management tasks are handled by
  ECOM.
 The API can be used in just three simple steps:
  1. Create an image decoder object by providing
  a factory method with image data.
  2. Initiate the image-conversion process.
  3. Wait for a request completion and handle the
  conversion result.
Data Path




 JPEG Decoder plugin (CJpegDecoder) is derived from CImageDecoderPlugin and
JPEG Decoder codec(CJpegReadCodec) is derived from CImageReadCodec
IMAGE ENCODING
Image Encoding
   Image encoding is the process of taking a bitmap stored
    in a CFbsBitmap, converting it to a specified format and
    writing the output to a file or descriptor.

   The CImageEncoder object is created specifying the
    source image and encoder plugin as parameters.

    The CImageEncoder::Convert() function then encodes
    the image using the methods provided by the plugin.

   The results of the conversion are then saved to a file or
    descriptor.
Architectural Overview
   The JPEG Encoder is implemented as an ECOM plugin,
    working under Symbian’s Image Converter Library (ICL)
    Framework .
   The CImageEncoder API shares many usage patterns
    and data structures with the CImageDecoder API.
   Its basic usage scenario is essentially the same:

1. An encoder object is to be created by using one of the
    synchronous factory methods
2. Some optional encoding parameters may be adjusted
    synchronously.
3. An asynchronous encoding process is initiated by calling
    CImageEncoder::Convert().
4. The application waits for the request to be accomplished
    and makes use of the output data in cases when no
    error has been reported.
Data Path




JPEG Encoder plugin (CJpegEncoder) is derived from CImageEncoderPlugin and
JPEG Encoder codec(CJpegWriteCodec) is derived from CImageWriteCodec
Image File Formats
   JPEG : Joint Photographic Expert group
   JFIF : JPED File Inerchange Format
   Exif : Exchangeable Image File Format
   TIFF : Tagged Image File format
   RAW :Raw Image format
   PNG : Portable Network Graphics
   GIF : Graphics Interchange Format
   BMP : Windows Bitmap
Important Docs

         Imaging       JPEG Decode          JPEG Encoder




For the details on Symbian ICL framework, check the SDK Documentation.
Image Conversion Library

Weitere ähnliche Inhalte

Ähnlich wie Image Conversion Library

JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfJIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfSamiraKids
 
Image Magic for PowerBuilder
Image Magic for PowerBuilderImage Magic for PowerBuilder
Image Magic for PowerBuilderMarco Cimaroli
 
TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...
TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...
TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...sipij
 
Shader Programming With Unity
Shader Programming With UnityShader Programming With Unity
Shader Programming With UnityMindstorm Studios
 
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineDino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineESUG
 
Paper id 25201490
Paper id 25201490Paper id 25201490
Paper id 25201490IJRAT
 
project_final_seminar
project_final_seminarproject_final_seminar
project_final_seminarMUKUL BICHKAR
 
Unit 3 machine vision
Unit 3 machine vision Unit 3 machine vision
Unit 3 machine vision rknatarajan
 
Multi Processor Architecture for image processing
Multi Processor Architecture for image processingMulti Processor Architecture for image processing
Multi Processor Architecture for image processingideas2ignite
 
Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008Ryan Chou
 
Jetpack Compose beginner.pdf
Jetpack Compose beginner.pdfJetpack Compose beginner.pdf
Jetpack Compose beginner.pdfAayushmaAgrawal
 
YCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptxYCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptxSharmilaMore5
 
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMDEdge AI and Vision Alliance
 
Machine vision.pptx
Machine vision.pptxMachine vision.pptx
Machine vision.pptxWorkCit
 
Iaetsd arm based remote surveillance and motion detection
Iaetsd arm based remote surveillance and motion detectionIaetsd arm based remote surveillance and motion detection
Iaetsd arm based remote surveillance and motion detectionIaetsd Iaetsd
 

Ähnlich wie Image Conversion Library (20)

JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdfJIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
JIT Spraying Never Dies - Bypass CFG By Leveraging WARP Shader JIT Spraying.pdf
 
Image Magic for PowerBuilder
Image Magic for PowerBuilderImage Magic for PowerBuilder
Image Magic for PowerBuilder
 
TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...
TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...
TO DEVELOP A DICOM VIEWER TOOL FOR VIEWING JPEG 2000 IMAGE AND PATIENT INFORM...
 
Shader Programming With Unity
Shader Programming With UnityShader Programming With Unity
Shader Programming With Unity
 
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineDino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
 
Paper id 25201490
Paper id 25201490Paper id 25201490
Paper id 25201490
 
Topic 1_PPT.pptx
Topic 1_PPT.pptxTopic 1_PPT.pptx
Topic 1_PPT.pptx
 
project_final_seminar
project_final_seminarproject_final_seminar
project_final_seminar
 
OpenCV+Android.pptx
OpenCV+Android.pptxOpenCV+Android.pptx
OpenCV+Android.pptx
 
Unit 3 machine vision
Unit 3 machine vision Unit 3 machine vision
Unit 3 machine vision
 
Unit 3 machine vision
Unit 3 machine vision Unit 3 machine vision
Unit 3 machine vision
 
Capturing and Displaying Digital Image
Capturing and Displaying  Digital ImageCapturing and Displaying  Digital Image
Capturing and Displaying Digital Image
 
Multi Processor Architecture for image processing
Multi Processor Architecture for image processingMulti Processor Architecture for image processing
Multi Processor Architecture for image processing
 
Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008Introduction to Skia by Ryan Chou @20141008
Introduction to Skia by Ryan Chou @20141008
 
Jetpack Compose beginner.pdf
Jetpack Compose beginner.pdfJetpack Compose beginner.pdf
Jetpack Compose beginner.pdf
 
YCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptxYCIS_Forensic PArt 1 Digital Image Processing.pptx
YCIS_Forensic PArt 1 Digital Image Processing.pptx
 
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
“Programming Vision Pipelines on AMD’s AI Engines,” a Presentation from AMD
 
C44081316
C44081316C44081316
C44081316
 
Machine vision.pptx
Machine vision.pptxMachine vision.pptx
Machine vision.pptx
 
Iaetsd arm based remote surveillance and motion detection
Iaetsd arm based remote surveillance and motion detectionIaetsd arm based remote surveillance and motion detection
Iaetsd arm based remote surveillance and motion detection
 

Kürzlich hochgeladen

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Kürzlich hochgeladen (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

Image Conversion Library

  • 1. IMAGING ~ Ishita
  • 2. Agenda  What is ICL?  ICL Architecture  Image Encoding  Image Decoding  Code Flow  Image file Formats  Queries
  • 3. ICL  Image Conversion Library  based on active objects, to support encoding and decoding image files  conversion of an image in a well-defined image format into a native Symbian OS bitmap  conversion of a native Symbian OS bitmap into a well-defined image format.  image transformations (rotation, scaling, etc.) applied to native Symbian OS bitmaps or directly to an image in a well defined format.
  • 5.
  • 7. Image Decoding  Image decoding is the process of taking an image stored in a file or descriptor, converting it from a specified format and writing the output to a CFbsBitmap.  The CImageDecoder object is created specifying the source image and decoder plugin as parameters.  The CImageDecoder::Convert() function then decodes the image using the methods provided by the plugin.  The results of the conversion are then saved to a CFbsBitmap.
  • 8. Architectural Overview  The ICL JPEG Decoder is implemented as ECOM plugin, which uses the ICL framework for JPEG conversion.
  • 9.  The key player in image decoding is the CImageDecoder class. This API is an interface to an extendable plug-in-based system. The plug-in management tasks are handled by ECOM.  The API can be used in just three simple steps: 1. Create an image decoder object by providing a factory method with image data. 2. Initiate the image-conversion process. 3. Wait for a request completion and handle the conversion result.
  • 10. Data Path JPEG Decoder plugin (CJpegDecoder) is derived from CImageDecoderPlugin and JPEG Decoder codec(CJpegReadCodec) is derived from CImageReadCodec
  • 12. Image Encoding  Image encoding is the process of taking a bitmap stored in a CFbsBitmap, converting it to a specified format and writing the output to a file or descriptor.  The CImageEncoder object is created specifying the source image and encoder plugin as parameters.  The CImageEncoder::Convert() function then encodes the image using the methods provided by the plugin.  The results of the conversion are then saved to a file or descriptor.
  • 13. Architectural Overview  The JPEG Encoder is implemented as an ECOM plugin, working under Symbian’s Image Converter Library (ICL) Framework .
  • 14. The CImageEncoder API shares many usage patterns and data structures with the CImageDecoder API.  Its basic usage scenario is essentially the same: 1. An encoder object is to be created by using one of the synchronous factory methods 2. Some optional encoding parameters may be adjusted synchronously. 3. An asynchronous encoding process is initiated by calling CImageEncoder::Convert(). 4. The application waits for the request to be accomplished and makes use of the output data in cases when no error has been reported.
  • 15. Data Path JPEG Encoder plugin (CJpegEncoder) is derived from CImageEncoderPlugin and JPEG Encoder codec(CJpegWriteCodec) is derived from CImageWriteCodec
  • 16. Image File Formats  JPEG : Joint Photographic Expert group  JFIF : JPED File Inerchange Format  Exif : Exchangeable Image File Format  TIFF : Tagged Image File format  RAW :Raw Image format  PNG : Portable Network Graphics  GIF : Graphics Interchange Format  BMP : Windows Bitmap
  • 17. Important Docs Imaging JPEG Decode JPEG Encoder For the details on Symbian ICL framework, check the SDK Documentation.

Hinweis der Redaktion

  1. The Image Conversion Library (ICL) is very useful for any application that needs to do some image manipulation. The ICL utilizes the ECom framework to identify the correct plugins and thus all ICL plugins are also ECom plugins. The main use cases for the ICL are: >> conversion of an image in a well-defined image format into a native Symbian OS bitmap >> conversion of a native Symbian OS bitmap into a well-defined image format. >> image transformations (rotation, scaling, etc.) applied to native Symbian OS bitmaps or directly to an image in a welldefined format.
  2. Client APIs The client APIs form the top-level abstraction of the ICL. In Symbian OS v7.0s there are client APIs for the decoding and encoding of images, as well as the rotation and scaling of bitmaps. ICL framework The ICL framework provides a communication layer between the client APIs and the actual ICL plugins, and all plugin control is performed via this layer. The underlying architecture is subdivided into two further layers. The relay layer provides a connection between the underlying client API classes and the core framework. The relay is mainly used to provide thread encapsulation for the ICL when threaded decoding or encoding is employed. All inter-thread communication is performed by this layer, allowing the Client API classes and the core framework to be ignorant of all threading. The core framework is essentially a centralized place for storing data and for achieving the functionality associated with the ICL itself. In normal usage, it is the core framework that performs all plugin instantiation and control. This framework communicates with the ICL plugins via the abstract plugin API that all ICL plugins have to implement. ICL plugins The ICL plugins provide the actual decoding and encoding functionality to the ICL. The ICL framework provides four abstract classes from which all ICL plugins are derived. These are CImageDecoderPlugin and CImageEncoderPlugin for decoding and encoding respectively, and corresponding codec classes, CImageReadCodec and CImageWrite - Codec. The intended split in responsibilities is as follows. The decoder and encoder plugin classes are designed to deal with the interface to the ICL framework, the retrieval and writing of image headers, and additional non-frame data, such as text fields. The read and write codec classes are designed to deal with the main decoding and encoding stages for individual frames. Provided the virtual functions of these classes are implemented, there is no reason why a plugin writer could not have more complicated processing chains inside a plugin. For example, a codec class could forward messages to one or more sub-codec classes, to provide specialized processing.
  3. Description The Image conversion provides several features to enable the conversion and basic manipulation of images. Conversions can be made from images stored in files or descriptors to CFbsBitmap objects, or from CFbsBitmap and CFrameImageData objects to files or descriptors. Features of the image conversion function include: >> Standard decoders that can decode single or multiframe images, images with bitmasks, images with in-image or in-frame comments. >>Support for progressive decoding. >>Functions to decode images stored in files or descriptors. >>Standard encoder that can encode single frame images and images with in image comments. >>Functions to manipulate image properties such as scale, rotation, dithering and progressive decoding. >>Advanced thread control for encoder and decoders.
  4. Description 1.JPD plugin is created using the FileNewL method. While creating JPD plugin, input data control is passed to the ICL framework. 2. Conversion process is started using the Convert method; from then ICL framework will take the control of conversion. 3. JPEG Decoder’s ReadCodec receives the input data from ICL framework using the ProcessFrameL method. 4. JPD Read Codec will send (map) the input data to DSP Socket Node using the SCML. After Socket Node (SN) completes conversion (decoding), SCML will receive t the message from SN and pass to JPD Read code as an event through callback function. 5.Output data will be stored in the Bitmap. Decoding completion request will be notified to ICL framework using HandleProcessFrameResult.
  5. Decription : 1. JPD plugin is created using the FileNewL method. While creating JPD plugin, input data control is passed to the ICL framework. 2.Conversion process is started using the Convert method; from then ICL framework will take the control of conversion. 3. JPEG Decoder’s ReadCodec receives the input data from ICL framework using the ProcessFrameL method. 4. JPD Read Codec will send (map) the input data to DSP Socket Node using the SCML. After Socket Node (SN) completes conversion (decoding), SCML will receive the message from SN and pass to JPD Read code as an event through callback function. 5. Output data will be stored in the Bitmap. Decoding completion request will be notified to ICL framework using HandleProcessFrameResult.
  6. Image file size —expressed as the number of bytes—increases with the number of pixels composing an image, and the colour depth of the pixels. Image compression uses algorithms to decrease the size of a file. Image file compression There are two types of image file compression algorithms: lossless and lossy. Lossless compression algorithms reduce file size without losing image quality, though they are not compressed into as small a file as a lossy compression file. When image quality is valued above file size, lossless algorithms are typically chosen. Lossy compression algorithms take advantage of the inherent limitations of the human eye and discard invisible information. Most lossy compression algorithms allow for variable quality levels (compression) and as these levels are increased, file size is reduced. At the highest compression levels, image deterioration becomes noticeable as "compression artifacting".