হার্ডওয়্যার ডিকোডিং: এটি কী, কাজের নীতি এবং সুবিধা

লেখক: IT Sectr প্রকাশিত: 2026-05-25 পড়ার সময়: 9 মিনিট

Hardware decoding হল বিশেষায়িত GPU চিপ, DSP বা SoC-এর ভিতরে ভিডিও প্রসেসিং ব্লক ব্যবহার করে মিডিয়া ডেটার হার্ডওয়্যার ডিকম্প্রেশন। সফ্টওয়্যার ডিকোডিংয়ের বিপরীতে, হার্ডওয়্যার ডিকোডিং শারীরিক সার্কিটে সঞ্চালিত হয় যা একচেটিয়াভাবে ভিডিও ডিকম্প্রেশনের জন্য ডিজাইন করা হয়েছে। Apple VideoToolbox ডকুমেন্টেশন (2026) অনুসারে, A-সিরিজ চিপে হার্ডওয়্যার ডিকোডিং 60 FPS-এ 4K H.264-এর জন্য শক্তি দক্ষতা 0.3 ওয়াট অর্জন করে।

মূল পয়েন্ট

  • Hardware decoding — প্রধান CPU লোড না করে বিশেষায়িত SoC ব্লকে মিডিয়া ডিকম্প্রেশন
  • বিদ্যুৎ খরচ হার্ডওয়্যার ডিকোডারের সফ্টওয়ারের তুলনায় 5–10 গুণ কম একই মানের
  • বিলম্ব হার্ডওয়্যার ডিকোডিংয়ের 5–15 মিলিসেকেন্ড বনাম সফ্টওয়্যারের 30–80 মিলিসেকেন্ড
  • ফরম্যাট সমর্থন শারীরিক ব্লকের মধ্যে সীমাবদ্ধ: SoC 2023+-এ H.264, H.265, VP9, AV1
  • API: iOS-এ VideoToolbox এবং Android-এ MediaCodec হার্ডওয়্যার ডিকোডারে অ্যাক্সেস প্রদান করে

হার্ডওয়্যার ডিকোডিং কী?

Hardware decoding হল মিডিয়া ডেটা ডিকম্প্রেস করার প্রক্রিয়া যা সাধারণ-উদ্দেশ্য CPU-তে নয়, বরং সিস্টেম-অন-চিপ (SoC)-এ একীভূত বিশেষায়িত ইন্টিগ্রেটেড সার্কিটে সঞ্চালিত হয়। এই ব্লকগুলিকে ভিডিও ডিকোডার বা VPU (Video Processing Unit) বলা হয় এবং এগুলি নির্দিষ্ট কম্প্রেশন অ্যালগরিদমের জন্য অপ্টিমাইজ করা ASIC অ্যাক্সেলেরেটর।

আধুনিক মোবাইল SoC-তে প্রতিটি জনপ্রিয় কোডেকের জন্য পৃথক হার্ডওয়্যার ব্লক থাকে। উদাহরণস্বরূপ, Apple A17 Pro চিপে H.264, H.265, VP9, AV1 এবং ProRes-এর জন্য ডিকোডার অন্তর্ভুক্ত রয়েছে। প্রতিটি ব্লক একটি সম্পূর্ণ প্রসেসিং পাইপলাইন যা ইনপুটে সংকুচিত বিটস্ট্রিম গ্রহণ করতে এবং CPU অংশগ্রহণ ছাড়াই আউটপুটে YUV বা BGRA ফরম্যাটে প্রস্তুত ডিকোডেড ফ্রেম দিতে সক্ষম।

হার্ডওয়্যার ডিকোডিং 2012–2013 সালে মোবাইল শিল্পে মানদণ্ডে পরিণত হয়, যখন Qualcomm Snapdragon 800 এবং Apple A7 প্রথমবারের মতো ডেডিকেটেড H.264 ডিকোডিং ব্লক অন্তর্ভুক্ত করে। তারপর থেকে, প্রযুক্তিটি একক ফরম্যাট সমর্থন থেকে সার্বজনীন মাল্টি-ফরম্যাট ব্লকে বিবর্তিত হয়েছে যা একসাথে একাধিক স্ট্রিম ডিকোড করতে সক্ষম — উদাহরণস্বরূপ, পৃথক ভিডিও স্ট্রিম সহ PiP-এর জন্য।

হার্ডওয়্যার ডিকোডিং কীভাবে কাজ করে?

হার্ডওয়্যার ডিকোডিং প্রক্রিয়া সফ্টওয়্যার ডিকোডিং থেকে মৌলিকভাবে ভিন্ন। ক্রমিক CPU নির্দেশ নির্বাহের পরিবর্তে, হার্ডওয়্যার ব্লক ডিকম্প্রেশনের প্রতিটি ধাপের জন্য শারীরিক সার্কিট প্রয়োগ করে: এনট্রপি ডিকোডিং, ইনভার্স কোয়ান্টাইজেশন, ইনভার্স DCT এবং মোশন ক্ষতিপূরণ।

হার্ডওয়্যার ডিকোডার আর্কিটেকচার

একটি সাধারণ হার্ডওয়্যার ডিকোডার একাধিক পাইপলাইন পর্যায় নিয়ে গঠিত। প্রথম পর্যায় হল এনট্রপি ডিকোডার, যা CABAC বা CAVLC-এর জন্য ফিনিট স্টেট মেশিন (FSM) হিসেবে বাস্তবায়িত। সফ্টওয়্যার বাস্তবায়নের বিপরীতে যেখানে প্রতিটি বিট শর্তসাপেক্ষ শাখার সাথে প্রক্রিয়া করা হয়, হার্ডওয়্যার CABAC সমান্তরাল প্রসঙ্গ পূর্বাভাস সার্কিট ব্যবহার করে, যা প্রতি চক্রে একটির পরিবর্তে 2–3 বিট প্রক্রিয়া করতে দেয়।

দ্বিতীয় পর্যায় হল ইনভার্স DCT ব্লক। সফ্টওয়্যার DCT-তে CPU-তে গুণ-সঞ্চয় লুপ প্রয়োজন। হার্ডওয়্যার বাস্তবায়ন একটি ম্যাট্রিক্স গুণক ব্যবহার করে যা একটি চক্রে 8x8 ব্লকের সমস্ত 64 গুণাঙ্ক গণনা করে। হার্ডওয়্যার ইনভার্স DCT 400–600 মেগাহার্টজে চলে এবং প্রতি সেকেন্ডে 4 মিলিয়ন ম্যাক্রোব্লক প্রক্রিয়া করে, যা রিয়েল-টাইম 8K ভিডিও ডিকোডিংয়ের জন্য যথেষ্ট।

তৃতীয় পর্যায় হল মোশন ক্ষতিপূরণ (MC) মডিউল। ইনভার্স DCT-এর সমান্তরালে, হার্ডওয়্যার ব্লক বিটস্ট্রিম থেকে মোশন ভেক্টর গ্রহণ করে এবং ডিকোডেড ফ্রেম বাফার থেকে রেফারেন্স অঞ্চল বের করে। DPB বাফার (Decoded Picture Buffer) 16টি রেফারেন্স ফ্রেম পর্যন্ত সংরক্ষণ করে, যা একটি বিশেষ কম-বিলম্ব ক্যাশ মেমরির মাধ্যমে অ্যাক্সেস করা হয়। আধুনিক ডিকোডারগুলি অ্যাডাপটিভ স্মুথিং এবং সাবপিক্সেল ইন্টারপোলেশন সহ পূর্বাভাস ব্যবহার করে, যা H.265 এবং AV1-এর জন্য গুরুত্বপূর্ণ।

সিস্টেম ইন্টারঅ্যাকশন

হার্ডওয়্যার ডিকোডার ব্যবস্থাপনা DMA কন্ট্রোলারের মাধ্যমে ঘটে। অ্যাপ্লিকেশন ডিকোডারকে শেয়ার্ড মেমরিতে সংকুচিত ডেটার পয়েন্টার পাঠায়, এবং ডিকোডার সরাসরি মেমরি অ্যাক্সেসের মাধ্যমে বিটস্ট্রিম পড়ে। ফ্রেম ডিকোডিং সম্পূর্ণ হওয়ার পরে, একটি ইন্টারাপ্ট ড্রাইভারকে জানায়, এবং প্রস্তুত ফ্রেম আউটপুট বাফার পুলে উপলব্ধ হয়। এই পদ্ধতি ডেটা প্রক্রিয়াকরণের সময় CPU লোড সম্পূর্ণরূপে দূর করে — প্রসেসর শুধুমাত্র ডিকোডিং শুরু করে এবং চূড়ান্ত ফলাফল গ্রহণ করে।

VideoToolbox এবং MediaCodec: প্ল্যাটফর্ম তুলনা

উভয় মোবাইল প্ল্যাটফর্ম হার্ডওয়্যার ডিকোডিংয়ের জন্য নেটিভ API প্রদান করে, কিন্তু বাফার ব্যবস্থাপনা এবং ডিকোডার জীবনচক্রের জন্য ভিন্ন পদ্ধতির সাথে। iOS-এ VideoToolbox ডিসপ্লে আউটপুটের জন্য Metal-এর সাথে ঘনিষ্ঠভাবে একীভূত, যেখানে Android-এ MediaCodec সরাসরি রেন্ডারিংয়ের জন্য Surface ব্যবহার করে।

প্যারামিটারVideoToolbox (iOS)MediaCodec (Android)
আউটপুট ফরম্যাটCVPixelBuffer (Metal/OpenGL)Surface বা ByteBuffer
মেমরি ব্যবস্থাপনাপুলের মাধ্যমে স্বয়ংক্রিয়dequeue-এর মাধ্যমে ম্যানুয়াল
থ্রেড নিরাপত্তাহ্যাঁ, অ্যাসিঙ্ক্রোনাস কলব্যাকহ্যাঁ, সিঙ্ক্রোনাস API
HDR সমর্থনহ্যাঁ (PQ, HLG)হ্যাঁ (HDR10, HDR10+)
মাল্টি-ডিকোডিং4 সেশন পর্যন্ত (A17)SoC-এর উপর নির্ভর করে

VideoToolbox iOS এবং macOS-এ হার্ডওয়্যার ডিকোডিংয়ের জন্য একটি ফ্রেমওয়ার্ক। এটি একটি অ্যাসিঙ্ক্রোনাস ডিকোডিং মডেল ব্যবহার করে: VTDecompressionSessionDecodeFrame অবিলম্বে ফেরত আসে, এবং প্রস্তুত ফ্রেম একটি পৃথক সারিতে কলব্যাকের মাধ্যমে আসে। VideoToolbox স্বয়ংক্রিয়ভাবে পিক্সেল বাফার পুল (CVPixelBufferPool) পরিচালনা করে এবং নতুন ফ্রেমের জন্য মুক্ত বাফার পুনরায় ব্যবহার করতে পারে। HDR ভিডিওর জন্য, VideoToolbox ITU-R BT.2020 রঙের স্থান এবং PQ/HLG EOTF সমর্থন করে।

MediaCodec ইনপুট এবং আউটপুট বাফার সারি সহ একটি সিঙ্ক্রোনাস মডেল ব্যবহার করে। অ্যাপ্লিকেশন চক্রীয়ভাবে সংকুচিত ডেটা পাঠাতে dequeueInputBuffer এবং ডিকোডেড ফলাফল পেতে dequeueOutputBuffer কল করে। এই পদ্ধতি ডেভেলপারকে ডিকোডিং গতি-র উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়, যা অডিও-ভিডিও সিঙ্ক্রোনাইজেশনের জন্য গুরুত্বপূর্ণ। ডিসপ্লে আউটপুটের জন্য, MediaCodec একটি Surface গ্রহণ করে, যা CPU কপি ছাড়াই সরাসরি GPU ডিকোডিংয়ের অনুমতি দেয়।

হার্ডওয়্যার ডিকোডিংয়ের সুবিধা

হার্ডওয়্যার ডিকোডিং সফ্টওয়্যারের তুলনায় তিনটি মূল সুবিধা প্রদান করে: শক্তি দক্ষতা, কর্মক্ষমতা এবং স্থিতিশীলতা। প্রতিটি সীমিত ব্যাটারি সম্পদ এবং তাপীয় সীমাবদ্ধতা সহ মোবাইল ডিভাইসের জন্য গুরুত্বপূর্ণ।

শক্তি দক্ষতা

হার্ডওয়্যার ডিকোডিংয়ের প্রধান সুবিধা হল মৌলিকভাবে কম বিদ্যুৎ খরচ। একটি সাধারণ H.264/H.265 হার্ডওয়্যার ডিকোডার রিয়েল-টাইমে 1080p ভিডিও ডিকোড করার সময় 0.2–0.5 ওয়াট খরচ করে। তুলনায়, CPU-তে একই স্ট্রিমের সফ্টওয়্যার ডিকোডিং প্রসেসর আর্কিটেকচারের উপর নির্ভর করে 1.5–4 ওয়াট খরচ করে। 5–10 গুণ পার্থক্য সরাসরি ব্যাটারি জীবনে প্রভাব ফেলে: হার্ডওয়্যার ডিকোডিংয়ের সাথে, ভিডিও প্লেব্যাক CPU-তে সফ্টওয়্যার ডিকোডিংয়ের সাথে 2–4 ঘন্টার তুলনায় 10–15 ঘন্টা সিনেমা দেখার অনুমতি দেয়।

সংকীর্ণ বিশেষায়নের মাধ্যমে শক্তি দক্ষতা অর্জিত হয়। CPU-এর বিপরীতে, যা নির্দেশের বিস্তৃত পরিসর কার্যকর করে এবং জটিল নিয়ন্ত্রণ যুক্তি রাখে, হার্ডওয়্যার ডিকোডারে শুধুমাত্র একটি নির্দিষ্ট অ্যালগরিদমের জন্য প্রয়োজনীয় সার্কিট থাকে। এই ব্লকগুলির ক্লক ফ্রিকোয়েন্সি CPU-র 2–3 গিগাহার্টজের তুলনায় 200–600 মেগাহার্টজ, যা ভোল্টেজের বর্গের অনুপাতে গতিশীল বিদ্যুৎ খরচ হ্রাস করে।

কর্মক্ষমতা এবং তাপ নিঃসরণ

হার্ডওয়্যার ডিকোডিং উচ্চ রেজোলিউশনের জন্যও গ্যারান্টিযুক্ত ফ্রেম রেট প্রদান করে। পাইপলাইন আর্কিটেকচারের জন্য ধন্যবাদ, হার্ডওয়্যার ব্লক একসাথে একাধিক ডিকম্প্রেশন পর্যায় প্রক্রিয়া করতে পারে: যখন একটি মডিউল পরবর্তী ম্যাক্রোব্লকের জন্য এনট্রপি ডিকোডিং করে, অন্যটি ইতিমধ্যে বর্তমানের উপর ইনভার্স DCT প্রয়োগ করে। এই সমান্তরালতা CPU-তে অপ্রাপ্য, যেখানে প্রতিটি ধাপ একটি ক্রমিক অপারেশন।

হার্ডওয়্যার ডিকোডারের তাপ নিঃসরণ উল্লেখযোগ্যভাবে কম: 4K ভিডিও ডিকোডিংয়ের সময় একটি সাধারণ ব্লক CPU-র 2–6 ওয়াটের তুলনায় 0.3–0.8 ওয়াট তাপ নিঃসরণ করে। এর মানে ডিভাইসটি দীর্ঘ সময় দেখার পরেও অতিরিক্ত গরম হয় না, থ্রটলিং হয় না, এবং ব্যবহারকারী ড্রপ ছাড়াই স্থিতিশীল 60 FPS পায়। হার্ডওয়্যার ডিকোডিংয়ের সময় কেস তাপমাত্রা সাধারণত সফ্টওয়্যার ডিকোডিংয়ের তুলনায় 5–10 ডিগ্রি কম হয়, যা সক্রিয় কুলিং ছাড়া ট্যাবলেটের জন্য বিশেষভাবে গুরুত্বপূর্ণ।

হার্ডওয়্যার ডিকোডিং কোড উদাহরণ

আসুন VideoToolbox-এর মাধ্যমে iOS-এ কলব্যাক হ্যান্ডলিং এবং MediaCodec-এর মাধ্যমে Android-এ সম্পূর্ণ পাইপলাইন সহ হার্ডওয়্যার ডিকোডিংয়ের একটি ব্যবহারিক বাস্তবায়ন দেখি।

iOS-এ সম্পূর্ণ হার্ডওয়্যার ডিকোডিং উদাহরণ

swift
import VideoToolbox
import CoreMedia

class HardwareDecoder {
    var session: VTDecompressionSession?
    
    func setup() {
        let formatDesc = createFormatDescription()
        var callback = VTDecompressionOutputCallbackRecord(
            decompressionOutputCallback: decodingCallback,
            decompressionOutputRefCon: nil
        )
        VTDecompressionSessionCreate(
            allocator: nil,
            videoFormatDescription: formatDesc,
            videoDecoderSpecification: nil,
            destinationImageBufferAttributes: nil,
            outputCallback: &callback,
            decompressionSessionOut: &session
        )
    }
    
    func decode(sampleBuffer: CMSampleBuffer) {
        VTDecompressionSessionDecodeFrame(
            session!, sampleBuffer: sampleBuffer,
            flags: ._EnableAsynchronousDecompression,
            frameRefcon: nil, infoFlagsOut: nil
        )
    }
}

কোডটি একটি অ্যাসিঙ্ক্রোনাস কলব্যাক সহ একটি VideoToolbox ডিকোডিং সেশন তৈরি করে। VTDecompressionSessionCreate প্রদত্ত CMVideoFormatDescription-এর উপর ভিত্তি করে উপলব্ধ হার্ডওয়্যার ডিকোডার স্বয়ংক্রিয়ভাবে সনাক্ত করে। ফ্ল্যাগ kVTDecodeFrame_EnableAsynchronousDecompression অ্যাসিঙ্ক্রোনাস মোড সক্ষম করে — ডিকোডিংয়ের সময় অ্যাপ্লিকেশন ব্লক হয় না এবং কলব্যাকের মাধ্যমে ফ্রেম গ্রহণ করে। H.264-এর জন্য, প্রথমে CMVideoFormatDescriptionCreateFromH264ParameterSets-এর মাধ্যমে SPS/PPS NAL ইউনিট থেকে ফরম্যাট বিবরণ তৈরি করতে হবে।

Surface আউটপুট সহ Android-এ হার্ডওয়্যার ডিকোডিং

kotlin
class HardwareDecoder(private val surface: Surface) {
    private var mediaCodec: MediaCodec? = null
    
    fun initDecoder(mimeType: String, width: Int, height: Int) {
        mediaCodec = MediaCodec.createDecoderByType(mimeType)
        val format = MediaFormat.createVideoFormat(mimeType, width, height)
        
        mediaCodec?.configure(format, surface, null, 0)
        mediaCodec?.start()
    }
    
    fun feedFrame(data: ByteArray, pts: Long) {
        val inputIndex = mediaCodec!!.dequeueInputBuffer(TIMEOUT_US)
        if (inputIndex >= 0) {
            val buffer = mediaCodec!!.getInputBuffer(inputIndex)
            buffer?.put(data)
            mediaCodec!!.queueInputBuffer(inputIndex, 0, data.size, pts, 0)
        }
    }
}

Kotlin-এ কোডটি একটি Surface-এর সাথে আবদ্ধ MediaCodec তৈরি করে, যা CPU-র মাধ্যমে ডেটা কপি না করে সরাসরি ডিসপ্লে আউটপুট নিশ্চিত করে। mimeType প্যারামিটার MediaFormat ধ্রুবক ব্যবহার করে: H.264-এর জন্য video/avc, H.265-এর জন্য video/hevc, AV1-এর জন্য video/av01। dequeueInputBuffer পদ্ধতি টাইমআউট সহ একটি উপলব্ধ ইনপুট বাফারের জন্য অপেক্ষা করে; যদি কোনো বাফার উপলব্ধ না হয়, বর্তমান ফ্রেমটি এড়িয়ে যায়, যা অসম বিটরেটের সময় সারি ওভারফ্লো প্রতিরোধ করে।

কখন হার্ডওয়্যার ডিকোডিং বেছে নেবেন

হার্ডওয়্যার ডিকোডিং অধিকাংশ উৎপাদন পরিস্থিতির জন্য সর্বোত্তম পছন্দ, কিন্তু একটি সার্বজনীন সমাধান নয়। প্রযোজ্যতার সীমানা বোঝা এমন পরিস্থিতি এড়াতে সাহায্য করে যেখানে হার্ডওয়্যার কোডেক সমর্থনের অভাব ব্যবহারকারীর অভিজ্ঞতা নষ্ট করে।

বাধ্যতামূলক ব্যবহারের পরিস্থিতি

হার্ডওয়্যার ডিকোডিং তিনটি ক্ষেত্রে বাধ্যতামূলক: দীর্ঘায়িত ভিডিও প্লেব্যাক (30 মিনিটের বেশি), 4K কন্টেন্ট ডিকোডিং, এবং সর্বোচ্চ ব্যাটারি জীবনের উপর দৃষ্টি নিবদ্ধ যেকোনো অ্যাপ্লিকেশন। স্ট্রিমিং পরিষেবাগুলি (Netflix, YouTube, Twitch) একচেটিয়াভাবে হার্ডওয়্যার ডিকোডিং ব্যবহার করে, কারণ সফ্টওয়্যার উচ্চ বিটরেট এবং বড় রেজোলিউশনে স্থিতিশীল প্লেব্যাকের গ্যারান্টি দিতে পারে না। এই পরিষেবাগুলির জন্য, DRM সমর্থন (FairPlay, Widevine) গুরুত্বপূর্ণ, যা শুধুমাত্র হার্ডওয়্যার ব্লকের মাধ্যমে উপলব্ধ যা ডিকোডার থেকে ডিসপ্লে আউটপুট পর্যন্ত সুরক্ষিত পাইপলাইন প্রদান করে।

ইন্টিগ্রেটেড ভিডিও (কাটসিন, বিজ্ঞাপন, ইন-গেম সিনেমাটিক্স) সহ গেমগুলির জন্যও হার্ডওয়্যার ডিকোডিং সুপারিশ করা হয়। আধুনিক গেম ইঞ্জিন যেমন Unity এবং Unreal Engine-এ VideoToolbox এবং MediaCodec-এর জন্য বিল্ট-ইন সমর্থন রয়েছে। গেমগুলিতে হার্ডওয়্যার ডিকোডিং ফিজিক্স সিমুলেশন, শত্রু AI এবং ইনপুট প্রক্রিয়াকরণের জন্য CPU মুক্ত করে, যা সামগ্রিক কর্মক্ষমতা উন্নত করে।

সীমাবদ্ধতা এবং ফলব্যাক

হার্ডওয়্যার ডিকোডিংয়ের প্রধান সীমাবদ্ধতা হল হার্ডওয়্যার ফরম্যাট সমর্থনের উপর নির্ভরতা। যদি SoC-তে AV1-এর জন্য ডিকোডার না থাকে (উদাহরণস্বরূপ, Snapdragon 8 Gen 1-এ ডিভাইস), অ্যাপ্লিকেশনটিকে FFmpeg এবং dav1d-এর মাধ্যমে সফ্টওয়্যার ফলব্যাক প্রদান করতে হবে। পুরানো ডিভাইসে H.265 এবং ProRes-এর ক্ষেত্রেও একই পরিস্থিতি প্রযোজ্য, যা ডিকোডিংয়ের জন্য শুধুমাত্র Apple A13+ চিপে সমর্থিত। প্লেব্যাক শুরু করার আগে প্রয়োজনীয় ফরম্যাটের জন্য হার্ডওয়্যার ডিকোডারের উপলব্ধতা পরীক্ষা করার এবং গতিশীলভাবে ডিকোডিং কৌশল বেছে নেওয়ার সুপারিশ করা হয়।

দ্বিতীয় সীমাবদ্ধতা হল একসাথে ডিকোডিং সেশনের সংখ্যা। অধিকাংশ SoC 1–2 সমান্তরাল হার্ডওয়্যার ডিকোডার সমর্থন করে। তৃতীয় সেশন খোলার চেষ্টা করলে, API একটি ত্রুটি ফেরত দেবে এবং অ্যাপ্লিকেশনটিকে সফ্টওয়্যার ডিকোডিংয়ে স্যুইচ করতে হবে। সেশনের সংখ্যা SoC প্রস্তুতকারকের উপর নির্ভর করে: Apple চিপগুলি A17 Pro-তে 4টি H.264 ডিকোডিং সেশন পর্যন্ত অনুমতি দেয়, যখন Snapdragon 8 Gen 2 H.265-এর জন্য 2টি এবং VP9-এর জন্য মোট 2টি পর্যন্ত সমর্থন করে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমি কীভাবে পরীক্ষা করব যে হার্ডওয়্যার ডিকোডিং ব্যবহার হচ্ছে?

iOS-এ, VTDecompressionSessionCopySupportedPropertyDictionary ব্যবহার করুন এবং kVTDecompressionPropertyKey_UsingHardwareAcceleratedVideoDecoder চেক করুন। Android-এ, ডিকোডার তৈরি করার পরে MediaCodec.getCodecInfo().isHardwareAccelerated() কল করুন। যদি ফ্ল্যাগ false হয়, একটি সফ্টওয়্যার ডিকোডার ব্যবহার হচ্ছে, সাধারণত OMX.google.*।

হার্ডওয়্যার ডিকোডিং কি DRM-সুরক্ষিত কন্টেন্ট সমর্থন করে?

হ্যাঁ, স্ট্রিমিং পরিষেবাগুলিতে DRM কন্টেন্টের জন্য হার্ডওয়্যার ডিকোডিং বাধ্যতামূলক। iOS-এ FairPlay এবং Android-এ Widevine L1-এর ডিকোডার থেকে ডিসপ্লে আউটপুট পর্যন্ত সুরক্ষিত পাইপলাইন প্রয়োজন, যেখানে ডিকোডেড ফ্রেম অ্যাপ্লিকেশনের জন্য অগম্য। এই ধরনের পাইপলাইন শুধুমাত্র সুরক্ষিত সেশন সমর্থন সহ হার্ডওয়্যার ডিকোডিংয়ের সাথে সম্ভব।

iOS-এ VDADecoder কী?

VDADecoder (Video Decode Acceleration) iOS 6–8-এর একটি লিগ্যাসি ফ্রেমওয়ার্ক, যা VideoToolbox দ্বারা প্রতিস্থাপিত হয়েছে। VideoToolbox H.265, HDR এবং মাল্টিথ্রেডিংয়ের সমর্থন সহ আরও আধুনিক এবং নমনীয় API প্রদান করে। VDADecoder নতুন প্রকল্পের জন্য সুপারিশ করা হয় না — VideoToolbox থেকে VTDecompressionSession ব্যবহার করুন।

হার্ডওয়্যার ডিকোডার কি ব্যাকগ্রাউন্ডে কাজ করতে পারে?

বেশিরভাগ ক্ষেত্রে, না। iOS-এ, হার্ডওয়্যার ডিকোডারের বিদ্যুৎ খরচের সীমাবদ্ধতার কারণে সক্রিয় ফোরগ্রাউন্ড অ্যাপ্লিকেশন প্রয়োজন। Android-এ, একটি পরিষেবায় MediaCodec-এর মাধ্যমে ব্যাকগ্রাউন্ড ডিকোডিং সম্ভব, কিন্তু কর্মক্ষমতা হ্রাস পেতে পারে। ব্যতিক্রম হল PiP মোড, যেখানে সিস্টেম একটি ফ্লোটিং উইন্ডোতে হার্ডওয়্যার ডিকোডিংয়ের অনুমতি দেয়।

কোন কোডেকের সবচেয়ে ভালো হার্ডওয়্যার সমর্থন আছে?

পরম নেতা হল H.264, যা 100% আধুনিক মোবাইল ডিভাইসে হার্ডওয়্যার-ডিকোড করা হয়। H.265 প্রায় 80% ডিভাইসে সমর্থিত (iOS 8+, উপযুক্ত SoC সহ Android 5+)। AV1 সবচেয়ে সীমিত: শুধুমাত্র Snapdragon 8 Gen 2, Exynos 2200 এবং Apple A17 Pro সহ 2023+ ডিভাইসে হার্ডওয়্যার সমর্থন।

সারসংক্ষেপ

  • Hardware decoding — 0.2–0.5 ওয়াট বিদ্যুৎ খরচ সহ বিশেষায়িত SoC ASIC ব্লকে মিডিয়া ডিকম্প্রেশন
  • শক্তি দক্ষতা সফ্টওয়্যার ডিকোডিংয়ের চেয়ে 5–10 গুণ বেশি, 10–15 ঘন্টা ভিডিও প্লেব্যাক প্রদান করে
  • বিলম্ব হার্ডওয়্যার ডিকোডিংয়ের পাইপলাইন আর্কিটেকচারের কারণে 5–15 মিলিসেকেন্ড বনাম সফ্টওয়্যারের 30–80 মিলিসেকেন্ড
  • VideoToolbox iOS-এ এবং MediaCodec Android-এ হার্ডওয়্যার ডিকোডিংয়ের জন্য নেটিভ API
  • সীমাবদ্ধতা — ফরম্যাট সমর্থন SoC-এর উপর নির্ভর করে; AV1-এর জন্য 2023+ ডিভাইস প্রয়োজন
  • হার্ডওয়্যার ডিকোডিং 4K ভিডিও, দীর্ঘক্ষণ দেখা এবং DRM-সুরক্ষিত কন্টেন্টের জন্য বাধ্যতামূলক
  • ব্যবহার করুন অসমর্থিত ফরম্যাটের জন্য সফ্টওয়্যার ফলব্যাক সহ প্রাথমিক হিসেবে হার্ডওয়্যার ডিকোডিং

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন