上海交通大学硕士学位论文AAC高级音频解码基于FPGA上的SOC设计与实现姓名:徐生俊申请学位级别:硕士专业:电路与系统指导教师:周玉洁20060101IAACFPGASOCAdvancedAudioCodec(AAC)MPEGAACMP330MP321VLSIVLSIVLSIAACFPGAVLSISOC32RISCSRAMRTLVerilogHDLFPGA1.AAC2.AACTNSRISCTNS3.AACFPGAIIAACVerilogHDLIIIAACDecodingSocDesignandImplementationBasedonFPGAABSTRACTAdvancedAudioCodec(AAC)isthelatestaudioformatontheMPEGdatacompression,andAACcanaffordbetteraudioqualitywhenAACdatais30percentlessthantheMP3data.WecanconcludethatAACwillsurelyreplacethemostpopularaudioformat-MP3inthenearfuture,anditwasgrantedas21thcentury’sdatacompressionformat.Atfirst,thethesisintroducesthedevelopmentofthedigitalaudiocompressionandVLSItechnologyinrecentyears,itclaimsthataudiocompression’sdevelopmentreliesontheVLSIandcontributesontheVLSI.That’swhywecangetbetterqualitywhilethecompressionratioishighertoo,thisarticleintroduceanewlyveryhighcompressionratioaudioformat:AACdecodingSocdesign&implementationbasedonFPGA.Weusebothsoftwareandhardwaretorealizethegoal,andthismethodiscalledSocdesign.Weuse32bitRISCtoperformthesoftwarepart,thenthehardwarepartuses4SRAMtooptimizethedesignaccordingtotheprotocol.FinallyitrealizedbyVerilogHDLRTLcoding,andsynthesis&simulation,verifiedontheFPGAplatform.BelowIlistthekeypointofthisthesis:1.AnalyzetheAACdecodingprocess,thenseparatethesoftwareandhardwareparttorealizethem.IV2.TotheTemporalNoiseShaping(TNS)design,weuselook-uptablemethodtoreducelotsofsoftwaretask,anduseshiftregistertheorytorealizetheTNSfilterinhardware.3.DepictasuccessfuldesignflowfromAACprotocoltotheFPGAverification,anditwillcontributetothesimilardesign.KEYWORDSAudiodecodeTNSVLSIAACVerilogHDLIII2006119IV20061192006119121AACMP3AACSOCFPGAVLSISOCFPGAFPGAAACAACTNSRISCFIFORISCFPGAFPGAAACFPGA2VLSI319VLSIVLSI--[1]VLSI2060IC(IntegratedCircuit)LSILargeScaleIntegration)VLSI(VeryLargeScaleIntegration)60708021VLSI1.11.1.119(Morse)420MPEGAACMPEG/44.1KHz22.05KHz11.025KHzN816VOCODERPCMADPCM11Figure11codingtransmissiondecodingimplementation511[2]1.1.2PCM6dBCD4410016CD44.1K×16×2≈1.4Mbit/S2K~4KMPEG6losslesslossy:1PCMCD400kbpsG.711ADPCMLPCCELPNICAMADPCMSB-ADPCMG.721G.722Apt-X2Crochiere1976Perceptual7“”EBUMPEG-1MUSICAMPhilipsDCCPASCPrecisionAdaptiveSubbandCoding3“”DFTDCTMDCTDolbyAC-2AT&TASPECAudioSpectralPerceptualEntropyCodingPACPerceptualAudioCoder1.1.3MPEG1.1.3.1MPEGMPEGMotionPictureExpertGroup()MPEGISO()IEC/JTC1/SC2/WG11MPEGMPEG1MPEG-1MPEG-1MPEG-18VCD192Kbit/S128Kbit/SASPECMP364Kbit/SMPEG-132FFTCRCMPEG——PCM121-2MPEG1Figure1-2MPEG1codingtheoriesMPEG2MPEG21994ISOIEC13813MPEGMPEGMPEG-2MPEG-2(IS13818-3)[3]1994MPEG-116kHz22.5Hz24kHz32256kbps(Layer1)8160kbps(Layer2,3)(LowFrequencyEnhancementLFE)1MbpsMPEG2DVDDVD9MPEG21994MPEG-1MPEGMPEG-2AdvancedAudioCoding(AAC)1997IS13818-7[4]AAC8kHz96kHz148MPEG3MPEG2HDTVHDTVMPEG3MPEG4MPEG4199811ISO/IEC14496[5]MPEG-4MPEG-46kbit/s24kbit/sMPEG-4NADIBAMAMMPEG-4CELPTwinVQAACAMMPEGMPEG-4Internet/IntranetMPEG7MPEG7MPEGMPEG-7MPEG-7PCMMPEG-110MPEG-2MPEG-4MPEG-1MPEG-2MPEG-3HDTVMPEG-2MPEG-4MPEG-7MPEG-1MPEG-2MPEG-4MPEG-7(thebitsforbits)MPEG-1MPEG-2MPEG-4MPEG-7MPEG-7MPEGMPEG-7MPEGMPEG-4MPEG-7MPEG-4MPEG-7MPEG-7MPEG21MPEG21MPEG7multimediaframework1.1.3.2DolbyAC3DolbyAC-35.1384kbps101DolbyAC-3AC-3AC-320Hz20kHz±0.5dB(-3dB3Hz20.3kHz),20Hz120Hz±0.5dB(-3db3121Hz)32kHz44.1kHz48kHz1132kb/s,640kb/sDolbyAC-3/TDACAC-3,AC-3DolbyAC-3HDTVLDDVDSonyATRACSonyATRACMDAdaptiveTransformAcousticCodingATRAC1644.1KHz52ATRAC(15)ATRACMEPGATRAC292Kbps“CDLike”MEPGLayer1PASC384KbpsCDMEPGLayer2MusicamMEPGLayer3MP3224kbps128kbpsTwinVQTwinVQVQFNipponTelegraphandTelephone(NTT)(MusicCompression)TwinVQ1:1212TwinVQVQ(VectorQuantization)1/181/96TwinVQAMCD/TwinVQ1.2(VLSI)1.2.1VLSIMooreslaw1811SSIMSILSIVLSIULSI0.180.139065ICVLSIEDA[6]1)IC132)VLSISoC3)EDA4)5)6)7)VLSII/OASIC1.2.2VLSIVLSI13VLSIVLSI[7]1)systemspecification2)functiondesign3)logicdesign144)circuitdesign5)layoutdesignphysicaldesign6)fabrication7)packageandtestDIP13VLSIFigure13VLSIdesignflowIC1.2.3VLSIVLSICADX=(AB*CD)+(A+D)+(AD+C)15VLSIVLSIVLSIICVLSI14VLSIFigure14VLSIdesigndescription♣VHDL(VeryHigh-speedIntegratedCircuitHardwareDescriptionLanguage)♣SPICE♣DEF/LEFYAL♣CIFGDS2EDIF[8]VHDLVHDLVHDLYALSPICEDEF/LEFCIFEDIFGDS2161.2.4FPGAVLSIFPGAFPGAFPGA60FPGAFPGAVLSIFPGAVLSI(FPLD)(FPGA)(CPLD)(PROM)(EPROM)(EEPROM)(PLD)PLDPLD[9]PAL()GAL()PAL“”“”PALEPROMEEPROM(PLA)PLAPALGAL(GenericArrayLogic)GAL16V8,GAL22V10EEPROMPLD172080AlteraXilinxPALCPLD(ComplexProgrammab1eLogicDevice)FPGA(FieldProgrammableGateArray)PLDASIC(ApplicationSpecificIC)(10,000)PLDFPGACPLDXilinxSRAMEEPROMPLDFPGAFLASHPLDCPLDAlteraPLDMAXEEPROMFLEXSRAMCPLDFLEXXilinxFPGAAlteraFLEXFPGAFPGA()ICFPGAFPGAASICASICVLSI(VeryLargeScaleIC)FPGAFPGAFPGAFPGAPLD18FPGAFPGAFPGAIC()FPGA[10][11]19AACAdvancedAudioCodec2.1AACAdvancedAudioCoding——AACMPEG-2ISO/IEC13818-3[3]AAC——NBCNon-BackwardCompatibleMPEG-2IIDolbyAC-3MPEG-1IIIMPEG-2IIWG11943974FraunhoferIISATTDolbyLabsSonyHanoverNEC9611WG11MaceioNBCAAC974BristolISO/IEC13818-7AACMPEG-1NBCAAC14815/151664kbpsAACAACMDCT21AAC2021AACFigure21AACcodingflow2.2AACMPEG-2AAC(Profile)1.MainProfileAACAACCPUAAC212.LowComplexity-LCProfile()TNSCPU3